From 4ec577e5c49e900713a6c89b59a8b3e8a4b71a52 Mon Sep 17 00:00:00 2001 From: Gabriele Cosmo Date: Thu, 30 Jun 2016 14:12:05 +0200 Subject: [PATCH] Import Geant4 10.3.0.beta source tree --- CMakeLists.txt | 6 +- ReleaseNotes/Beta4.10.3-1.txt | 770 ++ ReleaseNotes/Patch4.10.1-3.txt | 201 + ReleaseNotes/Patch4.10.2-1.txt | 251 + ReleaseNotes/Patch4.10.2-2.txt | 258 + cmake/History | 131 + cmake/Modules/FindCLHEP.cmake | 36 +- cmake/Modules/Geant4BuildProjectConfig.cmake | 16 +- .../Modules/Geant4ConfigureConfigScript.cmake | 15 +- cmake/Modules/Geant4DatasetDefinitions.cmake | 8 +- cmake/Modules/Geant4InterfaceOptions.cmake | 8 +- cmake/Modules/Geant4OptionalComponents.cmake | 85 +- ...Geant4ToolchainBackwardCompatibility.cmake | 25 +- cmake/Modules/genwindef/LibSymbolInfo.cpp | 2 +- cmake/Templates/Geant4Config.cmake.in | 71 +- cmake/Templates/geant4-config.in | 4 +- config/History | 18 +- config/architecture.gmk | 12 +- config/geomconf.gmk | 11 +- config/sys/Darwin-clang.gmk | 10 + config/sys/Darwin-g++.gmk | 10 + config/sys/Linux-clang.gmk | 156 + config/sys/Linux-g++.gmk | 10 + config/sys/Linux-icc.gmk | 10 + config/sys/WIN32-g++.gmk | 10 + examples/.doxygen/.svn/entries | 140 +- examples/.doxygen/images/.svn/entries | 4 +- examples/History | 47 + examples/advanced/air_shower/History | 3 + examples/advanced/air_shower/air_shower.out | 34 +- .../src/UltraDetectorConstruction.cc | 3 +- examples/advanced/amsEcal/History | 5 +- examples/advanced/amsEcal/run1.out | 192 +- .../amsEcal/src/PhysListEmStandard.cc | 46 +- .../advanced/brachytherapy/brachytherapy.out | 37 +- .../advanced/composite_calorimeter/History | 5 +- .../src/CCalPrimaryGeneratorAction.cc | 5 +- examples/advanced/gammaknife/gammaknife.out | 755 +- .../gammaray_telescope/gammaraytel.out | 10190 +++++++-------- .../advanced/hadrontherapy/CMakeLists.txt | 1 + examples/advanced/hadrontherapy/History | 2 + .../advanced/hadrontherapy/ModoulWeight.txt | 24 + .../advanced/hadrontherapy/hadrontherapy.out | 603 - .../include/HadrontherapyModulator.hh | 345 +- .../HadrontherapyModulatorMessenger.hh} | 81 +- .../hadrontherapy/macro/modulator.loop | 2 +- .../hadrontherapy/macro/modulatorMacro.mac | 59 +- .../src/HadrontherapyModulator.cc | 2312 +--- .../src/HadrontherapyModulatorMessenger.cc | 131 + examples/advanced/human_phantom/History | 8 +- .../advanced/human_phantom/human_phantom.out | 117 +- .../src/G4CustomFemaleBuilder.cc | 5 +- .../human_phantom/src/G4FemaleBuilder.cc | 19 +- .../human_phantom/src/G4PhantomBuilder.cc | 97 +- .../lAr_calorimeter/lAr_calorimeter.out | 587 +- examples/advanced/microbeam/History | 3 + examples/advanced/microbeam/microbeam.out | 43 +- examples/advanced/microbeam/src/EMField.cc | 31 +- examples/advanced/microelectronics/History | 4 + .../microelectronics/microelectronics.out | 52 +- .../microelectronics/src/PhysicsList.cc | 35 +- examples/advanced/nanobeam/History | 5 +- .../advanced/nanobeam/src/TabulatedField3D.cc | 23 +- .../purging_magnet/purging_magnet.out | 18 +- .../radioprotection/radioprotection.out | 128 +- examples/advanced/underground_physics/History | 5 +- .../underground_physics/src/DMXPhysicsList.cc | 33 +- .../underground_physics.out | 693 +- .../xray_fluorescence/xray_fluorescence.out | 35 +- .../xray_telescope/xray_telescope.out | 26 +- examples/basic/.README.txt | 2 +- examples/basic/B1/.README.txt | 6 +- examples/basic/B1/README | 6 +- examples/basic/B1/exampleB1.out | 41 +- examples/basic/B2/.README.txt | 6 +- examples/basic/B2/B2a/exampleB2a.out | 7411 +++-------- .../B2/B2a/src/B2PrimaryGeneratorAction.cc | 2 +- examples/basic/B2/B2b/exampleB2b.out | 4414 ++++--- examples/basic/B2/README | 6 +- examples/basic/B3/.README.txt | 4 +- examples/basic/B3/B3a/.README | 186 + examples/basic/B3/B3a/History | 90 - examples/basic/B3/B3a/exampleB3a.out | 24 +- examples/basic/B3/B3a/src/B3aEventAction.cc | 25 +- examples/basic/B3/B3b/.README | 186 + examples/basic/B3/B3b/History | 90 - examples/basic/B3/B3b/exampleB3b.out | 24 +- examples/basic/B3/History | 10 +- examples/basic/B3/README | 4 +- examples/basic/B4/.README.txt | 6 +- examples/basic/B4/B4a/exampleB4a.cc | 4 +- examples/basic/B4/B4a/exampleB4a.out | 89 +- .../B4a/include/B4PrimaryGeneratorAction.hh | 4 +- examples/basic/B4/B4b/exampleB4b.cc | 4 +- examples/basic/B4/B4b/exampleB4b.out | 89 +- .../B4b/include/B4PrimaryGeneratorAction.hh | 4 +- examples/basic/B4/B4c/exampleB4c.cc | 4 +- examples/basic/B4/B4c/exampleB4c.out | 89 +- .../B4c/include/B4PrimaryGeneratorAction.hh | 4 +- examples/basic/B4/B4d/exampleB4d.cc | 4 +- examples/basic/B4/B4d/exampleB4d.out | 93 +- .../B4d/include/B4PrimaryGeneratorAction.hh | 4 +- examples/basic/B4/History | 8 + examples/basic/B4/README | 6 +- examples/basic/B5/History | 6 +- examples/basic/B5/exampleB5.out | 334 +- examples/basic/B5/src/B5HadCalorimeterSD.cc | 9 +- examples/basic/History | 4 + .../extended/analysis/AnaEx01/AnaEx01.out | 39 +- .../extended/analysis/AnaEx02/AnaEx02.out | 39 +- .../extended/analysis/B1Con/exampleB01Con.out | 169 +- examples/extended/biasing/B01/exampleB01.out | 63 +- examples/extended/biasing/B03/History | 4 + examples/extended/biasing/B03/exampleB03.out | 72 +- .../biasing/B03/src/B03PhysicsList.cc | 4 +- .../extended/biasing/GB01/exampleGB01.out | 1841 +-- .../extended/biasing/GB02/exampleGB02.out | 6767 +++++----- .../extended/biasing/GB03/exampleGB03.out | 55 +- .../extended/biasing/GB04/exampleGB04.out | 6158 ++++----- .../run_adjoint_simulation_electron.out | 67 +- .../electromagnetic/TestEm0/GNUmakefile | 4 +- .../extended/electromagnetic/TestEm0/History | 5 +- .../electromagnetic/TestEm0/TestEm0.out | 2 +- .../TestEm0/src/PhysicsList.cc | 36 +- .../electromagnetic/TestEm1/.README.txt | 6 - .../electromagnetic/TestEm1/CMakeLists.txt | 4 +- .../extended/electromagnetic/TestEm1/History | 22 +- .../extended/electromagnetic/TestEm1/README | 11 +- .../electromagnetic/TestEm1/TestEm1.out | 43 +- .../electromagnetic/TestEm1/decayinfly.mac | 24 + .../electromagnetic/TestEm1/geant3/README | 26 - .../TestEm1/geant3/annihil.dat | 20 - .../electromagnetic/TestEm1/geant3/brems.dat | 20 - .../TestEm1/geant3/gammaconversion.dat | 19 - .../TestEm1/geant3/geantino.dat | 11 - .../electromagnetic/TestEm1/geant3/gmakeB | 32 - .../electromagnetic/TestEm1/geant3/gmakeT | 31 - .../TestEm1/geant3/include/calor.inc | 7 - .../TestEm1/geant3/include/celoss.inc | 4 - .../electromagnetic/TestEm1/geant3/ionis.dat | 17 - .../electromagnetic/TestEm1/geant3/photon.dat | 16 - .../electromagnetic/TestEm1/geant3/range.dat | 17 - .../TestEm1/geant3/src/gtgama.F | 267 - .../TestEm1/geant3/src/gukine.F | 40 - .../TestEm1/geant3/src/guout.F | 28 - .../TestEm1/geant3/src/gustep.F | 46 - .../TestEm1/geant3/src/gutrak.F | 35 - .../TestEm1/geant3/src/gutrev.F | 13 - .../electromagnetic/TestEm1/geant3/src/main.F | 61 - .../TestEm1/geant3/src/ugeom.F | 75 - .../TestEm1/geant3/src/uginit.F | 53 - .../TestEm1/geant3/src/uglast.F | 45 - .../TestEm1/geant3/src/uhinit.F | 13 - .../TestEm1/geant3/testem1.dat | 16 - .../electromagnetic/TestEm1/plotHisto.C | 2 +- .../electromagnetic/TestEm1/radioactive.mac | 17 +- .../TestEm1/src/DetectorConstruction.cc | 12 +- .../TestEm1/src/PhysListEmStandard.cc | 39 +- .../TestEm1/src/PhysicsList.cc | 18 +- .../extended/electromagnetic/TestEm1/vis.mac | 6 +- .../electromagnetic/TestEm10/.README.txt | 158 +- .../electromagnetic/TestEm10/CMakeLists.txt | 2 +- .../extended/electromagnetic/TestEm10/History | 16 +- .../extended/electromagnetic/TestEm10/README | 155 +- .../electromagnetic/TestEm10/TestEm10.cc | 48 +- .../electromagnetic/TestEm10/TestEm10.in | 14 +- .../TestEm10/TestEm10.large_N.in | 13 +- .../electromagnetic/TestEm10/TestEm10.out | 417 +- .../electromagnetic/TestEm10/alice06.mac | 36 +- .../electromagnetic/TestEm10/bari05.mac | 35 +- .../electromagnetic/TestEm10/barr90.mac | 34 +- .../electromagnetic/TestEm10/harris73.mac | 34 +- .../TestEm10/include/Analysis.hh | 19 +- .../TestEm10/include/DetectorALICE06.hh | 62 + .../TestEm10/include/DetectorBari05.hh | 62 + ...ectorConstruction.hh => DetectorBarr90.hh} | 39 +- .../TestEm10/include/DetectorConstruction.hh | 56 +- ...0TrackingAction.hh => DetectorHarris73.hh} | 37 +- .../TestEm10/include/DetectorMessenger.hh | 62 + .../TestEm10/include/DetectorSimpleALICE.hh | 61 + .../TestEm10/include/DetectorWatase86.hh | 60 + .../include/Em10DetectorConstruction.hh | 214 - .../TestEm10/include/Em10PhysicsList.hh | 113 - .../include/Em10PrimaryGeneratorAction.hh | 78 - .../TestEm10/include/Em10RunAction.hh | 184 - .../TestEm10/include/Em10RunMessenger.hh | 120 - .../TestEm10/include/Em10StepCut.hh | 130 - .../TestEm10/include/EventAction.hh | 65 + .../{Em10Materials.hh => Materials.hh} | 30 +- ...PhysicsListMessenger.hh => PhysicsList.hh} | 81 +- ...ppingAction.hh => PhysicsListMessenger.hh} | 39 +- .../include/PrimaryGeneratorAction.hh | 60 + .../RadiatorDescription.hh} | 47 +- .../TestEm10/include/RunAction.hh | 71 + ...ventActionMessenger.hh => RunMessenger.hh} | 50 +- ...0CalorimeterSD.hh => SensitiveDetector.hh} | 36 +- .../TestEm10/include/StackingAction.hh | 57 + .../TestEm10/include/StepMax.hh | 56 +- .../TestEm10/include/StepMaxMessenger.hh | 61 + .../TestEm10/include/TRTMaterials.hh | 126 - .../include/TransitionRadiationPhysics.hh | 81 + ...dModel.hh => XTRTransparentRegRadModel.hh} | 16 +- .../electromagnetic/TestEm10/run11.mac | 148 - .../electromagnetic/TestEm10/salice.mac | 35 +- .../TestEm10/src/DetectorALICE06.cc | 247 + .../TestEm10/src/DetectorBari05.cc | 264 + .../TestEm10/src/DetectorBarr90.cc | 215 + .../TestEm10/src/DetectorConstruction.cc | 151 + .../TestEm10/src/DetectorHarris73.cc | 216 + .../TestEm10/src/DetectorMessenger.cc | 75 + .../TestEm10/src/DetectorSimpleALICE.cc | 210 + .../TestEm10/src/DetectorWatase86.cc | 214 + .../TestEm10/src/Em10DetectorConstruction.cc | 1720 --- .../TestEm10/src/Em10DetectorMessenger.cc | 278 - .../TestEm10/src/Em10EventAction.cc | 235 - .../TestEm10/src/Em10PhysicsList.cc | 513 - .../TestEm10/src/Em10PhysicsListMessenger.cc | 171 - .../src/Em10PrimaryGeneratorAction.cc | 166 - .../src/Em10PrimaryGeneratorMessenger.cc | 99 - .../TestEm10/src/Em10RunAction.cc | 1059 -- .../TestEm10/src/Em10RunMessenger.cc | 395 - .../TestEm10/src/Em10SteppingAction.cc | 151 - .../TestEm10/src/Em10SteppingVerbose.cc | 200 - .../TestEm10/src/Em10TrackingAction.cc | 63 - .../src/{Em10CalorHit.cc => EventAction.cc} | 60 +- .../src/{Em10Materials.cc => Materials.cc} | 34 +- .../TestEm10/src/PhysicsList.cc | 237 + .../TestEm10/src/PhysicsListMessenger.cc | 71 + .../TestEm10/src/PrimaryGeneratorAction.cc | 77 + .../electromagnetic/TestEm10/src/RunAction.cc | 156 + ...ventActionMessenger.cc => RunMessenger.cc} | 100 +- .../SensitiveDetector.cc} | 106 +- .../TestEm10/src/StackingAction.cc | 93 + .../electromagnetic/TestEm10/src/StepMax.cc | 91 +- .../src/StepMaxMessenger.cc} | 67 +- .../src/TransitionRadiationPhysics.cc | 173 + ...dModel.cc => XTRTransparentRegRadModel.cc} | 16 +- .../electromagnetic/TestEm10/test.mac | 24 - .../electromagnetic/TestEm10/test_suite.sh | 39 + .../electromagnetic/TestEm10/watase86.mac | 35 +- .../electromagnetic/TestEm11/.README.txt | 17 +- .../electromagnetic/TestEm11/CMakeLists.txt | 3 +- .../extended/electromagnetic/TestEm11/History | 25 +- .../extended/electromagnetic/TestEm11/README | 19 +- .../electromagnetic/TestEm11/TestEm11.cc | 16 +- .../electromagnetic/TestEm11/TestEm11.in | 3 +- .../electromagnetic/TestEm11/TestEm11.out | 54 +- .../electromagnetic/TestEm11/geant3/README | 47 - .../electromagnetic/TestEm11/geant3/gmakeB | 30 - .../electromagnetic/TestEm11/geant3/gmakeT | 30 - .../TestEm11/geant3/include/calor.inc | 13 - .../TestEm11/geant3/include/celoss.inc | 3 - .../TestEm11/geant3/include/histo.inc | 8 - .../electromagnetic/TestEm11/geant3/run01.dat | 28 - .../electromagnetic/TestEm11/geant3/run02.dat | 25 - .../TestEm11/geant3/src/ffuser.F | 11 - .../TestEm11/geant3/src/gtgama.F | 267 - .../TestEm11/geant3/src/gukine.F | 40 - .../TestEm11/geant3/src/guout.F | 20 - .../TestEm11/geant3/src/gustep.F | 47 - .../TestEm11/geant3/src/gutrak.F | 57 - .../TestEm11/geant3/src/gutrev.F | 27 - .../TestEm11/geant3/src/main.F | 61 - .../TestEm11/geant3/src/ugeom.F | 79 - .../TestEm11/geant3/src/uginit.F | 72 - .../TestEm11/geant3/src/uglast.F | 100 - .../TestEm11/geant3/src/uhinit.F | 29 - .../TestEm11/include/EventAction.hh | 12 +- .../include/G4DiscreteScatteringModel.hh | 89 - .../TestEm11/include/PhysicsList.hh | 12 +- .../TestEm11/include/PhysicsListMessenger.hh | 5 +- .../include/PrimaryGeneratorAction.hh | 5 +- .../include/PrimaryGeneratorMessenger.hh | 6 +- .../electromagnetic/TestEm11/include/Run.hh | 11 +- .../extended/electromagnetic/TestEm11/mp.in | 30 - .../electromagnetic/TestEm11/multiLayers.mac | 3 +- .../electromagnetic/TestEm11/plotHisto.C | 2 +- .../electromagnetic/TestEm11/radioactive.mac | 31 + .../electromagnetic/TestEm11/range.mac | 3 +- .../electromagnetic/TestEm11/run01.mac | 3 +- .../electromagnetic/TestEm11/run02.mac | 3 +- .../electromagnetic/TestEm11/sandia.mac | 3 +- .../electromagnetic/TestEm11/sandia_mp.mac | 34 - .../TestEm11/src/ActionInitialization.cc | 2 +- .../TestEm11/src/EventAction.cc | 34 +- .../TestEm11/src/G4DiscreteScatteringModel.cc | 392 - .../TestEm11/src/HistoManager.cc | 46 +- .../TestEm11/src/PhysListEmStandard.cc | 11 +- .../TestEm11/src/PhysicsList.cc | 44 +- .../TestEm11/src/PhysicsListMessenger.cc | 12 +- .../TestEm11/src/PrimaryGeneratorAction.cc | 36 +- .../TestEm11/src/PrimaryGeneratorMessenger.cc | 13 +- .../electromagnetic/TestEm11/src/Run.cc | 82 +- .../TestEm11/src/SteppingAction.cc | 12 +- .../electromagnetic/TestEm11/water.mac | 3 +- .../extended/electromagnetic/TestEm12/History | 11 +- .../electromagnetic/TestEm12/TestEm12.out | 16 +- .../extended/electromagnetic/TestEm12/dna.mac | 2 +- .../electromagnetic/TestEm12/plotHisto.C | 4 +- .../TestEm12/src/PhysListEmStandard.cc | 36 +- .../TestEm12/src/PhysListEmStandardSSM.cc | 9 +- .../TestEm12/src/PhysicsList.cc | 10 +- .../extended/electromagnetic/TestEm13/History | 11 +- .../electromagnetic/TestEm13/TestEm13.out | 19 +- .../electromagnetic/TestEm13/geant3/README | 44 - .../electromagnetic/TestEm13/geant3/anni.dat | 23 - .../TestEm13/geant3/compton.dat | 23 - .../electromagnetic/TestEm13/geant3/conv.dat | 21 - .../TestEm13/geant3/electron.dat | 24 - .../electromagnetic/TestEm13/geant3/gamma.dat | 18 - .../electromagnetic/TestEm13/geant3/gmakeB | 32 - .../electromagnetic/TestEm13/geant3/gmakeT | 31 - .../TestEm13/geant3/include/detector.inc | 6 - .../TestEm13/geant3/include/histo.inc | 8 - .../TestEm13/geant3/include/process.inc | 2 - .../TestEm13/geant3/photoelec.dat | 18 - .../TestEm13/geant3/proton.dat | 23 - .../TestEm13/geant3/src/ffuser.F | 11 - .../TestEm13/geant3/src/gtgama.F | 267 - .../TestEm13/geant3/src/gukine.F | 40 - .../TestEm13/geant3/src/guout.F | 18 - .../TestEm13/geant3/src/gustep.F | 68 - .../TestEm13/geant3/src/main.F | 61 - .../TestEm13/geant3/src/ugeom.F | 74 - .../TestEm13/geant3/src/uginit.F | 67 - .../TestEm13/geant3/src/uglast.F | 62 - .../TestEm13/geant3/src/uhinit.F | 28 - .../TestEm13/src/PhysListEmStandard.cc | 5 +- .../TestEm13/src/PhysicsList.cc | 8 +- .../extended/electromagnetic/TestEm14/History | 9 +- .../electromagnetic/TestEm14/TestEm14.out | 19 +- .../electromagnetic/TestEm14/geant3/README | 44 - .../electromagnetic/TestEm14/geant3/anni.dat | 23 - .../TestEm14/geant3/compton.dat | 23 - .../electromagnetic/TestEm14/geant3/conv.dat | 21 - .../TestEm14/geant3/electron.dat | 24 - .../electromagnetic/TestEm14/geant3/gamma.dat | 18 - .../electromagnetic/TestEm14/geant3/gmakeB | 32 - .../electromagnetic/TestEm14/geant3/gmakeT | 31 - .../TestEm14/geant3/include/detector.inc | 6 - .../TestEm14/geant3/include/histo.inc | 8 - .../TestEm14/geant3/include/process.inc | 2 - .../TestEm14/geant3/photoelec.dat | 18 - .../TestEm14/geant3/proton.dat | 23 - .../TestEm14/geant3/src/ffuser.F | 11 - .../TestEm14/geant3/src/gtgama.F | 267 - .../TestEm14/geant3/src/gukine.F | 40 - .../TestEm14/geant3/src/guout.F | 18 - .../TestEm14/geant3/src/gustep.F | 68 - .../TestEm14/geant3/src/main.F | 61 - .../TestEm14/geant3/src/ugeom.F | 74 - .../TestEm14/geant3/src/uginit.F | 67 - .../TestEm14/geant3/src/uglast.F | 62 - .../TestEm14/geant3/src/uhinit.F | 28 - .../electromagnetic/TestEm14/plotHisto.C | 2 +- .../TestEm14/src/PhysListEmLivermore.cc | 5 +- .../TestEm14/src/PhysListEmPenelope.cc | 5 +- .../TestEm14/src/PhysListEmStandard.cc | 3 +- .../TestEm14/src/PhysicsList.cc | 8 +- .../extended/electromagnetic/TestEm15/History | 7 +- .../electromagnetic/TestEm15/TestEm15.out | 64 +- .../TestEm15/src/PhysicsList.cc | 12 +- .../extended/electromagnetic/TestEm16/History | 10 +- .../extended/electromagnetic/TestEm16/README | 4 +- .../electromagnetic/TestEm16/TestEm16.out | 8 +- .../electromagnetic/TestEm16/plotHisto.C | 24 + .../electromagnetic/TestEm16/run01_prot.mac | 47 + .../extended/electromagnetic/TestEm16/vis.mac | 2 +- .../extended/electromagnetic/TestEm17/History | 6 +- .../electromagnetic/TestEm17/TestEm17.out | 36 +- .../electromagnetic/TestEm17/plotHisto.C | 6 +- .../extended/electromagnetic/TestEm18/History | 8 +- .../electromagnetic/TestEm18/TestEm18.out | 145 +- .../electromagnetic/TestEm18/plotHisto.C | 2 +- .../TestEm18/src/PhysListEmLivermore.cc | 15 +- .../TestEm18/src/PhysListEmPenelope.cc | 15 +- .../TestEm18/src/PhysListEmStandard.cc | 16 +- .../TestEm18/src/PhysicsList.cc | 25 +- .../extended/electromagnetic/TestEm2/History | 9 +- .../electromagnetic/TestEm2/TestEm2.out | 32 +- .../electromagnetic/TestEm2/geant3/README | 43 - .../electromagnetic/TestEm2/geant3/gmakeB | 32 - .../electromagnetic/TestEm2/geant3/gmakeT | 31 - .../TestEm2/geant3/include/celoss.inc | 7 - .../TestEm2/geant3/include/history.inc | 34 - .../TestEm2/geant3/include/pvolum.inc | 13 - .../TestEm2/geant3/plotHisto.kumac | 14 - .../electromagnetic/TestEm2/geant3/run01.dat | 19 - .../electromagnetic/TestEm2/geant3/run02.dat | 20 - .../electromagnetic/TestEm2/geant3/run03.dat | 20 - .../electromagnetic/TestEm2/geant3/run04.dat | 20 - .../TestEm2/geant3/src/gukine.F | 31 - .../TestEm2/geant3/src/guout.F | 69 - .../TestEm2/geant3/src/gustep.F | 48 - .../TestEm2/geant3/src/gutrev.F | 15 - .../electromagnetic/TestEm2/geant3/src/main.F | 61 - .../TestEm2/geant3/src/ugeom.F | 95 - .../TestEm2/geant3/src/uginit.F | 65 - .../TestEm2/geant3/src/uglast.F | 119 - .../TestEm2/geant3/src/uhinit.F | 66 - .../electromagnetic/TestEm2/plotHisto.C | 2 +- .../TestEm2/src/PhysListEmStandard.cc | 32 +- .../electromagnetic/TestEm3/CMakeLists.txt | 3 +- .../extended/electromagnetic/TestEm3/History | 14 +- .../electromagnetic/TestEm3/TestEm3.out | 66 +- .../TestEm3/include/PhysicsList.hh | 4 +- .../electromagnetic/TestEm3/plotHisto.C | 4 +- .../electromagnetic/TestEm3/radioactive.mac | 30 + .../TestEm3/src/PhysicsList.cc | 70 +- .../extended/electromagnetic/TestEm3/vis.mac | 2 +- .../extended/electromagnetic/TestEm4/History | 7 +- .../electromagnetic/TestEm4/TestEm4.out | 6 +- .../electromagnetic/TestEm4/plotHisto.C | 2 +- .../extended/electromagnetic/TestEm5/History | 15 +- .../electromagnetic/TestEm5/TestEm5.out | 301 +- .../electromagnetic/TestEm5/geant3/README | 48 - .../TestEm5/geant3/anthony.dat | 15 - .../electromagnetic/TestEm5/geant3/berger.dat | 19 - .../TestEm5/geant3/bichsel.dat | 16 - .../electromagnetic/TestEm5/geant3/gmakeB | 32 - .../electromagnetic/TestEm5/geant3/gmakeT | 31 - .../TestEm5/geant3/gottsch.dat | 16 - .../electromagnetic/TestEm5/geant3/hanson.dat | 16 - .../TestEm5/geant3/include/geomate.inc | 6 - .../TestEm5/geant3/include/histo.inc | 8 - .../TestEm5/geant3/include/runinfo.inc | 14 - .../electromagnetic/TestEm5/geant3/kulchi.dat | 15 - .../electromagnetic/TestEm5/geant3/shen1.dat | 15 - .../electromagnetic/TestEm5/geant3/shen2.dat | 16 - .../TestEm5/geant3/src/ffuser.F | 11 - .../electromagnetic/TestEm5/geant3/src/grun.F | 63 - .../TestEm5/geant3/src/gukine.F | 50 - .../TestEm5/geant3/src/guout.F | 55 - .../TestEm5/geant3/src/gustep.F | 58 - .../TestEm5/geant3/src/gutrak.F | 89 - .../TestEm5/geant3/src/gutrev.F | 33 - .../electromagnetic/TestEm5/geant3/src/main.F | 64 - .../TestEm5/geant3/src/ugeom.F | 104 - .../TestEm5/geant3/src/uginit.F | 134 - .../TestEm5/geant3/src/uglast.F | 113 - .../TestEm5/geant3/src/uhinit.F | 52 - .../TestEm5/geant3/testem5.dat | 15 - .../electromagnetic/TestEm5/geant3/tramu.dat | 15 - .../TestEm5/geant3/vincour.dat | 16 - .../TestEm5/include/PhysicsList.hh | 3 +- .../electromagnetic/TestEm5/plotHisto.C | 2 +- .../TestEm5/src/EventAction.cc | 7 +- .../TestEm5/src/PhysListEmStandard.cc | 31 +- .../TestEm5/src/PhysListEmStandardSSM.cc | 7 +- .../TestEm5/src/PhysicsList.cc | 52 +- .../extended/electromagnetic/TestEm6/History | 5 +- .../electromagnetic/TestEm6/TestEm6.out | 4 +- .../electromagnetic/TestEm6/plotHisto.C | 14 +- .../electromagnetic/TestEm6/plot_hist.C | 24 +- .../extended/electromagnetic/TestEm7/History | 11 +- .../electromagnetic/TestEm7/TestEm7.out | 300 +- .../TestEm7/include/c2_function.hh | 3078 +++-- .../TestEm7/include/c2_function.icc | 2791 ++-- .../electromagnetic/TestEm7/plotHisto.C | 2 +- .../extended/electromagnetic/TestEm8/History | 8 +- .../electromagnetic/TestEm8/TestEm8.out | 63 +- .../TestEm8/include/PhysicsListMessenger.hh | 4 +- .../TestEm8/include/TestParameters.hh | 18 +- .../TestEm8/src/PhysicsListMessenger.cc | 5 +- .../TestEm8/src/PrimaryGeneratorAction.cc | 12 +- .../electromagnetic/TestEm8/src/Run.cc | 15 +- .../TestEm8/src/TestParameters.cc | 33 +- .../electromagnetic/TestEm8/testALICE_TRD.mac | 15 +- .../electromagnetic/TestEm9/TestEm9.out | 139 +- .../extended/errorpropagation/errorprop.out | 64 +- .../eventgenerator/exgps/exgps_batch.out | 16 +- .../userPrimaryGenerator.out | 18 +- .../extended/exoticphysics/channeling/History | 4 + .../exoticphysics/channeling/channeling.out | 35 +- .../src/XCrystalPlanarMoliereTempPotential.cc | 6 +- .../channeling/src/XLatticeManager3.cc | 5 +- .../exoticphysics/monopole/monopole.out | 33 +- .../extended/exoticphysics/phonon/.README.txt | 2 +- .../extended/exoticphysics/phonon/History | 2 +- .../extended/exoticphysics/phonon/phonon.out | 16 +- examples/extended/exoticphysics/ucn/ExUCN.out | 3314 ++++- examples/extended/field/field01/field01.out | 24 +- examples/extended/field/field02/field02.out | 22 +- examples/extended/field/field03/History | 5 +- examples/extended/field/field03/field03.out | 31 +- .../field/field03/src/F03FieldMessenger.cc | 4 +- examples/extended/field/field04/History | 11 +- examples/extended/field/field04/field04.out | 10880 +++++++++------- .../field/field04/src/F04GlobalField.cc | 5 +- examples/extended/field/field05/field05.out | 16 +- examples/extended/field/field06/field06.out | 18 +- .../extended/g3tog4/clGeometry/clGeometry.out | 45 +- .../extended/geometry/transforms/batch.out | 4 +- examples/extended/hadronic/.README.txt | 6 + examples/extended/hadronic/CMakeLists.txt | 1 + .../FissionFragment/FissionFragment.out | 107 +- .../extended/hadronic/FissionFragment/History | 2 +- examples/extended/hadronic/Hadr00/hadr00.out | 28 +- examples/extended/hadronic/Hadr00/si.in | 32 + .../hadronic/Hadr00/src/HistoManager.cc | 12 +- examples/extended/hadronic/Hadr01/hadr01.out | 61 +- examples/extended/hadronic/Hadr02/hadr02.out | 49 +- examples/extended/hadronic/Hadr03/hadr03.out | 80 +- .../Hadr03/src/DetectorConstruction.cc | 10 +- .../hadronic/Hadr03/src/PhysicsList.cc | 4 +- examples/extended/hadronic/Hadr04/hadr04.out | 48 +- examples/extended/hadronic/Hadr05/hadr05.out | 19 +- examples/extended/hadronic/Hadr06/History | 7 + examples/extended/hadronic/Hadr06/hadr06.out | 192 +- examples/extended/hadronic/Hadr06/plot2.C | 4 +- examples/extended/hadronic/Hadr06/plotHisto.C | 2 +- .../Hadr06/src/DetectorConstruction.cc | 6 + .../hadronic/Hadr06/src/EmStandardPhysics.cc | 40 +- .../hadronic/Hadr06/src/PhysicsList.cc | 10 +- examples/extended/hadronic/Hadr06/src/Run.cc | 2 +- examples/extended/hadronic/Hadr07/.README.txt | 159 + .../extended/hadronic/Hadr07/CMakeLists.txt | 58 + examples/extended/hadronic/Hadr07/GNUmakefile | 20 + examples/extended/hadronic/Hadr07/Hadr07.cc | 117 + examples/extended/hadronic/Hadr07/History | 22 + examples/extended/hadronic/Hadr07/Na22.mac | 28 + examples/extended/hadronic/Hadr07/README | 147 + .../extended/hadronic/Hadr07/envHadronic.csh | 22 + .../extended/hadronic/Hadr07/envHadronic.sh | 32 + examples/extended/hadronic/Hadr07/hadr07.in | 24 + .../Hadr07/include/ActionInitialization.hh | 59 + .../Hadr07/include/DetectorConstruction.hh | 118 + .../Hadr07/include/DetectorMessenger.hh | 73 + .../Hadr07/include/EmStandardPhysics.hh} | 47 +- .../hadronic/Hadr07/include/EventAction.hh | 65 + .../Hadr07/include/GammaPhysics.hh} | 50 +- .../Hadr07/include/HadronElasticPhysicsHP.hh | 71 + .../hadronic/Hadr07/include/HistoManager.hh | 59 + .../Hadr07/include/NeutronHPMessenger.hh | 63 + .../Hadr07/include/PhysListEmStandard.hh} | 20 +- .../Hadr07/include/PhysicsList.hh} | 27 +- .../Hadr07/include/PrimaryGeneratorAction.hh | 71 + .../include/PrimaryGeneratorMessenger.hh | 65 + .../Hadr07/include/Run.hh} | 93 +- .../hadronic/Hadr07/include/RunAction.hh | 68 + .../hadronic/Hadr07/include/StepMaxBuilder.hh | 56 + .../Hadr07/include/StepMaxMessenger.hh} | 44 +- .../hadronic/Hadr07/include/StepMaxProcess.hh | 80 + .../hadronic/Hadr07/include/SteppingAction.hh | 60 + .../Hadr07/include/SteppingVerbose.hh | 55 + .../hadronic/Hadr07/include/TrackingAction.hh | 54 + .../extended/hadronic/Hadr07/multiLayers.mac | 27 + examples/extended/hadronic/Hadr07/plot2.C | 28 + examples/extended/hadronic/Hadr07/plotHisto.C | 24 + examples/extended/hadronic/Hadr07/proton.mac | 29 + .../Hadr07/src/ActionInitialization.cc | 83 + .../Hadr07/src/DetectorConstruction.cc | 335 + .../hadronic/Hadr07/src/DetectorMessenger.cc | 184 + .../hadronic/Hadr07/src/EmStandardPhysics.cc | 158 + .../hadronic/Hadr07/src/EventAction.cc | 88 + .../hadronic/Hadr07/src/GammaPhysics.cc | 72 + .../Hadr07/src/HadronElasticPhysicsHP.cc | 84 + .../hadronic/Hadr07/src/HistoManager.cc | 99 + .../hadronic/Hadr07/src/NeutronHPMessenger.cc | 72 + .../Hadr07/src/PhysListEmStandard.cc} | 23 +- .../hadronic/Hadr07/src/PhysicsList.cc | 113 + .../Hadr07/src/PrimaryGeneratorAction.cc | 105 + .../Hadr07/src/PrimaryGeneratorMessenger.cc | 84 + examples/extended/hadronic/Hadr07/src/Run.cc | 354 + .../extended/hadronic/Hadr07/src/RunAction.cc | 109 + .../Hadr07/src/StepMaxBuilder.cc} | 49 +- .../hadronic/Hadr07/src/StepMaxMessenger.cc | 78 + .../hadronic/Hadr07/src/StepMaxProcess.cc | 96 + .../hadronic/Hadr07/src/SteppingAction.cc | 92 + .../hadronic/Hadr07/src/SteppingVerbose.cc | 161 + .../hadronic/Hadr07/src/TrackingAction.cc | 98 + examples/extended/hadronic/Hadr07/vis.mac | 83 + examples/extended/hadronic/Hadr07/water.mac | 24 + examples/extended/hadronic/History | 3 + examples/extended/hadronic/README | 9 +- examples/extended/medical/DICOM/run.out | 75 +- .../medical/GammaTherapy/GammaTherapy.out | 28 +- .../medical/dna/chem1/.settings/.svn/entries | 4 +- examples/extended/medical/dna/chem1/chem1.out | 29 +- examples/extended/medical/dna/chem2/chem2.out | 511 +- examples/extended/medical/dna/chem3/chem3.out | 135 +- .../medical/dna/clustering/GNUmakefile | 19 + .../extended/medical/dna/clustering/History | 5 +- .../medical/dna/clustering/clustering.out | 23 +- .../extended/medical/dna/dnaphysics/History | 13 + .../medical/dna/dnaphysics/dnaphysics.cc | 7 +- .../medical/dna/dnaphysics/dnaphysics.in | 10 +- .../medical/dna/dnaphysics/dnaphysics.out | 163 +- .../include/DetectorConstruction.hh | 6 +- .../dnaphysics/include/DetectorMessenger.hh | 1 - .../dnaphysics/src/DetectorConstruction.cc | 34 +- .../dna/dnaphysics/src/DetectorMessenger.cc | 9 - .../medical/dna/dnaphysics/src/PhysicsList.cc | 4 +- .../dna/dnaphysics/src/SteppingAction.cc | 3 +- .../medical/dna/microdosimetry/History | 7 + .../dna/microdosimetry/microdosimetry.out | 32 +- .../dna/microdosimetry/src/PhysicsList.cc | 36 +- .../extended/medical/dna/microyz/microyz.out | 27 +- .../extended/medical/dna/pdb4dna/pdb4dna.out | 23 +- examples/extended/medical/dna/range/History | 3 + examples/extended/medical/dna/range/README | 2 +- examples/extended/medical/dna/range/histo.in | 4 +- .../medical/dna/range/include/PhysicsList.hh | 7 +- examples/extended/medical/dna/range/range.in | 5 +- examples/extended/medical/dna/range/range.out | 239 +- .../medical/dna/range/src/PhysicsList.cc | 92 +- .../dna/range/src/PhysicsListMessenger.cc | 2 +- .../extended/medical/dna/svalue/svalue.out | 235 +- .../dna/wholeNuclearDNA/wholeNuclearDNA.out | 23 +- examples/extended/medical/dna/wvalue/History | 3 + examples/extended/medical/dna/wvalue/README | 2 +- examples/extended/medical/dna/wvalue/histo.in | 5 +- .../medical/dna/wvalue/include/PhysicsList.hh | 6 +- .../medical/dna/wvalue/src/PhysicsList.cc | 90 +- .../dna/wvalue/src/PhysicsListMessenger.cc | 2 +- .../extended/medical/dna/wvalue/wvalue.in | 4 +- .../extended/medical/dna/wvalue/wvalue.out | 251 +- .../medical/electronScattering/History | 8 +- .../electronScattering/electronScattering.out | 14 +- .../src/PhysListEmStandard.cc | 58 +- .../src/PhysListEmStandardSS.cc | 17 +- .../src/PhysListEmStandardWVI.cc | 28 +- .../electronScattering2.out | 488 +- .../medical/fanoCavity/fanoCavity.out | 38 +- .../medical/fanoCavity2/fanoCavity2.out | 48 +- examples/extended/optical/LXe/LXe.out | 32 +- .../extended/optical/OpNovice/OpNovice.out | 24 +- examples/extended/optical/wls/wls.out | 112 +- examples/extended/parallel/TBB/.README.txt | 3 +- .../extended/parallel/TBB/B2b/exampleB2b.cc | 43 +- ...anager.hh => SimpleTbbMasterRunManager.hh} | 21 +- .../parallel/TBB/B2b/include/tbbTask.hh | 13 +- .../TBB/B2b/include/tbbWorkerRunManager.hh | 3 +- ...anager.cc => SimpleTbbMasterRunManager.cc} | 16 +- .../extended/parallel/TBB/B2b/src/tbbTask.cc | 24 +- examples/extended/parallel/TBB/CMakeLists.txt | 8 +- examples/extended/parallel/TBB/History | 7 + examples/extended/parallel/TBB/README | 3 +- .../parallel/ThreadsafeScorers/GNUmakefile | 5 +- .../parallel/ThreadsafeScorers/History | 7 + .../ThreadsafeScorers/threadsafe-scorers.out | 1074 +- .../parameterisations/Par01/examplePar01.out | 2728 ++-- .../extended/parameterisations/Par02/History | 4 + .../parameterisations/Par02/examplePar02.in | 3 + .../parameterisations/Par02/examplePar02.out | 1069 +- .../include/Par02DetectorConstruction.hh | 5 + .../Par02/src/Par02DetectorConstruction.cc | 18 +- .../Par02/src/Par02FastSimModelTracker.cc | 25 +- .../parameterisations/gflash/test.out | 75 +- examples/extended/persistency/P03/batch.out | 16 +- .../persistency/gdml/G01/CMakeLists.txt | 2 +- .../extended/persistency/gdml/G01/History | 8 +- .../extended/persistency/gdml/G01/g01.out | 35 +- .../persistency/gdml/G01/scaledTube.gdml | 100 + .../gdml/G02/src/G02DetectorConstruction.cc | 2 +- .../extended/persistency/gdml/G04/g04.out | 43 +- examples/extended/polarisation/Pol01/History | 5 +- .../extended/polarisation/Pol01/pol01.out | 52 +- .../polarisation/Pol01/src/PhysicsList.cc | 37 +- .../radioactivedecay/rdecay01/.README.txt | 8 + .../radioactivedecay/rdecay01/CMakeLists.txt | 3 +- .../radioactivedecay/rdecay01/History | 33 +- .../extended/radioactivedecay/rdecay01/README | 6 +- .../radioactivedecay/rdecay01/include/Run.hh | 19 +- .../rdecay01/include/TrackingAction.hh | 6 +- .../rdecay01/include/TrackingMessenger.hh | 4 +- .../radioactivedecay/rdecay01/plotHisto.C | 4 +- .../radioactivedecay/rdecay01/rdecay01.out | 134 +- .../rdecay01/references/it1.mac | 2 +- .../rdecay01/references/it2.mac | 2 +- .../rdecay01/src/DetectorConstruction.cc | 4 +- .../rdecay01/src/HistoManager.cc | 4 +- .../rdecay01/src/PhysicsList.cc | 23 +- .../rdecay01/src/PrimaryGeneratorAction.cc | 4 +- .../radioactivedecay/rdecay01/src/Run.cc | 98 +- .../rdecay01/src/TrackingAction.cc | 32 +- .../rdecay01/src/TrackingMessenger.cc | 47 +- .../radioactivedecay/rdecay01/timeWindow.mac | 20 + .../radioactivedecay/rdecay02/.README.txt | 4 +- .../radioactivedecay/rdecay02/History | 5 +- .../extended/radioactivedecay/rdecay02/README | 4 +- .../radioactivedecay/rdecay02/rdecay02.out | 395 +- .../rdecay02/src/PhysicsList.cc | 10 +- examples/extended/runAndEvent/History | 7 +- examples/extended/runAndEvent/RE01/History | 11 +- examples/extended/runAndEvent/RE01/RE01.cc | 23 +- .../RE01/include/RE01CalorimeterROGeometry.hh | 12 +- .../RE01/include/RE01DetectorConstruction.hh | 4 +- .../RE01/include/RE01TrackInformation.hh | 12 +- examples/extended/runAndEvent/RE01/sample.in | 1 + examples/extended/runAndEvent/RE01/sample.out | 5058 ++++++- .../RE01/src/RE01CalorimeterROGeometry.cc | 62 +- .../runAndEvent/RE01/src/RE01CalorimeterSD.cc | 19 +- .../RE01/src/RE01DetectorConstruction.cc | 60 +- .../runAndEvent/RE01/src/RE01EventAction.cc | 17 +- .../runAndEvent/RE01/src/RE01PhysicsList.cc | 93 - .../RE01/src/RE01PrimaryGeneratorAction.cc | 14 +- .../RE01/src/RE01SteppingAction.cc | 30 +- .../RE01/src/RE01TrackInformation.cc | 24 +- examples/extended/runAndEvent/RE02/run.out | 134 +- examples/extended/runAndEvent/RE04/History | 3 + .../extended/runAndEvent/RE04/exampleRE04.out | 37 +- examples/extended/runAndEvent/RE04/vis.mac | 3 +- .../extended/runAndEvent/RE05/exampleRE05.out | 409 +- .../extended/runAndEvent/RE06/exampleRE06.cc | 2 +- .../extended/runAndEvent/RE06/exampleRE06.out | 779 +- examples/extended/runAndEvent/README | 5 +- source/GNUmakefile | 4 +- source/analysis/History | 30 +- source/analysis/History_tools | 21 + .../g4tools/include/tools/glutess/render | 2 - source/analysis/g4tools/include/tools/hls | 24 +- source/analysis/g4tools/include/tools/pointer | 61 +- .../g4tools/include/tools/sg/style_colormap | 12 +- .../analysis/g4tools/include/tools/typedefs | 20 +- source/analysis/g4tools/include/tools/value | 36 +- .../analysis/g4tools/include/tools/value.icc | 92 +- source/analysis/g4tools/include/tools/version | 10 +- .../g4tools/include/tools/wroot/basket | 7 + .../g4tools/include/tools/wroot/ntuple | 4 +- .../management/include/G4NtupleMessenger.hh | 1 + .../management/src/G4NtupleMessenger.cc | 4 +- source/digits_hits/History | 17 +- .../include/G4MultiSensitiveDetector.hh | 2 +- .../detector/src/G4CellScoreComposer.cc | 5 +- .../detector/src/G4MultiFunctionalDetector.cc | 65 +- .../detector/src/G4MultiSensitiveDetector.cc | 7 + .../digits_hits/detector/src/G4SDManager.cc | 10 +- .../digits_hits/detector/src/G4SDStructure.cc | 95 +- .../detector/src/G4SensitiveVolumeList.cc | 14 +- .../detector/src/G4VPrimitiveScorer.cc | 4 +- .../detector/src/G4VReadOutGeometry.cc | 32 +- .../detector/src/G4VSensitiveDetector.cc | 7 +- .../digits/include/G4DCofThisEvent.hh | 7 +- .../hits/include/G4VHitsCollection.hh | 14 +- .../digits_hits/hits/src/G4HCofThisEvent.cc | 7 +- .../digits_hits/hits/src/G4VHitsCollection.cc | 4 +- .../utils/include/G4ScoringManager.hh | 8 +- .../utils/include/G4VScoringMesh.hh | 8 +- .../utils/src/G4ScoreQuantityMessenger.cc | 4 +- .../digits_hits/utils/src/G4ScoringManager.cc | 53 +- .../utils/src/G4ScoringMessenger.cc | 4 +- .../digits_hits/utils/src/G4VScoreColorMap.cc | 4 +- .../digits_hits/utils/src/G4VScoreWriter.cc | 4 +- .../digits_hits/utils/src/G4VScoringMesh.cc | 82 +- source/event/History | 16 +- source/event/include/G4Event.hh | 8 +- source/event/include/G4EventManager.hh | 6 +- source/event/include/G4MultiEventAction.hh | 74 + source/event/include/G4ParticleGun.hh | 10 +- source/event/include/G4UserEventAction.hh | 4 +- source/event/sources.cmake | 4 +- source/event/src/G4Event.cc | 34 +- source/event/src/G4EventManager.cc | 49 +- .../src/G4GeneralParticleSourceMessenger.cc | 8 +- .../src/G4MultiEventAction.cc} | 43 +- source/event/src/G4ParticleGun.cc | 64 +- source/event/src/G4PrimaryTransformer.cc | 17 +- source/externals/History | 50 +- source/externals/clhep/CMakeLists.txt | 3 + source/externals/clhep/History | 55 + .../clhep/include/CLHEP/Random/MixMaxRng.h | 4 +- .../clhep/include/CLHEP/Random/mixmax.h | 9 +- .../include/CLHEP/Random/mixmax_skip_N17.icc | 289 + .../include/CLHEP/Random/mixmax_skip_N8.icc | 290 + .../include/CLHEP/Units/PhysicalConstants.h | 56 +- .../clhep/include/CLHEP/Units/SystemOfUnits.h | 277 +- .../clhep/include/CLHEP/Utility/atomic_int.h | 2 +- .../clhep/include/CLHEP/Utility/use_atomic.h | 28 + source/externals/clhep/src/MixMaxRng.cc | 17 +- source/externals/clhep/src/Random.cc | 165 +- source/externals/clhep/src/mixmax.cc | 10 +- .../externals/clhep/src/setSystemOfUnits.cc | 2 + source/externals/zlib/History | 8 + source/externals/zlib/src/gzguts.h | 2 +- source/externals/zlib/src/inflate.cc | 3 +- source/geometry/divisions/History | 5 +- source/geometry/magneticfield/History | 157 +- .../include/G4BogackiShampine23.hh | 106 + .../include/G4BogackiShampine45.hh | 107 + .../include/G4CachedMagneticField.hh | 2 +- .../magneticfield/include/G4CashKarpRKF45.hh | 4 +- .../magneticfield/include/G4DELPHIMagField.hh | 4 +- .../magneticfield/include/G4DoLoMcPriRK34.hh | 112 + .../include/G4DormandPrince745.hh | 137 + .../include/G4DormandPrinceRK56.hh | 134 + .../include/G4DormandPrinceRK78.hh | 68 + .../include/G4FSALBogackiShampine45.hh | 88 + .../include/G4FSALDormandPrince745.hh | 84 + .../include/G4FSALIntegrationDriver.hh | 268 + .../include/G4FSALIntegrationDriver.icc | 178 + .../geometry/magneticfield/include/G4Field.hh | 10 +- .../include/G4HelixMixedStepper.hh | 23 +- .../include/G4LineCurrentMagField.hh | 5 +- .../include/G4MagIntegratorStepper.hh | 34 +- .../include/G4MagIntegratorStepper.icc | 3 +- .../include/G4QuadrupoleMagField.hh | 5 +- .../magneticfield/include/G4TsitourasRK45.hh | 68 + .../include/G4UniformElectricField.hh | 5 +- .../include/G4UniformGravityField.hh | 2 +- .../include/G4UniformMagField.hh | 4 +- .../include/G4VFSALIntegrationStepper.hh | 148 + .../include/G4VFSALIntegrationStepper.icc | 83 + source/geometry/magneticfield/sources.cmake | 26 +- .../magneticfield/src/G4BogackiShampine23.cc | 213 + .../magneticfield/src/G4BogackiShampine45.cc | 583 + .../src/G4CachedMagneticField.cc | 33 +- .../magneticfield/src/G4CashKarpRKF45.cc | 38 +- .../magneticfield/src/G4ChordFinder.cc | 14 +- .../magneticfield/src/G4ChordFinderSaf.cc | 1 - .../magneticfield/src/G4DELPHIMagField.cc | 6 +- .../magneticfield/src/G4DoLoMcPriRK34.cc | 301 + .../magneticfield/src/G4DormandPrince745.cc | 630 + .../magneticfield/src/G4DormandPrinceRK56.cc | 727 ++ .../magneticfield/src/G4DormandPrinceRK78.cc | 434 + .../magneticfield/src/G4ElectricField.cc | 10 +- .../src/G4ElectroMagneticField.cc | 7 +- .../magneticfield/src/G4EqEMFieldWithEDM.cc | 4 +- .../magneticfield/src/G4EqEMFieldWithSpin.cc | 4 +- .../src/G4FSALBogackiShampine45.cc | 624 + .../src/G4FSALDormandPrince745.cc | 483 + .../src/G4FSALIntegrationDriver.cc | 1047 ++ .../magneticfield/src/G4HelixExplicitEuler.cc | 4 +- .../magneticfield/src/G4HelixMixedStepper.cc | 162 +- .../src/G4LineCurrentMagField.cc | 8 +- .../magneticfield/src/G4MagHelicalStepper.cc | 4 +- .../src/G4MagIntegratorStepper.cc | 12 +- .../magneticfield/src/G4Mag_SpinEqRhs.cc | 4 +- .../magneticfield/src/G4MagneticField.cc | 4 +- .../magneticfield/src/G4QuadrupoleMagField.cc | 9 +- .../magneticfield/src/G4RepleteEofM.cc | 2 +- .../magneticfield/src/G4TsitourasRK45.cc | 321 + .../src/G4UniformElectricField.cc | 22 +- .../src/G4UniformGravityField.cc | 22 +- .../magneticfield/src/G4UniformMagField.cc | 19 +- .../src/G4VFSALIntegrationStepper.cc | 41 + source/geometry/management/History | 53 +- .../management/include/G4AffineTransform.hh | 71 +- .../management/include/G4BoundingEnvelope.hh | 181 + .../management/include/G4ReflectedSolid.hh | 59 +- .../management/include/G4ScaleTransform.hh | 148 + .../management/include/G4ScaleTransform.icc | 237 + .../geometry/management/include/G4USolid.hh | 4 +- source/geometry/management/sources.cmake | 6 +- .../management/src/G4BoundingEnvelope.cc | 733 ++ .../management/src/G4ReflectedSolid.cc | 392 +- source/geometry/management/src/G4USolid.cc | 150 +- source/geometry/navigation/History | 40 +- .../navigation/include/G4Navigator.hh | 6 +- .../navigation/include/G4ReplicaNavigation.hh | 6 +- .../navigation/include/G4VoxelNavigation.hh | 7 +- .../geometry/navigation/src/G4BrentLocator.cc | 6 +- .../navigation/src/G4MultiLevelLocator.cc | 6 +- .../navigation/src/G4NavigationLogger.cc | 4 +- source/geometry/navigation/src/G4Navigator.cc | 73 +- .../navigation/src/G4NormalNavigation.cc | 13 +- .../navigation/src/G4ReplicaNavigation.cc | 62 +- .../navigation/src/G4SimpleLocator.cc | 6 +- .../navigation/src/G4VoxelNavigation.cc | 44 +- source/geometry/solids/Boolean/History | 41 +- .../solids/Boolean/include/G4BooleanSolid.hh | 18 +- .../solids/Boolean/include/G4BooleanSolid.icc | 13 +- .../solids/Boolean/include/G4ScaledSolid.hh | 126 + .../solids/Boolean/include/G4UMultiUnion.hh | 58 +- source/geometry/solids/Boolean/sources.cmake | 4 +- .../solids/Boolean/src/G4BooleanSolid.cc | 155 +- .../solids/Boolean/src/G4DisplacedSolid.cc | 2 +- .../solids/Boolean/src/G4IntersectionSolid.cc | 6 +- .../solids/Boolean/src/G4ScaledSolid.cc | 403 + .../solids/Boolean/src/G4SubtractionSolid.cc | 7 +- .../solids/Boolean/src/G4UMultiUnion.cc | 52 + .../solids/Boolean/src/G4UnionSolid.cc | 7 +- source/geometry/solids/CSG/History | 20 +- source/geometry/solids/CSG/include/G4UBox.hh | 47 +- source/geometry/solids/CSG/include/G4UCons.hh | 99 +- source/geometry/solids/CSG/include/G4UOrb.hh | 21 +- .../geometry/solids/CSG/include/G4USphere.hh | 88 +- .../geometry/solids/CSG/include/G4UTorus.hh | 96 +- source/geometry/solids/CSG/include/G4UTrap.hh | 115 +- source/geometry/solids/CSG/include/G4UTrd.hh | 85 +- source/geometry/solids/CSG/include/G4UTubs.hh | 73 +- source/geometry/solids/CSG/src/G4Orb.cc | 4 +- source/geometry/solids/CSG/src/G4UBox.cc | 46 +- source/geometry/solids/CSG/src/G4UCons.cc | 88 +- source/geometry/solids/CSG/src/G4UOrb.cc | 27 +- source/geometry/solids/CSG/src/G4USphere.cc | 76 +- source/geometry/solids/CSG/src/G4UTorus.cc | 85 +- source/geometry/solids/CSG/src/G4UTrap.cc | 80 +- source/geometry/solids/CSG/src/G4UTrd.cc | 72 +- source/geometry/solids/CSG/src/G4UTubs.cc | 66 +- source/geometry/solids/specific/History | 62 +- .../specific/include/G4ExtrudedSolid.hh | 45 +- .../solids/specific/include/G4GenericTrap.hh | 6 +- .../specific/include/G4QuadrangularFacet.hh | 4 +- .../specific/include/G4TessellatedSolid.hh | 8 +- .../specific/include/G4TriangularFacet.hh | 4 +- .../specific/include/G4UExtrudedSolid.hh | 57 +- .../specific/include/G4UGenericPolycone.hh | 37 +- .../solids/specific/include/G4UGenericTrap.hh | 69 +- .../solids/specific/include/G4UParaboloid.hh | 81 +- .../solids/specific/include/G4UPolycone.hh | 76 +- .../solids/specific/include/G4UPolyhedra.hh | 89 +- .../solids/specific/include/G4UTet.hh | 21 +- .../solids/specific/include/G4VFacet.hh | 4 +- .../solids/specific/src/G4ExtrudedSolid.cc | 297 +- .../solids/specific/src/G4GenericTrap.cc | 159 +- .../solids/specific/src/G4IntersectingCone.cc | 19 +- .../specific/src/G4QuadrangularFacet.cc | 192 +- .../solids/specific/src/G4TessellatedSolid.cc | 4 +- .../solids/specific/src/G4TriangularFacet.cc | 108 +- .../solids/specific/src/G4UExtrudedSolid.cc | 90 +- .../solids/specific/src/G4UGenericPolycone.cc | 26 +- .../solids/specific/src/G4UGenericTrap.cc | 56 +- .../solids/specific/src/G4UParaboloid.cc | 34 +- .../solids/specific/src/G4UPolycone.cc | 63 +- .../solids/specific/src/G4UPolyhedra.cc | 73 +- source/geometry/solids/specific/src/G4UTet.cc | 41 +- source/geometry/volumes/History | 8 +- .../volumes/src/G4NavigationHistory.cc | 4 +- .../HEPRandom/include/G4RandomDirection.hh | 14 +- source/global/HEPRandom/include/Randomize.hh | 4 +- source/global/HEPRandom/src/G4MTHepRandom.cc | 2 +- source/global/HEPRandom/src/G4MTRandBit.cc | 2 +- .../HEPRandom/src/G4MTRandExponential.cc | 2 +- source/global/HEPRandom/src/G4MTRandFlat.cc | 2 +- source/global/HEPRandom/src/G4MTRandGamma.cc | 2 +- source/global/HEPRandom/src/G4MTRandGauss.cc | 2 +- source/global/HEPRandom/src/G4MTRandGaussQ.cc | 2 +- .../global/HEPRandom/src/G4MTRandGeneral.cc | 2 +- source/global/History | 55 + .../management/include/G4GeometryTolerance.hh | 22 +- .../global/management/include/G4MTBarrier.hh | 164 + source/global/management/include/G4SIunits.hh | 277 +- source/global/management/include/G4String.hh | 3 +- source/global/management/include/G4String.icc | 7 +- .../management/include/G4SystemOfUnits.hh | 2 + .../management/include/G4TWorkspacePool.hh | 4 +- .../global/management/include/G4Threading.hh | 10 +- source/global/management/include/G4Version.hh | 12 +- source/global/management/include/tls.hh | 4 +- source/global/management/sources.cmake | 4 +- .../management/src/G4GeometryTolerance.cc | 18 +- source/global/management/src/G4MTBarrier.cc | 120 + source/global/management/src/G4UnitsTable.cc | 12 +- source/graphics_reps/History | 6 +- .../include/HepPolyhedronProcessor.h | 2 +- source/interfaces/History | 18 +- source/interfaces/basic/include/G4UIQt.hh | 4 +- source/interfaces/basic/moc/G4UIQt_moc.cc | 159 + source/interfaces/basic/src/G4UIQt.cc | 30 +- source/interfaces/basic/src/G4UIWin32.cc | 12 +- source/interfaces/basic/src/G4UIXm.cc | 8 +- source/interfaces/common/src/G4Qt.cc | 24 +- source/materials/History | 55 +- source/materials/include/G4AtomicShells.hh | 29 +- .../materials/include/G4AtomicShells_EADL.hh | 3257 +++++ .../materials/include/G4DensityEffectData.hh | 96 +- source/materials/include/G4Element.hh | 17 +- source/materials/include/G4ElementData.hh | 8 +- source/materials/include/G4ExtDEDXTable.hh | 24 +- source/materials/include/G4IonStoppingData.hh | 6 +- source/materials/include/G4IonisParamElm.hh | 17 +- source/materials/include/G4IonisParamMat.hh | 23 +- source/materials/include/G4Isotope.hh | 8 +- source/materials/include/G4Material.hh | 13 +- .../include/G4MaterialPropertiesTable.hh | 12 +- .../include/G4MaterialPropertiesTable.icc | 57 +- .../materials/include/G4NistElementBuilder.hh | 54 +- source/materials/include/G4NistManager.hh | 103 +- .../include/G4NistMaterialBuilder.hh | 39 +- source/materials/include/G4NistMessenger.hh | 6 +- source/materials/include/G4SandiaTable.hh | 63 +- .../materials/include/G4StaticSandiaData.hh | 16 +- .../include/G4UCNMicroRoughnessHelper.hh | 16 +- source/materials/include/G4VIonDEDXTable.hh | 8 +- source/materials/sources.cmake | 8 +- source/materials/src/G4AtomicShells.cc | 60 +- source/materials/src/G4AtomicShells_EADL.cc | 1646 +++ source/materials/src/G4DensityEffectData.cc | 578 +- source/materials/src/G4Element.cc | 118 +- source/materials/src/G4ElementData.cc | 14 +- source/materials/src/G4ExtDEDXTable.cc | 185 +- source/materials/src/G4IonStoppingData.cc | 203 +- source/materials/src/G4IonisParamElm.cc | 56 +- source/materials/src/G4IonisParamMat.cc | 153 +- source/materials/src/G4Isotope.cc | 12 +- source/materials/src/G4Material.cc | 72 +- .../src/G4MaterialPropertiesTable.cc | 86 +- source/materials/src/G4NistElementBuilder.cc | 67 +- source/materials/src/G4NistManager.cc | 15 +- source/materials/src/G4NistMaterialBuilder.cc | 106 +- source/materials/src/G4SandiaTable.cc | 311 +- .../src/G4UCNMaterialPropertiesTable.cc | 8 +- .../src/G4UCNMicroRoughnessHelper.cc | 42 +- source/parameterisations/gflash/History | 6 +- .../include/G4VGFlashSensitiveDetector.hh | 4 +- source/particles/History | 56 +- .../hadrons/barions/src/G4AntiLambdab.cc | 6 +- .../hadrons/barions/src/G4AntiOmegabMinus.cc | 6 +- .../barions/src/G4AntiSigmacPlusPlus.cc | 4 +- .../hadrons/barions/src/G4AntiSigmacZero.cc | 4 +- .../hadrons/barions/src/G4AntiXibMinus.cc | 4 +- .../hadrons/barions/src/G4AntiXibZero.cc | 6 +- .../hadrons/barions/src/G4AntiXicPlus.cc | 4 +- .../hadrons/barions/src/G4AntiXicZero.cc | 4 +- .../hadrons/barions/src/G4Lambdab.cc | 6 +- .../hadrons/barions/src/G4OmegabMinus.cc | 6 +- .../hadrons/barions/src/G4SigmacPlusPlus.cc | 4 +- .../hadrons/barions/src/G4SigmacZero.cc | 4 +- .../hadrons/barions/src/G4XibMinus.cc | 4 +- .../hadrons/barions/src/G4XibZero.cc | 6 +- .../hadrons/barions/src/G4XicPlus.cc | 4 +- .../hadrons/barions/src/G4XicZero.cc | 4 +- .../hadrons/mesons/src/G4AntiBMesonZero.cc | 6 +- .../hadrons/mesons/src/G4AntiBsMesonZero.cc | 6 +- .../hadrons/mesons/src/G4BMesonMinus.cc | 4 +- .../hadrons/mesons/src/G4BMesonPlus.cc | 4 +- .../hadrons/mesons/src/G4BMesonZero.cc | 6 +- .../hadrons/mesons/src/G4BcMesonMinus.cc | 6 +- .../hadrons/mesons/src/G4BcMesonPlus.cc | 6 +- .../hadrons/mesons/src/G4BsMesonZero.cc | 6 +- source/particles/hadrons/mesons/src/G4Etac.cc | 4 +- source/particles/leptons/src/G4TauMinus.cc | 4 +- source/particles/leptons/src/G4TauPlus.cc | 4 +- .../management/include/G4IonTable.hh | 52 +- source/particles/management/include/G4Ions.hh | 106 +- .../management/include/G4IsotopeProperty.hh | 30 +- .../management/include/G4KL3DecayChannel.hh | 9 +- .../include/G4MuonDecayChannelWithSpin.hh | 20 +- .../management/include/G4NuclideTable.hh | 14 +- .../include/G4PhaseSpaceDecayChannel.hh | 8 +- .../include/G4PionRadiativeDecayChannel.hh | 25 - .../management/include/G4VDecayChannel.hh | 97 +- .../management/include/G4VIsotopeTable.hh | 7 +- .../management/src/G4DalitzDecayChannel.cc | 6 +- .../particles/management/src/G4DecayTable.cc | 5 +- source/particles/management/src/G4IonTable.cc | 223 +- source/particles/management/src/G4Ions.cc | 5 +- .../management/src/G4IsotopeProperty.cc | 16 +- .../management/src/G4KL3DecayChannel.cc | 44 +- .../management/src/G4MuonDecayChannel.cc | 6 +- .../src/G4MuonDecayChannelWithSpin.cc | 30 +- .../G4MuonRadiativeDecayChannelWithSpin.cc | 4 +- .../src/G4NeutronBetaDecayChannel.cc | 6 +- .../management/src/G4NuclideTable.cc | 39 +- .../src/G4PhaseSpaceDecayChannel.cc | 54 +- .../src/G4PionRadiativeDecayChannel.cc | 67 +- .../src/G4TauLeptonicDecayChannel.cc | 6 +- .../management/src/G4VDecayChannel.cc | 94 +- .../src/G4ExcitedMesonConstructor.cc | 6 +- .../shortlived/src/G4ShortLivedConstructor.cc | 6 +- .../include/G4IsotopeMagneticMomentTable.hh | 5 +- .../utils/src/G4IsotopeMagneticMomentTable.cc | 3 +- source/persistency/gdml/GNUmakefile | 3 +- source/persistency/gdml/History | 24 +- .../gdml/include/G4GDMLMessenger.hh | 3 +- .../persistency/gdml/include/G4GDMLParser.hh | 3 +- .../persistency/gdml/include/G4GDMLParser.icc | 7 +- .../gdml/include/G4GDMLReadSolids.hh | 3 +- .../gdml/include/G4GDMLWriteSolids.hh | 4 +- .../gdml/include/G4GDMLWriteStructure.hh | 5 +- source/persistency/gdml/schema/gdml.xsd | 4 +- source/persistency/gdml/schema/gdml_core.xsd | 2 +- .../persistency/gdml/schema/gdml_define.xsd | 4 +- .../gdml/schema/gdml_extensions.xsd | 2 +- .../gdml/schema/gdml_materials.xsd | 2 +- .../gdml/schema/gdml_parameterised.xsd | 2 +- .../persistency/gdml/schema/gdml_replicas.xsd | 2 +- .../persistency/gdml/schema/gdml_solids.xsd | 29 +- source/persistency/gdml/sources.cmake | 3 +- .../persistency/gdml/src/G4GDMLMessenger.cc | 16 +- source/persistency/gdml/src/G4GDMLParser.cc | 14 +- .../persistency/gdml/src/G4GDMLReadDefine.cc | 16 +- .../gdml/src/G4GDMLReadMaterials.cc | 33 +- .../gdml/src/G4GDMLReadParamvol.cc | 134 +- .../persistency/gdml/src/G4GDMLReadSolids.cc | 357 +- .../gdml/src/G4GDMLReadStructure.cc | 14 +- source/persistency/gdml/src/G4GDMLWrite.cc | 18 +- .../persistency/gdml/src/G4GDMLWriteSolids.cc | 39 +- .../gdml/src/G4GDMLWriteStructure.cc | 30 +- source/physics_lists/builders/History | 7 + .../builders/OrderingParameterTable | 2 +- .../builders/src/G4NeutronPHPBuilder.cc | 2 +- .../constructors/decay/GNUmakefile | 4 +- .../physics_lists/constructors/decay/History | 11 +- .../decay/include/G4UnknownDecayPhysics.hh | 78 + .../constructors/decay/sources.cmake | 8 +- .../decay/src/G4RadioactiveDecayPhysics.cc | 13 + .../decay/src/G4UnknownDecayPhysics.cc | 92 + .../constructors/electromagnetic/History | 78 +- .../include/G4EmDNAPhysics_option7.hh | 4 +- .../include/G4OpticalPhysics.hh | 11 + .../include/G4OpticalPhysicsMessenger.hh | 7 + .../electromagnetic/sources.cmake | 2 +- .../electromagnetic/src/G4EmDNAChemistry.cc | 113 +- .../electromagnetic/src/G4EmDNAPhysics.cc | 13 +- .../src/G4EmDNAPhysics_option1.cc | 4 + .../src/G4EmDNAPhysics_option2.cc | 9 + .../src/G4EmDNAPhysics_option3.cc | 11 +- .../src/G4EmDNAPhysics_option4.cc | 13 +- .../src/G4EmDNAPhysics_option5.cc | 75 +- .../src/G4EmDNAPhysics_option7.cc | 109 +- .../electromagnetic/src/G4EmModelActivator.cc | 254 +- .../src/G4EmStandardPhysicsGS.cc | 6 +- .../src/G4EmStandardPhysics_option3.cc | 7 +- .../src/G4EmStandardPhysics_option4.cc | 11 +- .../electromagnetic/src/G4OpticalPhysics.cc | 33 +- .../src/G4OpticalPhysicsMessenger.cc | 42 +- .../constructors/hadron_elastic/History | 11 +- .../include/G4HadronElasticPhysicsPHP.hh | 4 +- .../src/G4HadronElasticPhysics.cc | 16 +- .../src/G4HadronElasticPhysicsPHP.cc | 16 +- .../constructors/hadron_inelastic/History | 16 +- .../include/G4HadronPhysicsFTFP_BERT_ATL.hh | 109 + .../include/G4HadronPhysicsQGSP_BIC_AllHP.hh | 28 - .../hadron_inelastic/sources.cmake | 4 +- .../src/G4HadronPhysicsFTFP_BERT_ATL.cc | 222 + .../src/G4HadronPhysicsQGSP_BIC_AllHP.cc | 50 +- .../physics_lists/constructors/ions/History | 5 +- .../ions/include/G4IonPhysicsPHP.hh | 98 + .../constructors/ions/sources.cmake | 4 +- .../constructors/ions/src/G4IonPhysicsPHP.cc | 222 + .../constructors/limiters/History | 7 +- .../limiters/src/G4ParallelWorldPhysics.cc | 4 +- source/physics_lists/lists/History | 36 +- .../lists/include/FTFP_BERT_ATL.hh | 62 +- .../lists/include/FTFP_BERT_ATL.icc | 119 + .../lists/include/FTFP_BERT_TRV.icc | 11 +- .../G4RegisterPhysLists.icc} | 3 + .../lists/include/QGSP_BIC_AllHP.icc | 4 +- source/physics_lists/lists/sources.cmake | 6 +- .../lists/src/G4PhysListFactory.cc | 10 +- .../lists/src/G4PhysListRegistry.cc | 11 +- source/processes/biasing/generic/History | 30 +- .../biasing/generic/include/G4BOptnCloning.hh | 5 +- .../generic/include/G4BOptnForceFreeFlight.hh | 7 +- .../include/G4BiasingProcessInterface.hh | 38 +- .../include/G4BiasingProcessSharedData.hh | 8 +- .../generic/src/G4BOptnChangeCrossSection.cc | 3 +- .../biasing/generic/src/G4BOptnCloning.cc | 6 +- .../src/G4BOptnForceCommonTruncatedExp.cc | 10 +- .../generic/src/G4BOptnForceFreeFlight.cc | 6 +- .../generic/src/G4BOptrForceCollision.cc | 4 + .../generic/src/G4BiasingProcessInterface.cc | 81 +- source/processes/biasing/management/History | 10 +- .../biasing/management/src/G4ProcessPlacer.cc | 4 +- .../management/src/G4VBiasingOperator.cc | 12 +- source/processes/decay/History | 8 +- source/processes/decay/src/G4Decay.cc | 29 +- source/processes/electromagnetic/dna/History | 127 + .../dna/management/include/G4VITProcess.hh | 2 +- .../dna/management/src/G4ITNavigator1.cc | 12 +- .../dna/management/src/G4ITNavigator2.cc | 22 +- .../include/G4DNAChampionElasticModel.hh | 60 +- .../G4DNADingfelderChargeDecreaseModel.hh | 2 +- .../G4DNADingfelderChargeIncreaseModel.hh | 2 +- .../include/G4DNAMeltonAttachmentModel.hh | 22 +- .../G4DNAOneStepThermalizationModel.hh | 4 +- .../G4DNARuddIonisationExtendedModel.hh | 2 +- .../include/G4DNARuddIonisationModel.hh | 2 +- .../include/G4DNASancheExcitationModel.hh | 16 +- .../G4DNAScreenedRutherfordElasticModel.hh | 94 +- .../include/G4DNASmoluchowskiDiffusion.hh | 8 +- ...DNAUeharaScreenedRutherfordElasticModel.hh | 152 +- .../models/src/G4DNABornIonisationModel1.cc | 7 +- .../models/src/G4DNABornIonisationModel2.cc | 7 +- .../models/src/G4DNAChampionElasticModel.cc | 257 +- .../src/G4DNADingfelderChargeDecreaseModel.cc | 2 +- .../src/G4DNADingfelderChargeIncreaseModel.cc | 2 +- .../src/G4DNAEmfietzoglouIonisationModel.cc | 4 + .../dna/models/src/G4DNAIonElasticModel.cc | 8 +- .../models/src/G4DNAMeltonAttachmentModel.cc | 236 +- .../src/G4DNAMillerGreenExcitationModel.cc | 9 +- .../src/G4DNAOneStepThermalizationModel.cc | 133 +- .../src/G4DNARuddIonisationExtendedModel.cc | 19 +- .../models/src/G4DNARuddIonisationModel.cc | 25 +- .../models/src/G4DNASancheExcitationModel.cc | 101 +- .../G4DNAScreenedRutherfordElasticModel.cc | 377 +- .../src/G4DNASmoluchowskiReactionModel.cc | 5 +- .../models/src/G4DNATransformElectronModel.cc | 141 +- ...DNAUeharaScreenedRutherfordElasticModel.cc | 636 +- .../dna/models/src/G4LEPTSDiffXS.cc | 4 +- .../management/include/G4MoleculeCounter.hh | 20 +- .../management/src/G4MoleculeCounter.cc | 6 +- .../include/G4DNAElectronSolvatation.hh | 36 +- .../include/G4DNAElectronSolvation.hh} | 79 +- .../dna/processes/sources.cmake | 5 +- .../src/G4DNAElectronHoleRecombination.cc | 5 +- ...lvatation.cc => G4DNAElectronSolvation.cc} | 12 +- .../src/G4DNAMolecularDissociation.cc | 2 +- .../src/G4DNAWaterDissociationDisplacer.cc | 5 +- .../dna/utils/include/G4VUserChemistryList.hh | 15 +- .../dna/utils/src/G4DNAChemistryManager.cc | 6 +- .../utils/src/G4DNAMolecularReactionTable.cc | 5 +- .../dna/utils/src/G4VUserChemistryList.cc | 3 +- .../electromagnetic/highenergy/History | 4 +- .../highenergy/include/G4AnnihiToMuPair.hh | 16 +- .../include/G4BetheBlochNoDeltaModel.hh | 13 +- .../highenergy/include/G4BraggNoDeltaModel.hh | 12 +- .../include/G4GammaConversionToMuons.hh | 24 +- .../include/G4ICRU73NoDeltaModel.hh | 13 +- .../highenergy/include/G4Vee2hadrons.hh | 8 +- .../highenergy/include/G4ee2KChargedModel.hh | 10 +- .../highenergy/include/G4ee2KNeutralModel.hh | 14 +- .../highenergy/include/G4eeCrossSections.hh | 6 +- .../highenergy/include/G4eeTo3PiModel.hh | 14 +- .../highenergy/include/G4eeToHadrons.hh | 14 +- .../highenergy/include/G4eeToHadronsModel.hh | 33 +- .../include/G4eeToHadronsMultiModel.hh | 22 +- .../highenergy/include/G4eeToPGammaModel.hh | 15 +- .../highenergy/include/G4eeToTwoPiModel.hh | 14 +- .../highenergy/include/G4hBremsstrahlung.hh | 12 +- .../include/G4hBremsstrahlungModel.hh | 11 +- .../highenergy/include/G4hPairProduction.hh | 12 +- .../include/G4hPairProductionModel.hh | 11 +- .../highenergy/include/G4hhIonisation.hh | 18 +- .../highenergy/include/G4mplIonisation.hh | 15 +- .../include/G4mplIonisationModel.hh | 20 +- .../include/G4mplIonisationWithDeltaModel.hh | 24 +- .../highenergy/src/G4AnnihiToMuPair.cc | 6 +- .../src/G4GammaConversionToMuons.cc | 6 +- .../highenergy/src/G4eeToHadrons.cc | 4 +- .../highenergy/src/G4eeToHadronsModel.cc | 6 +- .../highenergy/src/G4eeToHadronsMultiModel.cc | 6 +- .../highenergy/src/G4hBremsstrahlung.cc | 4 +- .../highenergy/src/G4hPairProduction.cc | 6 +- .../highenergy/src/G4hPairProductionModel.cc | 4 +- .../highenergy/src/G4hhIonisation.cc | 10 +- .../highenergy/src/G4mplIonisationModel.cc | 18 +- .../src/G4mplIonisationWithDeltaModel.cc | 16 +- .../electromagnetic/lowenergy/History | 28 +- .../include/G4IonDEDXScalingICRU73.hh | 4 +- .../G4LivermoreGammaConversionModelRC.hh | 14 +- ...4LivermorePolarizedPhotoElectricGDModel.hh | 11 - .../G4LivermorePolarizedPhotoElectricModel.hh | 9 +- .../lowenergy/include/G4LowEPComptonModel.hh | 1 + .../lowenergy/src/G4Generator2BN.cc | 36 +- .../lowenergy/src/G4IonDEDXHandler.cc | 163 +- .../src/G4IonParametrisedLossModel.cc | 389 +- .../src/G4IonYangFluctuationModel.cc | 43 +- .../lowenergy/src/G4LinLogInterpolation.cc | 16 +- .../src/G4LivermoreComptonModifiedModel.cc | 84 +- .../src/G4LivermoreGammaConversionModel.cc | 7 +- .../src/G4LivermoreGammaConversionModelRC.cc | 18 +- .../src/G4LivermorePhotoElectricModel.cc | 16 +- .../src/G4LivermorePolarizedComptonModel.cc | 4 +- ...4LivermorePolarizedGammaConversionModel.cc | 34 +- ...4LivermorePolarizedPhotoElectricGDModel.cc | 41 +- .../G4LivermorePolarizedPhotoElectricModel.cc | 14 +- .../lowenergy/src/G4LowEPComptonModel.cc | 19 +- .../src/G4LowEPPolarizedComptonModel.cc | 39 +- .../lowenergy/src/G4MicroElecElasticModel.cc | 163 +- .../lowenergy/src/G4MuElecElasticModel.cc | 157 +- .../lowenergy/src/G4OrlicLiXsModel.cc | 262 +- .../src/G4PenelopeBremsstrahlungAngular.cc | 125 +- .../src/G4PenelopeBremsstrahlungFS.cc | 253 +- .../src/G4PenelopeBremsstrahlungModel.cc | 227 +- .../lowenergy/src/G4PenelopeComptonModel.cc | 307 +- .../lowenergy/src/G4PenelopeCrossSection.cc | 115 +- .../src/G4PenelopeGammaConversionModel.cc | 150 +- .../src/G4PenelopeOscillatorManager.cc | 315 +- .../src/G4PenelopePhotoElectricModel.cc | 189 +- .../lowenergy/src/G4PenelopeRayleighModel.cc | 313 +- ...4PhotoElectricAngularGeneratorPolarized.cc | 115 +- .../lowenergy/src/G4QAOLowEnergyLoss.cc | 149 +- .../src/G4VhElectronicStoppingPower.cc | 25 +- .../src/G4eBremsstrahlungSpectrum.cc | 5 +- .../lowenergy/src/G4eIonisationSpectrum.cc | 222 +- .../lowenergy/src/G4ecpssrBaseKxsModel.cc | 300 +- .../lowenergy/src/G4ecpssrBaseLixsModel.cc | 362 +- .../lowenergy/src/G4hICRU49He.cc | 95 +- .../lowenergy/src/G4hIonEffChargeSquare.cc | 59 +- .../lowenergy/src/G4hParametrisedLossModel.cc | 51 +- .../processes/electromagnetic/muons/History | 18 +- .../include/G4EnergyLossForExtrapolator.hh | 4 +- .../muons/include/G4ErrorEnergyLoss.hh | 12 +- .../muons/include/G4MuBetheBlochModel.hh | 29 +- .../muons/include/G4MuBremsstrahlung.hh | 16 +- .../muons/include/G4MuBremsstrahlungModel.hh | 25 +- .../muons/include/G4MuIonisation.hh | 16 +- .../muons/include/G4MuMultipleScattering.hh | 15 +- .../muons/include/G4MuPairProduction.hh | 19 +- .../muons/include/G4MuPairProductionModel.hh | 32 +- .../muons/include/G4TablesForExtrapolator.hh | 6 +- .../include/G4ePairProduction.hh} | 100 +- .../electromagnetic/muons/sources.cmake | 4 +- .../muons/src/G4EnergyLossForExtrapolator.cc | 18 +- .../muons/src/G4MuBetheBlochModel.cc | 10 +- .../muons/src/G4MuBremsstrahlung.cc | 4 +- .../muons/src/G4MuBremsstrahlungModel.cc | 6 +- .../muons/src/G4MuIonisation.cc | 6 +- .../muons/src/G4MuMultipleScattering.cc | 2 +- .../muons/src/G4MuPairProduction.cc | 19 +- .../muons/src/G4MuPairProductionModel.cc | 51 +- .../muons/src/G4TablesForExtrapolator.cc | 4 +- .../muons/src/G4ePairProduction.cc | 157 +- .../electromagnetic/polarisation/History | 24 +- .../include/G4PolarizationManager.hh | 3 +- .../include/G4PolarizationMessenger.hh | 8 +- .../G4PolarizedAnnihilationCrossSection.hh | 16 +- .../include/G4PolarizedAnnihilationModel.hh | 15 +- .../include/G4PolarizedBhabhaCrossSection.hh | 12 +- .../G4PolarizedBremsstrahlungCrossSection.hh | 10 +- .../include/G4PolarizedCompton.hh | 18 +- .../include/G4PolarizedComptonCrossSection.hh | 15 +- .../include/G4PolarizedComptonModel.hh | 12 +- .../include/G4PolarizedGammaConversion.hh | 15 +- .../G4PolarizedGammaConversionModel.hh | 8 +- .../include/G4PolarizedMollerBhabhaModel.hh | 13 +- .../include/G4PolarizedMollerCrossSection.hh | 12 +- .../G4PolarizedPEEffectCrossSection.hh | 11 +- .../include/G4PolarizedPEEffectModel.hh | 14 +- .../G4PolarizedPairProductionCrossSection.hh | 10 +- .../include/G4PolarizedPhotoElectricEffect.hh | 10 +- .../include/G4ePolarizedBremsstrahlung.hh | 6 +- .../G4ePolarizedBremsstrahlungModel.hh | 8 +- .../include/G4ePolarizedIonisation.hh | 23 +- .../include/G4eplusPolarizedAnnihilation.hh | 12 +- .../polarisation/src/G4PolarizationHelper.cc | 4 +- .../polarisation/src/G4PolarizationManager.cc | 24 +- .../src/G4PolarizedAnnihilationModel.cc | 12 +- .../G4PolarizedBremsstrahlungCrossSection.cc | 22 +- .../polarisation/src/G4PolarizedCompton.cc | 28 +- .../src/G4PolarizedComptonCrossSection.cc | 4 +- .../src/G4PolarizedComptonModel.cc | 6 +- .../src/G4PolarizedGammaConversionModel.cc | 4 +- .../src/G4PolarizedMollerBhabhaModel.cc | 6 +- .../src/G4PolarizedMollerCrossSection.cc | 126 +- .../src/G4PolarizedPEEffectCrossSection.cc | 8 +- .../src/G4PolarizedPEEffectModel.cc | 10 +- .../G4PolarizedPairProductionCrossSection.cc | 38 +- .../polarisation/src/G4StokesVector.cc | 6 +- .../src/G4ePolarizedBremsstrahlung.cc | 4 +- .../src/G4ePolarizedBremsstrahlungModel.cc | 4 +- .../src/G4ePolarizedIonisation.cc | 25 +- .../src/G4eplusPolarizedAnnihilation.cc | 25 +- .../electromagnetic/standard/History | 97 +- .../standard/include/G4ASTARStopping.hh | 12 +- .../include/G4BetheBlochIonGasModel.hh | 15 +- .../standard/include/G4BetheBlochModel.hh | 36 +- .../standard/include/G4BetheHeitlerModel.hh | 19 +- .../standard/include/G4BohrFluctuations.hh | 25 +- .../standard/include/G4BraggIonGasModel.hh | 14 +- .../standard/include/G4BraggIonModel.hh | 32 +- .../standard/include/G4BraggModel.hh | 30 +- .../standard/include/G4ComptonScattering.hh | 15 +- .../standard/include/G4CoulombScattering.hh | 16 +- .../standard/include/G4DeltaAngle.hh | 15 +- .../standard/include/G4DeltaAngleFreeScat.hh | 10 +- .../standard/include/G4DipBustGenerator.hh | 15 +- .../standard/include/G4ESTARStopping.hh | 6 +- .../standard/include/G4GammaConversion.hh | 17 +- .../include/G4GoudsmitSaundersonMscModel.hh | 8 +- .../include/G4HeatedKleinNishinaCompton.hh | 13 +- .../include/G4ICRU49NuclearStoppingModel.hh | 21 +- .../standard/include/G4ICRU73QOModel.hh | 33 +- .../standard/include/G4InitXscPAI.hh | 8 +- .../include/G4IonCoulombCrossSection.hh | 9 +- .../include/G4IonCoulombScatteringModel.hh | 15 +- .../standard/include/G4IonFluctuations.hh | 32 +- .../standard/include/G4KleinNishinaCompton.hh | 20 +- .../standard/include/G4KleinNishinaModel.hh | 17 +- .../standard/include/G4ModifiedTsai.hh | 15 +- .../standard/include/G4MollerBhabhaModel.hh | 25 +- .../standard/include/G4MottCoefficients.hh | 6 +- .../standard/include/G4NISTStoppingData.hh | 21 + .../standard/include/G4NuclearStopping.hh | 18 +- .../standard/include/G4PAIModel.hh | 30 +- .../standard/include/G4PAIModelData.hh | 15 +- .../standard/include/G4PAIPhotData.hh | 6 +- .../standard/include/G4PAIPhotModel.hh | 28 +- .../standard/include/G4PAIxSection.hh | 225 +- .../standard/include/G4PAIySection.hh | 56 +- .../standard/include/G4PEEffectFluoModel.hh | 16 +- .../standard/include/G4PSTARStopping.hh | 25 +- .../include/G4PairProductionRelModel.hh | 28 +- .../standard/include/G4PhotoElectricEffect.hh | 12 +- .../G4SauterGavrilaAngularDistribution.hh | 13 +- .../include/G4ScreeningMottCrossSection.hh | 17 +- .../include/G4UniversalFluctuation.hh | 79 +- .../standard/include/G4UrbanMscModel.hh | 87 +- .../standard/include/G4WaterStopping.hh | 12 +- .../include/G4WentzelOKandVIxSection.hh | 11 +- .../standard/include/G4WentzelVIModel.hh | 34 +- .../standard/include/G4WentzelVIRelModel.hh | 26 +- .../include/G4WentzelVIRelXSection.hh | 9 +- .../standard/include/G4XrayRayleighModel.hh | 4 +- .../standard/include/G4alphaIonisation.hh | 19 +- .../standard/include/G4eBremsstrahlung.hh | 17 +- .../include/G4eCoulombScatteringModel.hh | 20 +- .../standard/include/G4eIonisation.hh | 19 +- .../standard/include/G4eMultipleScattering.hh | 10 +- .../G4eSingleCoulombScatteringModel.hh | 20 +- .../standard/include/G4eeToTwoGammaModel.hh | 19 +- .../standard/include/G4eplusAnnihilation.hh | 14 +- .../include/G4hCoulombScatteringModel.hh | 20 +- .../standard/include/G4hIonisation.hh | 19 +- .../standard/include/G4hMultipleScattering.hh | 10 +- .../standard/include/G4ionIonisation.hh | 19 +- .../standard/src/G4ASTARStopping.cc | 158 +- .../standard/src/G4BetheBlochModel.cc | 18 +- .../standard/src/G4BetheHeitlerModel.cc | 36 +- .../standard/src/G4BraggIonModel.cc | 282 +- .../standard/src/G4BraggModel.cc | 392 +- .../standard/src/G4DeltaAngle.cc | 4 +- .../standard/src/G4ESTARStopping.cc | 4 +- .../src/G4GoudsmitSaundersonMscModel.cc | 852 +- .../standard/src/G4GoudsmitSaundersonTable.cc | 9 +- .../src/G4ICRU49NuclearStoppingModel.cc | 72 +- .../standard/src/G4ICRU73QOModel.cc | 36 +- .../standard/src/G4InitXscPAI.cc | 14 +- .../src/G4IonCoulombScatteringModel.cc | 17 +- .../standard/src/G4IonFluctuations.cc | 40 +- .../standard/src/G4KleinNishinaCompton.cc | 20 +- .../standard/src/G4KleinNishinaModel.cc | 24 +- .../standard/src/G4MollerBhabhaModel.cc | 8 +- .../standard/src/G4NuclearStopping.cc | 4 +- .../standard/src/G4PAIModel.cc | 8 +- .../standard/src/G4PAIModelData.cc | 2 +- .../standard/src/G4PAIPhotModel.cc | 8 +- .../standard/src/G4PAIySection.cc | 54 +- .../standard/src/G4PSTARStopping.cc | 170 +- .../standard/src/G4PairProductionRelModel.cc | 14 +- .../src/G4ScreeningMottCrossSection.cc | 68 +- .../standard/src/G4SeltzerBergerModel.cc | 11 +- .../standard/src/G4UniversalFluctuation.cc | 77 +- .../standard/src/G4UrbanMscModel.cc | 105 +- .../standard/src/G4WaterStopping.cc | 22 +- .../standard/src/G4WentzelOKandVIxSection.cc | 8 +- .../standard/src/G4WentzelVIModel.cc | 40 +- .../standard/src/G4WentzelVIRelModel.cc | 27 +- .../standard/src/G4WentzelVIRelXSection.cc | 12 +- .../standard/src/G4alphaIonisation.cc | 7 +- .../standard/src/G4eBremsstrahlung.cc | 4 +- .../standard/src/G4eBremsstrahlungRelModel.cc | 9 +- .../standard/src/G4eCoulombScatteringModel.cc | 18 +- .../standard/src/G4eIonisation.cc | 3 +- .../standard/src/G4eMultipleScattering.cc | 2 +- .../src/G4eSingleCoulombScatteringModel.cc | 54 +- .../standard/src/G4eeToTwoGammaModel.cc | 8 +- .../standard/src/G4hCoulombScatteringModel.cc | 18 +- .../standard/src/G4hIonisation.cc | 9 +- .../standard/src/G4hMultipleScattering.cc | 2 +- .../standard/src/G4ionIonisation.cc | 13 +- .../processes/electromagnetic/utils/History | 99 +- .../utils/include/G4AngleDirect.hh | 6 +- .../utils/include/G4AtomicShell.hh | 9 +- .../utils/include/G4DummyModel.hh | 14 +- .../utils/include/G4ElectronIonPair.hh | 12 +- .../utils/include/G4EmBiasingManager.hh | 10 +- .../utils/include/G4EmCalculator.hh | 31 +- .../utils/include/G4EmConfigurator.hh | 10 +- .../utils/include/G4EmCorrections.hh | 114 +- .../utils/include/G4EmElementSelector.hh | 8 +- .../utils/include/G4EmModelManager.hh | 33 +- .../utils/include/G4EmMultiModel.hh | 16 +- .../utils/include/G4EmParameters.hh | 78 +- .../utils/include/G4EmParametersMessenger.hh | 15 +- .../utils/include/G4EmProcessOptions.hh | 10 +- .../utils/include/G4EmSaturation.hh | 22 +- .../utils/include/G4LossTableBuilder.hh | 9 +- .../utils/include/G4LossTableManager.hh | 97 +- .../utils/include/G4NuclearFormfactorType.hh} | 35 +- .../utils/include/G4VAtomDeexcitation.hh | 43 +- .../utils/include/G4VEmAngularDistribution.hh | 11 +- .../utils/include/G4VEmFluctuationModel.hh | 9 +- .../utils/include/G4VEmModel.hh | 45 +- .../utils/include/G4VEmProcess.hh | 42 +- .../utils/include/G4VEnergyLossProcess.hh | 48 +- .../utils/include/G4VMscModel.hh | 27 +- .../utils/include/G4VMultipleScattering.hh | 57 +- .../utils/include/G4VSubCutProducer.hh | 6 +- .../utils/include/G4ionEffectiveCharge.hh | 8 +- .../electromagnetic/utils/sources.cmake | 6 +- .../electromagnetic/utils/src/G4DummyModel.cc | 7 +- .../utils/src/G4EmCalculator.cc | 92 +- .../utils/src/G4EmConfigurator.cc | 26 +- .../utils/src/G4EmCorrections.cc | 776 +- .../utils/src/G4EmModelManager.cc | 217 +- .../utils/src/G4EmParameters.cc | 404 +- .../utils/src/G4EmParametersMessenger.cc | 227 +- .../utils/src/G4EmProcessOptions.cc | 100 +- .../utils/src/G4EnergyLossMessenger.cc | 275 - .../utils/src/G4LossTableBuilder.cc | 6 +- .../utils/src/G4LossTableManager.cc | 217 +- .../utils/src/G4VAtomDeexcitation.cc | 34 +- .../electromagnetic/utils/src/G4VEmModel.cc | 28 +- .../electromagnetic/utils/src/G4VEmProcess.cc | 38 +- .../utils/src/G4VEnergyLossProcess.cc | 27 +- .../electromagnetic/utils/src/G4VMscModel.cc | 13 +- .../utils/src/G4VMultipleScattering.cc | 58 +- .../processes/electromagnetic/xrays/History | 21 +- .../xrays/include/G4Cerenkov.hh | 218 +- .../xrays/include/G4ForwardXrayTR.hh | 18 +- .../xrays/include/G4GammaXTRadiator.hh | 7 +- .../xrays/include/G4RegularXTRadiator.hh | 10 +- .../xrays/include/G4Scintillation.hh | 111 +- .../G4ScintillationTrackInformation.hh | 107 + .../xrays/include/G4StrawTubeXTRadiator.hh | 11 +- .../xrays/include/G4SynchrotronRadiation.hh | 19 +- .../include/G4SynchrotronRadiationInMat.hh | 29 +- .../xrays/include/G4TransitionRadiation.hh | 18 +- .../include/G4TransparentRegXTRadiator.hh | 10 +- .../xrays/include/G4VTRModel.hh | 8 +- .../xrays/include/G4VTransitionRadiation.hh | 16 +- .../xrays/include/G4VXTRenergyLoss.hh | 22 +- .../xrays/include/G4XTRGammaRadModel.hh | 5 +- .../xrays/include/G4XTRRegularRadModel.hh | 9 +- .../include/G4XTRTransparentRegRadModel.hh | 9 +- .../electromagnetic/xrays/sources.cmake | 4 +- .../electromagnetic/xrays/src/G4Cerenkov.cc | 741 +- .../xrays/src/G4ForwardXrayTR.cc | 18 +- .../xrays/src/G4GammaXTRadiator.cc | 4 +- .../xrays/src/G4Scintillation.cc | 69 +- .../src/G4ScintillationTrackInformation.cc | 81 + .../xrays/src/G4SynchrotronRadiation.cc | 16 +- .../xrays/src/G4SynchrotronRadiationInMat.cc | 42 +- .../xrays/src/G4TransparentRegXTRadiator.cc | 4 +- .../xrays/src/G4VTransitionRadiation.cc | 10 +- .../xrays/src/G4VXTRenergyLoss.cc | 34 +- .../xrays/src/G4XTRGammaRadModel.cc | 4 +- .../xrays/src/G4XTRRegularRadModel.cc | 12 +- .../xrays/src/G4XTRTransparentRegRadModel.cc | 6 +- .../processes/hadronic/cross_sections/History | 8 + .../src/G4CrossSectionDataSetRegistry.cc | 18 +- .../src/G4CrossSectionPairGG.cc | 11 +- .../src/G4ElectroNuclearCrossSection.cc | 8 +- .../src/G4HadronCrossSections.cc | 10 +- .../hadronic/cross_sections/src/G4PiData.cc | 6 +- .../src/G4PiNuclearCrossSection.cc | 2 +- source/processes/hadronic/management/History | 12 + .../management/include/G4HadronicProcess.hh | 17 +- .../management/src/G4HadronicProcess.cc | 91 +- .../management/src/G4HadronicProcessStore.cc | 3 +- source/processes/hadronic/models/abla/History | 6 +- .../hadronic/models/abla/src/G4Abla.cc | 6 +- .../processes/hadronic/models/cascade/History | 12 + .../hadronic/models/coherent_elastic/History | 5 + .../coherent_elastic/src/G4LMsdGenerator.cc | 11 +- .../hadronic/models/de_excitation/History | 165 + .../evaporation/include/G4Evaporation.hh | 31 +- .../include/G4EvaporationChannel.hh | 47 +- .../include/G4EvaporationDefaultGEMFactory.hh | 12 +- .../include/G4EvaporationFactory.hh | 12 +- .../include/G4EvaporationProbability.hh | 31 +- .../evaporation/include/G4VEvaporation.hh | 28 +- .../evaporation/src/G4Evaporation.cc | 85 +- .../evaporation/src/G4EvaporationChannel.cc | 124 +- .../src/G4EvaporationDefaultGEMFactory.cc | 8 +- .../evaporation/src/G4EvaporationFactory.cc | 6 +- .../src/G4EvaporationProbability.cc | 154 +- .../src/G4He3EvaporationProbability.cc | 4 +- .../src/G4NeutronEvaporationProbability.cc | 6 +- .../src/G4ProtonEvaporationProbability.cc | 15 +- .../src/G4TritonEvaporationProbability.cc | 14 +- .../evaporation/src/G4VEvaporation.cc | 11 +- .../fermi_breakup/include/G4FermiBreakUp.hh | 20 +- .../include/G4FermiFragmentsPool.hh | 4 +- .../include/G4StableFermiFragment.hh | 15 +- .../include/G4UnstableFermiFragment.hh | 6 +- .../fermi_breakup/include/G4VFermiBreakUp.hh | 18 +- .../fermi_breakup/include/G4VFermiFragment.hh | 21 +- .../de_excitation/fermi_breakup/sources.cmake | 3 +- .../fermi_breakup/src/G4FermiBreakUp.cc | 37 +- .../fermi_breakup/src/G4FermiFragmentsPool.cc | 4 +- .../src/G4StableFermiFragment.cc | 9 +- .../src/G4UnstableFermiFragment.cc | 8 +- .../fermi_breakup/src/G4VFermiFragment.cc | 9 +- .../fission/include/G4FissionBarrier.hh | 27 +- .../fission/include/G4VFissionBarrier.hh | 13 +- .../fission/src/G4FissionBarrier.cc | 26 +- .../include/G4AlphaGEMChannel.hh | 30 +- .../include/G4AlphaGEMCoulombBarrier.hh | 70 - .../include/G4B10GEMChannel.hh | 28 +- .../include/G4B11GEMChannel.hh | 28 +- .../include/G4B11GEMCoulombBarrier.hh | 61 - .../include/G4B12GEMChannel.hh | 28 +- .../include/G4B12GEMCoulombBarrier.hh | 61 - .../include/G4B13GEMChannel.hh | 28 +- .../include/G4B13GEMCoulombBarrier.hh | 61 - .../gem_evaporation/include/G4B8GEMChannel.hh | 28 +- .../include/G4B8GEMCoulombBarrier.hh | 61 - .../include/G4Be10GEMChannel.hh | 28 +- .../include/G4Be10GEMCoulombBarrier.hh | 61 - .../include/G4Be11GEMChannel.hh | 28 +- .../include/G4Be11GEMCoulombBarrier.hh | 61 - .../include/G4Be12GEMChannel.hh | 28 +- .../include/G4Be12GEMCoulombBarrier.hh | 61 - .../include/G4Be7GEMChannel.hh | 28 +- .../include/G4Be7GEMCoulombBarrier.hh | 61 - .../include/G4Be9GEMChannel.hh | 28 +- .../include/G4Be9GEMCoulombBarrier.hh | 61 - .../include/G4C10GEMChannel.hh | 28 +- .../include/G4C10GEMCoulombBarrier.hh | 63 - .../include/G4C11GEMChannel.hh | 28 +- .../include/G4C11GEMCoulombBarrier.hh | 63 - .../include/G4C12GEMChannel.hh | 28 +- .../include/G4C12GEMCoulombBarrier.hh | 63 - .../include/G4C13GEMChannel.hh | 28 +- .../include/G4C13GEMCoulombBarrier.hh | 63 - .../include/G4C14GEMChannel.hh | 28 +- .../include/G4C14GEMCoulombBarrier.hh | 63 - .../include/G4C15GEMChannel.hh | 28 +- .../include/G4C15GEMCoulombBarrier.hh | 63 - .../include/G4C16GEMChannel.hh | 28 +- .../include/G4C16GEMCoulombBarrier.hh | 63 - .../include/G4DeuteronGEMChannel.hh | 31 +- .../include/G4DeuteronGEMCoulombBarrier.hh | 71 - .../include/G4F17GEMChannel.hh | 28 +- .../include/G4F17GEMCoulombBarrier.hh | 63 - .../include/G4F18GEMChannel.hh | 28 +- .../include/G4F18GEMCoulombBarrier.hh | 63 - .../include/G4F19GEMChannel.hh | 28 +- .../include/G4F19GEMCoulombBarrier.hh | 63 - .../include/G4F20GEMChannel.hh | 28 +- .../include/G4F20GEMCoulombBarrier.hh | 63 - .../include/G4F21GEMChannel.hh | 28 +- .../include/G4F21GEMCoulombBarrier.hh | 63 - .../gem_evaporation/include/G4GEMChannel.hh | 19 +- .../include/G4GEMCoulombBarrier.hh | 23 +- .../include/G4He3GEMChannel.hh | 29 +- .../include/G4He3GEMCoulombBarrier.hh | 70 - .../include/G4He6GEMChannel.hh | 28 +- .../include/G4He6GEMCoulombBarrier.hh | 62 - .../include/G4He8GEMChannel.hh | 28 +- .../include/G4He8GEMCoulombBarrier.hh | 62 - .../include/G4Li6GEMChannel.hh | 28 +- .../include/G4Li6GEMCoulombBarrier.hh | 62 - .../include/G4Li7GEMChannel.hh | 28 +- .../include/G4Li7GEMCoulombBarrier.hh | 62 - .../include/G4Li8GEMChannel.hh | 28 +- .../include/G4Li8GEMCoulombBarrier.hh | 62 - .../include/G4Li9GEMChannel.hh | 28 +- .../include/G4Li9GEMCoulombBarrier.hh | 62 - .../include/G4Mg22GEMChannel.hh | 28 +- .../include/G4Mg22GEMCoulombBarrier.hh | 62 - .../include/G4Mg23GEMChannel.hh | 28 +- .../include/G4Mg23GEMCoulombBarrier.hh | 62 - .../include/G4Mg24GEMChannel.hh | 28 +- .../include/G4Mg24GEMCoulombBarrier.hh | 62 - .../include/G4Mg25GEMChannel.hh | 28 +- .../include/G4Mg25GEMCoulombBarrier.hh | 62 - .../include/G4Mg26GEMChannel.hh | 28 +- .../include/G4Mg26GEMCoulombBarrier.hh | 62 - .../include/G4Mg27GEMChannel.hh | 28 +- .../include/G4Mg27GEMCoulombBarrier.hh | 62 - .../include/G4Mg28GEMChannel.hh | 28 +- .../include/G4Mg28GEMCoulombBarrier.hh | 62 - .../include/G4N12GEMChannel.hh | 28 +- .../include/G4N12GEMCoulombBarrier.hh | 62 - .../include/G4N13GEMChannel.hh | 28 +- .../include/G4N13GEMCoulombBarrier.hh | 62 - .../include/G4N14GEMChannel.hh | 28 +- .../include/G4N14GEMCoulombBarrier.hh | 62 - .../include/G4N15GEMChannel.hh | 28 +- .../include/G4N15GEMCoulombBarrier.hh | 62 - .../include/G4N16GEMChannel.hh | 28 +- .../include/G4N16GEMCoulombBarrier.hh | 62 - .../include/G4N17GEMChannel.hh | 27 +- .../include/G4N17GEMCoulombBarrier.hh | 62 - .../include/G4Na21GEMChannel.hh | 28 +- .../include/G4Na22GEMChannel.hh | 28 +- .../include/G4Na22GEMCoulombBarrier.hh | 65 - .../include/G4Na23GEMChannel.hh | 27 +- .../include/G4Na23GEMCoulombBarrier.hh | 65 - .../include/G4Na24GEMChannel.hh | 28 +- .../include/G4Na24GEMCoulombBarrier.hh | 65 - .../include/G4Na25GEMChannel.hh | 28 +- .../include/G4Na25GEMCoulombBarrier.hh | 65 - .../include/G4Ne18GEMChannel.hh | 27 +- .../include/G4Ne18GEMCoulombBarrier.hh | 62 - .../include/G4Ne19GEMChannel.hh | 28 +- .../include/G4Ne19GEMCoulombBarrier.hh | 62 - .../include/G4Ne20GEMChannel.hh | 27 +- .../include/G4Ne20GEMCoulombBarrier.hh | 62 - .../include/G4Ne21GEMChannel.hh | 27 +- .../include/G4Ne21GEMCoulombBarrier.hh | 62 - .../include/G4Ne22GEMChannel.hh | 28 +- .../include/G4Ne22GEMCoulombBarrier.hh | 62 - .../include/G4Ne23GEMChannel.hh | 27 +- .../include/G4Ne23GEMCoulombBarrier.hh | 62 - .../include/G4Ne24GEMChannel.hh | 27 +- .../include/G4Ne24GEMCoulombBarrier.hh | 62 - .../include/G4NeutronGEMChannel.hh | 25 +- .../include/G4O14GEMChannel.hh | 29 +- .../include/G4O14GEMCoulombBarrier.hh | 62 - .../include/G4O15GEMChannel.hh | 28 +- .../include/G4O15GEMCoulombBarrier.hh | 62 - .../include/G4O16GEMChannel.hh | 27 +- .../include/G4O16GEMCoulombBarrier.hh | 62 - .../include/G4O17GEMChannel.hh | 28 +- .../include/G4O17GEMCoulombBarrier.hh | 62 - .../include/G4O18GEMChannel.hh | 26 +- .../include/G4O18GEMCoulombBarrier.hh | 62 - .../include/G4O19GEMChannel.hh | 26 +- .../include/G4O19GEMCoulombBarrier.hh | 62 - .../include/G4O20GEMChannel.hh | 28 +- .../include/G4O20GEMCoulombBarrier.hh | 62 - .../include/G4ProtonGEMChannel.hh | 27 +- .../include/G4ProtonGEMCoulombBarrier.hh | 68 - .../include/G4TritonGEMChannel.hh | 21 +- .../include/G4TritonGEMCoulombBarrier.hh | 71 - .../gem_evaporation/sources.cmake | 69 +- .../gem_evaporation/src/G4GEMChannel.cc | 11 +- .../src/G4GEMCoulombBarrier.cc | 26 +- .../src/G4GEMCoulombBarrierHE.cc | 83 - .../handler/include/G4ExcitationHandler.hh | 76 +- .../handler/src/G4ExcitationHandler.cc | 165 +- .../de_excitation/management/GNUmakefile | 3 +- .../include/G4DeexPrecoParameters.hh | 333 + .../management/include/G4LevelManager.hh | 72 +- .../management/include/G4LevelReader.hh | 23 +- .../management/include/G4NucLevel.hh | 78 +- .../management/include/G4NuclearLevelData.hh | 31 +- .../include/G4VEmissionProbability.hh | 17 +- .../include/G4VEvaporationChannel.hh | 24 +- .../include/G4VEvaporationFactory.hh | 12 +- .../de_excitation/management/sources.cmake | 8 +- .../management/src/G4DeexPrecoParameters.cc | 245 + .../management/src/G4LevelManager.cc | 49 + .../management/src/G4LevelReader.cc | 176 +- .../management/src/G4NucLevel.cc | 32 +- .../management/src/G4NuclearLevelData.cc | 330 +- .../src/G4VEmissionProbability.cc | 15 +- .../management/src/G4VEvaporationChannel.cc | 4 +- .../include/G4GammaTransition.hh | 11 +- .../include/G4NeutronRadCapture.hh | 12 +- .../include/G4PhotonEvaporation.hh | 32 +- .../include/G4PolarizationTransition.hh | 6 +- .../include/G4PolarizedGammaTransition.hh | 11 +- .../include/G4VGammaTransition.hh | 15 +- .../photon_evaporation/sources.cmake | 3 +- .../src/G4GammaTransition.cc | 10 +- .../src/G4NeutronRadCapture.cc | 30 +- .../src/G4PhotonEvaporation.cc | 107 +- .../src/G4PhotonEvaporationOLD.cc | 3 + .../src/G4PolarizationTransition.cc | 4 +- .../src/G4PolarizedGammaTransition.cc | 5 +- .../util/include/G4AlphaCoulombBarrier.hh | 15 +- .../G4CameronGilbertPairingCorrections.hh | 9 +- .../G4CameronGilbertShellCorrections.hh | 7 +- .../G4CameronShellPlusPairingCorrections.hh | 9 +- .../G4CameronTruranHilfPairingCorrections.hh | 9 +- .../G4CameronTruranHilfShellCorrections.hh | 9 +- .../util/include/G4ChatterjeeCrossSection.hh | 6 +- .../util/include/G4CookPairingCorrections.hh | 9 +- .../util/include/G4CookShellCorrections.hh | 9 +- .../util/include/G4CoulombBarrier.hh | 29 +- .../util/include/G4DeuteronCoulombBarrier.hh | 15 +- .../util/include/G4He3CoulombBarrier.hh | 15 +- .../util/include/G4KalbachCrossSection.hh | 12 +- .../util/include/G4NeutronCoulombBarrier.hh | 13 +- .../util/include/G4ProtonCoulombBarrier.hh | 15 +- .../util/include/G4ShellCorrection.hh | 8 +- .../util/include/G4TritonCoulombBarrier.hh | 15 +- .../util/include/G4VCoulombBarrier.hh | 17 +- .../util/include/G4VLevelDensityParameter.hh | 14 +- .../models/de_excitation/util/sources.cmake | 5 +- .../util/src/G4AlphaCoulombBarrier.cc | 29 +- .../src/G4CameronGilbertPairingCorrections.cc | 5 +- .../src/G4CameronGilbertShellCorrections.cc | 4 +- .../G4CameronShellPlusPairingCorrections.cc | 4 +- .../G4CameronTruranHilfPairingCorrections.cc | 4 +- .../G4CameronTruranHilfShellCorrections.cc | 4 +- .../src/G4ConstantLevelDensityParameter.cc | 4 +- .../util/src/G4CookPairingCorrections.cc | 4 +- .../util/src/G4CookShellCorrections.cc | 4 +- .../util/src/G4CoulombBarrier.cc | 59 +- .../util/src/G4DeuteronCoulombBarrier.cc | 32 +- .../util/src/G4He3CoulombBarrier.cc | 32 +- .../util/src/G4PairingCorrection.cc | 6 +- .../util/src/G4ProtonCoulombBarrier.cc | 27 +- .../util/src/G4ShellCorrection.cc | 12 +- .../util/src/G4TritonCoulombBarrier.cc | 13 +- .../util/src/G4VCoulombBarrier.cc | 16 +- source/processes/hadronic/models/lend/History | 19 +- .../models/lend/include/G4GIDI_target.hh | 1 + .../hadronic/models/lend/src/G4GIDI_target.cc | 1 + .../hadronic/models/lend/src/G4LENDFission.cc | 7 + .../models/lend/src/G4LENDInelastic.cc | 37 +- .../hadronic/models/lend/src/nf_utilities.cc | 6 +- .../hadronic/models/lend/src/ptwXY_core.cc | 8 +- .../hadronic/models/management/History | 20 + .../include/G4HadronicInteraction.hh | 40 +- .../include/G4HadronicInteractionRegistry.hh | 6 +- .../include/G4VIntraNuclearTransportModel.hh | 14 +- .../management/include/G4VPreCompoundModel.hh | 28 +- .../management/src/G4HadronicInteraction.cc | 15 +- .../src/G4HadronicInteractionRegistry.cc | 33 +- .../hadronic/models/particle_hp/GNUmakefile | 2 +- .../hadronic/models/particle_hp/History | 95 + .../include/G4ParticleHPAngularP.hh | 6 +- .../include/G4ParticleHPCapture.hh | 1 - .../include/G4ParticleHPCaptureData.hh | 1 + .../include/G4ParticleHPContAngularPar.hh | 23 +- .../include/G4ParticleHPContEnergyAngular.hh | 4 + .../include/G4ParticleHPElastic.hh | 1 - .../include/G4ParticleHPElasticData.hh | 1 + .../include/G4ParticleHPFSFissionFS.hh | 4 +- .../include/G4ParticleHPFission.hh | 1 - .../include/G4ParticleHPFissionData.hh | 1 + .../include/G4ParticleHPFissionERelease.hh | 1 + .../particle_hp/include/G4ParticleHPHash.hh | 1 + .../include/G4ParticleHPInelastic.hh | 1 - .../include/G4ParticleHPInelasticData.hh | 2 + .../include/G4ParticleHPLabAngularEnergy.hh | 2 + .../particle_hp/include/G4ParticleHPList.hh | 1 + .../src/G4FPYBiasedLightFragmentDist.cc | 2 + .../particle_hp/src/G4ParticleHPCapture.cc | 14 +- .../src/G4ParticleHPCaptureData.cc | 6 +- .../particle_hp/src/G4ParticleHPCaptureFS.cc | 12 +- .../src/G4ParticleHPContAngularPar.cc | 10 +- .../particle_hp/src/G4ParticleHPData.cc | 7 +- .../src/G4ParticleHPDiscreteTwoBody.cc | 4 +- .../particle_hp/src/G4ParticleHPElastic.cc | 15 +- .../src/G4ParticleHPElasticData.cc | 6 +- .../src/G4ParticleHPFSFissionFS.cc | 2 +- .../particle_hp/src/G4ParticleHPFission.cc | 13 +- .../src/G4ParticleHPFissionData.cc | 6 +- .../particle_hp/src/G4ParticleHPFissionFS.cc | 5 +- .../particle_hp/src/G4ParticleHPInelastic.cc | 26 +- .../src/G4ParticleHPInelasticBaseFS.cc | 48 +- .../src/G4ParticleHPInelasticCompFS.cc | 31 +- .../src/G4ParticleHPInelasticData.cc | 12 +- .../particle_hp/src/G4ParticleHPNames.cc | 7 +- .../src/G4ParticleHPThermalScattering.cc | 8 +- .../particle_hp/src/G4ParticleHPVector.cc | 2 +- .../src/G4WendtFissionFragmentGenerator.cc | 3 +- .../models/parton_string/diffraction/History | 31 +- .../src/G4DiffractiveExcitation.cc | 619 +- .../diffraction/src/G4ElasticHNScattering.cc | 16 +- .../diffraction/src/G4FTFAnnihilation.cc | 224 +- .../diffraction/src/G4FTFModel.cc | 231 +- .../diffraction/src/G4FTFParameters.cc | 28 +- .../parton_string/hadronization/History | 29 +- .../hadronization/src/G4ExcitedStringDecay.cc | 29 +- .../src/G4LundStringFragmentation.cc | 80 +- .../src/G4VLongitudinalStringDecay.cc | 10 +- .../models/parton_string/management/History | 5 +- .../parton_string/management/sources.cmake | 4 +- .../models/parton_string/qgsm/History | 18 +- .../include/G4PomeronCrossSection.hh | 2 +- .../include/G4QGSDiffractiveExcitation.hh | 16 +- .../qgsm/include/G4QGSMSplitableHadron.hh | 27 +- .../parton_string/qgsm/include/G4QGSModel.icc | 49 +- .../qgsm/include/G4QGSParticipants.hh | 231 +- .../models/parton_string/qgsm/sources.cmake | 4 +- .../qgsm/src/G4GammaParticipants.cc | 77 +- .../src/G4PomeronCrossSection.cc | 2 +- .../qgsm/src/G4QGSDiffractiveExcitation.cc | 107 +- .../qgsm/src/G4QGSMSplitableHadron.cc | 144 +- .../qgsm/src/G4QGSParticipants.cc | 2516 +++- .../parton_string/qgsm/src/G4SPBaryon.cc | 18 +- .../qgsm/src/G4SingleDiffractiveExcitation.cc | 223 +- .../hadronic/models/pre_equilibrium/History | 30 + .../include/G4GNASHTransitions.hh | 18 +- .../include/G4PreCompoundFragment.hh | 18 +- .../include/G4PreCompoundModel.hh | 46 +- .../include/G4VPreCompoundFragment.hh | 27 +- .../include/G4VPreCompoundFragment.icc | 4 +- .../exciton_model/sources.cmake | 4 +- .../exciton_model/src/G4GNASHTransitions.cc | 30 +- .../src/G4HETCChargedFragment.cc | 3 +- .../exciton_model/src/G4HETCFragment.cc | 5 +- .../src/G4PreCompoundEmission.cc | 12 +- .../src/G4PreCompoundFragment.cc | 28 +- .../src/G4PreCompoundFragmentVector.cc | 4 +- .../exciton_model/src/G4PreCompoundIon.cc | 7 +- .../exciton_model/src/G4PreCompoundModel.cc | 177 +- .../exciton_model/src/G4PreCompoundNucleon.cc | 13 +- .../src/G4PreCompoundParameters.cc | 47 - .../src/G4PreCompoundTransitions.cc | 25 +- .../src/G4VPreCompoundEmissionFactory.cc | 6 +- .../src/G4VPreCompoundFragment.cc | 15 +- source/processes/hadronic/models/qmd/History | 4 + .../hadronic/models/qmd/src/G4QMDCollision.cc | 6 +- .../hadronic/models/quasi_elastic/History | 7 +- .../quasi_elastic/src/G4QuasiElRatios.cc | 8 +- .../hadronic/models/radioactive_decay/History | 53 +- .../include/G4BatemanParameters.hh | 94 + .../include/G4RIsotopeTable.hh | 155 - .../include/G4RadioactiveDecay.hh | 11 +- .../models/radioactive_decay/sources.cmake | 6 +- .../radioactive_decay/src/G4AlphaDecay.cc | 4 +- .../src/G4BatemanParameters.cc | 101 + .../radioactive_decay/src/G4BetaMinusDecay.cc | 38 +- .../radioactive_decay/src/G4BetaPlusDecay.cc | 4 +- .../models/radioactive_decay/src/G4ECDecay.cc | 4 +- .../models/radioactive_decay/src/G4ITDecay.cc | 2 +- .../radioactive_decay/src/G4NeutronDecay.cc | 4 +- .../src/G4NuclearDecayChannel.cc | 12 +- .../radioactive_decay/src/G4ProtonDecay.cc | 4 +- .../radioactive_decay/src/G4RIsotopeTable.cc | 295 - .../src/G4RadioactiveDecay.cc | 247 +- source/processes/hadronic/models/util/History | 21 +- .../models/util/include/G4Fragment.hh | 19 +- .../hadronic/models/util/src/G4Fragment.cc | 52 +- .../util/src/G4GeneralPhaseSpaceDecay.cc | 6 +- .../models/util/src/G4KineticTrack.cc | 14 +- source/processes/hadronic/util/History | 5 + .../processes/hadronic/util/src/G4Nucleus.cc | 2 +- source/processes/optical/History | 7 + .../optical/include/G4OpBoundaryProcess.hh | 13 +- .../optical/src/G4OpBoundaryProcess.cc | 19 +- source/processes/scoring/History | 8 +- .../scoring/include/G4ParallelWorldProcess.hh | 4 +- .../scoring/src/G4ParallelWorldProcess.cc | 12 +- source/run/History | 68 +- source/run/include/G4MTRunManager.hh | 19 +- source/run/include/G4MultiRunAction.hh | 77 + source/run/include/G4RNGHelper.hh | 2 +- source/run/include/G4RunManager.hh | 13 +- source/run/include/G4RunMessenger.hh | 3 +- source/run/include/G4UserRunAction.hh | 4 +- source/run/sources.cmake | 22 +- .../src/G4AdjointPrimaryGeneratorAction.cc | 13 +- source/run/src/G4AdjointSimManager.cc | 18 +- source/run/src/G4MTRunManager.cc | 370 +- source/run/src/G4MTRunManagerKernel.cc | 2 +- source/run/src/G4MultiRunAction.cc | 77 + source/run/src/G4PhysicsListHelper.cc | 16 +- source/run/src/G4RunManager.cc | 20 +- source/run/src/G4RunManagerKernel.cc | 6 +- source/run/src/G4RunMessenger.cc | 30 +- .../src/G4UserWorkerThreadInitialization.cc | 2 +- source/run/src/G4WorkerRunManager.cc | 35 +- source/run/src/G4WorkerRunManagerKernel.cc | 8 +- source/run/src/G4WorkerThread.cc | 4 +- source/track/History | 11 +- source/track/include/G4Track.hh | 6 +- source/track/include/G4Track.icc | 4 +- source/track/src/G4VelocityTable.cc | 11 +- source/tracking/History | 13 +- .../tracking/include/G4MultiSteppingAction.hh | 73 + .../tracking/include/G4MultiTrackingAction.hh | 73 + .../tracking/include/G4UserSteppingAction.hh | 4 +- .../tracking/include/G4UserTrackingAction.hh | 4 +- source/tracking/sources.cmake | 7 +- .../src/G4MultiSteppingAction.cc} | 31 +- source/tracking/src/G4MultiTrackingAction.cc | 56 + source/tracking/src/G4SteppingManager.cc | 7 +- source/tracking/src/G4VTrajectory.cc | 4 +- source/visualization/History | 103 +- source/visualization/OpenGL/History | 58 +- .../OpenGL/include/G4OpenGLSceneHandler.hh | 13 +- .../OpenGL/moc/G4OpenGLQtExportDialog_moc.cc | 101 + .../OpenGL/moc/G4OpenGLQtMovieDialog_moc.cc | 121 + .../OpenGL/moc/G4OpenGLQtViewer_moc.cc | 176 + .../OpenGL/src/G4OpenGLImmediateQtViewer.cc | 4 +- .../src/G4OpenGLImmediateSceneHandler.cc | 6 +- .../src/G4OpenGLImmediateWin32Viewer.cc | 5 +- .../OpenGL/src/G4OpenGLImmediateXViewer.cc | 14 +- .../OpenGL/src/G4OpenGLImmediateXmViewer.cc | 15 +- .../OpenGL/src/G4OpenGLQtViewer.cc | 29 +- .../OpenGL/src/G4OpenGLSceneHandler.cc | 56 +- .../OpenGL/src/G4OpenGLStoredQtViewer.cc | 12 +- .../OpenGL/src/G4OpenGLStoredSceneHandler.cc | 13 +- .../OpenGL/src/G4OpenGLStoredViewer.cc | 6 +- .../OpenGL/src/G4OpenGLStoredWin32Viewer.cc | 5 +- .../OpenGL/src/G4OpenGLStoredXViewer.cc | 14 +- .../OpenGL/src/G4OpenGLStoredXmViewer.cc | 15 +- .../OpenGL/src/G4OpenGLViewer.cc | 8 +- .../OpenGL/src/G4OpenGLViewerMessenger.cc | 72 +- .../OpenGL/src/G4OpenGLWin32Viewer.cc | 4 +- .../OpenGL/src/G4OpenGLXViewer.cc | 11 +- .../OpenGL/src/G4OpenGLXmViewer.cc | 6 +- source/visualization/OpenInventor/History | 34 +- .../include/G4OpenInventorXtExtendedViewer.hh | 1 - .../OpenInventor/include/pickext.h | 45 + .../OpenInventor/include/pickref.h | 36 + .../visualization/OpenInventor/sources.cmake | 4 +- .../OpenInventor/src/G4OpenInventorWin.cc | 7 +- .../src/G4OpenInventorWinViewer.cc | 3 +- .../src/G4OpenInventorXtExaminerViewer.cc | 121 +- .../src/G4OpenInventorXtExtended.cc | 2 +- .../src/G4OpenInventorXtExtendedViewer.cc | 8 +- .../src/G4OpenInventorXtViewer.cc | 5 +- source/visualization/RayTracer/History | 5 +- .../RayTracer/src/G4RTJpegCoder.cc | 7 +- source/visualization/Tree/History | 8 +- .../Tree/src/G4ASCIITreeSceneHandler.cc | 23 +- source/visualization/VRML/History | 5 +- .../VRML/src/G4VRML1SceneHandlerFunc.icc | 4 +- .../VRML/src/G4VRML2SceneHandlerFunc.icc | 4 +- source/visualization/XXX/History | 6 +- source/visualization/XXX/src/G4XXXSGViewer.cc | 6 +- .../XXX/src/G4XXXStoredViewer.cc | 6 +- source/visualization/gMocren/History | 8 +- .../gMocren/src/G4GMocrenFileSceneHandler.cc | 40 +- source/visualization/management/History | 139 +- .../management/include/G4VViewer.hh | 26 +- .../management/include/G4VVisCommand.hh | 5 +- .../management/include/G4ViewParameters.hh | 16 +- .../management/include/G4ViewParameters.icc | 7 +- .../management/include/G4VisCommandsViewer.hh | 28 +- .../management/include/G4VisExecutive.icc | 18 +- .../management/include/G4VisManager.hh | 7 +- .../visualization/management/src/G4VViewer.cc | 214 +- .../management/src/G4VVisCommand.cc | 4 +- .../management/src/G4ViewParameters.cc | 274 +- .../management/src/G4VisCommandsCompound.cc | 66 +- .../management/src/G4VisCommandsSceneAdd.cc | 47 +- .../src/G4VisCommandsSceneHandler.cc | 9 +- .../management/src/G4VisCommandsTouchable.cc | 4 +- .../management/src/G4VisCommandsViewer.cc | 331 +- .../management/src/G4VisManager.cc | 87 +- source/visualization/modeling/History | 50 +- .../modeling/include/G4ModelColourMap.hh | 7 +- .../modeling/include/G4ModelingParameters.hh | 14 +- .../G4TrajectoryDrawByTouchedVolume.hh} | 82 +- .../include/G4TrajectoryFilterFactories.hh | 22 +- .../include/G4TrajectoryModelFactories.hh | 18 +- .../G4TrajectoryTouchedVolumeFilter.hh} | 55 +- source/visualization/modeling/sources.cmake | 6 +- .../modeling/src/G4PhysicalVolumeModel.cc | 5 +- .../src/G4TrajectoryDrawByOriginVolume.cc | 27 +- .../src/G4TrajectoryDrawByTouchedVolume.cc | 150 + .../src/G4TrajectoryFilterFactories.cc | 35 +- .../src/G4TrajectoryModelFactories.cc | 36 +- .../src/G4TrajectoryOriginVolumeFilter.cc | 10 +- .../src/G4TrajectoryTouchedVolumeFilter.cc | 105 + 2021 files changed, 100995 insertions(+), 78277 deletions(-) create mode 100644 ReleaseNotes/Beta4.10.3-1.txt create mode 100644 ReleaseNotes/Patch4.10.1-3.txt create mode 100644 ReleaseNotes/Patch4.10.2-1.txt create mode 100644 ReleaseNotes/Patch4.10.2-2.txt create mode 100644 config/sys/Linux-clang.gmk create mode 100644 examples/advanced/hadrontherapy/ModoulWeight.txt delete mode 100644 examples/advanced/hadrontherapy/hadrontherapy.out rename examples/{extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh => advanced/hadrontherapy/include/HadrontherapyModulatorMessenger.hh} (53%) create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyModulatorMessenger.cc create mode 100644 examples/basic/B3/B3a/.README delete mode 100644 examples/basic/B3/B3a/History create mode 100644 examples/basic/B3/B3b/.README delete mode 100644 examples/basic/B3/B3b/History create mode 100644 examples/extended/electromagnetic/TestEm1/decayinfly.mac delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/README delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/annihil.dat delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/brems.dat delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/gammaconversion.dat delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/geantino.dat delete mode 100755 examples/extended/electromagnetic/TestEm1/geant3/gmakeB delete mode 100755 examples/extended/electromagnetic/TestEm1/geant3/gmakeT delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/include/calor.inc delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/include/celoss.inc delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/ionis.dat delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/photon.dat delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/range.dat delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/gtgama.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/guout.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/gustep.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/gutrak.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/gutrev.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/main.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/uginit.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/src/uhinit.F delete mode 100644 examples/extended/electromagnetic/TestEm1/geant3/testem1.dat rename source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc => examples/extended/electromagnetic/TestEm10/include/Analysis.hh (84%) create mode 100644 examples/extended/electromagnetic/TestEm10/include/DetectorALICE06.hh create mode 100644 examples/extended/electromagnetic/TestEm10/include/DetectorBari05.hh rename examples/extended/electromagnetic/TestEm10/include/{TRTDetectorConstruction.hh => DetectorBarr90.hh} (71%) rename source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh => examples/extended/electromagnetic/TestEm10/include/DetectorConstruction.hh (64%) rename examples/extended/electromagnetic/TestEm10/include/{Em10TrackingAction.hh => DetectorHarris73.hh} (70%) create mode 100644 examples/extended/electromagnetic/TestEm10/include/DetectorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm10/include/DetectorSimpleALICE.hh create mode 100644 examples/extended/electromagnetic/TestEm10/include/DetectorWatase86.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh create mode 100644 examples/extended/electromagnetic/TestEm10/include/EventAction.hh rename examples/extended/electromagnetic/TestEm10/include/{Em10Materials.hh => Materials.hh} (80%) rename examples/extended/electromagnetic/TestEm10/include/{Em10PhysicsListMessenger.hh => PhysicsList.hh} (58%) rename examples/extended/electromagnetic/TestEm10/include/{Em10SteppingAction.hh => PhysicsListMessenger.hh} (73%) create mode 100644 examples/extended/electromagnetic/TestEm10/include/PrimaryGeneratorAction.hh rename examples/extended/electromagnetic/TestEm10/{src/Em10StepCut.cc => include/RadiatorDescription.hh} (70%) create mode 100644 examples/extended/electromagnetic/TestEm10/include/RunAction.hh rename examples/extended/electromagnetic/TestEm10/include/{Em10EventActionMessenger.hh => RunMessenger.hh} (75%) rename examples/extended/electromagnetic/TestEm10/include/{Em10CalorimeterSD.hh => SensitiveDetector.hh} (72%) create mode 100644 examples/extended/electromagnetic/TestEm10/include/StackingAction.hh create mode 100644 examples/extended/electromagnetic/TestEm10/include/StepMaxMessenger.hh delete mode 100644 examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh create mode 100644 examples/extended/electromagnetic/TestEm10/include/TransitionRadiationPhysics.hh rename examples/extended/electromagnetic/TestEm10/include/{Em10XTRTransparentRegRadModel.hh => XTRTransparentRegRadModel.hh} (84%) delete mode 100644 examples/extended/electromagnetic/TestEm10/run11.mac create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorALICE06.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorBari05.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorBarr90.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorConstruction.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorHarris73.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorSimpleALICE.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/DetectorWatase86.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc delete mode 100644 examples/extended/electromagnetic/TestEm10/src/Em10TrackingAction.cc rename examples/extended/electromagnetic/TestEm10/src/{Em10CalorHit.cc => EventAction.cc} (68%) rename examples/extended/electromagnetic/TestEm10/src/{Em10Materials.cc => Materials.cc} (95%) create mode 100644 examples/extended/electromagnetic/TestEm10/src/PhysicsList.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/PhysicsListMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/PrimaryGeneratorAction.cc create mode 100644 examples/extended/electromagnetic/TestEm10/src/RunAction.cc rename examples/extended/electromagnetic/TestEm10/src/{Em10EventActionMessenger.cc => RunMessenger.cc} (53%) rename examples/extended/electromagnetic/TestEm10/{include/Em10CalorHit.hh => src/SensitiveDetector.cc} (58%) create mode 100644 examples/extended/electromagnetic/TestEm10/src/StackingAction.cc rename examples/extended/electromagnetic/{TestEm11/src/G4DiscreteScatteringProcess.cc => TestEm10/src/StepMaxMessenger.cc} (69%) mode change 100755 => 100644 create mode 100644 examples/extended/electromagnetic/TestEm10/src/TransitionRadiationPhysics.cc rename examples/extended/electromagnetic/TestEm10/src/{Em10XTRTransparentRegRadModel.cc => XTRTransparentRegRadModel.cc} (92%) delete mode 100644 examples/extended/electromagnetic/TestEm10/test.mac create mode 100755 examples/extended/electromagnetic/TestEm10/test_suite.sh delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/README delete mode 100755 examples/extended/electromagnetic/TestEm11/geant3/gmakeB delete mode 100755 examples/extended/electromagnetic/TestEm11/geant3/gmakeT delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/run01.dat delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/run02.dat delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/guout.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/main.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F delete mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F delete mode 100755 examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringModel.hh delete mode 100644 examples/extended/electromagnetic/TestEm11/mp.in create mode 100644 examples/extended/electromagnetic/TestEm11/radioactive.mac delete mode 100644 examples/extended/electromagnetic/TestEm11/sandia_mp.mac delete mode 100755 examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringModel.cc delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/README delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/anni.dat delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/compton.dat delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/conv.dat delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/electron.dat delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/gamma.dat delete mode 100755 examples/extended/electromagnetic/TestEm13/geant3/gmakeB delete mode 100755 examples/extended/electromagnetic/TestEm13/geant3/gmakeT delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/include/detector.inc delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/include/histo.inc delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/include/process.inc delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/photoelec.dat delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/proton.dat delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/ffuser.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/gtgama.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/gukine.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/guout.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/gustep.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/main.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/ugeom.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/uginit.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/uglast.F delete mode 100644 examples/extended/electromagnetic/TestEm13/geant3/src/uhinit.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/README delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/anni.dat delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/compton.dat delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/conv.dat delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/electron.dat delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/gamma.dat delete mode 100755 examples/extended/electromagnetic/TestEm14/geant3/gmakeB delete mode 100755 examples/extended/electromagnetic/TestEm14/geant3/gmakeT delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/include/detector.inc delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/include/histo.inc delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/include/process.inc delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/photoelec.dat delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/proton.dat delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/ffuser.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/gtgama.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/gukine.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/guout.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/gustep.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/main.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/ugeom.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/uginit.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/uglast.F delete mode 100644 examples/extended/electromagnetic/TestEm14/geant3/src/uhinit.F create mode 100644 examples/extended/electromagnetic/TestEm16/plotHisto.C create mode 100644 examples/extended/electromagnetic/TestEm16/run01_prot.mac delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/README delete mode 100755 examples/extended/electromagnetic/TestEm2/geant3/gmakeB delete mode 100755 examples/extended/electromagnetic/TestEm2/geant3/gmakeT delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/include/celoss.inc delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/include/history.inc delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/include/pvolum.inc delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/plotHisto.kumac delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/run01.dat delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/run02.dat delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/run03.dat delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/run04.dat delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/gukine.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/guout.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/gustep.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/gutrev.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/main.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/ugeom.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/uginit.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/uglast.F delete mode 100644 examples/extended/electromagnetic/TestEm2/geant3/src/uhinit.F create mode 100644 examples/extended/electromagnetic/TestEm3/radioactive.mac delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/README delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/anthony.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/berger.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat delete mode 100755 examples/extended/electromagnetic/TestEm5/geant3/gmakeB delete mode 100755 examples/extended/electromagnetic/TestEm5/geant3/gmakeT delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/hanson.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/shen1.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/shen2.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/grun.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/guout.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/main.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/testem5.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/tramu.dat delete mode 100644 examples/extended/electromagnetic/TestEm5/geant3/vincour.dat create mode 100644 examples/extended/hadronic/Hadr00/si.in create mode 100644 examples/extended/hadronic/Hadr07/.README.txt create mode 100644 examples/extended/hadronic/Hadr07/CMakeLists.txt create mode 100644 examples/extended/hadronic/Hadr07/GNUmakefile create mode 100644 examples/extended/hadronic/Hadr07/Hadr07.cc create mode 100644 examples/extended/hadronic/Hadr07/History create mode 100644 examples/extended/hadronic/Hadr07/Na22.mac create mode 100644 examples/extended/hadronic/Hadr07/README create mode 100755 examples/extended/hadronic/Hadr07/envHadronic.csh create mode 100755 examples/extended/hadronic/Hadr07/envHadronic.sh create mode 100644 examples/extended/hadronic/Hadr07/hadr07.in create mode 100644 examples/extended/hadronic/Hadr07/include/ActionInitialization.hh create mode 100644 examples/extended/hadronic/Hadr07/include/DetectorConstruction.hh create mode 100644 examples/extended/hadronic/Hadr07/include/DetectorMessenger.hh rename examples/extended/{runAndEvent/RE01/include/RE01UnknownDecayPhysics.hh => hadronic/Hadr07/include/EmStandardPhysics.hh} (70%) create mode 100644 examples/extended/hadronic/Hadr07/include/EventAction.hh rename examples/extended/{electromagnetic/TestEm11/include/G4DiscreteScatteringProcess.hh => hadronic/Hadr07/include/GammaPhysics.hh} (72%) mode change 100755 => 100644 create mode 100644 examples/extended/hadronic/Hadr07/include/HadronElasticPhysicsHP.hh create mode 100644 examples/extended/hadronic/Hadr07/include/HistoManager.hh create mode 100644 examples/extended/hadronic/Hadr07/include/NeutronHPMessenger.hh rename examples/extended/{electromagnetic/TestEm11/include/PhysListEmStandardMP.hh => hadronic/Hadr07/include/PhysListEmStandard.hh} (84%) mode change 100755 => 100644 rename examples/extended/{runAndEvent/RE01/include/RE01PhysicsList.hh => hadronic/Hadr07/include/PhysicsList.hh} (78%) create mode 100644 examples/extended/hadronic/Hadr07/include/PrimaryGeneratorAction.hh create mode 100644 examples/extended/hadronic/Hadr07/include/PrimaryGeneratorMessenger.hh rename examples/extended/{electromagnetic/TestEm10/include/Em10EventAction.hh => hadronic/Hadr07/include/Run.hh} (55%) create mode 100644 examples/extended/hadronic/Hadr07/include/RunAction.hh create mode 100644 examples/extended/hadronic/Hadr07/include/StepMaxBuilder.hh rename examples/extended/{electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh => hadronic/Hadr07/include/StepMaxMessenger.hh} (70%) create mode 100644 examples/extended/hadronic/Hadr07/include/StepMaxProcess.hh create mode 100644 examples/extended/hadronic/Hadr07/include/SteppingAction.hh create mode 100644 examples/extended/hadronic/Hadr07/include/SteppingVerbose.hh create mode 100644 examples/extended/hadronic/Hadr07/include/TrackingAction.hh create mode 100644 examples/extended/hadronic/Hadr07/multiLayers.mac create mode 100644 examples/extended/hadronic/Hadr07/plot2.C create mode 100644 examples/extended/hadronic/Hadr07/plotHisto.C create mode 100644 examples/extended/hadronic/Hadr07/proton.mac create mode 100644 examples/extended/hadronic/Hadr07/src/ActionInitialization.cc create mode 100644 examples/extended/hadronic/Hadr07/src/DetectorConstruction.cc create mode 100644 examples/extended/hadronic/Hadr07/src/DetectorMessenger.cc create mode 100644 examples/extended/hadronic/Hadr07/src/EmStandardPhysics.cc create mode 100644 examples/extended/hadronic/Hadr07/src/EventAction.cc create mode 100644 examples/extended/hadronic/Hadr07/src/GammaPhysics.cc create mode 100644 examples/extended/hadronic/Hadr07/src/HadronElasticPhysicsHP.cc create mode 100644 examples/extended/hadronic/Hadr07/src/HistoManager.cc create mode 100644 examples/extended/hadronic/Hadr07/src/NeutronHPMessenger.cc rename examples/extended/{electromagnetic/TestEm11/src/PhysListEmStandardMP.cc => hadronic/Hadr07/src/PhysListEmStandard.cc} (92%) mode change 100755 => 100644 create mode 100644 examples/extended/hadronic/Hadr07/src/PhysicsList.cc create mode 100644 examples/extended/hadronic/Hadr07/src/PrimaryGeneratorAction.cc create mode 100644 examples/extended/hadronic/Hadr07/src/PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/hadronic/Hadr07/src/Run.cc create mode 100644 examples/extended/hadronic/Hadr07/src/RunAction.cc rename examples/extended/{runAndEvent/RE01/src/RE01UnknownDecayPhysics.cc => hadronic/Hadr07/src/StepMaxBuilder.cc} (72%) create mode 100644 examples/extended/hadronic/Hadr07/src/StepMaxMessenger.cc create mode 100644 examples/extended/hadronic/Hadr07/src/StepMaxProcess.cc create mode 100644 examples/extended/hadronic/Hadr07/src/SteppingAction.cc create mode 100644 examples/extended/hadronic/Hadr07/src/SteppingVerbose.cc create mode 100644 examples/extended/hadronic/Hadr07/src/TrackingAction.cc create mode 100644 examples/extended/hadronic/Hadr07/vis.mac create mode 100644 examples/extended/hadronic/Hadr07/water.mac create mode 100644 examples/extended/medical/dna/clustering/GNUmakefile rename examples/extended/parallel/TBB/B2b/include/{tbbMasterRunManager.hh => SimpleTbbMasterRunManager.hh} (85%) rename examples/extended/parallel/TBB/B2b/src/{tbbMasterRunManager.cc => SimpleTbbMasterRunManager.cc} (87%) create mode 100644 examples/extended/persistency/gdml/G01/scaledTube.gdml create mode 100644 examples/extended/radioactivedecay/rdecay01/timeWindow.mac delete mode 100644 examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc create mode 100644 source/event/include/G4MultiEventAction.hh rename source/{processes/electromagnetic/utils/src/G4AtomicShell.cc => event/src/G4MultiEventAction.cc} (68%) create mode 100644 source/externals/clhep/include/CLHEP/Random/mixmax_skip_N17.icc create mode 100644 source/externals/clhep/include/CLHEP/Random/mixmax_skip_N8.icc create mode 100644 source/externals/clhep/include/CLHEP/Utility/use_atomic.h create mode 100644 source/geometry/magneticfield/include/G4BogackiShampine23.hh create mode 100644 source/geometry/magneticfield/include/G4BogackiShampine45.hh create mode 100644 source/geometry/magneticfield/include/G4DoLoMcPriRK34.hh create mode 100644 source/geometry/magneticfield/include/G4DormandPrince745.hh create mode 100644 source/geometry/magneticfield/include/G4DormandPrinceRK56.hh create mode 100644 source/geometry/magneticfield/include/G4DormandPrinceRK78.hh create mode 100644 source/geometry/magneticfield/include/G4FSALBogackiShampine45.hh create mode 100644 source/geometry/magneticfield/include/G4FSALDormandPrince745.hh create mode 100644 source/geometry/magneticfield/include/G4FSALIntegrationDriver.hh create mode 100644 source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc create mode 100644 source/geometry/magneticfield/include/G4TsitourasRK45.hh create mode 100644 source/geometry/magneticfield/include/G4VFSALIntegrationStepper.hh create mode 100644 source/geometry/magneticfield/include/G4VFSALIntegrationStepper.icc create mode 100644 source/geometry/magneticfield/src/G4BogackiShampine23.cc create mode 100644 source/geometry/magneticfield/src/G4BogackiShampine45.cc create mode 100644 source/geometry/magneticfield/src/G4DoLoMcPriRK34.cc create mode 100644 source/geometry/magneticfield/src/G4DormandPrince745.cc create mode 100644 source/geometry/magneticfield/src/G4DormandPrinceRK56.cc create mode 100644 source/geometry/magneticfield/src/G4DormandPrinceRK78.cc create mode 100644 source/geometry/magneticfield/src/G4FSALBogackiShampine45.cc create mode 100644 source/geometry/magneticfield/src/G4FSALDormandPrince745.cc create mode 100644 source/geometry/magneticfield/src/G4FSALIntegrationDriver.cc create mode 100644 source/geometry/magneticfield/src/G4TsitourasRK45.cc create mode 100644 source/geometry/magneticfield/src/G4VFSALIntegrationStepper.cc create mode 100644 source/geometry/management/include/G4BoundingEnvelope.hh create mode 100644 source/geometry/management/include/G4ScaleTransform.hh create mode 100644 source/geometry/management/include/G4ScaleTransform.icc create mode 100644 source/geometry/management/src/G4BoundingEnvelope.cc create mode 100644 source/geometry/solids/Boolean/include/G4ScaledSolid.hh create mode 100644 source/geometry/solids/Boolean/src/G4ScaledSolid.cc create mode 100644 source/global/management/include/G4MTBarrier.hh create mode 100644 source/global/management/src/G4MTBarrier.cc create mode 100644 source/interfaces/basic/moc/G4UIQt_moc.cc create mode 100644 source/materials/include/G4AtomicShells_EADL.hh create mode 100644 source/materials/src/G4AtomicShells_EADL.cc create mode 100644 source/physics_lists/constructors/decay/include/G4UnknownDecayPhysics.hh create mode 100644 source/physics_lists/constructors/decay/src/G4UnknownDecayPhysics.cc create mode 100644 source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsFTFP_BERT_ATL.hh create mode 100644 source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT_ATL.cc create mode 100644 source/physics_lists/constructors/ions/include/G4IonPhysicsPHP.hh create mode 100644 source/physics_lists/constructors/ions/src/G4IonPhysicsPHP.cc rename examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh => source/physics_lists/lists/include/FTFP_BERT_ATL.hh (65%) create mode 100644 source/physics_lists/lists/include/FTFP_BERT_ATL.icc rename source/physics_lists/lists/{src/G4RegisterPhysLists.cc => include/G4RegisterPhysLists.icc} (98%) rename source/processes/{hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh => electromagnetic/dna/processes/include/G4DNAElectronSolvation.hh} (52%) rename source/processes/electromagnetic/dna/processes/src/{G4DNAElectronSolvatation.cc => G4DNAElectronSolvation.cc} (86%) rename source/processes/electromagnetic/{utils/include/G4EnergyLossMessenger.hh => muons/include/G4ePairProduction.hh} (58%) rename examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc => source/processes/electromagnetic/muons/src/G4ePairProduction.cc (50%) rename source/processes/{hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc => electromagnetic/utils/include/G4NuclearFormfactorType.hh} (74%) delete mode 100644 source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc create mode 100644 source/processes/electromagnetic/xrays/include/G4ScintillationTrackInformation.hh create mode 100644 source/processes/electromagnetic/xrays/src/G4ScintillationTrackInformation.cc delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMCoulombBarrier.hh delete mode 100644 source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc create mode 100644 source/processes/hadronic/models/de_excitation/management/include/G4DeexPrecoParameters.hh rename source/processes/hadronic/models/de_excitation/{util => management}/include/G4VEmissionProbability.hh (85%) create mode 100644 source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc rename source/processes/hadronic/models/de_excitation/{util => management}/src/G4VEmissionProbability.cc (81%) rename source/processes/hadronic/models/parton_string/{management => qgsm}/include/G4PomeronCrossSection.hh (98%) rename source/processes/hadronic/models/parton_string/{management => qgsm}/src/G4PomeronCrossSection.cc (99%) delete mode 100644 source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc create mode 100644 source/processes/hadronic/models/radioactive_decay/include/G4BatemanParameters.hh delete mode 100644 source/processes/hadronic/models/radioactive_decay/include/G4RIsotopeTable.hh create mode 100644 source/processes/hadronic/models/radioactive_decay/src/G4BatemanParameters.cc delete mode 100644 source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc create mode 100644 source/run/include/G4MultiRunAction.hh create mode 100644 source/run/src/G4MultiRunAction.cc create mode 100644 source/tracking/include/G4MultiSteppingAction.hh create mode 100644 source/tracking/include/G4MultiTrackingAction.hh rename source/{processes/hadronic/models/de_excitation/photon_evaporation/src/G4VGammaTransition.cc => tracking/src/G4MultiSteppingAction.cc} (76%) create mode 100644 source/tracking/src/G4MultiTrackingAction.cc create mode 100644 source/visualization/OpenGL/moc/G4OpenGLQtExportDialog_moc.cc create mode 100644 source/visualization/OpenGL/moc/G4OpenGLQtMovieDialog_moc.cc create mode 100644 source/visualization/OpenGL/moc/G4OpenGLQtViewer_moc.cc create mode 100644 source/visualization/OpenInventor/include/pickext.h create mode 100644 source/visualization/OpenInventor/include/pickref.h rename source/{processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh => visualization/modeling/include/G4TrajectoryDrawByTouchedVolume.hh} (59%) rename source/{processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh => visualization/modeling/include/G4TrajectoryTouchedVolumeFilter.hh} (64%) create mode 100644 source/visualization/modeling/src/G4TrajectoryDrawByTouchedVolume.cc create mode 100644 source/visualization/modeling/src/G4TrajectoryTouchedVolumeFilter.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index d200991866..8a8bdafa89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ # # 21st September 2010 Ben Morgan # -# $Id: CMakeLists.txt 94339 2015-11-12 10:05:50Z gcosmo $ +# $Id: CMakeLists.txt 97443 2016-06-03 07:59:02Z gcosmo $ # #----------------------------------------------------------------------- @@ -35,9 +35,9 @@ set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX project(Geant4) # - Versioning. We do this here for now -set(${PROJECT_NAME}_VERSION "10.2.0") +set(${PROJECT_NAME}_VERSION "10.3.0") set(${PROJECT_NAME}_VERSION_MAJOR "10") -set(${PROJECT_NAME}_VERSION_MINOR "2") +set(${PROJECT_NAME}_VERSION_MINOR "3") set(${PROJECT_NAME}_VERSION_PATCH "0") diff --git a/ReleaseNotes/Beta4.10.3-1.txt b/ReleaseNotes/Beta4.10.3-1.txt new file mode 100644 index 0000000000..6708c988ae --- /dev/null +++ b/ReleaseNotes/Beta4.10.3-1.txt @@ -0,0 +1,770 @@ + + Geant4 10.3-beta-01 Release Notes + --------------------------------- + + 30 June 2016 + + Migration Notes & Main New Features + ----------------------------------- + + o Introduced new utility class G4MTBarrier implementing a synchronization + point between threads. + o Added handling of multiple actions to be instantiated and handled by + user code. Added G4MultiRunAction, G4MultiPrimaryAction and + G4Multi{Stepping,Tracking}Action. + o Added ability to scale shapes' dimension in X, Y and Z. + Added possibility to import/export scaled shapes in GDML. + o Updated properties of particles according to PDG-2015. + o Introducing floating level base to G4Ions and related classes. + o Disabled multiple-scattering at post-step for position change, + now all happening along-step. + o All EM parameters now handled by G4EmParameters class and can be modified + via UI commands, G4EmProcessOptions class is obsolete and will be + removed soon. + o Major revision of the QGS final-state model (note: this was already + included in 10.2.beta, but did not enter in 10.2 due to the missing + re-tuning of parameters): implemented Reggeon cascading and "Fermi motion"; + new algorithm for the determination of the kinematical properties of + partons; improved formation of the residual nucleus. + o New tuning of the FTF model parameters; introduced smearing of delta-isobar + mass and improved di-quark fragmentation into baryons in Lund string + fragmentation. + o Introduced drawing and filtering by touched volume in visualization. + o New data sets G4ENSDFSTATE-1.3.1, G4RadioactiveDecay-4.4.1 and G4TENDL-1.2. + + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o Tested platforms: + + Linux, gcc-4.8.4. + Tested on 64 bit architectures (Intel or AMD) with CERN CentOS + Linux 7 (CC7) (based on CentOS Linux 7). + Versions of Geant4 have also been compiled successfully on other + Linux distributions, Ubuntu, Debian, Suse or other RedHat systems. + + MacOSX 10.11, clang-3.7 (Apple LLVM/Clang-7.3.0) + * For multi-threading on MacOSX, -clang- compiler has to be used. + + Windows/10 with Visual C++ 14.0 (Visual Studio 2015) + * Multi-threading mode currently -not- supported on Windows. + + o More verified configurations: + + Linux, gcc-4.9.4, gcc-5.3.0, gcc-6.1.0 + + Linux, Intel-icc 15.0, 16.0. + + MacOSX 10.10 with clang-3.6 + + MacOSX 10.9 with clang-3.5 + + Linux for Intel Xeon Phi with Intel-icc 15.0, 16.0 + (gcc-4.9 compatibility layer) + + o Geant4 10.3-beta-01 has been tested using CLHEP-2.3.3.0, required + for external installation of the CLHEP library. + + Please refer to the Geant4 User Documentation: + http://cern.ch/geant4/support/userdocuments.shtml + for further information about using Geant4. + + ---------------------------------------------------------------------------- + +List of features and fixes included in this Beta release since 10.2.p02: + + o Configuration: + ------------- + + CMake: + o Set CLHEP-2.3.3.0 as the required version for external CLHEP library. + o Updated version of data sets: + G4ENSDFSTATE-1.3.1, G4RadioactiveDecay-4.4.1 and G4TENDL-1.2. + Updated tags for 10.3-beta. + + o Analysis: + -------- + + Fixed incompatibility with ROOT 5.x and 6.x formats. + + Fixed compilation warnings on Windows-64. + + Updated to g4tools version 1.27.4 (see History_tools). + + o Event: + ----- + + Introducing G4MultiEventAction to allow multiple user actions + in the same job. + + o Externals: + --------- + + Updated CLHEP module to version 2.3.3.0: + o Added use_atomic.h header to use std::atomic if compiler supports it. + o MixMaxRng: corrected initialisation and use of 'numberOfEngines' + when more than one threads calls the constructor. + Use simple loop for flatArray(); engine built-in function turns out + to be extremely slow and unefficient. + Use seed_spbox() for seeding MixMax with single seed. + Avoid hard-coded constant for initialisation of VECTOR_STATE_SIZE in + MixMaxRng, to directly use actual value of "N" from mixmax generator. + Corrected check for counter range in method getState(). + Changed default number of N in mixmax generator to 17 (was 256). + Removed use of obsolete 'register' keyword. + Provided new skipping coefficients for the new value of N and for + the optional case N=8. + o HepRandom: revised settings of "defaults" to use a single + thread_local pointer. + + o Geometry: + -------- + + magneticfield: + o Added new stepper classes G4BogackiShampine23 (BS23), + G4BogackiShampine45 (BS45) and DormandPrince745 (DP45), + implementing third order (BS23) and fifth order (BS45, DP45) + embedded RK tableaus. + o Added new stepper classes embedded RK method: DoLoMcPriRK34 (6-stage + 3/4 RK, interpolation), DormandPrinceRK56 (9-stage 5/6 RK, + interpolation, FSAL-able) and DormandPrinceRK78 (13-stage 7/8 RK, + interpolation). + o Added TsitourasRK45 stepper. + o First version of FSAL classes: FSAL Integrator Driver (concrete, + stand-alone driver); FSAL Integrator Stepper (base class); + FBogackiShampine45 (FSAL-version of BogackiShampine45 stepper); + FDormandPrince745 (FSAL-version of FDormandPrince745 stepper). + o G4MagIntegratorStepper: added counter for calls to equation RHS, + with Get/Reset() methods. + o G4HelixMixedStepper: fixes and added new (5th order) stepper choices. + o Fix in G4CashKarp for the size of arrays holding intermediate values. + + management: + o Added G4ScaleTransform class for Cartesian scaling transformations. + o Introduced G4BoundingEnvelope helper class to be used for the + calculation of the extent of a solid within the limits defined by + the G4VoxelLimits object. + o Properly use 3D transformations in G4ReflectedSolid. Removed unused + affine-transformation data and related methods; removed not used cached + inverse transformation. Simplified code. + Re-implemented CalculateExtent() to use new class G4BoundingEnvelope. + + solids/Boolean: + o Added new class G4ScaledSolid providing ability to scale dimensions of + a shape in X, Y or Z. + o Boosted computation of GetPointOnSurface() for G4BooleanSolid; + reimplemented algorithm, using cached list of primitives. + o Added warning in G4BooleanSolid::GetPointOnSurface() in case of non + convergence after fixed number of trials. + + solids/specific: + o Revised implementation for GetSurfaceArea() and GetCubicVolume() in + G4GenericTrap. + o Added 'const' qualifier for methods in G4ExtrudedSolid. + Added CheckPolygon() to remove collinear and coincident points from + polygons. + o Improved algorithms for computation of area in G4TriangularFacet and + G4QuadrangularFacet. Added post-const qualifier to GetArea(). + o G4QuadrangularFacet: added exhaustive tests in constructor to catch + potential problems with a quadrangular facet: collinear vertices, non + planar surface, degenerate, concave or self intersecting quadrilateral. + o G4TriangularFacet: improved test in constructor to detect degenerate + (too small or too narrow) triangles. + + o Global: + ------ + + Added 'us' and 'ps' units symbols for microsend and picosecond + respectively to G4UnitsTable. Requiring new CLHEP library 2.3.3.0 + for external CLHEP library. + + Converted all units and constants from "static const" to "static + constexpr". + + Introduced new utility class G4MTBarrier implementing a synchronization + point between threads. + + Changed exception code in G4TWorkspacePool from G4TWorkspacePool + to "WorkspaceNN". + + Changed date for release 10.3-beta. + + o Materials: + --------- + + G4DensityEffectData, G4IonisParamMat: fixed density effect parameters + corrections for the case when NIST mean ionisation potential is not equal + to that parameter in Shternheimer table. + + G4NistElementBuilder, G4NistMaterialBuilder: added access to the mean + ionisation potential; put liquid water in front of the list of NIST + materials (index=0), so pure materials can be easier accessed via atomic + number (Z > 0). + + Added new class G4AtomicShells_EADL which extends shell data up to Z=120. + + G4MaterialPropertiesTable: moved complex methods from inline to source. + + G4UCNMicroRoughnessHelper: all methods declared as const. + + G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: added new + const methods FindElement(), FindMaterial() and FindSimpleMaterial(), + for possible run-time use in MT mode. + + G4Material: avoid deletion of G4MaterialPropertyTable. + + G4Element: added method GetZ_asInt(). + + G4AtomicShells, G4SandiaTable: substituted asserts by G4Exception. + + Code cleanup; adoption of nullptr, use of const/static. + + o Particles: + --------- + + Updated properties of particles according to PDG-2015. + + Introducing floating level base to G4Ions and related classes. + Migrated G4NuclideTable to the new floating level base scheme; + temporarily disable new scheme for G4IsotopeMagneticMomentTable. + + Fixed G4IonTable::GetIon() with non-zero level. + + Changed default life of ion and hyper nucleus from -1 to 0. + + Fixed Coverity defects. + + o Persistency: + ----------- + + GDML: + o Added ability to automatically export the names of sensitive detectors + as auxiliary information. + o Added ability to import and export scaled shapes. Extended GDML schema + by adding "scaledSolid" tag supporting scaled shapes. + o New GDML schema version 3.1.4 (files: gdml.xsd, gdml_solids.xsd). + + o Physics Lists: + ------------- + + Builders: + o Disabled multiple-scattering at post-step in OrderingParameterTable. + + Constructors: + o electromagnetic: + - Added SetScintillationTrackInfo() method to G4OpticalPhysics with + associated command in G4OpticalPhysicsMessenger. + Fixed memory leak in G4OpticalPhysicsMessenger. + - Partial fix for allowing calls to optical UI commands in "PreInit" + state. Partially addressing problem report #1832. + - G4EmStandardPhysics_option3, option4: added process of e+e- pair + creation by e+ and e-; enabled lateral displacement for muons and + hadrons. + - G4EmStandardPhysicsGS: set default range factor to 0.1. + - DNA and ModelActivator constructors: corrected model/process names; + adjusted high energy threshold of solvation (kill) in respect to the + energy range of the elastic model. + Added G4DNAElectronSolvation to all DNA constructors. + - Updated G4EmDNAPhysics_option5 and G4EmDNAChemistry. + - Updated G4EmDNAPhysics_option7 constructor. + - Updated G4EmModelActivator. Fixed activation of DNA models. + Use Uehara model with chemistry. Corrected elastic process name + for ions. + - Added flag and command for whether or not to call InvokeSD() method + of G4OpBoundaryProcess. + - Fixed G4Exception message in G4OpticalPhysicsMessenger. + - Fixed Coverity defects. + o decay: + - Added G4UnknownDecayPhysics constructor. + - G4RadioactiveDecayPhysics: enabled atomic de-excitation by the call + to EM parameters in ConstructProcess() method. + + Lists: + o FTFP_BERT_TRV: Switch on the low-mass diffraction dissociation + used in G4HadronHElasticPhysics. + Use GS multiple scattering with the most precise "error-free" + stepping instead of the default (Opt0), for the purpose of studying + the impact of multiple scattering on hadronic showers. + o Moved code to be inline in G4RegisterPhysLists so that it gets + compiled as part of the G4PhysListRegistry compilation unit. + This ensures that all the physics lists declared to the registry are + referenced by it such that the linker will include them if libraries + are built statically. + + o Electromagnetic Processes: + ------------------------- + + DNA: + o G4DNAScreenedRutherfordElasticModel: modified handling of energy + boundaries at init time. Deprecated SetKillBelowThreshold() method; + modified initialisation to prevent erasing/rewriting data. + o G4DNAChemistryManager: reversed logic in CreateWaterMolecule() + for interface with physics models. + o G4DNAChampionElasticModel: rearranged declaration of attributes. + Deprecated GetKillBelowThreshold() method; removed attributes; + modified Theta() method. Reset check ekin >= LowEnergyLimit(). + Added missing computation of 'sigma'. + o G4DNAUeharaScreenedRutherfordElasticModel: added exception at init + time if model is used for anything other than e-. + Deprecated SetKillBelowThreshold() and GetKillBelowThreshold() methods, + use G4LowECapture or G4DNAElectronSolvatation; modified + SelectHighEnergyLimit() method; removed attributes. + Added possibility to extend applicability limit. + o G4DNAChampionElasticModel, G4DNAUeharaScreenedRutherfordElasticModel: + added pre-processor flag to control Verbose check mode; checking energy + boundaries in Initialise(), removed call to G4Electron; cleanup in + CrossSectionPerVolume by removing unnecessary checks and calls to map; + removed energy checks in SampleSecondaries(). + o Updated fast computation of G4DNAScreenRutherfordElasticModel and + G4DNAUeharaScreenedRutherfordElasticModel. + o Renamed class G4DNAElectronSolvatation to G4DNAElectronSolvation. + o G4DNAOneStepThermalizationModel: using pre-processor flag to control + check mode verbosity; removed call to G4Electron at initialization. + o G4DNATransformElectronModel: using pre-processor flag to control check + mode verbosity; removed call to G4Electron at initialization; added + check for creation of solvated electron. + o G4MoleculeCounter: at initialization time, prevent creating entries + for unregistered molecule definition. + Removed check of c++ version for unique_ptr/auto_ptr selection. + o G4DNAMeltonAttachmentModel, G4DNASancheExcitationModel: removed usage + of internal energy boundaries. + o G4DNASancheExcitationModel: removed warning when SANCHE_VERBOSE is OFF. + o G4VUserChemistryList: added flag; some code cleanup. + o Added nrj extensibility to SR and USR models. + o Replaced usage of std::exp() by G4Exp(). + + High Energy: + o Use C++11 features explicit, override, delete, nullptr. + + Muons: + o G4ePairProduction: new process e+e- pair production by e+-. + o Use C++11 features explicit, override, delete, nullptr. + + Polarisation: + o G4PolarizedCompton, G4eplusPolarizedAnnihilation, + G4ePolarisedIonisation: in PostStepGPIL(), use cached values of + 'currentInteractionLength'; fixes problem at boundaries where + updated value was incorrectly used. + o C++11 migrations: explicit, override, delete operators on function + declarations; remaining nullptr; write floats/doubles with '.'. + Use C++11 features nullptr and range-based for loop in + G4PolarizationManager. + + Standard: + o G4UrbanMscModel: use new lateral displacement algorithm in opt-3 + and opt-4 physics-lists. Modified randomisation of "true path length". + o G4UniversalFluctuation: fixed bug in Glandz part, Gaussian sampling. + The sampling is symmetrical around 'emean' now. Some code cleanup. + o G4SeltzerBergerModel: fixed data handling for Z > 92. + Addressing problem report #1870, about invalid read of data + at run time. + o G4eBremsstrahlungRelModel: change LPM constant such that it gives + suppression variable consistent with Migdal's one; fixes small issue in + LPM function computation. + o G4alphaIonisation, G4hIonisation, G4ionIonisation: do not define + StepFunction in constructor. + o Fixed shadowing compilation warnings in G4GoudsmitSaundersonMscModel + for 'ps'. + o G4ASTARStopping, G4PSTARStopping, G4NISTStoppingData, G4BraggModel: + data arrays become float, computation is left double. + o G4BraggModel, G4BraggIonModel, G4BetheBlochModel: use float for local + static data. + o Added c++11 keywords: explicit, final, override, delete; use nullptr + and use G4Element::GetZasInt(). + + Utils: + o G4VEmProcess, G4EmModelManager: added extra methods to access models. + o G4VEnegryLossProcess, G4EmCorrections: removed unused class members. + o Use C++11 keywords explicit, override, delete and nullptr. + o G4EmParameters, G4EmParametersMessenger: moved remaining parameters + from G4EmProcessOptions, which now becomes obsolete. + o G4EmCalculator, G4LossTableBuilder, G4LossTableManager, G4VMscModel, + G4VEmModel, G4VEmProcess, G4VEnergyLossProcess: use only G4EmParameters + class interfaces for initialisation. + o G4NuclearFormfactorType: added new enumerator. + o G4VMultipleScattering: moved position change to AlongStep. + Added method NumberOfModels(). + o G4EmModelManager: reviewed and fixed model configuration for DNA + physics. + o G4EmParameters: allow to change parameters only from the master thread + and only at PreInit or Idle states. + o G4EmCorrections: make part of data static, make internal vectors static, + shared between threads. + o G4LossTableManager, G4VEmModel, G4VMultipleScattering: minor cleanup of + static const data. + o G4VEmModel, G4VAtomDeexcitation, G4EmCalculator: use new method + GetZasInt() from G4Element. + o G4VEmModel: fix in SelectRandomAtomNumber() method. Fixed destruction + in MT mode. + o G4VAtomDeexcitation: fixed possible data race at initialistion. + Extended printout at initialisation. + Completed migration to G4EmParameters interface. + o G4AtomicShell: make methods inlined. + o G4DummyModel: set default low-enegry limit to 0 (needed for DNA). + o G4VMultipleScattering, G4EmModelManager, G4LossTableManager: improved + debug printout. + o Fixed Coverity defects. + + Xrays: + o Added new class G4ScintillationTrackInformation and use it in + G4Scintillation. + o Use C++11 features explicit, override, delete, nullptr. + + o Generic Processes: + ----------------- + - Biasing: + o Checked for unbounded while loop in G4ProcessPlacer. + + Decay: + o Added better diagnostics in exception in G4Decay::DecayIt(). + + Optical: + o Added flag for InvokeSD() method call in G4OpBoundaryProcess. + + o Hadronic Processes: + ------------------ + + cross_sections + o Checked do-while loops for potential infinite loops. + + management + o G4HadronicProcess: added flag for "integral" approach to take into + account cross-section change at a step. Do not create new materials + in GetElementCrossSection(), just try to find existing simple + G4Material ones instead. Adopt C++11 keyword nullptr. + o G4HadronicProcessStore: call initialisation of all + G4HadronicInteractions. + + models/coherent_elastic + o G4LMsdGenerator: restored hadronic internal decay scheme allowing for + stable decay of the Roper resonances. + + models/de_excitation + o G4EvaporationChannel, G4EvaporationProbability: fixed kinematics + and added discrete excitation energy for the residual fragment + if the excitation is below maximum known level energy. + o G4NuclearLevelData: added extra methods allowing to access the maximum + level energy per isotope in level DB. Added method FindLevel() allowing + to find discrete level for any consumer model. + o G4DeexPrecoParameters, G4NuclearLevelData: added new class for + parameters. + o G4EvaporationProbability: fixed bug in computation of probability + density function; use new method FindLevel() in G4NuclearLevelData when + sampling kinetic energy of emitted particles; changed interface for + sampling method. More detailed grid for probabilities. + Use same sampling algorithm as in the pre-compound model (do not + interpolate probability). + o G4EvaporationChannel: use new interface to the sampling of energy. + o Updated list of parameters; added full list of pre-coumpound parameters + and extra de-excitation ones. Allow to change parameters only from the + master thread and only at PreInit or Idle states. + o G4ExcitationHandler: allow addition of new evaporation or FermiBreakUp + models after the initialisation of the handler. + Removed G4Exception when MF model is called, instead increase default + limit on excitation energy per nucleon to 100GeV. + o G4ExcitationHandler, G4EvaporationChannel, G4EvaporationProbability, + G4NeutronRadCapture: use G4DeexPrecoParameters for initialisation; + initialisation is done once at the first event. + o G4NucLevel, G4LevelManager, G4LevelReader, G4PhotonEvaporation: changed + data structure for the transition data; instead of final energy, index + of final level, added multi-polarity of the transition. + This will allow for correlated gamma emission. + o G4EvaporationChannel, G4EvaporationProbability: improved initialisation + of run time members + o G4NuclearLevelData: improved FindLevel() method. + o G4VEvaporationChannel, G4LevelReader, G4ExcitationHandler, + G4LevelReader: removed commented lines, removed empty descructors. + o G4VEvaporation, G4Evaporation, G4VFermiBreakUp, G4FermiBreakUp, + G4PhotonEvaporation, G4ExcitationHandler: cleaned up initialisation; + added G4VFermiBreakUp pure virtual methods allowing to have alternative + models. + o G4Evaporation: allow change of the channel factory after initialisation. + o G4NeutronRadCapture: added initialisation of G4PhotonEvaporation. + o G4DeexPrecoParameters, Evaporation: use default channel factory. + o G4NuclearLevelData, G4LevelManager: added method to access low-edge + levels. + o G4KalbachCrossSection: more smooth inverse cross section for transitions + of high energy. + o Removed specific GEMCoulombBarrier classes per ion. + o G4PhotonEvaporation: rationalised initialisation in case radioactive + decay initialisation is incomplete, no effect on hadron inelastic + interactions. + o G4DeexPrecoParameters, G4NuclearLevelData, G4ExcitationHandler, + G4PhotonEvaporation: fixed initialisation in MT mode if physics-list + has only radioactive decay. + o Added c++11 keywords in many headers. + o Added warning in G4ExcitationHandler for super excited fragments; + improved warning printout for the high energy excitation. + o G4LevelManager, G4NucLevel: substituted asserts by G4Exception. + o Cleaned up code in CoulombBarrier and FermiFragment classes. + o Fixed Coverity defects. + + models/management + o G4HadronicInteractionRegistry: added InitialiseModels() method. + G4HadronicInteraction: added InitialiseModel() method. + o G4VPreCompoundModel, G4VIntraNuclearTransportModel, + G4HadronicInteractionRegistry, G4HadronicInteraction: + added c++11 keywords, minor cleanup. + + models/particle_hp + o Changed default option of GNUmake script; G4PHPDEBUG flag was + unintentionally activated. + + models/parton_string + o Major revision of QGS model; implemented Reggeon cascading and + associated "Fermi motion". Implemented new algorithm of parton + kinematical properties determination and calculation of residual + nucleus properties. Adjusted G4GammaParticipants to the revised + model. + o Improved energy-momentum conservation in the QGS model, especially + in the case of diffraction interactions. + o G4QGSMSplitableHadron: fixed bug in the case of gamma projectile with + P_minus = 0. + o New tuning of FTF model parameters. + o Introduced various for diffractive and non-diffractive + interactions in G4FTFModel, for NA49 and NA61/SHINE experimental data. + o Fine tuning in G4DiffractiveExcitation for the FTF model, to describe + NA49 experimental data, especially, on Xf. + o Fix to address the baryon puzzle of NA49 data; of baryons 1/2 at a + string fragmentation setting up at 435 MeV/c, and for barion 3/2 + production st 900 MeV/c. + o Fine tuning of G4LundStringFragmentation. of mesons created at + quark fragmentation is decreased. of baryons created at quark and + di-quark is increased. Corrected fragmentation functions of qq-> B(1/2) + and B(3/2). is increased in 2 times. + Important for a description of NA49 experimental data on pp-interactions + at 158 GeV/c, especially for xF and Pt distributions. + o Introduced smearing of delta-isobar mass; delta-isobars are now treated + as a kinetic track; improved parameterisation of the quark exchange + process with excitation. + NA61/SHINE exp. data on Pi+, Pi-, K+, K- and protons in PP interactions + at 20, 31, 40, 80 and 158 GeV/c are now described. Now reproducing the + ratio of / in PP interactions. Not describing kink + in AA interactions. + o Improved di-quark fragmentation into baryons in Lund string + fragmentation. Improved description of NA49 and NA61/SHINE exp. data + on p+p->p+X. Improvements in method SetMinimalStringMass(), relevant + for Pbar P annihilation. + o Moved G4PomeronCrossSection class to 'qgsm' module. + + models/pre_equilibrium + o G4PreCompoundModel: changed non-equilibrium condition to switch to + de-excitation; this allows to perform pre-equilibrium emission for + light nuclei. + o Migrated classes to use G4DeexPrecoParameters; removed obsolete class + G4PreCompoundParameters. + o G4GNASHTransitions: fixed problem in computation of probability. + o Use nullptr and define internal const as static const. + + models/radioactive_decay + o G4RadioactiveDecay: renamed several methods and variables to more + closely represent their meaning. + In DoDecay(): added protection for zero pointer in case of missing + decay channel. Added new method AddDeexcitationSpectrumForBiasMode(). + In BuildPhysicsTable(), removed initialization of atomic de-excitation + to avoid overwriting its initialization in EM. + Throw fatal exception if initialization not done somewhere. + Initialisation should be now done in physics-lists. + o Added production of gamma and electron spectra from de-excitation of + excited levels in the biased mode. + o Removed obsolete class G4RIsotopeTable. + + models/util + o Fixed Coverity defect in G4Fragment. + + o Run + --- + + Added handling of multiple actions to be instantiated and handled by + user code. Added G4MultiRunAction class to allow for multiple run actions + in a single job; added G4MultiPrimaryAction to allow for multiple + user-primary generation actions in a single job. + + Renamed all MT related exceptions to have new code matching pattern. + + Use scoped enum for G4MTRunManager::WorkerActionRequest and + added PROCESSUI action. + + Added G4MTRunManager::GetNumberActiveThreads() method. + + Use new class G4MTBarrier to implement synchronization points. + + Introduced skeleton for new functionality to force workers to + execute UI commands w/o beamOn. + Introduced new UI command: "/run/workersProcessCmds" to trigger + execution of UI commands by workers even without a "/run/beamOn"; + C++ API is G4MTRunManager::RequestWorkersProcessCommandsStack(). + + When workers are terminated they execute the UI commands issued + after the last /run/beamOn + + Fixed potential memory leak in G4RunMessenger. + + Disabled multi-scattering during post-step in G4PhysicsListHelper. + Fixed default process ordering parameters for G4UnknownDecay that + should not have AtRest. + + G4AdjointSimManager: correction in the use of run actions to avoid + infinite loop during an adjoint simulation. + + G4AdjointPrimaryGenerationAction: removed 3 times splitting of primary + adjoint gamma. + + o Track & Tracking + ---------------- + + Change G4VUserTrackInformation pointer in G4Track to mutable and setters + to be const-methods. This allows the user to set his/her + G4VUserTrackInformation pointer without casting G4Track const pointer. + + New G4Multi{Stepping,Tracking}Action classes to allow for multiple + user-actions in the same job. + + o Visualization: + ------------- + + management: + o MT mode: moved flush to end of visualization thread; this is so that + all trajectories are flushed from the thread before switching back to + master thread. Also fixing picking in MT mode. + o Introduced UI command /vis/viewer/interpolate. + o Added some calls to SetView for security. + o Inhibited use of BeginRun, BeginEvent, EndEvent and EndRun + when vis is not enabled, for example after /vis/disable. + In particular this prevents the start of the vis thread in + multi-threading mode. + o G4VisExecutive: registered drawing and filtering by touched volume. + o G4VisCommandsSceneAdd: removed incorrect check on existing models in + command "/vis/scene/add/volume". It was preventing parallel worlds being + added individually. + o Fixed mistake in introductory vis manager message. + o Improved error tracking: introduced error code to track error + conditions in G4VVisCommand; tracked error conditions for '/vis/open' + and '/vis/drawTree' in G4VisCommandsCompound. + o Improved '/vis/viewer/save'. + o Use SetWorldVolume() for OriginVolume drawing and filtering. + o Code cleanup in G4VisCommandsSceneHandler. + + modeling: + o Introduced drawing and filtering by touched volume. + i.e., "/vis/modeling/trajectories/create/drawByTouchedVolume" + "/vis/filtering/trajectories/create/touchedVolumeFilter" + and their associated commands. + This selects only by a single string, the physical volume name. + If there are more than one physical volumes with that name then any + trajectory touching any one of those volumes will be selected. + If the user sets more than one physical volume name (by using the set + command more than once) the trajectory will be selected if it touches + either of those volumes and which of the attributes (e.g., colour) + associated with those volumes is chosen is arbitrary. + A more comprehensive facility would allow the user to select by + touched touchable, i.e., by the full path and copy numbers of the + physical volume - but that is a job for the future if a use case arises. + o Added specific arguments to LocateGlobalPointAndSetup() to handle + multi-threading mode in G4TrajectoryDrawByOriginVolume::Draw() and + G4TrajectoryOriginVolumeFilter::Evaluate(). + o G4TrajectoryModelFactories: added + G4TrajectoryDrawByTouchedVolumeFactory. + o G4TrajectoryFilterFactories: added + G4TrajectoryTouchedVolumeFilterFactory. + o Added new files and classes: G4TrajectoryDrawByTouchedVolume and + G4TrajectoryTouchedVolumeFilter. + o G4ModelColourMap: sdded new access function GetBasicMap(). + o G4ModelingParameters: added VisAttributesModifier set commands. + o Tidied uo G4TrajectoryDrawByOriginVolume. + o G4TrajectoryDrawByOriginVolume: tidied #include statements. + + OpenGL: + o Xm: Ensure all items get flushed to screen, even when + 'eventsDrawInterval' is set greater than 1. + o Fixed some inconsistencies in "/vis/ogl/set/eventsDrawInterval" and + "/vis/ogl/set/displayListLimit" commands. + o Fixed bug in picking output text. + o G4OpenGLXViewer: Added thread awareness regarding glXMakeCurrent. + o Fix for notifying multiple OGL X views. + o Fix in G4OpenGLViewer::getRealPrintFilename() so that files can + easily be referenced in alphanumeric order. + o CompareForKernelVisit(): tested for total visualization attributes + modifiers instead of just for size. + o Fixed typo for macro G4CONDITIONBROADCAST. + + OpenInventor: + o G4OpenInventorXtExaminerViewer: designed new icons (XPM) for the + "Extended Pick Mode" and "Pick Reference Trajectory" buttons. + o Modified the mouse-over-trajectory output to make it more clear. + o Improved diagnostics for Bookmark file handling. + o New approach for determining distance along the reference path, using + element centers instead of bounding boxes. Solves problems with spurious + bounding box warnings and incorrect distance values. + o G4OpenInventorXtExtended & G4OpenInventorXtExtendedViewer: suppressed + some unwanted diagnostic output. + o Fixed setting of transparency type + (SoGLRenderAction::SORTED_OBJECT_ADD). + o Fixed dispatching. + o Fixed Coverity defects. + + Tree: + o G4ASCIITreeSceneHandler: prevent multiple writing of the informational + header on the output file. + + XXX: + o CompareForKernelVisit(): tested for total visualization attributes + modifiers instead of just for size. + + o Data Sets: + --------- + + G4ENSDFSTATE-1.3.1: + o Added missing data for AC225, SI25, 193RN, TE140. + + G4RadioactiveDecay-4.4.1: + o Added KM coefficients for e- capture and taken from DDEP data. + o Correction to Fe55 + o Corrected 0 lifetime for Ac225. + + G4TENDL-1.2: + o Compressed version of the library. + o Added information of source (ENDF/B-VII.1 or TENDL-2014) for each file. + o Fixed problem to Deuteron/Inelastic/F01/1_3_Hydrogen.z. + + o Examples: + -------- + + Updated reference outputs, macros and scripts. + + advanced/air_shower + o Replaced usage of std::log() by G4Log(). + + advanced/amsEcal + o PhysListEmStandard: use G4EmParameters. + + advanced/composite_calorimeter (ccal-V10-02-00) + o Replaced usage of std::exp() by G4Exp(). + + advanced/hadrontherapy + o Added new modulator class. + + advanced/microbeam (microbeam-V10-02-00) + o Replaced usage of std::exp() by G4Exp(). + + advanced/microelectronics + o Fixed multiple-scattering definition in PhysicsList. + + advanced/nanobeam + o Replaced usage of std::exp() by G4Exp(). + + advanced/underground_physics + o DMXPhysicsList: migrated EM physics to G4EmParameters. + + extended/electromagnetic/TestEm0 + o PhysicsList: use G4EmParameters. + + extended/electromagnetic/TestEm1 + o PhysicsList::AddRadioactiveDecay(): set like threshold to + 0.1*picosecond in G4NuclideTable. Updated radioactive.mac. + Use G4EmParameters. + o Added decayinfly.mac macro. + o Modified colors in vis.mac. + o PrimaryGeneratorMessenger: restore command SetDefaultKinematic. + Updated all macros. + + extended/electromagnetic/TestEm2 + o PhysicsList: use G4EmParameters. + + extended/electromagnetic/TestEm3 + o PhysicsList: use G4EmParameters. + + extended/electromagnetic/TestEm5 + o EventAction: corrected filling of histogram 1. + o PhysicsList: use G4EmParameters. + o Removed geant3 sub-directory. + + extended/electromagnetic/TestEm7 + o Fix in c2_functions. + o Fixed compilation warnings on gcc-6.1. + + extended/electromagnetic/TestEm8 + o TestParameters, Run, PrimaryGeneratorAction, PrimaryGeneratorMessenger: + reorganized printout of beam particle; use energy smearing as an + addition of noise, so smeared noise should be added in units of energy. + + extended/electromagnetic/TestEm10 + o Major example revision & clean-up: simplified class names; refactored + detector construction & its messenger classes; revised scoring, removed + unused code and replaced histograms with standard calls to g4tools; + added StackingAction which accounts XTR gamma, all gamma and all e- + spectra; changed to a modular physics list and introduced + TransitionRadiationPhysics builder; clean-up of the primary generator + action; added test_suite.sh script. + + extended/electromagnetic/TestEm11 + o PhysicsList: added radioactiveDecay process; use G4EmParameters. + o Removed G4DiscreteScattering. + o Run: compute energy deposit per absorber + o PrimaryGenerator: restored SetDefaultKinematic(). + o Updated macro radioactive.mac. + + extended/electromagnetic/TestEm12 + o PhysicsList, PhysListEmStandard: use G4EmParameters. + + extended/electromagnetic/TestEm13, TestEm14 + o PhysicsList: use G4EmParameters. + o Removed geant3 sub-directory. + + extended/electromagnetic/TestEm15 + o PhysicsList: use G4EmParameters. + + extended/electromagnetic/TestEm18 + o PhysListEmStandard: use G4EmParameters. + + extended/hadronic/Hadr06 + o Added NE213 material. + o PhysicsList: added G4StoppingPhysics. + o EmStandardPhysics: use G4EmParameters. + + extended/hadronic/Hadr07 + o New example to survey energy deposition and particle's flux from + an hadronic cascade. + + extended/medical/dna/clustering + o Added GNUmakefile and reference output. + + extended/medical/dna/dnaphysics + o Added flagProcess value for electron capture. + o DetectorConstructor, DetectorMessenger: ensure that geometry is created + once; material may be changed for next runs. + o SteppingAction: added label for solvation. + o Added 2nd argument in SteppingAction for number of threads. + o /run/initialise moved from code to macro. + o DNA physics configuration moved from code to macro. + + extended/medical/dna/microdosimetry + o Increase cuts of G4ElectronCapture to 7.4 eV to remain compatible + with the energy validity of the Champion's elastic model. + + extended/medical/dna/range + + extended/medical/dna/wvalue + o Changed physics constructor selection. + + medical/electronScattering + o PhysListEmStandard: use G4EmParameters. + o PhysListEmStandard_WVI, SS: added SetMscThetaLimit(). + + extended/parallel/TBB + o Ported code following last updates to 'run' category. + + extended/parallel/ThreadsafeScorers + o Corrected GNUmakefile. + + extended/persistency/persistency/gdml/G01 + o Added test case for scaled solids: scaledTube.gdml. + o Added missing gdml files to CMake installation script. + + extended/polarisation/Pol01 + o PhysicsList: move to use current method of ConstructParticle(). + + extended/radioactivedecay/rdecay01 + o Initialize atomic de-excitation in PhysicsList::ConstructProcess() + instead of in G4RadioactiveDecay to avoid overwriting initializtion + in EM. + o Set world size to 2 cm and gun direction along X. + o Added survey of each nuclide in a given time window. + Print-out activity of each nuclide. + + extended/radioactivedecay/rdecay02 + o PhysicsList: register hadronic processes. + + extended/runAndEvent/RE01 + o Removed obsolete use of readout geometry. + o Added protection against a track sticking on the calorimeter inner + boundary. + o Use G4UnknownDecayPhysics constructor and removed ad-hoc physics-list. + + extended/runAndEvent/RE04 + o Added command "/vis/drawVolume worlds" to vis.mac. + + ---------------------------------------------------------------------------- + diff --git a/ReleaseNotes/Patch4.10.1-3.txt b/ReleaseNotes/Patch4.10.1-3.txt new file mode 100644 index 0000000000..9c01caae8d --- /dev/null +++ b/ReleaseNotes/Patch4.10.1-3.txt @@ -0,0 +1,201 @@ + + Geant4 10.1 - patch-03 Release Notes + ------------------------------------ + + 5 February 2016 + +List of fixes included in this public patch since the public release 10.1.p02: + + o Configuration: + ------------- + + CMake: + o Updated Apple Clang detection to work on Xcode-7. + o Always use libc++ with Apple Clang so that std-supporting library is + used for C++11 mode on older Mac systems where libstdc++ is the default. + o Updated std-flag setting rules. + + GNUMake: + o Updated X11 settings in MacOS platform. + o Added settings for C++ standards in platform specific scripts. + + o Analysis: + -------- + + Fixed G4Analysis::Tokenize() which was failing when processsing a string + containing opening double quota without a closing one. + + Fixed handling ntuples created in MT mode on master thread + This fixes the problem reported in hypernews (#459) and the problem + of deleting non-empty Root file containing only ntuples. + + o Geometry: + -------- + + divisions: + o Fix for use of rotation matrix in G4VDivisionParameterisation in + MT-mode; use thread-local pointer for rotation matrix as member of the + class G4VDivisionParameterisation and set it to suto-delete. + Removed unnecessary thread-local verbose flag. + Addressing problem reports #1743 and #1758. + o Set as unsupported divisions of polycone and polyhedra in MT-mode. + + magneticfield: + o Added check in G4ChordFinder against number of iterations in + FindNextChord(), to identify potential cases of lack of convergence. + o Better diagnostics text in case of errors in G4FieldTrack and + G4UniformMagField. + o Added explanation comment in G4MagHelicalSteper. + + navigation: + o G4MultiLevelLocator::EstimateIntersectionPoint(): fix for logic error + in keeping consistent candidate intersection. Copes with case that a + candidate intersection is not found in the next segment (typically in + the 'second half' part). + Ensure that splitting of step (new level/depth) advances the required + length, used when adding a new level/depth. + Revised condition of 'while' loop which ensures that a new candidate + intersection exists. Corrected the resetting of 'first_section' flag. + Replaced fatal error for exceeding max steps with warning and signal + 'looping' for too many steps; G4PropagatorInField detects this + condition, and identifies it as a 'Looping Particle' which is then + flagged; the calling class (Transportation, PathFinder) is expected + to stop the tracking of this particle after a few of these steps. + Addressing issue seen by ALICE (non-finishing of step due to poor + advances). + o G4VIntersectionLocator: added new logging methods & revised interfaces. + o G4NavigationLogger: added method to report issue with normal that + is the result of applying a rotation. + o G4NormalNavigation, G4VoxelNavigation: added check of rotated exit + normal. + o Relaxed condition for zero or almost-zero steps in G4ReplicaNavigation + and G4Navigator, to allow for faster progression in case of stuck tracks + in 3D scoring meshes. Addressing old problem report #1432. + o Fix in G4ReplicaNavigation::ComputeStep() for correct setting of copyNo + for particle entering. Fixes issue of negative copyNo observed in nested + replica setups. Addressing problem report #1634. + o Moved check for overlaps in G4Navigator::ComputeStep() within G4VERBOSE. + Addressing problem report #1811. + + solids/Boolean: + o Checked for potential never-ending loops. Replaced while-do loop with + bounded for-loop in G4IntersectionSolid::DistanceToIn(p,v). + Also addressing problem report #1821. + + solids/CSG: + o Introduced check in G4Sphere::DistanceToIn(p,v) for concave Theta and + point located on the origin. Also make proper use of radial tolerance in + DistanceToOut(p,v). + o Fixed Coverity defect in G4CutTubs::GetMaxMinZ(). + + solids/specific: + o Added specialised implementation for GetCubicVolume() in + G4TessellatedSolid. Added debug printouts withing G4SPECSDEBUG for + DistanceToIn/Out(p,v) to identify potential wrong responses. + o Removed redundant condition in G4Polyhedra and G4polycone + SetOriginalParameters() method. + o Minor code cleanup in G4SurfaceVoxelizer. + o Checked for potential never-ending loops. + + volumes: + o Enabled paramerisation by solid type in G4GeometryWorkspace in MT-mode. + Assumes solids being parameterised are declared thread-local in the + user's parameterisation class and allocated just once. + + o Global: + ------ + + Tune radial tolerance to same value as for Cartesian tolerance in + G4GeometryTolerance. + + Corrected conditions for proper treatment of gcc-5 in tls.hh and + G4Threading.hh. + + Removed unused and buggy operator=(const G4String&) in G4SubString. + Added string length check in G4String::operator==(). + Added missing 'inline' specification to functions in G4String. + + Force use of G4MT wrappers for Intel-icc compiler for random numbers. + + Updated date and version for 10.1.p03. + + o Materials: + --------- + + G4NistElementBuilder: fixed typo in printout. + Addressing problem report #1786. + + o Parameterisations: + ----------------- + + gflash: fix for Zeff wrongly computed as ( W1*Z2 ) + ( W2*Z1 ), with Z1 + and Z2 swapped. Addressing problem report #1719. + + o Particles: + --------- + + Fixed wrong argument order CreateIon(A,Z,LL,0.0) in G4IonTable to + CreateIon(Z,A,LL,0.0). + + Fixed setting of mass in decay parent particle. + Addressing problem report #1820. + + o Persistency: + ----------- + + GDML: + o Use relaxed precision constant for matrix to angle formula evaluation + in G4GDMLWriteDefine, to allow for proper treatment of singularities. + Fixes issues of misplaced volumes in exported geometries of complex + detectors. + o Rectify rotation matrices in reading and writing GDML files to reduce + spurious roundoff errors in stored values. + + o Physics Lists + ------------- + + constructors/limiters: + o G4ParallelWorldPhysics: fixed process order index for + G4ParallelWorldProcess to 9900 to make sure it is registered + prior to G4OpBoundaryProcess. + + o Processes - Electromagnetic: + --------------------------- + + xrays: + o G4VTransitionRadiation, G4VXTRenergyLoss: fixed process sub-type. + + o Processes - Generic: + ------------------- + + scoring: + o G4ParallelWorldProcess: fixed processType from 'fParameterized' + to 'fParallel' and set processSubType to 491. + o Fixed Coverity defects. + + o Processes - Hadronic: + -------------------- + + cross_sections: + o G4NeutronInelasticXS, G4NeutronCaptureXS: fixed isotope cross-sections + including retrieve, data management, isotope x-section and isotope + selection. Fixed Coverity defects. + + models/cascade: + o G4CascadeCoalescence: added explicit inclusion of + G4InuclElementaryParticle header to address compiler error from Cray + (as reported in Configuration Hypernews Forum #1764). + + models/coherent_elastic: + o G4DiffuseElastic: bug-fix in BuildAngleTable() to improve the angle + bin accuracy at high energies. + + models/im_r_matrix: + o Fixed compiler warning in clang-3.6. + + o Run: + --- + + G4PhysicsListHelper: add entry for G4ParallelWorldProcess. + + G4RunManager, G4WorkerRunManager: fixed process order index of + G4ParallelWorldProcess to 9900 to make sure it is registered + prior to G4OpBoundaryProcess. + + o Tracking: + -------- + + G4SteppingManager: fix to properly set 'OriginTouchableHandle' for the + primary track. Addressing problem report #1773. + + o Examples: + -------- + + Updated reference outputs. + + basic/B4: + o Restored the third parameter in G4UIsession construction, which was + lost when moving G4UIExecutive at the beginning of main(). + Addressing problem report #1802. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 10.1, 10.1.p01 or 10.1.p02. + o Technical notes distributed for release 10.1 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 10.1.p03 are available +through our "Download" Web page. + +Please refer to the Geant4 User Documentation for further information about +using Geant4. diff --git a/ReleaseNotes/Patch4.10.2-1.txt b/ReleaseNotes/Patch4.10.2-1.txt new file mode 100644 index 0000000000..f3023a00e4 --- /dev/null +++ b/ReleaseNotes/Patch4.10.2-1.txt @@ -0,0 +1,251 @@ + + Geant4 10.2 - patch-01 Release Notes + ------------------------------------ + + 26 February 2016 + +List of fixes included in this public patch since the public release 10.2: + + o Configuration: + ------------- + + CMake: + o Fixed configuration error occurring when using CLHEP-2.3.1.1 external + installation. Addressing problem report #1805. + o Updated data-sets to RadioactiveDecay-4.3.1 and G4ENSDFSTATE-1.2.1. + + GNUMake: + o Added settings for C++ standards in platform specific scripts. + + o Analysis: + -------- + + Fixed definition of /analysis/ntuple command directory which was created + implicitly with the commands and so defined without a guideline and not + deleted. + + o Externals + --------- + + zlib: + o Fixed compilation warnings on clang-3.7 compiler. + + o Geometry: + -------- + + magnetic-field: + o Fix for spin tracking of particles with negative magnetic moment. + Addressing problem report #1831. + + navigation: + o Relaxed condition for zero or almost-zero steps in G4ReplicaNavigation + and G4Navigator, to allow for faster progression in case of stuck tracks + in 3D scoring meshes. Addressing old problem report #1432. + o Fix in G4ReplicaNavigation::ComputeStep() for correct setting of copyNo + for particle entering. Fixes issue of negative copyNo observed in nested + replica setups. Addressing problem report #1634. + o Moved check for overlaps in G4Navigator::ComputeStep() within G4VERBOSE. + Addressing problem report #1811. + + solids/Boolean: + o Minor optimisation in Inside(p) for G4UnionSolid and G4SubtractionSolid. + + solids/specific: + o Fix in G4GenericTrap for computation of extent. + Addressing problem report #1809. + Disabled debug warning in SurfaceNormal(). + o Correction in G4ExtrudedSolid::AddGeneralPolygonFacets() for precision + treatment in construction of tessels to avoid cases of collinear points + and consequent degenerating triangles. + Addressing problem report #1777. + o Use pre-computed kCarToleranceHalf constant in G4ExtrudedSolid, now + protected in G4TessellatedSolid. + + o Global: + ------ + + Corrected conditions for proper treatment of gcc-5 in tls.hh and + G4Threading.hh. + + Removed unused and buggy operator=(const G4String&) in G4SubString. + + Updated date and version for 10.2.p01. + + o Graphics Representations: + ------------------------ + + Use "" instead of <> for internal header inclusion in + HepPolyhedronProcessor.h. + + o Materials: + --------- + + Fixed rare data-race in G4MaterialPropertiesTable for optical physics. + + G4NistMaterialBuilder: added lock to build of new NIST material; needed, + as some physics processes may create a new NIST material from worker + thread. + + G4NistElementBuilder: fixed typo in printout. + Addressing problem report #1786. + + o Particles: + --------- + + Fixed wrong argument order CreateIon(A,Z,LL,0.0) in G4IonTable to + CreateIon(Z,A,LL,0.0). + + Fixed setting of mass in decay parent particle. + Addressing problem report #1820. + + Fixed G4DecayTable::SelectADecayChannel() for decay channels all + kinematically forbidden. + + In G4IonTable removed static const tolerance and replaced with call to + G4NuclideTable; this recovers missed levels when they are closer together + than 2 keV. Reverted default value of level tolerance in G4NuclideTable + to 1 eV; turn out rounding of excitation energy to avoid potential + conservation problems. + + o Persistency: + ----------- + + GDML: + o Corrected broken URLs and version number to schema. + + o Physics Lists + ------------- + + builders: + o G4NeutronHPBuilder: corrected name from "NeutronHPInelastic" to + "ParticleHPInelastic". + + constructors/limiters: + o G4ParallelWorldPhysics: fixed process order index for + G4ParallelWorldProcess to 9900 to make sure it is registered + prior to G4OpBoundaryProcess. + + constructors/electromagnetic: + o G4EmStandardPhysicsSS: do not compute cross-section tables + if experimental Mott cross-section is enabled (this provides a + significant increase in CPU, but only in this conditions Mott + corrections are valid). + + constructors/hadron_elastic: + o Added missing hadron elastic for He3 in G4HadronElasticPhysics, + using Glauber-Gribov elastic cross-section (Gheisha does not have + hadronic - elastic and inelastic - cross-sections for He3). + + o Processes - Electromagnetic: + --------------------------- + + dna: + o In ionisation models SampleSecondaries(), added protection on energy + in case of interpolation method change. + + lowenergy: + o Fixed inclusion guard in G4LivermorePolarizedPhotoElecticModel.hh. + Addressing problem report #1816. + o Code cleanup and fixed Coverity defects. + + standard: + o Fixed cases of floating-point exception in G4ScreeningMottCrossSection. + Some code cleanup and performance improvements. + o Fixed sampling of scattering angle in G4eSingleCoulombScatteringModel. + Addressing problem report #1823. + o G4GoudsmitSaundersonMscModel G4GoudsmitSaundersonTable: updated step + limitations. Fixed Coverity defects and improved comments. + + utils: + o G4EmSaturation: corrected method name from VisibleEnergyDeposition() to + VisibleEnergyDepositionAtAStep(), in order to allow overloading of + virtual method. Addressing problem report #1807. + o G4EmCalculator: fixed computation of dEdx and range for He3 and alpha. + Addressing problem report #1808. + o G4LossTableManager: avoid double addition of He3 and alpha to the loss + table map (should not have any effect on results). + + xrays: + o G4VTransitionRadiation, G4VXTRenergyLoss: fixed process sub-type. + o G4Scintillation: use new method introduced in G4EmSaturation + VisibleEnergyDepositionAtAStep() in order to fix overloading problem. + + o Processes - Generic: + ------------------- + + biasing: + o Code cleanup and Coverity fixes in 'generic' and 'management' modules. + + scoring: + o G4ParallelWorldProcess: fixed processType from 'fParameterized' + to 'fParallel' and set processSubType to 491. + + optical: + o Fix to DielectricLUT concerning the sequence of rotations. + Addressing problem report #1826. + + o Processes - Hadronic: + -------------------- + + models/abla: + o Fixed bug in de-excitation of boosted nucleon remnants. + + models/de_excitation: + o G4GammaTransition: added protection against rare problem in sampling + of internal conversion when transition energy is lower than atomic + level energy: instead of stopping the cascade, set bound level energy + to zero and produce final e-; this allows to complete radioactive-decay + cascade. Addressing problem report #1806. + o G4PhotonEvaporation, G4LevelManager, G4LevelReader, G4NuclearLevelData: + fixed remaining cases of production of excited stated. + Addressing problem report #1806. + o G4PhotonEvaporation, G4LevelReader, G4NucLevel: fixed treatment of + X-levels (meta-stable nuclear levels which have forbidden gamma + transition but opened beta-transitions); this fix excludes creation of + very low-energy fake gamma and provides a correct nuclear decay + sequence. + o G4PhotonEvaporation: set limit on emitted gamma energy 0.1 keV (was + 10 keV). + + models/lend: + o Fixed problem in prodcution of residual neutrons. + o Corrected use of isnan() to std::isnan() for compilers different than + Windows/VC++. + o Fixed Coverity defects. + + models/particle_hp: + o Fixes for problem on materials with hydrogen or helium. + o Fixed problems in deletion of cross-section data set in MT mode + and initialisation of cached data. + o Fixed Coverity defects. + + models/qmd: + o Fixed bug in handling forbidden decay in G4QMDCollision. + + models/radioactive_decay: + o G4BetaMinusDecay, G4RadioactiveDecay: added protection for case + when end point energy is 0 in beta- decay. + Addressing problem report #1766. + + models/util: + o G4KineticTrack: replaced G4cerr with a 'JustWarning' G4Exception. + + util: + o G4Nucleus: increased the max number of loops allowed in the method + GetBiasedThermalNucleus(). + + o Run: + --- + + G4PhysicsListHelper: added entry for G4ParallelWorldProcess. + + G4RunManager, G4WorkerRunManager: fixed process order index of + G4ParallelWorldProcess to 9900 to make sure it is registered + prior to G4OpBoundaryProcess. + + o Tracking: + -------- + + G4SteppingManager: fix to properly set 'OriginTouchableHandle' for the + primary track. Addressing problem report #1773. + + o Data sets: + --------- + + Patched data set for nuclides properties G4ENSDFSTATE-1.2.1: + o Added missing data for RA228, SI24, SI25 and 193RN. + + Patched data set for radioactive-decay, G4RadioactiveDecay-4.3.1: + o Replace NaN values for intensity by 1 in z71.a157(Lu157), + z55.a136(Cs136) and z59.a129(Pr129). + + o Examples: + -------- + + Updated reference outputs. + + basic: + o Added G4ENSDFSTATEDATA in the lists of mandatory data sets; updated + README files. Addressing problem report #1810. + o B4: restored the third parameter in G4UIsession construction, which + was lost when moving G4UIExecutive at the beginning of main(). + Addressing problem report #1802. + + extended/biasing/B03: + o B03PhysicsList: corrected process order index of G4ParallelWorldProcess + to 9900 to make sure it is registered prior to G4OpBoundaryProcess. + + extended/electromagnetic: + o Fixed macros to allow to work both with Root-5 and 6. + + extended/radioactivedecay/rdecay01: + o PhysicsList: SetLevelTolerance to 1*eV, there appears to already be a + level Ni60[1332.510] stored somewhere instead of Ni60[1332.514]. + Setting the tolerance to 1 eV gets the right level. + o Improved printout in Run::EndOfRun(). + o Updated references in it1.mac and it2.mac. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 10.2. + o Technical notes distributed for release 10.2 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 10.2.p01 are available +through our "Download" Web page. + +Please refer to the Geant4 User Documentation for further information about +using Geant4. diff --git a/ReleaseNotes/Patch4.10.2-2.txt b/ReleaseNotes/Patch4.10.2-2.txt new file mode 100644 index 0000000000..277140ca3b --- /dev/null +++ b/ReleaseNotes/Patch4.10.2-2.txt @@ -0,0 +1,258 @@ + + Geant4 10.2 - patch-02 Release Notes + ------------------------------------ + + 17 June 2016 + +List of fixes included in this public patch since the public release 10.2.p01: + + o Configuration: + ------------- + + CMake: + o Enhanced advanced option for use of external USolids/VecGeom library; + it is now possible to select individual shapes for partial use of the + set of primitives provided by the library, by specifying through the + GEANT4_USE_USOLIDS the list of primitives to consider, i.e. using: + -DGEANT4_USE_USOLIDS="box;tubs" will replace box and tubs shapes with + USolids/VecGeom ones; -DGEANT4_USE_USOLIDS="all" or -DGEANT4_USE_USOLIDS + will replace with all shapes enabled in the library. + o Fix for treatment of FindCLHEP module for the case of external CLHEP + installation. Addressing problem report #1855. + o Adding libXt to X11_LIBRARIES on all Unix platforms when using + Motif/Inventor. Addressing problem report #1828. + Added missing Xmu to X11_LIBRARIES when using Motif/OpenInventor on + MacOSX. + o Corrected Modules/genwindef/LibSymbolInfo.cpp for use with Windows + VC++ 64 bits compilation. + o Updated data-sets to RadioactiveDecay-4.3.2 and G4ENSDFSTATE-1.2.3. + + GNUMake: + o Added flags for partial use of USolids/VecGeom types. + o Added Linux-clang.gmk script for use of clang compiler on Linux system. + + o Analysis: + -------- + + Fixed compilation warnings from gcc-6.1. + + o Digits-Hits: + ----------- + + Fixed typo in printing on cout in G4SDManager::AddNewDetector(). + + Fixed shadowing compilation warnings in G4VScoringMesh for 'ps'. + + Code cleanup and introduced some C++11 features. + + Checked do-while loops for potential infinite loops. + + o Event: + ----- + + Fixed typo in printout. Addressing problem report #1860. + + Fixed shadowing compilation warnings for 'ps'. + + Code cleanup and introduced some C++11 features. + + o Externals + --------- + + zlib: + o Fix in gzguts.h for Windows with Visual Studio 2015 in 64 bit + compilation. + + o Geometry: + -------- + + magnetic-field: + o Corrected implementation of operator=() and copy-ctor for G4Field, + G4ElectroMagneticField, G4ElectricField and G4CachedMagneticField. + Fixed Clone() signatures in derived Field classes. + + management: + o Throw exception in call to CreatePolyhedron() for base class G4USolid. + Method is now implemented in the concrete wrappers. Code cleanup. + o In G4USolid, directly call GetEntityType() from wrapper classes for + CreatePolyhedron(). + o Added flag to USolids wrappers for partial use of USolids/VecGeom types. + o G4AffineTransform: added inline keywords and fixed formatting. + + navigation: + o Avoid static constant definition of surface tolerance in + G4VoxelNavigation in method LocateNextVoxel() to clear spurious + warnings for data-race conflicts from Valgrind/DRD tool; defined + as class data member. Cleared up use of static constants also in + other navigation classes. + o Improved diagnostics in G4Navigator. Moved some debug checks to + G4VERBOSE. + o Fixed few compilation warnings on gcc-6.1. + + solids/Boolean: + o Moved accessors and modifiers in UMultiUnion wrapper to be not inlined. + Required modification in order to allow correct dispatching to VecGeom + types. + + solids/CSG: + o Added overloaded CreatePolyhedron() method to USolids wrappers. + It is now possible to visualize supported VecGeom shapes. + Added flag for partial use of USolids/VecGeom types. + Moved accessors and modifiers to be not inlined. Required modification + in order to allow correct dispatching to VecGeom types. + Added overloaded GetEntityType() method. + o G4Orb: fixed typo in G4Exception message. + + solids/specific: + o Fix in G4IntersectingCone for smaller precision constant in + LineHitsCone1() and LineHitsCone2(). Fixes issue observed in + G4GenericPolycone. Addressing problem report #1794. + o Added overloaded GetEntityType() method to USolids wrappers. + Moved accessors and modifiers to be not inlined. Required modification + in order to allow correct dispatching to VecGeom types. + Added overloaded CreatePolyhedron() method. It is now possible to + visualize supported VecGeom shapes. + Added flag for partial use of USolids/VecGeom types. + + o Global: + ------ + + Define G4GeometryTolerance singleton instance pointer as tread-local + to get rid of spurious race conflicts at initialisation. + + Added check for support of atomics for clang compiler in HEPRandom + wrappers. + + Improved algorithm for G4RandomDirection. + + Turn warnings to fatal exceptions in G4UnitsTable for non existing + units or categories in the table. Addressing problem report #1843. + + Updated date and version for 10.2.p02. + + o Interfaces: + ---------- + + Fix for Qt driver for position of 'OK' button. + + Fixed compilation warnings on MacOS for conversion to char* in G4UIXm. + + Fixed compilation warnings in G4UIWin32 for Windows. + + o Particles: + --------- + + Fixed MT data-race in G4VDecayTable. Addressing problem report #1834. + + o Persistency: + ----------- + + GDML: + o G4GDMLWrite: increased max_chars in the transcode() calls. + Addressing problem report #1847. + o Added checks for correctness of imported units. + Addressing problem report #1842. + + o Parameterisations: + ----------------- + + gflash: + o Added missing inclusion of header in G4VGFlashSensitiveDetector. + Addressing problem report #1867. + + o Physics Lists + ------------- + + constructors/hadron_elastic: + o Made G4HadronElasticPhysicsPHP constructor thread-safe. + + constructors/hadron_inelastic: + o G4HadronPhysicsFTFP_BERT_ATL: new constructor for ATLAS, similar to + G4HadronPhysicsFTFP_BERT but with the transition between BERT and FTFP + in the energy region [9, 12] GeV. + o G4HadronPhysicsQGSP_BIC_AllHP: treat only proton with ParticleHP in + this class, and move the others (deuteron, triton, 3He, alpha) to + the class G4IonPhysicsPHP. + + constructors/ions: + o Added G4IonPhysicsPHP constructor class. + + lists: + o New experimental physics-list FTFP_BERT_ATL, similar to FTFP_BERT but + with the transition between BERT and FTFP in the energy region [9, 12] + GeV. Meant to reduce jet energy scale difference observed in ATLAS. + o QGSP_BIC_AllHP : use new, specialized ion constructor, G4IonPhysicsPHP. + + o Processes - Electromagnetic: + --------------------------- + + dna: + o Fixed compilation warnings from gcc-6.1. + + lowenergy: + o Updated G4LowEPComptonModel; addressing problem report #1676. + o Replaced usage of std::exp() by G4Exp(). + o Fixed compilation warnings in gcc-6.1. Code cleanup. + + standard: + o G4eSingleCoulombScatteringModel, G4ScreeningMottCrossSection: fixed + initialisation of classes allowing to use precomputed cross-sections. + Addressing problem report #1823. + + utils: + o G4EmCalculator: added protection against zero cut value; use lowest + electron energy. Addressing problem report #1845. + + o Processes - Hadronic: + -------------------- + + models/de_excitation: + o G4PhotonEvaporation: fixed final energy in the case of X-level. + o G4ExcitationHandler: substituted usage of iterators by simple loop; + added exception for the case of infinite loop of evaporation. + Addressing problem report #1837. + + models/lend: + o Fixed problem on setting birth time of delayed neutrons. + + models/particle_hp: + o Fixed problem in deletion of models in multi-thread mode. + o Corrected message about a behavior under the activation of fission + fragment production. + o Fixed bug in usage of G4Nucleus::GetBiassedThermalNucleus(). + o Fix for calculation of residual A and Z, affecting results for + charged particle projectiles. Addressing problem report #1815. + o Bug fix in sampling of kinematic energy of scattered particle in + DiscreteTwoBody. Addressing problem report #1815. + o Fixed warning message from gcc-6.1. + o Fixed Coverity defects. + + models/parton_string/diffraction: + o Fixed bug in G4FTFModel for nucleus-nucleus interactions + Also improvements in sampling of kinematical variables. + o Improved G4FTFAnnihilation; now creating Pi0, Eta and Eta_prime. + + models/quasi_elastic: + o Fixed shadowing compilation warnings in G4QuasiElRatios for 'ps'. + + models/radioactive_decay: + o Use new API for G4VDecayChannel class to avoid MT data-race. + Fixes issues of observed event non-reproducibility in MT mode. + + models/util: + o G4Fragment: introduced "spin", added accessors and modifiers needed + by INCL++; fixes a memory leak discussed on HN PhysicsList Forum #930. + o Use modified G4VDecayChannel API to avoid data-race in MT. + o Fixed Coverity defects. + + o Track: + ----- + + Use G4Log in G4VelocityTable::Value() method. + + o Visualization: + ------------- + + Fixed compilation warnings from gcc-6.1. + + gMocren: + o Fixed compilation warnings on win64. + + OpenInventor: + o Corrected delete statement in sortBookmarksCB() for + G4OpenInventorXtExaminerViewer. + o Fixed compilation warnings on MacOS for conversion to char* in + G4OpenInventorXtExtendedViewer and G4OpenInventorXtViewer sources. + + o Data sets: + --------- + + Patched data set for nuclides properties G4ENSDFSTATE-1.2.3: + o Corrected packaging for download. Contents unchanged. + Addressing problem reports #1849, #1854. + + Patched data set for radioactive-decay, G4RadioactiveDecay-4.3.2: + o Corrected packaging for download. Contents unchanged. + Addressing problem reports #1849, #1854. + + o Examples: + -------- + + Updated reference outputs. + + advanced/human_phantom: + o Fixed compilation warnings from gcc-6.1. + + basic/B3: + o Fixed initialization of the hits collections IDs in B3aEventAction. + Addressing problem report #1862. + + basic/B5: + o Fixed wrong determination of the copy number in replicas. + + extended/field: + o field03, field04: fixed compilation warnings from gcc-6.1. + + extended/parameterisations/Par02: + o Added magnetic field and corrected the way to create a G4FieldTrack + object in Par02FastSimModelTracker. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 10.2. + o Technical notes distributed for release 10.2 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 10.2.p01 are available +through our "Download" Web page. + +Please refer to the Geant4 User Documentation for further information about +using Geant4. diff --git a/cmake/History b/cmake/History index ea54ddbe5d..bbac6fc151 100644 --- a/cmake/History +++ b/cmake/History @@ -31,6 +31,136 @@ add this in the documentation for the changed file as [BUGFIX #BUGNUMBER]. ---------------------------------------------------------- +17th June 2016 - Gabriele Cosmo (cmake-V10-02-17) +- Modules/Geant4OptionalComponents.cmake: set CLHEP-2.3.3.0 as the required + version for external CLHEP library. + +9th June 2016 - Gunter Folger (cmake-V10-02-16) +- revert change in Templates/Geant4Config.cmake.in in tag cmake-V10-02-14, + revision 97140; the coworking tags have been rejected. + +3rd June 2016 - Gunter Folger (cmake-V10-02-15) +- switch to RadioActiveDecay 4.4.1 and G4ENSDFSTATE 1.3.1, both provided by + Laurent. + +25th May 2016 - Robert Hatcher (cmake-V10-02-14) +- Templates/Geant4Config.cmake.in : No longer use --whole-archive for +G4physicslists on static builds; this was never possible for _WIN32 and recent +physics list factory work makes this untenable. + +25th May 2016 - Ben Morgan (cmake-V10-02-13) +- Modules/Geant4InterfaceOptions.cmake : Always add Xmu to X11_LIBRARIES when +using Motif/OpenInventor to avoid missing symbol errors on OS X. + +24th May 2016 - Ben Morgan (cmake-V10-02-12) +- Modules/Geant4OptionalComponents.cmake : Fix regex to avoid matching to "CONS" + shape is check for all shapes. + +24th May 2016 - Ben Morgan (cmake-V10-02-11) +- Modules/Geant4OptionalComponents.cmake : Initial implementation of a list + based interface to GEANT4_USE_USOLIDS. Rather than booleans, unify USolids + replacement into single string/list variable with following behaviour: + 1) Setting to "all", any CMake boolean true value, or a list containing either + results in complete usolids replacement + 2) A list, i.e. "a;b;c", or shapes to replace with Usolids equivalents may be supplied. + Validate arguments to prevent unknown shapes being set, and otherwise retain previous + behaviour + List allowed values in option docstring. +- Modules/Geant4BuildProjectConfig.cmake : Ensure setting of Usolids use marker to a + proper boolean value. +- Templates/Geant4Config.cmake.in : Use new full boolean variable as expansion variable + to indicate usolids support. + +23rd May 2016 - Ben Morgan +- Modules/Geant4OptionalComponents.cmake : Allow developers to select + subsets of solids to replace with USolids equivalents. Request from developers + and CMS to assist in performance evaluation. NOT INTENDED FOR USERS! + If GEANT4_USE_SOLIDS is set, use existing configuration/setup. If it is OFF, + allow setting of additional CMake options, one per shape, to enable replacement + of that shape with USolids equivalent. When any of these variables are set, set + additional internal variable GEANT4_USE_PARTIAL_USOLIDS. Convert variables to + internal preprocessor flags for shape/usolid activation. +- Modules/Geant4BuildProjectConfig.cmake : Export needed USOLIDS/shape activation + preprocessor flags for selected configuration. +- Modules/Geant4ConfigureConfigScript.cmake : Export needed USOLIDS/shape activation + preprocessor flags for selected configuration. + +28th April 2016 - Ben Morgan (cmake-V10-02-10) +- Templates/Geant4Config.cmake.in: BUGFIX #1855. When using an external + CLHEP, the provided FindCLHEP module is not used. Wrap call to + find_package(CLHEP) with push/pop of CMAKE_MODULE_PATH to ensure + Geant4's builtin module is used and not interfere with any user + settings of CMAKE_MODULE_PATH. + +19th April 2016 - Gunter Folger (cmake-V10-02-09) +- correct Modules/genwindef/LibSymbolInfo.cpp for use with VC 64 bit compilation + +29th March 2016 - Gunter Folger (cmake-V10-02-08) +- switch to RadioActiveDecay 4.4; dataset identical to 4.3.1, packaging + corrected to be a compressed tar file, 4.3.1 is plain tar + +16th March 2016 - Ben Morgan (cmake-V10-02-07) +- Modules/Geant4InterfaceOptions.cmake : Fix Bug #1828 + Apply patch from Vladimir Belov to add libXt to X11_LIBRARIES on all + Unix platforms when using Motif/Inventor. + +23rd February 2016 - Gunter Folger (cmake-V10-02-06) +- Correct md5sum for RadioactiveDecay.4.3.1 after removal of MAC Safari files. + +23rd February 2016 - Gunter Folger (cmake-V10-02-05) +- Modules/Geant4DatasetDefinitions.cmake: + - revert back to G4ENSDFSTATE.1.3 + - use patched RadioactiveDecay data 4.3.1 + +23rd February 2016 - Gunter Folger (cmake-V10-02-04) +- Modules/Geant4DatasetDefinitions.cmake: Use data set G4ENSDFSTATE.1.2.1 + Note 1.2.1 is identical to 1.3, it is a patch on 1.2 + +5th February 2016 - Gunter Folger (cmake-V10-02-03) +- Modules/Geant4DatasetDefinitions.cmake: Use new data set G4ENSDFSTATE.1.3 + +22nd January 2016 - Ben Morgan (cmake-V10-02-02) +- Modules/FindCLHEP.cmake : Restore from last version. Update regexing + of defs.h file for CLHEP 2.3.1.1 changes, retaining compatibility with + earlier versions. Create imported targets CLHEP and CLHEP:: + to ease transition to full Config mode support once we can support it. +- Modules/Geant4OptionalComponents.cmake : Rollback to using package-mode + to locate CLHEP. Modify CLHEP_LIBRARIES after finding to fill this with + the imported targets instead of absolute paths. +- Modules/Geant4BuildProjectConfig.cmake : Add FindCLHEP.cmake to installed + modules so that Geant4Config.cmake can refind CLHEP and hence the imported + targets. +- Templates/Geant4Config.cmake.in : Refind CLHEP using package-mode, + using hardcoded CLHEP_ROOT_DIR if set as a hint. + +15th December 2015 - Ben Morgan (cmake-V10-02-01) +- Templates/Geant4Config.cmake.in : Use PATHS option in find_package + for CLHEP, setting it to discovered CLHEP_DIR. Required at present + to provide a hint to builds of tests, which do not have + CMAKE_PREFIX_PATH set appropriately. + +15th December 2015 - Ben Morgan (cmake-V10-02-00) +- [BUGFIX #1805] : Preliminary fix for CLHEP 2.3.1.1 config error +- Modules/FindCLHEP.cmake : REMOVED as obsolete +- Modules/Geant4OptionalComponents.cmake : Use NO_MODULE in + find_package(CLHEP) so that CLHEPConfig.cmake is preferred. + Retain use of CLHEP_ROOT_DIR temporarily for transition in + testing system +- Modules/Geant4BuildProjectConfig.cmake : Remove setting of explicit CLHEP + directory, defering this to find_package call in Geant4Config.cmake +- Templates/Geant4Config.cmake.in : Use namespaced name for Geant4 cmake + directory to avoid upstream clashes. + Add explicit call to find_package(CLHEP) so that imported targets are refound. + Move inclusion of targets file to after setup steps to ensure all external + targets exist before this is included. This is also to help further work + on use of imported targets. +- Modules/Geant4ConfigureConfigScript.cmake : Extract LOCATION property from + CLHEP targets to provide setting of lib paths in geant4-config +- Templates/geant4-config.cmake.in : Remove explicit calls to clhep-config +- Modules/Geant4ToolchainBackwardCompatibility.cmake : Extract LOCATION + properties from CLHEP imported targets. + + 25th November 2015 - Ben Morgan (cmake-V10-01-41) - Modules/Geant4InterfaceOptions.cmake : Move force Qt4 option alongside use Qt option so that it can be set in Curses/GUI before @@ -108,6 +238,7 @@ add this in the documentation for the changed file as [BUGFIX #BUGNUMBER]. 23th October 2015 - Gunter Folger (cmake-V10-01-32) - Modules/Geant4DatasetDefinitions.cmake: Use new data set G4ENSDFSTATE.1.2 + 22nd October 2015 - Ben Morgan (cmake-V10-01-31) - Modules/Geant4ToolchainBackwardCompatibility.cmake : Add export of TOOLS_FONT_PATH to environment when Freetype support is enabled, diff --git a/cmake/Modules/FindCLHEP.cmake b/cmake/Modules/FindCLHEP.cmake index 8857f9ccae..8b59f1c0ad 100644 --- a/cmake/Modules/FindCLHEP.cmake +++ b/cmake/Modules/FindCLHEP.cmake @@ -205,7 +205,7 @@ find_path(CLHEP_INCLUDE_DIR CLHEP/Units/defs.h if(CLHEP_INCLUDE_DIR) set(CLHEP_VERSION 0) file(READ "${CLHEP_INCLUDE_DIR}/CLHEP/Units/defs.h" _CLHEP_DEFS_CONTENTS) - string(REGEX REPLACE ".*#define PACKAGE_VERSION \"([0-9.]+).*" "\\1" + string(REGEX REPLACE ".*#define (PACKAGE|CLHEP_UNITS)+_VERSION \"([0-9.]+).*" "\\2" CLHEP_VERSION "${_CLHEP_DEFS_CONTENTS}") if(NOT CLHEP_FIND_QUIETLY) @@ -310,6 +310,40 @@ if(CLHEP_FOUND) list(APPEND CLHEP_LIBRARIES ${${__clhep_lib}}) endforeach() set(CLHEP_INCLUDE_DIRS ${CLHEP_INCLUDE_DIR}) + + # Create imported targets + foreach(__clhep_lib ${__CLHEP_LIBRARY_SET}) + # Construct imported target name + string(REPLACE "_LIBRARY" "" __clhep_imp_lib "${__clhep_lib}") + string(REPLACE "_" "::" __clhep_imp_lib "${__clhep_imp_lib}") + if(__clhep_imp_lib STREQUAL "CLHEP") + # Create both CLHEP and CLHEP::CLHEP targets + if(NOT TARGET CLHEP::CLHEP) + add_library(CLHEP::CLHEP UNKNOWN IMPORTED) + set_target_properties(CLHEP::CLHEP PROPERTIES + IMPORTED_LOCATION "${CLHEP_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${CLHEP_INCLUDE_DIRS}" + ) + endif() + if(NOT TARGET CLHEP) + add_library(CLHEP UNKNOWN IMPORTED) + set_target_properties(CLHEP PROPERTIES + IMPORTED_LOCATION "${CLHEP_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${CLHEP_INCLUDE_DIRS}" + ) + endif() + else() + # Have a component target - these are always namespaced + # Note that at present, link interfaces aren't created... + if(NOT TARGET ${__clhep_imp_lib}) + add_library(${__clhep_imp_lib} UNKNOWN IMPORTED) + set_target_properties(${__clhep_imp_lib} PROPERTIES + IMPORTED_LOCATION "${${__clhep_lib}}" + INTERFACE_INCLUDE_DIRECTORIES "${CLHEP_INCLUDE_DIRS}" + ) + endif() + endif() + endforeach() endif() #---------------------------------------------------------------------------- diff --git a/cmake/Modules/Geant4BuildProjectConfig.cmake b/cmake/Modules/Geant4BuildProjectConfig.cmake index 6955ca4b18..d57b57a65c 100644 --- a/cmake/Modules/Geant4BuildProjectConfig.cmake +++ b/cmake/Modules/Geant4BuildProjectConfig.cmake @@ -40,11 +40,8 @@ endif() # - Stuff from Geant4OptionalComponents.cmake # - CLHEP -# If it's internal, add it to the externals list, if it's external, add the -# include directories to the list of third party header paths -if(GEANT4_USE_SYSTEM_CLHEP) - list(APPEND GEANT4_THIRD_PARTY_INCLUDES ${CLHEP_INCLUDE_DIRS}) -else() +# If it's internal, add it to the externals list +if(NOT GEANT4_USE_SYSTEM_CLHEP) list(APPEND GEANT4_EXTERNALS_TARGETS G4clhep) endif() @@ -70,8 +67,9 @@ endif() # - USolids # Compile definitions -if(GEANT4_USE_USOLIDS) - list(APPEND GEANT4_CORE_DEFINITIONS -DG4GEOM_USE_USOLIDS) +if(GEANT4_USE_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS) + set(GEANT4_USE_USOLIDS_EITHER ON) + list(APPEND GEANT4_CORE_DEFINITIONS ${GEANT4_USOLIDS_COMPILE_DEFINITIONS}) # System USolids headers, because these do appear in Geant4's # public interface. The library should be in the link interface @@ -163,7 +161,7 @@ configure_file( COPYONLY ) -foreach(_mod AIDA HepMC Pythia6 ROOT StatTest TBB) +foreach(_mod AIDA CLHEP HepMC Pythia6 ROOT StatTest TBB) configure_file( ${PROJECT_SOURCE_DIR}/cmake/Modules/Find${_mod}.cmake ${PROJECT_BINARY_DIR}/Modules/Find${_mod}.cmake @@ -207,7 +205,7 @@ else() set(GEANT4_INCLUDE_DIR_SETUP " # Geant4 configured for the install with relative paths, so use these -get_filename_component(Geant4_INCLUDE_DIR \"\${_thisdir}/${GEANT4_RELATIVE_HEADER_PATH}\" ABSOLUTE) +get_filename_component(Geant4_INCLUDE_DIR \"\${_geant4_thisdir}/${GEANT4_RELATIVE_HEADER_PATH}\" ABSOLUTE) ") endif() diff --git a/cmake/Modules/Geant4ConfigureConfigScript.cmake b/cmake/Modules/Geant4ConfigureConfigScript.cmake index 7d67f62f2e..ca6f6a2091 100644 --- a/cmake/Modules/Geant4ConfigureConfigScript.cmake +++ b/cmake/Modules/Geant4ConfigureConfigScript.cmake @@ -94,12 +94,19 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS AND UNIX) # - CLHEP if(GEANT4_USE_SYSTEM_CLHEP) set(G4_BUILTWITH_CLHEP "no") + #inc path + get_filename_component(G4_SYSTEM_CLHEP_INCLUDE_DIR "${CLHEP_INCLUDE_DIR}" ABSOLUTE) + #libpath list(GET CLHEP_LIBRARIES 0 _zeroth_clhep_lib) - get_filename_component(_system_clhep_libdir "${_zeroth_clhep_lib}" PATH) + get_target_property(_system_clhep_libdir "${_zeroth_clhep_lib}" LOCATION) + get_filename_component(_system_clhep_libdir "${_system_clhep_libdir}" REALPATH) + get_filename_component(_system_clhep_libdir "${_system_clhep_libdir}" DIRECTORY) set(G4_SYSTEM_CLHEP_LIBRARIES "-L${_system_clhep_libdir}") + foreach(_clhep_lib ${CLHEP_LIBRARIES}) - get_filename_component(_curlib "${_clhep_lib}" NAME) + get_target_property(_curlib "${_clhep_lib}" LOCATION) + get_filename_component(_curlib "${_curlib}" NAME) string(REGEX REPLACE "^lib(.*)\\.(so|a|dylib|lib|dll)$" "\\1" _curlib "${_curlib}") set(G4_SYSTEM_CLHEP_LIBRARIES "${G4_SYSTEM_CLHEP_LIBRARIES} -l${_curlib}") endforeach() @@ -144,13 +151,13 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS AND UNIX) endif() # - USolids - if(GEANT4_USE_USOLIDS) + if(GEANT4_USE_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS) set(G4_BUILTWITH_USOLIDS "yes") set(G4_USOLIDS_INCLUDE_DIRS ${USOLIDS_INCLUDE_DIRS}) list(REMOVE_DUPLICATES G4_USOLIDS_INCLUDE_DIRS) list(REMOVE_ITEM G4_USOLIDS_INCLUDE_DIRS ${_cxx_compiler_dirs}) - set(G4_USOLIDS_CFLAGS "-DG4GEOM_USE_USOLIDS") + string(REPLACE ";" " " G4_USOLIDS_CFLAGS "${GEANT4_USOLIDS_COMPILE_DEFINITIONS}") foreach(_dir ${G4_USOLIDS_INCLUDE_DIRS}) set(G4_USOLIDS_CFLAGS "${G4_USOLIDS_CFLAGS} -I${_dir}") endforeach() diff --git a/cmake/Modules/Geant4DatasetDefinitions.cmake b/cmake/Modules/Geant4DatasetDefinitions.cmake index bb8d913ff0..16056a05b4 100644 --- a/cmake/Modules/Geant4DatasetDefinitions.cmake +++ b/cmake/Modules/Geant4DatasetDefinitions.cmake @@ -38,11 +38,11 @@ geant4_add_dataset( # - Radioisotopes geant4_add_dataset( NAME RadioactiveDecay - VERSION 4.3 + VERSION 4.4.1 FILENAME G4RadioactiveDecay EXTENSION tar.gz ENVVAR G4RADIOACTIVEDATA - MD5SUM 9f1630a5d9f00b4ba1ffc5f7df174827 + MD5SUM 0aa6c879c17b26f1ca85d3ac915fc30e ) # - Neutron XS @@ -98,10 +98,10 @@ geant4_add_dataset( # - ENSDFSTATE geant4_add_dataset( NAME G4ENSDFSTATE - VERSION 1.2 + VERSION 1.3.1 FILENAME G4ENSDFSTATE EXTENSION tar.gz ENVVAR G4ENSDFSTATEDATA - MD5SUM a2e88f2c626141e4be4587c838832707 + MD5SUM eddd153110184256a57ce6b753f0d527 ) diff --git a/cmake/Modules/Geant4InterfaceOptions.cmake b/cmake/Modules/Geant4InterfaceOptions.cmake index dde9c3868c..6b20a13d46 100644 --- a/cmake/Modules/Geant4InterfaceOptions.cmake +++ b/cmake/Modules/Geant4InterfaceOptions.cmake @@ -236,11 +236,9 @@ if(UNIX) endif() # Create final list of X11 libraries needed for Geant4 - # - Motif - if(APPLE) - if(GEANT4_USE_XM OR GEANT4_USE_INVENTOR) - set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xt_LIB}) - endif() + # - Motif/Inventor + if(GEANT4_USE_XM OR GEANT4_USE_INVENTOR) + set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xt_LIB} ${X11_Xmu_LIBRARY}) endif() # - If we got to this point, RayTracer is o.k., so add the feature diff --git a/cmake/Modules/Geant4OptionalComponents.cmake b/cmake/Modules/Geant4OptionalComponents.cmake index 7af865d990..a382594132 100644 --- a/cmake/Modules/Geant4OptionalComponents.cmake +++ b/cmake/Modules/Geant4OptionalComponents.cmake @@ -53,9 +53,19 @@ if(GEANT4_USE_SYSTEM_CLHEP) set(__system_clhep_mode " (granular)") endif() - # We keep this as required, because if the user chooses to use a - # system option we assume that we absolutely, positively require this. - find_package(CLHEP 2.3.1.0 REQUIRED ${__g4_clhep_components}) + # Find CLHEP using package-mode (i.e. FindCLHEP) + # This will set up imported targets for us, but we need + # to set CLHEP_LIBRARIES afterwards to use these + find_package(CLHEP 2.3.3.0 REQUIRED ${__g4_clhep_components}) + + set(CLHEP_LIBRARIES CLHEP::CLHEP) + if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR) + set(CLHEP_LIBRARIES) + foreach(_comp ${__g4_clhep_components}) + list(APPEND CLHEP_LIBRARIES "CLHEP::${_comp}") + endforeach() + endif() + set(GEANT4_USE_SYSTEM_CLHEP TRUE) else() set(CLHEP_FOUND TRUE) @@ -167,22 +177,79 @@ endif() #----------------------------------------------------------------------- # Optional support for USolids - Requires USolids package -# -option(GEANT4_USE_USOLIDS "EXPERIMENTAL: Replace Geant4 solids with USolids equivalents" OFF) +# GEANT4_USE_USOLIDS is a list argument which must take values: +# - Empty/CMake boolean false : DEFAULT, do not replace G4 solids with USolids +# - ALL/CMake boolean true : Replace all G4 solids with USolids +# - List : Replace listed G4 solids with Usolids equivalents. Valid elements are +set(GEANT4_USOLIDS_SHAPES + BOX + CONS + EXTRUDEDSOLID + GENERICPOLYCONE + GENERICTRAP + ORB + PARABOLOID + POLYCONE + POLYHEDRA + SPHERE + TET + TRAP + TRD + TORUS + TUBS + ) + +set(GEANT4_USE_USOLIDS OFF CACHE STRING "EXPERIMENTAL: List Geant4 solids to replace with USolids equivalents (ALL;${GEANT4_USOLIDS_SHAPES})") mark_as_advanced(GEANT4_USE_USOLIDS) +# - Must be a CMake list - no real way to enforce this +# Preprocess by stripping any spaces and uppercasing +string(REPLACE " " "" __g4_usolids_shape_list "${GEANT4_USE_USOLIDS}") +string(TOUPPER "${__g4_usolids_shape_list}" __g4_usolids_shape_list) + +# - Check for use of all or usolids +set(GEANT4_USE_ALL_USOLIDS OFF) +string(REGEX MATCH "ALL|^(1|ON|YES|TRUE)" GEANT4_USE_ALL_USOLIDS "${__g4_usolids_shape_list}") + +# - Check and validate partial non-empty list +if(NOT GEANT4_USE_ALL_USOLIDS AND GEANT4_USE_USOLIDS) + set(GEANT4_USE_PARTIAL_USOLIDS ON) + set(GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST) + + foreach(__g4_usolids_requested_shape ${__g4_usolids_shape_list}) + list(FIND GEANT4_USOLIDS_SHAPES "${__g4_usolids_requested_shape}" __g4solids_shape_index) + if(__g4solids_shape_index GREATER -1) + list(APPEND GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST ${__g4_usolids_requested_shape}) + else() + message(FATAL_ERROR "GEANT4_USE_USOLIDS: unknown shape '${__g4_usolids_requested_shape}' in input, must be one of\n${GEANT4_USOLIDS_SHAPES}\n") + endif() + endforeach() +endif() + + # - G4USolids setup -if(GEANT4_USE_USOLIDS) +if(GEANT4_USE_ALL_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS) find_package(USolids REQUIRED) - add_definitions(-DG4GEOM_USE_USOLIDS) + + if(GEANT4_USE_ALL_USOLIDS) + set(GEANT4_USOLIDS_COMPILE_DEFINITIONS "-DG4GEOM_USE_USOLIDS") + GEANT4_ADD_FEATURE(GEANT4_USE_USOLIDS "Replacing all Geant4 solids with USolids equivalents (EXPERIMENTAL)") + else() + set(GEANT4_USOLIDS_COMPILE_DEFINITIONS "-DG4GEOM_USE_PARTIAL_USOLIDS") + foreach(__g4_usolid_shape ${GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST}) + list(APPEND GEANT4_USOLIDS_COMPILE_DEFINITIONS "-DG4GEOM_USE_U${__g4_usolid_shape}") + endforeach() + GEANT4_ADD_FEATURE(GEANT4_USE_USOLIDS "Replacing Geant4 solids with USolids equivalents for ${GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST} (EXPERIMENTAL)") + endif() + + # Combined definitions + add_definitions(${GEANT4_USOLIDS_COMPILE_DEFINITIONS}) # Add USolids inc dirs here - can be removed once USolids supports # INTERFACE_INCLUDE_DIRECTORIES include_directories(${USOLIDS_INCLUDE_DIRS}) endif() -GEANT4_ADD_FEATURE(GEANT4_USE_USOLIDS "Replacing Geant4 solids with USolids equivalents (EXPERIMENTAL)") - #----------------------------------------------------------------------- # Optional support for Freetype - Requires external Freetype install diff --git a/cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake b/cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake index f0104cde9a..05b8c166a4 100644 --- a/cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake +++ b/cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake @@ -327,25 +327,29 @@ macro(_g4tc_configure_tc_variables SHELL_FAMILY SCRIPT_NAME) # - CLHEP... if(GEANT4_USE_SYSTEM_CLHEP) # Have to use detected CLHEP paths to set base dir and others - get_filename_component(_CLHEP_BASE_DIR ${CLHEP_INCLUDE_DIR} PATH) + get_filename_component(_CLHEP_INCLUDE_DIR "${CLHEP_INCLUDE_DIR}" REALPATH) + get_filename_component(_CLHEP_BASE_DIR "${_CLHEP_INCLUDE_DIR}" DIRECTORY) # Handle granular vs singular cases if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR) - get_filename_component(_CLHEP_LIB_DIR ${CLHEP_Vector_LIBRARY} PATH) + get_target_property(_CLHEP_LIB_DIR CLHEP::Vector LOCATION) else() - get_filename_component(_CLHEP_LIB_DIR ${CLHEP_LIBRARY} PATH) + get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION) endif() - set(GEANT4_TC_G4LIB_USE_CLHEP "# USING SYSTEM CLHEP") - _g4tc_setenv_command(GEANT4_TC_CLHEP_BASE_DIR ${SHELL_FAMILY} CLHEP_BASE_DIR ${_CLHEP_BASE_DIR}) + get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH) + get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY) - _g4tc_setenv_command(GEANT4_TC_CLHEP_INCLUDE_DIR ${SHELL_FAMILY} CLHEP_INCLUDE_DIR ${CLHEP_INCLUDE_DIR}) + set(GEANT4_TC_G4LIB_USE_CLHEP "# USING SYSTEM CLHEP") + _g4tc_setenv_command(GEANT4_TC_CLHEP_BASE_DIR ${SHELL_FAMILY} CLHEP_BASE_DIR "${_CLHEP_BASE_DIR}") + _g4tc_setenv_command(GEANT4_TC_CLHEP_INCLUDE_DIR ${SHELL_FAMILY} CLHEP_INCLUDE_DIR "${_CLHEP_INCLUDE_DIR}") # Only need to handle CLHEP_LIB for granular case if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR) set(G4_SYSTEM_CLHEP_LIBRARIES ) foreach(_clhep_lib ${CLHEP_LIBRARIES}) - get_filename_component(_curlib "${_clhep_lib}" NAME) + get_target_property(_CLHEP_LIB_NAME ${_clhep_lib} LOCATION) + get_filename_component(_curlib "${_CLHEP_LIB_NAME}" NAME) string(REGEX REPLACE "^lib(.*)\\.(so|a|dylib|lib|dll)$" "\\1" _curlib "${_curlib}") set(G4_SYSTEM_CLHEP_LIBRARIES "${G4_SYSTEM_CLHEP_LIBRARIES} -l${_curlib}") endforeach() @@ -757,11 +761,14 @@ foreach(_shell bourne;cshell) if(GEANT4_USE_SYSTEM_CLHEP) # Handle granular vs singular cases if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR) - get_filename_component(_CLHEP_LIB_DIR ${CLHEP_Vector_LIBRARY} PATH) + get_target_property(_CLHEP_LIB_DIR CLHEP::Vector LOCATION) else() - get_filename_component(_CLHEP_LIB_DIR ${CLHEP_LIBRARY} PATH) + get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION) endif() + get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH) + get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY) + _g4tc_prepend_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP ${_shell} ${_libpathname} diff --git a/cmake/Modules/genwindef/LibSymbolInfo.cpp b/cmake/Modules/genwindef/LibSymbolInfo.cpp index 78762e6595..0f0fff5c74 100644 --- a/cmake/Modules/genwindef/LibSymbolInfo.cpp +++ b/cmake/Modules/genwindef/LibSymbolInfo.cpp @@ -15,7 +15,7 @@ using namespace std; -#define MakePtr( cast, ptr, addValue ) (cast)( (DWORD)(ptr) + (DWORD)(addValue)) +#define MakePtr( cast, ptr, addValue ) (cast)( (DWORD_PTR)(ptr) + (DWORD_PTR)(addValue)) ///////////////////////////////////////////////////////////////////////////// // CLibSymbolInfo diff --git a/cmake/Templates/Geant4Config.cmake.in b/cmake/Templates/Geant4Config.cmake.in index 90e7bd0fe7..287501791a 100644 --- a/cmake/Templates/Geant4Config.cmake.in +++ b/cmake/Templates/Geant4Config.cmake.in @@ -157,7 +157,7 @@ endif() # Locate ourselves, since all other config files should have been # installed alongside us... # -get_filename_component(_thisdir "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_geant4_thisdir "${CMAKE_CURRENT_LIST_FILE}" PATH) #----------------------------------------------------------------------- # Provide *recommended* compiler flags used by this build of Geant4 @@ -202,6 +202,22 @@ endif() @GEANT4_MODULE_PATH_SETUP@ +#----------------------------------------------------------------------- +# Re-Configure paths for third party packages. +# - Refind any needed external/imported targets. +# - Relies on same/compatible packages being in the paths CMake uses to +# search for packages + +#----------------------------------------------------------------------- +# If we have used imported targets for any third party packages, reimport +# them here, BEFORE we try and import the Geant4 targets which are +# linked against them. +# Generally, we try and use a standard find_package, but try and force it +# to find the actual package we were built against. +# THIS IS NOT PERFECT, AS IT CANNOT GUARANTEE A BINARY COMPATIBLE +# PACKAGE IS FOUND. +@GEANT4_THIRD_PARTY_IMPORT_SETUP@ + #----------------------------------------------------------------------- # Configure the path(s) to third party headers. # This is not a perfect solution to recording dependencies on external @@ -219,31 +235,6 @@ set(Geant4_INCLUDE_DIRS ${Geant4_INCLUDE_DIR} ${Geant4_THIRD_PARTY_INCLUDE_DIRS}) -#----------------------------------------------------------------------- -# If we have used imported targets for any third party packages, reimport -# them here, BEFORE we try and import the Geant4 targets which are -# linked against them. -# Generally, we try and use a standard find_package, but try and force it -# to find the actual package we were built against. -# THIS IS NOT PERFECT, AS IT CANNOT GUARANTEE A BINARY COMPATIBLE -# PACKAGE IS FOUND. -@GEANT4_THIRD_PARTY_IMPORT_SETUP@ - -#----------------------------------------------------------------------- -# Include the files listing all the imported targets and configuring -# Intel Compile Features -# (Not needed if used in the same Geant4 project, or if we have run before) -# This is always installed in the same location as us... -# -if(NOT CMAKE_PROJECT_NAME STREQUAL Geant4) - include("${_thisdir}/Modules/IntelCompileFeatures.cmake") - - if(NOT Geant4_LIBDEPS_LOADED) - include("${_thisdir}/Geant4LibraryDepends.cmake") - set(Geant4_LIBDEPS_LOADED 1) - endif() -endif() - #----------------------------------------------------------------------- # Data Resources # NB: Because data paths can be "forward declared" these offer no @@ -273,6 +264,16 @@ unset(Geant4_DATASET_DESCRIPTIONS) set(Geant4_builtin_clhep_FOUND @GEANT4_USE_BUILTIN_CLHEP@) if(NOT Geant4_builtin_clhep_FOUND) set(Geant4_system_clhep_ISGRANULAR @GEANT4_USE_SYSTEM_CLHEP_GRANULAR@) + + set(CLHEP_ROOT_DIR "@CLHEP_ROOT_DIR@") + set(__GEANT4_OLD_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) + set(CMAKE_MODULE_PATH "${_geant4_thisdir}/Modules" ${CMAKE_MODULE_PATH}) + find_package(CLHEP @CLHEP_VERSION@ REQUIRED @__g4_clhep_components@) + set(CMAKE_MODULE_PATH ${__GEANT4_OLD_CMAKE_MODULE_PATH}) + unset(CLHEP_ROOT_DIR) + unset(__GEANT4_OLD_CMAKE_MODULE_PATH) + #CLHEP doesn't use target properties fully yet, so always include_directories + include_directories(${CLHEP_INCLUDE_DIRS}) endif() set(Geant4_builtin_expat_FOUND @GEANT4_USE_BUILTIN_EXPAT@) @@ -304,7 +305,7 @@ if(Geant4_g3tog4_FOUND) endif() # - Usolids -set(Geant4_usolids_FOUND @GEANT4_USE_USOLIDS@) +set(Geant4_usolids_FOUND @GEANT4_USE_USOLIDS_EITHER@) if(Geant4_usolids_FOUND) list(REMOVE_ITEM Geant4_FIND_COMPONENTS usolids) endif() @@ -488,6 +489,20 @@ if(Geant4_vis_openinventor_FOUND) list(REMOVE_ITEM Geant4_FIND_COMPONENTS vis_openinventor) endif() +#----------------------------------------------------------------------- +# Include the files listing all the imported targets and configuring +# Intel Compile Features +# (Not needed if used in the same Geant4 project, or if we have run before) +# This is always installed in the same location as us... +# +if(NOT CMAKE_PROJECT_NAME STREQUAL Geant4) + include("${_geant4_thisdir}/Modules/IntelCompileFeatures.cmake") + + if(NOT Geant4_LIBDEPS_LOADED) + include("${_geant4_thisdir}/Geant4LibraryDepends.cmake") + set(Geant4_LIBDEPS_LOADED 1) + endif() +endif() #----------------------------------------------------------------------- # Now perform final configuration of libraries... @@ -614,7 +629,7 @@ list(REMOVE_DUPLICATES Geant4_LIBRARIES) # Point the user to the UseGeant4.cmake file which they may wish to include # to help them with setting up Geant4 # -set(Geant4_USE_FILE ${_thisdir}/UseGeant4.cmake) +set(Geant4_USE_FILE "${_geant4_thisdir}/UseGeant4.cmake") #----------------------------------------------------------------------- # Finally, handle any remaining components. diff --git a/cmake/Templates/geant4-config.in b/cmake/Templates/geant4-config.in index 8f7545ac94..c9ba915029 100644 --- a/cmake/Templates/geant4-config.in +++ b/cmake/Templates/geant4-config.in @@ -57,8 +57,6 @@ description="Geant4 toolkit for the simulation of the passage of particles throu version="@Geant4_VERSION@" # 'Requires' that may affect cflags and libs. -clhep_config_exe=@CLHEP_CONFIG_EXECUTABLE@ - # Basic flags and libraries for visualization vis_cflags="-DG4UI_USE_TCSH" @@ -131,7 +129,7 @@ have_clhep="@G4_BUILTWITH_CLHEP@" feature_list="${feature_list} clhep[${have_clhep}]" if test "x${have_clhep}" = "xno" ; then - cflags="${cflags} `${clhep_config_exe} --include`" + cflags="${cflags} -I@G4_SYSTEM_CLHEP_INCLUDE_DIR@" libs="${libs} @G4_SYSTEM_CLHEP_LIBRARIES@" fi if test "x${have_clhep}" = "xyes" ; then diff --git a/config/History b/config/History index 38615e44e0..f45618a0d8 100644 --- a/config/History +++ b/config/History @@ -1,4 +1,4 @@ -svn log $Id: History 94578 2015-11-25 08:11:03Z gcosmo $ +svn log $Id: History 97771 2016-06-09 15:15:27Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,22 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +8th June 2016 Gunter Folger (config-V10-02-04) +- revert previous change for G4{,NO}STATIC_MODE + +8th June 2016 Gunter Folger (config-V10-02-03) +- delete G4STATIC_MODE and G4NOSTATIC_MODE options in sys/Darwin* and sys/linux* + This is not a complete removal of the option yet... + +25th April 2016 Gabriele Cosmo (config-V10-02-02) +- Added Linux-clang.gmk script for use of clang compiler on Linux system. + +14th April 2016 Gabriele Cosmo (config-V10-02-01) +- Added flags for partial use of USolids/VecGeom types. + +5th February 2016 Gabriele Cosmo (config-V10-02-00) +- Added settings for 14 and 17 C++ standards in platform specific scripts. + 24th November 2015 Gabriele Cosmo (config-V10-01-08) - binmake.gmk: added "analysis/parameters/include" to INCFLAGS. diff --git a/config/architecture.gmk b/config/architecture.gmk index 202a346a4b..ca14fddb8c 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk 93150 2015-10-08 11:52:29Z gcosmo $ +# $Id: architecture.gmk 96443 2016-04-14 14:19:28Z gcosmo $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -180,6 +180,12 @@ endif # USolids path, etc. # ifdef G4GEOM_USE_USOLIDS + G4USOLIDS :=1 +endif +ifdef G4GEOM_USE_PARTIAL_USOLIDS + G4USOLIDS :=1 +endif +ifdef G4USOLIDS G4LIB_USE_USOLIDS := 1 ifndef USOLIDS_BASE_DIR $(error ERROR - Define path USOLIDS_BASE_DIR to USolids/VecGeom installation!) @@ -275,10 +281,10 @@ endif ifdef G4LIB_USE_USOLIDS ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) LDFLAGS += -link $(LIB_PATH)$(USOLIDS_LIB_DIR) - LOADLIBS += $(USOLIDS_LIB) # $(VECGEOM_LIB) + LOADLIBS += $(USOLIDS_LIB) $(VECGEOM_LIB) else LDFLAGS += -L$(USOLIDS_LIB_DIR) - LOADLIBS += -l$(USOLIDS_LIB) # -l$(VECGEOM_LIB) + LOADLIBS += -l$(USOLIDS_LIB) -l$(VECGEOM_LIB) endif endif ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) diff --git a/config/geomconf.gmk b/config/geomconf.gmk index 12adfa4afb..1b69bf2abc 100644 --- a/config/geomconf.gmk +++ b/config/geomconf.gmk @@ -7,7 +7,12 @@ ifdef G4GEOM_USE_USOLIDS CPPFLAGS += -DG4GEOM_USE_USOLIDS - CPPFLAGS += -DVECGEOM_SCALAR -DVECGEOM_REPLACE_USOLIDS -DVECGEOM_NO_SPECIALIZATION -DVECGEOM_USOLIDS + UEXTRAFLAGS := 1 +endif + +ifdef G4GEOM_USE_PARTIAL_USOLIDS + CPPFLAGS += -DG4GEOM_USE_PARTIAL_USOLIDS + UEXTRAFLAGS := 1 endif ifdef G4GEOM_USE_UBOX @@ -55,3 +60,7 @@ endif ifdef G4GEOM_USE_UTUBS CPPFLAGS += -DG4GEOM_USE_UTUBS endif + +ifdef UEXTRAFLAGS + CPPFLAGS += -DVECGEOM_SCALAR -DVECGEOM_REPLACE_USOLIDS -DVECGEOM_NO_SPECIALIZATION -DVECGEOM_USOLIDS +endif diff --git a/config/sys/Darwin-clang.gmk b/config/sys/Darwin-clang.gmk index 4c723035bd..f822f9913c 100644 --- a/config/sys/Darwin-clang.gmk +++ b/config/sys/Darwin-clang.gmk @@ -12,6 +12,16 @@ ifeq ($(G4SYSTEM),Darwin-clang) ifdef G4USE_STD11 CXXFLAGS += -std=c++11 endif + ifdef G4USE_STD14 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++14 + CXXFLAGS += -std=c++14 + endif + ifdef G4USE_STD17 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++17 + CXXFLAGS += -std=c++17 + endif ifdef G4MULTITHREADED CXXFLAGS += -ftls-model=initial-exec -pthread endif diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk index e83c56898a..e3b5906f29 100644 --- a/config/sys/Darwin-g++.gmk +++ b/config/sys/Darwin-g++.gmk @@ -16,6 +16,16 @@ ifeq ($(G4SYSTEM),Darwin-g++) ifdef G4USE_STD11 CXXFLAGS += -std=c++11 endif + ifdef G4USE_STD14 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++14 + CXXFLAGS += -std=c++14 + endif + ifdef G4USE_STD17 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++17 + CXXFLAGS += -std=c++17 + endif # CXXFLAGS += -stdlib=libstdc++ ifdef G4OPTIMISE CXXFLAGS += -O2 diff --git a/config/sys/Linux-clang.gmk b/config/sys/Linux-clang.gmk new file mode 100644 index 0000000000..78aa734d30 --- /dev/null +++ b/config/sys/Linux-clang.gmk @@ -0,0 +1,156 @@ +# +# ------ GNU/LINUX ------ clang 3.6 and higher +# +# Original author: Gabriele Cosmo - CERN +# +ifeq ($(G4SYSTEM),Linux-clang) + CXX := clang++ + CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wno-long-long + CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual + CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe + ifdef G4USE_STD11 + CXXFLAGS += -std=c++11 + CPPFLAGS += -std=c++11 + endif + ifdef G4USE_STD14 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++14 + CXXFLAGS += -std=c++14 + endif + ifdef G4USE_STD17 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++17 + CXXFLAGS += -std=c++17 + endif + ifdef G4MULTITHREADED + CXXFLAGS += -ftls-model=initial-exec -pthread + endif + ifdef G4OPTIMISE + CXXFLAGS += -O2 + FCFLAGS := -O2 + CCFLAGS := -O2 + else + ifdef G4DEBUG + CXXFLAGS += -g + FCFLAGS := -g + CCFLAGS := -g + endif + endif + ifdef G4PROFILE + CXXFLAGS += -pg + FCFLAGS += -pg + CCFLAGS += -pg + endif + ifdef G4OPTDEBUG + CXXFLAGS += -O2 -g + FCFLAGS += -O2 -g + CCFLAGS += -O2 -g + endif + ifdef G4LIB_BUILD_SHARED + CXXFLAGS += -fPIC + FCFLAGS += -fPIC + CCFLAGS += -fPIC + endif + G4RUNPATHOPTION := -Wl,-rpath + G4STATIC_MODE += -Wl,--whole-archive + G4NOSTATIC_MODE += -Wl,--no-whole-archive + CC := clang + FC := gfortran + FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore + FCLIBS := -lg2c -lnsl + ECHO := /bin/echo -e + SHEXT := so + ARCH := $(shell uname -m | cut -s -d "_" -f 2) + LOADLIBS += -lm -lstdc++ + ifndef X11FLAGS + X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 + endif + ifndef X11LIBS + X11LIBS := -L/usr/X11R6/lib$(ARCH) -lXmu -lXt -lXext -lX11 -lXi -lSM -lICE + endif + ifndef XMFLAGS + XMFLAGS := -I/usr/X11R6/include + endif + ifndef XMLIBS + XMLIBS := -lXm -lXpm + endif + ifndef XAWFLAGS + XAWFLAGS := -I/usr/X11R6/include + endif + ifndef XAWLIBS + XAWLIBS := -lXaw + endif + DLDLIBS := -ldl + ifndef OGLFLAGS + OGLFLAGS := -I$(OGLHOME)/include + endif + ifndef OGLLIBS + OGLLIBS := -L$(OGLHOME)/lib$(ARCH) -lGLU -lGL + endif + +# ---- QT Setup block ------------------------------------------------------- + + ifndef QTHOME + QTHOME := /usr + endif + ifndef QTMOC + QTMOC := $(QTHOME)/bin/moc + endif + + QT_VERSION := $(shell $(QTMOC) 2>&1 -v | sed 's/.* .Qt \([0-9]\)\..*/\1/' ) + + ifeq ($(QT_VERSION),5) + ifndef QTFLAGS # Qt5 + QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt + QTFLAGS += -I $(QTHOME)/include/QtCore + QTFLAGS += -I $(QTHOME)/include/QtGui + QTFLAGS += -I $(QTHOME)/include/QtWidgets + QTFLAGS += -I $(QTHOME)/include/QtOpenGL + QTFLAGS += -I $(QTHOME)/include/QtPrintSupport + endif + else # Qt4 + ifndef QTFLAGS + QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt + QTFLAGS += -I$(QTHOME)/include/QtCore + QTFLAGS += -I$(QTHOME)/include/QtGui + QTFLAGS += -I$(QTHOME)/include/QtOpenGL + endif + endif + ifndef QTLIBPATH + QTLIBPATH := $(QTHOME)/lib + QT_SEARCH_LIB := $(shell ls $(QTLIBPATH)/qt$(QT_VERSION)/libq* 2>/dev/null | wc -l ) + ifneq ($(QT_SEARCH_LIB),0) + QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION) + endif + endif + ifeq ($(QT_VERSION),5) + ifndef QTLIBS # Qt5 + QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtWidgets -lQtPrintSupport + endif + ifndef GLQTLIBS + GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtWidgets -lQtOpenGL -lQtPrintSupport + endif + else # Qt4 + ifndef QTLIBS + QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui + endif + ifndef GLQTLIBS + GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL + endif + endif + +#---------------------------------------------------------------------------- + + define build-granular-shared-lib + @libdir=`(cd $(@D);/bin/pwd)`; \ + cd $(G4TMPDIR); \ + $(CXX) -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) \ + $(foreach dir,$(SUBLIBS),$(dir)/*.o); + endef + +endif diff --git a/config/sys/Linux-g++.gmk b/config/sys/Linux-g++.gmk index 8b0cb071f8..3e5a98a783 100644 --- a/config/sys/Linux-g++.gmk +++ b/config/sys/Linux-g++.gmk @@ -10,6 +10,16 @@ ifeq ($(G4SYSTEM),Linux-g++) CPPFLAGS += -std=c++11 CXXFLAGS += -std=c++11 endif + ifdef G4USE_STD14 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++14 + CXXFLAGS += -std=c++14 + endif + ifdef G4USE_STD17 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++17 + CXXFLAGS += -std=c++17 + endif # # Uncomment the following options to activate Pentium4 chip specific # floating-point operations on the SSE unit. It will allow for more stable diff --git a/config/sys/Linux-icc.gmk b/config/sys/Linux-icc.gmk index e27048cbe5..6cfb0c0ecd 100644 --- a/config/sys/Linux-icc.gmk +++ b/config/sys/Linux-icc.gmk @@ -8,6 +8,16 @@ ifeq ($(G4SYSTEM),Linux-icc) CPPFLAGS += -std=c++11 CXXFLAGS += -std=c++11 endif + ifdef G4USE_STD14 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++14 + CXXFLAGS += -std=c++14 + endif + ifdef G4USE_STD17 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++17 + CXXFLAGS += -std=c++17 + endif ifdef G4MULTITHREADED CXXFLAGS += -ftls-model=initial-exec -pthread endif diff --git a/config/sys/WIN32-g++.gmk b/config/sys/WIN32-g++.gmk index 46af8f8283..4169b36771 100644 --- a/config/sys/WIN32-g++.gmk +++ b/config/sys/WIN32-g++.gmk @@ -13,6 +13,16 @@ ifeq ($(G4SYSTEM),WIN32-g++) CPPFLAGS += -std=c++11 CXXFLAGS += -std=c++11 endif + ifdef G4USE_STD14 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++14 + CXXFLAGS += -std=c++14 + endif + ifdef G4USE_STD17 + G4USE_STD11 := 1 + CPPFLAGS += -std=c++17 + CXXFLAGS += -std=c++17 + endif ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O diff --git a/examples/.doxygen/.svn/entries b/examples/.doxygen/.svn/entries index dc9b297691..ffeabcc3af 100644 --- a/examples/.doxygen/.svn/entries +++ b/examples/.doxygen/.svn/entries @@ -1,8 +1,8 @@ 10 dir -94738 -svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-02_branch/examples/.doxygen +97991 +svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-03-beta-01_branch/examples/.doxygen svn+ssh://svn.cern.ch/reps/geant4 @@ -845,40 +845,6 @@ gcosmo 1543 -Doxymodules_field.h -file - - - - -2015-11-30T08:17:04.980202Z -dc42e815f6f769481b02b2af13d79c59 -2013-11-11T10:35:14.738616Z -76473 -gcosmo -has-props - - - - - - - - - - - - - - - - - - - - -4021 - Doxymodules_analysis.h file @@ -913,6 +879,40 @@ has-props 1332 +Doxymodules_field.h +file + + + + +2015-11-30T08:17:04.980202Z +dc42e815f6f769481b02b2af13d79c59 +2013-11-11T10:35:14.738616Z +76473 +gcosmo +has-props + + + + + + + + + + + + + + + + + + + + +4021 + .README.HowToNavigate.txt file @@ -947,40 +947,6 @@ gcosmo 2215 -Doxymodules_eventgenerator.h -file - - - - -2015-11-30T08:17:04.992202Z -0c63d1b29908c72f0c612d55bc41ecff -2015-11-24T09:17:12.168368Z -94561 -gcosmo -has-props - - - - - - - - - - - - - - - - - - - - -3604 - Doxymodules_common.h file @@ -1015,6 +981,40 @@ has-props 731 +Doxymodules_eventgenerator.h +file + + + + +2015-11-30T08:17:04.992202Z +0c63d1b29908c72f0c612d55bc41ecff +2015-11-24T09:17:12.168368Z +94561 +gcosmo +has-props + + + + + + + + + + + + + + + + + + + + +3604 + Doxymodules_new.h file diff --git a/examples/.doxygen/images/.svn/entries b/examples/.doxygen/images/.svn/entries index d421b03884..7a1f73f557 100644 --- a/examples/.doxygen/images/.svn/entries +++ b/examples/.doxygen/images/.svn/entries @@ -1,8 +1,8 @@ 10 dir -94738 -svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-02_branch/examples/.doxygen/images +97991 +svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-03-beta-01_branch/examples/.doxygen/images svn+ssh://svn.cern.ch/reps/geant4 diff --git a/examples/History b/examples/History index 132e4ceb5d..b6963bbfee 100644 --- a/examples/History +++ b/examples/History @@ -17,6 +17,53 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +30th June 2016 Gabriele Cosmo (examples-V10-02-06) +- Updated reference outputs according to reference tag geant4-10-02-ref-06. +- Includes tags: microelectronics-V10-02-01, DMX-V10-02-00, testem7-V10-02-02, + dnaphysics-V10-02-02, microdosimetry-V10-02-01, + testem1-V10-02-04, exRunAndEvent-V10-02-00, + exampleRE01-V10-02-01, clustering-V10-02-00, + ThreadsafeScorers-V10-02-02, rdecay01-V10-02-07. + +27th May 2016 Gabriele Cosmo (examples-V10-02-05) +- Updated reference outputs according to reference tag geant4-10-02-ref-05. +- Includes tags: hadrontherapy-V10-02-00, human_phantom-V10-02-01, + exampleB3-V10-02-01, testem7-V10-02-01, fieldex03-V10-02-00, + channelingExample-V10-02-00, fieldex04-V10-02-00, + rdecay01-V10-02-04. + +29th April 2016 Gabriele Cosmo (examples-V10-02-04) +- Updated reference outputs according to reference tag geant4-10-02-ref-04. +- Includes tags: amsEcal-V10-02-00, testem0-V10-02-02, testem1-V10-02-03, + testem2-V10-02-01, testem5-V10-02-03, testem11-V10-02-05, + testem12-V10-02-02, testem13-V10-02-01, testem14-V10-02-01, + testem15-V10-02-00, testem18-V10-02-01, exhadr06-V10-02-01, + exHadronic-V10-02-00, exhadr07-V10-02-01, G01-V10-02-01, + electronScattering-V10-02-01. + +31st March 2016 Gabriele Cosmo (examples-V10-02-03) +- Updated reference outputs according to reference tag geant4-10-02-ref-03. +- Includes tags: air_shower-V10-02-00, ccal-V10-02-00, microbeam-V10-02-00, + nanobeam-V10-02-00, exampleB5-V10-02-00, testem11-V10-02-02, + range-V10-02-00, wvalue-V10-02-00, expar02-V10-02-00, + G01-V10-02-00, expol01-V10-02-00, exampleRE04-V10-02-00. + +29th February 2016 Gabriele Cosmo (examples-V10-02-02) +- Updated reference outputs according to reference tag geant4-10-02-ref-02. +- Includes tags: B03-V10-02-00, testem1-V10-02-02, testem3-V10-02-03, + testem5-V10-02-02, testem8-V10-02-00, testem11-V10-02-01, + exhadr06-V10-02-00, tbbex-V10-02-01, rdecay01-V10-02-02, + rdecay02-V10-02-00. + +29th January 2016 Gabriele Cosmo (examples-V10-02-01) +- Updated reference outputs according to reference tag geant4-10-02-ref-01. +- Includes tags: exbasic-V10-02-00, testem1-V10-02-00, testem2-V10-02-00, + testem3-V10-02-00, testem4-V10-02-00, testem5-V10-02-01, + testem6-V10-02-00, testem7-V10-02-00, testem10-V10-02-00, + testem11-V10-02-00, testem12-V10-02-01, testem14-V10-02-00, + testem16-V10-02-00, testem17-V10-02-00, testem18-V10-02-00, + rdecay01-V10-02-01. + 4th December 2015 Gabriele Cosmo (examples-V10-02-00) - Updated reference outputs according to reference tag geant4-10-02-ref-00. - Includes tags: doxygen-V10-01-03, ccal-V10-01-00, hadrontherapy-V10-01-03, diff --git a/examples/advanced/air_shower/History b/examples/advanced/air_shower/History index 68f7532f3f..c7d25a1db4 100644 --- a/examples/advanced/air_shower/History +++ b/examples/advanced/air_shower/History @@ -7,6 +7,9 @@ History file ------------ +03.03.2016 - L. Pandola (air_shower-V10-02-00) + Replace std::log with G4Log + 14.04.2015 - G. Cosmo (air_shower-V10-01-02) Replaced call to obsolete GetDz() for G4Tubs to GetZHalfLength() in UltraDetectorConstruction. diff --git a/examples/advanced/air_shower/air_shower.out b/examples/advanced/air_shower/air_shower.out index 1a68a18ff8..81a3a5e2a3 100644 --- a/examples/advanced/air_shower/air_shower.out +++ b/examples/advanced/air_shower/air_shower.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -267,7 +269,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -294,7 +296,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -405,8 +407,8 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics ooo Run 0 starts (global). --------- Ranlux engine status --------- - Initial seed = 1449083840 - float_seed_table[] = 0.447896 0.279358 0.309507 0.697966 0.519508 0.704111 0.316034 0.920339 0.529677 0.502421 0.00944424 0.93338 0.288877 0.153657 0.468558 0.963484 0.963159 0.877593 0.151048 0.201412 0.391303 0.658429 0.536909 0.908619 + Initial seed = 1467116815 + float_seed_table[] = 0.46025 0.614568 0.472781 0.0483307 0.905676 0.729853 0.365072 0.0451633 0.362083 0.523468 0.110341 0.283642 0.72332 0.140984 0.441664 0.88339 0.985072 0.727101 0.377638 0.98976 0.381081 0.685145 0.559393 0.655737 i_lag = 23, j_lag = 9 carry = 0, count24 = 0 luxury = 3 nskip = 199 @@ -417,7 +419,7 @@ mu- Mono Plane Run terminated. Run Summary Number of events processed : 100 - User=5.07s Real=5.08s Sys=0s + User=2.86s Real=2.89s Sys=0s ### Run 0 (global) ended. Graphics systems deleted. Visualization Manager deleting... @@ -440,13 +442,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.213 MB -Pool ID '7G4Track', size : 0.426 MB +Pool ID '17G4DynamicParticle', size : 0.246 MB +Pool ID '7G4Track', size : 0.491 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB -Pool ID '15UltraOpticalHit', size : 0.00385 MB +Pool ID '15UltraOpticalHit', size : 0.000961 MB Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.66 MB +Dynamic pools deleted: 12 / Total memory freed: 0.76 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/air_shower/src/UltraDetectorConstruction.cc b/examples/advanced/air_shower/src/UltraDetectorConstruction.cc index 954579b1b2..da96275544 100644 --- a/examples/advanced/air_shower/src/UltraDetectorConstruction.cc +++ b/examples/advanced/air_shower/src/UltraDetectorConstruction.cc @@ -67,6 +67,7 @@ #include "G4OpBoundaryProcess.hh" #include "G4VisAttributes.hh" #include "G4Colour.hh" +#include "G4Log.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -337,7 +338,7 @@ void UltraDetectorConstruction::ConstructTableMaterials() abslength = 1.0/kInfinity ; } else { - abslength = -3.0*mm/(std::log(ABS[i]/100.0)) ; + abslength = -3.0*mm/(G4Log(ABS[i]/100.0)) ; } MPT_Acrylic->AddEntry("ABSLENGTH", energy, abslength); diff --git a/examples/advanced/amsEcal/History b/examples/advanced/amsEcal/History index f5c12755a7..54b67649c4 100644 --- a/examples/advanced/amsEcal/History +++ b/examples/advanced/amsEcal/History @@ -1,4 +1,4 @@ -$Id: History 84372 2014-10-14 12:52:34Z gcosmo $ +$Id: History 96602 2016-04-25 13:28:48Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +24-04-16 mma (amsEcal-V10-02-00) +- PhysListEmStandard: use G4EmParameters + 13-10-14 mma (amsEcal-V10-00-07) - CmakeLists.txt : remove AIDA references diff --git a/examples/advanced/amsEcal/run1.out b/examples/advanced/amsEcal/run1.out index cd3832e10f..cc6b5c2cfb 100644 --- a/examples/advanced/amsEcal/run1.out +++ b/examples/advanced/amsEcal/run1.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -177,7 +177,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=17.86s Real=17.93s Sys=0s + User=11.92s Real=11.99s Sys=0s ------------------------------------------------------------- ---> The calorimeter is 9 Modules @@ -200,106 +200,106 @@ Run Summary total Energy (rms/mean) visible Energy (rms/mean) - layer 1: 1.5723 MeV +- 2.622 MeV (1.7e+02 %) 158.56 keV +- 721.7 keV (4.6e+02 %) - layer 2: 1.5303 MeV +- 2.254 MeV (1.5e+02 %) 169.7 keV +- 851.7 keV (5e+02 %) - layer 3: 1.5215 MeV +- 2.277 MeV (1.5e+02 %) 160.42 keV +- 748.4 keV (4.7e+02 %) - layer 4: 1.5066 MeV +- 2.172 MeV (1.4e+02 %) 151.77 keV +- 388 keV (2.6e+02 %) - layer 5: 1.5567 MeV +- 2.378 MeV (1.5e+02 %) 161.43 keV +- 562.1 keV (3.5e+02 %) - layer 6: 1.5417 MeV +- 2.629 MeV (1.7e+02 %) 163.09 keV +- 1.002 MeV (6.1e+02 %) - layer 7: 1.5134 MeV +- 2.049 MeV (1.4e+02 %) 160.37 keV +- 709.5 keV (4.4e+02 %) - layer 8: 1.5753 MeV +- 2.909 MeV (1.8e+02 %) 177.93 keV +- 1.325 MeV (7.4e+02 %) - layer 9: 1.5339 MeV +- 2.414 MeV (1.6e+02 %) 158.89 keV +- 772.9 keV (4.9e+02 %) - layer 10: 1.5353 MeV +- 2.352 MeV (1.5e+02 %) 150.94 keV +- 424.3 keV (2.8e+02 %) - layer 11: 1.5743 MeV +- 2.706 MeV (1.7e+02 %) 174.43 keV +- 1.04 MeV (6e+02 %) - layer 12: 1.5051 MeV +- 2.073 MeV (1.4e+02 %) 165.28 keV +- 826.4 keV (5e+02 %) - layer 13: 1.5298 MeV +- 2.401 MeV (1.6e+02 %) 160.73 keV +- 567.9 keV (3.5e+02 %) - layer 14: 1.5756 MeV +- 2.652 MeV (1.7e+02 %) 152.56 keV +- 360.6 keV (2.4e+02 %) - layer 15: 1.5461 MeV +- 2.443 MeV (1.6e+02 %) 153.63 keV +- 511.7 keV (3.3e+02 %) - layer 16: 1.5404 MeV +- 2.369 MeV (1.5e+02 %) 155.21 keV +- 598.6 keV (3.9e+02 %) - layer 17: 1.5476 MeV +- 2.513 MeV (1.6e+02 %) 153.52 keV +- 347.6 keV (2.3e+02 %) - layer 18: 1.5339 MeV +- 2.181 MeV (1.4e+02 %) 149.38 keV +- 466.3 keV (3.1e+02 %) - layer 19: 1.474 MeV +- 2.046 MeV (1.4e+02 %) 155.16 keV +- 476.2 keV (3.1e+02 %) - layer 20: 1.5266 MeV +- 2.146 MeV (1.4e+02 %) 159.09 keV +- 630.3 keV (4e+02 %) - layer 21: 1.4859 MeV +- 1.931 MeV (1.3e+02 %) 147.48 keV +- 237.3 keV (1.6e+02 %) - layer 22: 1.5137 MeV +- 1.982 MeV (1.3e+02 %) 149.95 keV +- 524.7 keV (3.5e+02 %) - layer 23: 1.5349 MeV +- 2.234 MeV (1.5e+02 %) 157.62 keV +- 468 keV (3e+02 %) - layer 24: 1.5217 MeV +- 2.392 MeV (1.6e+02 %) 155.98 keV +- 763.8 keV (4.9e+02 %) - layer 25: 1.5416 MeV +- 2.517 MeV (1.6e+02 %) 166.86 keV +- 978.6 keV (5.9e+02 %) - layer 26: 1.5128 MeV +- 2.235 MeV (1.5e+02 %) 149.89 keV +- 566.2 keV (3.8e+02 %) - layer 27: 1.5389 MeV +- 2.16 MeV (1.4e+02 %) 163.31 keV +- 759 keV (4.6e+02 %) - layer 28: 1.4918 MeV +- 2.074 MeV (1.4e+02 %) 164.29 keV +- 1.01 MeV (6.1e+02 %) - layer 29: 1.5157 MeV +- 2.286 MeV (1.5e+02 %) 164.95 keV +- 746.6 keV (4.5e+02 %) - layer 30: 1.5187 MeV +- 2.007 MeV (1.3e+02 %) 166.29 keV +- 912.6 keV (5.5e+02 %) - layer 31: 1.596 MeV +- 3.006 MeV (1.9e+02 %) 152.81 keV +- 485.3 keV (3.2e+02 %) - layer 32: 1.5231 MeV +- 2.154 MeV (1.4e+02 %) 160.45 keV +- 905.1 keV (5.6e+02 %) - layer 33: 1.4883 MeV +- 1.916 MeV (1.3e+02 %) 149.91 keV +- 413.6 keV (2.8e+02 %) - layer 34: 1.5046 MeV +- 2.345 MeV (1.6e+02 %) 155.84 keV +- 808.8 keV (5.2e+02 %) - layer 35: 1.5136 MeV +- 1.967 MeV (1.3e+02 %) 149.16 keV +- 335.6 keV (2.2e+02 %) - layer 36: 1.541 MeV +- 2.593 MeV (1.7e+02 %) 159.92 keV +- 934.1 keV (5.8e+02 %) - layer 37: 1.5107 MeV +- 1.957 MeV (1.3e+02 %) 156.52 keV +- 597.4 keV (3.8e+02 %) - layer 38: 1.5368 MeV +- 2.551 MeV (1.7e+02 %) 166.29 keV +- 930.9 keV (5.6e+02 %) - layer 39: 1.5455 MeV +- 2.469 MeV (1.6e+02 %) 167.36 keV +- 882.3 keV (5.3e+02 %) - layer 40: 1.5427 MeV +- 2.573 MeV (1.7e+02 %) 157.33 keV +- 555.9 keV (3.5e+02 %) - layer 41: 1.5195 MeV +- 2.23 MeV (1.5e+02 %) 153.93 keV +- 540.8 keV (3.5e+02 %) - layer 42: 1.5494 MeV +- 2.5 MeV (1.6e+02 %) 168.09 keV +- 1.016 MeV (6e+02 %) - layer 43: 1.528 MeV +- 2.287 MeV (1.5e+02 %) 166.99 keV +- 1.089 MeV (6.5e+02 %) - layer 44: 1.5412 MeV +- 2.383 MeV (1.5e+02 %) 154.33 keV +- 517.6 keV (3.4e+02 %) - layer 45: 1.5372 MeV +- 2.287 MeV (1.5e+02 %) 158.65 keV +- 741.9 keV (4.7e+02 %) - layer 46: 1.5365 MeV +- 2.152 MeV (1.4e+02 %) 161.44 keV +- 572.8 keV (3.5e+02 %) - layer 47: 1.5256 MeV +- 2.248 MeV (1.5e+02 %) 167.58 keV +- 1.064 MeV (6.4e+02 %) - layer 48: 1.5058 MeV +- 1.934 MeV (1.3e+02 %) 157.98 keV +- 579 keV (3.7e+02 %) - layer 49: 1.521 MeV +- 2.054 MeV (1.4e+02 %) 165.27 keV +- 754.3 keV (4.6e+02 %) - layer 50: 1.485 MeV +- 1.794 MeV (1.2e+02 %) 148.09 keV +- 304.3 keV (2.1e+02 %) - layer 51: 1.4963 MeV +- 1.893 MeV (1.3e+02 %) 168.08 keV +- 969.3 keV (5.8e+02 %) - layer 52: 1.521 MeV +- 2.19 MeV (1.4e+02 %) 164.35 keV +- 919.2 keV (5.6e+02 %) - layer 53: 1.5101 MeV +- 1.939 MeV (1.3e+02 %) 155.26 keV +- 486.9 keV (3.1e+02 %) - layer 54: 1.5295 MeV +- 2.305 MeV (1.5e+02 %) 170.88 keV +- 1.119 MeV (6.5e+02 %) - layer 55: 1.5176 MeV +- 2.149 MeV (1.4e+02 %) 160.22 keV +- 680.3 keV (4.2e+02 %) - layer 56: 1.5178 MeV +- 2.02 MeV (1.3e+02 %) 166.13 keV +- 767.3 keV (4.6e+02 %) - layer 57: 1.5148 MeV +- 1.987 MeV (1.3e+02 %) 149.03 keV +- 303.5 keV (2e+02 %) - layer 58: 1.5038 MeV +- 1.97 MeV (1.3e+02 %) 158.68 keV +- 684.2 keV (4.3e+02 %) - layer 59: 1.4977 MeV +- 2.215 MeV (1.5e+02 %) 160.91 keV +- 728.2 keV (4.5e+02 %) - layer 60: 1.5258 MeV +- 2.192 MeV (1.4e+02 %) 164.3 keV +- 692.9 keV (4.2e+02 %) - layer 61: 1.5144 MeV +- 2.2 MeV (1.5e+02 %) 165.89 keV +- 950.7 keV (5.7e+02 %) - layer 62: 1.5303 MeV +- 2.202 MeV (1.4e+02 %) 174.45 keV +- 1.09 MeV (6.3e+02 %) - layer 63: 1.5226 MeV +- 2.266 MeV (1.5e+02 %) 159.78 keV +- 761.8 keV (4.8e+02 %) - layer 64: 1.5486 MeV +- 2.503 MeV (1.6e+02 %) 145.84 keV +- 269.2 keV (1.8e+02 %) - layer 65: 1.5112 MeV +- 2.054 MeV (1.4e+02 %) 158.83 keV +- 735 keV (4.6e+02 %) - layer 66: 1.473 MeV +- 1.533 MeV (1e+02 %) 149.27 keV +- 274.2 keV (1.8e+02 %) - layer 67: 1.53 MeV +- 2.506 MeV (1.6e+02 %) 160.64 keV +- 835 keV (5.2e+02 %) - layer 68: 1.5286 MeV +- 2.153 MeV (1.4e+02 %) 167.01 keV +- 818.3 keV (4.9e+02 %) - layer 69: 1.5307 MeV +- 2.244 MeV (1.5e+02 %) 161.91 keV +- 735.6 keV (4.5e+02 %) - layer 70: 1.4968 MeV +- 1.907 MeV (1.3e+02 %) 166.54 keV +- 1.045 MeV (6.3e+02 %) - layer 71: 1.5304 MeV +- 2.073 MeV (1.4e+02 %) 158.91 keV +- 870.3 keV (5.5e+02 %) - layer 72: 1.5419 MeV +- 2.324 MeV (1.5e+02 %) 157.25 keV +- 547.8 keV (3.5e+02 %) - layer 73: 1.5111 MeV +- 2.266 MeV (1.5e+02 %) 154.52 keV +- 587.9 keV (3.8e+02 %) - layer 74: 1.4708 MeV +- 1.95 MeV (1.3e+02 %) 171.45 keV +- 944.8 keV (5.5e+02 %) - layer 75: 1.5288 MeV +- 2.008 MeV (1.3e+02 %) 149.71 keV +- 333.6 keV (2.2e+02 %) - layer 76: 1.5082 MeV +- 2.002 MeV (1.3e+02 %) 157.52 keV +- 729.5 keV (4.6e+02 %) - layer 77: 1.5197 MeV +- 2.197 MeV (1.4e+02 %) 159.5 keV +- 565.9 keV (3.5e+02 %) - layer 78: 1.5055 MeV +- 2.259 MeV (1.5e+02 %) 161.3 keV +- 745.2 keV (4.6e+02 %) - layer 79: 1.5424 MeV +- 2.361 MeV (1.5e+02 %) 163.04 keV +- 630 keV (3.9e+02 %) - layer 80: 1.5564 MeV +- 2.561 MeV (1.6e+02 %) 171.73 keV +- 892.7 keV (5.2e+02 %) - layer 81: 1.5197 MeV +- 2.168 MeV (1.4e+02 %) 162.57 keV +- 757.7 keV (4.7e+02 %) - layer 82: 1.5242 MeV +- 2.168 MeV (1.4e+02 %) 159.44 keV +- 528.3 keV (3.3e+02 %) - layer 83: 1.4739 MeV +- 1.769 MeV (1.2e+02 %) 150.5 keV +- 442.2 keV (2.9e+02 %) - layer 84: 1.491 MeV +- 2.02 MeV (1.4e+02 %) 153.35 keV +- 505.4 keV (3.3e+02 %) - layer 85: 1.5332 MeV +- 2.2 MeV (1.4e+02 %) 174.37 keV +- 1.117 MeV (6.4e+02 %) - layer 86: 1.4977 MeV +- 1.906 MeV (1.3e+02 %) 152.45 keV +- 359.2 keV (2.4e+02 %) - layer 87: 1.4861 MeV +- 1.89 MeV (1.3e+02 %) 152.53 keV +- 395.9 keV (2.6e+02 %) - layer 88: 1.4965 MeV +- 1.647 MeV (1.1e+02 %) 155.23 keV +- 472.3 keV (3e+02 %) - layer 89: 1.4803 MeV +- 1.98 MeV (1.3e+02 %) 157.82 keV +- 694.9 keV (4.4e+02 %) - layer 90: 1.4917 MeV +- 1.977 MeV (1.3e+02 %) 148.92 keV +- 388.9 keV (2.6e+02 %) + layer 1: 1.5171 MeV +- 2.327 MeV (1.5e+02 %) 165.31 keV +- 947.4 keV (5.7e+02 %) + layer 2: 1.4868 MeV +- 2.077 MeV (1.4e+02 %) 149.48 keV +- 385.1 keV (2.6e+02 %) + layer 3: 1.5516 MeV +- 2.522 MeV (1.6e+02 %) 160.55 keV +- 802.4 keV (5e+02 %) + layer 4: 1.5781 MeV +- 2.886 MeV (1.8e+02 %) 175.66 keV +- 1.155 MeV (6.6e+02 %) + layer 5: 1.5366 MeV +- 2.442 MeV (1.6e+02 %) 175.72 keV +- 1.091 MeV (6.2e+02 %) + layer 6: 1.5547 MeV +- 2.855 MeV (1.8e+02 %) 151.27 keV +- 581.7 keV (3.8e+02 %) + layer 7: 1.4998 MeV +- 1.975 MeV (1.3e+02 %) 155.26 keV +- 625.8 keV (4e+02 %) + layer 8: 1.5323 MeV +- 2.391 MeV (1.6e+02 %) 163.72 keV +- 887.5 keV (5.4e+02 %) + layer 9: 1.5192 MeV +- 2.398 MeV (1.6e+02 %) 165.08 keV +- 733 keV (4.4e+02 %) + layer 10: 1.5243 MeV +- 2.443 MeV (1.6e+02 %) 155.45 keV +- 619.2 keV (4e+02 %) + layer 11: 1.5434 MeV +- 2.568 MeV (1.7e+02 %) 151.4 keV +- 631.1 keV (4.2e+02 %) + layer 12: 1.5189 MeV +- 2.187 MeV (1.4e+02 %) 157.75 keV +- 470.1 keV (3e+02 %) + layer 13: 1.4758 MeV +- 1.736 MeV (1.2e+02 %) 158.7 keV +- 532 keV (3.4e+02 %) + layer 14: 1.519 MeV +- 2.239 MeV (1.5e+02 %) 149.18 keV +- 499.8 keV (3.4e+02 %) + layer 15: 1.5243 MeV +- 2.214 MeV (1.5e+02 %) 182.29 keV +- 1.436 MeV (7.9e+02 %) + layer 16: 1.5409 MeV +- 2.255 MeV (1.5e+02 %) 160.52 keV +- 679.1 keV (4.2e+02 %) + layer 17: 1.5264 MeV +- 2.431 MeV (1.6e+02 %) 147.9 keV +- 329.5 keV (2.2e+02 %) + layer 18: 1.5319 MeV +- 2.229 MeV (1.5e+02 %) 155.91 keV +- 576.2 keV (3.7e+02 %) + layer 19: 1.5339 MeV +- 2.441 MeV (1.6e+02 %) 148.99 keV +- 276 keV (1.9e+02 %) + layer 20: 1.5416 MeV +- 2.382 MeV (1.5e+02 %) 158.29 keV +- 555.8 keV (3.5e+02 %) + layer 21: 1.51 MeV +- 2.128 MeV (1.4e+02 %) 154.82 keV +- 704.1 keV (4.5e+02 %) + layer 22: 1.5438 MeV +- 2.456 MeV (1.6e+02 %) 148.94 keV +- 295.2 keV (2e+02 %) + layer 23: 1.5408 MeV +- 2.47 MeV (1.6e+02 %) 155.37 keV +- 610.2 keV (3.9e+02 %) + layer 24: 1.5222 MeV +- 2.238 MeV (1.5e+02 %) 163.18 keV +- 746.1 keV (4.6e+02 %) + layer 25: 1.5003 MeV +- 1.97 MeV (1.3e+02 %) 154.74 keV +- 508.9 keV (3.3e+02 %) + layer 26: 1.5306 MeV +- 2.304 MeV (1.5e+02 %) 166.47 keV +- 1.074 MeV (6.4e+02 %) + layer 27: 1.5143 MeV +- 2.254 MeV (1.5e+02 %) 156.56 keV +- 760.8 keV (4.9e+02 %) + layer 28: 1.5375 MeV +- 2.492 MeV (1.6e+02 %) 164.29 keV +- 661.4 keV (4e+02 %) + layer 29: 1.56 MeV +- 2.681 MeV (1.7e+02 %) 154.39 keV +- 525.2 keV (3.4e+02 %) + layer 30: 1.5786 MeV +- 2.827 MeV (1.8e+02 %) 163.52 keV +- 935.2 keV (5.7e+02 %) + layer 31: 1.5793 MeV +- 2.66 MeV (1.7e+02 %) 170.64 keV +- 1.058 MeV (6.2e+02 %) + layer 32: 1.5505 MeV +- 2.402 MeV (1.5e+02 %) 155.07 keV +- 699.1 keV (4.5e+02 %) + layer 33: 1.5175 MeV +- 2.442 MeV (1.6e+02 %) 157.7 keV +- 618.1 keV (3.9e+02 %) + layer 34: 1.5295 MeV +- 2.212 MeV (1.4e+02 %) 166.71 keV +- 901.9 keV (5.4e+02 %) + layer 35: 1.5013 MeV +- 2.38 MeV (1.6e+02 %) 150.24 keV +- 311.8 keV (2.1e+02 %) + layer 36: 1.5041 MeV +- 1.877 MeV (1.2e+02 %) 153.03 keV +- 399.4 keV (2.6e+02 %) + layer 37: 1.5035 MeV +- 2.116 MeV (1.4e+02 %) 152.36 keV +- 565.1 keV (3.7e+02 %) + layer 38: 1.4936 MeV +- 1.598 MeV (1.1e+02 %) 147.75 keV +- 271.7 keV (1.8e+02 %) + layer 39: 1.5086 MeV +- 1.926 MeV (1.3e+02 %) 159.3 keV +- 611.6 keV (3.8e+02 %) + layer 40: 1.5304 MeV +- 2.105 MeV (1.4e+02 %) 162.67 keV +- 920.2 keV (5.7e+02 %) + layer 41: 1.5459 MeV +- 2.227 MeV (1.4e+02 %) 157.08 keV +- 521.5 keV (3.3e+02 %) + layer 42: 1.5532 MeV +- 2.435 MeV (1.6e+02 %) 155.04 keV +- 439.6 keV (2.8e+02 %) + layer 43: 1.5301 MeV +- 2.078 MeV (1.4e+02 %) 151.76 keV +- 353.1 keV (2.3e+02 %) + layer 44: 1.5167 MeV +- 2.32 MeV (1.5e+02 %) 150.48 keV +- 650.7 keV (4.3e+02 %) + layer 45: 1.5116 MeV +- 2.114 MeV (1.4e+02 %) 156.81 keV +- 559.2 keV (3.6e+02 %) + layer 46: 1.5 MeV +- 2.093 MeV (1.4e+02 %) 166.1 keV +- 985.4 keV (5.9e+02 %) + layer 47: 1.5614 MeV +- 2.482 MeV (1.6e+02 %) 164.56 keV +- 610.1 keV (3.7e+02 %) + layer 48: 1.528 MeV +- 2.193 MeV (1.4e+02 %) 148.22 keV +- 306.6 keV (2.1e+02 %) + layer 49: 1.5405 MeV +- 2.353 MeV (1.5e+02 %) 163.86 keV +- 824.8 keV (5e+02 %) + layer 50: 1.4671 MeV +- 1.722 MeV (1.2e+02 %) 158.73 keV +- 653.4 keV (4.1e+02 %) + layer 51: 1.5432 MeV +- 2.405 MeV (1.6e+02 %) 161.28 keV +- 670 keV (4.2e+02 %) + layer 52: 1.4941 MeV +- 1.919 MeV (1.3e+02 %) 153.11 keV +- 463.4 keV (3e+02 %) + layer 53: 1.5111 MeV +- 2.142 MeV (1.4e+02 %) 162.61 keV +- 946.7 keV (5.8e+02 %) + layer 54: 1.5101 MeV +- 2.139 MeV (1.4e+02 %) 162.72 keV +- 919.2 keV (5.6e+02 %) + layer 55: 1.52 MeV +- 2.01 MeV (1.3e+02 %) 156.65 keV +- 735.8 keV (4.7e+02 %) + layer 56: 1.5261 MeV +- 2.415 MeV (1.6e+02 %) 157.67 keV +- 474.5 keV (3e+02 %) + layer 57: 1.4998 MeV +- 1.992 MeV (1.3e+02 %) 157.55 keV +- 584.2 keV (3.7e+02 %) + layer 58: 1.503 MeV +- 2.147 MeV (1.4e+02 %) 163.67 keV +- 841.2 keV (5.1e+02 %) + layer 59: 1.5088 MeV +- 1.988 MeV (1.3e+02 %) 151.02 keV +- 535.6 keV (3.5e+02 %) + layer 60: 1.4958 MeV +- 1.957 MeV (1.3e+02 %) 161.71 keV +- 586.6 keV (3.6e+02 %) + layer 61: 1.4438 MeV +- 1.412 MeV ( 98 %) 149.18 keV +- 372.1 keV (2.5e+02 %) + layer 62: 1.5556 MeV +- 2.11 MeV (1.4e+02 %) 163.3 keV +- 502.4 keV (3.1e+02 %) + layer 63: 1.5149 MeV +- 2.123 MeV (1.4e+02 %) 154.03 keV +- 412.9 keV (2.7e+02 %) + layer 64: 1.5054 MeV +- 1.719 MeV (1.1e+02 %) 146.66 keV +- 277.2 keV (1.9e+02 %) + layer 65: 1.5346 MeV +- 2.506 MeV (1.6e+02 %) 154.49 keV +- 463.2 keV (3e+02 %) + layer 66: 1.4956 MeV +- 2.04 MeV (1.4e+02 %) 148.03 keV +- 350.5 keV (2.4e+02 %) + layer 67: 1.5347 MeV +- 2.264 MeV (1.5e+02 %) 154.22 keV +- 396.3 keV (2.6e+02 %) + layer 68: 1.5283 MeV +- 2.178 MeV (1.4e+02 %) 156.1 keV +- 580 keV (3.7e+02 %) + layer 69: 1.5328 MeV +- 2.599 MeV (1.7e+02 %) 152.76 keV +- 414.9 keV (2.7e+02 %) + layer 70: 1.5227 MeV +- 2.261 MeV (1.5e+02 %) 163.96 keV +- 975.7 keV (6e+02 %) + layer 71: 1.541 MeV +- 2.685 MeV (1.7e+02 %) 150.97 keV +- 538.6 keV (3.6e+02 %) + layer 72: 1.5049 MeV +- 2.048 MeV (1.4e+02 %) 147.87 keV +- 493.8 keV (3.3e+02 %) + layer 73: 1.5338 MeV +- 2.201 MeV (1.4e+02 %) 154.07 keV +- 376.9 keV (2.4e+02 %) + layer 74: 1.4931 MeV +- 1.994 MeV (1.3e+02 %) 160.84 keV +- 931.1 keV (5.8e+02 %) + layer 75: 1.4741 MeV +- 1.634 MeV (1.1e+02 %) 160.51 keV +- 676.1 keV (4.2e+02 %) + layer 76: 1.4991 MeV +- 1.999 MeV (1.3e+02 %) 157.23 keV +- 585.3 keV (3.7e+02 %) + layer 77: 1.5129 MeV +- 2.162 MeV (1.4e+02 %) 173.24 keV +- 982 keV (5.7e+02 %) + layer 78: 1.5318 MeV +- 2.33 MeV (1.5e+02 %) 152.54 keV +- 465.9 keV (3.1e+02 %) + layer 79: 1.5208 MeV +- 1.972 MeV (1.3e+02 %) 163.43 keV +- 849.7 keV (5.2e+02 %) + layer 80: 1.5359 MeV +- 2.163 MeV (1.4e+02 %) 158.61 keV +- 681.7 keV (4.3e+02 %) + layer 81: 1.5132 MeV +- 2.036 MeV (1.3e+02 %) 152.67 keV +- 445.8 keV (2.9e+02 %) + layer 82: 1.5045 MeV +- 1.869 MeV (1.2e+02 %) 152.23 keV +- 424.8 keV (2.8e+02 %) + layer 83: 1.5082 MeV +- 2.012 MeV (1.3e+02 %) 175.19 keV +- 1.003 MeV (5.7e+02 %) + layer 84: 1.503 MeV +- 1.77 MeV (1.2e+02 %) 157.99 keV +- 709.1 keV (4.5e+02 %) + layer 85: 1.5369 MeV +- 2.394 MeV (1.6e+02 %) 170.28 keV +- 1.056 MeV (6.2e+02 %) + layer 86: 1.4961 MeV +- 1.855 MeV (1.2e+02 %) 155.32 keV +- 442.1 keV (2.8e+02 %) + layer 87: 1.5118 MeV +- 2.182 MeV (1.4e+02 %) 170.75 keV +- 1.093 MeV (6.4e+02 %) + layer 88: 1.5302 MeV +- 2.435 MeV (1.6e+02 %) 157.03 keV +- 523.8 keV (3.3e+02 %) + layer 89: 1.5116 MeV +- 2.151 MeV (1.4e+02 %) 151.95 keV +- 584 keV (3.8e+02 %) + layer 90: 1.5024 MeV +- 1.879 MeV (1.3e+02 %) 154.38 keV +- 582.4 keV (3.8e+02 %) - total calor : 149.47 MeV +- 21.8 MeV ( 15 %) 14.357 MeV +- 6.923 MeV ( 48 %) + total calor : 149.32 MeV +- 21.82 MeV ( 15 %) 14.227 MeV +- 6.535 MeV ( 46 %) ------------------------------------------------------------ - Leakage : 850.53 MeV +- 21.8 MeV - Eleak/Ebeam =85.1 % ( forward =85.1 % backward = 0 % lateral = 0 %) + Leakage : 850.68 MeV +- 21.82 MeV + Eleak/Ebeam =85.1 % ( forward =85.1 % backward = 0 % lateral =0.00512 %) --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1738437478, 1541930724 + Current couple of seeds = 1418898368, 1305369185 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/advanced/amsEcal/src/PhysListEmStandard.cc b/examples/advanced/amsEcal/src/PhysListEmStandard.cc index c2d9a6a791..5b46bb810c 100644 --- a/examples/advanced/amsEcal/src/PhysListEmStandard.cc +++ b/examples/advanced/amsEcal/src/PhysListEmStandard.cc @@ -23,14 +23,15 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc 83010 2014-07-24 14:53:07Z gcosmo $ +// $Id: PhysListEmStandard.cc 96602 2016-04-25 13:28:48Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandard.hh" + +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" -///#include "G4ProcessManager.hh" #include "G4PhysicsListHelper.hh" #include "G4ComptonScattering.hh" @@ -54,7 +55,6 @@ #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4SystemOfUnits.hh" @@ -63,7 +63,19 @@ PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + SetPhysicsType(bElectromagnetic); + + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetVerbose(0); + param->SetMinEnergy(100*eV); + param->SetMaxEnergy(100*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetMscStepLimitType(fUseSafety); + param->SetStepFunction(0.2, 100*um); + param->SetStepFunctionMuHad(0.2, 100*um); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -134,32 +146,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4hIonisation, particle); } } - - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(100*eV); //default - emOptions.SetMaxEnergy(100*TeV); //default - emOptions.SetDEDXBinning(12*10); //default=12*7 - emOptions.SetLambdaBinning(12*10); //default=12*7 - - //multiple coulomb scattering - // - emOptions.SetMscStepLimitation(fUseSafety); //default=fUseSafety - - //energy loss - // - emOptions.SetStepFunction(0.2, 100*um); //default=(0.2, 1*mm) - - //verbose - // - emOptions.SetVerbose(0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/brachytherapy/brachytherapy.out b/examples/advanced/brachytherapy/brachytherapy.out index f82dd633a1..794034fa21 100644 --- a/examples/advanced/brachytherapy/brachytherapy.out +++ b/examples/advanced/brachytherapy/brachytherapy.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -41,16 +41,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -91,7 +93,9 @@ G4ScoringBox : boxMesh_1 --- Shape: Box mesh /run/geometryModified ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -139,6 +143,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 @@ -167,6 +178,13 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -230,9 +248,6 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History index f976239230..7cd82a234f 100644 --- a/examples/advanced/composite_calorimeter/History +++ b/examples/advanced/composite_calorimeter/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History 93898 2015-11-03 08:39:38Z gcosmo $ +$Id: History 95947 2016-03-03 10:39:24Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History 93898 2015-11-03 08:39:38Z gcosmo $ Example History file --------------------- +03.03.2016 - L. Pandola (ccal-V10-02-00) +- Replace std::exp with G4Exp() + 02.11.2015 - A. Ribon (ccal-V10-01-00) - Migrated to ParticleHP. diff --git a/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc index 262bba1e99..949c2592bd 100644 --- a/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc @@ -34,6 +34,7 @@ #include "CCalPrimaryGeneratorMessenger.hh" #include "G4HEPEvtInterface.hh" +#include "G4Exp.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "G4Event.hh" @@ -95,7 +96,7 @@ void CCalPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { G4double eta = CLHEP::RandFlat::shoot(etaMin,etaMax); G4double phi = CLHEP::RandFlat::shoot(phiMin,phiMax); - G4double theta = std::atan(std::exp(-eta))*2.; + G4double theta = std::atan(G4Exp(-eta))*2.; G4double randomX = std::sin(theta)*std::cos(phi); G4double randomY = std::sin(theta)*std::sin(phi); G4double randomZ = std::cos(theta); @@ -140,7 +141,7 @@ void CCalPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { } else { phiValue += scanPhiStep; } - G4double theta = std::atan(std::exp(-etaValue))*2.; + G4double theta = std::atan(G4Exp(-etaValue))*2.; G4double scanX = std::sin(theta)*std::cos(phiValue); G4double scanY = std::sin(theta)*std::sin(phiValue); diff --git a/examples/advanced/gammaknife/gammaknife.out b/examples/advanced/gammaknife/gammaknife.out index 0ab7b478a1..fcad805aee 100644 --- a/examples/advanced/gammaknife/gammaknife.out +++ b/examples/advanced/gammaknife/gammaknife.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -112,7 +114,8 @@ Helmet size set to 14 /run/geometryModified ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -157,6 +160,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -177,12 +187,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -228,7 +245,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -245,7 +262,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -275,7 +292,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -301,7 +318,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -327,7 +344,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -354,7 +371,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -381,7 +398,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -407,7 +424,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -497,8 +514,8 @@ Run 0 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.01 Real TOT = 0 + User=0s Real=0s Sys=0s + User TOT = 0 Real TOT = 0.01 Summary of Run 0 : /run/geometryModified @@ -568,7 +585,7 @@ Run 1 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.01 Real TOT = 0.01 + User TOT = 0 Real TOT = 0.02 Summary of Run 1 : /run/geometryModified @@ -638,7 +655,7 @@ Run 2 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.01 Real TOT = 0.01 + User TOT = 0 Real TOT = 0.02 Summary of Run 2 : /run/geometryModified @@ -708,7 +725,7 @@ Run 3 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.01 Real TOT = 0.01 + User TOT = 0 Real TOT = 0.02 Summary of Run 3 : /run/geometryModified @@ -777,8 +794,8 @@ Run 4 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.02 Real TOT = 0.01 + User=0s Real=0s Sys=0s + User TOT = 0 Real TOT = 0.02 Summary of Run 4 : /run/geometryModified @@ -847,8 +864,8 @@ Run 5 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.02 Real TOT = 0.01 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.01 Real TOT = 0.03 Summary of Run 5 : /run/geometryModified @@ -917,8 +934,8 @@ Run 6 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.03 Real TOT = 0.01 + User=0s Real=0s Sys=0s + User TOT = 0.01 Real TOT = 0.03 Summary of Run 6 : /run/geometryModified @@ -987,8 +1004,8 @@ Run 7 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.03 Real TOT = 0.01 + User=0s Real=0.01s Sys=0s + User TOT = 0.01 Real TOT = 0.04 Summary of Run 7 : /run/geometryModified @@ -1057,8 +1074,8 @@ Run 8 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.03 Real TOT = 0.02 + User=0s Real=0s Sys=0s + User TOT = 0.01 Real TOT = 0.04 Summary of Run 8 : /run/geometryModified @@ -1127,8 +1144,8 @@ Run 9 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.04 Real TOT = 0.03 + User=0s Real=0.01s Sys=0s + User TOT = 0.01 Real TOT = 0.05 Summary of Run 9 : /run/geometryModified @@ -1197,8 +1214,8 @@ Run 10 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.04 Real TOT = 0.03 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.02 Real TOT = 0.06 Summary of Run 10 : /run/geometryModified @@ -1268,7 +1285,7 @@ Run 11 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.04 Real TOT = 0.04 + User TOT = 0.02 Real TOT = 0.06 Summary of Run 11 : /run/geometryModified @@ -1338,7 +1355,7 @@ Run 12 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0.01s Sys=0s - User TOT = 0.05 Real TOT = 0.05 + User TOT = 0.03 Real TOT = 0.07 Summary of Run 12 : /run/geometryModified @@ -1407,8 +1424,8 @@ Run 13 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.06 Real TOT = 0.06 + User=0s Real=0s Sys=0s + User TOT = 0.03 Real TOT = 0.07 Summary of Run 13 : /run/geometryModified @@ -1477,8 +1494,8 @@ Run 14 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.06 Real TOT = 0.06 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.04 Real TOT = 0.08 Summary of Run 14 : /run/geometryModified @@ -1548,7 +1565,7 @@ Run 15 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.06 Real TOT = 0.06 + User TOT = 0.04 Real TOT = 0.08 Summary of Run 15 : /run/geometryModified @@ -1617,8 +1634,8 @@ Run 16 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.07 Real TOT = 0.07 + User=0.01s Real=0s Sys=0s + User TOT = 0.05 Real TOT = 0.08 Summary of Run 16 : /run/geometryModified @@ -1687,8 +1704,8 @@ Run 17 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.08 Real TOT = 0.08 + User=0s Real=0s Sys=0s + User TOT = 0.05 Real TOT = 0.08 Summary of Run 17 : /run/geometryModified @@ -1757,8 +1774,8 @@ Run 18 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.09 Real TOT = 0.09 + User=0s Real=0s Sys=0s + User TOT = 0.05 Real TOT = 0.08 Summary of Run 18 : /run/geometryModified @@ -1827,8 +1844,8 @@ Run 19 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.09 Real TOT = 0.1 + User=0s Real=0s Sys=0s + User TOT = 0.05 Real TOT = 0.08 Summary of Run 19 : /run/geometryModified @@ -1897,8 +1914,8 @@ Run 20 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.1 Real TOT = 0.1 + User=0s Real=0s Sys=0s + User TOT = 0.05 Real TOT = 0.08 Summary of Run 20 : /run/geometryModified @@ -1967,8 +1984,8 @@ Run 21 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.11 Real TOT = 0.1 + User=0s Real=0.01s Sys=0s + User TOT = 0.05 Real TOT = 0.09 Summary of Run 21 : /run/geometryModified @@ -2037,8 +2054,8 @@ Run 22 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0.01s - User TOT = 0.12 Real TOT = 0.11 + User=0.01s Real=0s Sys=0s + User TOT = 0.06 Real TOT = 0.09 Summary of Run 22 : /run/geometryModified @@ -2108,7 +2125,7 @@ Run 23 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.12 Real TOT = 0.12 + User TOT = 0.06 Real TOT = 0.1 Summary of Run 23 : /run/geometryModified @@ -2177,8 +2194,8 @@ Run 24 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.13 Real TOT = 0.13 + User=0s Real=0s Sys=0s + User TOT = 0.06 Real TOT = 0.1 Summary of Run 24 : /run/geometryModified @@ -2247,8 +2264,8 @@ Run 25 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.14 Real TOT = 0.14 + User=0s Real=0s Sys=0s + User TOT = 0.06 Real TOT = 0.1 Summary of Run 25 : /run/geometryModified @@ -2317,8 +2334,8 @@ Run 26 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.15 Real TOT = 0.15 + User=0s Real=0.01s Sys=0s + User TOT = 0.06 Real TOT = 0.11 Summary of Run 26 : /run/geometryModified @@ -2388,7 +2405,7 @@ Run 27 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.15 Real TOT = 0.15 + User TOT = 0.06 Real TOT = 0.11 Summary of Run 27 : /run/geometryModified @@ -2457,8 +2474,8 @@ Run 28 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.16 Real TOT = 0.15 + User=0s Real=0s Sys=0s + User TOT = 0.06 Real TOT = 0.11 Summary of Run 28 : /run/geometryModified @@ -2527,8 +2544,8 @@ Run 29 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.16 Real TOT = 0.16 + User=0s Real=0s Sys=0s + User TOT = 0.06 Real TOT = 0.11 Summary of Run 29 : /run/geometryModified @@ -2597,8 +2614,8 @@ Run 30 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.16 Real TOT = 0.17 + User=0.01s Real=0s Sys=0s + User TOT = 0.07 Real TOT = 0.11 Summary of Run 30 : /run/geometryModified @@ -2667,8 +2684,8 @@ Run 31 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.17 Real TOT = 0.18 + User=0s Real=0s Sys=0s + User TOT = 0.07 Real TOT = 0.11 Summary of Run 31 : /run/geometryModified @@ -2737,8 +2754,8 @@ Run 32 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0.01s - User TOT = 0.17 Real TOT = 0.19 + User=0s Real=0s Sys=0s + User TOT = 0.07 Real TOT = 0.11 Summary of Run 32 : /run/geometryModified @@ -2807,8 +2824,8 @@ Run 33 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.18 Real TOT = 0.19 + User=0s Real=0s Sys=0s + User TOT = 0.07 Real TOT = 0.11 Summary of Run 33 : /run/geometryModified @@ -2877,8 +2894,8 @@ Run 34 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.18 Real TOT = 0.19 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.08 Real TOT = 0.12 Summary of Run 34 : /run/geometryModified @@ -2947,8 +2964,8 @@ Run 35 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.18 Real TOT = 0.2 + User=0s Real=0s Sys=0s + User TOT = 0.08 Real TOT = 0.12 Summary of Run 35 : /run/geometryModified @@ -3018,7 +3035,7 @@ Run 36 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0.01s Sys=0s - User TOT = 0.19 Real TOT = 0.21 + User TOT = 0.09 Real TOT = 0.13 Summary of Run 36 : /run/geometryModified @@ -3087,8 +3104,8 @@ Run 37 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.2 Real TOT = 0.22 + User=0s Real=0s Sys=0s + User TOT = 0.09 Real TOT = 0.13 Summary of Run 37 : /run/geometryModified @@ -3158,7 +3175,7 @@ Run 38 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0.01s Sys=0s - User TOT = 0.21 Real TOT = 0.23 + User TOT = 0.1 Real TOT = 0.14 Summary of Run 38 : /run/geometryModified @@ -3227,8 +3244,8 @@ Run 39 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.21 Real TOT = 0.24 + User=0s Real=0s Sys=0s + User TOT = 0.1 Real TOT = 0.14 Summary of Run 39 : /run/geometryModified @@ -3297,8 +3314,8 @@ Run 40 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.21 Real TOT = 0.24 + User=0.01s Real=0s Sys=0s + User TOT = 0.11 Real TOT = 0.14 Summary of Run 40 : /run/geometryModified @@ -3367,8 +3384,8 @@ Run 41 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.22 Real TOT = 0.25 + User=0s Real=0s Sys=0s + User TOT = 0.11 Real TOT = 0.14 Summary of Run 41 : /run/geometryModified @@ -3438,7 +3455,7 @@ Run 42 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.22 Real TOT = 0.26 + User TOT = 0.11 Real TOT = 0.15 Summary of Run 42 : /run/geometryModified @@ -3507,8 +3524,8 @@ Run 43 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.22 Real TOT = 0.27 + User=0.01s Real=0s Sys=0s + User TOT = 0.12 Real TOT = 0.15 Summary of Run 43 : /run/geometryModified @@ -3577,8 +3594,8 @@ Run 44 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0.01s - User TOT = 0.23 Real TOT = 0.27 + User=0s Real=0s Sys=0s + User TOT = 0.12 Real TOT = 0.15 Summary of Run 44 : /run/geometryModified @@ -3647,8 +3664,8 @@ Run 45 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.23 Real TOT = 0.27 + User=0.01s Real=0s Sys=0s + User TOT = 0.13 Real TOT = 0.15 Summary of Run 45 : /run/geometryModified @@ -3717,8 +3734,8 @@ Run 46 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.24 Real TOT = 0.28 + User=0s Real=0.01s Sys=0s + User TOT = 0.13 Real TOT = 0.16 Summary of Run 46 : /run/geometryModified @@ -3787,8 +3804,8 @@ Run 47 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.24 Real TOT = 0.29 + User=0s Real=0s Sys=0s + User TOT = 0.13 Real TOT = 0.16 Summary of Run 47 : /run/geometryModified @@ -3857,8 +3874,8 @@ Run 48 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.24 Real TOT = 0.29 + User=0s Real=0.01s Sys=0s + User TOT = 0.13 Real TOT = 0.17 Summary of Run 48 : /run/geometryModified @@ -3927,8 +3944,8 @@ Run 49 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.25 Real TOT = 0.29 + User=0s Real=0s Sys=0.01s + User TOT = 0.13 Real TOT = 0.17 Summary of Run 49 : /run/geometryModified @@ -3997,8 +4014,8 @@ Run 50 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.25 Real TOT = 0.29 + User=0s Real=0.01s Sys=0s + User TOT = 0.13 Real TOT = 0.18 Summary of Run 50 : /run/geometryModified @@ -4067,8 +4084,8 @@ Run 51 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.25 Real TOT = 0.3 + User=0s Real=0s Sys=0s + User TOT = 0.13 Real TOT = 0.18 Summary of Run 51 : /run/geometryModified @@ -4137,8 +4154,8 @@ Run 52 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.26 Real TOT = 0.31 + User=0s Real=0.01s Sys=0s + User TOT = 0.13 Real TOT = 0.19 Summary of Run 52 : /run/geometryModified @@ -4207,8 +4224,8 @@ Run 53 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.26 Real TOT = 0.32 + User=0.01s Real=0s Sys=0s + User TOT = 0.14 Real TOT = 0.19 Summary of Run 53 : /run/geometryModified @@ -4277,8 +4294,8 @@ Run 54 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.26 Real TOT = 0.32 + User=0s Real=0.01s Sys=0s + User TOT = 0.14 Real TOT = 0.2 Summary of Run 54 : /run/geometryModified @@ -4347,8 +4364,8 @@ Run 55 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.27 Real TOT = 0.33 + User=0s Real=0s Sys=0s + User TOT = 0.14 Real TOT = 0.2 Summary of Run 55 : /run/geometryModified @@ -4417,8 +4434,8 @@ Run 56 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.27 Real TOT = 0.34 + User=0s Real=0s Sys=0s + User TOT = 0.14 Real TOT = 0.2 Summary of Run 56 : /run/geometryModified @@ -4487,8 +4504,8 @@ Run 57 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.27 Real TOT = 0.35 + User=0s Real=0s Sys=0s + User TOT = 0.14 Real TOT = 0.2 Summary of Run 57 : /run/geometryModified @@ -4557,8 +4574,8 @@ Run 58 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.28 Real TOT = 0.35 + User=0s Real=0s Sys=0s + User TOT = 0.14 Real TOT = 0.21 Summary of Run 58 : /run/geometryModified @@ -4627,8 +4644,8 @@ Run 59 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.28 Real TOT = 0.35 + User=0.01s Real=0s Sys=0s + User TOT = 0.15 Real TOT = 0.21 Summary of Run 59 : /run/geometryModified @@ -4698,7 +4715,7 @@ Run 60 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.28 Real TOT = 0.36 + User TOT = 0.15 Real TOT = 0.22 Summary of Run 60 : /run/geometryModified @@ -4767,8 +4784,8 @@ Run 61 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.29 Real TOT = 0.37 + User=0s Real=0s Sys=0s + User TOT = 0.15 Real TOT = 0.22 Summary of Run 61 : /run/geometryModified @@ -4837,8 +4854,8 @@ Run 62 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.3 Real TOT = 0.38 + User=0s Real=0s Sys=0s + User TOT = 0.15 Real TOT = 0.22 Summary of Run 62 : /run/geometryModified @@ -4907,8 +4924,8 @@ Run 63 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.3 Real TOT = 0.39 + User=0s Real=0s Sys=0s + User TOT = 0.15 Real TOT = 0.22 Summary of Run 63 : /run/geometryModified @@ -4978,7 +4995,7 @@ Run 64 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0s Sys=0s - User TOT = 0.31 Real TOT = 0.39 + User TOT = 0.16 Real TOT = 0.22 Summary of Run 64 : /run/geometryModified @@ -5047,8 +5064,8 @@ Run 65 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.32 Real TOT = 0.39 + User=0s Real=0s Sys=0s + User TOT = 0.16 Real TOT = 0.22 Summary of Run 65 : /run/geometryModified @@ -5117,8 +5134,8 @@ Run 66 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.32 Real TOT = 0.4 + User=0s Real=0s Sys=0s + User TOT = 0.16 Real TOT = 0.22 Summary of Run 66 : /run/geometryModified @@ -5187,8 +5204,8 @@ Run 67 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.33 Real TOT = 0.41 + User=0s Real=0.01s Sys=0s + User TOT = 0.16 Real TOT = 0.23 Summary of Run 67 : /run/geometryModified @@ -5257,8 +5274,8 @@ Run 68 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.34 Real TOT = 0.42 + User=0.01s Real=0s Sys=0s + User TOT = 0.17 Real TOT = 0.23 Summary of Run 68 : /run/geometryModified @@ -5328,7 +5345,7 @@ Run 69 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.34 Real TOT = 0.42 + User TOT = 0.17 Real TOT = 0.23 Summary of Run 69 : /run/geometryModified @@ -5398,7 +5415,7 @@ Run 70 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.34 Real TOT = 0.42 + User TOT = 0.17 Real TOT = 0.23 Summary of Run 70 : /run/geometryModified @@ -5467,8 +5484,8 @@ Run 71 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.35 Real TOT = 0.43 + User=0s Real=0s Sys=0s + User TOT = 0.17 Real TOT = 0.23 Summary of Run 71 : /run/geometryModified @@ -5537,8 +5554,8 @@ Run 72 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.35 Real TOT = 0.43 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.18 Real TOT = 0.24 Summary of Run 72 : /run/geometryModified @@ -5607,8 +5624,8 @@ Run 73 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.36 Real TOT = 0.43 + User=0s Real=0s Sys=0s + User TOT = 0.18 Real TOT = 0.24 Summary of Run 73 : /run/geometryModified @@ -5677,8 +5694,8 @@ Run 74 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.36 Real TOT = 0.44 + User=0s Real=0s Sys=0s + User TOT = 0.18 Real TOT = 0.24 Summary of Run 74 : /run/geometryModified @@ -5748,7 +5765,7 @@ Run 75 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.36 Real TOT = 0.45 + User TOT = 0.18 Real TOT = 0.25 Summary of Run 75 : /run/geometryModified @@ -5818,7 +5835,7 @@ Run 76 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0s Sys=0s - User TOT = 0.37 Real TOT = 0.45 + User TOT = 0.19 Real TOT = 0.25 Summary of Run 76 : /run/geometryModified @@ -5887,8 +5904,8 @@ Run 77 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.38 Real TOT = 0.45 + User=0s Real=0s Sys=0.01s + User TOT = 0.19 Real TOT = 0.25 Summary of Run 77 : /run/geometryModified @@ -5958,7 +5975,7 @@ Run 78 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.38 Real TOT = 0.46 + User TOT = 0.19 Real TOT = 0.26 Summary of Run 78 : /run/geometryModified @@ -6027,8 +6044,8 @@ Run 79 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.39 Real TOT = 0.47 + User=0.01s Real=0s Sys=0s + User TOT = 0.2 Real TOT = 0.26 Summary of Run 79 : /run/geometryModified @@ -6098,7 +6115,7 @@ Run 80 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.39 Real TOT = 0.47 + User TOT = 0.2 Real TOT = 0.26 Summary of Run 80 : /run/geometryModified @@ -6168,7 +6185,7 @@ Run 81 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.39 Real TOT = 0.48 + User TOT = 0.2 Real TOT = 0.27 Summary of Run 81 : /run/geometryModified @@ -6238,7 +6255,7 @@ Run 82 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.39 Real TOT = 0.48 + User TOT = 0.2 Real TOT = 0.27 Summary of Run 82 : /run/geometryModified @@ -6307,8 +6324,8 @@ Run 83 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.4 Real TOT = 0.49 + User=0.01s Real=0s Sys=0s + User TOT = 0.21 Real TOT = 0.27 Summary of Run 83 : /run/geometryModified @@ -6377,8 +6394,8 @@ Run 84 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.41 Real TOT = 0.5 + User=0s Real=0.01s Sys=0s + User TOT = 0.21 Real TOT = 0.28 Summary of Run 84 : /run/geometryModified @@ -6448,7 +6465,7 @@ Run 85 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.41 Real TOT = 0.5 + User TOT = 0.21 Real TOT = 0.28 Summary of Run 85 : /run/geometryModified @@ -6518,7 +6535,7 @@ Run 86 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.41 Real TOT = 0.5 + User TOT = 0.21 Real TOT = 0.28 Summary of Run 86 : /run/geometryModified @@ -6587,8 +6604,8 @@ Run 87 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.41 Real TOT = 0.51 + User=0s Real=0s Sys=0s + User TOT = 0.22 Real TOT = 0.28 Summary of Run 87 : /run/geometryModified @@ -6657,8 +6674,8 @@ Run 88 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.41 Real TOT = 0.52 + User=0s Real=0s Sys=0s + User TOT = 0.22 Real TOT = 0.28 Summary of Run 88 : /run/geometryModified @@ -6727,8 +6744,8 @@ Run 89 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.41 Real TOT = 0.53 + User=0s Real=0s Sys=0s + User TOT = 0.22 Real TOT = 0.28 Summary of Run 89 : /run/geometryModified @@ -6797,8 +6814,8 @@ Run 90 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.42 Real TOT = 0.53 + User=0s Real=0s Sys=0s + User TOT = 0.22 Real TOT = 0.28 Summary of Run 90 : /run/geometryModified @@ -6867,8 +6884,8 @@ Run 91 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.43 Real TOT = 0.53 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.23 Real TOT = 0.29 Summary of Run 91 : /run/geometryModified @@ -6937,8 +6954,8 @@ Run 92 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.43 Real TOT = 0.54 + User=0s Real=0s Sys=0s + User TOT = 0.23 Real TOT = 0.29 Summary of Run 92 : /run/geometryModified @@ -7007,8 +7024,8 @@ Run 93 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.44 Real TOT = 0.55 + User=0s Real=0s Sys=0s + User TOT = 0.23 Real TOT = 0.29 Summary of Run 93 : /run/geometryModified @@ -7077,8 +7094,8 @@ Run 94 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0.01s - User TOT = 0.45 Real TOT = 0.55 + User=0s Real=0.01s Sys=0s + User TOT = 0.23 Real TOT = 0.3 Summary of Run 94 : /run/geometryModified @@ -7147,8 +7164,8 @@ Run 95 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.45 Real TOT = 0.55 + User=0.01s Real=0s Sys=0.01s + User TOT = 0.24 Real TOT = 0.3 Summary of Run 95 : /run/geometryModified @@ -7217,8 +7234,8 @@ Run 96 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.46 Real TOT = 0.56 + User=0s Real=0s Sys=0s + User TOT = 0.24 Real TOT = 0.3 Summary of Run 96 : /run/geometryModified @@ -7287,8 +7304,8 @@ Run 97 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.47 Real TOT = 0.57 + User=0s Real=0.01s Sys=0s + User TOT = 0.24 Real TOT = 0.31 Summary of Run 97 : /run/geometryModified @@ -7357,8 +7374,8 @@ Run 98 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.47 Real TOT = 0.58 + User=0s Real=0s Sys=0s + User TOT = 0.24 Real TOT = 0.31 Summary of Run 98 : /run/geometryModified @@ -7428,7 +7445,7 @@ Run 99 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.47 Real TOT = 0.58 + User TOT = 0.24 Real TOT = 0.31 Summary of Run 99 : /run/geometryModified @@ -7497,8 +7514,8 @@ Run 100 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.47 Real TOT = 0.58 + User=0s Real=0s Sys=0s + User TOT = 0.24 Real TOT = 0.31 Summary of Run 100 : /run/geometryModified @@ -7567,8 +7584,8 @@ Run 101 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.48 Real TOT = 0.59 + User=0s Real=0s Sys=0s + User TOT = 0.24 Real TOT = 0.31 Summary of Run 101 : /run/geometryModified @@ -7637,8 +7654,8 @@ Run 102 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.49 Real TOT = 0.6 + User=0.01s Real=0s Sys=0s + User TOT = 0.25 Real TOT = 0.31 Summary of Run 102 : /run/geometryModified @@ -7707,8 +7724,8 @@ Run 103 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.5 Real TOT = 0.61 + User=0s Real=0.01s Sys=0s + User TOT = 0.25 Real TOT = 0.32 Summary of Run 103 : /run/geometryModified @@ -7778,7 +7795,7 @@ Run 104 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.5 Real TOT = 0.61 + User TOT = 0.25 Real TOT = 0.32 Summary of Run 104 : /run/geometryModified @@ -7847,8 +7864,8 @@ Run 105 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.5 Real TOT = 0.61 + User=0.01s Real=0s Sys=0s + User TOT = 0.26 Real TOT = 0.32 Summary of Run 105 : /run/geometryModified @@ -7917,8 +7934,8 @@ Run 106 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.51 Real TOT = 0.62 + User=0s Real=0.01s Sys=0s + User TOT = 0.26 Real TOT = 0.33 Summary of Run 106 : /run/geometryModified @@ -7988,7 +8005,7 @@ Run 107 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.51 Real TOT = 0.62 + User TOT = 0.26 Real TOT = 0.33 Summary of Run 107 : /run/geometryModified @@ -8057,8 +8074,8 @@ Run 108 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.52 Real TOT = 0.62 + User=0s Real=0s Sys=0s + User TOT = 0.26 Real TOT = 0.33 Summary of Run 108 : /run/geometryModified @@ -8127,8 +8144,8 @@ Run 109 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.52 Real TOT = 0.63 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.27 Real TOT = 0.34 Summary of Run 109 : /run/geometryModified @@ -8197,8 +8214,8 @@ Run 110 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.53 Real TOT = 0.63 + User=0s Real=0s Sys=0s + User TOT = 0.27 Real TOT = 0.34 Summary of Run 110 : /run/geometryModified @@ -8267,8 +8284,8 @@ Run 111 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.53 Real TOT = 0.64 + User=0s Real=0s Sys=0s + User TOT = 0.27 Real TOT = 0.34 Summary of Run 111 : /run/geometryModified @@ -8337,8 +8354,8 @@ Run 112 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.54 Real TOT = 0.64 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.28 Real TOT = 0.35 Summary of Run 112 : /run/geometryModified @@ -8408,7 +8425,7 @@ Run 113 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.54 Real TOT = 0.64 + User TOT = 0.28 Real TOT = 0.35 Summary of Run 113 : /run/geometryModified @@ -8477,8 +8494,8 @@ Run 114 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0.01s - User TOT = 0.54 Real TOT = 0.65 + User=0s Real=0s Sys=0s + User TOT = 0.28 Real TOT = 0.35 Summary of Run 114 : /run/geometryModified @@ -8547,8 +8564,8 @@ Run 115 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.55 Real TOT = 0.66 + User=0s Real=0s Sys=0s + User TOT = 0.28 Real TOT = 0.35 Summary of Run 115 : /run/geometryModified @@ -8617,8 +8634,8 @@ Run 116 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.55 Real TOT = 0.66 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.29 Real TOT = 0.36 Summary of Run 116 : /run/geometryModified @@ -8687,8 +8704,8 @@ Run 117 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.55 Real TOT = 0.67 + User=0s Real=0s Sys=0s + User TOT = 0.29 Real TOT = 0.36 Summary of Run 117 : /run/geometryModified @@ -8758,7 +8775,7 @@ Run 118 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.55 Real TOT = 0.67 + User TOT = 0.29 Real TOT = 0.36 Summary of Run 118 : /run/geometryModified @@ -8828,7 +8845,7 @@ Run 119 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0.01s Sys=0s - User TOT = 0.56 Real TOT = 0.68 + User TOT = 0.3 Real TOT = 0.37 Summary of Run 119 : /run/geometryModified @@ -8897,8 +8914,8 @@ Run 120 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.56 Real TOT = 0.69 + User=0s Real=0s Sys=0s + User TOT = 0.3 Real TOT = 0.37 Summary of Run 120 : /run/geometryModified @@ -8967,8 +8984,8 @@ Run 121 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.57 Real TOT = 0.69 + User=0s Real=0s Sys=0s + User TOT = 0.3 Real TOT = 0.37 Summary of Run 121 : /run/geometryModified @@ -9038,7 +9055,7 @@ Run 122 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.57 Real TOT = 0.7 + User TOT = 0.31 Real TOT = 0.38 Summary of Run 122 : /run/geometryModified @@ -9107,8 +9124,8 @@ Run 123 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.58 Real TOT = 0.7 + User=0s Real=0s Sys=0s + User TOT = 0.31 Real TOT = 0.38 Summary of Run 123 : /run/geometryModified @@ -9177,8 +9194,8 @@ Run 124 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.59 Real TOT = 0.7 + User=0s Real=0s Sys=0.01s + User TOT = 0.31 Real TOT = 0.38 Summary of Run 124 : /run/geometryModified @@ -9247,8 +9264,8 @@ Run 125 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.59 Real TOT = 0.7 + User=0s Real=0.01s Sys=0s + User TOT = 0.31 Real TOT = 0.39 Summary of Run 125 : /run/geometryModified @@ -9317,8 +9334,8 @@ Run 126 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.59 Real TOT = 0.71 + User=0s Real=0s Sys=0s + User TOT = 0.32 Real TOT = 0.39 Summary of Run 126 : /run/geometryModified @@ -9387,8 +9404,8 @@ Run 127 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.6 Real TOT = 0.71 + User=0s Real=0s Sys=0s + User TOT = 0.32 Real TOT = 0.39 Summary of Run 127 : /run/geometryModified @@ -9457,8 +9474,8 @@ Run 128 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.6 Real TOT = 0.71 + User=0s Real=0.01s Sys=0s + User TOT = 0.32 Real TOT = 0.4 Summary of Run 128 : /run/geometryModified @@ -9527,8 +9544,8 @@ Run 129 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.61 Real TOT = 0.72 + User=0s Real=0s Sys=0s + User TOT = 0.32 Real TOT = 0.4 Summary of Run 129 : /run/geometryModified @@ -9598,7 +9615,7 @@ Run 130 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0s Sys=0s - User TOT = 0.62 Real TOT = 0.72 + User TOT = 0.33 Real TOT = 0.4 Summary of Run 130 : /run/geometryModified @@ -9667,8 +9684,8 @@ Run 131 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.62 Real TOT = 0.72 + User=0s Real=0.01s Sys=0s + User TOT = 0.33 Real TOT = 0.41 Summary of Run 131 : /run/geometryModified @@ -9737,8 +9754,8 @@ Run 132 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.63 Real TOT = 0.73 + User=0s Real=0s Sys=0s + User TOT = 0.33 Real TOT = 0.41 Summary of Run 132 : /run/geometryModified @@ -9807,8 +9824,8 @@ Run 133 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.63 Real TOT = 0.74 + User=0.01s Real=0s Sys=0s + User TOT = 0.34 Real TOT = 0.41 Summary of Run 133 : /run/geometryModified @@ -9878,7 +9895,7 @@ Run 134 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.63 Real TOT = 0.74 + User TOT = 0.34 Real TOT = 0.41 Summary of Run 134 : /run/geometryModified @@ -9947,8 +9964,8 @@ Run 135 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.64 Real TOT = 0.74 + User=0s Real=0.01s Sys=0s + User TOT = 0.34 Real TOT = 0.42 Summary of Run 135 : /run/geometryModified @@ -10017,8 +10034,8 @@ Run 136 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.65 Real TOT = 0.75 + User=0.01s Real=0s Sys=0s + User TOT = 0.35 Real TOT = 0.42 Summary of Run 136 : /run/geometryModified @@ -10087,8 +10104,8 @@ Run 137 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.65 Real TOT = 0.76 + User=0s Real=0s Sys=0s + User TOT = 0.35 Real TOT = 0.42 Summary of Run 137 : /run/geometryModified @@ -10157,8 +10174,8 @@ Run 138 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.65 Real TOT = 0.76 + User=0s Real=0.01s Sys=0s + User TOT = 0.35 Real TOT = 0.43 Summary of Run 138 : /run/geometryModified @@ -10227,8 +10244,8 @@ Run 139 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.65 Real TOT = 0.77 + User=0s Real=0s Sys=0s + User TOT = 0.35 Real TOT = 0.43 Summary of Run 139 : /run/geometryModified @@ -10297,8 +10314,8 @@ Run 140 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.66 Real TOT = 0.78 + User=0s Real=0.01s Sys=0s + User TOT = 0.35 Real TOT = 0.44 Summary of Run 140 : /run/geometryModified @@ -10368,7 +10385,7 @@ Run 141 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0s Sys=0s - User TOT = 0.67 Real TOT = 0.78 + User TOT = 0.36 Real TOT = 0.44 Summary of Run 141 : /run/geometryModified @@ -10438,7 +10455,7 @@ Run 142 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.67 Real TOT = 0.79 + User TOT = 0.36 Real TOT = 0.45 Summary of Run 142 : /run/geometryModified @@ -10507,8 +10524,8 @@ Run 143 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.67 Real TOT = 0.8 + User=0s Real=0s Sys=0.01s + User TOT = 0.36 Real TOT = 0.45 Summary of Run 143 : /run/geometryModified @@ -10577,8 +10594,8 @@ Run 144 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.68 Real TOT = 0.8 + User=0s Real=0.01s Sys=0s + User TOT = 0.36 Real TOT = 0.46 Summary of Run 144 : /run/geometryModified @@ -10647,8 +10664,8 @@ Run 145 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.68 Real TOT = 0.8 + User=0s Real=0s Sys=0s + User TOT = 0.36 Real TOT = 0.46 Summary of Run 145 : /run/geometryModified @@ -10717,8 +10734,8 @@ Run 146 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.69 Real TOT = 0.81 + User=0s Real=0s Sys=0s + User TOT = 0.36 Real TOT = 0.46 Summary of Run 146 : /run/geometryModified @@ -10788,7 +10805,7 @@ Run 147 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.69 Real TOT = 0.81 + User TOT = 0.36 Real TOT = 0.46 Summary of Run 147 : /run/geometryModified @@ -10857,8 +10874,8 @@ Run 148 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.69 Real TOT = 0.82 + User=0s Real=0s Sys=0s + User TOT = 0.36 Real TOT = 0.46 Summary of Run 148 : /run/geometryModified @@ -10928,7 +10945,7 @@ Run 149 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0s Sys=0s - User TOT = 0.7 Real TOT = 0.82 + User TOT = 0.37 Real TOT = 0.46 Summary of Run 149 : /run/geometryModified @@ -10997,8 +11014,8 @@ Run 150 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.7 Real TOT = 0.83 + User=0s Real=0s Sys=0s + User TOT = 0.37 Real TOT = 0.46 Summary of Run 150 : /run/geometryModified @@ -11067,8 +11084,8 @@ Run 151 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.71 Real TOT = 0.83 + User=0s Real=0.01s Sys=0s + User TOT = 0.37 Real TOT = 0.47 Summary of Run 151 : /run/geometryModified @@ -11138,7 +11155,7 @@ Run 152 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.71 Real TOT = 0.83 + User TOT = 0.37 Real TOT = 0.47 Summary of Run 152 : /run/geometryModified @@ -11207,8 +11224,8 @@ Run 153 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.71 Real TOT = 0.83 + User=0.01s Real=0s Sys=0s + User TOT = 0.38 Real TOT = 0.47 Summary of Run 153 : /run/geometryModified @@ -11278,7 +11295,7 @@ Run 154 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.71 Real TOT = 0.83 + User TOT = 0.38 Real TOT = 0.48 Summary of Run 154 : /run/geometryModified @@ -11347,8 +11364,8 @@ Run 155 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.71 Real TOT = 0.84 + User=0s Real=0s Sys=0s + User TOT = 0.38 Real TOT = 0.48 Summary of Run 155 : /run/geometryModified @@ -11418,7 +11435,7 @@ Run 156 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.71 Real TOT = 0.84 + User TOT = 0.38 Real TOT = 0.48 Summary of Run 156 : /run/geometryModified @@ -11487,8 +11504,8 @@ Run 157 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.72 Real TOT = 0.84 + User=0.01s Real=0.01s Sys=0s + User TOT = 0.39 Real TOT = 0.49 Summary of Run 157 : /run/geometryModified @@ -11557,8 +11574,8 @@ Run 158 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.72 Real TOT = 0.85 + User=0s Real=0s Sys=0s + User TOT = 0.39 Real TOT = 0.49 Summary of Run 158 : /run/geometryModified @@ -11627,8 +11644,8 @@ Run 159 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.73 Real TOT = 0.85 + User=0s Real=0s Sys=0s + User TOT = 0.39 Real TOT = 0.49 Summary of Run 159 : /run/geometryModified @@ -11697,8 +11714,8 @@ Run 160 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.73 Real TOT = 0.85 + User=0s Real=0s Sys=0s + User TOT = 0.39 Real TOT = 0.49 Summary of Run 160 : /run/geometryModified @@ -11768,7 +11785,7 @@ Run 161 starts ... Run Summary Number of events processed : 10 User=0.01s Real=0.01s Sys=0s - User TOT = 0.74 Real TOT = 0.86 + User TOT = 0.4 Real TOT = 0.5 Summary of Run 161 : /run/geometryModified @@ -11838,7 +11855,7 @@ Run 162 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.74 Real TOT = 0.86 + User TOT = 0.4 Real TOT = 0.5 Summary of Run 162 : /run/geometryModified @@ -11907,8 +11924,8 @@ Run 163 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.75 Real TOT = 0.87 + User=0s Real=0s Sys=0s + User TOT = 0.4 Real TOT = 0.5 Summary of Run 163 : /run/geometryModified @@ -11977,8 +11994,8 @@ Run 164 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.76 Real TOT = 0.88 + User=0s Real=0.01s Sys=0s + User TOT = 0.4 Real TOT = 0.51 Summary of Run 164 : /run/geometryModified @@ -12047,8 +12064,8 @@ Run 165 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.77 Real TOT = 0.89 + User=0.01s Real=0s Sys=0s + User TOT = 0.41 Real TOT = 0.51 Summary of Run 165 : /run/geometryModified @@ -12117,8 +12134,8 @@ Run 166 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.77 Real TOT = 0.9 + User=0s Real=0s Sys=0s + User TOT = 0.41 Real TOT = 0.51 Summary of Run 166 : /run/geometryModified @@ -12188,7 +12205,7 @@ Run 167 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.77 Real TOT = 0.9 + User TOT = 0.41 Real TOT = 0.51 Summary of Run 167 : /run/geometryModified @@ -12257,8 +12274,8 @@ Run 168 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.78 Real TOT = 0.9 + User=0s Real=0.01s Sys=0s + User TOT = 0.41 Real TOT = 0.52 Summary of Run 168 : /run/geometryModified @@ -12327,8 +12344,8 @@ Run 169 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.78 Real TOT = 0.91 + User=0.01s Real=0s Sys=0s + User TOT = 0.42 Real TOT = 0.52 Summary of Run 169 : /run/geometryModified @@ -12397,8 +12414,8 @@ Run 170 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.79 Real TOT = 0.91 + User=0s Real=0s Sys=0.01s + User TOT = 0.42 Real TOT = 0.52 Summary of Run 170 : /run/geometryModified @@ -12467,8 +12484,8 @@ Run 171 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.79 Real TOT = 0.91 + User=0s Real=0.01s Sys=0s + User TOT = 0.42 Real TOT = 0.53 Summary of Run 171 : /run/geometryModified @@ -12537,8 +12554,8 @@ Run 172 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.79 Real TOT = 0.92 + User=0s Real=0s Sys=0s + User TOT = 0.42 Real TOT = 0.53 Summary of Run 172 : /run/geometryModified @@ -12607,8 +12624,8 @@ Run 173 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.8 Real TOT = 0.92 + User=0s Real=0s Sys=0s + User TOT = 0.42 Real TOT = 0.53 Summary of Run 173 : /run/geometryModified @@ -12677,8 +12694,8 @@ Run 174 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0.01s - User TOT = 0.8 Real TOT = 0.92 + User=0s Real=0.01s Sys=0s + User TOT = 0.42 Real TOT = 0.54 Summary of Run 174 : /run/geometryModified @@ -12748,7 +12765,7 @@ Run 175 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.8 Real TOT = 0.92 + User TOT = 0.42 Real TOT = 0.54 Summary of Run 175 : /run/geometryModified @@ -12817,8 +12834,8 @@ Run 176 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.8 Real TOT = 0.92 + User=0.01s Real=0s Sys=0s + User TOT = 0.43 Real TOT = 0.54 Summary of Run 176 : /run/geometryModified @@ -12888,7 +12905,7 @@ Run 177 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.8 Real TOT = 0.93 + User TOT = 0.43 Real TOT = 0.55 Summary of Run 177 : /run/geometryModified @@ -12958,7 +12975,7 @@ Run 178 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.8 Real TOT = 0.93 + User TOT = 0.43 Real TOT = 0.55 Summary of Run 178 : /run/geometryModified @@ -13027,8 +13044,8 @@ Run 179 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.8 Real TOT = 0.94 + User=0.01s Real=0s Sys=0s + User TOT = 0.44 Real TOT = 0.55 Summary of Run 179 : /run/geometryModified @@ -13097,8 +13114,8 @@ Run 180 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.81 Real TOT = 0.94 + User=0s Real=0s Sys=0s + User TOT = 0.44 Real TOT = 0.55 Summary of Run 180 : /run/geometryModified @@ -13168,7 +13185,7 @@ Run 181 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.81 Real TOT = 0.94 + User TOT = 0.44 Real TOT = 0.55 Summary of Run 181 : /run/geometryModified @@ -13237,8 +13254,8 @@ Run 182 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.82 Real TOT = 0.95 + User=0s Real=0s Sys=0s + User TOT = 0.44 Real TOT = 0.55 Summary of Run 182 : /run/geometryModified @@ -13307,8 +13324,8 @@ Run 183 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.83 Real TOT = 0.95 + User=0s Real=0s Sys=0s + User TOT = 0.44 Real TOT = 0.55 Summary of Run 183 : /run/geometryModified @@ -13377,8 +13394,8 @@ Run 184 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0.01s - User TOT = 0.83 Real TOT = 0.96 + User=0s Real=0.01s Sys=0s + User TOT = 0.44 Real TOT = 0.56 Summary of Run 184 : /run/geometryModified @@ -13447,8 +13464,8 @@ Run 185 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.84 Real TOT = 0.96 + User=0s Real=0s Sys=0.01s + User TOT = 0.44 Real TOT = 0.56 Summary of Run 185 : /run/geometryModified @@ -13518,7 +13535,7 @@ Run 186 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.84 Real TOT = 0.96 + User TOT = 0.44 Real TOT = 0.56 Summary of Run 186 : /run/geometryModified @@ -13587,8 +13604,8 @@ Run 187 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.85 Real TOT = 0.97 + User=0s Real=0.01s Sys=0s + User TOT = 0.44 Real TOT = 0.57 Summary of Run 187 : /run/geometryModified @@ -13658,7 +13675,7 @@ Run 188 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.85 Real TOT = 0.97 + User TOT = 0.44 Real TOT = 0.57 Summary of Run 188 : /run/geometryModified @@ -13727,8 +13744,8 @@ Run 189 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.86 Real TOT = 0.98 + User=0.01s Real=0s Sys=0s + User TOT = 0.45 Real TOT = 0.57 Summary of Run 189 : /run/geometryModified @@ -13797,8 +13814,8 @@ Run 190 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.87 Real TOT = 0.99 + User=0s Real=0s Sys=0s + User TOT = 0.45 Real TOT = 0.57 Summary of Run 190 : /run/geometryModified @@ -13868,7 +13885,7 @@ Run 191 starts ... Run Summary Number of events processed : 10 User=0s Real=0.01s Sys=0s - User TOT = 0.88 Real TOT = 1 + User TOT = 0.45 Real TOT = 0.58 Summary of Run 191 : /run/geometryModified @@ -13937,8 +13954,8 @@ Run 192 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.88 Real TOT = 1 + User=0.01s Real=0s Sys=0s + User TOT = 0.46 Real TOT = 0.58 Summary of Run 192 : /run/geometryModified @@ -14007,8 +14024,8 @@ Run 193 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s - User TOT = 0.89 Real TOT = 1.01 + User=0s Real=0s Sys=0s + User TOT = 0.46 Real TOT = 0.58 Summary of Run 193 : /run/geometryModified @@ -14077,8 +14094,8 @@ Run 194 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.89 Real TOT = 1.02 + User=0s Real=0s Sys=0s + User TOT = 0.46 Real TOT = 0.58 Summary of Run 194 : /run/geometryModified @@ -14148,7 +14165,7 @@ Run 195 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.89 Real TOT = 1.02 + User TOT = 0.46 Real TOT = 0.58 Summary of Run 195 : /run/geometryModified @@ -14217,8 +14234,8 @@ Run 196 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.01s Sys=0s - User TOT = 0.89 Real TOT = 1.03 + User=0s Real=0s Sys=0s + User TOT = 0.46 Real TOT = 0.58 Summary of Run 196 : /run/geometryModified @@ -14287,8 +14304,8 @@ Run 197 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.9 Real TOT = 1.03 + User=0s Real=0.01s Sys=0s + User TOT = 0.46 Real TOT = 0.59 Summary of Run 197 : /run/geometryModified @@ -14358,7 +14375,7 @@ Run 198 starts ... Run Summary Number of events processed : 10 User=0s Real=0s Sys=0s - User TOT = 0.9 Real TOT = 1.03 + User TOT = 0.46 Real TOT = 0.59 Summary of Run 198 : /run/geometryModified @@ -14427,8 +14444,8 @@ Run 199 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s - User TOT = 0.91 Real TOT = 1.03 + User=0s Real=0s Sys=0s + User TOT = 0.46 Real TOT = 0.59 Summary of Run 199 : /run/geometryModified @@ -14497,8 +14514,8 @@ Run 200 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s - User TOT = 0.91 Real TOT = 1.03 + User=0s Real=0.01s Sys=0s + User TOT = 0.46 Real TOT = 0.6 Summary of Run 200 : /score/dumpQuantityToFile boxMesh_1 eDep eDep_scorer.out Graphics systems deleted. @@ -14506,6 +14523,6 @@ Visualization Manager deleting... 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.046 MB +Dynamic pools deleted: 11 / Total memory freed: 0.051 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/gammaray_telescope/gammaraytel.out b/examples/advanced/gammaray_telescope/gammaraytel.out index 50d9db8d74..29bbdf7098 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.out +++ b/examples/advanced/gammaray_telescope/gammaraytel.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -189,6 +191,14 @@ Available colours: ------------------------------------------------------------ 2 LAT 1 TOP +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /gun/sourceGen true /gun/particle proton @@ -311,7 +321,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -325,7 +335,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -434,7 +444,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -467,7 +477,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -593,6 +603,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -926,1646 +941,1396 @@ Number of tracker hits in this event = 4 1 143.056 900 0 0 0.501486 0.163057 -205.85 Number of digits in this event = 5 Event: 2 -Number of tracker hits in this event = 168 - 2 109.183 900 5 1 0.0797936 0.0812708 -54.45 - 2 171.194 900 5 0 0.0871658 0.0809871 -55.85 - 2 43.1375 900 4 1 0.249188 0.060627 -84.45 - 2 104.375 901 4 1 0.25 0.0606669 -84.5782 - 2 176.548 900 4 0 0.258213 0.060892 -85.85 - 2 141.331 901 3 1 0.445083 0.0760436 -114.45 - 2 120.9 900 3 0 0.457025 0.0729031 -115.85 - 2 138.163 905 0 1 1.16853 -0.14783 -204.45 - 2 152.735 899 0 0 1.18288 -0.148695 -205.85 - 2 83.76 999 0 0 -16.155 19.9671 -206.25 - 2 82.1502 1000 0 0 -16.3104 20.05 -206.058 - 2 61.4705 813 0 1 -17.317 20.4361 -204.85 - 2 87.6038 812 0 1 -17.45 20.4851 -204.692 - 2 0.496966 811 0 1 -17.65 20.5534 -204.454 - 2 167.941 1003 1 0 -32.733 20.7785 -176.25 - 2 327.464 732 1 1 -33.4844 20.7929 -174.85 - 2 22.2028 731 1 1 -33.65 20.7966 -174.543 - 2 73.1981 1109 2 0 -43.4964 41.8933 -146.25 - 2 60.6533 1110 2 0 -43.5684 42.05 -146.042 - 2 146.151 680 2 1 -43.9284 42.8165 -144.85 - 2 0.00379515 679 2 1 -44.05 43.0686 -144.45 - 2 149.257 1167 3 0 -42.2976 53.4922 -116.25 - 2 146.427 688 3 1 -42.2629 54.0627 -114.85 - 2 73.5733 1311 4 0 -39.706 82.2663 -86.25 - 2 73.3644 1312 4 0 -39.689 82.45 -86.0662 - 2 137.12 703 4 1 -39.3747 83.3744 -84.85 - 2 48.0175 1280 5 0 -33.3126 76.0964 -56.25 - 2 83.4895 1279 5 0 -33.2778 76.05 -56.0814 - 2 138.003 735 5 1 -33.0116 75.6729 -54.85 - 2 22.1702 1206 6 0 -35.9192 61.2922 -26.25 - 2 118.968 1205 6 0 -35.9282 61.25 -26.1668 - 2 3.86515 1204 6 0 -35.9896 61.05 -25.8621 - 2 253.338 718 6 1 -36.2971 60.7883 -24.85 - 2 62.3339 717 6 1 -36.5803 60.7428 -24.45 - 2 43.348 716 6 1 -36.65 60.6944 -24.6654 - 2 108.016 1202 6 0 -36.8154 60.5959 -25.85 - 2 15.9971 1338 6 0 -32.1233 87.817 -26.25 - 2 105.06 1339 6 0 -32.1158 87.85 -26.208 - 2 38.43 1340 6 0 -32.0604 88.05 -25.9558 - 2 175.761 741 6 1 -31.6529 89.8309 -24.85 - 2 179.323 742 6 1 -31.65 89.8438 -24.8424 - 2 79.5581 740 6 1 -31.85 90.535 -24.7408 - 2 143.421 1364 6 0 -33.3555 93.0256 -25.85 - 2 58.8039 1365 6 0 -33.4284 93.15 -25.9038 - 2 98.6481 1366 6 0 -33.5392 93.35 -25.8737 - 2 119.338 1367 6 0 -33.5568 93.55 -25.8613 - 2 0.46589 1368 6 0 -33.5287 93.75 -25.8514 - 2 139.501 736 6 1 -32.6892 97.7662 -24.85 - 2 76.0721 737 6 1 -32.65 98.064 -24.6448 - 2 77.1578 1495 8 0 -113.207 119.225 33.8951 - 2 15.0773 1496 8 0 -113.253 119.35 34.1105 - 2 155.571 332 8 1 -113.552 120.234 35.15 - 2 84.6468 331 8 1 -113.75 120.497 35.425 - 2 178.981 330 8 1 -113.95 120.636 35.495 - 2 189.037 329 8 1 -114.15 120.769 35.5411 - 2 9.47923 919 0 1 4.0487 70.5479 -204.658 - 2 97.4443 920 0 1 4.05 70.5503 -204.648 - 2 97.8272 1397 0 0 -101.563 99.5835 -206.25 - 2 501.738 1398 0 0 -101.904 99.75 -206.129 - 2 83.2077 1399 0 0 -102.279 99.95 -206.088 - 2 28.4873 1400 0 0 -102.42 100.15 -206.206 - 2 248.571 1014 0 0 -68.8898 22.897 -206.25 - 2 256.27 1015 0 0 -69.5604 23.05 -206.046 - 2 10.8774 1016 0 0 -70.3019 23.25 -205.86 - 2 22.7224 529 0 1 -74.1805 24.359 -204.85 - 2 69.3585 528 0 1 -74.25 24.3789 -204.832 - 2 66.52 527 0 1 -74.45 24.4352 -204.78 - 2 62.9728 526 0 1 -74.65 24.4929 -204.729 - 2 174.881 525 0 1 -74.85 24.5485 -204.679 - 2 49.2141 524 0 1 -75.05 24.6041 -204.632 - 2 57.783 523 0 1 -75.25 24.6596 -204.587 - 2 58.4999 522 0 1 -75.45 24.7139 -204.539 - 2 61.2668 521 0 1 -75.65 24.7672 -204.494 - 2 8.16344 510 0 1 -78.0259 24.7392 -204.45 - 2 56.0731 509 0 1 -78.05 24.7291 -204.453 - 2 60.5024 508 0 1 -78.25 24.6416 -204.48 - 2 60.5322 507 0 1 -78.45 24.5564 -204.507 - 2 61.3021 506 0 1 -78.65 24.4755 -204.525 - 2 67.3069 505 0 1 -78.85 24.4045 -204.55 - 2 55.9554 504 0 1 -79.05 24.3274 -204.581 - 2 70.0807 503 0 1 -79.25 24.252 -204.605 - 2 62.4624 502 0 1 -79.45 24.1676 -204.631 - 2 154.569 501 0 1 -79.65 24.0814 -204.651 - 2 70.4639 500 0 1 -79.85 23.9927 -204.667 - 2 81.7134 499 0 1 -80.05 23.8864 -204.686 - 2 50.531 498 0 1 -80.25 23.7849 -204.715 - 2 76.1726 497 0 1 -80.45 23.6892 -204.741 - 2 64.5641 496 0 1 -80.65 23.5901 -204.772 - 2 28.2547 495 0 1 -80.85 23.4896 -204.823 - 2 93.4704 1009 0 0 -84.5102 21.9738 -205.85 - 2 161.353 1008 0 0 -84.8092 21.85 -205.934 - 2 491.272 1007 0 0 -85.2621 21.65 -206.091 - 2 56.8181 514 0 1 -77.0757 24.9792 -204.45 - 2 81.1129 513 0 1 -77.25 24.9704 -204.548 - 2 56.9892 512 0 1 -77.45 24.9933 -204.719 - 2 24.4357 1027 0 0 -78.4105 25.6137 -205.85 - 2 173.855 1028 0 0 -78.4591 25.65 -205.907 - 2 101.183 547 0 1 -70.5715 24.0185 -204.85 - 2 101.982 548 0 1 -70.45 24.2212 -204.806 - 2 57.1788 1051 0 0 -62.4571 30.4002 -205.85 - 2 178.675 1052 0 0 -62.366 30.45 -205.879 - 2 112.742 585 0 1 -62.8926 30.3908 -204.85 - 2 111.181 584 0 1 -63.05 30.4099 -204.796 - 2 64.6171 1058 0 0 -64.0142 31.8318 -205.85 - 2 103.768 1201 0 0 -83.947 60.3179 -206.208 - 2 36.0931 1200 0 0 -84.0864 60.25 -206.22 - 2 118.495 1106 0 0 -105.487 41.3396 -206.25 - 2 16.6545 1360 0 0 40.1118 92.299 -206.25 - 2 76.2664 1361 0 0 40.1336 92.35 -206.239 - 2 65.2546 1362 0 0 40.2193 92.55 -206.199 - 2 58.0748 1363 0 0 40.2997 92.75 -206.16 - 2 114.209 1364 0 0 40.3812 92.95 -206.114 - 2 52.3004 1365 0 0 40.4673 93.15 -206.069 - 2 238.298 1366 0 0 40.561 93.35 -206.019 - 2 84.9768 1367 0 0 40.6533 93.55 -205.971 - 2 103.75 1368 0 0 40.7464 93.75 -205.919 - 2 24.9005 1369 0 0 40.8351 93.95 -205.865 - 2 87.9953 1112 0 1 42.5411 97.8738 -204.85 - 2 194.384 1113 0 1 42.65 98.1244 -204.785 - 2 156.986 1114 0 1 42.85 98.5948 -204.661 - 2 179.315 1115 0 1 43.05 99.0877 -204.55 - 2 9.40492 1116 0 1 43.25 99.6052 -204.455 - 2 525.254 1118 0 1 43.7047 102.469 -204.45 - 2 50.1936 1453 0 0 43.6618 110.822 -205.85 - 2 67.2206 1454 0 0 43.6585 110.95 -205.869 - 2 56.2946 1455 0 0 43.6542 111.15 -205.906 - 2 55.5665 1456 0 0 43.6517 111.35 -205.937 - 2 62.709 1457 0 0 43.6492 111.55 -205.96 - 2 52.7412 1458 0 0 43.6493 111.75 -205.987 - 2 51.3554 1459 0 0 43.6475 111.95 -206.027 - 2 54.6111 1460 0 0 43.6517 112.15 -206.07 - 2 45.5556 1461 0 0 43.6463 112.35 -206.12 - 2 54.8829 1462 0 0 43.6391 112.55 -206.179 - 2 19.5332 1463 0 0 43.6356 112.75 -206.23 - 2 104.213 1795 0 0 22.0251 179.249 -206.25 - 2 82.0052 1796 0 0 21.7969 179.35 -206.049 - 2 45.7848 1001 0 1 20.3486 180.117 -204.85 - 2 8.03634 1098 0 0 -27.6971 39.8176 -206.25 - 2 73.1188 1099 0 0 -27.7137 39.85 -206.23 - 2 68.7235 1100 0 0 -27.8134 40.05 -206.108 - 2 59.8823 1101 0 0 -27.9566 40.25 -205.962 - 2 122.975 755 0 1 -28.8738 41.4104 -204.85 - 2 70.8963 754 0 1 -29.05 41.6212 -204.634 - 2 138.391 1093 1 0 -18.8382 38.8363 -176.25 - 2 8.73061 808 1 1 -18.2701 38.8238 -174.85 - 2 108.8 809 1 1 -18.25 38.8253 -174.802 - 2 85.3801 1060 2 0 -19.1445 32.1268 -146.25 - 2 27.0862 1059 2 0 -19.1567 32.05 -145.93 - 2 162.266 804 2 1 -19.0867 31.7068 -144.85 - 2 37.3781 1428 0 0 42.7117 105.869 -206.25 - 2 70.9506 1429 0 0 42.7432 105.95 -206.235 - 2 63.4408 1430 0 0 42.8206 106.15 -206.199 - 2 118.391 1431 0 0 42.8977 106.35 -206.163 - 2 99.0549 1432 0 0 42.9741 106.55 -206.127 - 2 52.4233 1433 0 0 43.0458 106.75 -206.092 - 2 70.3207 1434 0 0 43.1162 106.95 -206.059 - 2 61.654 1435 0 0 43.1854 107.15 -206.026 - 2 56.0082 1436 0 0 43.2551 107.35 -205.993 - 2 56.0228 1437 0 0 43.3251 107.55 -205.954 - 2 63.1741 1438 0 0 43.3935 107.75 -205.917 - 2 44.111 1439 0 0 43.4609 107.95 -205.88 - 2 170.542 1126 0 1 45.3007 113.914 -204.85 - 2 505.608 1127 0 1 45.45 114.398 -204.766 - 2 491.157 1128 0 1 45.65 115.029 -204.658 - 2 186.61 1129 0 1 45.85 115.676 -204.548 - 2 150.585 119 5 1 -156.306 -9.9348 -54.785 - 2 117.895 849 5 0 -155.064 -10.2192 -55.85 - 2 54.8831 332 0 1 -113.619 84.1587 -204.563 -Number of digits in this event = 46 +Number of tracker hits in this event = 12 + 2 479.378 900 4 1 0.104647 0.108885 -84.45 + 2 189.265 900 4 0 0.113834 0.11656 -85.85 + 2 140.049 901 3 1 0.317186 0.263869 -114.45 + 2 135.754 901 3 0 0.321635 0.26753 -115.85 + 2 127.675 901 2 1 0.386642 0.311305 -144.45 + 2 233.199 901 2 0 0.389931 0.316564 -145.85 + 2 165.244 902 1 1 0.462872 0.399182 -174.45 + 2 138.601 901 1 0 0.458317 0.40535 -175.85 + 2 208.448 901 0 1 0.360128 0.538574 -204.45 + 2 150.541 902 0 0 0.355767 0.542634 -205.85 + 2 93.438 899 5 1 -0.05 0.117628 -54.7297 + 2 231.381 898 5 1 -0.25 0.171608 -54.7167 +Number of digits in this event = 12 Event: 3 -Number of tracker hits in this event = 7 - 3 129.754 900 1 1 0.244982 0.560092 -174.45 - 3 109.5 902 1 0 0.256463 0.58918 -175.85 - 3 123.769 902 0 1 0.478298 1.19689 -204.45 - 3 140.461 905 0 0 0.492552 1.22846 -205.85 - 3 25.3456 909 0 0 0.4052 2.01117 -205.85 - 3 149.808 910 0 0 0.383137 2.05 -205.926 - 3 197.077 1025 0 0 -3.28644 25.0588 -206.25 -Number of digits in this event = 6 +Number of tracker hits in this event = 10 + 3 115.188 900 4 1 0.0820169 0.108097 -84.45 + 3 116.307 900 4 0 0.0904491 0.100499 -85.85 + 3 132.364 901 3 1 0.259539 -0.0641649 -114.45 + 3 296.889 899 3 0 0.266972 -0.069282 -115.85 + 3 150.822 901 2 1 0.407508 -0.167104 -144.45 + 3 146.132 899 2 0 0.416066 -0.178529 -145.85 + 3 116.768 902 1 1 0.580276 -0.388192 -174.45 + 3 157.057 898 1 0 0.588784 -0.399572 -175.85 + 3 150.933 903 0 1 0.747015 -0.622696 -204.45 + 3 110.634 897 0 0 0.750573 -0.631894 -205.85 +Number of digits in this event = 7 Event: 4 -Number of tracker hits in this event = 11 - 4 223.003 900 5 1 0.0831751 -0.0736652 -54.45 - 4 112.251 899 5 0 0.0837023 -0.0791567 -55.85 - 4 182.995 900 4 1 0.112653 -0.188685 -84.45 - 4 142.595 899 4 0 0.119646 -0.199263 -85.85 - 4 66.4494 901 3 1 0.251642 -0.430075 -114.45 - 4 69.9452 900 3 1 0.25 -0.429878 -114.696 - 4 110.196 898 3 0 0.242109 -0.429524 -115.85 - 4 210.771 898 1 1 -0.355697 -0.353088 -174.45 - 4 164.856 898 1 0 -0.373994 -0.345422 -175.85 - 4 117.422 896 0 1 -0.745817 -0.196009 -204.45 - 4 186.747 899 0 0 -0.765072 -0.19156 -205.85 +Number of tracker hits in this event = 6 + 4 131.461 898 3 1 -0.285816 0.076291 -114.45 + 4 124.878 900 3 0 -0.289296 0.0747259 -115.85 + 4 11180.9 898 0 1 -0.420651 -0.257384 -204.45 + 4 155.142 896 0 0 -0.24149 -0.722273 -205.85 + 4 10.6692 895 0 0 -0.192364 -0.85 -206.227 + 4 57.3193 181 1 0 79.2891 -143.82 -176.006 Number of digits in this event = 7 Event: 5 -Number of tracker hits in this event = 9 - 5 138.155 901 3 1 0.270634 -0.0831316 -114.45 - 5 122.101 899 3 0 0.278246 -0.0872072 -115.85 - 5 147.537 901 2 1 0.412601 -0.154028 -144.45 - 5 168.088 899 2 0 0.414311 -0.155724 -145.85 - 5 119.874 901 1 1 0.438336 -0.178566 -174.45 - 5 367.415 899 1 0 0.442988 -0.178813 -175.85 - 5 144.002 902 0 1 0.546527 -0.18625 -204.45 - 5 137.492 899 0 0 0.551982 -0.185546 -205.85 - 5 99.4918 561 6 0 -110.365 -67.712 -26.1966 -Number of digits in this event = 9 -Event: 6 -Number of tracker hits in this event = 11 - 6 163.909 900 3 1 0.0760667 0.397318 -114.45 - 6 115.897 901 3 0 0.0754493 0.412345 -115.85 - 6 128.849 900 2 1 0.0638599 0.690871 -144.45 - 6 122.119 898 1 1 -0.399097 1.18517 -174.45 - 6 636.535 905 1 0 -0.425513 1.20762 -175.85 - 6 154.815 895 0 1 -0.950663 1.68402 -204.45 - 6 121.843 908 0 0 -0.975512 1.70936 -205.85 - 6 247.723 588 4 0 -39.6543 -62.365 -86.209 - 6 12.2719 759 7 1 -28.2311 71.6359 5.24793 - 6 16.2091 952 5 1 10.632 65.279 -54.7987 - 6 134.157 953 5 1 10.65 65.275 -54.7887 -Number of digits in this event = 10 -Event: 7 -Number of tracker hits in this event = 10 - 7 144.133 899 4 1 -0.0600931 -0.274142 -84.45 - 7 120.052 898 4 0 -0.0595953 -0.286929 -85.85 - 7 175.338 899 3 1 -0.0531119 -0.555713 -114.45 - 7 470.231 897 3 0 -0.0536076 -0.571637 -115.85 - 7 158.195 899 2 1 -0.0541867 -0.906961 -144.45 - 7 148.407 895 2 0 -0.0567597 -0.919669 -145.85 - 7 116.776 899 1 1 -0.14118 -1.19505 -174.45 - 7 127 894 1 0 -0.150504 -1.20378 -175.85 - 7 149.191 898 0 1 -0.326422 -1.39282 -204.45 - 7 151.923 893 0 0 -0.334718 -1.40441 -205.85 -Number of digits in this event = 10 -Event: 8 -Number of tracker hits in this event = 8 - 8 170.702 899 3 1 -0.168172 -0.205675 -114.45 - 8 120.022 899 3 0 -0.179807 -0.210029 -115.85 - 8 116.241 898 2 1 -0.398286 -0.280007 -144.45 - 8 248.868 898 2 0 -0.409139 -0.285303 -145.85 - 8 240.427 897 1 1 -0.622555 -0.38615 -174.45 - 8 150.974 898 1 0 -0.623679 -0.393107 -175.85 - 8 137.93 897 0 1 -0.645544 -0.526711 -204.45 - 8 127.737 897 0 0 -0.642023 -0.53039 -205.85 -Number of digits in this event = 8 -Event: 9 -Number of tracker hits in this event = 6 - 9 129.555 899 2 1 -0.111828 -0.295411 -144.45 - 9 136.229 898 2 0 -0.11628 -0.298743 -145.85 - 9 130.664 899 1 1 -0.194772 -0.35686 -174.45 - 9 354.412 898 1 0 -0.198509 -0.361647 -175.85 - 9 143.91 898 0 1 -0.261567 -0.448872 -204.45 - 9 178.225 897 0 0 -0.262872 -0.451359 -205.85 -Number of digits in this event = 7 -Event: 10 -Number of tracker hits in this event = 15 - 10 112.949 899 5 1 -0.224895 -0.0939265 -54.45 - 10 149.738 899 5 0 -0.23505 -0.0925995 -55.85 - 10 167.257 898 1 1 -0.272825 0.0710923 -174.45 - 10 129.353 900 1 0 -0.268592 0.0703366 -175.85 - 10 29.9504 1195 0 0 -69.4132 59.2452 -206.25 - 10 1635.54 1196 0 0 -69.4188 59.25 -206.249 - 10 1862.16 1197 0 0 -69.6516 59.45 -206.198 - 10 2000.25 1198 0 0 -69.8789 59.65 -206.156 - 10 2318.08 1199 0 0 -70.1159 59.85 -206.114 - 10 2677.36 1200 0 0 -70.3503 60.05 -206.082 - 10 4110.46 1201 0 0 -70.5706 60.25 -206.045 - 10 3032.04 1202 0 0 -70.7932 60.45 -205.998 - 10 123.594 987 4 0 -2.32533 17.6407 -86.25 - 10 318.812 986 4 0 -2.26856 17.45 -86.0454 - 10 30.0273 985 4 0 -1.98859 17.25 -85.9168 -Number of digits in this event = 15 -Event: 11 -Number of tracker hits in this event = 20 - 11 118.989 899 4 1 -0.112689 -0.306042 -84.45 - 11 210.267 898 4 0 -0.117246 -0.308111 -85.85 - 11 156.519 899 3 1 -0.208185 -0.345051 -114.45 - 11 114.049 898 3 0 -0.210907 -0.348845 -115.85 - 11 133.322 898 2 1 -0.266059 -0.433768 -144.45 - 11 493.286 898 2 0 -0.279166 -0.43694 -145.85 - 11 141.056 897 1 1 -0.544543 -0.491677 -174.45 - 11 102.942 897 1 0 -0.559227 -0.492317 -175.85 - 11 155.776 895 0 1 -0.85361 -0.501764 -204.45 - 11 118.924 897 0 0 -0.869263 -0.501324 -205.85 - 11 140.336 900 4 1 0.0975525 -0.396198 -84.45 - 11 39.9764 904 4 0 0.05 0.931379 -86.1546 - 11 20.0194 905 4 0 0.0620237 1.05 -86.234 - 11 106.291 1492 4 0 -46.7149 118.722 -86.25 - 11 89.2549 1493 4 0 -46.698 118.75 -86.0317 - 11 119.71 668 4 1 -46.2621 119.115 -84.85 - 11 251.818 669 4 1 -46.25 119.258 -84.6109 - 11 131.778 900 5 1 0.05 -0.0590101 -54.8097 - 11 62.3697 915 5 0 2.12443 3.11562 -55.85 - 11 270.795 916 5 0 2.18878 3.25 -55.9195 -Number of digits in this event = 11 -Event: 12 Number of tracker hits in this event = 12 - 12 315.422 897 5 1 -0.482428 0.156324 -54.45 - 12 113.483 900 5 0 -0.508794 0.154917 -55.85 - 12 139.077 894 4 1 -1.05485 0.11391 -84.45 - 12 142.021 900 4 0 -1.08492 0.116401 -85.85 - 12 126.311 891 3 1 -1.6908 0.168457 -114.45 - 12 146.227 900 3 0 -1.7228 0.169505 -115.85 - 12 103.136 888 2 1 -2.38941 0.208802 -144.45 - 12 104.826 900 2 0 -2.42126 0.215555 -145.85 - 12 128.97 884 1 1 -3.0754 0.34324 -174.45 - 12 131.795 901 1 0 -3.10476 0.353024 -175.85 - 12 135.519 881 0 1 -3.71229 0.577457 -204.45 - 12 137.344 902 0 0 -3.74353 0.592222 -205.85 -Number of digits in this event = 10 -Event: 13 + 5 159.11 900 5 1 0.118557 0.102008 -54.45 + 5 353.317 900 5 0 0.128689 0.107141 -55.85 + 5 111.331 901 4 1 0.346716 0.201093 -84.45 + 5 211.582 900 4 0 0.356514 0.202098 -85.85 + 5 112.242 902 3 1 0.55066 0.20452 -114.45 + 5 134.79 900 3 0 0.560842 0.207066 -115.85 + 5 134.957 903 2 1 0.780251 0.267509 -144.45 + 5 145.592 901 2 0 0.783584 0.26803 -145.85 + 5 131.142 903 1 1 0.839335 0.252767 -174.45 + 5 134.683 901 1 0 0.84388 0.25149 -175.85 + 5 120.349 904 0 1 0.974045 0.241874 -204.45 + 5 218.956 900 0 0 0.987629 0.238983 -205.85 +Number of digits in this event = 11 +Event: 6 +Number of tracker hits in this event = 12 + 6 126.342 900 4 1 0.0714747 -0.21657 -84.45 + 6 144.36 899 4 0 0.0773558 -0.219223 -85.85 + 6 134.978 900 3 1 0.192281 -0.252892 -114.45 + 6 117.127 898 3 0 0.200554 -0.256109 -115.85 + 6 127.888 901 2 1 0.361623 -0.321469 -144.45 + 6 198.509 898 2 0 0.369086 -0.329785 -145.85 + 6 262.889 902 1 1 0.509667 -0.496509 -174.45 + 6 136.641 897 1 0 0.51522 -0.506649 -175.85 + 6 122.77 902 0 1 0.645258 -0.720941 -204.45 + 6 138.001 896 0 0 0.649788 -0.729773 -205.85 + 6 259.976 902 1 0 0.145406 0.528921 -175.85 + 6 310.514 903 1 0 -0.316344 0.65 -176.159 +Number of digits in this event = 12 +Event: 7 +Number of tracker hits in this event = 6 + 7 129.156 900 4 1 0.0642236 0.105176 -84.45 + 7 261.118 900 4 0 0.0627863 0.108579 -85.85 + 7 172.325 899 1 1 -0.0570235 0.265414 -174.45 + 7 215.513 901 1 0 -0.0613527 0.258877 -175.85 + 7 133.08 899 0 1 -0.162327 0.137674 -204.45 + 7 122.301 900 0 0 -0.170351 0.13917 -205.85 +Number of digits in this event = 7 +Event: 8 +Number of tracker hits in this event = 10 + 8 120.373 899 4 1 -0.110107 -0.129393 -84.45 + 8 129.521 899 4 0 -0.117314 -0.130489 -85.85 + 8 166.042 899 3 1 -0.247595 -0.132666 -114.45 + 8 140.661 899 3 0 -0.25265 -0.136783 -115.85 + 8 124.91 898 2 1 -0.360688 -0.24445 -144.45 + 8 341.742 898 2 0 -0.371351 -0.252495 -145.85 + 8 188.869 897 1 1 -0.608555 -0.432065 -174.45 + 8 170.017 898 1 0 -0.622497 -0.443167 -175.85 + 8 127.746 895 0 1 -0.911677 -0.677214 -204.45 + 8 255.195 896 0 0 -0.930918 -0.690328 -205.85 +Number of digits in this event = 11 +Event: 9 +Number of tracker hits in this event = 12 + 9 146.51 900 5 1 0.0857704 -0.0669216 -54.45 + 9 120.646 899 5 0 0.0923559 -0.0665192 -55.85 + 9 120.316 900 4 1 0.215964 -0.0718135 -84.45 + 9 99.5429 899 4 0 0.221619 -0.0800898 -85.85 + 9 237.192 901 3 1 0.32844 -0.274814 -114.45 + 9 415.316 898 3 0 0.334511 -0.287049 -115.85 + 9 141.774 902 2 1 0.456204 -0.565216 -144.45 + 9 133.665 897 2 0 0.467407 -0.58051 -145.85 + 9 123.457 903 1 1 0.69653 -0.892106 -174.45 + 9 151.017 895 1 0 0.702464 -0.913968 -175.85 + 9 170.495 903 0 1 0.827383 -1.343 -204.45 + 9 143.486 893 0 0 0.834343 -1.36784 -205.85 +Number of digits in this event = 12 +Event: 10 Number of tracker hits in this event = 8 - 13 191.701 901 4 1 0.356481 0.0721799 -84.45 - 13 119.721 900 4 0 0.370904 0.0667867 -85.85 - 13 114.313 903 2 1 0.813647 -0.231768 -144.45 - 13 175.945 899 2 0 0.81924 -0.239475 -145.85 - 13 115.027 904 1 1 0.929353 -0.396938 -174.45 - 13 130.999 898 1 0 0.935003 -0.405661 -175.85 - 13 190.808 904 0 1 1.02588 -0.566543 -204.45 - 13 125.017 897 0 0 1.02921 -0.574435 -205.85 -Number of digits in this event = 6 + 10 139.007 900 5 1 0.0770352 0.174326 -54.45 + 10 134.517 900 5 0 0.0816137 0.188415 -55.85 + 10 535.019 900 4 1 0.169381 0.462773 -84.45 + 10 110.059 902 4 0 0.172362 0.479768 -85.85 + 10 140.856 900 3 1 0.22267 0.813804 -114.45 + 10 202.467 903 3 0 0.220063 0.830825 -115.85 + 10 121.063 900 2 1 0.162299 1.16478 -144.45 + 10 142.515 905 2 0 0.156525 1.17637 -145.85 +Number of digits in this event = 8 +Event: 11 +Number of tracker hits in this event = 12 + 11 170.361 899 4 1 -0.0754033 0.0913183 -84.45 + 11 120.949 900 4 0 -0.0728847 0.0891366 -85.85 + 11 124.359 900 2 1 0.0960662 0.240777 -144.45 + 11 125.166 901 2 0 0.0987518 0.250957 -145.85 + 11 302.408 900 1 1 0.147242 0.467045 -174.45 + 11 138.031 902 1 0 0.15303 0.478505 -175.85 + 11 228.373 901 0 1 0.271106 0.736358 -204.45 + 11 136.982 903 0 0 0.273009 0.75118 -205.85 + 11 7.51221 953 5 0 -38.6288 10.6929 -56.25 + 11 104.566 423 11 0 -124.452 -95.439 123.759 + 11 81.0142 424 11 0 -124.422 -95.35 123.78 + 11 208.957 1048 0 1 29.7579 -58.7513 -204.701 +Number of digits in this event = 13 +Event: 12 +Number of tracker hits in this event = 8 + 12 142.622 900 4 1 0.118747 -0.0692246 -84.45 + 12 131.041 899 4 0 0.125272 -0.0724846 -85.85 + 12 172.862 901 3 1 0.271599 -0.153936 -114.45 + 12 122.781 899 3 0 0.276664 -0.157737 -115.85 + 12 206.095 901 2 1 0.351675 -0.234552 -144.45 + 12 214.891 899 2 0 0.340081 -0.201793 -145.85 + 12 147.132 899 0 1 -0.159295 1.69887 -204.45 + 12 132.871 908 0 0 -0.16629 1.74463 -205.85 +Number of digits in this event = 9 +Event: 13 +Number of tracker hits in this event = 10 + 13 113.443 899 4 1 -0.0724299 0.060389 -84.45 + 13 111.791 900 4 0 -0.0784421 0.0621305 -85.85 + 13 128.024 899 3 1 -0.207009 0.0782941 -114.45 + 13 120.793 900 3 0 -0.211805 0.0860455 -115.85 + 13 126.038 898 2 1 -0.311133 0.223639 -144.45 + 13 137.809 900 2 0 -0.316116 0.226121 -145.85 + 13 125.961 898 1 1 -0.388794 0.289446 -174.45 + 13 129.557 901 1 0 -0.392377 0.29936 -175.85 + 13 160.728 897 0 1 -0.460317 0.508792 -204.45 + 13 128.554 902 0 0 -0.462026 0.522911 -205.85 +Number of digits in this event = 9 Event: 14 -Number of tracker hits in this event = 6 - 14 328.02 907 2 1 1.47707 -0.0683874 -144.45 - 14 143.123 899 2 0 1.49972 -0.073701 -145.85 - 14 154.345 909 1 1 1.95887 -0.158869 -174.45 - 14 159.744 899 1 0 1.98656 -0.167761 -175.85 - 14 132.529 912 0 1 2.548 -0.320949 -204.45 - 14 117.185 898 0 0 2.57815 -0.323735 -205.85 -Number of digits in this event = 6 +Number of tracker hits in this event = 13 + 14 141.173 900 5 1 0.0829039 -0.116064 -54.45 + 14 126.814 899 5 0 0.0857728 -0.121076 -55.85 + 14 124.751 900 4 1 0.1504 -0.219251 -84.45 + 14 184.011 899 4 0 0.151833 -0.228242 -85.85 + 14 135.742 900 3 1 0.183109 -0.424884 -114.45 + 14 213.269 898 3 0 0.185226 -0.436389 -115.85 + 14 240.793 876 2 1 -4.74514 -0.216994 -144.45 + 14 221.332 899 2 0 -4.98037 -0.202518 -145.85 + 14 291.563 851 1 1 -9.79096 0.113522 -174.45 + 14 47.2784 850 1 1 -9.85 0.113893 -174.763 + 14 228.24 900 1 0 -10.0649 0.116423 -175.85 + 14 284.559 821 0 1 -15.7251 0.160596 -204.45 + 14 256.726 900 0 0 -15.9978 0.168371 -205.85 +Number of digits in this event = 15 Event: 15 -Number of tracker hits in this event = 41 - 15 180.59 900 4 1 0.231851 0.177907 -84.45 - 15 127.452 900 4 0 0.239846 0.180498 -85.85 - 15 210.008 901 3 1 0.41081 0.25116 -114.45 - 15 155.367 901 3 0 0.421534 0.254142 -115.85 - 15 115.66 902 2 1 0.637654 0.320365 -144.45 - 15 163.144 901 2 0 0.649739 0.320402 -145.85 - 15 111.193 904 1 1 0.902271 0.31502 -174.45 - 15 146.894 901 1 0 0.913877 0.312466 -175.85 - 15 180.688 905 0 1 1.14078 0.243676 -204.45 - 15 140.515 900 0 0 1.15206 0.239653 -205.85 - 15 894.303 889 0 0 -15.0842 -2.11582 -206.25 - 15 253.046 819 0 1 -16.1408 -2.23563 -204.85 - 15 468.653 818 0 1 -16.25 -2.24803 -204.705 - 15 710.231 873 1 0 -37.5416 -5.26899 -176.25 - 15 127.738 707 1 1 -38.5902 -5.40823 -174.85 - 15 535.678 706 1 1 -38.65 -5.41594 -174.77 - 15 113.221 705 1 1 -38.85 -5.44316 -174.504 - 15 794.749 848 2 0 -59.9285 -10.3483 -146.25 - 15 222.606 595 2 1 -60.9788 -10.594 -144.85 - 15 598.004 594 2 1 -61.05 -10.6106 -144.755 - 15 67.4411 593 2 1 -61.25 -10.6576 -144.489 - 15 905.766 823 3 0 -84.1012 -15.291 -116.25 - 15 575.615 473 3 1 -85.2653 -15.5278 -114.85 - 15 402.791 472 3 1 -85.45 -15.5655 -114.63 - 15 421.345 793 4 0 -108.538 -21.4179 -86.25 - 15 792.719 792 4 0 -108.664 -21.45 -86.095 - 15 122.023 352 4 1 -109.708 -21.7003 -84.85 - 15 559.5 351 4 1 -109.75 -21.7102 -84.8002 - 15 278.359 350 4 1 -109.95 -21.7577 -84.5629 - 15 73.3739 755 5 0 -136.975 -29.0421 -56.25 - 15 1149.84 754 5 0 -137.004 -29.05 -56.2193 - 15 68.4988 209 5 1 -138.326 -29.4107 -54.85 - 15 680.905 208 5 1 -138.35 -29.4173 -54.8248 - 15 549.352 207 5 1 -138.55 -29.4726 -54.6175 - 15 1250.6 711 6 0 -164.029 -37.7421 -26.25 - 15 116.949 710 6 0 -164.361 -37.85 -25.8804 - 15 366.26 74 6 1 -165.262 -38.1587 -24.85 - 15 798.296 73 6 1 -165.35 -38.189 -24.7489 - 15 208.442 72 6 1 -165.55 -38.2563 -24.5195 - 15 106.846 968 0 0 -29.6359 13.7888 -206.182 - 15 169.384 969 0 0 -29.7225 13.85 -206.116 -Number of digits in this event = 36 +Number of tracker hits in this event = 25 + 15 117.574 899 3 1 -0.0713004 -0.659746 -114.45 + 15 206.093 896 3 0 -0.0755504 -0.672912 -115.85 + 15 186.822 899 2 1 -0.17961 -0.953336 -144.45 + 15 121.476 895 2 0 -0.181201 -0.963135 -145.85 + 15 117.991 899 1 1 -0.213957 -1.18161 -174.45 + 15 128.943 894 1 0 -0.213659 -1.19097 -175.85 + 15 114.531 899 0 1 -0.206111 -1.37141 -204.45 + 15 134.755 893 0 0 -0.207837 -1.38145 -205.85 + 15 24.3841 321 0 1 -115.75 -162.631 -204.707 + 15 25.2218 983 1 0 -68.7839 16.6673 -176.186 + 15 103.003 982 1 0 -68.8099 16.65 -176.163 + 15 3.46001 550 1 1 -69.935 15.5939 -174.806 + 15 30.6328 1150 0 1 50.1628 -58.9358 -204.45 + 15 69.6011 1168 0 1 53.65 -63.493 -204.611 + 15 136.189 962 3 0 26.4749 12.6342 -115.917 + 15 21.5869 961 3 0 26.6941 12.45 -116.239 + 15 26.5888 987 3 0 132.554 17.6156 -116.25 + 15 160.723 988 3 0 132.627 17.65 -116.194 + 15 311.361 989 3 0 133.118 17.85 -116.022 + 15 31.8656 990 3 0 133.549 18.05 -115.906 + 15 137.159 1569 3 1 133.982 19.0497 -114.85 + 15 81.4424 1570 3 1 134.15 19.2025 -114.554 + 15 108.54 1571 3 1 134.35 19.3723 -114.531 + 15 146.331 1572 3 1 134.55 19.4804 -114.53 + 15 376.444 1573 3 1 134.75 19.6385 -114.717 +Number of digits in this event = 14 Event: 16 -Number of tracker hits in this event = 6 - 16 111.223 899 1 1 -0.0554418 0.386577 -174.45 - 16 130.487 901 1 0 -0.0599875 0.389677 -175.85 - 16 231.994 899 0 1 -0.145078 0.472044 -204.45 - 16 141.687 902 0 0 -0.151137 0.477484 -205.85 - 16 207.803 1717 2 0 134.025 163.553 -146.051 - 16 162.671 1718 2 0 134.182 163.75 -145.963 -Number of digits in this event = 6 +Number of tracker hits in this event = 10 + 16 134.245 900 4 1 0.101566 -0.266277 -84.45 + 16 124.084 898 4 0 0.0829838 -0.272574 -85.85 + 16 160.144 898 3 1 -0.298957 -0.39462 -114.45 + 16 293.096 898 3 0 -0.311142 -0.397729 -115.85 + 16 191.967 897 2 1 -0.523438 -0.470572 -144.45 + 16 416.072 897 2 0 -0.529023 -0.470945 -145.85 + 16 112.044 897 1 1 -0.626006 -0.475689 -174.45 + 16 139.555 897 1 0 -0.629314 -0.473824 -175.85 + 16 175.666 896 0 1 -0.689481 -0.425579 -204.45 + 16 159.377 898 0 0 -0.692692 -0.428998 -205.85 +Number of digits in this event = 12 Event: 17 -Number of tracker hits in this event = 9 - 17 105.161 901 4 1 0.337383 0.0811157 -84.45 - 17 123.277 900 4 0 0.343466 0.0875514 -85.85 - 17 164.657 902 3 1 0.473997 0.236418 -114.45 - 17 149.65 900 3 0 0.483057 0.242199 -115.85 - 17 118.643 902 2 1 0.634675 0.366814 -144.45 - 17 106.904 901 2 0 0.607377 0.377258 -145.85 - 17 168.242 900 1 1 0.0620399 0.606641 -174.45 - 17 136.275 897 0 1 -0.56813 0.811622 -204.45 - 17 116.799 903 0 0 -0.593946 0.818951 -205.85 -Number of digits in this event = 6 +Number of tracker hits in this event = 5 + 17 116.688 902 1 1 0.573178 0.102938 -174.45 + 17 138.195 900 1 0 0.554953 0.070622 -175.85 + 17 116.433 900 0 1 0.182355 -0.610136 -204.45 + 17 121.329 897 0 0 0.167284 -0.641644 -205.85 + 17 4.61974 896 0 0 0.163257 -0.65 -206.22 +Number of digits in this event = 3 Event: 18 Number of tracker hits in this event = 12 - 18 120.965 900 5 1 0.0957976 -0.120452 -54.45 - 18 261.879 899 5 0 0.100315 -0.130133 -55.85 - 18 142.614 900 4 1 0.176737 -0.319721 -84.45 - 18 339.489 898 4 0 0.177097 -0.328043 -85.85 - 18 144.255 900 3 1 0.164843 -0.498157 -114.45 - 18 190.151 897 3 0 0.162465 -0.509193 -115.85 - 18 174.403 900 2 1 0.135392 -0.747968 -144.45 - 18 125.177 896 2 0 0.130603 -0.763231 -145.85 - 18 149.164 900 1 1 0.0857888 -1.07136 -174.45 - 18 210.945 894 1 0 0.087599 -1.08384 -175.85 - 18 133.442 900 0 1 0.119442 -1.33341 -204.45 - 18 135.493 893 0 0 0.124015 -1.34363 -205.85 -Number of digits in this event = 13 + 18 147.053 898 4 1 -0.444541 -0.105184 -84.45 + 18 140.053 899 4 0 -0.462429 -0.107313 -85.85 + 18 103.565 896 3 1 -0.845235 -0.148349 -114.45 + 18 20.5013 895 3 1 -0.85 -0.148454 -114.791 + 18 148.993 899 3 0 -0.865515 -0.149574 -115.85 + 18 139.401 893 2 1 -1.28057 -0.193149 -144.45 + 18 122.05 899 2 0 -1.29446 -0.199047 -145.85 + 18 200.305 892 1 1 -1.5781 -0.307495 -174.45 + 18 140.317 898 1 0 -1.58753 -0.314605 -175.85 + 18 152.125 891 0 1 -1.79453 -0.462416 -204.45 + 18 234.699 897 0 0 -1.80938 -0.47058 -205.85 + 18 0.0180205 187 9 1 -142.55 -61.1256 65.4651 +Number of digits in this event = 10 Event: 19 -Number of tracker hits in this event = 10 - 19 151.525 899 4 1 -0.133772 -0.171869 -84.45 - 19 162.082 899 4 0 -0.137565 -0.168625 -85.85 - 19 117.334 899 3 1 -0.206202 -0.072734 -114.45 - 19 109.183 899 3 0 -0.210518 -0.0658354 -115.85 - 19 140.573 898 2 1 -0.30634 0.0699604 -144.45 - 19 147.388 900 2 0 -0.319227 0.075749 -145.85 - 19 154.171 897 1 1 -0.595125 0.194662 -174.45 - 19 151.902 900 1 0 -0.61445 0.205792 -175.85 - 19 171.703 895 0 1 -1.0068 0.435187 -204.45 - 19 297.181 901 0 0 -1.02674 0.435737 -205.85 -Number of digits in this event = 9 +Number of tracker hits in this event = 2 + 19 140.016 902 0 1 0.555531 -0.126354 -204.45 + 19 122.781 899 0 0 0.568182 -0.1351 -205.85 +Number of digits in this event = 3 Event: 20 -Number of tracker hits in this event = 8 - 20 126.695 899 2 1 -0.108717 0.18401 -144.45 - 20 127.497 900 2 0 -0.113901 0.194328 -145.85 - 20 137.475 899 1 1 -0.226716 0.388925 -174.45 - 20 151.679 901 1 0 -0.229728 0.39919 -175.85 - 20 114.357 898 0 1 -0.269618 0.599497 -204.45 - 20 172.03 902 0 0 -0.265846 0.614412 -205.85 - 20 61.7614 899 5 0 0.209015 -0.05 -56.0422 - 20 328.718 898 5 0 0.208646 -0.25 -56.0619 -Number of digits in this event = 7 +Number of tracker hits in this event = 69 + 20 141.469 897 3 1 -0.496233 0.102562 -114.45 + 20 142.345 900 3 0 -0.504053 0.112147 -115.85 + 20 148.218 896 2 1 -0.658078 0.298711 -144.45 + 20 163.16 901 2 0 -0.664001 0.312156 -145.85 + 20 132.165 896 1 1 -0.758149 0.593444 -174.45 + 20 155.122 902 1 0 -0.771808 0.607732 -175.85 + 20 10.8978 889 1 0 -5.27047 -2.24734 -176.25 + 20 224.776 888 1 0 -5.27408 -2.25 -176.226 + 20 252.013 872 1 1 -5.49514 -2.41154 -174.85 + 20 224.876 873 2 0 -9.27616 -5.41008 -146.25 + 20 7.60195 872 2 0 -9.3263 -5.45 -145.868 + 20 243.158 852 2 1 -9.45112 -5.55935 -144.85 + 20 251.368 860 3 0 -12.03 -7.85338 -116.25 + 20 377.525 839 3 1 -12.1829 -7.92995 -114.85 + 20 381.134 807 4 0 -16.914 -18.5453 -86.25 + 20 96.0765 806 4 0 -16.96 -18.65 -85.9738 + 20 290.741 814 4 1 -17.1152 -19.0794 -84.85 + 20 152.337 749 5 0 -22.0894 -30.1772 -56.25 + 20 152.487 748 5 0 -22.1221 -30.25 -56.0625 + 20 386.962 788 5 1 -22.3405 -30.7306 -54.85 + 20 191.381 686 6 0 -29.1738 -42.7659 -26.25 + 20 158.747 685 6 0 -29.2218 -42.85 -26.0504 + 20 322.613 752 6 1 -29.51 -43.3744 -24.85 + 20 286.24 631 7 0 -39.8837 -53.751 3.75 + 20 106.633 630 7 0 -39.9839 -53.85 4.02412 + 20 129.718 698 7 1 -40.396 -54.2486 5.15 + 20 251.51 697 7 1 -40.45 -54.3008 5.29733 + 20 398.68 579 8 0 -49.6055 -64.0646 33.75 + 20 404.001 649 8 1 -50.0511 -64.5683 35.15 + 20 110.143 516 9 0 -57.9949 -76.7979 63.75 + 20 323.36 515 9 0 -58.0284 -76.85 63.8712 + 20 286.872 608 9 1 -58.3824 -77.4436 65.15 + 20 170.566 607 9 1 -58.45 -77.5594 65.3982 + 20 288.968 436 10 0 -61.3149 -92.896 93.75 + 20 370.985 435 10 0 -61.3247 -92.95 93.8497 + 20 487.932 592 10 1 -61.4691 -93.6595 95.15 + 20 478.691 399 11 0 -64.9266 -100.274 123.75 + 20 98.2705 398 11 0 -64.9672 -100.35 124.087 + 20 631.332 574 11 1 -65.0552 -100.575 125.15 + 20 515.599 315 12 0 -72.3493 -117.018 153.75 + 20 369.637 314 12 0 -72.4077 -117.15 153.976 + 20 632.223 536 12 1 -72.7551 -117.747 155.15 + 20 274.205 535 12 1 -72.85 -117.907 155.466 + 20 361.88 900 4 0 -0.509676 0.05 -86.1212 + 20 179.368 901 4 0 -0.641466 0.25 -86.2021 + 20 5.0699 788 4 1 -22.354 -74.5584 -84.85 + 20 32.9664 518 4 0 -23.309 -76.31 -85.85 + 20 258.927 783 4 1 -23.4411 -77.2782 -84.85 + 20 232.864 302 14 0 78.3934 -119.634 213.75 + 20 64.0644 1286 14 1 77.3721 -119.996 215.15 + 20 98.1245 1285 14 1 77.25 -120.02 215.291 + 20 167.846 1284 14 1 77.05 -120.087 215.403 + 20 142.144 360 14 0 159.77 -108.126 213.75 + 20 49.3999 361 14 0 160.142 -107.95 214.069 + 20 29.7912 1704 14 1 161.089 -106.472 215.15 + 20 89.4794 1705 14 1 161.15 -106.371 215.225 + 20 109.244 1706 14 1 161.35 -106.122 215.347 + 20 33.0877 1707 14 1 161.55 -105.839 215.515 + 20 232.032 1708 14 1 161.75 -105.837 215.514 + 20 79.6066 1709 14 1 161.95 -105.909 215.475 + 20 18.7565 1710 14 1 162.15 -106.073 215.522 + 20 345.806 13 13 0 -19.4466 -177.493 183.75 + 20 1341.02 12 13 0 -19.395 -177.55 183.777 + 20 1475.53 11 13 0 -19.2084 -177.75 183.876 + 20 1443.47 10 13 0 -19.0157 -177.95 183.98 + 20 1228.11 9 13 0 -18.8158 -178.15 184.082 + 20 488.34 895 0 1 -0.987308 0.850244 -204.45 + 20 440.547 903 0 0 -0.750602 0.724562 -205.85 + 20 65.2791 268 13 0 -44.5762 -126.438 183.75 +Number of digits in this event = 55 Event: 21 -Number of tracker hits in this event = 9 - 21 132.145 899 0 1 -0.123244 0.165635 -204.45 - 21 115.715 900 0 0 -0.125304 0.169519 -205.85 - 21 224.18 434 4 0 -134.985 -93.2843 -86.25 - 21 29.21 226 4 1 -134.765 -93.3396 -84.85 - 21 164.851 227 4 1 -134.75 -93.3567 -84.7507 - 21 96.1301 228 4 1 -134.55 -93.4055 -84.4858 - 21 74.8298 229 4 1 -134.35 -93.3982 -84.7054 - 21 116.483 427 4 0 -132.425 -94.6218 -85.85 - 21 362.447 428 4 0 -132.183 -94.55 -85.9574 -Number of digits in this event = 8 +Number of tracker hits in this event = 7 + 21 210.279 900 3 1 0.0653493 -0.192871 -114.45 + 21 130.076 899 3 0 0.0685855 -0.195049 -115.85 + 21 263.53 900 2 1 0.105921 -0.222993 -144.45 + 21 269.492 899 2 0 0.104594 -0.224853 -145.85 + 21 129.828 900 1 1 0.0696757 -0.273444 -174.45 + 21 136.154 898 1 0 0.0650316 -0.27399 -175.85 + 21 117.646 898 0 0 -0.0514872 -0.274417 -205.85 +Number of digits in this event = 10 Event: 22 -Number of tracker hits in this event = 10 - 22 139.324 899 4 1 -0.157739 -0.087365 -84.45 - 22 133.432 899 4 0 -0.167233 -0.0933434 -85.85 - 22 121.644 898 3 1 -0.331933 -0.264736 -114.45 - 22 117.838 898 3 0 -0.341216 -0.275798 -115.85 - 22 120.998 897 2 1 -0.536493 -0.499363 -144.45 - 22 119.569 897 2 0 -0.546038 -0.50556 -145.85 - 22 435.519 896 1 1 -0.726859 -0.638125 -174.45 - 22 155.553 896 1 0 -0.735913 -0.650332 -175.85 - 22 146.1 895 0 1 -0.902208 -0.909663 -204.45 - 22 145.69 895 0 0 -0.91465 -0.923479 -205.85 +Number of tracker hits in this event = 16 + 22 135.178 900 5 0 -0.0500977 0.097057 -55.85 + 22 69.9308 1564 7 0 15.4434 132.95 4.09529 + 22 17.3276 777 4 1 -24.6262 82.3827 -84.5937 + 22 13.9041 521 3 1 -75.8057 44.959 -114.473 + 22 79.5025 520 3 1 -75.85 44.9766 -114.492 + 22 78.7094 519 3 1 -76.05 45.1067 -114.585 + 22 133.911 518 3 1 -76.25 45.2858 -114.715 + 22 2.30757 517 3 1 -76.45 45.2979 -114.842 + 22 224.992 1127 3 0 -78.1345 45.5856 -115.85 + 22 65.5354 496 3 1 -80.7048 43.704 -114.85 + 22 16.201 495 3 1 -80.85 43.5912 -114.825 + 22 33.0052 1104 3 0 -81.9132 40.9067 -115.85 + 22 105.412 1103 3 0 -81.93 40.85 -115.879 + 22 129.761 1102 3 0 -82.0221 40.65 -115.934 + 22 103.022 1101 3 0 -81.8181 40.45 -116.048 + 22 299.329 1048 2 0 41.4348 29.7416 -146.078 Number of digits in this event = 9 Event: 23 -Number of tracker hits in this event = 9 - 23 140.974 899 4 0 0.11424 -0.0527737 -85.85 - 23 143.658 901 3 1 0.382403 -0.20578 -114.45 - 23 312.135 899 3 0 0.401679 -0.20917 -115.85 - 23 370.146 903 2 1 0.759775 -0.2684 -144.45 - 23 115.703 898 2 0 0.782562 -0.268268 -145.85 - 23 135.711 905 1 1 1.23477 -0.258328 -174.45 - 23 115.358 898 1 0 1.25669 -0.258769 -175.85 - 23 108.088 908 0 1 1.69614 -0.267561 -204.45 - 23 168.026 898 0 0 1.71993 -0.270093 -205.85 -Number of digits in this event = 7 +Number of tracker hits in this event = 15 + 23 167.699 899 5 1 -0.108975 0.0661768 -54.45 + 23 142.594 900 5 0 -0.110155 0.0659562 -55.85 + 23 134.707 899 4 1 -0.13417 0.0962543 -84.45 + 23 131.716 900 4 0 -0.137515 0.0995407 -85.85 + 23 114.961 899 3 1 -0.213862 0.15409 -114.45 + 23 115.103 900 3 0 -0.216486 0.153283 -115.85 + 23 143.534 898 2 1 -0.25427 0.134061 -144.45 + 23 124.881 900 2 0 -0.258059 0.13795 -145.85 + 23 118 898 1 1 -0.344509 0.203792 -174.45 + 23 127.373 900 1 0 -0.352307 0.201657 -175.85 + 23 126.514 897 0 1 -0.521649 0.166867 -204.45 + 23 129.788 900 0 0 -0.532637 0.161193 -205.85 + 23 108.024 453 2 1 -89.4041 -165.495 -144.749 + 23 6.01946 452 2 1 -89.45 -165.52 -144.768 + 23 225.974 947 1 1 9.57618 -115.833 -174.62 +Number of digits in this event = 14 Event: 24 -Number of tracker hits in this event = 12 - 24 131.521 900 4 1 0.0859132 -0.196799 -84.45 - 24 138.298 899 4 0 0.0869737 -0.196464 -85.85 - 24 136.428 900 3 1 0.0986941 -0.198863 -114.45 - 24 129.636 899 3 0 0.103293 -0.199427 -115.85 - 24 151.945 900 2 1 0.195954 -0.208283 -144.45 - 24 139.613 899 2 0 0.198589 -0.206837 -145.85 - 24 171.542 901 1 1 0.250593 -0.163999 -174.45 - 24 143.279 899 1 0 0.250277 -0.162678 -175.85 - 24 134.377 900 0 1 0.220605 -0.0953166 -204.45 - 24 222.673 899 0 0 0.210542 -0.0908647 -205.85 - 24 426.391 907 0 0 -152.65 1.51903 -206.156 - 24 17.9599 906 0 0 -153.125 1.45 -206.145 -Number of digits in this event = 12 +Number of tracker hits in this event = 8 + 24 124.45 898 3 1 -0.267187 -0.19506 -114.45 + 24 141.247 899 3 0 -0.270135 -0.199879 -115.85 + 24 116.298 898 2 1 -0.330598 -0.298251 -144.45 + 24 171.334 898 2 0 -0.333765 -0.299979 -145.85 + 24 135.725 898 1 1 -0.423601 -0.350428 -174.45 + 24 160.079 898 1 0 -0.430832 -0.35708 -175.85 + 24 146.518 897 0 1 -0.59341 -0.488286 -204.45 + 24 270.943 897 0 0 -0.60278 -0.496907 -205.85 +Number of digits in this event = 8 Event: 25 -Number of tracker hits in this event = 29 - 25 234.95 898 3 1 -0.446961 -0.150812 -114.45 - 25 284.391 899 3 0 -0.449656 -0.158304 -115.85 - 25 155.259 897 2 1 -0.515552 -0.299729 -144.45 - 25 122.161 898 2 0 -0.521591 -0.304268 -145.85 - 25 131.772 896 1 1 -0.660203 -0.378217 -174.45 - 25 147.437 898 1 0 -0.665242 -0.376529 -175.85 - 25 138.638 896 0 1 -0.77999 -0.335031 -204.45 - 25 114.754 898 0 0 -0.794819 -0.331032 -205.85 - 25 1.60185 90 2 1 -161.95 86.8001 -144.679 - 25 34.0059 1704 10 0 -85.1584 160.997 93.75 - 25 117.512 1322 10 0 81.6261 84.5931 93.75 - 25 134.692 1321 10 0 81.8714 84.45 93.9953 - 25 214.607 1314 10 1 82.9135 83.7855 95.15 - 25 96.1231 1315 10 1 83.05 83.7112 95.2744 - 25 191.853 1313 10 1 82.85 83.5836 95.4672 - 25 116.644 1312 10 1 82.65 83.7661 95.3807 - 25 178.459 1318 10 0 83.7138 83.7282 94.15 - 25 1.29997 1106 1 0 70.4329 41.4412 -176.175 - 25 172.136 1107 1 0 70.4301 41.45 -176.162 - 25 113.439 1245 1 1 69.245 41.5257 -174.85 - 25 72.0516 1244 1 1 69.05 41.5689 -174.795 - 25 315.851 1137 1 0 64.5667 47.5085 -175.85 - 25 71.5961 1138 1 0 64.4135 47.65 -176.014 - 25 10.0755 1203 9 1 60.839 88.808 65.55 - 25 185.662 1204 9 1 60.85 88.7916 65.5052 - 25 81.1031 1336 9 0 61.0994 87.4248 64.15 - 25 60.968 1335 9 0 61.1093 87.25 64.0568 - 25 73.7478 1334 9 0 61.0948 87.05 63.9155 - 25 128.962 351 9 1 -109.838 -115.114 65.4616 -Number of digits in this event = 19 +Number of tracker hits in this event = 8 + 25 173.568 900 3 1 0.196859 0.136192 -114.45 + 25 160.729 900 3 0 0.197343 0.144644 -115.85 + 25 135.423 900 2 1 0.207563 0.313756 -144.45 + 25 130.868 901 2 0 0.205358 0.323606 -145.85 + 25 125.099 900 1 1 0.152913 0.531099 -174.45 + 25 123.335 902 1 0 0.149017 0.539779 -175.85 + 25 147.451 900 0 1 0.0574366 0.712749 -204.45 + 25 157.104 903 0 0 0.0559778 0.719136 -205.85 +Number of digits in this event = 11 Event: 26 Number of tracker hits in this event = 12 - 26 127.501 900 5 1 0.0620268 0.130163 -54.45 - 26 135.357 900 5 0 0.0659215 0.136366 -55.85 - 26 125.554 900 4 1 0.138163 0.27863 -84.45 - 26 166.545 901 4 0 0.14317 0.282455 -85.85 - 26 138.711 900 3 1 0.249271 0.347977 -114.45 - 26 168.532 901 3 0 0.246564 0.35524 -115.85 - 26 180.402 900 2 1 0.197233 0.520228 -144.45 - 26 180.447 902 2 0 0.1934 0.520605 -145.85 - 26 132.287 900 1 1 0.125832 0.503361 -174.45 - 26 140.817 902 1 0 0.124937 0.505145 -175.85 - 26 109.957 900 0 1 0.117233 0.543357 -204.45 - 26 210.37 902 0 0 0.121961 0.543436 -205.85 -Number of digits in this event = 14 + 26 124.479 900 5 1 0.177988 0.1436 -54.45 + 26 135.525 900 5 0 0.182779 0.150978 -55.85 + 26 185.96 901 4 1 0.273239 0.301258 -84.45 + 26 167.604 901 4 0 0.289788 0.309292 -85.85 + 26 135.497 902 3 1 0.640187 0.460962 -114.45 + 26 223.275 902 3 0 0.658877 0.464101 -115.85 + 26 138.528 904 2 1 1.03497 0.53352 -144.45 + 26 198.135 902 2 0 1.05091 0.53325 -145.85 + 26 112.174 906 1 1 1.3881 0.52094 -174.45 + 26 111.106 902 1 0 1.41485 0.525753 -175.85 + 26 215.818 909 0 1 1.95483 0.620265 -204.45 + 26 194.354 902 0 0 1.97809 0.627273 -205.85 +Number of digits in this event = 11 Event: 27 Number of tracker hits in this event = 11 - 27 140.528 899 3 1 -0.192295 -0.0667062 -114.45 - 27 122.439 899 3 0 -0.199305 -0.0700663 -115.85 - 27 125.533 898 2 1 -0.342597 -0.160107 -144.45 - 27 175.757 899 2 0 -0.347993 -0.161293 -145.85 - 27 111.131 897 1 1 -0.463513 -0.18183 -174.45 - 27 142.793 899 1 0 -0.466033 -0.180178 -175.85 - 27 123.14 897 0 1 -0.500927 -0.122812 -204.45 - 27 151.3 899 0 0 -0.497171 -0.12278 -205.85 - 27 412.46 578 2 0 31.9553 -64.3344 -146.25 - 27 8.21936 1296 0 1 79.4308 -14.3177 -204.477 - 27 43.5346 1297 0 1 79.45 -14.3176 -204.48 -Number of digits in this event = 11 + 27 151.699 899 4 1 -0.215389 -0.0607169 -84.45 + 27 120.071 899 4 0 -0.218626 -0.065705 -85.85 + 27 117.096 898 3 1 -0.299849 -0.163042 -114.45 + 27 151.828 899 3 0 -0.302616 -0.166328 -115.85 + 27 136.722 898 2 1 -0.341941 -0.267673 -144.45 + 27 137.112 898 2 0 -0.343447 -0.265896 -145.85 + 27 190.86 898 1 1 -0.355037 -0.223069 -174.45 + 27 114.281 899 1 0 -0.354963 -0.225593 -175.85 + 27 112.932 898 0 1 -0.349528 -0.270571 -204.45 + 27 105.592 898 0 0 -0.350582 -0.269349 -205.85 + 27 5.85591 31 11 1 -173.767 -34.1428 125.15 +Number of digits in this event = 9 Event: 28 -Number of tracker hits in this event = 12 - 28 165.697 899 5 1 -0.0996854 0.0802774 -54.45 - 28 178.461 900 5 0 -0.102155 0.0839597 -55.85 - 28 159.302 899 4 1 -0.142449 0.154101 -84.45 - 28 129.705 900 4 0 -0.144904 0.155646 -85.85 - 28 127.093 899 3 1 -0.195225 0.187626 -114.45 - 28 179.661 900 3 0 -0.193504 0.189048 -115.85 - 28 110.033 899 2 1 -0.161639 0.202435 -144.45 - 28 157.486 900 2 0 -0.162624 0.202251 -145.85 - 28 108.246 899 1 1 -0.171802 0.208612 -174.45 - 28 127.869 900 1 0 -0.177082 0.210479 -175.85 - 28 145.155 898 0 1 -0.281327 0.255506 -204.45 - 28 110.734 901 0 0 -0.283372 0.257239 -205.85 -Number of digits in this event = 10 +Number of tracker hits in this event = 8 + 28 174.831 899 3 1 -0.157858 -0.103157 -114.45 + 28 155.347 899 3 0 -0.164712 -0.101795 -115.85 + 28 140.006 898 2 1 -0.316073 -0.0784034 -144.45 + 28 149.073 899 2 0 -0.320282 -0.0798602 -145.85 + 28 201 898 1 1 -0.398199 -0.110505 -174.45 + 28 176.095 899 1 0 -0.397927 -0.111246 -175.85 + 28 123.247 898 0 1 -0.399977 -0.121734 -204.45 + 28 137.172 899 0 0 -0.393957 -0.123301 -205.85 +Number of digits in this event = 9 Event: 29 -Number of tracker hits in this event = 10 - 29 146.118 899 5 1 -0.115984 0.0544311 -54.45 - 29 204.077 900 5 0 -0.121304 0.057606 -55.85 - 29 213.091 899 4 1 -0.238505 0.105756 -84.45 - 29 111.842 900 4 0 -0.242782 0.106552 -85.85 - 29 118.247 898 3 1 -0.314167 0.119406 -114.45 - 29 132.782 900 3 0 -0.312329 0.119356 -115.85 - 29 176.041 899 2 1 -0.249656 0.120604 -144.45 - 29 132.648 900 2 0 -0.239742 0.12422 -145.85 - 29 156.891 900 0 1 0.225665 0.362782 -204.45 - 29 148.892 901 0 0 0.241591 0.377748 -205.85 -Number of digits in this event = 9 +Number of tracker hits in this event = 9 + 29 136.678 899 4 1 -0.235879 -0.0539578 -84.45 + 29 116.456 898 3 1 -0.412031 0.135665 -114.45 + 29 122.448 900 3 0 -0.418724 0.14471 -115.85 + 29 117.789 897 2 1 -0.557305 0.340073 -144.45 + 29 131.742 901 2 0 -0.56963 0.350433 -145.85 + 29 131.848 896 1 1 -0.837836 0.550241 -174.45 + 29 169.474 902 1 0 -0.854587 0.556807 -175.85 + 29 128.32 894 0 1 -1.17786 0.686414 -204.45 + 29 133.079 903 0 0 -1.19319 0.698772 -205.85 +Number of digits in this event = 10 Event: 30 -Number of tracker hits in this event = 10 - 30 132.414 899 4 1 -0.141134 0.214053 -84.45 - 30 111.604 900 4 0 -0.145138 0.21743 -85.85 - 30 131.331 899 3 1 -0.239269 0.279826 -114.45 - 30 144.739 901 3 0 -0.237787 0.277179 -115.85 - 30 186.038 899 2 1 -0.216239 0.245501 -144.45 - 30 327.306 900 2 0 -0.214673 0.239968 -145.85 - 30 192.108 899 1 1 -0.17016 0.132346 -174.45 - 30 186.101 900 1 0 -0.171011 0.129967 -175.85 - 30 156.705 899 0 1 -0.201628 0.0847232 -204.45 - 30 210.215 900 0 0 -0.199038 0.0841973 -205.85 -Number of digits in this event = 10 +Number of tracker hits in this event = 11 + 30 127.98 899 2 1 -0.113397 0.279537 -144.45 + 30 152.644 901 2 0 -0.113993 0.288699 -145.85 + 30 146.565 899 1 1 -0.120092 0.468064 -174.45 + 30 161.965 902 1 0 -0.12641 0.474364 -175.85 + 30 141.97 898 0 1 -0.253366 0.614155 -204.45 + 30 128.642 902 0 0 -0.257354 0.620658 -205.85 + 30 3.86989 564 2 0 -73.0231 -67.05 -146.019 + 30 49.7405 922 1 1 4.65 -122.821 -174.658 + 30 179.498 1012 0 0 -93.4387 22.5081 -206.182 + 30 326.729 1011 0 0 -93.6577 22.45 -206.225 + 30 283.065 1013 0 0 -94.4374 22.65 -206.054 +Number of digits in this event = 11 Event: 31 -Number of tracker hits in this event = 50 - 31 221.99 899 4 1 -0.173882 -0.0595134 -84.45 - 31 129.979 899 4 0 -0.180408 -0.0666377 -85.85 - 31 182.357 898 3 1 -0.311999 -0.221405 -114.45 - 31 146.397 899 3 0 -0.320067 -0.22768 -115.85 - 31 126.38 897 2 1 -0.468207 -0.373443 -144.45 - 31 351.401 898 2 0 -0.475285 -0.375946 -145.85 - 31 192.071 897 1 1 -0.641146 -0.419363 -174.45 - 31 138.162 898 1 0 -0.644065 -0.425181 -175.85 - 31 105.748 896 0 1 -0.710766 -0.559939 -204.45 - 31 179.218 897 0 0 -0.71487 -0.571068 -205.85 - 31 285.073 1037 0 0 -11.2419 27.4749 -206.25 - 31 254.363 1038 0 0 -11.2977 27.65 -206.085 - 31 63.3018 1039 0 0 -11.3555 27.85 -205.9 - 31 454.16 841 0 1 -11.651 29.0853 -204.85 - 31 8.39883 1222 1 0 -19.7799 64.6385 -176.25 - 31 296.21 1223 1 0 -19.7826 64.65 -176.241 - 31 232.381 1224 1 0 -19.8289 64.85 -176.079 - 31 84.9421 1225 1 0 -19.8758 65.05 -175.916 - 31 648.528 799 1 1 -20.1694 66.3302 -174.85 - 31 187.937 798 1 1 -20.25 66.6816 -174.557 - 31 267.39 1362 2 0 -24.7826 92.6826 -146.25 - 31 481.274 1363 2 0 -24.7943 92.75 -146.176 - 31 184.484 1364 2 0 -24.8255 92.95 -145.959 - 31 598.765 775 2 1 -24.981 93.9184 -144.85 - 31 106.616 1482 3 0 -26.0568 116.695 -116.25 - 31 482.574 1483 3 0 -26.0592 116.75 -116.181 - 31 111.051 1484 3 0 -26.074 116.95 -115.918 - 31 760.1 769 3 1 -26.1347 117.792 -114.85 - 31 66.1751 1691 4 0 -29.3564 158.529 -86.25 - 31 593.293 1692 4 0 -29.3438 158.55 -86.2358 - 31 597.472 1693 4 0 -29.2226 158.75 -86.1006 - 31 488.648 1694 4 0 -29.094 158.95 -85.9617 - 31 214.573 759 4 1 -28.0818 160.395 -84.85 - 31 1268.13 760 4 1 -28.05 160.441 -84.8149 - 31 1079.24 761 4 1 -27.85 160.711 -84.5972 - 31 159.984 1011 1 0 53.7397 22.4036 -176.25 - 31 143.898 1012 1 0 53.8169 22.45 -176.16 - 31 27.7427 1010 1 0 53.8805 22.25 -175.891 - 31 163.049 1178 1 1 55.7326 23.3297 -174.85 - 31 266.993 897 2 0 -0.489243 -0.45 -146.125 - 31 70.5769 770 4 1 -26.0043 162.539 -84.45 - 31 125.313 771 4 1 -25.85 162.734 -84.5438 - 31 92.0378 772 4 1 -25.65 162.987 -84.6849 - 31 28.6306 773 4 1 -25.45 163.219 -84.8205 - 31 109 1726 4 0 -23.1527 165.431 -85.85 - 31 80.4469 1727 4 0 -23.021 165.55 -85.9096 - 31 72.9859 1728 4 0 -22.8008 165.75 -86.0158 - 31 124.197 1729 4 0 -22.5751 165.95 -86.1464 - 31 22.5925 466 2 0 -29.5223 -86.65 -146.002 - 31 95.8901 956 1 1 11.434 -22.8054 -174.492 -Number of digits in this event = 38 +Number of tracker hits in this event = 8 + 31 155.44 899 4 1 -0.0521488 0.269757 -84.45 + 31 157.2 901 4 0 -0.055873 0.281962 -85.85 + 31 151.566 899 3 1 -0.0914693 0.538546 -114.45 + 31 171.21 902 3 0 -0.0892404 0.556324 -115.85 + 31 180.215 900 0 1 0.0922179 2.12917 -204.45 + 31 240.817 910 0 0 0.0974106 2.15665 -205.85 + 31 21.9299 760 5 1 -27.8996 70.9847 -54.5233 + 31 219.097 789 5 0 -60.6481 -22.2309 -55.981 +Number of digits in this event = 10 Event: 32 -Number of tracker hits in this event = 11 - 32 187.626 900 5 1 0.0630712 0.0620364 -54.45 - 32 122.411 900 5 0 0.0695363 0.0607991 -55.85 - 32 153.515 901 3 1 0.31189 0.0621377 -114.45 - 32 155.234 900 3 0 0.317858 0.0646282 -115.85 - 32 152.195 901 2 1 0.432574 0.113927 -144.45 - 32 142.371 900 2 0 0.445994 0.120545 -145.85 - 32 468.126 903 1 1 0.718969 0.231921 -174.45 - 32 111.382 900 1 0 0.730505 0.236021 -175.85 - 32 120.985 904 0 1 0.983339 0.279284 -204.45 - 32 228.546 901 0 0 0.988497 0.281127 -205.85 - 32 50.9541 859 3 0 154.506 -8.12918 -116.25 -Number of digits in this event = 13 -Event: 33 -Number of tracker hits in this event = 8 - 33 390.015 901 4 1 0.257463 -0.149561 -84.45 - 33 121.703 899 4 0 0.264117 -0.151178 -85.85 - 33 127.292 901 3 1 0.387531 -0.17925 -114.45 - 33 163.046 899 3 0 0.395705 -0.178712 -115.85 - 33 158.661 902 2 1 0.602614 -0.158162 -144.45 - 33 149.496 899 2 0 0.61663 -0.155893 -145.85 - 33 149.166 904 1 1 0.899462 -0.0957948 -174.45 - 33 174.264 899 1 0 0.916833 -0.0930495 -175.85 -Number of digits in this event = 9 -Event: 34 -Number of tracker hits in this event = 9 - 34 152.243 899 4 0 -0.118547 -0.0506751 -85.85 - 34 135.904 899 3 1 -0.203368 -0.207242 -114.45 - 34 130.239 899 3 0 -0.212241 -0.206809 -115.85 - 34 125.39 898 2 1 -0.346108 -0.189226 -144.45 - 34 118.021 899 2 0 -0.347113 -0.1825 -145.85 - 34 150.256 898 0 1 -0.399464 0.235509 -204.45 - 34 116.786 900 0 0 -0.400204 0.248627 -205.85 - 34 108.733 901 0 0 -0.400287 0.25 -205.994 - 34 204.825 497 4 0 32.7797 -80.463 -86.25 -Number of digits in this event = 7 -Event: 35 -Number of tracker hits in this event = 13 - 35 123.543 900 4 1 0.115639 0.326037 -84.45 - 35 157.835 901 4 0 0.118487 0.339424 -85.85 - 35 164.901 900 3 1 0.17881 0.617962 -114.45 - 35 281.849 902 3 0 0.182713 0.63062 -115.85 - 35 159.512 901 2 1 0.261145 0.906591 -144.45 - 35 197.352 904 2 0 0.262663 0.920274 -145.85 - 35 167.115 901 1 1 0.288628 1.21878 -174.45 - 35 142.661 905 1 0 0.287898 1.23133 -175.85 - 35 150.637 901 0 1 0.263481 1.50576 -204.45 - 35 136.846 907 0 0 0.256433 1.51897 -205.85 - 35 1.59082 899 5 0 -0.201127 -0.248018 -55.85 - 35 99.3539 898 5 0 -0.202347 -0.25 -55.8561 - 35 44.7741 897 5 0 -0.261283 -0.45 -56.1517 -Number of digits in this event = 11 -Event: 36 -Number of tracker hits in this event = 8 - 36 127.806 900 5 1 0.0787647 -0.0601327 -54.45 - 36 121.055 899 5 0 0.0801976 -0.0587083 -55.85 - 36 134.592 900 2 1 0.224467 0.205811 -144.45 - 36 209.788 900 2 0 0.221321 0.211372 -145.85 - 36 126.517 900 1 1 0.156487 0.338747 -174.45 - 36 157.1 901 1 0 0.152267 0.345702 -175.85 - 36 208.251 900 0 1 0.0748542 0.469911 -204.45 - 36 149.113 902 0 0 0.0683301 0.47609 -205.85 -Number of digits in this event = 9 -Event: 37 -Number of tracker hits in this event = 11 - 37 125.468 899 4 1 -0.156377 0.124937 -84.45 - 37 144.462 900 4 0 -0.165439 0.13687 -85.85 - 37 159.275 898 3 1 -0.351457 0.357583 -114.45 - 37 146.769 901 3 0 -0.364104 0.365113 -115.85 - 37 151.228 897 2 1 -0.621375 0.520752 -144.45 - 37 151.74 902 2 0 -0.634646 0.521219 -145.85 - 37 131.403 895 1 1 -0.913554 0.504594 -174.45 - 37 133.087 902 1 0 -0.926092 0.510192 -175.85 - 37 121.831 894 0 1 -1.1943 0.620581 -204.45 - 37 202.192 902 0 0 -1.21016 0.629098 -205.85 - 37 168.52 900 5 0 -0.05 0.0885498 -56.0846 -Number of digits in this event = 13 -Event: 38 -Number of tracker hits in this event = 12 - 38 121.312 900 5 1 0.0592657 0.132778 -54.45 - 38 131.932 900 5 0 0.0671957 0.13808 -55.85 - 38 121.204 900 4 1 0.244956 0.246411 -84.45 - 38 125.588 901 4 0 0.253724 0.254535 -85.85 - 38 118.334 901 3 1 0.429255 0.43558 -114.45 - 38 131.877 901 3 0 0.436238 0.445472 -115.85 - 38 181.705 902 2 1 0.585852 0.660233 -144.45 - 38 149.577 903 2 0 0.606948 0.677389 -145.85 - 38 153.453 905 1 1 1.05073 1.03029 -174.45 - 38 168.179 904 1 0 1.08052 1.04472 -175.85 - 38 169.639 908 0 1 1.67619 1.33705 -204.45 - 38 130.678 906 0 0 1.70287 1.34997 -205.85 -Number of digits in this event = 12 -Event: 39 Number of tracker hits in this event = 10 - 39 175.32 899 4 1 -0.101771 -0.172494 -84.45 - 39 127.666 899 4 0 -0.11635 -0.184425 -85.85 - 39 145.797 898 3 1 -0.422878 -0.424098 -114.45 - 39 224.479 898 3 0 -0.439587 -0.442677 -115.85 - 39 118.613 896 2 1 -0.787667 -0.814572 -144.45 - 39 231.72 896 2 0 -0.806619 -0.836986 -145.85 - 39 136.459 894 1 1 -1.18754 -1.29359 -174.45 - 39 124.189 893 1 0 -1.20217 -1.3124 -175.85 - 39 138.684 892 0 1 -1.49858 -1.72156 -204.45 - 39 126.76 891 0 0 -1.51586 -1.75393 -205.85 -Number of digits in this event = 10 -Event: 40 -Number of tracker hits in this event = 8 - 40 232.882 899 3 1 -0.0801409 -0.120581 -114.45 - 40 159.636 899 3 0 -0.0798797 -0.121252 -115.85 - 40 143.977 899 2 1 -0.0704575 -0.110878 -144.45 - 40 146.418 899 2 0 -0.0729925 -0.112568 -145.85 - 40 128.701 899 1 1 -0.111071 -0.152459 -174.45 - 40 126.848 899 1 0 -0.117658 -0.152647 -175.85 - 40 109.903 899 0 1 -0.202551 -0.132473 -204.45 - 40 357.108 899 0 0 -0.208705 -0.132581 -205.85 -Number of digits in this event = 8 -Event: 41 -Number of tracker hits in this event = 7 - 41 293.422 899 2 1 -0.0644459 0.092085 -144.45 - 41 202.129 900 2 0 -0.0631981 0.0847947 -145.85 - 41 154.101 899 0 1 -0.0775537 -0.250608 -204.45 - 41 148.293 898 0 0 -0.0850326 -0.257711 -205.85 - 41 81.7578 897 0 0 -0.622697 -0.616498 -205.85 - 41 98.3797 896 0 0 -0.659009 -0.65 -205.923 - 41 413.516 1072 0 0 -20.5834 34.505 -206.25 -Number of digits in this event = 6 -Event: 42 -Number of tracker hits in this event = 9 - 42 300.499 896 3 1 -0.797894 -0.146483 -114.45 - 42 121.232 899 3 0 -0.815525 -0.156346 -115.85 - 42 146.371 894 2 1 -1.19407 -0.304041 -144.45 - 42 126.257 898 2 0 -1.21578 -0.310896 -145.85 - 42 143.305 891 1 1 -1.65373 -0.456666 -174.45 - 42 168.359 897 1 0 -1.67442 -0.46618 -175.85 - 42 133.688 889 0 1 -2.08812 -0.671389 -204.45 - 42 151.417 896 0 0 -2.10817 -0.67983 -205.85 - 42 30.7628 1048 4 1 29.7444 1.83039 -84.45 -Number of digits in this event = 10 -Event: 43 -Number of tracker hits in this event = 25 - 43 127.939 899 5 1 -0.0553648 0.115936 -54.45 - 43 138.218 900 5 0 -0.0612116 0.121642 -55.85 - 43 177.511 899 4 1 -0.179117 0.212091 -84.45 - 43 156.344 900 4 0 -0.188706 0.216695 -85.85 - 43 349.962 898 3 1 -0.369926 0.322817 -114.45 - 43 373.516 901 3 0 -0.380318 0.322099 -115.85 - 43 118.017 897 2 1 -0.590979 0.296427 -144.45 - 43 441.782 901 2 0 -0.604495 0.295818 -145.85 - 43 170.831 895 1 1 -0.885418 0.279763 -174.45 - 43 127.072 901 1 0 -0.903649 0.275388 -175.85 - 43 137.689 893 0 1 -1.28348 0.209254 -204.45 - 43 128.636 900 0 0 -1.298 0.215652 -205.85 - 43 60.7562 900 6 0 -0.0696111 0.05 -26.0423 - 43 78.3048 801 6 0 -51.4809 -19.7802 -26.25 - 43 82.4172 800 6 0 -51.5997 -19.85 -26.1772 - 43 47.7006 799 6 0 -51.7163 -20.05 -25.985 - 43 57.7824 798 6 0 -51.7144 -20.25 -25.9985 - 43 82.3005 797 6 0 -51.7634 -20.45 -26.0614 - 43 112.998 796 6 0 -51.9246 -20.65 -26.2242 - 43 74.5113 795 6 0 -52.1266 -20.85 -26.038 - 43 8.95093 635 6 1 -53.0342 -21.3169 -24.85 - 43 69.0989 634 6 1 -53.05 -21.3231 -24.8316 - 43 162.619 633 6 1 -53.25 -21.2444 -24.7595 - 43 99.3221 632 6 1 -53.45 -20.936 -24.7244 - 43 145.257 631 6 1 -53.65 -20.9213 -24.6833 -Number of digits in this event = 14 -Event: 44 -Number of tracker hits in this event = 11 - 44 129.294 899 5 1 -0.125479 -0.0793034 -54.45 - 44 145.313 899 5 0 -0.126833 -0.0835149 -55.85 - 44 161.695 899 4 1 -0.119675 -0.179971 -84.45 - 44 133.268 899 4 0 -0.116513 -0.186231 -85.85 - 44 134.168 899 3 1 -0.0561943 -0.295388 -114.45 - 44 130.376 898 3 0 -0.0524227 -0.297857 -115.85 - 44 104.329 898 2 0 0.05 -0.352454 -145.948 - 44 118.985 900 1 1 0.152097 -0.402562 -174.45 - 44 168.992 898 1 0 0.154082 -0.409467 -175.85 - 44 170.049 900 0 1 0.195468 -0.551494 -204.45 - 44 180.588 897 0 0 0.192754 -0.557094 -205.85 -Number of digits in this event = 10 -Event: 45 -Number of tracker hits in this event = 21 - 45 108.592 899 3 1 -0.0951917 -0.160713 -114.45 - 45 124.901 899 3 0 -0.094809 -0.164035 -115.85 - 45 172.464 899 2 1 -0.0780466 -0.215303 -144.45 - 45 132.33 899 2 0 -0.07721 -0.220672 -145.85 - 45 6756.19 899 0 1 -0.113537 -0.363097 -204.45 - 45 4769.21 900 0 1 0.05 -0.378704 -204.501 - 45 5264.61 895 0 0 -0.253961 -0.944099 -205.85 - 45 32.159 901 0 1 0.25 -0.531416 -204.834 - 45 710.291 896 0 0 0.876172 -0.757156 -205.85 - 45 667.817 898 0 1 -0.25 -0.272899 -204.453 - 45 434.535 897 0 1 -0.45 -0.126115 -204.538 - 45 294.723 896 0 1 -0.690802 0.05 -204.641 - 45 325.834 895 0 1 -0.85 0.166203 -204.71 - 45 208.823 894 0 1 -1.05 0.311596 -204.796 - 45 197.032 910 0 0 -3.545 2.13982 -205.85 - 45 503.215 911 0 0 -3.69536 2.25 -205.914 - 45 539.593 912 0 0 -3.96569 2.45 -206.029 - 45 487.017 913 0 0 -4.23647 2.65 -206.142 - 45 308.232 888 0 0 -2.05239 -2.25782 -205.85 - 45 420.56 887 0 0 -2.26258 -2.45 -206.005 - 45 130.473 886 0 0 -2.48091 -2.65 -206.168 -Number of digits in this event = 23 -Event: 46 -Number of tracker hits in this event = 6 - 46 126.127 899 1 1 -0.0932875 -0.451325 -174.45 - 46 114.177 897 1 0 -0.0959268 -0.454657 -175.85 - 46 121.861 899 0 1 -0.171617 -0.5358 -204.45 - 46 167.191 897 0 0 -0.178414 -0.539892 -205.85 - 46 161.588 872 6 0 95.3121 -5.56239 -26.25 - 46 184.412 873 6 0 95.3603 -5.45 -25.9613 -Number of digits in this event = 7 -Event: 47 -Number of tracker hits in this event = 7 - 47 122.677 900 3 1 0.203663 0.0700453 -114.45 - 47 155.162 900 3 0 0.212861 0.0707945 -115.85 - 47 149.924 901 2 1 0.390077 0.0927691 -144.45 - 47 186.96 900 2 0 0.397513 0.0919039 -145.85 - 47 114.346 902 1 1 0.53787 0.0931129 -174.45 - 47 157.768 900 1 0 0.543996 0.0909076 -175.85 - 47 17.1964 899 0 0 0.601519 -0.05 -206.225 -Number of digits in this event = 6 -Event: 48 -Number of tracker hits in this event = 11 - 48 126.687 899 5 1 -0.117031 0.0781004 -54.45 - 48 119.015 900 5 0 -0.120166 0.0816341 -55.85 - 48 147.403 899 4 1 -0.197345 0.141514 -84.45 - 48 120.406 900 4 0 -0.20614 0.137251 -85.85 - 48 264.586 898 3 1 -0.372978 0.0548031 -114.45 - 48 144.775 897 2 1 -0.533197 -0.113649 -144.45 - 48 140.301 899 2 0 -0.54096 -0.122137 -145.85 - 48 180.233 896 1 1 -0.703559 -0.278847 -174.45 - 48 146.793 898 1 0 -0.705948 -0.290978 -175.85 - 48 267.736 896 0 1 -0.736829 -0.54883 -204.45 - 48 113.739 897 0 0 -0.742299 -0.566584 -205.85 -Number of digits in this event = 10 -Event: 49 -Number of tracker hits in this event = 13 - 49 120.147 900 4 1 0.108444 -0.116596 -84.45 - 49 113.575 899 4 0 0.111134 -0.117916 -85.85 - 49 137.442 900 3 1 0.148185 -0.139679 -114.45 - 49 144.524 899 3 0 0.145789 -0.143519 -115.85 - 49 125.247 900 2 1 0.095308 -0.224868 -144.45 - 49 237.978 899 2 0 0.0942679 -0.23409 -145.85 - 49 154.94 900 1 1 0.0564769 -0.406234 -174.45 - 49 54.6661 898 1 0 0.050672 -0.416594 -175.85 - 49 115.161 899 0 1 -0.0739242 -0.633522 -204.45 - 49 121.182 897 0 0 -0.0779155 -0.64644 -205.85 - 49 5.43776 896 0 0 -0.0790901 -0.65 -206.238 - 49 161.678 277 7 1 -124.6 -161.689 5.49965 - 49 41.1118 543 6 0 12.7278 -71.3092 -26.25 + 32 294.087 901 4 1 0.336261 -0.183611 -84.45 + 32 127.241 899 4 0 0.339304 -0.189037 -85.85 + 32 132.447 901 3 1 0.408248 -0.317863 -114.45 + 32 146.371 898 3 0 0.414595 -0.323639 -115.85 + 32 122.097 902 2 1 0.566393 -0.450407 -144.45 + 32 119.475 897 2 0 0.568249 -0.454208 -145.85 + 32 161.551 902 1 1 0.623226 -0.53177 -174.45 + 32 161.939 897 1 0 0.623955 -0.532812 -175.85 + 32 143.537 903 0 1 0.654045 -0.544798 -204.45 + 32 121.283 897 0 0 0.653045 -0.543857 -205.85 Number of digits in this event = 12 -Event: 50 -Number of tracker hits in this event = 11 - 50 103.112 900 5 0 -0.0669721 0.05 -55.9987 - 50 150.883 899 4 1 -0.12983 0.114005 -84.45 - 50 300.842 900 4 0 -0.134673 0.123884 -85.85 - 50 121.769 899 3 1 -0.205684 0.320512 -114.45 - 50 134.116 901 3 0 -0.209503 0.328197 -115.85 - 50 133.625 898 2 1 -0.274207 0.493051 -144.45 - 50 158.222 902 2 0 -0.27683 0.504764 -145.85 - 50 122.409 898 1 1 -0.310259 0.755748 -174.45 - 50 138.404 903 1 0 -0.312132 0.766557 -175.85 - 50 131.632 898 0 1 -0.361834 0.97871 -204.45 - 50 127.742 904 0 0 -0.354847 0.987476 -205.85 +Event: 33 +Number of tracker hits in this event = 9 + 33 138.892 899 3 1 -0.138482 -0.760664 -114.45 + 33 138.438 896 3 0 -0.139562 -0.770509 -115.85 + 33 253.483 899 2 1 -0.181537 -0.961477 -144.45 + 33 114.148 895 2 0 -0.180553 -0.96255 -145.85 + 33 178.649 899 1 1 -0.150996 -0.979214 -174.45 + 33 146.976 895 1 0 -0.153017 -0.9788 -175.85 + 33 112.834 899 0 1 -0.199545 -0.968849 -204.45 + 33 139.483 895 0 0 -0.199945 -0.976868 -205.85 + 33 265.587 780 2 0 159.782 -23.9046 -146.185 Number of digits in this event = 11 +Event: 34 +Number of tracker hits in this event = 10 + 34 116.248 899 4 1 -0.160936 -0.0681175 -84.45 + 34 135.379 899 4 0 -0.166123 -0.0722477 -85.85 + 34 133.191 898 3 1 -0.270367 -0.152917 -114.45 + 34 121.195 899 3 0 -0.27622 -0.161756 -115.85 + 34 192.977 898 2 1 -0.391925 -0.327375 -144.45 + 34 197.047 898 2 0 -0.398998 -0.335155 -145.85 + 34 142.765 897 1 1 -0.523189 -0.471668 -174.45 + 34 126.964 897 1 0 -0.521211 -0.476685 -175.85 + 34 122.036 897 0 1 -0.48092 -0.571495 -204.45 + 34 189.625 897 0 0 -0.477665 -0.577617 -205.85 +Number of digits in this event = 10 +Event: 35 +Number of tracker hits in this event = 3 + 35 116.854 900 1 0 0.109956 0.125563 -175.85 + 35 115.12 899 1 0 0.221355 -0.05 -176.057 + 35 252.237 917 0 1 3.46626 -13.586 -204.45 +Number of digits in this event = 4 +Event: 36 +Number of tracker hits in this event = 6 + 36 114.579 899 2 1 -0.184781 0.0754302 -144.45 + 36 129.15 900 2 0 -0.1811 0.0805037 -145.85 + 36 104.467 899 1 1 -0.0806128 0.184996 -174.45 + 36 115.236 900 1 0 -0.0729498 0.189605 -175.85 + 36 136.751 900 0 1 0.092986 0.263822 -204.45 + 36 152.533 901 0 0 0.0893459 0.261208 -205.85 +Number of digits in this event = 4 +Event: 37 +Number of tracker hits in this event = 4 + 37 100.814 899 1 1 -0.177737 0.126974 -174.45 + 37 243.685 900 1 0 -0.183594 0.134351 -175.85 + 37 133.105 898 0 1 -0.305723 0.302475 -204.45 + 37 276.138 901 0 0 -0.323191 0.308773 -205.85 +Number of digits in this event = 4 +Event: 38 +Number of tracker hits in this event = 10 + 38 236.312 899 5 1 -0.064505 0.0775986 -54.45 + 38 133.54 900 5 0 -0.0680275 0.0782387 -55.85 + 38 205.078 899 4 1 -0.146692 0.0759048 -84.45 + 38 208.747 900 4 0 -0.146671 0.0690743 -85.85 + 38 180.94 899 3 1 -0.157002 -0.0910461 -114.45 + 38 123.792 899 3 0 -0.157355 -0.0959256 -115.85 + 38 132.885 899 2 1 -0.153914 -0.206281 -144.45 + 38 114.086 899 2 0 -0.148354 -0.198633 -145.85 + 38 129.202 900 0 1 0.152739 0.175406 -204.45 + 38 326.686 900 0 0 0.155503 0.188287 -205.85 +Number of digits in this event = 10 +Event: 39 +Number of tracker hits in this event = 13 + 39 120.651 898 4 1 -0.279001 0.0613959 -84.45 + 39 147.914 900 4 0 -0.278003 0.0701316 -85.85 + 39 231.757 899 3 1 -0.232452 0.234085 -114.45 + 39 160.332 900 3 0 -0.228642 0.24186 -115.85 + 39 142.028 899 2 1 -0.158756 0.413499 -144.45 + 39 126.213 901 2 0 -0.154655 0.41919 -145.85 + 39 117.372 899 1 1 -0.0661395 0.540304 -174.45 + 39 149.262 902 1 0 -0.0614563 0.545573 -175.85 + 39 126.696 900 0 1 0.0507762 0.676683 -204.45 + 39 136.278 903 0 0 0.056597 0.67993 -205.85 + 39 24.7259 528 2 1 -74.25 -85.9677 -144.796 + 39 116.929 667 2 0 87.0673 -46.498 -146.026 + 39 82.7201 536 5 1 -72.6713 -28.1502 -54.4606 +Number of digits in this event = 11 +Event: 40 +Number of tracker hits in this event = 9 + 40 119.524 899 5 1 -0.128926 -0.105943 -54.45 + 40 123.252 899 5 0 -0.129323 -0.111498 -55.85 + 40 121.556 899 4 1 -0.150794 -0.236935 -84.45 + 40 141.524 899 4 0 -0.145506 -0.2397 -85.85 + 40 199.716 900 1 1 0.147902 -0.308804 -174.45 + 40 142.966 898 1 0 0.158047 -0.313343 -175.85 + 40 147.917 901 0 1 0.370904 -0.385689 -204.45 + 40 140.249 898 0 0 0.373482 -0.388005 -205.85 + 40 13.1927 1125 1 1 45.1848 101.74 -174.45 +Number of digits in this event = 10 +Event: 41 +Number of tracker hits in this event = 17 + 41 287.316 899 5 1 -0.110933 0.0579096 -54.45 + 41 118.424 900 5 0 -0.112932 0.0640342 -55.85 + 41 128.694 899 4 1 -0.163364 0.19384 -84.45 + 41 131.931 900 4 0 -0.169725 0.206037 -85.85 + 41 124.243 898 3 1 -0.320372 0.446645 -114.45 + 41 158.941 902 3 0 -0.330399 0.458417 -115.85 + 41 126.426 897 2 1 -0.528823 0.712793 -144.45 + 41 138.521 903 2 0 -0.536559 0.729534 -145.85 + 41 163.421 896 1 1 -0.68578 1.07763 -174.45 + 41 207.662 905 1 0 -0.694958 1.09611 -175.85 + 41 105.586 895 0 1 -0.85638 1.47377 -204.45 + 41 238.517 907 0 0 -0.867098 1.48586 -205.85 + 41 130.971 904 1 0 -0.759478 1.05 -176.069 + 41 269.404 903 1 0 -0.584135 0.85 -176.21 + 41 48.0341 284 1 0 -40.2315 -123.246 -176.25 + 41 52.8243 283 1 0 -40.3054 -123.35 -176.216 + 41 171.046 152 1 0 -26.4683 -149.552 -176.25 +Number of digits in this event = 16 +Event: 42 +Number of tracker hits in this event = 8 + 42 156.857 900 3 1 0.146811 -0.23148 -114.45 + 42 136.153 899 3 0 0.153568 -0.235385 -115.85 + 42 134.123 901 2 1 0.279232 -0.357923 -144.45 + 42 110.633 898 2 0 0.282125 -0.367887 -145.85 + 42 138.586 901 1 1 0.343172 -0.569849 -174.45 + 42 114.97 897 1 0 0.343928 -0.578547 -175.85 + 42 129.186 901 0 1 0.364024 -0.767567 -204.45 + 42 127.279 896 0 0 0.368935 -0.776905 -205.85 +Number of digits in this event = 7 +Event: 43 +Number of tracker hits in this event = 18 + 43 145.977 900 5 1 0.105696 0.0947759 -54.45 + 43 164.489 900 5 0 0.114933 0.0984357 -55.85 + 43 133.759 901 4 1 0.308575 0.177605 -84.45 + 43 142.092 900 4 0 0.31103 0.181535 -85.85 + 43 157.541 901 3 1 0.349734 0.248127 -114.45 + 43 129.445 901 3 0 0.355845 0.252341 -115.85 + 43 132.867 902 2 1 0.467186 0.373359 -144.45 + 43 130.256 901 2 0 0.469242 0.383593 -145.85 + 43 307.06 902 1 1 0.511478 0.586546 -174.45 + 43 140.209 902 1 0 0.513829 0.60083 -175.85 + 43 144.139 902 0 1 0.567478 0.904563 -204.45 + 43 200.529 904 0 0 0.564519 0.919417 -205.85 + 43 13.6364 1128 4 1 45.771 76.618 -84.45 + 43 68.3418 900 6 0 -0.05 0.0599017 -25.936 + 43 35.0844 899 6 0 -0.239558 -0.05 -25.8719 + 43 21.1704 898 6 1 -0.4288 -0.482321 -24.85 + 43 209.451 897 6 1 -0.45 -0.505786 -24.801 + 43 2.69304 1087 3 1 37.45 153.45 -114.824 +Number of digits in this event = 15 +Event: 44 +Number of tracker hits in this event = 2 + 44 8.55545 899 5 0 0.05 -0.183202 -56.0243 + 44 193.416 898 5 0 0.05 -0.40906 -55.9433 +Number of digits in this event = 2 +Event: 45 +Number of tracker hits in this event = 8 + 45 96.0999 899 2 0 0.05 -0.219699 -145.875 + 45 200.109 900 1 1 0.167365 -0.248794 -174.45 + 45 114.493 899 1 0 0.166058 -0.242163 -175.85 + 45 118.314 900 0 1 0.136946 -0.0971039 -204.45 + 45 152.908 899 0 0 0.134108 -0.0839433 -205.85 + 45 69.8654 764 0 1 -27.1431 -89.6937 -204.749 + 45 63.7685 763 0 1 -27.25 -89.8347 -204.666 + 45 62.2164 210 1 1 -138.044 50.5525 -174.45 +Number of digits in this event = 5 +Event: 46 +Number of tracker hits in this event = 16 + 46 195.825 900 5 1 0.0773135 0.145375 -54.45 + 46 116.928 900 5 0 0.0832849 0.152795 -55.85 + 46 137.818 900 4 1 0.22589 0.299819 -84.45 + 46 191.198 901 4 0 0.237645 0.301133 -85.85 + 46 108.444 902 3 1 0.493384 0.340405 -114.45 + 46 143.753 901 3 0 0.506436 0.34511 -115.85 + 46 254.977 903 2 1 0.772232 0.432974 -144.45 + 46 142.707 901 2 0 0.789123 0.441717 -145.85 + 46 433.222 905 1 1 1.14393 0.656534 -174.45 + 46 143.875 903 1 0 1.16262 0.665003 -175.85 + 46 148.809 907 0 1 1.55218 0.851581 -204.45 + 46 146.198 904 0 0 1.56964 0.856544 -205.85 + 46 48.0319 1066 1 1 33.2629 28.63 -174.85 + 46 50.284 468 0 1 -86.25 -93.2999 -204.762 + 46 7.14035 112 1 1 -157.683 18.9676 -174.8 + 46 208.599 1019 14 0 -25.0563 24.0224 213.863 +Number of digits in this event = 13 +Event: 47 +Number of tracker hits in this event = 10 + 47 179.652 898 4 1 -0.334969 0.13376 -84.45 + 47 142.087 900 4 0 -0.348454 0.144256 -85.85 + 47 140.24 897 3 1 -0.612788 0.370502 -114.45 + 47 154.874 901 3 0 -0.623945 0.380242 -115.85 + 47 160.349 896 2 1 -0.829822 0.552445 -144.45 + 47 142.853 902 2 0 -0.838287 0.561654 -145.85 + 47 128.191 895 1 1 -0.984477 0.745215 -174.45 + 47 196.779 903 1 0 -0.993498 0.74823 -175.85 + 47 116.666 894 0 1 -1.17849 0.848539 -204.45 + 47 135.785 904 0 0 -1.19051 0.858683 -205.85 +Number of digits in this event = 10 +Event: 48 +Number of tracker hits in this event = 4 + 48 151.788 899 3 1 -0.0662305 0.26433 -114.45 + 48 134.54 901 3 0 -0.0676759 0.266349 -115.85 + 48 121.896 899 2 1 -0.0880763 0.296539 -144.45 + 48 126.842 901 2 0 -0.0832564 0.299394 -145.85 +Number of digits in this event = 5 +Event: 49 +Number of tracker hits in this event = 10 + 49 142.941 896 3 1 -0.718981 -0.0730033 -114.45 + 49 174.819 899 3 0 -0.726935 -0.0802161 -115.85 + 49 113.815 895 2 1 -0.870817 -0.240497 -144.45 + 49 42.2364 899 2 0 -0.885763 -0.24946 -145.85 + 49 168.073 898 2 0 -0.886667 -0.25 -145.934 + 49 127.843 894 1 1 -1.19194 -0.432263 -174.45 + 49 107.887 898 1 0 -1.21035 -0.446667 -175.85 + 49 22.3809 897 1 0 -1.21459 -0.45 -176.172 + 49 158.62 892 0 1 -1.59198 -0.733798 -204.45 + 49 143.354 896 0 0 -1.60932 -0.74906 -205.85 +Number of digits in this event = 7 +Event: 50 +Number of tracker hits in this event = 6 + 50 128.765 891 2 1 -1.70299 -0.124552 -144.45 + 50 120.483 899 2 0 -1.73701 -0.132017 -145.85 + 50 137.951 888 1 1 -2.43414 -0.290097 -174.45 + 50 154.444 898 1 0 -2.46924 -0.302605 -175.85 + 50 133.594 884 0 1 -3.18969 -0.538644 -204.45 + 50 144.919 897 0 0 -3.22375 -0.55122 -205.85 +Number of digits in this event = 7 Event: 51 -Number of tracker hits in this event = 8 - 51 511.471 896 3 1 -0.719155 -0.136159 -114.45 - 51 158.262 899 3 0 -0.734712 -0.139304 -115.85 - 51 108.453 894 2 1 -1.05389 -0.238886 -144.45 - 51 114.719 899 2 0 -1.06639 -0.242903 -145.85 - 51 129.04 893 1 1 -1.32971 -0.337622 -174.45 - 51 133.086 898 1 0 -1.34513 -0.342414 -175.85 - 51 141.759 892 0 1 -1.64312 -0.45796 -204.45 - 51 128.619 897 0 0 -1.6609 -0.465624 -205.85 -Number of digits in this event = 8 +Number of tracker hits in this event = 14 + 51 101.881 900 4 1 0.0583055 -0.166808 -84.45 + 51 133.711 899 4 0 0.0607628 -0.166524 -85.85 + 51 108.021 900 3 1 0.125942 -0.160713 -114.45 + 51 291.282 899 3 0 0.129285 -0.152783 -115.85 + 51 123.609 901 1 1 0.270204 0.271741 -174.45 + 51 132.72 901 1 0 0.277816 0.284726 -175.85 + 51 882.119 901 0 1 0.417284 0.539719 -204.45 + 51 107.658 902 0 0 0.423649 0.551361 -205.85 + 51 39.5984 183 5 0 -145.179 -143.463 -56.25 + 51 49.3475 182 5 0 -145.088 -143.55 -56.2381 + 51 32.2782 595 0 0 -90.9125 -60.85 -206.059 + 51 129.92 408 4 1 -98.4019 -120.092 -84.825 + 51 248.218 44 3 1 -171.172 131.93 -114.778 + 51 370.601 1310 8 1 82.0748 -124.07 35.1974 +Number of digits in this event = 11 Event: 52 -Number of tracker hits in this event = 8 - 52 137.511 899 3 1 -0.0846396 0.256207 -114.45 - 52 183.531 901 3 0 -0.0881161 0.270287 -115.85 - 52 124.976 899 2 1 -0.176385 0.54543 -144.45 - 52 99.1884 902 2 0 -0.180948 0.553385 -145.85 - 52 107.579 898 1 1 -0.268108 0.732129 -174.45 - 52 149.365 903 1 0 -0.272143 0.734908 -175.85 - 52 105.191 898 0 1 -0.38163 0.815249 -204.45 - 52 444.384 903 0 0 -0.389042 0.818857 -205.85 -Number of digits in this event = 6 +Number of tracker hits in this event = 10 + 52 137.654 900 4 1 0.0806803 -0.206612 -84.45 + 52 119.274 899 4 0 0.0818331 -0.211791 -85.85 + 52 137.599 900 3 1 0.103415 -0.325272 -114.45 + 52 129.989 898 3 0 0.10449 -0.334961 -115.85 + 52 165.001 900 2 1 0.123912 -0.552767 -144.45 + 52 125.032 897 2 0 0.123393 -0.563189 -145.85 + 52 161.528 900 1 1 0.0937972 -0.783703 -174.45 + 52 133.001 896 1 0 0.0953597 -0.788424 -175.85 + 52 151.472 900 0 1 0.120199 -0.896836 -204.45 + 52 266.946 895 0 0 0.121995 -0.903854 -205.85 +Number of digits in this event = 10 Event: 53 -Number of tracker hits in this event = 15 - 53 130.004 899 5 1 -0.0599924 0.124924 -54.45 - 53 266.156 900 5 0 -0.0617614 0.130342 -55.85 - 53 137.207 899 4 1 -0.102218 0.241696 -84.45 - 53 151.215 900 4 0 -0.108805 0.243328 -85.85 - 53 151.352 898 3 1 -0.289707 0.296144 -114.45 - 53 115.367 901 3 0 -0.301906 0.301597 -115.85 - 53 130.749 897 2 1 -0.543588 0.412228 -144.45 - 53 119.077 901 2 0 -0.556703 0.414154 -145.85 - 53 121.355 896 1 1 -0.82185 0.449763 -174.45 - 53 375.973 902 1 0 -0.835692 0.451559 -175.85 - 53 128.348 894 0 1 -1.11288 0.490073 -204.45 - 53 144.113 902 0 0 -1.12874 0.496619 -205.85 - 53 25.1935 121 2 1 -155.75 102.389 -144.833 - 53 62.8373 735 1 0 122.143 -32.8547 -176.176 - 53 2.86864 736 1 0 122.167 -32.85 -176.181 +Number of tracker hits in this event = 12 + 53 218.329 899 5 1 -0.109007 -0.193005 -54.45 + 53 117.26 899 5 0 -0.112551 -0.202344 -55.85 + 53 159.644 899 4 1 -0.192164 -0.401053 -84.45 + 53 130.603 898 4 0 -0.205085 -0.409942 -85.85 + 53 129.256 897 3 1 -0.46757 -0.599159 -114.45 + 53 140.221 897 3 0 -0.478266 -0.612066 -115.85 + 53 230.128 896 2 1 -0.708196 -0.88001 -144.45 + 53 119.869 895 2 0 -0.717897 -0.895336 -145.85 + 53 165.477 895 1 1 -0.912445 -1.2135 -174.45 + 53 140.913 894 1 0 -0.92297 -1.23226 -175.85 + 53 128.941 894 0 1 -1.11991 -1.63334 -204.45 + 53 139.494 891 0 0 -1.13271 -1.65533 -205.85 Number of digits in this event = 12 Event: 54 -Number of tracker hits in this event = 13 - 54 121.659 899 4 1 -0.0963861 -0.270829 -84.45 - 54 534.38 898 4 0 -0.10235 -0.279785 -85.85 - 54 199.522 899 3 1 -0.235482 -0.470635 -114.45 - 54 137.032 897 3 0 -0.244285 -0.482365 -115.85 - 54 152.136 898 2 1 -0.405673 -0.734167 -144.45 - 54 126.078 896 2 0 -0.405826 -0.739637 -145.85 - 54 127.37 898 1 1 -0.400793 -0.874332 -174.45 - 54 170.98 895 1 0 -0.39559 -0.880183 -175.85 - 54 408.186 898 0 1 -0.251676 -1.00087 -204.45 - 54 96.7298 899 0 1 -0.25 -1.00124 -204.63 - 54 126.203 895 0 0 -0.240067 -1.00368 -205.85 - 54 46.2733 896 1 0 -0.458415 -0.85 -176.111 - 54 143.108 899 3 0 -0.407531 -0.170558 -115.85 -Number of digits in this event = 12 -Event: 55 Number of tracker hits in this event = 10 - 55 147.738 899 4 1 -0.221593 -0.134471 -84.45 - 55 141.547 899 4 0 -0.238307 -0.143401 -85.85 - 55 174.661 897 3 1 -0.568365 -0.337493 -114.45 - 55 128.156 898 3 0 -0.590401 -0.370169 -115.85 - 55 149.423 895 2 1 -1.04077 -1.03351 -144.45 - 55 108.971 894 2 0 -1.05921 -1.06825 -145.85 - 55 164.883 893 1 1 -1.42866 -1.76935 -174.45 - 55 166.881 891 1 0 -1.44393 -1.80012 -175.85 - 55 315.388 891 0 1 -1.74203 -2.42097 -204.45 - 55 176.579 887 0 0 -1.75684 -2.45131 -205.85 -Number of digits in this event = 10 -Event: 56 + 54 115.662 900 4 1 0.0583766 -0.373634 -84.45 + 54 138.079 898 4 0 0.0568469 -0.383368 -85.85 + 54 134.499 899 2 1 -0.0656001 -0.871932 -144.45 + 54 119.726 895 2 0 -0.0657769 -0.886236 -145.85 + 54 38.3791 899 1 1 -0.0593862 -1.20066 -174.45 + 54 40.6198 894 1 0 0.05 -1.21211 -176.082 + 54 120.193 909 0 1 1.9647 -1.422 -204.45 + 54 117.903 893 0 0 2.06191 -1.43305 -205.85 + 54 64.4712 899 5 0 -0.331264 -0.230099 -55.85 + 54 59.5126 898 5 0 -0.391699 -0.25 -56.0512 +Number of digits in this event = 4 +Event: 55 Number of tracker hits in this event = 11 - 56 121.205 900 4 1 0.10696 0.0500071 -84.45 - 56 191.387 900 4 0 0.115295 0.057635 -85.85 - 56 223.906 901 3 1 0.267836 0.237124 -114.45 - 56 6.86336 900 3 0 0.279629 0.249815 -115.85 - 56 128.547 901 3 0 0.279806 0.25 -115.871 - 56 159.032 902 2 1 0.52729 0.510908 -144.45 - 56 120.239 902 2 0 0.535373 0.522421 -145.85 - 56 154.467 903 1 1 0.702482 0.763778 -174.45 - 56 257.997 903 1 0 0.715851 0.773184 -175.85 - 56 152.284 904 0 1 0.981668 0.948825 -204.45 - 56 246.85 904 0 0 0.996945 0.958887 -205.85 + 55 139.289 899 4 1 -0.0907814 0.168167 -84.45 + 55 133.376 900 4 0 -0.0972561 0.178256 -85.85 + 55 142.083 899 3 1 -0.228579 0.376622 -114.45 + 55 112.538 901 3 0 -0.230171 0.385721 -115.85 + 55 186.444 899 2 1 -0.244086 0.595486 -144.45 + 55 149.992 902 2 0 -0.242746 0.599199 -145.85 + 55 121.9 899 1 1 -0.219993 0.654664 -174.45 + 55 126.342 903 1 0 -0.219778 0.658523 -175.85 + 55 126.332 899 0 1 -0.227992 0.723276 -204.45 + 55 108.392 903 0 0 -0.22444 0.731184 -205.85 + 55 492.779 1798 11 1 179.908 -143.047 125.403 +Number of digits in this event = 13 +Event: 56 +Number of tracker hits in this event = 8 + 56 203.758 899 3 1 -0.136058 -0.20212 -114.45 + 56 135.28 899 3 0 -0.140112 -0.207058 -115.85 + 56 200.861 899 2 1 -0.210268 -0.304958 -144.45 + 56 133.095 898 2 0 -0.211067 -0.309174 -145.85 + 56 121.116 899 1 1 -0.223473 -0.406624 -174.45 + 56 147.304 898 1 0 -0.227517 -0.411767 -175.85 + 56 248.906 898 0 1 -0.311293 -0.499431 -204.45 + 56 112.979 897 0 0 -0.315593 -0.501391 -205.85 Number of digits in this event = 11 Event: 57 Number of tracker hits in this event = 16 - 57 117.019 900 4 1 0.125642 -0.079818 -84.45 - 57 118.992 899 4 0 0.129923 -0.0828834 -85.85 - 57 152.241 900 3 1 0.216913 -0.150463 -114.45 - 57 119.473 899 3 0 0.219301 -0.158376 -115.85 - 57 125.466 901 2 1 0.253272 -0.321558 -144.45 - 57 126.542 898 2 0 0.257912 -0.326501 -145.85 - 57 148.276 901 1 1 0.349413 -0.42106 -174.45 - 57 116.129 898 1 0 0.351575 -0.4272 -175.85 - 57 113.981 901 0 1 0.389989 -0.55782 -204.45 - 57 140.931 897 0 0 0.388339 -0.559122 -205.85 - 57 164.354 897 3 0 0.723359 -0.518521 -115.85 - 57 152.353 899 5 0 -0.422385 -0.150436 -55.85 - 57 106.781 855 4 1 -9.01111 -6.90497 -84.45 - 57 153.444 854 4 1 -9.05 -7.19583 -84.6644 - 57 96.0079 853 4 1 -9.25 -7.54864 -84.7086 - 57 558.846 852 4 1 -9.45 -7.69041 -84.708 -Number of digits in this event = 10 + 57 118.736 902 2 1 0.455527 -0.180629 -144.45 + 57 141.977 899 2 0 0.461346 -0.187498 -145.85 + 57 124.925 902 1 1 0.590033 -0.333135 -174.45 + 57 211.715 898 1 0 0.599631 -0.344317 -175.85 + 57 134.149 903 0 1 0.789101 -0.553001 -204.45 + 57 213.58 897 0 0 0.794102 -0.567092 -205.85 + 57 73.0492 900 3 1 0.17882 0.05 -114.737 + 57 26.6346 985 3 0 -13.8389 17.191 -115.85 + 57 11.5604 806 3 1 -18.8365 20.2015 -114.85 + 57 29.5562 805 3 1 -18.85 20.2096 -114.847 + 57 12.8275 1062 3 0 -43.6116 32.4533 -115.85 + 57 13.9242 669 3 1 -46.2137 31.3709 -114.85 + 57 85.8576 668 3 1 -46.25 31.3468 -114.83 + 57 13.4565 1056 3 0 -46.5649 31.4351 -115.85 + 57 59.8752 1057 3 0 -46.5638 31.45 -115.871 + 57 120.102 664 3 1 -47.1017 33.3338 -114.85 +Number of digits in this event = 7 Event: 58 -Number of tracker hits in this event = 11 - 58 124.493 901 3 1 0.40487 -0.0625464 -114.45 - 58 105.459 899 3 0 0.416903 -0.0527075 -115.85 - 58 120.708 903 2 1 0.669047 0.157202 -144.45 - 58 133.111 900 2 0 0.681227 0.167551 -145.85 - 58 131.74 904 1 1 0.939032 0.380645 -174.45 - 58 127.862 901 1 0 0.955478 0.390335 -175.85 - 58 137.918 906 0 1 1.29055 0.598872 -204.45 - 58 140.42 902 0 0 1.30483 0.610212 -205.85 - 58 35.064 257 4 1 -128.657 147.969 -84.85 - 58 74.1392 1181 1 1 56.3964 43.601 -174.746 - 58 60.4324 830 0 1 -13.9559 7.31173 -204.642 -Number of digits in this event = 11 -Event: 59 -Number of tracker hits in this event = 12 - 59 169.772 900 5 1 0.143225 -0.0658204 -54.45 - 59 135.626 899 5 0 0.149652 -0.074946 -55.85 - 59 136.753 901 4 1 0.295563 -0.272447 -84.45 - 59 245.816 898 4 0 0.301967 -0.283641 -85.85 - 59 144.968 901 3 1 0.416695 -0.518709 -114.45 - 59 139.508 897 3 0 0.423271 -0.539129 -115.85 - 59 191.362 902 2 1 0.553807 -0.939675 -144.45 - 59 162.615 895 2 0 0.560349 -0.955095 -145.85 - 59 174.136 903 1 1 0.692778 -1.25 -174.45 - 59 171.927 893 1 0 0.699907 -1.26396 -175.85 - 59 116.767 904 0 1 0.863723 -1.57315 -204.45 - 59 117.766 892 0 0 0.876436 -1.59593 -205.85 -Number of digits in this event = 11 -Event: 60 -Number of tracker hits in this event = 11 - 60 519.345 900 5 0 0.0504298 0.109825 -55.85 - 60 117.999 900 4 1 0.163693 0.153683 -84.45 - 60 101.333 900 4 0 0.167045 0.155612 -85.85 - 60 112.975 900 3 1 0.235097 0.152057 -114.45 - 60 121.531 900 3 0 0.237466 0.153385 -115.85 - 60 130.238 901 2 1 0.276603 0.180338 -144.45 - 60 129.787 900 2 0 0.277607 0.18356 -145.85 - 60 125.154 901 1 1 0.283712 0.262829 -174.45 - 60 199.48 901 1 0 0.285894 0.260679 -175.85 - 60 146.367 901 0 1 0.334038 0.236749 -204.45 - 60 121.539 900 0 0 0.333635 0.232527 -205.85 -Number of digits in this event = 9 -Event: 61 -Number of tracker hits in this event = 6 - 61 128.689 900 5 1 0.137199 0.0661216 -54.45 - 61 129.513 900 5 0 0.147472 0.0656342 -55.85 - 61 141.932 904 2 1 0.923326 0.0527124 -144.45 - 61 153.743 900 2 0 0.94314 0.054271 -145.85 - 61 123.691 906 1 1 1.36843 0.0786156 -174.45 - 61 138.034 900 1 0 1.38321 0.0771123 -175.85 -Number of digits in this event = 10 -Event: 62 -Number of tracker hits in this event = 12 - 62 167.326 899 5 1 -0.0760094 0.05 -54.5937 - 62 133.121 900 5 0 -0.0762087 0.0571996 -55.85 - 62 128.898 899 4 1 -0.0839132 0.219609 -84.45 - 62 112.149 900 4 0 -0.0737584 0.233836 -85.85 - 62 149.506 900 3 1 0.0744494 0.561235 -114.45 - 62 107.565 902 3 0 0.0834947 0.581831 -115.85 - 62 141.746 901 2 1 0.27303 1.01429 -144.45 - 62 158.326 904 2 0 0.281237 1.03733 -145.85 - 62 154.016 901 1 1 0.430225 1.51797 -174.45 - 62 171.077 907 1 0 0.439131 1.54869 -175.85 - 62 209.605 902 0 1 0.613198 2.19337 -204.45 - 62 173.359 910 0 0 0.624692 2.22976 -205.85 -Number of digits in this event = 11 -Event: 63 Number of tracker hits in this event = 10 - 63 145.865 899 5 1 -0.0530397 0.141342 -54.45 - 63 204.59 900 5 0 -0.0533996 0.151244 -55.85 - 63 174.874 899 4 1 -0.0665489 0.334358 -84.45 - 63 114.507 901 4 0 -0.0670227 0.341441 -85.85 - 63 152.272 899 3 1 -0.0897026 0.487055 -114.45 - 63 260.977 902 3 0 -0.0923665 0.491966 -115.85 - 63 112.943 899 2 1 -0.171789 0.592227 -144.45 - 63 128.117 902 2 0 -0.169976 0.595446 -145.85 - 63 284.563 899 1 1 -0.112625 0.69069 -174.45 - 63 144.364 903 1 0 -0.108346 0.697845 -175.85 + 58 129.773 898 4 1 -0.426979 -0.0886936 -84.45 + 58 146.747 899 4 0 -0.441128 -0.0915015 -85.85 + 58 167.597 896 3 1 -0.737812 -0.1398 -114.45 + 58 99.5693 899 3 0 -0.752117 -0.1492 -115.85 + 58 112.974 895 2 1 -1.02588 -0.312385 -144.45 + 58 181.181 898 2 0 -1.03448 -0.320226 -145.85 + 58 212.981 894 1 1 -1.21251 -0.471761 -174.45 + 58 154.248 897 1 0 -1.21868 -0.479992 -175.85 + 58 169.282 893 0 1 -1.3397 -0.644917 -204.45 + 58 134.342 896 0 0 -1.34549 -0.653405 -205.85 Number of digits in this event = 9 +Event: 59 +Number of tracker hits in this event = 4 + 59 142.2 899 4 1 -0.18745 -0.0862317 -84.45 + 59 128.201 899 4 0 -0.189544 -0.0878439 -85.85 + 59 138.041 898 3 1 -0.25512 -0.0879733 -114.45 + 59 177.921 899 3 0 -0.257553 -0.0850981 -115.85 +Number of digits in this event = 6 +Event: 60 +Number of tracker hits in this event = 18 + 60 154.959 900 5 1 0.090719 0.112906 -54.45 + 60 113.703 900 5 0 0.0969932 0.120969 -55.85 + 60 248.205 900 4 1 0.212244 0.305767 -84.45 + 60 154.401 901 4 0 0.224088 0.30719 -85.85 + 60 117.427 902 3 1 0.475217 0.355476 -114.45 + 60 112.246 901 3 0 0.491723 0.372638 -115.85 + 60 125.578 903 2 1 0.820866 0.806578 -144.45 + 60 140.728 903 2 0 0.838534 0.836955 -145.85 + 60 122.368 905 1 1 1.22338 1.45862 -174.45 + 60 135.236 907 1 0 1.2415 1.49172 -175.85 + 60 131.536 907 0 1 1.59323 2.18957 -204.45 + 60 122.801 910 0 0 1.60881 2.22024 -205.85 + 60 52.129 900 4 0 0.233134 0.25 -86.1433 + 60 135.725 769 4 0 17.8822 -26.1106 -86.25 + 60 291.312 770 4 0 17.83 -26.05 -85.9628 + 60 110.74 771 4 0 17.7101 -25.85 -85.8735 + 60 96.3147 772 4 0 17.7457 -25.65 -85.8961 + 60 297.427 994 4 1 18.8931 -24.9961 -84.85 +Number of digits in this event = 13 +Event: 61 +Number of tracker hits in this event = 5 + 61 453.636 900 1 1 0.105992 -0.306123 -174.45 + 61 123.808 898 1 0 0.11199 -0.307827 -175.85 + 61 166.205 900 0 1 0.233039 -0.338973 -204.45 + 61 125.596 898 0 0 0.249457 -0.344704 -205.85 + 61 134.383 900 1 0 -0.586291 0.17015 -175.85 +Number of digits in this event = 6 +Event: 62 +Number of tracker hits in this event = 14 + 62 107.408 900 5 1 0.247421 -0.180179 -54.45 + 62 10.6016 901 5 1 0.25 -0.178165 -54.8067 + 62 106.03 899 5 0 0.257119 -0.171953 -55.85 + 62 346.469 902 3 1 0.621173 0.167514 -114.45 + 62 150.305 900 3 0 0.620382 0.174848 -115.85 + 62 137.571 902 2 1 0.585148 0.306518 -144.45 + 62 366.607 901 2 0 0.586982 0.318028 -145.85 + 62 213.571 902 1 1 0.610013 0.541658 -174.45 + 62 244.244 902 1 0 0.604347 0.552244 -175.85 + 62 207.601 902 0 1 0.480637 0.780679 -204.45 + 62 250.484 903 0 0 0.473382 0.800468 -205.85 + 62 444.95 910 0 0 1.45242 2.0721 -205.85 + 62 116.909 906 0 1 1.35029 2.35662 -204.85 + 62 124.037 907 0 1 1.45 2.37565 -204.76 +Number of digits in this event = 12 +Event: 63 +Number of tracker hits in this event = 12 + 63 123.294 900 5 1 0.11782 0.116739 -54.45 + 63 136.15 900 5 0 0.120325 0.126267 -55.85 + 63 156.664 900 4 1 0.169285 0.330105 -84.45 + 63 118.429 901 4 0 0.17116 0.341075 -85.85 + 63 158.533 900 3 1 0.207211 0.56019 -114.45 + 63 151.675 902 3 0 0.209946 0.564548 -115.85 + 63 136.426 901 2 1 0.251478 0.628085 -144.45 + 63 150.743 902 2 0 0.251619 0.631417 -145.85 + 63 161.956 901 1 1 0.294784 0.683461 -174.45 + 63 111.94 903 1 0 0.295322 0.69432 -175.85 + 63 136.424 901 0 1 0.304012 0.905121 -204.45 + 63 156.75 904 0 0 0.307524 0.914878 -205.85 +Number of digits in this event = 11 Event: 64 -Number of tracker hits in this event = 8 - 64 326.5 901 3 1 0.317912 -0.0779759 -114.45 - 64 134.806 899 3 0 0.32515 -0.0772546 -115.85 - 64 179.268 902 2 1 0.474604 -0.0770654 -144.45 - 64 121.63 899 2 0 0.479604 -0.0753099 -145.85 - 64 176.116 899 1 0 0.778947 -0.149779 -175.85 - 64 84.4205 925 0 1 5.23886 -3.58048 -204.45 - 64 108.714 926 0 1 5.25 -3.58903 -204.52 - 64 142.286 881 0 0 5.46108 -3.75095 -205.85 -Number of digits in this event = 8 +Number of tracker hits in this event = 12 + 64 119.816 900 5 1 0.0848805 0.106527 -54.45 + 64 124.293 900 5 0 0.084898 0.114908 -55.85 + 64 123.45 900 4 1 0.09199 0.285825 -84.45 + 64 132.82 901 4 0 0.0971872 0.295455 -85.85 + 64 169.945 900 3 1 0.175801 0.50217 -114.45 + 64 205.841 902 3 0 0.186672 0.512353 -115.85 + 64 119.875 901 2 1 0.412097 0.730855 -144.45 + 64 121.024 903 2 0 0.425233 0.746234 -145.85 + 64 124.468 903 1 1 0.689706 1.05934 -174.45 + 64 149.753 905 1 0 0.70387 1.07382 -175.85 + 64 126.946 904 0 1 0.989151 1.36153 -204.45 + 64 132.839 906 0 0 1.00353 1.36336 -205.85 +Number of digits in this event = 14 Event: 65 Number of tracker hits in this event = 12 - 65 130.562 899 5 1 -0.07834 -0.0960119 -54.45 - 65 163.91 899 5 0 -0.0790525 -0.0974949 -55.85 - 65 246.926 899 4 1 -0.0984244 -0.109879 -84.45 - 65 137.121 899 4 0 -0.098415 -0.108496 -85.85 - 65 317.629 899 3 1 -0.0943659 -0.104902 -114.45 - 65 188.316 899 3 0 -0.0955907 -0.106014 -115.85 - 65 167.463 899 2 1 -0.11286 -0.144957 -144.45 - 65 155.205 899 2 0 -0.117676 -0.148174 -145.85 - 65 125.075 899 1 1 -0.202966 -0.2061 -174.45 - 65 141.977 899 1 0 -0.203781 -0.209006 -175.85 - 65 170.879 899 0 1 -0.207728 -0.289584 -204.45 - 65 117.202 898 0 0 -0.203124 -0.293563 -205.85 -Number of digits in this event = 12 + 65 119.825 900 5 1 0.0583376 -0.108064 -54.45 + 65 134.851 899 5 0 0.0630289 -0.112502 -55.85 + 65 302.685 900 4 1 0.179046 -0.187973 -84.45 + 65 152.004 899 4 0 0.177222 -0.191674 -85.85 + 65 290.861 900 3 1 0.151238 -0.2772 -114.45 + 65 159.462 898 3 0 0.153101 -0.280833 -115.85 + 65 113.517 900 2 1 0.184446 -0.366791 -144.45 + 65 124.423 898 2 0 0.186768 -0.366277 -145.85 + 65 858.411 900 1 1 0.22772 -0.377104 -174.45 + 65 242.751 898 1 0 0.230002 -0.377919 -175.85 + 65 115.216 901 0 1 0.278627 -0.385542 -204.45 + 65 151.026 898 0 0 0.28618 -0.387328 -205.85 +Number of digits in this event = 10 Event: 66 Number of tracker hits in this event = 11 - 66 153.758 899 5 1 -0.0577987 0.0512599 -54.45 - 66 167.72 900 5 0 -0.0599553 0.0527291 -55.85 - 66 136.636 899 4 1 -0.101451 0.0713483 -84.45 - 66 133.634 900 4 0 -0.103893 0.0727572 -85.85 - 66 149.529 899 3 1 -0.148037 0.0775681 -114.45 - 66 138.722 900 3 0 -0.148575 0.0850375 -115.85 - 66 129.462 899 2 1 -0.159968 0.234977 -144.45 - 66 436.582 900 2 0 -0.15518 0.247735 -145.85 - 66 48.9951 901 2 0 -0.154254 0.25 -146.099 - 66 150.323 899 1 1 -0.0979909 0.39315 -174.45 - 66 132.323 901 1 0 -0.0947693 0.407501 -175.85 -Number of digits in this event = 11 + 66 140.485 899 4 1 -0.0936291 0.0647953 -84.45 + 66 114.897 900 4 0 -0.101096 0.0659421 -85.85 + 66 150.113 898 3 1 -0.26947 0.098365 -114.45 + 66 140.968 900 3 0 -0.27664 0.105091 -115.85 + 66 124.031 898 2 1 -0.447179 0.249014 -144.45 + 66 154.448 901 2 0 -0.452575 0.25832 -145.85 + 66 160.713 897 1 1 -0.569876 0.449291 -174.45 + 66 284.037 902 1 0 -0.57652 0.453417 -175.85 + 66 219.798 896 0 1 -0.707022 0.521614 -204.45 + 66 193.529 902 0 0 -0.708462 0.525259 -205.85 + 66 24.5427 901 0 0 -0.586551 0.45 -206.183 +Number of digits in this event = 10 Event: 67 -Number of tracker hits in this event = 8 - 67 120.319 896 1 1 -0.807341 -0.168589 -174.45 - 67 188.347 899 1 0 -0.820061 -0.173841 -175.85 - 67 233.419 894 0 1 -1.09574 -0.287244 -204.45 - 67 157.367 898 0 0 -1.10553 -0.298327 -205.85 - 67 9.1127 903 2 0 -0.842495 0.825238 -145.85 - 67 71.4247 904 2 0 -0.851155 0.85 -145.882 - 67 140.277 905 2 0 -0.89921 1.05 -146.082 - 67 16.9754 906 2 0 -0.966432 1.25 -146.212 -Number of digits in this event = 6 -Event: 68 -Number of tracker hits in this event = 2 - 68 134.147 895 0 1 -0.99235 0.225877 -204.45 - 68 116.503 900 0 0 -1.00103 0.235182 -205.85 -Number of digits in this event = 4 -Event: 69 -Number of tracker hits in this event = 8 - 69 133.474 899 1 1 -0.141211 0.417701 -174.45 - 69 138.161 901 1 0 -0.140545 0.429561 -175.85 - 69 205.236 899 0 1 -0.128198 0.66955 -204.45 - 69 126.577 903 0 0 -0.126945 0.674991 -205.85 - 69 13.0936 792 0 0 75.4728 -21.65 -205.974 - 69 102.099 1244 0 0 -124.449 69.0016 -205.88 - 69 78.2604 370 2 1 -106.097 147.748 -144.683 - 69 195.154 1251 3 0 -79.6349 70.4173 -116.168 -Number of digits in this event = 9 -Event: 70 -Number of tracker hits in this event = 8 - 70 162.831 899 3 1 -0.0990614 -0.117356 -114.45 - 70 157.282 899 3 0 -0.10388 -0.121527 -115.85 - 70 181.917 899 2 1 -0.199834 -0.195155 -144.45 - 70 146.135 899 2 0 -0.203711 -0.194812 -145.85 - 70 115.83 898 1 1 -0.272623 -0.188148 -174.45 - 70 152.354 899 1 0 -0.276332 -0.188495 -175.85 - 70 141.043 898 0 1 -0.345478 -0.184553 -204.45 - 70 118.47 899 0 0 -0.346642 -0.186726 -205.85 +Number of tracker hits in this event = 13 + 67 140.022 899 3 1 -0.0752901 0.0999056 -114.45 + 67 116.377 900 3 0 -0.0766772 0.102512 -115.85 + 67 198.279 899 2 1 -0.0974645 0.170702 -144.45 + 67 109.375 900 2 0 -0.103754 0.171099 -145.85 + 67 133.392 899 1 1 -0.218213 0.181906 -174.45 + 67 162.612 900 1 0 -0.222943 0.184842 -175.85 + 67 110.905 898 0 1 -0.281861 0.299644 -204.45 + 67 139.346 901 0 0 -0.284691 0.304334 -205.85 + 67 63.6029 894 6 0 0.10636 -1.08798 -25.85 + 67 67.1213 893 6 0 0.130045 -1.25 -25.9865 + 67 103.815 892 6 0 0.120391 -1.45 -26.0624 + 67 72.8099 806 6 0 -7.04822 -18.8052 -26.25 + 67 158.431 805 6 0 -7.07889 -18.85 -26.1988 Number of digits in this event = 7 -Event: 71 -Number of tracker hits in this event = 8 - 71 141.213 899 4 1 -0.0716723 0.0588589 -84.45 - 71 150.564 900 4 0 -0.0759078 0.0596492 -85.85 - 71 130.803 899 3 1 -0.138368 0.0912485 -114.45 - 71 120.885 900 3 0 -0.143767 0.0920947 -115.85 - 71 157.217 898 2 1 -0.258935 0.0894542 -144.45 - 71 132.242 900 2 0 -0.263575 0.085304 -145.85 - 71 404.235 896 0 1 -0.677347 -0.0602693 -204.45 - 71 115.21 899 0 0 -0.691996 -0.0629467 -205.85 -Number of digits in this event = 8 -Event: 72 -Number of tracker hits in this event = 15 - 72 170.546 902 2 1 0.516461 0.0529145 -144.45 - 72 194.717 900 2 0 0.522538 0.0539346 -145.85 - 72 121.249 902 1 1 0.627826 0.106266 -174.45 - 72 169.356 900 1 0 0.625747 0.101477 -175.85 - 72 941.316 899 0 0 0.645239 -0.05 -205.93 - 72 174.33 749 9 1 -30.0958 -2.21939 65.55 - 72 39.2309 853 0 0 65.3929 -9.37178 -205.885 - 72 52.045 1500 0 1 120.165 -30.4661 -204.542 - 72 125.327 1499 0 1 120.15 -30.2739 -204.496 - 72 74.2617 744 0 0 119.768 -31.0979 -205.85 - 72 66.7771 743 0 0 119.716 -31.25 -206.084 - 72 20.3979 742 0 0 119.637 -31.45 -206.228 - 72 81.0634 668 0 0 76.7098 -46.3423 -205.909 - 72 35.4453 1283 0 1 76.6981 -43.851 -204.85 - 72 34.2222 677 0 0 76.4653 -44.5253 -205.85 -Number of digits in this event = 10 -Event: 73 -Number of tracker hits in this event = 32 - 73 118.326 899 5 0 -0.0655959 -0.210601 -55.85 - 73 191.489 894 4 1 -1.22316 -1.84675 -84.45 - 73 140.998 890 4 0 -1.28459 -1.92554 -85.85 - 73 323.777 887 3 1 -2.57035 -3.53523 -114.45 - 73 111.109 882 3 0 -2.63132 -3.6096 -115.85 - 73 125.191 880 2 1 -3.88204 -5.12183 -144.45 - 73 319.864 874 2 0 -3.94599 -5.19331 -145.85 - 73 182.723 873 1 1 -5.25401 -6.63504 -174.45 - 73 100.319 866 1 0 -5.32378 -6.70179 -175.85 - 73 137.754 856 0 1 -8.77647 -8.26567 -204.45 - 73 603.368 855 0 1 -8.85 -8.27559 -204.463 - 73 486.365 854 0 1 -9.05 -8.30557 -204.499 - 73 356.122 853 0 1 -9.25 -8.33693 -204.532 - 73 560.017 852 0 1 -9.45 -8.36698 -204.566 - 73 591.706 851 0 1 -9.65 -8.39423 -204.601 - 73 417.284 850 0 1 -9.85 -8.42118 -204.637 - 73 398.786 849 0 1 -10.05 -8.45182 -204.674 - 73 491.524 848 0 1 -10.25 -8.48334 -204.712 - 73 430.794 847 0 1 -10.45 -8.51522 -204.747 - 73 486.17 846 0 1 -10.65 -8.54631 -204.783 - 73 428.002 845 0 1 -10.85 -8.57771 -204.819 - 73 1146.77 852 0 0 -16.7991 -9.58498 -205.85 - 73 3218.79 851 0 0 -17.1827 -9.65 -205.916 - 73 1919.29 850 0 0 -18.3479 -9.85 -206.121 - 73 2.42098 866 0 1 -6.6526 -8.09495 -204.45 - 73 179.295 867 0 1 -6.65 -8.09625 -204.457 - 73 284.984 858 0 0 -6.10646 -8.36913 -205.85 - 73 106.538 543 7 0 7.02829 -71.3769 3.75 - 73 29.6372 908 6 1 1.76465 31.7394 -24.4541 - 73 1.58045 862 0 1 -7.51673 -8.07744 -204.834 - 73 516.669 1040 6 0 16.5621 28.1393 -26.2286 - 73 310.964 458 0 0 8.3596 -88.2835 -206.037 -Number of digits in this event = 28 -Event: 74 -Number of tracker hits in this event = 22 - 74 172.612 900 5 1 0.116362 0.0928089 -54.45 - 74 127.616 900 5 0 0.121298 0.094671 -55.85 - 74 184.351 900 4 1 0.223089 0.141279 -84.45 - 74 493.172 900 4 0 0.224981 0.142444 -85.85 - 74 145.234 901 3 1 0.258569 0.151578 -114.45 - 74 127.254 900 3 0 0.263977 0.151816 -115.85 - 74 136.93 901 2 1 0.378782 0.159155 -144.45 - 74 155.738 900 2 0 0.378612 0.16272 -145.85 - 74 228.389 901 1 1 0.35307 0.240499 -174.45 - 74 124.168 900 1 0 0.346094 0.24595 -175.85 - 74 122.125 900 0 1 0.185835 0.352429 -204.45 - 74 139.419 901 0 0 0.178157 0.354443 -205.85 - 74 92.9335 995 1 0 13.8183 19.0872 -176.25 - 74 278.146 996 1 0 13.9725 19.25 -176.068 - 74 11.6497 997 1 0 14.3732 19.45 -175.878 - 74 46.6567 977 1 1 15.5406 19.6779 -174.85 - 74 83.6686 978 1 1 15.65 19.7128 -174.792 - 74 254.444 979 1 1 15.85 19.7799 -174.727 - 74 288.403 1005 1 0 16.4021 21.1119 -175.85 - 74 98.9718 1006 1 0 16.4725 21.25 -175.937 - 74 73.3673 988 1 1 17.75 20.8068 -174.85 - 74 52.0507 1695 7 1 159.219 -114.102 5.48184 -Number of digits in this event = 18 -Event: 75 +Event: 68 Number of tracker hits in this event = 10 - 75 120.161 899 4 1 -0.148932 0.290253 -84.45 - 75 116.335 901 4 0 -0.155333 0.314268 -85.85 - 75 254.659 898 3 1 -0.307582 0.79062 -114.45 - 75 162.563 903 3 0 -0.313548 0.810166 -115.85 - 75 156.634 897 2 1 -0.451052 1.21489 -144.45 - 75 147.405 905 2 0 -0.459666 1.23698 -145.85 - 75 125.672 897 1 1 -0.638654 1.65302 -174.45 - 75 142.475 908 1 0 -0.637056 1.67465 -175.85 - 75 143.84 897 0 1 -0.635219 2.12596 -204.45 - 75 136.566 910 0 0 -0.627317 2.15085 -205.85 -Number of digits in this event = 11 -Event: 76 -Number of tracker hits in this event = 10 - 76 176.858 899 4 1 -0.114693 -0.107994 -84.45 - 76 169.362 899 4 0 -0.128283 -0.102521 -85.85 - 76 154.822 897 2 1 -0.562403 0.173413 -144.45 - 76 168.403 900 2 0 -0.570156 0.185585 -145.85 - 76 276.498 896 1 1 -0.76087 0.434489 -174.45 - 76 134.577 901 1 0 -0.771867 0.44105 -175.85 - 76 136.553 895 0 1 -0.988845 0.587617 -204.45 - 76 112.529 902 0 0 -0.997269 0.591162 -205.85 - 76 195.542 900 4 1 0.05 -0.281889 -84.7028 - 76 193.677 901 4 1 0.25 -0.534378 -84.7738 -Number of digits in this event = 10 -Event: 77 + 68 166.004 899 4 1 -0.151398 -0.172753 -84.45 + 68 583.477 899 4 0 -0.155497 -0.175436 -85.85 + 68 111.497 899 3 1 -0.216325 -0.25196 -114.45 + 68 262.753 898 3 0 -0.215487 -0.25651 -115.85 + 68 170.893 899 2 1 -0.236654 -0.340136 -144.45 + 68 171.681 898 2 0 -0.2293 -0.345695 -145.85 + 68 120.826 899 1 1 -0.0618782 -0.450347 -174.45 + 68 105.12 897 1 0 -0.0549582 -0.452046 -175.85 + 68 509.74 900 0 1 0.085452 -0.490628 -204.45 + 68 141.888 897 0 0 0.0901205 -0.489801 -205.85 +Number of digits in this event = 9 +Event: 69 Number of tracker hits in this event = 12 - 77 107.526 900 5 1 0.105766 -0.124284 -54.45 - 77 118.123 899 5 0 0.11511 -0.122071 -55.85 - 77 128.457 901 4 1 0.317019 -0.0822952 -84.45 - 77 143.445 899 4 0 0.328182 -0.0889382 -85.85 - 77 205.458 902 3 1 0.555654 -0.248606 -114.45 - 77 117.619 898 3 0 0.570073 -0.255258 -115.85 - 77 122.368 904 2 1 0.859846 -0.392665 -144.45 - 77 188.311 898 2 0 0.880124 -0.400857 -145.85 - 77 142.882 906 1 1 1.28665 -0.576688 -174.45 - 77 187.956 897 1 0 1.30906 -0.586935 -175.85 - 77 154.691 908 0 1 1.76005 -0.782427 -204.45 - 77 120.664 896 0 0 1.77954 -0.789116 -205.85 + 69 140.836 900 5 1 0.119698 0.120269 -54.45 + 69 146.992 900 5 0 0.132104 0.125811 -55.85 + 69 131.615 901 4 1 0.384849 0.27417 -84.45 + 69 399.342 901 4 0 0.392275 0.280663 -85.85 + 69 216.526 902 3 1 0.538014 0.396569 -114.45 + 69 212.824 901 3 0 0.539276 0.405582 -115.85 + 69 154.533 902 2 1 0.569388 0.605124 -144.45 + 69 157.202 902 2 0 0.568578 0.614589 -145.85 + 69 135.222 902 1 1 0.553423 0.816122 -174.45 + 69 130.376 903 1 0 0.552572 0.841224 -175.85 + 69 160.962 902 0 1 0.523263 1.35796 -204.45 + 69 150.942 906 0 0 0.521733 1.3793 -205.85 +Number of digits in this event = 13 +Event: 70 +Number of tracker hits in this event = 4 + 70 166.209 898 4 1 -0.252128 -0.068849 -84.45 + 70 119.962 899 4 0 -0.261756 -0.0697242 -85.85 + 70 122.444 898 3 1 -0.425768 -0.073853 -114.45 + 70 120.836 899 3 0 -0.430958 -0.0725055 -115.85 +Number of digits in this event = 4 +Event: 71 +Number of tracker hits in this event = 4 + 71 123.147 900 1 1 0.0946136 0.730861 -174.45 + 71 183.696 903 1 0 0.095819 0.737653 -175.85 + 71 106.563 900 0 1 0.0896004 0.883789 -204.45 + 71 181.972 904 0 0 0.0803489 0.88664 -205.85 +Number of digits in this event = 4 +Event: 72 +Number of tracker hits in this event = 12 + 72 126.128 899 5 1 -0.058093 0.0571146 -54.45 + 72 151.845 900 5 0 -0.0610052 0.0586583 -55.85 + 72 209.936 899 4 1 -0.120836 0.0835592 -84.45 + 72 204.965 900 4 0 -0.125993 0.0896103 -85.85 + 72 116.942 899 3 1 -0.199616 0.230862 -114.45 + 72 156.57 900 3 0 -0.207691 0.241131 -115.85 + 72 138.065 898 2 1 -0.378745 0.444155 -144.45 + 72 150.04 902 2 0 -0.386826 0.453243 -145.85 + 72 166.55 897 1 1 -0.55113 0.645811 -174.45 + 72 125.541 903 1 0 -0.555358 0.658961 -175.85 + 72 119.626 896 0 1 -0.659173 0.924386 -204.45 + 72 173.522 904 0 0 -0.664235 0.933613 -205.85 +Number of digits in this event = 11 +Event: 73 +Number of tracker hits in this event = 20 + 73 574.377 899 4 1 -0.212263 -0.0615016 -84.45 + 73 151.982 899 4 0 -0.216863 -0.0713159 -85.85 + 73 136.613 898 3 1 -0.316965 -0.266423 -114.45 + 73 143.227 898 3 0 -0.325131 -0.278506 -115.85 + 73 142.884 897 2 1 -0.498916 -0.508918 -144.45 + 73 122.381 897 2 0 -0.503028 -0.517106 -145.85 + 73 153.266 897 1 1 -0.578205 -0.706034 -174.45 + 73 140.149 896 1 0 -0.583706 -0.722452 -175.85 + 73 109.6 896 0 1 -0.685516 -1.05246 -204.45 + 73 220.04 894 0 0 -0.690721 -1.06603 -205.85 + 73 106.154 1464 13 0 142.393 113.051 183.75 + 73 0.0457818 1465 13 0 142.515 113.15 184.149 + 73 202.875 1613 13 1 142.792 113.384 185.15 + 73 130.115 1496 14 0 147.134 119.44 213.75 + 73 76.7047 1635 14 1 147.318 119.724 215.15 + 73 49.5207 1636 14 1 147.35 119.775 215.404 + 73 121.821 1463 13 0 142.433 112.837 183.75 + 73 35.0896 1614 13 1 142.95 113.244 185.426 + 73 162.346 1500 14 0 149.715 120.167 213.75 + 73 110.95 1649 14 1 150.039 120.505 215.15 +Number of digits in this event = 17 +Event: 74 +Number of tracker hits in this event = 6 + 74 143.998 899 2 1 -0.0706701 0.207714 -144.45 + 74 132.61 900 2 0 -0.0663187 0.218668 -145.85 + 74 124.587 902 1 0 0.0509898 0.45191 -175.85 + 74 107.738 900 0 1 0.191502 0.635349 -204.45 + 74 60.8538 902 0 0 0.199399 0.648035 -205.85 + 74 51.5584 903 0 0 0.200574 0.65 -206.067 +Number of digits in this event = 4 +Event: 75 +Number of tracker hits in this event = 12 + 75 168.378 900 5 1 0.113904 -0.163663 -54.45 + 75 108.026 899 5 0 0.122456 -0.168958 -55.85 + 75 103.281 901 4 1 0.282125 -0.279581 -84.45 + 75 126.728 898 4 0 0.292451 -0.288355 -85.85 + 75 198.425 902 3 1 0.486552 -0.457483 -114.45 + 75 160.064 897 3 0 0.498544 -0.46094 -115.85 + 75 119.291 903 2 1 0.782448 -0.518597 -144.45 + 75 121.578 897 2 0 0.792492 -0.523116 -145.85 + 75 291.06 904 1 1 0.987319 -0.593297 -174.45 + 75 139.739 897 1 0 0.995626 -0.59458 -175.85 + 75 123.772 905 0 1 1.14795 -0.609516 -204.45 + 75 137.8 897 0 0 1.15982 -0.612089 -205.85 Number of digits in this event = 10 +Event: 76 +Number of tracker hits in this event = 9 + 76 122.038 898 4 1 -0.321248 0.155601 -84.45 + 76 128.648 900 4 0 -0.326842 0.155919 -85.85 + 76 87.6695 898 3 1 -0.44892 0.178206 -114.45 + 76 51.7403 897 3 1 -0.45 0.177257 -114.663 + 76 101.861 900 3 0 -0.455994 0.172665 -115.85 + 76 121.716 897 2 1 -0.58877 0.0739164 -144.45 + 76 187.693 900 2 0 -0.587791 0.0692425 -145.85 + 76 127.081 897 0 1 -0.531155 -0.139732 -204.45 + 76 119.068 899 0 0 -0.521783 -0.145437 -205.85 +Number of digits in this event = 6 +Event: 77 +Number of tracker hits in this event = 10 + 77 120.605 899 4 1 -0.0584777 -0.138544 -84.45 + 77 175.064 899 4 0 -0.0659332 -0.146507 -85.85 + 77 122.912 899 3 1 -0.230905 -0.284747 -114.45 + 77 174.287 898 3 0 -0.239499 -0.29344 -115.85 + 77 144.824 898 2 1 -0.414031 -0.4733 -144.45 + 77 143.889 897 2 0 -0.421816 -0.48022 -145.85 + 77 126.62 897 1 1 -0.583988 -0.6132 -174.45 + 77 162.609 897 1 0 -0.592734 -0.611087 -175.85 + 77 248.472 896 0 1 -0.773493 -0.563275 -204.45 + 77 136.607 897 0 0 -0.783826 -0.564476 -205.85 +Number of digits in this event = 11 Event: 78 Number of tracker hits in this event = 10 - 78 147.055 898 4 1 -0.287217 0.0667358 -84.45 - 78 136.692 900 4 0 -0.298198 0.0675023 -85.85 - 78 157.32 897 3 1 -0.511007 0.10851 -114.45 - 78 177.768 900 3 0 -0.520098 0.112051 -115.85 - 78 115.474 896 2 1 -0.718567 0.186169 -144.45 - 78 144.653 900 2 0 -0.72948 0.18709 -145.85 - 78 159.864 895 1 1 -0.947493 0.23155 -174.45 - 78 324.175 900 1 0 -0.96044 0.240032 -175.85 - 78 138.181 894 0 1 -1.23146 0.405729 -204.45 - 78 160.541 901 0 0 -1.23924 0.413715 -205.85 + 78 174.991 898 4 1 -0.253155 -0.0824201 -84.45 + 78 197.544 899 4 0 -0.260602 -0.0812575 -85.85 + 78 155.303 898 3 1 -0.413828 -0.0648138 -114.45 + 78 118.206 899 3 0 -0.426373 -0.0662021 -115.85 + 78 124.078 896 2 1 -0.697765 -0.102489 -144.45 + 78 147.59 899 2 0 -0.711881 -0.105368 -145.85 + 78 198.182 895 1 1 -1.01712 -0.149274 -174.45 + 78 137.561 899 1 0 -1.02557 -0.160103 -175.85 + 78 140.846 894 0 1 -1.20186 -0.392311 -204.45 + 78 220.507 898 0 0 -1.20932 -0.401661 -205.85 Number of digits in this event = 10 Event: 79 -Number of tracker hits in this event = 12 - 79 142.025 900 5 1 0.0848872 0.0735256 -54.45 - 79 170.184 900 5 0 0.091076 0.0748399 -55.85 - 79 123.422 900 4 1 0.23057 0.174541 -84.45 - 79 155.989 900 4 0 0.242385 0.182793 -85.85 - 79 201.061 902 3 1 0.491646 0.351174 -114.45 - 79 111.772 901 3 0 0.49991 0.357024 -115.85 - 79 127.072 903 2 1 0.670603 0.453893 -144.45 - 79 132.687 902 2 0 0.675639 0.460959 -145.85 - 79 114.803 903 1 1 0.772583 0.598341 -174.45 - 79 120.163 902 1 0 0.77594 0.605448 -175.85 - 79 132.11 904 0 1 0.852645 0.734119 -204.45 - 79 122.01 903 0 0 0.855009 0.737363 -205.85 -Number of digits in this event = 11 -Event: 80 Number of tracker hits in this event = 10 - 80 199.211 900 2 1 0.109453 -0.457338 -144.45 - 80 155.112 897 2 0 0.110165 -0.467968 -145.85 - 80 207.011 900 1 1 0.116657 -0.696336 -174.45 - 80 277.407 896 1 0 0.122822 -0.708475 -175.85 - 80 181.847 901 0 1 0.25554 -0.961564 -204.45 - 80 146.14 895 0 0 0.26193 -0.972932 -205.85 - 80 178.167 895 1 0 1.22123 -0.85 -176.127 - 80 0.97563 908 1 1 1.8484 -1.31265 -174.85 - 80 124.789 909 1 1 1.85 -1.31385 -174.846 - 80 187.321 910 1 1 2.05 -1.47034 -174.734 -Number of digits in this event = 10 + 79 148.112 899 4 1 -0.0897731 0.381085 -84.45 + 79 134.787 901 4 0 -0.0992855 0.396684 -85.85 + 79 191.076 898 3 1 -0.278835 0.72963 -114.45 + 79 208.374 903 3 0 -0.293677 0.749083 -115.85 + 79 130.064 897 2 1 -0.545985 1.12496 -144.45 + 79 107.791 905 2 0 -0.554434 1.14431 -145.85 + 79 118.499 896 1 1 -0.70316 1.53887 -174.45 + 79 139.894 907 1 0 -0.705766 1.56193 -175.85 + 79 106.218 896 0 1 -0.745602 2.06391 -204.45 + 79 116.522 910 0 0 -0.753223 2.09237 -205.85 +Number of digits in this event = 7 +Event: 80 +Number of tracker hits in this event = 6 + 80 136.189 899 2 1 -0.123984 0.262244 -144.45 + 80 125.096 901 2 0 -0.131615 0.275791 -145.85 + 80 145.242 898 1 1 -0.310139 0.56387 -174.45 + 80 146.647 902 1 0 -0.322926 0.578024 -175.85 + 80 152.851 897 0 1 -0.616437 0.889344 -204.45 + 80 121.109 904 0 0 -0.627283 0.907673 -205.85 +Number of digits in this event = 7 Event: 81 -Number of tracker hits in this event = 12 - 81 150.056 899 5 1 -0.0770275 -0.0632226 -54.45 - 81 118.207 899 5 0 -0.0770508 -0.0635201 -55.85 - 81 122.418 899 4 1 -0.100685 -0.0771183 -84.45 - 81 168.991 899 4 0 -0.0910918 -0.0926964 -85.85 - 81 138.576 900 3 1 0.111979 -0.392675 -114.45 - 81 124.048 898 3 0 0.121463 -0.407073 -115.85 - 81 174.291 901 2 1 0.297254 -0.688398 -144.45 - 81 150.788 896 2 0 0.307606 -0.704226 -145.85 - 81 122.924 902 1 1 0.499385 -1.02554 -174.45 - 81 106.524 894 1 0 0.508964 -1.05943 -175.85 - 81 170.922 903 0 1 0.709067 -1.75654 -204.45 - 81 113.457 891 0 0 0.7218 -1.79401 -205.85 -Number of digits in this event = 10 +Number of tracker hits in this event = 9 + 81 147.975 899 4 1 -0.05661 0.0794155 -84.45 + 81 132.729 900 4 0 -0.0630909 0.0790396 -85.85 + 81 265.53 899 3 1 -0.186225 0.0809984 -114.45 + 81 167.526 900 3 0 -0.192262 0.0790674 -115.85 + 81 120.07 900 2 0 -0.300897 0.0518646 -145.85 + 81 139.329 898 1 1 -0.304358 0.115977 -174.45 + 81 155.419 900 1 0 -0.304582 0.122983 -175.85 + 81 126.089 898 0 1 -0.315807 0.286779 -204.45 + 81 147.374 901 0 0 -0.309987 0.280907 -205.85 +Number of digits in this event = 12 Event: 82 -Number of tracker hits in this event = 11 - 82 132.302 899 5 1 -0.152722 -0.0714545 -54.45 - 82 134.956 899 5 0 -0.162325 -0.0737103 -55.85 - 82 101.836 898 4 1 -0.285687 -0.113507 -84.45 - 82 162.594 899 4 0 -0.287162 -0.111465 -85.85 - 82 126.494 898 3 1 -0.321851 -0.0746924 -114.45 - 82 167.076 899 3 0 -0.315989 -0.0732416 -115.85 - 82 129.671 899 2 1 -0.205495 -0.0607588 -144.45 - 82 141.737 899 2 0 -0.197672 -0.0635583 -145.85 - 82 131.828 900 0 1 0.215803 -0.22392 -204.45 - 82 106.946 899 0 0 0.226518 -0.228384 -205.85 - 82 422.843 899 1 1 -0.05 -0.141838 -174.613 -Number of digits in this event = 10 +Number of tracker hits in this event = 12 + 82 115.293 901 5 1 0.283256 -0.0877255 -54.45 + 82 140.01 899 5 0 0.29487 -0.0880499 -55.85 + 82 123.582 902 4 1 0.528796 -0.0943523 -84.45 + 82 123.971 899 4 0 0.540753 -0.0959084 -85.85 + 82 118.888 903 3 1 0.779371 -0.113926 -114.45 + 82 144.027 899 3 0 0.786003 -0.117038 -115.85 + 82 163.283 904 2 1 0.925798 -0.180776 -144.45 + 82 155.729 899 2 0 0.928764 -0.190223 -145.85 + 82 149.841 904 1 1 0.978475 -0.389353 -174.45 + 82 152.28 898 1 0 0.984572 -0.410309 -175.85 + 82 122.712 905 0 1 1.12097 -0.851237 -204.45 + 82 122.322 895 0 0 1.12943 -0.867231 -205.85 +Number of digits in this event = 11 Event: 83 -Number of tracker hits in this event = 13 - 83 131.67 900 5 1 0.0907684 0.0972865 -54.45 - 83 158.679 900 5 0 0.096958 0.098652 -55.85 - 83 120.637 900 4 1 0.220615 0.132244 -84.45 - 83 148.519 900 4 0 0.226802 0.137142 -85.85 - 83 388.417 901 3 1 0.361842 0.242062 -114.45 - 83 231.263 900 3 0 0.36975 0.246834 -115.85 - 83 142.867 902 2 1 0.517432 0.354333 -144.45 - 83 131.265 901 2 0 0.52929 0.358976 -145.85 - 83 116.765 903 1 1 0.75997 0.440185 -174.45 - 83 117.797 901 1 0 0.769602 0.447901 -175.85 - 83 4.34499 902 1 0 0.772257 0.45 -176.24 - 83 144.931 904 0 1 0.963066 0.584682 -204.45 - 83 143.536 902 0 0 0.966704 0.594191 -205.85 +Number of tracker hits in this event = 9 + 83 216.182 899 4 1 -0.140642 0.142486 -84.45 + 83 157.93 900 4 0 -0.144525 0.142032 -85.85 + 83 145.401 899 3 1 -0.219318 0.129635 -114.45 + 83 168.117 900 3 0 -0.225939 0.123998 -115.85 + 83 138.474 896 1 1 -0.694159 -0.237838 -174.45 + 83 125.82 899 1 0 -0.707609 -0.246593 -175.85 + 83 147.12 895 0 1 -0.987546 -0.428172 -204.45 + 83 130.914 898 0 0 -0.999615 -0.435261 -205.85 + 83 17.6166 1268 1 1 73.65 -77.7334 -174.728 Number of digits in this event = 11 Event: 84 Number of tracker hits in this event = 10 - 84 123.116 900 2 1 0.116096 -0.297792 -144.45 - 84 114.467 898 2 0 0.115916 -0.296937 -145.85 - 84 135.22 900 1 1 0.119054 -0.266341 -174.45 - 84 375.542 898 1 0 0.120068 -0.261364 -175.85 - 84 121.434 900 0 1 0.142066 -0.168034 -204.45 - 84 132.776 899 0 0 0.140247 -0.166904 -205.85 - 84 67.8676 661 12 0 -107.717 -47.6959 153.926 - 84 4.07084 662 12 0 -107.796 -47.65 154.134 - 84 122.023 360 12 1 -108.022 -47.2535 155.15 - 84 354.295 533 2 1 -73.3954 -168.104 -144.58 -Number of digits in this event = 10 + 84 110.285 900 4 1 0.205345 -0.118512 -84.45 + 84 136.606 899 4 0 0.210693 -0.12198 -85.85 + 84 270.69 901 3 1 0.322386 -0.193531 -114.45 + 84 121.042 899 3 0 0.316699 -0.202085 -115.85 + 84 130.896 900 2 1 0.198915 -0.38192 -144.45 + 84 128.54 898 2 0 0.20129 -0.392723 -145.85 + 84 104.928 900 1 1 0.236791 -0.623775 -174.45 + 84 204.684 897 1 0 0.240433 -0.639395 -175.85 + 84 129.746 901 0 1 0.343431 -0.948606 -204.45 + 84 273.761 895 0 0 0.348629 -0.961007 -205.85 +Number of digits in this event = 9 Event: 85 -Number of tracker hits in this event = 15 - 85 178.811 900 5 1 0.105748 0.0632426 -54.45 - 85 224.086 900 5 0 0.112769 0.0640711 -55.85 - 85 141.09 900 4 1 0.246121 0.0708684 -84.45 - 85 183.818 900 4 0 0.250641 0.0745868 -85.85 - 85 123.183 901 3 1 0.350395 0.126031 -114.45 - 85 195.439 900 3 0 0.359023 0.131233 -115.85 - 85 131.5 902 2 1 0.539114 0.242567 -144.45 - 85 166.536 900 2 0 0.546253 0.245087 -145.85 - 85 195.405 903 1 1 0.693634 0.29251 -174.45 - 85 277.488 901 1 0 0.69673 0.293897 -175.85 - 85 114.055 903 0 1 0.738113 0.32172 -204.45 - 85 125.661 901 0 0 0.73901 0.325004 -205.85 - 85 7.65253 900 6 1 0.05 -0.15703 -24.8355 - 85 42.0405 894 6 0 1.67182 -1.19378 -25.85 - 85 356.639 893 6 0 1.73843 -1.25 -25.8902 -Number of digits in this event = 14 -Event: 86 Number of tracker hits in this event = 10 - 86 130.072 900 4 1 0.238046 -0.28618 -84.45 - 86 193.728 898 4 0 0.243137 -0.292287 -85.85 - 86 159.073 901 3 1 0.337218 -0.411436 -114.45 - 86 142.689 898 3 0 0.34155 -0.416058 -115.85 - 86 127.839 901 2 1 0.432998 -0.508332 -144.45 - 86 159.545 897 2 0 0.432591 -0.514278 -145.85 - 86 137.628 901 1 1 0.421839 -0.640813 -174.45 - 86 165.227 897 1 0 0.421081 -0.64606 -175.85 - 86 228.86 901 0 1 0.386614 -0.798502 -204.45 - 86 107.24 896 0 0 0.382227 -0.801859 -205.85 -Number of digits in this event = 10 -Event: 87 -Number of tracker hits in this event = 33 - 87 122.405 900 4 1 0.0667157 -0.17038 -84.45 - 87 156.769 899 4 0 0.0704256 -0.180208 -85.85 - 87 133.565 900 3 1 0.144322 -0.356532 -114.45 - 87 137.329 898 3 0 0.153479 -0.37312 -115.85 - 87 123.335 901 2 1 0.332988 -0.714291 -144.45 - 87 139.602 896 2 0 0.346348 -0.726267 -145.85 - 87 124.17 902 1 1 0.622505 -0.971709 -174.45 - 87 145.993 895 1 0 0.635257 -0.980886 -175.85 - 87 151.57 904 0 1 0.909563 -1.16951 -204.45 - 87 130.099 894 0 0 0.925286 -1.18481 -205.85 - 87 68.8852 1010 12 1 22.1123 -18.1298 155.15 - 87 5.37611 1334 6 0 34.6562 86.8655 -26.25 - 87 57.784 867 0 0 -63.7121 -6.65 -206.047 - 87 67.705 974 0 0 115.92 14.9325 -206.25 - 87 18.5774 975 0 0 116.043 15.05 -206.217 - 87 156.35 234 2 0 164.394 -133.324 -146.157 - 87 64.9376 235 2 0 164.894 -133.15 -146.009 - 87 219.855 1727 2 1 165.651 -132.882 -144.85 - 87 81.8048 1728 2 1 165.75 -132.832 -144.719 - 87 118.562 1726 2 1 165.55 -132.682 -144.627 - 87 234.855 1725 2 1 165.35 -132.647 -144.539 - 87 12010.9 766 0 1 -26.8188 -69.7575 -204.649 - 87 2030.22 765 0 1 -26.85 -69.7608 -204.641 - 87 102.468 737 1 0 -48.6785 -32.6369 -176.25 - 87 99.7562 738 1 0 -48.5948 -32.45 -176.078 - 87 84.1862 664 1 1 -47.1913 -30.8618 -174.85 - 87 63.2675 665 1 1 -47.05 -30.7341 -174.792 - 87 90.6507 666 1 1 -46.85 -30.5921 -174.79 - 87 149.741 667 1 1 -46.65 -30.4193 -174.785 - 87 339.194 668 1 1 -46.45 -30.1522 -174.737 - 87 257.471 756 1 0 -48.2107 -28.8085 -175.85 - 87 101.809 577 1 0 -66.3886 -64.5675 -176.25 - 87 230.847 578 1 0 -66.4337 -64.45 -176.051 -Number of digits in this event = 22 -Event: 88 + 85 126.74 902 3 1 0.540655 -0.111737 -114.45 + 85 134.809 899 3 0 0.554912 -0.117625 -115.85 + 85 281.839 904 2 1 0.864033 -0.233723 -144.45 + 85 172.834 899 2 0 0.875505 -0.242126 -145.85 + 85 132.093 905 1 1 1.12387 -0.41103 -174.45 + 85 216.205 898 1 0 1.13425 -0.420997 -175.85 + 85 142.92 906 0 1 1.36389 -0.622047 -204.45 + 85 194.273 897 0 0 1.37182 -0.633172 -205.85 + 85 10.7829 701 0 1 -39.6737 74.0258 -204.783 + 85 11.4365 88 6 1 -162.35 -22.9922 -24.7321 +Number of digits in this event = 11 +Event: 86 Number of tracker hits in this event = 12 - 88 177.828 900 5 1 0.144118 0.127536 -54.45 - 88 148.583 900 5 0 0.149493 0.132342 -55.85 - 88 361.829 900 4 1 0.236674 0.229589 -84.45 - 88 171.583 900 4 0 0.243619 0.234247 -85.85 - 88 117.035 901 3 1 0.394075 0.319466 -114.45 - 88 159.651 901 3 0 0.403712 0.321446 -115.85 - 88 130.363 902 2 1 0.595097 0.374168 -144.45 - 88 129.517 901 2 0 0.606872 0.371267 -145.85 - 88 132.365 903 1 1 0.839289 0.297153 -174.45 - 88 160.638 901 1 0 0.847941 0.289075 -175.85 - 88 124.431 904 0 1 1.03424 0.135237 -204.45 - 88 206.445 900 0 0 1.04458 0.128506 -205.85 + 86 143.277 897 5 1 -0.52833 0.131865 -54.45 + 86 111.508 900 5 0 -0.549115 0.135977 -55.85 + 86 143.43 895 4 1 -0.970229 0.198616 -84.45 + 86 241.131 900 4 0 -0.991494 0.196761 -85.85 + 86 166.826 893 3 1 -1.41757 0.154712 -114.45 + 86 125.847 900 3 0 -1.44341 0.157791 -115.85 + 86 122.464 890 2 1 -1.91774 0.217523 -144.45 + 86 145.102 900 2 0 -1.93758 0.220258 -145.85 + 86 140.267 888 1 1 -2.34331 0.274996 -174.45 + 86 121.826 901 1 0 -2.36391 0.282817 -175.85 + 86 169.677 886 0 1 -2.80495 0.471263 -204.45 + 86 109.624 902 0 0 -2.82123 0.484684 -205.85 +Number of digits in this event = 11 +Event: 87 +Number of tracker hits in this event = 10 + 87 245.386 901 4 1 0.261438 -0.0980112 -84.45 + 87 146.073 899 4 0 0.270176 -0.100447 -85.85 + 87 188.753 902 3 1 0.454079 -0.144967 -114.45 + 87 291.75 899 3 0 0.460664 -0.150826 -115.85 + 87 131.626 902 2 1 0.585951 -0.260561 -144.45 + 87 123.732 898 2 0 0.592635 -0.269965 -145.85 + 87 150.11 903 1 1 0.743549 -0.46361 -174.45 + 87 180.281 897 1 0 0.752328 -0.468297 -175.85 + 87 126.093 904 0 1 0.934706 -0.56284 -204.45 + 87 186.619 897 0 0 0.93823 -0.567206 -205.85 +Number of digits in this event = 11 +Event: 88 +Number of tracker hits in this event = 13 + 88 169.49 900 5 1 0.128862 -0.113755 -54.45 + 88 149.642 899 5 0 0.141467 -0.129675 -55.85 + 88 185.613 901 4 1 0.38202 -0.471342 -84.45 + 88 121.821 897 4 0 0.39114 -0.490286 -85.85 + 88 308.526 902 3 1 0.590672 -0.860936 -114.45 + 88 147.607 895 3 0 0.601701 -0.876413 -115.85 + 88 141.37 903 2 1 0.834179 -1.19041 -144.45 + 88 185.845 894 2 0 0.853716 -1.20125 -145.85 + 88 234.881 906 1 1 1.25921 -1.42989 -174.45 + 88 204.235 893 1 0 1.28924 -1.44615 -175.85 + 88 34.0265 892 1 0 1.29625 -1.45 -176.174 + 88 124.754 909 0 1 1.88394 -1.78408 -204.45 + 88 155.407 891 0 0 1.91698 -1.79801 -205.85 Number of digits in this event = 13 Event: 89 -Number of tracker hits in this event = 38 - 89 193.049 899 5 1 -0.0910481 -0.0662661 -54.45 - 89 128.079 899 5 0 -0.102598 -0.0695363 -55.85 - 89 122.36 898 4 1 -0.345324 -0.127967 -84.45 - 89 131.682 899 4 0 -0.356117 -0.125637 -85.85 - 89 258.611 897 3 1 -0.555785 -0.0735933 -114.45 - 89 162.122 899 3 0 -0.568271 -0.0738404 -115.85 - 89 122.821 896 2 1 -0.795447 -0.0669045 -144.45 - 89 156.188 899 2 0 -0.803966 -0.0680198 -145.85 - 89 192.248 895 1 1 -0.976189 -0.106573 -174.45 - 89 126.124 899 1 0 -0.98209 -0.107847 -175.85 - 89 205.354 894 0 1 -1.09705 -0.131514 -204.45 - 89 172.246 899 0 0 -1.10148 -0.131389 -205.85 - 89 10.7072 1110 1 1 42.2004 -34.3431 -174.45 - 89 10.5044 1043 1 1 28.85 -34.5063 -174.747 - 89 62.8822 906 1 0 -0.679317 1.28255 -175.85 - 89 134.408 907 1 0 -0.668389 1.45 -176.002 - 89 69.4884 908 1 0 -0.789303 1.65 -176.061 - 89 64.7174 909 1 0 -0.895575 1.85 -176.156 - 89 37.9006 1295 1 0 16.2354 79.0938 -176.25 - 89 373.417 1294 1 0 16.323 79.05 -176.165 - 89 81.2859 1293 1 0 16.5083 78.85 -175.937 - 89 17.5307 1299 1 1 79.9893 80.2057 -174.85 - 89 234.137 1315 1 0 89.7551 83.1244 -175.85 - 89 188.455 1314 1 0 89.9411 83.05 -175.975 - 89 186.372 1704 4 0 54.4456 161.108 -86.25 - 89 136.015 1705 4 0 54.6324 161.15 -86.109 - 89 2.65346 1181 4 1 56.4362 161.529 -84.85 - 89 82.2122 1182 4 1 56.45 161.531 -84.8409 - 89 80.1367 1183 4 1 56.65 161.55 -84.6833 - 89 31.578 1184 4 1 56.85 161.542 -84.5122 - 89 43.3935 1707 4 0 37.1616 161.708 -86.25 - 89 93.0773 1708 4 0 37.2557 161.75 -86.1167 - 89 22.1045 1090 4 1 38.2027 161.696 -84.85 - 89 95.0068 1091 4 1 38.25 161.688 -84.7836 - 89 28.6415 1092 4 1 38.45 161.684 -84.5307 - 89 74.1011 1094 4 1 39.009 161.538 -84.45 - 89 90.7591 1093 4 1 38.85 161.487 -84.6166 - 89 82.661 1703 4 0 37.8325 160.95 -86.0777 -Number of digits in this event = 21 -Event: 90 -Number of tracker hits in this event = 6 - 90 142.285 901 2 1 0.44226 0.10021 -144.45 - 90 127.691 900 2 0 0.451123 0.103444 -145.85 - 90 121.682 903 1 1 0.656049 0.168665 -174.45 - 90 131.753 900 1 0 0.666423 0.171024 -175.85 - 90 143.411 904 0 1 0.867312 0.218437 -204.45 - 90 143.192 900 0 0 0.88398 0.222831 -205.85 -Number of digits in this event = 7 -Event: 91 -Number of tracker hits in this event = 6 - 91 124.211 900 4 1 0.0577675 0.10504 -84.45 - 91 143.353 900 4 0 0.0563213 0.110048 -85.85 - 91 142.527 899 1 1 -0.102619 0.464497 -174.45 - 91 127.839 902 1 0 -0.105196 0.467247 -175.85 - 91 137.29 899 0 1 -0.15128 0.535127 -204.45 - 91 141.561 902 0 0 -0.152097 0.543088 -205.85 -Number of digits in this event = 7 -Event: 92 -Number of tracker hits in this event = 14 - 92 142.102 899 4 1 -0.180601 0.0683592 -84.45 - 92 196.231 900 4 0 -0.185308 0.0758724 -85.85 - 92 133.363 898 3 1 -0.264272 0.223051 -114.45 - 92 131.135 900 3 0 -0.272372 0.237513 -115.85 - 92 111.664 897 2 1 -0.460356 0.519589 -144.45 - 92 124.922 902 2 0 -0.47098 0.533396 -145.85 - 92 144.091 896 1 1 -0.676204 0.806589 -174.45 - 92 196.198 903 1 0 -0.680929 0.823443 -175.85 - 92 111.309 896 0 1 -0.761704 1.15422 -204.45 - 92 131.408 905 0 0 -0.769755 1.16961 -205.85 - 92 39.082 604 1 0 -122.617 -59.2044 -176.25 - 92 101.788 901 3 0 -0.271068 0.25 -115.89 - 92 125.279 902 3 0 -0.305246 0.45 -116.123 - 92 73.9282 1431 0 0 35.4243 106.472 -206.235 -Number of digits in this event = 12 -Event: 93 -Number of tracker hits in this event = 13 - 93 220.222 902 5 1 0.474095 0.468623 -54.45 - 93 167.823 902 5 0 0.498015 0.491974 -55.85 - 93 127.056 904 4 1 0.967212 0.966251 -84.45 - 93 118.629 904 4 0 0.988788 0.985795 -85.85 - 93 120.165 906 3 1 1.43529 1.39474 -114.45 - 93 134.157 906 3 0 1.45725 1.41811 -115.85 - 93 127.302 909 2 1 1.91046 1.91913 -144.45 - 93 147.422 909 2 0 1.93914 1.95187 -145.85 - 93 132.788 912 1 1 2.52688 2.61461 -174.45 - 93 182.989 913 1 0 2.55855 2.65032 -175.85 - 93 267.674 915 0 1 3.20609 3.39496 -204.45 - 93 99.5443 916 0 0 3.23196 3.43674 -205.85 - 93 15.6475 901 5 0 0.536831 0.45 -56.2006 +Number of tracker hits in this event = 12 + 89 211.273 899 5 1 -0.113862 -0.107453 -54.45 + 89 128.763 899 5 0 -0.11887 -0.115979 -55.85 + 89 224.175 899 4 1 -0.237177 -0.283207 -84.45 + 89 186.605 898 4 0 -0.241129 -0.293615 -85.85 + 89 152.104 898 3 1 -0.326406 -0.479187 -114.45 + 89 118.026 897 3 0 -0.329153 -0.495188 -115.85 + 89 123.058 898 2 1 -0.372495 -0.827547 -144.45 + 89 135.617 896 2 0 -0.381182 -0.840206 -145.85 + 89 136.126 897 1 1 -0.555627 -1.12312 -174.45 + 89 120.005 894 1 0 -0.562753 -1.14094 -175.85 + 89 108.429 896 0 1 -0.707787 -1.48861 -204.45 + 89 165.68 892 0 0 -0.716868 -1.50064 -205.85 Number of digits in this event = 11 -Event: 94 -Number of tracker hits in this event = 16 - 94 142.783 899 3 1 -0.244382 0.0725077 -114.45 - 94 123.159 900 3 0 -0.254515 0.0778158 -115.85 - 94 114.744 897 2 1 -0.482632 0.179721 -144.45 - 94 122.579 900 2 0 -0.495746 0.182053 -145.85 - 94 162.621 896 1 1 -0.755186 0.253385 -174.45 - 94 117.095 901 1 0 -0.767239 0.256848 -175.85 - 94 158.43 895 0 1 -1.02135 0.321623 -204.45 - 94 132.024 901 0 0 -1.0339 0.325613 -205.85 - 94 73.7471 905 0 0 -0.597167 1.11392 -205.85 - 94 54.5064 906 0 0 -0.465736 1.25 -205.979 - 94 139.619 899 0 1 -0.106799 1.48828 -204.85 - 94 80.9822 898 0 1 -0.25 1.62575 -204.614 - 94 83.0095 897 0 1 -0.45 1.52151 -204.577 - 94 74.8275 896 0 1 -0.65 1.42902 -204.675 - 94 15.847 910 0 0 -0.794225 2.22616 -205.85 - 94 249.152 911 0 0 -0.794686 2.25 -205.892 -Number of digits in this event = 9 -Event: 95 -Number of tracker hits in this event = 4 - 95 118.743 904 1 1 0.883625 -0.114164 -174.45 - 95 161.225 899 1 0 0.894968 -0.119293 -175.85 - 95 131.935 905 0 1 1.11136 -0.227593 -204.45 - 95 126.039 899 0 0 1.11344 -0.230935 -205.85 -Number of digits in this event = 4 -Event: 96 -Number of tracker hits in this event = 8 - 96 218.61 899 3 1 -0.123681 0.138245 -114.45 - 96 117.963 900 3 0 -0.125336 0.143106 -115.85 - 96 121.414 899 2 1 -0.145669 0.234738 -144.45 - 96 209.867 900 2 0 -0.145884 0.238677 -145.85 - 96 114.912 899 1 1 -0.126875 0.333254 -174.45 - 96 129.307 901 1 0 -0.129046 0.33856 -175.85 - 96 131.117 899 0 1 -0.176754 0.431542 -204.45 - 96 120.59 901 0 0 -0.182084 0.431673 -205.85 -Number of digits in this event = 7 -Event: 97 -Number of tracker hits in this event = 9 - 97 255.662 900 2 1 0.0681739 0.23469 -144.45 - 97 126.652 900 2 0 0.0693624 0.236585 -145.85 - 97 134.361 900 1 1 0.0987828 0.278896 -174.45 - 97 127.626 901 1 0 0.0977739 0.279762 -175.85 - 97 160.556 900 0 1 0.0788579 0.3018 -204.45 - 97 120.303 901 0 0 0.0789553 0.297498 -205.85 - 97 791.962 1416 1 1 103.45 -40.2105 -174.652 - 97 163.982 770 3 1 -25.9543 141.801 -114.661 - 97 25.148 1766 5 1 173.484 117.009 -54.45 +Event: 90 +Number of tracker hits in this event = 12 + 90 135.806 900 5 1 0.103671 0.373138 -54.45 + 90 140.334 901 5 0 0.106903 0.390626 -55.85 + 90 131.886 900 4 1 0.180441 0.746493 -84.45 + 90 164.329 903 4 0 0.181862 0.763802 -85.85 + 90 131.461 900 3 1 0.201291 1.18848 -114.45 + 90 113.873 905 3 0 0.199311 1.2114 -115.85 + 90 144.992 900 2 1 0.142041 1.67856 -144.45 + 90 294.583 908 2 0 0.139546 1.70663 -145.85 + 90 312.441 900 1 1 0.123977 2.27905 -174.45 + 90 155.611 911 1 0 0.126379 2.30673 -175.85 + 90 147.909 900 0 1 0.1558 2.86663 -204.45 + 90 155.24 914 0 0 0.148103 2.893 -205.85 Number of digits in this event = 12 -Event: 98 +Event: 91 +Number of tracker hits in this event = 12 + 91 128.476 900 4 1 0.13129 0.0539456 -84.45 + 91 147.994 900 4 0 0.134462 0.0602164 -85.85 + 91 117.45 900 3 1 0.197866 0.1799 -114.45 + 91 121.76 900 3 0 0.204104 0.185044 -115.85 + 91 135.083 901 2 1 0.329019 0.306529 -144.45 + 91 125.877 901 2 0 0.337016 0.315346 -145.85 + 91 141.841 902 1 1 0.502506 0.482499 -174.45 + 91 140.457 902 1 0 0.509695 0.494827 -175.85 + 91 267.39 903 0 1 0.651018 0.750581 -204.45 + 91 145.199 903 0 0 0.655109 0.763261 -205.85 + 91 83.0247 898 0 0 0.876327 -0.252396 -205.85 + 91 38.4354 897 0 0 0.917392 -0.45 -206.126 +Number of digits in this event = 10 +Event: 92 +Number of tracker hits in this event = 11 + 92 135.586 898 3 1 -0.425469 -0.152326 -114.45 + 92 161.274 899 3 0 -0.433953 -0.156893 -115.85 + 92 146.907 897 2 1 -0.599452 -0.240586 -144.45 + 92 140.172 899 2 0 -0.601137 -0.24473 -145.85 + 92 136.744 897 1 1 -0.631584 -0.326269 -174.45 + 92 160.142 898 1 0 -0.631368 -0.327502 -175.85 + 92 139.484 897 0 1 -0.604907 -0.348092 -204.45 + 92 144.342 898 0 0 -0.606487 -0.354253 -205.85 + 92 120.388 897 1 0 -2.20946 -0.45 -175.874 + 92 78.8673 896 1 0 -2.19405 -0.65 -176.078 + 92 360.221 895 1 0 -2.21732 -0.85 -176.149 +Number of digits in this event = 11 +Event: 93 +Number of tracker hits in this event = 31 + 93 98.5616 900 5 0 -0.0521006 0.0547114 -55.85 + 93 5791.04 899 4 1 -0.115697 0.056076 -84.45 + 93 8442.73 900 4 1 0.05 0.10326 -84.4981 + 93 755.779 903 4 0 -0.288132 0.752241 -85.85 + 93 917.493 904 4 0 -0.306927 0.85 -86.0417 + 93 1901.84 884 3 1 -3.07182 14.9526 -114.45 + 93 697.064 885 3 1 -3.05 15.1424 -114.75 + 93 1876.64 979 3 0 -2.97505 15.8806 -115.85 + 93 1213.13 980 3 0 -2.95826 16.05 -116.102 + 93 232.434 900 4 0 -0.211451 0.0810372 -85.85 + 93 86.293 892 3 1 -1.63793 0.742011 -114.45 + 93 174.565 891 3 1 -1.65 0.746558 -114.641 + 93 280.364 903 3 0 -1.72732 0.774974 -115.85 + 93 193.133 882 2 1 -3.5854 1.4731 -144.45 + 93 181.83 907 2 0 -3.67898 1.52217 -145.85 + 93 28.0519 872 1 1 -5.64597 2.49954 -174.45 + 93 145.351 871 1 1 -5.65 2.50183 -174.507 + 93 221.388 912 1 0 -5.74446 2.5551 -175.85 + 93 166.467 861 0 1 -7.76393 3.72208 -204.45 + 93 193.967 918 0 0 -7.84904 3.79514 -205.85 + 93 21.0279 787 0 1 -22.4555 -135.134 -204.45 + 93 1.46973 981 10 1 16.2758 -51.6967 95.55 + 93 20.6224 885 4 1 -2.85 0.38245 -84.7559 + 93 46.3004 1049 3 0 -5.11975 29.85 -115.978 + 93 58.3686 889 4 1 -2.13868 -0.639987 -84.85 + 93 348.385 888 4 1 -2.25 -0.639042 -84.7507 + 93 187.197 1504 5 0 29.8861 120.969 -56.0342 + 93 2.66041 1505 5 0 30.0101 121.15 -56.2492 + 93 41.7149 1104 5 0 75.8692 41.0278 -56.0424 + 93 4895.08 976 4 1 15.2665 30.175 -84.4764 + 93 971.259 977 4 1 15.45 30.2755 -84.586 +Number of digits in this event = 25 +Event: 94 Number of tracker hits in this event = 6 - 98 147.691 899 4 1 -0.0754474 -0.201113 -84.45 - 98 133.275 899 4 0 -0.0736921 -0.207217 -85.85 - 98 125.061 899 2 1 -0.0533619 -0.415414 -144.45 - 98 167.853 898 2 0 -0.0519886 -0.423362 -145.85 - 98 187.437 899 0 1 -0.0986938 -0.884596 -204.45 - 98 134.591 895 0 0 -0.10163 -0.894684 -205.85 -Number of digits in this event = 7 + 94 117.922 900 2 1 0.0616233 -0.70856 -144.45 + 94 242.731 896 2 0 0.0611258 -0.718241 -145.85 + 94 113.593 900 1 1 0.0507513 -0.906705 -174.45 + 94 120.665 895 1 0 0.0539932 -0.908144 -175.85 + 94 143.403 900 0 1 0.123237 -0.934162 -204.45 + 94 213.1 895 0 0 0.126798 -0.934212 -205.85 +Number of digits in this event = 5 +Event: 95 +Number of tracker hits in this event = 16 + 95 147.34 899 4 1 -0.148171 0.131448 -84.45 + 95 125.693 900 4 0 -0.157388 0.133219 -85.85 + 95 138.089 898 3 1 -0.363551 0.161386 -114.45 + 95 139.841 900 3 0 -0.376966 0.164659 -115.85 + 95 190.349 896 2 1 -0.657765 0.209908 -144.45 + 95 141.938 900 2 0 -0.67047 0.207955 -145.85 + 95 158.094 895 1 1 -0.910389 0.158191 -174.45 + 95 161.255 900 1 0 -0.920459 0.158253 -175.85 + 95 170.916 894 0 1 -1.13721 0.130245 -204.45 + 95 167.862 900 0 0 -1.14511 0.128209 -205.85 + 95 365.287 897 2 1 -0.65 0.295162 -144.496 + 95 169.509 898 2 1 -0.45 0.294998 -144.51 + 95 269.733 899 2 1 -0.25 0.311898 -144.544 + 95 75.5571 913 2 0 0.0827122 2.68656 -145.85 + 95 241.717 914 2 0 0.166518 2.85 -145.918 + 95 135.455 900 5 0 -0.0945189 0.05 -55.9619 +Number of digits in this event = 16 +Event: 96 +Number of tracker hits in this event = 19 + 96 143.969 899 2 1 -0.123314 1.04808 -144.45 + 96 155.54 905 2 0 -0.136087 1.08167 -145.85 + 96 133.632 898 1 1 -0.399812 1.76765 -174.45 + 96 146.708 908 1 0 -0.413023 1.79759 -175.85 + 96 128.423 896 0 1 -0.694566 2.41631 -204.45 + 96 128.463 911 0 0 -0.708749 2.44242 -205.85 + 96 22.8775 244 4 1 -131.35 176.498 -84.8249 + 96 18.0813 1379 1 0 -10.2412 95.9727 -176.25 + 96 99.9705 1378 1 0 -10.2716 95.95 -176.204 + 96 88.2418 1377 1 0 -10.4898 95.75 -175.993 + 96 53.5488 835 1 1 -12.9512 92.0636 -174.85 + 96 62.9619 834 1 1 -13.05 91.9085 -174.806 + 96 143.017 1350 1 0 -14.5913 90.2821 -175.85 + 96 13.6891 1351 1 0 -14.8098 90.35 -176.218 + 96 171.363 1479 1 0 -27.179 116.049 -176.25 + 96 363.287 1480 1 0 -27.0466 116.15 -176.131 + 96 78.0471 769 1 1 -26.1995 116.303 -174.85 + 96 105.291 770 1 1 -26.05 116.305 -174.746 + 96 109.842 783 1 1 -23.4139 117.046 -174.85 +Number of digits in this event = 13 +Event: 97 +Number of tracker hits in this event = 11 + 97 123.151 899 4 1 -0.126713 0.123745 -84.45 + 97 138.616 900 4 0 -0.125306 0.134455 -85.85 + 97 137.119 899 3 1 -0.110385 0.364673 -114.45 + 97 152.123 901 3 0 -0.108584 0.383096 -115.85 + 97 127.121 899 2 1 -0.0662072 0.777295 -144.45 + 97 151.129 903 2 0 -0.0579414 0.794221 -145.85 + 97 215.67 900 1 1 0.100632 1.14162 -174.45 + 97 158.673 905 1 0 0.105939 1.15818 -175.85 + 97 192.253 900 0 1 0.208122 1.51057 -204.45 + 97 139.291 907 0 0 0.221603 1.53028 -205.85 + 97 2.98057 1190 2 0 -89.8991 58.25 -146.107 +Number of digits in this event = 14 +Event: 98 +Number of tracker hits in this event = 11 + 98 143.381 900 4 1 0.233011 -0.111484 -84.45 + 98 136.759 899 4 0 0.243353 -0.117825 -85.85 + 98 124.222 901 3 1 0.445676 -0.24431 -114.45 + 98 258.893 899 3 0 0.457132 -0.24848 -115.85 + 98 149.801 903 2 1 0.669481 -0.342699 -144.45 + 98 133.005 898 2 0 0.683366 -0.348441 -145.85 + 98 164.225 904 1 1 0.959699 -0.433859 -174.45 + 98 109.355 898 1 0 0.975511 -0.43857 -175.85 + 98 125.822 906 0 1 1.29288 -0.544427 -204.45 + 98 133.731 897 0 0 1.3069 -0.547899 -205.85 + 98 40.8504 1639 7 1 148 -39.4227 5.15 +Number of digits in this event = 11 Event: 99 -Number of tracker hits in this event = 4 - 99 126.726 910 1 1 2.15211 -0.101796 -174.45 - 99 132.071 899 1 0 2.18236 -0.117069 -175.85 - 99 109.671 913 0 1 2.80779 -0.423602 -204.45 - 99 122.326 898 0 0 2.83587 -0.438295 -205.85 -Number of digits in this event = 4 +Number of tracker hits in this event = 10 + 99 126.855 899 4 1 -0.0987218 0.175593 -84.45 + 99 121.24 900 4 0 -0.107284 0.177732 -85.85 + 99 129.247 898 3 1 -0.269283 0.228156 -114.45 + 99 103.074 900 3 0 -0.276888 0.23415 -115.85 + 99 119.905 898 2 1 -0.422279 0.354897 -144.45 + 99 321.991 901 2 0 -0.427331 0.352578 -145.85 + 99 116.076 897 1 1 -0.517966 0.298932 -174.45 + 99 130.057 901 1 0 -0.520891 0.292603 -175.85 + 99 222.546 897 0 1 -0.58061 0.164935 -204.45 + 99 129.178 900 0 0 -0.574537 0.15714 -205.85 +Number of digits in this event = 8 Run terminated. Run Summary Number of events processed : 100 - User=1.02s Real=1.05s Sys=0.01s + User=0.94s Real=0.99s Sys=0.02s End of Run 0 /gun/particle gamma /gun/energy 1 GeV @@ -2634,584 +2399,487 @@ Cannot set FirstId as its value was already used. done Event: 0 +Number of tracker hits in this event = 49 + 0 116.428 901 6 0 -0.222286 0.282625 -25.85 + 0 52.9113 899 5 1 -0.139876 0.188905 -54.45 + 0 72.8322 900 5 1 0.05 0.324319 -54.5781 + 0 72.8619 901 5 1 0.25 0.476602 -54.7235 + 0 31.1092 916 5 0 1.78019 3.35907 -55.85 + 0 82.4004 917 5 0 1.82583 3.45 -55.883 + 0 88.2104 918 5 0 1.93563 3.65 -55.9816 + 0 328.482 919 5 0 2.05618 3.85 -56.013 + 0 114.854 920 5 0 1.94307 4.05 -56.0648 + 0 46.3372 199 5 0 21.4571 -140.167 -56.25 + 0 65.9436 198 5 0 21.4772 -140.35 -56.2319 + 0 71.2605 197 5 0 21.4655 -140.55 -56.2147 + 0 36.8093 196 5 0 21.3295 -140.75 -56.234 + 0 393.208 179 5 0 -36.8189 -144.222 -56.25 + 0 128.346 178 5 0 -37.0569 -144.35 -56.0725 + 0 183.915 914 5 1 2.95828 3.04207 -54.85 + 0 190.447 901 4 1 0.251225 0.103685 -84.45 + 0 108.563 900 4 0 0.259448 0.117421 -85.85 + 0 276.019 901 3 1 0.421623 0.434833 -114.45 + 0 53.9259 901 3 0 0.437626 0.448075 -115.85 + 0 67.4053 902 3 0 0.440007 0.45 -116.056 + 0 122.025 903 2 1 0.747775 0.706964 -144.45 + 0 147.621 903 2 0 0.769116 0.721136 -145.85 + 0 119.477 905 1 1 1.20616 0.987528 -174.45 + 0 145.641 904 1 0 1.22251 0.993931 -175.85 + 0 178.364 907 0 1 1.55513 1.12957 -204.45 + 0 109.724 905 0 0 1.56034 1.12847 -205.85 + 0 195.104 902 3 1 0.45 0.577811 -114.758 + 0 127.405 904 3 0 0.591111 0.852479 -115.85 + 0 50.2973 924 2 1 5.03126 9.01366 -144.45 + 0 65.2238 925 2 1 5.05 9.09674 -144.606 + 0 121.222 948 2 0 5.20146 9.71293 -145.85 + 0 39.4504 949 2 0 5.23088 9.85 -146.13 + 0 137.189 946 1 1 9.33526 21.9494 -174.45 + 0 93.6994 1014 1 0 9.54272 22.9057 -175.85 + 0 82.2012 1015 1 0 9.57283 23.05 -176.066 + 0 239.856 952 0 1 10.5462 43.2553 -204.45 + 0 133.615 1117 0 0 10.7938 43.5254 -205.85 + 0 175.164 1405 0 1 101.238 -44.8845 -204.45 + 0 12.1096 1406 0 1 101.35 -44.6832 -204.813 + 0 72.5392 679 0 0 101.804 -44.1691 -205.85 + 0 81.1181 680 0 0 101.909 -44.05 -206.091 + 0 68.0939 806 0 0 105.131 -18.7747 -206.25 + 0 101.433 807 0 0 105.005 -18.65 -206.119 + 0 41.7627 808 0 0 104.897 -18.45 -205.914 + 0 71.7803 1421 0 1 104.506 -17.7476 -204.85 + 0 159.508 1420 0 1 104.35 -17.6744 -204.696 + 0 264.45 906 0 1 1.31807 1.30864 -204.45 + 0 278.54 906 0 0 1.33409 1.30718 -205.85 +Number of digits in this event = 21 +Event: 1 Number of tracker hits in this event = 0 Number of digits in this event = 1 -Event: 1 -Number of tracker hits in this event = 13 - 1 101.888 899 2 1 -0.240658 -0.267632 -144.45 - 1 70.6709 898 2 0 -0.244664 -0.253071 -145.85 - 1 41.9944 899 2 0 -0.245209 -0.25 -146.068 - 1 210.112 900 1 1 0.18701 0.255863 -174.45 - 1 93.7295 901 1 0 0.210088 0.281781 -175.85 - 1 146.348 902 0 1 0.63254 0.809007 -204.45 - 1 35.9106 903 0 0 0.6569 0.846657 -205.85 - 1 86.2262 904 0 0 0.659035 0.85 -205.972 - 1 134.108 882 2 1 -3.59893 86.5553 -144.792 - 1 119.034 900 3 1 0.115614 0.10861 -114.45 - 1 115.319 900 3 0 0.160263 0.097876 -115.85 - 1 149.852 894 0 1 -1.11248 -0.688797 -204.45 - 1 108.765 896 0 0 -1.17087 -0.676937 -205.85 -Number of digits in this event = 5 Event: 2 -Number of tracker hits in this event = 0 +Number of tracker hits in this event = 2 + 2 22.7837 1028 6 1 25.6659 78.0937 -24.6757 + 2 32.3247 1013 4 0 94.5647 22.8478 -86.0892 Number of digits in this event = 2 Event: 3 Number of tracker hits in this event = 6 - 3 165.662 1274 6 1 74.9149 -51.8341 -24.759 - 3 29.8593 1273 6 1 74.85 -51.8488 -24.6937 - 3 19.2724 1084 9 0 120.305 36.8914 63.75 - 3 97.2859 1083 9 0 120.352 36.85 63.7995 - 3 140.344 1082 9 0 120.505 36.65 63.8267 - 3 215.017 1105 9 0 116.818 41.1602 63.75 -Number of digits in this event = 4 + 3 302.097 899 0 1 -0.160603 -0.303084 -204.45 + 3 109.589 898 0 0 -0.196507 -0.384213 -205.85 + 3 118.308 900 0 0 -0.196091 0.173783 -205.85 + 3 331.332 156 8 0 -54.3578 -148.895 33.8384 + 3 120.344 222 8 0 67.277 -135.692 33.9149 + 3 247.541 1241 8 1 68.3282 -135.508 35.15 +Number of digits in this event = 6 Event: 4 -Number of tracker hits in this event = 43 - 4 117.841 899 5 1 -0.197986 0.17034 -54.45 - 4 134.846 900 5 0 -0.197041 0.176689 -55.85 - 4 114.177 899 4 1 -0.241427 0.333936 -84.45 - 4 135.002 901 4 0 -0.244519 0.300644 -85.85 - 4 122.486 898 3 1 -0.364505 -0.299648 -114.45 - 4 137.254 898 3 0 -0.374417 -0.333023 -115.85 - 4 113.52 897 2 1 -0.543365 -0.969634 -144.45 - 4 140.027 895 2 0 -0.539917 -1.00797 -145.85 - 4 444.419 897 1 1 -0.530329 -1.83369 -174.45 - 4 163.65 890 1 0 -0.556914 -1.88855 -175.85 - 4 117.815 895 0 1 -0.999482 -2.98049 -204.45 - 4 496.117 885 0 0 -0.979086 -3.02835 -205.85 - 4 118.795 897 4 1 -0.502587 0.18327 -84.45 - 4 85.609 900 4 0 -0.541607 0.238622 -85.85 - 4 161.303 893 3 1 -1.34369 1.32786 -114.45 - 4 138.77 906 3 0 -1.36556 1.33543 -115.85 - 4 115.964 890 2 1 -2.00186 1.61443 -144.45 - 4 149.101 907 2 0 -1.90638 1.5562 -145.85 - 4 140.75 899 1 1 -0.200019 -0.302512 -174.45 - 4 7.26195 898 1 0 -0.101149 -0.446363 -175.85 - 4 225.734 897 1 0 -0.0985843 -0.45 -175.886 - 4 130.717 909 0 1 2.00111 -3.27604 -204.45 - 4 133.799 883 0 0 2.07013 -3.33758 -205.85 - 4 23.3913 987 4 0 2.13679 17.5863 -86.25 - 4 105.019 988 4 0 2.15028 17.65 -86.1418 - 4 20.0995 989 4 0 2.09594 17.85 -85.8991 - 4 24.1596 908 4 1 1.67821 18.3813 -84.85 - 4 160.476 907 4 1 1.65 18.4165 -84.779 - 4 191.164 993 6 0 55.1584 18.7752 -26.25 - 4 116.659 892 2 1 -1.49033 -1.4752 -144.45 - 4 308.249 893 2 0 -1.656 -1.30252 -145.85 - 4 106.947 865 1 1 -7.00239 -0.0989801 -174.45 - 4 59.3532 896 1 0 -6.46041 -0.65 -176.133 - 4 147.751 927 0 1 5.54161 -13.1527 -204.45 - 4 33.8705 832 0 0 5.47868 -13.6114 -205.85 - 4 87.0751 831 0 0 5.47524 -13.65 -205.97 - 4 130.737 899 3 0 0.460489 -0.0828642 -115.85 - 4 156.442 903 2 1 0.838935 -1.06744 -144.45 - 4 179.24 877 1 1 -4.49075 -5.29662 -174.45 - 4 22.9196 873 1 0 -4.74133 -5.44259 -175.85 - 4 230.747 872 1 0 -4.75404 -5.45 -175.92 - 4 120.699 851 0 1 -9.78384 -8.19365 -204.45 - 4 111.109 858 0 0 -10.0084 -8.37289 -205.85 -Number of digits in this event = 27 +Number of tracker hits in this event = 28 + 4 110.792 900 5 1 0.219326 -0.117111 -54.45 + 4 261.728 899 5 0 0.198302 -0.137016 -55.85 + 4 163.374 897 4 1 -0.469554 -0.701891 -84.45 + 4 117.126 896 4 0 -0.573205 -0.682106 -85.85 + 4 72.0972 889 3 1 -2.24786 -0.39234 -114.45 + 4 50.5697 888 3 1 -2.25 -0.394061 -114.663 + 4 108.297 898 3 0 -2.26193 -0.408726 -115.85 + 4 134.848 888 2 1 -2.37867 -0.542432 -144.45 + 4 129.378 897 2 0 -2.34113 -0.550256 -145.85 + 4 97.077 891 1 1 -1.72032 -0.887124 -174.45 + 4 23.3362 895 1 0 -1.63678 -0.852463 -175.85 + 4 97.1031 896 1 0 -1.63059 -0.85 -175.95 + 4 116.096 900 0 1 0.111077 0.102284 -204.45 + 4 49.1724 900 0 0 0.141789 0.234235 -205.85 + 4 75.4284 901 0 0 0.146186 0.25 -206.017 + 4 141.845 901 3 1 0.254752 0.337895 -114.45 + 4 107.621 901 3 0 0.259556 0.367763 -115.85 + 4 103.523 901 2 1 0.322805 0.996119 -144.45 + 4 127.08 905 2 0 0.312865 1.05017 -145.85 + 4 128.238 900 1 1 0.146651 2.01709 -174.45 + 4 296.188 910 1 0 0.12039 2.06289 -175.85 + 4 128.59 898 0 1 -0.361355 3.00493 -204.45 + 4 61.3642 914 0 0 -0.390068 3.04379 -205.85 + 4 92.491 915 0 0 -0.394622 3.05 -206.07 + 4 513.102 1165 2 1 53.1248 -43.3696 -144.512 + 4 111.592 1166 2 1 53.25 -43.7986 -144.636 + 4 196.478 1167 2 1 53.45 -44.0332 -144.552 + 4 239.838 679 2 0 54.4511 -44.1384 -145.85 +Number of digits in this event = 13 Event: 5 -Number of tracker hits in this event = 14 - 5 2.96675 630 1 0 76.3236 -54.0367 -176.25 - 5 70.49 629 1 0 76.3261 -54.05 -176.244 - 5 76.5385 628 1 0 76.3533 -54.25 -176.161 - 5 184.682 627 1 0 76.3818 -54.45 -176.092 - 5 65.022 626 1 0 76.4885 -54.65 -176.032 - 5 61.9475 625 1 0 76.5864 -54.85 -176.003 - 5 45.3785 624 1 0 76.6823 -55.05 -176.049 - 5 82.6093 623 1 0 76.691 -55.25 -176.037 - 5 96.9378 622 1 0 76.7108 -55.45 -176.05 - 5 63.5355 621 1 0 76.6995 -55.65 -176.006 - 5 57.037 620 1 0 76.7717 -55.85 -176.037 - 5 93.2211 619 1 0 76.7525 -56.05 -176.049 - 5 75.4157 618 1 0 76.737 -56.25 -176.138 - 5 210.519 1429 0 1 105.977 12.3405 -204.45 -Number of digits in this event = 3 -Event: 6 Number of tracker hits in this event = 0 Number of digits in this event = 1 +Event: 6 +Number of tracker hits in this event = 33 + 6 112.071 900 4 1 0.0666876 0.194403 -84.45 + 6 202.305 900 4 0 0.0742671 0.190609 -85.85 + 6 96.9272 900 3 1 0.233186 0.132962 -114.45 + 6 130.989 900 3 0 0.239074 0.137596 -115.85 + 6 137.461 901 2 1 0.376581 0.248964 -144.45 + 6 102.472 901 2 0 0.359409 0.256968 -145.85 + 6 139.345 899 0 1 -0.144536 0.616086 -204.45 + 6 118.048 902 0 0 -0.164979 0.608926 -205.85 + 6 89.2568 899 5 0 0.127186 -0.05 -56.1816 + 6 141.646 899 2 1 -0.148794 -0.702357 -144.45 + 6 101.161 896 2 0 -0.150602 -0.742457 -145.85 + 6 149.313 899 1 1 -0.159263 -1.5679 -174.45 + 6 115.455 892 1 0 -0.120424 -1.6084 -175.85 + 6 120.516 903 0 1 0.662893 -2.2843 -204.45 + 6 115.725 888 0 0 0.727514 -2.27929 -205.85 + 6 138.157 902 2 1 0.523959 -1.49272 -144.45 + 6 160.27 892 2 0 0.27774 -1.53159 -145.85 + 6 21.6355 873 1 1 -5.43901 -2.43198 -174.45 + 6 101.898 872 1 1 -5.45 -2.4365 -174.511 + 6 113.715 887 1 0 -5.69348 -2.52793 -175.85 + 6 30.636 845 0 1 -11.0343 -4.46891 -204.45 + 6 91.0309 844 0 1 -11.05 -4.47053 -204.533 + 6 107.915 877 0 0 -11.3221 -4.47792 -205.85 + 6 158.716 900 2 1 0.20296 -0.550777 -144.45 + 6 175.866 897 2 0 0.295378 -0.524947 -145.85 + 6 93.2588 910 1 1 2.14937 0.271561 -174.45 + 6 35.0163 911 1 1 2.25 0.205968 -174.758 + 6 108.644 899 1 0 2.64647 -0.05 -175.968 + 6 129.975 952 0 1 10.5825 -6.64223 -204.45 + 6 153.309 866 0 0 10.7971 -6.77803 -205.85 + 6 24.95 733 0 1 -33.3916 22.5555 -204.791 + 6 11.3876 356 3 1 -108.92 71.7778 -114.45 + 6 87.3999 355 3 1 -108.95 71.7478 -114.456 +Number of digits in this event = 14 Event: 7 -Number of tracker hits in this event = 1 - 7 63.5555 1336 1 0 44.1697 87.407 -176.25 -Number of digits in this event = 1 +Number of tracker hits in this event = 26 + 7 201.18 900 5 1 0.0560831 0.275704 -54.45 + 7 145.838 901 5 0 0.0554269 0.278297 -55.85 + 7 127.383 899 4 1 -0.0618788 0.256763 -84.45 + 7 157.202 901 4 0 -0.0656634 0.273684 -85.85 + 7 157.837 899 3 1 -0.134557 0.60891 -114.45 + 7 107.322 902 3 0 -0.129644 0.619674 -115.85 + 7 127.696 899 1 1 -0.177895 1.18158 -174.45 + 7 429.036 905 1 0 -0.171912 1.20589 -175.85 + 7 123.751 899 0 1 -0.0654643 1.68917 -204.45 + 7 112.315 908 0 0 -0.0697388 1.70778 -205.85 + 7 25.0023 899 2 1 -0.05 0.870084 -144.774 + 7 55.0486 897 2 0 -0.781832 -0.458086 -145.85 + 7 528.189 896 2 0 -0.843471 -0.65 -145.936 + 7 111.682 898 3 1 -0.25 0.441774 -114.553 + 7 155.906 899 5 1 -0.225516 -0.337359 -54.45 + 7 120.61 898 5 0 -0.254651 -0.352485 -55.85 + 7 144.085 895 4 1 -0.854604 -0.733038 -84.45 + 7 119.561 896 4 0 -0.866341 -0.76957 -85.85 + 7 187.868 894 3 1 -1.07611 -1.71099 -114.45 + 7 132.045 891 3 0 -1.10598 -1.76195 -115.85 + 7 115.294 891 2 1 -1.75155 -2.89053 -144.45 + 7 123.231 885 2 0 -1.78527 -2.95027 -145.85 + 7 123.403 888 1 1 -2.37902 -4.21373 -174.45 + 7 157.766 878 1 0 -2.38313 -4.30116 -175.85 + 7 99.0112 888 0 1 -2.36657 -6.14578 -204.45 + 7 122.231 868 0 0 -2.3625 -6.25117 -205.85 +Number of digits in this event = 19 Event: 8 -Number of tracker hits in this event = 1 - 8 310.249 1431 5 1 106.434 60.1847 -54.7285 -Number of digits in this event = 2 +Number of tracker hits in this event = 2 + 8 158.421 979 1 0 -27.5253 15.9533 -176.25 + 8 80.2002 980 1 0 -27.4993 16.05 -176.102 +Number of digits in this event = 3 Event: 9 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 10 -Number of tracker hits in this event = 7 - 10 281.996 899 0 1 -0.128525 0.130178 -204.45 - 10 379.491 900 0 0 -0.134358 0.14443 -205.85 - 10 31.5114 1601 7 1 140.482 -134.036 5.41812 - 10 594.68 1602 7 1 140.55 -134.079 5.49798 - 10 5.43391 280 6 0 118.503 -124.146 -26.1593 - 10 82.1174 279 6 0 118.496 -124.15 -26.1619 - 10 112.146 899 0 0 -0.182864 -0.203415 -205.85 -Number of digits in this event = 4 -Event: 11 -Number of tracker hits in this event = 11 - 11 150.894 901 1 1 0.318894 -0.169237 -174.45 - 11 109.956 899 1 0 0.340577 -0.182177 -175.85 - 11 126.447 903 0 1 0.828909 -0.46552 -204.45 - 11 116.177 897 0 0 0.888486 -0.454313 -205.85 - 11 4.05096 1710 11 0 -135.941 162.333 124.122 - 11 108.924 899 1 1 -0.0616181 0.437037 -174.45 - 11 98.9605 902 1 0 -0.124697 0.566404 -175.85 - 11 288.229 892 0 1 -1.61732 3.81391 -204.45 - 11 74.7493 891 0 1 -1.65 3.837 -204.623 - 11 32.7749 919 0 0 -1.8922 4.03002 -205.85 - 11 111.815 920 0 0 -1.91706 4.05 -205.975 -Number of digits in this event = 4 -Event: 12 -Number of tracker hits in this event = 39 - 12 140.023 897 5 1 -0.59472 0.199101 -54.45 - 12 68.3557 900 5 0 -0.666432 0.240674 -55.85 - 12 25.5706 901 5 0 -0.68166 0.25 -56.1457 - 12 146.893 889 4 1 -2.10822 1.20699 -84.45 - 12 146.948 905 4 0 -2.17711 1.21261 -85.85 - 12 148.072 882 3 1 -3.52901 1.29191 -114.45 - 12 106.354 906 3 0 -3.56806 1.39733 -115.85 - 12 138.854 876 2 1 -4.69684 3.85572 -144.45 - 12 97.204 919 2 0 -4.73763 3.90907 -145.85 - 12 108.457 871 1 1 -5.77654 5.04107 -174.45 - 12 238.84 925 1 0 -5.75568 5.07186 -175.85 - 12 123.518 873 0 1 -5.32364 5.74922 -204.45 - 12 120.913 928 0 0 -5.24178 5.73707 -205.85 - 12 222.219 899 4 1 -0.149234 -0.268845 -84.45 - 12 147.699 898 4 0 -0.166439 -0.282839 -85.85 - 12 124.267 897 3 1 -0.55293 -0.562291 -114.45 - 12 114.466 897 3 0 -0.568273 -0.574802 -115.85 - 12 113.464 895 2 1 -0.871468 -0.849929 -144.45 - 12 140.883 895 2 0 -0.884175 -0.861471 -145.85 - 12 156.459 894 1 1 -1.12455 -1.1053 -174.45 - 12 111.877 894 1 0 -1.12487 -1.10906 -175.85 - 12 110.288 894 0 1 -1.12651 -1.22029 -204.45 - 12 172.252 894 0 0 -1.1255 -1.22879 -205.85 - 12 17.6695 899 5 1 -0.05 -0.354522 -54.7938 - 12 52.4427 897 5 0 -0.0789091 -0.604162 -55.85 - 12 63.4497 896 5 0 -0.0845813 -0.65 -56.0467 - 12 0.010636 897 4 1 -0.648852 -4.02238 -84.45 - 12 414.5 896 4 1 -0.65 -4.02194 -84.4514 - 12 84.135 895 4 1 -0.85 -3.94049 -84.7027 - 12 36.9856 894 4 1 -1.05 -3.70995 -84.8004 - 12 101.954 890 4 0 -3.05607 -2.00619 -85.85 - 12 124.508 891 4 0 -3.24131 -1.85 -85.9475 - 12 272.264 892 4 0 -3.51809 -1.65 -86.0434 - 12 141.993 893 4 0 -3.85846 -1.45 -86.1728 - 12 40.145 1476 4 0 -39.1301 115.386 -86.25 - 12 58.2242 1477 4 0 -39.134 115.55 -86.1858 - 12 57.4894 1478 4 0 -39.136 115.75 -86.0715 - 12 78.6015 1479 4 0 -39.1635 115.95 -85.9469 - 12 141.729 703 4 1 -39.3846 116.877 -84.85 -Number of digits in this event = 20 -Event: 13 Number of tracker hits in this event = 0 Number of digits in this event = 1 +Event: 11 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 12 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 13 +Number of tracker hits in this event = 15 + 13 7.53423 898 2 1 -0.278693 -0.05 -144.823 + 13 317.564 899 2 0 -0.282514 -0.0885397 -145.85 + 13 117.741 897 1 1 -0.461224 -1.17512 -174.45 + 13 110.783 894 1 0 -0.471279 -1.2313 -175.85 + 13 132.466 896 0 1 -0.688167 -2.41122 -204.45 + 13 101.725 887 0 0 -0.714239 -2.4809 -205.85 + 13 17.7881 901 2 1 0.267187 -2.01939 -144.85 + 13 163.189 881 2 0 1.05671 -3.67719 -145.85 + 13 124.119 900 2 1 0.0527299 -0.281168 -144.45 + 13 120.316 898 2 0 0.0966225 -0.267274 -145.85 + 13 78.3257 909 0 1 2.04039 0.295569 -204.45 + 13 36.076 910 0 1 2.05 0.298892 -204.718 + 13 121.76 901 0 0 2.09924 0.316015 -205.85 + 13 279.898 863 0 0 -14.0996 -7.25949 -206.25 + 13 82.666 862 0 0 -14.4628 -7.45 -206.139 +Number of digits in this event = 9 Event: 14 Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of digits in this event = 2 Event: 15 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 16 -Number of tracker hits in this event = 8 - 16 33.2187 1738 0 1 167.875 -17.3576 -204.813 - 16 220.145 1739 0 1 167.95 -17.399 -204.775 - 16 290.537 1740 0 1 168.15 -17.659 -204.615 - 16 435.93 1741 0 1 168.365 -17.8034 -204.45 - 16 45.0797 1742 0 1 168.55 -17.7587 -204.547 - 16 24.4387 681 8 0 38.0897 -43.7661 34.0889 - 16 69.3197 1092 8 1 38.5762 -43.8444 35.15 - 16 211.226 1093 8 1 38.65 -43.8187 35.2104 -Number of digits in this event = 5 -Event: 17 Number of tracker hits in this event = 0 -Number of digits in this event = 2 +Number of digits in this event = 1 +Event: 17 +Number of tracker hits in this event = 33 + 17 312.797 901 3 1 0.418248 -0.238619 -114.45 + 17 234.174 898 3 0 0.447086 -0.254682 -115.85 + 17 269.097 904 2 1 1.04432 -0.63256 -144.45 + 17 3.71141 905 2 1 1.05 -0.641024 -144.829 + 17 113.11 896 2 0 1.06774 -0.666448 -145.85 + 17 241.551 907 1 1 1.59141 -1.46782 -174.45 + 17 124.298 892 1 0 1.62104 -1.5089 -175.85 + 17 190.563 910 0 1 2.17351 -2.2534 -204.45 + 17 162.25 888 0 0 2.19836 -2.30125 -205.85 + 17 169.779 1215 0 0 31.5861 63.1411 -206.161 + 17 24.6356 1216 0 0 31.654 63.25 -206.145 + 17 133.157 900 3 1 0.248764 -0.22929 -114.45 + 17 144.935 899 3 0 0.276367 -0.237226 -115.85 + 17 122.024 898 2 0 0.913051 -0.407895 -145.85 + 17 139.95 896 1 0 1.55874 -0.80221 -175.85 + 17 104.499 907 0 1 1.60384 -0.934693 -204.45 + 17 150.475 895 0 0 1.60401 -0.960949 -205.85 + 17 17.849 897 3 0 0.303157 -0.45 -116.183 + 17 73.9366 900 2 1 0.178838 -7.30722 -144.45 + 17 47.3183 901 2 1 0.25 -7.2384 -144.715 + 17 141.603 865 2 0 0.640156 -6.97464 -145.85 + 17 101.319 934 1 1 6.87302 0.404361 -174.45 + 17 118.907 902 1 0 6.74776 0.45134 -175.85 + 17 99.3014 875 2 1 -4.90862 2.57667 -144.45 + 17 115.169 913 2 0 -5.00361 2.67086 -145.85 + 17 48.6028 865 1 1 -7.03476 5.84043 -174.45 + 17 70.2733 864 1 1 -7.05 5.83639 -174.552 + 17 108.976 928 1 0 -7.25555 5.80056 -175.85 + 17 5.09988 840 0 1 -12.0343 4.22223 -204.45 + 17 81.4269 839 0 1 -12.05 4.21741 -204.468 + 17 76.5828 838 0 1 -12.25 4.15333 -204.704 + 17 52.1036 919 0 0 -13.1811 3.88624 -205.85 + 17 86.4539 918 0 0 -13.3095 3.85 -206.009 +Number of digits in this event = 15 Event: 18 -Number of tracker hits in this event = 19 - 18 300.95 898 3 1 -0.336401 -0.366977 -114.45 - 18 102.411 898 3 0 -0.388361 -0.40513 -115.85 - 18 106.752 893 2 1 -1.43121 -0.971633 -144.45 - 18 95.142 895 2 0 -1.46641 -0.976885 -145.85 - 18 129.182 889 1 1 -2.06978 -1.16182 -174.45 - 18 148.644 894 1 0 -2.02472 -1.14366 -175.85 - 18 119.651 894 0 1 -1.0587 -0.889352 -204.45 - 18 28.8479 895 0 1 -1.05 -0.881548 -204.792 - 18 101.64 895 0 0 -1.02674 -0.860521 -205.85 - 18 111.731 854 1 0 43.7058 -9.10498 -176.25 - 18 169.33 721 2 0 -33.657 -35.8351 -146.236 - 18 82.12 720 2 0 -33.6804 -35.85 -146.21 - 18 154.17 899 3 0 -0.440819 -0.128083 -115.85 - 18 136.342 894 2 1 -1.19822 0.0612705 -144.45 - 18 350.817 900 2 0 -1.15483 0.0961283 -145.85 - 18 360.535 901 1 1 0.448095 1.70175 -174.45 - 18 157.543 909 1 0 0.404271 1.92489 -175.85 - 18 142.446 898 0 1 -0.357318 6.25755 -204.45 - 18 131.856 932 0 0 -0.237858 6.45798 -205.85 -Number of digits in this event = 13 -Event: 19 -Number of tracker hits in this event = 71 - 19 105.898 898 5 1 -0.36663 0.62613 -54.45 - 19 291.294 902 5 0 -0.385867 0.620614 -55.85 - 19 216.114 895 4 1 -0.974251 0.473952 -84.45 - 19 270.751 901 4 0 -1.01737 0.444159 -85.85 - 19 119.863 891 3 1 -1.81103 -0.30892 -114.45 - 19 107.601 898 3 0 -1.84636 -0.337748 -115.85 - 19 110.853 887 2 1 -2.55513 -0.782221 -144.45 - 19 10.9328 896 2 0 -2.57949 -0.847571 -145.85 - 19 120.971 895 2 0 -2.5804 -0.85 -145.902 - 19 145.387 884 1 1 -3.2241 -2.04692 -174.45 - 19 164.144 889 1 0 -3.2303 -2.07761 -175.85 - 19 66.1106 884 0 1 -3.24621 -2.59458 -204.45 - 19 43.0486 883 0 1 -3.25 -2.59585 -204.704 - 19 113.037 887 0 0 -3.2641 -2.59945 -205.85 - 19 110.091 903 5 0 0.0803064 0.799615 -55.9887 - 19 288.791 899 2 1 -0.154319 0.0659962 -144.45 - 19 348.258 900 2 0 -0.160273 0.0679146 -145.85 - 19 118.978 899 1 1 -0.249115 0.0942486 -174.45 - 19 60.0937 898 1 1 -0.25 0.095179 -174.666 - 19 241.442 900 1 0 -0.252515 0.100357 -175.85 - 19 102.447 898 0 1 -0.317027 0.243228 -204.45 - 19 108.732 901 0 0 -0.329528 0.250675 -205.85 - 19 70.3174 900 4 0 -0.103626 0.05 -85.9621 - 19 169.077 902 4 0 0.300625 0.45 -86.0567 - 19 314.112 718 0 0 12.2615 -36.4405 -206.034 - 19 132.36 896 1 1 -0.67299 1.86903 -174.45 - 19 134.627 909 1 0 -0.852913 1.95644 -175.85 - 19 228.237 879 0 1 -4.05542 4.09103 -204.45 - 19 147.7 920 0 0 -4.23664 4.1468 -205.85 - 19 54.0206 953 2 0 -28.3848 10.8303 -146.25 - 19 94.0745 954 2 0 -28.473 10.85 -146.109 - 19 121.323 756 2 1 -28.6857 10.6414 -144.85 - 19 70.8499 894 2 0 -0.28764 -1.08775 -145.85 - 19 61.5524 893 2 0 -0.315545 -1.25 -146.063 - 19 85.3821 878 1 1 -4.34171 -15.611 -174.45 - 19 78.1559 877 1 1 -4.45 -15.6862 -174.673 - 19 84.1589 818 1 0 -5.16354 -16.3377 -175.85 - 19 74.4328 817 1 0 -5.28561 -16.45 -176.049 - 19 46.8035 796 0 1 -20.7817 -18.9576 -204.45 - 19 105.755 795 0 1 -20.85 -18.9257 -204.51 - 19 53.627 794 0 1 -21.05 -18.8018 -204.71 - 19 16.0058 810 0 0 -22.6883 -17.8697 -205.85 - 19 180.699 811 0 0 -22.7233 -17.85 -205.874 - 19 414.664 812 0 0 -23.0441 -17.65 -206.076 - 19 64.8386 1046 0 0 -109.233 29.3563 -206.25 - 19 155.096 1047 0 0 -109.396 29.45 -206.209 - 19 120.391 1048 0 0 -109.695 29.65 -206.14 - 19 121.743 1049 0 0 -110.033 29.85 -206.058 - 19 115.491 1050 0 0 -110.406 30.05 -205.989 - 19 52.6361 1051 0 0 -110.803 30.25 -205.884 - 19 9.63 333 0 1 -113.519 31.3584 -204.85 - 19 82.7947 332 0 1 -113.55 31.3707 -204.838 - 19 106.486 331 0 1 -113.75 31.4546 -204.741 - 19 73.3424 330 0 1 -113.95 31.5682 -204.631 - 19 36.9089 329 0 1 -114.15 31.6846 -204.506 - 19 881.396 1077 1 0 -155.095 35.5658 -176.25 - 19 43.384 114 1 1 -157.254 35.5495 -174.85 - 19 71.0254 113 1 1 -157.35 35.5436 -174.785 - 19 57.2077 112 1 1 -157.55 35.502 -174.673 - 19 75.0523 111 1 1 -157.75 35.4371 -174.548 - 19 96.7595 110 1 1 -157.95 35.3973 -174.472 - 19 71.1384 109 1 1 -158.15 35.4041 -174.455 - 19 78.7916 108 1 1 -158.35 35.3551 -174.651 - 19 121.883 1076 1 0 -158.744 35.2935 -175.85 - 19 123.681 1075 1 0 -158.758 35.25 -176.012 - 19 208.604 1078 1 0 -155.576 35.65 -175.962 - 19 303.993 343 4 1 -111.461 115.319 -84.5293 - 19 262.321 344 4 1 -111.35 115.72 -84.5627 - 19 114.706 471 4 0 58.611 -85.7618 -85.9223 - 19 159.449 470 4 0 58.598 -85.85 -85.8639 - 19 371.696 944 0 0 104.566 8.90363 -206.073 -Number of digits in this event = 32 -Event: 20 Number of tracker hits in this event = 1 - 20 20.8465 1583 8 0 -21.7693 136.907 33.9532 + 18 28.6852 336 2 1 -112.797 -140.276 -144.45 Number of digits in this event = 2 +Event: 19 +Number of tracker hits in this event = 43 + 19 125.962 900 5 1 0.118613 0.175693 -54.45 + 19 102.77 900 5 0 0.120628 0.19668 -55.85 + 19 189.398 900 4 1 0.183937 0.608697 -84.45 + 19 115.506 902 4 0 0.176988 0.631869 -85.85 + 19 134.539 900 3 1 0.0722656 1.0498 -114.45 + 19 127.713 905 3 0 0.0812076 1.0518 -115.85 + 19 208.225 901 2 1 0.315389 1.04847 -144.45 + 19 145.935 905 2 0 0.324553 1.05728 -145.85 + 19 24.2445 902 1 1 0.647828 1.13926 -174.45 + 19 93.1602 903 1 1 0.65 1.13916 -174.539 + 19 117.63 905 1 0 0.687828 1.13653 -175.85 + 19 112.573 907 0 1 1.49352 1.05877 -204.45 + 19 123.001 905 0 0 1.54108 1.06134 -205.85 + 19 413.024 902 3 1 0.500232 0.741319 -114.45 + 19 122.5 903 3 0 0.477694 0.795882 -115.85 + 19 191.826 900 2 1 0.051904 1.97622 -144.45 + 19 124.565 898 1 1 -0.371812 3.56118 -174.45 + 19 131.485 918 1 0 -0.361639 3.6611 -175.85 + 19 143.994 899 0 1 -0.0684353 5.4852 -204.45 + 19 108.03 926 0 0 -0.0940553 5.43327 -205.85 + 19 168.264 903 3 1 0.65 0.477674 -114.511 + 19 121.619 904 3 1 0.85 0.0614957 -114.629 + 19 183.112 905 3 1 1.05 -0.304808 -114.642 + 19 91.2878 906 3 1 1.25 -0.836568 -114.65 + 19 206.835 907 3 1 1.45 -1.09091 -114.632 + 19 271.691 908 3 1 1.65 -1.63841 -114.587 + 19 74.4621 909 3 1 1.85 -2.38474 -114.582 + 19 128.595 910 3 1 2.05 -2.54841 -114.582 + 19 53.0055 911 3 1 2.25 -2.7155 -114.503 + 19 108.589 899 5 1 -0.104341 -0.207911 -54.45 + 19 168.207 899 5 0 -0.120765 -0.232978 -55.85 + 19 229.835 897 4 1 -0.475603 -0.76148 -84.45 + 19 146.137 896 4 0 -0.48846 -0.814859 -85.85 + 19 111.514 896 3 1 -0.78086 -1.96059 -114.45 + 19 126.732 890 3 0 -0.796236 -2.02665 -115.85 + 19 100.384 894 2 1 -1.13759 -3.41566 -144.45 + 19 112.271 882 2 0 -1.14255 -3.47681 -145.85 + 19 124.126 893 1 1 -1.29241 -4.68679 -174.45 + 19 122.543 876 1 0 -1.29862 -4.74234 -175.85 + 19 113.945 893 0 1 -1.44521 -5.9408 -204.45 + 19 171.021 870 0 0 -1.43693 -5.98567 -205.85 + 19 36.9274 890 0 1 -1.98058 -6.20803 -204.719 + 19 280.6 889 0 1 -2.05 -6.17558 -204.764 +Number of digits in this event = 30 +Event: 20 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 21 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 22 -Number of tracker hits in this event = 8 - 22 117.831 910 1 1 2.14084 -0.557433 -174.45 - 22 124.813 897 1 0 2.11932 -0.634506 -175.85 - 22 11.7257 896 1 0 2.11069 -0.65 -176.214 - 22 122.261 909 0 1 2.02959 -1.28513 -204.45 - 22 101.281 891 0 0 1.75521 -1.75728 -205.85 - 22 44.8226 890 0 0 1.70307 -1.85 -206.11 - 22 192.301 899 1 1 -0.0544878 -0.165432 -174.45 - 22 118.342 899 1 0 -0.0512977 -0.176032 -175.85 -Number of digits in this event = 5 +Number of tracker hits in this event = 1 + 22 65.1515 418 0 0 -55.818 -96.443 -205.938 +Number of digits in this event = 1 Event: 23 -Number of tracker hits in this event = 1 - 23 46.9005 1475 4 1 115.184 -26.4559 -84.6409 -Number of digits in this event = 2 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 24 -Number of tracker hits in this event = 13 - 24 139.937 899 0 1 -0.149752 0.225228 -204.45 - 24 92.5385 900 0 0 -0.148193 0.237375 -205.85 - 24 88.0064 1087 3 0 -93.3345 37.549 -116.046 - 24 30.9408 429 3 1 -94.2831 35.7073 -114.85 - 24 114.947 428 3 1 -94.35 35.6336 -114.805 - 24 160.425 1076 3 0 -95.1908 35.4353 -115.85 - 24 267.36 1077 3 0 -95.5145 35.45 -115.962 - 24 197.903 899 1 0 0.13305 -0.0693283 -175.85 - 24 243.589 893 0 1 -1.30047 -0.835 -204.45 - 24 109.25 895 0 0 -1.42713 -0.926861 -205.85 - 24 154.793 1202 0 0 -47.5492 60.6146 -206.25 - 24 33.4094 143 6 0 -94.4807 -151.497 -26.0929 - 24 140.836 142 6 0 -94.4566 -151.55 -26.0509 -Number of digits in this event = 10 +Number of tracker hits in this event = 24 + 24 43.7693 1006 1 0 -30.572 21.3424 -176.069 + 24 34.5742 903 1 1 0.839568 1.1966 -174.45 + 24 65.8181 904 1 1 0.85 1.19559 -174.597 + 24 146.362 905 1 0 0.95273 1.193 -175.85 + 24 139.371 916 0 1 3.32434 1.49279 -204.45 + 24 84.5299 907 0 0 3.4051 1.63021 -205.85 + 24 57.8202 908 0 0 3.41773 1.65 -206.072 + 24 14.4226 913 0 0 3.92732 2.81585 -205.85 + 24 103.768 914 0 0 3.94271 2.85 -205.878 + 24 101.837 915 0 0 4.0677 3.05 -206.086 + 24 2.86884 916 0 0 4.25043 3.25 -206.246 + 24 159.67 1040 0 0 26.2552 28.2165 -206.25 + 24 113.385 1039 0 0 26.2993 28.05 -205.978 + 24 5.41102 1038 0 0 26.2904 27.85 -205.857 + 24 273.299 1026 0 1 25.4208 24.6542 -204.85 + 24 58.8612 1027 0 1 25.45 23.919 -204.745 + 24 6.61195 1028 0 1 25.65 23.8812 -204.838 + 24 17.8103 1017 0 0 27.1404 23.4763 -205.85 + 24 28.0272 1016 0 0 27.2067 23.45 -205.877 + 24 22.9129 1042 0 1 28.5963 22.3088 -204.85 + 24 74.8203 1043 0 1 28.65 22.2726 -204.82 + 24 73.385 1044 0 1 28.85 22.1894 -204.711 + 24 136.945 1045 0 1 29.05 22.0568 -204.663 + 24 65.5572 1046 0 1 29.25 21.8571 -204.611 +Number of digits in this event = 8 Event: 25 -Number of tracker hits in this event = 1 - 25 62.4452 753 1 0 -58.4547 -29.3978 -176.01 +Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 26 -Number of tracker hits in this event = 2 - 26 25.6168 1308 1 0 154.081 81.6723 -175.865 - 26 173.933 1673 1 1 154.823 82.6014 -174.85 -Number of digits in this event = 3 +Number of tracker hits in this event = 13 + 26 133.5 897 4 1 -0.519966 -0.375911 -84.45 + 26 167.256 898 4 0 -0.554049 -0.358801 -85.85 + 26 132.958 891 2 1 -1.73303 0.0610475 -144.45 + 26 289.467 900 2 0 -1.78172 0.0542547 -145.85 + 26 107.592 882 0 1 -3.46473 0.221904 -204.45 + 26 291.847 901 0 0 -3.49954 0.270421 -205.85 + 26 116.873 900 4 0 -0.359775 0.05 -85.9575 + 26 144.376 897 3 1 -0.496106 0.274325 -114.45 + 26 125.86 901 3 0 -0.500018 0.271153 -115.85 + 26 176.113 897 2 1 -0.569181 0.192932 -144.45 + 26 102.946 895 1 1 -0.898697 0.214528 -174.45 + 26 108.64 900 1 0 -0.909309 0.218249 -175.85 + 26 128.818 894 0 1 -1.13797 0.30274 -204.45 +Number of digits in this event = 11 Event: 27 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 +Number of tracker hits in this event = 24 + 27 146.573 900 5 1 0.240252 0.262241 -54.45 + 27 100.535 901 5 0 0.250949 0.286515 -55.85 + 27 125.208 902 4 1 0.511671 0.653109 -84.45 + 27 151.439 903 4 0 0.551932 0.676863 -85.85 + 27 105.92 906 3 1 1.33811 1.12348 -114.45 + 27 108.804 905 3 0 1.37258 1.14929 -115.85 + 27 140.83 910 2 1 2.17416 1.642 -144.45 + 27 127.53 908 2 0 2.19482 1.67708 -145.85 + 27 182.538 912 1 1 2.59996 2.38099 -174.45 + 27 223.463 911 1 0 2.61005 2.41206 -175.85 + 27 102.523 913 0 1 2.74372 3.0397 -204.45 + 27 107.719 915 0 0 2.70163 3.07753 -205.85 + 27 104.083 914 1 1 3.0186 2.3757 -174.45 + 27 119.185 913 1 1 2.85 2.40128 -174.625 + 27 187.677 1227 8 1 65.6446 58.4784 35.4616 + 27 117.158 902 3 1 0.491174 -0.74247 -114.45 + 27 194.951 896 3 0 0.515256 -0.789085 -115.85 + 27 148.41 905 2 1 1.05642 -1.6671 -144.45 + 27 107.167 891 2 0 1.0815 -1.73879 -145.85 + 27 1.22276 906 1 1 1.44972 -3.27103 -174.45 + 27 102.029 907 1 1 1.45 -3.2712 -174.458 + 27 110.241 883 1 0 1.51053 -3.29474 -175.85 + 27 120.509 914 0 1 2.93609 -3.79804 -204.45 + 27 141.959 880 0 0 2.97834 -3.88436 -205.85 +Number of digits in this event = 13 Event: 28 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 29 -Number of tracker hits in this event = 1 - 29 50.8218 1736 0 0 71.7042 167.473 -206.222 -Number of digits in this event = 1 -Event: 30 -Number of tracker hits in this event = 16 - 30 107.515 901 1 1 0.381853 -0.118737 -174.45 - 30 133.451 899 1 0 0.400953 -0.224659 -175.85 - 30 20.8672 898 1 0 0.405332 -0.25 -176.179 - 30 232.2 904 0 1 0.969335 -2.49558 -204.45 - 30 111.36 887 0 0 1.00324 -2.58672 -205.85 - 30 112.64 886 0 0 1.19059 -2.75165 -205.85 - 30 7.21345 324 7 0 -83.4826 -115.265 4.13577 - 30 185.212 481 7 1 -83.6722 -114.956 5.15 - 30 117.205 897 1 1 -0.463096 0.451812 -174.45 - 30 117.873 902 1 0 -0.447851 0.483821 -175.85 - 30 0.924242 899 0 1 -0.0510122 1.2833 -204.45 - 30 132.206 907 0 0 0.215699 1.45412 -205.85 - 30 125.632 898 0 1 -0.355638 0.824841 -204.656 - 30 15.6823 894 0 1 -1.05695 0.451454 -204.45 - 30 129.733 895 0 1 -1.05 0.453465 -204.499 - 30 110.162 902 0 0 -0.841326 0.508314 -205.85 -Number of digits in this event = 7 -Event: 31 -Number of tracker hits in this event = 4 - 31 118.442 899 0 1 -0.124778 0.207086 -204.45 - 31 209.687 900 0 0 -0.138058 0.234092 -205.85 - 31 12.6735 543 6 1 -71.4468 -59.0272 -24.7828 - 31 282.195 542 6 1 -71.45 -59.03 -24.778 -Number of digits in this event = 5 -Event: 32 -Number of tracker hits in this event = 14 - 32 153.983 993 6 1 18.728 -105.35 -24.7801 - 32 276.769 354 7 0 -26.4555 -109.271 3.75 - 32 77.1385 763 7 1 -27.3563 -109.405 5.15 - 32 62.0857 762 7 1 -27.45 -109.438 5.38163 - 32 63.9106 761 7 1 -27.65 -109.44 5.50278 - 32 96.8474 760 7 1 -27.85 -109.461 5.45798 - 32 74.5065 759 7 1 -28.05 -109.641 5.25618 - 32 69.1644 342 7 0 -30.2639 -111.607 4.15 - 32 104.938 341 7 0 -30.3662 -111.75 4.0837 - 32 78.3995 749 7 1 -30.0965 -111.788 5.15 - 32 146.941 750 7 1 -30.05 -111.771 5.38954 - 32 409.922 751 7 1 -29.85 -111.834 5.44661 - 32 5.85515 317 1 1 -116.741 61.8888 -174.599 - 32 196.097 316 1 1 -116.75 61.8886 -174.594 -Number of digits in this event = 6 -Event: 33 -Number of tracker hits in this event = 36 - 33 129.817 900 5 1 0.11999 -0.753457 -54.45 - 33 137.533 896 5 0 0.151794 -0.791174 -55.85 - 33 194.001 904 4 1 0.944061 -1.59543 -84.45 - 33 47.874 892 4 0 0.976154 -1.64331 -85.85 - 33 97.9433 891 4 0 0.980744 -1.65 -86.0426 - 33 35.6365 907 3 1 1.64879 -2.72833 -114.45 - 33 125.112 908 3 1 1.65 -2.72989 -114.51 - 33 243.592 886 3 0 1.68 -2.77145 -115.85 - 33 146.035 911 2 1 2.34598 -3.74918 -144.45 - 33 123.09 881 2 0 2.39302 -3.77352 -145.85 - 33 122.518 916 1 1 3.39105 -4.30462 -174.45 - 33 140.829 878 1 0 3.45208 -4.32291 -175.85 - 33 124.032 923 0 1 4.72123 -4.81871 -204.45 - 33 101.891 876 0 0 4.79254 -4.82869 -205.85 - 33 130.503 899 5 1 -0.162075 0.208074 -54.45 - 33 130.469 900 5 0 -0.171227 0.221143 -55.85 - 33 130.427 898 4 1 -0.32638 0.501643 -84.45 - 33 100.381 902 4 0 -0.337229 0.5108 -85.85 - 33 219.04 897 3 1 -0.613388 0.636438 -114.45 - 33 148.049 902 3 0 -0.614229 0.645735 -115.85 - 33 175.734 897 2 1 -0.613939 0.827765 -144.45 - 33 145.93 903 2 0 -0.581294 0.802932 -145.85 - 33 62.4047 906 1 1 1.31975 1.61205 -174.45 - 33 96.4127 907 1 1 1.45 1.60755 -174.614 - 33 169.587 907 1 0 2.57778 1.54196 -175.85 - 33 17.7739 1044 0 1 29.0312 -0.226843 -204.45 - 33 132.308 1045 0 1 29.05 -0.227414 -204.481 - 33 12.2096 1046 0 1 29.25 -0.23003 -204.8 - 33 125.953 898 0 0 29.9099 -0.285395 -205.85 - 33 132.151 859 0 0 46.978 -8.16032 -206.25 - 33 7.67614 858 0 0 46.8227 -8.25 -205.884 - 33 108.039 1132 0 1 46.5418 -8.72932 -204.85 - 33 22.2074 1131 0 1 46.45 -8.88691 -204.51 - 33 120.831 801 1 0 57.8363 -19.7032 -176.25 - 33 4.00718 800 1 0 57.9914 -19.85 -175.867 - 33 216.283 1191 1 1 58.2751 -20.6989 -174.85 -Number of digits in this event = 25 -Event: 34 Number of tracker hits in this event = 0 Number of digits in this event = 1 +Event: 30 +Number of tracker hits in this event = 8 + 30 109.846 900 1 1 0.0613339 0.1442 -174.45 + 30 155.732 900 1 0 0.0604731 0.103457 -175.85 + 30 398.778 899 0 1 -0.104174 -0.727944 -204.45 + 30 437.616 896 0 0 -0.128516 -0.771023 -205.85 + 30 207.164 1027 0 0 -71.0548 25.5396 -206.145 + 30 143.201 899 1 1 -0.124175 -0.298502 -174.45 + 30 128.71 898 1 0 -0.128627 -0.313152 -175.85 + 30 125.795 897 0 0 -0.203949 -0.573896 -205.85 +Number of digits in this event = 8 +Event: 31 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 32 +Number of tracker hits in this event = 2 + 32 131.815 611 6 0 -17.7319 -57.7619 -26.2376 + 32 13.6057 826 4 0 -13.1419 -14.7845 -86.1111 +Number of digits in this event = 3 +Event: 33 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 34 +Number of tracker hits in this event = 0 +Number of digits in this event = 2 Event: 35 Number of tracker hits in this event = 1 - 35 97.3964 7 3 0 73.6704 -178.648 -116.086 -Number of digits in this event = 1 + 35 82.6185 1262 3 1 72.6067 -41.6065 -114.849 +Number of digits in this event = 2 Event: 36 -Number of tracker hits in this event = 1 - 36 21.0436 1042 0 1 28.5119 -60.1844 -204.496 +Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 37 -Number of tracker hits in this event = 64 - 37 101.564 900 4 1 0.175285 -0.602632 -84.45 - 37 121.914 897 4 0 0.201999 -0.636413 -85.85 - 37 103.648 903 3 1 0.753312 -1.34924 -114.45 - 37 94.7773 893 3 0 0.784606 -1.37667 -115.85 - 37 119.183 906 2 1 1.33708 -1.8733 -144.45 - 37 129.102 890 2 0 1.37899 -1.88277 -145.85 - 37 94.7629 910 1 1 2.20996 -1.96325 -174.45 - 37 135.483 890 1 0 2.20629 -1.99289 -175.85 - 37 202.665 910 0 1 2.1951 -2.51123 -204.45 - 37 103.851 887 0 0 2.19585 -2.53609 -205.85 - 37 64.4521 909 0 1 2.05 -2.48961 -204.644 - 37 148.301 888 0 0 1.26765 -2.41778 -205.85 - 37 159.882 1215 12 1 63.0939 -39.6672 155.511 - 37 14.3832 1214 12 1 63.05 -39.7317 155.495 - 37 15.3309 1050 9 0 81.3528 30.227 64.0098 - 37 88.8662 1051 9 0 81.3418 30.25 64.0142 - 37 101.448 900 4 0 -0.0528994 0.0969361 -85.85 - 37 125.051 898 3 1 -0.377301 0.278791 -114.45 - 37 449.102 901 3 0 -0.40858 0.290186 -115.85 - 37 262.156 894 2 1 -1.1872 0.513721 -144.45 - 37 150.168 902 2 0 -1.26862 0.510793 -145.85 - 37 129.547 885 1 1 -2.86576 0.316771 -174.45 - 37 128.621 901 1 0 -2.9466 0.27781 -175.85 - 37 11.3458 877 0 1 -4.64423 -0.391075 -204.45 - 37 136.248 876 0 1 -4.65 -0.394585 -204.502 - 37 95.3744 897 0 0 -4.79431 -0.492201 -205.85 - 37 75.2095 900 2 1 0.241444 -2.59398 -144.45 - 37 195.908 901 2 1 0.25 -2.56534 -144.456 - 37 67.1657 889 1 1 -2.10735 0.894524 -174.45 - 37 83.7714 888 1 1 -2.25 0.986442 -174.594 - 37 148.108 887 1 1 -2.45 0.979052 -174.622 - 37 0.0555243 886 1 1 -2.65 0.873915 -174.85 - 37 220.733 902 1 0 -3.33582 0.45 -175.909 - 37 69.8079 903 1 0 -3.3355 0.65 -176.137 - 37 150.556 889 0 1 -2.13363 0.588042 -204.507 - 37 25.2787 903 0 0 -2.55061 0.65599 -205.85 - 37 427.667 902 0 0 -2.58116 0.65 -205.938 - 37 22.981 818 0 0 24.9588 -16.3225 -206.25 - 37 216.615 899 3 1 -0.0840297 0.381596 -114.507 - 37 96.662 903 2 0 -1.39189 0.65 -145.92 - 37 121.359 869 1 1 -6.1403 7.98882 -174.45 - 37 120.051 941 1 0 -6.51913 8.33962 -175.85 - 37 171.344 824 0 1 -15.0892 15.9191 -204.45 - 37 166.716 982 0 0 -15.4703 16.4554 -205.85 - 37 49.5322 978 0 0 -14.6415 15.6952 -205.85 - 37 142.966 977 0 0 -14.5754 15.65 -205.983 - 37 38.2141 976 0 0 -14.5114 15.45 -206.18 - 37 48.2265 908 0 0 -19.4467 1.77104 -206.25 - 37 55.4635 909 0 0 -19.5747 1.85 -206.224 - 37 131.033 910 0 0 -19.6178 2.05 -206.21 - 37 127.087 801 0 1 -19.7593 1.95672 -204.85 - 37 73.8934 802 0 1 -19.65 1.85092 -204.625 - 37 93.7912 803 0 1 -19.45 1.90596 -204.607 - 37 272.748 804 0 1 -19.25 1.87 -204.641 - 37 22.8265 805 0 1 -19.05 2.07581 -204.619 - 37 59.5088 899 2 1 -0.0921227 0.559314 -144.45 - 37 139.747 900 2 0 0.292308 0.191461 -145.85 - 37 122.009 950 1 1 10.2319 -5.19506 -174.45 - 37 18.0839 951 1 1 10.25 -5.31846 -174.794 - 37 126.978 871 1 0 10.2699 -5.69027 -175.85 - 37 95.9814 945 0 1 9.12634 -13.8888 -204.45 - 37 11.4464 944 0 1 9.05 -13.995 -204.796 - 37 106.498 828 0 0 8.73122 -14.3444 -205.85 - 37 23.0144 827 0 0 8.63483 -14.45 -206.168 -Number of digits in this event = 32 +Number of tracker hits in this event = 0 +Number of digits in this event = 2 Event: 38 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 39 -Number of tracker hits in this event = 48 - 39 117.82 898 3 1 -0.284672 0.11713 -114.45 - 39 122.429 900 3 0 -0.298618 0.116566 -115.85 - 39 133.027 897 2 1 -0.588154 0.0720408 -144.45 - 39 118.72 900 2 0 -0.602286 0.081613 -145.85 - 39 143.511 895 1 1 -0.853991 0.299583 -174.45 - 39 461.06 901 1 0 -0.858431 0.297185 -175.85 - 39 109.309 895 0 1 -0.959709 0.283316 -204.45 - 39 130.811 901 0 0 -0.965572 0.273719 -205.85 - 39 47.4185 112 0 1 -157.565 28.1701 -204.834 - 39 157.316 902 3 1 0.570725 -0.125548 -114.45 - 39 119.16 899 3 0 0.610076 -0.0686595 -115.85 - 39 105.03 904 2 1 1.00089 1.34835 -144.45 - 39 231.999 906 2 0 0.888895 1.33484 -145.85 - 39 131.633 892 1 1 -1.61012 1.21197 -174.45 - 39 168.239 906 1 0 -1.69948 1.27822 -175.85 - 39 219.128 884 0 1 -3.21155 2.03041 -204.45 - 39 127.157 910 0 0 -3.29053 2.19383 -205.85 - 39 78.8324 905 2 1 1.09059 1.41783 -144.45 - 39 23.7137 906 2 1 1.25 1.4517 -144.75 - 39 15.8239 988 1 1 17.8207 -1.46638 -174.45 - 39 104.598 989 1 1 17.85 -1.43271 -174.471 - 39 98.8941 990 1 1 18.05 -1.19105 -174.612 - 39 75.8882 991 1 1 18.25 -1.03621 -174.659 - 39 84.5931 992 1 1 18.45 -0.839066 -174.743 - 39 17.3901 903 1 0 19.8638 0.807296 -175.85 - 39 105.883 904 1 0 19.8996 0.85 -175.879 - 39 159.869 905 1 0 20.1024 1.05 -176.026 - 39 64.7052 907 1 0 20.3973 1.45 -176.192 - 39 58.4791 908 1 0 20.5141 1.65 -176.228 - 39 131.219 909 1 0 20.5918 1.85 -176.249 - 39 56.0188 910 1 0 20.6707 2.05 -176.229 - 39 84.8638 911 1 0 20.7707 2.25 -176.219 - 39 161.995 912 1 0 20.9398 2.45 -176.201 - 39 135.346 913 1 0 21.2266 2.65 -176.123 - 39 382.422 914 1 0 21.6063 2.85 -175.967 - 39 92.5612 915 1 0 22.3857 3.05 -175.983 - 39 152.785 916 1 0 22.6395 3.25 -176.11 - 39 134.145 917 1 0 23.1371 3.45 -176.021 - 39 68.8689 1661 13 0 -30.7562 152.537 184.045 - 39 12.7044 1662 13 0 -30.7587 152.55 184.053 - 39 323.495 652 0 0 -73.7433 -49.5665 -206.141 - 39 87.9053 651 0 0 -73.8657 -49.65 -206.173 - 39 24.5658 653 0 0 -73.9003 -49.45 -206.133 - 39 1.14125 916 0 1 3.25117 3.84707 -204.457 - 39 132.28 915 0 1 3.25 3.84908 -204.462 - 39 76.5943 928 0 0 3.04208 5.65889 -205.85 - 39 131.838 929 0 0 3.02858 5.85 -205.967 - 39 18.8447 930 0 0 2.88219 6.05 -206.197 -Number of digits in this event = 22 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 40 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 41 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 7 + 41 437.428 1327 2 0 -29.6617 85.6 -146.25 + 41 172.41 1194 4 0 -55.7576 59.021 -85.9606 + 41 54.4717 898 3 0 -0.506011 -0.378515 -115.85 + 41 87.2945 897 3 0 -0.598358 -0.45 -116.049 + 41 154.599 829 2 1 -14.0839 -11.9598 -144.45 + 41 104.708 830 2 1 -14.05 -11.9584 -144.458 + 41 42.7332 283 10 1 -123.451 25.9305 95.4644 +Number of digits in this event = 4 Event: 42 -Number of tracker hits in this event = 2 - 42 24.3573 542 3 1 -71.6355 -92.7604 -114.747 - 42 179.863 541 3 1 -71.65 -92.7717 -114.711 -Number of digits in this event = 2 +Number of tracker hits in this event = 26 + 42 140.608 901 5 1 0.383308 0.195673 -54.45 + 42 394.394 900 5 0 0.348462 0.21302 -55.85 + 42 126.404 898 4 1 -0.283426 0.551082 -84.45 + 42 176.325 902 4 0 -0.338273 0.599159 -85.85 + 42 126.479 893 3 1 -1.29051 1.60138 -114.45 + 42 101.233 908 3 0 -1.33082 1.66464 -115.85 + 42 15.7001 889 2 1 -2.24665 3.04212 -144.45 + 42 185.256 888 2 1 -2.25 3.04477 -144.52 + 42 102.851 915 2 0 -2.30627 3.09443 -145.85 + 42 113.213 882 1 1 -3.58818 4.19418 -174.45 + 42 316.539 920 1 0 -3.65394 4.23732 -175.85 + 42 13.4487 921 1 0 -3.67043 4.25 -176.232 + 42 143.283 875 0 1 -5.01954 5.14932 -204.45 + 42 348.49 925 0 0 -5.08402 5.21868 -205.85 + 42 134.102 900 5 1 0.0657655 0.0739409 -54.45 + 42 182.056 902 4 1 0.484112 0.383181 -84.45 + 42 151.889 901 4 0 0.512513 0.399706 -85.85 + 42 112.417 905 3 1 1.09395 0.742235 -114.45 + 42 124.195 903 3 0 1.1217 0.745563 -115.85 + 42 173.44 908 2 1 1.6979 0.800355 -144.45 + 42 121.448 903 2 0 1.71388 0.798676 -145.85 + 42 144.859 909 1 1 2.01194 0.801834 -174.45 + 42 142.693 903 1 0 2.02242 0.816197 -175.85 + 42 7.75157 910 0 1 2.24958 1.11243 -204.45 + 42 141.55 911 0 1 2.25 1.1128 -204.48 + 42 117.631 905 0 0 2.26849 1.12887 -205.85 +Number of digits in this event = 19 Event: 43 -Number of tracker hits in this event = 1 - 43 61.1409 899 0 0 -0.05 -0.0730679 -206.091 -Number of digits in this event = 1 +Number of tracker hits in this event = 6 + 43 304.364 900 1 1 0.0817416 0.0670199 -174.45 + 43 286.075 900 1 0 0.0864112 0.0914184 -175.85 + 43 130.974 900 0 1 0.182058 0.496125 -204.45 + 43 136.254 902 0 0 0.178708 0.516709 -205.85 + 43 104.079 899 0 1 -0.218676 0.107545 -204.45 + 43 99.787 900 0 0 -0.251343 0.112632 -205.85 +Number of digits in this event = 5 Event: 44 Number of tracker hits in this event = 0 Number of digits in this event = 2 @@ -3219,689 +2887,584 @@ Event: 45 Number of tracker hits in this event = 0 Number of digits in this event = 2 Event: 46 -Number of tracker hits in this event = 5 - 46 22.8835 772 1 1 -25.5083 -99.411 -174.723 - 46 34.5784 416 1 0 -24.8846 -96.8006 -175.929 - 46 114.619 778 1 1 -24.2656 -96.9787 -174.85 - 46 186.179 417 1 0 -23.5054 -96.6499 -175.85 - 46 22.1128 885 2 0 20.2402 -2.96893 -145.946 -Number of digits in this event = 2 +Number of tracker hits in this event = 15 + 46 110.677 904 2 1 0.856342 -0.0563041 -144.45 + 46 144.672 899 2 0 0.871816 -0.0522856 -145.85 + 46 136.154 905 1 1 1.1759 0.0597663 -174.45 + 46 126.798 900 1 0 1.19846 0.0692281 -175.85 + 46 138.789 908 0 1 1.65288 0.268279 -204.45 + 46 246.423 901 0 0 1.66123 0.303259 -205.85 + 46 197.478 899 3 1 -0.232435 0.313826 -114.45 + 46 99.1806 901 3 0 -0.23717 0.31999 -115.85 + 46 119.604 898 2 1 -0.343965 0.388851 -144.45 + 46 119.141 901 2 0 -0.340175 0.394564 -145.85 + 46 117.236 898 1 1 -0.293199 0.342862 -174.45 + 46 134.79 901 1 0 -0.282742 0.335688 -175.85 + 46 112.075 899 0 1 -0.116144 0.298951 -204.45 + 46 0.0966206 1451 0 0 69.1709 110.549 -206.25 + 46 5.54878 1452 0 0 69.1711 110.55 -206.25 +Number of digits in this event = 10 Event: 47 -Number of tracker hits in this event = 2 - 47 34.4963 1410 8 0 -99.8625 102.175 33.75 - 47 126.292 1291 6 0 -28.1542 78.3393 -26.25 -Number of digits in this event = 2 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 48 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 49 -Number of tracker hits in this event = 0 -Number of digits in this event = 4 +Number of tracker hits in this event = 21 + 49 139.976 899 1 1 -0.139648 0.189236 -174.45 + 49 130.441 900 1 0 -0.14484 0.212214 -175.85 + 49 114.684 899 0 1 -0.24418 0.715 -204.45 + 49 394.037 903 0 0 -0.23891 0.733278 -205.85 + 49 103.206 899 3 1 -0.16173 -0.247281 -114.45 + 49 116.515 899 3 0 -0.172548 -0.206327 -115.85 + 49 109.705 899 2 1 -0.208047 0.681845 -144.45 + 49 9.40798 901 2 0 0.33171 0.264409 -145.85 + 49 109.97 900 2 0 0.349505 0.25 -145.89 + 49 120.996 941 1 1 8.27855 -10.8243 -174.45 + 49 33.0919 854 1 0 8.77782 -9.06359 -175.85 + 49 62.15 855 1 0 8.782 -9.05 -175.859 + 49 63.3158 856 1 0 8.85098 -8.85 -176.035 + 49 37.2186 857 1 0 8.8612 -8.65 -176.181 + 49 2.90385 942 1 0 42.649 8.45793 -176.25 + 49 454.741 941 1 0 42.6579 8.45 -176.24 + 49 44.325 940 1 0 42.8905 8.25 -175.958 + 49 80.0882 1116 1 1 43.3566 7.43659 -174.85 + 49 80.8388 1117 1 1 43.45 7.29407 -174.692 + 49 86.6678 936 1 0 44.0216 7.28438 -175.85 + 49 52.1973 935 1 0 44.0954 7.25 -176.107 +Number of digits in this event = 6 Event: 50 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 24 + 50 123.799 898 4 1 -0.385503 0.143679 -84.45 + 50 134.711 900 4 0 -0.42682 0.149721 -85.85 + 50 130.301 895 3 1 -0.998008 0.116809 -114.45 + 50 309.695 900 3 0 -1.01609 0.120625 -115.85 + 50 166.331 899 2 0 -1.18488 -0.0595159 -145.85 + 50 121.345 892 1 1 -1.57434 -1.48059 -174.45 + 50 154.477 892 1 0 -1.61023 -1.59208 -175.85 + 50 209.398 888 0 1 -2.4071 -3.95338 -204.45 + 50 119.462 879 0 0 -2.46315 -4.13377 -205.85 + 50 0.939451 887 0 1 -2.45236 -3.88036 -204.45 + 50 85.3836 889 0 1 -2.25 -3.89901 -204.671 + 50 224.838 878 0 0 -1.67829 -4.25 -205.867 + 50 186.894 851 0 0 -5.41858 -9.77342 -206.25 + 50 61.5495 850 0 0 -5.54447 -9.85 -206.076 + 50 11.8488 862 0 1 -7.63485 -9.05685 -204.85 + 50 255.57 861 0 1 -7.65 -9.05065 -204.842 + 50 71.9087 860 0 1 -7.85 -8.91155 -204.694 + 50 106.872 859 0 1 -8.05 -8.82478 -204.645 + 50 131.845 901 3 1 0.424937 0.0924445 -114.45 + 50 120.842 903 1 1 0.724927 -0.127591 -174.45 + 50 117.494 899 1 0 0.737702 -0.154609 -175.85 + 50 119.448 904 0 1 1.01066 -0.744052 -204.45 + 50 113.536 896 0 0 1.00374 -0.773748 -205.85 + 50 108.061 1723 4 0 -45.9559 164.849 -86.25 +Number of digits in this event = 16 Event: 51 Number of tracker hits in this event = 0 -Number of digits in this event = 3 +Number of digits in this event = 1 Event: 52 -Number of tracker hits in this event = 5 - 52 121.843 902 1 1 0.580682 0.255073 -174.45 - 52 233.066 900 1 0 0.610133 0.244634 -175.85 - 52 138.058 899 1 1 -0.106178 0.126694 -174.45 - 52 116.843 899 0 1 -0.218809 0.55495 -204.45 - 52 135.022 902 0 0 -0.224014 0.572733 -205.85 -Number of digits in this event = 6 +Number of tracker hits in this event = 42 + 52 121.158 898 3 1 -0.259356 -0.0650526 -114.45 + 52 152.687 899 3 0 -0.306842 -0.0700238 -115.85 + 52 388.372 893 2 1 -1.30711 -0.135919 -144.45 + 52 359.743 899 2 0 -1.32319 -0.146963 -145.85 + 52 187.464 891 1 1 -1.70296 -0.340836 -174.45 + 52 115.767 898 1 0 -1.74012 -0.363233 -175.85 + 52 152.99 887 0 1 -2.47792 -0.825717 -204.45 + 52 175.168 896 0 0 -2.54221 -0.847773 -205.85 + 52 99.3794 895 0 0 -2.54853 -0.85 -205.986 + 52 215.772 901 1 0 -1.63718 0.377613 -175.85 + 52 78.2741 902 1 0 -1.6303 0.45 -175.959 + 52 21.532 903 1 0 -1.69967 0.65 -176.184 + 52 78.7433 1067 1 0 -2.00607 33.5354 -176.25 + 52 78.0645 1068 1 0 -1.9894 33.65 -176.164 + 52 114.913 1069 1 0 -1.9939 33.85 -176.196 + 52 485.258 1151 1 0 -25.205 50.4099 -176.25 + 52 35.1555 1150 1 0 -24.7194 50.25 -176.055 + 52 97.337 892 1 1 -1.65 -0.240174 -174.826 + 52 161.324 910 1 0 -1.01906 2.06281 -175.85 + 52 72.7198 911 1 0 -1.01043 2.25 -175.896 + 52 111.566 900 1 1 0.0674158 1.88745 -174.85 + 52 152.532 901 1 1 0.25 1.77972 -174.698 + 52 131.151 884 1 1 -3.12123 0.379858 -174.45 + 52 231.211 872 0 1 -5.54424 1.42758 -204.45 + 52 128.713 907 0 0 -5.64779 1.4754 -205.85 + 52 124.183 894 1 1 -1.07093 0.324845 -174.45 + 52 118.946 900 1 0 -1.08215 0.25 -175.882 + 52 252.716 895 0 1 -1.04936 -0.993557 -204.45 + 52 104.485 899 5 1 -0.054724 -0.481917 -54.45 + 52 124.704 898 5 0 -0.0833512 -0.443218 -55.85 + 52 390.693 887 3 1 -2.50441 -1.30695 -114.45 + 52 26.051 893 3 0 -2.56186 -1.44022 -115.85 + 52 80.4266 892 3 0 -2.56586 -1.45 -115.953 + 52 117.261 882 2 1 -3.48683 -4.29673 -144.45 + 52 108.988 877 2 0 -3.49238 -4.48691 -145.85 + 52 132.789 879 1 1 -4.07562 -8.07581 -174.45 + 52 141.274 858 1 0 -4.07306 -8.31603 -175.85 + 52 125.325 874 0 1 -5.1404 -13.5063 -204.45 + 52 27.9262 832 0 0 -5.34498 -13.6419 -205.85 + 52 88.0456 831 0 0 -5.3603 -13.65 -205.954 + 52 235.041 881 2 1 -3.80353 -2.19377 -144.531 + 52 39.7216 1258 12 0 143.785 71.7414 153.854 +Number of digits in this event = 23 Event: 53 -Number of tracker hits in this event = 1 - 53 20.8768 384 10 0 -13.898 -103.335 93.9239 -Number of digits in this event = 3 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 54 -Number of tracker hits in this event = 74 - 54 192.615 898 5 1 -0.438337 -0.188724 -54.45 - 54 85.934 899 5 0 -0.437669 -0.167396 -55.85 - 54 122.323 898 4 1 -0.377136 0.378203 -84.45 - 54 188.036 901 4 0 -0.320736 0.424831 -85.85 - 54 335.264 902 3 1 0.620019 1.20031 -114.45 - 54 176.311 905 3 0 0.653427 1.14269 -115.85 - 54 156.096 904 2 1 0.883801 -0.302972 -144.45 - 54 113.071 897 2 0 1.01813 -0.49942 -145.85 - 54 195.367 918 1 1 3.71448 -4.34833 -174.45 - 54 132.339 877 1 0 3.84631 -4.56403 -175.85 - 54 97.2287 932 0 1 6.54117 -8.75897 -204.45 - 54 112.709 855 0 0 6.65792 -8.93491 -205.85 - 54 236.582 900 2 1 0.0898048 2.03958 -144.45 - 54 90.5547 895 1 1 -0.937895 -0.733575 -174.45 - 54 153.935 896 1 0 -0.899057 -0.676345 -175.85 - 54 114.113 902 0 1 0.475229 -0.144342 -204.45 - 54 27.9132 860 2 0 -86.0945 -8.03405 -146.04 - 54 164.742 893 1 1 -1.31279 1.92966 -174.45 - 54 548.666 892 1 1 -1.45 2.03549 -174.715 - 54 348.521 912 1 0 -2.5257 2.4795 -175.85 - 54 240.901 901 4 1 0.418424 0.212404 -84.45 - 54 122.592 900 4 0 0.489981 0.213504 -85.85 - 54 132.143 910 3 1 2.10146 0.418414 -114.45 - 54 106.259 901 3 0 2.26028 0.374211 -115.85 - 54 125.557 926 2 1 5.35795 -0.647478 -144.45 - 54 107.334 896 2 0 5.63597 -0.693399 -145.85 - 54 146.718 954 1 1 10.9525 -1.74557 -174.45 - 54 120.589 891 1 0 11.2752 -1.7754 -175.85 - 54 185.043 991 0 1 18.3155 -2.49905 -204.45 - 54 122.167 887 0 0 18.7565 -2.47464 -205.85 - 54 3.60219 901 1 0 -0.88064 0.258553 -175.85 - 54 80.9156 900 1 0 -0.877057 0.25 -175.858 - 54 59.0347 899 1 0 -0.749148 -0.05 -176.12 - 54 124.47 980 0 1 16.0838 -34.6002 -204.45 - 54 34.1704 981 0 1 16.25 -34.8952 -204.772 - 54 91.7902 720 0 0 16.7648 -35.9588 -205.85 - 54 112.059 719 0 0 16.8091 -36.05 -205.942 - 54 44.8662 718 0 0 16.9124 -36.25 -206.138 - 54 112.387 868 1 0 -1.67192 -6.27208 -175.85 - 54 24.3302 868 0 1 -6.44347 -13.2969 -204.45 - 54 116.421 867 0 1 -6.45 -13.2986 -204.514 - 54 96.5753 833 0 0 -6.65095 -13.314 -205.85 - 54 140.652 900 5 1 0.157606 0.304631 -54.45 - 54 152.412 901 5 0 0.167689 0.329939 -55.85 - 54 198.543 903 4 0 0.28818 0.823991 -85.85 - 54 131.913 908 3 0 0.540515 1.72564 -115.85 - 54 107.927 899 2 1 -0.0510544 3.85475 -144.45 - 54 113.531 919 2 0 -0.0714482 3.90657 -145.85 - 54 97.8593 901 1 1 0.371163 5.60631 -174.45 - 54 102.343 928 1 0 0.331328 5.68442 -175.85 - 54 123.663 897 0 1 -0.529718 7.2258 -204.45 - 54 155.265 936 0 0 -0.596542 7.33912 -205.85 - 54 72.9991 891 1 1 -1.65 -5.99508 -174.666 - 54 43.0472 890 1 1 -1.85 -5.94107 -174.755 - 54 151.587 872 1 0 -2.00191 -5.55095 -175.85 - 54 115.2 900 4 1 0.146526 -0.189823 -84.45 - 54 122.217 899 4 0 0.146572 -0.218992 -85.85 - 54 119.914 900 3 1 0.232099 -0.816907 -114.45 - 54 118.416 895 3 0 0.239459 -0.860291 -115.85 - 54 134.997 902 2 1 0.515915 -1.83081 -144.45 - 54 105.43 890 2 0 0.531099 -1.8564 -145.85 - 54 184.317 904 1 1 0.871151 -2.24706 -174.45 - 54 146.4 888 1 0 0.889904 -2.26852 -175.85 - 54 114.668 905 0 1 1.20514 -2.76249 -204.45 - 54 121.479 886 0 0 1.22306 -2.77986 -205.85 - 54 35.9886 787 2 0 41.8894 -22.5301 -145.925 - 54 50.3047 917 1 1 3.65 -1.1412 -174.709 - 54 89.4366 890 1 0 3.10702 -1.89582 -175.85 - 54 76.8018 889 1 0 2.99335 -2.05 -176.089 - 54 129.248 796 0 1 -20.8084 -16.9844 -204.45 - 54 258.25 817 0 0 -20.0326 -16.6408 -205.85 - 54 337.423 1201 1 1 60.3002 -118.639 -174.584 - 54 43.2674 705 0 0 -17.0495 -38.8594 -206.026 - 54 229.779 806 0 1 -18.8299 -41.2743 -204.839 -Number of digits in this event = 41 +Number of tracker hits in this event = 2 + 54 167.801 494 4 0 45.8833 -81.1175 -86.1134 + 54 17.3191 1133 1 1 46.8243 -39.7248 -174.535 +Number of digits in this event = 2 Event: 55 Number of tracker hits in this event = 1 - 55 96.4929 901 1 0 -76.2126 0.381374 -176.25 -Number of digits in this event = 2 + 55 19.3727 1106 6 0 72.8768 41.32 -25.9284 +Number of digits in this event = 1 Event: 56 -Number of tracker hits in this event = 26 - 56 284.775 900 3 1 0.220826 1.27031 -114.45 - 56 119.928 906 3 0 0.236666 1.26905 -115.85 - 56 176.376 902 2 1 0.552676 1.27132 -144.45 - 56 111.178 906 2 0 0.575963 1.35106 -145.85 - 56 196.058 903 1 1 0.838829 2.81768 -174.45 - 56 63.742 904 1 1 0.85 2.8 -174.607 - 56 66.5012 913 1 0 0.944586 2.66818 -175.85 - 56 80.7341 912 1 0 0.957931 2.65 -176.025 - 56 113.149 919 0 1 4.01055 0.230405 -204.45 - 56 34.285 920 0 1 4.05 0.17387 -204.769 - 56 55.1639 899 0 0 4.21385 -0.05 -206.055 - 56 146.647 901 2 1 0.256875 0.246397 -144.45 - 56 157.784 901 2 0 0.278505 0.257017 -145.85 - 56 125.529 902 1 0 0.760829 0.499895 -175.85 - 56 110.313 905 0 1 1.18012 0.989665 -204.45 - 56 127.005 904 0 0 1.18085 1.02395 -205.85 - 56 52.7858 899 2 1 -0.120175 -0.148961 -144.754 - 56 254.471 899 2 0 -0.105687 -0.175064 -145.85 - 56 66.8016 901 1 1 0.260171 1.05649 -174.45 - 56 50.6508 900 1 1 0.25 1.06992 -174.664 - 56 130.775 905 1 0 0.110508 1.11141 -175.85 - 56 190.801 886 0 1 -2.6848 3.72552 -204.45 - 56 101.156 919 0 0 -2.88919 3.89741 -205.85 - 56 156.284 900 1 0 -0.0580145 0.0775194 -175.85 - 56 113.461 896 0 1 -0.821296 0.482102 -204.45 - 56 109.643 902 0 0 -0.839582 0.509171 -205.85 -Number of digits in this event = 12 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 57 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 58 Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of digits in this event = 3 Event: 59 -Number of tracker hits in this event = 19 - 59 110.984 898 3 1 -0.274359 -0.960917 -114.45 - 59 138.407 895 3 0 -0.287095 -0.88595 -115.85 - 59 132.537 898 2 1 -0.349256 0.619479 -144.45 - 59 213.649 903 2 0 -0.317187 0.73105 -145.85 - 59 135.666 902 1 1 0.599114 3.16385 -174.45 - 59 126.295 918 1 0 0.703529 3.67521 -175.85 - 59 151.221 1112 1 0 26.4926 42.5449 -176.25 - 59 83.4696 1042 1 1 28.585 42.767 -174.85 - 59 107.567 1043 1 1 28.65 42.778 -174.814 - 59 106.853 1044 1 1 28.85 42.8011 -174.68 - 59 381.138 1045 1 1 29.05 42.8508 -174.564 - 59 48.4785 1046 1 1 29.25 43.3082 -174.786 - 59 4.05875 1100 1 0 28.269 40.0864 -175.85 - 59 91.3023 1050 1 1 30.1403 41.3715 -174.85 - 59 4.58427 1121 1 0 27.957 44.4178 -175.85 - 59 212.867 896 0 1 -0.766531 -0.0507523 -204.45 - 59 137.627 899 0 0 -0.760222 -0.0515685 -205.85 - 59 165.145 916 1 0 0.641686 3.28857 -175.949 - 59 218.225 901 1 1 0.423562 3.74276 -174.85 -Number of digits in this event = 12 +Number of tracker hits in this event = 17 + 59 145.831 900 2 1 0.145906 -0.0800481 -144.45 + 59 117.863 899 0 1 -0.129869 2.92505 -204.45 + 59 426.851 914 0 0 -0.137243 3.03785 -205.85 + 59 86.0184 915 0 0 -0.138101 3.05 -206.003 + 59 68.4113 899 3 1 -0.05 0.102826 -114.628 + 59 152.087 898 3 1 -0.25 0.248239 -114.633 + 59 181.724 897 3 1 -0.45 0.485933 -114.649 + 59 11.3475 896 3 1 -0.65 0.812614 -114.842 + 59 247.415 904 3 0 -1.07776 0.977022 -115.85 + 59 36.2968 905 3 0 -1.0474 1.05 -116.015 + 59 102.539 900 0 1 0.234255 -0.337248 -204.45 + 59 158.126 898 0 0 0.241474 -0.342587 -205.85 + 59 113.483 900 1 0 -0.0674724 0.180206 -175.85 + 59 17.7553 901 1 0 -0.081634 0.25 -176.226 + 59 110.215 893 0 1 -1.27256 6.9312 -204.45 + 59 20.3664 934 0 0 -1.4891 6.85623 -205.85 + 59 106.154 933 0 0 -1.50334 6.85 -205.946 +Number of digits in this event = 7 Event: 60 Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of digits in this event = 2 Event: 61 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 21 + 61 108.872 899 4 1 -0.120353 -1.03565 -84.45 + 61 139.65 894 4 0 -0.367786 -1.13792 -85.85 + 61 104.69 872 3 1 -5.48051 -2.4799 -114.45 + 61 134.127 888 3 0 -5.43709 -2.42972 -115.85 + 61 146.558 877 2 1 -4.63038 -1.41023 -144.45 + 61 113.798 892 2 0 -4.29185 -1.50357 -145.85 + 61 19.5439 913 1 1 2.82489 -2.74747 -174.45 + 61 87.017 914 1 1 2.85 -2.77625 -174.536 + 61 91.7624 883 1 0 3.24999 -3.31522 -175.85 + 61 28.9838 882 1 0 3.34926 -3.45 -176.167 + 61 198.338 956 0 1 11.3598 -15.4759 -204.45 + 61 60.099 816 0 0 11.7236 -16.6907 -205.85 + 61 81.0101 815 0 0 11.7792 -16.85 -206.042 + 61 213.492 899 1 1 -0.14171 0.862373 -174.45 + 61 106.497 904 1 0 -0.145628 0.879347 -175.85 + 61 136.019 899 0 1 -0.232379 1.18948 -204.45 + 61 97.8545 905 0 0 -0.236433 1.20502 -205.85 + 61 102.421 901 0 1 0.313084 0.553076 -204.45 + 61 46.5314 900 0 1 0.25 0.601193 -204.495 + 61 247.503 643 1 0 -85.7121 -51.273 -176.142 + 61 179.232 1620 2 1 144.312 25.9182 -144.45 +Number of digits in this event = 9 Event: 62 -Number of tracker hits in this event = 11 - 62 107.122 899 1 1 -0.142148 0.111694 -174.45 - 62 110.016 900 1 0 -0.153915 0.1086 -175.85 - 62 171.952 1150 4 0 44.9551 50.1457 -86.0092 - 62 92.9727 1151 4 0 44.9465 50.25 -85.856 - 62 74.149 1121 4 1 44.3832 49.8787 -84.85 - 62 36.1689 1651 3 0 81.949 150.427 -116.25 - 62 308.418 1650 3 0 81.9957 150.35 -116.184 - 62 173.434 894 1 1 -1.15417 0.343475 -174.45 - 62 370.204 901 1 0 -1.21624 0.357942 -175.85 - 62 117.948 887 0 1 -2.52454 0.625099 -204.45 - 62 124.737 902 0 0 -2.59958 0.625229 -205.85 -Number of digits in this event = 6 +Number of tracker hits in this event = 24 + 62 98.6906 900 0 1 0.177562 0.224452 -204.45 + 62 159.138 900 0 0 0.175018 0.239659 -205.85 + 62 131.717 219 5 0 81.3779 -136.219 -56.0989 + 62 102.381 899 0 1 -0.110281 -0.0741394 -204.45 + 62 134.108 899 0 0 -0.122864 -0.0730749 -205.85 + 62 46.5809 275 3 0 43.2751 -125.125 -116.25 + 62 182.413 274 3 0 43.2923 -125.15 -116.166 + 62 277.673 1115 3 1 43.2316 -125.315 -114.85 + 62 21.7074 219 3 0 51.0885 -136.304 -116.25 + 62 419.256 218 3 0 51.1205 -136.35 -116.184 + 62 230.797 1156 3 1 51.255 -136.746 -114.85 + 62 78.3239 155 4 0 34.4349 -149.064 -86.25 + 62 284.619 154 4 0 34.3156 -149.15 -86.0511 + 62 31.0232 1035 4 1 27.1624 -149.257 -84.85 + 62 55.0173 1034 4 1 27.05 -149.255 -84.8334 + 62 57.688 1033 4 1 26.85 -149.237 -84.7911 + 62 48.3562 1032 4 1 26.65 -149.204 -84.7609 + 62 53.85 1031 4 1 26.45 -149.198 -84.7527 + 62 33.8645 163 4 0 25.5775 -147.426 -85.85 + 62 141.506 164 4 0 25.5402 -147.35 -85.8975 + 62 155.089 165 4 0 25.3019 -147.15 -85.8784 + 62 26.3731 387 4 0 28.5167 -102.589 -86.25 + 62 125.581 388 4 0 28.5282 -102.55 -86.2119 + 62 58.8538 389 4 0 28.7289 -102.35 -86.1716 +Number of digits in this event = 12 Event: 63 -Number of tracker hits in this event = 1 - 63 194.92 91 5 1 -161.827 48.8164 -54.5907 +Number of tracker hits in this event = 11 + 63 65.5247 687 2 1 -42.6013 -67.9721 -144.701 + 63 91.6614 686 2 1 -42.65 -68.0423 -144.626 + 63 16.2717 764 3 0 -28.1883 -27.1025 -116.25 + 63 68.4342 765 3 0 -28.17 -27.05 -116.215 + 63 53.896 766 3 0 -28.1352 -26.85 -116.118 + 63 76.2512 767 3 0 -28.1198 -26.65 -116.077 + 63 60.1821 768 3 0 -28.039 -26.45 -116.037 + 63 51.4846 769 3 0 -27.9207 -26.25 -116.1 + 63 67.7855 770 3 0 -27.8382 -26.05 -116.159 + 63 83.6445 771 3 0 -27.7108 -25.85 -116.193 + 63 39.7928 772 3 0 -27.532 -25.65 -116.223 Number of digits in this event = 2 Event: 64 -Number of tracker hits in this event = 57 - 64 119.297 898 3 1 -0.397988 -0.13902 -114.45 - 64 112.943 899 3 0 -0.42258 -0.16259 -115.85 - 64 105.493 895 2 1 -0.971099 -0.680728 -144.45 - 64 124.276 896 2 0 -0.993321 -0.714486 -145.85 - 64 113.751 892 1 1 -1.4507 -1.39023 -174.45 - 64 127.524 893 1 0 -1.47059 -1.42552 -175.85 - 64 108.108 890 0 1 -1.87992 -2.11966 -204.45 - 64 110.29 889 0 0 -1.90122 -2.18924 -205.85 - 64 233.883 896 2 1 -0.747471 -0.308145 -144.45 - 64 97.3787 898 2 0 -0.725689 -0.281987 -145.85 - 64 143.019 898 1 1 -0.411469 0.42382 -174.45 - 64 109.523 901 1 0 -0.385429 0.401829 -175.85 - 64 167.45 901 0 1 0.290657 -0.239069 -204.45 - 64 115.476 898 0 0 0.260019 -0.3534 -205.85 - 64 1.15678 904 4 1 1.04844 0.795044 -84.45 - 64 232.717 905 4 1 1.05 0.790312 -84.4518 - 64 57.5368 906 4 1 1.25 0.192458 -84.7207 - 64 82.2347 891 4 0 2.43271 -1.65711 -85.85 - 64 70.8878 890 4 0 2.56414 -1.85 -85.967 - 64 73.9842 889 4 0 2.64493 -2.05 -86.0236 - 64 59.4734 888 4 0 2.70246 -2.25 -86.0677 - 64 109.972 887 4 0 2.77857 -2.45 -86.1561 - 64 15.7632 886 4 0 2.90598 -2.65 -86.2213 - 64 27.8428 313 4 0 54.1367 -117.47 -86.25 - 64 92.6089 312 4 0 54.1641 -117.55 -86.2094 - 64 76.485 311 4 0 54.3502 -117.75 -86.1821 - 64 71.9636 310 4 0 54.4301 -117.95 -86.1435 - 64 83.439 309 4 0 54.4466 -118.15 -86.1533 - 64 84.7744 308 4 0 54.522 -118.35 -86.1251 - 64 64.6859 307 4 0 54.5867 -118.55 -86.067 - 64 93.464 306 4 0 54.5919 -118.75 -86.0893 - 64 115.353 899 2 0 -0.437794 -0.189766 -145.85 - 64 28.1416 924 1 1 5.02238 2.42794 -174.45 - 64 88.3254 925 1 1 5.05 2.42201 -174.539 - 64 111.322 911 1 0 5.43315 2.30318 -175.85 - 64 35.8198 972 0 1 14.5903 0.16163 -204.45 - 64 57.7638 973 0 1 14.65 0.185659 -204.612 - 64 132.416 901 0 0 15.132 0.281093 -205.85 - 64 139.835 906 3 1 1.34304 0.0726547 -114.45 - 64 51.3033 905 3 1 1.23839 -0.05 -114.694 - 64 59.7809 896 3 0 1.22886 -0.743615 -115.85 - 64 97.9875 895 3 0 1.22898 -0.85 -116.031 - 64 42.3348 894 3 0 1.24582 -1.05 -116.198 - 64 166.38 900 3 0 1.25565 0.0906517 -115.85 - 64 117.618 898 2 1 -0.4247 1.98863 -144.45 - 64 99.491 908 2 0 -0.222163 1.73964 -145.85 - 64 124.474 929 1 1 5.87802 -5.76326 -174.45 - 64 10.0751 866 1 0 6.31467 -6.83052 -175.85 - 64 110.9 865 1 0 6.32257 -6.85 -175.874 - 64 49.6398 864 1 0 6.40165 -7.05 -176.124 - 64 168.758 975 0 1 15.0774 -27.6513 -204.45 - 64 126.811 976 0 1 15.25 -27.9629 -204.75 - 64 21.9324 755 0 0 15.7069 -29.0035 -205.85 - 64 104.791 754 0 0 15.7269 -29.05 -205.899 - 64 61.3771 753 0 0 15.8181 -29.25 -206.084 - 64 48.5053 13 7 1 -177.534 -46.2497 5.31526 - 64 193.94 12 7 1 -177.55 -46.2163 5.37806 -Number of digits in this event = 15 +Number of tracker hits in this event = 3 + 64 149.611 79 2 1 -164.165 18.4372 -144.794 + 64 8.43757 989 2 0 -164.32 17.9401 -145.85 + 64 52.9138 81 2 1 -163.759 15.7216 -144.85 +Number of digits in this event = 3 Event: 65 Number of tracker hits in this event = 1 - 65 48.7714 900 0 0 -0.181148 0.05 -206.137 + 65 127.588 1229 7 0 57.3409 65.9959 4.09801 Number of digits in this event = 2 Event: 66 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 9 + 66 121.899 900 2 0 0.10522 0.106797 -145.85 + 66 205.433 909 1 1 2.00404 2.86923 -174.45 + 66 24.3983 910 1 1 2.05 2.8561 -174.75 + 66 146.467 913 1 0 2.194 2.83044 -175.85 + 66 104.045 931 0 1 6.34675 2.71162 -204.45 + 66 6.33901 911 0 0 6.40503 2.25617 -205.85 + 66 123.978 910 0 0 6.4057 2.25 -205.869 + 66 143.671 615 6 0 148.209 -56.8942 -26.25 + 66 14.9319 884 0 0 36.6439 -3.05469 -206.054 +Number of digits in this event = 6 Event: 67 +Number of tracker hits in this event = 2 + 67 51.2408 1352 3 0 -57.4573 90.622 -116.25 + 67 118.07 1532 3 0 -72.5639 126.663 -116.25 +Number of digits in this event = 2 +Event: 68 Number of tracker hits in this event = 0 Number of digits in this event = 1 -Event: 68 -Number of tracker hits in this event = 1 - 68 77.4332 1135 1 0 67.4776 47.229 -176.167 -Number of digits in this event = 2 Event: 69 -Number of tracker hits in this event = 2 - 69 194.511 1099 0 0 -148.869 39.9112 -206.25 - 69 123.07 1100 0 0 -148.96 40.05 -206.061 -Number of digits in this event = 4 -Event: 70 Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 70 +Number of tracker hits in this event = 1 + 70 52.1194 1109 3 0 -72.5758 41.8728 -115.878 Number of digits in this event = 2 Event: 71 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 72 -Number of tracker hits in this event = 15 - 72 111.05 904 2 1 0.891206 -0.0629173 -144.45 - 72 108.906 892 0 1 -1.52553 1.14955 -204.45 - 72 0.693621 891 0 1 -1.65 1.21234 -204.845 - 72 115.316 906 0 0 -1.95353 1.38435 -205.85 - 72 3.58579 907 0 0 -2.06937 1.45 -206.234 - 72 457.291 900 1 1 0.131197 0.162643 -174.45 - 72 397.691 900 1 0 0.129091 0.169891 -175.85 - 72 101.976 900 0 1 0.0823207 0.356995 -204.45 - 72 128.144 901 0 0 0.0751519 0.363574 -205.85 - 72 13.1692 898 0 1 -0.42883 2.46721 -204.45 - 72 116.622 897 0 1 -0.45 2.47764 -204.502 - 72 87.0219 912 0 0 -1.06316 2.62928 -205.85 - 72 51.2297 913 0 0 -1.18376 2.65 -206.108 - 72 123.881 896 0 1 -0.814131 1.63571 -204.45 - 72 158.264 908 0 0 -0.803051 1.77065 -205.85 -Number of digits in this event = 6 +Number of tracker hits in this event = 23 + 72 50.4667 908 4 1 1.65144 0.784313 -84.45 + 72 78.0764 907 4 1 1.65 0.829 -84.6488 + 72 114.875 905 4 0 1.64334 1.09969 -85.85 + 72 149.995 906 3 1 1.36805 7.84288 -114.45 + 72 107.449 938 3 0 1.08374 7.81271 -115.85 + 72 139.334 875 2 1 -4.94206 7.02826 -144.45 + 72 107.33 934 2 0 -5.18916 7.02444 -145.85 + 72 133.717 850 1 1 -9.88313 7.36208 -174.45 + 72 148.963 935 1 0 -9.88694 7.1823 -175.85 + 72 102.888 850 0 1 -9.97709 3.23323 -204.45 + 72 19.4653 849 0 1 -10.05 3.17681 -204.776 + 72 135.783 914 0 0 -10.2641 2.96117 -205.85 + 72 82.1801 900 2 1 0.232713 13.5017 -144.561 + 72 123.209 369 7 0 -115.651 -106.244 3.8641 + 72 137.04 899 3 1 -0.107692 -0.125618 -114.45 + 72 119.241 899 3 0 -0.121064 -0.12038 -115.85 + 72 142.137 897 1 1 -0.599747 0.312466 -174.45 + 72 195.495 901 1 0 -0.600934 0.319469 -175.85 + 72 203.025 897 0 1 -0.609832 0.489774 -204.45 + 72 121.064 902 0 0 -0.608025 0.516287 -205.85 + 72 52.3143 896 0 1 -0.65 0.359234 -204.685 + 72 107.905 899 0 0 -1.04609 -0.11689 -205.85 + 72 20.3961 898 0 0 -1.16391 -0.25 -206.178 +Number of digits in this event = 12 Event: 73 -Number of tracker hits in this event = 34 - 73 144.692 900 5 1 0.235852 -0.164498 -54.45 - 73 325.719 899 5 0 0.233771 -0.141978 -55.85 - 73 131.305 900 4 1 0.0910716 0.358744 -84.45 - 73 255.899 901 4 0 0.0814639 0.362136 -85.85 - 73 113.595 899 3 1 -0.244114 0.441245 -114.45 - 73 99.364 902 3 0 -0.228115 0.460659 -115.85 - 73 179.688 900 2 1 0.171054 0.797704 -144.45 - 73 192.531 903 2 0 0.185876 0.807097 -145.85 - 73 120.482 901 1 1 0.304195 1.14357 -174.45 - 73 108.025 905 1 0 0.262627 1.13093 -175.85 - 73 135.219 897 0 1 -0.644715 0.761651 -204.45 - 73 438.793 903 0 0 -0.660278 0.71404 -205.85 - 73 59.3333 900 0 0 12.2091 0.145416 -206.25 - 73 81.86 899 0 0 12.4814 -0.05 -205.993 - 73 133.871 968 0 1 13.6886 -0.717677 -204.85 - 73 254.198 969 0 1 13.85 -0.783335 -204.707 - 73 176.821 970 0 1 14.05 -0.920653 -204.544 - 73 252.642 967 0 1 13.65 -1.13444 -204.751 - 73 104.493 888 0 0 15.5208 -2.37744 -205.85 - 73 15.9891 997 0 1 19.6373 0.798643 -204.85 - 73 12.4073 896 0 0 18.6375 -0.664136 -205.85 - 73 111.343 899 5 1 -0.146895 0.153641 -54.45 - 73 111.927 900 5 0 -0.156325 0.16664 -55.85 - 73 144.861 898 4 1 -0.379957 0.427768 -84.45 - 73 111.272 897 3 1 -0.501218 0.302663 -114.45 - 73 110.576 901 3 0 -0.464551 0.296183 -115.85 - 73 103.383 901 2 1 0.292381 0.217034 -144.45 - 73 10.2727 900 2 0 0.357053 0.249094 -145.85 - 73 115.481 901 2 0 0.358875 0.25 -145.889 - 73 99.578 907 1 1 1.60628 0.943676 -174.45 - 73 147.845 904 1 0 1.64819 0.94944 -175.85 - 73 403.414 913 0 1 2.67227 1.05561 -204.45 - 73 199.703 904 0 0 2.73473 1.03737 -205.85 - 73 290.312 899 0 1 -0.108079 0.795437 -204.45 -Number of digits in this event = 19 -Event: 74 -Number of tracker hits in this event = 2 - 74 28.9397 823 0 0 -2.57313 -15.2783 -205.876 - 74 156.678 886 0 1 -2.68072 -15.9127 -204.85 -Number of digits in this event = 3 -Event: 75 -Number of tracker hits in this event = 9 - 75 152.639 899 2 1 -0.147797 0.153331 -144.45 - 75 107.597 900 2 0 -0.13702 0.178822 -145.85 - 75 121.203 900 1 1 0.0897943 0.623789 -174.45 - 75 158.848 903 1 0 0.154073 0.656673 -175.85 - 75 191.175 907 0 1 1.54545 1.26845 -204.45 - 75 144.248 906 0 0 1.61202 1.29858 -205.85 - 75 151.52 899 1 0 -0.338062 -0.0520975 -175.85 - 75 330.416 898 0 1 -0.423447 -0.306871 -204.45 - 75 148.835 898 0 0 -0.427294 -0.324081 -205.85 -Number of digits in this event = 9 -Event: 76 -Number of tracker hits in this event = 32 - 76 123.155 898 4 1 -0.407041 -0.608988 -84.45 - 76 117.065 896 4 0 -0.496268 -0.681396 -85.85 - 76 111.171 887 3 1 -2.56803 -2.25947 -114.45 - 76 117.161 889 3 0 -2.73924 -2.22512 -115.85 - 76 114.254 867 2 1 -6.56895 -1.17624 -144.45 - 76 101.936 894 2 0 -6.80695 -1.07786 -145.85 - 76 41.39 841 1 1 -11.8227 0.738593 -174.45 - 76 96.7347 840 1 1 -11.85 0.738619 -174.573 - 76 122.555 903 1 0 -12.141 0.752121 -175.85 - 76 88.379 807 0 1 -18.5823 1.10128 -204.45 - 76 55.0675 806 0 1 -18.65 1.09634 -204.739 - 76 105.96 905 0 0 -18.8997 1.08055 -205.85 - 76 289.153 901 3 1 0.397726 -0.254076 -114.45 - 76 119.398 898 3 0 0.432598 -0.257917 -115.85 - 76 120.188 907 2 1 1.47538 0.297338 -144.45 - 76 18.7171 906 2 1 1.45 0.305577 -144.78 - 76 111.481 901 2 0 1.36458 0.316547 -145.85 - 76 12.7052 897 1 1 -0.645212 1.41863 -174.45 - 76 113.609 896 1 1 -0.65 1.42796 -174.514 - 76 113.907 907 1 0 -0.75229 1.60666 -175.85 - 76 20.148 908 1 0 -0.777974 1.65 -176.178 - 76 150.108 883 0 1 -3.39003 5.79673 -204.45 - 76 110.529 929 0 0 -3.55367 5.86184 -205.85 - 76 46.268 894 3 0 -0.209404 -1.15115 -115.85 - 76 80.8502 893 3 0 -0.275 -1.25 -115.957 - 76 58.0601 892 3 0 -0.173745 -1.45 -115.926 - 76 151.482 903 3 1 0.659389 -4.07954 -114.85 - 76 286.987 904 3 1 0.85 -4.39566 -114.699 - 76 47.7272 874 3 0 1.03449 -5.12981 -115.85 - 76 24.0717 830 0 1 -13.9697 -16.6527 -204.499 - 76 103.313 768 0 1 -26.412 -35.0269 -204.76 - 76 36.6112 767 0 1 -26.45 -35.0816 -204.745 -Number of digits in this event = 9 -Event: 77 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Event: 78 -Number of tracker hits in this event = 27 - 78 109.681 895 4 1 -0.914105 -3.88968 -84.45 - 78 60.527 879 4 0 -0.830751 -4.19883 -85.85 - 78 54.9628 878 4 0 -0.817662 -4.25 -86.0805 - 78 99.5811 908 3 1 1.68771 -10.7287 -114.45 - 78 18.341 907 3 1 1.65 -10.81 -114.793 - 78 10.8573 845 3 0 1.53837 -11.0414 -115.85 - 78 95.8058 844 3 0 1.53419 -11.05 -115.889 - 78 116.851 895 2 1 -0.942817 -18.155 -144.45 - 78 7.65105 807 2 0 -0.952883 -18.6423 -145.85 - 78 119.843 806 2 0 -0.952805 -18.65 -145.872 - 78 105.107 895 1 1 -0.984551 -27.5898 -174.45 - 78 22.1888 896 1 1 -0.85 -27.7146 -174.783 - 78 144.726 759 1 0 -0.399079 -28.1078 -175.85 - 78 2.1897 758 1 0 -0.235877 -28.25 -176.236 - 78 42.3575 944 0 1 8.99491 -40.9987 -204.45 - 78 98.9368 945 0 1 9.05 -41.0341 -204.512 - 78 33.8892 946 0 1 9.25 -41.1645 -204.737 - 78 33.9769 691 0 0 10.2049 -41.8087 -205.85 - 78 148.6 690 0 0 10.2659 -41.85 -205.921 - 78 121.319 898 3 1 -0.36026 -0.194007 -114.45 - 78 117.698 899 3 0 -0.378243 -0.205432 -115.85 - 78 176.415 896 2 1 -0.715656 -0.4496 -144.45 - 78 131.897 897 2 0 -0.73829 -0.461096 -145.85 - 78 123.429 894 1 1 -1.20678 -0.66932 -174.45 - 78 109.13 896 1 0 -1.22448 -0.687427 -175.85 - 78 111.341 892 0 1 -1.58445 -1.07738 -204.45 - 78 117.346 894 0 0 -1.59654 -1.0961 -205.85 -Number of digits in this event = 7 -Event: 79 -Number of tracker hits in this event = 28 - 79 120.445 900 4 1 0.0833199 0.238795 -84.45 - 79 264.271 901 4 0 0.0747755 0.267124 -85.85 - 79 233.754 899 3 1 -0.0802497 0.919909 -114.45 - 79 102.691 904 3 0 -0.105718 0.939481 -115.85 - 79 167.21 897 2 1 -0.645134 1.29146 -144.45 - 79 121.054 906 2 0 -0.651777 1.31881 -145.85 - 79 111.2 896 1 1 -0.739927 1.83776 -174.45 - 79 130.613 909 1 0 -0.778183 1.8654 -175.85 - 79 114.584 892 0 1 -1.5474 2.46881 -204.45 - 79 114.209 912 0 0 -1.56154 2.53374 -205.85 - 79 268.337 411 2 0 20.0498 -97.7762 -146.25 - 79 126.706 999 2 1 19.8754 -97.8557 -144.85 - 79 161.548 898 4 1 -0.401496 0.306544 -84.45 - 79 321.86 897 3 1 -0.500997 0.114847 -114.45 - 79 125.908 900 3 0 -0.514022 0.111657 -115.85 - 79 147.103 893 1 1 -1.39515 -0.0695289 -174.45 - 79 140.018 899 1 0 -1.40863 -0.0611463 -175.85 - 79 134.171 891 0 1 -1.6714 0.180979 -204.45 - 79 117.419 900 0 0 -1.685 0.183582 -205.85 - 79 80.3622 899 2 0 -0.674276 -0.05 -146.07 - 79 13.1931 898 2 0 -0.85935 -0.25 -146.227 - 79 133.204 577 5 0 30.446 -64.5898 -56.25 - 79 220.158 576 5 0 30.4751 -64.65 -56.1882 - 79 6.50827 788 1 0 -49.1066 -22.4393 -176.041 - 79 20.8166 787 1 0 -49.3358 -22.4685 -175.896 - 79 52.1343 677 1 1 -44.5742 -25.3525 -174.85 - 79 48.7047 769 1 0 -43.5875 -26.1375 -175.85 - 79 214.663 768 1 0 -43.5647 -26.25 -175.912 -Number of digits in this event = 19 -Event: 80 -Number of tracker hits in this event = 5 - 80 296.642 902 0 1 0.456881 -0.238611 -204.45 - 80 277.867 899 0 0 0.505131 -0.248016 -205.85 - 80 103.981 898 0 0 0.515904 -0.25 -206.163 - 80 127.535 897 0 0 1.38261 -0.45 -206.15 - 80 239.422 896 0 0 1.32083 -0.65 -206.13 -Number of digits in this event = 5 -Event: 81 -Number of tracker hits in this event = 33 - 81 215.092 900 4 1 0.169299 -0.150269 -84.45 - 81 113.591 899 4 0 0.177684 -0.160746 -85.85 - 81 132.794 901 3 1 0.37396 -0.344305 -114.45 - 81 377.517 898 3 0 0.382014 -0.352038 -115.85 - 81 127.4 902 2 1 0.566805 -0.597652 -144.45 - 81 104.805 897 2 0 0.583484 -0.625943 -145.85 - 81 178.977 904 1 1 0.918254 -1.17575 -174.45 - 81 119.047 894 1 0 0.939692 -1.21186 -175.85 - 81 136.125 906 0 1 1.40931 -1.92006 -204.45 - 81 316.408 890 0 0 1.40801 -1.97133 -205.85 - 81 66.4335 901 4 1 0.25 -0.133539 -84.5626 - 81 264.621 900 4 0 0.357597 0.105472 -85.85 - 81 180.648 724 4 0 50.9634 -35.1639 -86.25 - 81 121.116 1154 4 1 50.8948 -35.9323 -84.85 - 81 167.778 1155 4 1 51.05 -35.9258 -84.6987 - 81 125.142 899 4 1 -0.05 0.307865 -84.5962 - 81 306.255 898 4 1 -0.25 0.626084 -84.7052 - 81 162.786 897 4 1 -0.45 0.821306 -84.7418 - 81 226.192 882 4 1 -3.53291 0.17588 -84.45 - 81 123.272 870 3 1 -5.91411 0.895373 -114.45 - 81 122.323 903 3 0 -5.96554 0.839355 -115.85 - 81 124.046 863 2 1 -7.26915 -0.270434 -144.45 - 81 119.821 899 2 0 -7.34321 -0.247477 -145.85 - 81 102.133 855 1 1 -8.94826 -0.664291 -174.45 - 81 150.185 896 1 0 -8.99094 -0.694077 -175.85 - 81 102.224 842 0 1 -11.4974 -2.09467 -204.45 - 81 94.4978 889 0 0 -11.781 -2.05 -206.062 - 81 195.127 1127 0 0 -20.7651 45.4953 -206.25 - 81 105.724 1126 0 0 -20.8453 45.45 -206.209 - 81 89.2695 865 1 1 -6.91449 2.34586 -174.45 - 81 115.64 864 1 1 -7.05 2.51662 -174.563 - 81 167.641 863 1 1 -7.25 2.83367 -174.63 - 81 19.119 862 1 1 -7.45 2.99625 -174.49 -Number of digits in this event = 24 -Event: 82 Number of tracker hits in this event = 0 Number of digits in this event = 1 +Event: 74 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 75 +Number of tracker hits in this event = 2 + 75 58.2147 468 5 0 2.22518 -86.3581 -56.25 + 75 337.272 469 5 0 2.25765 -86.25 -56.1498 +Number of digits in this event = 3 +Event: 76 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 77 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 +Event: 78 +Number of tracker hits in this event = 30 + 78 222.899 899 3 1 -0.219416 0.129655 -114.45 + 78 681.448 900 3 0 -0.226004 0.0999564 -115.85 + 78 147.721 898 2 1 -0.339648 -0.682095 -144.45 + 78 141.619 896 2 0 -0.322364 -0.738639 -145.85 + 78 145.076 890 1 0 0.0556551 -1.87145 -175.85 + 78 232.824 902 0 1 0.498958 -2.59434 -204.45 + 78 125.019 886 0 0 0.50694 -2.66173 -205.85 + 78 31.9528 899 1 1 -0.05 -1.78609 -174.774 + 78 58.4713 898 1 0 -1.37562 -0.440045 -175.85 + 78 63.2603 899 1 0 -1.48915 -0.25 -175.916 + 78 113.812 882 1 1 -3.52841 2.99663 -174.85 + 78 222.559 881 1 1 -3.65 3.35531 -174.791 + 78 204.402 880 1 1 -3.85 3.88297 -174.732 + 78 159.144 879 1 1 -4.05 4.12487 -174.554 + 78 37.8214 573 3 0 -44.4407 -65.3862 -116.25 + 78 343.099 572 3 0 -44.5068 -65.45 -116.21 + 78 98.1052 571 3 0 -44.6271 -65.65 -116.061 + 78 133.726 900 3 1 0.210533 0.101463 -114.45 + 78 134.899 901 2 1 0.357882 0.522216 -144.45 + 78 104.924 902 2 0 0.365813 0.547443 -145.85 + 78 107.102 902 1 1 0.557252 1.04205 -174.45 + 78 98.3822 905 1 0 0.564581 1.06949 -175.85 + 78 109.622 903 0 1 0.707912 1.66736 -204.45 + 78 103.988 908 0 0 0.687125 1.69178 -205.85 + 78 19.8154 1238 12 0 -104.602 67.8168 153.75 + 78 30.1664 1187 4 0 -41.2607 57.551 -85.8937 + 78 26.0974 696 4 1 -40.8282 58.7058 -84.85 + 78 18.7002 695 4 1 -40.85 58.7686 -84.8309 + 78 222.464 1194 4 0 -41.6202 59.0054 -85.85 + 78 33.1913 1211 0 0 -1.64744 62.3189 -206.065 +Number of digits in this event = 15 +Event: 79 +Number of tracker hits in this event = 1 + 79 297.662 956 3 1 11.4041 -91.9675 -114.45 +Number of digits in this event = 2 +Event: 80 +Number of tracker hits in this event = 20 + 80 9.50482 1355 8 0 -88.9267 91.3425 33.75 + 80 213.568 1356 8 0 -88.9466 91.35 33.7779 + 80 127.978 453 8 1 -89.3795 91.5665 35.15 + 80 326.882 1333 9 0 -76.2988 86.7896 63.75 + 80 70.8851 522 9 1 -75.5161 86.4911 65.15 + 80 114.711 523 9 1 -75.45 86.4654 65.2615 + 80 216.804 1311 8 0 -82.8435 82.4237 33.75 + 80 28.1475 482 8 1 -83.5895 82.3715 35.15 + 80 94.3922 481 8 1 -83.65 82.368 35.2602 + 80 285.287 479 8 1 -84.1938 82.2163 35.55 + 80 15.385 1316 8 0 -84.5364 83.4243 34.15 + 80 92.1795 1317 8 0 -84.5531 83.45 34.1074 + 80 17.7575 1318 8 0 -84.6324 83.65 33.8189 + 80 3.46288 1633 8 0 -66.8293 146.934 33.75 + 80 83.9295 1634 8 0 -66.819 146.95 33.7614 + 80 83.7906 1635 8 0 -66.7462 147.15 33.925 + 80 236.544 566 8 1 -66.7305 147.625 35.15 + 80 29.7557 567 8 1 -66.65 147.561 35.4867 + 80 133.177 900 0 1 0.0859362 0.0904541 -204.45 + 80 120.743 900 0 0 0.0933738 0.0586215 -205.85 +Number of digits in this event = 11 +Event: 81 +Number of tracker hits in this event = 14 + 81 246.163 899 2 1 -0.05 -1.32141 -144.45 + 81 40.6984 892 2 0 -0.298911 -1.62619 -145.85 + 81 113.13 891 2 0 -0.317362 -1.65 -145.951 + 81 124.507 863 1 1 -7.25333 -8.4542 -174.45 + 81 21.0416 857 1 0 -7.46324 -8.64334 -175.85 + 81 96.0557 856 1 0 -7.47164 -8.65 -175.902 + 81 34.7273 842 0 1 -11.481 -11.7934 -204.45 + 81 81.2657 843 0 1 -11.45 -11.7981 -204.591 + 81 154.822 841 0 0 -11.1804 -11.8233 -205.85 + 81 138.496 899 2 0 -0.167164 -0.0593079 -145.85 + 81 176.284 898 1 1 -0.376428 -0.0687631 -174.45 + 81 109.435 897 0 1 -0.486474 0.404964 -204.45 + 81 132.553 901 0 0 -0.501198 0.445147 -205.85 + 81 138.342 902 0 0 -0.502972 0.45 -206.02 +Number of digits in this event = 9 +Event: 82 +Number of tracker hits in this event = 1 + 82 160.742 1020 0 0 -76.2237 24.1336 -205.864 +Number of digits in this event = 2 Event: 83 Number of tracker hits in this event = 0 -Number of digits in this event = 2 +Number of digits in this event = 1 Event: 84 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 85 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 2 + 85 206.743 843 0 0 45.4364 -11.4449 -206.074 + 85 197.132 842 0 0 45.4863 -11.45 -206.088 +Number of digits in this event = 3 Event: 86 -Number of tracker hits in this event = 0 +Number of tracker hits in this event = 1 + 86 179.704 789 2 0 -94.5418 -22.1304 -146.145 Number of digits in this event = 2 Event: 87 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 9 + 87 170.73 900 1 1 0.114508 -0.345809 -174.45 + 87 112.5 898 1 0 0.0928947 -0.357648 -175.85 + 87 382.257 898 0 1 -0.286787 -0.611973 -204.45 + 87 179.334 897 0 0 -0.287845 -0.616216 -205.85 + 87 80.4016 977 0 1 15.5251 -65.7507 -204.49 + 87 132.693 976 0 1 15.45 -65.8425 -204.501 + 87 147.23 900 0 1 0.0884388 0.535596 -204.45 + 87 120.129 902 0 0 0.0988764 0.534398 -205.85 + 87 0.603769 594 0 1 -61.0559 25.0158 -204.85 +Number of digits in this event = 8 Event: 88 -Number of tracker hits in this event = 4 - 88 7.39922 1779 0 0 -51.2358 176.128 -206.144 - 88 54.2935 1780 0 0 -51.2394 176.15 -206.141 - 88 109.515 1781 0 0 -51.2126 176.35 -206.101 - 88 6.31802 1782 0 0 -51.1753 176.55 -206.236 -Number of digits in this event = 1 +Number of tracker hits in this event = 14 + 88 125.235 899 2 1 -0.11502 0.11634 -144.45 + 88 229.657 900 2 0 -0.116769 0.129931 -145.85 + 88 126.227 899 1 1 -0.0698065 0.588618 -174.45 + 88 121.563 902 1 0 -0.0794578 0.587924 -175.85 + 88 90.179 898 0 1 -0.420172 0.588171 -204.45 + 88 121.413 902 0 0 -0.403456 0.588402 -205.85 + 88 164.06 845 0 0 12.9664 -11.0152 -206.25 + 88 44.3587 1081 0 0 14.1658 36.4107 -206.049 + 88 125.277 904 1 1 0.970093 0.146727 -174.45 + 88 94.5135 900 1 0 1.00657 0.147662 -175.85 + 88 128.77 908 0 1 1.72646 0.164202 -204.45 + 88 122.42 900 0 0 1.74448 0.171086 -205.85 + 88 61.2806 1369 9 0 -18.7496 94.0409 63.75 + 88 79.7262 1370 9 0 -18.7246 94.15 63.7749 +Number of digits in this event = 11 Event: 89 -Number of tracker hits in this event = 10 - 89 119.361 900 1 1 0.112764 0.248262 -174.45 - 89 107.039 901 1 0 0.0860977 0.250693 -175.85 - 89 182.993 897 0 1 -0.517789 0.291092 -204.45 - 89 155.346 901 0 0 -0.569821 0.423971 -205.85 - 89 17.1143 902 0 0 -0.579407 0.45 -206.164 - 89 152.473 899 1 1 -0.0745854 -0.181543 -174.45 - 89 203.775 899 1 0 -0.0740323 -0.192468 -175.85 - 89 2.86842 900 0 1 0.05 -0.549835 -204.84 - 89 109.778 898 0 0 0.125341 -0.41144 -205.85 - 89 153.313 805 8 0 -141.279 -18.9228 33.7712 -Number of digits in this event = 7 +Number of tracker hits in this event = 22 + 89 77.5757 899 5 0 -0.05 -0.0541935 -56.058 + 89 78.1649 898 5 0 -0.230708 -0.25 -56.1087 + 89 83.651 897 5 0 -0.414573 -0.45 -56.1607 + 89 70.0489 896 5 0 -0.598035 -0.65 -56.2125 + 89 11.2223 380 4 1 -104.124 -112.474 -84.45 + 89 114.907 379 4 1 -104.15 -112.502 -84.457 + 89 83.394 378 4 1 -104.35 -112.713 -84.5102 + 89 76.9467 377 4 1 -104.55 -112.924 -84.5628 + 89 102.421 376 4 1 -104.75 -113.135 -84.6137 + 89 82.3023 375 4 1 -104.95 -113.345 -84.6642 + 89 75.6845 374 4 1 -105.15 -113.556 -84.7145 + 89 91.9183 373 4 1 -105.35 -113.766 -84.7655 + 89 51.7713 372 4 1 -105.55 -113.978 -84.8181 + 89 3.9377 310 4 0 -109.475 -118.126 -85.85 + 89 75.2934 309 4 0 -109.497 -118.15 -85.8559 + 89 76.961 308 4 0 -109.686 -118.35 -85.9057 + 89 318.189 307 4 0 -109.875 -118.55 -85.9559 + 89 105.338 306 4 0 -110.063 -118.75 -86.0061 + 89 373.766 305 4 0 -110.252 -118.95 -86.0566 + 89 155.255 304 4 0 -110.441 -119.15 -86.1066 + 89 90.9372 303 4 0 -110.63 -119.35 -86.1562 + 89 80.3618 302 4 0 -110.82 -119.55 -86.205 +Number of digits in this event = 6 Event: 90 Number of tracker hits in this event = 0 Number of digits in this event = 1 Event: 91 -Number of tracker hits in this event = 68 - 91 242.762 899 3 1 -0.132707 0.113658 -114.45 - 91 112.54 900 3 0 -0.14701 0.123057 -115.85 - 91 103.751 898 2 1 -0.420359 0.27418 -144.45 - 91 121.25 901 2 0 -0.438496 0.26126 -145.85 - 91 91.5382 899 0 1 -0.131733 -0.524701 -204.45 - 91 295.142 897 0 0 -0.115486 -0.52502 -205.85 - 91 116.85 902 0 0 -14.6352 0.597224 -206.25 - 91 11.7889 903 0 0 -14.8606 0.65 -205.892 - 91 153.462 822 0 1 -15.5281 0.798029 -204.85 - 91 176.489 821 0 1 -15.65 0.825054 -204.66 - 91 24.6013 901 1 0 -23.4619 0.252367 -176.25 - 91 104.957 900 1 0 -23.4898 0.25 -176.147 - 91 30.5366 781 1 1 -23.8321 0.194593 -174.85 - 91 97.7689 780 1 1 -23.85 0.191677 -174.782 - 91 138.735 876 2 0 -29.9872 -4.65213 -146.25 - 91 133.994 748 2 1 -30.349 -4.90251 -144.85 - 91 12.5299 747 2 1 -30.45 -4.96883 -144.484 - 91 121.544 854 3 0 -38.8836 -9.10538 -116.25 - 91 207.448 703 3 1 -39.3228 -9.35514 -114.85 - 91 0.691187 702 3 1 -39.45 -9.43134 -114.452 - 91 52.5428 829 4 0 -48.5138 -14.231 -86.25 - 91 113.085 828 4 0 -48.5496 -14.25 -86.1386 - 91 134.481 655 4 1 -48.9602 -14.5069 -84.85 - 91 37.603 654 4 1 -49.05 -14.5689 -84.5737 - 91 65.0398 898 5 0 -46.5288 -0.35096 -56.25 - 91 50.3214 899 5 0 -46.5101 -0.25 -56.0528 - 91 40.2183 668 5 1 -46.2786 0.511968 -54.85 - 91 95.4568 669 5 1 -46.25 0.596188 -54.7145 - 91 136.048 916 6 0 -27.1013 3.25223 -26.25 - 91 31.7295 771 6 1 -25.7385 3.52432 -24.85 - 91 75.8859 772 6 1 -25.65 3.54362 -24.7691 - 91 38.1757 773 6 1 -25.45 3.57152 -24.5644 - 91 100.598 998 7 0 -22.6994 19.7107 3.75 - 91 114.273 999 7 0 -22.6751 19.85 3.99408 - 91 56.052 798 7 1 -20.4447 19.5609 5.15 - 91 140.767 799 7 1 -20.25 19.5324 5.25417 - 91 82.0138 800 7 1 -20.05 19.5416 5.33724 - 91 23.8695 801 7 1 -19.85 19.4085 5.48554 - 91 249.657 1447 9 1 109.588 -68.2805 65.3875 - 91 28.4874 1446 9 1 109.55 -68.3452 65.3604 - 91 19.8651 1060 4 0 12.1474 32.1983 -86.25 - 91 20.1263 1339 4 0 0.947348 87.9184 -86.25 - 91 21.4146 1317 4 0 50.0334 83.5279 -86.25 - 91 42.5536 1521 4 0 64.7216 124.374 -86.25 - 91 123.289 898 3 0 -0.0943984 -0.335636 -115.85 - 91 100.857 897 2 1 -0.522016 -0.0899788 -144.45 - 91 6.67668 899 2 0 -0.567414 -0.0509802 -145.85 - 91 117.296 891 1 1 -1.71991 0.795729 -174.45 - 91 151.668 904 1 0 -1.77035 0.865563 -175.85 - 91 238.41 886 0 1 -2.7309 2.36214 -204.45 - 91 102.939 912 0 0 -2.7704 2.5028 -205.85 - 91 98.2708 910 0 0 -2.84319 2.13679 -205.85 - 91 169.15 888 3 1 -2.32328 3.64015 -114.45 - 91 116.002 917 3 0 -2.40277 3.529 -115.85 - 91 311.916 879 2 1 -4.24497 0.500934 -144.45 - 91 15.1268 897 2 0 -4.00216 -0.621562 -145.85 - 91 116.988 896 2 0 -3.99672 -0.65 -145.885 - 91 39.4141 895 2 0 -3.95111 -0.85 -146.144 - 91 163.698 890 1 1 -1.99844 -19.7117 -174.45 - 91 68.1817 792 1 0 -1.41097 -21.4731 -175.85 - 91 61.4578 791 1 0 -1.3516 -21.65 -175.99 - 91 92.4611 790 1 0 -1.27609 -21.85 -176.128 - 91 222.369 965 0 1 13.053 -61.9647 -204.45 - 91 54.8715 580 0 0 13.288 -63.9002 -205.85 - 91 60.7562 579 0 0 13.3036 -64.05 -205.956 - 91 69.3163 578 0 0 13.2249 -64.25 -206.084 - 91 30.899 577 0 0 13.1514 -64.45 -206.208 - 91 18.8895 1506 3 1 121.435 24.8284 -114.773 -Number of digits in this event = 22 +Number of tracker hits in this event = 0 +Number of digits in this event = 2 Event: 92 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 +Number of tracker hits in this event = 11 + 92 169.992 897 3 1 -0.538251 -0.0742667 -114.45 + 92 461.842 898 2 1 -0.369601 1.97424 -144.45 + 92 125.732 909 2 0 -0.400422 2.01008 -145.85 + 92 118.791 893 1 1 -1.26421 2.66643 -174.45 + 92 121.846 913 1 0 -1.2548 2.72088 -175.85 + 92 112.192 894 0 1 -1.07247 3.78226 -204.45 + 92 123.009 918 0 0 -1.0718 3.76979 -205.85 + 92 106.931 899 2 0 -0.404119 -0.152342 -145.85 + 92 154.198 896 1 1 -0.664363 -0.0614378 -174.45 + 92 189.259 896 0 1 -0.682684 0.5264 -204.45 + 92 118.961 902 0 0 -0.676791 0.559918 -205.85 +Number of digits in this event = 8 Event: 93 +Number of tracker hits in this event = 6 + 93 246.327 1542 8 0 113.51 128.612 33.946 + 93 10.7341 1206 0 0 4.33973 61.2694 -205.863 + 93 29.8321 924 0 1 5.00787 61.3356 -204.85 + 93 150.848 925 0 1 5.05 61.3482 -204.815 + 93 222.443 900 0 1 0.154115 0.166256 -204.45 + 93 110.149 900 0 0 0.158358 0.159702 -205.85 +Number of digits in this event = 4 +Event: 94 Number of tracker hits in this event = 0 Number of digits in this event = 1 -Event: 94 -Number of tracker hits in this event = 7 - 94 53.556 999 1 0 -127.733 19.9634 -176.25 - 94 139.413 1000 1 0 -127.835 20.05 -176.202 - 94 50.928 1001 1 0 -127.775 20.25 -176.195 - 94 18.3878 896 1 0 -134.754 -0.824186 -176.25 - 94 118.951 895 1 0 -134.74 -0.85 -176.235 - 94 126.844 1422 14 1 104.564 5.83641 215.427 - 94 172.552 1365 6 1 93.2591 -80.4218 -24.45 -Number of digits in this event = 4 Event: 95 -Number of tracker hits in this event = 12 - 95 126.555 899 2 1 -0.0525251 0.10593 -144.45 - 95 98.7691 900 2 0 -0.0560698 0.109884 -145.85 - 95 127.058 899 1 1 -0.14232 0.281833 -174.45 - 95 118.314 901 1 0 -0.168742 0.318078 -175.85 - 95 121.829 898 0 1 -0.3838 0.955457 -204.45 - 95 106.765 904 0 0 -0.45161 0.976919 -205.85 - 95 72.9905 896 1 0 1.58099 -0.667868 -175.85 - 95 170.724 895 1 0 1.73227 -0.85 -175.907 - 95 198.097 894 1 0 1.8125 -1.05 -175.977 - 95 108.098 1377 2 1 95.7465 147.468 -144.45 - 95 280.858 1376 2 1 95.55 147.299 -144.586 - 95 84.6333 1375 2 1 95.35 147.088 -144.453 -Number of digits in this event = 7 +Number of tracker hits in this event = 13 + 95 99.9462 901 2 1 0.362782 0.214063 -144.45 + 95 133.06 900 2 0 0.385305 0.208005 -145.85 + 95 95.3122 903 1 1 0.831957 0.122664 -174.45 + 95 125.298 900 1 0 0.886202 0.106801 -175.85 + 95 329.142 909 0 1 1.96947 -0.174634 -204.45 + 95 115.056 899 0 0 2.01658 -0.178723 -205.85 + 95 119.889 899 2 1 -0.199563 -0.104313 -144.45 + 95 138.028 899 2 0 -0.227505 -0.121765 -145.85 + 95 167.779 895 1 1 -0.903163 -0.436513 -174.45 + 95 118.763 898 1 0 -0.929491 -0.444444 -175.85 + 95 213.471 892 0 1 -1.51962 -0.570874 -204.45 + 95 173.441 897 0 0 -1.53661 -0.577272 -205.85 + 95 35.7662 525 1 1 -74.9943 -46.9041 -174.745 +Number of digits in this event = 8 Event: 96 -Number of tracker hits in this event = 4 - 96 166.979 899 1 0 -0.0593944 -0.0519772 -175.85 - 96 104.756 895 0 1 -0.88792 -2.4912 -204.45 - 96 30.3212 886 0 0 -0.848742 -2.8244 -205.85 - 96 162.333 885 0 0 -0.844539 -2.85 -205.954 -Number of digits in this event = 4 +Number of tracker hits in this event = 42 + 96 235.605 899 4 1 -0.144231 -0.170933 -84.45 + 96 225.785 899 4 0 -0.14938 -0.183789 -85.85 + 96 112.424 899 3 1 -0.239684 -0.456478 -114.45 + 96 124.508 897 3 0 -0.263809 -0.483981 -115.85 + 96 295.143 895 2 1 -0.875224 -1.13145 -144.45 + 96 120.661 894 2 0 -0.894606 -1.18138 -145.85 + 96 141.099 894 1 1 -1.24648 -2.12862 -174.45 + 96 128.977 889 1 0 -1.26082 -2.16671 -175.85 + 96 326.53 892 0 1 -1.51954 -2.94775 -204.45 + 96 137.348 885 0 0 -1.55127 -2.98624 -205.85 + 96 27.4611 893 0 1 -1.45 -2.76846 -204.568 + 96 44.4662 891 0 1 -1.65 -2.80475 -204.804 + 96 16.4451 891 0 0 -3.54211 -1.822 -205.85 + 96 1.91911 843 0 1 -11.4457 -2.20046 -204.85 + 96 54.2409 842 0 1 -11.45 -2.20067 -204.849 + 96 63.9088 880 0 0 -9.74923 -3.93481 -205.85 + 96 196.734 879 0 0 -9.69721 -4.05 -205.893 + 96 105.337 900 4 0 -0.102662 0.218142 -85.85 + 96 8.91141 901 4 0 -0.114021 0.25 -86.2264 + 96 149.566 890 3 1 -1.93403 2.58785 -114.45 + 96 108.573 913 3 0 -1.75988 2.67657 -115.85 + 96 51.182 909 2 1 1.95378 1.89278 -144.45 + 96 111.843 910 2 1 2.05 1.97518 -144.533 + 96 66.8794 911 2 1 2.25 2.13398 -144.706 + 96 134.299 915 2 0 3.48516 3.09527 -145.85 + 96 88.2041 916 2 0 3.68461 3.25 -146.036 + 96 84.2459 1019 1 1 23.9343 17.4574 -174.45 + 96 61.9145 1020 1 1 24.05 17.44 -174.645 + 96 188.008 986 1 0 24.8145 17.4426 -175.85 + 96 63.4051 1101 0 1 40.3337 17.786 -204.45 + 96 73.3476 1102 0 1 40.45 17.8389 -204.645 + 96 22.2371 991 0 0 41.2406 18.4138 -205.85 + 96 115.218 992 0 0 41.2878 18.45 -205.922 + 96 103.745 1048 3 1 29.7878 29.8695 -114.629 + 96 136.226 1049 3 1 29.85 29.9388 -114.497 + 96 5.21326 889 0 1 -2.24631 9.27517 -204.45 + 96 492.663 888 0 1 -2.25 9.2739 -204.479 + 96 107.048 945 0 0 -2.40129 9.16684 -205.85 + 96 16.7069 944 0 0 -2.61859 8.88021 -205.85 + 96 162.572 943 0 0 -2.63155 8.85 -205.924 + 96 91.8194 1369 5 0 150.212 94.0097 -56.0007 + 96 178.928 1368 5 0 150.331 93.95 -55.881 +Number of digits in this event = 19 Event: 97 -Number of tracker hits in this event = 2 - 97 128.262 1021 11 0 36.5251 24.3541 123.933 - 97 16.6845 1079 11 1 36.0439 24.5719 125.15 -Number of digits in this event = 3 +Number of tracker hits in this event = 0 +Number of digits in this event = 1 Event: 98 -Number of tracker hits in this event = 6 - 98 159.657 900 2 0 -0.231663 0.053174 -145.85 - 98 119.219 899 1 1 -0.112891 0.344014 -174.45 - 98 114.095 901 1 0 -0.092653 0.33493 -175.85 - 98 116.721 901 0 1 0.366743 -0.109308 -204.45 - 98 172.478 899 0 0 0.403645 -0.160818 -205.85 - 98 100.463 902 0 1 0.607071 0.0500322 -204.45 -Number of digits in this event = 3 +Number of tracker hits in this event = 7 + 98 211.726 837 3 1 -12.6392 -145.166 -114.663 + 98 210.627 836 3 1 -12.65 -145.331 -114.62 + 98 128.407 614 0 1 -57.191 -11.1399 -204.633 + 98 131.187 613 0 1 -57.25 -11.1132 -204.593 + 98 184.829 843 0 0 -56.0762 -11.2618 -205.85 + 98 293.302 842 0 0 -55.7437 -11.45 -205.89 + 98 97.884 841 0 0 -56.1183 -11.8053 -205.889 +Number of digits in this event = 7 Event: 99 -Number of tracker hits in this event = 14 - 99 119.396 898 2 1 -0.272377 0.150136 -144.45 - 99 105.178 900 2 0 -0.287692 0.196282 -145.85 - 99 164.764 899 1 1 -0.150758 1.15306 -174.45 - 99 125.755 906 1 0 -0.1238 1.25536 -175.85 - 99 128.927 902 0 1 0.593334 3.66183 -204.45 - 99 116.189 918 0 0 0.64413 3.73774 -205.85 - 99 183.33 899 3 1 -0.155458 0.173958 -114.45 - 99 142.253 900 3 0 -0.170661 0.18048 -115.85 - 99 119.003 897 2 1 -0.47501 0.31773 -144.45 - 99 109.639 901 2 0 -0.474002 0.334953 -145.85 - 99 137.67 897 1 1 -0.472087 0.770786 -174.45 - 99 132.338 903 1 0 -0.48741 0.786897 -175.85 - 99 147.544 895 0 1 -0.888057 1.04896 -204.45 - 99 291.46 904 0 0 -0.964578 1.04546 -205.85 -Number of digits in this event = 12 +Number of tracker hits in this event = 1 + 99 44.3826 243 9 0 -91.7826 -131.445 63.7813 +Number of digits in this event = 1 Run terminated. Run Summary Number of events processed : 100 - User=4.36s Real=4.38s Sys=0s + User=1.93s Real=1.94s Sys=0s End of Run 1 /gun/particle e- /gun/energy 1 GeV @@ -3971,2737 +3534,2624 @@ Cannot set FirstId as its value was already used. done Event: 0 Number of tracker hits in this event = 17 - 0 302.822 899 4 1 -0.15479 -0.406331 -84.45 - 0 115.983 898 4 0 -0.150605 -0.401085 -85.85 - 0 117.223 899 3 1 -0.105627 -0.271541 -114.45 - 0 127.736 898 3 0 -0.106 -0.297174 -115.85 - 0 133.952 899 2 1 -0.184572 -0.828172 -144.45 - 0 130 895 2 0 -0.181196 -0.869744 -145.85 - 0 115.475 899 1 1 -0.233557 -1.76227 -174.45 - 0 99.3305 891 1 0 -0.228319 -1.80256 -175.85 - 0 129.675 899 0 1 -0.129996 -2.61024 -204.45 - 0 115.799 886 0 0 -0.0925143 -2.65853 -205.85 - 0 232.023 898 1 1 -0.406918 -0.549063 -174.45 - 0 512.221 897 1 0 -0.411248 -0.547255 -175.85 - 0 129.852 897 0 1 -0.48543 -0.509245 -204.45 - 0 141.994 897 0 0 -0.487854 -0.493895 -205.85 - 0 112.267 894 0 1 -1.13842 1.12466 -204.45 - 0 128.412 906 0 0 -1.09973 1.2582 -205.85 - 0 65.6169 848 2 0 -112.89 -10.279 -146.14 -Number of digits in this event = 13 + 0 156.227 900 5 1 0.082647 0.112118 -54.45 + 0 206.1 900 5 0 0.0794839 0.113485 -55.85 + 0 296.93 899 3 1 -0.108094 0.246068 -114.45 + 0 106.848 901 3 0 -0.120098 0.252653 -115.85 + 0 110.063 898 2 1 -0.373804 0.402446 -144.45 + 0 114.874 901 2 0 -0.392341 0.416651 -145.85 + 0 114.536 896 1 1 -0.762918 0.722394 -174.45 + 0 133.219 903 1 0 -0.777793 0.731762 -175.85 + 0 119.611 894 0 1 -1.06917 0.963307 -204.45 + 0 191.789 904 0 0 -1.08492 0.973606 -205.85 + 0 22.2634 899 2 1 -0.0744129 0.324675 -144.74 + 0 192.999 899 2 0 0.509806 -0.0596767 -145.85 + 0 5.26659 898 2 0 0.851344 -0.25 -145.852 + 0 21.9743 916 2 1 3.44581 -1.44181 -144.85 + 0 251.123 917 2 1 3.45 -1.44373 -144.848 + 0 147.948 918 2 1 3.65 -1.30307 -144.737 + 0 3.38365 665 1 1 -47.0036 86.5049 -174.775 +Number of digits in this event = 10 Event: 1 -Number of tracker hits in this event = 7 - 1 124.867 899 5 1 -0.0620168 -0.0568891 -54.45 - 1 103.428 899 5 0 -0.07007 -0.0620954 -55.85 - 1 137.148 899 4 1 -0.200588 -0.175869 -84.45 - 1 105.59 899 4 0 -0.204411 -0.170087 -85.85 - 1 138.767 898 1 1 -0.437676 0.163014 -174.45 - 1 126.686 900 1 0 -0.432692 0.157313 -175.85 - 1 205.216 901 0 0 0.896279 0.301413 -205.85 -Number of digits in this event = 7 +Number of tracker hits in this event = 49 + 1 101.226 899 4 1 -0.132305 -0.120232 -84.45 + 1 139.775 899 4 0 -0.154688 -0.130807 -85.85 + 1 380.148 897 3 1 -0.59286 -0.356612 -114.45 + 1 225.75 898 3 0 -0.678216 -0.367843 -115.85 + 1 234.867 889 2 1 -2.24084 -0.522051 -144.45 + 1 147.601 897 2 0 -2.26912 -0.477457 -145.85 + 1 127.657 885 1 1 -2.88818 0.414472 -174.45 + 1 129.672 901 1 0 -3.00664 0.394202 -175.85 + 1 112.634 875 0 1 -4.86052 -0.256085 -204.45 + 1 157.448 898 0 0 -5.02583 -0.30269 -205.85 + 1 87.7252 902 2 0 -2.31062 0.506728 -145.85 + 1 16.4051 901 2 0 -2.34079 0.45 -146.183 + 1 3.38134 880 1 1 -4.04307 -4.51123 -174.45 + 1 169.381 879 1 1 -4.05 -4.51556 -174.467 + 1 164.407 875 1 0 -4.61756 -4.90496 -175.85 + 1 366.029 819 0 1 -16.0873 -12.8971 -204.45 + 1 142.921 834 0 0 -16.4454 -13.1704 -205.85 + 1 100.817 1076 0 0 82.6491 35.2513 -206.25 + 1 286.336 901 2 1 0.425061 -0.32873 -144.45 + 1 294.856 902 2 1 0.45 -0.325788 -144.817 + 1 108.68 898 2 0 0.512587 -0.312167 -145.85 + 1 132.139 912 1 1 2.48943 0.637854 -174.45 + 1 281.217 903 1 0 2.50925 0.681797 -175.85 + 1 103.25 914 0 1 2.9253 1.71848 -204.45 + 1 155.183 908 0 0 3.02466 1.80177 -205.85 + 1 249.396 899 2 1 -0.212849 0.210634 -144.45 + 1 246.072 900 2 0 -0.23066 0.237285 -145.85 + 1 333.293 896 1 1 -0.686702 0.804928 -174.45 + 1 139.072 898 0 1 -0.445327 1.12679 -204.45 + 1 306.769 905 0 0 -0.453076 1.1432 -205.85 + 1 106.762 899 2 0 0.34957 -0.113119 -145.85 + 1 120.289 924 1 0 -0.691476 4.93451 -175.85 + 1 135.56 906 0 1 1.37337 9.77146 -204.45 + 1 100.4 949 0 0 1.35033 9.96114 -205.85 + 1 163.955 903 1 1 0.670359 0.0992979 -174.45 + 1 98.4123 900 1 0 0.691836 0.105187 -175.85 + 1 128.399 905 0 1 1.13349 0.247271 -204.45 + 1 146.146 901 0 0 1.1552 0.267323 -205.85 + 1 23.1291 897 3 0 -0.489168 -0.632754 -115.85 + 1 137.565 896 3 0 -0.484751 -0.65 -115.922 + 1 69.2835 834 2 0 0.345052 -13.0949 -145.85 + 1 54.4117 833 2 0 0.325372 -13.25 -145.932 + 1 57.4703 832 2 0 0.263456 -13.45 -146.034 + 1 55.3922 831 2 0 0.143137 -13.65 -146.111 + 1 6.62241 830 2 0 0.0586902 -13.85 -146.146 + 1 29.1408 829 2 0 -0.05 -14.1495 -146.169 + 1 58.9375 828 2 0 -0.0773052 -14.25 -146.177 + 1 92.4547 827 2 0 -0.120754 -14.45 -146.209 + 1 34.6009 826 2 0 -0.152795 -14.65 -146.231 +Number of digits in this event = 31 Event: 2 -Number of tracker hits in this event = 37 - 2 127.575 898 4 0 0.051643 -0.254234 -85.85 - 2 112.737 901 3 1 0.378943 -0.440438 -114.45 - 2 93.1855 897 3 0 0.388776 -0.452042 -115.85 - 2 446.247 902 2 1 0.591346 -0.694433 -144.45 - 2 140.206 896 2 0 0.606048 -0.71501 -145.85 - 2 324.38 904 1 1 0.955507 -1.1613 -174.45 - 2 460.782 894 1 0 0.974005 -1.17839 -175.85 - 2 125.38 906 0 1 1.3486 -1.52715 -204.45 - 2 158.778 892 0 0 1.37252 -1.53116 -205.85 - 2 307.479 899 2 1 -0.214397 -0.431928 -144.45 - 2 195.106 898 2 0 -0.318608 -0.358717 -145.85 - 2 87.6994 882 1 1 -3.48048 3.22183 -174.45 - 2 87.2286 881 1 1 -3.65 3.43987 -174.463 - 2 62.8212 880 1 1 -3.85 3.70028 -174.472 - 2 54.484 879 1 1 -4.05 3.81465 -174.52 - 2 63.806 878 1 1 -4.25 3.88725 -174.555 - 2 66.424 877 1 1 -4.45 3.92105 -174.558 - 2 61.025 876 1 1 -4.65 3.93344 -174.572 - 2 56.0874 875 1 1 -4.85 3.98291 -174.527 - 2 40.6255 874 1 1 -5.05 4.02289 -174.482 - 2 103.893 928 2 0 -1.47039 5.75418 -146.25 - 2 0.056299 929 2 0 -1.47566 5.85 -145.85 - 2 175.367 893 2 1 -1.35217 6.02864 -144.85 - 2 36.3435 894 2 1 -1.25 6.10164 -144.57 - 2 129.966 899 1 1 -0.0827193 -0.535126 -174.45 - 2 18.9085 893 1 0 -0.496163 -1.41508 -175.85 - 2 202.902 892 1 0 -0.512915 -1.45 -175.905 - 2 9.1029 891 1 0 -0.607856 -1.65 -176.221 - 2 44.5923 850 0 1 -10.0141 -19.6881 -204.45 - 2 193.995 849 0 1 -10.05 -19.7425 -204.577 - 2 107.353 798 0 0 -10.3911 -20.2997 -205.85 - 2 19.1302 797 0 0 -10.4818 -20.45 -206.194 - 2 104.507 848 0 1 -10.25 -20.0231 -204.629 - 2 26.2835 794 0 0 -10.973 -21.201 -205.85 - 2 91.5181 793 0 0 -11.0028 -21.25 -205.9 - 2 71.7628 792 0 0 -11.1254 -21.45 -206.12 - 2 33.4358 41 3 1 -171.86 -103.886 -114.669 -Number of digits in this event = 14 +Number of tracker hits in this event = 30 + 2 175.147 898 4 1 -0.266297 -0.133084 -84.45 + 2 110.596 899 4 0 -0.282221 -0.151989 -85.85 + 2 105.329 897 3 1 -0.601408 -0.512758 -114.45 + 2 141.964 897 3 0 -0.620349 -0.518084 -115.85 + 2 111.494 895 2 1 -1.00904 -0.655321 -144.45 + 2 120.352 896 2 0 -1.03483 -0.654908 -145.85 + 2 139.064 892 1 1 -1.5513 -0.658824 -174.45 + 2 129.225 897 1 0 -1.59022 -0.649684 -175.85 + 2 195.582 888 0 1 -2.34984 -0.488557 -204.45 + 2 230.728 897 0 0 -2.38946 -0.472753 -205.85 + 2 4.81878 1504 1 0 14.8094 121.133 -176.25 + 2 93.5438 1505 1 0 14.8202 121.15 -176.238 + 2 83.3158 1506 1 0 14.9687 121.35 -176.082 + 2 1.47587 1507 1 0 15.0648 121.55 -175.861 + 2 4.85033 979 1 1 16.0382 121.905 -174.85 + 2 96.4956 980 1 1 16.05 121.909 -174.838 + 2 65.894 981 1 1 16.25 121.957 -174.662 + 2 85.4856 901 4 0 -0.885892 0.35982 -85.85 + 2 31.3343 902 4 0 -0.993523 0.45 -86.134 + 2 1.78309 752 4 0 82.2428 -29.6475 -86.25 + 2 112.827 751 4 0 82.2497 -29.65 -86.2479 + 2 95.3394 750 4 0 82.5203 -29.85 -86.1578 + 2 14.725 749 4 0 82.7529 -30.05 -86.2076 + 2 103.691 572 4 0 127.395 -65.6292 -86.25 + 2 480.291 571 4 0 127.418 -65.65 -86.1161 + 2 99.7861 249 5 1 -130.176 -133.471 -54.8093 + 2 34.1616 1446 1 1 109.359 -44.1428 -174.514 + 2 46.9278 1618 2 1 143.925 -35.0558 -144.613 + 2 75.2063 1619 2 1 143.95 -35.0554 -144.555 + 2 41.4626 565 10 1 -66.9617 74.3754 95.3378 +Number of digits in this event = 9 Event: 3 -Number of tracker hits in this event = 23 - 3 111.232 900 5 1 0.189028 0.171481 -54.45 - 3 134.442 900 5 0 0.194235 0.181712 -55.85 - 3 127.603 901 4 1 0.305518 0.402234 -84.45 - 3 482.585 901 4 0 0.302896 0.409041 -85.85 - 3 95.889 900 3 1 0.208718 0.5877 -114.45 - 3 130.73 902 3 0 0.202723 0.590526 -115.85 - 3 110.696 900 2 1 0.0797356 0.667013 -144.45 - 3 117.542 903 2 0 0.0817673 0.673407 -145.85 - 3 141.112 900 1 1 0.176685 0.836865 -174.45 - 3 110.551 903 1 0 0.188875 0.838751 -175.85 - 3 175.662 901 0 1 0.416164 0.884175 -204.45 - 3 121.564 904 0 0 0.430977 0.88077 -205.85 - 3 21.8181 901 6 1 0.263382 0.05 -24.8156 - 3 59.9821 909 6 0 1.45913 1.93841 -25.85 - 3 223.8 910 6 0 1.47736 2.05 -25.9551 - 3 16.7246 911 6 0 1.85735 2.25 -25.89 - 3 72.8123 907 6 1 1.6365 3.39279 -24.85 - 3 145.703 908 6 1 1.65 3.45551 -24.8066 - 3 23.3906 856 0 0 10.4873 -8.67806 -205.938 - 3 104.222 902 1 1 0.586652 1.08345 -174.54 - 3 9.4503 1555 6 1 131.334 -50.6629 -24.7271 - 3 315.817 1556 6 1 131.35 -50.6666 -24.7053 - 3 251.34 1322 6 0 33.6937 84.5033 -26.25 -Number of digits in this event = 13 +Number of tracker hits in this event = 12 + 3 138.466 900 5 1 0.195573 -0.120159 -54.45 + 3 118.254 899 5 0 0.198805 -0.121707 -55.85 + 3 111.315 901 4 1 0.252452 -0.141818 -84.45 + 3 114.826 899 4 0 0.252566 -0.143544 -85.85 + 3 126.224 900 3 1 0.249479 -0.194062 -114.45 + 3 125.603 899 3 0 0.249125 -0.193987 -115.85 + 3 147.451 900 2 1 0.229103 -0.212718 -144.45 + 3 171.643 899 2 0 0.214377 -0.216186 -145.85 + 3 117.855 899 1 1 -0.123223 -0.321544 -174.45 + 3 117.711 898 1 0 -0.157295 -0.328349 -175.85 + 3 141.557 895 0 1 -1.0254 -0.461131 -204.45 + 3 117.318 897 0 0 -1.07273 -0.478716 -205.85 +Number of digits in this event = 7 Event: 4 -Number of tracker hits in this event = 9 - 4 119.166 900 4 1 0.097612 -0.0721398 -84.45 - 4 105.352 899 4 0 0.0953924 -0.071727 -85.85 - 4 112.805 899 2 1 -0.201276 -0.101202 -144.45 - 4 138.128 899 2 0 -0.224852 -0.106708 -145.85 - 4 178.547 896 1 1 -0.734841 -0.222304 -174.45 - 4 137.797 899 1 0 -0.754744 -0.236184 -175.85 - 4 131.801 894 0 1 -1.15341 -0.536967 -204.45 - 4 127.165 897 0 0 -1.1862 -0.547487 -205.85 - 4 8.8649 1344 2 1 88.9292 67.2115 -144.767 -Number of digits in this event = 6 +Number of tracker hits in this event = 12 + 4 126.25 901 4 1 0.296227 0.502619 -84.45 + 4 135.421 902 4 0 0.311693 0.517421 -85.85 + 4 114.726 903 3 1 0.666718 0.835916 -114.45 + 4 15.4682 903 3 0 0.692826 0.849487 -115.85 + 4 114.082 904 3 0 0.693808 0.85 -115.901 + 4 144.858 905 2 1 1.21558 1.1047 -144.45 + 4 116.148 905 2 0 1.23817 1.11658 -145.85 + 4 127.511 908 1 1 1.73474 1.34872 -174.45 + 4 125.862 906 1 0 1.75051 1.35522 -175.85 + 4 122.789 910 0 1 2.10371 1.46686 -204.45 + 4 134.901 907 0 0 2.11428 1.46535 -205.85 + 4 15.8929 870 11 0 -29.1907 -5.98866 123.75 +Number of digits in this event = 10 Event: 5 -Number of tracker hits in this event = 68 - 5 123.972 900 5 1 0.109657 0.0763805 -54.45 - 5 119.488 900 5 0 0.111026 0.0751344 -55.85 - 5 323.443 899 3 0 0.233046 -0.0560489 -115.85 - 5 168.049 900 2 1 0.245865 -0.48943 -144.45 - 5 500.198 897 2 0 0.247017 -0.519251 -145.85 - 5 192.796 901 1 1 0.27888 -1.12405 -174.45 - 5 98.0732 894 1 0 0.293093 -1.15869 -175.85 - 5 109.092 902 0 1 0.562488 -1.89453 -204.45 - 5 124.474 890 0 0 0.56935 -1.92312 -205.85 - 5 38.1833 899 4 0 -0.05 -0.105961 -85.9623 - 5 220.498 898 4 1 -0.438326 -0.225243 -84.85 - 5 310.782 897 4 1 -0.45 -0.229189 -84.8107 - 5 119.16 882 4 0 -0.647492 -3.51298 -85.85 - 5 45.0712 900 3 1 0.139797 -0.05 -114.697 - 5 22.1179 801 3 0 -5.3815 -19.8032 -116.25 - 5 206.696 800 3 0 -5.40953 -19.85 -116.174 - 5 100.519 870 3 1 -5.92729 -20.69 -114.85 - 5 29.3485 869 3 1 -6.05 -20.8961 -114.532 - 5 93.8706 718 4 0 -10.6329 -36.2817 -86.25 - 5 36.0514 717 4 0 -10.6833 -36.45 -85.9418 - 5 255.536 846 4 1 -10.7412 -37.0597 -84.85 - 5 132.244 681 5 0 -26.8678 -43.7397 -56.25 - 5 2.04366 761 5 1 -27.8434 -44.2041 -54.85 - 5 143.599 760 5 1 -27.85 -44.2074 -54.8411 - 5 55.057 759 5 1 -28.05 -44.3082 -54.5687 - 5 25.9619 506 6 0 -33.6313 -78.7502 -26.25 - 5 94.9989 505 6 0 -33.6471 -78.85 -26.1688 - 5 41.7575 504 6 0 -33.6687 -79.05 -25.9755 - 5 135.988 730 6 1 -33.9689 -79.7262 -24.85 - 5 25.1997 729 6 1 -34.05 -79.9143 -24.5406 - 5 27.3318 727 6 1 -34.5732 -79.911 -24.45 - 5 94.6716 726 6 1 -34.65 -79.861 -24.5162 - 5 83.6566 725 6 1 -34.85 -79.7885 -24.7402 - 5 6.07895 511 6 0 -34.9721 -77.6779 -25.85 - 5 288.144 512 6 0 -34.9733 -77.65 -25.8645 - 5 1.39932 513 6 0 -35.607 -77.45 -25.8518 - 5 475.692 716 6 1 -36.6756 -76.0562 -24.85 - 5 9.846 717 6 1 -36.65 -75.8986 -24.7134 - 5 237.671 901 2 1 0.25 0.0809559 -144.74 - 5 94.4112 900 3 0 -0.05 0.126698 -115.991 - 5 267.171 892 2 1 -1.47585 2.8725 -144.45 - 5 120.529 915 2 0 -1.52131 3.10386 -145.85 - 5 113.215 884 1 1 -3.20339 7.45909 -174.45 - 5 165.024 937 1 0 -3.29956 7.61499 -175.85 - 5 35.4156 938 1 0 -3.31873 7.65 -176.158 - 5 109.665 873 0 1 -5.36641 10.2283 -204.45 - 5 51.9624 951 0 0 -5.60186 10.4222 -205.85 - 5 61.096 952 0 0 -5.63742 10.45 -206.052 - 5 108.225 912 2 0 -1.93564 2.61577 -145.85 - 5 105.772 893 2 1 -1.45 2.83215 -144.534 - 5 122.854 914 2 0 -1.00557 2.89097 -145.85 - 5 19.253 950 1 1 10.2098 5.09814 -174.45 - 5 145.201 951 1 1 10.25 5.15262 -174.518 - 5 121.458 929 1 0 10.6446 5.91766 -175.85 - 5 49.3427 930 1 0 10.7033 6.05 -176.115 - 5 40.3508 998 0 1 19.8123 22.6734 -204.45 - 5 566.749 999 0 1 19.85 22.7731 -204.557 - 5 27.6657 1019 0 0 19.9442 23.9759 -205.85 - 5 119.689 1020 0 0 19.9444 24.05 -205.928 - 5 45.2823 1021 0 0 19.9597 24.25 -206.143 - 5 62.8322 1461 0 0 173.101 112.462 -206.25 - 5 157.586 1462 0 0 173.289 112.55 -206.231 - 5 121.299 1463 0 0 173.63 112.75 -206.15 - 5 130.381 1464 0 0 173.897 112.95 -205.996 - 5 31.9471 1777 0 1 175.689 114.295 -204.85 - 5 65.6022 1778 0 1 175.75 114.343 -204.809 - 5 84.0952 1779 0 1 175.95 114.48 -204.681 - 5 33.0473 1780 0 1 176.15 114.613 -204.503 -Number of digits in this event = 29 +Number of tracker hits in this event = 16 + 5 151.994 900 5 1 0.120486 0.208685 -54.45 + 5 141.781 900 5 0 0.116357 0.216501 -55.85 + 5 127.834 899 3 1 -0.132108 0.510957 -114.45 + 5 147.94 902 3 0 -0.132454 0.515098 -115.85 + 5 118.071 899 2 1 -0.168496 0.641491 -144.45 + 5 4.13652 902 2 0 -0.178071 0.649865 -145.85 + 5 101.395 903 2 0 -0.178222 0.65 -145.872 + 5 379.814 897 1 1 -0.465264 0.847993 -174.45 + 5 145.736 904 1 0 -0.478721 0.859445 -175.85 + 5 141.674 896 0 1 -0.783656 1.09095 -204.45 + 5 122.869 905 0 0 -0.793758 1.09804 -205.85 + 5 36.4597 906 1 0 -0.777773 1.40876 -175.85 + 5 68.1654 907 1 0 -0.797825 1.45 -175.96 + 5 134.242 857 0 1 -8.49785 10.515 -204.45 + 5 88.9144 953 0 0 -8.74395 10.8054 -205.85 + 5 50.6531 954 0 0 -8.78322 10.85 -206.094 +Number of digits in this event = 10 Event: 6 Number of tracker hits in this event = 12 - 6 141.381 899 4 1 -0.224948 0.0511341 -84.45 - 6 124.068 900 4 0 -0.234338 0.0614633 -85.85 - 6 112.055 897 3 1 -0.455473 0.285385 -114.45 - 6 145.055 901 3 0 -0.460636 0.297328 -115.85 - 6 116.832 897 2 1 -0.560778 0.536767 -144.45 - 6 127.164 902 2 0 -0.5572 0.545171 -145.85 - 6 146.863 898 1 1 -0.423404 0.65349 -174.45 - 6 153.498 903 1 0 -0.422747 0.65269 -175.85 - 6 127.7 898 0 1 -0.417225 0.636883 -204.45 - 6 151.833 902 0 0 -0.413725 0.635566 -205.85 - 6 32.4049 626 6 1 -54.8429 9.04779 -24.7943 - 6 30.0686 625 6 1 -54.85 9.04671 -24.7867 + 6 110.884 900 5 1 0.0856358 0.0553947 -54.45 + 6 103.549 900 5 0 0.0913701 0.0658826 -55.85 + 6 184.834 900 4 1 0.208574 0.252973 -84.45 + 6 500.758 901 4 0 0.215857 0.267087 -85.85 + 6 358.799 901 3 1 0.350358 0.519286 -114.45 + 6 132.675 902 3 0 0.356394 0.529502 -115.85 + 6 171.821 902 2 1 0.497593 0.748268 -144.45 + 6 103.577 903 2 0 0.519557 0.748846 -145.85 + 6 121.955 904 1 1 0.969253 0.736062 -174.45 + 6 126.052 903 1 0 0.990208 0.737553 -175.85 + 6 132.663 906 0 1 1.44102 0.772788 -204.45 + 6 99.6465 903 0 0 1.4565 0.77452 -205.85 Number of digits in this event = 9 Event: 7 -Number of tracker hits in this event = 8 - 7 109.353 899 5 1 -0.0699116 0.153075 -54.45 - 7 126.39 900 5 0 -0.0654834 0.154419 -55.85 - 7 120.886 899 2 1 -0.225031 0.58708 -144.45 - 7 97.8656 902 2 0 -0.24025 0.60098 -145.85 - 7 120.273 897 1 1 -0.543065 0.871605 -174.45 - 7 113.579 904 1 0 -0.550925 0.882246 -175.85 - 7 146.05 896 0 1 -0.741636 1.10181 -204.45 - 7 122.785 905 0 0 -0.748686 1.08294 -205.85 -Number of digits in this event = 7 +Number of tracker hits in this event = 29 + 7 141.16 899 5 1 -0.18376 0.0642786 -54.45 + 7 659.695 900 5 0 -0.189674 0.0679706 -55.85 + 7 129.137 898 4 1 -0.329483 0.108065 -84.45 + 7 450.27 900 4 0 -0.329325 0.11425 -85.85 + 7 133.872 898 3 1 -0.368897 0.254153 -114.45 + 7 108.442 901 3 0 -0.368588 0.263561 -115.85 + 7 108.735 900 2 1 0.103355 0.401539 -144.45 + 7 237.023 901 2 0 0.133109 0.415007 -145.85 + 7 121.51 903 1 1 0.758607 0.715045 -174.45 + 7 127.705 903 1 0 0.78994 0.728217 -175.85 + 7 217.492 906 0 1 1.43731 1.0091 -204.45 + 7 127.423 904 0 0 1.4539 1.01926 -205.85 + 7 143.785 897 4 1 -0.471402 0.209936 -84.45 + 7 117.217 889 3 1 -2.14 -0.78112 -114.45 + 7 115.704 896 3 0 -2.29547 -0.800552 -115.85 + 7 110.565 873 2 1 -5.29136 -1.59557 -144.45 + 7 427.383 891 2 0 -5.38265 -1.81788 -145.85 + 7 77.1196 890 2 0 -5.39597 -1.85 -146.054 + 7 120.453 863 1 1 -7.34456 -6.5683 -174.45 + 7 100.427 865 1 0 -7.46022 -6.87317 -175.85 + 7 196.199 850 0 1 -9.894 -12.7938 -204.45 + 7 97.39 835 0 0 -10.223 -13.0046 -205.85 + 7 24.4552 834 0 0 -10.294 -13.05 -206.148 + 7 82.8547 899 4 1 -0.25 0.0641084 -84.5747 + 7 104.579 898 2 1 -0.424967 0.395174 -144.45 + 7 122.617 900 1 1 0.0546042 0.442371 -174.45 + 7 146.539 901 1 0 0.156543 0.448103 -175.85 + 7 110.84 911 0 1 2.32781 0.565414 -204.45 + 7 162.521 902 0 0 2.49673 0.588881 -205.85 +Number of digits in this event = 18 Event: 8 -Number of tracker hits in this event = 16 - 8 112.167 900 5 1 0.0830885 0.05 -54.496 - 8 125.726 900 5 0 0.0904936 0.0648976 -55.85 - 8 110.716 900 4 1 0.22359 0.395109 -84.45 - 8 108.78 901 4 0 0.23545 0.413933 -85.85 - 8 116.146 902 3 1 0.516034 0.816084 -114.45 - 8 90.9322 903 3 0 0.522783 0.84294 -115.85 - 8 13.2295 904 3 0 0.524426 0.85 -116.222 - 8 188.72 903 2 1 0.689159 1.43602 -144.45 - 8 168.047 907 2 0 0.696802 1.46044 -145.85 - 8 131.399 904 1 1 0.895562 1.97148 -174.45 - 8 175.559 909 1 0 0.904976 1.99814 -175.85 - 8 245.546 905 0 1 1.08544 2.54082 -204.45 - 8 112.219 912 0 0 1.09269 2.57696 -205.85 - 8 57.263 733 0 1 -33.3993 -166.499 -204.45 - 8 91.7252 734 0 1 -33.25 -166.524 -204.592 - 8 147.895 66 0 0 -32.4143 -166.816 -205.85 -Number of digits in this event = 9 +Number of tracker hits in this event = 29 + 8 372.536 899 4 1 -0.05 0.230104 -84.5945 + 8 134.55 900 4 0 -0.0559349 0.232155 -85.85 + 8 178.533 899 3 1 -0.196662 0.284854 -114.45 + 8 251.337 901 3 0 -0.199131 0.293168 -115.85 + 8 135.699 898 2 1 -0.282517 0.480817 -144.45 + 8 124.627 902 2 0 -0.28589 0.498609 -145.85 + 8 106.952 898 1 1 -0.313954 0.866955 -174.45 + 8 112.5 904 1 0 -0.314094 0.868916 -175.85 + 8 114.019 898 0 1 -0.286249 0.912523 -204.45 + 8 109.521 904 0 0 -0.302961 0.912403 -205.85 + 8 119.137 900 3 1 0.05 0.341315 -114.686 + 8 632.14 902 3 0 0.783078 0.461711 -115.85 + 8 131.796 992 2 1 18.4706 1.94661 -144.45 + 8 114.995 910 2 0 18.6237 2.12523 -145.85 + 8 71.2694 898 3 1 -0.25 0.362767 -114.588 + 8 245.414 844 2 1 -11.1198 1.8851 -144.45 + 8 22.4699 919 2 0 -10.9358 3.9779 -145.85 + 8 59.8675 920 2 0 -10.9289 4.05 -145.9 + 8 88.0918 921 2 0 -10.9111 4.25 -146.034 + 8 52.0172 922 2 0 -10.8805 4.45 -146.166 + 8 45.01 862 1 1 -7.52389 44.6591 -174.45 + 8 90.3857 861 1 1 -7.65 44.684 -174.564 + 8 54.0367 860 1 1 -7.85 44.7159 -174.698 + 8 19.6191 859 1 1 -8.05 44.7321 -174.807 + 8 165.341 1125 1 0 -9.94814 45.172 -175.85 + 8 119.788 1126 1 0 -10.2806 45.25 -176.032 + 8 124.159 652 0 1 -49.6131 58.2536 -204.45 + 8 130.384 1192 0 0 -49.1546 58.4766 -205.85 + 8 23.7386 900 5 1 0.226484 0.05 -54.478 +Number of digits in this event = 14 Event: 9 -Number of tracker hits in this event = 35 - 9 209.938 899 4 1 -0.140093 -0.393246 -84.45 - 9 134.084 898 4 0 -0.141875 -0.398965 -85.85 - 9 115.568 899 3 1 -0.134846 -0.502417 -114.45 - 9 111.36 897 3 0 -0.128926 -0.592003 -115.85 - 9 327.216 899 2 1 -0.121542 -2.29366 -144.45 - 9 112.064 888 2 0 -0.118203 -2.40354 -145.85 - 9 135.857 900 1 1 0.0858897 -4.58385 -174.45 - 9 122.468 876 1 0 0.124464 -4.67659 -175.85 - 9 104.407 904 0 1 1.03388 -6.66355 -204.45 - 9 127.08 866 0 0 1.08406 -6.77008 -205.85 - 9 127.483 889 2 0 -0.586039 -2.23755 -145.85 - 9 61.1676 828 1 1 -14.402 -5.10924 -174.45 - 9 57.5155 827 1 1 -14.45 -5.01374 -174.643 - 9 3.19735 877 1 0 -14.3944 -4.45597 -175.85 - 9 302.176 878 1 0 -14.3931 -4.45 -175.863 - 9 44.4207 838 0 1 -12.3625 12.0127 -204.45 - 9 79.3043 837 0 1 -12.45 12.1067 -204.52 - 9 118.461 836 0 1 -12.65 12.2228 -204.68 - 9 27.0487 835 0 1 -12.85 12.2939 -204.812 - 9 167.208 965 0 0 -15.5255 13.1078 -205.85 - 9 137.78 966 0 0 -15.9924 13.25 -206.03 - 9 173.278 967 0 0 -16.2652 13.45 -206.102 - 9 219.978 1081 0 0 -101.306 36.3397 -206.25 - 9 149.341 1080 0 0 -101.646 36.25 -205.901 - 9 336.582 394 0 1 -101.287 35.0141 -204.85 - 9 200.844 395 0 1 -101.15 34.6989 -204.647 - 9 2.66102 396 0 1 -100.95 34.3395 -204.456 - 9 65.7426 1059 0 0 -101.192 32.0239 -205.85 - 9 126.966 1058 0 0 -101.182 31.85 -205.981 - 9 40.6478 1099 0 0 -94.352 40.0238 -206.25 - 9 77.3037 1100 0 0 -94.3171 40.05 -206.096 - 9 36.9232 431 0 1 -93.8015 40.1893 -204.85 - 9 163.85 432 0 1 -93.75 40.2241 -204.754 - 9 289.366 433 0 1 -93.55 40.2377 -204.46 - 9 175.506 434 0 1 -93.35 39.6784 -204.616 -Number of digits in this event = 20 +Number of tracker hits in this event = 10 + 9 111.862 900 4 1 0.0912253 0.378256 -84.45 + 9 240.464 901 4 0 0.0969537 0.390485 -85.85 + 9 108.534 900 3 1 0.218321 0.635032 -114.45 + 9 120.865 903 3 0 0.221966 0.652558 -115.85 + 9 102.597 901 2 1 0.293879 0.996923 -144.45 + 9 173.959 904 2 0 0.299149 1.01346 -145.85 + 9 119.078 901 1 1 0.401514 1.32844 -174.45 + 9 130.466 906 1 0 0.395594 1.33965 -175.85 + 9 128.983 901 0 1 0.27737 1.56976 -204.45 + 9 133.22 907 0 0 0.279936 1.56607 -205.85 +Number of digits in this event = 7 Event: 10 -Number of tracker hits in this event = 15 - 10 117.938 900 4 1 0.113715 0.278609 -84.45 - 10 127.79 901 4 0 0.115726 0.300989 -85.85 - 10 120.764 900 3 1 0.221732 0.731794 -114.45 - 10 122.11 903 3 0 0.241616 0.750908 -115.85 - 10 109.692 902 2 1 0.60185 1.15353 -144.45 - 10 307.079 905 2 0 0.619767 1.18979 -145.85 - 10 180.7 904 1 1 0.980307 1.93422 -174.45 - 10 120.369 909 1 0 1.00445 1.99201 -175.85 - 10 166.147 907 0 1 1.55284 3.21578 -204.45 - 10 125.312 916 0 0 1.57275 3.26453 -205.85 - 10 26.3125 584 8 1 -63.077 0.709765 35.55 - 10 83.0403 585 8 1 -63.05 0.687664 35.5353 - 10 218.063 586 8 1 -62.85 0.644078 35.4547 - 10 10.7946 1071 4 1 34.2848 -117.001 -84.4675 - 10 317.807 562 13 1 -67.6217 -50.8628 185.227 -Number of digits in this event = 11 -Event: 11 -Number of tracker hits in this event = 14 - 11 110.704 900 5 1 0.113992 -0.0735281 -54.45 - 11 137.038 899 5 0 0.126455 -0.0708431 -55.85 - 11 118.349 903 3 1 0.739437 0.283277 -114.45 - 11 142.144 901 3 0 0.745508 0.296234 -115.85 - 11 135.786 904 2 1 0.854236 0.57452 -144.45 - 11 204.075 902 2 0 0.868774 0.579546 -145.85 - 11 163.086 905 1 1 1.13821 0.696162 -174.45 - 11 110.942 903 1 0 1.16118 0.709315 -175.85 - 11 118.227 908 0 1 1.68074 0.979394 -204.45 - 11 124.545 904 0 0 1.70042 0.977527 -205.85 - 11 4.89028 546 7 1 -70.7942 8.8592 5.17831 - 11 307.65 298 7 0 -37.423 -120.363 3.75 - 11 95.9747 712 7 1 -37.5661 -120.844 5.15 - 11 37.8496 811 1 1 -17.7523 -68.5055 -174.595 -Number of digits in this event = 9 -Event: 12 -Number of tracker hits in this event = 30 - 12 149.632 900 5 1 0.0817528 0.139579 -54.45 - 12 124.181 900 5 0 0.0874954 0.147006 -55.85 - 12 264.453 900 4 1 0.20893 0.301531 -84.45 - 12 374.586 901 4 0 0.221143 0.317541 -85.85 - 12 123.123 902 3 1 0.461082 0.685386 -114.45 - 12 200.73 903 3 0 0.475611 0.701925 -115.85 - 12 135.226 903 2 1 0.784819 1.04774 -144.45 - 12 156.408 905 2 0 0.802927 1.06499 -145.85 - 12 250.603 905 1 1 1.21101 1.41905 -174.45 - 12 123.107 906 1 0 1.22703 1.43945 -175.85 - 12 240.191 907 0 1 1.56133 1.84081 -204.45 - 12 138.15 909 0 0 1.57146 1.85765 -205.85 - 12 389.765 908 0 0 1.32197 1.79371 -205.85 - 12 11.02 888 2 1 -2.30294 72.7855 -144.6 - 12 142.048 877 1 0 145.395 -4.54335 -176.25 - 12 202.369 1277 0 0 -69.0826 75.5261 -205.858 - 12 246.831 550 0 1 -69.9343 74.6223 -204.85 - 12 49.0652 570 0 1 -65.9645 40.3804 -204.45 - 12 88.499 569 0 1 -66.05 40.348 -204.576 - 12 154.718 1100 0 0 -66.8498 40.1878 -205.85 - 12 44.6039 585 0 0 -58.5753 -62.8617 -206.25 - 12 55.7331 584 0 0 -58.5442 -63.05 -206.221 - 12 58.8921 583 0 0 -58.5339 -63.25 -206.195 - 12 89.1334 582 0 0 -58.5165 -63.45 -206.227 - 12 11.6306 581 0 0 -58.5548 -63.65 -206.238 - 12 50.7404 331 0 0 -112.564 -113.883 -206.25 - 12 144.107 330 0 0 -112.643 -113.95 -206.187 - 12 130.337 329 0 0 -112.893 -114.15 -205.91 - 12 33.4516 333 0 1 -113.493 -114.938 -204.85 - 12 270.163 332 0 1 -113.55 -115.012 -204.75 -Number of digits in this event = 23 -Event: 13 -Number of tracker hits in this event = 22 - 13 128.566 899 2 1 -0.183043 0.29204 -144.45 - 13 371.532 901 2 0 -0.192258 0.296284 -145.85 - 13 103.468 900 1 1 0.0742405 0.141658 -174.45 - 13 96.7285 894 0 1 -1.21048 2.83543 -204.45 - 13 38.044 893 0 1 -1.25 2.82705 -204.786 - 13 134.255 913 0 0 -1.3689 2.83208 -205.85 - 13 87.4129 900 1 0 -0.05 0.189413 -176.103 - 13 151.126 863 1 0 -31.0649 -7.25935 -176.25 - 13 51.6874 864 1 0 -31.068 -7.25 -176.218 - 13 35.8872 745 1 1 -30.8754 -7.11207 -174.85 - 13 90.6271 746 1 1 -30.85 -7.10886 -174.748 - 13 210.847 747 1 1 -30.65 -7.13482 -174.614 - 13 102.474 748 1 1 -30.45 -6.94362 -174.48 - 13 0.197324 898 2 1 -0.447143 -0.05 -144.516 - 13 69.7162 897 2 1 -0.45 -0.0509003 -144.517 - 13 60.6268 896 2 1 -0.65 -0.11815 -144.61 - 13 67.7659 895 2 1 -0.85 -0.189297 -144.694 - 13 966.009 897 2 0 -2.72231 -0.486824 -145.85 - 13 99.1542 893 2 1 -1.42285 0.05 -144.803 - 13 121.452 892 2 1 -1.45 0.258069 -144.477 - 13 97.9522 896 2 0 -2.19957 -0.65 -145.959 - 13 13.9224 895 2 0 -2.39261 -0.85 -146.208 -Number of digits in this event = 8 -Event: 14 -Number of tracker hits in this event = 23 - 14 131.044 899 3 0 0.729373 -0.0523471 -115.85 - 14 127.996 903 2 1 0.801471 -0.145276 -144.45 - 14 127.12 899 2 0 0.814688 -0.153191 -145.85 - 14 129.182 905 1 1 1.07811 -0.327694 -174.45 - 14 97.3582 898 1 0 1.11072 -0.294888 -175.85 - 14 109.709 908 0 1 1.80298 0.365754 -204.45 - 14 119.402 902 0 0 1.90464 0.534153 -205.85 - 14 256.229 903 1 1 0.811721 -0.145445 -174.615 - 14 307.762 899 1 0 0.80941 -0.145334 -175.85 - 14 135.344 903 0 1 0.672601 -0.15134 -204.45 - 14 280.126 899 0 0 0.654082 -0.151681 -205.85 - 14 79.0067 854 0 0 -30.2435 -9.14565 -206.25 - 14 244.987 853 0 0 -30.3593 -9.25 -206.117 - 14 208.56 852 0 0 -30.3478 -9.45 -205.904 - 14 99.4536 904 0 1 0.889292 -0.183027 -204.45 - 14 40.8616 1056 0 1 31.4491 -11.5474 -204.587 - 14 76.6779 1057 0 1 31.45 -11.5477 -204.586 - 14 47.6244 1019 0 1 23.9609 -13.5132 -204.76 - 14 99.3393 400 0 0 108.629 -99.9577 -206.236 - 14 246.156 386 0 0 159.065 -102.848 -206.25 - 14 42.0381 387 0 0 159.243 -102.75 -205.881 - 14 117.314 1689 0 1 158.047 -101.761 -204.85 - 14 255.678 1688 0 1 157.95 -101.531 -204.766 -Number of digits in this event = 13 -Event: 15 Number of tracker hits in this event = 12 - 15 121.147 900 5 1 0.11494 0.165711 -54.45 - 15 112.827 900 5 0 0.119787 0.180211 -55.85 - 15 137.202 901 4 1 0.251293 0.445522 -84.45 - 15 161.567 902 4 0 0.253536 0.464535 -85.85 - 15 109.232 901 3 1 0.300302 0.881306 -114.45 - 15 147.415 904 3 0 0.300747 0.916416 -115.85 - 15 97.0205 901 2 1 0.312753 1.66441 -144.45 - 15 135.832 908 2 0 0.314264 1.71274 -145.85 - 15 115.175 902 1 1 0.474177 2.60545 -174.45 - 15 119.509 913 1 0 0.48032 2.66963 -175.85 - 15 208.552 903 0 1 0.652378 4.01101 -204.45 - 15 173.485 920 0 0 0.657892 4.07093 -205.85 -Number of digits in this event = 8 -Event: 16 -Number of tracker hits in this event = 6 - 16 127.828 899 4 1 -0.190307 -0.0907649 -84.45 - 16 131.366 899 4 0 -0.198812 -0.0898382 -85.85 - 16 150.877 896 1 1 -0.72748 -0.100715 -174.45 - 16 114.992 899 1 0 -0.724396 -0.0963646 -175.85 - 16 204.727 1734 4 0 72.1271 166.985 -86.0249 - 16 43.2275 1383 1 1 96.9315 1.01177 -174.636 -Number of digits in this event = 6 -Event: 17 -Number of tracker hits in this event = 32 - 17 278.389 899 4 1 -0.196844 -0.460761 -84.45 - 17 121.825 897 4 0 -0.228221 -0.505182 -85.85 - 17 269.306 896 3 1 -0.744774 -1.50914 -114.45 - 17 108.075 892 3 0 -0.795943 -1.49179 -115.85 - 17 108.123 890 2 1 -2.03949 -1.10539 -144.45 - 17 116.802 895 2 0 -2.04957 -0.90244 -145.85 - 17 6.55209 896 2 0 -2.05203 -0.85 -146.219 - 17 145.459 887 1 1 -2.51755 2.61205 -174.45 - 17 169.656 913 1 0 -2.57735 2.77212 -175.85 - 17 123.988 878 0 1 -4.33268 5.35235 -204.45 - 17 48.1833 926 0 0 -4.47447 5.43798 -205.85 - 17 97.5412 927 0 0 -4.4938 5.45 -206.045 - 17 230.291 899 4 0 -0.181997 -0.0766767 -85.85 - 17 121.286 900 2 1 0.19987 -0.141802 -144.45 - 17 104.993 899 2 0 0.19174 -0.211367 -145.85 - 17 158.727 901 1 1 0.284072 -1.75812 -174.45 - 17 142.796 891 1 0 0.313561 -1.75983 -175.85 - 17 125.842 904 0 1 0.986264 -1.54475 -204.45 - 17 123.3 892 0 0 1.09659 -1.5567 -205.85 - 17 171.738 900 3 1 0.0651442 -2.54224 -114.45 - 17 116.087 886 3 0 0.154598 -2.68909 -115.85 - 17 110.236 909 2 1 2.0111 -5.70133 -144.45 - 17 9.44792 910 2 1 2.05 -5.72974 -144.8 - 17 82.4686 871 2 0 2.1621 -5.82756 -145.85 - 17 66.5729 870 2 0 2.18775 -5.85 -146.09 - 17 143.266 927 1 1 5.50287 -8.77221 -174.45 - 17 121.252 855 1 0 5.67259 -8.901 -175.85 - 17 135.685 947 0 1 9.53993 -11.3589 -204.45 - 17 16.5358 842 0 0 9.78662 -11.6344 -205.85 - 17 93.8417 841 0 0 9.80038 -11.65 -205.929 - 17 306.732 715 0 1 -36.8967 -22.1149 -204.577 - 17 156.352 1307 8 1 81.6037 -95.5103 35.55 -Number of digits in this event = 20 -Event: 18 -Number of tracker hits in this event = 18 - 18 129.489 899 5 1 -0.146748 -0.118394 -54.45 - 18 115.705 899 5 0 -0.187453 -0.115537 -55.85 - 18 129.22 895 4 1 -0.931098 -0.0853061 -84.45 - 18 130.97 898 3 1 -0.392567 2.19805 -114.45 - 18 107.296 911 3 0 -0.330441 2.37207 -115.85 - 18 119.267 904 2 1 0.987476 6.07535 -144.45 - 18 150.736 931 2 0 1.03684 6.29263 -145.85 - 18 287.919 908 1 1 1.66746 10.8644 -174.45 - 18 131.768 954 1 0 1.93756 11.0164 -175.85 - 18 30.1919 955 1 0 1.99618 11.05 -176.167 - 18 118.223 938 0 1 7.72432 13.8277 -204.45 - 18 136.614 968 0 0 8.04484 13.7574 -205.85 - 18 88.2035 858 8 0 -22.2049 -8.34848 33.785 - 18 60.6515 782 8 1 -23.4558 -5.11305 35.4408 - 18 43.583 880 0 0 16.3195 -3.94617 -206.25 - 18 64.2203 879 0 0 16.3354 -4.05 -206.161 - 18 19.8165 455 0 0 3.04787 -88.9941 -206.25 - 18 223.419 454 0 0 3.03904 -89.05 -206.237 + 10 133.429 900 5 1 0.177084 0.30392 -54.45 + 10 106.977 901 5 0 0.185991 0.310192 -55.85 + 10 125.443 901 4 1 0.393389 0.4728 -84.45 + 10 122.348 902 4 0 0.39905 0.473896 -85.85 + 10 158.217 902 3 1 0.530474 0.459181 -114.45 + 10 106.037 902 3 0 0.539092 0.456016 -115.85 + 10 109.647 903 2 1 0.699444 0.411393 -144.45 + 10 120.858 901 2 0 0.716888 0.416003 -145.85 + 10 228.49 904 1 1 1.04714 0.54047 -174.45 + 10 126.018 902 1 0 1.0534 0.552452 -175.85 + 10 113.152 905 0 1 1.20327 0.777889 -204.45 + 10 124 903 0 0 1.20983 0.789015 -205.85 Number of digits in this event = 9 -Event: 19 -Number of tracker hits in this event = 16 - 19 120.977 899 5 1 -0.0772037 0.143635 -54.45 - 19 107.023 900 5 0 -0.0874991 0.160596 -55.85 - 19 139.254 898 4 1 -0.336297 0.522277 -84.45 - 19 91.5304 902 4 0 -0.352075 0.555052 -85.85 - 19 154.134 897 3 1 -0.623775 1.19656 -114.45 - 19 114.174 905 3 0 -0.637375 1.22965 -115.85 - 19 138.606 895 2 1 -0.940715 1.9643 -144.45 - 19 141.457 909 2 0 -0.961157 1.98721 -145.85 - 19 134.394 893 1 1 -1.36808 2.45554 -174.45 - 19 141.002 912 1 0 -1.38651 2.47315 -175.85 - 19 122.314 891 0 1 -1.73305 2.80561 -204.45 - 19 142.291 913 0 0 -1.73754 2.8232 -205.85 - 19 163.503 898 1 1 -0.42731 0.569418 -174.45 - 19 91.836 900 1 0 0.05 0.247258 -175.934 - 19 102.28 874 1 0 -116.187 -5.17231 -176.088 - 19 137.977 422 4 0 -5.40217 -95.5612 -85.9398 -Number of digits in this event = 13 -Event: 20 -Number of tracker hits in this event = 21 - 20 9.58807 899 6 0 -0.0679042 -0.05 -26.2 - 20 87.6203 896 5 1 -0.670911 -1.1825 -54.45 - 20 29.6919 897 5 1 -0.65 -1.19271 -54.7267 - 20 78.6241 894 5 0 -0.581956 -1.24053 -55.85 - 20 70.9613 893 5 0 -0.568748 -1.25 -56.069 - 20 158.444 904 4 1 0.903691 -3.00102 -84.45 - 20 137.803 884 4 0 0.917729 -3.15084 -85.85 - 20 167.699 905 3 1 1.10664 -5.95781 -114.45 - 20 142.851 869 3 0 1.03772 -6.05699 -115.85 - 20 415.332 899 2 1 -0.197296 -8.46473 -144.45 - 20 114.727 857 2 0 -0.352231 -8.56083 -145.85 - 20 110.485 885 1 1 -2.852 -10.3847 -174.45 - 20 171.222 847 1 0 -3.09777 -10.4954 -175.85 - 20 99.5538 862 0 1 -7.519 -12.7056 -204.45 - 20 33.3167 861 0 1 -7.65 -12.7531 -204.73 - 20 140.754 835 0 0 -8.17497 -12.9391 -205.85 - 20 35.5039 895 2 1 -0.894097 -7.63239 -144.666 - 20 84.9079 851 0 0 -28.6028 -9.76515 -205.986 - 20 114.401 919 0 0 -15.5056 3.95868 -205.945 - 20 163.135 889 0 0 10.7152 -2.21276 -206.25 - 20 15.5934 888 0 0 10.6547 -2.25 -206.219 -Number of digits in this event = 9 -Event: 21 -Number of tracker hits in this event = 21 - 21 125.405 900 5 1 0.160978 -0.109253 -54.45 - 21 196.758 899 5 0 0.168851 -0.113867 -55.85 - 21 100.973 901 4 1 0.330526 -0.212515 -84.45 - 21 161.471 899 4 0 0.336166 -0.222337 -85.85 - 21 121.066 901 3 1 0.379537 -0.460828 -114.45 - 21 111.999 897 3 0 0.37699 -0.467081 -115.85 - 21 328.455 901 2 1 0.327863 -0.58922 -144.45 - 21 119.502 897 2 0 0.327294 -0.5965 -145.85 - 21 122.958 901 1 1 0.286295 -0.755942 -174.45 - 21 141.353 896 1 0 0.283951 -0.773605 -175.85 - 21 131.839 900 0 1 0.215441 -1.1306 -204.45 - 21 151.943 894 0 0 0.209995 -1.14527 -205.85 - 21 79.5795 898 4 0 0.356219 -0.25 -85.9797 - 21 181.623 855 4 0 28.7966 -8.98628 -86.25 - 21 7.89629 1047 4 1 29.6277 -8.737 -84.85 - 21 128.674 1048 4 1 29.65 -8.73121 -84.8052 - 21 3.64585 1049 4 1 29.85 -8.66413 -84.4638 - 21 11.3532 1030 5 0 69.2155 26.2171 -56.25 - 21 75.1599 1031 5 0 69.2593 26.25 -56.2313 - 21 126.454 1032 5 0 69.2952 26.45 -56.15 - 21 49.5096 1033 5 0 69.1493 26.65 -56.1859 -Number of digits in this event = 15 -Event: 22 -Number of tracker hits in this event = 31 - 22 111.32 899 5 1 -0.127286 -0.214319 -54.45 - 22 117.463 899 5 0 -0.130976 -0.226315 -55.85 - 22 113.412 899 4 1 -0.221953 -0.465784 -84.45 - 22 350.194 897 4 0 -0.249791 -0.480867 -85.85 - 22 108.091 895 3 1 -0.852627 -0.777895 -114.45 - 22 120.249 896 3 0 -0.879679 -0.805075 -115.85 - 22 129.07 893 2 1 -1.44353 -1.38543 -144.45 - 22 92.472 892 2 1 -1.45 -1.39188 -144.74 - 22 126.886 893 2 0 -1.47438 -1.41587 -145.85 - 22 117.592 889 1 1 -2.10508 -2.05413 -174.45 - 22 123.082 889 1 0 -2.1331 -2.0816 -175.85 - 22 183.599 886 0 1 -2.71387 -2.60091 -204.45 - 22 140.242 887 0 0 -2.73978 -2.63495 -205.85 - 22 81.0105 894 2 1 -1.25 -1.50669 -144.519 - 22 89.8097 895 2 1 -1.05 -1.63991 -144.648 - 22 67.5955 896 2 1 -0.85 -1.82806 -144.738 - 22 71.8404 897 2 1 -0.65 -1.96179 -144.737 - 22 56.5093 898 2 1 -0.45 -2.10814 -144.791 - 22 82.7859 899 2 1 -0.25 -2.21011 -144.799 - 22 51.3944 900 2 1 0.05 -2.39567 -144.795 - 22 54.4822 901 2 1 0.25 -2.44121 -144.836 - 22 67.4511 902 2 1 0.45 -2.55029 -144.814 - 22 32.8319 903 2 1 0.65 -2.64337 -144.809 - 22 108.263 887 2 0 3.84291 -2.61559 -145.85 - 22 89.0998 888 2 0 4.13036 -2.45 -145.948 - 22 0.448406 933 2 1 6.84585 -1.31588 -144.85 - 22 161.275 934 2 1 6.85 -1.31414 -144.848 - 22 453.644 935 2 1 7.05 -1.27028 -144.775 - 22 27.9191 936 2 1 7.25 -1.13698 -144.486 - 22 2.90446 1726 5 1 165.47 -139.103 -54.718 - 22 177.213 211 5 0 160.417 -137.798 -56.0288 +Event: 11 +Number of tracker hits in this event = 15 + 11 149.79 899 5 1 -0.0719635 0.287331 -54.45 + 11 135.025 901 5 0 -0.0677149 0.288036 -55.85 + 11 99.2615 900 4 1 0.0613328 0.333636 -84.45 + 11 117.336 901 4 0 0.0597315 0.329018 -85.85 + 11 104.999 900 2 1 0.113243 -0.530547 -144.45 + 11 117.181 897 2 0 0.127259 -0.562229 -145.85 + 11 284.615 901 1 1 0.379871 -1.19215 -174.45 + 11 125.137 894 1 0 0.381457 -1.19747 -175.85 + 11 123.409 901 0 1 0.421856 -1.32134 -204.45 + 11 126.506 893 0 0 0.420962 -1.3341 -205.85 + 11 219.049 214 8 0 32.3284 -137.307 33.9158 + 11 198.992 1552 4 1 130.604 136.153 -84.6328 + 11 61.8014 1551 4 1 130.55 136.6 -84.7167 + 11 132.649 1583 4 0 129.67 136.826 -85.85 + 11 312.182 1584 4 0 129.713 136.95 -86.1205 Number of digits in this event = 11 +Event: 12 +Number of tracker hits in this event = 20 + 12 144.655 903 4 1 0.686522 -0.180935 -84.45 + 12 164.18 899 4 0 0.738033 -0.202748 -85.85 + 12 194.469 908 3 1 1.79659 -0.641684 -114.45 + 12 201.343 896 3 0 1.82735 -0.665392 -115.85 + 12 143.046 912 2 1 2.52193 -1.189 -144.45 + 12 124.944 894 2 0 2.55919 -1.19799 -145.85 + 12 136.267 917 1 1 3.47998 -1.29254 -174.45 + 12 247.342 893 1 0 3.50739 -1.29917 -175.85 + 12 134.727 920 0 1 4.0592 -1.36892 -204.45 + 12 120.804 893 0 0 4.05789 -1.35789 -205.85 + 12 37.986 897 3 0 1.92522 -0.65 -116.134 + 12 426.035 975 3 0 -12.4019 15.1831 -116.25 + 12 239.755 904 1 1 0.868736 -0.481977 -174.45 + 12 170.572 898 1 0 0.897562 -0.449144 -175.85 + 12 125.292 907 0 1 1.60159 0.381208 -204.45 + 12 239.334 902 0 0 1.60567 0.498805 -205.85 + 12 8.3706 900 2 1 0.0607172 0.304544 -144.45 + 12 269.75 899 1 0 0.826047 -0.230637 -175.85 + 12 136.031 900 0 1 0.206384 5.05171 -204.45 + 12 62.8796 926 0 0 0.069331 5.26066 -205.85 +Number of digits in this event = 20 +Event: 13 +Number of tracker hits in this event = 56 + 13 108.821 901 5 1 0.255019 -0.108753 -54.45 + 13 115.344 899 5 0 0.25609 -0.120958 -55.85 + 13 105.735 900 4 1 0.249061 -0.396652 -84.45 + 13 224.248 898 4 0 0.247691 -0.404291 -85.85 + 13 232.723 900 3 1 0.234568 -0.563756 -114.45 + 13 123.269 897 3 0 0.231933 -0.574871 -115.85 + 13 122.586 900 2 1 0.160101 -0.797976 -144.45 + 13 172.124 896 2 0 0.159808 -0.808555 -145.85 + 13 314.987 900 1 1 0.16984 -1.01697 -174.45 + 13 104.853 895 1 0 0.168832 -1.02143 -175.85 + 13 154.863 900 0 1 0.144786 -1.13911 -204.45 + 13 104.791 894 0 0 0.140395 -1.14895 -205.85 + 13 76.8296 900 6 0 0.190327 0.05 -26.0391 + 13 119.914 915 5 1 3.08239 0.998149 -54.45 + 13 139.479 904 5 0 3.1392 1.00797 -55.85 + 13 105.247 921 4 1 4.30685 0.845135 -84.45 + 13 95.0727 904 4 0 4.31149 1.00952 -85.85 + 13 24.0689 905 4 0 4.31201 1.05 -86.1896 + 13 106.237 921 3 1 4.40167 4.62446 -114.45 + 13 12.2014 922 3 1 4.45 4.69898 -114.805 + 13 110.417 924 3 0 4.61333 4.90422 -115.85 + 13 15.2518 947 2 1 9.63747 10.165 -144.45 + 13 89.9458 948 2 1 9.65 10.1784 -144.513 + 13 135.106 952 2 0 9.95611 10.4571 -145.85 + 13 130.341 982 1 1 16.4907 17.1657 -174.45 + 13 149.863 987 1 0 16.8159 17.4825 -175.85 + 13 116.136 1016 0 1 23.3532 23.6972 -204.45 + 13 117.725 1017 0 1 23.45 23.81 -204.802 + 13 60.5893 1020 0 0 23.7278 24.1792 -205.85 + 13 74.8574 1021 0 0 23.781 24.25 -206.051 + 13 89.6816 996 3 1 19.3495 1.20674 -114.45 + 13 53.373 995 3 1 19.25 1.26015 -114.71 + 13 537.922 907 3 0 18.831 1.53225 -115.85 + 13 13.5416 1353 0 1 90.8893 5.05475 -204.821 + 13 237.624 896 1 0 0.365772 -0.817386 -175.85 + 13 21.781 954 0 1 10.8631 7.87921 -204.45 + 13 79.3825 953 0 1 10.85 7.87378 -204.552 + 13 81.0076 938 0 0 10.8474 7.68264 -205.85 + 13 46.0111 937 0 0 10.8488 7.65 -206.051 + 13 32.7915 927 0 1 5.48494 4.66995 -204.45 + 13 151.055 926 0 1 5.45 4.62977 -204.557 + 13 73.7277 920 0 0 5.08523 4.14359 -205.85 + 13 48.2675 919 0 0 5.01873 4.05 -206.099 + 13 111.082 839 0 0 -6.66074 -12.0806 -206.25 + 13 28.5349 838 0 0 -6.80662 -12.25 -205.913 + 13 49.4315 864 0 1 -7.21689 -12.9024 -204.85 + 13 130.373 863 0 1 -7.25 -12.956 -204.764 + 13 130.078 862 0 1 -7.54802 -13.3955 -204.45 + 13 65.3799 835 0 0 -7.92624 -12.9072 -205.85 + 13 87.6672 836 0 0 -7.99192 -12.85 -206.034 + 13 35.8564 1070 0 1 34.0989 -53.0552 -204.666 + 13 157.336 964 3 0 49.9269 12.9568 -115.929 + 13 15.6546 646 1 0 -2.55852 -50.7189 -176.25 + 13 6.54707 498 1 0 -52.1704 -80.4408 -176.25 + 13 98.1512 497 1 0 -52.1796 -80.45 -176.244 + 13 215.97 986 0 1 17.3169 -86.9128 -204.45 +Number of digits in this event = 20 +Event: 14 +Number of tracker hits in this event = 29 + 14 107.005 900 5 0 0.05 0.189481 -55.8922 + 14 109.605 900 4 1 0.120696 0.450479 -84.45 + 14 151.026 902 4 0 0.12896 0.463815 -85.85 + 14 116.257 901 3 1 0.296882 0.733647 -114.45 + 14 88.9594 903 3 0 0.30747 0.741551 -115.85 + 14 322.15 902 2 1 0.522558 0.91643 -144.45 + 14 391.739 904 2 0 0.530373 0.928489 -145.85 + 14 172.77 903 1 1 0.711218 1.22765 -174.45 + 14 42.7384 905 1 0 0.720751 1.24837 -175.85 + 14 76.9346 906 1 0 0.721517 1.25 -175.961 + 14 104.551 904 0 1 0.900321 1.67464 -204.45 + 14 113.14 908 0 0 0.906632 1.6867 -205.85 + 14 31.3309 385 5 1 -102.983 -42.0853 -54.4929 + 14 22.2761 419 2 1 -96.2123 -0.419892 -144.524 + 14 87.6111 900 5 1 0.0820754 0.0665569 -54.5319 + 14 48.5215 891 4 1 -1.745 0.439481 -84.45 + 14 89.428 892 4 1 -1.65 0.466155 -84.5685 + 14 21.7095 893 4 1 -1.45 0.520379 -84.8216 + 14 96.9113 903 4 0 -0.641579 0.79387 -85.85 + 14 84.9335 904 4 0 -0.475472 0.85 -86.0611 + 14 100.154 1007 3 1 21.5749 9.52533 -114.45 + 14 82.0741 1008 3 1 21.65 9.57711 -114.502 + 14 90.9257 1009 3 1 21.85 9.70749 -114.633 + 14 74.789 1010 3 1 22.05 9.85816 -114.766 + 14 54.1248 955 3 0 23.9303 11.1668 -115.85 + 14 123.192 956 3 0 24.0496 11.25 -115.919 + 14 95.4116 957 3 0 24.3478 11.45 -116.097 + 14 93.3345 1235 2 1 67.2394 34.9304 -144.45 + 14 122.136 1074 2 0 67.2827 35.0046 -145.85 +Number of digits in this event = 8 +Event: 15 +Number of tracker hits in this event = 11 + 15 137.746 901 4 1 0.265891 0.171832 -84.45 + 15 116.149 900 4 0 0.270195 0.179569 -85.85 + 15 106.172 901 3 1 0.34424 0.247532 -114.45 + 15 150.893 901 3 0 0.349756 0.266882 -115.85 + 15 113.011 902 2 1 0.473012 0.668218 -144.45 + 15 117.279 903 2 0 0.470026 0.693677 -145.85 + 15 130.78 901 1 1 0.443234 1.24156 -174.45 + 15 168.267 906 1 0 0.453121 1.26802 -175.85 + 15 111.319 903 0 1 0.682861 1.78091 -204.45 + 15 104.66 908 0 0 0.705532 1.81182 -205.85 + 15 79.4232 950 3 0 9.69631 10.2392 -116.187 +Number of digits in this event = 6 +Event: 16 +Number of tracker hits in this event = 12 + 16 181.399 899 5 1 -0.11026 0.0630912 -54.45 + 16 121.222 900 5 0 -0.113949 0.0760979 -55.85 + 16 110.894 899 4 1 -0.184086 0.372642 -84.45 + 16 107.665 901 4 0 -0.182668 0.383141 -85.85 + 16 128.133 899 3 1 -0.120873 0.5799 -114.45 + 16 116.755 902 3 0 -0.117845 0.581338 -115.85 + 16 98.2296 899 2 1 -0.05 0.623358 -144.593 + 16 103.412 902 2 0 -0.059106 0.623381 -145.85 + 16 111.237 898 1 1 -0.288808 0.646193 -174.45 + 16 107.947 902 1 0 -0.302789 0.635767 -175.85 + 16 122.087 897 0 1 -0.586419 0.435039 -204.45 + 16 113.986 901 0 0 -0.600622 0.423995 -205.85 +Number of digits in this event = 5 +Event: 17 +Number of tracker hits in this event = 33 + 17 143.486 901 4 1 0.442405 0.0682942 -84.45 + 17 109.494 900 4 0 0.457143 0.0645461 -85.85 + 17 96.6257 906 0 1 1.25916 -0.221905 -204.45 + 17 138.338 899 0 0 1.2676 -0.235465 -205.85 + 17 310.128 902 2 1 0.519127 -0.128209 -144.45 + 17 74.553 903 2 1 0.65 -0.134799 -144.65 + 17 28.9291 980 1 1 16.1979 6.03648 -174.45 + 17 247.938 981 1 1 16.25 6.05454 -174.536 + 17 130.09 931 1 0 17.0097 6.35992 -175.85 + 17 6.31458 932 1 0 17.2269 6.45 -176.228 + 17 120.433 1070 0 1 34.1219 11.671 -204.45 + 17 65.1358 959 0 0 34.3958 12.0336 -205.85 + 17 104.865 960 0 0 34.4092 12.05 -205.915 + 17 131.627 899 2 0 -1.68128 -0.202191 -145.85 + 17 44.4557 885 2 1 -2.95549 0.210218 -144.85 + 17 228.128 884 2 1 -3.05 0.173566 -144.794 + 17 68.6938 883 2 1 -3.25 -0.141847 -144.777 + 17 77.2802 903 3 1 0.665215 -0.05 -114.636 + 17 112.845 897 3 0 1.02376 -0.541567 -115.85 + 17 69.4052 970 2 1 14.1004 2.12956 -144.45 + 17 76.6733 969 2 1 14.05 2.22405 -144.649 + 17 108.115 911 2 0 13.6913 2.32774 -145.85 + 17 81.8661 905 1 1 1.14889 -0.05 -174.492 + 17 23.6481 906 1 1 1.25 -0.10951 -174.763 + 17 103.185 898 1 0 1.72866 -0.37207 -175.85 + 17 37.0031 897 1 0 1.86935 -0.45 -176.167 + 17 23.5153 977 0 1 15.4535 -8.08427 -204.45 + 17 129.573 976 0 1 15.45 -8.11385 -204.499 + 17 23.7415 855 0 0 15.4719 -9.00812 -205.85 + 17 79.7425 854 0 0 15.4748 -9.05 -205.91 + 17 22.681 853 0 0 15.486 -9.25 -206.192 + 17 199.386 1790 6 1 178.173 -150.047 -24.8495 + 17 43.4219 1462 1 1 112.71 89.965 -174.845 +Number of digits in this event = 11 +Event: 18 +Number of tracker hits in this event = 12 + 18 132.489 900 5 1 0.191157 0.107968 -54.45 + 18 113.481 900 5 0 0.192221 0.102599 -55.85 + 18 161.237 901 3 1 0.302241 -0.0709015 -114.45 + 18 100.654 899 3 0 0.308926 -0.0741108 -115.85 + 18 120.784 902 2 1 0.478388 -0.119423 -144.45 + 18 119.146 899 2 0 0.482436 -0.116409 -145.85 + 18 277.09 902 0 1 0.586442 0.075656 -204.45 + 18 387.505 900 0 0 0.566692 0.0982532 -205.85 + 18 135.677 905 0 1 1.16383 0.347063 -204.45 + 18 5.6692 906 0 1 1.25 0.379059 -204.832 + 18 148.254 902 0 0 1.49436 0.501262 -205.85 + 18 251.405 812 1 0 49.199 -17.58 -176.25 +Number of digits in this event = 10 +Event: 19 +Number of tracker hits in this event = 32 + 19 143.78 899 5 1 -0.150553 0.0519331 -54.45 + 19 141.369 900 5 0 -0.167868 0.0542827 -55.85 + 19 110.644 897 4 1 -0.562794 0.135785 -84.45 + 19 222.47 900 4 0 -0.580229 0.125448 -85.85 + 19 153.037 895 3 1 -0.978031 -0.143266 -114.45 + 19 161.468 899 3 0 -0.997809 -0.150568 -115.85 + 19 151.085 893 2 1 -1.42106 -0.310595 -144.45 + 19 144.552 898 2 0 -1.43073 -0.302206 -145.85 + 19 130.597 890 1 1 -1.89556 -0.304959 -174.45 + 19 172.669 898 1 0 -1.87956 -0.318931 -175.85 + 19 145.608 891 0 1 -1.7353 -0.777599 -204.45 + 19 125.506 895 0 0 -1.73164 -0.860735 -205.85 + 19 97.6022 1037 2 0 5.29813 27.5128 -146.25 + 19 103.186 860 2 0 11.9182 -8.03037 -146.25 + 19 82.5195 859 2 0 11.9167 -8.05 -146.234 + 19 230.462 898 3 1 -0.250402 0.16791 -114.45 + 19 252.813 900 3 0 -0.242871 0.17432 -115.85 + 19 119.853 901 2 1 0.390626 0.248624 -144.45 + 19 119.592 900 2 0 0.519782 0.130625 -145.85 + 19 153.062 916 1 1 3.39813 -1.76666 -174.45 + 19 117.012 890 1 0 3.5785 -1.86346 -175.85 + 19 124.217 937 0 1 7.51202 -3.57984 -204.45 + 19 141.91 882 0 0 7.80985 -3.61777 -205.85 + 19 41.9348 898 2 1 -0.251636 -0.125203 -144.45 + 19 61.6966 899 2 1 -0.25 -0.129187 -144.612 + 19 165.379 899 2 0 -0.235283 -0.159364 -145.85 + 19 118.781 899 1 1 -0.0829234 -0.900627 -174.45 + 19 104.424 895 1 0 -0.0800511 -0.920234 -175.85 + 19 92.8504 898 0 1 -0.337906 -1.57287 -204.45 + 19 225.947 892 0 0 -0.358459 -1.56114 -205.85 + 19 69.3542 158 2 1 -148.438 -35.972 -144.818 + 19 87.2093 717 2 0 -148.278 -36.4699 -145.85 +Number of digits in this event = 21 +Event: 20 +Number of tracker hits in this event = 65 + 20 219.789 899 5 1 -0.158174 -0.0809026 -54.45 + 20 116.149 899 5 0 -0.168424 -0.0859105 -55.85 + 20 115.33 898 4 1 -0.373893 -0.166142 -84.45 + 20 122.916 899 4 0 -0.380239 -0.17175 -85.85 + 20 222.181 897 3 1 -0.495304 -0.2673 -114.45 + 20 127.305 898 3 0 -0.501312 -0.273827 -115.85 + 20 132.166 897 2 1 -0.607597 -0.411691 -144.45 + 20 152.774 898 2 0 -0.600565 -0.415656 -145.85 + 20 110.042 898 1 1 -0.437481 -0.457282 -174.45 + 20 118.218 897 1 0 -0.426967 -0.459519 -175.85 + 20 100.114 899 0 1 -0.231392 -0.519812 -204.45 + 20 116.568 897 0 0 -0.214114 -0.521224 -205.85 + 20 23.6532 901 1 0 0.313558 0.418169 -175.85 + 20 107.691 902 1 0 0.340696 0.45 -175.887 + 20 18.2645 903 1 0 0.424304 0.65 -176.201 + 20 177.324 897 2 0 -0.752242 -0.466657 -145.918 + 20 128.545 830 2 0 -8.50996 -13.8729 -146.25 + 20 0.0739686 829 2 0 -8.59593 -14.05 -145.85 + 20 132.66 856 2 1 -8.77375 -14.5583 -144.85 + 20 2.72441 776 3 0 -16.8544 -24.8459 -116.25 + 20 261.281 775 3 0 -16.8576 -24.85 -116.239 + 20 140.826 814 3 1 -17.0702 -25.1264 -114.85 + 20 68.2876 376 4 0 -66.6671 -104.792 -86.25 + 20 61.6182 375 4 0 -66.7651 -104.95 -86.1947 + 20 69.6638 374 4 0 -66.864 -105.15 -86.1536 + 20 70.2593 373 4 0 -66.9719 -105.35 -86.1342 + 20 76.7354 372 4 0 -67.085 -105.55 -86.1042 + 20 152.094 371 4 0 -67.2459 -105.75 -86.0568 + 20 82.0721 370 4 0 -67.3769 -105.95 -86.0278 + 20 91.0207 369 4 0 -67.4838 -106.15 -85.9994 + 20 62.6955 368 4 0 -67.7032 -106.35 -85.9128 + 20 18.4765 550 4 1 -69.9738 -108.059 -84.85 + 20 59.6741 549 4 1 -70.05 -108.115 -84.8139 + 20 71.6408 548 4 1 -70.25 -108.234 -84.7254 + 20 76.4723 547 4 1 -70.45 -108.386 -84.5803 + 20 121.797 544 4 1 -71.1267 -108.986 -84.45 + 20 138.8 353 4 0 -71.5777 -109.445 -85.85 + 20 294.564 896 1 1 -0.732135 0.677499 -174.45 + 20 48.894 886 1 0 -0.85569 -2.71034 -175.85 + 20 86.222 885 1 0 -0.859361 -2.85 -175.91 + 20 74.6317 884 1 0 -0.866654 -3.05 -175.995 + 20 71.0845 883 1 0 -0.867063 -3.25 -176.078 + 20 46.4919 882 1 0 -0.864214 -3.45 -176.171 + 20 22.3549 445 1 0 9.93983 -91.1349 -176.25 + 20 71.592 444 1 0 9.95417 -91.15 -176.148 + 20 296.631 951 1 1 10.3253 -91.3226 -174.85 + 20 3.92624 952 1 1 10.45 -91.3848 -174.458 + 20 27.0041 324 2 0 -49.7984 -115.316 -146.25 + 20 364.013 323 2 0 -49.8815 -115.35 -146.212 + 20 36.2779 643 2 1 -51.3575 -115.119 -144.85 + 20 165.86 642 2 1 -51.45 -115.086 -144.734 + 20 201.833 641 2 1 -51.65 -115.013 -144.619 + 20 104.801 640 2 1 -51.85 -115.421 -144.757 + 20 153.912 639 2 1 -52.05 -115.666 -144.702 + 20 24.916 638 2 1 -52.25 -115.846 -144.796 + 20 78.709 321 2 0 -52.6911 -115.874 -145.85 + 20 372.756 320 2 0 -52.8339 -115.95 -145.976 + 20 3.70005 319 2 0 -53.2249 -116.15 -145.974 + 20 164.963 935 0 1 7.09714 -88.7395 -204.556 + 20 55.2952 410 3 0 -88.3341 -97.9728 -116.199 + 20 0.809875 416 3 1 -96.9161 -111.674 -114.846 + 20 66.7211 339 3 0 -97.5639 -112.25 -115.85 + 20 43.366 411 3 1 -97.8041 -112.112 -114.85 + 20 161.014 412 3 1 -97.75 -112.119 -114.797 + 20 94.4066 732 14 1 -33.5523 -80.9782 215.333 +Number of digits in this event = 27 +Event: 21 +Number of tracker hits in this event = 11 + 21 121.791 899 4 0 0.173806 -0.0502279 -85.85 + 21 123.985 902 3 1 0.453307 -0.212319 -114.45 + 21 131.373 899 3 0 0.465436 -0.219291 -115.85 + 21 112.203 903 2 1 0.707877 -0.383055 -144.45 + 21 130.159 898 2 0 0.718636 -0.387864 -145.85 + 21 327.317 904 1 1 0.927598 -0.449433 -174.45 + 21 301.878 897 1 0 0.946675 -0.461185 -175.85 + 21 130.597 906 0 1 1.34551 -0.712697 -204.45 + 21 119.946 896 0 0 1.36948 -0.729009 -205.85 + 21 31.3592 1571 6 1 134.487 -34.4641 -24.5522 + 21 299.7 1572 6 1 134.55 -34.4397 -24.499 +Number of digits in this event = 9 +Event: 22 +Number of tracker hits in this event = 60 + 22 125.67 897 5 1 -0.612321 0.157249 -54.45 + 22 137.117 900 5 0 -0.678813 0.129537 -55.85 + 22 93.7039 890 4 1 -1.97133 -0.577574 -84.45 + 22 22.91 897 4 0 -2.0267 -0.646921 -85.85 + 22 95.6411 896 4 0 -2.0292 -0.65 -85.91 + 22 154.052 883 3 1 -3.2895 -2.04478 -114.45 + 22 148.984 889 3 0 -3.31683 -2.15114 -115.85 + 22 126.097 880 2 1 -3.9634 -4.3757 -144.45 + 22 97.9339 877 2 0 -4.0028 -4.50271 -145.85 + 22 63.3937 876 1 1 -4.83743 -7.21259 -174.45 + 22 44.9441 875 1 1 -4.85 -7.24366 -174.702 + 22 165.422 863 1 0 -4.90703 -7.38262 -175.85 + 22 173.207 868 0 1 -6.2941 -10.6947 -204.45 + 22 50.5815 846 0 0 -6.41123 -10.8353 -205.85 + 22 76.381 845 0 0 -6.42331 -10.85 -205.996 + 22 93.0776 862 1 0 -4.95145 -7.45 -176.054 + 22 71.4447 981 1 0 -2.05207 16.2613 -176.25 + 22 258.717 982 1 0 -2.08575 16.45 -176.182 + 22 227.419 983 1 0 -2.12007 16.65 -176.121 + 22 38.2752 909 4 1 1.87373 0.05 -84.6895 + 22 4.53316 908 4 1 1.85 0.0696112 -84.8319 + 22 357.5 900 4 0 1.67719 0.212853 -85.85 + 22 41.6568 901 4 0 1.63236 0.25 -86.114 + 22 125.403 881 3 1 -3.68594 3.15491 -114.45 + 22 128.649 915 3 0 -4.14765 3.23243 -115.85 + 22 3.31221 916 3 0 -4.2651 3.25 -116.224 + 22 122.291 833 2 1 -13.3471 3.78714 -144.45 + 22 146.778 917 2 0 -13.609 3.64218 -145.85 + 22 72.4568 802 1 1 -19.5879 0.48467 -174.45 + 22 84.9946 801 1 1 -19.65 0.464283 -174.524 + 22 32.376 800 1 1 -19.85 0.393235 -174.761 + 22 66.686 899 1 0 -20.9499 -0.05 -176.089 + 22 43.755 680 0 1 -43.9238 -13.1626 -204.45 + 22 79.5669 679 0 1 -44.05 -13.2145 -204.527 + 22 59.8364 678 0 1 -44.25 -13.2948 -204.651 + 22 42.1954 677 0 1 -44.45 -13.3741 -204.762 + 22 235.076 829 0 0 -46.3308 -14.0526 -205.85 + 22 37.9613 828 0 0 -46.88 -14.25 -206.169 + 22 3.216 605 0 0 -80.5529 -59.0366 -206.25 + 22 78.3366 604 0 0 -80.5545 -59.05 -206.243 + 22 80.4258 603 0 0 -80.577 -59.25 -206.129 + 22 68.3713 602 0 0 -80.6112 -59.45 -206.016 + 22 11.3785 601 0 0 -80.6443 -59.65 -205.881 + 22 187.674 496 0 1 -80.7581 -61.1821 -204.85 + 22 94.8902 521 1 0 -57.506 -75.7484 -176.25 + 22 60.4983 520 1 0 -57.4216 -75.85 -176.092 + 22 58.2826 612 1 1 -57.6048 -75.5903 -174.85 + 22 348.731 611 1 1 -57.65 -75.5734 -174.743 + 22 152.566 610 1 1 -57.85 -75.3128 -174.456 + 22 104.171 895 4 1 -0.897781 0.463006 -84.45 + 22 113.908 902 4 0 -0.959578 0.536344 -85.85 + 22 143.444 891 3 1 -1.69492 2.32884 -114.45 + 22 130.444 911 3 0 -1.82931 2.41019 -115.85 + 22 159.921 878 2 1 -4.26304 3.97215 -144.45 + 22 133.225 919 2 0 -4.31908 4.00872 -145.85 + 22 60.1291 873 1 1 -5.44004 5.14933 -174.45 + 22 57.9033 872 1 1 -5.45 5.15137 -174.656 + 22 109.68 925 1 0 -5.50869 5.18062 -175.85 + 22 121.402 869 0 1 -6.16934 5.46658 -204.45 + 22 431.172 926 0 0 -6.24271 5.3931 -205.85 +Number of digits in this event = 25 Event: 23 -Number of tracker hits in this event = 28 - 23 108.174 898 4 1 -0.439136 0.074224 -84.45 - 23 109.202 896 3 1 -0.814163 -0.505755 -114.45 - 23 112.25 897 3 0 -0.824172 -0.529765 -115.85 - 23 153.31 895 2 1 -1.02895 -0.986122 -144.45 - 23 122.054 895 2 0 -1.02974 -0.994945 -145.85 - 23 169 895 1 1 -1.0256 -1.18034 -174.45 - 23 154.274 894 1 0 -1.03556 -1.18799 -175.85 - 23 191.184 894 0 1 -1.24697 -1.37827 -204.45 - 23 135.28 893 0 0 -1.25634 -1.41738 -205.85 - 23 91.8203 900 1 0 -0.865594 0.117853 -175.85 - 23 114.293 898 0 1 -0.273311 3.5376 -204.45 - 23 0.714495 914 0 0 -0.715536 2.85382 -205.85 - 23 138.019 913 0 0 -0.718324 2.85 -205.858 - 23 71.7437 894 1 1 -1.05 -0.304194 -174.487 - 23 75.0993 893 1 1 -1.25 -0.218427 -174.631 - 23 24.3979 892 1 1 -1.45 -0.101597 -174.783 - 23 62.719 903 1 0 -2.92888 0.745552 -175.85 - 23 96.7424 904 1 0 -3.11312 0.85 -175.987 - 23 129.67 638 4 0 -28.8625 -52.2527 -86.0387 - 23 159.324 639 4 0 -28.9681 -52.25 -85.9192 - 23 193.324 404 1 1 -99.2579 52.853 -174.45 - 23 36.2984 946 12 0 -85.7091 9.30264 153.75 - 23 93.1405 945 12 0 -85.6938 9.25 153.77 - 23 99.305 944 12 0 -85.631 9.05 153.824 - 23 152.467 943 12 0 -85.4631 8.85 153.951 - 23 97.5916 477 12 1 -84.6284 7.8815 155.15 - 23 68.7443 478 12 1 -84.45 7.67953 155.358 - 23 72.9623 479 12 1 -84.25 7.56214 155.441 +Number of tracker hits in this event = 16 + 23 214.31 900 4 1 0.0964717 -0.0504039 -84.45 + 23 109.233 899 4 0 0.113986 -0.0612889 -85.85 + 23 108.258 902 3 1 0.463856 -0.304742 -114.45 + 23 204.449 898 3 0 0.486406 -0.30918 -115.85 + 23 113.891 904 2 1 0.979552 -0.35335 -144.45 + 23 126.309 898 2 0 0.978178 -0.368648 -145.85 + 23 127.557 903 1 1 0.833113 -0.791056 -174.45 + 23 118.912 896 1 0 0.819294 -0.828464 -175.85 + 23 153.423 901 0 1 0.398955 -1.55336 -204.45 + 23 100.46 892 0 0 0.401198 -1.55708 -205.85 + 23 134.645 900 3 1 0.05 -0.138562 -114.488 + 23 43.7661 900 2 1 0.235347 -0.179459 -144.45 + 23 123.481 901 2 1 0.25 -0.296456 -144.534 + 23 125.37 891 2 0 0.897119 -1.65481 -145.85 + 23 138.895 890 2 0 1.09613 -1.85 -146.112 + 23 236.815 854 2 0 -33.0834 -9.1148 -146.25 Number of digits in this event = 12 Event: 24 -Number of tracker hits in this event = 80 - 24 151.418 901 4 1 0.442295 0.664812 -84.45 - 24 132.249 903 4 0 0.461949 0.666548 -85.85 - 24 427.259 904 3 1 0.92102 0.740907 -114.45 - 24 230.015 903 3 0 0.961084 0.763077 -115.85 - 24 176.057 908 2 1 1.80215 1.24443 -144.45 - 24 110.431 906 2 0 1.80241 1.28269 -145.85 - 24 99.5697 908 1 1 1.78075 2.14305 -174.45 - 24 19.302 910 1 0 1.74167 2.24473 -175.85 - 24 469.483 911 1 0 1.73977 2.25 -175.923 - 24 225.476 903 0 1 0.789213 4.28146 -204.45 - 24 130.554 921 0 0 0.76811 4.37711 -205.85 - 24 128.962 907 2 1 1.55916 4.41995 -144.45 - 24 36.1115 922 2 0 1.61233 4.62721 -145.85 - 24 65.8484 923 2 0 1.6195 4.65 -146.001 - 24 17.2595 913 1 1 2.83263 4.18962 -174.45 - 24 101.332 914 1 1 2.85 4.21476 -174.527 - 24 106.14 922 1 0 3.12012 4.52284 -175.85 - 24 59.8333 940 0 1 8.09377 7.67722 -204.45 - 24 87.6694 941 0 1 8.25 7.79636 -204.647 - 24 158.355 943 0 0 9.63701 8.68371 -205.85 - 24 91.6707 944 0 0 9.90881 8.85 -206.074 - 24 30.8588 945 0 0 10.0967 9.05 -206.21 - 24 8.24999 1329 0 0 24.5387 86.0236 -206.25 - 24 71.8209 1330 0 0 24.5176 86.05 -206.234 - 24 77.1196 1331 0 0 24.3859 86.25 -206.125 - 24 63.1953 1332 0 0 24.2268 86.45 -206.016 - 24 37.4235 1333 0 0 24.095 86.65 -205.913 - 24 38.0121 1013 0 1 22.7104 88.9846 -204.85 - 24 765.262 1012 0 1 22.65 89.0834 -204.806 - 24 501.334 1011 0 1 22.45 90.237 -204.47 - 24 252.439 880 5 0 51.7946 -3.86837 -56.25 - 24 48.1068 901 3 0 0.961355 0.329315 -115.85 - 24 95.2323 900 3 0 0.946396 0.25 -116.051 - 24 27.5307 885 2 1 -2.88115 -5.74788 -144.45 - 24 169.846 886 2 1 -2.85 -5.69008 -144.533 - 24 16.1628 878 2 0 -2.15271 -4.30192 -145.85 - 24 69.1344 879 2 0 -2.12849 -4.25 -145.896 - 24 40.3808 880 2 0 -2.055 -4.05 -146.009 - 24 62.9101 881 2 0 -2.04581 -3.85 -146.046 - 24 40.9154 882 2 0 -2.07324 -3.65 -146.063 - 24 53.3498 883 2 0 -2.1064 -3.45 -146.105 - 24 65.689 884 2 0 -2.16101 -3.25 -146.132 - 24 59.0266 885 2 0 -2.19953 -3.05 -146.173 - 24 72.6824 886 2 0 -2.22126 -2.85 -146.194 - 24 50.0323 887 2 0 -2.2455 -2.65 -146.19 - 24 60.3306 888 2 0 -2.27353 -2.45 -146.188 - 24 72.0865 889 2 0 -2.36908 -2.25 -146.166 - 24 63.6538 890 2 0 -2.45543 -2.05 -146.119 - 24 58.9805 891 2 0 -2.59753 -1.85 -146.17 - 24 58.1883 892 2 0 -2.73939 -1.65 -146.207 - 24 256.995 893 2 0 -2.89075 -1.45 -146.225 - 24 199.504 340 1 1 -111.956 142.394 -174.45 - 24 229.383 1605 1 0 -113.947 141.285 -175.85 - 24 100.567 1604 1 0 -114.46 141.15 -175.855 - 24 34.5748 312 1 1 -117.639 144.092 -174.85 - 24 276.651 1622 1 0 -118.362 144.697 -175.85 - 24 212.49 1623 1 0 -118.403 144.75 -175.915 - 24 148.593 910 4 1 2.14928 -1.34951 -84.45 - 24 7.09982 909 4 1 2.05 -1.26973 -84.8296 - 24 120.296 895 4 0 1.81503 -1.03769 -85.85 - 24 10.3185 876 3 1 -4.82995 3.35576 -114.45 - 24 125.344 875 3 1 -4.85 3.36313 -114.479 - 24 44.8772 874 3 1 -5.05 3.45095 -114.746 - 24 16.6257 918 3 0 -5.94345 3.83183 -115.85 - 24 184.928 919 3 0 -5.98673 3.85 -115.903 - 24 62.6904 722 2 1 -35.604 5.09628 -144.45 - 24 68.5644 723 2 1 -35.45 5.16598 -144.642 - 24 205.469 927 2 0 -34.3134 5.54321 -145.85 - 24 176.618 928 2 0 -34.1 5.65 -146.085 - 24 251.379 980 1 1 16.0655 49.1004 -174.45 - 24 74.1593 1149 1 0 15.8829 49.9538 -175.85 - 24 117.983 1150 1 0 15.8474 50.05 -176.021 - 24 145.706 1121 1 0 46.9995 44.3446 -176.25 - 24 193.852 1120 1 0 47.0746 44.25 -176.197 - 24 76.1185 1122 1 0 47.5501 44.45 -176.001 - 24 100.79 1123 1 0 47.6544 44.65 -175.978 - 24 185.794 1124 1 0 47.8024 44.85 -176.058 - 24 145.018 1125 1 0 48.0054 45.05 -175.997 - 24 97.6668 895 2 0 -8.74578 -0.935631 -146.25 - 24 90.2268 894 2 0 -8.57625 -1.05 -146.057 -Number of digits in this event = 31 +Number of tracker hits in this event = 12 + 24 109.992 900 5 1 0.0976047 0.105615 -54.45 + 24 105.345 900 5 0 0.102288 0.105628 -55.85 + 24 212.919 900 4 1 0.210063 0.0912004 -84.45 + 24 133.803 900 4 0 0.215668 0.0884663 -85.85 + 24 114.237 901 2 1 0.415078 -0.147163 -144.45 + 24 225.63 899 2 0 0.419794 -0.15252 -145.85 + 24 100.475 902 1 1 0.52357 -0.275894 -174.45 + 24 145.165 898 1 0 0.525227 -0.270329 -175.85 + 24 115.589 902 0 1 0.558268 -0.194973 -204.45 + 24 123.348 899 0 0 0.546884 -0.185404 -205.85 + 24 39.2899 903 13 0 -160.146 0.666763 183.75 + 24 205.643 902 13 0 -160.139 0.65 183.806 +Number of digits in this event = 8 Event: 25 -Number of tracker hits in this event = 42 - 25 113.773 901 5 1 0.305444 0.145747 -54.45 - 25 139.732 900 5 0 0.314105 0.159501 -55.85 - 25 235.133 902 4 1 0.465247 0.461867 -84.45 - 25 104.567 902 4 0 0.45012 0.459854 -85.85 - 25 128.127 900 3 1 0.147413 0.475667 -114.45 - 25 134.186 902 3 0 0.139662 0.486641 -115.85 - 25 104.633 898 1 1 -0.290413 0.785082 -174.45 - 25 134.871 903 1 0 -0.28566 0.803679 -175.85 - 25 189.588 899 0 1 -0.190924 1.15379 -204.45 - 25 229.649 905 0 0 -0.190216 1.16468 -205.85 - 25 279.355 903 1 1 0.820195 1.02092 -174.45 - 25 541.948 904 1 0 0.66498 1.03163 -175.85 - 25 90.6389 885 0 1 -3.01281 1.41718 -204.45 - 25 30.6899 884 0 1 -3.05 1.46876 -204.725 - 25 168.459 908 0 0 -3.19456 1.69068 -205.85 - 25 231.599 900 4 0 0.639162 0.0917448 -85.85 - 25 71.1722 910 2 1 2.24172 0.892831 -144.45 - 25 94.7554 911 2 1 2.25 0.903948 -144.661 - 25 273.519 904 2 0 2.29729 0.965108 -145.85 - 25 145.521 917 1 1 3.47573 2.7963 -174.45 - 25 224.735 914 1 0 3.51943 2.97496 -175.85 - 25 168.795 921 0 1 4.26753 6.90888 -204.45 - 25 125.043 935 0 0 4.42845 7.08367 -205.85 - 25 138.728 690 2 0 -64.4342 -41.8684 -146.25 - 25 144.501 689 2 0 -64.8154 -42.05 -146.067 - 25 75.5725 688 2 0 -65.253 -42.25 -145.895 - 25 99.6248 903 3 1 0.803583 -0.236975 -114.45 - 25 132.662 899 3 0 0.792236 -0.180554 -115.85 - 25 237.382 901 2 1 0.351324 1.24386 -144.45 - 25 126.381 906 2 0 0.383685 1.25489 -145.85 - 25 106.527 906 1 1 1.40151 1.39873 -174.45 - 25 328.261 906 1 0 1.48284 1.39017 -175.85 - 25 85.8597 915 0 1 3.22706 0.75142 -204.45 - 25 21.6182 916 0 1 3.25 0.742321 -204.778 - 25 171.215 903 0 0 3.322 0.712572 -205.85 - 25 119.963 905 1 0 1.66791 1.25 -176.144 - 25 115.069 747 1 0 -72.4305 -30.5984 -176.25 - 25 38.4531 908 2 0 0.600422 1.79309 -145.85 - 25 97.4796 909 2 0 0.632442 1.85 -145.984 - 25 22.0663 1483 11 0 155.995 116.896 123.963 - 25 0.253271 904 1 1 0.85 1.01169 -174.848 - 25 110.905 912 0 1 2.6076 1.04952 -204.45 -Number of digits in this event = 26 +Number of tracker hits in this event = 10 + 25 121.055 900 5 1 0.0994466 -0.108091 -54.45 + 25 141.224 899 5 0 0.105685 -0.112397 -55.85 + 25 153.571 900 4 1 0.232183 -0.220164 -84.45 + 25 122.009 899 4 0 0.231379 -0.231614 -85.85 + 25 100.372 900 3 1 0.188494 -0.474607 -114.45 + 25 100.071 897 3 0 0.180276 -0.490744 -115.85 + 25 115.085 899 1 1 -0.195237 -1.56007 -174.45 + 25 143.957 892 1 0 -0.199876 -1.57908 -175.85 + 25 341.947 898 0 1 -0.420237 -2.02522 -204.45 + 25 107.976 890 0 0 -0.406654 -2.01981 -205.85 +Number of digits in this event = 8 Event: 26 Number of tracker hits in this event = 12 - 26 139.024 900 5 1 0.0930143 -0.163235 -54.45 - 26 210.79 899 5 0 0.0979487 -0.155627 -55.85 - 26 123.352 902 3 1 0.504977 0.089508 -114.45 - 26 101.453 900 3 0 0.517117 0.0950533 -115.85 - 26 119.853 903 2 1 0.760437 0.215046 -144.45 - 26 107 900 2 0 0.773727 0.223217 -145.85 - 26 109.503 904 1 1 1.02659 0.298354 -174.45 - 26 2.50779 905 1 1 1.05 0.272869 -174.831 - 26 125.769 900 1 0 1.09339 0.194264 -175.85 - 26 117.167 911 0 1 2.40024 -2.0195 -204.45 - 26 283.433 887 0 0 2.4076 -2.50183 -205.85 - 26 0.26411 886 0 0 2.39405 -2.65 -206.246 -Number of digits in this event = 6 -Event: 27 -Number of tracker hits in this event = 28 - 27 173.156 900 5 1 0.0576164 0.134422 -54.45 - 27 101.445 900 5 0 0.0615746 0.129792 -55.85 - 27 118.62 900 4 1 0.223352 -0.0698136 -84.45 - 27 133.898 899 4 0 0.227985 -0.0918971 -85.85 - 27 179.899 901 3 1 0.373726 -0.559861 -114.45 - 27 120.088 897 3 0 0.374836 -0.577289 -115.85 - 27 571.858 901 2 1 0.299201 -0.971243 -144.45 - 27 110.958 896 2 0 0.335474 -0.719454 -145.85 - 27 176.629 895 1 1 -1.02129 4.61147 -174.45 - 27 2.19194 925 1 0 -1.10232 5.24162 -175.85 - 27 116.173 926 1 0 -1.1035 5.25 -175.869 - 27 137.471 883 0 1 -3.32847 18.254 -204.45 - 27 12.0047 993 0 0 -3.42145 18.8286 -205.85 - 27 470.342 994 0 0 -3.4248 18.85 -205.902 - 27 85.1075 902 3 1 0.45 -0.58036 -114.566 - 27 140.431 896 3 0 0.83112 -0.698346 -115.85 - 27 53.7574 1048 3 0 -3.06101 29.6974 -116.25 - 27 62.6741 1049 3 0 -3.14384 29.85 -116.201 - 27 3.25122 1050 3 0 -3.09646 30.05 -116.245 - 27 254.211 895 2 0 0.292459 -0.977059 -145.85 - 27 116.479 899 1 1 -0.110603 -1.02435 -174.45 - 27 118.462 894 1 0 -0.108207 -1.0799 -175.85 - 27 104.157 899 0 1 -0.140415 -2.1394 -204.45 - 27 120.895 889 0 0 -0.207384 -2.19362 -205.85 - 27 126.397 893 1 1 -1.2846 -0.381852 -174.45 - 27 239.031 898 1 0 -1.30766 -0.392268 -175.85 - 27 125.919 890 0 1 -1.9587 -0.709078 -204.45 - 27 122.042 896 0 0 -1.98874 -0.712647 -205.85 -Number of digits in this event = 18 -Event: 28 -Number of tracker hits in this event = 39 - 28 153.151 899 5 1 -0.158559 0.194226 -54.45 - 28 103.391 900 5 0 -0.182912 0.194105 -55.85 - 28 122.969 896 4 1 -0.762025 0.209125 -84.45 - 28 162.12 900 4 0 -0.79014 0.211277 -85.85 - 28 148.362 893 3 1 -1.2884 0.216133 -114.45 - 28 142.888 900 3 0 -1.30274 0.226502 -115.85 - 28 119.255 892 2 1 -1.61278 0.394183 -144.45 - 28 370.995 901 2 0 -1.66493 0.393481 -145.85 - 28 143.633 886 1 1 -2.7091 0.369738 -174.45 - 28 118.351 901 1 0 -2.75762 0.372346 -175.85 - 28 153.553 881 0 1 -3.69972 0.482971 -204.45 - 28 139.569 902 0 0 -3.73011 0.486024 -205.85 - 28 135.104 899 4 1 -0.0905329 0.346537 -84.45 - 28 106.02 901 4 0 -0.0927014 0.353826 -85.85 - 28 139.715 899 3 1 -0.172892 0.489427 -114.45 - 28 126.107 902 3 0 -0.16564 0.508116 -115.85 - 28 104.479 899 2 1 -0.0601046 0.757051 -144.45 - 28 166.013 903 2 0 -0.0663903 0.759011 -145.85 - 28 125.854 898 1 1 -0.261919 0.794197 -174.45 - 28 111.058 903 1 0 -0.286944 0.806654 -175.85 - 28 109.138 896 0 1 -0.652133 1.04446 -204.45 - 28 110.329 904 0 0 -0.691898 1.047 -205.85 - 28 179.988 897 4 1 -0.454051 -0.116943 -84.45 - 28 119.92 899 4 0 -0.561936 -0.197494 -85.85 - 28 202.062 879 3 1 -4.18744 -2.95018 -114.45 - 28 266.008 884 3 0 -4.33501 -3.07908 -115.85 - 28 338.278 862 2 1 -7.47383 -6.08095 -144.45 - 28 120.133 869 2 0 -7.57951 -6.21506 -145.85 - 28 7.77381 868 2 0 -7.60693 -6.25 -146.226 - 28 128.172 850 1 1 -10.012 -8.76643 -174.45 - 28 1.98686 849 1 1 -10.05 -8.79038 -174.833 - 28 10.835 856 1 0 -10.1664 -8.84743 -175.85 - 28 96.2358 855 1 0 -10.1717 -8.85 -175.896 - 28 29.8963 833 0 1 -13.2938 -10.21 -204.45 - 28 87.1157 834 0 1 -13.25 -10.187 -204.562 - 28 288.964 850 0 0 -12.752 -9.91839 -205.85 - 28 35.2259 851 0 0 -12.639 -9.85 -206.153 - 28 80.4485 866 2 0 -9.30612 -6.77395 -145.85 - 28 143.893 865 2 0 -9.51388 -6.85 -146.017 -Number of digits in this event = 23 -Event: 29 -Number of tracker hits in this event = 9 - 29 110.148 899 5 1 -0.126348 -0.0787001 -54.45 - 29 155.608 899 5 0 -0.133078 -0.0752557 -55.85 - 29 209.23 897 3 1 -0.577047 0.0540302 -114.45 - 29 132.483 896 2 1 -0.776349 -0.068865 -144.45 - 29 118.982 899 2 0 -0.784677 -0.0710121 -145.85 - 29 302.65 895 1 1 -0.952713 -0.104438 -174.45 - 29 118.823 899 1 0 -0.951392 -0.100958 -175.85 - 29 89.0745 676 3 1 -44.7212 14.3159 -114.748 - 29 320.162 675 3 1 -44.85 14.2326 -114.609 + 26 116.505 898 4 1 -0.342188 0.264046 -84.45 + 26 168.113 901 4 0 -0.376699 0.30787 -85.85 + 26 112.378 895 3 1 -0.947387 1.18952 -114.45 + 26 166.202 905 3 0 -0.939228 1.20859 -115.85 + 26 86.2283 895 2 1 -0.856073 1.84832 -144.45 + 26 59.2438 896 2 1 -0.85 1.85666 -144.645 + 26 158.099 909 2 0 -0.814578 1.91156 -145.85 + 26 412.708 900 1 1 0.194144 3.08123 -174.45 + 26 116.117 915 1 0 0.232964 3.09886 -175.85 + 26 106.323 905 0 1 1.16087 3.56577 -204.45 + 26 165.156 918 0 0 1.22104 3.68799 -205.85 + 26 26.2567 359 3 1 -108.305 131.346 -114.76 Number of digits in this event = 7 -Event: 30 -Number of tracker hits in this event = 30 - 30 126.178 900 5 1 0.12456 -0.160552 -54.45 - 30 154.122 899 5 0 0.13143 -0.16887 -55.85 - 30 119.066 900 4 1 0.235712 -0.346746 -84.45 - 30 127.139 898 4 0 0.254378 -0.36178 -85.85 - 30 125.537 902 3 1 0.638758 -0.678048 -114.45 - 30 120.784 896 3 0 0.65594 -0.696718 -115.85 - 30 117.204 904 2 1 0.996549 -1.09478 -144.45 - 30 104.421 894 2 0 1.00784 -1.11505 -145.85 - 30 136.704 906 1 1 1.29352 -1.44283 -174.45 - 30 312.765 892 1 0 1.27885 -1.47216 -175.85 - 30 131.046 903 0 1 0.802972 -2.10961 -204.45 - 30 549.047 889 0 0 0.76346 -2.1674 -205.85 - 30 368.348 907 1 1 1.46194 -1.75505 -174.45 - 30 389.189 890 1 0 1.64056 -1.90737 -175.85 - 30 4.62966 927 0 1 5.64347 -4.7262 -204.45 - 30 123.648 928 0 1 5.65 -4.72588 -204.472 - 30 159.46 876 0 0 6.04775 -4.69667 -205.85 - 30 140.823 912 3 1 2.57609 83.3689 -114.603 - 30 124.472 913 3 1 2.65 83.5838 -114.608 - 30 42.2901 1315 3 0 3.2975 83.1889 -115.85 - 30 27.5479 916 3 1 3.26243 83.3173 -114.85 - 30 151.073 915 3 1 3.25 83.3202 -114.821 - 30 140.119 889 1 0 1.52703 -2.05 -176.197 - 30 115.654 920 0 1 4.08449 -6.64652 -204.45 - 30 200.686 868 0 0 4.03427 -6.30621 -205.85 - 30 72.2084 869 0 0 4.01995 -6.25 -206.071 - 30 22.445 888 1 0 1.63651 -2.25 -176.171 - 30 89.3486 511 2 1 -77.7915 154.211 -144.657 - 30 36.5911 979 11 1 15.9033 -27.0028 125.415 - 30 189.263 978 11 1 15.85 -27.0439 125.445 -Number of digits in this event = 20 -Event: 31 +Event: 27 +Number of tracker hits in this event = 13 + 27 290.724 900 4 1 0.0713012 -0.35849 -84.45 + 27 104.094 898 4 0 0.0668024 -0.366223 -85.85 + 27 134.538 899 3 1 -0.0632024 -0.525861 -114.45 + 27 123.119 897 3 0 -0.0696899 -0.532472 -115.85 + 27 150.272 899 2 1 -0.170746 -0.69672 -144.45 + 27 127.77 896 2 0 -0.184585 -0.704126 -145.85 + 27 155.972 897 1 1 -0.475312 -0.859304 -174.45 + 27 119.559 895 1 0 -0.486244 -0.854502 -175.85 + 27 113.924 897 0 1 -0.598367 -0.756192 -204.45 + 27 106.729 896 0 0 -0.628313 -0.788722 -205.85 + 27 21.8712 904 3 0 -1.3043 0.995829 -115.85 + 27 403.706 905 3 0 -1.32711 1.05 -115.88 + 27 14.3087 906 3 0 -1.4851 1.25 -116.012 +Number of digits in this event = 9 +Event: 28 +Number of tracker hits in this event = 10 + 28 126.083 904 4 1 0.966254 -0.0666388 -84.45 + 28 122.412 899 4 0 1.00049 -0.0680466 -85.85 + 28 154.034 908 3 1 1.71925 -0.102619 -114.45 + 28 191.206 899 3 0 1.75359 -0.106672 -115.85 + 28 151.826 911 2 1 2.43676 -0.17535 -144.45 + 28 128.439 899 2 0 2.46589 -0.185717 -145.85 + 28 124.47 915 1 1 3.06775 -0.422134 -174.45 + 28 162.029 898 1 0 3.09356 -0.432951 -175.85 + 28 109.033 917 0 1 3.61102 -0.721337 -204.45 + 28 145.078 896 0 0 3.63741 -0.735301 -205.85 +Number of digits in this event = 10 +Event: 29 Number of tracker hits in this event = 12 - 31 122.317 899 4 1 -0.0845761 -0.479437 -84.45 - 31 167.294 897 4 0 -0.0940711 -0.488638 -85.85 - 31 174.482 898 3 1 -0.304663 -0.672515 -114.45 - 31 121.413 896 3 0 -0.305772 -0.681408 -115.85 - 31 179.481 898 2 1 -0.319379 -0.878647 -144.45 - 31 134.348 895 2 0 -0.322728 -0.888246 -145.85 - 31 120.302 898 1 1 -0.278839 -1.02176 -174.45 - 31 139.408 895 1 0 -0.275266 -1.02987 -175.85 - 31 205.5 899 0 1 -0.204602 -1.17743 -204.45 - 31 147.094 894 0 0 -0.196669 -1.18422 -205.85 - 31 211.757 848 0 1 -10.2642 -9.29388 -204.773 - 31 94.4267 849 0 1 -10.25 -9.29846 -204.768 -Number of digits in this event = 12 -Event: 32 -Number of tracker hits in this event = 7 - 32 122.851 900 4 1 0.20854 0.0539823 -84.45 - 32 129.466 900 4 0 0.219753 0.0510478 -85.85 - 32 122.306 902 1 1 0.462531 0.228556 -174.45 - 32 127.882 900 1 0 0.464002 0.245679 -175.85 - 32 16.7138 901 1 0 0.464342 0.25 -176.203 - 32 167.622 901 0 1 0.445251 0.56467 -204.45 - 32 107.516 902 0 0 0.459572 0.569709 -205.85 -Number of digits in this event = 6 -Event: 33 -Number of tracker hits in this event = 32 - 33 116.309 899 4 1 -0.052582 -0.18178 -84.45 - 33 152.517 899 4 0 -0.0587601 -0.185691 -85.85 - 33 125.851 899 3 1 -0.197384 -0.264021 -114.45 - 33 135.316 898 3 0 -0.209193 -0.268897 -115.85 - 33 76.5037 898 2 1 -0.446626 -0.350664 -144.45 - 33 18.3912 897 2 1 -0.45 -0.351485 -144.769 - 33 193.315 898 2 0 -0.460714 -0.352573 -145.85 - 33 101.596 896 1 1 -0.802105 -0.315089 -174.45 - 33 281.512 898 1 0 -0.809108 -0.310354 -175.85 - 33 106.76 895 0 1 -0.89161 -0.258497 -204.45 - 33 92.8959 898 0 0 -0.890098 -0.252991 -205.85 - 33 224.046 899 1 0 -0.865974 -0.25 -176.089 - 33 44.8352 1287 1 0 -75.0898 77.4622 -176.25 - 33 236.492 1659 1 0 -68.6725 151.962 -176.25 - 33 110.038 1660 1 0 -68.5238 152.15 -176.117 - 33 25.1903 210 6 0 134.35 -138.069 -25.9753 - 33 76.1155 209 6 0 134.415 -138.15 -25.9432 - 33 93.252 1573 6 1 134.793 -139.895 -24.85 - 33 255.754 191 6 0 135.761 -141.808 -25.85 - 33 102.165 190 6 0 135.923 -141.95 -26.2436 - 33 231.541 189 6 0 135.937 -142.15 -26.2245 - 33 54.9635 769 2 0 97.6634 -26.2277 -145.975 - 33 2.0865 784 1 0 64.6066 -23.1373 -175.981 - 33 66.9902 857 2 0 171.539 -8.5881 -145.991 - 33 123.852 900 1 1 0.24213 -0.162275 -174.45 - 33 92.0752 901 1 1 0.25 -0.16687 -174.518 - 33 64.8026 914 0 1 3.00183 -3.6529 -204.45 - 33 63.0983 915 0 1 3.05 -3.67146 -204.674 - 33 116.41 881 0 0 3.30287 -3.77198 -205.85 - 33 108.62 906 0 1 1.34402 1.32769 -204.45 - 33 133.962 906 0 0 1.47348 1.30671 -205.85 - 33 113.294 1555 1 1 131.283 0.340657 -174.628 -Number of digits in this event = 12 -Event: 34 -Number of tracker hits in this event = 6 - 34 108.289 899 5 1 -0.0675786 -0.0800225 -54.45 - 34 116.127 899 5 0 -0.0622077 -0.0781579 -55.85 - 34 105.228 901 3 1 0.301704 -0.0645747 -114.45 - 34 120.053 899 3 0 0.320501 -0.0616727 -115.85 - 34 18.0394 1178 1 1 55.8193 -12.1943 -174.525 - 34 177.716 1179 1 1 55.85 -12.1996 -174.54 -Number of digits in this event = 3 -Event: 35 -Number of tracker hits in this event = 73 - 35 140.681 898 4 1 -0.400993 -0.168626 -84.45 - 35 296.714 899 4 0 -0.419498 -0.185906 -85.85 - 35 107.002 896 3 1 -0.81003 -0.539591 -114.45 - 35 145.104 897 3 0 -0.836944 -0.558558 -115.85 - 35 146.559 893 2 1 -1.40067 -0.984935 -144.45 - 35 151.724 895 2 0 -1.42071 -1.00442 -145.85 - 35 128.671 891 1 1 -1.81165 -1.35992 -174.45 - 35 128.416 893 1 0 -1.86567 -1.38547 -175.85 - 35 102.65 885 0 1 -2.93688 -1.85837 -204.45 - 35 149.558 890 0 0 -2.97788 -1.88139 -205.85 - 35 432.347 899 5 1 -0.136732 0.05 -54.7549 - 35 222.659 706 5 0 76.0143 -38.839 -56.25 - 35 14.3836 1288 5 1 77.8021 -38.5968 -54.85 - 35 65.5277 1289 5 1 77.85 -38.5919 -54.8096 - 35 63.805 1290 5 1 78.05 -38.5654 -54.651 - 35 21.8271 1291 5 1 78.25 -38.5366 -54.4962 - 35 55.0955 1294 5 1 78.8581 -38.4169 -54.45 - 35 149.123 1295 5 1 79.05 -38.4039 -54.5941 - 35 279.6 1296 5 1 79.25 -38.3679 -54.8351 - 35 134.352 709 5 0 79.8635 -38.1876 -55.85 - 35 33.4448 301 5 0 167.647 -119.907 -56.25 - 35 82.5733 300 5 0 167.671 -119.95 -56.2358 - 35 70.5804 299 5 0 167.77 -120.15 -56.1603 - 35 71.6533 298 5 0 167.91 -120.35 -56.0418 - 35 29.0783 1740 5 1 168.326 -121.3 -54.85 - 35 167.532 1741 5 1 168.35 -121.354 -54.7804 - 35 15.4168 241 6 0 154.599 -131.93 -26.25 - 35 96.0149 240 6 0 154.571 -131.95 -26.1949 - 35 431.496 1673 6 1 154.857 -131.69 -24.85 - 35 46.4245 1674 6 1 154.95 -130.983 -24.8146 - 35 41.5134 247 6 0 158.848 -130.633 -25.85 - 35 134.188 1707 6 1 161.675 -129.138 -24.85 - 35 241.874 1708 6 1 161.75 -129.125 -24.8354 - 35 26.3256 715 5 0 82.592 -36.8884 -56.1065 - 35 261.902 900 3 1 0.05 -0.252714 -114.519 - 35 12.7658 900 3 0 0.686499 0.233393 -115.85 - 35 149.532 901 3 0 0.707016 0.25 -115.892 - 35 160.792 949 2 1 9.89426 12.9264 -144.45 - 35 75.3247 970 2 0 10.2141 14.0794 -145.85 - 35 56.8588 971 2 0 10.2556 14.25 -146.073 - 35 77.0556 1000 1 1 20.1145 36.7197 -174.45 - 35 64.2707 999 1 1 20.05 36.748 -174.672 - 35 109.846 1084 1 0 19.7068 36.8618 -175.85 - 35 220.819 942 0 1 8.64153 34.9536 -204.45 - 35 66.305 941 0 1 8.45 35.032 -204.722 - 35 124.501 1076 0 0 7.27925 35.3635 -205.85 - 35 50.4477 1077 0 0 6.97203 35.45 -206.139 - 35 109.631 898 3 0 0.192578 -0.308194 -115.85 - 35 109.364 919 2 1 3.94199 -1.30652 -144.45 - 35 164.744 893 2 0 4.14212 -1.33836 -145.85 - 35 86.0273 940 1 1 8.21568 -2.2068 -174.45 - 35 46.1941 941 1 1 8.25 -2.22304 -174.693 - 35 159.173 888 1 0 8.44399 -2.29835 -175.85 - 35 108.754 965 0 1 13.0779 -4.36108 -204.45 - 35 134.758 879 0 0 13.2012 -4.18958 -205.85 - 35 39.1222 778 1 0 -12.5982 -24.3696 -176.039 - 35 23.3025 777 1 0 -12.6145 -24.45 -175.913 - 35 95.6755 842 1 1 -11.64 -25.8704 -174.85 - 35 73.7461 843 1 1 -11.45 -26.1147 -174.756 - 35 89.6563 844 1 1 -11.25 -26.3019 -174.717 - 35 54.5109 845 1 1 -11.05 -26.3923 -174.661 - 35 76.6504 846 1 1 -10.85 -26.4748 -174.64 - 35 77.0345 847 1 1 -10.65 -26.4988 -174.746 - 35 32.763 764 1 0 -9.4082 -27.2065 -175.85 - 35 100.652 763 1 0 -9.328 -27.25 -175.935 - 35 140.042 833 1 0 13.9871 -13.3811 -176.25 - 35 19.4289 832 1 0 14.1745 -13.45 -175.869 - 35 194.545 977 1 1 15.4527 -14.8159 -174.85 - 35 129.96 978 1 1 15.65 -15.1534 -174.763 - 35 111.793 823 1 0 15.9482 -15.3715 -175.85 - 35 33.5877 822 1 0 15.9288 -15.45 -175.857 - 35 35.6015 806 0 0 56.8694 -18.7384 -205.888 - 35 105.87 1182 0 1 56.6105 -18.6286 -204.85 -Number of digits in this event = 31 -Event: 36 -Number of tracker hits in this event = 15 - 36 132.253 900 5 1 0.0931775 -0.124601 -54.45 - 36 213.995 899 5 0 0.0980908 -0.130043 -55.85 - 36 198.205 900 4 1 0.195961 -0.254191 -84.45 - 36 135.124 898 4 0 0.206589 -0.258564 -85.85 - 36 208.251 901 3 1 0.441703 -0.330449 -114.45 - 36 114.778 898 3 0 0.441341 -0.336303 -115.85 - 36 122.203 901 2 1 0.419558 -0.449417 -144.45 - 36 126.931 897 2 0 0.422819 -0.456658 -145.85 - 36 108.351 902 1 1 0.536113 -0.605045 -174.45 - 36 104.586 897 1 0 0.536347 -0.613087 -175.85 - 36 147.949 902 0 1 0.599929 -0.835343 -204.45 - 36 110.277 896 0 0 0.610257 -0.841461 -205.85 - 36 29.4954 1107 0 0 39.0366 41.4676 -206.25 - 36 145.692 1106 0 0 39.0307 41.45 -206.192 - 36 269.187 815 0 1 -16.9277 -5.10465 -204.45 -Number of digits in this event = 12 -Event: 37 -Number of tracker hits in this event = 29 - 37 115.436 901 3 1 0.414631 -0.353039 -114.45 - 37 121.442 898 3 0 0.437589 -0.377028 -115.85 - 37 121.784 904 2 1 0.919715 -0.923874 -144.45 - 37 130.13 895 2 0 0.930374 -0.937938 -145.85 - 37 123.357 905 1 1 1.07151 -1.28106 -174.45 - 37 117.748 893 1 0 1.0874 -1.29159 -175.85 - 37 141.014 907 0 1 1.46062 -1.59479 -204.45 - 37 144.475 892 0 0 1.48497 -1.61522 -205.85 - 37 69.3022 899 4 0 -0.05 -0.179496 -86.0069 - 37 147.975 892 3 1 -1.62307 -2.56904 -114.45 - 37 119.055 886 3 0 -1.70076 -2.65004 -115.85 - 37 151.787 882 2 1 -3.51895 -4.24801 -144.45 - 37 161.635 878 2 0 -3.54993 -4.36921 -145.85 - 37 112.708 879 1 1 -4.11249 -6.92067 -174.45 - 37 200.019 865 1 0 -4.15848 -6.97057 -175.85 - 37 189.486 873 0 1 -5.41017 -8.18481 -204.45 - 37 140.808 858 0 0 -5.30948 -8.33207 -205.85 - 37 103.493 895 3 1 -0.978282 -0.562511 -114.45 - 37 151.685 896 3 0 -1.00352 -0.774931 -115.85 - 37 164.393 889 2 1 -2.18996 -5.1437 -144.45 - 37 13.4097 873 2 0 -2.32596 -5.44428 -145.85 - 37 206.793 872 2 0 -2.32851 -5.45 -145.876 - 37 107.212 875 1 1 -4.85939 -12.1274 -174.45 - 37 258.13 837 1 0 -4.91143 -12.4913 -175.85 - 37 218.135 868 0 1 -6.26157 -19.8632 -204.45 - 37 80.6734 798 0 0 -6.43716 -20.3564 -205.85 - 37 76.0386 797 0 0 -6.47007 -20.45 -206.111 - 37 154.717 851 1 0 -3.6514 -9.67498 -176.111 - 37 120.482 608 1 0 116.426 -58.3341 -176.25 -Number of digits in this event = 20 -Event: 38 -Number of tracker hits in this event = 23 - 38 470.13 897 3 1 -0.524625 0.118903 -114.45 - 38 369.283 900 3 0 -0.508341 0.11303 -115.85 - 38 241.655 900 2 0 -0.0914896 0.0536079 -145.85 - 38 103.397 902 1 1 0.596613 0.212441 -174.45 - 38 12.5747 900 1 0 0.625533 0.249105 -175.85 - 38 127.423 901 1 0 0.626225 0.25 -175.884 - 38 108.379 906 0 1 1.30071 0.897419 -204.45 - 38 122.42 904 0 0 1.32139 0.933039 -205.85 - 38 127.227 900 2 1 0.0867222 0.0797465 -144.45 - 38 102.767 910 1 1 2.16508 -0.146879 -174.45 - 38 135.101 899 1 0 2.28449 -0.155672 -175.85 - 38 105.523 923 0 1 4.66738 -0.256917 -204.45 - 38 181.623 899 0 0 4.80231 -0.248699 -205.85 - 38 71.8963 901 2 1 0.349086 -0.05 -144.606 - 38 174.396 902 2 1 0.45 -0.114772 -144.667 - 38 92.7064 903 2 1 0.65 -0.137037 -144.78 - 38 145.276 898 2 1 -0.414772 0.871457 -144.45 - 38 612.34 904 2 0 -0.4178 0.919858 -145.85 - 38 109.529 897 1 1 -0.452918 1.86006 -174.45 - 38 124.871 909 1 0 -0.469039 1.89555 -175.85 - 38 119.794 896 0 1 -0.690264 2.59252 -204.45 - 38 163.542 912 0 0 -0.678664 2.63233 -205.85 - 38 241.693 1138 6 1 47.8411 -125.873 -24.45 + 29 133.87 899 5 1 -0.135876 0.29708 -54.45 + 29 112.715 901 5 0 -0.143276 0.309043 -55.85 + 29 136.946 898 4 1 -0.305692 0.553084 -84.45 + 29 106.184 902 4 0 -0.297313 0.570551 -85.85 + 29 134.441 898 3 1 -0.395416 0.80015 -114.45 + 29 133.179 903 3 0 -0.402675 0.828752 -115.85 + 29 113.152 897 2 1 -0.584609 1.38972 -144.45 + 29 121.032 906 2 0 -0.594017 1.40706 -145.85 + 29 111.524 896 1 1 -0.72287 1.78021 -174.45 + 29 126.259 908 1 0 -0.726444 1.79389 -175.85 + 29 92.6461 896 0 1 -0.755691 2.09865 -204.45 + 29 243.595 910 0 0 -0.802482 2.12082 -205.85 +Number of digits in this event = 9 +Event: 30 +Number of tracker hits in this event = 38 + 30 123.013 900 5 1 0.118183 0.156338 -54.45 + 30 118.84 900 5 0 0.137897 0.178229 -55.85 + 30 118.991 902 4 1 0.508775 0.616287 -84.45 + 30 124.282 902 4 0 0.519453 0.642584 -85.85 + 30 119.718 903 3 1 0.787615 1.21864 -114.45 + 30 119.3 906 3 0 0.80547 1.26083 -115.85 + 30 135.694 905 2 1 1.18782 2.18301 -144.45 + 30 76.4298 910 2 0 1.20496 2.23741 -145.85 + 30 23.0232 911 2 0 1.2089 2.25 -146.169 + 30 189.573 907 1 1 1.58277 3.34827 -174.45 + 30 122.504 916 1 0 1.60659 3.38387 -175.85 + 30 119.333 910 0 1 2.14101 4.18977 -204.45 + 30 113.592 920 0 0 2.14277 4.23135 -205.85 + 30 69.5841 1680 1 0 25.5809 156.191 -175.951 + 30 10.0801 1029 1 1 25.8539 156.726 -174.85 + 30 193.833 1028 1 1 25.85 156.729 -174.826 + 30 334.324 906 1 1 1.25392 0.929793 -174.45 + 30 10.831 908 1 1 1.65 0.337608 -174.83 + 30 400.062 891 1 0 3.42907 -1.78828 -175.85 + 30 183.916 890 1 0 3.48055 -1.85 -175.879 + 30 122.939 889 1 0 3.78005 -2.05 -176.126 + 30 79.142 888 1 0 3.84669 -2.25 -176.154 + 30 7.61577 887 1 0 3.89476 -2.45 -176.237 + 30 0.981774 251 1 0 39.9688 -129.949 -176.25 + 30 165.608 250 1 0 39.9694 -129.95 -176.249 + 30 7.05071 249 1 0 40.1307 -130.15 -175.868 + 30 11.7223 1101 1 1 40.4263 -130.484 -174.85 + 30 124.466 1102 1 1 40.45 -130.492 -174.804 + 30 47.1224 240 1 0 40.9788 -132.056 -175.85 + 30 100.54 239 1 0 41.0093 -132.15 -175.861 + 30 17.3983 1106 1 1 41.4056 -130.292 -174.85 + 30 105.089 248 1 0 41.2697 -130.397 -175.85 + 30 124.473 903 1 0 1.20512 0.829198 -175.85 + 30 120.959 897 0 1 -0.490071 -5.05383 -204.45 + 30 79.5733 874 0 0 -0.600685 -5.21946 -205.85 + 30 23.4457 873 0 0 -0.622909 -5.25 -206.156 + 30 76.5084 525 7 0 30.6646 -74.865 3.93129 + 30 289.158 1053 7 1 30.7523 -75.2875 5.15 Number of digits in this event = 16 +Event: 31 +Number of tracker hits in this event = 26 + 31 139.139 899 5 1 -0.179613 0.229892 -54.45 + 31 111.78 900 5 0 -0.18405 0.244859 -55.85 + 31 125.427 898 4 1 -0.295005 0.531297 -84.45 + 31 149.344 902 4 0 -0.29869 0.545708 -85.85 + 31 118.407 898 3 1 -0.44099 0.794328 -114.45 + 31 144.769 903 3 0 -0.442114 0.773271 -115.85 + 31 120.311 898 2 1 -0.435309 0.314726 -144.45 + 31 100.856 901 2 0 -0.479095 0.2952 -145.85 + 31 127.963 893 1 1 -1.34354 -0.250342 -174.45 + 31 124.309 898 1 0 -1.41747 -0.282381 -175.85 + 31 128.331 885 0 1 -3.0178 -0.884665 -204.45 + 31 240.872 895 0 0 -3.10279 -0.91433 -205.85 + 31 47.2665 899 6 0 0.155508 -0.05 -26.1526 + 31 35.2228 756 6 0 11.7209 -28.7883 -26.25 + 31 99.6618 755 6 0 11.7051 -28.85 -26.1561 + 31 166.363 957 6 1 11.631 -29.0548 -24.85 + 31 225.536 958 6 1 11.65 -28.9743 -24.5111 + 31 178.18 749 6 0 11.9996 -30.1963 -25.85 + 31 159.013 748 6 0 12.0217 -30.25 -25.8977 + 31 122.163 898 0 1 -0.348645 -0.10635 -204.45 + 31 130.582 899 0 0 -0.341423 -0.135664 -205.85 + 31 104.6 899 0 1 -0.199021 0.05 -204.523 + 31 32.7528 908 0 0 0.499122 1.77667 -205.85 + 31 104.067 909 0 0 0.526791 1.85 -205.907 + 31 83.4652 910 0 0 0.615551 2.05 -206.094 + 31 23.0151 911 0 0 0.667799 2.25 -206.23 +Number of digits in this event = 16 +Event: 32 +Number of tracker hits in this event = 10 + 32 170.706 900 4 1 0.0775475 0.117424 -84.45 + 32 111.484 900 4 0 0.088199 0.11645 -85.85 + 32 166.018 901 3 1 0.277586 0.0871542 -114.45 + 32 130.119 900 3 0 0.292528 0.117002 -115.85 + 32 104.647 903 2 1 0.839862 0.734349 -144.45 + 32 139.994 903 2 0 0.869819 0.80667 -145.85 + 32 116.468 906 1 1 1.38335 2.18379 -174.45 + 32 152.041 912 1 0 1.4097 2.50375 -175.85 + 32 183.576 911 0 1 2.26296 7.93857 -204.45 + 32 102.396 940 0 0 2.23222 8.16219 -205.85 +Number of digits in this event = 7 +Event: 33 +Number of tracker hits in this event = 55 + 33 209.027 900 5 1 0.0516295 0.11496 -54.45 + 33 139.193 900 5 0 0.0552306 0.121151 -55.85 + 33 119.99 900 4 1 0.118104 0.216102 -84.45 + 33 122.821 900 4 0 0.113865 0.211767 -85.85 + 33 134.526 901 1 1 0.267323 -0.320247 -174.45 + 33 122.973 898 1 0 0.272034 -0.333123 -175.85 + 33 99.7047 901 0 1 0.366023 -0.58744 -204.45 + 33 121.171 897 0 0 0.436037 -0.622033 -205.85 + 33 61.1523 901 5 0 0.109119 0.404204 -55.85 + 33 73.4941 902 5 0 0.124682 0.45 -56.0494 + 33 107.013 907 4 1 1.55468 5.96613 -84.45 + 33 69.2034 931 4 0 1.74907 6.39181 -85.85 + 33 61.9252 932 4 0 1.77164 6.45 -86.025 + 33 4.53148 932 3 1 6.64339 16.4964 -114.45 + 33 95.1105 933 3 1 6.65 16.4987 -114.471 + 33 34.3683 982 3 0 7.00883 16.6386 -115.85 + 33 81.1601 983 3 0 7.03975 16.65 -115.977 + 33 21.0702 971 2 1 14.407 21.7686 -144.45 + 33 103.796 972 2 1 14.45 21.8365 -144.47 + 33 95.4265 973 2 1 14.65 22.1317 -144.572 + 33 98.2969 974 2 1 14.85 22.3908 -144.671 + 33 126.446 975 2 1 15.05 22.5751 -144.75 + 33 2.49806 976 2 1 15.25 22.7462 -144.847 + 33 20.5327 1022 2 0 17.8868 24.6042 -145.85 + 33 91.788 1023 2 0 17.9519 24.65 -145.875 + 33 103.453 1024 2 0 18.2463 24.85 -145.991 + 33 131.843 1025 2 0 18.5472 25.05 -146.099 + 33 42.5029 1026 2 0 18.8141 25.25 -146.196 + 33 81.9267 1335 2 0 100.989 87.1289 -146.25 + 33 111.018 1336 2 0 101.154 87.25 -146.081 + 33 39.867 1411 2 1 102.461 88.1115 -144.85 + 33 80.8425 1412 2 1 102.55 88.1671 -144.767 + 33 42.1418 1413 2 1 102.75 88.2998 -144.583 + 33 172.258 1296 3 0 128.913 79.4341 -116.25 + 33 53.4472 1553 3 1 130.785 78.6362 -114.85 + 33 96.391 1554 3 1 130.95 78.5656 -114.735 + 33 90.9365 1555 3 1 131.15 78.375 -114.566 + 33 205.519 1556 3 1 131.395 78.1923 -114.45 + 33 501.244 1557 3 1 131.55 77.6681 -114.542 + 33 191.424 1558 3 1 131.75 76.8492 -114.538 + 33 157.657 1559 3 1 131.95 76.4566 -114.487 + 33 214.846 1282 3 0 130.174 76.574 -115.85 + 33 113.514 1283 3 0 129.876 76.65 -115.977 + 33 159.37 1284 3 0 129.608 76.85 -116.031 + 33 78.0042 1513 3 0 80.4562 122.848 -116.25 + 33 280.081 1514 3 0 80.3117 122.95 -116.17 + 33 56.4601 1029 2 0 15.788 25.8525 -145.85 + 33 86.1422 1030 2 0 15.8509 26.05 -145.905 + 33 62.5493 1031 2 0 15.9885 26.25 -146.08 + 33 61.8906 1175 2 0 31.1108 55.0719 -146.25 + 33 74.6852 1176 2 0 31.1217 55.25 -146.121 + 33 122.774 1189 2 0 32.2766 57.9262 -146.25 + 33 102.354 1188 2 0 32.4358 57.85 -146.013 + 33 253.013 1052 2 1 30.6442 57.495 -144.85 + 33 47.3294 908 4 1 1.71697 6.72825 -84.45 +Number of digits in this event = 19 +Event: 34 +Number of tracker hits in this event = 13 + 34 131.214 899 5 1 -0.0758148 0.198513 -54.45 + 34 114.861 900 5 0 -0.0759541 0.209739 -55.85 + 34 139.356 899 4 1 -0.0697786 0.438686 -84.45 + 34 135.482 902 4 0 -0.0868085 0.486763 -85.85 + 34 169.105 898 3 1 -0.287285 1.46327 -114.45 + 34 112.787 907 3 0 -0.286233 1.51659 -115.85 + 34 148.558 898 2 1 -0.264733 2.56818 -144.45 + 34 104.721 912 2 0 -0.277809 2.62078 -145.85 + 34 113.893 897 1 1 -0.53919 3.57093 -174.45 + 34 108.458 917 1 0 -0.535942 3.58313 -175.85 + 34 109.828 897 0 1 -0.586819 3.81023 -204.45 + 34 113.085 919 0 0 -0.572865 3.86169 -205.85 + 34 127.175 900 1 0 0.05 0.244352 -175.971 +Number of digits in this event = 7 +Event: 35 +Number of tracker hits in this event = 14 + 35 137.055 898 5 1 -0.276805 0.0869591 -54.45 + 35 131.447 900 5 0 -0.294463 0.0663289 -55.85 + 35 139.81 896 4 1 -0.68431 -0.253472 -84.45 + 35 144.628 898 4 0 -0.678587 -0.273772 -85.85 + 35 155.757 897 3 1 -0.56686 -0.710851 -114.45 + 35 114.462 896 3 0 -0.584013 -0.73974 -115.85 + 35 114.177 895 2 1 -1.03342 -1.37185 -144.45 + 35 134.263 893 2 0 -1.03359 -1.39743 -145.85 + 35 100.317 894 1 1 -1.09965 -1.8626 -174.45 + 35 127.93 890 1 0 -1.14284 -1.88777 -175.85 + 35 119.85 889 0 1 -2.06449 -2.42468 -204.45 + 35 159.503 887 0 0 -2.18902 -2.45101 -205.85 + 35 83.6591 778 0 0 17.332 -24.2902 -206.25 + 35 271.091 777 0 0 17.438 -24.45 -206.191 +Number of digits in this event = 10 +Event: 36 +Number of tracker hits in this event = 13 + 36 131.15 899 5 1 -0.05 -0.0949071 -54.4626 + 36 122.756 899 5 0 -0.0605656 -0.102645 -55.85 + 36 159.723 899 4 1 -0.231085 -0.297685 -84.45 + 36 135.512 898 4 0 -0.24713 -0.305535 -85.85 + 36 110.04 897 3 1 -0.543674 -0.505263 -114.45 + 36 113.361 897 3 0 -0.563429 -0.523595 -115.85 + 36 108.447 895 2 1 -0.974208 -0.919521 -144.45 + 36 106.261 895 2 0 -0.991374 -0.943561 -145.85 + 36 112.926 893 1 1 -1.3599 -1.468 -174.45 + 36 111.457 892 1 0 -1.37713 -1.49646 -175.85 + 36 166.278 891 0 1 -1.70993 -2.05663 -204.45 + 36 110.417 889 0 0 -1.72827 -2.09185 -205.85 + 36 265.255 899 6 1 -0.05 0.0802838 -24.4955 +Number of digits in this event = 8 +Event: 37 +Number of tracker hits in this event = 14 + 37 117.593 903 4 1 0.750581 -0.136805 -84.45 + 37 119.552 899 4 0 0.773364 -0.147402 -85.85 + 37 179.801 906 3 1 1.25461 -0.37447 -114.45 + 37 280.528 898 3 0 1.27991 -0.384121 -115.85 + 37 115.567 908 2 1 1.77331 -0.578214 -144.45 + 37 134.741 897 2 0 1.80622 -0.58171 -145.85 + 37 85.2073 911 1 1 2.44531 -0.593983 -174.45 + 37 42.5263 912 1 1 2.45 -0.594976 -174.723 + 37 95.458 897 1 0 2.46993 -0.59948 -175.85 + 37 124.46 914 0 1 3.03254 -0.754582 -204.45 + 37 150.617 896 0 0 3.05345 -0.74892 -205.85 + 37 70.1269 859 0 1 -8.16039 -30.7406 -204.606 + 37 305.221 860 0 1 -8.05 -30.7972 -204.46 + 37 433.128 695 0 0 25.3211 -40.9533 -206.25 +Number of digits in this event = 9 +Event: 38 +Number of tracker hits in this event = 8 + 38 146.17 898 3 1 -0.432553 0.146871 -114.45 + 38 149.44 900 3 0 -0.440186 0.151171 -115.85 + 38 146.455 897 2 1 -0.605136 0.25061 -144.45 + 38 175.842 901 2 0 -0.611232 0.250332 -145.85 + 38 485.604 896 1 1 -0.720762 0.257684 -174.45 + 38 122.749 901 1 0 -0.731381 0.258381 -175.85 + 38 125.102 895 0 1 -0.965453 0.2694 -204.45 + 38 148.124 901 0 0 -0.973793 0.271243 -205.85 +Number of digits in this event = 9 Event: 39 -Number of tracker hits in this event = 17 - 39 145.976 898 5 1 -0.250784 -0.369928 -54.45 - 39 122.744 898 5 0 -0.26836 -0.379718 -55.85 - 39 142.885 897 4 1 -0.607015 -0.616171 -84.45 - 39 129.009 897 4 0 -0.631713 -0.621509 -85.85 - 39 104.612 894 3 1 -1.10923 -0.723523 -114.45 - 39 142.906 896 3 0 -1.13843 -0.728406 -115.85 - 39 127.498 891 2 1 -1.76098 -0.751832 -144.45 - 39 120.458 896 2 0 -1.77167 -0.733339 -145.85 - 39 113.857 891 1 1 -1.75874 -0.435179 -174.45 - 39 487.304 898 1 0 -1.75687 -0.356612 -175.85 - 39 156.904 891 0 1 -1.69928 1.23563 -204.45 - 39 98.4309 906 0 0 -1.70052 1.28414 -205.85 - 39 42.0285 950 4 0 -15.7021 10.199 -86.25 - 39 80.3943 951 4 0 -15.7779 10.25 -86.1344 - 39 100.752 952 4 0 -15.8617 10.45 -86.0885 - 39 327.119 824 4 1 -15.2311 10.7363 -84.85 - 39 23.1434 823 4 1 -15.25 11.2117 -84.5291 -Number of digits in this event = 12 +Number of tracker hits in this event = 20 + 39 188.784 898 5 1 -0.328788 0.0835362 -54.45 + 39 112.609 900 5 0 -0.332242 0.102372 -55.85 + 39 186.824 897 4 1 -0.45733 0.53263 -84.45 + 39 137.171 902 4 0 -0.495476 0.55392 -85.85 + 39 72.8113 894 3 1 -1.23647 0.995124 -114.45 + 39 36.4468 893 3 1 -1.25 0.995716 -114.716 + 39 96.0986 904 3 0 -1.31307 0.998323 -115.85 + 39 101.151 886 2 1 -2.83677 1.02074 -144.45 + 39 14.7968 885 2 1 -2.85 1.02171 -144.8 + 39 137.749 904 2 0 -2.88953 1.0258 -145.85 + 39 148.857 880 1 1 -3.95017 1.07341 -174.45 + 39 105.228 905 1 0 -4.00981 1.07941 -175.85 + 39 111.608 874 0 1 -5.23347 1.19302 -204.45 + 39 226.925 873 0 1 -5.25 1.19095 -204.765 + 39 254.692 905 0 0 -5.30465 1.1805 -205.85 + 39 156.525 1547 4 0 -71.4259 129.643 -86.25 + 39 38.2585 1546 4 0 -71.3709 129.55 -85.9035 + 39 40.9381 557 4 1 -68.6146 127.148 -84.85 + 39 313.399 1531 4 0 -67.6604 126.479 -85.85 + 39 85.7514 346 10 0 -126.914 -110.774 94.0594 +Number of digits in this event = 10 Event: 40 -Number of tracker hits in this event = 53 - 40 122.134 898 5 1 -0.362608 -0.358049 -54.45 - 40 106.309 898 5 0 -0.373635 -0.377409 -55.85 - 40 119.297 897 4 1 -0.6116 -0.763217 -84.45 - 40 114.316 896 4 0 -0.621392 -0.787698 -85.85 - 40 5.57638 896 3 1 -0.849894 -1.27039 -114.45 - 40 367.322 895 3 1 -0.85 -1.2706 -114.469 - 40 218.23 893 3 0 -0.85789 -1.28578 -115.85 - 40 129.752 895 2 1 -1.03384 -1.58565 -144.45 - 40 106.955 892 2 0 -1.04769 -1.60716 -145.85 - 40 106.879 893 1 1 -1.39213 -2.01293 -174.45 - 40 443.135 890 1 0 -1.40942 -2.00996 -175.85 - 40 157.046 891 0 1 -1.69486 -1.93149 -204.45 - 40 133.847 890 0 0 -1.73441 -1.91685 -205.85 - 40 46.1822 894 3 1 -1.05 -1.2381 -114.712 - 40 62.6462 895 3 0 -1.9447 -0.908754 -115.85 - 40 71.9467 896 3 0 -2.10081 -0.85 -116.04 - 40 660.476 786 2 1 -22.7163 4.2637 -144.45 - 40 103.357 787 2 1 -22.65 2.84952 -144.801 - 40 25.0318 788 2 1 -22.45 2.76263 -144.834 - 40 263.978 904 2 0 -18.9333 1.02668 -145.85 - 40 239.429 903 2 0 -18.5735 0.85 -145.954 - 40 205.213 905 2 0 -17.5647 1.05 -145.894 - 40 5.65837 834 2 1 -13.0696 0.98571 -144.85 - 40 44.1443 835 2 1 -13.05 0.9851 -144.845 - 40 57.2567 836 2 1 -12.85 0.978599 -144.79 - 40 78.9822 837 2 1 -12.65 1.02741 -144.723 - 40 81.5186 838 2 1 -12.45 1.19146 -144.64 - 40 60.794 839 2 1 -12.25 1.2725 -144.675 - 40 152.072 840 2 1 -12.05 1.37038 -144.694 - 40 74.7535 841 2 1 -11.85 1.50105 -144.667 - 40 121.671 842 2 1 -11.65 1.57538 -144.774 - 40 11.8272 843 2 1 -11.45 1.68645 -144.83 - 40 116.417 908 2 0 -9.31784 1.68722 -145.85 - 40 116.662 909 2 0 -9.09168 1.85 -146.006 - 40 161.006 910 2 0 -8.87293 2.05 -146.091 - 40 93.5275 911 2 0 -8.50919 2.25 -146.037 - 40 301.861 856 2 1 -8.70985 1.9618 -144.85 - 40 86.1496 857 2 1 -8.65 1.86834 -144.462 - 40 218.876 893 0 1 -1.43749 -2.79399 -204.45 - 40 246.761 886 0 0 -1.46468 -2.83904 -205.85 - 40 12.0879 885 0 0 -1.47217 -2.85 -206.207 - 40 123.054 894 2 1 -1.16662 -2.44339 -144.45 - 40 113.513 888 2 0 -1.17791 -2.34196 -145.85 - 40 108.036 890 1 1 -1.89377 -0.343932 -174.45 - 40 112.678 899 1 0 -1.87212 -0.155498 -175.85 - 40 121.977 890 0 1 -1.8572 4.14034 -204.45 - 40 126.042 922 0 0 -2.01383 4.50295 -205.85 - 40 18.9131 1196 1 1 59.4358 46.9817 -174.66 - 40 259.076 1197 1 1 59.45 47.0236 -174.631 - 40 153.397 496 10 0 129.092 -80.6752 93.75 - 40 121.321 497 10 0 129.031 -80.65 93.8781 - 40 308.34 1010 11 0 33.3867 22.0696 123.75 - 40 123.104 1011 11 0 32.9011 22.25 123.785 -Number of digits in this event = 26 +Number of tracker hits in this event = 12 + 40 94.2823 901 4 1 0.43085 0.546064 -84.45 + 40 126.169 902 4 0 0.448182 0.580505 -85.85 + 40 113.185 904 3 1 0.876901 1.25524 -114.45 + 40 113.865 906 3 0 0.896876 1.28514 -115.85 + 40 133.384 906 2 1 1.32747 1.93368 -144.45 + 40 141.006 909 2 0 1.35427 1.95624 -145.85 + 40 125.372 909 1 1 1.89441 2.43635 -174.45 + 40 133.193 912 1 0 1.92417 2.47289 -175.85 + 40 119.612 912 0 1 2.49005 3.22336 -204.45 + 40 35.0985 915 0 0 2.54181 3.24834 -205.85 + 40 82.614 916 0 0 2.54526 3.25 -205.941 + 40 86.935 543 3 0 13.6108 -71.3245 -116.225 +Number of digits in this event = 7 Event: 41 Number of tracker hits in this event = 12 - 41 136.334 900 5 1 0.241012 -0.183316 -54.45 - 41 118.395 899 5 0 0.244331 -0.191932 -55.85 - 41 179.911 901 4 1 0.305646 -0.375486 -84.45 - 41 144.303 898 4 0 0.301343 -0.384676 -85.85 - 41 117.014 900 3 1 0.195378 -0.565345 -114.45 - 41 248.785 897 3 0 0.190955 -0.565674 -115.85 - 41 109.38 900 2 1 0.100983 -0.602437 -144.45 - 41 91.4732 897 2 0 0.0932105 -0.605752 -145.85 - 41 118.959 899 0 1 -0.0891815 -1.12907 -204.45 - 41 121.545 894 0 0 -0.0929244 -1.13377 -205.85 - 41 100.909 363 7 1 -107.546 -34.896 5.27801 - 41 40.1053 362 7 1 -107.55 -34.8943 5.28246 -Number of digits in this event = 6 -Event: 42 -Number of tracker hits in this event = 11 - 42 218.613 898 4 1 -0.265168 -0.261559 -84.45 - 42 191.794 898 4 0 -0.270862 -0.277119 -85.85 - 42 210.162 898 3 1 -0.329272 -0.596074 -114.45 - 42 123.581 897 3 0 -0.309791 -0.548066 -115.85 - 42 205.991 900 2 1 0.214319 0.378682 -144.45 - 42 112.95 901 2 0 0.249816 0.428512 -145.85 - 42 118.184 904 1 1 1.01193 1.44337 -174.45 - 42 162.704 907 1 0 1.06587 1.48655 -175.85 - 42 98.9746 909 0 1 2.04652 2.37943 -204.45 - 42 57.0581 910 0 1 2.05 2.38451 -204.716 - 42 154.621 911 0 0 2.07257 2.40395 -205.85 -Number of digits in this event = 10 -Event: 43 -Number of tracker hits in this event = 13 - 43 91.743 899 5 1 -0.170373 -0.13386 -54.45 - 43 118.808 899 5 0 -0.176952 -0.145882 -55.85 - 43 110.179 898 4 1 -0.316641 -0.401959 -84.45 - 43 113.205 898 4 0 -0.32529 -0.414504 -85.85 - 43 302.267 897 3 1 -0.5013 -0.671388 -114.45 - 43 171.867 896 3 0 -0.513823 -0.682371 -115.85 - 43 115.647 896 2 1 -0.763776 -0.901559 -144.45 - 43 132.558 895 2 0 -0.77582 -0.901913 -145.85 - 43 109.361 895 1 1 -0.999584 -0.901491 -174.45 - 43 120.263 895 1 0 -1.01046 -0.87804 -175.85 - 43 72.0165 894 0 1 -1.2483 -0.418382 -204.45 - 43 51.5326 893 0 1 -1.25 -0.412295 -204.713 - 43 115.582 898 0 0 -1.25636 -0.384946 -205.85 -Number of digits in this event = 5 -Event: 44 -Number of tracker hits in this event = 15 - 44 103.393 901 4 1 0.329075 -0.0708954 -84.45 - 44 92.6265 899 4 0 0.346238 -0.0712766 -85.85 - 44 172.685 903 3 1 0.703141 -0.110046 -114.45 - 44 141.736 899 3 0 0.712052 -0.113222 -115.85 - 44 129.101 904 2 1 0.899458 -0.210459 -144.45 - 44 133.231 899 2 0 0.912961 -0.220907 -145.85 - 44 169.311 905 1 1 1.15802 -0.406903 -174.45 - 44 114.535 898 1 0 1.1777 -0.407006 -175.85 - 44 390.819 907 0 1 1.59002 -0.447387 -204.45 - 44 347.66 897 0 0 1.60987 -0.460201 -205.85 - 44 123.204 906 0 1 1.45 -0.482928 -204.48 - 44 426.593 905 0 1 1.10839 0.05 -204.537 - 44 415.334 904 0 1 1.05 0.0617327 -204.551 - 44 155.817 898 0 0 1.31413 -0.43164 -205.85 - 44 112.205 773 1 1 -25.2973 -7.34158 -174.828 -Number of digits in this event = 12 -Event: 45 -Number of tracker hits in this event = 64 - 45 205.333 900 5 1 0.0725249 -0.11851 -54.45 - 45 116.951 896 4 1 -0.796588 0.085668 -84.45 - 45 101.379 900 4 0 -0.851825 0.0942908 -85.85 - 45 254.508 890 3 1 -1.99063 0.238976 -114.45 - 45 130.328 900 3 0 -2.04957 0.243912 -115.85 - 45 133.885 884 2 1 -3.23317 0.341182 -144.45 - 45 125.562 901 2 0 -3.28894 0.345829 -145.85 - 45 415.166 878 1 1 -4.38835 0.420678 -174.45 - 45 111.342 902 1 0 -4.42974 0.486467 -175.85 - 45 104.196 873 0 1 -5.3267 1.83357 -204.45 - 45 135.684 909 0 0 -5.36505 1.92433 -205.85 - 45 294.368 1033 2 0 -47.1392 26.6862 -146.25 - 45 79.2899 1034 2 0 -47.8354 26.85 -146.114 - 45 58.9684 1035 2 0 -47.9121 27.05 -146.213 - 45 72.9705 1036 2 0 -47.9939 27.25 -146.22 - 45 72.6229 1037 2 0 -47.9644 27.45 -146.204 - 45 136.458 1038 2 0 -47.7821 27.65 -146.169 - 45 143.082 1039 2 0 -47.4983 27.85 -146.129 - 45 148.746 1040 2 0 -47.2798 28.05 -146.092 - 45 194.057 1041 2 0 -47.267 28.25 -146.203 - 45 65.6901 902 0 0 -5.53691 0.56867 -206.103 - 45 26.6276 900 3 1 0.0524187 0.136415 -114.45 - 45 123.652 896 2 1 -0.744405 -1.1482 -144.45 - 45 138.908 892 2 0 -0.632225 -1.55659 -145.85 - 45 20.3836 891 2 0 -0.608713 -1.65 -146.17 - 45 153.95 905 1 1 1.11896 -9.57688 -174.45 - 45 130.019 849 1 0 1.38085 -10.0628 -175.85 - 45 16.3893 932 0 1 6.63269 -19.8585 -204.45 - 45 196.657 933 0 1 6.65 -19.8642 -204.476 - 45 24.7028 934 0 1 6.85 -19.9295 -204.774 - 45 165.831 799 0 0 7.55827 -20.1242 -205.85 - 45 53.0593 899 5 1 -0.05 -0.317502 -54.6887 - 45 77.2553 896 5 0 -0.305266 -0.767575 -55.85 - 45 71.8425 895 5 0 -0.341408 -0.85 -56.0776 - 45 0.87271 649 5 0 27.6426 -50.2477 -56.25 - 45 137.619 648 5 0 27.6441 -50.25 -56.2486 - 45 116.023 899 4 0 0.0525504 -0.19628 -85.85 - 45 110.408 901 3 1 0.274222 -0.588074 -114.45 - 45 155.043 896 3 0 0.328159 -0.762863 -115.85 - 45 182.577 908 2 1 1.80999 -3.76016 -144.45 - 45 89.8002 880 2 0 1.8825 -3.99799 -145.85 - 45 31.819 879 2 0 1.89886 -4.05 -146.149 - 45 128.79 915 1 1 3.08182 -9.33289 -174.45 - 45 203.551 852 1 0 3.29807 -9.45181 -175.85 - 45 159.45 946 0 1 9.31469 -10.6571 -204.45 - 45 8.6988 849 0 0 9.36692 -10.0568 -205.85 - 45 449.985 850 0 0 9.36748 -10.05 -205.866 - 45 136.288 151 3 0 -120.409 -149.916 -116.119 - 45 37.809 1234 2 0 -105.043 66.9245 -146.25 - 45 78.2672 1233 2 0 -105.101 66.85 -146.192 - 45 37.1081 1232 2 0 -105.153 66.65 -145.977 - 45 101.319 374 2 1 -105.229 65.1415 -144.85 - 45 84.3853 373 2 1 -105.35 64.8919 -144.651 - 45 54.6709 372 2 1 -105.55 64.6384 -144.606 - 45 69.6635 371 2 1 -105.75 64.6175 -144.597 - 45 72.4628 370 2 1 -105.95 64.614 -144.558 - 45 52.7383 369 2 1 -106.15 64.6064 -144.575 - 45 83.3143 368 2 1 -106.35 64.5744 -144.534 - 45 182.236 367 2 1 -106.55 64.6348 -144.547 - 45 63.6528 366 2 1 -106.75 64.9813 -144.785 - 45 71.0779 1226 2 0 -108.197 65.3633 -145.85 - 45 86.1958 1227 2 0 -108.317 65.45 -145.913 - 45 244.076 1228 2 0 -108.421 65.65 -145.961 - 45 199.358 799 4 0 84.9464 -20.0899 -86.0824 -Number of digits in this event = 32 -Event: 46 -Number of tracker hits in this event = 26 - 46 109.389 900 4 1 0.125782 0.0865596 -84.45 - 46 168.336 900 4 0 0.136162 0.0911767 -85.85 - 46 124.044 901 3 1 0.365763 0.216133 -114.45 - 46 159.697 900 3 0 0.368765 0.213778 -115.85 - 46 159.637 901 2 1 0.390977 0.0944255 -144.45 - 46 147.859 900 2 0 0.377439 0.0696182 -145.85 - 46 121.576 900 1 1 0.113604 -0.452716 -174.45 - 46 142.991 897 1 0 0.0965286 -0.471176 -175.85 - 46 105.824 899 0 1 -0.235274 -0.769468 -204.45 - 46 121.97 896 0 0 -0.260612 -0.828845 -205.85 - 46 238.882 900 2 1 0.0730379 0.2197 -144.45 - 46 84.0041 898 2 0 0.968845 -0.345605 -145.85 - 46 55.2736 897 2 0 1.13273 -0.45 -146.116 - 46 101.002 971 1 1 14.3516 -8.14992 -174.45 - 46 38.331 972 1 1 14.45 -8.22836 -174.752 - 46 0.631146 858 1 0 14.7067 -8.44904 -175.85 - 46 119.775 857 1 0 14.7078 -8.45 -175.855 - 46 12.6969 1016 0 1 23.4072 -15.3932 -204.45 - 46 91.36 1017 0 1 23.45 -15.405 -204.484 - 46 102.04 1018 0 1 23.65 -15.4826 -204.639 - 46 17.0203 1019 0 1 23.85 -15.5527 -204.81 - 46 28.4426 821 0 0 24.9483 -15.8328 -205.85 - 46 138.484 820 0 0 25.0157 -15.85 -205.914 - 46 110.223 901 2 0 0.528119 0.411626 -145.85 - 46 120.381 894 2 0 4.56231 -1.1001 -146.25 - 46 136.911 922 2 1 4.48503 -0.767801 -144.85 -Number of digits in this event = 13 -Event: 47 -Number of tracker hits in this event = 35 - 47 120.655 900 5 1 0.169787 0.127726 -54.45 - 47 114.546 900 5 0 0.175648 0.143603 -55.85 - 47 110.807 901 4 1 0.278854 0.484921 -84.45 - 47 215.208 902 4 0 0.287831 0.490207 -85.85 - 47 38.6057 901 3 1 0.448092 0.585894 -114.45 - 47 113.399 902 3 1 0.45 0.585725 -114.583 - 47 107.339 902 3 0 0.468529 0.583796 -115.85 - 47 162.71 904 2 1 0.907113 0.526851 -144.45 - 47 99.7522 902 2 0 0.930651 0.53339 -145.85 - 47 119.211 906 1 1 1.40816 0.668682 -174.45 - 47 18.2452 903 1 0 1.48471 0.650988 -175.85 - 47 91.8506 902 1 0 1.48851 0.65 -175.915 - 47 104.788 917 0 1 3.58269 0.573561 -204.45 - 47 8.98412 918 0 1 3.65 0.584885 -204.811 - 47 118.563 902 0 0 3.83591 0.610493 -205.85 - 47 302.734 905 1 1 1.17978 1.27545 -174.45 - 47 146.044 911 1 0 -0.330212 2.26143 -175.85 - 47 91.8107 912 1 0 -0.762535 2.45 -176.051 - 47 0.452914 913 1 0 -0.787024 2.65 -176.249 - 47 0.0910162 1257 1 0 -38.1189 71.6491 -176.25 - 47 283.856 1258 1 0 -38.1193 71.65 -176.25 - 47 118.268 1259 1 0 -38.1734 71.85 -176.156 - 47 45.1493 1260 1 0 -38.3431 72.05 -175.964 - 47 87.242 708 1 1 -38.2753 72.3933 -174.85 - 47 57.0396 709 1 1 -38.25 72.4227 -174.708 - 47 98.3517 1267 1 0 -37.729 73.522 -175.85 - 47 53.129 1268 1 0 -37.6632 73.65 -175.909 - 47 154.545 715 1 1 -37.0024 75.0443 -174.85 - 47 120.972 906 1 0 0.966516 1.31334 -175.85 - 47 53.5281 874 0 1 -5.16574 6.8964 -204.45 - 47 74.233 873 0 1 -5.25 6.93695 -204.627 - 47 103.447 936 0 0 -5.96575 7.36974 -205.85 - 47 54.4806 937 0 0 -6.09892 7.45 -206.07 - 47 92.76 1041 0 1 28.4361 -16.0901 -204.45 - 47 108.641 1042 0 1 28.45 -16.1312 -204.541 -Number of digits in this event = 10 -Event: 48 -Number of tracker hits in this event = 15 - 48 122.877 900 5 1 0.23379 -0.0508405 -54.45 - 48 118.136 899 5 0 0.256151 -0.0580562 -55.85 - 48 127.672 903 4 1 0.745408 -0.1968 -84.45 - 48 113.231 899 4 0 0.759263 -0.216095 -85.85 - 48 107.942 905 3 1 1.07885 -0.624789 -114.45 - 48 112.447 896 3 0 1.10079 -0.65095 -115.85 - 48 143.581 907 2 1 1.53284 -1.19039 -144.45 - 48 105.518 894 2 0 1.56819 -1.23532 -145.85 - 48 144.783 911 1 1 2.31216 -2.20303 -174.45 - 48 49.4148 889 1 0 2.35183 -2.24441 -175.85 - 48 61.1996 888 1 0 2.35728 -2.25 -176.041 - 48 120.396 915 0 1 3.18164 -3.1418 -204.45 - 48 133.68 884 0 0 3.24305 -3.18435 -205.85 - 48 0.858606 879 0 0 12.5629 -4.19828 -206.123 - 48 54.5025 886 0 0 8.84586 -2.83761 -205.961 + 41 111.314 901 4 1 0.261176 -0.33095 -84.45 + 41 151.843 898 4 0 0.271833 -0.381935 -85.85 + 41 90.7929 902 3 1 0.526371 -1.24127 -114.45 + 41 126.774 893 3 0 0.585571 -1.35566 -115.85 + 41 131.134 908 2 1 1.73856 -3.72091 -144.45 + 41 37.546 881 2 0 1.8008 -3.83891 -145.85 + 41 71.9431 880 2 0 1.80645 -3.85 -145.978 + 41 89.8479 914 1 1 3.03394 -6.42556 -174.45 + 41 11.8602 915 1 1 3.05 -6.45468 -174.782 + 41 129.617 867 1 0 3.09949 -6.54356 -175.85 + 41 118.4 922 0 1 4.49988 -8.86962 -204.45 + 41 263.913 855 0 0 4.56095 -8.96408 -205.85 Number of digits in this event = 7 -Event: 49 -Number of tracker hits in this event = 18 - 49 131.272 901 3 1 0.258973 -0.0577473 -114.45 - 49 142.033 899 3 0 0.266752 -0.0643221 -115.85 - 49 106.774 901 2 1 0.447061 -0.192266 -144.45 - 49 113.492 899 2 0 0.452224 -0.195701 -145.85 - 49 428.16 902 1 1 0.558092 -0.277109 -174.45 - 49 339.929 898 1 0 0.556775 -0.281165 -175.85 - 49 197.268 902 0 1 0.492145 -0.376714 -204.45 - 49 271.401 898 0 0 0.481285 -0.377228 -205.85 - 49 127.745 900 3 1 0.05 0.229411 -114.592 - 49 2.53839 969 3 0 11.8567 14.0414 -115.85 - 49 58.7284 970 3 0 11.864 14.05 -115.851 - 49 74.4992 971 3 0 11.9559 14.25 -115.877 - 49 137.827 972 3 0 12.0361 14.45 -115.953 - 49 1.4503 1511 3 0 23.7321 122.544 -116.25 - 49 354.403 1512 3 0 23.7333 122.55 -116.248 - 49 247.73 1513 3 0 23.7807 122.75 -116.234 - 49 80.2658 899 3 1 -0.10736 -0.05 -114.83 - 49 50.7808 813 2 1 -17.2868 17.4561 -144.848 -Number of digits in this event = 11 -Event: 50 -Number of tracker hits in this event = 12 - 50 122.341 895 3 1 -0.93147 -0.220309 -114.45 - 50 112.653 899 3 0 -0.960342 -0.240289 -115.85 - 50 102.142 892 2 1 -1.52612 -0.62251 -144.45 - 50 9.0207 897 2 0 -1.55368 -0.64942 -145.85 - 50 119.605 896 2 0 -1.55427 -0.65 -145.88 - 50 114.535 889 1 1 -2.14812 -1.20128 -174.45 - 50 512.963 894 1 0 -2.1757 -1.23479 -175.85 - 50 125.454 886 0 1 -2.8011 -1.96888 -204.45 - 50 121.933 890 0 0 -2.83903 -2.0042 -205.85 - 50 8.41251 80 7 1 -164.044 133.806 5.52329 - 50 73.9487 537 2 0 16.0167 -72.6342 -146.25 - 50 303.385 536 2 0 15.9824 -72.65 -146.084 -Number of digits in this event = 8 -Event: 51 +Event: 42 +Number of tracker hits in this event = 33 + 42 124.679 901 4 1 0.305505 0.0810565 -84.45 + 42 121.081 900 4 0 0.310456 0.081282 -85.85 + 42 99.2811 901 3 1 0.428503 0.0694312 -114.45 + 42 148.927 902 2 1 0.503363 -0.389693 -144.45 + 42 132.718 898 2 0 0.50006 -0.420313 -145.85 + 42 124.758 901 1 1 0.419794 -1.05193 -174.45 + 42 134.718 894 1 0 0.426878 -1.105 -175.85 + 42 114.223 902 0 1 0.639006 -2.23421 -204.45 + 42 135.446 888 0 0 0.642438 -2.28698 -205.85 + 42 265.36 897 4 1 -0.643997 0.339049 -84.45 + 42 138.469 901 4 0 -0.629693 0.346512 -85.85 + 42 192.771 899 3 1 -0.223956 0.674368 -114.45 + 42 325.557 903 3 0 -0.144989 0.714503 -115.85 + 42 111.904 908 2 1 1.66737 2.02415 -144.45 + 42 137.04 910 2 0 1.83082 2.11216 -145.85 + 42 64.1034 924 1 1 5.02102 3.68498 -174.45 + 42 148.614 925 1 1 5.05 3.68741 -174.669 + 42 217.97 918 1 0 5.22673 3.69312 -175.85 + 42 97.3563 945 0 1 9.11988 3.71759 -204.45 + 42 312.967 918 0 0 9.33502 3.83237 -205.85 + 42 78.4584 919 0 0 9.37138 3.85 -206.081 + 42 133.675 900 5 1 0.183688 0.676819 -54.45 + 42 116.173 903 5 0 0.203878 0.680822 -55.85 + 42 119.592 903 4 1 0.779089 0.878442 -84.45 + 42 113.832 903 4 0 0.875788 0.737496 -85.85 + 42 132.851 915 3 1 3.20599 -2.5308 -114.45 + 42 103.464 886 3 0 3.34446 -2.71242 -115.85 + 42 108.381 934 2 1 7.02475 -7.00286 -144.45 + 42 82.8486 866 2 0 7.0966 -6.71309 -145.85 + 42 47.6916 867 2 0 7.11106 -6.65 -146.154 + 42 137.872 941 1 1 8.34708 -0.715544 -174.45 + 42 103.158 897 1 0 8.2869 -0.539256 -175.85 + 42 162.074 932 0 1 6.58223 3.40661 -204.45 +Number of digits in this event = 20 +Event: 43 +Number of tracker hits in this event = 15 + 43 124.049 896 3 1 -0.694849 0.0650535 -114.45 + 43 116.2 900 3 0 -0.713273 0.0718278 -115.85 + 43 115.086 895 2 1 -1.01253 0.216774 -144.45 + 43 110.386 900 2 0 -1.03088 0.225046 -145.85 + 43 461.69 893 1 1 -1.4388 0.390358 -174.45 + 43 121.747 901 1 0 -1.42201 0.408832 -175.85 + 43 89.399 895 0 1 -0.990682 0.803049 -204.45 + 43 108.345 903 0 0 -0.969324 0.815953 -205.85 + 43 492.909 900 1 0 -1.86694 0.145775 -175.905 + 43 152.032 888 0 1 -2.41015 0.114699 -204.45 + 43 222.16 900 0 0 -2.49186 0.0619901 -205.85 + 43 98.649 893 0 1 -1.33592 0.0901041 -204.45 + 43 132.695 890 0 1 -2.00488 -0.210718 -204.45 + 43 145.476 898 0 0 -2.04905 -0.304701 -205.85 + 43 112.403 713 0 0 2.88252 -37.3319 -206.196 +Number of digits in this event = 10 +Event: 44 +Number of tracker hits in this event = 11 + 44 118.565 900 5 1 0.0594896 0.1492 -54.45 + 44 160.56 900 5 0 0.0636381 0.14776 -55.85 + 44 117.599 900 4 1 0.156857 0.112595 -84.45 + 44 109.303 900 4 0 0.16485 0.108132 -85.85 + 44 140.076 900 2 1 0.242895 -0.0983908 -144.45 + 44 143.059 899 2 0 0.237776 -0.102756 -145.85 + 44 218.058 900 1 1 0.0889446 -0.217806 -174.45 + 44 99.8011 899 1 0 0.0884984 -0.233134 -175.85 + 44 278.026 900 0 1 0.0584429 -0.540919 -204.45 + 44 124.004 897 0 0 0.0606155 -0.547608 -205.85 + 44 352.504 899 3 0 0.317943 -0.05 -115.956 +Number of digits in this event = 9 +Event: 45 Number of tracker hits in this event = 28 - 51 0.61268 899 4 0 -0.198619 -0.05 -86.2469 - 51 120.923 898 3 1 -0.263247 -0.308588 -114.45 - 51 111.995 898 3 0 -0.265909 -0.320135 -115.85 - 51 284.917 898 2 1 -0.29956 -0.540474 -144.45 - 51 280.874 897 2 0 -0.294488 -0.554482 -145.85 - 51 110.366 899 1 1 -0.139708 -0.842628 -174.45 - 51 196.494 895 1 0 -0.139417 -0.860107 -175.85 - 51 116.315 899 0 1 -0.135357 -1.22551 -204.45 - 51 141.165 894 0 0 -0.132391 -1.24477 -205.85 - 51 3.012 893 0 0 -0.131694 -1.25 -206.24 - 51 220.315 898 1 1 -0.378327 -0.797145 -174.45 - 51 443.639 896 1 0 -0.318788 -0.767524 -175.85 - 51 108.523 907 0 1 1.45252 -0.687278 -204.45 - 51 313.436 897 0 0 1.60321 -0.491956 -205.85 - 51 29.3451 898 0 0 1.6353 -0.45 -206.161 - 51 106.041 871 1 1 -5.79521 -0.377726 -174.45 - 51 11.757 870 1 1 -5.85 -0.468647 -174.792 - 51 17.2514 897 1 0 -5.9893 -0.640386 -175.85 - 51 107.423 848 0 1 -10.3251 -7.1514 -204.45 - 51 126.203 864 0 0 -10.4481 -7.11389 -205.85 - 51 57.0987 899 2 1 -0.0832973 0.0521123 -144.45 - 51 18.8086 903 1 1 0.846998 0.286371 -174.45 - 51 88.2094 904 1 1 0.85 0.282487 -174.524 - 51 143.748 900 1 0 0.886252 0.208718 -175.85 - 51 111.846 910 0 1 2.1663 -2.3259 -204.45 - 51 113.888 887 0 0 2.16405 -2.54512 -205.85 - 51 133.404 1079 2 0 -46.5948 35.9806 -146.139 - 51 16.9269 1080 2 0 -46.33 36.05 -146.103 + 45 233.934 893 2 1 -1.30443 -0.0747101 -144.45 + 45 127.041 899 2 0 -1.31826 -0.0645127 -145.85 + 45 439.128 892 1 1 -1.58602 0.138457 -174.45 + 45 130.454 900 1 0 -1.61043 0.149518 -175.85 + 45 184.332 889 0 1 -2.0871 0.374167 -204.45 + 45 115.603 901 0 0 -2.10686 0.389225 -205.85 + 45 14.4609 894 2 1 -1.25 -0.165791 -144.792 + 45 5.3289 898 2 0 -1.20635 -0.447247 -145.85 + 45 119.176 897 2 0 -1.20592 -0.45 -145.86 + 45 19.1197 888 1 1 -2.43619 -8.86329 -174.45 + 45 118.542 887 1 1 -2.45 -8.90752 -174.524 + 45 86.0547 851 1 0 -2.53888 -9.76797 -175.85 + 45 89.7181 850 1 0 -2.5436 -9.85 -175.975 + 45 463.492 888 0 1 -2.25 -29.0936 -204.528 + 45 93.2534 748 0 0 -2.40689 -30.3851 -205.85 + 45 220.648 747 0 0 -2.41221 -30.45 -205.918 + 45 132.949 746 0 0 -2.39341 -30.65 -206.169 + 45 28.6188 887 0 1 -2.45 -29.3671 -204.791 + 45 5.51658 768 0 0 -3.22049 -26.2542 -206.25 + 45 175.178 769 0 0 -3.21794 -26.25 -206.247 + 45 201.933 885 0 1 -2.89269 -25.934 -204.85 + 45 23.2341 649 0 0 15.5438 -50.1853 -206.25 + 45 25.8675 503 0 0 28.4388 -79.2742 -206.25 + 45 216.316 899 1 0 -1.587 -0.134327 -175.85 + 45 197.325 894 0 1 -1.23319 0.817086 -204.45 + 45 218.474 903 0 0 -1.04209 0.83538 -205.85 + 45 106.433 899 0 1 -0.104269 -0.653754 -204.45 + 45 129.443 896 0 0 -0.070449 -0.750449 -205.85 +Number of digits in this event = 15 +Event: 46 +Number of tracker hits in this event = 21 + 46 159.899 899 5 1 -0.197666 -0.0897965 -54.45 + 46 122.462 899 5 0 -0.207879 -0.0920979 -55.85 + 46 124.655 898 4 1 -0.409463 -0.142324 -84.45 + 46 112.336 899 4 0 -0.422238 -0.142137 -85.85 + 46 119.452 896 3 1 -0.668625 -0.125569 -114.45 + 46 205.207 899 3 0 -0.669405 -0.112646 -115.85 + 46 118.625 896 2 1 -0.688755 0.205059 -144.45 + 46 213.031 900 2 0 -0.692812 0.226546 -145.85 + 46 177.1 896 1 1 -0.78763 0.640079 -174.45 + 46 132.346 903 1 0 -0.816254 0.685864 -175.85 + 46 121.536 894 0 1 -1.21147 0.978768 -204.45 + 46 104.992 904 0 0 -1.21874 0.993042 -205.85 + 46 289.979 899 0 1 -0.218579 0.415807 -204.45 + 46 142.979 902 0 0 -0.271531 0.48324 -205.85 + 46 137.115 899 0 0 0.121539 -0.108684 -205.85 + 46 5.07785 898 0 0 0.205058 -0.25 -206.234 + 46 68.7121 1081 0 0 110.411 36.4072 -206.234 + 46 32.5032 323 0 0 81.5256 -115.493 -206.118 + 46 102.323 322 0 0 81.5802 -115.55 -206.081 + 46 252.684 1307 0 1 81.505 -115.667 -204.85 + 46 55.8085 1304 0 1 81.05 -115.58 -204.611 Number of digits in this event = 14 -Event: 52 -Number of tracker hits in this event = 22 - 52 135.493 900 5 1 0.145615 -0.112532 -54.45 - 52 116.653 899 5 0 0.159314 -0.112582 -55.85 - 52 121.909 901 4 1 0.443512 -0.115956 -84.45 - 52 11.1467 902 4 1 0.45 -0.1174 -84.8342 - 52 123.621 899 4 0 0.470917 -0.120999 -85.85 - 52 96.3501 904 3 1 1.03908 -0.212979 -114.45 - 52 120.351 899 3 0 1.06637 -0.213753 -115.85 - 52 114.368 907 2 1 1.62784 -0.214808 -144.45 - 52 145.549 899 2 0 1.65375 -0.216332 -145.85 - 52 109.121 910 1 1 2.19349 -0.214142 -174.45 - 52 123.243 899 1 0 2.22427 -0.213501 -175.85 - 52 149.192 914 0 1 2.85428 -0.135056 -204.45 - 52 161.68 899 0 0 2.87925 -0.117691 -205.85 - 52 103.835 898 2 0 1.60941 -0.25 -145.999 - 52 163.455 908 2 1 1.80965 -0.190842 -144.45 - 52 471.81 900 2 0 1.34456 0.05 -145.872 - 52 34.2467 897 5 0 -1.62285 -0.64286 -55.85 - 52 57.437 896 5 0 -1.64672 -0.65 -55.8637 - 52 179.679 910 5 1 2.05973 -2.59474 -54.85 - 52 9.1017 911 5 1 2.25 -2.68229 -54.8427 - 52 217.421 870 5 0 18.1209 -5.97355 -55.85 - 52 118.55 869 5 0 18.1496 -6.05 -55.8737 -Number of digits in this event = 13 -Event: 53 +Event: 47 +Number of tracker hits in this event = 44 + 47 115.771 899 5 1 -0.0637964 -0.066307 -54.45 + 47 214.989 899 5 0 -0.0745052 -0.0755705 -55.85 + 47 116.685 898 4 1 -0.308317 -0.25443 -84.45 + 47 406.751 898 4 0 -0.319246 -0.259035 -85.85 + 47 149.193 897 3 1 -0.51727 -0.377653 -114.45 + 47 131.705 898 3 0 -0.520725 -0.393296 -115.85 + 47 139.914 897 2 1 -0.577158 -0.740412 -144.45 + 47 368.862 896 2 0 -0.581155 -0.748427 -145.85 + 47 368.851 896 1 1 -0.657819 -0.917346 -174.45 + 47 114.683 895 1 0 -0.666187 -0.926069 -175.85 + 47 100.676 895 0 1 -0.863002 -1.14798 -204.45 + 47 130.075 894 0 0 -0.874137 -1.15374 -205.85 + 47 9.2513 1623 9 0 178.82 144.925 63.75 + 47 118.625 1624 9 0 178.841 144.95 63.7595 + 47 408.223 1625 9 0 178.999 145.15 63.8158 + 47 62.2368 1626 9 0 179.166 145.35 63.9244 + 47 49.7736 1627 9 0 179.207 145.55 63.9764 + 47 45.8449 1628 9 0 179.204 145.75 63.999 + 47 103.83 1629 9 0 179.239 145.95 64.043 + 47 28.2915 1630 9 0 179.283 146.15 64.1153 + 47 650.633 1799 9 1 179.963 150.01 65.15 + 47 23.3971 1305 12 0 -92.983 81.2268 153.75 + 47 95.2764 1306 12 0 -93.0012 81.25 153.817 + 47 146.267 433 12 1 -93.3935 81.5143 155.15 + 47 5.98511 1612 13 0 -111.85 142.725 183.75 + 47 57.998 1613 13 0 -111.857 142.75 183.761 + 47 78.5866 1614 13 0 -111.926 142.95 183.857 + 47 69.6992 1615 13 0 -112.007 143.15 183.998 + 47 3.70015 1616 13 0 -112.105 143.35 184.141 + 47 96.9491 337 13 1 -112.657 144.826 185.15 + 47 116.657 336 13 1 -112.75 145.075 185.32 + 47 318.126 1579 14 0 -156.924 136.039 213.75 + 47 35.0239 90 14 1 -162.034 135.869 215.15 + 47 60.2036 89 14 1 -162.15 135.866 215.177 + 47 69.2711 88 14 1 -162.35 135.865 215.24 + 47 62.7738 87 14 1 -162.55 135.88 215.329 + 47 73.3887 86 14 1 -162.75 135.907 215.353 + 47 56.1439 85 14 1 -162.95 135.851 215.331 + 47 127.439 84 14 1 -163.15 135.858 215.287 + 47 165.375 83 14 1 -163.35 135.855 215.213 + 47 21.1752 1565 14 0 -165.788 133.205 214.15 + 47 67.2349 1564 14 0 -165.837 133.15 214.128 + 47 268.148 43 14 1 -171.506 126.237 215.15 + 47 230.944 42 14 1 -171.55 126.183 215.158 +Number of digits in this event = 18 +Event: 48 +Number of tracker hits in this event = 37 + 48 118.701 900 5 1 0.107848 -0.0820913 -54.45 + 48 105.292 899 5 0 0.106376 -0.0817441 -55.85 + 48 90.6886 900 4 1 0.0985916 -0.0689223 -84.45 + 48 128.19 899 4 0 0.0922819 -0.0716923 -85.85 + 48 188.808 901 1 1 0.267921 -0.47302 -174.45 + 48 138.226 897 1 0 0.279699 -0.482283 -175.85 + 48 116.852 902 0 1 0.559029 -0.736404 -204.45 + 48 112.974 896 0 0 0.574684 -0.754884 -205.85 + 48 57.0294 817 2 1 -16.5249 -69.1337 -144.45 + 48 59.5519 818 2 1 -16.45 -69.176 -144.49 + 48 200.121 899 2 1 -0.154762 -0.307051 -144.45 + 48 99.9636 898 2 1 -0.25 -0.360579 -144.659 + 48 46.9093 896 2 0 -0.770959 -0.794859 -145.85 + 48 92.644 895 2 0 -0.834926 -0.85 -145.999 + 48 152.287 875 1 1 -4.86526 -12.5108 -174.45 + 48 49.2737 874 1 1 -5.05 -12.3252 -174.682 + 48 195.682 840 1 0 -6.30481 -12.0308 -175.85 + 48 102.749 847 1 0 -71.8419 -10.6252 -176.25 + 48 111.93 846 1 0 -72.0083 -10.65 -175.979 + 48 144.313 536 1 1 -72.7054 -11.2624 -174.85 + 48 112.834 899 2 0 -0.101236 -0.205571 -145.85 + 48 392.482 929 1 1 5.97882 1.02111 -174.45 + 48 231.668 930 1 1 6.05 1.05841 -174.627 + 48 119.75 910 1 0 11.9485 2.17069 -175.85 + 48 126.149 911 1 0 12.3879 2.25 -175.926 + 48 117.853 912 1 0 12.7924 2.45 -176.001 + 48 48.8653 913 1 0 13.0849 2.65 -176.133 + 48 118.224 1082 1 0 56.5551 36.4701 -176.25 + 48 65.407 1083 1 0 56.6461 36.65 -176.02 + 48 55.6115 1084 1 0 56.7434 36.85 -175.883 + 48 68.11 1085 1 0 56.8499 37.05 -175.863 + 48 72.8072 1086 1 0 56.9633 37.25 -175.915 + 48 52.9216 1087 1 0 57.1133 37.45 -176.025 + 48 53.5644 1088 1 0 57.1344 37.65 -176.085 + 48 98.7712 1089 1 0 57.1749 37.85 -176.129 + 48 17.1091 1090 1 0 57.1577 38.05 -176.213 + 48 82.8402 616 0 1 -56.7042 77.3857 -204.576 +Number of digits in this event = 12 +Event: 49 +Number of tracker hits in this event = 8 + 49 109.483 900 3 1 0.22329 0.225392 -114.45 + 49 120.196 900 3 0 0.221516 0.242308 -115.85 + 49 155.519 900 2 1 0.1832 0.542614 -144.45 + 49 108.302 902 2 0 0.180411 0.559431 -145.85 + 49 220.84 900 1 1 0.135285 0.950838 -174.45 + 49 133.059 904 1 0 0.132193 0.963866 -175.85 + 49 115.906 900 0 1 0.0808314 1.23695 -204.45 + 49 361.345 900 4 1 0.102479 -0.05 -84.6163 +Number of digits in this event = 8 +Event: 50 +Number of tracker hits in this event = 43 + 50 140.432 900 5 1 0.103822 0.186333 -54.45 + 50 177.824 900 5 0 0.116161 0.200485 -55.85 + 50 140.119 901 4 1 0.404402 0.491747 -84.45 + 50 176.116 902 4 0 0.416057 0.494438 -85.85 + 50 179.823 902 3 1 0.631693 0.580672 -114.45 + 50 135.397 902 3 0 0.646517 0.58608 -115.85 + 50 204.298 904 2 1 0.963249 0.713709 -144.45 + 50 111.829 903 2 0 0.985841 0.713453 -145.85 + 50 116.873 907 1 1 1.48217 0.709688 -174.45 + 50 115.606 903 1 0 1.4975 0.713984 -175.85 + 50 307.193 908 0 1 1.79837 0.813016 -204.45 + 50 117.092 903 0 0 1.81536 0.825913 -205.85 + 50 66.2658 900 6 1 0.05 -0.0711408 -24.6245 + 50 144.239 898 6 0 0.118723 -0.347708 -25.85 + 50 132.805 907 5 1 1.62581 -7.18071 -54.45 + 50 34.8119 861 5 0 1.58141 -7.78507 -55.85 + 50 72.9322 860 5 0 1.57454 -7.85 -55.9982 + 50 126.599 898 4 1 -0.386378 -17.8244 -84.45 + 50 108.379 811 4 0 -0.15741 -17.7277 -85.85 + 50 20.3624 914 3 1 3.041 -15.5851 -114.45 + 50 99.7155 915 3 1 3.05 -15.5971 -114.499 + 50 111.91 820 3 0 3.30571 -15.945 -115.85 + 50 110.145 942 2 1 8.52806 -22.6869 -144.45 + 50 289.665 943 2 1 8.65 -22.8073 -144.623 + 50 39.5596 781 2 0 9.52092 -23.7802 -145.85 + 50 101.565 780 2 0 9.58291 -23.85 -145.937 + 50 9.96183 779 2 0 9.76056 -24.05 -146.21 + 50 111.251 1052 1 1 30.5936 -43.2942 -174.45 + 50 233.234 1051 1 1 30.45 -43.5888 -174.529 + 50 120.081 1050 1 1 30.25 -43.9476 -174.644 + 50 109.746 1049 1 1 30.05 -44.2908 -174.751 + 50 25.5115 1048 1 1 29.85 -44.6448 -174.838 + 50 28.49 652 1 0 27.1672 -49.5597 -175.85 + 50 63.9513 651 1 0 27.1179 -49.65 -175.869 + 50 73.588 650 1 0 27.0053 -49.85 -175.916 + 50 65.9557 649 1 0 26.9011 -50.05 -175.97 + 50 86.0679 648 1 0 26.7892 -50.25 -176.018 + 50 56.1253 647 1 0 26.6845 -50.45 -176.062 + 50 83.3222 646 1 0 26.5691 -50.65 -176.118 + 50 79.8128 645 1 0 26.4535 -50.85 -176.177 + 50 7.01417 644 1 0 26.3298 -51.05 -176.244 + 50 333.12 900 6 0 1.22362 0.05 -26.1099 + 50 3.37561 899 6 0 1.72813 -0.05 -26.2425 +Number of digits in this event = 16 +Event: 51 Number of tracker hits in this event = 13 - 53 167.267 899 3 1 -0.0770012 -0.133307 -114.45 - 53 150.607 899 3 0 -0.0715313 -0.130301 -115.85 - 53 129.412 900 1 1 0.0949459 0.113638 -174.45 - 53 139.083 900 1 0 0.0974322 0.120445 -175.85 - 53 122.505 900 0 1 0.136262 0.264007 -204.45 - 53 255.743 901 0 0 0.143755 0.268374 -205.85 - 53 213.441 899 2 0 0.05 -0.0580574 -145.88 - 53 131.875 898 2 0 0.357653 -0.25 -146.038 - 53 100.608 963 2 0 71.9713 12.7938 -146.25 - 53 150.422 841 5 0 21.0648 -11.725 -56.25 - 53 128.714 1007 5 1 21.4703 -11.6084 -54.85 - 53 30.4922 1128 5 1 45.7843 -30.4922 -54.45 - 53 31.2746 1011 5 1 22.3077 -11.4083 -54.631 -Number of digits in this event = 11 + 51 121.166 899 5 1 -0.0706923 -0.113213 -54.45 + 51 97.4346 899 5 0 -0.0772205 -0.111905 -55.85 + 51 145.235 899 4 1 -0.190075 -0.0957257 -84.45 + 51 127.119 899 4 0 -0.187474 -0.0959923 -85.85 + 51 125.558 899 3 1 -0.126766 -0.109969 -114.45 + 51 140.881 899 3 0 -0.118228 -0.109081 -115.85 + 51 123.128 900 2 1 0.06045 -0.0647137 -144.45 + 51 107.667 899 2 0 0.0713971 -0.0638019 -145.85 + 51 142.084 901 1 1 0.267533 -0.0631958 -174.45 + 51 116.403 899 1 0 0.272195 -0.0729519 -175.85 + 51 147.281 901 0 1 0.371879 -0.236456 -204.45 + 51 441.382 899 0 0 0.378495 -0.242352 -205.85 + 51 43.0632 884 3 1 -3.11508 -169.006 -114.493 +Number of digits in this event = 10 +Event: 52 +Number of tracker hits in this event = 11 + 52 138.516 898 4 1 -0.376417 -0.0671109 -84.45 + 52 97.615 899 4 0 -0.392929 -0.0660242 -85.85 + 52 163.58 896 3 1 -0.769204 -0.0782672 -114.45 + 52 116.842 899 3 0 -0.789723 -0.0699582 -115.85 + 52 108.708 893 2 1 -1.41525 0.112571 -144.45 + 52 103.958 900 2 0 -1.43501 0.121379 -145.85 + 52 1.57337 891 1 1 -1.84973 0.370156 -174.45 + 52 211.033 890 1 1 -1.85 0.370239 -174.46 + 52 261.396 901 1 0 -1.882 0.380839 -175.85 + 52 152.994 887 0 1 -2.59239 0.573464 -204.45 + 52 113.025 902 0 0 -2.62234 0.59709 -205.85 +Number of digits in this event = 6 +Event: 53 +Number of tracker hits in this event = 18 + 53 200.657 899 5 1 -0.0548669 0.111067 -54.45 + 53 118.133 900 5 0 -0.0584834 0.110369 -55.85 + 53 147.586 899 4 1 -0.107325 0.0910006 -84.45 + 53 111.751 910 3 1 2.08971 -2.03832 -114.45 + 53 100.465 890 3 0 2.28364 -2.0056 -115.85 + 53 53.9711 933 2 1 6.81475 -0.869299 -144.45 + 53 80.6454 934 2 1 6.85 -0.885141 -144.549 + 53 120.486 894 2 0 7.33431 -1.06658 -145.85 + 53 0.852367 984 1 1 17.049 -3.76979 -174.45 + 53 115.454 985 1 1 17.05 -3.7708 -174.452 + 53 66.6668 878 1 0 17.6416 -4.35591 -175.85 + 53 48.5942 877 1 0 17.737 -4.45 -176.072 + 53 107.579 1041 0 1 28.2814 -18.5111 -204.45 + 53 90.246 1042 0 1 28.45 -18.6156 -204.597 + 53 43.5739 1043 0 1 28.65 -18.7483 -204.788 + 53 30.723 804 0 0 29.6487 -19.2175 -205.85 + 53 146.19 803 0 0 29.7192 -19.25 -205.925 + 53 72.7455 822 0 0 31.6815 -15.553 -205.875 +Number of digits in this event = 6 Event: 54 -Number of tracker hits in this event = 23 - 54 130.181 899 2 1 -0.1384 0.208633 -144.45 - 54 102.701 900 2 0 -0.147573 0.230964 -145.85 - 54 115.897 898 1 1 -0.381048 0.687397 -174.45 - 54 122.563 903 1 0 -0.394349 0.709398 -175.85 - 54 156.542 896 0 1 -0.691 1.15115 -204.45 - 54 146.523 905 0 0 -0.702969 1.16975 -205.85 - 54 21.6867 899 4 1 -0.182175 0.05 -84.4904 - 54 106.708 898 4 1 -0.25 0.0713554 -84.5716 - 54 51.6321 897 4 1 -0.45 0.110344 -84.7926 - 54 18.7806 903 4 0 -1.1279 0.823928 -85.85 - 54 135.402 904 4 0 -1.15197 0.85 -85.888 - 54 0.676143 905 4 0 -1.36108 1.05 -86.2492 - 54 121.734 657 2 0 -45.6806 -48.5124 -146.25 - 54 201.167 669 2 1 -46.0998 -49.0471 -144.85 - 54 24.7093 718 3 0 -39.6581 -36.2912 -116.25 - 54 87.7325 719 3 0 -39.6382 -36.25 -116.162 - 54 154.289 702 3 1 -39.5763 -36.0229 -114.85 - 54 95.4069 701 3 1 -39.65 -35.8495 -114.555 - 54 66.9563 700 3 1 -39.85 -35.8414 -114.771 - 54 606.61 699 3 1 -40.05 -35.9388 -114.643 - 54 549.565 698 3 1 -40.25 -35.8816 -114.491 - 54 140.267 899 0 1 -0.136279 0.856438 -204.45 - 54 140.552 900 0 0 0.0751995 0.209465 -205.85 -Number of digits in this event = 14 +Number of tracker hits in this event = 13 + 54 113.041 901 5 1 0.288241 -0.195352 -54.45 + 54 139.2 899 5 0 0.296444 -0.202778 -55.85 + 54 173.752 902 4 1 0.49353 -0.419697 -84.45 + 54 123.536 898 4 0 0.494609 -0.420489 -85.85 + 54 98.9315 902 3 1 0.472859 -0.404552 -114.45 + 54 109.644 898 3 0 0.466458 -0.392988 -115.85 + 54 153.444 901 2 1 0.305386 -0.181837 -144.45 + 54 176.93 899 2 0 0.29299 -0.157778 -145.85 + 54 112.306 900 1 1 0.176398 0.326563 -174.45 + 54 109.799 901 1 0 0.159953 0.356227 -175.85 + 54 107.046 899 0 1 -0.204161 0.674027 -204.45 + 54 119.634 903 0 0 -0.20879 0.693188 -205.85 + 54 176.26 1180 2 1 56.0628 132.283 -144.768 +Number of digits in this event = 7 Event: 55 -Number of tracker hits in this event = 59 - 55 159.941 901 4 1 0.383197 0.0622449 -84.45 - 55 114.682 900 4 0 0.395504 0.0726901 -85.85 - 55 306.163 902 3 1 0.622084 0.286272 -114.45 - 55 151.048 901 3 0 0.620924 0.283148 -115.85 - 55 119.533 902 2 1 0.619196 0.215403 -144.45 - 55 195.643 900 2 0 0.619788 0.209175 -145.85 - 55 130.028 903 0 1 0.808626 0.356292 -204.45 - 55 104.486 901 0 0 0.824834 0.372422 -205.85 - 55 98.1752 904 3 0 1.25469 0.924731 -115.85 - 55 78.3076 905 3 0 1.37904 1.05 -116.054 - 55 111.216 903 3 1 0.65 0.285169 -114.471 - 55 6.47092 904 3 1 0.85 0.337363 -114.835 - 55 115.123 902 3 0 1.55761 0.45 -115.894 - 55 182.91 1007 3 0 43.4075 21.5048 -116.25 - 55 113.44 1008 3 0 43.5539 21.65 -116 - 55 0.291667 1120 3 1 44.2486 22.3401 -114.85 - 55 148.259 1121 3 1 44.25 22.3415 -114.848 - 55 22.93 1122 3 1 44.45 22.5411 -114.513 - 55 47.5628 1125 3 1 45.1806 22.2802 -114.45 - 55 137.631 1126 3 1 45.25 22.2138 -114.542 - 55 1.98033 1127 3 1 45.45 22.0562 -114.843 - 55 72.406 1006 3 0 46.1108 21.45 -116.115 - 55 143.548 952 3 0 85.8903 10.6382 -116.25 - 55 129.763 1336 3 1 87.2988 10.703 -114.85 - 55 143.37 1337 3 1 87.45 10.7148 -114.716 - 55 323.149 1338 3 1 87.65 10.7753 -114.546 - 55 12.1062 954 3 0 85.7961 11.0289 -115.85 - 55 122.552 955 3 0 85.7556 11.05 -115.878 - 55 148.265 1323 3 1 84.7071 11.2379 -114.85 - 55 74.3334 1322 3 1 84.65 11.1103 -114.571 - 55 195.325 1321 3 1 84.45 11.0438 -114.58 - 55 157.513 1155 6 0 36.7661 51.2281 -26.25 - 55 255.524 1156 6 0 36.6148 51.25 -26.135 - 55 126.071 900 3 0 0.461157 0.195731 -115.85 - 55 5.21084 888 2 1 -2.43712 1.30463 -144.45 - 55 86.7997 887 2 1 -2.45 1.29213 -144.459 - 55 95.2686 886 2 1 -2.65 1.11257 -144.59 - 55 64.6402 885 2 1 -2.85 0.913701 -144.759 - 55 9.13706 896 2 0 -5.01745 -0.832159 -145.85 - 55 86.605 895 2 0 -5.03977 -0.85 -145.861 - 55 108.514 894 2 0 -5.27373 -1.05 -145.977 - 55 40.4873 893 2 0 -5.5509 -1.25 -146.166 - 55 41.9785 779 1 1 -24.2278 -29.3632 -174.45 - 55 110.579 778 1 1 -24.25 -29.4544 -174.561 - 55 72.9672 747 1 0 -24.571 -30.4603 -175.85 - 55 236.852 746 1 0 -24.6352 -30.65 -176.097 - 55 57.5701 555 1 0 -90.6824 -69.0007 -176.25 - 55 177.8 554 1 0 -90.8843 -69.05 -176.133 - 55 12.5911 439 1 1 -92.2908 -69.7945 -174.85 - 55 120.281 438 1 1 -92.35 -69.8316 -174.793 - 55 44.2419 437 1 1 -92.55 -69.8874 -174.655 - 55 59.0702 436 1 1 -92.75 -69.9086 -174.558 - 55 113.903 745 1 0 -24.5375 -30.85 -176.087 - 55 57.9274 744 1 0 -24.5012 -31.05 -176.174 - 55 37.292 433 1 1 -93.3868 -70.1636 -174.45 - 55 233.092 434 1 1 -93.35 -70.1971 -174.539 - 55 2.25729 561 1 0 -93.1889 -67.66 -175.85 - 55 351.823 562 1 0 -93.1889 -67.65 -175.854 - 55 99.3199 563 1 0 -93.1443 -67.45 -175.931 -Number of digits in this event = 24 +Number of tracker hits in this event = 31 + 55 95.8629 899 5 1 -0.123376 -0.182146 -54.45 + 55 133.557 899 5 0 -0.124746 -0.20053 -55.85 + 55 143.248 899 4 1 -0.124279 -0.500756 -84.45 + 55 122.896 897 4 0 -0.0898349 -0.515881 -85.85 + 55 177.33 903 3 1 0.691557 -0.725644 -114.45 + 55 178.011 896 3 0 0.765629 -0.677175 -115.85 + 55 370.458 911 2 1 2.33897 0.439184 -144.45 + 55 120.264 902 2 0 2.36952 0.527444 -145.85 + 55 114.728 912 1 1 2.46837 2.58186 -174.45 + 55 349.264 913 1 0 2.41942 2.72673 -175.85 + 55 105.493 906 0 1 1.34433 5.35575 -204.45 + 55 129.034 927 0 0 1.27667 5.49671 -205.85 + 55 72.0715 898 0 1 -0.304622 -2.51505 -204.593 + 55 93.7845 897 0 1 -0.45 -2.46473 -204.616 + 55 139.128 896 0 1 -0.65 -2.30809 -204.595 + 55 262.718 895 0 1 -0.85 -2.08358 -204.622 + 55 33.5717 894 0 1 -1.05 -1.80052 -204.655 + 55 4.54853 898 0 0 -1.2592 -0.262132 -205.85 + 55 26.216 899 0 0 -1.25736 -0.25 -205.858 + 55 367.35 899 0 1 -0.25 0.430459 -204.829 + 55 408.17 887 0 0 -0.121927 -2.52952 -205.85 + 55 253.916 932 1 0 -168.507 6.63441 -176.195 + 55 37.2114 933 1 0 -169.376 6.65 -175.879 + 55 108.715 39 1 1 -172.174 6.9658 -174.85 + 55 134.983 38 1 1 -172.35 6.98567 -174.785 + 55 50.9093 37 1 1 -172.55 7.02277 -174.71 + 55 95.2042 36 1 1 -172.75 7.01731 -174.658 + 55 57.1804 35 1 1 -172.95 7.04868 -174.669 + 55 195.589 34 1 1 -173.15 6.99461 -174.67 + 55 0.469716 33 1 1 -173.35 7.10269 -174.848 + 55 139.836 937 1 0 -173.946 7.48201 -175.85 +Number of digits in this event = 20 Event: 56 -Number of tracker hits in this event = 48 - 56 112.368 901 4 0 -0.0512337 0.428088 -85.85 - 56 119.458 899 3 1 -0.187491 0.8363 -114.45 - 56 125.724 904 3 0 -0.186382 0.861768 -115.85 - 56 129.336 899 2 1 -0.146223 1.42301 -144.45 - 56 223.883 907 2 0 -0.141174 1.45083 -145.85 - 56 351.656 897 1 1 -0.465589 1.68935 -174.45 - 56 136.213 908 1 0 -0.490075 1.704 -175.85 - 56 100.305 895 0 1 -0.995834 1.97203 -204.45 - 56 106.701 909 0 0 -1.02104 1.98663 -205.85 - 56 136.09 905 1 1 1.23629 3.11 -174.45 - 56 585.263 915 1 0 1.2811 3.19183 -175.85 - 56 109.804 910 0 1 2.16773 4.81407 -204.45 - 56 395.574 924 0 0 2.23969 4.8954 -205.85 - 56 73.6568 896 1 1 -0.65 -0.33909 -174.723 - 56 76.7802 889 1 0 -1.21173 -2.12662 -175.85 - 56 62.9284 888 1 0 -1.25303 -2.25 -175.93 - 56 99.266 887 1 0 -1.309 -2.45 -176.06 - 56 25.0104 886 1 0 -1.3768 -2.65 -176.199 - 56 59.5406 502 1 0 4.10693 -79.4586 -176.25 - 56 123.256 501 1 0 4.21362 -79.65 -176.105 - 56 40.3291 500 1 0 4.36721 -79.85 -175.915 - 56 63.9605 924 1 1 4.96611 -80.6924 -174.85 - 56 96.268 925 1 1 5.05 -80.8123 -174.698 - 56 147.346 482 2 0 20.4682 -83.4706 -146.25 - 56 26.5269 1006 2 1 21.3836 -83.567 -144.85 - 56 116.866 1007 2 1 21.45 -83.573 -144.755 - 56 204.841 535 3 0 -11.4012 -72.9572 -116.25 - 56 72.3147 536 3 0 -11.631 -72.85 -116.011 - 56 114.219 836 3 1 -12.7505 -72.1188 -114.85 - 56 116.662 835 3 1 -12.85 -72.0483 -114.741 - 56 3.68235 834 3 1 -13.05 -71.9203 -114.466 - 56 108.448 898 1 1 -0.409879 0.279635 -174.45 - 56 40.1404 899 1 1 -0.25 0.184411 -174.729 - 56 24.1732 899 1 0 0.354959 -0.225162 -175.85 - 56 117.177 898 1 0 0.391411 -0.25 -175.917 - 56 51.9418 986 0 1 17.3869 -13.7494 -204.45 - 56 88.3435 987 0 1 17.45 -13.7149 -204.614 - 56 103.467 833 0 0 17.9463 -13.3344 -205.85 - 56 67.9908 834 0 0 18.0513 -13.25 -206.107 - 56 20.8366 676 1 1 -44.753 -66.6077 -174.731 - 56 185.356 629 11 1 -54.1117 -35.3753 125.55 - 56 109.619 829 3 1 -14.1575 -72.2555 -114.482 - 56 24.342 828 3 1 -14.25 -72.1652 -114.454 - 56 55.3824 571 12 0 52.0039 -65.7452 153.75 - 56 126.722 572 12 0 52.0517 -65.65 153.883 - 56 129.555 573 12 0 52.2494 -65.45 154.026 - 56 124.451 574 12 0 52.4569 -65.25 153.983 - 56 234.027 575 12 0 52.424 -65.05 153.888 +Number of tracker hits in this event = 22 + 56 121.417 900 5 1 0.104104 0.205308 -54.45 + 56 178.58 900 5 0 0.108728 0.220492 -55.85 + 56 262.318 900 4 1 0.198902 0.552616 -84.45 + 56 277.868 902 4 0 0.19881 0.570904 -85.85 + 56 246.03 900 3 1 0.188529 0.952453 -114.45 + 56 125.354 904 3 0 0.196906 0.964847 -115.85 + 56 157.3 901 2 1 0.351314 1.23708 -144.45 + 56 110.265 906 2 0 0.366733 1.25305 -145.85 + 56 151.983 903 1 1 0.667088 1.60596 -174.45 + 56 112.477 907 1 0 0.66763 1.62356 -175.85 + 56 120.121 903 0 1 0.650804 1.9769 -204.45 + 56 421.188 909 0 0 0.649154 1.98369 -205.85 + 56 146.978 1243 3 1 68.7881 116.738 -114.45 + 56 340.384 901 4 1 0.295467 0.46375 -84.45 + 56 112.736 894 2 1 -1.07334 -0.740401 -144.45 + 56 486.084 896 2 0 -1.26745 -0.781416 -145.85 + 56 138.219 876 1 1 -4.65826 -2.6288 -174.45 + 56 100.728 887 1 0 -4.94862 -2.6149 -175.85 + 56 158.147 839 0 1 -12.0971 -2.69004 -204.45 + 56 126.788 886 0 0 -12.644 -2.75964 -205.85 + 56 76.3187 908 4 0 0.851187 1.669 -85.85 + 56 56.6167 909 4 0 0.965438 1.85 -86.0712 Number of digits in this event = 18 Event: 57 -Number of tracker hits in this event = 66 - 57 100.391 898 4 1 -0.351632 0.12705 -84.45 - 57 148.243 900 4 0 -0.310767 0.208893 -85.85 - 57 91.6816 901 3 1 0.406546 2.04513 -114.45 - 57 112.721 910 3 0 0.450169 2.11074 -115.85 - 57 40.0434 907 2 1 1.62948 3.59001 -144.45 - 57 211.958 908 2 1 1.65 3.60421 -144.59 - 57 120.164 918 2 0 1.83913 3.72896 -145.85 - 57 47.9914 931 1 1 6.40355 6.76558 -174.45 - 57 74.7342 932 1 1 6.45 6.77848 -174.641 - 57 229.194 934 1 0 6.7242 6.8677 -175.85 - 57 121.088 962 0 1 12.5412 8.66692 -204.45 - 57 12.346 963 0 1 12.65 8.73674 -204.804 - 57 135.986 944 0 0 12.9581 8.92867 -205.85 - 57 268.088 897 3 1 -0.533888 0.196881 -114.45 - 57 272.114 900 3 0 -0.543631 0.201325 -115.85 - 57 365.641 896 2 1 -0.774534 0.336198 -144.45 - 57 244.613 901 2 0 -0.766969 0.332585 -145.85 - 57 206.912 897 1 1 -0.641055 0.287145 -174.45 - 57 105.09 901 1 0 -0.635734 0.281208 -175.85 - 57 126.126 897 0 1 -0.54238 0.22865 -204.45 - 57 106.341 900 0 0 -0.555824 0.242451 -205.85 - 57 126.824 894 1 1 -1.08324 0.76949 -174.45 - 57 113.057 903 1 0 -1.10875 0.798693 -175.85 - 57 120.81 891 0 1 -1.65621 1.42787 -204.45 - 57 142.045 907 0 0 -1.68476 1.47449 -205.85 - 57 548.24 895 2 1 -0.85 -0.327209 -144.538 - 57 133.948 894 2 1 -1.05 -1.47361 -144.778 - 57 37.4894 848 2 0 -2.11417 -10.3358 -145.85 - 57 59.1089 847 2 0 -2.12685 -10.45 -145.864 - 57 71.9012 846 2 0 -2.14039 -10.65 -145.889 - 57 94.2161 845 2 0 -2.14724 -10.85 -145.922 - 57 86.4841 844 2 0 -2.15635 -11.05 -145.944 - 57 71.5839 843 2 0 -2.17735 -11.25 -145.972 - 57 46.1796 842 2 0 -2.19673 -11.45 -145.98 - 57 53.0105 841 2 0 -2.21709 -11.65 -145.989 - 57 50.9785 840 2 0 -2.23347 -11.85 -145.995 - 57 60.0169 839 2 0 -2.25945 -12.05 -146.019 - 57 49.977 838 2 0 -2.27361 -12.25 -146.034 - 57 61.6856 837 2 0 -2.28425 -12.45 -146.053 - 57 60.8261 836 2 0 -2.29995 -12.65 -146.062 - 57 69.5083 835 2 0 -2.30239 -12.85 -146.072 - 57 58.2324 834 2 0 -2.30084 -13.05 -146.074 - 57 61.2278 833 2 0 -2.31072 -13.25 -146.076 - 57 54.1659 832 2 0 -2.32053 -13.45 -146.097 - 57 116.451 831 2 0 -2.32266 -13.65 -146.139 - 57 58.7763 830 2 0 -2.33363 -13.85 -146.177 - 57 37.1412 829 2 0 -2.35319 -14.05 -146.23 - 57 51.3658 861 1 1 -7.75143 -107.569 -174.45 - 57 88.0811 860 1 1 -7.85 -107.525 -174.585 - 57 45.1467 859 1 1 -8.05 -107.443 -174.768 - 57 169.081 365 1 0 -9.35604 -107.132 -175.85 - 57 95.7946 457 1 0 -18.6477 -88.6209 -176.25 - 57 44.3557 458 1 0 -18.563 -88.45 -175.955 - 57 39.8744 808 1 1 -18.2909 -87.9542 -174.85 - 57 53.8573 809 1 1 -18.25 -87.8877 -174.696 - 57 73.4601 810 1 1 -18.05 -87.8162 -174.679 - 57 66.918 811 1 1 -17.85 -87.7475 -174.693 - 57 128.473 812 1 1 -17.65 -87.6494 -174.739 - 57 75.051 813 1 1 -17.45 -87.5053 -174.816 - 57 62.0816 814 1 1 -17.25 -87.3443 -174.826 - 57 158.492 815 1 1 -17.05 -87.2424 -174.729 - 57 163.611 816 1 1 -16.85 -87.1313 -174.598 - 57 81.7862 468 1 0 -17.2364 -86.3249 -175.85 - 57 264.066 469 1 0 -17.2105 -86.25 -175.995 - 57 110.854 345 1 0 1.71368 -111.005 -176.25 - 57 169.513 344 1 0 1.62136 -111.15 -176.149 -Number of digits in this event = 25 +Number of tracker hits in this event = 23 + 57 147.121 900 5 1 0.137528 0.105294 -54.45 + 57 459.614 900 5 0 0.134499 0.120992 -55.85 + 57 554.802 896 3 1 -0.808461 1.73035 -114.45 + 57 445.385 908 3 0 -0.882236 1.7618 -115.85 + 57 324.043 888 2 1 -2.41854 2.26223 -144.45 + 57 146.227 911 2 0 -2.50897 2.28859 -145.85 + 57 400.404 878 1 1 -4.30613 2.84865 -174.45 + 57 189.234 914 1 0 -4.37822 2.87636 -175.85 + 57 67.6979 871 0 1 -5.84067 3.35388 -204.45 + 57 49.8603 870 0 1 -5.85 3.36412 -204.694 + 57 99.2269 916 0 0 -5.88155 3.40199 -205.85 + 57 476.551 917 1 0 -4.35962 3.45008 -175.85 + 57 8.03509 918 1 0 -4.38841 3.65 -176.23 + 57 138.979 876 0 1 -4.74687 17.8063 -204.45 + 57 34.6109 989 0 0 -4.53835 18.0406 -205.85 + 57 81.644 990 0 0 -4.52983 18.05 -205.926 + 57 43.8552 913 1 0 -4.41094 2.83671 -175.85 + 57 142.463 865 0 1 -6.91106 5.38852 -204.45 + 57 18.7805 864 0 1 -7.05 5.27013 -204.793 + 57 134.077 923 0 0 -7.55407 4.80457 -205.85 + 57 13.1872 922 0 0 -7.7205 4.65 -206.199 + 57 45.9043 946 0 0 -44.0265 9.38785 -206.13 + 57 242.566 947 0 0 -44.1063 9.45 -206.066 +Number of digits in this event = 15 Event: 58 Number of tracker hits in this event = 13 - 58 39.6044 898 5 0 -0.05 -0.286561 -56.1231 - 58 185.919 899 4 1 -0.088484 -0.68282 -84.45 - 58 142.287 896 4 0 -0.0740666 -0.707042 -85.85 - 58 109.81 900 3 1 0.168778 -1.20593 -114.45 - 58 136.568 894 3 0 0.179254 -1.21577 -115.85 - 58 117.592 901 2 1 0.369275 -1.41767 -144.45 - 58 121.443 893 2 0 0.372378 -1.4188 -145.85 - 58 100.624 901 1 1 0.437168 -1.44055 -174.45 - 58 125.176 893 1 0 0.447087 -1.44411 -175.85 - 58 127.218 902 0 1 0.63833 -1.54673 -204.45 - 58 123.538 892 0 0 0.656475 -1.55601 -205.85 - 58 54.5979 1200 11 1 60.0848 -134.952 125.55 - 58 206.112 1199 11 1 60.05 -135.045 125.469 -Number of digits in this event = 10 + 58 117.814 906 3 1 1.38282 -0.332496 -114.45 + 58 106.735 898 3 0 1.46356 -0.353182 -115.85 + 58 113.479 915 2 1 3.0641 -0.744349 -144.45 + 58 119.619 896 2 0 3.12926 -0.753192 -145.85 + 58 134.92 921 1 1 4.3747 -0.87436 -174.45 + 58 344.605 895 1 0 4.42833 -0.866051 -175.85 + 58 196.912 927 0 1 5.50213 -0.640082 -204.45 + 58 133.8 897 0 0 5.56457 -0.632996 -205.85 + 58 113.942 928 0 1 5.65 -0.355668 -204.566 + 58 23.832 929 0 1 5.85 -0.13401 -204.688 + 58 40.772 930 0 1 6.06226 0.05 -204.784 + 58 120.937 907 0 0 7.68088 1.47568 -205.85 + 58 180.158 908 0 0 7.87774 1.65 -205.982 +Number of digits in this event = 8 Event: 59 -Number of tracker hits in this event = 46 - 59 225.047 899 5 0 -0.0959195 -0.0802984 -55.85 - 59 138.399 891 4 1 -1.7729 -0.0647256 -84.45 - 59 97.1021 897 4 0 -1.7336 -0.526113 -85.85 - 59 6.85869 896 4 0 -1.72274 -0.65 -86.2292 - 59 145.054 896 3 1 -0.691457 -9.43326 -114.45 - 59 53.2883 851 3 0 -0.772041 -9.81708 -115.85 - 59 97.9917 850 3 0 -0.778872 -9.85 -115.97 - 59 103.687 887 2 1 -2.49316 -17.8879 -144.45 - 59 126.244 808 2 0 -2.56338 -18.3289 -145.85 - 59 3.09378 807 2 0 -2.58343 -18.45 -146.237 - 59 115.63 884 1 1 -3.2498 -26.9078 -174.45 - 59 227.386 763 1 0 -3.0901 -27.2646 -175.85 - 59 126.537 896 0 1 -0.778779 -34.6407 -204.45 - 59 23.8972 726 0 0 -0.604439 -34.8388 -205.85 - 59 100.358 725 0 0 -0.594149 -34.85 -205.931 - 59 95.8206 862 3 1 -7.45863 2.01882 -114.45 - 59 188.708 861 3 1 -7.65 2.27712 -114.664 - 59 75.2247 917 3 0 -8.75866 3.51578 -115.85 - 59 109.065 918 3 0 -8.88462 3.65 -115.98 - 59 37.025 919 3 0 -9.11407 3.85 -116.188 - 59 68.1313 768 2 1 -26.3895 25.3639 -144.45 - 59 108.965 767 2 1 -26.45 25.3884 -144.556 - 59 148.113 1026 2 0 -27.3897 25.442 -145.85 - 59 1.60422 729 1 1 -34.2464 21.6861 -174.45 - 59 53.4311 728 1 1 -34.25 21.6876 -174.452 - 59 99.5504 727 1 1 -34.45 21.7737 -174.552 - 59 73.9779 726 1 1 -34.65 21.9348 -174.688 - 59 0.855249 725 1 1 -34.85 22.0561 -174.847 - 59 83.6024 1014 1 0 -35.797 22.8864 -175.85 - 59 62.6671 1015 1 0 -35.9836 23.05 -176.048 - 59 51.0854 1016 1 0 -36.1408 23.25 -176.119 - 59 69.0012 1017 1 0 -36.2475 23.45 -176.175 - 59 39.6085 1018 1 0 -36.3797 23.65 -176.228 - 59 133.548 530 0 1 -73.8604 136.777 -204.45 - 59 33.1686 1584 0 0 -73.8367 137.122 -205.85 - 59 76.9804 1585 0 0 -73.8274 137.15 -205.985 - 59 123.959 900 4 0 0.560551 0.05 -85.8881 - 59 302.141 1049 3 1 29.8864 -4.84781 -114.45 - 59 54.7989 1050 3 1 30.05 -5.21119 -114.729 - 59 19.0531 867 3 0 30.7916 -6.58962 -115.85 - 59 73.482 866 3 0 30.8239 -6.65 -115.899 - 59 89.8282 865 3 0 30.9399 -6.85 -116.082 - 59 82.1262 864 3 0 31.0373 -7.05 -116.179 - 59 28.7507 912 3 0 -7.70342 2.48095 -115.9 - 59 158.152 549 8 0 44.475 -70.1644 33.7737 - 59 178.793 548 8 0 44.4221 -70.25 34.0083 -Number of digits in this event = 16 +Number of tracker hits in this event = 13 + 59 127.497 900 5 1 0.0879124 0.111335 -54.45 + 59 122.61 900 5 0 0.102104 0.11625 -55.85 + 59 156.632 901 4 1 0.436801 0.214199 -84.45 + 59 156.175 900 4 0 0.451528 0.218347 -85.85 + 59 153.704 903 3 1 0.741933 0.309084 -114.45 + 59 116.811 901 3 0 0.75389 0.311839 -115.85 + 59 118.829 904 2 1 1.01727 0.372543 -144.45 + 59 108.517 901 2 0 1.04684 0.370316 -145.85 + 59 100.764 908 1 1 1.6561 0.286734 -174.45 + 59 123.074 901 1 0 1.68498 0.283068 -175.85 + 59 113.835 911 0 1 2.27754 0.22626 -204.45 + 59 114.878 900 0 0 2.29811 0.220985 -205.85 + 59 62.7315 906 1 1 1.30802 0.740569 -174.544 +Number of digits in this event = 8 Event: 60 -Number of tracker hits in this event = 10 - 60 136.117 901 4 1 0.273082 -0.0634548 -84.45 - 60 127.247 899 4 0 0.379775 -0.146986 -85.85 - 60 108.609 912 3 1 2.52205 -1.71607 -114.45 - 60 180.083 891 3 0 2.63241 -1.78625 -115.85 - 60 373.975 923 2 1 4.76905 -3.24518 -144.45 - 60 252.252 883 2 0 4.87746 -3.32314 -145.85 - 60 126.269 935 1 1 7.13995 -4.80922 -174.45 - 60 114.27 875 1 0 7.225 -4.86462 -175.85 - 60 128.751 944 0 1 8.95578 -5.96666 -204.45 - 60 128.356 869 0 0 9.06774 -6.08805 -205.85 -Number of digits in this event = 9 +Number of tracker hits in this event = 70 + 60 537.027 899 5 1 -0.10662 0.220784 -54.45 + 60 372.294 900 5 0 -0.10874 0.223677 -55.85 + 60 145.2 899 4 1 -0.0898266 0.302605 -84.45 + 60 142.356 901 4 0 -0.0786664 0.324973 -85.85 + 60 167.567 900 3 1 0.143644 0.799764 -114.45 + 60 191.861 903 3 0 0.158005 0.799756 -115.85 + 60 156.499 902 2 1 0.482721 0.879738 -144.45 + 60 105.444 904 2 0 0.494424 0.887189 -145.85 + 60 394.525 903 1 1 0.762551 1.03256 -174.45 + 60 85.3675 904 1 0 0.743176 1.04657 -175.85 + 60 121.475 905 1 0 0.738128 1.05 -176.202 + 60 113.171 901 0 1 0.352713 1.33105 -204.45 + 60 109.966 906 0 0 0.328974 1.34688 -205.85 + 60 102.632 900 5 1 0.05 0.092532 -54.6277 + 60 55.4573 901 5 1 0.25 0.0516313 -54.7699 + 60 167.565 907 5 0 1.42263 1.46297 -55.85 + 60 65.8262 906 5 0 1.53101 1.45 -55.8839 + 60 112.801 906 1 0 0.798872 1.33327 -175.85 + 60 10.2179 912 0 1 2.62933 8.9614 -204.45 + 60 103.206 913 0 1 2.65 8.97727 -204.475 + 60 48.8766 914 0 1 2.85 9.13194 -204.723 + 60 52.51 950 0 0 3.74794 10.2457 -205.85 + 60 216.076 951 0 0 3.75142 10.25 -205.854 + 60 88.205 952 0 0 3.91231 10.45 -206.056 + 60 11.6523 953 0 0 4.04776 10.65 -206.216 + 60 104.198 897 4 1 -0.534828 -0.191929 -84.45 + 60 138.776 898 4 0 -0.58338 -0.439333 -85.85 + 60 119.909 897 4 0 -0.585692 -0.45 -85.9115 + 60 133.184 898 3 1 -0.417545 -4.67153 -114.45 + 60 117.042 877 3 0 -0.503548 -4.57418 -115.85 + 60 38.723 885 2 1 -3.02182 -2.69028 -144.45 + 60 62.8062 884 2 1 -3.05 -2.64634 -144.63 + 60 137.442 888 2 0 -3.18107 -2.36884 -145.85 + 60 91.5967 869 1 1 -6.20914 2.86273 -174.45 + 60 20.4788 868 1 1 -6.25 2.89745 -174.765 + 60 126.018 914 1 0 -6.47755 2.98409 -175.85 + 60 73.2571 835 0 1 -12.9409 6.07571 -204.45 + 60 97.1811 834 0 1 -13.05 6.18415 -204.637 + 60 5.64645 936 0 0 -13.8239 7.43557 -205.85 + 60 100.343 937 0 0 -13.8316 7.45 -205.863 + 60 69.0761 938 0 0 -13.9364 7.65 -206.042 + 60 0.99373 939 0 0 -14.0257 7.85 -206.244 + 60 132.485 903 0 1 0.765501 2.34295 -204.45 + 60 100.545 910 0 0 0.657644 2.21751 -205.85 + 60 123.609 902 4 1 0.585052 -0.25102 -84.45 + 60 147.277 904 3 1 0.927129 -1.31204 -114.45 + 60 170.152 893 3 0 0.924918 -1.38256 -115.85 + 60 123.05 904 2 1 0.943327 -3.07011 -144.45 + 60 156.232 885 2 0 0.972245 -2.92184 -145.85 + 60 124.943 909 1 1 1.95822 0.167534 -174.45 + 60 45.6233 902 1 0 2.05145 0.588954 -175.85 + 60 63.074 903 1 0 2.06478 0.65 -176.053 + 60 121.061 922 0 1 4.4773 9.73314 -204.45 + 60 253.622 888 1 1 -2.33512 -13.0645 -174.45 + 60 106.223 834 1 0 -2.6942 -13.1852 -175.85 + 60 419.02 852 0 1 -9.51177 -14.9801 -204.45 + 60 3.1265 851 0 1 -9.65 -15.0539 -204.835 + 60 31.8531 824 0 0 -10.032 -15.2315 -205.85 + 60 86.8989 823 0 0 -10.0717 -15.25 -205.956 + 60 382.754 899 0 1 -0.12547 2.68428 -204.45 + 60 16.8944 914 0 0 -0.208931 3.03028 -205.85 + 60 96.784 915 0 0 -0.21444 3.05 -205.914 + 60 137.192 832 1 0 -2.15205 -13.4589 -175.85 + 60 241.255 902 0 1 0.523918 -22.0342 -204.45 + 60 114.289 789 0 0 0.744802 -22.1361 -205.85 + 60 225.285 962 2 1 12.5258 6.57499 -144.461 + 60 135.624 974 1 1 14.994 89.0228 -174.629 + 60 131.04 975 1 1 15.05 89.0953 -174.594 + 60 48.0253 1096 3 0 -57.4787 39.3665 -116.15 + 60 278.81 1097 3 0 -57.4568 39.45 -116.068 +Number of digits in this event = 34 Event: 61 Number of tracker hits in this event = 21 - 61 266.695 900 2 1 0.181237 0.170669 -144.45 - 61 484.416 900 2 0 0.20634 0.181465 -145.85 - 61 532.371 903 1 1 0.682026 0.411522 -174.45 - 61 116.307 901 1 0 0.683811 0.43536 -175.85 - 61 122.184 903 0 1 0.706569 0.940814 -204.45 - 61 126.857 904 0 0 0.723891 0.957804 -205.85 - 61 241.153 901 2 1 0.277685 0.206637 -144.45 - 61 118.216 906 1 1 1.39133 -0.532306 -174.45 - 61 117.454 896 1 0 0.988609 -0.725937 -175.85 - 61 178.369 867 0 1 -6.55232 -4.77619 -204.45 - 61 45.8553 873 0 0 -6.57839 -5.38953 -205.85 - 61 76.0971 872 0 0 -6.58372 -5.45 -205.999 - 61 2.43621 899 1 0 0.158454 -0.157468 -176.244 - 61 151.572 902 0 1 0.53453 -0.916914 -204.45 - 61 131.258 895 0 0 0.555271 -0.927118 -205.85 - 61 142.465 898 1 1 -0.26025 0.980803 -174.45 - 61 0.824223 899 1 1 -0.25 1.04337 -174.847 - 61 143.421 905 1 0 -0.240405 1.20835 -175.85 - 61 86.7886 906 1 0 -0.237268 1.25 -176.101 - 61 124.549 898 0 1 -0.392203 5.25902 -204.45 - 61 167.425 926 0 0 -0.283202 5.33516 -205.85 -Number of digits in this event = 16 -Event: 62 -Number of tracker hits in this event = 11 - 62 327.727 899 5 1 -0.0584157 -0.157139 -54.45 - 62 190.362 899 5 0 -0.0730497 -0.167683 -55.85 - 62 136.985 898 4 1 -0.399053 -0.394443 -84.45 - 62 147.556 898 4 0 -0.409853 -0.406357 -85.85 - 62 156.064 897 3 1 -0.602419 -0.660407 -114.45 - 62 121.325 896 3 0 -0.601084 -0.670274 -115.85 - 62 114.44 897 2 1 -0.592498 -0.880869 -144.45 - 62 111.377 895 2 0 -0.56856 -0.884896 -145.85 - 62 118.131 899 1 1 -0.0653775 -0.954711 -174.45 - 62 98.9614 902 0 1 0.549663 -0.48968 -204.45 - 62 136.849 897 0 0 0.571053 -0.463785 -205.85 + 61 108.104 899 5 1 -0.157389 0.153688 -54.45 + 61 190.56 900 5 0 -0.165766 0.152446 -55.85 + 61 101.419 898 4 1 -0.358064 0.119946 -84.45 + 61 113.972 900 4 0 -0.359419 0.12354 -85.85 + 61 112.736 898 3 1 -0.398406 0.228365 -114.45 + 61 120.008 900 3 0 -0.410071 0.235695 -115.85 + 61 77.0123 897 2 1 -0.647285 0.364433 -144.45 + 61 41.9677 896 2 1 -0.65 0.366688 -144.665 + 61 128.373 901 2 0 -0.665953 0.381131 -145.85 + 61 105.869 894 1 1 -1.07409 0.706014 -174.45 + 61 169.765 903 1 0 -1.11508 0.714273 -175.85 + 61 105.842 890 0 1 -1.96107 0.887662 -204.45 + 61 125.814 904 0 0 -1.98987 0.883373 -205.85 + 61 154.672 898 0 1 -0.417727 0.0679477 -204.45 + 61 78.0532 897 0 1 -0.45 0.0627451 -204.538 + 61 52.2202 1160 2 0 -76.7629 52.2362 -145.944 + 61 12.8003 958 0 0 -21.2741 11.7215 -205.85 + 61 0.299994 804 0 1 -19.2432 11.8125 -204.85 + 61 127.633 1112 1 1 42.5993 -67.407 -174.45 + 61 29.8184 1088 1 1 37.7786 -69.3234 -174.71 + 61 34.3907 1083 1 1 36.8152 -68.903 -174.573 Number of digits in this event = 8 +Event: 62 +Number of tracker hits in this event = 39 + 62 108.175 899 4 1 -0.0588241 -0.593556 -84.45 + 62 148.082 897 4 0 -0.0768971 -0.610839 -85.85 + 62 105.683 898 3 1 -0.426456 -0.965889 -114.45 + 62 133.014 895 3 0 -0.446185 -0.980114 -115.85 + 62 142.014 895 2 1 -0.8643 -1.28065 -144.45 + 62 132.868 893 2 0 -0.884939 -1.31095 -145.85 + 62 114.675 893 1 1 -1.30417 -1.87833 -174.45 + 62 104.617 890 1 0 -1.3232 -1.91185 -175.85 + 62 125.797 891 0 1 -1.7057 -2.57877 -204.45 + 62 132.752 887 0 0 -1.71281 -2.60383 -205.85 + 62 11.7899 436 13 0 116.521 -92.807 184.115 + 62 273.286 437 13 0 115.645 -92.5973 183.924 + 62 304.868 900 5 1 0.135751 -0.130568 -54.45 + 62 118.97 890 4 1 -2.03791 -1.01432 -84.45 + 62 135.288 896 4 0 -2.03574 -0.786613 -85.85 + 62 131.733 893 3 1 -1.34825 3.30192 -114.45 + 62 127.858 915 3 0 -1.07915 3.23146 -115.85 + 62 82.8811 918 2 1 3.82331 0.704845 -144.45 + 62 51.6595 919 2 1 3.85 0.706107 -144.63 + 62 262.415 903 2 0 4.01248 0.712584 -145.85 + 62 68.3257 924 1 1 4.85022 0.169494 -174.45 + 62 258.179 925 1 1 5.05 0.111632 -174.591 + 62 52.132 899 1 0 5.60703 -0.05 -176.078 + 62 190.289 892 5 0 -0.468777 -1.61494 -55.85 + 62 32.3816 891 5 0 -0.488272 -1.65 -55.8786 + 62 250.914 893 5 0 -0.213725 -1.45 -56.0027 + 62 113.521 898 5 1 -0.287169 -1.63062 -54.85 + 62 172.166 899 5 0 0.146643 -0.165173 -55.85 + 62 114.214 901 4 1 0.311064 -0.828598 -84.45 + 62 122.411 895 4 0 0.346545 -0.882316 -85.85 + 62 204.166 903 3 1 0.801121 -2.06671 -114.45 + 62 104.253 889 3 0 0.701067 -2.10268 -115.85 + 62 119.473 893 2 1 -1.3812 -2.87484 -144.45 + 62 171.185 885 2 0 -1.44056 -2.89082 -145.85 + 62 111.448 886 1 1 -2.74974 -4.12553 -174.45 + 62 125.323 879 1 0 -2.79019 -4.17705 -175.85 + 62 128.942 883 0 1 -3.33507 -5.40973 -204.45 + 62 114.371 873 0 0 -3.32178 -5.42431 -205.85 + 62 27.4866 1019 0 1 24.0349 -3.16479 -204.493 +Number of digits in this event = 22 Event: 63 -Number of tracker hits in this event = 26 - 63 147.055 900 3 1 0.137833 -0.118119 -114.45 - 63 103.182 899 3 0 0.13028 -0.132454 -115.85 - 63 107.692 899 1 1 -0.0651446 -0.669687 -174.45 - 63 108.172 896 1 0 -0.0629894 -0.681332 -175.85 - 63 179.583 899 0 1 -0.0519854 -0.936573 -204.45 - 63 97.3438 895 0 0 -0.0588094 -0.948688 -205.85 - 63 60.1845 889 0 0 -1.29878 -2.1638 -205.85 - 63 334 888 0 0 -1.428 -2.25 -205.948 - 63 20.0897 760 0 0 -50.556 -27.9909 -206.095 - 63 244.778 759 0 0 -50.6079 -28.05 -206.076 - 63 119.62 758 0 0 -51.2402 -28.25 -205.959 - 63 241.759 757 0 0 -51.5379 -28.45 -206.006 - 63 336.406 756 0 0 -51.61 -28.65 -206.071 - 63 71.5222 525 11 1 -74.8708 7.01139 125.314 - 63 86.8163 898 1 1 -0.372292 -0.83775 -174.45 - 63 64.0212 897 1 1 -0.45 -0.709146 -174.676 - 63 141.675 899 1 0 -1.06265 -0.210805 -175.85 - 63 85.0367 820 0 1 -15.9406 13.2041 -204.45 - 63 129.516 821 0 1 -15.85 13.3697 -204.658 - 63 26.5204 972 0 0 -15.4716 14.5537 -205.85 - 63 72.1747 973 0 0 -15.4399 14.65 -205.942 - 63 48.1669 974 0 0 -15.3852 14.85 -206.123 - 63 59.8746 895 1 0 1.9274 -0.938297 -175.85 - 63 131.948 894 1 0 2.09272 -1.05 -175.965 - 63 107.037 1017 0 0 13.1599 23.6202 -206.25 - 63 87.5902 790 0 0 -3.35325 -21.8789 -206.182 -Number of digits in this event = 11 -Event: 64 -Number of tracker hits in this event = 36 - 64 333.398 900 4 1 0.0570569 0.456787 -84.45 - 64 118.539 902 4 0 0.061219 0.466614 -85.85 - 64 119.247 900 3 1 0.158903 0.625218 -114.45 - 64 289.539 902 3 0 0.156802 0.627779 -115.85 - 64 256.267 900 2 1 0.138687 0.686581 -144.45 - 64 437.782 903 2 0 0.146194 0.691032 -145.85 - 64 179.888 901 1 1 0.290273 0.837791 -174.45 - 64 110.512 903 1 0 0.301941 0.846886 -175.85 - 64 123.57 902 0 1 0.568368 0.997876 -204.45 - 64 154.794 904 0 0 0.587335 1.01253 -205.85 - 64 169.605 900 0 1 0.223817 0.67251 -204.45 - 64 137.132 902 0 0 0.261658 0.631448 -205.85 - 64 265.457 899 3 1 -0.148208 0.584138 -114.45 - 64 2.51509 903 3 0 -0.218658 0.845753 -115.85 - 64 115.295 904 3 0 -0.220165 0.85 -115.87 - 64 30.8457 893 2 1 -1.41199 7.55765 -144.45 - 64 109.447 892 2 1 -1.45 7.5702 -144.523 - 64 120.525 939 2 0 -2.11189 7.92025 -145.85 - 64 179.731 790 1 1 -21.8659 17.9904 -174.45 - 64 9.38837 789 1 1 -22.05 17.9271 -174.811 - 64 236.414 987 1 0 -22.5993 17.5577 -175.85 - 64 34.1551 986 1 0 -22.7586 17.45 -176.151 - 64 38.2311 672 0 1 -45.5538 8.63119 -204.45 - 64 369.25 671 0 1 -45.65 8.5934 -204.575 - 64 8.99436 670 0 1 -45.85 8.49941 -204.817 - 64 138.779 942 0 0 -46.5633 8.51349 -205.85 - 64 29.612 868 0 0 -58.664 -6.37025 -206.25 - 64 123.47 867 0 0 -58.6629 -6.45 -206.164 - 64 12.6736 866 0 0 -58.5672 -6.65 -205.893 - 64 123.776 609 0 1 -58.1844 -6.96469 -204.85 - 64 122.365 903 2 1 0.76401 0.171428 -144.45 - 64 127.262 900 2 0 0.83561 0.156705 -145.85 - 64 198.22 907 1 1 1.64859 0.303795 -174.45 - 64 179.903 901 1 0 1.52738 0.359296 -175.85 - 64 117.381 892 0 1 -1.57956 1.42637 -204.45 - 64 203.779 907 0 0 -1.7611 1.57448 -205.85 -Number of digits in this event = 23 -Event: 65 -Number of tracker hits in this event = 11 - 65 113.562 898 4 1 -0.299619 0.240507 -84.45 - 65 116.977 900 4 0 -0.266008 0.233421 -85.85 - 65 468.359 901 3 1 0.432426 0.0895144 -114.45 - 65 116.545 900 3 0 0.463369 0.0816835 -115.85 - 65 102.66 905 2 1 1.07672 -0.071665 -144.45 - 65 102.977 899 2 0 1.10389 -0.0803966 -145.85 - 65 119.417 908 1 1 1.69357 -0.23876 -174.45 - 65 154.874 899 1 0 1.71832 -0.237519 -175.85 - 65 104.33 910 0 1 2.22638 -0.216408 -204.45 - 65 111.756 899 0 0 2.25028 -0.21081 -205.85 - 65 272.631 1428 8 0 -64.8355 105.858 33.8378 +Number of tracker hits in this event = 8 + 63 114.611 899 4 1 -0.119777 0.190922 -84.45 + 63 119.775 900 4 0 -0.123832 0.193184 -85.85 + 63 121.26 899 3 1 -0.214965 0.198895 -114.45 + 63 108.225 900 3 0 -0.203967 0.206796 -115.85 + 63 119.473 900 1 1 0.196835 0.770128 -174.45 + 63 104.612 903 1 0 0.200562 0.78277 -175.85 + 63 109.516 900 0 1 0.249741 1.014 -204.45 + 63 140.878 904 0 0 0.251313 1.01923 -205.85 Number of digits in this event = 4 +Event: 64 +Number of tracker hits in this event = 11 + 64 76.2486 898 4 1 -0.447245 -0.154389 -84.45 + 64 44.099 897 4 1 -0.45 -0.154769 -84.6804 + 64 117.521 899 4 0 -0.463422 -0.157072 -85.85 + 64 111.912 896 3 1 -0.788069 -0.215816 -114.45 + 64 96.9819 899 3 0 -0.80561 -0.219133 -115.85 + 64 116.44 894 2 1 -1.19066 -0.281397 -144.45 + 64 169.193 898 2 0 -1.20367 -0.278651 -145.85 + 64 116.527 892 1 1 -1.47047 -0.196681 -174.45 + 64 119.518 899 1 0 -1.48188 -0.197899 -175.85 + 64 150.608 891 0 1 -1.7218 -0.213312 -204.45 + 64 108.288 899 0 0 -1.73683 -0.217426 -205.85 +Number of digits in this event = 3 +Event: 65 +Number of tracker hits in this event = 44 + 65 108.866 900 4 1 0.0995918 0.147818 -84.45 + 65 110.922 900 4 0 0.100809 0.152895 -85.85 + 65 372.143 900 3 1 0.120437 0.239594 -114.45 + 65 169.886 900 3 0 0.124033 0.242583 -115.85 + 65 268.169 900 2 1 0.170349 0.335892 -144.45 + 65 164.025 901 2 0 0.17457 0.345538 -145.85 + 65 127.87 901 1 1 0.25189 0.553038 -174.45 + 65 230.012 902 1 0 0.246107 0.567312 -175.85 + 65 113.167 900 0 1 0.140552 0.889288 -204.45 + 65 116.833 904 0 0 0.167461 0.912896 -205.85 + 65 509.096 909 2 1 1.91338 3.5103 -144.45 + 65 80.3286 912 2 0 2.04514 2.58484 -145.85 + 65 85.0559 911 2 0 2.06955 2.45 -146.07 + 65 116.681 915 1 1 3.20187 -16.1727 -174.45 + 65 106.425 815 1 0 3.22528 -16.9424 -175.85 + 65 88.553 814 1 0 3.22445 -17.05 -176.043 + 65 72.0424 942 0 1 8.54768 -30.7348 -204.45 + 65 161.376 943 0 1 8.65 -30.8029 -204.639 + 65 119.869 743 0 0 9.00088 -31.2778 -205.85 + 65 2.16226 742 0 0 9.11095 -31.45 -206.245 + 65 9.4539 695 0 0 23.3694 -41.0453 -206.25 + 65 125.204 694 0 0 23.398 -41.05 -206.221 + 65 52.9168 1023 0 1 24.7378 -41.1086 -204.85 + 65 53.8913 1024 0 1 24.85 -41.1122 -204.741 + 65 52.7796 1025 0 1 25.05 -41.1359 -204.713 + 65 47.1751 1026 0 1 25.25 -41.1559 -204.759 + 65 84.4561 700 0 0 26.3075 -39.9422 -205.85 + 65 102.879 701 0 0 26.3874 -39.85 -205.932 + 65 10.4878 702 0 0 26.5286 -39.65 -206.21 + 65 123.216 917 2 0 2.24719 3.52437 -145.85 + 65 167.283 943 1 1 8.65571 3.6636 -174.45 + 65 131.373 920 1 0 9.09622 4.06953 -175.85 + 65 36.3605 988 0 1 17.8035 12.7799 -204.45 + 65 64.3224 989 0 1 17.85 12.8173 -204.614 + 65 69.1341 966 0 0 18.2987 13.3623 -205.85 + 65 87.6106 967 0 0 18.3675 13.45 -206.03 + 65 148.212 899 3 0 0.0958397 -0.05 -115.871 + 65 70.3609 869 2 0 0.0684324 -6.09305 -145.85 + 65 77.6831 892 1 1 -1.6412 -13.319 -174.45 + 65 64.7902 891 1 1 -1.65 -13.3754 -174.607 + 65 73.2007 831 1 0 -1.6802 -13.7917 -175.85 + 65 64.7553 830 1 0 -1.68435 -13.85 -176.025 + 65 111.366 885 0 1 -2.96342 -22.5945 -204.45 + 65 132.915 785 0 0 -2.93101 -22.9361 -205.85 +Number of digits in this event = 16 Event: 66 -Number of tracker hits in this event = 20 - 66 114.106 900 5 1 0.16121 0.133785 -54.45 - 66 99.0782 900 5 0 0.167068 0.143984 -55.85 - 66 184.955 901 4 1 0.257553 0.369808 -84.45 - 66 102.154 901 4 0 0.264282 0.372739 -85.85 - 66 130.474 901 3 1 0.390109 0.422344 -114.45 - 66 112.191 901 3 0 0.386558 0.443396 -115.85 - 66 164.101 902 2 1 0.526643 0.88757 -144.45 - 66 155.862 904 2 0 0.547338 0.944126 -145.85 - 66 130.194 905 1 1 1.12125 2.26753 -174.45 - 66 167.174 911 1 0 1.13547 2.37858 -175.85 - 66 132.696 907 0 1 1.47606 4.93394 -204.45 - 66 119.619 925 0 0 1.47069 5.17431 -205.85 - 66 7.13588 900 6 1 0.05 0.167762 -24.8388 - 66 24.9929 907 6 0 0.433476 1.59301 -25.85 - 66 61.7112 908 6 0 0.448748 1.65 -25.8904 - 66 69.1016 909 6 0 0.480177 1.85 -26.0309 - 66 47.7715 910 6 0 0.576775 2.05 -26.1232 - 66 337.157 904 0 1 0.901559 0.0628948 -204.45 - 66 108.932 899 0 0 0.74948 -0.05 -205.974 - 66 159.175 1206 6 0 154.923 61.3869 -25.8744 -Number of digits in this event = 10 +Number of tracker hits in this event = 11 + 66 152.889 899 4 1 -0.0657251 -0.166822 -84.45 + 66 114.684 899 4 0 -0.077103 -0.178351 -85.85 + 66 131.767 898 3 1 -0.329291 -0.454402 -114.45 + 66 434.199 897 3 0 -0.342638 -0.454188 -115.85 + 66 119.089 897 2 1 -0.609695 -0.439716 -144.45 + 66 177.32 898 2 0 -0.627101 -0.442146 -145.85 + 66 102.247 895 1 1 -0.959223 -0.514741 -174.45 + 66 100.035 897 1 0 -0.968851 -0.518973 -175.85 + 66 130.952 894 0 1 -1.17654 -0.627622 -204.45 + 66 212.986 897 0 0 -1.19087 -0.625039 -205.85 + 66 31.681 899 5 0 -0.0531987 -0.0610411 -56.1352 +Number of digits in this event = 8 Event: 67 -Number of tracker hits in this event = 37 - 67 121.354 899 4 1 -0.228538 0.0629022 -84.45 - 67 114.588 900 4 0 -0.241885 0.0616331 -85.85 - 67 144.536 897 3 1 -0.525838 0.0836202 -114.45 - 67 189.273 900 3 0 -0.548852 0.0830378 -115.85 - 67 332.113 895 2 1 -0.98971 0.109733 -144.45 - 67 124.796 900 2 0 -0.989547 0.111929 -145.85 - 67 171.927 895 1 1 -0.960234 0.188738 -174.45 - 67 114.786 900 1 0 -0.953107 0.194262 -175.85 - 67 119.035 896 0 1 -0.780755 0.32897 -204.45 - 67 143.111 901 0 0 -0.762781 0.344545 -205.85 - 67 99.2205 894 2 1 -1.05 0.102575 -144.517 - 67 1.75311 893 2 1 -1.25 0.0505707 -144.769 - 67 79.0573 899 2 0 -1.94863 -0.05 -145.985 - 67 11.6756 813 1 1 -17.4414 -6.39665 -174.45 - 67 138.03 812 1 1 -17.45 -6.38282 -174.466 - 67 95.0621 874 1 0 -18.0816 -5.22851 -175.85 - 67 125.693 875 1 0 -18.1718 -5.05 -176.058 - 67 44.5458 753 0 1 -29.3975 17.8534 -204.45 - 67 123.839 752 0 1 -29.45 17.9683 -204.544 - 67 33.4488 1001 0 0 -31.292 20.3653 -205.85 - 67 60.4937 1002 0 0 -31.3597 20.45 -205.891 - 67 84.513 1003 0 0 -31.5406 20.65 -205.991 - 67 90.984 1004 0 0 -31.7006 20.85 -206.091 - 67 33.4281 1005 0 0 -31.8701 21.05 -206.209 - 67 117.88 899 3 0 -0.640077 -0.05 -116.078 - 67 26.227 898 3 0 -0.745758 -0.25 -116.181 - 67 236.945 783 3 0 40.0027 -23.3176 -116.25 - 67 240.632 784 3 0 40.4706 -23.25 -116.07 - 67 11.0621 785 3 0 40.6885 -23.05 -115.889 - 67 165.026 1100 3 1 40.2311 -22.9234 -114.85 - 67 394.217 1101 3 1 40.25 -22.9556 -114.628 - 67 11.8084 1189 0 0 6.80183 58.0133 -206.091 - 67 75.6377 1190 0 0 6.80641 58.05 -206.052 - 67 9.63886 1191 0 0 6.73358 58.25 -205.869 - 67 60.879 929 0 1 6.02715 59.353 -204.85 - 67 74.541 928 0 1 5.85 59.4543 -204.744 - 67 142.074 927 0 1 5.65 59.59 -204.717 -Number of digits in this event = 17 +Number of tracker hits in this event = 15 + 67 114.327 899 5 1 -0.111705 0.187888 -54.45 + 67 118.477 900 5 0 -0.118501 0.19873 -55.85 + 67 120.849 898 4 1 -0.263736 0.392429 -84.45 + 67 485.973 901 4 0 -0.268773 0.404248 -85.85 + 67 102.177 898 3 1 -0.37075 0.609289 -114.45 + 67 116.1 902 3 0 -0.373151 0.621283 -115.85 + 67 95.7422 898 2 1 -0.417299 0.842633 -144.45 + 67 116.122 904 2 0 -0.435831 0.85053 -145.85 + 67 105.513 896 1 1 -0.826478 1.01325 -174.45 + 67 117.034 904 1 0 -0.850398 1.02037 -175.85 + 67 139.042 893 0 1 -1.35525 1.14405 -204.45 + 67 207.808 905 0 0 -1.38252 1.14526 -205.85 + 67 0.212524 1390 1 1 98.1616 -80.629 -174.849 + 67 134.373 481 1 0 99.2497 -83.7818 -175.85 + 67 236.749 1038 0 1 27.6827 -100.815 -204.45 +Number of digits in this event = 7 Event: 68 Number of tracker hits in this event = 49 - 68 117.671 907 5 1 1.46522 -0.0557696 -54.45 - 68 135.777 899 5 0 1.53338 -0.0739381 -55.85 - 68 108.638 913 4 1 2.83385 -0.48539 -84.45 - 68 127.618 897 4 0 2.90164 -0.523771 -85.85 - 68 132.815 922 3 1 4.50186 -1.02189 -114.45 - 68 117.096 895 3 0 4.66994 -0.934334 -115.85 - 68 150.966 942 2 1 8.51889 1.35819 -144.45 - 68 132.498 905 2 0 9.02083 1.20482 -145.85 - 68 16.8115 1011 1 1 22.428 -3.57606 -174.45 - 68 126.896 1012 1 1 22.45 -3.58198 -174.496 - 68 150.948 882 1 0 23.0008 -3.53559 -175.85 - 68 175.347 1081 0 1 36.2893 0.788171 -204.45 - 68 51.0202 906 0 0 36.8837 1.37446 -205.85 - 68 187.748 907 0 0 36.9606 1.45 -206.011 - 68 178.313 914 4 1 2.85401 -0.425932 -84.45 - 68 38.6765 899 4 0 3.20929 -0.0683173 -85.85 - 68 96.8659 974 3 1 15.0208 5.46666 -114.45 - 68 65.5554 973 3 1 14.85 5.30229 -114.743 - 68 221.503 926 3 0 14.3076 5.33857 -115.85 - 68 54.3876 927 3 0 14.11 5.45 -116.162 - 68 162.055 898 5 1 -0.278424 0.091433 -54.45 - 68 138.054 900 5 0 -0.282643 0.0988034 -55.85 - 68 107.615 898 4 1 -0.380941 0.229709 -84.45 - 68 115.134 900 4 0 -0.398431 0.233307 -85.85 - 68 343.572 896 3 1 -0.762882 0.34144 -114.45 - 68 117.058 901 3 0 -0.786439 0.353013 -115.85 - 68 146.836 893 2 1 -1.27358 0.596039 -144.45 - 68 107.104 902 2 0 -1.31679 0.627479 -145.85 - 68 134.461 889 1 1 -2.21997 1.2702 -174.45 - 68 96.3669 906 1 0 -2.28479 1.28134 -175.85 - 68 27.2087 882 0 1 -3.64574 1.51547 -204.45 - 68 95.8342 881 0 1 -3.65 1.51701 -204.545 - 68 115.587 901 5 1 0.369401 -1.30033 -54.45 - 68 115.575 893 5 0 0.470211 -1.37265 -55.85 - 68 161.707 911 4 1 2.27563 -2.75911 -84.45 - 68 70.7127 886 4 0 2.35907 -2.83645 -85.85 - 68 36.4944 885 4 0 2.37423 -2.85 -86.115 - 68 187.217 917 3 1 3.56799 -4.66948 -114.45 - 68 114.75 876 3 0 3.57027 -4.74494 -115.85 - 68 179.406 918 2 1 3.75374 -6.37229 -144.45 - 68 112.855 867 2 0 3.83413 -6.51478 -145.85 - 68 110.681 926 1 1 5.39238 -9.48459 -174.45 - 68 126.085 852 1 0 5.46524 -9.60348 -175.85 - 68 105.113 934 0 1 6.88042 -12.0432 -204.45 - 68 203.898 838 0 0 6.97434 -12.2855 -205.85 - 68 51.0011 917 2 1 3.65 -6.32756 -144.747 - 68 89.1806 872 2 0 2.71593 -5.60006 -145.85 - 68 68.5035 873 2 0 2.58968 -5.45 -146.058 - 68 148.7 823 0 1 -15.2807 11.1433 -204.74 -Number of digits in this event = 23 + 68 188.922 900 2 1 0.15402 0.417955 -144.45 + 68 176.009 901 2 0 0.167298 0.416655 -145.85 + 68 125.892 901 1 1 0.438718 0.423691 -174.45 + 68 287.744 901 1 0 0.430221 0.419227 -175.85 + 68 323.622 901 0 1 0.268317 0.310079 -204.45 + 68 140.393 901 0 0 0.245764 0.322331 -205.85 + 68 150.199 899 5 1 -0.0723642 0.142944 -54.45 + 68 25.8039 903 5 0 -0.45539 0.80516 -55.85 + 68 101.348 904 5 0 -0.47479 0.85 -55.9419 + 68 25.3764 878 4 1 -4.43336 -9.01561 -84.45 + 68 121.586 877 4 1 -4.45 -9.08824 -84.5298 + 68 8.15037 849 4 0 -4.61747 -10.2319 -85.85 + 68 76.6366 848 4 0 -4.61984 -10.25 -85.8703 + 68 72.6857 847 4 0 -4.6328 -10.45 -86.0852 + 68 114.881 830 3 1 -14.0275 -37.1739 -114.45 + 68 48.4624 714 3 0 -14.2169 -37.0622 -115.85 + 68 93.0891 715 3 0 -14.2413 -37.05 -115.98 + 68 75.3289 913 0 1 2.69153 0.344215 -204.45 + 68 130.092 914 0 1 2.85 0.466314 -204.657 + 68 11.0588 915 0 1 3.05 0.527177 -204.821 + 68 68.8547 906 0 0 3.78492 1.30317 -205.85 + 68 109.463 907 0 0 3.92353 1.45 -206.044 + 68 17.5972 908 0 0 4.07886 1.65 -206.225 + 68 51.4016 1186 0 0 23.929 57.2841 -206.25 + 68 79.4593 1187 0 0 23.9544 57.45 -206.166 + 68 117.325 1188 0 0 23.9742 57.65 -206.105 + 68 56.2473 1189 0 0 24.0035 57.85 -206.052 + 68 62.7398 1190 0 0 23.9871 58.05 -205.954 + 68 1.96199 1191 0 0 23.9892 58.25 -205.856 + 68 563.9 1017 0 1 23.5629 61.831 -204.85 + 68 42.3974 1018 0 1 23.65 63.1878 -204.71 + 68 8.76182 1221 0 0 23.8821 64.4169 -205.85 + 68 67.9647 1222 0 0 23.8879 64.45 -205.879 + 68 88.6856 1223 0 0 23.9505 64.65 -206.047 + 68 78.1145 1224 0 0 23.9767 64.85 -206.16 + 68 19.8284 1225 0 0 23.94 65.05 -206.215 + 68 33.9812 1320 0 0 17.7776 84.097 -206.25 + 68 133.903 1319 0 0 17.8634 84.05 -206.151 + 68 368.95 1318 0 0 18.1722 83.85 -205.959 + 68 36.217 1317 0 0 18.3096 83.65 -205.89 + 68 208.131 1292 0 0 -0.0564595 78.5516 -206.25 + 68 105.238 817 1 0 -8.09402 -16.5862 -176.25 + 68 199.248 816 1 0 -8.12504 -16.65 -176.126 + 68 263.575 859 1 1 -8.22689 -17.2264 -174.85 + 68 27.3326 1393 2 0 -17.2804 98.8215 -146.25 + 68 209.733 1394 2 0 -17.2905 98.95 -146.219 + 68 10.2885 1395 2 0 -17.2866 99.15 -146.241 + 68 109.557 900 0 0 3.15251 0.107321 -206.012 + 68 8.30805 1115 0 0 27.8901 43.2435 -206.017 +Number of digits in this event = 19 Event: 69 -Number of tracker hits in this event = 66 - 69 271.019 899 5 1 -0.171128 0.177137 -54.45 - 69 125.64 900 5 0 -0.18481 0.192451 -55.85 - 69 153.963 897 4 1 -0.485351 0.522866 -84.45 - 69 197.145 902 4 0 -0.51173 0.539242 -85.85 - 69 35.4906 895 3 1 -1.04778 0.776949 -114.45 - 69 99.5376 894 3 1 -1.05 0.776524 -114.581 - 69 100.295 903 3 0 -1.07256 0.773815 -115.85 - 69 253.634 892 2 1 -1.60219 0.71413 -144.45 - 69 115.41 903 2 0 -1.619 0.715611 -145.85 - 69 110.683 890 1 1 -1.89854 0.729133 -174.45 - 69 117.243 903 1 0 -1.91302 0.721953 -175.85 - 69 145.457 889 0 1 -2.23759 0.592688 -204.45 - 69 127.88 902 0 0 -2.25318 0.582918 -205.85 - 69 35.8955 903 4 0 -0.517992 0.65 -86.1575 - 69 237.357 902 3 1 0.644073 15.0042 -114.45 - 69 87.2918 903 3 1 0.65 15.7195 -114.84 - 69 76.7542 904 3 1 0.85 15.879 -114.808 - 69 85.4095 905 3 1 1.05 16.0365 -114.776 - 69 112.287 906 3 1 1.25 16.1772 -114.712 - 69 93.6146 907 3 1 1.45 16.4726 -114.674 - 69 68.5676 908 3 1 1.65 16.6504 -114.577 - 69 81.9287 909 3 1 1.85 16.8539 -114.523 - 69 88.477 910 3 1 2.05 17.0769 -114.483 - 69 97.5406 911 3 1 2.25 17.2819 -114.497 - 69 145.352 912 3 1 2.45 17.566 -114.498 - 69 190.47 913 3 1 2.65 17.9637 -114.602 - 69 43.6115 1001 3 0 3.4467 20.3869 -115.85 - 69 70.4954 1002 3 0 3.46922 20.45 -115.883 - 69 109.397 1003 3 0 3.58499 20.65 -115.989 - 69 74.6575 1004 3 0 3.78273 20.85 -116.152 - 69 34.1114 1005 3 0 4.00321 21.05 -116.23 - 69 110.52 1456 2 1 111.476 141.55 -144.45 - 69 237.117 1455 2 1 111.35 141.656 -144.56 - 69 31.331 1454 2 1 111.15 141.722 -144.818 - 69 139.226 1609 2 0 111.201 142.013 -145.85 - 69 23.524 1608 2 0 111.124 141.95 -146.206 - 69 215.382 893 2 1 -1.45 0.845297 -144.486 - 69 64.0908 894 2 1 -1.25 0.354304 -144.742 - 69 4.62113 894 2 0 -0.778834 -1.23581 -145.85 - 69 68.1068 893 2 0 -0.774412 -1.25 -145.86 - 69 60.7564 892 2 0 -0.702319 -1.45 -146 - 69 68.5964 891 2 0 -0.575823 -1.65 -146.038 - 69 54.729 890 2 0 -0.52581 -1.85 -146.147 - 69 131.05 779 2 0 4.2213 -24.182 -146.25 - 69 23.0536 909 2 1 1.90226 -24.619 -144.85 - 69 125.76 908 2 1 1.85 -24.6305 -144.826 - 69 14.3135 907 2 1 1.65 -24.8276 -144.485 - 69 60.1942 901 2 0 -1.54237 0.311539 -145.85 - 69 243.041 900 2 0 -1.52752 0.25 -146.01 - 69 138.671 906 1 1 1.44094 -8.83877 -174.45 - 69 42.2243 905 1 1 1.25 -8.68775 -174.822 - 69 7.1299 871 1 0 -2.43841 -5.67593 -175.85 - 69 83.7263 872 1 0 -2.47011 -5.65 -175.859 - 69 156.831 873 1 0 -2.72757 -5.45 -175.942 - 69 90.9276 874 1 0 -2.97602 -5.25 -176.02 - 69 107.371 875 1 0 -3.23988 -5.05 -176.088 - 69 28.1902 876 1 0 -3.45491 -4.85 -176.217 - 69 145.537 1040 1 0 -104.718 28.2016 -176.25 - 69 20.8583 1039 1 0 -105.101 28.05 -175.919 - 69 39.7906 369 1 1 -106.241 28.0169 -174.85 - 69 73.5014 368 1 1 -106.35 28.0137 -174.745 - 69 46.5422 367 1 1 -106.55 27.9804 -174.533 - 69 8.92507 758 2 0 -124.225 -28.4223 -146.25 - 69 77.7329 757 2 0 -124.234 -28.45 -146.236 - 69 118.801 896 2 0 65.8284 -0.735651 -146.25 - 69 56.6523 895 2 0 65.8404 -0.85 -146.191 -Number of digits in this event = 21 +Number of tracker hits in this event = 12 + 69 108.356 899 5 1 -0.0827372 0.160529 -54.45 + 69 102.663 900 5 0 -0.0868851 0.168496 -55.85 + 69 131.755 899 4 1 -0.0972575 0.312338 -84.45 + 69 114.211 901 4 0 -0.100163 0.322743 -85.85 + 69 152.133 899 3 1 -0.188182 0.563277 -114.45 + 69 106.824 902 3 0 -0.188438 0.58559 -115.85 + 69 108.603 899 2 1 -0.244359 1.07165 -144.45 + 69 179.222 905 2 0 -0.249198 1.1102 -145.85 + 69 172.298 898 1 1 -0.312905 1.86904 -174.45 + 69 115.116 909 1 0 -0.310436 1.89879 -175.85 + 69 154.036 898 0 1 -0.278882 2.52908 -204.45 + 69 111.349 912 0 0 -0.270909 2.5551 -205.85 +Number of digits in this event = 6 Event: 70 -Number of tracker hits in this event = 23 - 70 145.569 898 4 1 -0.367653 -0.110522 -84.45 - 70 117.663 899 4 0 -0.380797 -0.118519 -85.85 - 70 104.571 896 3 1 -0.653614 -0.257955 -114.45 - 70 106.502 898 3 0 -0.674993 -0.26611 -115.85 - 70 288.312 894 2 1 -1.08275 -0.426014 -144.45 - 70 122.773 898 2 0 -1.11866 -0.432704 -145.85 - 70 86.9921 891 1 1 -1.8426 -0.600088 -174.45 - 70 13.2374 890 1 1 -1.85 -0.601097 -174.767 - 70 103.9 897 1 0 -1.8763 -0.603968 -175.85 - 70 207.338 887 0 1 -2.57699 -0.705808 -204.45 - 70 113.105 896 0 0 -2.61522 -0.696926 -205.85 - 70 84.3491 895 2 1 -0.896371 -0.367867 -144.45 - 70 21.0442 893 2 1 -1.25 -0.0814657 -144.739 - 70 214.154 901 2 0 -1.48917 0.408731 -145.85 - 70 1.97399 900 2 0 -1.44781 0.25 -146.247 - 70 94.6369 516 2 0 15.4259 -76.7348 -145.896 - 70 59.073 981 2 1 16.3286 -77.4753 -144.85 - 70 186.554 982 2 1 16.45 -77.5353 -144.815 - 70 82.4086 759 2 1 -28.2295 127.228 -144.841 - 70 67.8256 1535 2 0 -28.7907 127.338 -145.85 - 70 175.253 1536 2 0 -28.8246 127.35 -145.87 - 70 58.6588 1393 0 0 116.065 98.8015 -206.216 - 70 40.63 1327 0 0 93.8051 85.6352 -206.25 -Number of digits in this event = 8 +Number of tracker hits in this event = 40 + 70 106.887 898 4 1 -0.385157 -0.111362 -84.45 + 70 109.553 899 4 0 -0.401623 -0.110598 -85.85 + 70 110.553 896 3 1 -0.730448 -0.0887713 -114.45 + 70 145.306 899 3 0 -0.74481 -0.0833343 -115.85 + 70 108.557 893 1 1 -1.37055 0.245323 -174.45 + 70 110.775 900 1 0 -1.37231 0.242871 -175.85 + 70 130.364 893 0 1 -1.41626 0.163957 -204.45 + 70 123.276 900 0 0 -1.42626 0.176029 -205.85 + 70 308.725 1005 3 0 14.559 21.088 -116.25 + 70 46.054 1006 3 0 14.3188 21.25 -115.959 + 70 333.357 971 3 1 14.4393 22.1553 -114.85 + 70 7.56113 972 3 1 14.45 22.1781 -114.826 + 70 232.631 928 4 1 5.73506 -0.140501 -84.45 + 70 135.691 896 4 0 5.90023 -0.65561 -85.85 + 70 315.099 957 3 1 11.4689 -14.6563 -114.45 + 70 25.617 831 3 0 12.0553 -13.6886 -115.85 + 70 113.22 832 3 0 12.0786 -13.65 -115.906 + 70 16.9274 833 3 0 12.1845 -13.45 -116.197 + 70 31.8697 1056 2 1 31.3769 8.22579 -144.45 + 70 111.479 1057 2 1 31.45 8.28749 -144.479 + 70 185.924 1058 2 1 31.65 8.44995 -144.562 + 70 110.532 1059 2 1 31.85 8.62063 -144.657 + 70 74.7125 1060 2 1 32.05 8.79113 -144.762 + 70 0.896834 1061 2 1 32.25 9.0161 -144.849 + 70 23.8124 962 2 0 35.0388 12.5895 -145.85 + 70 106.627 963 2 0 35.086 12.65 -145.867 + 70 97.2985 964 2 0 35.2594 12.85 -145.92 + 70 70.3123 965 2 0 35.4551 13.05 -146.004 + 70 73.2715 966 2 0 35.6689 13.25 -146.069 + 70 92.6786 967 2 0 35.8641 13.45 -146.141 + 70 4.55331 968 2 0 36.0709 13.65 -146.244 + 70 19.1511 1262 2 0 86.7951 72.457 -146.25 + 70 160.596 1261 2 0 86.7662 72.45 -146.22 + 70 13.0104 1323 2 1 84.6877 72.0007 -144.85 + 70 85.2604 1322 2 1 84.65 71.9927 -144.828 + 70 441.368 1321 2 1 84.45 71.99 -144.605 + 70 39.4069 1111 3 0 92.1516 42.366 -116.25 + 70 119.898 1110 3 0 92.1819 42.25 -116.141 + 70 105.301 1363 3 1 92.7731 41.9967 -114.85 + 70 27.5633 961 2 0 35.1525 12.3664 -145.908 +Number of digits in this event = 13 Event: 71 -Number of tracker hits in this event = 1 - 71 10.7174 781 1 1 -23.7308 5.244 -174.84 -Number of digits in this event = 2 +Number of tracker hits in this event = 15 + 71 133.884 900 3 1 0.0637167 -1.29691 -114.45 + 71 103.554 896 2 1 -0.753284 -1.15599 -144.45 + 71 179.661 894 2 0 -0.770825 -1.1953 -145.85 + 71 107.551 893 1 1 -1.33482 -2.0207 -174.45 + 71 106.618 889 1 0 -1.32844 -2.08059 -175.85 + 71 138.794 895 0 1 -1.00617 -3.12427 -204.45 + 71 127.74 884 0 0 -0.941509 -3.19451 -205.85 + 71 38.588 1005 3 0 43.1201 21.0657 -116.25 + 71 119.743 1004 3 0 43.1971 21.05 -116.225 + 71 94.6166 1003 3 0 43.2034 20.85 -116.23 + 71 13.6457 1002 3 0 43.3325 20.65 -116.23 + 71 81.1677 851 3 0 107.774 -9.78918 -116.25 + 71 93.1226 1022 3 0 50.8987 24.456 -116.25 + 71 71.7966 786 3 0 24.521 -22.8074 -116.25 + 71 241.126 483 1 0 -100.099 -83.437 -176.041 +Number of digits in this event = 6 Event: 72 -Number of tracker hits in this event = 12 - 72 119.212 900 5 1 0.102153 -0.130998 -54.45 - 72 194.381 899 5 0 0.110877 -0.140032 -55.85 - 72 134.513 901 4 1 0.317696 -0.330505 -84.45 - 72 112.025 898 4 0 0.321373 -0.329364 -85.85 - 72 134.345 901 3 1 0.386078 -0.295012 -114.45 - 72 128.934 898 3 0 0.388334 -0.291685 -115.85 - 72 130.567 901 2 1 0.407477 -0.223505 -144.45 - 72 114.805 899 2 0 0.405219 -0.219257 -145.85 - 72 119.459 901 1 1 0.336224 -0.184389 -174.45 - 72 149.473 899 1 0 0.333912 -0.189184 -175.85 - 72 94.9545 901 0 1 0.321727 -0.281396 -204.45 - 72 115.994 898 0 0 0.324257 -0.28507 -205.85 -Number of digits in this event = 7 -Event: 73 -Number of tracker hits in this event = 8 - 73 168.066 898 3 1 -0.287059 0.264275 -114.45 - 73 140.194 901 3 0 -0.311239 0.265189 -115.85 - 73 111.856 896 2 1 -0.809647 0.292156 -144.45 - 73 264.932 901 2 0 -0.828729 0.295696 -145.85 - 73 130.068 894 1 1 -1.20737 0.39725 -174.45 - 73 175.918 901 1 0 -1.23709 0.432027 -175.85 - 73 129.103 890 0 1 -1.99135 1.2317 -204.45 - 73 97.472 906 0 0 -2.03244 1.3096 -205.85 -Number of digits in this event = 7 -Event: 74 -Number of tracker hits in this event = 30 - 74 114.207 899 5 1 -0.092226 -0.111698 -54.45 - 74 136.489 899 5 0 -0.104741 -0.127156 -55.85 - 74 157.922 898 4 1 -0.35972 -0.404718 -84.45 - 74 107.711 898 4 0 -0.378756 -0.406855 -85.85 - 74 111.03 896 3 1 -0.798588 -0.429023 -114.45 - 74 116.293 898 3 0 -0.824289 -0.439227 -115.85 - 74 116.803 893 2 1 -1.36573 -0.630342 -144.45 - 74 105.465 897 2 0 -1.39512 -0.639936 -145.85 - 74 93.255 890 1 1 -1.95236 -0.811665 -174.45 - 74 113.278 896 1 0 -1.99362 -0.821369 -175.85 - 74 177.053 886 0 1 -2.82902 -0.998668 -204.45 - 74 118.468 895 0 0 -2.88113 -1.00237 -205.85 - 74 90.6797 898 5 1 -0.25 -0.112371 -54.461 - 74 70.1489 897 5 1 -0.45 -0.128482 -54.5979 - 74 80.31 896 5 1 -0.65 -0.192184 -54.6737 - 74 115.019 895 5 1 -0.85 -0.273713 -54.7409 - 74 30.018 894 5 1 -1.05 -0.35496 -54.8206 - 74 698.592 904 5 0 -4.46527 0.874313 -55.85 - 74 546.984 905 5 0 -4.93417 1.05 -55.9915 - 74 115.419 643 4 1 -51.4086 -15.5923 -84.45 - 74 12.3321 644 4 1 -51.25 -15.6122 -84.8044 - 74 145.591 821 4 0 -50.9757 -15.7119 -85.85 - 74 129.415 1216 4 0 -70.736 63.3805 -86.25 - 74 195.632 674 5 1 -45.0787 6.39613 -54.4601 - 74 95.1054 948 5 0 -42.2405 9.67196 -55.85 - 74 87.3169 949 5 0 -42.1256 9.85 -55.9741 - 74 243.75 950 5 0 -42.0944 10.05 -56.0109 - 74 26.6721 353 3 0 -71.7577 -109.366 -115.89 - 74 498.979 542 3 1 -71.5406 -111.047 -114.85 - 74 307.28 543 3 1 -71.45 -111.271 -114.713 -Number of digits in this event = 14 -Event: 75 -Number of tracker hits in this event = 18 - 75 182.935 900 4 1 0.114311 -0.516008 -84.45 - 75 110.646 897 4 0 0.13269 -0.524085 -85.85 - 75 140.296 902 3 1 0.507472 -0.63074 -114.45 - 75 109.206 897 3 0 0.514322 -0.635378 -115.85 - 75 126.834 903 2 1 0.65177 -0.721712 -144.45 - 75 177.827 896 2 0 0.651463 -0.727556 -145.85 - 75 193.397 902 1 1 0.619779 -0.81483 -174.45 - 75 151.685 896 1 0 0.618426 -0.828865 -175.85 - 75 271.257 902 0 1 0.557476 -1.0903 -204.45 - 75 171.634 894 0 0 0.565289 -1.09604 -205.85 - 75 65.4372 892 3 0 0.464875 -1.56234 -115.85 - 75 86.7333 891 3 0 0.417183 -1.65 -115.993 - 75 119.434 1306 3 1 81.3832 -48.7978 -114.66 - 75 14.7132 272 1 0 -20.9652 -125.579 -176.25 - 75 41.4268 591 1 0 -66.8236 -61.663 -176.25 - 75 122.048 875 13 0 -64.8408 -4.85579 183.75 - 75 58.1478 876 13 0 -64.822 -4.85 183.754 - 75 101.912 442 6 1 -91.7323 -24.5659 -24.6308 -Number of digits in this event = 11 -Event: 76 -Number of tracker hits in this event = 10 - 76 134.613 899 4 1 -0.0539003 0.175102 -84.45 - 76 109.861 900 4 0 -0.0622989 0.184961 -85.85 - 76 154.716 899 3 1 -0.233075 0.3441 -114.45 - 76 117.847 901 3 0 -0.24709 0.35997 -115.85 - 76 199.569 897 2 1 -0.555961 0.670592 -144.45 - 76 112.367 903 2 0 -0.576224 0.684369 -145.85 - 76 118.324 895 1 1 -0.991662 0.952686 -174.45 - 76 319.418 904 1 0 -1.01076 0.96937 -175.85 - 76 162.449 893 0 1 -1.42259 1.27147 -204.45 - 76 250.854 906 0 0 -1.43818 1.28444 -205.85 -Number of digits in this event = 7 -Event: 77 -Number of tracker hits in this event = 25 - 77 8.90815 900 5 0 0.05 0.0789067 -56.2197 - 77 130.785 901 4 1 0.325434 0.14773 -84.45 - 77 168.759 900 4 0 0.339962 0.153371 -85.85 - 77 128.496 902 3 1 0.617817 0.281098 -114.45 - 77 155.969 901 3 0 0.638074 0.292485 -115.85 - 77 125.374 905 2 1 1.05305 0.546691 -144.45 - 77 133.205 902 2 0 1.07657 0.553316 -145.85 - 77 111.136 907 1 1 1.55357 0.668517 -174.45 - 77 111.422 903 1 0 1.57467 0.666343 -175.85 - 77 102.801 909 0 1 1.97152 0.644878 -204.45 - 77 108.364 902 0 0 1.99445 0.643571 -205.85 - 77 88.0118 538 2 0 30.3213 -72.2798 -146.25 - 77 86.7349 539 2 0 30.23 -72.25 -146.017 - 77 262.967 540 2 0 30.2215 -72.05 -145.986 - 77 112.79 1712 6 0 -47.0408 162.636 -26.2418 - 77 180.116 1163 6 0 -125.743 52.6841 -26.25 - 77 95.2974 1335 3 0 -112.213 87.0865 -116.224 - 77 76.0836 1336 3 0 -112.275 87.25 -116.092 - 77 104.98 336 3 1 -112.824 87.9424 -114.85 - 77 114.676 335 3 1 -112.95 87.7456 -114.726 - 77 49.1479 334 3 1 -113.15 87.5572 -114.796 - 77 336.35 1328 3 0 -113.559 85.8227 -115.85 - 77 231.271 1327 3 0 -114.013 85.65 -116.09 - 77 113.114 649 2 0 95.0146 -50.1407 -146.093 - 77 329.853 1370 2 1 94.2829 -49.7977 -144.85 -Number of digits in this event = 13 -Event: 78 -Number of tracker hits in this event = 15 - 78 93.4944 900 5 1 0.0624577 0.091028 -54.45 - 78 146.46 900 5 0 0.0660557 0.0904259 -55.85 - 78 125.907 900 4 1 0.153527 0.061299 -84.45 - 78 197.705 900 4 0 0.154193 0.0610775 -85.85 - 78 459.096 900 2 1 0.119225 -0.0756883 -144.45 - 78 146.548 899 2 0 0.110707 -0.0847785 -145.85 - 78 293.487 899 1 1 -0.0884075 -0.253749 -174.45 - 78 127.755 898 1 0 -0.0878586 -0.257095 -175.85 - 78 135.768 899 0 1 -0.0937192 -0.330649 -204.45 - 78 163.669 898 0 0 -0.0870274 -0.331509 -205.85 - 78 59.5153 898 1 1 -0.25 -0.216487 -174.776 - 78 110.444 900 1 0 -0.474234 0.147108 -175.85 - 78 79.7843 901 1 0 -0.600721 0.25 -176.083 - 78 0.510742 1106 1 0 58.9876 41.4495 -176.25 - 78 202.923 1107 1 0 58.9886 41.45 -176.25 -Number of digits in this event = 11 -Event: 79 -Number of tracker hits in this event = 17 - 79 176.289 899 5 1 -0.143669 -0.091321 -54.45 - 79 178.205 899 5 0 -0.170365 -0.109025 -55.85 - 79 112.868 895 4 1 -0.945174 -0.616745 -84.45 - 79 145.972 896 4 0 -0.994349 -0.653923 -85.85 - 79 127.663 891 3 1 -1.82751 -1.39605 -114.45 - 79 19.5141 892 3 0 -1.67642 -1.63835 -115.85 - 79 103.684 891 3 0 -1.66955 -1.65 -115.917 - 79 414.883 903 2 1 0.7617 -5.9079 -144.45 - 79 2.71125 904 2 1 0.85 -6.00518 -144.837 - 79 137.499 868 2 0 1.05283 -6.26436 -145.85 - 79 128.733 933 1 1 6.80048 -14.0665 -174.45 - 79 20.75 827 1 0 6.96015 -14.6201 -175.85 - 79 141.107 826 1 0 6.96907 -14.65 -175.925 - 79 132.772 943 0 1 8.67398 -25.9397 -204.45 - 79 112.67 765 0 0 8.69189 -26.8539 -205.85 - 79 51.9071 764 0 0 8.69742 -27.05 -206.143 - 79 33.2437 612 0 1 -57.4908 40.0525 -204.532 -Number of digits in this event = 12 -Event: 80 -Number of tracker hits in this event = 9 - 80 116.832 900 5 1 0.0723708 -0.134478 -54.45 - 80 337.63 899 5 0 0.0703029 -0.141631 -55.85 - 80 134.745 897 3 0 -0.05 -0.51707 -115.873 - 80 146.785 897 2 1 -0.513576 -0.579568 -144.45 - 80 126.215 897 2 0 -0.530992 -0.591446 -145.85 - 80 128.25 895 1 1 -0.896585 -0.801714 -174.45 - 80 114.058 896 1 0 -0.907657 -0.809442 -175.85 - 80 117.935 894 0 1 -1.1666 -0.953478 -204.45 - 80 119.43 895 0 0 -1.18349 -0.958698 -205.85 -Number of digits in this event = 6 -Event: 81 -Number of tracker hits in this event = 13 - 81 143.437 898 3 1 -0.355407 0.748212 -114.45 - 81 108.007 903 3 0 -0.370554 0.777746 -115.85 - 81 139.699 896 2 1 -0.667813 1.39263 -144.45 - 81 104.738 906 2 0 -0.677918 1.41969 -145.85 - 81 287.247 895 1 1 -0.895624 2.00475 -174.45 - 81 135.935 909 1 0 -0.907702 2.03174 -175.85 - 81 125.86 894 0 1 -1.18852 2.61122 -204.45 - 81 127.329 912 0 0 -1.20108 2.63746 -205.85 - 81 138.349 898 2 1 -0.39378 0.689282 -144.45 - 81 99.7795 897 2 1 -0.45 0.575538 -144.488 - 81 22.4178 1117 3 0 -148.246 43.4692 -116.098 - 81 209.999 730 2 0 -115.12 -33.9672 -146.118 - 81 235.677 633 1 1 -53.2639 -102.493 -174.676 -Number of digits in this event = 10 -Event: 82 -Number of tracker hits in this event = 15 - 82 104.836 900 3 1 0.138441 -0.275082 -114.45 - 82 97.2309 898 3 0 0.144358 -0.280632 -115.85 - 82 131.289 901 2 1 0.26624 -0.417903 -144.45 - 82 127.244 898 2 0 0.264394 -0.416493 -145.85 - 82 117.994 900 1 1 0.222316 -0.378151 -174.45 - 82 190.933 898 1 0 0.222244 -0.385485 -175.85 - 82 243.282 901 0 1 0.263962 -0.56893 -204.45 - 82 117.578 897 0 0 0.266857 -0.580348 -205.85 - 82 3.07473 1075 1 0 29.9189 35.2427 -176.25 - 82 75.2625 1076 1 0 29.9247 35.25 -176.245 - 82 93.7974 1077 1 0 30.0918 35.45 -176.137 - 82 126.771 1078 1 0 30.1957 35.65 -176.013 - 82 348.61 1079 1 0 30.1792 35.85 -175.955 - 82 39.7873 1265 11 1 73.0998 25.918 125.394 - 82 161.837 1264 11 1 73.05 25.9334 125.403 -Number of digits in this event = 8 -Event: 83 -Number of tracker hits in this event = 14 - 83 127.345 900 4 1 0.184253 -0.134856 -84.45 - 83 184.895 899 4 0 0.189851 -0.132564 -85.85 - 83 106.692 901 3 1 0.316827 -0.100187 -114.45 - 83 105.067 899 3 0 0.28906 -0.0886031 -115.85 - 83 79.3453 899 2 1 -0.243008 0.182923 -144.45 - 83 22.3198 898 2 1 -0.25 0.186292 -144.766 - 83 114.971 900 2 0 -0.274171 0.197686 -145.85 - 83 136.357 895 1 1 -0.918611 0.504771 -174.45 - 83 22.6488 902 1 0 -0.999646 0.453702 -175.85 - 83 158.072 901 1 0 -1.00553 0.45 -175.952 - 83 126.26 886 0 1 -2.67438 -0.60603 -204.45 - 83 136.151 896 0 0 -2.76133 -0.655627 -205.85 - 83 3.78745 900 1 1 0.151106 -0.556421 -174.84 - 83 222.295 900 1 0 0.809729 0.25 -175.968 -Number of digits in this event = 8 -Event: 84 -Number of tracker hits in this event = 14 - 84 128.335 898 5 1 -0.351901 0.122461 -54.45 - 84 135.6 900 5 0 -0.384268 0.118446 -55.85 - 84 114.493 900 4 0 -1.06294 0.0512547 -85.85 - 84 110.932 890 3 1 -1.96479 0.214413 -114.45 - 84 122.82 900 3 0 -2.02365 0.229029 -115.85 - 84 118.917 884 2 1 -3.20318 0.496456 -144.45 - 84 108.352 902 2 0 -3.28544 0.50454 -145.85 - 84 126.974 875 1 1 -5.0223 0.667382 -174.45 - 84 135.488 903 1 0 -5.11651 0.660142 -175.85 - 84 121.601 864 0 1 -7.0676 0.485892 -204.45 - 84 121.134 902 0 0 -7.18054 0.490662 -205.85 - 84 124.908 599 4 0 -71.0651 -60.1098 -86.25 - 84 120.145 566 4 0 -10.9527 -66.7516 -86.25 - 84 46.2369 650 1 1 -49.9666 -16.4842 -174.536 -Number of digits in this event = 10 -Event: 85 -Number of tracker hits in this event = 27 - 85 184.828 901 4 1 0.266357 0.157727 -84.45 - 85 456.929 900 4 0 0.283648 0.155022 -85.85 - 85 116.474 902 3 1 0.633255 0.117501 -114.45 - 85 113.635 900 3 0 0.644621 0.105456 -115.85 - 85 125.236 903 2 1 0.831073 -0.133911 -144.45 - 85 130.662 899 2 0 0.842142 -0.147922 -145.85 - 85 184.147 905 1 1 1.09116 -0.422602 -174.45 - 85 222.873 898 1 0 1.10877 -0.43721 -175.85 - 85 117.137 907 0 1 1.49173 -0.728862 -204.45 - 85 104.753 896 0 0 1.50412 -0.729 -205.85 - 85 173.211 904 1 1 1.02016 -0.393726 -174.45 - 85 25.4659 899 1 0 1.05853 -0.25 -176.174 - 85 95.6724 909 0 1 1.91495 2.09051 -204.45 - 85 107.453 910 0 0 1.70214 2.06815 -205.85 - 85 49.3634 897 1 0 1.11682 -0.613516 -175.85 - 85 456.111 896 1 0 1.11914 -0.65 -175.994 - 85 130.611 912 0 1 2.61357 -10.6591 -204.45 - 85 46.419 843 0 0 2.5081 -11.4016 -205.85 - 85 185.117 842 0 0 2.51276 -11.45 -205.881 - 85 50.6184 914 0 1 3.00451 -13.4188 -204.85 - 85 82.6722 915 0 1 3.05 -13.5347 -204.776 - 85 90.0178 916 0 1 3.25 -13.5512 -204.767 - 85 38.9653 917 0 1 3.45 -13.6217 -204.759 - 85 29.8013 840 0 0 4.28857 -11.9159 -205.85 - 85 127.798 841 0 0 4.32341 -11.85 -205.888 - 85 101.007 1004 0 0 38.3885 20.9393 -206.25 - 85 201.122 1005 0 0 38.3456 21.05 -206.237 -Number of digits in this event = 13 -Event: 86 -Number of tracker hits in this event = 12 - 86 165.26 899 4 1 -0.13919 0.152306 -84.45 - 86 170.153 900 4 0 -0.143304 0.161767 -85.85 - 86 101.506 899 3 1 -0.207828 0.344947 -114.45 - 86 114.534 901 3 0 -0.207096 0.361814 -115.85 - 86 415.732 898 2 1 -0.25209 0.625896 -144.45 - 86 112.743 902 2 0 -0.244942 0.639821 -145.85 - 86 110.784 899 1 1 -0.0731068 0.924733 -174.45 - 86 142.126 904 1 0 -0.0746012 0.956107 -175.85 - 86 120.665 899 0 1 -0.135012 1.59588 -204.45 - 86 145.255 907 0 0 -0.141085 1.62482 -205.85 - 86 296.954 899 2 1 -0.25 1.00087 -144.719 - 86 274.373 1333 2 1 86.7961 -173.782 -144.85 -Number of digits in this event = 9 -Event: 87 -Number of tracker hits in this event = 15 - 87 115.574 899 5 1 -0.108759 0.0511703 -54.45 - 87 125.329 900 5 0 -0.106338 0.0540436 -55.85 - 87 101.644 899 4 1 -0.0655848 0.106919 -84.45 - 87 113.134 900 4 0 -0.0650555 0.1035 -85.85 - 87 123.819 899 3 1 -0.0621172 0.0711378 -114.45 - 87 121.321 900 3 0 -0.0609039 0.0705181 -115.85 - 87 145.12 899 2 1 -0.0554337 0.0924851 -144.45 - 87 26.9022 900 2 1 0.05 0.0509692 -144.76 - 87 161.259 902 2 0 0.714388 0.464022 -145.85 - 87 89.7608 903 2 0 1.0331 0.65 -145.971 - 87 37.7797 904 2 0 1.24384 0.85 -145.933 - 87 196.519 906 2 1 1.40272 0.692338 -144.85 - 87 369.447 907 2 1 1.45 0.729342 -144.596 - 87 7.50425 480 3 0 163.115 -83.9427 -116.25 - 87 219.019 963 2 0 -48.6299 12.7654 -146.25 -Number of digits in this event = 10 -Event: 88 -Number of tracker hits in this event = 21 - 88 125.162 900 5 1 0.213387 0.0762545 -54.45 - 88 335.947 900 5 0 0.223293 0.0860385 -55.85 - 88 27.1199 902 4 1 0.450153 0.363827 -84.45 - 88 120.008 901 4 1 0.45 0.363494 -84.5247 - 88 134.616 901 4 0 0.449181 0.35633 -85.85 - 88 108.607 902 3 1 0.470976 0.176018 -114.45 - 88 152.228 900 3 0 0.468083 0.151617 -115.85 - 88 168.38 902 2 1 0.474872 -0.388491 -144.45 - 88 267.303 898 2 0 0.470739 -0.429724 -145.85 - 88 135.176 901 1 1 0.345276 -1.23147 -174.45 - 88 121.807 893 1 0 0.347147 -1.267 -175.85 - 88 101.447 901 0 1 0.397853 -1.98831 -204.45 - 88 197.983 890 0 0 0.39219 -2.02342 -205.85 - 88 55.8535 901 2 1 0.45 -0.548728 -144.698 - 88 70.5631 895 2 0 0.12872 -1.02308 -145.85 - 88 176.682 894 2 0 0.11166 -1.05 -145.913 - 88 1.58917 899 2 0 -18.4533 -0.247182 -146.25 - 88 305.888 808 2 1 -18.3661 -0.830081 -144.85 - 88 269.092 809 2 1 -18.25 -1.33628 -144.657 - 88 118.238 1501 3 0 -79.705 120.424 -116.066 - 88 107.552 1502 3 0 -79.728 120.55 -116.103 -Number of digits in this event = 15 -Event: 89 -Number of tracker hits in this event = 7 - 89 299.654 899 5 1 -0.0996467 -0.139695 -54.45 - 89 120.803 899 5 0 -0.0994764 -0.143222 -55.85 - 89 142.991 899 4 1 -0.0834932 -0.22528 -84.45 - 89 99.3423 899 4 0 -0.078328 -0.226188 -85.85 - 89 115.794 901 0 1 0.289511 0.464377 -204.45 - 89 174.324 902 0 0 0.315463 0.468874 -205.85 - 89 148.332 948 0 1 9.73592 -10.571 -204.799 -Number of digits in this event = 6 -Event: 90 -Number of tracker hits in this event = 11 - 90 119.521 898 5 1 -0.312122 0.110793 -54.45 - 90 112.331 900 5 0 -0.334873 0.103181 -55.85 - 90 198.553 892 3 1 -1.4873 -0.0777348 -114.45 - 90 131.831 899 3 0 -1.51951 -0.0810812 -115.85 - 90 104.763 889 2 1 -2.16952 -0.193682 -144.45 - 90 133.844 899 2 0 -2.19577 -0.193217 -145.85 - 90 168.375 886 1 1 -2.73268 -0.211589 -174.45 - 90 119.74 899 1 0 -2.75801 -0.21136 -175.85 - 90 116.006 883 0 1 -3.26655 -0.184553 -204.45 - 90 124.665 899 0 0 -3.28081 -0.168632 -205.85 - 90 88.6851 919 0 0 8.35711 3.93905 -206.25 -Number of digits in this event = 8 -Event: 91 -Number of tracker hits in this event = 27 - 91 160.211 900 3 1 0.123305 -0.107594 -114.45 - 91 99.1161 899 3 0 0.118968 -0.117146 -115.85 - 91 109.3 899 1 1 -0.243801 -0.355768 -174.45 - 91 98.3871 898 1 0 -0.253226 -0.368663 -175.85 - 91 177.825 898 0 1 -0.43476 -0.606452 -204.45 - 91 144.355 897 0 0 -0.441938 -0.623596 -205.85 - 91 7.70446 899 3 1 -0.05 -0.0871202 -114.827 - 91 140.271 901 3 0 -1.83698 0.327793 -115.85 - 91 78.4479 902 3 0 -2.16724 0.45 -115.928 - 91 239.399 879 3 1 -4.13492 1.24478 -114.85 - 91 4.38009 887 6 0 149.293 -2.64737 -26.25 - 91 126.678 886 6 0 149.288 -2.65 -26.2295 - 91 1.23202 1636 6 1 147.354 -3.03304 -24.85 - 91 74.746 1635 6 1 147.35 -3.03359 -24.8477 - 91 55.1546 1634 6 1 147.15 -3.04954 -24.7294 - 91 60.4953 1633 6 1 146.95 -3.09447 -24.6678 - 91 74.4311 1632 6 1 146.75 -3.10264 -24.7049 - 91 14.1019 882 6 0 145.993 -3.62627 -25.85 - 91 122.578 881 6 0 145.963 -3.65 -25.8989 - 91 112.34 465 6 0 32.1339 -86.9572 -26.25 - 91 83.4686 464 6 0 31.8973 -87.05 -26.0341 - 91 414.777 1058 6 1 31.6747 -87.5013 -24.85 - 91 82.8709 1057 6 1 31.65 -87.5335 -24.6954 - 91 185.118 664 2 0 -71.6503 -47.2207 -146.25 - 91 143.637 663 2 0 -71.698 -47.25 -146.216 - 91 60.5541 662 2 0 -71.8627 -47.45 -146.205 - 91 197.462 665 2 0 -132.266 -47.05 -145.943 -Number of digits in this event = 12 -Event: 92 -Number of tracker hits in this event = 45 - 92 114.289 902 4 1 0.502363 0.0678597 -84.45 - 92 132.765 900 4 0 0.528674 0.066771 -85.85 - 92 123.518 905 3 1 1.10383 0.05 -114.553 - 92 172.2 900 3 0 1.08251 0.0665937 -115.85 - 92 321.411 906 2 1 1.33093 0.957836 -144.45 - 92 112.442 904 2 0 1.75646 1.00774 -145.85 - 92 121.428 951 1 1 10.4025 0.0937915 -174.45 - 92 83.3961 900 1 0 10.4215 0.225202 -175.85 - 92 46.7326 901 1 0 10.4295 0.25 -176.114 - 92 286.667 955 0 1 11.202 2.38052 -204.45 - 92 43.0698 956 0 1 11.25 2.35918 -204.685 - 92 55.6193 911 0 0 11.4917 2.2664 -205.85 - 92 48.6889 910 0 0 11.5362 2.25 -206.061 - 92 176.181 900 2 0 1.30191 0.235762 -145.85 - 92 37.9746 906 1 1 1.4435 0.953358 -174.45 - 92 168.408 907 1 1 1.45 0.957445 -174.566 - 92 102.948 904 1 0 1.52664 0.999107 -175.85 - 92 117.677 914 0 1 3.01486 1.88761 -204.45 - 92 107.999 909 0 0 3.03311 1.90745 -205.85 - 92 106.801 916 0 1 3.39695 -0.550429 -204.45 - 92 1.77815 917 0 1 3.45 -0.548269 -204.837 - 92 162.532 897 0 0 3.58487 -0.545663 -205.85 - 92 77.1515 911 1 1 2.26547 -0.05 -174.618 - 92 22.3126 898 1 0 2.56146 -0.427302 -175.85 - 92 89.7334 897 1 0 2.58044 -0.45 -175.925 - 92 73.5884 952 1 0 20.3452 10.5162 -176.25 - 92 84.9123 953 1 0 20.4056 10.65 -176.07 - 92 7.19207 954 1 0 20.4569 10.85 -175.884 - 92 378.224 1002 1 1 20.5887 11.7698 -174.85 - 92 141.874 967 1 0 20.474 13.4589 -175.85 - 92 196.868 968 1 0 20.4621 13.65 -176.148 - 92 3.99437 1014 0 1 22.8527 33.4359 -204.45 - 92 147.53 1013 0 1 22.85 33.43 -204.47 - 92 174.217 1063 0 0 22.5661 32.7981 -205.85 - 92 3.36892 1062 0 0 22.4331 32.65 -206.236 - 92 57.9777 905 2 1 1.25 0.188614 -144.633 - 92 198.117 872 1 1 -5.61558 -2.62526 -174.45 - 92 12.8399 886 1 0 -5.71596 -2.84389 -175.85 - 92 125.344 885 1 0 -5.71886 -2.85 -175.893 - 92 10.2554 862 0 1 -7.64761 -6.79245 -204.45 - 92 138.715 861 0 1 -7.65 -6.79337 -204.473 - 92 115.058 865 0 0 -7.79127 -6.88742 -205.85 - 92 136.708 913 0 1 2.79994 0.0650043 -204.45 - 92 145.352 900 0 0 2.81745 0.0889011 -205.85 - 92 28.923 1049 0 0 24.6476 30.05 -206.054 -Number of digits in this event = 20 -Event: 93 -Number of tracker hits in this event = 11 - 93 207.034 900 5 1 0.0633667 -0.112127 -54.45 - 93 121.668 899 5 0 0.0607951 -0.11461 -55.85 - 93 114.411 902 0 1 0.45788 0.173918 -204.45 - 93 148.314 900 0 0 0.456689 0.180637 -205.85 - 93 59.742 631 0 1 -53.7381 -108.645 -204.655 - 93 310.684 632 0 1 -53.65 -108.8 -204.629 - 93 164.846 351 0 0 -56.5498 -109.819 -205.85 - 93 10.9554 350 0 0 -56.7935 -109.95 -205.854 - 93 69.333 605 0 1 -58.91 -110.474 -204.85 - 93 249.636 604 0 1 -59.05 -110.601 -204.806 - 93 24.0756 674 2 0 -80.8889 -45.1153 -146.136 -Number of digits in this event = 8 -Event: 94 -Number of tracker hits in this event = 10 - 94 111.63 901 3 1 0.265995 0.164267 -114.45 - 94 195.602 900 3 0 0.262106 0.180741 -115.85 - 94 114.409 900 2 1 0.179809 0.525662 -144.45 - 94 102.766 902 2 0 0.175541 0.536842 -145.85 - 94 116.246 900 1 1 0.0585062 0.776636 -174.45 - 94 167.908 899 0 1 -0.153002 0.809311 -204.45 - 94 119.794 903 0 0 -0.164731 0.817835 -205.85 - 94 81.0582 1172 1 1 54.6239 36.7986 -174.563 - 94 234.544 139 0 1 -152.285 40.3739 -204.45 - 94 49.9212 140 0 1 -152.15 40.5512 -204.615 -Number of digits in this event = 5 -Event: 95 -Number of tracker hits in this event = 16 - 95 115.938 900 5 1 0.0973071 -0.130411 -54.45 - 95 112.485 899 5 0 0.111633 -0.147247 -55.85 - 95 122.387 901 4 1 0.386806 -0.505204 -84.45 - 95 98.7334 897 4 0 0.397971 -0.522132 -85.85 - 95 122.752 903 3 1 0.698081 -0.750766 -114.45 - 95 97.1885 896 3 0 0.707294 -0.762877 -115.85 - 95 112.328 904 2 1 0.889848 -1.01149 -144.45 - 95 110.758 895 2 0 0.901888 -1.03804 -145.85 - 95 323.762 905 1 1 1.13048 -1.59681 -174.45 - 95 123.779 892 1 0 1.1416 -1.61765 -175.85 - 95 122.246 906 0 1 1.38014 -2.03674 -204.45 - 95 73.3757 890 0 0 1.40834 -2.04813 -205.85 - 95 54.5752 889 0 0 1.41289 -2.05 -206.074 - 95 12.3075 366 1 1 -106.923 -17.9893 -174.68 - 95 157.531 365 1 1 -106.95 -17.9848 -174.69 - 95 48.1376 1004 3 1 21.0333 49.7382 -114.623 -Number of digits in this event = 7 -Event: 96 -Number of tracker hits in this event = 69 - 96 374.37 900 5 1 0.181642 -0.101874 -54.45 - 96 255.104 899 5 0 0.185879 -0.111421 -55.85 - 96 155.058 901 4 1 0.279625 -0.312316 -84.45 - 96 203.441 898 4 0 0.28929 -0.320989 -85.85 - 96 132.581 902 3 1 0.491521 -0.501042 -114.45 - 96 114.545 897 3 0 0.500361 -0.542234 -115.85 - 96 114.589 902 2 1 0.643392 -1.3695 -144.45 - 96 109.326 893 2 0 0.613872 -1.40494 -145.85 - 96 125.787 899 1 1 -0.0923092 -2.09943 -174.45 - 96 151.987 889 1 0 -0.13783 -2.13564 -175.85 - 96 141.768 894 0 1 -1.06041 -2.87952 -204.45 - 96 136.354 885 0 0 -1.09879 -2.91585 -205.85 - 96 6.73105 1086 12 0 -86.9202 37.2855 153.964 - 96 52.8694 482 12 1 -83.5068 54.1208 155.445 - 96 45.3889 335 12 1 -112.983 74.6567 155.466 - 96 239.401 903 2 1 0.802901 -0.805769 -144.45 - 96 57.3316 897 2 0 0.752911 -0.503648 -145.85 - 96 53.5554 898 2 0 0.737189 -0.45 -146.079 - 96 43.9867 907 1 1 1.6028 3.66686 -174.45 - 96 216.709 908 1 1 1.65 3.64029 -174.572 - 96 300.874 916 1 0 2.04835 3.42007 -175.85 - 96 360.818 975 0 1 15.0762 -4.2826 -204.45 - 96 86.9911 976 0 1 15.25 -4.00557 -204.661 - 96 102.266 886 0 0 16.2865 -2.85 -205.921 - 96 138.65 887 0 0 16.459 -2.65 -206.076 - 96 68.7546 888 0 0 16.6464 -2.45 -206.175 - 96 57.5353 889 0 0 16.7994 -2.25 -206.201 - 96 64.1321 890 0 0 16.9244 -2.05 -206.21 - 96 60.965 891 0 0 17.0327 -1.85 -206.205 - 96 68.2824 892 0 0 17.162 -1.65 -206.199 - 96 56.6002 893 0 0 17.32 -1.45 -206.167 - 96 39.491 894 0 0 17.4896 -1.25 -206.188 - 96 243.485 806 1 0 19.2068 -18.6825 -176.25 - 96 4.00046 805 1 0 19.2566 -18.85 -175.864 - 96 282.705 996 1 1 19.3954 -19.0607 -174.85 - 96 116.857 997 1 1 19.45 -19.0725 -174.585 - 96 56.6234 998 1 1 19.65 -18.9704 -174.628 - 96 158.708 999 1 1 19.85 -18.9297 -174.596 - 96 105.918 1000 1 1 20.05 -18.8546 -174.493 - 96 176.088 693 1 0 -7.63338 -41.4344 -176.25 - 96 520.491 900 5 0 0.270523 0.0579226 -55.85 - 96 30.0511 929 5 0 -25.898 5.99991 -56.25 - 96 62.0827 930 5 0 -25.9532 6.05 -56.1863 - 96 117.544 931 5 0 -25.9686 6.25 -56.1169 - 96 59.2768 932 5 0 -26.0822 6.45 -55.9619 - 96 88.8289 766 5 1 -26.8204 7.30753 -54.85 - 96 201.189 765 5 1 -26.85 7.518 -54.742 - 96 63.4126 942 5 0 -27.3447 8.62974 -55.85 - 96 160.282 896 2 0 0.656614 -0.759065 -145.85 - 96 158.632 878 2 0 21.9598 -4.3417 -146.25 - 96 67.8623 1015 2 1 23.0956 -4.52461 -144.85 - 96 83.501 1016 2 1 23.25 -4.54692 -144.656 - 96 212.12 833 3 0 20.1584 -13.3012 -116.25 - 96 92.0306 1000 3 1 20.0638 -13.9813 -114.85 - 96 30.5264 999 3 1 20.05 -14.1527 -114.542 - 96 123.059 901 3 1 0.347747 -0.348064 -114.45 - 96 195.719 898 3 0 0.395104 -0.389006 -115.85 - 96 125.344 906 2 1 1.28807 -1.34998 -144.45 - 96 135.192 892 2 0 1.30138 -1.46217 -145.85 - 96 137.422 881 1 0 1.78838 -3.74115 -175.85 - 96 124.825 913 0 1 2.66016 -5.20862 -204.45 - 96 290.476 873 0 0 2.64691 -5.30305 -205.85 - 96 155.679 935 3 1 7.12046 7.75278 -114.45 - 96 139.641 936 3 1 7.25 8.09447 -114.602 - 96 48.3473 950 3 0 7.36756 10.0978 -115.85 - 96 63.4981 951 3 0 7.36551 10.25 -115.942 - 96 63.5393 952 3 0 7.33729 10.45 -116.053 - 96 75.5296 953 3 0 7.34501 10.65 -116.136 - 96 18.375 943 1 1 8.80741 -1.20428 -174.732 -Number of digits in this event = 33 -Event: 97 Number of tracker hits in this event = 29 - 97 121.532 900 4 1 0.0742994 -0.166885 -84.45 - 97 234.653 899 4 0 0.0821691 -0.170557 -85.85 - 97 120.214 901 3 1 0.251283 -0.231448 -114.45 - 97 117.566 899 3 0 0.255593 -0.23343 -115.85 - 97 139.332 901 2 1 0.347767 -0.256129 -144.45 - 97 2.87276 898 2 0 0.353809 -0.250084 -145.85 - 97 112.516 899 2 0 0.353892 -0.25 -145.87 - 97 211.635 902 1 1 0.485979 -0.122587 -174.45 - 97 143.63 899 1 0 0.489761 -0.0939027 -175.85 - 97 197.139 902 0 1 0.558805 0.461686 -204.45 - 97 140.091 902 0 0 0.559827 0.497848 -205.85 - 97 66.5372 127 0 1 -154.749 -132.65 -204.531 - 97 179.205 126 0 1 -154.75 -132.651 -204.53 - 97 44.0562 242 0 0 -154.872 -131.609 -205.85 - 97 309.521 243 0 0 -154.883 -131.55 -205.913 - 97 82.7087 1200 2 1 60.1414 151.156 -144.801 - 97 38.0876 1210 2 1 62.1876 152.365 -144.542 - 97 161.782 1667 3 0 51.3251 153.715 -116.25 - 97 107.146 1154 3 1 50.955 153.636 -114.85 - 97 268.656 1153 3 1 50.85 153.575 -114.589 - 97 50.3786 1152 3 1 50.65 153.132 -114.67 - 97 162.887 1652 3 0 50.9963 150.697 -115.85 - 97 346.293 1651 3 0 50.9975 150.55 -115.994 - 97 54.0881 1650 3 0 50.6959 150.35 -116.126 - 97 71.375 1653 3 0 50.1462 150.75 -115.941 - 97 114.148 1150 3 1 50.1775 155.857 -114.85 - 97 30.2246 1149 3 1 50.05 156.032 -114.836 - 97 127.292 1679 3 0 48.7792 156.12 -115.85 - 97 30.3862 1070 0 0 -83.8032 34.1104 -206.032 -Number of digits in this event = 17 -Event: 98 + 72 131.839 899 5 1 -0.119461 -0.100476 -54.45 + 72 134.894 899 5 0 -0.115524 -0.103835 -55.85 + 72 107.6 899 2 1 -0.126498 -0.349199 -144.45 + 72 124.869 898 2 0 -0.168045 -0.348188 -145.85 + 72 104.958 894 1 1 -1.15693 -0.324427 -174.45 + 72 126.161 898 1 0 -1.22303 -0.347004 -175.85 + 72 115.918 887 0 1 -2.6017 -0.829811 -204.45 + 72 130.639 896 0 0 -2.68694 -0.840392 -205.85 + 72 100.379 1384 0 0 8.23785 96.9658 -206.25 + 72 89.2992 1385 0 0 8.29808 97.15 -206.038 + 72 114.353 943 0 1 8.69768 98.1657 -204.85 + 72 203.33 944 0 1 8.85 98.4292 -204.634 + 72 476.099 945 0 1 9.05 98.5439 -204.505 + 72 128.017 899 1 0 0.281084 -0.134951 -175.85 + 72 80.8714 916 0 1 3.43682 -2.45022 -204.45 + 72 59.7687 915 0 1 3.25 -2.53564 -204.698 + 72 55.2243 914 0 1 3.05 -2.61859 -204.807 + 72 57.0378 913 0 1 2.85 -2.67804 -204.821 + 72 4.08468 912 0 1 2.65 -2.73275 -204.833 + 72 135.796 884 0 0 1.79515 -3.11749 -205.85 + 72 75.8814 883 0 0 1.66008 -3.25 -206.03 + 72 57.252 731 0 0 4.10951 -33.7488 -206.25 + 72 125.177 730 0 0 4.18309 -33.85 -206.069 + 72 243.109 946 0 1 9.25 -36.2639 -204.744 + 72 318.791 900 1 0 -0.141336 0.16833 -175.85 + 72 10.7251 901 1 0 -0.381217 0.25 -176.239 + 72 45.5794 1291 1 1 78.3501 109.157 -174.728 + 72 186.852 1292 1 1 78.45 109.182 -174.653 + 72 153.378 188 5 1 -142.435 -159.829 -54.8149 +Number of digits in this event = 15 +Event: 73 +Number of tracker hits in this event = 61 + 73 107.091 899 5 1 -0.13463 1.06554 -54.45 + 73 1.76942 900 5 1 0.05 0.969336 -54.8437 + 73 320.396 903 5 0 0.509149 0.748442 -55.85 + 73 14.5792 967 4 1 13.6405 -5.33299 -84.45 + 73 128.118 968 4 1 13.65 -5.3369 -84.468 + 73 47.0674 969 4 1 13.85 -5.41581 -84.8331 + 73 31.0032 872 4 0 14.3721 -5.62956 -85.85 + 73 84.1342 871 4 0 14.422 -5.65 -85.9472 + 73 36.7567 1046 3 1 29.4287 -11.6709 -114.45 + 73 131.616 1047 3 1 29.45 -11.6398 -114.548 + 73 89.814 843 3 0 29.6617 -11.3265 -115.85 + 73 25.1151 844 3 0 29.7078 -11.25 -116.155 + 73 153.539 1085 2 1 37.1953 -3.07354 -144.45 + 73 111.462 1084 2 1 37.05 -3.06059 -144.508 + 73 181.691 1083 2 1 36.85 -3.0597 -144.582 + 73 290.416 1082 2 1 36.65 -3.06984 -144.648 + 73 72.6881 1081 2 1 36.45 -3.10476 -144.705 + 73 79.841 1080 2 1 36.25 -3.16254 -144.782 + 73 5.70846 1079 2 1 36.05 -3.26266 -144.842 + 73 74.0089 879 2 0 34.0187 -4.1473 -145.85 + 73 193.348 878 2 0 33.7837 -4.25 -145.967 + 73 35.1401 877 2 0 33.295 -4.45 -146.174 + 73 13.2484 1030 2 0 -14.0396 26.2092 -146.25 + 73 78.7034 1031 2 0 -14.0452 26.25 -146.225 + 73 82.1365 1032 2 0 -14.0766 26.45 -146.114 + 73 70.35 1033 2 0 -14.0534 26.65 -146.001 + 73 1.58529 1034 2 0 -14.0131 26.85 -145.853 + 73 247.493 829 2 1 -14.0508 28.4336 -144.85 + 73 74.428 828 2 1 -14.25 29.5211 -144.56 + 73 179.134 827 2 1 -14.45 29.5414 -144.682 + 73 50.7121 826 2 1 -14.65 29.1101 -144.793 + 73 32.298 1037 2 0 -18.0983 27.504 -145.85 + 73 310.625 1036 2 0 -18.1921 27.45 -145.866 + 73 44.951 1035 2 0 -18.6202 27.25 -145.909 + 73 154.149 810 2 1 -17.8646 29.1712 -144.85 + 73 278.478 811 2 1 -17.85 29.1975 -144.835 + 73 303.403 868 4 0 15.5909 -6.37939 -85.85 + 73 845.498 867 4 0 15.8147 -6.45 -85.9642 + 73 66.6391 1102 2 1 40.4673 -15.8936 -144.767 + 73 318.881 819 2 0 41.1556 -16.0696 -145.85 + 73 108.375 1196 1 1 59.4348 -16.5159 -174.45 + 73 97.6966 1195 1 1 59.25 -16.3797 -174.7 + 73 63.3948 1194 1 1 59.05 -16.2709 -174.768 + 73 6.85515 823 1 0 56.9718 -15.2606 -175.85 + 73 174.414 824 1 0 56.9494 -15.25 -175.862 + 73 191.193 904 1 0 42.482 0.948904 -176.25 + 73 88.4623 903 1 0 42.589 0.85 -175.981 + 73 16.6295 1138 1 1 47.7333 1.51163 -174.85 + 73 166.868 916 1 0 52.4216 3.3508 -175.85 + 73 139.73 915 1 0 52.5366 3.25 -176.003 + 73 25.0739 1197 1 1 59.5487 -17.1658 -174.662 + 73 4.97429 1190 1 1 58.2304 -23.6641 -174.45 + 73 168.275 1191 1 1 58.25 -23.6591 -174.466 + 73 64.2803 1192 1 1 58.45 -23.6082 -174.633 + 73 24.5443 1193 1 1 58.65 -23.5699 -174.8 + 73 14.4678 783 1 0 60.266 -23.2571 -175.85 + 73 276.266 784 1 0 60.3026 -23.25 -175.874 + 73 97.02 1382 0 1 96.5996 -19.8007 -204.45 + 73 8.98289 1381 0 1 96.55 -19.7531 -204.815 + 73 170.28 802 0 0 96.4826 -19.5163 -205.85 + 73 27.6576 803 0 0 96.4636 -19.45 -206.139 +Number of digits in this event = 24 +Event: 74 +Number of tracker hits in this event = 97 + 74 122.977 900 5 1 0.145291 0.180891 -54.45 + 74 116.685 900 5 0 0.15056 0.184312 -55.85 + 74 199.087 901 4 1 0.259213 0.246829 -84.45 + 74 153.335 900 4 0 0.26353 0.249254 -85.85 + 74 121.733 901 3 1 0.345143 0.271206 -114.45 + 74 138.265 901 3 0 0.370511 0.259817 -115.85 + 74 120.498 906 1 1 1.37672 -0.078076 -174.45 + 74 229.058 899 1 0 1.39579 -0.0885204 -175.85 + 74 103.842 908 0 1 1.80235 -0.305733 -204.45 + 74 107.474 898 0 0 1.83968 -0.320073 -205.85 + 74 450.164 902 2 1 0.470736 0.295563 -144.45 + 74 232.188 901 2 0 0.409837 0.327773 -145.85 + 74 96.8759 896 1 1 -0.835975 0.965905 -174.45 + 74 172.52 905 1 0 -0.914567 1.08725 -175.85 + 74 82.158 883 0 1 -3.32406 3.85264 -204.45 + 74 79.0034 884 0 1 -3.25 3.92701 -204.693 + 74 224.954 921 0 0 -2.94435 4.28323 -205.85 + 74 58.4721 896 2 0 1.0563 -0.745625 -145.85 + 74 124.964 895 2 0 1.11638 -0.85 -145.991 + 74 119.007 894 2 0 1.25487 -1.05 -146.205 + 74 72.5598 893 2 0 1.35801 -1.25 -146.199 + 74 68.6766 892 2 0 1.51148 -1.45 -146.22 + 74 75.9899 891 2 0 1.47468 -1.65 -146.081 + 74 46.9879 890 2 0 1.46782 -1.85 -145.964 + 74 433.252 907 2 1 1.46262 -3.39929 -144.85 + 74 64.1271 906 2 1 1.45 -4.46506 -144.653 + 74 120.735 876 2 0 0.9979 -4.74478 -145.85 + 74 85.6653 817 2 0 -16.9704 -16.6144 -146.25 + 74 228.728 816 2 0 -16.9851 -16.65 -146.187 + 74 493.915 903 2 1 0.65 0.636609 -144.511 + 74 174.023 902 2 0 0.759272 0.621915 -145.85 + 74 169.267 912 1 1 2.53774 -0.0565796 -174.45 + 74 162.41 898 1 0 2.61742 -0.303048 -175.85 + 74 149.749 915 0 1 3.09843 -5.21799 -204.45 + 74 138.391 872 0 0 3.27942 -5.55368 -205.85 + 74 424.259 903 2 0 0.793369 0.65 -146.036 + 74 278.168 480 0 0 29.8023 -84.0349 -205.96 + 74 64.9954 904 2 1 0.85 1.51469 -144.754 + 74 34.7532 919 2 0 1.8339 3.93751 -145.85 + 74 68.4514 920 2 0 1.8768 4.05 -145.9 + 74 85.9372 921 2 0 1.93189 4.25 -146.062 + 74 21.7877 922 2 0 2.03991 4.45 -146.185 + 74 75.1327 1326 2 0 17.1928 85.2716 -146.25 + 74 50.583 1327 2 0 17.2083 85.45 -146.157 + 74 62.827 1328 2 0 17.1988 85.65 -146.093 + 74 61.55 1329 2 0 17.1897 85.85 -146.063 + 74 66.6083 1330 2 0 17.0866 86.05 -146.036 + 74 82.5711 1331 2 0 16.9657 86.25 -146.062 + 74 87.5681 1332 2 0 16.8127 86.45 -146.071 + 74 202.691 1333 2 0 16.6392 86.65 -146.068 + 74 46.1192 1334 2 0 16.4635 86.85 -146.19 + 74 138.263 899 2 0 0.572264 -0.0910429 -145.85 + 74 25.7838 898 2 0 0.54835 -0.25 -146.164 + 74 30.6805 899 1 1 -0.0710858 -12.5975 -174.45 + 74 262.612 900 1 1 0.05 -12.113 -174.601 + 74 406.811 901 1 1 0.25 -11.145 -174.733 + 74 45.9079 867 1 0 -0.0965962 -6.64692 -175.85 + 74 150.099 868 1 0 -0.126096 -6.45 -175.905 + 74 52.0597 869 1 0 -0.15266 -6.25 -175.97 + 74 46.5973 870 1 0 -0.184883 -6.05 -176.024 + 74 146.893 871 1 0 -0.225975 -5.85 -176.069 + 74 54.479 872 1 0 -0.259799 -5.65 -176.105 + 74 64.9034 873 1 0 -0.304831 -5.45 -176.135 + 74 54.8001 874 1 0 -0.353099 -5.25 -176.16 + 74 59.7149 875 1 0 -0.386906 -5.05 -176.194 + 74 53.4919 876 1 0 -0.422168 -4.85 -176.185 + 74 72.1153 877 1 0 -0.458301 -4.65 -176.156 + 74 64.6863 878 1 0 -0.501998 -4.45 -176.125 + 74 61.6388 879 1 0 -0.549897 -4.25 -176.106 + 74 68.2607 880 1 0 -0.588291 -4.05 -176.095 + 74 65.6664 881 1 0 -0.643974 -3.85 -176.07 + 74 62.392 882 1 0 -0.696808 -3.65 -176.045 + 74 63.2022 883 1 0 -0.725658 -3.45 -176.02 + 74 74.0964 884 1 0 -0.758537 -3.25 -175.995 + 74 54.1987 885 1 0 -0.818235 -3.05 -175.986 + 74 68.2817 886 1 0 -0.884889 -2.85 -175.985 + 74 51.1761 887 1 0 -0.945455 -2.65 -176.002 + 74 66.7349 888 1 0 -1.02544 -2.45 -176.02 + 74 72.9546 889 1 0 -1.08971 -2.25 -176.027 + 74 65.6744 890 1 0 -1.18072 -2.05 -176.049 + 74 49.6947 891 1 0 -1.27346 -1.85 -176.077 + 74 65.8614 892 1 0 -1.38972 -1.65 -176.109 + 74 72.7186 893 1 0 -1.48816 -1.45 -176.14 + 74 54.8848 894 1 0 -1.57059 -1.25 -176.167 + 74 63.1629 895 1 0 -1.65191 -1.05 -176.184 + 74 72.2563 896 1 0 -1.72246 -0.85 -176.203 + 74 55.8812 897 1 0 -1.78618 -0.65 -176.221 + 74 129.746 750 0 1 -30.0196 121.467 -204.45 + 74 134.528 1508 0 0 -29.4886 121.814 -205.85 + 74 7.25258 1509 0 0 -29.2277 121.95 -206.233 + 74 101.505 920 1 1 4.05645 2.1751 -174.45 + 74 154.857 910 1 0 4.116 2.23247 -175.85 + 74 83.6806 919 0 1 3.8646 2.84919 -204.45 + 74 88.3681 920 0 1 4.05 3.02147 -204.672 + 74 16.7974 919 0 0 5.19986 3.99905 -205.85 + 74 93.6749 920 0 0 5.2599 4.05 -205.911 + 74 61.7235 900 0 0 31.7968 0.156232 -205.862 +Number of digits in this event = 35 +Event: 75 Number of tracker hits in this event = 10 - 98 191.3 899 3 1 -0.143017 0.664509 -114.45 - 98 117.849 903 3 0 -0.158383 0.673476 -115.85 - 98 189.555 897 2 1 -0.483257 0.812267 -144.45 - 98 111.136 903 2 0 -0.505279 0.808855 -145.85 - 98 125.255 895 1 1 -0.934132 0.688843 -174.45 - 98 349.264 903 1 0 -0.952546 0.678261 -175.85 - 98 136.275 893 0 1 -1.33488 0.480031 -204.45 - 98 185.705 902 0 0 -1.34118 0.469817 -205.85 - 98 117.143 795 11 1 -20.9657 -107.939 125.495 - 98 190.527 866 2 0 -48.8664 -6.72608 -146.25 + 75 131.135 899 5 1 -0.218124 -0.131449 -54.45 + 75 99.5417 899 5 0 -0.232113 -0.142918 -55.85 + 75 109.301 897 4 1 -0.508748 -0.353224 -84.45 + 75 110.043 898 4 0 -0.527398 -0.353558 -85.85 + 75 119.633 895 3 1 -0.89568 -0.342898 -114.45 + 75 103.849 898 3 0 -0.907512 -0.344181 -115.85 + 75 124.289 894 2 1 -1.14876 -0.354091 -144.45 + 75 114.053 898 2 0 -1.15613 -0.353877 -145.85 + 75 140.3 893 1 1 -1.30154 -0.338271 -174.45 + 75 244.06 898 1 0 -1.30833 -0.322481 -175.85 +Number of digits in this event = 5 +Event: 76 +Number of tracker hits in this event = 16 + 76 197.049 900 5 1 0.23951 -0.727913 -54.45 + 76 97.8808 896 5 0 0.252723 -0.765663 -55.85 + 76 136.171 902 4 1 0.55927 -1.51634 -84.45 + 76 165.63 892 4 0 0.582931 -1.5496 -85.85 + 76 183.497 905 3 1 1.07576 -2.21487 -114.45 + 76 76.8521 889 3 0 1.10132 -2.24428 -115.85 + 76 33.9069 888 3 0 1.10624 -2.25 -116.124 + 76 121.146 908 2 1 1.65533 -2.83443 -144.45 + 76 101.025 885 2 0 1.68874 -2.85409 -145.85 + 76 200.057 911 1 1 2.40965 -3.27765 -174.45 + 76 326.337 883 1 0 2.42177 -3.31136 -175.85 + 76 103.788 912 0 1 2.62937 -4.04368 -204.45 + 76 112.537 879 0 0 2.63186 -4.08142 -205.85 + 76 65.5865 947 0 0 -31.3984 9.49186 -206.021 + 76 21.9218 946 0 0 -31.3731 9.45 -205.882 + 76 264.814 745 0 1 -30.8853 8.22384 -204.85 +Number of digits in this event = 9 +Event: 77 +Number of tracker hits in this event = 12 + 77 125.172 899 3 1 -0.0668668 -0.773821 -114.45 + 77 135.109 896 3 0 -0.0706752 -0.786595 -115.85 + 77 140.297 899 2 1 -0.147558 -1.03999 -144.45 + 77 100.891 895 2 0 -0.159992 -1.04038 -145.85 + 77 152.943 898 1 1 -0.396968 -1.04917 -174.45 + 77 133.265 895 1 0 -0.400614 -1.03806 -175.85 + 77 124.253 897 0 1 -0.49101 -0.837783 -204.45 + 77 203.974 896 0 0 -0.485638 -0.822806 -205.85 + 77 291.67 896 0 1 -0.66092 -1.01681 -204.45 + 77 131.909 894 0 0 -0.903413 -1.08231 -205.85 + 77 247.271 849 2 1 -10.0623 105.598 -144.494 + 77 99.0565 895 0 0 -1.08662 -0.907296 -205.85 +Number of digits in this event = 12 +Event: 78 +Number of tracker hits in this event = 11 + 78 109.661 899 4 1 -0.136428 -0.311261 -84.45 + 78 109.19 898 4 0 -0.148701 -0.317453 -85.85 + 78 103.572 898 3 1 -0.422344 -0.456504 -114.45 + 78 107.897 897 3 0 -0.443152 -0.458799 -115.85 + 78 110.716 895 2 1 -0.884797 -0.520366 -144.45 + 78 133.414 897 2 0 -0.909022 -0.517287 -145.85 + 78 111.672 893 1 1 -1.43653 -0.471137 -174.45 + 78 124.775 897 1 0 -1.45863 -0.467035 -175.85 + 78 134.02 890 0 1 -1.96474 -0.373004 -204.45 + 78 165.565 898 0 0 -1.9953 -0.371423 -205.85 + 78 119.401 900 6 0 -0.435661 0.179674 -25.85 +Number of digits in this event = 6 +Event: 79 +Number of tracker hits in this event = 11 + 79 321.01 900 4 1 0.100505 0.25183 -84.45 + 79 136.912 892 3 1 -1.59641 1.74919 -114.45 + 79 109.156 909 3 0 -1.6594 1.87725 -115.85 + 79 141.876 886 2 1 -2.80164 5.10503 -144.45 + 79 195.416 923 2 0 -2.56424 4.79084 -145.85 + 79 147.809 912 1 1 2.47902 -1.46585 -174.45 + 79 21.2183 891 1 0 2.82112 -1.83358 -175.85 + 79 105.435 890 1 0 2.83629 -1.85 -175.913 + 79 154.545 949 0 1 9.95845 -9.02608 -204.45 + 79 99.9438 853 0 0 10.0984 -9.43161 -205.85 + 79 105.084 852 0 0 10.1044 -9.45 -205.912 +Number of digits in this event = 7 +Event: 80 +Number of tracker hits in this event = 41 + 80 169.138 897 3 1 -0.58109 0.136795 -114.45 + 80 133.656 900 3 0 -0.598936 0.141533 -115.85 + 80 174.133 895 2 1 -0.939074 0.23803 -144.45 + 80 173.322 900 2 0 -0.955959 0.238041 -145.85 + 80 94.9143 893 1 1 -1.26379 0.179561 -174.45 + 80 187.599 900 1 0 -1.26971 0.174887 -175.85 + 80 150.915 893 0 1 -1.37887 0.0982451 -204.45 + 80 135.054 900 0 0 -1.3886 0.0837676 -205.85 + 80 98.2746 897 3 0 -0.581279 -0.547079 -115.85 + 80 156.756 896 3 0 -0.580549 -0.65 -116.001 + 80 219.86 835 3 0 23.8009 -12.869 -116.25 + 80 52.6168 1027 3 1 25.4782 -12.8695 -114.85 + 80 81.6951 1028 3 1 25.65 -12.8791 -114.701 + 80 113.254 953 0 0 4.28103 10.6716 -206.25 + 80 100.329 922 0 1 4.51118 10.7238 -204.85 + 80 2.49667 1076 1 0 -14.9134 35.4457 -176.25 + 80 99.6508 1077 1 0 -14.9168 35.45 -176.245 + 80 146.081 1078 1 0 -15.0602 35.65 -176.023 + 80 82.157 818 1 1 -16.2508 36.3357 -174.85 + 80 58.2322 817 1 1 -16.45 36.4375 -174.661 + 80 53.816 816 1 1 -16.65 36.4853 -174.534 + 80 62.4128 815 1 1 -16.9609 36.6711 -174.45 + 80 114.636 814 1 1 -17.05 36.8422 -174.568 + 80 44.4796 813 1 1 -17.25 37.227 -174.765 + 80 90.7283 1091 1 0 -18.4634 38.2676 -175.85 + 80 195.899 1092 1 0 -18.6816 38.45 -176.044 + 80 77.5514 1428 1 0 -66.2742 105.868 -176.25 + 80 261.965 1429 1 0 -66.347 105.95 -176.102 + 80 170.315 1430 1 0 -66.5481 106.15 -176.067 + 80 147.74 1061 10 0 39.3153 32.2989 93.75 + 80 70.3038 1096 10 1 39.3938 32.2483 95.15 + 80 71.6677 1097 10 1 39.45 32.3001 95.3265 + 80 31.9615 900 2 1 0.0951628 0.152744 -144.45 + 80 58.0502 899 2 1 -0.107414 0.05 -144.559 + 80 25.5079 898 2 1 -0.25 0.079352 -144.543 + 80 116.297 941 1 0 20.0234 8.38066 -176.25 + 80 104.533 1000 1 1 20.2023 8.93997 -174.85 + 80 223.7 1001 1 1 20.25 9.10893 -174.589 + 80 119.913 946 1 0 20.2713 9.38116 -175.85 + 80 33.4174 1202 1 0 43.1854 60.5495 -176.25 + 80 90.4884 1203 1 0 43.2359 60.65 -176.198 +Number of digits in this event = 17 +Event: 81 +Number of tracker hits in this event = 10 + 81 127.049 906 3 1 1.28463 -0.161709 -114.45 + 81 114.252 899 3 0 1.3138 -0.187245 -115.85 + 81 123.32 911 2 1 2.26548 -0.409324 -144.45 + 81 188.3 898 2 0 2.36721 -0.351352 -145.85 + 81 129.472 920 1 1 4.23413 1.12762 -174.45 + 81 0.558786 905 1 0 4.1992 1.24929 -175.85 + 81 110.388 906 1 0 4.19898 1.25 -175.858 + 81 111.926 916 0 1 3.43346 3.48058 -204.45 + 81 154.177 917 0 0 3.44591 3.60452 -205.85 + 81 51.6637 568 1 0 19.2199 -66.383 -176.056 +Number of digits in this event = 6 +Event: 82 +Number of tracker hits in this event = 20 + 82 139.844 898 5 1 -0.352731 -0.371862 -54.45 + 82 98.2336 898 5 0 -0.37948 -0.397262 -55.85 + 82 289.653 895 4 1 -0.906347 -0.854786 -84.45 + 82 114.003 895 4 0 -0.93482 -0.876988 -85.85 + 82 117.118 892 3 1 -1.52173 -1.30221 -114.45 + 82 125.392 893 3 0 -1.55004 -1.31997 -115.85 + 82 248.117 889 2 1 -2.08367 -1.67392 -144.45 + 82 149.624 891 2 0 -2.12491 -1.71 -145.85 + 82 105.979 885 1 1 -2.97221 -2.40757 -174.45 + 82 111.198 887 1 0 -3.02555 -2.45367 -175.85 + 82 116.31 879 0 1 -4.0666 -3.3827 -204.45 + 82 187.067 883 0 0 -4.12348 -3.42365 -205.85 + 82 69.7243 888 2 1 -2.25 -1.47572 -144.526 + 82 132.085 887 2 1 -2.45 -1.31104 -144.582 + 82 95.7932 886 2 1 -2.65 -1.03493 -144.79 + 82 59.8109 885 2 1 -2.85 -0.837849 -144.782 + 82 267.097 884 2 1 -3.05 -0.725304 -144.771 + 82 108.016 883 2 1 -3.25 -0.688268 -144.787 + 82 313.512 882 2 1 -3.45 -0.724797 -144.788 + 82 220.944 881 2 1 -3.65 -0.921723 -144.487 +Number of digits in this event = 11 +Event: 83 +Number of tracker hits in this event = 16 + 83 110.276 899 5 1 -0.212481 0.0852148 -54.45 + 83 104.148 900 5 0 -0.22069 0.0941845 -55.85 + 83 120.18 898 4 1 -0.380066 0.285766 -84.45 + 83 229.163 901 4 0 -0.376826 0.303284 -85.85 + 83 108.28 898 3 1 -0.34402 0.676789 -114.45 + 83 143.694 903 3 0 -0.337884 0.691436 -115.85 + 83 112.27 899 2 1 -0.189767 1.01773 -144.45 + 83 128.062 904 2 0 -0.183089 1.02871 -145.85 + 83 102.707 899 1 1 -0.0600901 1.22356 -174.45 + 83 102.152 905 1 0 -0.0619692 1.21785 -175.85 + 83 241.9 899 0 1 -0.129121 1.05608 -204.45 + 83 127.674 904 0 0 -0.13118 1.04923 -205.85 + 83 108.008 900 2 1 0.05 0.997685 -144.547 + 83 36.7082 911 2 0 -0.332217 2.35941 -145.85 + 83 95.521 912 2 0 -0.368407 2.45 -145.932 + 83 24.9842 913 2 0 -0.420107 2.65 -146.205 +Number of digits in this event = 7 +Event: 84 +Number of tracker hits in this event = 12 + 84 133.106 902 4 1 0.46977 0.195304 -84.45 + 84 94.5761 900 4 0 0.477849 0.205551 -85.85 + 84 100.845 903 3 1 0.666764 0.438375 -114.45 + 84 185.441 902 3 0 0.691446 0.453185 -115.85 + 84 128.6 905 2 1 1.18371 0.799598 -144.45 + 84 241.309 903 2 0 1.20602 0.812996 -145.85 + 84 112.301 907 1 1 1.61478 1.03647 -174.45 + 84 447.177 905 1 0 1.64424 1.05368 -175.85 + 84 106.243 911 0 1 2.26465 1.39741 -204.45 + 84 140.584 906 0 0 2.29308 1.40826 -205.85 + 84 460.189 907 0 1 1.56242 0.662041 -204.45 + 84 294.199 902 0 0 1.60471 0.581501 -205.85 +Number of digits in this event = 9 +Event: 85 +Number of tracker hits in this event = 13 + 85 115.468 900 5 1 0.175275 -0.0526313 -54.45 + 85 309.502 899 5 0 0.183212 -0.064731 -55.85 + 85 121.88 901 4 1 0.345788 -0.293936 -84.45 + 85 167.672 898 4 0 0.354556 -0.308452 -85.85 + 85 147.731 902 3 1 0.552467 -0.592018 -114.45 + 85 116.761 897 3 0 0.559241 -0.605806 -115.85 + 85 141.134 903 2 1 0.738546 -0.905474 -144.45 + 85 125.943 895 2 0 0.744218 -0.91682 -145.85 + 85 124.025 904 1 1 0.906943 -1.09103 -174.45 + 85 142.955 894 1 0 0.913132 -1.1089 -175.85 + 85 33.9165 905 0 1 1.05577 -1.51308 -204.45 + 85 80.4801 904 0 1 1.05 -1.51914 -204.576 + 85 109.525 892 0 0 0.992219 -1.58207 -205.85 +Number of digits in this event = 9 +Event: 86 +Number of tracker hits in this event = 39 + 86 153.242 899 4 1 -0.123779 -0.106287 -84.45 + 86 104.886 899 4 0 -0.127385 -0.111579 -85.85 + 86 249.216 899 3 1 -0.185107 -0.198772 -114.45 + 86 521.766 899 3 0 -0.193335 -0.199164 -115.85 + 86 109.314 898 2 1 -0.354482 -0.194565 -144.45 + 86 101.234 899 2 0 -0.356524 -0.19441 -145.85 + 86 109.191 898 1 1 -0.37128 -0.167993 -174.45 + 86 145.976 899 1 0 -0.35721 -0.151925 -175.85 + 86 218.397 899 0 1 -0.104348 0.17388 -204.45 + 86 124.899 900 0 0 -0.0969078 0.194067 -205.85 + 86 116.275 900 3 0 0.148945 0.145994 -115.85 + 86 14.4945 926 2 1 5.42076 4.68446 -144.45 + 86 80.6002 927 2 1 5.45 4.66792 -144.505 + 86 47.4814 928 2 1 5.65 4.5811 -144.75 + 86 150.879 918 2 0 6.86366 3.83882 -145.85 + 86 41.2284 917 2 0 7.17224 3.65 -146.131 + 86 49.5172 1100 1 1 40.1015 -16.1982 -174.45 + 86 73.9283 1101 1 1 40.25 -16.2299 -174.496 + 86 79.5502 1102 1 1 40.45 -16.2463 -174.564 + 86 52.2101 1103 1 1 40.65 -16.2646 -174.582 + 86 63.6296 1104 1 1 40.85 -16.2827 -174.607 + 86 55.8273 1105 1 1 41.05 -16.2998 -174.621 + 86 55.1515 1106 1 1 41.25 -16.3136 -174.634 + 86 62.7421 1107 1 1 41.45 -16.3225 -174.65 + 86 72.1061 1108 1 1 41.65 -16.3255 -174.673 + 86 74.7225 1109 1 1 41.85 -16.3331 -174.678 + 86 53.3402 1110 1 1 42.05 -16.3451 -174.676 + 86 67.846 1111 1 1 42.25 -16.3592 -174.679 + 86 60.614 1112 1 1 42.45 -16.3736 -174.664 + 86 59.8059 1113 1 1 42.65 -16.4036 -174.641 + 86 137.235 1114 1 1 42.85 -16.4207 -174.61 + 86 56.5462 1115 1 1 43.05 -16.4293 -174.585 + 86 46.391 1116 1 1 43.25 -16.4488 -174.574 + 86 43.6607 1117 1 1 43.45 -16.4536 -174.543 + 86 23.9249 1118 1 1 43.65 -16.4623 -174.484 + 86 6.96999 1295 2 0 7.98695 79.2249 -146.25 + 86 79.6503 1296 2 0 7.97737 79.25 -146.243 + 86 154.458 1297 2 0 8.00106 79.45 -146.124 + 86 469.901 946 2 1 9.33991 78.9871 -144.85 +Number of digits in this event = 11 +Event: 87 +Number of tracker hits in this event = 17 + 87 104.288 900 3 1 0.177067 0.781179 -114.45 + 87 119.578 903 3 0 0.186953 0.813948 -115.85 + 87 463.38 901 2 1 0.411786 1.45468 -144.45 + 87 121.572 907 2 0 0.42179 1.48026 -145.85 + 87 101.084 902 1 1 0.628198 2.00623 -174.45 + 87 106.696 909 1 0 0.634739 2.02923 -175.85 + 87 121.316 903 0 1 0.742867 2.51955 -204.45 + 87 137.981 912 0 0 0.759924 2.54818 -205.85 + 87 24.2322 800 0 1 -19.8644 41.3791 -204.596 + 87 76.3322 496 4 1 -80.7463 -12.1032 -84.45 + 87 232.243 495 4 1 -80.85 -11.9598 -84.511 + 87 420.004 494 4 1 -81.05 -11.9222 -84.6657 + 87 71.2314 493 4 1 -81.25 -11.9567 -84.7097 + 87 94.2208 513 3 1 -77.2664 126.827 -114.62 + 87 64.4473 1154 6 0 96.135 50.9622 -26.25 + 87 324.777 1153 6 0 96.2138 50.85 -26.1986 + 87 19.4114 1028 2 1 25.788 55.5101 -144.754 +Number of digits in this event = 9 +Event: 88 +Number of tracker hits in this event = 16 + 88 117.891 900 4 1 0.137138 0.210502 -84.45 + 88 185.583 900 4 0 0.144367 0.227832 -85.85 + 88 111.622 901 3 1 0.298713 0.583846 -114.45 + 88 105.166 902 3 0 0.298789 0.593239 -115.85 + 88 113.761 901 2 1 0.318213 0.808468 -144.45 + 88 131.746 903 2 0 0.331636 0.819333 -145.85 + 88 115.941 902 1 1 0.582367 1.05019 -174.45 + 88 109.658 905 1 0 0.587121 1.06796 -175.85 + 88 111.592 903 0 1 0.666817 1.42156 -204.45 + 88 113.495 906 0 0 0.676641 1.44266 -205.85 + 88 10.315 426 9 1 -94.929 -70.5712 65.2908 + 88 107.348 425 9 1 -94.95 -70.5545 65.3178 + 88 189.564 424 9 1 -95.15 -70.528 65.5049 + 88 196.874 423 9 1 -95.35 -70.5789 65.3055 + 88 38.2773 817 0 0 -3.09162 -16.4702 -206.25 + 88 40.7501 710 0 0 -16.0466 -37.9047 -206.25 +Number of digits in this event = 5 +Event: 89 +Number of tracker hits in this event = 23 + 89 25.3908 900 5 0 0.122315 0.05 -56.168 + 89 119.709 900 4 1 0.142276 0.198033 -84.45 + 89 153.832 900 4 0 0.142678 0.204338 -85.85 + 89 123.888 900 3 1 0.12628 0.308458 -114.45 + 89 109.73 901 3 0 0.127802 0.32048 -115.85 + 89 121.948 900 2 1 0.176736 0.547767 -144.45 + 89 125.2 902 2 0 0.186913 0.545271 -145.85 + 89 160.521 901 1 1 0.366748 0.535044 -174.45 + 89 141.241 902 1 0 0.384012 0.530356 -175.85 + 89 105.243 903 0 1 0.752211 0.439622 -204.45 + 89 113.993 902 0 0 0.754099 0.463925 -205.85 + 89 49.1235 963 0 0 132.448 12.8183 -206.011 + 89 172.495 964 0 0 132.545 12.85 -206.035 + 89 158.354 1173 0 1 54.7414 -20.1436 -204.668 + 89 79.9147 1174 0 1 54.85 -20.2001 -204.463 + 89 26.6776 800 0 0 54.9134 -20.0293 -205.85 + 89 162.832 799 0 0 54.9127 -20.05 -205.907 + 89 154.354 798 0 0 54.6528 -20.25 -206.204 + 89 159.352 909 0 0 85.328 2.03935 -206.25 + 89 38.6751 910 0 0 85.3694 2.05 -206.228 + 89 2.73996 1072 5 0 -0.979247 34.4529 -55.8998 + 89 94.2914 1071 5 0 -0.977964 34.45 -55.8951 + 89 216.656 919 1 1 3.8773 72.1892 -174.45 +Number of digits in this event = 13 +Event: 90 +Number of tracker hits in this event = 27 + 90 128.159 899 4 1 -0.155728 0.175765 -84.45 + 90 210.54 900 4 0 -0.166478 0.184687 -85.85 + 90 121.913 898 3 1 -0.366908 0.385872 -114.45 + 90 149.271 901 3 0 -0.374435 0.387358 -115.85 + 90 115.678 897 2 1 -0.478361 0.313269 -144.45 + 90 138.147 901 2 0 -0.471118 0.317244 -145.85 + 90 194.65 898 1 1 -0.335719 0.392575 -174.45 + 90 128.575 901 1 0 -0.325448 0.390501 -175.85 + 90 293.81 899 0 1 -0.0999703 0.406333 -204.45 + 90 184.681 901 0 0 -0.0884304 0.402169 -205.85 + 90 128.042 940 0 0 -1.43708 8.09283 -206.25 + 90 119.353 939 0 0 -1.2829 8.05 -206.072 + 90 75.4593 938 0 0 -1.03914 7.85 -206.18 + 90 62.6248 937 0 0 -0.906267 7.65 -206.214 + 90 56.0591 936 0 0 -0.913861 7.45 -206.246 + 90 78.1495 935 0 0 -0.965546 7.25 -206.227 + 90 76.0314 934 0 0 -0.940084 7.05 -206.135 + 90 52.3411 933 0 0 -0.921437 6.85 -205.949 + 90 91.9141 900 0 1 0.05 5.20744 -204.516 + 90 99.2664 901 0 1 0.25 5.37208 -204.452 + 90 139.358 902 0 1 0.45 5.43711 -204.537 + 90 39.4116 919 0 0 0.635894 3.9266 -205.85 + 90 119.097 906 0 1 1.26947 5.1282 -204.85 + 90 96.1465 907 0 1 1.45 5.20422 -204.801 + 90 97.192 923 0 0 2.43237 4.79809 -205.85 + 90 78.7482 978 0 0 33.5679 15.79 -206.25 + 90 233.681 979 0 0 33.6032 15.85 -206.12 +Number of digits in this event = 14 +Event: 91 +Number of tracker hits in this event = 24 + 91 147.772 897 3 1 -0.646508 0.260097 -114.45 + 91 115.424 901 3 0 -0.646502 0.26957 -115.85 + 91 132.683 896 2 1 -0.67629 0.456829 -144.45 + 91 117.011 902 2 0 -0.681323 0.459888 -145.85 + 91 111.137 896 1 1 -0.845904 0.547504 -174.45 + 91 134.047 902 1 0 -0.832308 0.541774 -175.85 + 91 146.449 897 0 1 -0.593386 0.446221 -204.45 + 91 116.768 902 0 0 -0.574132 0.463272 -205.85 + 91 73.4175 897 4 1 -0.575536 -0.05 -84.8047 + 91 10.4969 896 4 0 -1.05652 -0.820474 -85.85 + 91 79.9367 895 4 0 -1.07477 -0.85 -85.8905 + 91 58.3907 894 4 0 -1.13173 -1.05 -85.9692 + 91 94.8036 898 4 1 -0.45 -1.16661 -84.6994 + 91 306.266 899 4 1 -0.25 -1.26758 -84.6445 + 91 85.0739 1313 4 1 82.7585 104.308 -84.45 + 91 110.944 1391 0 0 70.4551 98.4408 -206.222 + 91 2.17705 893 0 1 -1.44673 -0.05 -204.62 + 91 80.4373 892 0 1 -1.45 -0.0524749 -204.625 + 91 5.34089 897 0 0 -2.29177 -0.639602 -205.85 + 91 128.739 896 0 0 -2.30682 -0.65 -205.872 + 91 2.47822 895 0 0 -2.57646 -0.85 -206.238 + 91 232.433 899 0 1 -0.0963249 -0.141152 -204.45 + 91 275.299 899 0 0 -0.292731 -0.0782796 -205.85 + 91 71.9301 817 0 0 -33.0023 -16.6155 -205.937 +Number of digits in this event = 9 +Event: 92 +Number of tracker hits in this event = 23 + 92 103.96 901 5 1 0.262853 -0.334876 -54.45 + 92 123.68 898 5 0 0.265436 -0.366015 -55.85 + 92 108.628 901 4 1 0.251629 -1.01245 -84.45 + 92 51.5262 895 4 0 0.248508 -1.04529 -85.85 + 92 51.9751 894 4 0 0.248036 -1.05 -86.0439 + 92 117.476 901 3 1 0.334495 -1.69466 -114.45 + 92 111.077 891 3 0 0.319843 -1.78123 -115.85 + 92 122.782 899 2 1 -0.11487 -3.54329 -144.45 + 92 99.6069 882 2 0 -0.137536 -3.60893 -145.85 + 92 250.752 898 1 1 -0.416409 -4.80948 -174.45 + 92 137.176 875 1 0 -0.407626 -4.88447 -175.85 + 92 107.104 898 0 1 -0.258616 -6.33422 -204.45 + 92 114.868 868 0 0 -0.252751 -6.41229 -205.85 + 92 13.5612 943 0 0 -66.9686 8.75978 -206.24 + 92 96.4128 1017 0 0 -136.942 23.4818 -206.25 + 92 110.36 1016 0 0 -137.234 23.45 -206.186 + 92 197.084 1015 0 0 -137.406 23.25 -206 + 92 223.602 1014 0 0 -137.318 23.05 -206.088 + 92 128.268 1150 2 0 -17.4711 50.2009 -146.25 + 92 59.9517 1151 2 0 -17.4877 50.25 -146.224 + 92 182.019 1152 2 0 -17.593 50.45 -146.2 + 92 573.314 811 2 1 -17.7242 50.9584 -144.85 + 92 268.253 810 2 1 -17.85 50.2855 -144.652 +Number of digits in this event = 11 +Event: 93 +Number of tracker hits in this event = 27 + 93 131.873 899 5 1 -0.224118 -0.0803031 -54.45 + 93 148.674 899 5 0 -0.242398 -0.0881585 -55.85 + 93 112.673 897 4 1 -0.625156 -0.277727 -84.45 + 93 135.195 898 4 0 -0.640962 -0.280777 -85.85 + 93 130.815 895 3 1 -0.964665 -0.339846 -114.45 + 93 133.126 898 3 0 -0.990892 -0.348516 -115.85 + 93 126.457 892 2 1 -1.55424 -0.51842 -144.45 + 93 106.633 897 2 0 -1.57396 -0.535866 -145.85 + 93 118.743 890 1 1 -1.99177 -0.916184 -174.45 + 93 118.854 895 1 0 -2.01999 -0.937104 -175.85 + 93 118.126 887 0 1 -2.5551 -1.32618 -204.45 + 93 176.561 893 0 0 -2.56957 -1.34605 -205.85 + 93 10.1721 900 6 1 0.05 0.0636942 -24.4574 + 93 207.413 900 6 0 -0.257355 0.100945 -25.85 + 93 237.166 893 0 1 -1.26286 -0.623969 -204.45 + 93 85.4221 894 0 1 -1.25 -0.607552 -204.52 + 93 75.4222 898 0 0 -0.847235 -0.314662 -205.85 + 93 37.9046 899 0 0 -0.755383 -0.25 -206.119 + 93 31.459 1756 0 0 82.8849 171.459 -206.25 + 93 80.5263 1757 0 0 82.9239 171.55 -206.242 + 93 79.4432 1758 0 0 83.0157 171.75 -206.233 + 93 48.7736 1759 0 0 83.0623 171.95 -206.218 + 93 20.6943 1338 4 0 -43.0019 87.721 -86.0302 + 93 156.571 897 0 0 -1.3145 -0.530809 -205.85 + 93 280.241 231 2 0 -55.0887 -133.764 -146.199 + 93 46.597 232 2 0 -54.8843 -133.75 -146.13 + 93 133.773 988 3 0 9.30599 17.6608 -116.16 +Number of digits in this event = 15 +Event: 94 +Number of tracker hits in this event = 32 + 94 105.792 899 5 1 -0.103825 0.0761522 -54.45 + 94 300.069 900 5 0 -0.108307 0.0747306 -55.85 + 94 158.665 899 3 1 -0.232751 -0.219828 -114.45 + 94 98.778 899 3 0 -0.241618 -0.229604 -115.85 + 94 110.802 897 2 1 -0.456765 -0.393741 -144.45 + 94 137.1 898 2 0 -0.472948 -0.413915 -145.85 + 94 116.004 896 1 1 -0.793089 -0.780464 -174.45 + 94 95.956 896 1 0 -0.824575 -0.791888 -175.85 + 94 189.549 893 0 1 -1.44419 -1.0582 -204.45 + 94 108.405 894 0 0 -1.45067 -1.08353 -205.85 + 94 411.449 899 4 1 -0.0949823 0.0974813 -84.45 + 94 139.308 900 4 0 -0.170768 0.215639 -85.85 + 94 127.315 894 3 1 -1.205 2.9703 -114.45 + 94 111.628 915 3 0 -1.31304 3.16344 -115.85 + 94 158.709 880 2 1 -3.93526 7.32975 -144.45 + 94 117.876 938 2 0 -4.12053 7.69321 -145.85 + 94 54.1607 861 1 1 -7.83642 16.7408 -174.45 + 94 114.286 860 1 1 -7.85 16.7722 -174.595 + 94 45.7462 984 1 0 -7.92143 17.0127 -175.85 + 94 78.5944 985 1 0 -7.93087 17.05 -176.048 + 94 130.062 852 0 1 -9.50806 21.9641 -204.45 + 94 120.228 1010 0 0 -9.71921 22.0848 -205.85 + 94 126.419 904 3 1 1.00912 -0.537889 -114.45 + 94 94.731 897 3 0 1.04989 -0.563489 -115.85 + 94 127.383 908 2 1 1.76591 -0.915931 -144.45 + 94 116.583 895 2 0 1.7731 -0.976293 -145.85 + 94 135.169 909 1 1 1.86891 -2.30102 -174.45 + 94 122.7 888 1 0 1.85877 -2.34785 -175.85 + 94 175.56 908 0 1 1.73019 -3.34411 -204.45 + 94 142.704 883 0 0 1.70753 -3.40285 -205.85 + 94 160.091 882 0 0 1.68019 -3.45 -205.901 + 94 110.289 1025 2 0 13.4133 25.2136 -146.25 +Number of digits in this event = 18 +Event: 95 +Number of tracker hits in this event = 12 + 95 440.216 899 5 1 -0.23284 0.128063 -54.45 + 95 150.748 900 5 0 -0.24265 0.135629 -55.85 + 95 126.45 897 4 1 -0.463208 0.340823 -84.45 + 95 154.093 901 4 0 -0.468064 0.351542 -85.85 + 95 105.805 897 3 1 -0.561695 0.570482 -114.45 + 95 211.373 902 3 0 -0.562146 0.580637 -115.85 + 95 116.778 897 2 1 -0.564874 0.811837 -144.45 + 95 142.488 903 2 0 -0.56467 0.826996 -145.85 + 95 135.827 897 1 1 -0.563891 1.11125 -174.45 + 95 125.338 905 1 0 -0.558524 1.13141 -175.85 + 95 116.048 897 0 1 -0.464932 1.49361 -204.45 + 95 161.638 907 0 0 -0.454065 1.51042 -205.85 +Number of digits in this event = 10 +Event: 96 +Number of tracker hits in this event = 33 + 96 127.143 899 5 1 -0.139126 -0.103528 -54.45 + 96 134.213 899 5 0 -0.147654 -0.108223 -55.85 + 96 126.313 898 4 1 -0.296246 -0.275527 -84.45 + 96 135.898 898 4 0 -0.282145 -0.280251 -85.85 + 96 133.579 900 1 1 0.0641015 -0.517943 -174.45 + 96 150.231 897 1 0 0.0725558 -0.508751 -175.85 + 96 203.585 901 0 1 0.286658 -0.374726 -204.45 + 96 281.18 898 0 0 0.293976 -0.378978 -205.85 + 96 114.904 901 4 1 0.340246 -0.199852 -84.45 + 96 144.641 899 4 0 0.134757 -0.203578 -85.85 + 96 24.0165 875 3 1 -4.99448 0.143529 -114.45 + 96 97.4788 874 3 1 -5.05 0.149119 -114.519 + 96 47.056 873 3 1 -5.25 0.15946 -114.793 + 96 158.054 900 3 0 -5.85884 0.217155 -115.85 + 96 47.9865 791 2 1 -21.7489 -2.95754 -144.45 + 96 161.308 792 2 1 -21.65 -3.0818 -144.528 + 96 89.7124 793 2 1 -21.45 -3.27445 -144.598 + 96 76.0731 794 2 1 -21.25 -3.52551 -144.712 + 96 15.183 795 2 1 -21.05 -3.70911 -144.843 + 96 29.7109 869 2 0 -19.4641 -6.18327 -145.85 + 96 73.8005 868 2 0 -19.4213 -6.25 -145.877 + 96 88.7238 867 2 0 -19.3063 -6.45 -145.963 + 96 62.1851 866 2 0 -19.1785 -6.65 -146.067 + 96 54.8842 865 2 0 -19.0671 -6.85 -146.118 + 96 66.8512 864 2 0 -18.9875 -7.05 -146.171 + 96 23.0881 863 2 0 -18.8992 -7.25 -146.22 + 96 14.0918 221 2 0 -21.589 -135.906 -146.25 + 96 83.0808 220 2 0 -21.5977 -135.95 -146.209 + 96 62.9 219 2 0 -21.6654 -136.15 -146.073 + 96 113.802 218 2 0 -21.8111 -136.35 -146.04 + 96 70.5496 217 2 0 -21.9315 -136.55 -146.101 + 96 100.399 216 2 0 -22.056 -136.75 -146.16 + 96 36.7296 215 2 0 -22.3577 -136.95 -146.246 +Number of digits in this event = 13 +Event: 97 +Number of tracker hits in this event = 10 + 97 135.557 900 5 1 0.103961 0.159505 -54.45 + 97 147.314 900 5 0 0.0953095 0.157189 -55.85 + 97 175.561 899 4 1 -0.0539125 0.102901 -84.45 + 97 132.159 900 4 0 -0.0545443 0.0987562 -85.85 + 97 121.339 899 2 1 -0.106351 -0.106013 -144.45 + 97 160.844 899 2 0 -0.0973633 -0.0982 -145.85 + 97 179.912 900 1 1 0.0645975 0.117391 -174.45 + 97 244.416 900 1 0 0.0622843 0.133576 -175.85 + 97 326.016 899 1 1 -0.05 0.0854431 -174.6 + 97 142.372 898 1 1 -0.25 0.284034 -174.649 +Number of digits in this event = 11 +Event: 98 +Number of tracker hits in this event = 17 + 98 117.349 898 4 1 -0.447227 -0.107146 -84.45 + 98 142.983 899 4 0 -0.45516 -0.0989427 -85.85 + 98 118.832 897 3 1 -0.641595 0.0639784 -114.45 + 98 121.9 900 3 0 -0.651188 0.0684812 -115.85 + 98 111.344 896 2 1 -0.823846 0.184424 -144.45 + 98 130.418 900 2 0 -0.840145 0.170521 -145.85 + 98 98.6887 895 1 1 -1.0289 0.116651 -174.45 + 98 112.578 900 1 0 -1.02864 0.117199 -175.85 + 98 118.904 895 0 1 -0.931938 0.148381 -204.45 + 98 298.35 900 0 0 -0.93117 0.148247 -205.85 + 98 136.248 899 6 0 0.950025 -0.0639576 -25.85 + 98 46.3919 900 6 1 0.191992 0.05 -24.8085 + 98 62.666 928 6 0 -3.26759 5.66675 -25.85 + 98 79.2055 929 6 0 -3.30409 5.85 -25.854 + 98 260.939 930 6 0 -3.25654 6.05 -25.8917 + 98 53.855 931 6 0 -2.87176 6.25 -26.1717 + 98 247.92 1032 6 0 -18.7526 26.5212 -26.25 Number of digits in this event = 8 Event: 99 -Number of tracker hits in this event = 35 - 99 125 901 4 1 0.391355 -0.0907223 -84.45 - 99 159.887 899 4 0 0.403112 -0.0818988 -85.85 - 99 389.647 903 3 1 0.674603 0.134827 -114.45 - 99 107.265 900 3 0 0.683577 0.156612 -115.85 - 99 136.165 903 2 1 0.847027 0.608949 -144.45 - 99 132.355 902 2 0 0.855791 0.639639 -145.85 - 99 165.453 904 1 1 0.988302 1.2569 -174.45 - 99 93.4942 906 1 0 0.962894 1.26598 -175.85 - 99 129.016 901 0 1 0.446869 1.47254 -204.45 - 99 104.862 907 0 0 0.425119 1.48188 -205.85 - 99 201.002 899 3 0 0.665895 -0.198512 -115.85 - 99 113.461 885 2 1 -2.88747 -2.53722 -144.45 - 99 127.03 884 2 0 -2.73471 -3.08084 -145.85 - 99 160.48 911 1 1 2.37358 -16.7287 -174.45 - 99 121.456 912 1 1 2.45 -16.868 -174.488 - 99 252.722 913 1 1 2.65 -17.2193 -174.595 - 99 17.0823 914 1 1 2.85 -17.8599 -174.825 - 99 54.7639 799 1 0 3.83411 -20.0692 -175.85 - 99 67.9533 798 1 0 3.91465 -20.25 -175.934 - 99 55.0268 797 1 0 3.99633 -20.45 -175.999 - 99 70.8067 796 1 0 4.07201 -20.65 -176.074 - 99 69.6236 795 1 0 4.13842 -20.85 -176.155 - 99 40.0772 794 1 0 4.25995 -21.05 -176.215 - 99 77.1774 1250 0 1 70.1788 -124.116 -204.45 - 99 67.1133 1249 0 1 70.05 -123.979 -204.668 - 99 121.49 285 0 0 69.0988 -123.111 -205.85 - 99 74.7675 286 0 0 68.9269 -122.95 -206.062 - 99 107.297 499 3 0 -16.5008 -80.1287 -116.25 - 99 67.3461 498 3 0 -16.5376 -80.25 -116.204 - 99 126.308 497 3 0 -16.7064 -80.45 -116.123 - 99 53.057 496 3 0 -17.0058 -80.65 -115.979 - 99 162.54 814 3 1 -17.0929 -80.7577 -114.85 - 99 66.1383 706 7 1 -38.6595 -82.592 5.17388 - 99 28.0176 707 7 1 -38.65 -82.5803 5.20346 - 99 16.2432 551 3 0 -24.8619 -69.704 -115.93 -Number of digits in this event = 18 +Number of tracker hits in this event = 15 + 99 121.751 902 4 1 0.457175 -0.170896 -84.45 + 99 120.838 899 4 0 0.472859 -0.173806 -85.85 + 99 102.976 903 3 1 0.763784 -0.19673 -114.45 + 99 126.609 899 3 0 0.779301 -0.202012 -115.85 + 99 136.067 905 2 1 1.09322 -0.285277 -144.45 + 99 144.231 898 2 0 1.11361 -0.290112 -145.85 + 99 155.454 907 1 1 1.51142 -0.383795 -174.45 + 99 114.169 898 1 0 1.5354 -0.40419 -175.85 + 99 110.73 909 0 1 2.01419 -0.844312 -204.45 + 99 405.893 895 0 0 2.04291 -0.873192 -205.85 + 99 159.987 900 5 0 -1.19257 0.152926 -55.85 + 99 374.711 901 5 0 -1.34013 0.25 -55.9615 + 99 9.81722 899 5 0 -2.04254 -0.05 -55.9521 + 99 156.262 583 1 1 -63.3703 29.1775 -174.515 + 99 70.5179 582 1 1 -63.45 29.1436 -174.465 +Number of digits in this event = 12 Run terminated. Run Summary Number of events processed : 100 - User=2.69s Real=3.21s Sys=0.01s + User=1.94s Real=1.95s Sys=0.01s End of Run 2 Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== -Number of memory pools allocated: 18 of which, static: 0 -Dynamic pools deleted: 18 / Total memory freed: 0.33 MB +Number of memory pools allocated: 19 of which, static: 0 +Dynamic pools deleted: 19 / Total memory freed: 0.33 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/hadrontherapy/CMakeLists.txt b/examples/advanced/hadrontherapy/CMakeLists.txt index 07a27990ae..bf30b3b9c8 100644 --- a/examples/advanced/hadrontherapy/CMakeLists.txt +++ b/examples/advanced/hadrontherapy/CMakeLists.txt @@ -62,6 +62,7 @@ endif() set(EXAMPLEhadrontherapy_SCRIPTS clean.sh batch.mac + ModoulWeight.txt macro/GUIPersonalisation.mac macro/carbon_beamline.mac macro/detectorGeometry.mac diff --git a/examples/advanced/hadrontherapy/History b/examples/advanced/hadrontherapy/History index 7f83503972..664dba4403 100644 --- a/examples/advanced/hadrontherapy/History +++ b/examples/advanced/hadrontherapy/History @@ -7,6 +7,8 @@ http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy ==================================================== History file of the Hadrontherapy application ==================================================== +19.05.2016 F. Romano, B. Jia Tag: hadrontherapy-V10-02-00 + - new modulator class implemented 31.10.2015 F. Romano, J. Pipek Tag: hadrontherapy-V10-01-03 - general revisiion and commetns fixed 21.01.2015 J. Apostolakis Tag: hadrontherapy-V10-01-02 diff --git a/examples/advanced/hadrontherapy/ModoulWeight.txt b/examples/advanced/hadrontherapy/ModoulWeight.txt new file mode 100644 index 0000000000..9d31ad22ef --- /dev/null +++ b/examples/advanced/hadrontherapy/ModoulWeight.txt @@ -0,0 +1,24 @@ +NumberOfStep 22 +# Thickness Relative_Weight +Step1 0 .14445 +Stept2 .8 .05665 +Step3 1.6 .05049 +Step4 2.4 .04239 +Step5 3.2 .04313 +Step6 4.0 .03879 +Step7 4.8 .04182 +Step8 5.6 .03422 +Step9 6.4 .03469 +Step10 7.2 .03589 +Step11 8.0 .03633 +Step12 8.8 .03842 +Step13 9.6 .03688 +Step14 10.4 .03705 +Step15 11.2 .03773 +Step16 12.0 .03968 +Step17 12.8 .04058 +Step18 13.6 .03903 +Step19 14.4 .04370 +Step20 15.2 .03981 +Step21 16.0 .05226 +Step22 16.8 .03603 diff --git a/examples/advanced/hadrontherapy/hadrontherapy.out b/examples/advanced/hadrontherapy/hadrontherapy.out deleted file mode 100644 index 9c5613d707..0000000000 --- a/examples/advanced/hadrontherapy/hadrontherapy.out +++ /dev/null @@ -1,603 +0,0 @@ - - ############################################ - !!! WARNING - FPE detection is activated !!! - ############################################ - -************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) - Copyright : Geant4 Collaboration - Reference : NIM A 506 (2003), 250-303 - WWW : http://cern.ch/geant4 -************************************************************* - -Activating geometry default -Going to register Parallel world...... done -Using HadrontherapyPhysicsList() -Visualization Manager instantiating with verbosity "warnings (3)"... -Visualization Manager initialising... -Registering graphics systems... - -You have successfully registered the following graphics systems. -Current available graphics systems are: -ASCIITree (ATree) -DAWNFILE (DAWNFILE) -G4HepRep (HepRepXML) -G4HepRepFile (HepRepFile) -RayTracer (RayTracer) -VRML1FILE (VRML1FILE) -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) - -Registering model factories... - -You have successfully registered the following model factories. -Registered model factories: - generic - drawByCharge - drawByParticleID - drawByOriginVolume - drawByAttribute - -Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter - attributeFilter - -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. -Available colours: - black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow - -/tracking/verbose 0 -/run/verbose 1 -/event/verbose 0 -/Physics/addPhysics standard_opt4 -THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardPhysics_option4 -/run/initialize -HadrontherapyMatrix: Memory space to store physical dose into 200 voxels has been allocated -/run/geometryModified -The (X,Y,Z) dimensions of the phantom are : (40 cm ,40 cm ,40 cm ) -The (X,Y,Z) dimensions of the detector are : (4 cm ,4 cm ,4 cm ) -Displacement between Phantom and World is: DX= 20 cm DY= 0 fm DZ= 0 fm -The (X,Y,Z) sizes of the Voxels are: (200 um ,4 cm ,4 cm ) -The number of Voxels along (X,Y,Z) is: (200,1,1) - G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used -### G4EmConfigurator::AddModels n= 0 -PhysicsList::SetCuts:CutLength : 1 mm -/gps/pos/shape Circle -/gps/pos/centre -310. 0. 0. cm -/gps/pos/radius 0. mm -/gps/pos/sigma_r 2. mm -/gps/particle proton -/gps/pos/type Beam -/gps/pos/rot1 0 1 0 -/gps/pos/rot2 0 0 1 -/gps/ang/rot1 0 0 1 -/gps/ang/rot2 0 1 0 -/gps/ang/type beam1d -/gps/ang/sigma_r 0. deg -/gps/ene/type Gauss -/gps/ene/mono 62 MeV -/gps/ene/sigma 0.3 MeV -/Step/waterPhantomStepMax 1 mm -/changePhantom/size 40 40 40 cm -/changePhantom/position 20 0 0 cm -/changeDetector/size 4 4 4 cm -/changeDetector/voxelSize 1 40 40 mm -/changeDetector/displacement 0 18 18 cm -/changePhantom/update -HadrontherapyMatrix: Memory space to store physical dose into 40 voxels has been allocated -/run/geometryModified -The (X,Y,Z) dimensions of the phantom are : (40 cm ,40 cm ,40 cm ) -The (X,Y,Z) dimensions of the detector are : (4 cm ,4 cm ,4 cm ) -Displacement between Phantom and World is: DX= 20 cm DY= 0 fm DZ= 0 fm -The (X,Y,Z) sizes of the Voxels are: (1 mm ,4 cm ,4 cm ) -The number of Voxels along (X,Y,Z) is: (40,1,1) -/event/printEventNumber 100 -/run/beamOn 500 - -### === Deexcitation model UAtomDeexcitation is activated for 2 regions: - DefaultRegionForTheWorld - DetectorLog - -phot: for gamma SubType= 12 BuildTable= 0 - LambdaPrime table from 200 keV to 10 TeV in 154 bins - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila FluoActive - -compt: for gamma SubType= 13 BuildTable= 1 - Lambda table from 100 eV to 1 MeV, 20 bins per decade, spline: 1 - LambdaPrime table from 1 MeV to 10 TeV in 140 bins - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LowEPComptonModel : Emin= 0 eV Emax= 20 MeV FluoActive - KleinNishina : Emin= 20 MeV Emax= 10 TeV FluoActive - -conv: for gamma SubType= 14 BuildTable= 1 - Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PenConversion : Emin= 0 eV Emax= 80 GeV - BetheHeitlerLPM : Emin= 80 GeV Emax= 10 TeV - -Rayl: for gamma SubType= 11 BuildTable= 1 - Lambda table from 100 eV to 100 keV, 20 bins per decade, spline: 0 - LambdaPrime table from 100 keV to 10 TeV in 160 bins - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 10 TeV CullenGenerator - -msc: for e- SubType= 10 - RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV - WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV - -eIoni: for e- SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PenIoni : Emin= 0 eV Emax= 1 MeV - MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI - -eBrem: for e- SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS - eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS - -CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 - Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1 - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 100 MeV Emax= 10 TeV - -msc: for e+ SubType= 10 - RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV - WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV - -eIoni: for e+ SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PenIoni : Emin= 0 eV Emax= 1 MeV - MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI - -eBrem: for e+ SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS - eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS - -annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eplus2gg : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1 - Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1 - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 100 MeV Emax= 10 TeV - -msc: for proton SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -hIoni: for proton SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 2 MeV deltaVI - BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI - -hBrems: for proton SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 10 TeV - -hPairProd: for proton SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 13x1001 from 7.50618 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1 - Used Lambda table of anti_proton - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 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 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV - -ionIoni: for GenericIon SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ParamICRU73 : Emin= 0 eV Emax= 10 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 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -ionIoni: for alpha SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BraggIon : Emin= 0 eV Emax= 7.9452 MeV deltaVI - BetheBloch : Emin= 7.9452 MeV Emax= 10 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 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -hIoni: for anti_proton SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI - BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI - -hBrems: for anti_proton SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 10 TeV - -hPairProd: for anti_proton SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 13x1001 from 7.50618 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1 - Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1 - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 TeV - -nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV - -msc: for kaon+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -hIoni: for kaon+ SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 1.05231 MeV deltaVI - BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI - -hBrems: for kaon+ SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 10 TeV - -hPairProd: for kaon+ SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 14x1001 from 3.94942 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1 - Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1 - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 TeV - -msc: for kaon- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -hIoni: for kaon- SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV deltaVI - BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI - -hBrems: for kaon- SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 10 TeV - -hPairProd: for kaon- SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 14x1001 from 3.94942 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1 - Used Lambda table of kaon+ - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 TeV - -msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -muIoni: for mu+ SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 200 keV deltaVI - BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI - MuBetheBloch : Emin= 1 GeV Emax= 10 TeV - -muBrems: for mu+ SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MuBrem : Emin= 0 eV Emax= 10 TeV - -muPairProd: for mu+ SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 17x1001 from 1 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - muPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1 - Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1 - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 TeV - -msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -muIoni: for mu- SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI - BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI - MuBetheBloch : Emin= 1 GeV Emax= 10 TeV - -muBrems: for mu- SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MuBrem : Emin= 0 eV Emax= 10 TeV - -muPairProd: for mu- SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 17x1001 from 1 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - muPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1 - Used Lambda table of mu+ - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 TeV - -msc: for pi+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -hIoni: for pi+ SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 297.505 keV deltaVI - BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI - -hBrems: for pi+ SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 10 TeV - -hPairProd: for pi+ SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 16x1001 from 1.11656 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1 - Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1 - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 TeV - -msc: for pi- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV - -hIoni: for pi- SubType= 2 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 297.505 keV deltaVI - BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI - -hBrems: for pi- SubType= 3 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 10 TeV - -hPairProd: for pi- SubType= 4 - dE/dx and range tables from 100 eV to 10 TeV in 220 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 - Sampling table 16x1001 from 1.11656 GeV to 10 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 10 TeV - -CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 - Used Lambda table of pi+ - 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 10 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_Al - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 6.90363 keV e- 598.345 keV e+ 570.85 keV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 2 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 : 3 used in the geometry : Yes - Material : G4_Ta - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 101.501 keV e- 2.01928 MeV e+ 1.88805 MeV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 4 used in the geometry : Yes - Material : G4_KAPTON - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 2.98035 keV e- 419.056 keV e+ 405.209 keV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 5 used in the geometry : Yes - Material : Brass - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 24.2568 keV e- 1.32231 MeV e+ 1.24471 MeV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 6 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.78665 keV e- 389.196 keV e+ 376.336 keV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 7 used in the geometry : Yes - Material : G4_Cu - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 24.7508 keV e- 1.39534 MeV e+ 1.31345 MeV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 8 used in the geometry : Yes - Material : G4_MYLAR - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 3.02067 keV e- 419.056 keV e+ 405.209 keV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 9 used in the geometry : Yes - Material : G4_WATER - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 100 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 10 used in the geometry : Yes - Material : G4_WATER - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 100 keV - Region(s) which use this couple : - DetectorLog - -==================================================================== - -### Run 0 starts. -Run 0 starts ... - ----> Begin of Event: 0 - ----> Begin of Event: 100 - ----> Begin of Event: 200 - ----> Begin of Event: 300 - ----> Begin of Event: 400 - Run terminated. -Run Summary - Number of events processed : 500 - User=5.49s Real=5.55s Sys=0.04s -Dose is being written to 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.6 MB -============================================================ -RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh b/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh index e777371b98..0a9c773649 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh @@ -23,12 +23,26 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// Hadrontherapy advanced example for Geant4 -// See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy +// This is the *BASIC* version of Hadrontherapy, a Geant4-based application +// See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy +// +// Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request +// the *COMPLETE* version of this program, together with its documentation; +// Hadrontherapy (both basic and full version) are supported by the Italian INFN +// Institute in the framework of the MC-INFN Group +// #ifndef HadrontherapyModulator_H #define HadrontherapyModulator_H 1 +#include "globals.hh" +#include +#include "G4Material.hh" +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "HadrontherapyModulatorMessenger.hh" + +// using namespace std; class G4Tubs; class G4LogicalVolume; class G4VPhysicalVolume; @@ -43,19 +57,27 @@ public: void BuildModulator(G4VPhysicalVolume*); void SetModulatorAngle(G4double); + void SetModulatorMaterial(G4String); + void SetModulatorPosition(G4ThreeVector); + void SetModulatorInnerRadius(G4double); + void SetModulatorOuterRadius(G4double); + void ModulatorDefaultProperties(); + void ModulatorPropertiesFromFile(G4String); + void GetDataFromFile(G4String value); + void GetStepInformation(); + void BuildSteps(); private: + std::ifstream File; + + G4LogicalVolume * logicMotherMod ; + G4VPhysicalVolume* physiMotherMod; + + G4Material* Mod0Mater; + G4Material* ModMater; - G4RotationMatrix* rm; - G4VPhysicalVolume* physiMotherMod; - - G4Tubs* solidMod0; - G4LogicalVolume* logicMod0; - G4VPhysicalVolume* physiMod0; - - - G4Tubs* solidMod1; - G4LogicalVolume* logicMod1; + G4Tubs* solidMod1; + G4LogicalVolume* logicMod1; G4VPhysicalVolume* physiMod1; G4Tubs* solidMod2; @@ -69,291 +91,26 @@ private: G4Tubs* solidMod4; G4LogicalVolume* logicMod4; G4VPhysicalVolume* physiMod4; + + G4double pi; + G4int StepNumbers; + G4double* Weight; + G4double* StepThickness; + G4double* StartingAngle; + G4double* SpanningAngle; + G4ThreeVector* PositionMod; + G4Tubs** solidMod; + G4LogicalVolume** logicMod; + G4VPhysicalVolume** physiMod; - G4Tubs* solidMod5; - G4LogicalVolume* logicMod5; - G4VPhysicalVolume* physiMod5; + G4RotationMatrix* rm; - G4Tubs* solidMod6; - G4LogicalVolume* logicMod6; - G4VPhysicalVolume* physiMod6; - - G4Tubs* solidMod7; - G4LogicalVolume* logicMod7; - G4VPhysicalVolume* physiMod7; - - G4Tubs* solidMod8; - G4LogicalVolume* logicMod8; - G4VPhysicalVolume* physiMod8; - - G4Tubs* solidMod9; - G4LogicalVolume* logicMod9; - G4VPhysicalVolume* physiMod9; - - G4Tubs* solidMod10; - G4LogicalVolume* logicMod10; - G4VPhysicalVolume* physiMod10; - - G4Tubs* solidMod11; - G4LogicalVolume* logicMod11; - G4VPhysicalVolume* physiMod11; - - G4Tubs* solidMod12; - G4LogicalVolume* logicMod12; - G4VPhysicalVolume* physiMod12; - - G4Tubs* solidMod13; - G4LogicalVolume* logicMod13; - G4VPhysicalVolume* physiMod13; - - G4Tubs* solidMod14; - G4LogicalVolume* logicMod14; - G4VPhysicalVolume* physiMod14; - - G4Tubs* solidMod15; - G4LogicalVolume* logicMod15; - G4VPhysicalVolume* physiMod15; - - G4Tubs* solidMod16; - G4LogicalVolume* logicMod16; - G4VPhysicalVolume* physiMod16; - - G4Tubs* solidMod17; - G4LogicalVolume* logicMod17; - G4VPhysicalVolume* physiMod17; - - G4Tubs* solidMod18; - G4LogicalVolume* logicMod18; - G4VPhysicalVolume* physiMod18; - - G4Tubs* solidMod20; - G4LogicalVolume* logicMod20; - G4VPhysicalVolume* physiMod20; + G4String FileName; + HadrontherapyModulatorMessenger* ModulatorMessenger; + G4double innerRadiusOfTheTube ; + G4double outerRadiusOfTheTube ; + - G4Tubs* solidMod21; - G4LogicalVolume* logicMod21; - G4VPhysicalVolume* physiMod21; - - G4Tubs* solidMod22; - G4LogicalVolume* logicMod22; - G4VPhysicalVolume* physiMod22; - - G4Tubs* solidMod23; - G4LogicalVolume* logicMod23; - G4VPhysicalVolume* physiMod23; - - G4Tubs* solidMod24; - G4LogicalVolume* logicMod24; - G4VPhysicalVolume* physiMod24; - - G4Tubs* solidMod25; - G4LogicalVolume* logicMod25; - G4VPhysicalVolume* physiMod25; - - G4Tubs* solidMod26; - G4LogicalVolume* logicMod26; - G4VPhysicalVolume* physiMod26; - - G4Tubs* solidMod27; - G4LogicalVolume* logicMod27; - G4VPhysicalVolume* physiMod27; - - G4Tubs* solidMod28; - G4LogicalVolume* logicMod28; - G4VPhysicalVolume* physiMod28; - - G4Tubs* solidMod29; - G4LogicalVolume* logicMod29; - G4VPhysicalVolume* physiMod29; - - G4Tubs* solidMod30; - G4LogicalVolume* logicMod30; - G4VPhysicalVolume* physiMod30; - - G4Tubs* solidMod31; - G4LogicalVolume* logicMod31; - G4VPhysicalVolume* physiMod31; - - G4Tubs* solidMod32; - G4LogicalVolume* logicMod32; - G4VPhysicalVolume* physiMod32; - - G4Tubs* solidMod33; - G4LogicalVolume* logicMod33; - G4VPhysicalVolume* physiMod33; - - G4Tubs* solidMod34; - G4LogicalVolume* logicMod34; - G4VPhysicalVolume* physiMod34; - - G4Tubs* solidMod35; - G4LogicalVolume* logicMod35; - G4VPhysicalVolume* physiMod35; - - G4Tubs* solidMod36; - G4LogicalVolume* logicMod36; - G4VPhysicalVolume* physiMod36; - - G4Tubs* solidMod37; - G4LogicalVolume* logicMod37; - G4VPhysicalVolume* physiMod37; - - G4Tubs* solidMod38; - G4LogicalVolume* logicMod38; - G4VPhysicalVolume* physiMod38; - - - G4Tubs* solidMod40; // pointer to the - G4LogicalVolume* logicMod40; - G4VPhysicalVolume* physiMod40; - - G4Tubs* solidMod41; - G4LogicalVolume* logicMod41; - G4VPhysicalVolume* physiMod41; - - G4Tubs* solidMod42; - G4LogicalVolume* logicMod42; - G4VPhysicalVolume* physiMod42; - - G4Tubs* solidMod43; - G4LogicalVolume* logicMod43; - G4VPhysicalVolume* physiMod43; - - G4Tubs* solidMod44; - G4LogicalVolume* logicMod44; - G4VPhysicalVolume* physiMod44; - - G4Tubs* solidMod45; - G4LogicalVolume* logicMod45; - G4VPhysicalVolume* physiMod45; - - G4Tubs* solidMod46; - G4LogicalVolume* logicMod46; - G4VPhysicalVolume* physiMod46; - - G4Tubs* solidMod47; - G4LogicalVolume* logicMod47; - G4VPhysicalVolume* physiMod47; - - G4Tubs* solidMod48; - G4LogicalVolume* logicMod48; - G4VPhysicalVolume* physiMod48; - - G4Tubs* solidMod49; - G4LogicalVolume* logicMod49; - G4VPhysicalVolume* physiMod49; - - G4Tubs* solidMod50; - G4LogicalVolume* logicMod50; - G4VPhysicalVolume* physiMod50; - - G4Tubs* solidMod51; - G4LogicalVolume* logicMod51; - G4VPhysicalVolume* physiMod51; - - G4Tubs* solidMod52; - G4LogicalVolume* logicMod52; - G4VPhysicalVolume* physiMod52; - - G4Tubs* solidMod53; - G4LogicalVolume* logicMod53; - G4VPhysicalVolume* physiMod53; - - G4Tubs* solidMod54; - G4LogicalVolume* logicMod54; - G4VPhysicalVolume* physiMod54; - - G4Tubs* solidMod55; - G4LogicalVolume* logicMod55; - G4VPhysicalVolume* physiMod55; - - G4Tubs* solidMod56; - G4LogicalVolume* logicMod56; - G4VPhysicalVolume* physiMod56; - - G4Tubs* solidMod57; - G4LogicalVolume* logicMod57; - G4VPhysicalVolume* physiMod57; - - G4Tubs* solidMod58; - G4LogicalVolume* logicMod58; - G4VPhysicalVolume* physiMod58; - - G4Tubs* solidMod60; - G4LogicalVolume* logicMod60; - G4VPhysicalVolume* physiMod60; - - G4Tubs* solidMod61; - G4LogicalVolume* logicMod61; - G4VPhysicalVolume* physiMod61; - - G4Tubs* solidMod62; - G4LogicalVolume* logicMod62; - G4VPhysicalVolume* physiMod62; - - G4Tubs* solidMod63; - G4LogicalVolume* logicMod63; - G4VPhysicalVolume* physiMod63; - - G4Tubs* solidMod64; - G4LogicalVolume* logicMod64; - G4VPhysicalVolume* physiMod64; - - G4Tubs* solidMod65; - G4LogicalVolume* logicMod65; - G4VPhysicalVolume* physiMod65; - - G4Tubs* solidMod66; - G4LogicalVolume* logicMod66; - G4VPhysicalVolume* physiMod66; - - G4Tubs* solidMod67; - G4LogicalVolume* logicMod67; - G4VPhysicalVolume* physiMod67; - - G4Tubs* solidMod68; - G4LogicalVolume* logicMod68; - G4VPhysicalVolume* physiMod68; - - G4Tubs* solidMod69; - G4LogicalVolume* logicMod69; - G4VPhysicalVolume* physiMod69; - - G4Tubs* solidMod70; - G4LogicalVolume* logicMod70; - G4VPhysicalVolume* physiMod70; - - G4Tubs* solidMod71; - G4LogicalVolume* logicMod71; - G4VPhysicalVolume* physiMod71; - - G4Tubs* solidMod72; - G4LogicalVolume* logicMod72; - G4VPhysicalVolume* physiMod72; - - G4Tubs* solidMod73; - G4LogicalVolume* logicMod73; - G4VPhysicalVolume* physiMod73; - - G4Tubs* solidMod74; - G4LogicalVolume* logicMod74; - G4VPhysicalVolume* physiMod74; - - G4Tubs* solidMod75; - G4LogicalVolume* logicMod75; - G4VPhysicalVolume* physiMod75; - - G4Tubs* solidMod76; - G4LogicalVolume* logicMod76; - G4VPhysicalVolume* physiMod76; - - G4Tubs* solidMod77; - G4LogicalVolume* logicMod77; - G4VPhysicalVolume* physiMod77; - - G4Tubs* solidMod78; - G4LogicalVolume* logicMod78; - G4VPhysicalVolume* physiMod78; }; #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh b/examples/advanced/hadrontherapy/include/HadrontherapyModulatorMessenger.hh similarity index 53% rename from examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh rename to examples/advanced/hadrontherapy/include/HadrontherapyModulatorMessenger.hh index ef0fb12f17..855cc78deb 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyModulatorMessenger.hh @@ -23,73 +23,60 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10DetectorMessenger.hh -/// \brief Definition of the Em10DetectorMessenger class +// This is the *BASIC* version of Hadrontherapy, a Geant4-based application +// See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy // +// Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request +// the *COMPLETE* version of this program, together with its documentation; +// Hadrontherapy (both basic and full version) are supported by the Italian INFN +// Institute in the framework of the MC-INFN Group // -// $Id: Em10DetectorMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef Em10DetectorMessenger_h -#define Em10DetectorMessenger_h 1 +#ifndef HadrontherapyModulatorMessenger_h +#define HadrontherapyModulatorMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em10DetectorConstruction; +class HadrontherapyModulator; class G4UIdirectory; -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWith3VectorAndUnit; - -class Em10DetectorMessenger: public G4UImessenger +class HadrontherapyModulatorMessenger: public G4UImessenger { public: - Em10DetectorMessenger(Em10DetectorConstruction* ); - ~Em10DetectorMessenger(); + HadrontherapyModulatorMessenger(HadrontherapyModulator*); + ~HadrontherapyModulatorMessenger(); void SetNewValue(G4UIcommand*, G4String); - void SetNewValue(G4UIcommand*, G4int); - private: - Em10DetectorConstruction* Em10Detector; - - G4UIdirectory* Em10detDir; +private: - G4UIcmdWithAnInteger* ModelCmd; - G4UIcmdWithAnInteger* FoilNumCmd; + // Pointer to the modulator wheel + HadrontherapyModulator* Modulator; - G4UIcmdWithAString* AbsMaterCmd; - G4UIcmdWithAString* DetectorSetUpCmd; - G4UIcmdWithADoubleAndUnit* AbsThickCmd; - G4UIcmdWithADoubleAndUnit* AbsRadCmd; + G4UIdirectory* modulatorDir; // Control of the modulator + + G4UIcmdWithADoubleAndUnit* modulatorAngleCmd; + // UI command to rotate the modulator wheel - G4UIcmdWithAString* RadiatorMaterCmd; - G4UIcmdWithADoubleAndUnit* RadiatorThickCmd; - - G4UIcmdWithADoubleAndUnit* GasGapThickCmd; - - G4UIcmdWithADoubleAndUnit* AbsZposCmd; - - G4UIcmdWithAString* WorldMaterCmd; - G4UIcmdWithADoubleAndUnit* WorldZCmd; - G4UIcmdWithADoubleAndUnit* WorldRCmd; - - G4UIcmdWithADoubleAndUnit* MagFieldCmd; - G4UIcmdWithoutParameter* UpdateCmd; - - // G4UIcmdWithADoubleAndUnit* ElectronCutCmd; - // G4UIcmdWithADoubleAndUnit* PositronCutCmd; - // G4UIcmdWithADoubleAndUnit* GammaCutCmd; + G4UIcmdWithAString* modulatorMatCmd; + // UI command to set the material of the modulator wheel + + G4UIcmdWithAString* modulatorExternalFile; + // UI command to set an external file for inputing modulator properties + + G4UIcmdWith3VectorAndUnit* modulatorPositionCmd; + // UI command to change the position of the modulator in the the beam line + G4UIcmdWithADoubleAndUnit* modulatorOuterRadiusCmd; + // UI command to set the outer radius of the modulator wheel + + G4UIcmdWithADoubleAndUnit* modulatorInnerRadiusCmd; + // UI command to set the inner radius of the modulator wheel }; - #endif diff --git a/examples/advanced/hadrontherapy/macro/modulator.loop b/examples/advanced/hadrontherapy/macro/modulator.loop index d5a7761edf..d6ece612f4 100644 --- a/examples/advanced/hadrontherapy/macro/modulator.loop +++ b/examples/advanced/hadrontherapy/macro/modulator.loop @@ -1,3 +1,3 @@ # macro to be run in loop /modulator/angle 1 deg -/run/beamOn 100 +/run/beamOn 10 diff --git a/examples/advanced/hadrontherapy/macro/modulatorMacro.mac b/examples/advanced/hadrontherapy/macro/modulatorMacro.mac index 6d168281ae..3a339fc558 100644 --- a/examples/advanced/hadrontherapy/macro/modulatorMacro.mac +++ b/examples/advanced/hadrontherapy/macro/modulatorMacro.mac @@ -42,15 +42,16 @@ # Visualisation # /vis/scene/create -/vis/open OGL +/vis/open OGLI /vis/viewer/flush /vis/viewer/set/viewpointThetaPhi 50 130 deg -/vis/viewer/zoom 3.5 -/vis/viewer/pan -60 40 cm +/vis/scene/add/axes 0 0 0 0.1 m +/vis/viewer/zoom 1 +/vis/viewer/panTo -80 40 cm /vis/scene/add/trajectories /vis/viewer/update -/vis/scene/add/trajectories /vis/scene/endOfEventAction accumulate +/vis/viewer/set/hiddenMarker 1 ######################### # Set the primary particle type, # energy and position along the X direction @@ -58,40 +59,72 @@ #---------------------------gps----------------- /gps/pos/shape Circle -/gps/pos/centre -310. 0. 0. cm ##-270 +/gps/pos/centre -310. 0. 0. cm /gps/pos/radius 0. mm -/gps/pos/sigma_r 2. mm ##3 +/gps/pos/sigma_r 2.5 mm /gps/particle proton /gps/pos/type Beam + # the incident surface is in the y-z plane /gps/pos/rot1 0 1 0 /gps/pos/rot2 0 0 1 +# the beam is travelling along the x-axis without any angular dispersion (angular despersion set to 0.0) +# + +/gps/ang/rot1 0 0 1 +/gps/ang/rot2 0 1 0 +/gps/ang/type beam1d +/gps/ang/sigma_r 0. deg + # the beam energy is in gaussian profile # /gps/ene/type Gauss -/gps/energy 62 MeV -/gps/ene/sigma 300 keV -/gps/direction 1 0 0 +/gps/ene/mono 62 MeV +/gps/ene/sigma 0.3 MeV ########################## # Set here the cut and the step max for the tracking. # Suggested values of cut and step: -/run/setCut 0.1 mm -/Step/waterPhantomStepMax 0.01 mm +# +#/Physics/setDetectorCuts 0.001 mm +#/Physics/setCuts 1 mm +/Step/waterPhantomStepMax 0.005 mm + +/changePhantom/size 40 40 40 cm +/changePhantom/position 20 0 0 cm + +/changeDetector/size 4 4 4 cm +/changeDetector/voxelSize .1 40 40 mm + +/changeDetector/displacement 0 18. 18. cm +/changePhantom/update # IF YOU WANT A RANGE SHIFTER PLEASE CHANGE # THE FOLLOWIG PARAMETERS # SETTING FOR THE RANGE SHIFTER -/beamLine/RangeShifter/RSMat G4_AIR -/beamLine/RangeShifter/thickness 1 cm +# /beamLine/RangeShifter/G4_PLEXIGLASS +# /beamLine/RangeShifter/thickness 1 cm +########################################################## +### Set the modulator properties +/modulator/ReadData + +# You can set as a parameter your data file in a right format instead if you left blank or input default, .. +# .. data will be read from the default file "ModulWeight.txt" + +/modulator/RMWMat G4_PLEXIGLASS +/modulator/position -2160.5 30 50 mm +/modulator/innerRadius 2.5 cm +/modulator/outRadius 9.5 cm +############################################################ +/event/printEventNumber 1000 # START OF THE MODULATOR ROTATION # IT CONSISTS IN A COMPLETE ROTATION diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc b/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc index 2d9217b008..a9049bdfd2 100755 --- a/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc @@ -23,8 +23,14 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// Hadrontherapy advanced example for Geant4 -// See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy +// This is the *BASIC* version of Hadrontherapy, a Geant4-based application +// See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy +// +// Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request +// the *COMPLETE* version of this program, together with its documentation; +// Hadrontherapy (both basic and full version) are supported by the Italian INFN +// Institute in the framework of the MC-INFN Group +// #include @@ -46,85 +52,50 @@ #include "G4ios.hh" #include "G4RunManager.hh" #include "G4NistManager.hh" +#include -HadrontherapyModulator::HadrontherapyModulator():physiMotherMod(0), - solidMod0(0), logicMod0(0), physiMod0(0), +using namespace std; + +HadrontherapyModulator::HadrontherapyModulator(): physiMotherMod(0), solidMod1(0), logicMod1(0), physiMod1(0), solidMod2(0), logicMod2(0), physiMod2(0), solidMod3(0), logicMod3(0), physiMod3(0), solidMod4(0), logicMod4(0), physiMod4(0), - solidMod5(0), logicMod5(0), physiMod5(0), - solidMod6(0), logicMod6(0), physiMod6(0), - solidMod7(0), logicMod7(0), physiMod7(0), - solidMod8(0), logicMod8(0), physiMod8(0), - solidMod9(0), logicMod9(0), physiMod9(0), - solidMod10(0), logicMod10(0), physiMod10(0), - solidMod11(0), logicMod11(0), physiMod11(0), - solidMod12(0), logicMod12(0), physiMod12(0), - solidMod13(0), logicMod13(0), physiMod13(0), - solidMod14(0), logicMod14(0), physiMod14(0), - solidMod15(0), logicMod15(0), physiMod15(0), - solidMod16(0), logicMod16(0), physiMod16(0), - solidMod17(0), logicMod17(0), physiMod17(0), - solidMod18(0), logicMod18(0), physiMod18(0), - solidMod20(0), logicMod20(0), physiMod20(0), - solidMod21(0), logicMod21(0), physiMod21(0), - solidMod22(0), logicMod22(0), physiMod22(0), - solidMod23(0), logicMod23(0), physiMod23(0), - solidMod24(0), logicMod24(0), physiMod24(0), - solidMod25(0), logicMod25(0), physiMod25(0), - solidMod26(0), logicMod26(0), physiMod26(0), - solidMod27(0), logicMod27(0), physiMod27(0), - solidMod28(0), logicMod28(0), physiMod28(0), - solidMod29(0), logicMod29(0), physiMod29(0), - solidMod30(0), logicMod30(0), physiMod30(0), - solidMod31(0), logicMod31(0), physiMod31(0), - solidMod32(0), logicMod32(0), physiMod32(0), - solidMod33(0), logicMod33(0), physiMod33(0), - solidMod34(0), logicMod34(0), physiMod34(0), - solidMod35(0), logicMod35(0), physiMod35(0), - solidMod36(0), logicMod36(0), physiMod36(0), - solidMod37(0), logicMod37(0), physiMod37(0), - solidMod38(0), logicMod38(0), physiMod38(0), - solidMod40(0), logicMod40(0), physiMod40(0), - solidMod41(0), logicMod41(0), physiMod41(0), - solidMod42(0), logicMod42(0), physiMod42(0), - solidMod43(0), logicMod43(0), physiMod43(0), - solidMod44(0), logicMod44(0), physiMod44(0), - solidMod45(0), logicMod45(0), physiMod45(0), - solidMod46(0), logicMod46(0), physiMod46(0), - solidMod47(0), logicMod47(0), physiMod47(0), - solidMod48(0), logicMod48(0), physiMod48(0), - solidMod49(0), logicMod49(0), physiMod49(0), - solidMod50(0), logicMod50(0), physiMod50(0), - solidMod51(0), logicMod51(0), physiMod51(0), - solidMod52(0), logicMod52(0), physiMod52(0), - solidMod53(0), logicMod53(0), physiMod53(0), - solidMod54(0), logicMod54(0), physiMod54(0), - solidMod55(0), logicMod55(0), physiMod55(0), - solidMod56(0), logicMod56(0), physiMod56(0), - solidMod57(0), logicMod57(0), physiMod57(0), - solidMod58(0), logicMod58(0), physiMod58(0), - solidMod60(0), logicMod60(0), physiMod60(0), - solidMod61(0), logicMod61(0), physiMod61(0), - solidMod62(0), logicMod62(0), physiMod62(0), - solidMod63(0), logicMod63(0), physiMod63(0), - solidMod64(0), logicMod64(0), physiMod64(0), - solidMod65(0), logicMod65(0), physiMod65(0), - solidMod66(0), logicMod66(0), physiMod66(0), - solidMod67(0), logicMod67(0), physiMod67(0), - solidMod68(0), logicMod68(0), physiMod68(0), - solidMod69(0), logicMod69(0), physiMod69(0), - solidMod70(0), logicMod70(0), physiMod70(0), - solidMod71(0), logicMod71(0), physiMod71(0), - solidMod72(0), logicMod72(0), physiMod72(0), - solidMod73(0), logicMod73(0), physiMod73(0), - solidMod74(0), logicMod74(0), physiMod74(0), - solidMod75(0), logicMod75(0), physiMod75(0), - solidMod76(0), logicMod76(0), physiMod76(0), - solidMod77(0), logicMod77(0), physiMod77(0), - solidMod78(0), logicMod78(0), physiMod78(0) -{ + FileName("ModoulWeight.txt") +{ + pi=4*atan(1.); + StepNumbers=22; + Weight=new G4double[StepNumbers]; + StepThickness=new G4double[StepNumbers]; + StartingAngle=new G4double[StepNumbers]; + SpanningAngle=new G4double[StepNumbers]; + PositionMod=new G4ThreeVector[StepNumbers]; + + + solidMod=new G4Tubs *[StepNumbers]; + logicMod=new G4LogicalVolume *[StepNumbers]; + physiMod=new G4VPhysicalVolume *[(4*(StepNumbers-1)+1)]; + + for (G4int i=0;i rotateY(phi); @@ -133,1006 +104,306 @@ HadrontherapyModulator::HadrontherapyModulator():physiMotherMod(0), HadrontherapyModulator::~HadrontherapyModulator() { delete rm; + delete [] Weight; + delete [] StepThickness; + delete [] StartingAngle; + delete [] SpanningAngle; + delete [] PositionMod; + delete [] solidMod; + delete [] logicMod; + delete [] physiMod; + delete ModulatorMessenger; } + ///////////////////////////////////////////////////////////////////////////// +void HadrontherapyModulator::ModulatorDefaultProperties() +{ +/* Here we initialize the step properties of Modulator wheel, you can create your +specific modulator by changing the values in this class or writing them in an external +file and activate reading from file via a macrofile. */ + + StepThickness[0]=0; Weight[0]=.14445; + StepThickness[1]=.8; Weight[1]=.05665; + StepThickness[2]=1.6; Weight[2]=.05049; + StepThickness[3]=2.4; Weight[3]=.04239; + StepThickness[4]=3.2; Weight[4]=.04313; + StepThickness[5]=4.0; Weight[5]=.03879; + StepThickness[6]=4.8; Weight[6]=.04182; + StepThickness[7]=5.6; Weight[7]=.03422; + StepThickness[8]=6.4; Weight[8]=.03469; + StepThickness[9]=7.2; Weight[9]=.03589; + StepThickness[10]=8.0; Weight[10]=.03633; + StepThickness[11]=8.8; Weight[11]=.03842; + StepThickness[12]=9.6; Weight[12]=.03688; + StepThickness[13]=10.4; Weight[13]=.03705; + StepThickness[14]=11.2; Weight[14]=.03773; + StepThickness[15]=12.0; Weight[15]=.03968; + StepThickness[16]=12.8; Weight[16]=.04058; + StepThickness[17]=13.6; Weight[17]=.03903; + StepThickness[18]=14.4; Weight[18]=.04370; + StepThickness[19]=15.2; Weight[19]=.03981; + StepThickness[20]=16.0; Weight[20]=.05226; + StepThickness[21]=16.8; Weight[21]=.03603; + GetStepInformation(); + +} +///////////////////////////////////////////////////////////////////////////// +void HadrontherapyModulator:: ModulatorPropertiesFromFile(G4String Name) +{ + delete [] Weight; + delete [] StepThickness; + delete [] StartingAngle; + delete [] SpanningAngle; + delete [] PositionMod; + delete [] solidMod; + delete [] logicMod; + delete [] physiMod; + delete solidMod1; + delete logicMod1; + delete physiMod1; + delete solidMod2; + delete logicMod2; + delete physiMod2; + delete solidMod3; + delete logicMod3; + delete physiMod3; + delete solidMod4; + delete logicMod4; + delete physiMod4; +// The Modulator wheel properties is getting form an external file "ModoulWeight.txt" + File.open(Name, std::ios::in); + if(!File.is_open()) + { + G4cout<<" WARNING: The File with name of "<>string>> StepNumbers; + File >>string>>string>>string; + + + Weight=new G4double[StepNumbers]; + StepThickness=new G4double[StepNumbers]; + StartingAngle=new G4double[StepNumbers]; + SpanningAngle=new G4double[StepNumbers]; + PositionMod=new G4ThreeVector[StepNumbers]; + + + solidMod=new G4Tubs *[StepNumbers]; + logicMod=new G4LogicalVolume *[StepNumbers]; + physiMod=new G4VPhysicalVolume *[(4*(StepNumbers-1)+1)]; + + for(G4int i=0;i>stringX>> StepThickness[i]>>Weight[i]; + } + + GetStepInformation(); + BuildSteps(); + + + +} +//////////////////////////////////////////////////////////////////////////////// +void HadrontherapyModulator::GetStepInformation() +{ + + G4double TotalWeight=0; + // convert the absolute weight values to relative ones + for(G4int i=0;iFindOrBuildMaterial("G4_AIR", isotopes); - // You have to uncomment the following line if you want to define a PMMA material - // G4Material* PMMANist = G4NistManager::Instance()->FindOrBuildMaterial("G4_PLEXIGLASS", isotopes); - G4Material* Mod0Mater = airNist; - G4Material* ModMater = airNist; // You have to set ModMater to PMMANist if you want to change modulator material (default is air) + Mod0Mater = airNist; + ModMater = airNist; // You have to change modulator material via a macrofile (default is air) - G4double innerRadiusOfTheTube = 2.5 *cm; - G4double outerRadiusOfTheTube = 9.5 *cm; - G4double hightOfTheTube = 0.03*cm; + innerRadiusOfTheTube = 2.5 *cm; + outerRadiusOfTheTube = 9.5 *cm; // Mother of the modulator wheel G4ThreeVector positionMotherMod = G4ThreeVector(-2160.50 *mm, 30 *mm, 50 *mm); G4Box* solidMotherMod = new G4Box("MotherMod", 12 *cm, 12 *cm, 12 *cm); - G4LogicalVolume * logicMotherMod = new G4LogicalVolume(solidMotherMod, Mod0Mater,"MotherMod",0,0,0); + logicMotherMod = new G4LogicalVolume(solidMotherMod, Mod0Mater,"MotherMod",0,0,0); physiMotherMod = new G4PVPlacement(rm,positionMotherMod, "MotherMod", logicMotherMod, motherVolume, false, - 0); - + 0); + BuildSteps(); + + + + } + /////////////////////////////////////////////////////////////////////////////////////// + void HadrontherapyModulator::BuildSteps() + { //---------------------------------------------------------- // Mother volume of first quarter of the modulator //---------------------------------------------------------- - G4double hightOfTheTube0 = 5.0 *cm; - G4double startAngleOfTheTube0 = 45 *deg; + G4double hightOfTheTube0 = 10.0 *cm; + G4double startAngleOfTheTube0 = 0 *deg; G4double spanningAngleOfTheTube0 = 90 *deg; - G4RotationMatrix rm2; - rm2.rotateZ(0 *deg); + G4RotationMatrix rm1; + rm1.rotateZ(0 *deg); - G4ThreeVector positionMod0 = G4ThreeVector(0*cm,0*cm,0*cm); + G4ThreeVector positionMod1 = G4ThreeVector(0*cm,0*cm,0*cm); - solidMod0 = new G4Tubs("Mod0", + solidMod1 = new G4Tubs("Mod1", innerRadiusOfTheTube, outerRadiusOfTheTube, - hightOfTheTube0, + hightOfTheTube0/2., startAngleOfTheTube0, spanningAngleOfTheTube0); - logicMod0 = new G4LogicalVolume(solidMod0, Mod0Mater, "Mod0",0,0,0); + logicMod1 = new G4LogicalVolume(solidMod1, Mod0Mater, "Mod1",0,0,0); - physiMod0 = new G4PVPlacement(G4Transform3D(rm2, positionMod0), - logicMod0, - "Mod0", + physiMod1 = new G4PVPlacement(G4Transform3D(rm1, positionMod1), + logicMod1, + "Mod1", logicMotherMod, false, 0); //---------------------------------------------------------- - // First modulator slice + // modulator steps //---------------------------------------------------------- - - G4double startAngleOfTheTube1 = 54.267*deg; - G4double spanningAngleOfTheTube1 = 71.466*deg; + for (G4int i=1;i GeometryHasBeenModified(); + G4RunManager::GetRunManager() -> PhysicsHasBeenModified(); G4VisAttributes * red = new G4VisAttributes( G4Colour(1. ,0. ,0.)); red-> SetVisibility(true); red-> SetForceSolid(true); logicMotherMod -> SetVisAttributes(G4VisAttributes::Invisible); + + logicMod1 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod2 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod3 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod4 ->SetVisAttributes(G4VisAttributes::Invisible); + + for (G4int i=1;i SetVisAttributes(red); + } + + } - logicMod0 ->SetVisAttributes(G4VisAttributes::Invisible); - logicMod20 ->SetVisAttributes(G4VisAttributes::Invisible); - logicMod40 ->SetVisAttributes(G4VisAttributes::Invisible); - logicMod60 ->SetVisAttributes(G4VisAttributes::Invisible); - logicMod1 -> SetVisAttributes(red); - logicMod2 -> SetVisAttributes(red); - logicMod3 -> SetVisAttributes(red); - logicMod4 -> SetVisAttributes(red); - logicMod5 -> SetVisAttributes(red); - logicMod6 -> SetVisAttributes(red); - logicMod7 -> SetVisAttributes(red); - logicMod8 -> SetVisAttributes(red); - logicMod9 -> SetVisAttributes(red); - logicMod10 -> SetVisAttributes(red); - logicMod11 -> SetVisAttributes(red); - logicMod12 -> SetVisAttributes(red); - logicMod13 -> SetVisAttributes(red); - logicMod14 -> SetVisAttributes(red); - logicMod15 -> SetVisAttributes(red); - logicMod16 -> SetVisAttributes(red); - logicMod17 -> SetVisAttributes(red); - logicMod18 -> SetVisAttributes(red); - logicMod21 -> SetVisAttributes(red); - logicMod22 -> SetVisAttributes(red); - logicMod23 -> SetVisAttributes(red); - logicMod24 -> SetVisAttributes(red); - logicMod25 -> SetVisAttributes(red); - logicMod26 -> SetVisAttributes(red); - logicMod27 -> SetVisAttributes(red); - logicMod28 -> SetVisAttributes(red); - logicMod29 -> SetVisAttributes(red); - logicMod30 -> SetVisAttributes(red); - logicMod31 -> SetVisAttributes(red); - logicMod32 -> SetVisAttributes(red); - logicMod33 -> SetVisAttributes(red); - logicMod34 -> SetVisAttributes(red); - logicMod35 -> SetVisAttributes(red); - logicMod36 -> SetVisAttributes(red); - logicMod37 -> SetVisAttributes(red); - logicMod38 -> SetVisAttributes(red); - logicMod41 -> SetVisAttributes(red); - logicMod42 -> SetVisAttributes(red); - logicMod43 -> SetVisAttributes(red); - logicMod44 -> SetVisAttributes(red); - logicMod45 -> SetVisAttributes(red); - logicMod46 -> SetVisAttributes(red); - logicMod47 -> SetVisAttributes(red); - logicMod48 -> SetVisAttributes(red); - logicMod49 -> SetVisAttributes(red); - logicMod50 -> SetVisAttributes(red); - logicMod51 -> SetVisAttributes(red); - logicMod52 -> SetVisAttributes(red); - logicMod53 -> SetVisAttributes(red); - logicMod54 -> SetVisAttributes(red); - logicMod55 -> SetVisAttributes(red); - logicMod56 -> SetVisAttributes(red); - logicMod57 -> SetVisAttributes(red); - logicMod58 -> SetVisAttributes(red); - logicMod61 -> SetVisAttributes(red); - logicMod62 -> SetVisAttributes(red); - logicMod63 -> SetVisAttributes(red); - logicMod64 -> SetVisAttributes(red); - logicMod65 -> SetVisAttributes(red); - logicMod66 -> SetVisAttributes(red); - logicMod67 -> SetVisAttributes(red); - logicMod68 -> SetVisAttributes(red); - logicMod69 -> SetVisAttributes(red); - logicMod70 -> SetVisAttributes(red); - logicMod71 -> SetVisAttributes(red); - logicMod72 -> SetVisAttributes(red); - logicMod73 -> SetVisAttributes(red); - logicMod74 -> SetVisAttributes(red); - logicMod75 -> SetVisAttributes(red); - logicMod76 -> SetVisAttributes(red); - logicMod77 -> SetVisAttributes(red); - logicMod78 -> SetVisAttributes(red); -} - +///////////////////////////////////////////////////////////////////////////// +// Messenger values ///////////////////////////////////////////////////////////////////////////// void HadrontherapyModulator::SetModulatorAngle(G4double angle) { G4double rotationAngle = angle; rm -> rotateZ(rotationAngle); physiMotherMod -> SetRotation(rm); - G4cout << "MODULATOR HAS BEEN ROTATED BY " << rotationAngle/deg + G4cout << "MODULATOR HAS BEEN ROTATED OF " << rotationAngle/deg << " deg" << G4endl; G4RunManager::GetRunManager() -> GeometryHasBeenModified(); } +///////////////////////////////////////////////////////////////////////// +// Change modulator material +void HadrontherapyModulator::SetModulatorMaterial(G4String Material) +{ + if (G4Material* NewMaterial = G4NistManager::Instance()->FindOrBuildMaterial(Material, false) ) + { + if (NewMaterial) + { + for(G4int i=1;i SetMaterial(NewMaterial); + // G4RunManager::GetRunManager() -> PhysicsHasBeenModified(); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); + + // G4cout<<(logicMod[i]->GetMaterial()->GetName())< SetTranslation( NewModulatorPos); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); + G4cout << "The modulator wheel is translated to"<< NewModulatorPos/mm <<"mm " < SetInnerRadius(newvalue); +solidMod2 -> SetInnerRadius(newvalue); +solidMod3 -> SetInnerRadius(newvalue); +solidMod4 -> SetInnerRadius(newvalue); + for(G4int i=1;i SetInnerRadius(newvalue);} + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); + G4cout << "InnerRadius of the Modulator Wheel has been changed to :" + << newvalue/mm<<" mm"<< G4endl; +} +///////////////////////////////////////////////////////////////////////////////// +//change modulator outer raduis +void HadrontherapyModulator::SetModulatorOuterRadius(G4double newvalue) +{ +solidMod1 -> SetOuterRadius(newvalue); +solidMod2 -> SetOuterRadius(newvalue); +solidMod3 -> SetOuterRadius(newvalue); +solidMod4 -> SetOuterRadius(newvalue); + for(G4int i=1;i SetOuterRadius(newvalue);} + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); + G4cout << "OuterRadius of the Modulator Wheel has been changed to :" + << newvalue/mm<<" mm"< SetGuidance("Command to change the modulator wheel proprties"); + + modulatorMatCmd = new G4UIcmdWithAString("/modulator/RMWMat",this); + modulatorMatCmd -> SetGuidance("Set material of modulatorWheel"); + modulatorMatCmd -> SetParameterName("Material",false); + modulatorMatCmd -> AvailableForStates(G4State_Idle); + + modulatorExternalFile=new G4UIcmdWithAString("/modulator/ReadData",this); + modulatorExternalFile -> SetGuidance("set properties of modulator steps via a external file"); + modulatorExternalFile -> SetParameterName("FileName",true,false); + modulatorExternalFile -> SetDefaultValue ("default"); + modulatorExternalFile -> AvailableForStates(G4State_Idle); + + modulatorPositionCmd = new G4UIcmdWith3VectorAndUnit("/modulator/position",this); + modulatorPositionCmd -> SetGuidance("Set position of modulato"); + modulatorPositionCmd -> SetParameterName("PositionAlongX", + "PositionAlongY", + "PositionAlongZ",false); + modulatorPositionCmd -> SetDefaultUnit("mm"); + modulatorPositionCmd -> SetUnitCandidates("mm cm m"); + modulatorPositionCmd -> AvailableForStates(G4State_Idle); + + + modulatorOuterRadiusCmd = new G4UIcmdWithADoubleAndUnit("/modulator/outRadius",this); + modulatorOuterRadiusCmd -> SetGuidance("Set size of outer radius"); + modulatorOuterRadiusCmd-> SetParameterName("Size",false); + modulatorOuterRadiusCmd -> SetDefaultUnit("mm"); + modulatorOuterRadiusCmd-> SetUnitCandidates("mm cm m"); + modulatorOuterRadiusCmd-> AvailableForStates(G4State_Idle); + + modulatorInnerRadiusCmd = new G4UIcmdWithADoubleAndUnit("/modulator/innerRadius",this); + modulatorInnerRadiusCmd -> SetGuidance("Set size of inner radius"); + modulatorInnerRadiusCmd-> SetParameterName("Size",false); + modulatorInnerRadiusCmd -> SetDefaultUnit("mm"); + modulatorInnerRadiusCmd-> SetUnitCandidates("mm cm m"); + modulatorInnerRadiusCmd-> AvailableForStates(G4State_Idle); + + modulatorAngleCmd = new G4UIcmdWithADoubleAndUnit("/modulator/angle",this); + modulatorAngleCmd -> SetGuidance("Set Modulator Angle"); + modulatorAngleCmd -> SetParameterName("Size",false); + modulatorAngleCmd -> SetRange("Size>=0."); + modulatorAngleCmd -> SetUnitCategory("Angle"); + modulatorAngleCmd -> AvailableForStates(G4State_Idle); +} + + HadrontherapyModulatorMessenger::~ HadrontherapyModulatorMessenger() +{ + delete modulatorAngleCmd; + delete modulatorMatCmd; + delete modulatorPositionCmd; + delete modulatorInnerRadiusCmd; + delete modulatorOuterRadiusCmd; + delete modulatorDir; +} + + + + +void HadrontherapyModulatorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == modulatorAngleCmd ) + {Modulator -> SetModulatorAngle + (modulatorAngleCmd -> GetNewDoubleValue(newValue));} + + else if( command == modulatorMatCmd ) + {Modulator -> SetModulatorMaterial(newValue);} + + else if (command== modulatorExternalFile) + {Modulator->GetDataFromFile(newValue);} + + else if( command == modulatorPositionCmd ) + { G4ThreeVector size = modulatorPositionCmd-> GetNew3VectorValue(newValue); + Modulator -> SetModulatorPosition(size);} + + else if( command == modulatorOuterRadiusCmd ) + { Modulator -> SetModulatorOuterRadius( + modulatorOuterRadiusCmd -> GetNewDoubleValue(newValue));} + + else if( command == modulatorInnerRadiusCmd ) + { Modulator -> SetModulatorInnerRadius( + modulatorInnerRadiusCmd -> GetNewDoubleValue(newValue));} +} + diff --git a/examples/advanced/human_phantom/History b/examples/advanced/human_phantom/History index ee75553b25..082fdd7bcf 100644 --- a/examples/advanced/human_phantom/History +++ b/examples/advanced/human_phantom/History @@ -1,4 +1,4 @@ -$Id: History 88764 2015-03-09 12:28:01Z gcosmo $ +$Id: History 97053 2016-05-23 12:03:28Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -18,6 +18,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 23, 2016, G. Cosmo tag human_phantom-V10-02-01 +- More compilation warnings in gcc-6.1 fixed... + +May 19, 2016, G. Cosmo tag human_phantom-V10-02-00 +- Fixed compilation warning on gcc-6.1 in G4CustomFemalBuilder. + Mar 7, 2015, A. Dotti tag human_phantom-V10-01-01 - Fixing compilaiton warning from previous tag on clang35 diff --git a/examples/advanced/human_phantom/human_phantom.out b/examples/advanced/human_phantom/human_phantom.out index e12c460d8e..8ea13c64d5 100644 --- a/examples/advanced/human_phantom/human_phantom.out +++ b/examples/advanced/human_phantom/human_phantom.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -80,19 +82,19 @@ MotherVolume: physicalWorld sensitivity : 0 Construct Head with mother physicalWorld Checking overlaps for volume physicalHead ... OK! -Volume of Head = 4651.91 cm^3 +Volume of Head = 4657.41 cm^3 Material of Head = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of Head = 4590.97 g +Mass of Head = 4596.39 g MotherVolume: physicalHead sensitivity : 0 Construct Skull with mother volume physicalHead Checking overlaps for volume physicalSkull ... OK! Skull created !!!!!! -Volume of Skull = 843.246 cm^3 +Volume of Skull = 847.905 cm^3 Material of Skull = skeleton Density of Material = 1.4862 g/cm^3 -Mass of Skull = 1253.23 g +Mass of Skull = 1260.16 g Construct Brain with mother physicalHead Checking overlaps for volume physicalBrain ... OK! Volume of Brain = 1470.27 cm^3 @@ -104,10 +106,10 @@ sensitivity : 0 Construct Trunk with mother volume physicalWorld Checking overlaps for volume physicalTrunk ... OK! Trunk created !!!!!! -Volume of Trunk = 43960.6 cm^3 +Volume of Trunk = 43976.3 cm^3 Material of Trunk = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of Trunk = 43384.7 g +Mass of Trunk = 43400.2 g MotherVolume: physicalWorld sensitivity : 0 Construct LeftLeg with mother volume physicalWorld @@ -131,7 +133,7 @@ sensitivity : 0 Construct LeftArmBone with mother physicalTrunk Checking overlaps for volume physicalLeftArmBone ... OK! LeftArmBone created !!!!!! -Volume of LeftArmBone = 819.271 cm^3 +Volume of LeftArmBone = 819.272 cm^3 Material of LeftArmBone = skeleton Density of Material = 1.4862 g/cm^3 Mass of LeftArmBone = 1217.6 g @@ -167,28 +169,28 @@ sensitivity : 0 Construct UpperSpine with mother volume physicalHead Checking overlaps for volume physicalUpperSpine ... OK! UpperSpine created !!!!!! -Volume of UpperSpine = 126.456 cm^3 +Volume of UpperSpine = 126.458 cm^3 Material of UpperSpine = skeleton Density of Material = 1.4862 g/cm^3 -Mass of UpperSpine = 187.938 g +Mass of UpperSpine = 187.942 g MotherVolume: physicalTrunk sensitivity : 0 Construct LeftScapula with mother volume physicalTrunk Checking overlaps for volume physicalLeftScapula ... OK! LeftScapula created !!!!!! -Volume of LeftScapula = 101.683 cm^3 +Volume of LeftScapula = 100.812 cm^3 Material of LeftScapula = skeleton Density of Material = 1.4862 g/cm^3 -Mass of LeftScapula = 151.121 g +Mass of LeftScapula = 149.826 g MotherVolume: physicalTrunk sensitivity : 0 Construct RightScapula with mother volume physicalTrunk Checking overlaps for volume physicalRightScapula ... OK! RightScapula created !!!!!! -Volume of RightScapula = 100.468 cm^3 +Volume of RightScapula = 103.388 cm^3 Material of RightScapula = skeleton Density of Material = 1.4862 g/cm^3 -Mass of RightScapula = 149.315 g +Mass of RightScapula = 153.656 g Construct LeftAdrenal with mother physicalTrunk Checking overlaps for volume physicalLeftAdrenal ... OK! Left LeftAdrenal created !!!!!! @@ -231,10 +233,10 @@ Mass of RightClavicle = 20.3099 g Construct SmallIntestine with mother volume physicalTrunk Checking overlaps for volume physicalSmallIntestine ... OK! SmallIntestine created !!!!!! -Volume of SmallIntestine = 1020.98 cm^3 +Volume of SmallIntestine = 1019.35 cm^3 Material of SmallIntestine = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of SmallIntestine = 1007.61 g +Mass of SmallIntestine = 1006 g Construct RibCage with mother volume physicalTrunk Checking overlaps for volume physicalRibCage ... OK! Checking overlaps for volume physicalRib ... OK! @@ -250,26 +252,26 @@ Checking overlaps for volume physicalRib ... OK! Checking overlaps for volume physicalRib ... OK! Checking overlaps for volume physicalRib ... OK! RibCage created !!!!!! -Volume of RibCage = 693.291 cm^3 +Volume of RibCage = 693.348 cm^3 Material of RibCage = skeleton Density of Material = 1.4862 g/cm^3 -Mass of RibCage = 1030.37 g +Mass of RibCage = 1030.45 g MotherVolume: physicalTrunk sensitivity : 0 Construct MiddleLowerSpine with mother volume physicalTrunk Checking overlaps for volume physicalMiddleLowerSpine ... OK! MiddleLowerSpine created !!!!!! -Volume of MiddleLowerSpine = 753.8 cm^3 +Volume of MiddleLowerSpine = 753.626 cm^3 Material of MiddleLowerSpine = skeleton Density of Material = 1.4862 g/cm^3 -Mass of MiddleLowerSpine = 1120.3 g +Mass of MiddleLowerSpine = 1120.04 g Construct Pelvis with mother volume physicalTrunk Checking overlaps for volume physicalPelvis ... OK! Pelvis created !!!!!! -Volume of Pelvis = 603.174 cm^3 +Volume of Pelvis = 608.584 cm^3 Material of Pelvis = skeleton Density of Material = 1.4862 g/cm^3 -Mass of Pelvis = 896.437 g +Mass of Pelvis = 904.478 g Construct Stomach with mother volume physicalTrunk Checking overlaps for volume physicalStomach ... OK! Stomach created !!!!!! @@ -280,17 +282,17 @@ Mass of Stomach = 396.856 g Construct UpperLargeIntestine with mother volume physicalTrunk Checking overlaps for volume physicalUpperLargeIntestine ... OK! UpperLargeIntestine created !!!!!! -Volume of UpperLargeIntestine = 435.511 cm^3 +Volume of UpperLargeIntestine = 433.802 cm^3 Material of UpperLargeIntestine = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of UpperLargeIntestine = 429.805 g +Mass of UpperLargeIntestine = 428.119 g Construct LowerLargeIntestine with mother volume physicalTrunk Checking overlaps for volume physicalLowerLargeIntestine ... OK! LowerLargeIntestine created !!!!!! -Volume of LowerLargeIntestine = 344.779 cm^3 +Volume of LowerLargeIntestine = 344.258 cm^3 Material of LowerLargeIntestine = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of LowerLargeIntestine = 340.262 g +Mass of LowerLargeIntestine = 339.748 g Construct Spleen with mother volume physicalTrunk Checking overlaps for volume physicalSpleen ... OK! Spleen created !!!!!! @@ -301,40 +303,40 @@ Mass of Spleen = 173.625 g Construct Pancreas with mother volume physicalTrunk Checking overlaps for volume physicalPancreas ... OK! Pancreas created !!!!!! -Volume of Pancreas = 61.0002 cm^3 +Volume of Pancreas = 60.9478 cm^3 Material of Pancreas = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of Pancreas = 60.2011 g +Mass of Pancreas = 60.1494 g Construct LeftKidney with mother volume physicalTrunk Checking overlaps for volume physicalLeftKidney ... OK! Left LeftKidney created !!!!!! -Volume of LeftKidney = 144.107 cm^3 +Volume of LeftKidney = 143.922 cm^3 Material of LeftKidney = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of LeftKidney = 142.219 g +Mass of LeftKidney = 142.037 g Construct RightKidney with mother volume physicalTrunk Checking overlaps for volume physicalRightKidney ... OK! RightKidney created !!!!!! -Volume of RightKidney = 143.9 cm^3 +Volume of RightKidney = 144.181 cm^3 Material of RightKidney = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of RightKidney = 142.015 g +Mass of RightKidney = 142.293 g Construct UrinaryBladder with mother volume physicalTrunk Checking overlaps for volume physicalUrinaryBladder ... OK! UrinaryBladder created !!!!!! -Volume of UrinaryBladder = 45.5462 cm^3 +Volume of UrinaryBladder = 45.7506 cm^3 Material of UrinaryBladder = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of UrinaryBladder = 44.9496 g +Mass of UrinaryBladder = 45.1513 g MotherVolume: physicalWorld sensitivity : 0 Construct MaleGenitalia with mother volume physicalWorld Checking overlaps for volume physicalMaleGenitalia ... OK! MaleGenitalia created !!!!!! -Volume of MaleGenitalia = 229.385 cm^3 +Volume of MaleGenitalia = 229.499 cm^3 Material of MaleGenitalia = soft_tissue Density of Material = 0.9869 g/cm^3 -Mass of MaleGenitalia = 226.38 g +Mass of MaleGenitalia = 226.493 g MotherVolume: physicalWorld sensitivity : 0 Construct LeftTeste with mother volume physicalMaleGenitalia @@ -381,7 +383,8 @@ Mass of RightTeste = 18.5406 g /run/beamOn 100 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -429,6 +432,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 @@ -457,6 +467,13 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -802,31 +819,31 @@ Index : 2 used in the geometry : Yes ### Run 0 start. 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): 5.79233 +Energy Total in Run:logicalHead, ID: 1, Energy Deposition (MeV): 2.16829 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): 6.4932 +Energy Total in Run:logicalLeftLeg, ID: 8, Energy Deposition (MeV): 11.3888 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): 3.84814 +Energy Total in Run:logicalMaleGenitalia, ID: 15, Energy Deposition (MeV): 0 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): 1.12601 +Energy Total in Run:logicalRibCage, ID: 19, Energy Deposition (MeV): 0.286366 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): 8.04831 +Energy Total in Run:logicalRightLeg, ID: 25, Energy Deposition (MeV): 10.3309 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 @@ -838,11 +855,11 @@ 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): 35.6123 +Energy Total in Run:logicalTrunk, ID: 37, Energy Deposition (MeV): 27.8108 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: 60.9203 MeV +Total Energy deposit in the body is: 51.9853 MeV Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc b/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc index 8563c04a6a..afd1fd1c27 100644 --- a/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc +++ b/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc @@ -54,7 +54,6 @@ void G4CustomFemaleBuilder::BuildUterus(const G4String& colourName, G4bool solid { if (trunkVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildUterus()", "human_phantom0001", FatalException, "The trunk volume is missing !!!!!"); body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); } @@ -62,8 +61,8 @@ if (trunkVolume == 0) void G4CustomFemaleBuilder::BuildLeftOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { -if (trunkVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildLeftOvary()", "human_phantom0002", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4CustomFemaleBuilder::BuildLeftOvary()", "human_phantom0002", FatalException, "The trunk volume is missing !!!!!"); body -> CreateOrgan("LeftOvary",trunkVolume, colourName, solidVis, sensitivity); diff --git a/examples/advanced/human_phantom/src/G4FemaleBuilder.cc b/examples/advanced/human_phantom/src/G4FemaleBuilder.cc index 139dfe9684..32c8f1ba79 100644 --- a/examples/advanced/human_phantom/src/G4FemaleBuilder.cc +++ b/examples/advanced/human_phantom/src/G4FemaleBuilder.cc @@ -52,16 +52,17 @@ G4FemaleBuilder::~G4FemaleBuilder() void G4FemaleBuilder::BuildUterus(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { -if (trunkVolume == 0) - G4Exception("G4FemaleBuilder::BuildUterus()", "human_phantom0006", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4FemaleBuilder::BuildUterus()", "human_phantom0006", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); } + body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); +} void G4FemaleBuilder::BuildLeftOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { -if (trunkVolume == 0) - G4Exception("G4FemaleBuilder::BuildLeftOvary()", "human_phantom0007", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4FemaleBuilder::BuildLeftOvary()", "human_phantom0007", FatalException, "The trunk volume is missing !!!!!"); body -> CreateOrgan("LeftOvary",trunkVolume, colourName, solidVis, sensitivity); @@ -70,8 +71,8 @@ if (trunkVolume == 0) void G4FemaleBuilder::BuildRightOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) - G4Exception("G4FemaleBuilder::BuildRightOvary()", "human_phantom0008", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4FemaleBuilder::BuildRightOvary()", "human_phantom0008", FatalException, "The trunk volume is missing !!!!!"); body -> CreateOrgan("RightOvary",trunkVolume, colourName, solidVis, sensitivity); @@ -87,7 +88,6 @@ void G4FemaleBuilder::BuildLeftBreast(const G4String& colourName, solidVis, sensitivity); } - void G4FemaleBuilder::BuildRightBreast(const G4String& colourName, G4bool solidVis, G4bool sensitivity) @@ -96,6 +96,5 @@ void G4FemaleBuilder::BuildRightBreast(const G4String& colourName, G4Exception("G4FemaleBuilder::BuildRightBreast()", "human_phantom0010", FatalException, "The world volume is missing !!!!!"); body -> CreateOrgan("RightBreast",motherVolume, colourName, - solidVis, sensitivity); - + solidVis, sensitivity); } diff --git a/examples/advanced/human_phantom/src/G4PhantomBuilder.cc b/examples/advanced/human_phantom/src/G4PhantomBuilder.cc index 5f26b880ae..57d379a622 100644 --- a/examples/advanced/human_phantom/src/G4PhantomBuilder.cc +++ b/examples/advanced/human_phantom/src/G4PhantomBuilder.cc @@ -214,39 +214,38 @@ void G4PhantomBuilder::BuildPelvis(const G4String& colourName, G4bool solidVis, if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildPelvis()", "human_phantom0029", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan( "Pelvis",trunkVolume, - colourName, solidVis, sensitivity); + body -> CreateOrgan( "Pelvis",trunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildBrain(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (headVolume == 0) - G4Exception("G4PhantomBuilder::BuildBrain()", "human_phantom0030", FatalException, "The head volume is missing !!!!!"); + if (headVolume == 0) + G4Exception("G4PhantomBuilder::BuildBrain()", "human_phantom0030", FatalException, "The head volume is missing !!!!!"); - body -> CreateOrgan("Brain",headVolume, colourName, solidVis, sensitivity); + body -> CreateOrgan("Brain",headVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildHeart(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildHeart()", "human_phantom0031", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Heart", trunkVolume,colourName, solidVis, sensitivity); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildHeart()", "human_phantom0031", FatalException, "The trunk volume is missing !!!!!"); + body -> CreateOrgan("Heart", trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftLung(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildLeftLung()", "human_phantom0032", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildLeftLung()", "human_phantom0032", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftLung",trunkVolume,colourName,solidVis, sensitivity); + body -> CreateOrgan("LeftLung",trunkVolume,colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildRightLung(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildRightLung()", "human_phantom0033", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildRightLung()", "human_phantom0033", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightLung",trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("RightLung",trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildStomach(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) @@ -254,31 +253,31 @@ void G4PhantomBuilder::BuildStomach(const G4String& colourName, G4bool solidVis, if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildStomach()", "human_phantom0034", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Stomach",trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("Stomach",trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRibCage(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildRibCage()", "human_phantom0035", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildRibCage()", "human_phantom0035", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RibCage",trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("RibCage",trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildSpleen(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildSpleen()", "human_phantom0036", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildSpleen()", "human_phantom0036", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Spleen", trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("Spleen", trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildUpperLargeIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildUpperLargeIntestine()", "human_phantom0037", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildUpperLargeIntestine()", "human_phantom0037", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("UpperLargeIntestine",trunkVolume, colourName, solidVis, sensitivity); + body -> CreateOrgan("UpperLargeIntestine",trunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLowerLargeIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) @@ -286,7 +285,7 @@ void G4PhantomBuilder::BuildLowerLargeIntestine(const G4String& colourName, G4bo if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildLowerLargeIntestine()", "human_phantom0038", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LowerLargeIntestine", trunkVolume, colourName,solidVis, sensitivity); + body -> CreateOrgan("LowerLargeIntestine", trunkVolume, colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildSmallIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) @@ -299,17 +298,17 @@ void G4PhantomBuilder::BuildSmallIntestine(const G4String& colourName, G4bool so void G4PhantomBuilder::BuildLeftKidney(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildLeftKidney()", "human_phantom0040", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildLeftKidney()", "human_phantom0040", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftKidney", trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("LeftKidney", trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightKidney(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildRightKidney()", "human_phantom0041", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildRightKidney()", "human_phantom0041", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightKidney",trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("RightKidney",trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftAdrenal(const G4String& colourName, G4bool solidVis, G4bool sensitivity) @@ -317,7 +316,7 @@ void G4PhantomBuilder::BuildLeftAdrenal(const G4String& colourName, G4bool solid if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildLeftAdrenal()", "human_phantom0042", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftAdrenal", trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("LeftAdrenal", trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightAdrenal(const G4String& colourName, G4bool solidVis, G4bool sensitivity) @@ -325,7 +324,7 @@ void G4PhantomBuilder::BuildRightAdrenal(const G4String& colourName, G4bool soli if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildRightAdrenal()", "human_phantom0043", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightAdrenal", trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("RightAdrenal", trunkVolume,colourName, solidVis, sensitivity); } @@ -334,14 +333,14 @@ void G4PhantomBuilder::BuildLiver(const G4String& colourName, G4bool solidVis, G if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildLiver()", "human_phantom0044", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Liver", trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("Liver", trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildPancreas(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) - G4Exception("G4PhantomBuilder::BuildPancreas()", "human_phantom0045", FatalException, "The trunk volume is missing !!!!!"); + if (trunkVolume == 0) + G4Exception("G4PhantomBuilder::BuildPancreas()", "human_phantom0045", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Pancreas",trunkVolume,colourName, solidVis, sensitivity); + body -> CreateOrgan("Pancreas",trunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildUrinaryBladder(const G4String& colourName, G4bool solidVis, G4bool sensitivity) @@ -349,15 +348,15 @@ void G4PhantomBuilder::BuildUrinaryBladder(const G4String& colourName, G4bool so if (trunkVolume == 0) G4Exception("G4PhantomBuilder::BuildUrinaryBladder()", "human_phantom0046", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("UrinaryBladder",trunkVolume, colourName, solidVis, sensitivity); + body -> CreateOrgan("UrinaryBladder",trunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildThyroid(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (headVolume == 0) - G4Exception("G4PhantomBuilder::BuildThyroid()", "human_phantom0047", FatalException, "The trunk volume is missing !!!!!"); + if (headVolume == 0) + G4Exception("G4PhantomBuilder::BuildThyroid()", "human_phantom0047", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Thyroid",headVolume, colourName,solidVis, sensitivity); + body -> CreateOrgan("Thyroid",headVolume, colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildThymus(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) @@ -386,21 +385,21 @@ void G4PhantomBuilder::SetModel(G4String modelFlag) if(model=="MIRD" || model =="MIX") body = new G4MIRDBodyFactory(); if(model=="ORNLFemale") - { + { #ifdef G4LIB_USE_GDML - body = new G4ORNLFemaleBodyFactory(); + body = new G4ORNLFemaleBodyFactory(); #else - G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; + G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; #endif - } + } if(model=="ORNLMale") -{ + { #ifdef G4LIB_USE_GDML -body = new G4ORNLMaleBodyFactory(); + body = new G4ORNLMaleBodyFactory(); #else -G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; + G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; #endif -} + } } diff --git a/examples/advanced/lAr_calorimeter/lAr_calorimeter.out b/examples/advanced/lAr_calorimeter/lAr_calorimeter.out index 9b5418fde2..016fcf0f96 100644 --- a/examples/advanced/lAr_calorimeter/lAr_calorimeter.out +++ b/examples/advanced/lAr_calorimeter/lAr_calorimeter.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -45,16 +45,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -71,6 +73,14 @@ Constructing materials...... done ******** Number of Rods in FCAL1 : 2351 ********* Number of Rods in FCAL2 : 2546 TBSetupSD is not found in /FCALTB/ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -188,7 +198,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -202,7 +212,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -311,7 +321,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -344,7 +354,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -470,6 +480,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -853,14 +868,14 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 389 kByte - Total CPU time elapsed for geometry optimisation: 0.62 seconds + Total CPU time elapsed for geometry optimisation: 0.28 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 83.87 0.52 0.00 148k EmModuleLogical - 14.52 0.09 0.00 236k HadModuleLogical - 1.61 0.01 0.00 4k Mother + 85.71 0.24 0.00 148k EmModuleLogical + 14.29 0.04 0.00 236k 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 0.00 0.00 0.00 0k FCALEnvelopeLogical @@ -870,9 +885,9 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 60.56 235k 1361 2360 3772 0.09 HadModuleLogical - 38.11 148k 1077 1143 2440 0.52 EmModuleLogical - 0.94 3k 8 42 146 0.01 Mother + 60.56 235k 1361 2360 3772 0.04 HadModuleLogical + 38.11 148k 1077 1143 2440 0.24 EmModuleLogical + 0.94 3k 8 42 146 0.00 Mother 0.11 0k 1 6 8 0.00 SolidWLogical 0.11 0k 1 6 8 0.00 CuPlateLogical 0.08 0k 1 4 6 0.00 LArgLogical @@ -887,352 +902,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 : 46 +Number of F1 Tiles with Positive energy : 45 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -3.7309 1.62166 1.62899 +3.48505 1.62166 1.62689 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -1.71665 +3.43493 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 1 -N Scondaries 182 -EmEdep is=19802.8 MeV -HadEdep is=7.95843 MeV -Edep in FCAL1 FCAl2 : 19802.8 7.95843 +N Scondaries 181 +EmEdep is=19765.8 MeV +HadEdep is=6.92275 MeV +Edep in FCAL1 FCAl2 : 19765.8 6.92275 **** Primary : 2 Vertex : (-3.76032,10.9751,32740) -Number of F1 Tiles with Positive energy : 53 +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.83597 1.94264 1.50459 +1.87747 3.00764 1.90479 Visible Energy in Hole Counter (MeV) -0 80.6978 +0 55.2579 Visible Energy in Upstream Dead Materials -646.17 +322.017 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 32 -N Scondaries 144 -EmEdep is=18406.2 MeV -HadEdep is=0.0965517 MeV -Edep in FCAL1 FCAl2 : 18406.2 0.0965517 +N Tracks out of world 35 +N Scondaries 279 +EmEdep is=18429 MeV +HadEdep is=1.97733 MeV +Edep in FCAL1 FCAl2 : 18429 1.97733 **** Primary : 3 Vertex : (13.1951,2.677,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) -1.65028 1.58665 1.70866 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -7.05612 - 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 Scondaries 330 -EmEdep is=19823.6 MeV -HadEdep is=8.7006 MeV -Edep in FCAL1 FCAl2 : 19823.6 8.7006 - **** Primary : 4 - Vertex : (-8.66148,-8.80731,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.78576 1.75444 1.93937 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -26.5713 - 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 Scondaries 104 -EmEdep is=19774.2 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19774.2 0 - **** Primary : 5 - Vertex : (4.75859,7.01622,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.80104 2.28266 1.88805 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -3.05957 - 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 Scondaries 177 -EmEdep is=19863.2 MeV -HadEdep is=0.970362 MeV -Edep in FCAL1 FCAl2 : 19863.2 0.970362 - **** Primary : 6 - Vertex : (1.94335,14.9228,32740) -Number of F1 Tiles with Positive energy : 53 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -3.4806 1.789 1.78269 - Visible Energy in Hole Counter (MeV) -0 103.757 - Visible Energy in Upstream Dead Materials -1934.94 - 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 Scondaries 124 -EmEdep is=16054.7 MeV -HadEdep is=0.401497 MeV -Edep in FCAL1 FCAl2 : 16054.7 0.401497 - **** Primary : 7 - Vertex : (-10.9878,-6.7949,32740) -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.59688 1.97212 2.24716 - Visible Energy in Hole Counter (MeV) -0 3.78771 - Visible Energy in Upstream Dead Materials -5.01568 - 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 Scondaries 211 -EmEdep is=19847.2 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19847.2 0 - **** Primary : 8 - Vertex : (10.9757,-1.49585,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.05023 2.33886 3.18456 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -3.70808 - 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 Scondaries 303 -EmEdep is=19692.5 MeV -HadEdep is=4.42613 MeV -Edep in FCAL1 FCAl2 : 19692.5 4.42613 - **** Primary : 9 - Vertex : (-27.7734,3.36444,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.58411 2.0136 2.00442 - Visible Energy in Hole Counter (MeV) -0 19.5528 - Visible Energy in Upstream Dead Materials -833.825 - 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 20 -N Scondaries 289 -EmEdep is=18949.8 MeV -HadEdep is=40.8421 MeV -Edep in FCAL1 FCAl2 : 18949.8 40.8421 - **** Primary : 10 - Vertex : (-22.5474,4.1006,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.8657 1.5967 2.11814 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -3.10068 - 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 Scondaries 196 -EmEdep is=19779.7 MeV -HadEdep is=1.77093 MeV -Edep in FCAL1 FCAl2 : 19779.7 1.77093 - ----> Begin of event: 11 - **** Primary : 11 - Vertex : (-6.31939,21.5056,32740) Number of F1 Tiles with Positive energy : 51 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -2.09274 1.81881 2.02494 +1.7931 1.77616 1.51819 Visible Energy in Hole Counter (MeV) -0 50.3173 +0 3.81877 Visible Energy in Upstream Dead Materials -1639.9 +6.89076 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 44 -N Scondaries 181 -EmEdep is=17635.9 MeV -HadEdep is=2.59717 MeV -Edep in FCAL1 FCAl2 : 17635.9 2.59717 - **** Primary : 12 - Vertex : (17.1015,6.30557,32740) -Number of F1 Tiles with Positive energy : 49 +N Tracks out of world 2 +N Scondaries 260 +EmEdep is=19774.5 MeV +HadEdep is=8.85437 MeV +Edep in FCAL1 FCAl2 : 19774.5 8.85437 + **** Primary : 4 + Vertex : (-8.66148,-8.80731,32740) +Number of F1 Tiles with Positive energy : 42 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.57147 1.80331 1.6894 +1.56372 1.93944 2.1539 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -11.1044 +9.36411 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 Scondaries 131 -EmEdep is=19814 MeV +N Scondaries 243 +EmEdep is=19798.4 MeV HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19814 0 - **** Primary : 13 - Vertex : (-24.9484,11.8659,32740) -Number of F1 Tiles with Positive energy : 26 +Edep in FCAL1 FCAl2 : 19798.4 0 + **** Primary : 5 + Vertex : (4.75859,7.01622,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) -1.73453 1.49721 1.87651 - Visible Energy in Hole Counter (MeV) -0 99.5947 - Visible Energy in Upstream Dead Materials -18207.3 - 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 183 -N Scondaries 198 -EmEdep is=666.275 MeV -HadEdep is=0.171848 MeV -Edep in FCAL1 FCAl2 : 666.275 0.171848 - **** Primary : 14 - Vertex : (-0.133696,18.3151,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.79176 2.18136 1.77149 +1.79322 1.92606 1.68965 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -17.8862 - Visible Energy in Tail Catcher Scintillator -0.00535789 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0.00043071 0 0 0 0 0 -N Tracks out of world 10 -N Scondaries 175 -EmEdep is=19737.3 MeV -HadEdep is=5.57951 MeV -Edep in FCAL1 FCAl2 : 19737.3 5.57951 - **** Primary : 15 - Vertex : (17.3196,17.6617,32740) -Number of F1 Tiles with Positive energy : 43 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -1.74957 1.99628 5.50112 - Visible Energy in Hole Counter (MeV) -0 16.2559 - Visible Energy in Upstream Dead Materials -446.052 +8.0115 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 18 -N Scondaries 99 -EmEdep is=19091.1 MeV -HadEdep is=5.80928 MeV -Edep in FCAL1 FCAl2 : 19091.1 5.80928 - **** Primary : 16 - Vertex : (-20.8489,10.8988,32740) -Number of F1 Tiles with Positive energy : 72 +N Tracks out of world 3 +N Scondaries 263 +EmEdep is=19857.6 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 19857.6 0 + **** Primary : 6 + Vertex : (1.94335,14.9228,32740) +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.81555 2.09768 1.9666 +1.56139 1.62271 2.24421 Visible Energy in Hole Counter (MeV) -0 75.5765 +0 124.41 Visible Energy in Upstream Dead Materials -8543.5 +2120.79 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 179 -N Scondaries 251 -EmEdep is=8706.39 MeV -HadEdep is=0.910092 MeV -Edep in FCAL1 FCAl2 : 8706.39 0.910092 - **** Primary : 17 - Vertex : (-9.96316,-9.33478,32740) +N Tracks out of world 70 +N Scondaries 153 +EmEdep is=16501.5 MeV +HadEdep is=4.94389 MeV +Edep in FCAL1 FCAl2 : 16501.5 4.94389 + **** Primary : 7 + Vertex : (-10.9878,-6.7949,32740) +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.68297 2.49599 3.28517 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +2.67162 + 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 Scondaries 135 +EmEdep is=19756.6 MeV +HadEdep is=12.6452 MeV +Edep in FCAL1 FCAl2 : 19756.6 12.6452 + **** Primary : 8 + Vertex : (10.9757,-1.49585,32740) Number of F1 Tiles with Positive energy : 42 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.54617 1.65147 1.7379 +1.65533 1.70223 1.59614 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -26.6858 +3.54318 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 Scondaries 176 -EmEdep is=19684 MeV -HadEdep is=11.4692 MeV -Edep in FCAL1 FCAl2 : 19684 11.4692 - **** Primary : 18 - Vertex : (-9.96316,-9.33478,32740) -Number of F1 Tiles with Positive energy : 39 +N Scondaries 146 +EmEdep is=19746.4 MeV +HadEdep is=4.81416 MeV +Edep in FCAL1 FCAl2 : 19746.4 4.81416 + **** Primary : 9 + Vertex : (-27.7734,3.36444,32740) +Number of F1 Tiles with Positive energy : 58 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.59613 1.79237 1.64091 +1.73258 1.6682 1.58885 + Visible Energy in Hole Counter (MeV) +0 39.8739 + Visible Energy in Upstream Dead Materials +2627.89 + 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 95 +N Scondaries 126 +EmEdep is=15923.2 MeV +HadEdep is=5.36136 MeV +Edep in FCAL1 FCAl2 : 15923.2 5.36136 + **** Primary : 10 + Vertex : (-22.5474,4.1006,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.77707 2.02905 2.45935 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -4.84822 +34.4522 + 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 13 +N Scondaries 244 +EmEdep is=19543.9 MeV +HadEdep is=1.83443 MeV +Edep in FCAL1 FCAl2 : 19543.9 1.83443 + +---> Begin of event: 11 + **** Primary : 11 + Vertex : (-6.31939,21.5056,32740) +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.62793 1.55405 1.72148 + Visible Energy in Hole Counter (MeV) +0 53.6366 + Visible Energy in Upstream Dead Materials +2043.18 + 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 91 +N Scondaries 257 +EmEdep is=17040.1 MeV +HadEdep is=6.09444 MeV +Edep in FCAL1 FCAl2 : 17040.1 6.09444 + **** Primary : 12 + Vertex : (17.1015,6.30557,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) +1.61346 1.76309 1.64371 + Visible Energy in Hole Counter (MeV) +0 6.68393 + Visible Energy in Upstream Dead Materials +12.7261 + 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 Scondaries 123 +EmEdep is=19608.5 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 19608.5 0 + **** Primary : 13 + Vertex : (-24.9484,11.8659,32740) +Number of F1 Tiles with Positive energy : 23 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.80199 1.75734 3.86934 + Visible Energy in Hole Counter (MeV) +0 58.68 + Visible Energy in Upstream Dead Materials +18278 + 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 152 +N Scondaries 212 +EmEdep is=973.436 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 973.436 0 + **** Primary : 14 + Vertex : (-0.133696,18.3151,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) +1.6357 1.85863 1.71535 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +6.45463 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 1 -N Scondaries 250 -EmEdep is=19771.7 MeV +N Scondaries 178 +EmEdep is=19810 MeV +HadEdep is=4.42048 MeV +Edep in FCAL1 FCAl2 : 19810 4.42048 + **** Primary : 15 + Vertex : (17.3196,17.6617,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.91062 1.96584 2.38438 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +6.55679 + 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 1 +N Scondaries 193 +EmEdep is=19721 MeV HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19771.7 0 +Edep in FCAL1 FCAl2 : 19721 0 + **** Primary : 16 + Vertex : (-20.8489,10.8988,32740) +Number of F1 Tiles with Positive energy : 64 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.51353 2.06861 1.56018 + Visible Energy in Hole Counter (MeV) +0 88.3802 + Visible Energy in Upstream Dead Materials +6814.56 + Visible Energy in Tail Catcher Scintillator +0.0156614 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 125 +N Scondaries 101 +EmEdep is=11525.7 MeV +HadEdep is=0.173292 MeV +Edep in FCAL1 FCAl2 : 11525.7 0.173292 + **** Primary : 17 + Vertex : (-9.96316,-9.33478,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) +1.70981 1.58852 1.53449 + Visible Energy in Hole Counter (MeV) +0 6.53144 + Visible Energy in Upstream Dead Materials +285.119 + 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 8 +N Scondaries 158 +EmEdep is=19586 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 19586 0 + **** Primary : 18 + Vertex : (-9.96316,-9.33478,32740) +Number of F1 Tiles with Positive energy : 64 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.73615 1.8147 1.63016 + Visible Energy in Hole Counter (MeV) +0 49.9364 + Visible Energy in Upstream Dead Materials +1997.98 + 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 70 +N Scondaries 168 +EmEdep is=16178.3 MeV +HadEdep is=8.05005 MeV +Edep in FCAL1 FCAl2 : 16178.3 8.05005 Run terminated. Run Summary Number of events processed : 18 - User=22.69s Real=22.7s Sys=0.01s + User=12.18s Real=12.2s Sys=0s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -1245,21 +1260,21 @@ RunManager is deleting RunManagerKernel. G4SDManager deleted. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 293 +Total navigation history collections cleaned: 310 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.404 MB +Pool ID '20G4NavigationLevelRep', size : 0.408 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.11 MB +Pool ID '17G4DynamicParticle', size : 0.117 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.218 MB -Pool ID '18G4TouchableHistory', size : 0.0356 MB +Pool ID '7G4Track', size : 0.234 MB +Pool ID '18G4TouchableHistory', size : 0.0375 MB Pool ID '15G4CountedObjectIvE', size : 0.00481 MB Pool ID '10G4Fragment', size : 0.00192 MB Number of memory pools allocated: 11 of which, static: 0 -Dynamic pools deleted: 11 / Total memory freed: 0.78 MB +Dynamic pools deleted: 11 / Total memory freed: 0.81 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/microbeam/History b/examples/advanced/microbeam/History index fc6b2a2438..e21f16c984 100644 --- a/examples/advanced/microbeam/History +++ b/examples/advanced/microbeam/History @@ -9,6 +9,9 @@ $Id: History 70524 2013-05-31 16:36:26Z gcosmo $ Package History file -------------------- +02 Mar 2016 - S.Incerti - tag microbeam-V10-02-00 +- removed exp + 28 Aug 2015 - S.Incerti - tag microbeam-V10-01-03 - added stronger constraints on SetMinimumEpsilonStep and SetMaximumEpsilonStep diff --git a/examples/advanced/microbeam/microbeam.out b/examples/advanced/microbeam/microbeam.out index c141437c71..68eb57123e 100644 --- a/examples/advanced/microbeam/microbeam.out +++ b/examples/advanced/microbeam/microbeam.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -345,16 +345,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -367,7 +369,8 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -809,7 +812,7 @@ Index : 12 used in the geometry : Yes ==================================================================== -##### Create analysis manager 0x24db110 +##### Create analysis manager 0x15b8e70 Using Root analysis manager All Ntuples have been created -> Event # 1 generated @@ -820,29 +823,27 @@ All Ntuples have been created -> Event # 3 generated ===> The incident alpha particle has reached the targeted cell : - -----> total absorbed dose within Nucleus is (Gy) = 0.29893655392339 - -----> total absorbed dose within Cytoplasm is (Gy) = 0.05895416661847 + -----> total absorbed dose within Nucleus is (Gy) = 0.32778372413202 + -----> total absorbed dose within Cytoplasm is (Gy) = 0.044733067737592 -> Event # 4 generated ===> The incident alpha particle has reached the targeted cell : - -----> total absorbed dose within Nucleus is (Gy) = 0.297542698664 - -----> total absorbed dose within Cytoplasm is (Gy) = 0.016812349299169 + -----> total absorbed dose within Nucleus is (Gy) = 0.29451485847676 + -----> total absorbed dose within Cytoplasm is (Gy) = 0.01845536721255 -> Event # 5 generated ===> Sorry, the incident alpha particle has missed the targeted cell ! -> Event # 6 generated - ===> The incident alpha particle has reached the targeted cell : - -----> total absorbed dose within Nucleus is (Gy) = 0.30403628497508 - -----> total absorbed dose within Cytoplasm is (Gy) = 0.051504478309795 + ===> Sorry, the incident alpha particle has missed the targeted cell ! -> Event # 7 generated - ===> The incident alpha particle has reached the targeted cell : - -----> total absorbed dose within Nucleus is (Gy) = 0.32679569925554 - -----> total absorbed dose within Cytoplasm is (Gy) = 0.042253362060202 + ===> Sorry, the incident alpha particle has missed the targeted cell ! -> Event # 8 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.32808202093148 + -----> total absorbed dose within Cytoplasm is (Gy) = 0.012292198793424 -> Event # 9 generated ===> Sorry, the incident alpha particle has missed the targeted cell ! @@ -850,7 +851,7 @@ All Ntuples have been created -> Event # 10 generated ===> Sorry, the incident alpha particle has missed the targeted cell ! --> Total number of particles detected by the gas detector : 5 +-> Total number of particles detected by the gas detector : 3 Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/microbeam/src/EMField.cc b/examples/advanced/microbeam/src/EMField.cc index 9c35eb7387..2b7b2bec58 100755 --- a/examples/advanced/microbeam/src/EMField.cc +++ b/examples/advanced/microbeam/src/EMField.cc @@ -34,6 +34,7 @@ #include "EMField.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" EMField::EMField() { @@ -107,8 +108,8 @@ if ( (z >= limitMinEntrance) && (z < limitMaxEntrance) ) dsdx = 0; largeS = wc0 + wc1*ws + wc2*ws*ws + wc3*ws*ws*ws; - h = 1./(1.+std::exp(largeS)); - dhdlargeS = -std::exp(largeS)*h*h; + h = 1./(1.+G4Exp(largeS)); + dhdlargeS = -G4Exp(largeS)*h*h; dlargeSds = wc1+ 2*wc2*ws + 3*wc3*ws*ws; dhds = dhdlargeS * dlargeSds; @@ -150,8 +151,8 @@ if ( dsdx = (1/D)*(x-xcenter)/std::sqrt((z-zcenter)*(z-zcenter)+(x-xcenter)*(x-xcenter)); largeS = wc0 + wc1*ws + wc2*ws*ws + wc3*ws*ws*ws; - h = 1./(1.+std::exp(largeS)); - dhdlargeS = -std::exp(largeS)*h*h; + h = 1./(1.+G4Exp(largeS)); + dhdlargeS = -G4Exp(largeS)*h*h; dlargeSds = wc1+ 2*wc2*ws + 3*wc3*ws*ws; dhds = dhdlargeS * dlargeSds; @@ -344,23 +345,23 @@ if (z>=-1400*mm && z <-200*mm) P2 = 2*c2[i]/a0[i]/a0[i]; - cte = 1 + std::exp(c0[i]); + cte = 1 + G4Exp(c0[i]); - K1 = -cte*P1*std::exp(P0)/( (1+std::exp(P0))*(1+std::exp(P0)) ); + K1 = -cte*P1*G4Exp(P0)/( (1+G4Exp(P0))*(1+G4Exp(P0)) ); - K2 = -cte*std::exp(P0)*( - P2/( (1+std::exp(P0))*(1+std::exp(P0)) ) - +2*P1*K1/(1+std::exp(P0))/cte - +P1*P1/(1+std::exp(P0))/(1+std::exp(P0)) + K2 = -cte*G4Exp(P0)*( + P2/( (1+G4Exp(P0))*(1+G4Exp(P0)) ) + +2*P1*K1/(1+G4Exp(P0))/cte + +P1*P1/(1+G4Exp(P0))/(1+G4Exp(P0)) ); - K3 = -cte*std::exp(P0)*( - (3*P2*P1+P1*P1*P1)/(1+std::exp(P0))/(1+std::exp(P0)) - +4*K1*(P1*P1+P2)/(1+std::exp(P0))/cte - +2*P1*(K1*K1/cte/cte+K2/(1+std::exp(P0))/cte) + K3 = -cte*G4Exp(P0)*( + (3*P2*P1+P1*P1*P1)/(1+G4Exp(P0))/(1+G4Exp(P0)) + +4*K1*(P1*P1+P2)/(1+G4Exp(P0))/cte + +2*P1*(K1*K1/cte/cte+K2/(1+G4Exp(P0))/cte) ); - G0 = gradient[i]*cte/(1+std::exp(P0)); + G0 = gradient[i]*cte/(1+G4Exp(P0)); G1 = gradient[i]*K1; G2 = gradient[i]*K2; G3 = gradient[i]*K3; diff --git a/examples/advanced/microelectronics/History b/examples/advanced/microelectronics/History index 66af7d60d7..d021751bb8 100644 --- a/examples/advanced/microelectronics/History +++ b/examples/advanced/microelectronics/History @@ -9,6 +9,10 @@ $Id: History,v 1.24 2010-11-18 11:48:21 allison Exp $ Package History file -------------------- +4 June 2016 - V.Ivanchenko - microelectronics-V10-02-01 +4 June 2016 - V.Ivanchenko - microelectronics-V10-02-00 + - Fix msc definition in PhysicsList + 1 November 2014 - L. Garnier from M. Raine - microelectronics-V10-00-03 - Fix a warning "'ui' may be used uninitialized in this function" diff --git a/examples/advanced/microelectronics/microelectronics.out b/examples/advanced/microelectronics/microelectronics.out index d11ad59516..11c3a46ee2 100644 --- a/examples/advanced/microelectronics/microelectronics.out +++ b/examples/advanced/microelectronics/microelectronics.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -62,10 +64,12 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 2 regions: - DefaultRegionForTheWorld - Target + DefaultRegionForTheWorld 1 1 1 + Target 1 1 1 ### === G4UAtomicDeexcitation::InitialiseForNewRun() +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 ### === PIXE model for hadrons: Empirical ### === PIXE model for e+-: Livermore @@ -83,7 +87,7 @@ eIoni: for e- SubType= 2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MollerBhabha : Emin= 0 eV Emax= 10 TeV ===== EM models for the G4Region Target ====== - MollerBhabha : Emin= 99.99 MeV Emax= 10 TeV + MollerBhabha : Emin= 100 MeV Emax= 10 TeV e-_G4MicroElecElastic: for e- SubType= 51 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -111,13 +115,14 @@ hIoni: for proton SubType= 2 BetheBloch : Emin= 2 MeV Emax= 10 TeV ===== EM models for the G4Region Target ====== Bragg : Emin= 0 eV Emax= 2 MeV - BetheBloch : Emin= 990 MeV Emax= 100 GeV + BetheBloch : Emin= 10 GeV Emax= 10 TeV p_G4MicroElecInelastic: for proton SubType= 53 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DummyModel : Emin= 0 eV Emax= 10 TeV ===== EM models for the G4Region Target ====== -MicroElecInelasticModel : Emin= 0 eV Emax= 10 GeV deltaVI FluoActive +MicroElecInelasticModel : Emin= 50 keV Emax= 10 GeV deltaVI FluoActive + DummyModel : Emin= 10 GeV Emax= 10 TeV msc: for GenericIon SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 @@ -127,20 +132,21 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 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= 10 TeV ===== EM models for the G4Region Target ====== BraggIon : Emin= 0 eV Emax= 2 MeV - BetheBloch : Emin= 990 MeV Emax= 100 GeV + BetheBloch : Emin= 10 GeV Emax= 10 TeV ion_G4MicroElecInelastic: for GenericIon SubType= 53 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DummyModel : Emin= 0 eV Emax= 10 TeV ===== EM models for the G4Region Target ====== -MicroElecInelasticModel : Emin= 0 eV Emax= 10 GeV deltaVI FluoActive +MicroElecInelasticModel : Emin= 50 keV Emax= 10 GeV deltaVI FluoActive + DummyModel : Emin= 10 GeV Emax= 10 TeV Region -- -- appears in world volume This region is in the mass world. @@ -186,18 +192,18 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 0 kByte Total CPU time elapsed for geometry optimisation: 0 seconds ### Run 0 starts. -##### Create analysis manager 0x1ad99e0 +##### Create analysis manager 0x179f680 Using Root analysis manager ... open Root analysis file : microelectronics.root - done Run terminated. Run Summary Number of events processed : 1 - User=0.35s Real=0.35s Sys=0s + User=0.2s Real=0.2s Sys=0s ... write Root file : microelectronics.root - done Number and type of particles created outside region "Target" : _______________________ Number and type of particles created in region "Target" : -N e- : 24 +N e- : 4 Region -- -- appears in world volume This region is in the mass world. @@ -238,7 +244,7 @@ Index : 1 used in the geometry : Yes ==================================================================== ### Run 1 starts. -##### Create analysis manager 0x1ad99e0 +##### Create analysis manager 0x179f680 Using Root analysis manager ... open Root analysis file : microelectronics.root - done Run terminated. @@ -249,7 +255,7 @@ Run Summary Number and type of particles created outside region "Target" : _______________________ Number and type of particles created in region "Target" : -N e- : 24 +N e- : 4 Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -268,12 +274,12 @@ 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.00288 MB -Pool ID '7G4Track', size : 0.00481 MB +Pool ID '17G4DynamicParticle', 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: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.021 MB +Dynamic pools deleted: 9 / Total memory freed: 0.016 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/microelectronics/src/PhysicsList.cc b/examples/advanced/microelectronics/src/PhysicsList.cc index 8a71447bfe..aa2920bff5 100644 --- a/examples/advanced/microelectronics/src/PhysicsList.cc +++ b/examples/advanced/microelectronics/src/PhysicsList.cc @@ -147,7 +147,8 @@ void PhysicsList::ConstructEM() // STANDARD msc is active in the world G4eMultipleScattering* msc = new G4eMultipleScattering(); - pmanager->AddProcess(msc, -1, 1, 1); + msc->AddEmModel(1, new G4UrbanMscModel()); + pmanager->AddProcess(msc, -1, 1, -1); // STANDARD ionisation is active in the world G4eIonisation* eion = new G4eIonisation(); @@ -172,7 +173,8 @@ void PhysicsList::ConstructEM() // STANDARD msc is active in the world G4hMultipleScattering* msc = new G4hMultipleScattering(); - pmanager->AddProcess(msc, -1, 1, 1); + msc->AddEmModel(1, new G4UrbanMscModel()); + pmanager->AddProcess(msc, -1, 1, -1); // STANDARD ionisation is active in the world G4hIonisation* hion = new G4hIonisation(); @@ -187,7 +189,9 @@ void PhysicsList::ConstructEM() } else if (particleName == "GenericIon") { // STANDARD msc is active in the world - pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); + G4hMultipleScattering* msc = new G4hMultipleScattering(); + msc->AddEmModel(1, new G4UrbanMscModel()); + pmanager->AddProcess(new G4hMultipleScattering, -1, 1, -1); // STANDARD ionisation is active in the world G4ionIonisation* hion = new G4ionIonisation(); @@ -221,7 +225,7 @@ void PhysicsList::ConstructEM() em_config->SetExtraEmModel("e-","msc",msc,"Target"); mod = new G4MollerBhabhaModel(); - mod->SetActivationLowEnergyLimit(99.99*MeV); + mod->SetActivationLowEnergyLimit(100*MeV); em_config->SetExtraEmModel("e-","eIoni",mod,"Target",0.0,10*TeV, new G4UniversalFluctuation()); // ---> MicroElec processes activated @@ -240,16 +244,19 @@ void PhysicsList::ConstructEM() // Inactivate following STANDARD processes mod = new G4BraggModel(); - mod->SetActivationHighEnergyLimit(0.499); + mod->SetActivationHighEnergyLimit(50*keV); em_config->SetExtraEmModel("proton","hIoni",mod,"Target",0.0,2*MeV, new G4IonFluctuations()); mod = new G4BetheBlochModel(); - mod->SetActivationLowEnergyLimit(0.99*GeV); - em_config->SetExtraEmModel("proton","hIoni",mod,"Target",2*MeV,100*GeV, new G4IonFluctuations()); + mod->SetActivationLowEnergyLimit(10*GeV); + em_config->SetExtraEmModel("proton","hIoni",mod,"Target",2*MeV,10*TeV, new G4IonFluctuations()); // ---> MicroElec processes activated mod = new G4MicroElecInelasticModel(); - em_config->SetExtraEmModel("proton","p_G4MicroElecInelastic",mod,"Target",50*keV,10*GeV); + mod->SetActivationLowEnergyLimit(50*keV); + em_config->SetExtraEmModel("proton","p_G4MicroElecInelastic",mod,"Target",0.0,10*GeV); + em_config->SetExtraEmModel("proton","p_G4MicroElecInelastic",new G4DummyModel, + "Target",10*GeV,10*TeV); // *** ion @@ -259,16 +266,20 @@ void PhysicsList::ConstructEM() // Inactivate following STANDARD processes mod = new G4BraggIonModel(); - mod->SetActivationHighEnergyLimit(49.9*keV); + mod->SetActivationHighEnergyLimit(50*keV); em_config->SetExtraEmModel("GenericIon","ionIoni",mod,"Target",0.0,2*MeV, new G4IonFluctuations()); mod = new G4BetheBlochModel(); - mod->SetActivationLowEnergyLimit(0.99*GeV); - em_config->SetExtraEmModel("GenericIon","ionIoni",mod,"Target",2*MeV,100*GeV, new G4IonFluctuations()); + mod->SetActivationLowEnergyLimit(10*GeV); + em_config->SetExtraEmModel("GenericIon","ionIoni",mod,"Target",2*MeV,10*TeV, new G4IonFluctuations()); // ---> MicroElec processes activated mod = new G4MicroElecInelasticModel(); - em_config->SetExtraEmModel("GenericIon","ion_G4MicroElecInelastic",mod,"Target",50*keV,10*GeV); + mod->SetActivationLowEnergyLimit(50*keV); + em_config->SetExtraEmModel("GenericIon","ion_G4MicroElecInelastic",mod, + "Target",0.0,10*GeV); + em_config->SetExtraEmModel("GenericIon","ion_G4MicroElecInelastic",new G4DummyModel, + "Target",10*GeV,10*TeV); // Deexcitation // diff --git a/examples/advanced/nanobeam/History b/examples/advanced/nanobeam/History index b017f6d08a..62d8bdb11f 100644 --- a/examples/advanced/nanobeam/History +++ b/examples/advanced/nanobeam/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History 93477 2015-10-23 07:40:20Z gcosmo $ +$Id: History 95952 2016-03-03 10:48:42Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History 93477 2015-10-23 07:40:20Z gcosmo $ Package History file -------------------- +02 Mar 2016 - S.Incerti - tag nanobeam-V10-02-00 +- removed exp + 22 Oct 2015 - tag nanobeam-V10-01-00 - S. Incerti - upgraded plot.C to ROOT 6 diff --git a/examples/advanced/nanobeam/src/TabulatedField3D.cc b/examples/advanced/nanobeam/src/TabulatedField3D.cc index e3d219dd85..1396a4d6a7 100755 --- a/examples/advanced/nanobeam/src/TabulatedField3D.cc +++ b/examples/advanced/nanobeam/src/TabulatedField3D.cc @@ -29,6 +29,7 @@ #include "TabulatedField3D.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -481,23 +482,23 @@ if (fModel==3) P2 = 2*c2[i]/a0[i]/a0[i]; // d2P/fDz2 - cte = 1 + std::exp(c0[i]); // (1+e^c0) + cte = 1 + G4Exp(c0[i]); // (1+e^c0) - K1 = -cte*P1*std::exp(P0)/( (1+std::exp(P0))*(1+std::exp(P0)) ); // see (11) p1397 TNS 51 + K1 = -cte*P1*G4Exp(P0)/( (1+G4Exp(P0))*(1+G4Exp(P0)) ); // see (11) p1397 TNS 51 - K2 = -cte*std::exp(P0)*( // see (12) p1397 TNS 51 - P2/( (1+std::exp(P0))*(1+std::exp(P0)) ) - +2*P1*K1/(1+std::exp(P0))/cte - +P1*P1/(1+std::exp(P0))/(1+std::exp(P0)) + K2 = -cte*G4Exp(P0)*( // see (12) p1397 TNS 51 + P2/( (1+G4Exp(P0))*(1+G4Exp(P0)) ) + +2*P1*K1/(1+G4Exp(P0))/cte + +P1*P1/(1+G4Exp(P0))/(1+G4Exp(P0)) ); - K3 = -cte*std::exp(P0)*( // see (13) p1397 TNS 51 - (3*P2*P1+P1*P1*P1)/(1+std::exp(P0))/(1+std::exp(P0)) - +4*K1*(P1*P1+P2)/(1+std::exp(P0))/cte - +2*P1*(K1*K1/cte/cte+K2/(1+std::exp(P0))/cte) + K3 = -cte*G4Exp(P0)*( // see (13) p1397 TNS 51 + (3*P2*P1+P1*P1*P1)/(1+G4Exp(P0))/(1+G4Exp(P0)) + +4*K1*(P1*P1+P2)/(1+G4Exp(P0))/cte + +2*P1*(K1*K1/cte/cte+K2/(1+G4Exp(P0))/cte) ); - G0 = gradient[i]*cte/(1+std::exp(P0)); // G = G0*K(z) see (7) p1397 TNS 51 + G0 = gradient[i]*cte/(1+G4Exp(P0)); // G = G0*K(z) see (7) p1397 TNS 51 G1 = gradient[i]*K1; // dG/fDz G2 = gradient[i]*K2; // d2G/fDz2 G3 = gradient[i]*K3; // d3G/fDz3 diff --git a/examples/advanced/purging_magnet/purging_magnet.out b/examples/advanced/purging_magnet/purging_magnet.out index 6361be7791..f702501ab9 100644 --- a/examples/advanced/purging_magnet/purging_magnet.out +++ b/examples/advanced/purging_magnet/purging_magnet.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -320,7 +322,7 @@ Total number of event = 5000 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 950871954, 826394968 + Current couple of seeds = 1315859993, 1966623602 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/radioprotection/radioprotection.out b/examples/advanced/radioprotection/radioprotection.out index b9b7b14d3d..dc6b4ddaa2 100644 --- a/examples/advanced/radioprotection/radioprotection.out +++ b/examples/advanced/radioprotection/radioprotection.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -73,28 +75,38 @@ Checking overlaps for volume GoldCylinder1_phys ... OK! Checking overlaps for volume GoldCylinder2_phys ... OK! Checking overlaps for volume GoldCylinder3_phys ... OK! ### G4EmConfigurator::AddModels n= 0 -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon PhysicsList::SetCuts:CutLength : 10 nm ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -227,9 +239,6 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -405,33 +414,33 @@ CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 10 TeV -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon msc: for pi+ SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 @@ -504,6 +513,11 @@ hPairProd: for pi- SubType= 4 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -675,7 +689,7 @@ hPairProd: for pi- SubType= 4 Model: QGSP: 12 GeV ---> 100 TeV Model: FTFP: 9.5 GeV ---> 25 GeV Model: Binary Cascade: 19.9 MeV ---> 9.9 GeV - Model: ParticleHPInelastic: 0 eV ---> 20 MeV + Model: NeutronHPInelastic: 0 eV ---> 20 MeV Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV diff --git a/examples/advanced/underground_physics/History b/examples/advanced/underground_physics/History index 4f4c1df3f6..0aff405c13 100644 --- a/examples/advanced/underground_physics/History +++ b/examples/advanced/underground_physics/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History 93897 2015-11-03 08:38:30Z gcosmo $ +$Id: History 97922 2016-06-23 09:30:28Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History 93897 2015-11-03 08:38:30Z gcosmo $ Category History file --------------------- +22.06.2016 - V. Ivanchenko (DMX-V10-02-00) + DMXPhysicsList: migrated EM physics to G4EmParameters. + 02.11.2015 - A. Ribon (DMX-V10-01-01) DMXPhysicsList: migrated to ParticleHP. diff --git a/examples/advanced/underground_physics/src/DMXPhysicsList.cc b/examples/advanced/underground_physics/src/DMXPhysicsList.cc index 394f1a4831..2bb301d5ec 100644 --- a/examples/advanced/underground_physics/src/DMXPhysicsList.cc +++ b/examples/advanced/underground_physics/src/DMXPhysicsList.cc @@ -264,16 +264,27 @@ void DMXPhysicsList::AddTransportation() { #include "G4IonParametrisedLossModel.hh" //em process options to allow msc step-limitation to be switched off -#include "G4EmProcessOptions.hh" +#include "G4EmParameters.hh" +#include "G4VAtomDeexcitation.hh" +#include "G4UAtomicDeexcitation.hh" +#include "G4LossTableManager.hh" void DMXPhysicsList::ConstructEM() { //set a finer grid of the physic tables in order to improve precision //former LowEnergy models have 200 bins up to 100 GeV - G4EmProcessOptions opt; - opt.SetMaxEnergy(100*GeV); - opt.SetDEDXBinning(200); - opt.SetLambdaBinning(200); + G4EmParameters* param = G4EmParameters::Instance(); + param->SetMaxEnergy(100*GeV); + param->SetNumberOfBinsPerDecade(20); + param->SetMscStepLimitType(fMinimal); + param->SetFluo(true); + param->SetPixe(true); + param->SetAuger(true); + G4LossTableManager* man = G4LossTableManager::Instance(); + G4VAtomDeexcitation* ad = man->AtomDeexcitation(); + if(!ad) { + man->SetAtomDeexcitation(new G4UAtomicDeexcitation()); + } theParticleIterator->reset(); while( (*theParticleIterator)() ){ @@ -287,7 +298,6 @@ void DMXPhysicsList::ConstructEM() { { //gamma G4RayleighScattering* theRayleigh = new G4RayleighScattering(); - theRayleigh->SetEmModel(new G4LivermoreRayleighModel()); //not strictly necessary pmanager->AddDiscreteProcess(theRayleigh); G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect(); @@ -310,7 +320,7 @@ void DMXPhysicsList::ConstructEM() { // Multiple scattering G4eMultipleScattering* msc = new G4eMultipleScattering(); msc->SetStepLimitType(fUseDistanceToBoundary); - pmanager->AddProcess(msc,-1, 1, 1); + pmanager->AddProcess(msc,-1, 1, -1); // Ionisation G4eIonisation* eIonisation = new G4eIonisation(); @@ -412,15 +422,6 @@ void DMXPhysicsList::ConstructEM() { } } - - // turn off msc step-limitation - especially as electron cut 1nm - opt.SetMscStepLimitation(fMinimal); - - // switch on fluorescence, PIXE and Auger: - opt.SetFluo(true); - opt.SetPIXE(true); - opt.SetAuger(true); - } diff --git a/examples/advanced/underground_physics/underground_physics.out b/examples/advanced/underground_physics/underground_physics.out index 1b587da523..00a4108c3c 100644 --- a/examples/advanced/underground_physics/underground_physics.out +++ b/examples/advanced/underground_physics/underground_physics.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -62,43 +64,68 @@ Available colours: Calibration source centre (X,Y,Z): 0, 0, -302.65 mm User Limits: - theMaxTimeCuts: 1.79769e+299 s - theRoomTimeCut: 1 mus + theMaxTimeCuts: 1.79769e+299 s + theRoomTimeCut: 1 us theMaxStepSize: 5.82593e+288 pc theMinEKine: 250 eV minRoomMinEKine: 250 eV -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon DMXPhysicsList::SetCuts:CutLength : 1 um Verbosity Set to: 0 +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 1 1 + +### === G4UAtomicDeexcitation::InitialiseForNewRun() +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 +### === PIXE model for hadrons: Empirical +### === PIXE model for e+-: Livermore + Rayl: for gamma SubType= 11 BuildTable= 1 - Lambda table from 100 eV to 100 keV, 22 bins per decade, spline: 0 - LambdaPrime table from 100 keV to 100 GeV in 133 bins + Lambda table from 100 eV to 100 keV, 20 bins per decade, spline: 0 + LambdaPrime table from 100 keV to 100 GeV in 120 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 GeV CullenGenerator phot: for gamma SubType= 12 BuildTable= 0 - LambdaPrime table from 200 keV to 100 GeV in 127 bins + LambdaPrime table from 200 keV to 100 GeV in 114 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 GeV AngularGenSauterGavrila + LivermorePhElectric : Emin= 0 eV Emax= 100 GeV AngularGenSauterGavrila FluoActive compt: for gamma SubType= 13 BuildTable= 1 - Lambda table from 100 eV to 1 MeV, 22 bins per decade, spline: 1 - LambdaPrime table from 1 MeV to 100 GeV in 111 bins + Lambda table from 100 eV to 1 MeV, 20 bins per decade, spline: 1 + LambdaPrime table from 1 MeV to 100 GeV in 100 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreCompton : Emin= 0 eV Emax= 100 GeV + LivermoreCompton : Emin= 0 eV Emax= 100 GeV FluoActive conv: for gamma SubType= 14 BuildTable= 1 Lambda table from 1.022 MeV to 100 GeV, 24 bins per decade, spline: 1 @@ -107,40 +134,40 @@ conv: for gamma SubType= 14 BuildTable= 1 BetheHeitlerLPM : Emin= 80 GeV Emax= 100 GeV msc: for e- SubType= 10 - RangeFactor= 0.04, stepLimitType: 0, latDisplacement: 1 + RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV eIoni: for e- SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEnergyIoni : Emin= 0 eV Emax= 100 GeV deltaVI eBrem: for e- SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEnBrem : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 100 GeV DipBustGen msc: for e+ SubType= 10 - RangeFactor= 0.04, stepLimitType: 0, latDisplacement: 1 + RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV eIoni: for e+ SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MollerBhabha : Emin= 0 eV Emax= 100 GeV eBrem: for e+ SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen @@ -153,11 +180,11 @@ annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 msc: for proton SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV hIoni: for proton SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 2 MeV @@ -165,8 +192,8 @@ hIoni: for proton SubType= 2 ===== Limit on energy threshold has been applied hBrems: for proton SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 GeV ===== Limit on energy threshold has been applied @@ -177,28 +204,21 @@ msc: for GenericIon SubType= 10 UrbanMsc : Emin= 0 eV Emax= 100 GeV ionIoni: for GenericIon SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ParamICRU73 : Emin= 0 eV Emax= 100 GeV deltaVI ===== Limit on energy threshold has been applied -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - -### === G4UAtomicDeexcitation::InitialiseForNewRun() -### === PIXE model for hadrons: Empirical -### === PIXE model for e+-: Livermore - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV ionIoni: for alpha SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV @@ -208,11 +228,11 @@ ionIoni: for alpha SubType= 2 msc: for anti_proton SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV hIoni: for anti_proton SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 2 MeV @@ -222,11 +242,11 @@ hIoni: for anti_proton SubType= 2 msc: for kaon+ SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV hIoni: for kaon+ SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 1.05231 MeV @@ -236,11 +256,11 @@ hIoni: for kaon+ SubType= 2 msc: for kaon- SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV hIoni: for kaon- SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV @@ -250,12 +270,12 @@ hIoni: for kaon- SubType= 2 msc: for mu+ SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV muIoni: for mu+ SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -263,15 +283,15 @@ muIoni: for mu+ SubType= 2 ===== Limit on energy threshold has been applied muBrems: for mu+ SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MuBrem : Emin= 0 eV Emax= 100 GeV ===== Limit on energy threshold has been applied muPairProd: for mu+ SubType= 4 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 Sampling table 9x1001 from 1 GeV to 0.1 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 100 GeV @@ -279,12 +299,12 @@ muPairProd: for mu+ SubType= 4 msc: for mu- SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV muIoni: for mu- SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -292,44 +312,44 @@ muIoni: for mu- SubType= 2 ===== Limit on energy threshold has been applied muBrems: for mu- SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MuBrem : Emin= 0 eV Emax= 100 GeV ===== Limit on energy threshold has been applied muPairProd: for mu- SubType= 4 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 Sampling table 9x1001 from 1 GeV to 0.1 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 100 GeV -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon msc: for pi+ SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV hIoni: for pi+ SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 297.505 keV @@ -337,8 +357,8 @@ hIoni: for pi+ SubType= 2 ===== Limit on energy threshold has been applied hBrems: for pi+ SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 GeV ===== Limit on energy threshold has been applied @@ -346,11 +366,11 @@ hBrems: for pi+ SubType= 3 msc: for pi- SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 198 bins Emin= 100 eV Emax= 100 GeV + UrbanMsc : Emin= 0 eV Emax= 100 GeV Table with 180 bins Emin= 100 eV Emax= 100 GeV hIoni: for pi- SubType= 2 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 297.505 keV @@ -358,8 +378,8 @@ hIoni: for pi- SubType= 2 ===== Limit on energy threshold has been applied hBrems: for pi- SubType= 3 - dE/dx and range tables from 100 eV to 100 GeV in 200 bins - Lambda tables from threshold to 100 GeV, 22 bins per decade, spline: 1 + dE/dx and range tables from 100 eV to 100 GeV in 180 bins + Lambda tables from threshold to 100 GeV, 20 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 GeV ===== Limit on energy threshold has been applied @@ -650,12 +670,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 10 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 29 - Total energy in LXe: 60 keV - Average light collection time: 17.9502 ns - Number of PMT hits (photoelectron equivalent): 57 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 10 @@ -695,7 +710,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 60 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 23 + Total energy in LXe: 30.5479 keV + Average light collection time: 26.0302 ns + Number of PMT hits (photoelectron equivalent): 25 + Event summary in file gamma_1000.out ---> End of event: 60 @@ -711,12 +731,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 80 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 42 - Total energy in LXe: 60 keV - Average light collection time: 18.6674 ns - Number of PMT hits (photoelectron equivalent): 85 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 80 @@ -724,12 +739,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 90 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 20 - Total energy in LXe: 60 keV - Average light collection time: 19.5206 ns - Number of PMT hits (photoelectron equivalent): 141 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 90 @@ -737,7 +747,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 100 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 56 + Total energy in LXe: 60 keV + Average light collection time: 24.769 ns + Number of PMT hits (photoelectron equivalent): 62 + Event summary in file gamma_1000.out ---> End of event: 100 @@ -754,10 +769,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 23 - Total energy in LXe: 60 keV - Average light collection time: 17.9193 ns - Number of PMT hits (photoelectron equivalent): 67 + Number of hits in LXe: 22 + Total energy in LXe: 30.5479 keV + Average light collection time: 22.4963 ns + Number of PMT hits (photoelectron equivalent): 28 Event summary in file gamma_1000.out ---> End of event: 120 @@ -767,10 +782,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 23 + Number of hits in LXe: 47 Total energy in LXe: 60 keV - Average light collection time: 18.8955 ns - Number of PMT hits (photoelectron equivalent): 59 + Average light collection time: 20.9446 ns + Number of PMT hits (photoelectron equivalent): 52 Event summary in file gamma_1000.out ---> End of event: 130 @@ -779,12 +794,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 140 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 23 - Total energy in LXe: 60 keV - Average light collection time: 26.441 ns - Number of PMT hits (photoelectron equivalent): 60 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 140 @@ -792,12 +802,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 150 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 23 - Total energy in LXe: 60 keV - Average light collection time: 19.0052 ns - Number of PMT hits (photoelectron equivalent): 45 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 150 @@ -805,7 +810,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 160 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: 13.5985 ns + Number of PMT hits (photoelectron equivalent): 26 + Event summary in file gamma_1000.out ---> End of event: 160 @@ -813,12 +823,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 170 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 15 - Total energy in LXe: 60 keV - Average light collection time: 20.3441 ns - Number of PMT hits (photoelectron equivalent): 68 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 170 @@ -842,7 +847,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 200 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 48 + Total energy in LXe: 30.5479 keV + Average light collection time: 24.6929 ns + Number of PMT hits (photoelectron equivalent): 32 + Event summary in file gamma_1000.out ---> End of event: 200 @@ -867,10 +877,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 31 + Number of hits in LXe: 58 Total energy in LXe: 60 keV - Average light collection time: 20.5801 ns - Number of PMT hits (photoelectron equivalent): 54 + Average light collection time: 20.8288 ns + Number of PMT hits (photoelectron equivalent): 61 Event summary in file gamma_1000.out ---> End of event: 230 @@ -879,12 +889,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 240 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 14 - Total energy in LXe: 60 keV - Average light collection time: 18.8963 ns - Number of PMT hits (photoelectron equivalent): 62 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 240 @@ -908,7 +913,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 270 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 51 + Total energy in LXe: 60 keV + Average light collection time: 22.071 ns + Number of PMT hits (photoelectron equivalent): 58 + Event summary in file gamma_1000.out ---> End of event: 270 @@ -916,7 +926,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 280 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 20 + Total energy in LXe: 30.2187 keV + Average light collection time: 15.9839 ns + Number of PMT hits (photoelectron equivalent): 43 + Event summary in file gamma_1000.out ---> End of event: 280 @@ -924,7 +939,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 290 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: e- + Number of hits in LXe: 164 + Total energy in LXe: 34.2393 keV + Average light collection time: 20.4614 ns + Number of PMT hits (photoelectron equivalent): 29 + Event summary in file gamma_1000.out ---> End of event: 290 @@ -932,7 +952,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 300 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 30 + Total energy in LXe: 26.3706 keV + Average light collection time: 23.3286 ns + Number of PMT hits (photoelectron equivalent): 27 + Event summary in file gamma_1000.out ---> End of event: 300 @@ -940,12 +965,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 310 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 20 - Total energy in LXe: 60 keV - Average light collection time: 24.1207 ns - Number of PMT hits (photoelectron equivalent): 54 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 310 @@ -953,12 +973,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 320 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 32 - Total energy in LXe: 60 keV - Average light collection time: 19.3477 ns - Number of PMT hits (photoelectron equivalent): 49 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 320 @@ -966,7 +981,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 330 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: 24.5095 ns + Number of PMT hits (photoelectron equivalent): 64 + Event summary in file gamma_1000.out ---> End of event: 330 @@ -990,12 +1010,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 360 Primary Energy: 60 keV - First hit in LXe: e- - Number of hits in LXe: 34 - Total energy in LXe: 33.8928 keV - Average light collection time: 21.8096 ns - Number of PMT hits (photoelectron equivalent): 30 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 360 @@ -1011,12 +1026,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 380 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 19 - Total energy in LXe: 60 keV - Average light collection time: 18.9438 ns - Number of PMT hits (photoelectron equivalent): 48 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 380 @@ -1024,7 +1034,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 390 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 69 + Total energy in LXe: 60 keV + Average light collection time: 17.4408 ns + Number of PMT hits (photoelectron equivalent): 42 + Event summary in file gamma_1000.out ---> End of event: 390 @@ -1032,7 +1047,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 400 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 32 + Total energy in LXe: 30.5479 keV + Average light collection time: 17.3517 ns + Number of PMT hits (photoelectron equivalent): 21 + Event summary in file gamma_1000.out ---> End of event: 400 @@ -1056,7 +1076,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 430 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 35 + Total energy in LXe: 30.5479 keV + Average light collection time: 16.3086 ns + Number of PMT hits (photoelectron equivalent): 31 + Event summary in file gamma_1000.out ---> End of event: 430 @@ -1064,7 +1089,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 440 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 24 + Total energy in LXe: 30.5479 keV + Average light collection time: 19.8002 ns + Number of PMT hits (photoelectron equivalent): 27 + Event summary in file gamma_1000.out ---> End of event: 440 @@ -1088,11 +1118,11 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 470 Primary Energy: 60 keV - First hit in LXe: e- - Number of hits in LXe: 13 - Total energy in LXe: 19.6701 keV - Average light collection time: 24.9545 ns - Number of PMT hits (photoelectron equivalent): 19 + First hit in LXe: gamma + Number of hits in LXe: 29 + Total energy in LXe: 30.2187 keV + Average light collection time: 21.3202 ns + Number of PMT hits (photoelectron equivalent): 33 Event summary in file gamma_1000.out ---> End of event: 470 @@ -1109,12 +1139,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 490 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 16 - Total energy in LXe: 60 keV - Average light collection time: 18.7867 ns - Number of PMT hits (photoelectron equivalent): 101 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 490 @@ -1130,12 +1155,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 510 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 16 - Total energy in LXe: 60 keV - Average light collection time: 24.5047 ns - Number of PMT hits (photoelectron equivalent): 62 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 510 @@ -1143,12 +1163,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 520 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 21 - Total energy in LXe: 60 keV - Average light collection time: 18.1987 ns - Number of PMT hits (photoelectron equivalent): 52 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 520 @@ -1164,7 +1179,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 540 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 33 + Total energy in LXe: 60 keV + Average light collection time: 18.552 ns + Number of PMT hits (photoelectron equivalent): 48 + Event summary in file gamma_1000.out ---> End of event: 540 @@ -1173,10 +1193,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 20 + Number of hits in LXe: 45 Total energy in LXe: 60 keV - Average light collection time: 20.3813 ns - Number of PMT hits (photoelectron equivalent): 55 + Average light collection time: 17.8442 ns + Number of PMT hits (photoelectron equivalent): 57 Event summary in file gamma_1000.out ---> End of event: 550 @@ -1201,12 +1221,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 580 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 10 - Total energy in LXe: 60 keV - Average light collection time: 21.6645 ns - Number of PMT hits (photoelectron equivalent): 47 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 580 @@ -1214,7 +1229,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 590 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: 21.662 ns + Number of PMT hits (photoelectron equivalent): 53 + Event summary in file gamma_1000.out ---> End of event: 590 @@ -1230,12 +1250,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 610 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 49 - Total energy in LXe: 60 keV - Average light collection time: 23.7514 ns - Number of PMT hits (photoelectron equivalent): 53 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 610 @@ -1243,12 +1258,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 620 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 16 - Total energy in LXe: 60 keV - Average light collection time: 18.9205 ns - Number of PMT hits (photoelectron equivalent): 154 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 620 @@ -1264,12 +1274,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 640 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 23 - Total energy in LXe: 60 keV - Average light collection time: 18.2381 ns - Number of PMT hits (photoelectron equivalent): 51 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 640 @@ -1277,7 +1282,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 650 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 54 + Total energy in LXe: 60 keV + Average light collection time: 23.2243 ns + Number of PMT hits (photoelectron equivalent): 65 + Event summary in file gamma_1000.out ---> End of event: 650 @@ -1309,7 +1319,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 690 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 51 + Total energy in LXe: 60 keV + Average light collection time: 18.2369 ns + Number of PMT hits (photoelectron equivalent): 61 + Event summary in file gamma_1000.out ---> End of event: 690 @@ -1317,7 +1332,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 700 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 51 + Total energy in LXe: 60 keV + Average light collection time: 22.4656 ns + Number of PMT hits (photoelectron equivalent): 60 + Event summary in file gamma_1000.out ---> End of event: 700 @@ -1326,10 +1346,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 2 - Total energy in LXe: 2.24311 keV - Average light collection time: 12.8971 ns - Number of PMT hits (photoelectron equivalent): 1 + Number of hits in LXe: 55 + Total energy in LXe: 60 keV + Average light collection time: 21.149 ns + Number of PMT hits (photoelectron equivalent): 54 Event summary in file gamma_1000.out ---> End of event: 710 @@ -1338,12 +1358,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 720 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 15 - Total energy in LXe: 60 keV - Average light collection time: 20.7652 ns - Number of PMT hits (photoelectron equivalent): 64 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 720 @@ -1359,12 +1374,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 740 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 15 - Total energy in LXe: 60 keV - Average light collection time: 20.4908 ns - Number of PMT hits (photoelectron equivalent): 91 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 740 @@ -1372,12 +1382,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 750 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 22 - Total energy in LXe: 60 keV - Average light collection time: 22.6878 ns - Number of PMT hits (photoelectron equivalent): 51 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 750 @@ -1385,12 +1390,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 760 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 24 - Total energy in LXe: 60 keV - Average light collection time: 21.0236 ns - Number of PMT hits (photoelectron equivalent): 63 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 760 @@ -1398,7 +1398,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 770 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: 20.6455 ns + Number of PMT hits (photoelectron equivalent): 145 + Event summary in file gamma_1000.out ---> End of event: 770 @@ -1406,7 +1411,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 780 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 21 + Total energy in LXe: 30.5479 keV + Average light collection time: 18.9853 ns + Number of PMT hits (photoelectron equivalent): 19 + Event summary in file gamma_1000.out ---> End of event: 780 @@ -1414,12 +1424,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 790 Primary Energy: 60 keV - First hit in LXe: e- - Number of hits in LXe: 23 - Total energy in LXe: 26.2454 keV - Average light collection time: 31.2021 ns - Number of PMT hits (photoelectron equivalent): 19 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 790 @@ -1427,12 +1432,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 800 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 12 - Total energy in LXe: 60 keV - Average light collection time: 17.5756 ns - Number of PMT hits (photoelectron equivalent): 57 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 800 @@ -1441,10 +1441,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 28 + Number of hits in LXe: 41 Total energy in LXe: 60 keV - Average light collection time: 18.8274 ns - Number of PMT hits (photoelectron equivalent): 75 + Average light collection time: 20.0126 ns + Number of PMT hits (photoelectron equivalent): 81 Event summary in file gamma_1000.out ---> End of event: 810 @@ -1453,7 +1453,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 820 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 52 + Total energy in LXe: 60 keV + Average light collection time: 18.0733 ns + Number of PMT hits (photoelectron equivalent): 45 + Event summary in file gamma_1000.out ---> End of event: 820 @@ -1462,10 +1467,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 47 - Total energy in LXe: 60 keV - Average light collection time: 27.3344 ns - Number of PMT hits (photoelectron equivalent): 67 + Number of hits in LXe: 31 + Total energy in LXe: 30.2187 keV + Average light collection time: 14.9168 ns + Number of PMT hits (photoelectron equivalent): 40 Event summary in file gamma_1000.out ---> End of event: 830 @@ -1482,12 +1487,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 850 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 18 - Total energy in LXe: 60 keV - Average light collection time: 20.2659 ns - Number of PMT hits (photoelectron equivalent): 45 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 850 @@ -1495,12 +1495,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 860 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 51 - Total energy in LXe: 60 keV - Average light collection time: 21.2981 ns - Number of PMT hits (photoelectron equivalent): 57 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 860 @@ -1516,12 +1511,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 880 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 18 - Total energy in LXe: 60 keV - Average light collection time: 23.8309 ns - Number of PMT hits (photoelectron equivalent): 66 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 880 @@ -1538,10 +1528,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 20 + Number of hits in LXe: 60 Total energy in LXe: 60 keV - Average light collection time: 17.8907 ns - Number of PMT hits (photoelectron equivalent): 56 + Average light collection time: 18.0721 ns + Number of PMT hits (photoelectron equivalent): 59 Event summary in file gamma_1000.out ---> End of event: 900 @@ -1558,12 +1548,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 920 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 25 - Total energy in LXe: 60 keV - Average light collection time: 18.9128 ns - Number of PMT hits (photoelectron equivalent): 60 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 920 @@ -1571,7 +1556,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 930 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 51 + Total energy in LXe: 60 keV + Average light collection time: 17.8688 ns + Number of PMT hits (photoelectron equivalent): 46 + Event summary in file gamma_1000.out ---> End of event: 930 @@ -1579,12 +1569,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 940 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 24 - Total energy in LXe: 60 keV - Average light collection time: 17.0767 ns - Number of PMT hits (photoelectron equivalent): 54 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 940 @@ -1592,12 +1577,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 950 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 21 - Total energy in LXe: 60 keV - Average light collection time: 21.7371 ns - Number of PMT hits (photoelectron equivalent): 89 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 950 @@ -1605,7 +1585,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 960 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 22 + Total energy in LXe: 25.6047 keV + Average light collection time: 19.7899 ns + Number of PMT hits (photoelectron equivalent): 21 + Event summary in file gamma_1000.out ---> End of event: 960 @@ -1613,12 +1598,7 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 970 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 20 - Total energy in LXe: 60 keV - Average light collection time: 22.748 ns - Number of PMT hits (photoelectron equivalent): 64 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 970 @@ -1626,7 +1606,12 @@ Index : 12 used in the geometry : Yes ---> Begin of event: 980 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 48 + Total energy in LXe: 60 keV + Average light collection time: 20.4008 ns + Number of PMT hits (photoelectron equivalent): 54 + Event summary in file gamma_1000.out ---> End of event: 980 @@ -1635,10 +1620,10 @@ Index : 12 used in the geometry : Yes Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 26 + Number of hits in LXe: 71 Total energy in LXe: 60 keV - Average light collection time: 20.4052 ns - Number of PMT hits (photoelectron equivalent): 62 + Average light collection time: 18.5944 ns + Number of PMT hits (photoelectron equivalent): 67 Event summary in file gamma_1000.out ---> End of event: 990 diff --git a/examples/advanced/xray_fluorescence/xray_fluorescence.out b/examples/advanced/xray_fluorescence/xray_fluorescence.out index d58531a98b..c3ad12e390 100644 --- a/examples/advanced/xray_fluorescence/xray_fluorescence.out +++ b/examples/advanced/xray_fluorescence/xray_fluorescence.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -12,7 +12,6 @@ Using the sequential Run Manager XrayFluoAnalysisManager created -### NIST DataBase for Materials is used G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out @@ -2319,16 +2318,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -2359,6 +2360,8 @@ The Anode is a slice 1e-05mm thick of G4_Ni World is registered to the default region. XrayFluoSD created physicsList->Construct() start. +### WARNING: G4EmProcessOptions class is obsolete and will be removed in the next public release + Please, try to use G4EmParameters class and/or UI interface to EM parameters physicsList->CheckParticleList() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm @@ -2391,9 +2394,11 @@ PhysicsList::SetCuts:CutLength : 10 um /run/beamOn 10 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 1 ### === G4UAtomicDeexcitation::InitialiseForNewRun() +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 ### === PIXE model for hadrons: ECPSSR_FormFactor ### === PIXE model for e+-: Livermore @@ -2862,7 +2867,7 @@ Created histos Run terminated. Run Summary Number of events processed : 10 - User=1.5s Real=1.51s Sys=0s + User=0.93s Real=0.94s Sys=0s Going to save histograms ... write Root file : xrayfluo.root - done /vis/viewer/update @@ -2883,21 +2888,21 @@ XrayFluoSD deleted G4SDManager deleted. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 7 +Total navigation history collections cleaned: 8 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.00673 MB +Pool ID '20G4NavigationLevelRep', size : 0.00865 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 '15G4HCofThisEvent', size : 0.000961 MB Pool ID '16G4HitsCollection', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.319 MB -Pool ID '7G4Track', size : 0.638 MB +Pool ID '17G4DynamicParticle', size : 0.323 MB +Pool ID '7G4Track', size : 0.645 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.97 MB +Dynamic pools deleted: 11 / Total memory freed: 0.98 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 f82b74d0e2..34b98b9584 100644 --- a/examples/advanced/xray_telescope/xray_telescope.out +++ b/examples/advanced/xray_telescope/xray_telescope.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -153,7 +155,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -167,7 +169,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -219,7 +221,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -246,7 +248,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -378,7 +380,7 @@ Opening output file xraytel ... done Run terminated. Run Summary Number of events processed : 1000 - User=0.08s Real=0.08s Sys=0s + User=0.03s Real=0.03s Sys=0s ########################################## WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Graphics systems deleted. diff --git a/examples/basic/.README.txt b/examples/basic/.README.txt index 16ee83c5bb..e766ea965a 100644 --- a/examples/basic/.README.txt +++ b/examples/basic/.README.txt @@ -1,4 +1,4 @@ -// $Id: .README.txt 94710 2015-12-03 16:15:05Z gunter $ +// $Id: .README.txt 94957 2016-01-08 13:27:26Z gcosmo $ ///\file "basic/.README.txt" ///\brief Geant4 Basic Examples README page diff --git a/examples/basic/B1/.README.txt b/examples/basic/B1/.README.txt index 6e08a9ba53..a11685e68e 100644 --- a/examples/basic/B1/.README.txt +++ b/examples/basic/B1/.README.txt @@ -1,4 +1,4 @@ -//$Id: .README.txt 94710 2015-12-03 16:15:05Z gunter $ +//$Id: .README.txt 94957 2016-01-08 13:27:26Z gcosmo $ ///\file "B1/.README.txt" ///\brief Example B1 README page @@ -36,8 +36,8 @@ Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets . - The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4NEUTRONXSDATA and - G4SAIDXSDATA are mandatory for this example. + The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4NEUTRONXSDATA, + G4SAIDXSDATA and G4ENSDFSTATEDATA are mandatory for this example. In addition the build-in interactive command: \verbatim diff --git a/examples/basic/B1/README b/examples/basic/B1/README index e46050cf03..75b9eee3c4 100644 --- a/examples/basic/B1/README +++ b/examples/basic/B1/README @@ -1,4 +1,4 @@ -$Id: README 93886 2015-11-03 08:28:26Z gcosmo $ +$Id: README 94957 2016-01-08 13:27:26Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -36,8 +36,8 @@ $Id: README 93886 2015-11-03 08:28:26Z gcosmo $ Chapter 3.3: Note On Geant4 Datasets: http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides /InstallationGuide/html/ch03s03.html - The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4NEUTRONXSDATA and - G4SAIDXSDATA are mandatory for this example. + The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4NEUTRONXSDATA, + G4SAIDXSDATA and G4ENSDFSTATEDATA are mandatory for this example. In addition the build-in interactive command: /process/(in)activate processName diff --git a/examples/basic/B1/exampleB1.out b/examples/basic/B1/exampleB1.out index 4812eedce9..c1f9cbe7dc 100644 --- a/examples/basic/B1/exampleB1.out +++ b/examples/basic/B1/exampleB1.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -38,16 +38,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -61,6 +63,14 @@ Available colours: Checking overlaps for volume Envelope ... OK! Checking overlaps for volume Shape1 ... OK! Checking overlaps for volume Shape2 ... OK! +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -178,7 +188,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -192,7 +202,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -301,7 +311,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -334,7 +344,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -461,6 +471,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -743,7 +758,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------End of Global Run----------------------- The run consists of 1000 gamma of 6 MeV - Cumulated dose per run, in scoring volume : 41.8432 picoGy rms = 3.86439 picoGy + Cumulated dose per run, in scoring volume : 45.3847 picoGy rms = 3.97502 picoGy ------------------------------------------------------------ ### Run 1 starts. @@ -760,7 +775,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------End of Global Run----------------------- The run consists of 1000 proton of 210 MeV - Cumulated dose per run, in scoring volume : 4.9029 nanoGy rms = 145.489 picoGy + Cumulated dose per run, in scoring volume : 5.09132 nanoGy rms = 145.967 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/basic/B2/.README.txt b/examples/basic/B2/.README.txt index 7e1cdf3c7a..86dc83d18e 100644 --- a/examples/basic/B2/.README.txt +++ b/examples/basic/B2/.README.txt @@ -1,4 +1,4 @@ -//$Id: .README.txt 94710 2015-12-03 16:15:05Z gunter $ +//$Id: .README.txt 94957 2016-01-08 13:27:26Z gcosmo $ ///\file "B2/.README.txt" ///\brief Example B2 README page @@ -44,8 +44,8 @@ This example simulates a simplified fixed target experiment. See more on installation of the datasets in Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets . - The following datasets: G4LEDATA, G4LEVELGAMMADATA and G4SAIDXSDATA are - mandatory for this example. + The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4SAIDXSDATA and + G4ENSDFSTATEDATA are mandatory for this example. In addition, the build-in interactive command: \verbatim diff --git a/examples/basic/B2/B2a/exampleB2a.out b/examples/basic/B2/B2a/exampleB2a.out index cbb3148074..cfcdc13db3 100644 --- a/examples/basic/B2/B2a/exampleB2a.out +++ b/examples/basic/B2/B2a/exampleB2a.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -128,6 +130,14 @@ Checking overlaps for volume Chamber_PV ... OK! Checking overlaps for volume Chamber_PV ... OK! Checking overlaps for volume Chamber_PV ... OK! Checking overlaps for volume Chamber_PV ... OK! +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -245,7 +255,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -259,7 +269,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -368,7 +378,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -401,7 +411,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -527,6 +537,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -811,34 +826,24 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 -0.491 -0.267 -2.45e+03 200 0.000443 1.88 490 Target Transportation 4 -0.492 -0.267 -2.45e+03 164 0.324 0.281 490 Target eBrem 5 -0.546 -0.285 -2.45e+03 39.3 1.28 0.878 491 Target eBrem - 6 -0.575 -0.302 -2.45e+03 38.9 0.245 0.237 491 Target eBrem - 7 -0.602 -0.313 -2.45e+03 38.2 0.336 0.302 492 Target eBrem - 8 -0.759 -0.238 -2.45e+03 37 0.906 0.713 492 Target eBrem - 9 -1.12 -0.224 -2.45e+03 31.4 1.36 1.23 494 Target eBrem - 10 -1.78 0.471 -2.44e+03 28.5 2.72 2.37 496 Target eBrem - 11 -1.82 0.53 -2.44e+03 27.9 0.172 0.179 496 Target eBrem - 12 -2.15 0.903 -2.44e+03 26.8 0.99 0.928 497 Target eBrem - 13 -2.27 1.22 -2.44e+03 23.8 1.56 1.28 498 Target eBrem - 14 -2.48 1.61 -2.44e+03 16.6 1.3 1.17 500 Target eIoni - 15 -2.62 1.94 -2.44e+03 15.8 0.69 0.573 500 Target eBrem - 16 -2.73 2.16 -2.44e+03 13.5 0.371 0.337 500 Target eBrem - 17 -3.53 2.57 -2.44e+03 3.19 1.51 1.2 502 Target eBrem - 18 -3.86 2.86 -2.44e+03 1.07 2.12 1.84 503 Target eIoni - 19 -3.89 2.94 -2.44e+03 0 1.07 0.801 504 Target eIoni - 20 -3.89 2.94 -2.44e+03 0 0 0 504 Target annihil + 6 -0.578 -0.283 -2.45e+03 15.7 0.266 0.237 491 Target eBrem + 7 -1.32 -2.38 -2.45e+03 11 4.64 4.11 496 Target eIoni + 8 -0.76 -4.08 -2.45e+03 8.12 2.57 2.34 498 Target eBrem + 9 -0.827 -4.23 -2.45e+03 7.69 0.28 0.27 498 Target eBrem + 10 -0.803 -5.18 -2.45e+03 3.89 2.36 2.31 500 Target eBrem + 11 -1.15 -4.71 -2.45e+03 2.32 1.57 1.6 502 Target eIoni + 12 -1.18 -4.73 -2.45e+03 0.826 0.0382 0.0559 502 Target eIoni + 13 -1.18 -4.79 -2.45e+03 0 0.826 0.583 503 Target eIoni + 14 -1.18 -4.79 -2.45e+03 0 0 0 503 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +* 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.48 1.61 -2.44e+03 5.96 0 0 0 Target initStep - 1 -2.65 1.74 -2.44e+03 4.71 0.402 0.301 0.301 Target eBrem - 2 -3.19 1.85 -2.44e+03 2.57 2.14 2.16 2.46 Target eIoni - 3 -3.34 1.7 -2.44e+03 1.94 0.502 0.481 2.95 Target eBrem - 4 -3.45 1.71 -2.44e+03 1.45 0.333 0.238 3.18 Target eBrem - 5 -3.5 1.64 -2.44e+03 1.03 0.216 0.241 3.42 Target eBrem - 6 -3.47 1.66 -2.44e+03 0 1.03 0.76 4.18 Target eIoni + 0 -1.18 -4.73 -2.45e+03 1.45 0 0 0 Target initStep + 1 -1.26 -4.77 -2.45e+03 0.169 1.28 1.11 1.11 Target eIoni + 2 -1.26 -4.78 -2.45e+03 0 0.169 0.0627 1.17 Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 @@ -856,390 +861,161 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 -0.0721 -0.0193 -2.83e+03 0.0012 0 0 0 World initStep 1 -0.0707 -0.0502 -2.83e+03 0 0.0012 0.0747 0.0747 World eIoni -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.5 1.64 -2.44e+03 0.198 0 0 0 Target initStep - 1 -3.42 1.68 -2.44e+03 0 0.088 0.153 0.153 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 23 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.42 1.68 -2.44e+03 0.11 0 0 0 Target initStep - 1 -3.42 1.68 -2.44e+03 0 0.11 0.0318 0.0318 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.45 1.71 -2.44e+03 0.164 0 0 0 Target initStep - 1 -3.68 1.47 -2.44e+03 0 0.088 0.366 0.366 Target phot - -********************************************************************************************************* -* 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 -3.68 1.47 -2.44e+03 0.0764 0 0 0 Target initStep - 1 -3.68 1.47 -2.44e+03 0 0.0764 0.0178 0.0178 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.34 1.7 -2.44e+03 0.121 0 0 0 Target initStep - 1 -3.72 1.78 -2.44e+03 0 0.088 0.438 0.438 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 21 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.72 1.78 -2.44e+03 0.0331 0 0 0 Target initStep - 1 -3.72 1.78 -2.44e+03 0 0.0331 0.00455 0.00455 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.65 1.74 -2.44e+03 0.844 0 0 0 Target initStep - 1 -3.47 1.87 -2.44e+03 0 0.088 0.877 0.877 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 20 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.47 1.87 -2.44e+03 0.756 0 0 0 Target initStep - 1 -3.5 1.87 -2.44e+03 0 0.756 0.52 0.52 Target eIoni - -********************************************************************************************************* -* 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 -3.89 2.94 -2.44e+03 0.511 0 0 0 Target initStep - 1 -3.5 2.54 -2.44e+03 0 0.088 0.839 0.839 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 19 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.5 2.54 -2.44e+03 0.423 0 0 0 Target initStep - 1 -3.49 2.54 -2.44e+03 0 0.423 0.243 0.243 Target 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 -3.89 2.94 -2.44e+03 0.511 0 0 0 Target initStep - 1 -10.3 9.31 -2.45e+03 0.511 0 13.6 13.6 World Transportation - 2 -316 316 -2.94e+03 0.511 0 654 668 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 -3.53 2.57 -2.44e+03 8.81 0 0 0 Target initStep - 1 -13.3 9.97 -2.43e+03 0.306 0 13.4 13.4 Target compt - 2 -13.3 6.04 -2.44e+03 0.177 0 4 17.4 Target compt - 3 -13.1 6.14 -2.44e+03 0 0.088 0.313 17.7 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.1 6.14 -2.44e+03 0.0886 0 0 0 Target initStep - 1 -13.1 6.14 -2.44e+03 0 0.0886 0.0226 0.0226 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.3 6.04 -2.44e+03 0.129 0 0 0 Target initStep - 1 -13.3 6.03 -2.44e+03 0 0.129 0.0412 0.0412 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.3 9.97 -2.43e+03 8.51 0 0 0 Target initStep - 1 -13.7 10.3 -2.43e+03 3.16 1.05 0.717 0.717 Target eBrem - 2 -13.9 10.3 -2.43e+03 2.45 0.601 0.443 1.16 Target eBrem - 3 -13.8 10.1 -2.43e+03 0.571 1.88 1.59 2.75 Target eIoni - 4 -13.8 10.1 -2.43e+03 0 0.571 0.363 3.11 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 29 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.9 10.3 -2.43e+03 0.108 0 0 0 Target initStep - 1 -13.7 9.97 -2.43e+03 0 0.088 0.355 0.355 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.7 9.97 -2.43e+03 0.0204 0 0 0 Target initStep - 1 -13.7 9.97 -2.43e+03 0 0.0204 0.00211 0.00211 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 29 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.7 10.3 -2.43e+03 4.29 0 0 0 Target initStep - 1 -23.7 7.85 -2.43e+03 4.29 0 13.4 13.4 World Transportation - 2 -53.7 0.473 -2.4e+03 4.29 0 40.1 53.6 Tracker Transportation - 3 -2.33e+03 -560 -449 4.29 0 3.05e+03 3.11e+03 World Transportation - 4 -2.94e+03 -709 70.3 4.29 0 812 3.92e+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 -2.73 2.16 -2.44e+03 1.91 0 0 0 Target initStep - 1 -18.4 10.1 -2.43e+03 0.544 0 20.2 20.2 Target compt - 2 -17.4 3.81 -2.41e+03 0.359 0 22.9 43.1 Target compt - 3 -16.6 1.4 -2.41e+03 0.235 0 2.64 45.7 Target compt - 4 -19.2 -0.649 -2.41e+03 0 0.088 3.41 49.1 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.2 -0.649 -2.41e+03 0.147 0 0 0 Target initStep - 1 -19.2 -0.65 -2.41e+03 0 0.147 0.0507 0.0507 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.6 1.4 -2.41e+03 0.124 0 0 0 Target initStep - 1 -16.6 1.4 -2.41e+03 0 0.124 0.0385 0.0385 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.4 3.81 -2.41e+03 0.185 0 0 0 Target initStep - 1 -17.4 3.82 -2.41e+03 0 0.185 0.0724 0.0724 Target eIoni - -********************************************************************************************************* -* 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 -18.4 10.1 -2.43e+03 1.36 0 0 0 Target initStep - 1 -18.5 10.1 -2.43e+03 0.0782 1.29 1.04 1.04 Target eIoni - 2 -18.5 10.1 -2.43e+03 0 0.0782 0.0184 1.06 Target 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 -2.62 1.94 -2.44e+03 0.109 0 0 0 Target initStep - 1 -2.74 2.14 -2.44e+03 0 0.088 0.311 0.311 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.74 2.14 -2.44e+03 0.0208 0 0 0 Target initStep - 1 -2.74 2.14 -2.44e+03 0 0.0208 0.00217 0.00217 Target 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 -2.27 1.22 -2.44e+03 1.34 0 0 0 Target initStep - 1 -11.5 12.6 -2.4e+03 0.344 0 43.5 43.5 Target compt - 2 -11.5 12.9 -2.4e+03 0 0.088 0.266 43.8 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.5 12.9 -2.4e+03 0.256 0 0 0 Target initStep - 1 -11.5 12.9 -2.4e+03 0 0.256 0.118 0.118 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.5 12.6 -2.4e+03 0.996 0 0 0 Target initStep - 1 -11.5 12.6 -2.4e+03 0.26 0.623 0.507 0.507 Target eBrem - 2 -11.5 12.6 -2.4e+03 0 0.26 0.121 0.628 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 40 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.5 12.6 -2.4e+03 0.113 0 0 0 Target initStep - 1 -11.7 12.7 -2.4e+03 0 0.088 0.232 0.232 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 42 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.7 12.7 -2.4e+03 0.0253 0 0 0 Target initStep - 1 -11.7 12.7 -2.4e+03 0 0.0253 0.00296 0.00296 Target 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 -2.15 0.903 -2.44e+03 0.176 0 0 0 Target initStep - 1 -2.2 0.974 -2.44e+03 0 0.088 0.28 0.28 Target phot + 0 -1.18 -4.79 -2.45e+03 0.511 0 0 0 Target initStep + 1 -2.26 -6.49 -2.45e+03 0 0.088 2.03 2.03 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 12 +* 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 -2.2 0.974 -2.44e+03 0.0882 0 0 0 Target initStep - 1 -2.2 0.975 -2.44e+03 0 0.0882 0.0224 0.0224 Target eIoni + 0 -2.26 -6.49 -2.45e+03 0.423 0 0 0 Target initStep + 1 -2.27 -6.5 -2.45e+03 0 0.423 0.243 0.243 Target 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 -1.82 0.53 -2.44e+03 0.375 0 0 0 Target initStep - 1 -2.83 2.83 -2.44e+03 0 0.088 5.78 5.78 Target phot + 0 -1.18 -4.79 -2.45e+03 0.511 0 0 0 Target initStep + 1 0.267 -2.5 -2.45e+03 0.351 0 2.73 2.73 Target compt + 2 2.7 -1.87 -2.45e+03 0.351 0 3.99 6.73 World Transportation + 3 386 98 -2.94e+03 0.351 0 630 637 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 11 +* 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 -2.83 2.83 -2.44e+03 0.287 0 0 0 Target initStep - 1 -2.83 2.83 -2.44e+03 0 0.287 0.14 0.14 Target 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 -1.78 0.471 -2.44e+03 0.214 0 0 0 Target initStep - 1 -1.91 0.668 -2.44e+03 0 0.088 0.55 0.55 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.91 0.668 -2.44e+03 0.126 0 0 0 Target initStep - 1 -1.9 0.668 -2.44e+03 0 0.126 0.0395 0.0395 Target eIoni + 0 0.267 -2.5 -2.45e+03 0.16 0 0 0 Target initStep + 1 0.268 -2.5 -2.45e+03 0 0.16 0.0575 0.0575 Target 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 -1.12 -0.224 -2.45e+03 4.24 0 0 0 Target initStep - 1 -1.14 0.196 -2.44e+03 0 0.088 2.02 2.02 Target phot + 0 -0.803 -5.18 -2.45e+03 1.44 0 0 0 Target initStep + 1 -6.27 0.773 -2.45e+03 1.14 0 8.12 8.12 Target compt + 2 -8.4 7.4 -2.45e+03 0.599 0 6.96 15.1 Target compt + 3 -20.7 12.3 -2.45e+03 0.599 0 14 29.1 World Transportation + 4 -1.41e+03 562 -2.94e+03 0.599 0 1.57e+03 1.6e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 9 +* 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 -1.14 0.196 -2.44e+03 4.15 0 0 0 Target initStep - 1 -1.13 0.367 -2.44e+03 1.59 2.47 1.91 1.91 Target eBrem - 2 -1.08 0.373 -2.44e+03 0.282 1.31 1.2 3.11 Target eIoni - 3 -1.08 0.377 -2.44e+03 0 0.282 0.136 3.25 Target eIoni + 0 -8.4 7.4 -2.45e+03 0.541 0 0 0 Target initStep + 1 -8.4 7.42 -2.45e+03 0.0102 0.531 0.318 0.318 Target eBrem + 2 -8.4 7.42 -2.45e+03 0 0.0102 0.000718 0.319 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 47 +* 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 -1.13 0.367 -2.44e+03 0.0955 0 0 0 Target initStep - 1 -1.11 0.358 -2.44e+03 0 0.088 0.0273 0.0273 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.11 0.358 -2.44e+03 0.00746 0 0 0 Target initStep - 1 -1.11 0.358 -2.44e+03 0 0.00746 0.000458 0.000458 Target eIoni + 0 -6.27 0.773 -2.45e+03 0.303 0 0 0 Target initStep + 1 -6.28 0.772 -2.45e+03 0 0.303 0.151 0.151 Target 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.759 -0.238 -2.45e+03 0.275 0 0 0 Target initStep - 1 -0.991 -0.0213 -2.45e+03 0 0.088 1.5 1.5 Target phot + 0 -0.827 -4.23 -2.45e+03 0.149 0 0 0 Target initStep + 1 -0.833 -4.27 -2.45e+03 0 0.088 0.0631 0.0631 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 8 +* 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.991 -0.0213 -2.45e+03 0.187 0 0 0 Target initStep - 1 -0.986 -0.0213 -2.45e+03 0 0.187 0.0734 0.0734 Target eIoni + 0 -0.833 -4.27 -2.45e+03 0.0613 0 0 0 Target initStep + 1 -0.833 -4.27 -2.45e+03 0 0.0613 0.0124 0.0124 Target 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.602 -0.313 -2.45e+03 0.356 0 0 0 Target initStep - 1 -1.12 0.0394 -2.45e+03 0 0.088 2.48 2.48 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.12 0.0394 -2.45e+03 0.268 0 0 0 Target initStep - 1 -1.12 0.0358 -2.45e+03 0 0.268 0.126 0.126 Target eIoni + 0 -0.76 -4.08 -2.45e+03 0.309 0 0 0 Target initStep + 1 -0.855 -7.83 -2.45e+03 0.309 0 5.89 5.89 World Transportation + 2 -11.1 -413 -2.94e+03 0.309 0 636 642 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.575 -0.302 -2.45e+03 0.165 0 0 0 Target initStep - 1 -0.616 -0.286 -2.45e+03 0 0.088 0.994 0.994 Target phot + 0 -0.578 -0.283 -2.45e+03 23.4 0 0 0 Target initStep + 1 -1.73 -0.0161 -2.42e+03 0 0 27.8 27.8 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 6 +* 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 -0.616 -0.286 -2.45e+03 0.0774 0 0 0 Target initStep - 1 -0.616 -0.286 -2.45e+03 0 0.0774 0.0181 0.0181 Target eIoni + 0 -1.73 -0.0161 -2.42e+03 7.97 0 0 0 Target initStep + 1 -1.75 -0.0173 -2.42e+03 7.34 0.53 0.469 0.469 Target eBrem + 2 -1.74 -0.113 -2.42e+03 6.48 0.66 0.427 0.896 Target eBrem + 3 -1.37 -0.386 -2.42e+03 3.57 2.92 2.51 3.41 Target eIoni + 4 -1.16 -0.627 -2.42e+03 1.46 1.95 1.72 5.12 Target eBrem + 5 -1.09 -0.558 -2.42e+03 0.191 1.27 0.995 6.12 Target eBrem + 6 -1.09 -0.56 -2.42e+03 0 0.191 0.0759 6.19 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.16 -0.627 -2.42e+03 0.153 0 0 0 Target initStep + 1 -1.06 -0.555 -2.42e+03 0 0.088 0.127 0.127 Target 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 -1.06 -0.555 -2.42e+03 0.065 0 0 0 Target initStep + 1 -1.06 -0.555 -2.42e+03 0 0.065 0.0137 0.0137 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.74 -0.113 -2.42e+03 0.198 0 0 0 Target initStep + 1 -1.6 -0.202 -2.42e+03 0 0.088 0.323 0.323 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 21 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.6 -0.202 -2.42e+03 0.11 0 0 0 Target initStep + 1 -1.6 -0.201 -2.42e+03 0 0.11 0.0321 0.0321 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.75 -0.0173 -2.42e+03 0.098 0 0 0 Target initStep + 1 -1.74 -0.105 -2.42e+03 0 0.088 0.37 0.37 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 20 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.74 -0.105 -2.42e+03 0.01 0 0 0 Target initStep + 1 -1.74 -0.105 -2.42e+03 0 0.01 0.000704 0.000704 Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 @@ -1247,7 +1023,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.546 -0.285 -2.45e+03 123 0 0 0 Target initStep - 1 -0.606 -0.301 -2.45e+03 0 0 1.13 1.13 Target conv + 1 -0.654 -0.314 -2.45e+03 0 0 2.05 2.05 Target conv ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 @@ -1255,1653 +1031,2129 @@ 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.492 -0.267 -2.45e+03 36 0 0 0 Target initStep - 1 -0.968 -1.06 -2.41e+03 0 0 42.4 42.4 Target conv + 1 -0.494 -0.269 -2.45e+03 0 0 0.145 0.145 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 56, Parent ID = 4 +* 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.968 -1.06 -2.41e+03 5.64 0 0 0 Target initStep - 1 -1.01 -1.07 -2.41e+03 3.4 0.426 0.363 0.363 Target eBrem - 2 -1.07 -1.21 -2.41e+03 1.43 1.97 1.89 2.25 Target eIoni - 3 -1.19 -1.15 -2.41e+03 0.274 1.16 1.11 3.37 Target eIoni - 4 -1.18 -1.15 -2.41e+03 0 0.274 0.127 3.49 Target eIoni - 5 -1.18 -1.15 -2.41e+03 0 0 0 3.49 Target annihil + 0 -0.494 -0.269 -2.45e+03 32.1 0 0 0 Target initStep + 1 -0.498 -0.272 -2.45e+03 31.5 0.0972 0.0851 0.0851 Target eBrem + 2 -0.518 -0.279 -2.45e+03 31 0.426 0.281 0.366 Target eBrem + 3 -0.368 -0.105 -2.45e+03 28.3 2.11 1.65 2.02 Target eBrem + 4 -0.421 0.11 -2.45e+03 25.8 1.16 1.04 3.05 Target eIoni + 5 -0.442 0.132 -2.45e+03 1.84 0.24 0.157 3.21 Target eBrem + 6 -0.454 0.192 -2.45e+03 0 1.23 1.16 4.37 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 54, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.606 -0.301 -2.45e+03 82.6 0 0 0 Target initStep - 1 -0.651 -0.298 -2.45e+03 80.8 0.663 0.494 0.494 Target eBrem - 2 -0.665 -0.3 -2.45e+03 76.9 0.598 0.546 1.04 Target eBrem - 3 -0.66 -0.326 -2.45e+03 75.8 0.385 0.358 1.4 Target eBrem - 4 -0.652 -0.344 -2.45e+03 75.5 0.2 0.181 1.58 Target eBrem - 5 -0.638 -0.406 -2.45e+03 29.3 0.491 0.438 2.02 Target eBrem - 6 -0.667 -0.423 -2.45e+03 18.7 0.197 0.197 2.21 Target eBrem - 7 -0.689 -0.428 -2.45e+03 16.9 0.171 0.147 2.36 Target eBrem - 8 -1.22 -0.34 -2.44e+03 14.4 1.16 1.07 3.43 Target eBrem - 9 -1.93 -2.79 -2.44e+03 9.43 5 3.91 7.34 Target eIoni - 10 -1.93 -2.79 -2.44e+03 3.65 0.00919 0.0123 7.36 Target eBrem - 11 -2.01 -2.88 -2.44e+03 3.19 0.328 0.243 7.6 Target eBrem - 12 -1.82 -2.9 -2.44e+03 1.27 1.66 1.48 9.08 Target eBrem - 13 -1.74 -2.97 -2.44e+03 0 1.27 0.984 10.1 Target eIoni - 14 -1.74 -2.97 -2.44e+03 0 0 0 10.1 Target annihil + 0 -0.421 0.11 -2.45e+03 1.31 0 0 0 Target initStep + 1 -0.484 0.126 -2.45e+03 0 1.31 0.999 0.999 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 4 +* 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.968 -1.06 -2.41e+03 29.3 0 0 0 Target initStep - 1 -0.886 -1.16 -2.41e+03 25.2 1.1 0.917 0.917 Target eBrem - 2 -0.884 -1.12 -2.41e+03 24.8 0.294 0.249 1.17 Target eBrem - 3 -0.832 -1.19 -2.41e+03 19.5 1.07 0.851 2.02 Target eBrem - 4 -0.867 -1.2 -2.41e+03 15.7 0.186 0.183 2.2 Target eBrem - 5 -0.865 -1.21 -2.4e+03 14.3 0.25 0.184 2.38 Target eBrem - 6 -0.855 -1.25 -2.4e+03 13.8 0.198 0.185 2.57 Target eBrem - 7 -0.855 -1.26 -2.4e+03 9.97 0.00925 0.00742 2.58 Target eBrem - 8 -0.979 -1.57 -2.4e+03 6.18 3.79 3.13 5.7 Target eIoni - 9 -1.04 -1.1 -2.4e+03 4.78 0.879 0.678 6.38 Target eBrem - 10 -1.27 -1 -2.4e+03 3.2 1.46 1.35 7.73 Target eBrem - 11 -1.52 -0.928 -2.4e+03 0.258 0.899 0.541 8.27 Target eBrem - 12 -1.52 -0.933 -2.4e+03 0 0.258 0.119 8.39 Target eIoni + 0 -0.494 -0.269 -2.45e+03 2.88 0 0 0 Target initStep + 1 -0.441 -0.474 -2.45e+03 2.64 0.242 0.266 0.266 Target msc + 2 -0.406 -0.748 -2.45e+03 2.24 0.399 0.342 0.608 Target msc + 3 -0.476 -0.395 -2.45e+03 1.79 0.449 0.449 1.06 Target msc + 4 -0.532 -0.36 -2.45e+03 0 1.79 1.32 2.37 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.606 -0.301 -2.45e+03 39.4 0 0 0 Target initStep - 1 -0.729 -0.357 -2.45e+03 36.1 1.11 0.78 0.78 Target eBrem - 2 -0.736 -0.364 -2.45e+03 24 0.0713 0.0803 0.861 Target eBrem - 3 -0.996 -0.194 -2.44e+03 9.49 5.12 3.99 4.85 Target eBrem - 4 -0.572 -0.427 -2.44e+03 7.17 2.32 1.79 6.64 Target eBrem - 5 -1.2 -0.0954 -2.44e+03 3.04 2.13 1.63 8.28 Target eIoni - 6 -1.27 -0.196 -2.44e+03 1.1 1.94 1.77 10 Target eIoni - 7 -1.32 -0.158 -2.44e+03 0 1.1 0.815 10.9 Target eIoni + 0 -0.654 -0.314 -2.45e+03 45.2 0 0 0 Target initStep + 1 -0.852 -0.36 -2.45e+03 43.4 1.68 1.32 1.32 Target eBrem + 2 -0.859 -0.388 -2.45e+03 39.4 0.424 0.201 1.52 Target eBrem + 3 -0.839 -0.514 -2.44e+03 38.4 0.856 0.767 2.29 Target eBrem + 4 -0.861 -0.567 -2.44e+03 28.9 0.287 0.274 2.56 Target eBrem + 5 -0.911 -0.679 -2.44e+03 28.2 0.588 0.454 3.02 Target eBrem + 6 -0.904 -0.733 -2.44e+03 20.6 0.555 0.575 3.59 Target eBrem + 7 -0.887 -0.742 -2.44e+03 19.8 0.24 0.185 3.78 Target eBrem + 8 -0.756 -0.83 -2.44e+03 18.9 0.589 0.563 4.34 Target eBrem + 9 -0.663 -1.03 -2.44e+03 1.32 0.789 0.461 4.8 Target eBrem + 10 -0.631 -1.09 -2.44e+03 0.19 1.13 1.01 5.81 Target eIoni + 11 -0.634 -1.08 -2.44e+03 0 0.19 0.0753 5.89 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 53 +* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.2 -0.0954 -2.44e+03 2 0 0 0 Target initStep - 1 -1.32 -0.0765 -2.44e+03 0.467 1.53 1.41 1.41 Target eIoni - 2 -1.32 -0.0844 -2.44e+03 0 0.467 0.278 1.69 Target eIoni + 0 -0.663 -1.03 -2.44e+03 16.8 0 0 0 Target initStep + 1 -0.336 -1.72 -2.44e+03 0 0 1.51 1.51 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 53 +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 45 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.996 -0.194 -2.44e+03 9.44 0 0 0 Target initStep - 1 1.21 -1.35 -2.44e+03 0 0 6.41 6.41 Target conv + 0 -0.336 -1.72 -2.44e+03 8.89 0 0 0 Target initStep + 1 -0.0518 -2.32 -2.44e+03 5.3 3.59 2.94 2.94 Target eIoni + 2 -0.0816 -2.35 -2.44e+03 1.14 0.0764 0.0785 3.02 Target eBrem + 3 -0.123 -2.39 -2.44e+03 0 1.14 0.849 3.87 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 85 +* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 46 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.21 -1.35 -2.44e+03 6.44 0 0 0 Target initStep - 1 1.39 -1.41 -2.44e+03 4.65 0.827 0.62 0.62 Target eBrem - 2 1.47 -1.45 -2.44e+03 2.99 0.141 0.16 0.78 Target eIoni - 3 1.72 -1.42 -2.44e+03 1.25 1.74 1.13 1.91 Target eBrem - 4 1.71 -1.46 -2.44e+03 0 1.25 0.947 2.85 Target eIoni + 0 -0.0816 -2.35 -2.44e+03 4.09 0 0 0 Target initStep + 1 -6.17 -15.3 -2.41e+03 2.9 0 33.7 33.7 Target compt + 2 -9.85 -16.6 -2.4e+03 2.9 0 9.84 43.5 Tracker Transportation + 3 -621 -228 -900 2.9 0 1.63e+03 1.68e+03 Chamber_PV Transportation + 4 -702 -256 -700 2.9 0 218 1.89e+03 Tracker Transportation + 5 -947 -341 -100 2.9 0 653 2.55e+03 Chamber_PV Transportation + 6 -1.03e+03 -369 100 2.9 0 218 2.77e+03 Tracker Transportation + 7 -1.27e+03 -454 700 2.9 0 653 3.42e+03 Chamber_PV Transportation + 8 -1.35e+03 -482 900 2.9 0 218 3.64e+03 Tracker Transportation + 9 -1.6e+03 -567 1.5e+03 2.9 0 653 4.29e+03 Chamber_PV Transportation + 10 -1.68e+03 -595 1.7e+03 2.9 0 218 4.51e+03 Tracker Transportation + 11 -1.97e+03 -694 2.4e+03 2.9 0 762 5.27e+03 World Transportation + 12 -2.19e+03 -770 2.94e+03 2.9 0 588 5.86e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 87 +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 48 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.47 -1.45 -2.44e+03 1.53 0 0 0 Target initStep - 1 1.55 -1.52 -2.44e+03 0.54 0.985 0.903 0.903 Target eBrem - 2 1.54 -1.5 -2.44e+03 0 0.54 0.338 1.24 Target eIoni + 0 -6.17 -15.3 -2.41e+03 1.19 0 0 0 Target initStep + 1 -6.15 -15.3 -2.41e+03 0 1.19 0.894 0.894 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 89, Parent ID = 87 +* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.39 -1.41 -2.44e+03 0.956 0 0 0 Target initStep - 1 22.3 -11.3 -2.42e+03 0.956 0 30.7 30.7 World Transportation - 2 39.8 -19.5 -2.4e+03 0.956 0 25.7 56.4 Tracker Transportation - 3 2.17e+03 -1.02e+03 -346 0.956 0 3.13e+03 3.18e+03 World Transportation - 4 2.94e+03 -1.39e+03 395 0.956 0 1.13e+03 4.31e+03 OutOfWorld Transportation + 0 -0.756 -0.83 -2.44e+03 0.245 0 0 0 Target initStep + 1 -0.755 -0.845 -2.44e+03 0 0.088 0.0342 0.0342 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 53 +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 44 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.736 -0.364 -2.45e+03 12 0 0 0 Target initStep - 1 -3.03 -3.06 -2.42e+03 0 0 23 23 Target conv + 0 -0.755 -0.845 -2.44e+03 0.157 0 0 0 Target initStep + 1 -0.755 -0.847 -2.44e+03 0 0.157 0.0558 0.0558 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 84 +* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.03 -3.06 -2.42e+03 7.85 0 0 0 Target initStep - 1 -3.2 -3.02 -2.42e+03 3.42 2.91 2.24 2.24 Target eBrem - 2 -3.5 -3.09 -2.42e+03 0.66 1.73 1.26 3.5 Target eBrem - 3 -3.5 -3.11 -2.42e+03 0 0.66 0.438 3.94 Target eIoni + 0 -0.887 -0.742 -2.44e+03 0.562 0 0 0 Target initStep + 1 0.77 -1.76 -2.43e+03 0.187 0 18 18 Target compt + 2 0.467 -1.73 -2.43e+03 0 0.088 0.475 18.5 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 43 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.5 -3.09 -2.42e+03 1.03 0 0 0 Target initStep - 1 -20.7 -14 -2.43e+03 1.03 0 22.2 22.2 World Transportation - 2 -1.03e+03 -651 -2.94e+03 1.03 0 1.29e+03 1.32e+03 OutOfWorld Transportation + 0 0.467 -1.73 -2.43e+03 0.0989 0 0 0 Target initStep + 1 0.467 -1.73 -2.43e+03 0 0.0989 0.0269 0.0269 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 43 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.2 -3.02 -2.42e+03 1.52 0 0 0 Target initStep - 1 -8.97 -1.52 -2.42e+03 0.344 0 8.12 8.12 Target compt - 2 -8.81 -3.45 -2.42e+03 0 0.088 1.96 10.1 Target phot + 0 0.77 -1.76 -2.43e+03 0.375 0 0 0 Target initStep + 1 0.773 -1.76 -2.43e+03 0 0.375 0.205 0.205 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 93 +* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.81 -3.45 -2.42e+03 0.256 0 0 0 Target initStep - 1 -8.81 -3.46 -2.42e+03 0 0.256 0.118 0.118 Target eIoni + 0 -0.904 -0.733 -2.44e+03 7.1 0 0 0 Target initStep + 1 0.0612 -2.44 -2.43e+03 0 0 16.1 16.1 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 93 +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 42 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.97 -1.52 -2.42e+03 1.18 0 0 0 Target initStep - 1 -9.02 -1.49 -2.42e+03 0 1.18 0.884 0.884 Target eIoni + 0 0.0612 -2.44 -2.43e+03 1.74 0 0 0 Target initStep + 1 0.103 -2.51 -2.43e+03 0.267 1.47 1.29 1.29 Target eIoni + 2 0.109 -2.51 -2.43e+03 0 0.267 0.126 1.41 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 53 +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.729 -0.357 -2.45e+03 2.15 0 0 0 Target initStep - 1 -6.17 -4.3 -2.4e+03 0.587 0 43.7 43.7 Target compt - 2 -5.19 -3.15 -2.4e+03 0 0.088 1.76 45.5 Target phot + 0 -0.911 -0.679 -2.44e+03 0.102 0 0 0 Target initStep + 1 -0.915 -0.684 -2.44e+03 0 0.088 0.0354 0.0354 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 83 +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.19 -3.15 -2.4e+03 0.499 0 0 0 Target initStep - 1 -5.17 -3.14 -2.4e+03 0.318 0.0704 0.075 0.075 Target eBrem - 2 -5.18 -3.15 -2.4e+03 0 0.318 0.162 0.237 Target eIoni + 0 -0.915 -0.684 -2.44e+03 0.0143 0 0 0 Target initStep + 1 -0.915 -0.684 -2.44e+03 0 0.0143 0.0012 0.0012 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 83 +* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.17 -4.3 -2.4e+03 1.57 0 0 0 Target initStep - 1 -6.2 -4.34 -2.4e+03 0.421 1.02 0.755 0.755 Target eBrem - 2 -6.2 -4.35 -2.4e+03 0 0.421 0.241 0.996 Target eIoni + 0 -0.861 -0.567 -2.44e+03 9.21 0 0 0 Target initStep + 1 -2.37 -3.18 -2.42e+03 0 0 21.4 21.4 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 97 +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.2 -4.34 -2.4e+03 0.13 0 0 0 Target initStep - 1 -6.17 -4.43 -2.4e+03 0 0.088 0.217 0.217 Target phot + 0 -2.37 -3.18 -2.42e+03 2.74 0 0 0 Target initStep + 1 -2.38 -3.19 -2.42e+03 0.669 2.08 1.68 1.68 Target eIoni + 2 -2.37 -3.22 -2.42e+03 0 0.669 0.446 2.13 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 100 +* G4Track Information: Particle = gamma, Track ID = 39, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.17 -4.43 -2.4e+03 0.0423 0 0 0 Target initStep - 1 -6.17 -4.43 -2.4e+03 0 0.0423 0.00678 0.00678 Target eIoni + 0 -0.839 -0.514 -2.44e+03 0.173 0 0 0 Target initStep + 1 -1.35 -1.28 -2.44e+03 0.124 0 3.62 3.62 Target compt + 2 -1.27 -1.18 -2.44e+03 0 0.088 0.12 3.74 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 98 +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.17 -3.14 -2.4e+03 0.11 0 0 0 Target initStep - 1 -5.16 -3.21 -2.4e+03 0 0.088 0.0658 0.0658 Target phot + 0 -1.27 -1.18 -2.44e+03 0.0361 0 0 0 Target initStep + 1 -1.27 -1.18 -2.44e+03 0 0.0361 0.00525 0.00525 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 99 +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.16 -3.21 -2.4e+03 0.0225 0 0 0 Target initStep - 1 -5.16 -3.21 -2.4e+03 0 0.0225 0.00245 0.00245 Target eIoni + 0 -1.35 -1.28 -2.44e+03 0.0487 0 0 0 Target initStep + 1 -1.35 -1.28 -2.44e+03 0 0.0487 0.00854 0.00854 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 82, Parent ID = 55 +* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.52 -0.928 -2.4e+03 2.04 0 0 0 Target initStep - 1 -0.127 -0.733 -2.41e+03 0.357 0 3.9 3.9 Target compt - 2 -1.66 0.043 -2.41e+03 0 0.088 1.73 5.63 Target phot + 0 -0.859 -0.388 -2.45e+03 3.55 0 0 0 Target initStep + 1 -1.03 -0.721 -2.44e+03 0.891 0 8.91 8.91 Target compt + 2 -3.29 -3.27 -2.43e+03 0.576 0 4.03 12.9 Target compt + 3 -17.4 -4.19 -2.43e+03 0 0.088 14.4 27.3 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 82 +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 38 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.66 0.043 -2.41e+03 0.269 0 0 0 Target initStep - 1 -1.67 0.0459 -2.41e+03 0 0.269 0.127 0.127 Target eIoni + 0 -17.4 -4.19 -2.43e+03 0.488 0 0 0 Target initStep + 1 -17.4 -4.19 -2.43e+03 0 0.488 0.294 0.294 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 82 +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 38 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.127 -0.733 -2.41e+03 1.68 0 0 0 Target initStep - 1 -0.0672 -0.736 -2.41e+03 0.647 0.812 0.65 0.65 Target eBrem - 2 -0.0596 -0.765 -2.41e+03 0 0.647 0.428 1.08 Target eIoni + 0 -3.29 -3.27 -2.43e+03 0.315 0 0 0 Target initStep + 1 -3.28 -3.28 -2.43e+03 0 0.315 0.16 0.16 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 103 +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 38 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0672 -0.736 -2.41e+03 0.226 0 0 0 Target initStep - 1 0.388 -4.25 -2.41e+03 0 0.088 3.67 3.67 Target phot + 0 -1.03 -0.721 -2.44e+03 2.66 0 0 0 Target initStep + 1 -0.997 -0.687 -2.44e+03 1.01 1.65 1.65 1.65 Target eIoni + 2 -1.03 -0.726 -2.44e+03 0.342 0.363 0.355 2.01 Target eBrem + 3 -1.04 -0.715 -2.44e+03 0 0.342 0.18 2.19 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 105 +* G4Track Information: Particle = gamma, Track ID = 63, Parent ID = 60 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.388 -4.25 -2.41e+03 0.138 0 0 0 Target initStep - 1 0.386 -4.26 -2.41e+03 0 0.138 0.0455 0.0455 Target eIoni + 0 -1.03 -0.726 -2.44e+03 0.306 0 0 0 Target initStep + 1 -0.812 -0.536 -2.44e+03 0 0.088 0.48 0.48 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 81, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 63 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.27 -1 -2.4e+03 0.125 0 0 0 Target initStep - 1 -1.92 -0.767 -2.4e+03 0 0.088 0.76 0.76 Target phot + 0 -0.812 -0.536 -2.44e+03 0.218 0 0 0 Target initStep + 1 -0.814 -0.532 -2.44e+03 0 0.218 0.0927 0.0927 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 81 +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.92 -0.767 -2.4e+03 0.0371 0 0 0 Target initStep - 1 -1.92 -0.767 -2.4e+03 0 0.0371 0.0055 0.0055 Target eIoni + 0 -0.852 -0.36 -2.45e+03 0.157 0 0 0 Target initStep + 1 -0.848 -0.376 -2.45e+03 0.104 0 0.119 0.119 Target compt + 2 -0.858 -0.375 -2.45e+03 0 0.088 0.0129 0.132 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 37 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.04 -1.1 -2.4e+03 0.517 0 0 0 Target initStep - 1 -1.09 -1.08 -2.4e+03 0.462 0 0.113 0.113 Target compt - 2 -1.11 -0.256 -2.4e+03 0.462 0 3.01 3.12 Tracker Transportation - 3 -6.07 200 -1.7e+03 0.462 0 728 731 Chamber_PV Transportation - 4 -7.05 240 -1.56e+03 0.462 0 144 875 Tracker Transportation - 5 -11.7 430 -900 0.462 0 689 1.56e+03 Chamber_PV Transportation - 6 -13.2 487 -700 0.462 0 208 1.77e+03 Tracker Transportation - 7 -17.4 659 -100 0.462 0 624 2.4e+03 Chamber_PV Transportation - 8 -18.8 716 100 0.462 0 208 2.6e+03 Tracker Transportation - 9 -23.1 888 700 0.462 0 624 3.23e+03 Chamber_PV Transportation - 10 -24.5 945 900 0.462 0 208 3.44e+03 Tracker Transportation - 11 -28.7 1.12e+03 1.5e+03 0.462 0 624 4.06e+03 Chamber_PV Transportation - 12 -30.2 1.17e+03 1.7e+03 0.462 0 208 4.27e+03 Tracker Transportation - 13 -35.1 1.38e+03 2.4e+03 0.462 0 728 5e+03 World Transportation - 14 -38.9 1.53e+03 2.94e+03 0.462 0 562 5.56e+03 OutOfWorld Transportation + 0 -0.858 -0.375 -2.45e+03 0.0162 0 0 0 Target initStep + 1 -0.858 -0.375 -2.45e+03 0 0.0162 0.00146 0.00146 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 80 +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 37 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.09 -1.08 -2.4e+03 0.0548 0 0 0 Target initStep - 1 -1.09 -1.08 -2.4e+03 0 0.0548 0.0104 0.0104 Target eIoni + 0 -0.848 -0.376 -2.45e+03 0.0523 0 0 0 Target initStep + 1 -0.848 -0.376 -2.45e+03 0 0.0523 0.00961 0.00961 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 55 +* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.855 -1.26 -2.4e+03 3.81 0 0 0 Target initStep - 1 -1.24 -2.16 -2.4e+03 3.81 0 4.86 4.86 Tracker Transportation - 2 -58.2 -135 -1.7e+03 3.81 0 715 720 Chamber_PV Transportation - 3 -74.5 -173 -1.5e+03 3.81 0 204 924 Tracker Transportation - 4 -123 -287 -900 3.81 0 613 1.54e+03 Chamber_PV Transportation - 5 -140 -325 -700 3.81 0 204 1.74e+03 Tracker Transportation - 6 -189 -439 -100 3.81 0 613 2.35e+03 Chamber_PV Transportation - 7 -205 -477 100 3.81 0 204 2.56e+03 Tracker Transportation - 8 -254 -592 700 3.81 0 613 3.17e+03 Chamber_PV Transportation - 9 -270 -630 900 3.81 0 204 3.37e+03 Tracker Transportation - 10 -319 -744 1.5e+03 3.81 0 613 3.99e+03 Chamber_PV Transportation - 11 -335 -782 1.7e+03 3.81 0 204 4.19e+03 Tracker Transportation - 12 -392 -915 2.4e+03 3.81 0 715 4.91e+03 World Transportation - 13 -436 -1.02e+03 2.94e+03 3.81 0 551 5.46e+03 OutOfWorld Transportation + 0 -0.454 0.192 -2.45e+03 1.22 0 0 0 Target initStep + 1 0.441 -1.13 -2.45e+03 1.22 0 4.06 4.06 World Transportation + 2 118 -175 -2.94e+03 1.22 0 533 537 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 55 +* G4Track Information: Particle = gamma, Track ID = 35, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.855 -1.25 -2.4e+03 0.302 0 0 0 Target initStep - 1 -1.1 -1.83 -2.4e+03 0.203 0 2.34 2.34 Target compt - 2 -0.033 -3.84 -2.4e+03 0.189 0 2.27 4.61 Target compt - 3 -0.0102 -5.18 -2.4e+03 0 0.088 1.45 6.06 Target phot + 0 -0.454 0.192 -2.45e+03 0.41 0 0 0 Target initStep + 1 -0.487 1.6 -2.45e+03 0.326 0 1.53 1.53 Target compt + 2 -0.66 1.73 -2.45e+03 0 0.088 0.23 1.76 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 78 +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 35 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0102 -5.18 -2.4e+03 0.101 0 0 0 Target initStep - 1 -0.0104 -5.18 -2.4e+03 0 0.101 0.028 0.028 Target eIoni + 0 -0.66 1.73 -2.45e+03 0.238 0 0 0 Target initStep + 1 -0.665 1.73 -2.45e+03 0 0.238 0.106 0.106 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 78 +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 35 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.033 -3.84 -2.4e+03 0.0134 0 0 0 Target initStep - 1 -0.0329 -3.84 -2.4e+03 0 0.0134 0.0011 0.0011 Target eIoni + 0 -0.487 1.6 -2.45e+03 0.0845 0 0 0 Target initStep + 1 -0.486 1.6 -2.45e+03 0 0.0845 0.0209 0.0209 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 78 +* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.1 -1.83 -2.4e+03 0.0994 0 0 0 Target initStep - 1 -1.1 -1.83 -2.4e+03 0 0.0994 0.0272 0.0272 Target eIoni + 0 -0.442 0.132 -2.45e+03 23.8 0 0 0 Target initStep + 1 -0.603 0.51 -2.44e+03 0 0 2.17 2.17 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 77, Parent ID = 55 +* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.865 -1.21 -2.4e+03 1.16 0 0 0 Target initStep - 1 -0.279 -2.18 -2.4e+03 1.16 0 5.07 5.07 Tracker Transportation - 2 82.7 -140 -1.7e+03 1.16 0 718 723 Chamber_PV Transportation - 3 106 -179 -1.5e+03 1.16 0 205 928 Tracker Transportation - 4 178 -297 -900 1.16 0 616 1.54e+03 Chamber_PV Transportation - 5 201 -336 -700 1.16 0 205 1.75e+03 Tracker Transportation - 6 272 -454 -100 1.16 0 616 2.36e+03 Chamber_PV Transportation - 7 296 -493 100 1.16 0 205 2.57e+03 Tracker Transportation - 8 367 -611 700 1.16 0 616 3.19e+03 Chamber_PV Transportation - 9 391 -651 900 1.16 0 205 3.39e+03 Tracker Transportation - 10 462 -769 1.5e+03 1.16 0 616 4.01e+03 Chamber_PV Transportation - 11 486 -808 1.7e+03 1.16 0 205 4.21e+03 Tracker Transportation - 12 489 -812 1.72e+03 0.321 0 24.2 4.24e+03 Tracker compt - 13 -132 2.4e+03 1.92e+03 0.321 0 3.27e+03 7.51e+03 World Transportation - 14 -237 2.94e+03 1.96e+03 0.321 0 555 8.06e+03 OutOfWorld Transportation + 0 -0.368 -0.105 -2.45e+03 0.548 0 0 0 Target initStep + 1 -1.11 0.836 -2.44e+03 0.373 0 7.24 7.24 Target compt + 2 -0.0375 6.17 -2.44e+03 0 0.088 6.18 13.4 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 77 +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 489 -812 1.72e+03 0.836 0 0 0 Tracker initStep - 1 500 -842 1.82e+03 0.821 0.0148 100 100 Tracker StepLimiter - 2 503 -853 1.85e+03 0.815 0.00443 36.2 136 Tracker eIoni - 3 508 -862 1.87e+03 0.81 0.00335 23.8 160 Tracker eIoni - 4 520 -911 1.96e+03 0.794 0.0164 100 260 Tracker StepLimiter - 5 526 -924 2e+03 0.785 0.0076 42.8 303 Tracker eIoni - 6 529 -937 2.02e+03 0.78 0.00441 23.9 327 Tracker eIoni - 7 528 -980 2.11e+03 0.763 0.0171 100 427 Tracker StepLimiter - 8 531 -991 2.13e+03 0.759 0.00203 19.8 447 Tracker eIoni - 9 535 -1.04e+03 2.2e+03 0.746 0.0124 89.7 536 Tracker eIoni - 10 543 -1.08e+03 2.26e+03 0.735 0.00774 70.1 606 Tracker eIoni - 11 551 -1.09e+03 2.28e+03 0.729 0.00604 30.9 637 Tracker eIoni - 12 555 -1.1e+03 2.3e+03 0.727 0.0017 19.3 657 Tracker eIoni - 13 561 -1.12e+03 2.34e+03 0.72 0.00596 45.5 702 Tracker eIoni - 14 558 -1.15e+03 2.4e+03 0.71 0.00922 66.8 769 World Transportation - 15 444 -1.21e+03 2.52e+03 0.686 0.0224 175 944 World eIoni - 16 380 -1.18e+03 2.65e+03 0.668 0.0168 149 1.09e+03 World eIoni - 17 284 -1.12e+03 2.78e+03 0.643 0.0242 175 1.27e+03 World eIoni - 18 279 -1.12e+03 2.78e+03 0.639 0.000488 7.44 1.28e+03 World eIoni - 19 246 -1.1e+03 2.82e+03 0.627 0.00765 55.3 1.33e+03 World eIoni - 20 156 -1.06e+03 2.94e+03 0.606 0.0214 156 1.49e+03 OutOfWorld Transportation + 0 -0.518 -0.279 -2.45e+03 0.1 0 0 0 Target initStep + 1 -0.556 -0.196 -2.45e+03 0 0.088 0.274 0.274 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 112 +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 246 -1.1e+03 2.82e+03 0.00411 0 0 0 World initStep - 1 246 -1.1e+03 2.82e+03 0 0.00411 0.543 0.543 World eIoni + 0 -0.498 -0.272 -2.45e+03 0.505 0 0 0 Target initStep + 1 -0.563 -0.367 -2.45e+03 0 0.088 3.28 3.28 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 112 +* G4Track Information: Particle = e+, Track ID = 70, Parent ID = 34 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 279 -1.12e+03 2.78e+03 0.00297 0 0 0 World initStep - 1 279 -1.12e+03 2.78e+03 0 0.00297 0.309 0.309 World eIoni + 0 -0.603 0.51 -2.44e+03 11.9 0 0 0 Target initStep + 1 -0.619 0.69 -2.44e+03 9.77 1.17 1.09 1.09 Target eBrem + 2 -0.618 0.742 -2.44e+03 9.05 0.0603 0.0778 1.17 Target eBrem + 3 -1.61 1.6 -2.44e+03 6.89 2.16 1.94 3.11 Target eBrem + 4 -1.46 1.86 -2.44e+03 5.71 0.429 0.469 3.58 Target eBrem + 5 -1.35 1.94 -2.44e+03 4.92 0.242 0.244 3.83 Target eBrem + 6 -1.09 2 -2.44e+03 4.33 0.355 0.332 4.16 Target eBrem + 7 -0.687 2.21 -2.44e+03 1.42 0.926 0.681 4.84 Target eBrem + 8 -0.695 2.08 -2.44e+03 0.66 0.411 0.468 5.31 Target eBrem + 9 -0.715 2.07 -2.44e+03 0 0.66 0.438 5.74 Target eIoni + 10 -0.715 2.07 -2.44e+03 0 0 0 5.74 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 112 +* G4Track Information: Particle = e+, Track ID = 57, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 284 -1.12e+03 2.78e+03 0.00171 0 0 0 World initStep - 1 284 -1.12e+03 2.78e+03 0 0.00171 0.127 0.127 World eIoni + 0 -2.37 -3.18 -2.42e+03 5.44 0 0 0 Target initStep + 1 -2.46 -3.33 -2.42e+03 2.93 2.51 2.34 2.34 Target eIoni + 2 -2.57 -3.27 -2.42e+03 1.78 0.141 0.157 2.5 Target eBrem + 3 -2.74 -3.25 -2.42e+03 0.036 1.74 0.563 3.06 Target eBrem + 4 -2.74 -3.25 -2.42e+03 0 0.036 0.00456 3.07 Target eIoni + 5 -2.74 -3.25 -2.42e+03 0 0 0 3.07 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 112 +* G4Track Information: Particle = e+, Track ID = 54, Parent ID = 42 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 380 -1.18e+03 2.65e+03 0.00114 0 0 0 World initStep - 1 380 -1.18e+03 2.65e+03 0 0.00114 0.0692 0.0692 World eIoni + 0 0.0612 -2.44 -2.43e+03 4.34 0 0 0 Target initStep + 1 0.0535 -2.43 -2.43e+03 0 0.103 0.112 0.112 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 112 +* G4Track Information: Particle = e+, Track ID = 47, Parent ID = 45 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 444 -1.21e+03 2.52e+03 0.00152 0 0 0 World initStep - 1 444 -1.21e+03 2.52e+03 0 0.00152 0.106 0.106 World eIoni + 0 -0.336 -1.72 -2.44e+03 6.9 0 0 0 Target initStep + 1 -0.206 -2 -2.44e+03 5.41 1.07 0.645 0.645 Target eBrem + 2 -0.175 -2.02 -2.44e+03 5.24 0.0498 0.0376 0.683 Target eBrem + 3 0.199 -2.15 -2.44e+03 4.32 0.623 0.489 1.17 Target eBrem + 4 0.173 -1.89 -2.44e+03 3.58 0.49 0.536 1.71 Target eBrem + 5 0.187 -1.74 -2.44e+03 3.26 0.207 0.201 1.91 Target eBrem + 6 -0.245 -1.6 -2.44e+03 1.4 1.86 1.86 3.76 Target eIoni + 7 -0.316 -1.49 -2.44e+03 0.151 1.25 0.964 4.73 Target eBrem + 8 -0.314 -1.49 -2.44e+03 0 0.151 0.0501 4.78 Target eIoni + 9 -0.314 -1.49 -2.44e+03 0 0 0 4.78 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 112 +* 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 561 -1.12e+03 2.34e+03 0.0011 0 0 0 Tracker initStep - 1 561 -1.12e+03 2.34e+03 0 0.0011 0.0652 0.0652 Tracker eIoni + 0 -0.654 -0.314 -2.45e+03 76.8 0 0 0 Target initStep + 1 -0.654 -0.314 -2.45e+03 52.9 0.353 0.342 0.342 Target eBrem + 2 -0.721 -0.208 -2.45e+03 50.4 0.702 0.682 1.02 Target eBrem + 3 -0.718 -0.163 -2.45e+03 46.5 1.18 0.458 1.48 Target eBrem + 4 -0.638 -0.186 -2.44e+03 45.2 1.17 0.928 2.41 Target eBrem + 5 -0.617 -0.192 -2.44e+03 41.1 0.203 0.134 2.55 Target eBrem + 6 -0.56 -0.214 -2.44e+03 40.6 0.358 0.255 2.8 Target eBrem + 7 -0.16 -0.53 -2.44e+03 34.4 1.76 1.55 4.35 Target eBrem + 8 0.046 -1.07 -2.44e+03 31.6 2.25 1.43 5.79 Target eBrem + 9 0.0439 -1.08 -2.44e+03 5.76 0.0763 0.0614 5.85 Target eBrem + 10 0.033 -1.15 -2.44e+03 4.7 0.471 0.514 6.36 Target eBrem + 11 0.457 -1.4 -2.44e+03 2.68 1.88 1.6 7.96 Target eBrem + 12 0.463 -1.22 -2.44e+03 1.28 1.28 1.06 9.01 Target eBrem + 13 0.51 -1.2 -2.44e+03 0 1.28 0.985 10 Target eIoni + 14 0.51 -1.2 -2.44e+03 0 0 0 10 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 112 +* 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 555 -1.1e+03 2.3e+03 0.00101 0 0 0 Tracker initStep - 1 555 -1.1e+03 2.3e+03 0 0.00101 0.0575 0.0575 Tracker eIoni + 0 -1.73 -0.0161 -2.42e+03 14.4 0 0 0 Target initStep + 1 -1.75 -0.00863 -2.42e+03 13.7 0.535 0.467 0.467 Target eBrem + 2 -2.22 0.314 -2.42e+03 11.9 1.37 1.16 1.63 Target eBrem + 3 -2.56 0.379 -2.42e+03 8.28 1.73 1.45 3.07 Target eIoni + 4 -3.2 0.0014 -2.42e+03 3.94 4.08 2.82 5.89 Target eBrem + 5 -3.05 -0.0454 -2.42e+03 2.73 1.21 1.04 6.92 Target eBrem + 6 -3.09 -0.172 -2.42e+03 2.36 0.237 0.167 7.09 Target eBrem + 7 -3.27 -0.205 -2.42e+03 1.82 0.268 0.309 7.4 Target eBrem + 8 -3.45 -0.256 -2.42e+03 0.0218 1.8 1.35 8.75 Target eIoni + 9 -3.45 -0.256 -2.42e+03 0 0.0218 0.00197 8.75 Target eIoni + 10 -3.45 -0.256 -2.42e+03 0 0 0 8.75 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 543 -1.08e+03 2.26e+03 0.00245 0 0 0 Tracker initStep - 1 543 -1.08e+03 2.26e+03 0 0.00245 0.224 0.224 Tracker eIoni + 0 -2.56 0.379 -2.42e+03 1.93 0 0 0 Target initStep + 1 -2.54 0.402 -2.42e+03 1.1 0.833 0.743 0.743 Target eBrem + 2 -2.49 0.389 -2.42e+03 0 1.1 0.816 1.56 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 30 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 535 -1.04e+03 2.2e+03 0.00111 0 0 0 Tracker initStep - 1 535 -1.04e+03 2.2e+03 0 0.00111 0.0659 0.0659 Tracker eIoni + 0 -0.563 -0.367 -2.45e+03 0.417 0 0 0 Target initStep + 1 -0.557 -0.366 -2.45e+03 0 0.417 0.238 0.238 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 112 +* 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 531 -991 2.13e+03 0.00133 0 0 0 Tracker initStep - 1 531 -991 2.13e+03 0 0.00133 0.0863 0.0863 Tracker eIoni + 0 -0.556 -0.196 -2.45e+03 0.0124 0 0 0 Target initStep + 1 -0.556 -0.196 -2.45e+03 0 0.0124 0.000971 0.000971 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 32 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 529 -937 2.02e+03 0.00129 0 0 0 Tracker initStep - 1 529 -937 2.02e+03 0 0.00129 0.0824 0.0824 Tracker eIoni + 0 -0.0375 6.17 -2.44e+03 0.285 0 0 0 Target initStep + 1 -0.0371 6.18 -2.44e+03 0 0.285 0.138 0.138 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 32 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 526 -924 2e+03 0.00109 0 0 0 Tracker initStep - 1 526 -924 2e+03 0 0.00109 0.0647 0.0647 Tracker eIoni + 0 -1.11 0.836 -2.44e+03 0.176 0 0 0 Target initStep + 1 -1.11 0.833 -2.44e+03 0 0.176 0.0667 0.0667 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 34 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 508 -862 1.87e+03 0.00172 0 0 0 Tracker initStep - 1 508 -862 1.87e+03 0 0.00172 0.127 0.127 Tracker eIoni + 0 -0.603 0.51 -2.44e+03 10.8 0 0 0 Target initStep + 1 -0.854 0.788 -2.44e+03 6.1 4.69 3.26 3.26 Target eIoni + 2 -0.352 0.149 -2.44e+03 3.86 2.01 1.97 5.24 Target eBrem + 3 -0.622 0.286 -2.44e+03 0.609 0.504 0.521 5.76 Target eBrem + 4 -0.634 0.281 -2.44e+03 0 0.609 0.395 6.15 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 112 +* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 69 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 503 -853 1.85e+03 0.00113 0 0 0 Tracker initStep - 1 503 -853 1.85e+03 0 0.00113 0.0678 0.0678 Tracker eIoni + 0 -0.622 0.286 -2.44e+03 2.75 0 0 0 Target initStep + 1 -6.52 -1.35 -2.45e+03 1.03 0 9.44 9.44 Target compt + 2 -11.2 -1.89 -2.45e+03 1.03 0 4.72 14.2 World Transportation + 3 -2.94e+03 -342 -2.64e+03 1.03 0 2.95e+03 2.97e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 76, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 119 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.867 -1.2 -2.41e+03 3.62 0 0 0 Target initStep - 1 -1.02 -1.95 -2.4e+03 3.62 0 5.18 5.18 Tracker Transportation - 2 -22.2 -105 -1.7e+03 3.62 0 708 713 Chamber_PV Transportation - 3 -28.2 -135 -1.5e+03 3.62 0 202 915 Tracker Transportation - 4 -46.3 -223 -900 3.62 0 607 1.52e+03 Chamber_PV Transportation - 5 -52.3 -253 -700 3.62 0 202 1.72e+03 Tracker Transportation - 6 -70.5 -342 -100 3.62 0 607 2.33e+03 Chamber_PV Transportation - 7 -76.5 -371 100 3.62 0 202 2.53e+03 Tracker Transportation - 8 -94.6 -460 700 3.62 0 607 3.14e+03 Chamber_PV Transportation - 9 -101 -489 900 3.62 0 202 3.34e+03 Tracker Transportation - 10 -119 -578 1.5e+03 3.62 0 607 3.95e+03 Chamber_PV Transportation - 11 -125 -607 1.7e+03 3.62 0 202 4.15e+03 Tracker Transportation - 12 -146 -711 2.4e+03 3.62 0 708 4.86e+03 World Transportation - 13 -162 -790 2.94e+03 3.62 0 546 5.41e+03 OutOfWorld Transportation + 0 -6.52 -1.35 -2.45e+03 1.72 0 0 0 Target initStep + 1 -6.67 -1.35 -2.45e+03 1.56 0.166 0.169 0.169 Target msc + 2 -6.76 -1.36 -2.45e+03 1.4 0.16 0.175 0.344 Target msc + 3 -6.94 -1.35 -2.45e+03 1.19 0.21 0.232 0.576 Target msc + 4 -6.94 -1.36 -2.45e+03 0.852 0.0321 0.0362 0.612 Target eBrem + 5 -6.78 -1.29 -2.45e+03 0.713 0.138 0.177 0.79 Target msc + 6 -6.77 -1.31 -2.45e+03 0.511 0.0992 0.0733 0.863 Target eBrem + 7 -6.77 -1.31 -2.45e+03 0.372 0.0357 0.0395 0.903 Target eBrem + 8 -6.76 -1.31 -2.45e+03 0 0.372 0.203 1.11 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 55 +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 120 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.832 -1.19 -2.41e+03 4.19 0 0 0 Target initStep - 1 -2.36 -1.5 -2.4e+03 4.19 0 5.53 5.53 Tracker Transportation - 2 -204 -42.4 -1.7e+03 4.19 0 730 735 Chamber_PV Transportation - 3 -235 -48.7 -1.59e+03 4.19 0 113 848 Tracker Transportation - 4 -434 -89.1 -900 4.19 0 721 1.57e+03 Chamber_PV Transportation - 5 -492 -101 -700 4.19 0 208 1.78e+03 Tracker Transportation - 6 -664 -136 -100 4.19 0 625 2.4e+03 Chamber_PV Transportation - 7 -722 -148 100 4.19 0 208 2.61e+03 Tracker Transportation - 8 -895 -183 700 4.19 0 625 3.24e+03 Chamber_PV Transportation - 9 -952 -194 900 4.19 0 208 3.44e+03 Tracker Transportation - 10 -1.12e+03 -229 1.5e+03 4.19 0 625 4.07e+03 Chamber_PV Transportation - 11 -1.18e+03 -241 1.7e+03 4.19 0 208 4.28e+03 Tracker Transportation - 12 -1.38e+03 -282 2.4e+03 4.19 0 730 5.01e+03 World Transportation - 13 -1.54e+03 -314 2.94e+03 4.19 0 563 5.57e+03 OutOfWorld Transportation + 0 -6.77 -1.31 -2.45e+03 0.103 0 0 0 Target initStep + 1 -6.63 -1.27 -2.45e+03 0 0.088 0.324 0.324 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 123 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.884 -1.12 -2.41e+03 0.0967 0 0 0 Target initStep - 1 -0.872 -1.11 -2.41e+03 0 0.088 0.105 0.105 Target phot + 0 -6.63 -1.27 -2.45e+03 0.0153 0 0 0 Target initStep + 1 -6.63 -1.27 -2.45e+03 0 0.0153 0.00134 0.00134 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 74 +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 120 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.872 -1.11 -2.41e+03 0.00871 0 0 0 Target initStep - 1 -0.872 -1.11 -2.41e+03 0 0.00871 0.000573 0.000573 Target eIoni + 0 -6.77 -1.31 -2.45e+03 0.103 0 0 0 Target initStep + 1 -6.73 -1.17 -2.45e+03 0 0.088 0.214 0.214 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 122 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.886 -1.16 -2.41e+03 3.07 0 0 0 Target initStep - 1 -0.617 -0.652 -2.4e+03 1.45 0 2.56 2.56 Target compt - 2 0.783 -2 -2.4e+03 0 0.088 3.93 6.49 Target phot + 0 -6.73 -1.17 -2.45e+03 0.0148 0 0 0 Target initStep + 1 -6.73 -1.17 -2.45e+03 0 0.0148 0.00127 0.00127 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 73 +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 120 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.783 -2 -2.4e+03 1.37 0 0 0 Target initStep - 1 1.02 -1.89 -2.4e+03 1.03 0.335 0.293 0.293 Target msc - 2 1.08 -1.79 -2.4e+03 0.758 0.273 0.216 0.509 Target msc - 3 1.07 -1.76 -2.4e+03 0 0.758 0.521 1.03 Target eIoni + 0 -6.94 -1.36 -2.45e+03 0.302 0 0 0 Target initStep + 1 -6.78 -1.34 -2.45e+03 0.302 0 0.315 0.315 World Transportation + 2 276 39.8 -2.94e+03 0.302 0 567 568 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 73 +* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 69 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.617 -0.652 -2.4e+03 1.61 0 0 0 Target initStep - 1 -0.627 -0.598 -2.4e+03 1.17 0.203 0.221 0.221 Target eBrem - 2 -0.634 -0.574 -2.4e+03 0.948 0.0562 0.0606 0.281 Target eBrem - 3 -0.582 -0.563 -2.4e+03 0 0.948 0.685 0.967 Target eIoni + 0 -0.352 0.149 -2.44e+03 0.227 0 0 0 Target initStep + 1 -0.63 0.268 -2.44e+03 0 0.088 0.333 0.333 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 128 +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 118 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.634 -0.574 -2.4e+03 0.162 0 0 0 Target initStep - 1 -0.2 -0.281 -2.4e+03 0 0.088 0.635 0.635 Target phot + 0 -0.63 0.268 -2.44e+03 0.139 0 0 0 Target initStep + 1 -0.632 0.268 -2.44e+03 0 0.139 0.0465 0.0465 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 131 +* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.2 -0.281 -2.4e+03 0.0739 0 0 0 Target initStep - 1 -0.2 -0.28 -2.4e+03 0 0.0739 0.0168 0.0168 Target eIoni + 0 -3.45 -0.256 -2.42e+03 0.511 0 0 0 Target initStep + 1 -14.5 -8.26 -2.42e+03 0.504 0 13.7 13.7 Target compt + 2 -21.4 -12.9 -2.42e+03 0.504 0 8.35 22 World Transportation + 3 -2.94e+03 -2e+03 -2.85e+03 0.504 0 3.56e+03 3.58e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 128 +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 117 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.627 -0.598 -2.4e+03 0.244 0 0 0 Target initStep - 1 -0.59 -0.442 -2.4e+03 0.184 0 0.165 0.165 Target compt - 2 -0.743 -0.375 -2.4e+03 0 0.088 0.309 0.474 Target phot + 0 -14.5 -8.26 -2.42e+03 0.00697 0 0 0 Target initStep + 1 -14.5 -8.26 -2.42e+03 0 0.00697 0.000415 0.000415 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 130 +* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.743 -0.375 -2.4e+03 0.0957 0 0 0 Target initStep - 1 -0.744 -0.376 -2.4e+03 0 0.0957 0.0256 0.0256 Target eIoni + 0 -3.45 -0.256 -2.42e+03 0.511 0 0 0 Target initStep + 1 11 10.2 -2.42e+03 0 0.088 17.8 17.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 130 +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 116 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.59 -0.442 -2.4e+03 0.0605 0 0 0 Target initStep - 1 -0.59 -0.442 -2.4e+03 0 0.0605 0.0122 0.0122 Target eIoni + 0 11 10.2 -2.42e+03 0.423 0 0 0 Target initStep + 1 11 10.2 -2.42e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 54 +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.74 -2.97 -2.44e+03 0.511 0 0 0 Target initStep - 1 -0.767 -2.42 -2.43e+03 0.501 0 7.01 7.01 Target compt - 2 -0.242 -2.74 -2.43e+03 0 0.088 2.75 9.76 Target phot + 0 -3.27 -0.205 -2.42e+03 0.272 0 0 0 Target initStep + 1 -7.56 0.539 -2.42e+03 0 0.088 4.41 4.41 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 72 +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 115 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.242 -2.74 -2.43e+03 0.413 0 0 0 Target initStep - 1 -0.234 -2.74 -2.43e+03 0 0.413 0.235 0.235 Target eIoni + 0 -7.56 0.539 -2.42e+03 0.184 0 0 0 Target initStep + 1 -7.57 0.539 -2.42e+03 0 0.184 0.0718 0.0718 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 72 +* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.767 -2.42 -2.43e+03 0.00999 0 0 0 Target initStep - 1 -0.767 -2.42 -2.43e+03 0 0.00999 0.000701 0.000701 Target eIoni + 0 -3.09 -0.172 -2.42e+03 0.137 0 0 0 Target initStep + 1 -3.11 -0.174 -2.42e+03 0 0.088 0.0176 0.0176 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 114 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.74 -2.97 -2.44e+03 0.511 0 0 0 Target initStep - 1 -2.15 -3.2 -2.44e+03 0.173 0 2.96 2.96 Target compt - 2 -2.07 -2.97 -2.44e+03 0 0.088 0.635 3.6 Target phot + 0 -3.11 -0.174 -2.42e+03 0.0491 0 0 0 Target initStep + 1 -3.11 -0.175 -2.42e+03 0 0.0491 0.00867 0.00867 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 71 +* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.07 -2.97 -2.44e+03 0.0849 0 0 0 Target initStep - 1 -2.07 -2.96 -2.44e+03 0 0.0849 0.0211 0.0211 Target eIoni + 0 -3.2 0.0014 -2.42e+03 0.258 0 0 0 Target initStep + 1 -3.07 -0.0318 -2.42e+03 0 0.088 0.509 0.509 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 71 +* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.15 -3.2 -2.44e+03 0.338 0 0 0 Target initStep - 1 -2.15 -3.2 -2.44e+03 0 0.338 0.177 0.177 Target eIoni + 0 -3.07 -0.0318 -2.42e+03 0.17 0 0 0 Target initStep + 1 -3.07 -0.0348 -2.42e+03 0 0.17 0.0635 0.0635 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 54 +* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.82 -2.9 -2.44e+03 0.257 0 0 0 Target initStep - 1 -1.59 -3.26 -2.44e+03 0 0.088 0.795 0.795 Target phot + 0 -2.22 0.314 -2.42e+03 0.343 0 0 0 Target initStep + 1 -7.89 -3.02 -2.42e+03 0.147 0 6.62 6.62 Target compt + 2 -7.85 -2.99 -2.42e+03 0 0.088 0.0514 6.67 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 70 +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 111 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.59 -3.26 -2.44e+03 0.169 0 0 0 Target initStep - 1 -1.58 -3.26 -2.44e+03 0 0.169 0.0628 0.0628 Target eIoni + 0 -7.85 -2.99 -2.42e+03 0.0588 0 0 0 Target initStep + 1 -7.85 -2.99 -2.42e+03 0 0.0588 0.0116 0.0116 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 111 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.01 -2.88 -2.44e+03 0.132 0 0 0 Target initStep - 1 -2.01 -2.88 -2.44e+03 0 0.088 0.00708 0.00708 Target phot + 0 -7.89 -3.02 -2.42e+03 0.196 0 0 0 Target initStep + 1 -7.89 -3.02 -2.42e+03 0 0.196 0.079 0.079 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 69 +* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.01 -2.88 -2.44e+03 0.0442 0 0 0 Target initStep - 1 -2.01 -2.88 -2.44e+03 0 0.0442 0.0073 0.0073 Target eIoni + 0 -1.75 -0.00863 -2.42e+03 0.196 0 0 0 Target initStep + 1 -1.76 -0.00611 -2.42e+03 0 0.088 0.00834 0.00834 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 110 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.93 -2.79 -2.44e+03 5.77 0 0 0 Target initStep - 1 -19.4 -3.55 -2.4e+03 5.76 0 42.9 42.9 Target compt - 2 -20.8 -3.57 -2.4e+03 5.76 0 3.59 46.4 Tracker Transportation - 3 -687 -12.2 -900 5.76 0 1.64e+03 1.69e+03 Chamber_PV Transportation - 4 -775 -13.3 -700 5.76 0 219 1.91e+03 Tracker Transportation - 5 -1.04e+03 -16.7 -100 5.76 0 656 2.56e+03 Chamber_PV Transportation - 6 -1.13e+03 -17.9 100 5.76 0 219 2.78e+03 Tracker Transportation - 7 -1.4e+03 -21.3 700 5.76 0 656 3.44e+03 Chamber_PV Transportation - 8 -1.49e+03 -22.5 900 5.76 0 219 3.66e+03 Tracker Transportation - 9 -1.75e+03 -25.9 1.5e+03 5.76 0 656 4.31e+03 Chamber_PV Transportation - 10 -1.84e+03 -27 1.7e+03 5.76 0 219 4.53e+03 Tracker Transportation - 11 -2.15e+03 -31.1 2.4e+03 5.76 0 766 5.3e+03 World Transportation - 12 -2.39e+03 -34.1 2.94e+03 5.76 0 591 5.89e+03 OutOfWorld Transportation + 0 -1.76 -0.00611 -2.42e+03 0.108 0 0 0 Target initStep + 1 -1.76 -0.00469 -2.42e+03 0 0.108 0.0308 0.0308 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 68 +* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.4 -3.55 -2.4e+03 0.00511 0 0 0 Target initStep - 1 -19.4 -3.55 -2.4e+03 0 0.00511 0.000269 0.000269 Target eIoni + 0 0.51 -1.2 -2.44e+03 0.511 0 0 0 Target initStep + 1 -6.73 12 -2.44e+03 0 0.088 15.1 15.1 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 109 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.22 -0.34 -2.44e+03 1.3 0 0 0 Target initStep - 1 -2.68 -2.35 -2.44e+03 0.783 0 8.61 8.61 Target compt - 2 -1.74 -1.85 -2.43e+03 0 0.088 2.37 11 Target phot + 0 -6.73 12 -2.44e+03 0.423 0 0 0 Target initStep + 1 -6.74 12 -2.44e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 67 +* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.74 -1.85 -2.43e+03 0.695 0 0 0 Target initStep - 1 -1.72 -1.83 -2.43e+03 0 0.695 0.468 0.468 Target eIoni + 0 0.51 -1.2 -2.44e+03 0.511 0 0 0 Target initStep + 1 6.4 -11.9 -2.44e+03 0.366 0 12.2 12.2 Target compt + 2 12.6 -13.1 -2.44e+03 0 0.088 6.53 18.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 67 +* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 108 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.68 -2.35 -2.44e+03 0.514 0 0 0 Target initStep - 1 -2.69 -2.37 -2.44e+03 0 0.514 0.316 0.316 Target eIoni + 0 12.6 -13.1 -2.44e+03 0.278 0 0 0 Target initStep + 1 12.6 -13.1 -2.44e+03 0 0.278 0.134 0.134 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 108 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.689 -0.428 -2.45e+03 1.61 0 0 0 Target initStep - 1 -1.55 -0.147 -2.44e+03 0.408 0 5.09 5.09 Target compt - 2 -3.47 -2.61 -2.44e+03 0 0.088 3.12 8.21 Target phot + 0 6.4 -11.9 -2.44e+03 0.145 0 0 0 Target initStep + 1 6.4 -11.9 -2.44e+03 0 0.145 0.0493 0.0493 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 66 +* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.47 -2.61 -2.44e+03 0.32 0 0 0 Target initStep - 1 -3.48 -2.61 -2.44e+03 0 0.32 0.164 0.164 Target eIoni + 0 0.463 -1.22 -2.44e+03 0.125 0 0 0 Target initStep + 1 0.466 -1.22 -2.44e+03 0.0975 0 0.00289 0.00289 Target compt + 2 0.462 -1.23 -2.44e+03 0 0.088 0.00803 0.0109 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 66 +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 107 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.55 -0.147 -2.44e+03 1.2 0 0 0 Target initStep - 1 -1.55 -0.128 -2.44e+03 0 1.2 0.906 0.906 Target eIoni + 0 0.462 -1.23 -2.44e+03 0.00947 0 0 0 Target initStep + 1 0.462 -1.23 -2.44e+03 0 0.00947 0.000648 0.000648 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 107 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.667 -0.423 -2.45e+03 10.4 0 0 0 Target initStep - 1 -8.83 0.431 -2.41e+03 0 0 36.4 36.4 Target conv + 0 0.466 -1.22 -2.44e+03 0.028 0 0 0 Target initStep + 1 0.466 -1.22 -2.44e+03 0 0.028 0.00349 0.00349 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 65 +* G4Track Information: Particle = gamma, Track ID = 106, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.83 0.431 -2.41e+03 7.56 0 0 0 Target initStep - 1 -9.28 0.458 -2.41e+03 3.65 3.91 2.71 2.71 Target eIoni - 2 -9.16 0.2 -2.41e+03 2.81 0.469 0.457 3.17 Target eBrem - 3 -9.05 0.00122 -2.41e+03 2.32 0.487 0.499 3.66 Target eIoni - 4 -8.91 -0.126 -2.41e+03 0.191 2.13 1.54 5.21 Target eIoni - 5 -8.91 -0.123 -2.41e+03 0 0.191 0.0762 5.28 Target eIoni + 0 0.457 -1.4 -2.44e+03 0.141 0 0 0 Target initStep + 1 0.466 -1.26 -2.44e+03 0 0.088 0.293 0.293 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 146 +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 106 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.16 0.2 -2.41e+03 0.373 0 0 0 Target initStep - 1 -8.18 -1.1 -2.41e+03 0 0.088 1.64 1.64 Target phot + 0 0.466 -1.26 -2.44e+03 0.0528 0 0 0 Target initStep + 1 0.466 -1.26 -2.44e+03 0 0.0528 0.00975 0.00975 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 148 +* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.18 -1.1 -2.41e+03 0.285 0 0 0 Target initStep - 1 -8.17 -1.11 -2.41e+03 0 0.285 0.138 0.138 Target eIoni + 0 0.033 -1.15 -2.44e+03 0.584 0 0 0 Target initStep + 1 5.76 -4.25 -2.43e+03 0.435 0 8.9 8.9 Target compt + 2 8.12 -8.77 -2.43e+03 0 0.088 5.15 14 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 64, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 105 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.638 -0.406 -2.45e+03 45.8 0 0 0 Target initStep - 1 -0.518 -0.54 -2.45e+03 0 0 0.637 0.637 Target conv + 0 8.12 -8.77 -2.43e+03 0.347 0 0 0 Target initStep + 1 8.13 -8.77 -2.43e+03 0 0.347 0.184 0.184 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 63, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 105 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.652 -0.344 -2.45e+03 0.0988 0 0 0 Target initStep - 1 -0.644 -0.362 -2.45e+03 0 0.088 0.205 0.205 Target phot + 0 5.76 -4.25 -2.43e+03 0.15 0 0 0 Target initStep + 1 5.76 -4.25 -2.43e+03 0 0.15 0.052 0.052 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 62, Parent ID = 54 +* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.66 -0.326 -2.45e+03 0.721 0 0 0 Target initStep - 1 -0.142 -0.894 -2.44e+03 0 0.088 8.22 8.22 Target phot + 0 0.0439 -1.08 -2.44e+03 25.7 0 0 0 Target initStep + 1 0.444 -7.93 -2.41e+03 0 0 29.8 29.8 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 104 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.665 -0.3 -2.45e+03 3.29 0 0 0 Target initStep - 1 -0.0405 -1.13 -2.4e+03 3.29 0 46.7 46.7 Tracker Transportation - 2 9.33 -13.6 -1.7e+03 3.29 0 700 747 Chamber_PV Transportation - 3 12 -17.2 -1.5e+03 3.29 0 200 947 Tracker Transportation - 4 20 -27.9 -900 3.29 0 600 1.55e+03 Chamber_PV Transportation - 5 22.7 -31.4 -700 3.29 0 200 1.75e+03 Tracker Transportation - 6 30.7 -42.1 -100 3.29 0 600 2.35e+03 Chamber_PV Transportation - 7 33.4 -45.7 100 3.29 0 200 2.55e+03 Tracker Transportation - 8 41.5 -56.4 700 3.29 0 600 3.15e+03 Chamber_PV Transportation - 9 44.1 -60 900 3.29 0 200 3.35e+03 Tracker Transportation - 10 52.2 -70.7 1.5e+03 3.29 0 600 3.95e+03 Chamber_PV Transportation - 11 54.8 -74.2 1.7e+03 3.29 0 200 4.15e+03 Tracker Transportation - 12 64.2 -86.7 2.4e+03 3.29 0 700 4.85e+03 World Transportation - 13 71.4 -96.3 2.94e+03 3.29 0 540 5.39e+03 OutOfWorld Transportation + 0 0.444 -7.93 -2.41e+03 7.13 0 0 0 Target initStep + 1 0.428 -8.08 -2.41e+03 4.48 1.42 1.08 1.08 Target eBrem + 2 0.0837 -8.08 -2.41e+03 1.71 2.77 2.12 3.19 Target eIoni + 3 0.00158 -8.1 -2.41e+03 0.927 0.173 0.145 3.34 Target eBrem + 4 -0.0479 -8.09 -2.41e+03 0.294 0.473 0.483 3.82 Target eBrem + 5 -0.0471 -8.1 -2.41e+03 0 0.294 0.145 3.96 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 60, Parent ID = 54 +* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 143 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.651 -0.298 -2.45e+03 1.12 0 0 0 Target initStep - 1 -0.709 -0.333 -2.44e+03 0.909 0 3.24 3.24 Target compt - 2 -2.93 -1.17 -2.44e+03 0.223 0 5.11 8.35 Target compt - 3 -3.19 0.225 -2.44e+03 0 0.088 2.19 10.5 Target phot + 0 -0.0479 -8.09 -2.41e+03 0.16 0 0 0 Target initStep + 1 0.0246 -8.63 -2.41e+03 0 0.088 0.654 0.654 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 59, Parent ID = 56 +* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 147 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.18 -1.15 -2.41e+03 0.511 0 0 0 Target initStep - 1 -3.12 -7.52 -2.41e+03 0 0.088 6.75 6.75 Target phot + 0 0.0246 -8.63 -2.41e+03 0.0716 0 0 0 Target initStep + 1 0.024 -8.63 -2.41e+03 0 0.0716 0.016 0.016 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 58, Parent ID = 56 +* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 143 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.18 -1.15 -2.41e+03 0.511 0 0 0 Target initStep - 1 -0.0297 2.61 -2.41e+03 0.263 0 3.98 3.98 Target compt - 2 0.00689 2.69 -2.41e+03 0 0.088 0.389 4.37 Target phot + 0 0.00158 -8.1 -2.41e+03 0.608 0 0 0 Target initStep + 1 -1.43 -6.33 -2.41e+03 0.476 0 2.46 2.46 Target compt + 2 -1.38 -4.96 -2.41e+03 0.245 0 1.41 3.87 Target compt + 3 -1.54 -4.59 -2.41e+03 0 0.088 1.73 5.6 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 56 +* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 146 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.01 -1.07 -2.41e+03 1.81 0 0 0 Target initStep - 1 -1.39 -1.66 -2.4e+03 1.81 0 2.69 2.69 Target compt - 2 -1.97 -2.83 -2.4e+03 1.81 0 4.56 7.25 Tracker Transportation - 3 -95.6 -191 -1.7e+03 1.81 0 731 738 Chamber_PV Transportation - 4 -107 -215 -1.61e+03 1.81 0 93.2 831 Tracker Transportation - 5 -203 -405 -900 1.81 0 742 1.57e+03 Chamber_PV Transportation - 6 -229 -459 -700 1.81 0 209 1.78e+03 Tracker Transportation - 7 -309 -620 -100 1.81 0 626 2.41e+03 Chamber_PV Transportation - 8 -336 -674 100 1.81 0 209 2.62e+03 Tracker Transportation - 9 -416 -835 700 1.81 0 626 3.24e+03 Chamber_PV Transportation - 10 -443 -888 900 1.81 0 209 3.45e+03 Tracker Transportation - 11 -523 -1.05e+03 1.5e+03 1.81 0 626 4.08e+03 Chamber_PV Transportation - 12 -550 -1.1e+03 1.7e+03 1.81 0 209 4.29e+03 Tracker Transportation - 13 -644 -1.29e+03 2.4e+03 1.81 0 731 5.02e+03 World Transportation - 14 -716 -1.44e+03 2.94e+03 1.81 0 564 5.58e+03 OutOfWorld Transportation + 0 -1.54 -4.59 -2.41e+03 0.157 0 0 0 Target initStep + 1 -1.54 -4.59 -2.41e+03 0 0.157 0.056 0.056 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 151, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 146 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.518 -0.54 -2.45e+03 12.3 0 0 0 Target initStep - 1 -1.3 -0.738 -2.44e+03 9.86 2.41 1.96 1.96 Target eIoni - 2 -0.269 -1.24 -2.44e+03 5.98 3.88 3.15 5.1 Target eIoni - 3 -0.347 -1.22 -2.44e+03 4.73 0.129 0.121 5.23 Target eBrem - 4 -0.668 -0.996 -2.44e+03 0 1.13 0.891 6.12 Target annihil + 0 -1.38 -4.96 -2.41e+03 0.231 0 0 0 Target initStep + 1 -1.38 -4.95 -2.41e+03 0 0.231 0.101 0.101 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 147, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 146 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.83 0.431 -2.41e+03 1.8 0 0 0 Target initStep - 1 -8.76 0.435 -2.41e+03 0.539 0.811 0.783 0.783 Target eBrem - 2 -8.76 0.458 -2.41e+03 0 0.539 0.335 1.12 Target eIoni - 3 -8.76 0.458 -2.41e+03 0 0 0 1.12 Target annihil + 0 -1.43 -6.33 -2.41e+03 0.133 0 0 0 Target initStep + 1 -1.43 -6.33 -2.41e+03 0 0.133 0.0431 0.0431 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 92, Parent ID = 84 +* G4Track Information: Particle = gamma, Track ID = 145, Parent ID = 143 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.03 -3.06 -2.42e+03 3.16 0 0 0 Target initStep - 1 -3.03 -3.24 -2.42e+03 0.845 1.55 1.09 1.09 Target eBrem - 2 -2.99 -3.19 -2.42e+03 0 0.845 0.601 1.69 Target eIoni - 3 -2.99 -3.19 -2.42e+03 0 0 0 1.69 Target annihil + 0 0.428 -8.08 -2.41e+03 1.23 0 0 0 Target initStep + 1 0.199 -8.09 -2.41e+03 0.392 0 0.286 0.286 Target compt + 2 -0.0818 -14.2 -2.41e+03 0 0.088 6.08 6.36 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 88, Parent ID = 85 +* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 145 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.21 -1.35 -2.44e+03 1.98 0 0 0 Target initStep - 1 1.28 -1.43 -2.44e+03 0 1.98 1.43 1.43 Target eIoni - 2 1.28 -1.43 -2.44e+03 0 0 0 1.43 Target annihil + 0 -0.0818 -14.2 -2.41e+03 0.304 0 0 0 Target initStep + 1 -0.0855 -14.2 -2.41e+03 0 0.304 0.152 0.152 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 57 +* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 145 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.39 -1.66 -2.4e+03 0.00477 0 0 0 Target initStep - 1 -1.39 -1.66 -2.4e+03 0 0.00477 0.000245 0.000245 Target eIoni + 0 0.199 -8.09 -2.41e+03 0.834 0 0 0 Target initStep + 1 0.165 -8.08 -2.41e+03 0 0.834 0.587 0.587 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 58 +* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00689 2.69 -2.41e+03 0.175 0 0 0 Target initStep - 1 0.00738 2.68 -2.41e+03 0 0.175 0.0664 0.0664 Target eIoni + 0 0.046 -1.07 -2.44e+03 0.596 0 0 0 Target initStep + 1 -0.697 -3.04 -2.43e+03 0.219 0 9.84 9.84 Target compt + 2 -1.39 -3.71 -2.43e+03 0 0.088 1.26 11.1 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 58 +* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 103 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0297 2.61 -2.41e+03 0.248 0 0 0 Target initStep - 1 -0.0281 2.61 -2.41e+03 0 0.248 0.113 0.113 Target eIoni + 0 -1.39 -3.71 -2.43e+03 0.131 0 0 0 Target initStep + 1 -1.39 -3.71 -2.43e+03 0 0.131 0.0421 0.0421 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 59 +* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 103 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.12 -7.52 -2.41e+03 0.423 0 0 0 Target initStep - 1 -3.12 -7.54 -2.41e+03 0 0.423 0.243 0.243 Target eIoni + 0 -0.697 -3.04 -2.43e+03 0.377 0 0 0 Target initStep + 1 -0.696 -3.04 -2.43e+03 0 0.377 0.207 0.207 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 60 +* G4Track Information: Particle = gamma, Track ID = 102, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.19 0.225 -2.44e+03 0.135 0 0 0 Target initStep - 1 -3.19 0.228 -2.44e+03 0 0.135 0.0444 0.0444 Target eIoni + 0 -0.16 -0.53 -2.44e+03 4.44 0 0 0 Target initStep + 1 4.66 -4.59 -2.43e+03 0 0 17.5 17.5 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 60 +* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 102 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.93 -1.17 -2.44e+03 0.685 0 0 0 Target initStep - 1 -2.95 -1.18 -2.44e+03 0 0.685 0.46 0.46 Target eIoni + 0 4.66 -4.59 -2.43e+03 0.546 0 0 0 Target initStep + 1 4.66 -4.59 -2.43e+03 0.221 0.175 0.178 0.178 Target eBrem + 2 4.67 -4.59 -2.43e+03 0 0.221 0.0947 0.272 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 60 +* G4Track Information: Particle = gamma, Track ID = 158, Parent ID = 156 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.709 -0.333 -2.44e+03 0.21 0 0 0 Target initStep - 1 -0.705 -0.331 -2.44e+03 0 0.21 0.0878 0.0878 Target eIoni + 0 4.66 -4.59 -2.43e+03 0.15 0 0 0 Target initStep + 1 4.79 -4.87 -2.43e+03 0 0.088 0.446 0.446 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 62 +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 158 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.142 -0.894 -2.44e+03 0.633 0 0 0 Target initStep - 1 -0.131 -0.908 -2.44e+03 0 0.633 0.415 0.415 Target eIoni + 0 4.79 -4.87 -2.43e+03 0.0617 0 0 0 Target initStep + 1 4.79 -4.87 -2.43e+03 0 0.0617 0.0126 0.0126 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 101, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.644 -0.362 -2.45e+03 0.0108 0 0 0 Target initStep - 1 -0.644 -0.362 -2.45e+03 0 0.0108 0.000786 0.000786 Target eIoni + 0 -0.56 -0.214 -2.44e+03 0.103 0 0 0 Target initStep + 1 -0.51 -0.244 -2.44e+03 0 0.088 0.279 0.279 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 101 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.518 -0.54 -2.45e+03 32.5 0 0 0 Target initStep - 1 -0.52 -1.4 -2.44e+03 27.9 3.19 2.23 2.23 Target eIoni - 2 -0.895 -2.8 -2.44e+03 22.4 4.11 3.3 5.53 Target eBrem - 3 -0.961 -2.89 -2.44e+03 16.1 0.326 0.212 5.75 Target eBrem - 4 -1.19 -3.3 -2.44e+03 8.13 0.749 0.695 6.44 Target eBrem - 5 -1.06 -3.9 -2.44e+03 5.85 2.28 1.73 8.17 Target eBrem - 6 -0.81 -3.77 -2.44e+03 3.01 0.387 0.375 8.55 Target eBrem - 7 -0.634 -3.69 -2.44e+03 0.157 2.72 1.7 10.2 Target eBrem - 8 -0.633 -3.7 -2.44e+03 0 0.157 0.0557 10.3 Target eIoni + 0 -0.51 -0.244 -2.44e+03 0.0152 0 0 0 Target initStep + 1 -0.51 -0.244 -2.44e+03 0 0.0152 0.00133 0.00133 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 150 +* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.52 -1.4 -2.44e+03 1.41 0 0 0 Target initStep - 1 -0.485 -1.4 -2.44e+03 0.172 1.02 0.834 0.834 Target eBrem - 2 -0.486 -1.4 -2.44e+03 0 0.172 0.0648 0.899 Target eIoni + 0 -0.617 -0.192 -2.44e+03 3.91 0 0 0 Target initStep + 1 -0.388 -0.335 -2.44e+03 1.23 0 2.01 2.01 Target compt + 2 0.147 -1.34 -2.44e+03 0.28 0 1.46 3.47 Target compt + 3 -2.94 0.324 -2.44e+03 0 0.088 3.71 7.18 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 178, Parent ID = 172 +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 100 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.485 -1.4 -2.44e+03 0.216 0 0 0 Target initStep - 1 -0.59 -1.66 -2.44e+03 0 0.088 0.339 0.339 Target phot + 0 -2.94 0.324 -2.44e+03 0.192 0 0 0 Target initStep + 1 -2.94 0.328 -2.44e+03 0 0.192 0.0764 0.0764 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 178 +* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 100 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.59 -1.66 -2.44e+03 0.128 0 0 0 Target initStep - 1 -0.592 -1.66 -2.44e+03 0 0.128 0.0407 0.0407 Target eIoni + 0 0.147 -1.34 -2.44e+03 0.946 0 0 0 Target initStep + 1 0.173 -1.37 -2.44e+03 0 0.946 0.684 0.684 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 177, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 100 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.634 -3.69 -2.44e+03 0.125 0 0 0 Target initStep - 1 -0.709 -3.66 -2.44e+03 0 0.088 0.253 0.253 Target phot + 0 -0.388 -0.335 -2.44e+03 2.69 0 0 0 Target initStep + 1 -0.389 -0.291 -2.44e+03 0 2.69 1.66 1.66 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 177 +* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.709 -3.66 -2.44e+03 0.0371 0 0 0 Target initStep - 1 -0.71 -3.66 -2.44e+03 0 0.0371 0.00548 0.00548 Target eIoni + 0 -0.638 -0.186 -2.44e+03 0.141 0 0 0 Target initStep + 1 -0.622 -0.192 -2.44e+03 0 0.088 0.0863 0.0863 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 176, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 99 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.81 -3.77 -2.44e+03 2.46 0 0 0 Target initStep - 1 1.49 -3.13 -2.44e+03 0.427 0 3.59 3.59 Target compt - 2 0.192 0.323 -2.44e+03 0 0.088 3.71 7.3 Target phot + 0 -0.622 -0.192 -2.44e+03 0.0526 0 0 0 Target initStep + 1 -0.622 -0.192 -2.44e+03 0 0.0526 0.00968 0.00968 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 176 +* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.192 0.323 -2.44e+03 0.339 0 0 0 Target initStep - 1 0.182 0.328 -2.44e+03 0 0.339 0.178 0.178 Target eIoni + 0 -0.718 -0.163 -2.45e+03 2.7 0 0 0 Target initStep + 1 1.55 1.8 -2.41e+03 0.243 0 31.8 31.8 Target compt + 2 1.28 1.42 -2.41e+03 0 0.088 0.973 32.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 176 +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 98 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.49 -3.13 -2.44e+03 2.03 0 0 0 Target initStep - 1 1.6 -3.13 -2.44e+03 1.02 0.822 0.746 0.746 Target eBrem - 2 1.55 -3.11 -2.44e+03 0 1.02 0.748 1.49 Target eIoni + 0 1.28 1.42 -2.41e+03 0.155 0 0 0 Target initStep + 1 1.28 1.41 -2.41e+03 0 0.155 0.0546 0.0546 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 181 +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 98 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.6 -3.13 -2.44e+03 0.191 0 0 0 Target initStep - 1 1.4 -3.01 -2.44e+03 0 0.088 0.254 0.254 Target phot + 0 1.55 1.8 -2.41e+03 2.46 0 0 0 Target initStep + 1 1.56 1.81 -2.41e+03 1.64 0.683 0.405 0.405 Target eBrem + 2 1.47 1.85 -2.41e+03 0.0347 1.61 1.23 1.64 Target eIoni + 3 1.47 1.85 -2.41e+03 0 0.0347 0.00493 1.64 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 183 +* G4Track Information: Particle = gamma, Track ID = 167, Parent ID = 165 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.4 -3.01 -2.44e+03 0.103 0 0 0 Target initStep - 1 1.4 -3.01 -2.44e+03 0 0.103 0.0289 0.0289 Target eIoni + 0 1.56 1.81 -2.41e+03 0.13 0 0 0 Target initStep + 1 0.88 1.95 -2.41e+03 0 0.088 0.811 0.811 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 167 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.19 -3.3 -2.44e+03 7.19 0 0 0 Target initStep - 1 -0.915 -4.73 -2.44e+03 0 0 2.53 2.53 Target conv + 0 0.88 1.95 -2.41e+03 0.0421 0 0 0 Target initStep + 1 0.88 1.95 -2.41e+03 0 0.0421 0.00673 0.00673 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 175 +* G4Track Information: Particle = gamma, Track ID = 97, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.915 -4.73 -2.44e+03 2.38 0 0 0 Target initStep - 1 -0.911 -4.81 -2.44e+03 1.15 0.792 0.715 0.715 Target eBrem - 2 -0.927 -4.8 -2.44e+03 0 1.15 0.86 1.57 Target eIoni + 0 -0.721 -0.208 -2.45e+03 1.86 0 0 0 Target initStep + 1 -1.12 1.82 -2.43e+03 1.58 0 15.9 15.9 Target compt + 2 6.63 9.97 -2.4e+03 1.3 0 30.8 46.7 Target compt + 3 6.57 10.7 -2.4e+03 1.3 0 1.49 48.2 Tracker Transportation + 4 -102 1.29e+03 -100 1.3 0 2.63e+03 2.68e+03 Chamber_PV Transportation + 5 -104 1.32e+03 -44.5 1.3 0 63.5 2.74e+03 Tracker Transportation + 6 -140 1.73e+03 700 1.3 0 852 3.6e+03 Chamber_PV Transportation + 7 -149 1.84e+03 900 1.3 0 229 3.82e+03 Tracker Transportation + 8 -177 2.17e+03 1.5e+03 1.3 0 687 4.51e+03 Chamber_PV Transportation + 9 -187 2.28e+03 1.7e+03 1.3 0 229 4.74e+03 Tracker Transportation + 10 -196 2.39e+03 1.9e+03 1.3 0 226 4.97e+03 World Transportation + 11 -243 2.94e+03 2.89e+03 1.3 0 1.13e+03 6.1e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 187, Parent ID = 185 +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 97 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.911 -4.81 -2.44e+03 0.435 0 0 0 Target initStep - 1 -2.1 -4.79 -2.43e+03 0.347 0 8.08 8.08 Target compt - 2 -7.58 -14.8 -2.42e+03 0 0.088 15.2 23.2 Target phot + 0 6.63 9.97 -2.4e+03 0.276 0 0 0 Target initStep + 1 6.63 9.97 -2.4e+03 0 0.276 0.132 0.132 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 187 +* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 97 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.58 -14.8 -2.42e+03 0.259 0 0 0 Target initStep - 1 -7.59 -14.8 -2.42e+03 0 0.259 0.12 0.12 Target eIoni + 0 -1.12 1.82 -2.43e+03 0.284 0 0 0 Target initStep + 1 -1.13 1.82 -2.43e+03 0 0.284 0.138 0.138 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 187 +* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.1 -4.79 -2.43e+03 0.0878 0 0 0 Target initStep - 1 -2.1 -4.79 -2.43e+03 0 0.0878 0.0222 0.0222 Target eIoni + 0 -0.654 -0.314 -2.45e+03 23.5 0 0 0 Target initStep + 1 -1.97 4.04 -2.42e+03 0 0 28.4 28.4 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 150 +* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.961 -2.89 -2.44e+03 6.05 0 0 0 Target initStep - 1 -11.2 -20 -2.42e+03 0.851 0 28.9 28.9 Target compt - 2 -9.08 -23.3 -2.42e+03 0.851 0 4.1 33 World Transportation - 3 25.9 -76.5 -2.4e+03 0.851 0 66.2 99.1 Tracker Transportation - 4 1.3e+03 -2.02e+03 -1.74e+03 0.851 0 2.41e+03 2.51e+03 World Transportation - 5 1.91e+03 -2.94e+03 -1.43e+03 0.851 0 1.15e+03 3.66e+03 OutOfWorld Transportation + 0 -0.314 -1.49 -2.44e+03 0.511 0 0 0 Target initStep + 1 -4.25 0.198 -2.44e+03 0.386 0 4.29 4.29 Target compt + 2 -4.86 -0.00838 -2.44e+03 0 0.088 0.741 5.03 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 174 +* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.2 -20 -2.42e+03 5.2 0 0 0 Target initStep - 1 -11 -20.1 -2.42e+03 4.27 0.927 0.84 0.84 Target msc - 2 -11.1 -19.8 -2.42e+03 3.26 0.476 0.431 1.27 Target eBrem - 3 -10.9 -19.7 -2.42e+03 0.747 2.41 1.23 2.5 Target eBrem - 4 -10.9 -19.7 -2.42e+03 0 0.747 0.513 3.02 Target eIoni + 0 -0.314 -1.49 -2.44e+03 0.511 0 0 0 Target initStep + 1 5.5 -3.99 -2.44e+03 0.423 0 6.33 6.33 Target compt + 2 7.56 -7.62 -2.44e+03 0.221 0 4.26 10.6 Target compt + 3 6.3 -5.5 -2.43e+03 0 0.088 8.18 18.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 190 +* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.9 -19.7 -2.42e+03 0.103 0 0 0 Target initStep - 1 -10.9 -19.7 -2.42e+03 0 0.088 0.0385 0.0385 Target phot + 0 0.187 -1.74 -2.44e+03 0.109 0 0 0 Target initStep + 1 0.151 -1.74 -2.44e+03 0 0.088 0.0385 0.0385 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 192 +* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.9 -19.7 -2.42e+03 0.0147 0 0 0 Target initStep - 1 -10.9 -19.7 -2.42e+03 0 0.0147 0.00127 0.00127 Target eIoni + 0 0.173 -1.89 -2.44e+03 0.248 0 0 0 Target initStep + 1 0.853 0.655 -2.44e+03 0 0.088 3.44 3.44 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 191, Parent ID = 190 +* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.1 -19.8 -2.42e+03 0.535 0 0 0 Target initStep - 1 -8.04 -19.2 -2.42e+03 0.246 0 3.37 3.37 Target compt - 2 -7.99 -19.8 -2.42e+03 0 0.088 0.602 3.97 Target phot + 0 0.199 -2.15 -2.44e+03 0.304 0 0 0 Target initStep + 1 -0.0771 1.58 -2.44e+03 0 0.088 5.38 5.38 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 191 +* G4Track Information: Particle = gamma, Track ID = 90, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.99 -19.8 -2.42e+03 0.158 0 0 0 Target initStep - 1 -7.98 -19.8 -2.42e+03 0 0.158 0.0566 0.0566 Target eIoni + 0 -0.175 -2.02 -2.44e+03 0.116 0 0 0 Target initStep + 1 0.0478 -2.08 -2.44e+03 0 0.088 0.234 0.234 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 191 +* G4Track Information: Particle = gamma, Track ID = 89, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.04 -19.2 -2.42e+03 0.289 0 0 0 Target initStep - 1 -8.03 -19.2 -2.42e+03 0 0.289 0.141 0.141 Target eIoni + 0 -0.206 -2 -2.44e+03 0.422 0 0 0 Target initStep + 1 3.56 -4.48 -2.44e+03 0 0.088 4.69 4.69 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 173, Parent ID = 150 +* G4Track Information: Particle = gamma, Track ID = 88, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.895 -2.8 -2.44e+03 1.32 0 0 0 Target initStep - 1 -4.3 -7.37 -2.43e+03 0.943 0 10.3 10.3 Target compt - 2 -9.52 -23.1 -2.42e+03 0.943 0 18.6 28.9 World Transportation - 3 -23.7 -65.9 -2.4e+03 0.943 0 50.6 79.6 Tracker Transportation - 4 -757 -2.28e+03 -1.21e+03 0.943 0 2.62e+03 2.7e+03 World Transportation - 5 -976 -2.94e+03 -853 0.943 0 784 3.48e+03 OutOfWorld Transportation + 0 0.0535 -2.43 -2.43e+03 4.69 0 0 0 Target initStep + 1 -0.633 25 -2.41e+03 4.69 0 31.9 31.9 World Transportation + 2 -1.08 43 -2.4e+03 4.69 0 21 53 Tracker Transportation + 3 -60 2.4e+03 -993 4.69 0 2.75e+03 2.8e+03 World Transportation + 4 -73.6 2.94e+03 -670 4.69 0 630 3.43e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 173 +* G4Track Information: Particle = gamma, Track ID = 87, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.3 -7.37 -2.43e+03 0.373 0 0 0 Target initStep - 1 -4.31 -7.37 -2.43e+03 0 0.373 0.204 0.204 Target eIoni + 0 0.0535 -2.43 -2.43e+03 0.569 0 0 0 Target initStep + 1 -0.457 -2.79 -2.43e+03 0 0.088 0.84 0.84 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 171, Parent ID = 88 +* G4Track Information: Particle = gamma, Track ID = 86, Parent ID = 57 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.28 -1.43 -2.44e+03 0.511 0 0 0 Target initStep - 1 0.404 1.72 -2.43e+03 0.498 0 4.02 4.02 Target compt - 2 -0.173 6.13 -2.43e+03 0.441 0 6.59 10.6 Target compt - 3 -2.1 7.51 -2.43e+03 0 0.088 4.03 14.6 Target phot + 0 -2.74 -3.25 -2.42e+03 0.511 0 0 0 Target initStep + 1 -4.64 -2.4 -2.42e+03 0.51 0 2.51 2.51 Target compt + 2 -7.39 -1.44 -2.42e+03 0 0.088 3.45 5.97 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 171 +* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 57 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.1 7.51 -2.43e+03 0.353 0 0 0 Target initStep - 1 -2.11 7.51 -2.43e+03 0 0.353 0.188 0.188 Target eIoni + 0 -2.74 -3.25 -2.42e+03 0.511 0 0 0 Target initStep + 1 -0.773 -4.13 -2.42e+03 0 0.088 2.61 2.61 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 171 +* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 57 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.173 6.13 -2.43e+03 0.0569 0 0 0 Target initStep - 1 -0.173 6.13 -2.43e+03 0 0.0569 0.011 0.011 Target eIoni + 0 -2.57 -3.27 -2.42e+03 1.01 0 0 0 Target initStep + 1 -11.6 -3.4 -2.43e+03 0.692 0 14.3 14.3 Target compt + 2 -11.6 -3.39 -2.43e+03 0 0.088 0.119 14.5 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 171 +* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.404 1.72 -2.43e+03 0.0134 0 0 0 Target initStep - 1 0.404 1.72 -2.43e+03 0 0.0134 0.0011 0.0011 Target eIoni + 0 -0.715 2.07 -2.44e+03 0.511 0 0 0 Target initStep + 1 -1.26 2.68 -2.44e+03 0 0.088 1.46 1.46 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 170, Parent ID = 88 +* G4Track Information: Particle = gamma, Track ID = 82, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.28 -1.43 -2.44e+03 0.511 0 0 0 Target initStep - 1 4.44 -12.8 -2.45e+03 0 0.088 14.6 14.6 Target phot + 0 -0.715 2.07 -2.44e+03 0.511 0 0 0 Target initStep + 1 2.01 -1 -2.45e+03 0.511 0 7.29 7.29 World Transportation + 2 223 -250 -2.94e+03 0.511 0 593 600 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 170 +* G4Track Information: Particle = gamma, Track ID = 81, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.44 -12.8 -2.45e+03 0.423 0 0 0 Target initStep - 1 4.44 -12.9 -2.45e+03 0 0.423 0.243 0.243 Target eIoni + 0 -0.695 2.08 -2.44e+03 0.348 0 0 0 Target initStep + 1 -2.34 2.33 -2.45e+03 0 0.088 2.45 2.45 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 92 +* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.99 -3.19 -2.42e+03 0.511 0 0 0 Target initStep - 1 -4.12 -4.35 -2.42e+03 0.494 0 1.86 1.86 Target compt - 2 -6.4 -6.47 -2.43e+03 0.226 0 3.21 5.07 Target compt - 3 -6.29 -5.49 -2.43e+03 0 0.088 1.72 6.79 Target phot + 0 -0.687 2.21 -2.44e+03 1.99 0 0 0 Target initStep + 1 -1.04 1.46 -2.44e+03 1.13 0 0.853 0.853 Target compt + 2 -1.25 -2.14 -2.44e+03 0 0.088 3.78 4.63 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.29 -5.49 -2.43e+03 0.138 0 0 0 Target initStep - 1 -6.29 -5.49 -2.43e+03 0 0.138 0.0457 0.0457 Target eIoni + 0 -1.09 2 -2.44e+03 0.233 0 0 0 Target initStep + 1 -0.174 2.58 -2.44e+03 0 0.088 1.09 1.09 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.4 -6.47 -2.43e+03 0.268 0 0 0 Target initStep - 1 -6.41 -6.48 -2.43e+03 0 0.268 0.126 0.126 Target eIoni + 0 -1.35 1.94 -2.44e+03 0.548 0 0 0 Target initStep + 1 -0.127 2.23 -2.44e+03 0 0.088 1.33 1.33 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 77, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.12 -4.35 -2.42e+03 0.017 0 0 0 Target initStep - 1 -4.12 -4.35 -2.42e+03 0 0.017 0.00157 0.00157 Target eIoni + 0 -1.46 1.86 -2.44e+03 0.754 0 0 0 Target initStep + 1 -0.241 2.91 -2.44e+03 0.299 0 2.01 2.01 Target compt + 2 -0.564 2.88 -2.45e+03 0.146 0 0.464 2.47 Target compt + 3 -0.541 2.88 -2.44e+03 0 0.088 0.209 2.68 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 92 +* G4Track Information: Particle = gamma, Track ID = 76, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.99 -3.19 -2.42e+03 0.511 0 0 0 Target initStep - 1 -2.98 -3.18 -2.42e+03 0.307 0 0.0188 0.0188 Target compt - 2 -3.12 -0.599 -2.42e+03 0.216 0 2.85 2.86 Target compt - 3 -2.96 -0.488 -2.42e+03 0.141 0 0.207 3.07 Target compt - 4 -2.94 -0.5 -2.42e+03 0 0.088 0.0457 3.12 Target phot + 0 -0.618 0.742 -2.44e+03 0.658 0 0 0 Target initStep + 1 -11.5 8.63 -2.44e+03 0 0.088 14.9 14.9 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 168 +* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 70 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.94 -0.5 -2.42e+03 0.0525 0 0 0 Target initStep - 1 -2.94 -0.5 -2.42e+03 0 0.0525 0.00967 0.00967 Target eIoni + 0 -0.619 0.69 -2.44e+03 0.999 0 0 0 Target initStep + 1 -0.671 5.14 -2.44e+03 0.291 0 6.75 6.75 Target compt + 2 0.116 6 -2.44e+03 0 0.088 1.76 8.51 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 168 +* G4Track Information: Particle = e+, Track ID = 172, Parent ID = 96 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.96 -0.488 -2.42e+03 0.0757 0 0 0 Target initStep - 1 -2.95 -0.488 -2.42e+03 0 0.0757 0.0175 0.0175 Target eIoni + 0 -1.97 4.04 -2.42e+03 6.02 0 0 0 Target initStep + 1 -1.99 4.09 -2.42e+03 5.48 0.245 0.27 0.27 Target eBrem + 2 -1.73 4.07 -2.42e+03 1.37 1.11 1.01 1.28 Target eBrem + 3 -1.64 3.99 -2.42e+03 0 1.37 1.06 2.34 Target eIoni + 4 -1.64 3.99 -2.42e+03 0 0 0 2.34 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 168 +* G4Track Information: Particle = e+, Track ID = 157, Parent ID = 102 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.12 -0.599 -2.42e+03 0.0903 0 0 0 Target initStep - 1 -3.12 -0.598 -2.42e+03 0 0.0903 0.0233 0.0233 Target eIoni + 0 4.66 -4.59 -2.43e+03 2.87 0 0 0 Target initStep + 1 4.8 -4.68 -2.43e+03 0.299 2.57 1.75 1.75 Target eIoni + 2 4.8 -4.69 -2.43e+03 0 0.299 0.144 1.89 Target eIoni + 3 4.8 -4.69 -2.43e+03 0 0 0 1.89 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 168 +* G4Track Information: Particle = e+, Track ID = 144, Parent ID = 104 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.98 -3.18 -2.42e+03 0.204 0 0 0 Target initStep - 1 -2.97 -3.18 -2.42e+03 0 0.204 0.0842 0.0842 Target eIoni + 0 0.444 -7.93 -2.41e+03 17.6 0 0 0 Target initStep + 1 0.445 -7.94 -2.41e+03 17.4 0.0582 0.055 0.055 Target eBrem + 2 0.442 -7.97 -2.41e+03 17.2 0.0738 0.0804 0.135 Target eBrem + 3 0.449 -8.06 -2.41e+03 15.7 0.378 0.336 0.471 Target eIoni + 4 0.475 -8.09 -2.41e+03 8.93 0.159 0.134 0.606 Target eBrem + 5 0.534 -8.11 -2.41e+03 8.31 0.197 0.199 0.805 Target eBrem + 6 0.387 -7.71 -2.41e+03 4.17 4.14 2.88 3.68 Target eIoni + 7 0.702 -8.17 -2.41e+03 2.3 1.87 1.8 5.49 Target eBrem + 8 0.831 -7.99 -2.41e+03 0.95 1.24 1.4 6.88 Target eBrem + 9 0.897 -8.04 -2.41e+03 0.252 0.451 0.449 7.33 Target eBrem + 10 0.898 -8.04 -2.41e+03 0 0.252 0.111 7.44 Target eIoni + 11 0.898 -8.04 -2.41e+03 0 0 0 7.44 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 167, Parent ID = 92 +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 144 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.03 -3.24 -2.42e+03 0.76 0 0 0 Target initStep - 1 -4.03 -3.97 -2.43e+03 0 0.088 3.86 3.86 Target phot + 0 0.449 -8.06 -2.41e+03 1.12 0 0 0 Target initStep + 1 0.483 -8.11 -2.41e+03 0.0384 1.08 0.704 0.704 Target eBrem + 2 0.483 -8.11 -2.41e+03 0 0.0384 0.0058 0.71 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 167 +* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 75 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.03 -3.97 -2.43e+03 0.672 0 0 0 Target initStep - 1 -4.04 -3.94 -2.43e+03 0 0.672 0.448 0.448 Target eIoni + 0 0.116 6 -2.44e+03 0.203 0 0 0 Target initStep + 1 0.12 6 -2.44e+03 0 0.203 0.0832 0.0832 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 166, Parent ID = 147 +* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 75 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.76 0.458 -2.41e+03 0.511 0 0 0 Target initStep - 1 4.54 -3.46 -2.41e+03 0.284 0 14.5 14.5 Target compt - 2 4 -6.11 -2.4e+03 0 0.088 3.05 17.5 Target phot + 0 -0.671 5.14 -2.44e+03 0.708 0 0 0 Target initStep + 1 -0.676 5.16 -2.44e+03 0 0.708 0.479 0.479 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 166 +* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4 -6.11 -2.4e+03 0.196 0 0 0 Target initStep - 1 3.99 -6.11 -2.4e+03 0 0.196 0.0792 0.0792 Target eIoni + 0 -11.5 8.63 -2.44e+03 0.57 0 0 0 Target initStep + 1 -11.5 8.65 -2.44e+03 0 0.57 0.363 0.363 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 166 +* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.54 -3.46 -2.41e+03 0.227 0 0 0 Target initStep - 1 4.55 -3.45 -2.41e+03 0 0.227 0.0984 0.0984 Target eIoni + 0 -0.541 2.88 -2.44e+03 0.0581 0 0 0 Target initStep + 1 -0.541 2.88 -2.44e+03 0 0.0581 0.0114 0.0114 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 147 +* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.76 0.458 -2.41e+03 0.511 0 0 0 Target initStep - 1 -12.8 1.65 -2.41e+03 0.184 0 4.41 4.41 Target compt - 2 -12.7 1.58 -2.41e+03 0 0.088 0.156 4.56 Target phot + 0 -0.564 2.88 -2.45e+03 0.153 0 0 0 Target initStep + 1 -0.566 2.88 -2.45e+03 0 0.153 0.0536 0.0536 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 165 +* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.7 1.58 -2.41e+03 0.0955 0 0 0 Target initStep - 1 -12.7 1.58 -2.41e+03 0 0.0955 0.0255 0.0255 Target eIoni + 0 -0.241 2.91 -2.44e+03 0.455 0 0 0 Target initStep + 1 -0.226 2.92 -2.44e+03 0 0.455 0.268 0.268 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 165 +* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 78 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.8 1.65 -2.41e+03 0.327 0 0 0 Target initStep - 1 -12.8 1.65 -2.41e+03 0 0.327 0.169 0.169 Target eIoni + 0 -0.127 2.23 -2.44e+03 0.46 0 0 0 Target initStep + 1 -0.116 2.23 -2.44e+03 0 0.46 0.272 0.272 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 147 +* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 79 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.76 0.435 -2.41e+03 0.447 0 0 0 Target initStep - 1 -8.79 0.995 -2.41e+03 0 0.088 0.734 0.734 Target phot + 0 -0.174 2.58 -2.44e+03 0.145 0 0 0 Target initStep + 1 -0.172 2.58 -2.44e+03 0 0.145 0.0492 0.0492 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 164 +* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 80 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.79 0.995 -2.41e+03 0.359 0 0 0 Target initStep - 1 -8.79 1 -2.41e+03 0 0.359 0.193 0.193 Target eIoni + 0 -1.25 -2.14 -2.44e+03 1.05 0 0 0 Target initStep + 1 -1.27 -2.19 -2.44e+03 0 1.05 0.771 0.771 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 163, Parent ID = 151 +* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 80 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.668 -0.996 -2.44e+03 3.53 0 0 0 Target initStep - 1 3.3 -24.8 -2.45e+03 3.53 0 24.6 24.6 World Transportation - 2 390 -2.34e+03 -2.94e+03 3.53 0 2.4e+03 2.43e+03 OutOfWorld Transportation + 0 -1.04 1.46 -2.44e+03 0.854 0 0 0 Target initStep + 1 -1.07 1.43 -2.44e+03 0 0.854 0.605 0.605 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 162, Parent ID = 151 +* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 81 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.668 -0.996 -2.44e+03 1.09 0 0 0 Target initStep - 1 -1.12 -1.25 -2.44e+03 0.677 0 0.702 0.702 Target compt - 2 -1.81 -0.683 -2.44e+03 0.645 0 1.75 2.45 Target compt - 3 -3.55 1.78 -2.45e+03 0 0.088 4.36 6.82 Target phot + 0 -2.34 2.33 -2.45e+03 0.26 0 0 0 Target initStep + 1 -2.34 2.33 -2.45e+03 0 0.26 0.121 0.121 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 162 +* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 83 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.55 1.78 -2.45e+03 0.557 0 0 0 Target initStep - 1 -3.56 1.79 -2.45e+03 0 0.557 0.351 0.351 Target eIoni + 0 -1.26 2.68 -2.44e+03 0.423 0 0 0 Target initStep + 1 -1.26 2.69 -2.44e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 162 +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 84 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.81 -0.683 -2.44e+03 0.0329 0 0 0 Target initStep - 1 -1.81 -0.683 -2.44e+03 0 0.0329 0.00452 0.00452 Target eIoni + 0 -11.6 -3.39 -2.43e+03 0.604 0 0 0 Target initStep + 1 -11.6 -3.4 -2.43e+03 0.164 0.133 0.135 0.135 Target eBrem + 2 -11.6 -3.4 -2.43e+03 0 0.164 0.0598 0.195 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 162 +* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 84 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.12 -1.25 -2.44e+03 0.412 0 0 0 Target initStep - 1 -1.13 -1.26 -2.44e+03 0 0.412 0.234 0.234 Target eIoni + 0 -11.6 -3.4 -2.43e+03 0.32 0 0 0 Target initStep + 1 -11.6 -3.4 -2.43e+03 0 0.32 0.163 0.163 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 151 +* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 85 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.347 -1.22 -2.44e+03 1.12 0 0 0 Target initStep - 1 -2.06 0.104 -2.44e+03 0 0.088 3.26 3.26 Target phot + 0 -0.773 -4.13 -2.42e+03 0.423 0 0 0 Target initStep + 1 -0.773 -4.14 -2.42e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 186, Parent ID = 175 +* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 86 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.915 -4.73 -2.44e+03 3.79 0 0 0 Target initStep - 1 -0.831 -5.06 -2.44e+03 2.2 1.48 1.04 1.04 Target eBrem - 2 -1.03 -5.17 -2.44e+03 1.75 0.446 0.522 1.56 Target eBrem - 3 -0.875 -5.07 -2.44e+03 0.251 1.5 1.32 2.88 Target eIoni - 4 -0.878 -5.08 -2.44e+03 0 0.251 0.111 2.99 Target eIoni - 5 -0.878 -5.08 -2.44e+03 0 0 0 2.99 Target annihil + 0 -7.39 -1.44 -2.42e+03 0.422 0 0 0 Target initStep + 1 -7.4 -1.43 -2.42e+03 0 0.422 0.241 0.241 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 161 +* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 86 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.06 0.104 -2.44e+03 1.03 0 0 0 Target initStep - 1 -2.09 0.129 -2.44e+03 0.0964 0.691 0.563 0.563 Target eBrem - 2 -2.09 0.13 -2.44e+03 0 0.0964 0.0258 0.589 Target eIoni + 0 -4.64 -2.4 -2.42e+03 0.00148 0 0 0 Target initStep + 1 -4.64 -2.4 -2.42e+03 0 0.00148 5.08e-05 5.08e-05 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 221, Parent ID = 217 +* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.09 0.129 -2.44e+03 0.245 0 0 0 Target initStep - 1 -1.8 -2.4 -2.44e+03 0 0.088 2.87 2.87 Target phot + 0 -0.457 -2.79 -2.43e+03 0.481 0 0 0 Target initStep + 1 -0.471 -2.8 -2.43e+03 0 0.481 0.289 0.289 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 221 +* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 89 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.8 -2.4 -2.44e+03 0.157 0 0 0 Target initStep - 1 -1.8 -2.4 -2.44e+03 0 0.157 0.0558 0.0558 Target eIoni + 0 3.56 -4.48 -2.44e+03 0.334 0 0 0 Target initStep + 1 3.57 -4.49 -2.44e+03 0 0.334 0.174 0.174 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 220, Parent ID = 186 +* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 90 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.878 -5.08 -2.44e+03 0.511 0 0 0 Target initStep - 1 4 -12.3 -2.44e+03 0 0.088 9.38 9.38 Target phot + 0 0.0478 -2.08 -2.44e+03 0.0279 0 0 0 Target initStep + 1 0.0477 -2.08 -2.44e+03 0 0.0279 0.00347 0.00347 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 186 +* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 91 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.878 -5.08 -2.44e+03 0.511 0 0 0 Target initStep - 1 -3.53 -1.14 -2.44e+03 0.358 0 5.1 5.1 Target compt - 2 -4.41 -1.07 -2.44e+03 0 0.088 0.883 5.98 Target phot + 0 -0.0771 1.58 -2.44e+03 0.216 0 0 0 Target initStep + 1 -0.0795 1.59 -2.44e+03 0 0.216 0.0913 0.0913 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 218, Parent ID = 186 +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 92 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.831 -5.06 -2.44e+03 0.114 0 0 0 Target initStep - 1 -0.893 -5.1 -2.44e+03 0 0.088 0.0764 0.0764 Target phot + 0 0.853 0.655 -2.44e+03 0.16 0 0 0 Target initStep + 1 0.857 0.656 -2.44e+03 0 0.16 0.0575 0.0575 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 218 +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 93 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.893 -5.1 -2.44e+03 0.0264 0 0 0 Target initStep - 1 -0.893 -5.1 -2.44e+03 0 0.0264 0.00316 0.00316 Target eIoni + 0 0.151 -1.74 -2.44e+03 0.0213 0 0 0 Target initStep + 1 0.151 -1.74 -2.44e+03 0 0.0213 0.00225 0.00225 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 219 +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 94 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.41 -1.07 -2.44e+03 0.27 0 0 0 Target initStep - 1 -4.42 -1.06 -2.44e+03 0 0.27 0.128 0.128 Target eIoni + 0 6.3 -5.5 -2.43e+03 0.133 0 0 0 Target initStep + 1 6.3 -5.5 -2.43e+03 0 0.133 0.0433 0.0433 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 219 +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 94 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.53 -1.14 -2.44e+03 0.153 0 0 0 Target initStep - 1 -3.53 -1.13 -2.44e+03 0 0.153 0.0539 0.0539 Target eIoni + 0 7.56 -7.62 -2.44e+03 0.202 0 0 0 Target initStep + 1 7.56 -7.62 -2.44e+03 0 0.202 0.0825 0.0825 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 220 +* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 94 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4 -12.3 -2.44e+03 0.423 0 0 0 Target initStep - 1 4 -12.4 -2.44e+03 0.0888 0.218 0.143 0.143 Target eBrem - 2 4 -12.4 -2.44e+03 0 0.0888 0.0227 0.165 Target eIoni + 0 5.5 -3.99 -2.44e+03 0.0881 0 0 0 Target initStep + 1 5.5 -3.99 -2.44e+03 0 0.0881 0.0224 0.0224 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 227, Parent ID = 223 +* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4 -12.4 -2.44e+03 0.116 0 0 0 Target initStep - 1 3.94 -12.4 -2.44e+03 0 0.088 0.0817 0.0817 Target phot + 0 -4.86 -0.00838 -2.44e+03 0.298 0 0 0 Target initStep + 1 -4.87 -0.00997 -2.44e+03 0 0.298 0.148 0.148 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 227 +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.94 -12.4 -2.44e+03 0.0284 0 0 0 Target initStep - 1 3.94 -12.4 -2.44e+03 0 0.0284 0.00356 0.00356 Target eIoni + 0 -4.25 0.198 -2.44e+03 0.125 0 0 0 Target initStep + 1 -4.25 0.2 -2.44e+03 0 0.125 0.039 0.039 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 96 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.97 4.04 -2.42e+03 16.5 0 0 0 Target initStep + 1 -2 4.14 -2.42e+03 15.4 0.955 0.773 0.773 Target eBrem + 2 -1.81 4.28 -2.42e+03 10.6 4.59 3.26 4.03 Target eBrem + 3 -1.86 4.42 -2.42e+03 9.77 0.428 0.383 4.41 Target eBrem + 4 -1.64 4.85 -2.42e+03 6.76 2.69 1.49 5.9 Target eBrem + 5 -1.73 4.77 -2.42e+03 6.04 0.162 0.137 6.04 Target eBrem + 6 -1.78 4.74 -2.42e+03 5.79 0.125 0.0675 6.11 Target eBrem + 7 -2.45 4.64 -2.42e+03 4.01 1.66 1.45 7.56 Target eBrem + 8 -2.42 5.09 -2.42e+03 1.39 2.62 2.01 9.57 Target eIoni + 9 -2.42 5.06 -2.42e+03 0 1.39 1.07 10.6 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 223, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.45 4.64 -2.42e+03 0.119 0 0 0 Target initStep + 1 -2.44 4.72 -2.42e+03 0 0.088 0.0787 0.0787 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 223 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.44 4.72 -2.42e+03 0.0307 0 0 0 Target initStep + 1 -2.44 4.72 -2.42e+03 0 0.0307 0.00405 0.00405 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 222, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.78 4.74 -2.42e+03 0.125 0 0 0 Target initStep + 1 -2.25 4.66 -2.42e+03 0 0.088 0.51 0.51 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 222 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.25 4.66 -2.42e+03 0.0367 0 0 0 Target initStep + 1 -2.25 4.66 -2.42e+03 0 0.0367 0.00539 0.00539 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 221, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.73 4.77 -2.42e+03 0.561 0 0 0 Target initStep + 1 -8.58 0.872 -2.42e+03 0.395 0 8.41 8.41 Target compt + 2 -11.1 1.19 -2.42e+03 0.265 0 2.63 11 Target compt + 3 -11.2 0.913 -2.42e+03 0 0.088 0.453 11.5 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 221 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.2 0.913 -2.42e+03 0.177 0 0 0 Target initStep + 1 -11.2 0.916 -2.42e+03 0 0.177 0.0677 0.0677 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 221 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.1 1.19 -2.42e+03 0.13 0 0 0 Target initStep + 1 -11.1 1.19 -2.42e+03 0 0.13 0.0415 0.0415 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 221 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -8.58 0.872 -2.42e+03 0.166 0 0 0 Target initStep + 1 -8.58 0.869 -2.42e+03 0 0.166 0.061 0.061 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 220, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.64 4.85 -2.42e+03 0.313 0 0 0 Target initStep + 1 -2.19 4.34 -2.42e+03 0.141 0 0.799 0.799 Target compt + 2 -2.17 4.37 -2.42e+03 0 0.088 0.0424 0.842 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 230, Parent ID = 220 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.17 4.37 -2.42e+03 0.0534 0 0 0 Target initStep + 1 -2.17 4.37 -2.42e+03 0 0.0534 0.00992 0.00992 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 220 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.19 4.34 -2.42e+03 0.171 0 0 0 Target initStep + 1 -2.2 4.33 -2.42e+03 0 0.171 0.0641 0.0641 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.86 4.42 -2.42e+03 0.382 0 0 0 Target initStep + 1 -1.78 4.58 -2.42e+03 0 0.088 0.379 0.379 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 219 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.78 4.58 -2.42e+03 0.294 0 0 0 Target initStep + 1 -1.78 4.58 -2.42e+03 0 0.294 0.145 0.145 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 218, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.81 4.28 -2.42e+03 0.225 0 0 0 Target initStep + 1 -1.82 4.3 -2.42e+03 0 0.088 0.0543 0.0543 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 218 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.82 4.3 -2.42e+03 0.137 0 0 0 Target initStep + 1 -1.82 4.3 -2.42e+03 0 0.137 0.045 0.045 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 217, Parent ID = 171 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2 4.14 -2.42e+03 0.107 0 0 0 Target initStep + 1 -1.96 4.16 -2.42e+03 0 0.088 0.211 0.211 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 217 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.96 4.16 -2.42e+03 0.0192 0 0 0 Target initStep + 1 -1.96 4.16 -2.42e+03 0 0.0192 0.00191 0.00191 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 216, Parent ID = 188 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.6 -3.4 -2.43e+03 0.307 0 0 0 Target initStep + 1 -11.4 -4.3 -2.43e+03 0 0.088 1.02 1.02 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 216 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.4 -4.3 -2.43e+03 0.219 0 0 0 Target initStep + 1 -11.4 -4.3 -2.43e+03 0 0.219 0.0936 0.0936 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.898 -8.04 -2.41e+03 0.511 0 0 0 Target initStep + 1 0.898 -8.08 -2.41e+03 0 0.088 0.055 0.055 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 215 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.898 -8.08 -2.41e+03 0.423 0 0 0 Target initStep + 1 0.907 -8.09 -2.41e+03 0 0.423 0.243 0.243 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 214, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.898 -8.04 -2.41e+03 0.511 0 0 0 Target initStep + 1 0.886 2.56 -2.42e+03 0.175 0 16.8 16.8 Target compt + 2 1.15 1.96 -2.42e+03 0.149 0 0.8 17.6 Target compt + 3 1.15 1.93 -2.42e+03 0 0.088 0.032 17.6 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 238, Parent ID = 214 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.15 1.93 -2.42e+03 0.061 0 0 0 Target initStep + 1 1.15 1.93 -2.42e+03 0 0.061 0.0123 0.0123 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 214 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.15 1.96 -2.42e+03 0.026 0 0 0 Target initStep + 1 1.15 1.96 -2.42e+03 0 0.026 0.00309 0.00309 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 214 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.886 2.56 -2.42e+03 0.336 0 0 0 Target initStep + 1 0.885 2.56 -2.42e+03 0 0.336 0.176 0.176 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 213, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.897 -8.04 -2.41e+03 0.248 0 0 0 Target initStep + 1 1.13 -8.82 -2.41e+03 0 0.088 1.45 1.45 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 239, Parent ID = 213 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.13 -8.82 -2.41e+03 0.16 0 0 0 Target initStep + 1 1.13 -8.82 -2.41e+03 0 0.16 0.0575 0.0575 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 212, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.831 -7.99 -2.41e+03 0.114 0 0 0 Target initStep + 1 1.01 -8.05 -2.41e+03 0 0.088 0.198 0.198 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 212 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.01 -8.05 -2.41e+03 0.0257 0 0 0 Target initStep + 1 1.01 -8.05 -2.41e+03 0 0.0257 0.00304 0.00304 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 211, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.534 -8.11 -2.41e+03 0.416 0 0 0 Target initStep + 1 0.505 -8.06 -2.41e+03 0.405 0 0.191 0.191 Target compt + 2 0.85 -6.52 -2.41e+03 0.259 0 4.04 4.23 Target compt + 3 1.34 -7.2 -2.41e+03 0 0.088 0.998 5.23 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 211 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.34 -7.2 -2.41e+03 0.171 0 0 0 Target initStep + 1 1.34 -7.2 -2.41e+03 0 0.171 0.064 0.064 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 211 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.85 -6.52 -2.41e+03 0.146 0 0 0 Target initStep + 1 0.849 -6.52 -2.41e+03 0 0.146 0.0498 0.0498 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 211 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.505 -8.06 -2.41e+03 0.0114 0 0 0 Target initStep + 1 0.505 -8.06 -2.41e+03 0 0.0114 0.000857 0.000857 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 210, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.475 -8.09 -2.41e+03 6.59 0 0 0 Target initStep + 1 2.24 -8.66 -2.41e+03 0 0 5.57 5.57 Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 210 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.24 -8.66 -2.41e+03 1.11 0 0 0 Target initStep + 1 2.27 -8.66 -2.41e+03 0.291 0.688 0.467 0.467 Target eBrem + 2 2.27 -8.67 -2.41e+03 0 0.291 0.142 0.609 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 246, Parent ID = 244 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.27 -8.66 -2.41e+03 0.128 0 0 0 Target initStep + 1 2.29 -8.77 -2.41e+03 0 0.088 0.137 0.137 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 246 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.29 -8.77 -2.41e+03 0.04 0 0 0 Target initStep + 1 2.29 -8.77 -2.41e+03 0 0.04 0.0062 0.0062 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 208, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.442 -7.97 -2.41e+03 0.105 0 0 0 Target initStep + 1 0.442 -8.02 -2.41e+03 0 0.088 0.198 0.198 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 248, Parent ID = 208 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.442 -8.02 -2.41e+03 0.0174 0 0 0 Target initStep + 1 0.442 -8.02 -2.41e+03 0 0.0174 0.00163 0.00163 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 207, Parent ID = 144 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.445 -7.94 -2.41e+03 0.15 0 0 0 Target initStep + 1 0.411 -8.14 -2.41e+03 0.106 0 0.693 0.693 Target compt + 2 0.415 -8.14 -2.41e+03 0 0.088 0.00508 0.698 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 250, Parent ID = 207 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.415 -8.14 -2.41e+03 0.0184 0 0 0 Target initStep + 1 0.415 -8.14 -2.41e+03 0 0.0184 0.00179 0.00179 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 207 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.411 -8.14 -2.41e+03 0.0434 0 0 0 Target initStep + 1 0.411 -8.14 -2.41e+03 0 0.0434 0.00707 0.00707 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 206, Parent ID = 157 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.8 -4.69 -2.43e+03 0.511 0 0 0 Target initStep + 1 3.4 -13.3 -2.42e+03 0 0.088 10.9 10.9 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 251, Parent ID = 206 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 3.4 -13.3 -2.42e+03 0.423 0 0 0 Target initStep + 1 3.4 -13.3 -2.42e+03 0 0.423 0.243 0.243 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 205, Parent ID = 157 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.8 -4.69 -2.43e+03 0.511 0 0 0 Target initStep + 1 5.99 2.64 -2.43e+03 0 0.088 9.23 9.23 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 205 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.99 2.64 -2.43e+03 0.423 0 0 0 Target initStep + 1 6.01 2.64 -2.43e+03 0 0.423 0.243 0.243 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 204, Parent ID = 172 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.64 3.99 -2.42e+03 0.511 0 0 0 Target initStep + 1 -7.67 -0.682 -2.42e+03 0.254 0 9.6 9.6 Target compt + 2 -7.66 -0.724 -2.42e+03 0 0.088 0.0503 9.65 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 254, Parent ID = 204 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.66 -0.724 -2.42e+03 0.166 0 0 0 Target initStep + 1 -7.66 -0.728 -2.42e+03 0 0.166 0.0612 0.0612 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 204 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.67 -0.682 -2.42e+03 0.257 0 0 0 Target initStep + 1 -7.68 -0.683 -2.42e+03 0 0.257 0.119 0.119 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 203, Parent ID = 172 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.64 3.99 -2.42e+03 0.511 0 0 0 Target initStep + 1 2.95 7.54 -2.41e+03 0 0.088 7.3 7.3 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 255, Parent ID = 203 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.95 7.54 -2.41e+03 0.423 0 0 0 Target initStep + 1 2.95 7.55 -2.41e+03 0 0.423 0.243 0.243 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 202, Parent ID = 172 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.73 4.07 -2.42e+03 3 0 0 0 Target initStep + 1 -0.158 2.27 -2.42e+03 0.915 0 2.71 2.71 Target compt + 2 15.9 6.43 -2.4e+03 0.915 0 23.2 25.9 Tracker Transportation + 3 2.32e+03 604 -63.2 0.915 0 3.34e+03 3.36e+03 World Transportation + 4 2.94e+03 765 562 0.915 0 893 4.26e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 201, Parent ID = 172 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.99 4.09 -2.42e+03 0.3 0 0 0 Target initStep + 1 -0.452 3.94 -2.41e+03 0 0.088 3.64 3.64 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 245, Parent ID = 210 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.24 -8.66 -2.41e+03 4.46 0 0 0 Target initStep + 1 2.41 -8.75 -2.41e+03 2.23 2.24 1.93 1.93 Target eBrem + 2 2.47 -8.84 -2.41e+03 1.53 0.5 0.449 2.38 Target eBrem + 3 2.53 -8.9 -2.41e+03 0 1.53 1.18 3.57 Target eIoni + 4 2.53 -8.9 -2.41e+03 0 0 0 3.57 Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 257, Parent ID = 201 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.452 3.94 -2.41e+03 0.212 0 0 0 Target initStep + 1 -0.453 3.94 -2.41e+03 0 0.212 0.0889 0.0889 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 256, Parent ID = 202 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.158 2.27 -2.42e+03 2.09 0 0 0 Target initStep + 1 -0.0837 2.13 -2.42e+03 0.433 1.52 1.34 1.34 Target eBrem + 2 -0.0956 2.12 -2.42e+03 0 0.433 0.251 1.59 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 261, Parent ID = 256 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0837 2.13 -2.42e+03 0.133 0 0 0 Target initStep + 1 -0.142 2.18 -2.42e+03 0 0.088 0.0928 0.0928 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 262, Parent ID = 261 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.142 2.18 -2.42e+03 0.0445 0 0 0 Target initStep + 1 -0.142 2.18 -2.42e+03 0 0.0445 0.00738 0.00738 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 260, Parent ID = 245 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.53 -8.9 -2.41e+03 0.511 0 0 0 Target initStep + 1 1.33 -7.91 -2.4e+03 0 0.088 1.71 1.71 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 259, Parent ID = 245 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.53 -8.9 -2.41e+03 0.511 0 0 0 Target initStep + 1 4.46 -10.5 -2.41e+03 0.335 0 2.75 2.75 Target compt + 2 9.3 -11.5 -2.4e+03 0 0.088 5.79 8.54 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 258, Parent ID = 245 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.47 -8.84 -2.41e+03 0.197 0 0 0 Target initStep + 1 3.25 -8.71 -2.41e+03 0 0.088 0.887 0.887 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 266, Parent ID = 258 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 3.25 -8.71 -2.41e+03 0.109 0 0 0 Target initStep + 1 3.25 -8.71 -2.41e+03 0 0.109 0.0313 0.0313 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 265, Parent ID = 259 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 9.3 -11.5 -2.4e+03 0.247 0 0 0 Target initStep + 1 9.3 -11.5 -2.4e+03 0 0.247 0.112 0.112 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 264, Parent ID = 259 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.46 -10.5 -2.41e+03 0.176 0 0 0 Target initStep + 1 4.46 -10.5 -2.41e+03 0 0.176 0.0669 0.0669 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 263, Parent ID = 260 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.33 -7.91 -2.4e+03 0.423 0 0 0 Target initStep + 1 1.32 -7.89 -2.4e+03 0 0.423 0.243 0.243 Target eIoni >>> Event: 0 0 hits stored in this event ### Run 1 starts. @@ -2913,4506 +3165,595 @@ 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 -2.94e+03 1e+06 0 0 0 World initStep - 1 0 0 -2.68e+03 1e+06 0.0495 265 265 World muIoni - 2 -4.15e-06 2.26e-05 -2.57e+03 1e+06 0.0224 105 370 World muIoni - 3 -2.75e-06 2.95e-05 -2.54e+03 1e+06 0.00531 33.9 404 World muIoni - 4 -7.56e-06 5.18e-05 -2.45e+03 1e+06 0.0121 86.5 490 Target Transportation - 5 -7.48e-06 5.19e-05 -2.45e+03 1e+06 0.589 0.41 490 Target muPairProd - 6 6.06e-05 6.38e-06 -2.44e+03 1e+06 6.3 5.14 496 Target muIoni - 7 0.000141 -6.58e-05 -2.44e+03 1e+06 4.42 3.48 499 Target muIoni - 8 0.000481 -0.000216 -2.43e+03 1e+06 10.4 7.99 507 Target muIoni - 9 0.00067 -0.000219 -2.43e+03 1e+06 7.94 6.29 513 Target muIoni - 10 0.00151 -0.000209 -2.41e+03 1e+06 26 20.2 534 Target muIoni - 11 0.00157 -0.00028 -2.4e+03 1e+06 9.63 6.46 540 Tracker Transportation - 12 0.000824 -0.00135 -2.3e+03 1e+06 0.0221 100 640 Tracker StepLimiter - 13 0.0003 -0.00211 -2.23e+03 1e+06 0.0141 70.1 710 Tracker muIoni - 14 -0.000482 -0.0032 -2.13e+03 1e+06 0.0198 100 810 Tracker StepLimiter - 15 -0.000733 -0.00354 -2.1e+03 1e+06 0.0065 32.1 842 Tracker muIoni - 16 -0.000857 -0.00371 -2.08e+03 1e+06 0.0032 16.3 859 Tracker muIoni - 17 -0.00159 -0.00479 -1.98e+03 1e+06 0.0169 100 959 Tracker StepLimiter - 18 -0.0023 -0.00587 -1.88e+03 1e+06 0.017 100 1.06e+03 Tracker StepLimiter - 19 -0.00283 -0.00665 -1.81e+03 1e+06 0.0142 72.3 1.13e+03 Tracker muIoni - 20 -0.00357 -0.0077 -1.71e+03 1e+06 0.0178 100 1.23e+03 Tracker StepLimiter - 21 -0.00364 -0.00779 -1.7e+03 1e+06 0.00154 9.11 1.24e+03 Chamber_PV Transportation - 22 -0.00367 -0.00784 -1.7e+03 1e+06 0.00404 4.72 1.24e+03 Chamber_PV muIoni - 23 -0.0038 -0.00801 -1.68e+03 1e+06 0.0174 16.7 1.26e+03 Chamber_PV muIoni - 24 -0.00443 -0.00886 -1.59e+03 1e+06 0.0651 84.5 1.35e+03 Chamber_PV muIoni - 25 -0.00455 -0.00902 -1.58e+03 1e+06 0.01 16.1 1.36e+03 Chamber_PV muIoni - 26 -0.00456 -0.00903 -1.58e+03 1e+06 0.000886 1.18 1.36e+03 Chamber_PV muIoni - 27 -0.0047 -0.00921 -1.56e+03 1e+06 0.0113 18 1.38e+03 Chamber_PV muIoni - 28 -0.00477 -0.0093 -1.55e+03 1e+06 0.0101 9.45 1.39e+03 Chamber_PV muIoni - 29 -0.00489 -0.00945 -1.53e+03 1e+06 0.00944 15.1 1.41e+03 Chamber_PV muIoni - 30 -0.00497 -0.00955 -1.52e+03 1e+06 0.00742 11.1 1.42e+03 Chamber_PV muIoni - 31 -0.00514 -0.00977 -1.5e+03 1e+06 0.0142 23.1 1.44e+03 Tracker Transportation - 32 -0.00525 -0.00992 -1.48e+03 1e+06 0.00223 16.3 1.46e+03 Tracker muIoni - 33 -0.00541 -0.0101 -1.46e+03 1e+06 0.00357 22.7 1.48e+03 Tracker muIoni - 34 -0.00562 -0.0104 -1.43e+03 1e+06 0.00651 29.7 1.51e+03 Tracker muIoni - 35 -0.00577 -0.0106 -1.41e+03 1e+06 0.00499 22.2 1.53e+03 Tracker muIoni - 36 -0.00599 -0.0109 -1.38e+03 1e+06 0.00594 30.3 1.56e+03 Tracker muIoni - 37 -0.00647 -0.0115 -1.31e+03 1e+06 0.0134 68.4 1.63e+03 Tracker muIoni - 38 -0.00671 -0.0118 -1.28e+03 1e+06 0.00656 33.1 1.66e+03 Tracker muIoni - 39 -0.00744 -0.0127 -1.18e+03 1e+06 0.0175 100 1.76e+03 Tracker StepLimiter - 40 -0.00822 -0.0136 -1.08e+03 1e+06 0.0177 100 1.86e+03 Tracker StepLimiter - 41 -0.00846 -0.0138 -1.05e+03 1e+06 0.00476 30.1 1.89e+03 Tracker muIoni - 42 -0.00896 -0.0144 -984 1e+06 0.0118 63.1 1.96e+03 Tracker muIoni - 43 -0.00912 -0.0146 -964 1e+06 0.00318 20.1 1.98e+03 Tracker muIoni - 44 -0.00962 -0.0152 -900 1e+06 0.011 64 2.04e+03 Chamber_PV Transportation - 45 -0.00976 -0.0153 -883 1e+06 0.0122 16.6 2.06e+03 Chamber_PV muIoni - 46 -0.01 -0.0156 -851 1e+06 0.023 32.8 2.09e+03 Chamber_PV muIoni - 47 -0.0103 -0.0159 -818 1e+06 0.0275 32.5 2.12e+03 Chamber_PV muIoni - 48 -0.0106 -0.0162 -790 1e+06 0.0151 27.8 2.15e+03 Chamber_PV muIoni - 49 -0.0114 -0.017 -700 1e+06 0.0611 90.3 2.24e+03 Tracker Transportation - 50 -0.0122 -0.0179 -615 1e+06 0.0175 85 2.33e+03 Tracker muIoni - 51 -0.0131 -0.0188 -515 1e+06 0.0179 100 2.43e+03 Tracker StepLimiter - 52 -0.014 -0.0198 -415 1e+06 0.0208 100 2.53e+03 Tracker StepLimiter - 53 -0.0148 -0.0207 -326 1e+06 0.0171 89.3 2.61e+03 Tracker muIoni - 54 -0.0149 -0.0208 -317 1e+06 0.00144 8.74 2.62e+03 Tracker muIoni - 55 -0.0152 -0.0212 -279 1e+06 0.0095 38.3 2.66e+03 Tracker muIoni - 56 -0.0161 -0.0222 -179 1e+06 0.0167 100 2.76e+03 Tracker StepLimiter - 57 -0.0162 -0.0224 -164 1e+06 0.00284 14.9 2.78e+03 Tracker muIoni - 58 -0.0168 -0.023 -100 1e+06 0.013 63.6 2.84e+03 Chamber_PV Transportation - 59 -0.0177 -0.0241 5.82 1e+06 0.0739 106 2.95e+03 Chamber_PV muIoni - 60 -0.0179 -0.0244 30 1e+06 0.02 24.2 2.97e+03 Chamber_PV muIoni - 61 -0.0184 -0.0248 82.7 1e+06 0.0353 52.7 3.02e+03 Chamber_PV muIoni - 62 -0.0184 -0.0248 83.6 1e+06 0.000336 0.85 3.02e+03 Chamber_PV muIoni - 63 -0.0185 -0.0249 94.7 1e+06 0.00542 11.1 3.03e+03 Chamber_PV muIoni - 64 -0.0185 -0.025 100 1e+06 0.00369 5.35 3.04e+03 Tracker Transportation - 65 -0.0188 -0.0253 138 1e+06 0.00809 37.6 3.08e+03 Tracker muIoni - 66 -0.0197 -0.0262 238 1e+06 0.0193 100 3.18e+03 Tracker StepLimiter - 67 -0.02 -0.0265 265 1e+06 0.00614 27.6 3.21e+03 Tracker muIoni - 68 -0.0201 -0.0266 278 1e+06 0.0034 13.2 3.22e+03 Tracker muIoni - 69 -0.0203 -0.0268 298 1e+06 0.00229 20 3.24e+03 Tracker muIoni - 70 -0.0206 -0.0271 332 1e+06 0.00748 33.4 3.27e+03 Tracker muIoni - 71 -0.0214 -0.028 432 1e+06 0.0226 100 3.37e+03 Tracker StepLimiter - 72 -0.0216 -0.0282 448 1e+06 0.00283 16 3.39e+03 Tracker muIoni - 73 -0.0223 -0.0289 525 1e+06 0.00938 77.2 3.47e+03 Tracker muIoni - 74 -0.0231 -0.0298 625 1e+06 0.0194 100 3.57e+03 Tracker StepLimiter - 75 -0.0234 -0.0301 661 1e+06 0.00511 35.6 3.6e+03 Tracker muIoni - 76 -0.0238 -0.0305 700 1e+06 0.00745 39.4 3.64e+03 Chamber_PV Transportation - 77 -0.024 -0.0307 721 1e+06 0.0106 21.4 3.66e+03 Chamber_PV muIoni - 78 -0.0241 -0.0308 739 1e+06 0.016 18.1 3.68e+03 Chamber_PV muIoni - 79 -0.0244 -0.0311 768 1e+06 0.023 28.7 3.71e+03 Chamber_PV muIoni - 80 -0.0244 -0.0312 778 1e+06 0.00661 9.85 3.72e+03 Chamber_PV muIoni - 81 -0.0245 -0.0312 778 1e+06 5.94e-05 0.469 3.72e+03 Chamber_PV muIoni - 82 -0.0246 -0.0314 802 1e+06 0.0164 23.5 3.74e+03 Chamber_PV muIoni - 83 -0.0253 -0.032 875 1e+06 0.0498 72.9 3.81e+03 Chamber_PV muIoni - 84 -0.0255 -0.0322 893 1e+06 0.0158 18 3.83e+03 Chamber_PV muIoni - 85 -0.0255 -0.0322 896 1e+06 0.00166 3.51 3.84e+03 Chamber_PV muIoni - 86 -0.0255 -0.0322 900 1e+06 0.00124 3.68 3.84e+03 Tracker Transportation - 87 -0.0265 -0.0331 1e+03 1e+06 0.0195 100 3.94e+03 Tracker StepLimiter - 88 -0.0268 -0.0334 1.03e+03 1e+06 0.00731 33.2 3.97e+03 Tracker muIoni - 89 -0.0276 -0.0342 1.12e+03 1e+06 0.0172 84.3 4.06e+03 Tracker muIoni - 90 -0.0281 -0.0347 1.17e+03 1e+06 0.014 54.4 4.11e+03 Tracker muIoni - 91 -0.0282 -0.0348 1.18e+03 1e+06 0.00207 10.9 4.12e+03 Tracker muIoni - 92 -0.0287 -0.0352 1.24e+03 1e+06 0.0133 53.1 4.18e+03 Tracker muIoni - 93 -0.0288 -0.0354 1.25e+03 1e+06 0.00283 14.1 4.19e+03 Tracker muIoni - 94 -0.029 -0.0355 1.26e+03 1e+06 0.00213 14.5 4.2e+03 Tracker muIoni - 95 -0.0293 -0.0358 1.3e+03 1e+06 0.00796 31.1 4.24e+03 Tracker muIoni - 96 -0.0302 -0.0367 1.4e+03 1e+06 0.0155 100 4.34e+03 Tracker StepLimiter - 97 -0.0307 -0.0372 1.45e+03 1e+06 0.00831 57 4.39e+03 Tracker muIoni - 98 -0.0312 -0.0376 1.5e+03 1e+06 0.0114 47.3 4.44e+03 Chamber_PV Transportation - 99 -0.0328 -0.0391 1.67e+03 1e+06 0.169 171 4.61e+03 Chamber_PV muIoni - 100 -0.0331 -0.0394 1.7e+03 1e+06 0.0185 28.8 4.64e+03 Tracker Transportation - 101 -0.0342 -0.0403 1.8e+03 1e+06 0.0178 100 4.74e+03 Tracker StepLimiter - 102 -0.0344 -0.0405 1.82e+03 1e+06 0.00294 19.7 4.76e+03 Tracker muIoni - 103 -0.0351 -0.041 1.87e+03 1e+06 0.0115 55 4.81e+03 Tracker muIoni - 104 -0.0362 -0.0419 1.97e+03 1e+06 0.0213 100 4.91e+03 Tracker StepLimiter - 105 -0.0373 -0.0429 2.07e+03 1e+06 0.0206 100 5.01e+03 Tracker StepLimiter - 106 -0.0383 -0.0438 2.17e+03 1e+06 0.0158 100 5.11e+03 Tracker StepLimiter - 107 -0.0394 -0.0447 2.27e+03 1e+06 0.0194 100 5.21e+03 Tracker StepLimiter - 108 -0.0403 -0.0455 2.36e+03 1e+06 0.0177 86.5 5.3e+03 Tracker muIoni - 109 -0.0408 -0.0459 2.4e+03 1e+06 0.00483 38.9 5.34e+03 World Transportation - 110 -0.0415 -0.0465 2.47e+03 1e+06 0.0147 70.4 5.41e+03 World muIoni - 111 -0.0417 -0.0467 2.49e+03 1e+06 0.00595 19.7 5.43e+03 World muIoni - 112 -0.0418 -0.0468 2.5e+03 1e+06 0.00162 8.67 5.44e+03 World muIoni - 113 -0.0425 -0.0474 2.56e+03 1e+06 0.0114 62.7 5.5e+03 World muIoni - 114 -0.0431 -0.048 2.63e+03 1e+06 0.0127 65.8 5.57e+03 World muIoni - 115 -0.0437 -0.0484 2.68e+03 1e+06 0.00925 52.9 5.62e+03 World muIoni - 116 -0.0463 -0.0507 2.93e+03 1e+06 0.0506 249 5.87e+03 World muIoni - 117 -0.0465 -0.0508 2.94e+03 1e+06 0.00339 11.2 5.88e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -0.0463 -0.0507 2.93e+03 0.00165 0 0 0 World initStep - 1 -0.065 -0.0984 2.93e+03 0 0.00165 0.12 0.12 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 -0.0437 -0.0484 2.68e+03 0.00101 0 0 0 World initStep - 1 -0.0291 -0.0299 2.68e+03 0 0.00101 0.0581 0.0581 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 -0.0431 -0.048 2.63e+03 0.00296 0 0 0 World initStep - 1 0.0903 -0.0209 2.63e+03 0 0.00296 0.307 0.307 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 -0.0425 -0.0474 2.56e+03 0.00194 0 0 0 World initStep - 1 0.00383 0.00073 2.56e+03 0 0.00194 0.154 0.154 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 -0.0418 -0.0468 2.5e+03 0.00104 0 0 0 World initStep - 1 -0.0609 -0.0315 2.5e+03 0 0.00104 0.0602 0.0602 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 -0.0417 -0.0467 2.49e+03 0.00103 0 0 0 World initStep - 1 -0.021 -0.0343 2.49e+03 0 0.00103 0.0594 0.0594 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 -0.0415 -0.0465 2.47e+03 0.00456 0 0 0 World initStep - 1 0.213 -0.185 2.47e+03 0 0.00456 0.651 0.651 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 -0.0403 -0.0455 2.36e+03 0.00102 0 0 0 Tracker initStep - 1 -0.0428 -0.0219 2.36e+03 0 0.00102 0.0586 0.0586 Tracker 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 -0.0351 -0.041 1.87e+03 0.00346 0 0 0 Tracker initStep - 1 -0.206 -0.0915 1.87e+03 0 0.00346 0.402 0.402 Tracker 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 -0.0344 -0.0405 1.82e+03 0.00838 0 0 0 Tracker initStep - 1 0.328 0.713 1.82e+03 0.00329 0.00509 1.57 1.57 Tracker eIoni - 2 0.429 0.602 1.82e+03 0 0.00329 0.368 1.94 Tracker 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 -0.0328 -0.0391 1.67e+03 0.00216 0 0 0 Chamber_PV initStep - 1 -0.0374 -0.0532 1.67e+03 0 0.00216 0.115 0.115 Chamber_PV 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 -0.0307 -0.0372 1.45e+03 0.00113 0 0 0 Tracker initStep - 1 -0.0385 -0.0639 1.45e+03 0 0.00113 0.0677 0.0677 Tracker 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 -0.0293 -0.0358 1.3e+03 0.00194 0 0 0 Tracker initStep - 1 0.0276 -0.0707 1.3e+03 0 0.00194 0.154 0.154 Tracker 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 -0.029 -0.0355 1.26e+03 0.00434 0 0 0 Tracker initStep - 1 -0.165 -0.264 1.26e+03 0 0.00434 0.598 0.598 Tracker 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 -0.0288 -0.0354 1.25e+03 0.00139 0 0 0 Tracker initStep - 1 -0.0528 -0.00477 1.25e+03 0 0.00139 0.0922 0.0922 Tracker 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 -0.0287 -0.0352 1.24e+03 0.00376 0 0 0 Tracker initStep - 1 -0.127 -0.217 1.24e+03 0 0.00376 0.464 0.464 Tracker 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 -0.0282 -0.0348 1.18e+03 0.00472 0 0 0 Tracker initStep - 1 0.0452 0.264 1.18e+03 0 0.00472 0.692 0.692 Tracker 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 -0.0281 -0.0347 1.17e+03 0.00119 0 0 0 Tracker initStep - 1 -0.0179 -0.0633 1.17e+03 0 0.00119 0.0735 0.0735 Tracker 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 -0.0276 -0.0342 1.12e+03 0.00112 0 0 0 Tracker initStep - 1 -0.0456 -0.0553 1.12e+03 0 0.00112 0.0675 0.0675 Tracker 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 -0.0268 -0.0334 1.03e+03 0.00349 0 0 0 Tracker initStep - 1 -0.197 -0.0969 1.03e+03 0 0.00349 0.409 0.409 Tracker 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 -0.0255 -0.0322 896 0.0016 0 0 0 Chamber_PV initStep - 1 -0.0348 -0.0277 896 0 0.0016 0.0769 0.0769 Chamber_PV 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 -0.0255 -0.0322 893 0.00388 0 0 0 Chamber_PV initStep - 1 -0.0421 -0.0604 893 0 0.00388 0.266 0.266 Chamber_PV 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 -0.0253 -0.032 875 0.00341 0 0 0 Chamber_PV initStep - 1 -0.0106 -0.00863 875 0 0.00341 0.22 0.22 Chamber_PV 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 -0.0246 -0.0314 802 0.00218 0 0 0 Chamber_PV initStep - 1 -0.0285 -0.0458 802 0 0.00218 0.117 0.117 Chamber_PV 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 -0.0245 -0.0312 778 0.00229 0 0 0 Chamber_PV initStep - 1 -0.0262 -0.0152 778 0 0.00229 0.126 0.126 Chamber_PV 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 -0.0244 -0.0312 778 0.00493 0 0 0 Chamber_PV initStep - 1 -0.0614 -0.00338 778 0 0.00493 0.385 0.385 Chamber_PV 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 -0.0244 -0.0311 768 0.0732 0 0 0 Chamber_PV initStep - 1 -2.69 -0.425 769 0.0606 0.00682 6.39 6.39 Chamber_PV eIoni - 2 -4.69 0.446 769 0.0529 0.00592 6.44 12.8 Chamber_PV eIoni - 3 -4.72 -0.866 768 0.048 0.00301 4.92 17.8 Chamber_PV eIoni - 4 -4.37 0.301 767 0.0355 0.0125 5.33 23.1 Chamber_PV eIoni - 5 -4.43 0.329 767 0.0282 9.17e-05 0.117 23.2 Chamber_PV eIoni - 6 -4.8 -0.000693 767 0.0215 0.00667 2.97 26.2 Chamber_PV eIoni - 7 -4.73 0.194 767 0.0138 0.00771 2.34 28.5 Chamber_PV eIoni - 8 -4.8 -0.0012 767 0.00765 0.0031 0.883 29.4 Chamber_PV eIoni - 9 -4.82 0.0601 767 0 0.00765 0.783 30.2 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.8 -0.0012 767 0.00304 0 0 0 Chamber_PV initStep - 1 -4.77 0.00368 767 0 0.00304 0.186 0.186 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.43 0.329 767 0.00727 0 0 0 Chamber_PV initStep - 1 -4.38 0.339 767 0.00415 0.00087 0.162 0.162 Chamber_PV eIoni - 2 -4.4 0.313 767 0 0.00415 0.294 0.456 Chamber_PV 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 -4.38 0.339 767 0.00225 0 0 0 Chamber_PV initStep - 1 -4.39 0.345 767 0 0.00225 0.122 0.122 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.72 -0.866 768 0.00188 0 0 0 Chamber_PV initStep - 1 -4.74 -0.861 768 0 0.00188 0.0953 0.0953 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.69 0.446 769 0.00179 0 0 0 Chamber_PV initStep - 1 -4.68 0.442 769 0 0.00179 0.0895 0.0895 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.69 -0.425 769 0.00577 0 0 0 Chamber_PV initStep - 1 -2.7 -0.441 769 0.00289 9.64e-05 0.0285 0.0285 Chamber_PV eIoni - 2 -2.69 -0.454 769 0 0.00289 0.173 0.202 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 86 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.7 -0.441 769 0.00278 0 0 0 Chamber_PV initStep - 1 -2.69 -0.451 769 0 0.00278 0.164 0.164 Chamber_PV 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 -0.0241 -0.0308 739 0.00214 0 0 0 Chamber_PV initStep - 1 -0.0235 -0.0162 739 0 0.00214 0.114 0.114 Chamber_PV 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 -0.024 -0.0307 721 0.0188 0 0 0 Chamber_PV initStep - 1 -0.0477 -0.00147 721 0.0172 0.000117 0.04 0.04 Chamber_PV eIoni - 2 -0.0939 0.297 721 0.0112 0.00608 1.97 2.01 Chamber_PV eIoni - 3 0.00623 0.339 721 0.00521 0.00201 0.251 2.26 Chamber_PV eIoni - 4 -0.0224 0.317 721 0.00119 0.00401 0.35 2.61 Chamber_PV eIoni - 5 -0.0163 0.32 721 0 0.00119 0.052 2.66 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00623 0.339 721 0.00394 0 0 0 Chamber_PV initStep - 1 0.000679 0.313 721 0 0.00394 0.272 0.272 Chamber_PV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0477 -0.00147 721 0.00147 0 0 0 Chamber_PV initStep - 1 -0.0546 -0.0037 721 0 0.00147 0.0685 0.0685 Chamber_PV 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 -0.0234 -0.0301 661 0.00113 0 0 0 Tracker initStep - 1 0.0012 -0.043 661 0 0.00113 0.0676 0.0676 Tracker 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 -0.0223 -0.0289 525 0.00985 0 0 0 Tracker initStep - 1 0.0475 -0.736 525 0.00617 0.00141 0.906 0.906 Tracker eIoni - 2 0.283 -1.14 525 0 0.00617 1.1 2.01 Tracker eIoni - -********************************************************************************************************* -* 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 0.0475 -0.736 525 0.00227 0 0 0 Tracker initStep - 1 -0.0113 -0.787 525 0 0.00227 0.198 0.198 Tracker 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 -0.0216 -0.0282 448 0.00247 0 0 0 Tracker initStep - 1 -0.0813 -0.108 448 0 0.00247 0.227 0.227 Tracker 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 -0.0206 -0.0271 332 0.00183 0 0 0 Tracker initStep - 1 -0.0528 0.0245 332 0 0.00183 0.141 0.141 Tracker eIoni + 1 0 0 -2.86e+03 1e+06 0.0143 81.9 81.9 World muIoni + 2 -9.34e-06 2.29e-06 -2.77e+03 1e+06 0.019 87.9 170 World muIoni + 3 -3.71e-05 2.94e-05 -2.45e+03 1e+06 0.0623 320 490 Target Transportation + 4 -3.7e-05 2.95e-05 -2.45e+03 1e+06 0.776 0.605 491 Target CoulombScat + 5 5.35e-05 3.62e-05 -2.45e+03 1e+06 1.81 1.45 492 Target muIoni + 6 0.00265 0.000451 -2.41e+03 1e+06 60.3 41.3 533 Target muIoni + 7 0.00284 0.000454 -2.4e+03 1e+06 2.19 1.72 535 Target muIoni + 8 0.00333 0.000387 -2.4e+03 1e+06 6.62 4.94 540 Tracker Transportation + 9 0.0116 -0.00111 -2.3e+03 1e+06 0.021 100 640 Tracker StepLimiter + 10 0.0197 -0.00259 -2.2e+03 1e+06 0.0204 96.9 737 Tracker muIoni + 11 0.028 -0.00408 -2.1e+03 1e+06 0.0194 100 837 Tracker StepLimiter + 12 0.029 -0.00427 -2.09e+03 1e+06 0.00358 13.1 850 Tracker muIoni + 13 0.0373 -0.00577 -1.99e+03 1e+06 0.0194 100 950 Tracker StepLimiter + 14 0.0456 -0.00726 -1.89e+03 1e+06 0.0215 100 1.05e+03 Tracker StepLimiter + 15 0.0485 -0.00778 -1.86e+03 1e+06 0.00659 34.4 1.08e+03 Tracker muIoni + 16 0.0568 -0.00929 -1.76e+03 1e+06 0.0188 100 1.18e+03 Tracker StepLimiter + 17 0.0614 -0.0102 -1.7e+03 1e+06 0.0122 55.6 1.24e+03 Chamber_PV Transportation + 18 0.0723 -0.0122 -1.57e+03 1e+06 0.0883 131 1.37e+03 Chamber_PV muIoni + 19 0.0729 -0.0123 -1.56e+03 1e+06 0.00273 7.12 1.38e+03 Chamber_PV muIoni + 20 0.0757 -0.0129 -1.53e+03 1e+06 0.0233 33.7 1.41e+03 Chamber_PV muIoni + 21 0.078 -0.0133 -1.5e+03 1e+06 0.0162 27.7 1.44e+03 Tracker Transportation + 22 0.0783 -0.0134 -1.5e+03 1e+06 0.000318 3.75 1.44e+03 Tracker muIoni + 23 0.0866 -0.0149 -1.4e+03 1e+06 0.0222 100 1.54e+03 Tracker StepLimiter + 24 0.087 -0.015 -1.39e+03 1e+06 0.00118 5.28 1.55e+03 Tracker muIoni + 25 0.0953 -0.0166 -1.29e+03 1e+06 0.0197 100 1.65e+03 Tracker StepLimiter + 26 0.103 -0.018 -1.2e+03 1e+06 0.0177 89.4 1.74e+03 Tracker muIoni + 27 0.111 -0.0195 -1.1e+03 1e+06 0.0174 100 1.84e+03 Tracker StepLimiter + 28 0.113 -0.0199 -1.07e+03 1e+06 0.00662 29.4 1.87e+03 Tracker muIoni + 29 0.122 -0.0215 -972 1e+06 0.0163 100 1.97e+03 Tracker StepLimiter + 30 0.125 -0.0221 -933 1e+06 0.00768 39.1 2.01e+03 Tracker muIoni + 31 0.126 -0.0223 -921 1e+06 0.00225 11.9 2.02e+03 Tracker muIoni + 32 0.128 -0.0226 -900 1e+06 0.00234 21.1 2.04e+03 Chamber_PV Transportation + 33 0.133 -0.0236 -834 1e+06 0.0362 65.7 2.11e+03 Chamber_PV muIoni + 34 0.142 -0.0254 -723 1e+06 0.0725 111 2.22e+03 Chamber_PV muIoni + 35 0.144 -0.0257 -704 1e+06 0.0117 18.7 2.24e+03 Chamber_PV muIoni + 36 0.144 -0.0258 -700 1e+06 0.00194 4.17 2.24e+03 Tracker Transportation + 37 0.145 -0.0259 -693 1e+06 0.000857 7.2 2.25e+03 Tracker muIoni + 38 0.153 -0.0277 -593 1e+06 0.0177 100 2.35e+03 Tracker StepLimiter + 39 0.156 -0.0283 -555 1e+06 0.0067 38.1 2.39e+03 Tracker muIoni + 40 0.164 -0.03 -455 1e+06 0.0196 100 2.49e+03 Tracker StepLimiter + 41 0.167 -0.0305 -426 1e+06 0.0066 28.4 2.51e+03 Tracker muIoni + 42 0.173 -0.0319 -344 1e+06 0.0178 82.5 2.6e+03 Tracker muIoni + 43 0.181 -0.0336 -244 1e+06 0.02 100 2.7e+03 Tracker StepLimiter + 44 0.182 -0.0337 -239 1e+06 0.000657 4.68 2.7e+03 Tracker muIoni + 45 0.19 -0.0354 -139 1e+06 0.0213 100 2.8e+03 Tracker StepLimiter + 46 0.191 -0.0356 -129 1e+06 0.00293 10.4 2.81e+03 Tracker muIoni + 47 0.193 -0.0361 -100 1e+06 0.00509 28.7 2.84e+03 Chamber_PV Transportation + 48 0.195 -0.0364 -82.2 1e+06 0.0146 17.8 2.86e+03 Chamber_PV muIoni + 49 0.196 -0.0366 -68.7 1e+06 0.00898 13.5 2.87e+03 Chamber_PV muIoni + 50 0.201 -0.0376 -7.54 1e+06 0.0407 61.1 2.93e+03 Chamber_PV muIoni + 51 0.202 -0.0379 8.99 1e+06 0.0101 16.5 2.95e+03 Chamber_PV muIoni + 52 0.21 -0.0394 100 1e+06 0.101 91 3.04e+03 Tracker Transportation + 53 0.215 -0.0405 161 1e+06 0.0119 61.1 3.1e+03 Tracker muIoni + 54 0.223 -0.0423 261 1e+06 0.0213 100 3.2e+03 Tracker StepLimiter + 55 0.231 -0.0441 361 1e+06 0.0203 100 3.3e+03 Tracker StepLimiter + 56 0.239 -0.0459 461 1e+06 0.0219 100 3.4e+03 Tracker StepLimiter + 57 0.243 -0.0468 512 1e+06 0.0101 51.1 3.45e+03 Tracker muIoni + 58 0.251 -0.0486 612 1e+06 0.0169 100 3.55e+03 Tracker StepLimiter + 59 0.259 -0.0502 700 1e+06 0.0179 87.8 3.64e+03 Chamber_PV Transportation + 60 0.262 -0.051 740 1e+06 0.0231 40.1 3.68e+03 Chamber_PV muIoni + 61 0.262 -0.051 745 1e+06 0.00363 4.95 3.69e+03 Chamber_PV muIoni + 62 0.265 -0.0516 775 1e+06 0.0211 30 3.72e+03 Chamber_PV muIoni + 63 0.265 -0.0517 781 1e+06 0.00464 5.85 3.72e+03 Chamber_PV muIoni + 64 0.267 -0.0522 805 1e+06 0.0138 24.4 3.75e+03 Chamber_PV muIoni + 65 0.275 -0.054 900 1e+06 0.0679 94.7 3.84e+03 Tracker Transportation + 66 0.283 -0.0559 1e+03 1e+06 0.0131 100 3.94e+03 Tracker StepLimiter + 67 0.291 -0.0578 1.1e+03 1e+06 0.018 100 4.04e+03 Tracker StepLimiter + 68 0.299 -0.0597 1.2e+03 1e+06 0.0197 100 4.14e+03 Tracker StepLimiter + 69 0.308 -0.0615 1.3e+03 1e+06 0.0211 100 4.24e+03 Tracker StepLimiter + 70 0.316 -0.0633 1.4e+03 1e+06 0.0195 99.6 4.34e+03 Tracker muIoni + 71 0.317 -0.0636 1.41e+03 1e+06 0.00276 12.2 4.35e+03 Tracker muIoni + 72 0.317 -0.0637 1.42e+03 1e+06 0.000765 4.68 4.36e+03 Tracker muIoni + 73 0.324 -0.0652 1.5e+03 1e+06 0.0166 83.5 4.44e+03 Chamber_PV Transportation + 74 0.33 -0.0664 1.57e+03 1e+06 0.0461 65.7 4.51e+03 Chamber_PV muIoni + 75 0.336 -0.0677 1.64e+03 1e+06 0.0553 77.7 4.58e+03 Chamber_PV muIoni + 76 0.337 -0.068 1.66e+03 1e+06 0.00903 15.7 4.6e+03 Chamber_PV muIoni + 77 0.339 -0.0683 1.68e+03 1e+06 0.0115 17.2 4.62e+03 Chamber_PV muIoni + 78 0.341 -0.0686 1.7e+03 1e+06 0.0167 23.7 4.64e+03 Tracker Transportation + 79 0.349 -0.0702 1.8e+03 1e+06 0.0193 100 4.74e+03 Tracker StepLimiter + 80 0.357 -0.0717 1.9e+03 1e+06 0.0188 100 4.84e+03 Tracker StepLimiter + 81 0.365 -0.0733 2e+03 1e+06 0.0164 100 4.94e+03 Tracker StepLimiter + 82 0.373 -0.0749 2.1e+03 1e+06 0.0164 100 5.04e+03 Tracker StepLimiter + 83 0.378 -0.0759 2.17e+03 1e+06 0.0158 68.1 5.11e+03 Tracker muIoni + 84 0.386 -0.0775 2.27e+03 1e+06 0.0208 100 5.21e+03 Tracker StepLimiter + 85 0.389 -0.078 2.3e+03 1e+06 0.00655 32.9 5.24e+03 Tracker muIoni + 86 0.397 -0.0796 2.4e+03 1e+06 0.0172 99 5.34e+03 World Transportation + 87 0.399 -0.08 2.43e+03 1e+06 0.00797 26.2 5.37e+03 World muIoni + 88 0.402 -0.0807 2.47e+03 1e+06 0.0104 40 5.41e+03 World muIoni + 89 0.403 -0.0808 2.48e+03 1e+06 0.00299 9.17 5.42e+03 World muIoni + 90 0.428 -0.0857 2.78e+03 1e+06 0.059 300 5.72e+03 World muIoni + 91 0.44 -0.088 2.92e+03 1e+06 0.0333 149 5.86e+03 World muIoni + 92 0.441 -0.0883 2.94e+03 1e+06 0.00278 16 5.88e+03 OutOfWorld Transportation ********************************************************************************************************* * 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 -0.0203 -0.0268 298 0.00111 0 0 0 Tracker initStep - 1 -0.0118 -0.0527 298 0 0.00111 0.0664 0.0664 Tracker eIoni + 0 0.44 -0.088 2.92e+03 0.00132 0 0 0 World initStep + 1 0.425 -0.121 2.92e+03 0 0.00132 0.0854 0.0854 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 -0.0201 -0.0266 278 0.0047 0 0 0 Tracker initStep - 1 -0.0841 0.272 278 0 0.0047 0.687 0.687 Tracker eIoni + 0 0.428 -0.0857 2.78e+03 0.00775 0 0 0 World initStep + 1 0.906 0.474 2.78e+03 0.00256 0.00519 1.46 1.46 World eIoni + 2 0.933 0.542 2.78e+03 0 0.00256 0.241 1.7 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 -0.02 -0.0265 265 0.00524 0 0 0 Tracker initStep - 1 -0.0117 -0.0596 265 0.00382 4.26e-06 0.0351 0.0351 Tracker eIoni - 2 -0.0674 -0.262 265 0 0.00382 0.478 0.513 Tracker eIoni - -********************************************************************************************************* -* 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 -0.0117 -0.0596 265 0.00142 0 0 0 Tracker initStep - 1 0.027 -0.0699 265 0 0.00142 0.095 0.095 Tracker eIoni + 0 0.403 -0.0808 2.48e+03 0.00144 0 0 0 World initStep + 1 0.38 -0.0467 2.48e+03 0 0.00144 0.0978 0.0978 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 -0.0188 -0.0253 138 0.00409 0 0 0 Tracker initStep - 1 0.118 -0.222 138 0 0.00409 0.539 0.539 Tracker eIoni + 0 0.402 -0.0807 2.47e+03 0.00106 0 0 0 World initStep + 1 0.386 -0.0997 2.47e+03 0 0.00106 0.0622 0.0622 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 -0.0185 -0.0249 94.7 0.0133 0 0 0 Chamber_PV initStep - 1 -0.108 0.126 94.7 0.00803 0.00124 0.366 0.366 Chamber_PV eIoni - 2 -0.0466 0.0984 94.6 0.00396 0.000487 0.232 0.598 Chamber_PV eIoni - 3 -0.0352 0.124 94.6 0.00107 0.00289 0.185 0.783 Chamber_PV eIoni - 4 -0.04 0.127 94.6 0 0.00107 0.0454 0.828 Chamber_PV eIoni - -********************************************************************************************************* -* 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 -0.0466 0.0984 94.6 0.00358 0 0 0 Chamber_PV initStep - 1 -0.0742 0.106 94.6 0 0.00358 0.236 0.236 Chamber_PV eIoni - -********************************************************************************************************* -* 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 -0.108 0.126 94.7 0.00398 0 0 0 Chamber_PV initStep - 1 -0.0947 0.106 94.7 0 0.00398 0.276 0.276 Chamber_PV eIoni + 0 0.399 -0.08 2.43e+03 0.00217 0 0 0 World initStep + 1 0.355 -0.147 2.43e+03 0 0.00217 0.184 0.184 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 -0.0184 -0.0248 83.6 0.00138 0 0 0 Chamber_PV initStep - 1 -0.0109 -0.0291 83.6 0 0.00138 0.0626 0.0626 Chamber_PV eIoni + 0 0.389 -0.078 2.3e+03 0.00158 0 0 0 Tracker initStep + 1 0.368 -0.0352 2.3e+03 0 0.00158 0.112 0.112 Tracker 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 -0.0184 -0.0248 82.7 0.0275 0 0 0 Chamber_PV initStep - 1 -0.33 0.534 82.8 0.0175 0.01 2.9 2.9 Chamber_PV eIoni - 2 -0.0425 0.405 82.8 0.0131 0.00446 1.99 4.9 Chamber_PV eIoni - 3 0.085 0.286 82.7 0.00586 0.00517 1.15 6.05 Chamber_PV eIoni - 4 0.104 0.276 82.8 0 0.00586 0.507 6.55 Chamber_PV eIoni + 0 0.378 -0.0759 2.17e+03 0.00382 0 0 0 Tracker initStep + 1 0.512 -0.0513 2.17e+03 0.002 0.000521 0.175 0.175 Tracker eIoni + 2 0.558 -0.0971 2.17e+03 0 0.002 0.162 0.337 Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 46 +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 46 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.085 0.286 82.7 0.00205 0 0 0 Chamber_PV initStep - 1 0.0722 0.288 82.7 0 0.00205 0.107 0.107 Chamber_PV eIoni + 0 0.512 -0.0513 2.17e+03 0.0013 0 0 0 Tracker initStep + 1 0.538 -0.0354 2.17e+03 0 0.0013 0.0833 0.0833 Tracker 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 -0.0179 -0.0244 30 0.00186 0 0 0 Chamber_PV initStep - 1 -0.00611 -0.0211 30 0 0.00186 0.0942 0.0942 Chamber_PV eIoni + 0 0.339 -0.0683 1.68e+03 0.00658 0 0 0 Chamber_PV initStep + 1 0.325 0.000384 1.68e+03 0 0.00658 0.61 0.61 Chamber_PV 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 -0.0177 -0.0241 5.82 0.00163 0 0 0 Chamber_PV initStep - 1 -0.00932 -0.0177 5.82 0 0.00163 0.0789 0.0789 Chamber_PV eIoni + 0 0.337 -0.068 1.66e+03 0.00159 0 0 0 Chamber_PV initStep + 1 0.341 -0.0777 1.66e+03 0 0.00159 0.0762 0.0762 Chamber_PV 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 -0.0162 -0.0224 -164 0.00201 0 0 0 Tracker initStep - 1 -0.0851 -0.0398 -164 0 0.00201 0.164 0.164 Tracker eIoni + 0 0.336 -0.0677 1.64e+03 0.00357 0 0 0 Chamber_PV initStep + 1 0.31 -0.0539 1.64e+03 0 0.00357 0.234 0.234 Chamber_PV 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 -0.0152 -0.0212 -279 0.00623 0 0 0 Tracker initStep - 1 0.318 -0.0915 -279 0.00342 0.00106 0.448 0.448 Tracker eIoni - 2 0.392 -0.0584 -279 0 0.00342 0.393 0.842 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 42 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.318 -0.0915 -279 0.00176 0 0 0 Tracker initStep - 1 0.299 -0.0382 -279 0 0.00176 0.132 0.132 Tracker eIoni + 0 0.33 -0.0664 1.57e+03 0.00245 0 0 0 Chamber_PV initStep + 1 0.346 -0.0593 1.57e+03 0 0.00245 0.137 0.137 Chamber_PV 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 -0.0149 -0.0208 -317 0.00255 0 0 0 Tracker initStep - 1 0.0229 0.0776 -317 0 0.00255 0.239 0.239 Tracker eIoni + 0 0.317 -0.0637 1.42e+03 0.00177 0 0 0 Tracker initStep + 1 0.287 -0.112 1.42e+03 0 0.00177 0.133 0.133 Tracker 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 -0.0148 -0.0207 -326 0.00191 0 0 0 Tracker initStep - 1 -0.0513 0.0331 -326 0 0.00191 0.15 0.15 Tracker eIoni + 0 0.317 -0.0636 1.41e+03 0.00641 0 0 0 Tracker initStep + 1 0.0441 0.391 1.41e+03 0 0.00641 1.17 1.17 Tracker 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.0122 -0.0179 -615 0.00134 0 0 0 Tracker initStep - 1 -0.0355 0.0105 -615 0 0.00134 0.0875 0.0875 Tracker eIoni + 0 0.316 -0.0633 1.4e+03 0.00202 0 0 0 Tracker initStep + 1 0.386 -0.0737 1.4e+03 0 0.00202 0.164 0.164 Tracker 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 -0.0106 -0.0162 -790 0.00223 0 0 0 Chamber_PV initStep - 1 -0.0259 -0.0181 -790 0 0.00223 0.121 0.121 Chamber_PV eIoni + 0 0.267 -0.0522 805 0.00148 0 0 0 Chamber_PV initStep + 1 0.258 -0.053 805 0 0.00148 0.0692 0.0692 Chamber_PV 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 -0.0103 -0.0159 -818 0.00266 0 0 0 Chamber_PV initStep - 1 -0.0164 -0.0348 -818 0 0.00266 0.154 0.154 Chamber_PV eIoni + 0 0.265 -0.0517 781 0.00162 0 0 0 Chamber_PV initStep + 1 0.274 -0.0569 781 0 0.00162 0.0777 0.0777 Chamber_PV 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 -0.01 -0.0156 -851 0.00203 0 0 0 Chamber_PV initStep - 1 -0.0223 -0.0215 -851 0 0.00203 0.106 0.106 Chamber_PV eIoni + 0 0.265 -0.0516 775 0.00151 0 0 0 Chamber_PV initStep + 1 0.257 -0.0453 775 0 0.00151 0.0709 0.0709 Chamber_PV 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 -0.00976 -0.0153 -883 0.002 0 0 0 Chamber_PV initStep - 1 0.0032 -0.0118 -883 0 0.002 0.104 0.104 Chamber_PV eIoni + 0 0.262 -0.051 745 0.0169 0 0 0 Chamber_PV initStep + 1 0.549 0.0194 745 0.0109 0.00596 1.94 1.94 Chamber_PV eIoni + 2 0.581 0.0552 745 0.00163 0.00929 1.32 3.26 Chamber_PV eIoni + 3 0.588 0.0609 745 0 0.00163 0.0784 3.34 Chamber_PV 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 -0.00912 -0.0146 -964 0.00244 0 0 0 Tracker initStep - 1 0.0597 -0.0846 -964 0 0.00244 0.223 0.223 Tracker eIoni + 0 0.262 -0.051 740 0.00276 0 0 0 Chamber_PV initStep + 1 0.283 -0.0528 740 0 0.00276 0.162 0.162 Chamber_PV 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 -0.00896 -0.0144 -984 0.00384 0 0 0 Tracker initStep - 1 -0.127 -0.193 -984 0 0.00384 0.482 0.482 Tracker eIoni + 0 0.243 -0.0468 512 0.00284 0 0 0 Tracker initStep + 1 0.234 -0.173 512 0 0.00284 0.287 0.287 Tracker 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 -0.00846 -0.0138 -1.05e+03 0.0015 0 0 0 Tracker initStep - 1 0.0322 0.00255 -1.05e+03 0 0.0015 0.103 0.103 Tracker eIoni + 0 0.215 -0.0405 161 0.00232 0 0 0 Tracker initStep + 1 0.233 -0.129 161 0 0.00232 0.206 0.206 Tracker 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 -0.00671 -0.0118 -1.28e+03 0.00167 0 0 0 Tracker initStep - 1 0.0451 -0.0199 -1.28e+03 0 0.00167 0.122 0.122 Tracker eIoni + 0 0.202 -0.0379 8.99 0.00256 0 0 0 Chamber_PV initStep + 1 0.203 -0.0192 8.99 0 0.00256 0.146 0.146 Chamber_PV 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 -0.00647 -0.0115 -1.31e+03 0.00479 0 0 0 Tracker initStep - 1 -0.0924 0.292 -1.31e+03 0 0.00479 0.71 0.71 Tracker eIoni + 0 0.201 -0.0376 -7.54 0.00175 0 0 0 Chamber_PV initStep + 1 0.211 -0.0425 -7.54 0 0.00175 0.0866 0.0866 Chamber_PV 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 -0.00599 -0.0109 -1.38e+03 0.00902 0 0 0 Tracker initStep - 1 -0.841 -0.438 -1.38e+03 0.00328 0.00574 1.68 1.68 Tracker eIoni - 2 -0.913 -0.34 -1.38e+03 0 0.00328 0.366 2.05 Tracker eIoni + 0 0.196 -0.0366 -68.7 0.0066 0 0 0 Chamber_PV initStep + 1 0.214 -0.104 -68.7 0.00468 0.00191 0.261 0.261 Chamber_PV eIoni + 2 0.224 -0.12 -68.7 0 0.00468 0.355 0.616 Chamber_PV 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 -0.00577 -0.0106 -1.41e+03 0.00156 0 0 0 Tracker initStep - 1 -0.0108 -0.0573 -1.41e+03 0 0.00156 0.11 0.11 Tracker eIoni + 0 0.195 -0.0364 -82.2 0.00186 0 0 0 Chamber_PV initStep + 1 0.206 -0.041 -82.2 0 0.00186 0.0939 0.0939 Chamber_PV 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 -0.00562 -0.0104 -1.43e+03 0.00935 0 0 0 Tracker initStep - 1 -0.197 -0.0168 -1.43e+03 0.0066 0.00138 0.203 0.203 Tracker eIoni - 2 -0.633 -0.314 -1.43e+03 0.00234 0.00426 1.21 1.42 Tracker eIoni - 3 -0.667 -0.366 -1.43e+03 0 0.00234 0.208 1.63 Tracker eIoni + 0 0.191 -0.0356 -129 0.0174 0 0 0 Tracker initStep + 1 -1.92 -0.713 -128 0.0145 0.0029 2.96 2.96 Tracker eIoni + 2 -2.75 0.659 -128 0.0101 0.0034 2.25 5.21 Tracker eIoni + 3 -2.82 0.766 -128 0.00767 0.000139 0.153 5.37 Tracker eIoni + 4 -3.49 0.995 -128 0.00181 0.00586 1.45 6.81 Tracker eIoni + 5 -3.45 1.01 -128 0 0.00181 0.138 6.95 Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 27 +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.197 -0.0168 -1.43e+03 0.00138 0 0 0 Tracker initStep - 1 -0.218 -0.00529 -1.43e+03 0 0.00138 0.0913 0.0913 Tracker eIoni + 0 -2.82 0.766 -128 0.00227 0 0 0 Tracker initStep + 1 -2.79 0.817 -128 0 0.00227 0.198 0.198 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.75 0.659 -128 0.00103 0 0 0 Tracker initStep + 1 -2.74 0.673 -128 0 0.00103 0.0593 0.0593 Tracker 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 -0.00541 -0.0101 -1.46e+03 0.00497 0 0 0 Tracker initStep - 1 -0.204 -0.282 -1.46e+03 0 0.00497 0.757 0.757 Tracker eIoni + 0 0.182 -0.0337 -239 0.00116 0 0 0 Tracker initStep + 1 0.199 -0.057 -239 0 0.00116 0.0702 0.0702 Tracker 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 -0.00525 -0.00992 -1.48e+03 0.00998 0 0 0 Tracker initStep - 1 -0.715 0.815 -1.48e+03 0.00418 0.0058 1.83 1.83 Tracker eIoni - 2 -0.811 1.04 -1.48e+03 0 0.00418 0.559 2.39 Tracker eIoni + 0 0.173 -0.0319 -344 0.00101 0 0 0 Tracker initStep + 1 0.155 -0.0176 -344 0 0.00101 0.0576 0.0576 Tracker 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 -0.00497 -0.00955 -1.52e+03 0.00506 0 0 0 Chamber_PV initStep - 1 0.0105 -0.055 -1.52e+03 0 0.00506 0.401 0.401 Chamber_PV eIoni + 0 0.167 -0.0305 -426 0.0127 0 0 0 Tracker initStep + 1 -0.179 -0.899 -426 0.00561 0.00441 1.13 1.13 Tracker eIoni + 2 -0.386 -0.816 -426 0 0.00561 0.939 2.07 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.179 -0.899 -426 0.00271 0 0 0 Tracker initStep + 1 -0.241 -0.816 -426 0 0.00271 0.265 0.265 Tracker 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 -0.00489 -0.00945 -1.53e+03 0.00243 0 0 0 Chamber_PV initStep - 1 -0.02 -0.018 -1.53e+03 0 0.00243 0.136 0.136 Chamber_PV eIoni + 0 0.156 -0.0283 -555 0.00502 0 0 0 Tracker initStep + 1 0.379 0.124 -555 0.0025 0.00135 0.384 0.384 Tracker eIoni + 2 0.441 0.205 -555 0 0.0025 0.232 0.617 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.379 0.124 -555 0.00117 0 0 0 Tracker initStep + 1 0.359 0.139 -555 0 0.00117 0.0713 0.0713 Tracker 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 -0.00477 -0.0093 -1.55e+03 0.0028 0 0 0 Chamber_PV initStep - 1 -0.00826 0.0117 -1.55e+03 0 0.0028 0.166 0.166 Chamber_PV eIoni + 0 0.145 -0.0259 -693 0.00272 0 0 0 Tracker initStep + 1 0.0275 -0.0109 -693 0 0.00272 0.267 0.267 Tracker 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 -0.0047 -0.00921 -1.56e+03 0.00237 0 0 0 Chamber_PV initStep - 1 -0.0163 -0.0215 -1.56e+03 0 0.00237 0.131 0.131 Chamber_PV eIoni + 0 0.144 -0.0257 -704 0.0016 0 0 0 Chamber_PV initStep + 1 0.154 -0.0226 -704 0 0.0016 0.0763 0.0763 Chamber_PV 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 -0.00456 -0.00903 -1.58e+03 0.00171 0 0 0 Chamber_PV initStep - 1 0.00355 -0.00136 -1.58e+03 0 0.00171 0.0842 0.0842 Chamber_PV eIoni + 0 0.142 -0.0254 -723 0.00291 0 0 0 Chamber_PV initStep + 1 0.143 -0.00306 -723 0 0.00291 0.174 0.174 Chamber_PV 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 -0.00455 -0.00902 -1.58e+03 0.00206 0 0 0 Chamber_PV initStep - 1 0.00311 -0.0206 -1.58e+03 0 0.00206 0.108 0.108 Chamber_PV eIoni + 0 0.133 -0.0236 -834 0.00599 0 0 0 Chamber_PV initStep + 1 0.0963 0.0254 -834 0 0.00599 0.525 0.525 Chamber_PV 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 -0.00443 -0.00886 -1.59e+03 0.0022 0 0 0 Chamber_PV initStep - 1 -0.0177 -0.00147 -1.59e+03 0 0.0022 0.119 0.119 Chamber_PV eIoni + 0 0.126 -0.0223 -921 0.00181 0 0 0 Tracker initStep + 1 0.127 0.0373 -921 0 0.00181 0.138 0.138 Tracker 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 -0.0038 -0.00801 -1.68e+03 0.00145 0 0 0 Chamber_PV initStep - 1 -0.0128 -0.00995 -1.68e+03 0 0.00145 0.0672 0.0672 Chamber_PV eIoni + 0 0.125 -0.0221 -933 0.00118 0 0 0 Tracker initStep + 1 0.136 0.00577 -933 0 0.00118 0.0727 0.0727 Tracker 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 -0.00367 -0.00784 -1.7e+03 0.00348 0 0 0 Chamber_PV initStep - 1 -0.0153 -0.0336 -1.7e+03 0 0.00348 0.226 0.226 Chamber_PV eIoni + 0 0.113 -0.0199 -1.07e+03 0.00384 0 0 0 Tracker initStep + 1 0.307 0.0701 -1.07e+03 0 0.00384 0.481 0.481 Tracker 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 -0.00283 -0.00665 -1.81e+03 0.00169 0 0 0 Tracker initStep - 1 0.0437 0.0198 -1.81e+03 0 0.00169 0.125 0.125 Tracker eIoni + 0 0.103 -0.018 -1.2e+03 0.00123 0 0 0 Tracker initStep + 1 0.0744 -0.00271 -1.2e+03 0 0.00123 0.0773 0.0773 Tracker 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 -0.000857 -0.00371 -2.08e+03 0.00323 0 0 0 Tracker initStep - 1 0.149 0.0464 -2.08e+03 0 0.00323 0.357 0.357 Tracker eIoni + 0 0.087 -0.015 -1.39e+03 0.00124 0 0 0 Tracker initStep + 1 0.0682 -0.0415 -1.39e+03 0 0.00124 0.078 0.078 Tracker 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 -0.000733 -0.00354 -2.1e+03 0.0161 0 0 0 Tracker initStep - 1 0.918 -1.79 -2.1e+03 0.011 0.00506 2.75 2.75 Tracker eIoni - 2 2.13 -1.88 -2.1e+03 0.00616 0.00488 1.99 4.74 Tracker eIoni - 3 2.51 -1.58 -2.1e+03 0 0.00616 1.1 5.84 Tracker eIoni + 0 0.0783 -0.0134 -1.5e+03 0.0104 0 0 0 Tracker initStep + 1 0.682 -1 -1.5e+03 0.00572 0.00471 1.9 1.9 Tracker eIoni + 2 0.676 -1.43 -1.5e+03 0 0.00572 0.972 2.87 Tracker 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.0003 -0.00211 -2.23e+03 0.00191 0 0 0 Tracker initStep - 1 0.0621 0.0178 -2.23e+03 0 0.00191 0.15 0.15 Tracker eIoni + 0 0.0757 -0.0129 -1.53e+03 0.00222 0 0 0 Chamber_PV initStep + 1 0.091 -0.0119 -1.53e+03 0 0.00222 0.12 0.12 Chamber_PV 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 0.00151 -0.000209 -2.41e+03 1.04 0 0 0 Target initStep - 1 0.0264 -0.0346 -2.41e+03 0 1.04 0.764 0.764 Target eIoni + 0 0.0729 -0.0123 -1.56e+03 0.00191 0 0 0 Chamber_PV initStep + 1 0.0801 -0.00197 -1.56e+03 0 0.00191 0.0977 0.0977 Chamber_PV 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 0.00067 -0.000219 -2.43e+03 124 0 0 0 Target initStep - 1 0.0877 0.0398 -2.43e+03 122 1.18 0.695 0.695 Target eBrem - 2 0.09 0.0402 -2.43e+03 122 0.013 0.0138 0.709 Target eBrem - 3 0.196 0.0668 -2.43e+03 120 0.717 0.609 1.32 Target eIoni - 4 0.355 0.0908 -2.42e+03 117 1.14 1.03 2.35 Target eIoni - 5 1.14 0.112 -2.42e+03 106 6.48 4.77 7.13 Target eBrem - 6 1.19 0.0427 -2.42e+03 102 1.47 1.21 8.33 Target eBrem - 7 1.23 0.025 -2.42e+03 96.9 0.732 0.539 8.87 Target eBrem - 8 1.58 -0.0474 -2.42e+03 6.51 2.44 2.09 11 Target eBrem - 9 1.77 -0.155 -2.41e+03 3.56 2.95 2.52 13.5 Target eIoni - 10 1.8 -0.285 -2.41e+03 3.08 0.336 0.316 13.8 Target eBrem - 11 1.8 -0.344 -2.41e+03 2.22 0.258 0.27 14.1 Target eBrem - 12 1.79 -0.52 -2.41e+03 0.364 1.6 1.26 15.3 Target eBrem - 13 1.78 -0.523 -2.41e+03 0.0897 0.158 0.111 15.4 Target eBrem - 14 1.77 -0.522 -2.41e+03 0 0.0897 0.023 15.5 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.355 0.0908 -2.42e+03 1.25 0 0 0 Target initStep - 1 0.335 0.135 -2.42e+03 0 1.25 0.943 0.943 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.196 0.0668 -2.43e+03 1.79 0 0 0 Target initStep - 1 0.175 -0.000977 -2.43e+03 0.123 1.66 1.31 1.31 Target eIoni - 2 0.176 -0.000776 -2.43e+03 0 0.123 0.038 1.35 Target eIoni + 0 0.0723 -0.0122 -1.57e+03 0.00142 0 0 0 Chamber_PV initStep + 1 0.0808 -0.0154 -1.57e+03 0 0.00142 0.0656 0.0656 Chamber_PV 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 0.000481 -0.000216 -2.43e+03 2.1 0 0 0 Target initStep - 1 -0.0621 -0.0738 -2.43e+03 1.03 1.07 0.83 0.83 Target eBrem - 2 -0.0861 -0.0418 -2.43e+03 0.111 0.187 0.187 1.02 Target eBrem - 3 -0.0868 -0.0425 -2.43e+03 0 0.111 0.0323 1.05 Target eIoni + 0 0.0485 -0.00778 -1.86e+03 0.00104 0 0 0 Tracker initStep + 1 0.0665 -0.0243 -1.86e+03 0 0.00104 0.0601 0.0601 Tracker 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 0.000141 -6.58e-05 -2.44e+03 1.25 0 0 0 Target initStep - 1 -0.0325 -0.0421 -2.44e+03 0 1.25 0.947 0.947 Target eIoni + 0 0.029 -0.00427 -2.09e+03 0.00146 0 0 0 Tracker initStep + 1 -0.00636 0.019 -2.09e+03 0 0.00146 0.1 0.1 Tracker 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 6.06e-05 6.38e-06 -2.44e+03 2.17 0 0 0 Target initStep - 1 -0.0117 -0.102 -2.44e+03 0.487 1.68 1.48 1.48 Target eIoni - 2 0.00246 -0.114 -2.44e+03 0 0.487 0.294 1.78 Target eIoni + 0 0.0197 -0.00259 -2.2e+03 0.0456 0 0 0 Tracker initStep + 1 1.7 -8.26 -2.2e+03 0.0374 0.00822 10.2 10.2 Tracker eIoni + 2 1.31 -14.6 -2.2e+03 0.0329 0.00448 7.54 17.7 Tracker eIoni + 3 -2.22 -11.3 -2.2e+03 0.0291 0.00375 6.29 24 Tracker eIoni + 4 -4.98 -8.74 -2.21e+03 0.0247 0.00447 5.35 29.3 Tracker eIoni + 5 -4.97 -8.06 -2.21e+03 0.0214 0.00218 2.38 31.7 Tracker eIoni + 6 -6.87 -6.89 -2.21e+03 0.0167 0.00464 3.67 35.4 Tracker eIoni + 7 -8.73 -6.06 -2.21e+03 0.0131 0.00364 2.85 38.2 Tracker eIoni + 8 -9.77 -5.81 -2.21e+03 0.00717 0.00593 2.29 40.5 Tracker eIoni + 9 -10.1 -5.78 -2.21e+03 0.00421 0.000885 0.553 41.1 Tracker eIoni + 10 -10.4 -5.75 -2.21e+03 0.0012 0.00301 0.499 41.6 Tracker eIoni + 11 -10.4 -5.78 -2.21e+03 0 0.0012 0.0744 41.7 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.1 -5.78 -2.21e+03 0.00207 0 0 0 Tracker initStep + 1 -10.1 -5.85 -2.21e+03 0 0.00207 0.171 0.171 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.97 -8.06 -2.21e+03 0.00111 0 0 0 Tracker initStep + 1 -4.95 -8.06 -2.21e+03 0 0.00111 0.0665 0.0665 Tracker 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.00284 0.000454 -2.4e+03 3.47 0 0 0 Target initStep + 1 0.0632 -0.116 -2.4e+03 3.03 0.438 0.464 0.464 Target eBrem + 2 0.241 -0.342 -2.4e+03 1.21 1.83 1.77 2.23 Target eIoni + 3 0.199 -0.296 -2.4e+03 0 1.21 0.91 3.14 Target 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 -7.48e-06 5.19e-05 -2.45e+03 14.2 0 0 0 Target initStep - 1 0.108 -0.391 -2.45e+03 12.9 1.27 1.04 1.04 Target msc - 2 0.0952 -0.315 -2.45e+03 11.8 1.11 0.959 2 Target msc - 3 0.185 -0.238 -2.45e+03 11.1 0.316 0.309 2.31 Target eBrem - 4 1.02 0.0333 -2.45e+03 9.12 1.99 1.5 3.81 Target msc - 5 0.96 0.349 -2.45e+03 8.37 0.616 0.578 4.39 Target eBrem - 6 0.928 0.342 -2.45e+03 8.14 0.0721 0.0695 4.46 Target eBrem - 7 0.699 0.238 -2.45e+03 7.08 0.841 0.885 5.34 Target eBrem - 8 1.28 0.459 -2.44e+03 0.049 3.73 2.53 7.87 Target eBrem - 9 1.28 0.458 -2.44e+03 0 0.049 0.00864 7.88 Target eIoni + 0 0.00265 0.000451 -2.41e+03 1.12 0 0 0 Target initStep + 1 -0.0283 0.0352 -2.41e+03 0 1.12 0.833 0.833 Target 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.75e-06 2.95e-05 -2.54e+03 0.00139 0 0 0 World initStep - 1 0.00201 -0.0388 -2.54e+03 0 0.00139 0.0922 0.0922 World eIoni + 0 5.35e-05 3.62e-05 -2.45e+03 1.46 0 0 0 Target initStep + 1 0.0539 -0.0348 -2.45e+03 0.227 1.23 1.12 1.12 Target eIoni + 2 0.0521 -0.0359 -2.45e+03 0 0.227 0.0988 1.21 Target 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.15e-06 2.26e-05 -2.57e+03 0.00123 0 0 0 World initStep - 1 -0.0167 -0.0273 -2.57e+03 0 0.00123 0.0771 0.0771 World eIoni + 0 -9.34e-06 2.29e-06 -2.77e+03 0.00622 0 0 0 World initStep + 1 -0.49 -0.108 -2.77e+03 0 0.00622 1.12 1.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 0 0 -2.68e+03 0.00166 0 0 0 World initStep - 1 0.0504 0.0127 -2.68e+03 0 0.00166 0.121 0.121 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.28 0.459 -2.44e+03 3.31 0 0 0 Target initStep - 1 0.945 -17.8 -2.44e+03 0 0 20.1 20.1 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 119 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.945 -17.8 -2.44e+03 0.396 0 0 0 Target initStep - 1 0.942 -17.8 -2.44e+03 0 0.396 0.222 0.222 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.699 0.238 -2.45e+03 0.216 0 0 0 Target initStep - 1 1.29 0.446 -2.44e+03 0 0.088 0.967 0.967 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 118 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.29 0.446 -2.44e+03 0.128 0 0 0 Target initStep - 1 1.3 0.448 -2.44e+03 0 0.128 0.0405 0.0405 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.928 0.342 -2.45e+03 0.156 0 0 0 Target initStep - 1 0.719 0.264 -2.45e+03 0 0.088 0.564 0.564 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 117 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.719 0.264 -2.45e+03 0.0676 0 0 0 Target initStep - 1 0.719 0.264 -2.45e+03 0 0.0676 0.0146 0.0146 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.96 0.349 -2.45e+03 0.13 0 0 0 Target initStep - 1 0.59 0.275 -2.45e+03 0 0.088 0.689 0.689 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 116 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.59 0.275 -2.45e+03 0.0425 0 0 0 Target initStep - 1 0.591 0.275 -2.45e+03 0 0.0425 0.00684 0.00684 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.185 -0.238 -2.45e+03 0.352 0 0 0 Target initStep - 1 1.27 0.0225 -2.45e+03 0 0.088 2.46 2.46 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 115 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.27 0.0225 -2.45e+03 0.264 0 0 0 Target initStep - 1 1.27 0.0263 -2.45e+03 0 0.264 0.124 0.124 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0861 -0.0418 -2.43e+03 0.732 0 0 0 Target initStep - 1 -0.15 -0.193 -2.43e+03 0.401 0 1.64 1.64 Target compt - 2 0.177 -0.712 -2.43e+03 0 0.088 0.66 2.3 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 114 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.177 -0.712 -2.43e+03 0.313 0 0 0 Target initStep - 1 0.178 -0.721 -2.43e+03 0 0.313 0.158 0.158 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 114 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.15 -0.193 -2.43e+03 0.331 0 0 0 Target initStep - 1 -0.154 -0.189 -2.43e+03 0 0.331 0.172 0.172 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.78 -0.523 -2.41e+03 0.116 0 0 0 Target initStep - 1 1.78 -0.425 -2.41e+03 0 0.088 0.172 0.172 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 113 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.78 -0.425 -2.41e+03 0.0283 0 0 0 Target initStep - 1 1.78 -0.425 -2.41e+03 0 0.0283 0.00354 0.00354 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.79 -0.52 -2.41e+03 0.252 0 0 0 Target initStep - 1 1.49 0.0145 -2.41e+03 0 0.088 1.12 1.12 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 112 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.49 0.0145 -2.41e+03 0.164 0 0 0 Target initStep - 1 1.48 0.0165 -2.41e+03 0 0.164 0.06 0.06 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.8 -0.344 -2.41e+03 0.605 0 0 0 Target initStep - 1 1.45 -2.78 -2.41e+03 0 0.088 2.57 2.57 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 111 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.45 -2.78 -2.41e+03 0.517 0 0 0 Target initStep - 1 1.45 -2.8 -2.41e+03 0 0.517 0.319 0.319 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.8 -0.285 -2.41e+03 0.144 0 0 0 Target initStep - 1 1.75 -0.387 -2.41e+03 0 0.088 0.199 0.199 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 110 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.75 -0.387 -2.41e+03 0.0564 0 0 0 Target initStep - 1 1.75 -0.386 -2.41e+03 0 0.0564 0.0109 0.0109 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.58 -0.0474 -2.42e+03 87.9 0 0 0 Target initStep - 1 1.73 -0.12 -2.41e+03 0 0 0.998 0.998 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.23 0.025 -2.42e+03 4.09 0 0 0 Target initStep - 1 2.81 0.303 -2.41e+03 1.44 0 12.8 12.8 Target compt - 2 6.97 -2.77 -2.4e+03 1.44 0 7.4 20.2 Tracker Transportation - 3 1.93e+03 -1.42e+03 46.2 1.44 0 3.42e+03 3.44e+03 World Transportation - 4 2.94e+03 -2.17e+03 1.33e+03 1.44 0 1.79e+03 5.23e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 0.0427 -2.42e+03 3.23 0 0 0 Target initStep - 1 1.81 -0.483 -2.41e+03 0 0 8.67 8.67 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 106, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.112 -2.42e+03 4.5 0 0 0 Target initStep - 1 2.08 -1.83 -2.4e+03 4.5 0 19.8 19.8 Tracker Transportation - 2 35.8 -70.7 -1.7e+03 4.5 0 704 724 Chamber_PV Transportation - 3 45.4 -90.4 -1.5e+03 4.5 0 201 925 Tracker Transportation - 4 74.3 -150 -900 4.5 0 604 1.53e+03 Chamber_PV Transportation - 5 84 -169 -700 4.5 0 201 1.73e+03 Tracker Transportation - 6 113 -228 -100 4.5 0 604 2.33e+03 Chamber_PV Transportation - 7 123 -248 100 4.5 0 201 2.53e+03 Tracker Transportation - 8 151 -307 700 4.5 0 604 3.14e+03 Chamber_PV Transportation - 9 161 -327 900 4.5 0 201 3.34e+03 Tracker Transportation - 10 190 -386 1.5e+03 4.5 0 604 3.94e+03 Chamber_PV Transportation - 11 200 -405 1.7e+03 4.5 0 201 4.14e+03 Tracker Transportation - 12 233 -474 2.4e+03 4.5 0 704 4.85e+03 World Transportation - 13 259 -528 2.94e+03 4.5 0 543 5.39e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.09 0.0402 -2.43e+03 0.152 0 0 0 Target initStep - 1 0.0907 0.0403 -2.43e+03 0 0.088 0.00423 0.00423 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 102, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0877 0.0398 -2.43e+03 0.292 0 0 0 Target initStep - 1 0.565 0.0932 -2.42e+03 0 0.088 2.94 2.94 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 136, Parent ID = 107 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.81 -0.483 -2.41e+03 2.12 0 0 0 Target initStep - 1 1.84 -0.487 -2.41e+03 0.529 1.59 1.49 1.49 Target eIoni - 2 1.85 -0.466 -2.41e+03 0 0.529 0.326 1.81 Target eIoni - 3 1.85 -0.466 -2.41e+03 0 0 0 1.81 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 133, Parent ID = 109 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.73 -0.12 -2.41e+03 33.6 0 0 0 Target initStep - 1 1.76 -0.154 -2.41e+03 33 0.485 0.52 0.52 Target eBrem - 2 1.86 -0.133 -2.41e+03 31.2 0.526 0.529 1.05 Target eBrem - 3 1.9 -0.109 -2.41e+03 29.4 0.119 0.127 1.18 Target eBrem - 4 1.94 -0.0779 -2.41e+03 26.2 0.148 0.136 1.31 Target eBrem - 5 1.99 -0.0418 -2.41e+03 17.9 0.234 0.198 1.51 Target eBrem - 6 2.04 0.0143 -2.41e+03 17.6 0.288 0.211 1.72 Target eBrem - 7 2.23 0.173 -2.41e+03 16.1 1.36 1.16 2.88 Target eBrem - 8 2.08 0.346 -2.41e+03 14.2 0.578 0.525 3.41 Target eBrem - 9 1.81 0.694 -2.41e+03 7.92 1.27 1.01 4.42 Target eIoni - 10 1.59 1.41 -2.41e+03 0 2.01 2.12 6.54 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.81 0.694 -2.41e+03 5.05 0 0 0 Target initStep - 1 1.76 0.79 -2.41e+03 4.81 0.13 0.126 0.126 Target eBrem - 2 1.42 1.23 -2.41e+03 1.46 1.85 1.39 1.52 Target eBrem - 3 1.48 1.29 -2.41e+03 0.381 0.604 0.583 2.1 Target eBrem - 4 1.48 1.28 -2.41e+03 0 0.381 0.21 2.31 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.565 0.0932 -2.42e+03 0.204 0 0 0 Target initStep - 1 0.567 0.0967 -2.42e+03 0 0.204 0.0842 0.0842 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 103 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0907 0.0403 -2.43e+03 0.0636 0 0 0 Target initStep - 1 0.0905 0.0404 -2.43e+03 0 0.0636 0.0132 0.0132 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 107 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.81 -0.483 -2.41e+03 0.0837 0 0 0 Target initStep - 1 1.81 -0.483 -2.41e+03 0 0.0837 0.0206 0.0206 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 108 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.81 0.303 -2.41e+03 2.65 0 0 0 Target initStep - 1 2.78 0.357 -2.41e+03 0.735 1.92 1.65 1.65 Target eIoni - 2 2.76 0.371 -2.41e+03 0 0.735 0.502 2.16 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 109 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.73 -0.12 -2.41e+03 53.3 0 0 0 Target initStep - 1 1.97 -0.181 -2.41e+03 49 2.12 1.16 1.16 Target eBrem - 2 1.98 -0.187 -2.41e+03 42.8 0.0672 0.0686 1.23 Target eBrem - 3 2.15 -0.352 -2.41e+03 38.6 0.972 0.974 2.21 Target eBrem - 4 2.29 -0.367 -2.41e+03 37.6 0.656 0.39 2.6 Target eBrem - 5 2.35 -0.368 -2.41e+03 36.2 0.279 0.16 2.76 Target eBrem - 6 2.43 -0.335 -2.41e+03 35.7 0.36 0.329 3.09 Target eBrem - 7 3.01 -0.00903 -2.41e+03 25.8 1.84 1.56 4.65 Target eBrem - 8 3.01 0.034 -2.41e+03 17.3 0.329 0.232 4.88 Target eBrem - 9 2.97 0.176 -2.41e+03 11.7 0.732 0.61 5.49 Target eBrem - 10 2.94 0.198 -2.41e+03 9.42 0.217 0.205 5.69 Target eBrem - 11 3.01 0.245 -2.41e+03 8.97 0.206 0.182 5.88 Target eBrem - 12 3.38 0.699 -2.41e+03 1.75 2.5 2.07 7.94 Target eBrem - 13 3.37 0.721 -2.41e+03 1.3 0.0957 0.119 8.06 Target eBrem - 14 3.37 0.76 -2.41e+03 1.07 0.0781 0.0545 8.12 Target eBrem - 15 3.37 0.821 -2.41e+03 0 1.07 0.794 8.91 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 167, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.37 0.76 -2.41e+03 0.148 0 0 0 Target initStep - 1 3.4 0.743 -2.41e+03 0 0.088 0.0925 0.0925 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 167 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.4 0.743 -2.41e+03 0.06 0 0 0 Target initStep - 1 3.4 0.742 -2.41e+03 0 0.06 0.012 0.012 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 166, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.37 0.721 -2.41e+03 0.351 0 0 0 Target initStep - 1 6.42 3.29 -2.41e+03 0.318 0 5.07 5.07 Target compt - 2 7.93 3.23 -2.4e+03 0 0.088 2.14 7.21 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 166 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.93 3.23 -2.4e+03 0.23 0 0 0 Target initStep - 1 7.93 3.22 -2.4e+03 0 0.23 0.1 0.1 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 166 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.42 3.29 -2.41e+03 0.0337 0 0 0 Target initStep - 1 6.42 3.29 -2.41e+03 0 0.0337 0.00469 0.00469 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.38 0.699 -2.41e+03 4.73 0 0 0 Target initStep - 1 3.44 2.13 -2.41e+03 0 0 1.87 1.87 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 165 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.44 2.13 -2.41e+03 2.41 0 0 0 Target initStep - 1 3.46 2.27 -2.41e+03 0.812 1.6 1.57 1.57 Target eIoni - 2 3.44 2.25 -2.41e+03 0 0.812 0.568 2.14 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.01 0.245 -2.41e+03 0.241 0 0 0 Target initStep - 1 4.03 1.81 -2.41e+03 0 0.088 4.08 4.08 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 164 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.03 1.81 -2.41e+03 0.153 0 0 0 Target initStep - 1 4.03 1.81 -2.41e+03 0 0.153 0.054 0.054 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 163, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.94 0.198 -2.41e+03 2.05 0 0 0 Target initStep - 1 7.87 3.33 -2.4e+03 2.05 0 11.2 11.2 Tracker Transportation - 2 2.02e+03 1.28e+03 1.5e+03 2.05 0 4.57e+03 4.58e+03 Chamber_PV Transportation - 3 2.03e+03 1.29e+03 1.51e+03 2.05 0 15.1 4.6e+03 World Transportation - 4 2.76e+03 1.75e+03 2.94e+03 2.05 0 1.67e+03 6.27e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 162, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.97 0.176 -2.41e+03 4.92 0 0 0 Target initStep - 1 1.78 1.17 -2.4e+03 0 0 7.43 7.43 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 162 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.78 1.17 -2.4e+03 1.46 0 0 0 Target initStep - 1 1.75 1.2 -2.4e+03 0.251 1.21 1.12 1.12 Target eIoni - 2 1.75 1.2 -2.4e+03 0 0.251 0.115 1.23 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.01 0.034 -2.41e+03 8.09 0 0 0 Target initStep - 1 2.39 2.83 -2.4e+03 8.09 0 10.7 10.7 Tracker Transportation - 2 -39.8 192 -1.7e+03 8.09 0 726 737 Chamber_PV Transportation - 3 -49.3 235 -1.54e+03 8.09 0 164 901 Tracker Transportation - 4 -88 409 -900 8.09 0 667 1.57e+03 Chamber_PV Transportation - 5 -100 463 -700 8.09 0 208 1.77e+03 Tracker Transportation - 6 -136 625 -100 8.09 0 623 2.4e+03 Chamber_PV Transportation - 7 -148 679 100 8.09 0 208 2.6e+03 Tracker Transportation - 8 -184 842 700 8.09 0 623 3.23e+03 Chamber_PV Transportation - 9 -196 896 900 8.09 0 208 3.44e+03 Tracker Transportation - 10 -233 1.06e+03 1.5e+03 8.09 0 623 4.06e+03 Chamber_PV Transportation - 11 -245 1.11e+03 1.7e+03 8.09 0 208 4.27e+03 Tracker Transportation - 12 -287 1.3e+03 2.4e+03 8.09 0 726 4.99e+03 World Transportation - 13 -319 1.45e+03 2.94e+03 8.09 0 560 5.55e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 160, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.01 -0.00903 -2.41e+03 8.11 0 0 0 Target initStep - 1 2.45 2.69 -2.4e+03 8.11 0 10.9 10.9 Tracker Transportation - 2 -35 182 -1.7e+03 8.11 0 723 734 Chamber_PV Transportation - 3 -45.7 233 -1.5e+03 8.11 0 207 941 Tracker Transportation - 4 -77.8 386 -900 8.11 0 620 1.56e+03 Chamber_PV Transportation - 5 -88.5 437 -700 8.11 0 207 1.77e+03 Tracker Transportation - 6 -121 591 -100 8.11 0 620 2.39e+03 Chamber_PV Transportation - 7 -131 642 100 8.11 0 207 2.59e+03 Tracker Transportation - 8 -163 795 700 8.11 0 620 3.21e+03 Chamber_PV Transportation - 9 -174 846 900 8.11 0 207 3.42e+03 Tracker Transportation - 10 -206 1e+03 1.5e+03 8.11 0 620 4.04e+03 Chamber_PV Transportation - 11 -217 1.05e+03 1.7e+03 8.11 0 207 4.25e+03 Tracker Transportation - 12 -254 1.23e+03 2.4e+03 8.11 0 723 4.97e+03 World Transportation - 13 -283 1.37e+03 2.94e+03 8.11 0 558 5.53e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 159, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.43 -0.335 -2.41e+03 0.173 0 0 0 Target initStep - 1 2.46 -0.306 -2.41e+03 0 0.088 0.148 0.148 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 159 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.46 -0.306 -2.41e+03 0.0854 0 0 0 Target initStep - 1 2.46 -0.307 -2.41e+03 0 0.0854 0.0213 0.0213 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 158, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.35 -0.368 -2.41e+03 1.05 0 0 0 Target initStep - 1 5.26 0.895 -2.4e+03 1.05 0 12.7 12.7 Tracker Transportation - 2 172 73.1 -1.7e+03 1.05 0 723 736 Chamber_PV Transportation - 3 219 93.7 -1.5e+03 1.05 0 207 942 Tracker Transportation - 4 362 156 -900 1.05 0 620 1.56e+03 Chamber_PV Transportation - 5 409 176 -700 1.05 0 207 1.77e+03 Tracker Transportation - 6 552 238 -100 1.05 0 620 2.39e+03 Chamber_PV Transportation - 7 599 259 100 1.05 0 207 2.6e+03 Tracker Transportation - 8 742 321 700 1.05 0 620 3.21e+03 Chamber_PV Transportation - 9 789 341 900 1.05 0 207 3.42e+03 Tracker Transportation - 10 932 403 1.5e+03 1.05 0 620 4.04e+03 Chamber_PV Transportation - 11 979 424 1.7e+03 1.05 0 207 4.25e+03 Tracker Transportation - 12 1.15e+03 496 2.4e+03 1.05 0 723 4.97e+03 World Transportation - 13 1.27e+03 552 2.94e+03 1.05 0 558 5.53e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.29 -0.367 -2.41e+03 0.339 0 0 0 Target initStep - 1 3.09 -0.474 -2.41e+03 0 0.088 3.01 3.01 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 157 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.09 -0.474 -2.41e+03 0.251 0 0 0 Target initStep - 1 3.09 -0.478 -2.41e+03 0 0.251 0.114 0.114 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 156, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.15 -0.352 -2.41e+03 3.31 0 0 0 Target initStep - 1 3.29 -0.364 -2.41e+03 0 0 3.4 3.4 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 156 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.29 -0.364 -2.41e+03 0.0663 0 0 0 Target initStep - 1 3.29 -0.363 -2.41e+03 0 0.0663 0.0141 0.0141 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.98 -0.187 -2.41e+03 6.09 0 0 0 Target initStep - 1 2.2 -1.16 -2.4e+03 0 0 11.8 11.8 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 155 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.2 -1.16 -2.4e+03 1.37 0 0 0 Target initStep - 1 2.2 -1.19 -2.4e+03 0.144 1.23 1.05 1.05 Target eIoni - 2 2.2 -1.2 -2.4e+03 0 0.144 0.0487 1.1 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 154, Parent ID = 132 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.97 -0.181 -2.41e+03 2.14 0 0 0 Target initStep - 1 2.14 -0.608 -2.41e+03 0 0 4.32 4.32 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 154 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.14 -0.608 -2.41e+03 0.464 0 0 0 Target initStep - 1 2.14 -0.608 -2.41e+03 0 0.464 0.275 0.275 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 153, Parent ID = 148 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.48 1.29 -2.41e+03 0.473 0 0 0 Target initStep - 1 1.08 -0.144 -2.41e+03 0.376 0 1.56 1.56 Target compt - 2 1.14 -0.584 -2.41e+03 0.209 0 0.804 2.36 Target compt - 3 1.57 0.0192 -2.41e+03 0 0.088 0.791 3.15 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 153 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.57 0.0192 -2.41e+03 0.121 0 0 0 Target initStep - 1 1.57 0.0213 -2.41e+03 0 0.121 0.037 0.037 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 153 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 -0.584 -2.41e+03 0.167 0 0 0 Target initStep - 1 1.14 -0.587 -2.41e+03 0 0.167 0.0618 0.0618 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 153 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.08 -0.144 -2.41e+03 0.0976 0 0 0 Target initStep - 1 1.08 -0.146 -2.41e+03 0 0.0976 0.0264 0.0264 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 148 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.42 1.23 -2.41e+03 1.5 0 0 0 Target initStep - 1 9.81 7.98 -2.41e+03 1.33 0 11 11 Target compt - 2 14 13.4 -2.41e+03 0.487 0 6.81 17.8 Target compt - 3 14.4 14.6 -2.42e+03 0 0.088 3.54 21.3 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 152 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14.4 14.6 -2.42e+03 0.399 0 0 0 Target initStep - 1 14.4 14.6 -2.42e+03 0 0.399 0.223 0.223 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 152 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14 13.4 -2.41e+03 0.839 0 0 0 Target initStep - 1 14 13.4 -2.41e+03 0 0.839 0.591 0.591 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 152 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.81 7.98 -2.41e+03 0.176 0 0 0 Target initStep - 1 9.81 7.98 -2.41e+03 0 0.176 0.0669 0.0669 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 148 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.76 0.79 -2.41e+03 0.107 0 0 0 Target initStep - 1 1.55 1.21 -2.41e+03 0 0.088 0.498 0.498 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 151 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.55 1.21 -2.41e+03 0.019 0 0 0 Target initStep - 1 1.55 1.21 -2.41e+03 0 0.019 0.00188 0.00188 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 150, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.59 1.41 -2.41e+03 5.65 0 0 0 Target initStep - 1 -0.914 2.51 -2.41e+03 0 0 3.01 3.01 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 150 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.914 2.51 -2.41e+03 3.76 0 0 0 Target initStep - 1 -1.27 2.69 -2.41e+03 1.45 2.3 1.95 1.95 Target eIoni - 2 -1.26 2.78 -2.41e+03 0.18 1.27 1.11 3.06 Target eIoni - 3 -1.26 2.78 -2.41e+03 0 0.18 0.0695 3.13 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.59 1.41 -2.41e+03 1.29 0 0 0 Target initStep - 1 0.628 9.58 -2.41e+03 0.214 0 8.3 8.3 Target compt - 2 0.673 9.02 -2.41e+03 0 0.088 0.562 8.86 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 149 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.673 9.02 -2.41e+03 0.126 0 0 0 Target initStep - 1 0.671 9.02 -2.41e+03 0 0.126 0.0395 0.0395 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 149 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.628 9.58 -2.41e+03 1.08 0 0 0 Target initStep - 1 0.621 9.64 -2.41e+03 0 1.08 0.796 0.796 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.08 0.346 -2.41e+03 1.28 0 0 0 Target initStep - 1 -1.19 5.15 -2.4e+03 1.28 0 13.1 13.1 Tracker Transportation - 2 -419 618 -900 1.28 0 1.67e+03 1.69e+03 Chamber_PV Transportation - 3 -437 646 -833 1.28 0 75.3 1.76e+03 Tracker Transportation - 4 -641 945 -100 1.28 0 817 2.58e+03 Chamber_PV Transportation - 5 -697 1.03e+03 100 1.28 0 223 2.8e+03 Tracker Transportation - 6 -864 1.27e+03 700 1.28 0 669 3.47e+03 Chamber_PV Transportation - 7 -919 1.35e+03 900 1.28 0 223 3.69e+03 Tracker Transportation - 8 -1.09e+03 1.6e+03 1.5e+03 1.28 0 669 4.36e+03 Chamber_PV Transportation - 9 -1.14e+03 1.68e+03 1.7e+03 1.28 0 223 4.59e+03 Tracker Transportation - 10 -1.34e+03 1.97e+03 2.4e+03 1.28 0 781 5.37e+03 World Transportation - 11 -1.49e+03 2.19e+03 2.94e+03 1.28 0 602 5.97e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.23 0.173 -2.41e+03 0.131 0 0 0 Target initStep - 1 2.06 0.36 -2.41e+03 0 0.088 0.55 0.55 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 146 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.06 0.36 -2.41e+03 0.0431 0 0 0 Target initStep - 1 2.06 0.36 -2.41e+03 0 0.0431 0.00699 0.00699 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 145, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.99 -0.0418 -2.41e+03 8.06 0 0 0 Target initStep - 1 2.55 0.511 -2.41e+03 0 0 2.16 2.16 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 144, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.94 -0.0779 -2.41e+03 3.08 0 0 0 Target initStep - 1 5.53 2.28 -2.4e+03 3.08 0 14.3 14.3 Tracker Transportation - 2 189 123 -1.7e+03 3.08 0 734 748 Chamber_PV Transportation - 3 201 131 -1.66e+03 3.08 0 46.5 795 Tracker Transportation - 4 400 262 -900 3.08 0 792 1.59e+03 Chamber_PV Transportation - 5 452 296 -700 3.08 0 210 1.8e+03 Tracker Transportation - 6 610 400 -100 3.08 0 629 2.43e+03 Chamber_PV Transportation - 7 663 434 100 3.08 0 210 2.64e+03 Tracker Transportation - 8 820 538 700 3.08 0 629 3.26e+03 Chamber_PV Transportation - 9 873 573 900 3.08 0 210 3.47e+03 Tracker Transportation - 10 1.03e+03 676 1.5e+03 3.08 0 629 4.1e+03 Chamber_PV Transportation - 11 1.08e+03 711 1.7e+03 3.08 0 210 4.31e+03 Tracker Transportation - 12 1.27e+03 832 2.4e+03 3.08 0 734 5.05e+03 World Transportation - 13 1.41e+03 925 2.94e+03 3.08 0 566 5.61e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.9 -0.109 -2.41e+03 1.64 0 0 0 Target initStep - 1 6.29 4.06 -2.4e+03 1.64 0 15 15 Tracker Transportation - 2 484 459 -900 1.64 0 1.64e+03 1.65e+03 Chamber_PV Transportation - 3 548 519 -700 1.64 0 218 1.87e+03 Tracker Transportation - 4 739 701 -100 1.64 0 655 2.53e+03 Chamber_PV Transportation - 5 803 762 100 1.64 0 218 2.75e+03 Tracker Transportation - 6 994 944 700 1.64 0 655 3.4e+03 Chamber_PV Transportation - 7 1.06e+03 1e+03 900 1.64 0 218 3.62e+03 Tracker Transportation - 8 1.25e+03 1.19e+03 1.5e+03 1.64 0 655 4.28e+03 Chamber_PV Transportation - 9 1.31e+03 1.25e+03 1.7e+03 1.64 0 218 4.49e+03 Tracker Transportation - 10 1.54e+03 1.46e+03 2.4e+03 1.64 0 765 5.26e+03 World Transportation - 11 1.71e+03 1.62e+03 2.94e+03 1.64 0 590 5.85e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.86 -0.133 -2.41e+03 1.27 0 0 0 Target initStep - 1 2.47 0.224 -2.41e+03 0.654 0 1.84 1.84 Target compt - 2 -0.761 1.93 -2.41e+03 0.405 0 6.14 7.98 Target compt - 3 -1.24 0.207 -2.41e+03 0.185 0 2.71 10.7 Target compt - 4 -1.16 0.00867 -2.41e+03 0 0.088 0.574 11.3 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 141, Parent ID = 133 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.76 -0.154 -2.41e+03 0.18 0 0 0 Target initStep - 1 2.05 -0.0922 -2.41e+03 0 0.088 1.31 1.31 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 140, Parent ID = 136 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.85 -0.466 -2.41e+03 0.511 0 0 0 Target initStep - 1 0.925 2.41 -2.42e+03 0 0.088 7.11 7.11 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 139, Parent ID = 136 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.85 -0.466 -2.41e+03 0.511 0 0 0 Target initStep - 1 2.52 -2.55 -2.4e+03 0.379 0 5.16 5.16 Target compt - 2 2.37 -2.64 -2.4e+03 0 0.088 0.229 5.39 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 197, Parent ID = 145 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.55 0.511 -2.41e+03 0.0424 0 0 0 Target initStep - 1 2.55 0.511 -2.41e+03 0 0.0424 0.00602 0.00602 Target eIoni - 2 2.55 0.511 -2.41e+03 0 0 0 0.00602 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 192, Parent ID = 150 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.914 2.51 -2.41e+03 0.869 0 0 0 Target initStep - 1 -0.948 2.51 -2.41e+03 0 0.869 0.622 0.622 Target eIoni - 2 -0.948 2.51 -2.41e+03 0 0 0 0.622 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 183, Parent ID = 154 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.14 -0.608 -2.41e+03 0.65 0 0 0 Target initStep - 1 2.14 -0.616 -2.41e+03 0 0.65 0.43 0.43 Target eIoni - 2 2.14 -0.616 -2.41e+03 0 0 0 0.43 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 181, Parent ID = 155 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.2 -1.16 -2.4e+03 3.69 0 0 0 Target initStep - 1 2.21 -1.14 -2.4e+03 3.18 0.247 0.29 0.29 Target eBrem - 2 2.61 -0.981 -2.4e+03 1.2 1.98 1.83 2.12 Target eIoni - 3 2.69 -1 -2.4e+03 0 1.2 0.918 3.04 Target eIoni - 4 2.69 -1 -2.4e+03 0 0 0 3.04 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 179, Parent ID = 156 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.29 -0.364 -2.41e+03 2.22 0 0 0 Target initStep - 1 3.4 -0.423 -2.41e+03 0.784 1.31 1.37 1.37 Target eBrem - 2 3.37 -0.374 -2.41e+03 0 0.784 0.546 1.92 Target eIoni - 3 3.37 -0.374 -2.41e+03 0 0 0 1.92 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 175, Parent ID = 162 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.78 1.17 -2.4e+03 2.44 0 0 0 Target initStep - 1 1.76 1.19 -2.4e+03 1.22 0.931 0.813 0.813 Target eBrem - 2 1.74 1.07 -2.4e+03 0 1.22 0.931 1.74 Target eIoni - 3 1.74 1.07 -2.4e+03 0 0 0 1.74 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 172, Parent ID = 165 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.44 2.13 -2.41e+03 1.3 0 0 0 Target initStep - 1 3.43 2.23 -2.41e+03 0.317 0.982 0.769 0.769 Target eBrem - 2 3.43 2.25 -2.41e+03 0 0.317 0.158 0.926 Target eIoni - 3 3.43 2.25 -2.41e+03 0 0 0 0.926 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 121, Parent ID = 119 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.945 -17.8 -2.44e+03 1.89 0 0 0 Target initStep - 1 0.956 -17.9 -2.44e+03 0.931 0.859 0.843 0.843 Target eBrem - 2 0.902 -18 -2.44e+03 0 0.642 0.55 1.39 Target annihil - -********************************************************************************************************* -* 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 -7.48e-06 5.19e-05 -2.45e+03 193 0 0 0 Target initStep - 1 -0.0171 0.0204 -2.45e+03 191 1.27 1.09 1.09 Target eBrem - 2 -0.0334 0.0556 -2.45e+03 190 0.838 0.677 1.76 Target eBrem - 3 -0.0341 0.057 -2.45e+03 163 0.0374 0.0261 1.79 Target eBrem - 4 -0.0359 0.0978 -2.45e+03 155 0.933 0.821 2.61 Target eBrem - 5 -0.0384 0.101 -2.45e+03 140 0.116 0.114 2.72 Target eBrem - 6 -0.0427 0.104 -2.45e+03 138 0.151 0.162 2.89 Target eBrem - 7 -0.0432 0.104 -2.45e+03 138 0.0159 0.019 2.9 Target eBrem - 8 -0.0582 0.111 -2.45e+03 136 0.622 0.433 3.34 Target eBrem - 9 -0.129 0.186 -2.44e+03 134 1.64 1.36 4.69 Target eBrem - 10 -0.143 0.216 -2.44e+03 133 0.273 0.276 4.97 Target eBrem - 11 -0.16 0.246 -2.44e+03 131 0.457 0.286 5.26 Target eBrem - 12 -0.177 0.284 -2.44e+03 120 0.322 0.328 5.58 Target eBrem - 13 -0.196 0.328 -2.44e+03 118 1.51 0.667 6.25 Target eBrem - 14 -0.237 0.342 -2.44e+03 74.6 0.948 0.735 6.99 Target eBrem - 15 -0.237 0.335 -2.44e+03 72.3 0.664 0.39 7.38 Target eBrem - 16 -0.264 0.249 -2.44e+03 71 1 0.862 8.24 Target eBrem - 17 -0.268 0.246 -2.44e+03 70.8 0.0346 0.0372 8.28 Target eBrem - 18 -0.292 0.231 -2.44e+03 69.8 0.267 0.217 8.49 Target eBrem - 19 -0.302 0.226 -2.44e+03 68.9 0.102 0.0987 8.59 Target eBrem - 20 -0.342 0.21 -2.44e+03 65.2 0.317 0.256 8.85 Target eBrem - 21 -0.349 0.206 -2.44e+03 63.7 0.0846 0.0788 8.93 Target eBrem - 22 -0.4 0.112 -2.44e+03 60.9 0.669 0.608 9.53 Target eBrem - 23 -0.51 0.00145 -2.44e+03 38.7 1.59 0.972 10.5 Target eBrem - 24 -1.01 -0.0877 -2.44e+03 34.6 1.9 1.37 11.9 Target eBrem - 25 -1.17 -0.258 -2.44e+03 22.7 1.77 0.558 12.4 Target eBrem - 26 -1.58 -0.515 -2.44e+03 19.2 1.11 0.897 13.3 Target eBrem - 27 -1.84 -0.707 -2.44e+03 8.68 1.54 1.22 14.6 Target eBrem - 28 -1.91 -0.957 -2.43e+03 7.71 0.781 0.753 15.3 Target eBrem - 29 -1.89 -1.34 -2.43e+03 6.8 0.768 0.692 16 Target eBrem - 30 -1.87 -2 -2.43e+03 5.53 1.08 1.02 17 Target eBrem - 31 -1.72 -2 -2.43e+03 4.75 0.221 0.201 17.2 Target eBrem - 32 -1.56 -1.95 -2.43e+03 4.18 0.425 0.259 17.5 Target eBrem - 33 -1.08 -2.23 -2.43e+03 1.24 2.94 2.08 19.6 Target eIoni - 34 -1.03 -2.27 -2.43e+03 0.443 0.239 0.289 19.8 Target eBrem - 35 -1.01 -2.28 -2.43e+03 0 0.443 0.255 20.1 Target eIoni - 36 -1.01 -2.28 -2.43e+03 0 0 0 20.1 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 139 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.37 -2.64 -2.4e+03 0.291 0 0 0 Target initStep - 1 2.36 -2.64 -2.4e+03 0 0.291 0.142 0.142 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 139 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.52 -2.55 -2.4e+03 0.132 0 0 0 Target initStep - 1 2.52 -2.55 -2.4e+03 0 0.132 0.0428 0.0428 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 140 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.925 2.41 -2.42e+03 0.423 0 0 0 Target initStep - 1 0.926 2.43 -2.42e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 141 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.05 -0.0922 -2.41e+03 0.0915 0 0 0 Target initStep - 1 2.05 -0.0915 -2.41e+03 0 0.0915 0.0238 0.0238 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 142 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.16 0.00867 -2.41e+03 0.0968 0 0 0 Target initStep - 1 -1.16 0.00728 -2.41e+03 0 0.0968 0.026 0.026 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 142 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.24 0.207 -2.41e+03 0.22 0 0 0 Target initStep - 1 -1.25 0.204 -2.41e+03 0 0.22 0.0942 0.0942 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 142 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.761 1.93 -2.41e+03 0.249 0 0 0 Target initStep - 1 -0.765 1.94 -2.41e+03 0 0.249 0.113 0.113 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 142 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.47 0.224 -2.41e+03 0.619 0 0 0 Target initStep - 1 2.5 0.226 -2.41e+03 0 0.619 0.346 0.346 Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 145 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.55 0.511 -2.41e+03 7 0 0 0 Target initStep - 1 2.71 0.702 -2.41e+03 1.2 1.66 0.795 0.795 Target eBrem - 2 2.76 0.65 -2.41e+03 0 1.2 0.907 1.7 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 261, Parent ID = 196 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.71 0.702 -2.41e+03 4.14 0 0 0 Target initStep - 1 13.8 -3.56 -2.41e+03 0 0 12.2 12.2 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 262, Parent ID = 261 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.8 -3.56 -2.41e+03 1.99 0 0 0 Target initStep - 1 14 -3.6 -2.41e+03 0.497 1.49 1.41 1.41 Target eIoni - 2 14 -3.6 -2.41e+03 0 0.497 0.302 1.71 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 260, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.01 -2.28 -2.43e+03 0.511 0 0 0 Target initStep - 1 -6.64 5.66 -2.44e+03 0.189 0 13 13 Target compt - 2 -4.9 5.88 -2.44e+03 0 0.088 2.36 15.4 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 265, Parent ID = 260 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.9 5.88 -2.44e+03 0.101 0 0 0 Target initStep - 1 -4.9 5.88 -2.44e+03 0 0.101 0.0277 0.0277 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 264, Parent ID = 260 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.64 5.66 -2.44e+03 0.322 0 0 0 Target initStep - 1 -6.65 5.67 -2.44e+03 0 0.322 0.165 0.165 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 259, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.01 -2.28 -2.43e+03 0.511 0 0 0 Target initStep - 1 -0.0592 -3.63 -2.43e+03 0 0.088 2.21 2.21 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 266, Parent ID = 259 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0592 -3.63 -2.43e+03 0.423 0 0 0 Target initStep - 1 -0.0663 -3.64 -2.43e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 258, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.03 -2.27 -2.43e+03 0.56 0 0 0 Target initStep - 1 -16.4 -7.21 -2.42e+03 0.33 0 20.2 20.2 Target compt - 2 -16.4 -7.21 -2.42e+03 0.248 0 0.00126 20.2 Target compt - 3 -15.7 -7.95 -2.42e+03 0 0.088 1.01 21.2 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 269, Parent ID = 258 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -15.7 -7.95 -2.42e+03 0.16 0 0 0 Target initStep - 1 -15.7 -7.95 -2.42e+03 0 0.16 0.0576 0.0576 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 268, Parent ID = 258 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.4 -7.21 -2.42e+03 0.0825 0 0 0 Target initStep - 1 -16.4 -7.21 -2.42e+03 0 0.0825 0.0201 0.0201 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 267, Parent ID = 258 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.4 -7.21 -2.42e+03 0.23 0 0 0 Target initStep - 1 -16.4 -7.21 -2.42e+03 0 0.23 0.1 0.1 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 257, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.56 -1.95 -2.43e+03 0.14 0 0 0 Target initStep - 1 -1.5 -1.99 -2.43e+03 0 0.088 0.081 0.081 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 270, Parent ID = 257 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.5 -1.99 -2.43e+03 0.0524 0 0 0 Target initStep - 1 -1.5 -1.99 -2.43e+03 0 0.0524 0.00963 0.00963 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 256, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.72 -2 -2.43e+03 0.561 0 0 0 Target initStep - 1 -0.803 -1.8 -2.43e+03 0 0.088 2.03 2.03 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 271, Parent ID = 256 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.803 -1.8 -2.43e+03 0.473 0 0 0 Target initStep - 1 -0.789 -1.81 -2.43e+03 0 0.473 0.282 0.282 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 255, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.87 -2 -2.43e+03 0.194 0 0 0 Target initStep - 1 0.135 -2.13 -2.43e+03 0 0.088 2.58 2.58 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 272, Parent ID = 255 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.135 -2.13 -2.43e+03 0.106 0 0 0 Target initStep - 1 0.137 -2.13 -2.43e+03 0 0.106 0.03 0.03 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 254, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.89 -1.34 -2.43e+03 0.142 0 0 0 Target initStep - 1 -1.89 -1.35 -2.43e+03 0.116 0 0.0106 0.0106 Target compt - 2 -1.85 -1.34 -2.43e+03 0 0.088 0.0481 0.0587 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 274, Parent ID = 254 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.85 -1.34 -2.43e+03 0.0278 0 0 0 Target initStep - 1 -1.85 -1.34 -2.43e+03 0 0.0278 0.00345 0.00345 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 273, Parent ID = 254 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.89 -1.35 -2.43e+03 0.0264 0 0 0 Target initStep - 1 -1.89 -1.35 -2.43e+03 0 0.0264 0.00317 0.00317 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 253, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.91 -0.957 -2.43e+03 0.185 0 0 0 Target initStep - 1 -1.9 -0.992 -2.43e+03 0.181 0 0.0661 0.0661 Target compt - 2 -1.76 -1.13 -2.43e+03 0 0.088 0.397 0.463 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 276, Parent ID = 253 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.76 -1.13 -2.43e+03 0.0931 0 0 0 Target initStep - 1 -1.76 -1.13 -2.43e+03 0 0.0931 0.0244 0.0244 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 275, Parent ID = 253 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.9 -0.992 -2.43e+03 0.00355 0 0 0 Target initStep - 1 -1.9 -0.992 -2.43e+03 0 0.00355 0.000164 0.000164 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 252, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.84 -0.707 -2.44e+03 8.95 0 0 0 Target initStep - 1 -2.49 -2.73 -2.43e+03 1.92 0 4.8 4.8 Target compt - 2 10.9 -15.9 -2.41e+03 0.907 0 27.5 32.3 Target compt - 3 9.92 -17.8 -2.41e+03 0.702 0 3.43 35.7 Target compt - 4 12 -21.9 -2.4e+03 0.702 0 7.18 42.9 World Transportation - 5 13.2 -24.1 -2.4e+03 0.702 0 3.9 46.8 Tracker Transportation - 6 1.1e+03 -2.13e+03 426 0.702 0 3.69e+03 3.74e+03 World Transportation - 7 1.52e+03 -2.94e+03 1.51e+03 0.702 0 1.41e+03 5.15e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 279, Parent ID = 252 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.92 -17.8 -2.41e+03 0.205 0 0 0 Target initStep - 1 9.91 -17.8 -2.41e+03 0 0.205 0.0848 0.0848 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 278, Parent ID = 252 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.9 -15.9 -2.41e+03 1.02 0 0 0 Target initStep - 1 10.9 -15.9 -2.41e+03 0 1.02 0.746 0.746 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 277, Parent ID = 252 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.49 -2.73 -2.43e+03 7.02 0 0 0 Target initStep - 1 -2.61 -2.89 -2.43e+03 6.04 0.658 0.521 0.521 Target eBrem - 2 -2.59 -2.77 -2.43e+03 5.62 0.112 0.135 0.657 Target eBrem - 3 -2.4 -2.22 -2.43e+03 3.66 1.76 0.965 1.62 Target eBrem - 4 -2.05 -2.07 -2.43e+03 1.09 2.07 1.76 3.39 Target eBrem - 5 -2.04 -2.09 -2.43e+03 0.488 0.414 0.433 3.82 Target eBrem - 6 -2.03 -2.08 -2.43e+03 0 0.488 0.294 4.11 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 284, Parent ID = 277 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.04 -2.09 -2.43e+03 0.189 0 0 0 Target initStep - 1 -1.44 -1.42 -2.43e+03 0 0.088 1.09 1.09 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 285, Parent ID = 284 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.44 -1.42 -2.43e+03 0.101 0 0 0 Target initStep - 1 -1.44 -1.42 -2.43e+03 0 0.101 0.0278 0.0278 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 283, Parent ID = 277 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.05 -2.07 -2.43e+03 0.497 0 0 0 Target initStep - 1 -2.78 -3.44 -2.43e+03 0.406 0 4.01 4.01 Target compt - 2 -13 -1.18 -2.45e+03 0 0.088 16.2 20.2 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 287, Parent ID = 283 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13 -1.18 -2.45e+03 0.318 0 0 0 Target initStep - 1 -13 -1.19 -2.45e+03 0 0.318 0.162 0.162 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 286, Parent ID = 283 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.78 -3.44 -2.43e+03 0.0908 0 0 0 Target initStep - 1 -2.78 -3.44 -2.43e+03 0 0.0908 0.0235 0.0235 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 282, Parent ID = 277 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.4 -2.22 -2.43e+03 0.207 0 0 0 Target initStep - 1 -1.35 -1.6 -2.43e+03 0 0.088 1.25 1.25 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 288, Parent ID = 282 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.35 -1.6 -2.43e+03 0.119 0 0 0 Target initStep - 1 -1.34 -1.6 -2.43e+03 0 0.119 0.0361 0.0361 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 281, Parent ID = 277 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.59 -2.77 -2.43e+03 0.313 0 0 0 Target initStep - 1 -1.2 1.48 -2.43e+03 0.305 0 4.49 4.49 Target compt - 2 -1.16 3.57 -2.43e+03 0 0.088 2.1 6.59 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 290, Parent ID = 281 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.16 3.57 -2.43e+03 0.217 0 0 0 Target initStep - 1 -1.15 3.57 -2.43e+03 0 0.217 0.092 0.092 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 289, Parent ID = 281 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.2 1.48 -2.43e+03 0.00814 0 0 0 Target initStep - 1 -1.2 1.48 -2.43e+03 0 0.00814 0.000519 0.000519 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 280, Parent ID = 277 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.61 -2.89 -2.43e+03 0.323 0 0 0 Target initStep - 1 -1.8 1.3 -2.43e+03 0 0.088 4.45 4.45 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 291, Parent ID = 280 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.8 1.3 -2.43e+03 0.235 0 0 0 Target initStep - 1 -1.81 1.31 -2.43e+03 0 0.235 0.104 0.104 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 251, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.58 -0.515 -2.44e+03 2.46 0 0 0 Target initStep - 1 -2.62 -1.15 -2.43e+03 0 0.088 4.32 4.32 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 292, Parent ID = 251 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.62 -1.15 -2.43e+03 2.37 0 0 0 Target initStep - 1 -2.67 -1.2 -2.43e+03 0.936 0.872 0.864 0.864 Target eBrem - 2 -2.66 -1.18 -2.43e+03 0 0.936 0.675 1.54 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 293, Parent ID = 292 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.67 -1.2 -2.43e+03 0.562 0 0 0 Target initStep - 1 -1.74 -1.16 -2.43e+03 0 0.088 1.13 1.13 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 294, Parent ID = 293 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.74 -1.16 -2.43e+03 0.474 0 0 0 Target initStep - 1 -1.73 -1.16 -2.43e+03 0 0.474 0.283 0.283 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 250, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.17 -0.258 -2.44e+03 10.1 0 0 0 Target initStep - 1 -7.74 -4.62 -2.43e+03 0 0 14.3 14.3 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 295, Parent ID = 250 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.74 -4.62 -2.43e+03 7.34 0 0 0 Target initStep - 1 -8.27 -4.94 -2.42e+03 1.13 3.82 2.66 2.66 Target eBrem - 2 -8.24 -4.97 -2.42e+03 0.584 0.546 0.585 3.25 Target eBrem - 3 -8.25 -4.98 -2.42e+03 0 0.584 0.374 3.62 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 297, Parent ID = 295 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 -4.94 -2.42e+03 2.4 0 0 0 Target initStep - 1 0.357 -25 -2.4e+03 2.4 0 32.7 32.7 World Transportation - 2 0.406 -25.1 -2.4e+03 2.4 0 0.183 32.9 Tracker Transportation - 3 940 -2.21e+03 248 2.4 0 3.56e+03 3.59e+03 World Transportation - 4 1.25e+03 -2.94e+03 1.14e+03 2.4 0 1.19e+03 4.78e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 249, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.01 -0.0877 -2.44e+03 2.21 0 0 0 Target initStep - 1 -17.4 -14.1 -2.4e+03 2.21 0 43.6 43.6 Tracker Transportation - 2 -1.36e+03 -1.16e+03 700 2.21 0 3.57e+03 3.61e+03 Chamber_PV Transportation - 3 -1.41e+03 -1.21e+03 826 2.21 0 144 3.76e+03 Tracker Transportation - 4 -1.7e+03 -1.46e+03 1.5e+03 2.21 0 776 4.53e+03 Chamber_PV Transportation - 5 -1.79e+03 -1.53e+03 1.7e+03 2.21 0 230 4.76e+03 Tracker Transportation - 6 -1.82e+03 -1.56e+03 1.77e+03 2.21 0 84.4 4.85e+03 World Transportation - 7 -2.33e+03 -1.99e+03 2.94e+03 2.21 0 1.34e+03 6.19e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 248, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.51 0.00145 -2.44e+03 20.6 0 0 0 Target initStep - 1 -1.19 -0.358 -2.44e+03 0 0 3.27 3.27 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 298, Parent ID = 248 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.19 -0.358 -2.44e+03 1.26 0 0 0 Target initStep - 1 -1.23 -0.38 -2.44e+03 0 1.26 0.952 0.952 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 247, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.4 0.112 -2.44e+03 2.06 0 0 0 Target initStep - 1 -3.21 -3.73 -2.42e+03 0.588 0 19.2 19.2 Target compt - 2 12.6 -3.11 -2.41e+03 0.317 0 18.6 37.8 Target compt - 3 13.4 -5.92 -2.41e+03 0.146 0 2.94 40.8 Target compt - 4 13.4 -5.79 -2.41e+03 0 0.088 0.148 40.9 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 303, Parent ID = 247 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.4 -5.79 -2.41e+03 0.0582 0 0 0 Target initStep - 1 13.4 -5.79 -2.41e+03 0 0.0582 0.0114 0.0114 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 302, Parent ID = 247 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.4 -5.92 -2.41e+03 0.171 0 0 0 Target initStep - 1 13.4 -5.93 -2.41e+03 0 0.171 0.0639 0.0639 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 301, Parent ID = 247 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 12.6 -3.11 -2.41e+03 0.271 0 0 0 Target initStep - 1 12.6 -3.11 -2.41e+03 0 0.271 0.128 0.128 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 300, Parent ID = 247 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.21 -3.73 -2.42e+03 1.48 0 0 0 Target initStep - 1 -3.26 -3.75 -2.42e+03 0.0177 1.46 1.13 1.13 Target eIoni - 2 -3.26 -3.75 -2.42e+03 0 0.0177 0.00168 1.13 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 246, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.349 0.206 -2.44e+03 1.46 0 0 0 Target initStep - 1 -5.27 -3.77 -2.4e+03 0.227 0 40.3 40.3 Target compt - 2 -6.19 -2.9 -2.4e+03 0 0.088 3.16 43.5 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 305, Parent ID = 246 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.19 -2.9 -2.4e+03 0.139 0 0 0 Target initStep - 1 -6.19 -2.9 -2.4e+03 0 0.139 0.0465 0.0465 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 304, Parent ID = 246 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.27 -3.77 -2.4e+03 1.23 0 0 0 Target initStep - 1 -5.28 -3.78 -2.4e+03 0.42 0.372 0.365 0.365 Target eBrem - 2 -5.27 -3.79 -2.4e+03 0 0.42 0.24 0.605 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 306, Parent ID = 304 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.28 -3.78 -2.4e+03 0.441 0 0 0 Target initStep - 1 -4.63 -3.82 -2.4e+03 0.441 0 1.03 1.03 Tracker Transportation - 2 2.4e+03 -125 514 0.441 0 3.78e+03 3.78e+03 World Transportation - 3 2.94e+03 -153 1.17e+03 0.441 0 855 4.63e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 245, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.342 0.21 -2.44e+03 3.41 0 0 0 Target initStep - 1 -4.2 -1.63 -2.41e+03 0.257 0 33.9 33.9 Target compt - 2 -3.68 -1.11 -2.41e+03 0 0.088 1.17 35.1 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 308, Parent ID = 245 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.11 -2.41e+03 0.169 0 0 0 Target initStep - 1 -3.68 -1.11 -2.41e+03 0 0.169 0.0627 0.0627 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 307, Parent ID = 245 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.2 -1.63 -2.41e+03 3.15 0 0 0 Target initStep - 1 -4.25 -1.66 -2.41e+03 1.22 1.94 1.77 1.77 Target eBrem - 2 -4.3 -1.71 -2.41e+03 0 1.22 0.92 2.69 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 244, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.302 0.226 -2.44e+03 0.762 0 0 0 Target initStep - 1 -0.627 -0.00126 -2.44e+03 0 0.088 2.87 2.87 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 309, Parent ID = 244 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.627 -0.00126 -2.44e+03 0.674 0 0 0 Target initStep - 1 -0.641 -0.00802 -2.44e+03 0.373 0.301 0.273 0.273 Target eBrem - 2 -0.654 -0.00543 -2.44e+03 0 0.373 0.204 0.477 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 243, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.292 0.231 -2.44e+03 0.739 0 0 0 Target initStep - 1 -2.22 -0.987 -2.42e+03 0 0.088 17.2 17.2 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 310, Parent ID = 243 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.22 -0.987 -2.42e+03 0.651 0 0 0 Target initStep - 1 -2.21 -1.01 -2.42e+03 0 0.651 0.431 0.431 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 242, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.268 0.246 -2.44e+03 0.193 0 0 0 Target initStep - 1 -0.365 0.128 -2.44e+03 0 0.088 1.13 1.13 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 311, Parent ID = 242 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.365 0.128 -2.44e+03 0.105 0 0 0 Target initStep - 1 -0.365 0.128 -2.44e+03 0 0.105 0.0296 0.0296 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 241, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.264 0.249 -2.44e+03 0.293 0 0 0 Target initStep - 1 -0.599 0.00523 -2.44e+03 0 0.088 3.31 3.31 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 312, Parent ID = 241 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.599 0.00523 -2.44e+03 0.205 0 0 0 Target initStep - 1 -0.596 0.00293 -2.44e+03 0 0.205 0.0845 0.0845 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 240, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.237 0.335 -2.44e+03 1.64 0 0 0 Target initStep - 1 -2.77 -0.778 -2.41e+03 0.46 0 32.3 32.3 Target compt - 2 -2.97 -0.758 -2.41e+03 0.194 0 0.197 32.5 Target compt - 3 -2.63 -1.5 -2.41e+03 0 0.088 0.823 33.4 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 315, Parent ID = 240 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.63 -1.5 -2.41e+03 0.106 0 0 0 Target initStep - 1 -2.63 -1.5 -2.41e+03 0 0.106 0.0303 0.0303 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 314, Parent ID = 240 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.97 -0.758 -2.41e+03 0.266 0 0 0 Target initStep - 1 -2.97 -0.755 -2.41e+03 0 0.266 0.125 0.125 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 313, Parent ID = 240 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.77 -0.778 -2.41e+03 1.18 0 0 0 Target initStep - 1 -2.76 -0.782 -2.41e+03 0.184 0.995 0.705 0.705 Target eBrem - 2 -2.76 -0.781 -2.41e+03 0 0.184 0.0718 0.777 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.237 0.342 -2.44e+03 42.4 0 0 0 Target initStep - 1 -0.329 0.319 -2.44e+03 0 0 2.06 2.06 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 316, Parent ID = 239 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.329 0.319 -2.44e+03 37.8 0 0 0 Target initStep - 1 -0.36 0.281 -2.44e+03 29.6 0.97 0.736 0.736 Target eBrem - 2 -0.36 0.281 -2.44e+03 28.5 0.00982 0.00684 0.743 Target eBrem - 3 -0.353 0.285 -2.44e+03 28.1 0.164 0.146 0.889 Target eBrem - 4 -0.359 0.36 -2.44e+03 24.5 0.401 0.374 1.26 Target eBrem - 5 -0.0778 0.509 -2.44e+03 21.9 2.5 2.12 3.38 Target eBrem - 6 -0.0885 0.499 -2.44e+03 21 0.285 0.251 3.63 Target eBrem - 7 -0.0687 0.506 -2.44e+03 19.2 1.66 1.16 4.79 Target eBrem - 8 -0.0932 0.783 -2.44e+03 17.4 0.862 0.76 5.55 Target eBrem - 9 -0.126 0.795 -2.44e+03 14.8 0.0966 0.104 5.66 Target eBrem - 10 -0.218 0.853 -2.44e+03 14.3 0.302 0.277 5.93 Target eBrem - 11 -0.663 1.19 -2.43e+03 10.6 3.13 1.68 7.62 Target eBrem - 12 -1.62 1.72 -2.43e+03 6.71 3.69 1.71 9.32 Target eBrem - 13 -2.46 1.56 -2.43e+03 3.81 2.89 2.55 11.9 Target eIoni - 14 -2.29 1.77 -2.43e+03 1.83 0.795 0.839 12.7 Target eIoni - 15 -2.3 1.8 -2.43e+03 1.51 0.103 0.0774 12.8 Target eBrem - 16 -2.33 1.9 -2.43e+03 0 1.51 1.15 13.9 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 330, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.29 1.77 -2.43e+03 1.19 0 0 0 Target initStep - 1 -2.35 1.8 -2.43e+03 0.891 0.299 0.254 0.254 Target eBrem - 2 -2.4 1.8 -2.43e+03 0 0.891 0.636 0.89 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 331, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.3 1.8 -2.43e+03 0.214 0 0 0 Target initStep - 1 -2.51 2.19 -2.43e+03 0 0.088 0.443 0.443 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 332, Parent ID = 331 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.51 2.19 -2.43e+03 0.126 0 0 0 Target initStep - 1 -2.51 2.19 -2.43e+03 0 0.126 0.0398 0.0398 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 329, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.62 1.72 -2.43e+03 0.196 0 0 0 Target initStep - 1 -2.24 1.12 -2.43e+03 0 0.088 0.914 0.914 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 333, Parent ID = 329 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.24 1.12 -2.43e+03 0.108 0 0 0 Target initStep - 1 -2.24 1.12 -2.43e+03 0 0.108 0.031 0.031 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 328, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.663 1.19 -2.43e+03 0.553 0 0 0 Target initStep - 1 -10.5 6.24 -2.43e+03 0 0.088 13 13 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 334, Parent ID = 328 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.5 6.24 -2.43e+03 0.465 0 0 0 Target initStep - 1 -10.5 6.24 -2.43e+03 0 0.465 0.276 0.276 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 327, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.218 0.853 -2.44e+03 0.2 0 0 0 Target initStep - 1 -0.289 0.898 -2.43e+03 0 0.088 0.229 0.229 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 335, Parent ID = 327 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.289 0.898 -2.43e+03 0.112 0 0 0 Target initStep - 1 -0.29 0.896 -2.43e+03 0 0.112 0.0329 0.0329 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 326, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.126 0.795 -2.44e+03 2.56 0 0 0 Target initStep - 1 -7.49 4.9 -2.42e+03 0.688 0 20.6 20.6 Target compt - 2 -7.49 4.9 -2.42e+03 0.201 0 0.00967 20.6 Target compt - 3 -7.61 4.8 -2.42e+03 0 0.088 0.168 20.7 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 338, Parent ID = 326 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.61 4.8 -2.42e+03 0.113 0 0 0 Target initStep - 1 -7.61 4.8 -2.42e+03 0 0.113 0.0331 0.0331 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 337, Parent ID = 326 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.49 4.9 -2.42e+03 0.488 0 0 0 Target initStep - 1 -7.47 4.9 -2.42e+03 0 0.488 0.294 0.294 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 336, Parent ID = 326 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.49 4.9 -2.42e+03 1.88 0 0 0 Target initStep - 1 -7.58 4.92 -2.42e+03 0 1.88 1.36 1.36 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 325, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0932 0.783 -2.44e+03 0.95 0 0 0 Target initStep - 1 -10.1 3.53 -2.41e+03 0.798 0 31.8 31.8 Target compt - 2 -9.38 3.75 -2.4e+03 0.798 0 5.38 37.1 Tracker Transportation - 3 84.8 32.7 -1.7e+03 0.798 0 707 744 Chamber_PV Transportation - 4 112 40.9 -1.5e+03 0.798 0 202 946 Tracker Transportation - 5 192 65.7 -900 0.798 0 606 1.55e+03 Chamber_PV Transportation - 6 219 74 -700 0.798 0 202 1.75e+03 Tracker Transportation - 7 300 98.8 -100 0.798 0 606 2.36e+03 Chamber_PV Transportation - 8 327 107 100 0.798 0 202 2.56e+03 Tracker Transportation - 9 408 132 700 0.798 0 606 3.17e+03 Chamber_PV Transportation - 10 435 140 900 0.798 0 202 3.37e+03 Tracker Transportation - 11 515 165 1.5e+03 0.798 0 606 3.98e+03 Chamber_PV Transportation - 12 542 173 1.7e+03 0.798 0 202 4.18e+03 Tracker Transportation - 13 636 202 2.4e+03 0.798 0 707 4.88e+03 World Transportation - 14 709 224 2.94e+03 0.798 0 545 5.43e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 339, Parent ID = 325 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.1 3.53 -2.41e+03 0.152 0 0 0 Target initStep - 1 -10.1 3.53 -2.41e+03 0 0.152 0.0532 0.0532 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 324, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0687 0.506 -2.44e+03 0.099 0 0 0 Target initStep - 1 -0.0879 0.665 -2.44e+03 0 0.088 0.416 0.416 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 340, Parent ID = 324 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0879 0.665 -2.44e+03 0.011 0 0 0 Target initStep - 1 -0.0879 0.665 -2.44e+03 0 0.011 0.00081 0.00081 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 323, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0885 0.499 -2.44e+03 0.615 0 0 0 Target initStep - 1 -0.0633 0.478 -2.43e+03 0.215 0 2.63 2.63 Target compt - 2 0.244 0.669 -2.43e+03 0.159 0 0.435 3.07 Target compt - 3 0.206 0.674 -2.43e+03 0 0.088 0.0765 3.14 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 343, Parent ID = 323 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.206 0.674 -2.43e+03 0.0705 0 0 0 Target initStep - 1 0.205 0.674 -2.43e+03 0 0.0705 0.0156 0.0156 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 342, Parent ID = 323 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.244 0.669 -2.43e+03 0.0562 0 0 0 Target initStep - 1 0.245 0.669 -2.43e+03 0 0.0562 0.0108 0.0108 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 341, Parent ID = 323 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0633 0.478 -2.43e+03 0.4 0 0 0 Target initStep - 1 -0.0662 0.476 -2.43e+03 0 0.4 0.224 0.224 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 322, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0778 0.509 -2.44e+03 0.129 0 0 0 Target initStep - 1 -0.0991 0.485 -2.44e+03 0 0.088 0.461 0.461 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 344, Parent ID = 322 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0991 0.485 -2.44e+03 0.0413 0 0 0 Target initStep - 1 -0.0992 0.485 -2.44e+03 0 0.0413 0.00655 0.00655 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 321, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.359 0.36 -2.44e+03 3.16 0 0 0 Target initStep - 1 1.97 1.59 -2.42e+03 0 0 17 17 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 345, Parent ID = 321 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.97 1.59 -2.42e+03 0.7 0 0 0 Target initStep - 1 1.99 1.61 -2.42e+03 0 0.7 0.472 0.472 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 320, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.353 0.285 -2.44e+03 0.254 0 0 0 Target initStep - 1 -0.264 0.832 -2.44e+03 0 0.088 3.53 3.53 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 347, Parent ID = 320 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.264 0.832 -2.44e+03 0.166 0 0 0 Target initStep - 1 -0.262 0.833 -2.44e+03 0 0.166 0.0609 0.0609 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 319, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.36 0.281 -2.44e+03 1.1 0 0 0 Target initStep - 1 -0.0596 0.487 -2.43e+03 0 0.088 5.52 5.52 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 348, Parent ID = 319 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0596 0.487 -2.43e+03 1.01 0 0 0 Target initStep - 1 -0.0463 0.475 -2.43e+03 0.185 0.675 0.639 0.639 Target eBrem - 2 -0.0472 0.472 -2.43e+03 0 0.185 0.0724 0.712 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 349, Parent ID = 348 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0463 0.475 -2.43e+03 0.148 0 0 0 Target initStep - 1 -0.171 0.325 -2.43e+03 0 0.088 0.216 0.216 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 350, Parent ID = 349 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.171 0.325 -2.43e+03 0.06 0 0 0 Target initStep - 1 -0.171 0.324 -2.43e+03 0 0.06 0.012 0.012 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 318, Parent ID = 316 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.36 0.281 -2.44e+03 7.24 0 0 0 Target initStep - 1 0.0327 1.81 -2.42e+03 0 0 16.2 16.2 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 351, Parent ID = 318 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0327 1.81 -2.42e+03 4.09 0 0 0 Target initStep - 1 0.0651 1.88 -2.42e+03 3.76 0.202 0.241 0.241 Target eBrem - 2 -0.0201 1.87 -2.42e+03 3.09 0.118 0.116 0.356 Target eBrem - 3 -0.111 1.83 -2.42e+03 1.74 0.126 0.133 0.49 Target eBrem - 4 -0.223 1.84 -2.42e+03 0.429 1.31 1.29 1.78 Target eIoni - 5 -0.213 1.83 -2.42e+03 0 0.429 0.247 2.02 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 355, Parent ID = 351 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.111 1.83 -2.42e+03 1.23 0 0 0 Target initStep - 1 -6.32 -0.694 -2.42e+03 0 0.088 7.85 7.85 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 356, Parent ID = 355 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.32 -0.694 -2.42e+03 1.14 0 0 0 Target initStep - 1 -6.37 -0.713 -2.42e+03 0 1.14 0.852 0.852 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 354, Parent ID = 351 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0201 1.87 -2.42e+03 0.546 0 0 0 Target initStep - 1 -6.45 -0.83 -2.42e+03 0 0.088 7.82 7.82 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 357, Parent ID = 354 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.45 -0.83 -2.42e+03 0.458 0 0 0 Target initStep - 1 -6.46 -0.836 -2.42e+03 0 0.458 0.271 0.271 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 353, Parent ID = 351 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0651 1.88 -2.42e+03 0.129 0 0 0 Target initStep - 1 -0.547 1.84 -2.42e+03 0 0.088 0.728 0.728 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 358, Parent ID = 353 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.547 1.84 -2.42e+03 0.0408 0 0 0 Target initStep - 1 -0.547 1.84 -2.42e+03 0 0.0408 0.00641 0.00641 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.196 0.328 -2.44e+03 0.103 0 0 0 Target initStep - 1 -0.209 0.338 -2.44e+03 0.0902 0 0.372 0.372 Target compt - 2 -0.188 0.3 -2.44e+03 0 0.088 0.0461 0.418 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 360, Parent ID = 238 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.188 0.3 -2.44e+03 0.00219 0 0 0 Target initStep - 1 -0.188 0.3 -2.44e+03 0 0.00219 8.59e-05 8.59e-05 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 359, Parent ID = 238 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.209 0.338 -2.44e+03 0.0126 0 0 0 Target initStep - 1 -0.209 0.338 -2.44e+03 0 0.0126 0.000992 0.000992 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 237, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.177 0.284 -2.44e+03 11.1 0 0 0 Target initStep - 1 -0.708 1.69 -2.43e+03 8.56 0 13 13 Target compt - 2 2.26 4.71 -2.41e+03 2.75 0 24 37 Target compt - 3 5.93 9.58 -2.4e+03 2.75 0 9.67 46.7 Tracker Transportation - 4 1.44e+03 1.92e+03 538 2.75 0 3.79e+03 3.83e+03 World Transportation - 5 2.21e+03 2.94e+03 2.11e+03 2.75 0 2.03e+03 5.86e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 362, Parent ID = 237 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.26 4.71 -2.41e+03 5.81 0 0 0 Target initStep - 1 2.26 4.67 -2.41e+03 2.14 1.71 1.59 1.59 Target eBrem - 2 2.36 4.74 -2.41e+03 0.86 0.998 0.901 2.49 Target eBrem - 3 2.37 4.71 -2.41e+03 0 0.86 0.61 3.1 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 361, Parent ID = 237 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.708 1.69 -2.43e+03 2.55 0 0 0 Target initStep - 1 -0.775 1.69 -2.43e+03 2.11 0.313 0.192 0.192 Target eBrem - 2 -0.864 1.79 -2.43e+03 1.64 0.307 0.262 0.454 Target eBrem - 3 -0.941 1.86 -2.43e+03 0.137 1.5 1.23 1.69 Target eIoni - 4 -0.942 1.86 -2.43e+03 0 0.137 0.0453 1.73 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 366, Parent ID = 361 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.864 1.79 -2.43e+03 0.159 0 0 0 Target initStep - 1 -1.25 2.1 -2.43e+03 0 0.088 0.579 0.579 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 367, Parent ID = 366 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.25 2.1 -2.43e+03 0.0709 0 0 0 Target initStep - 1 -1.25 2.1 -2.43e+03 0 0.0709 0.0157 0.0157 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 365, Parent ID = 361 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.775 1.69 -2.43e+03 0.131 0 0 0 Target initStep - 1 -0.864 1.78 -2.43e+03 0 0.088 0.127 0.127 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 368, Parent ID = 365 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.864 1.78 -2.43e+03 0.0433 0 0 0 Target initStep - 1 -0.863 1.78 -2.43e+03 0 0.0433 0.00705 0.00705 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 364, Parent ID = 362 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.36 4.74 -2.41e+03 0.281 0 0 0 Target initStep - 1 2.24 2.48 -2.41e+03 0 0.088 3.96 3.96 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 369, Parent ID = 364 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.24 2.48 -2.41e+03 0.193 0 0 0 Target initStep - 1 2.24 2.48 -2.41e+03 0 0.193 0.0772 0.0772 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 363, Parent ID = 362 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.26 4.67 -2.41e+03 1.96 0 0 0 Target initStep - 1 5.36 8.57 -2.4e+03 1.96 0 8.41 8.41 Tracker Transportation - 2 1.49e+03 1.88e+03 844 1.96 0 4.03e+03 4.04e+03 World Transportation - 3 2.33e+03 2.94e+03 2.68e+03 1.96 0 2.28e+03 6.32e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 236, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.16 0.246 -2.44e+03 1.82 0 0 0 Target initStep - 1 -0.375 0.616 -2.44e+03 0.336 0 3.46 3.46 Target compt - 2 -0.209 1.86 -2.44e+03 0 0.088 1.33 4.8 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 371, Parent ID = 236 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.209 1.86 -2.44e+03 0.248 0 0 0 Target initStep - 1 -0.211 1.87 -2.44e+03 0 0.248 0.113 0.113 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 370, Parent ID = 236 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.375 0.616 -2.44e+03 1.48 0 0 0 Target initStep - 1 -0.383 0.61 -2.44e+03 0 1.48 1.13 1.13 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 235, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.143 0.216 -2.44e+03 0.157 0 0 0 Target initStep - 1 -0.158 0.243 -2.44e+03 0 0.088 0.243 0.243 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 372, Parent ID = 235 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.158 0.243 -2.44e+03 0.0689 0 0 0 Target initStep - 1 -0.158 0.244 -2.44e+03 0 0.0689 0.015 0.015 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 234, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.129 0.186 -2.44e+03 0.203 0 0 0 Target initStep - 1 -0.158 0.235 -2.44e+03 0 0.088 0.424 0.424 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 373, Parent ID = 234 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.158 0.235 -2.44e+03 0.115 0 0 0 Target initStep - 1 -0.158 0.233 -2.44e+03 0 0.115 0.0343 0.0343 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 233, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0582 0.111 -2.45e+03 1.95 0 0 0 Target initStep - 1 -1.16 1.26 -2.41e+03 0.367 0 32.9 32.9 Target compt - 2 -2.05 0.304 -2.41e+03 0.345 0 1.31 34.2 Target compt - 3 -2.5 -0.455 -2.41e+03 0 0.088 0.905 35.1 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 376, Parent ID = 233 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.5 -0.455 -2.41e+03 0.257 0 0 0 Target initStep - 1 -2.5 -0.462 -2.41e+03 0 0.257 0.119 0.119 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 375, Parent ID = 233 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.05 0.304 -2.41e+03 0.0215 0 0 0 Target initStep - 1 -2.05 0.304 -2.41e+03 0 0.0215 0.00228 0.00228 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 374, Parent ID = 233 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.16 1.26 -2.41e+03 1.58 0 0 0 Target initStep - 1 -1.15 1.27 -2.41e+03 0 1.58 1.08 1.08 Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 232, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0432 0.104 -2.45e+03 0.189 0 0 0 Target initStep - 1 -0.0485 0.104 -2.45e+03 0 0.088 0.199 0.199 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 377, Parent ID = 232 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0485 0.104 -2.45e+03 0.101 0 0 0 Target initStep - 1 -0.0488 0.105 -2.45e+03 0 0.101 0.0278 0.0278 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 231, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0427 0.104 -2.45e+03 1.19 0 0 0 Target initStep - 1 -1.25 0.456 -2.4e+03 1.19 0 46.7 46.7 Tracker Transportation - 2 -19.4 5.73 -1.7e+03 1.19 0 700 747 Chamber_PV Transportation - 3 -24.6 7.23 -1.5e+03 1.19 0 200 947 Tracker Transportation - 4 -40.1 11.8 -900 1.19 0 600 1.55e+03 Chamber_PV Transportation - 5 -45.3 13.3 -700 1.19 0 200 1.75e+03 Tracker Transportation - 6 -60.8 17.8 -100 1.19 0 600 2.35e+03 Chamber_PV Transportation - 7 -66 19.3 100 1.19 0 200 2.55e+03 Tracker Transportation - 8 -81.6 23.8 700 1.19 0 600 3.15e+03 Chamber_PV Transportation - 9 -86.7 25.3 900 1.19 0 200 3.35e+03 Tracker Transportation - 10 -102 29.8 1.5e+03 1.19 0 600 3.95e+03 Chamber_PV Transportation - 11 -107 31.3 1.7e+03 1.19 0 200 4.15e+03 Tracker Transportation - 12 -126 36.6 2.4e+03 1.19 0 700 4.85e+03 World Transportation - 13 -140 40.7 2.94e+03 1.19 0 540 5.39e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 230, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0384 0.101 -2.45e+03 15.5 0 0 0 Target initStep - 1 -1.06 0.922 -2.4e+03 15.5 0 46.9 46.9 Tracker Transportation - 2 -16.4 13.2 -1.7e+03 15.5 0 700 747 Chamber_PV Transportation - 3 -20.8 16.7 -1.5e+03 15.5 0 200 947 Tracker Transportation - 4 -33.9 27.2 -900 15.5 0 600 1.55e+03 Chamber_PV Transportation - 5 -38.3 30.7 -700 15.5 0 200 1.75e+03 Tracker Transportation - 6 -51.4 41.2 -100 15.5 0 600 2.35e+03 Chamber_PV Transportation - 7 -55.8 44.7 100 15.5 0 200 2.55e+03 Tracker Transportation - 8 -68.9 55.2 700 15.5 0 600 3.15e+03 Chamber_PV Transportation - 9 -73.3 58.7 900 15.5 0 200 3.35e+03 Tracker Transportation - 10 -86.5 69.2 1.5e+03 15.5 0 600 3.95e+03 Chamber_PV Transportation - 11 -90.8 72.7 1.7e+03 15.5 0 200 4.15e+03 Tracker Transportation - 12 -106 85 2.4e+03 15.5 0 700 4.85e+03 World Transportation - 13 -118 94.5 2.94e+03 15.5 0 540 5.39e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 229, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0359 0.0978 -2.45e+03 6.52 0 0 0 Target initStep - 1 -0.38 0.713 -2.43e+03 6.01 0 17.1 17.1 Target compt - 2 -0.333 1.93 -2.42e+03 0.495 0 8.16 25.3 Target compt - 3 1.97 -15.4 -2.42e+03 0 0.088 17.9 43.2 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 380, Parent ID = 229 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.97 -15.4 -2.42e+03 0.407 0 0 0 Target initStep - 1 1.96 -15.5 -2.42e+03 0 0.407 0.23 0.23 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 379, Parent ID = 229 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.333 1.93 -2.42e+03 5.51 0 0 0 Target initStep - 1 -0.336 2.09 -2.42e+03 2.39 3.12 2.33 2.33 Target eIoni - 2 -0.406 2.29 -2.42e+03 1.15 1.25 0.93 3.26 Target eIoni - 3 -0.373 2.35 -2.42e+03 0 1.15 0.857 4.11 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 378, Parent ID = 229 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.38 0.713 -2.43e+03 0.516 0 0 0 Target initStep - 1 -0.385 0.697 -2.43e+03 0 0.516 0.318 0.318 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 228, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0341 0.057 -2.45e+03 26.9 0 0 0 Target initStep - 1 -0.45 0.816 -2.43e+03 0 0 13.5 13.5 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 381, Parent ID = 228 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.45 0.816 -2.43e+03 5.39 0 0 0 Target initStep - 1 -0.47 0.815 -2.43e+03 3.25 1.08 0.928 0.928 Target eBrem - 2 -0.495 1.14 -2.43e+03 1.39 1.86 1.82 2.75 Target eIoni - 3 -0.556 1.16 -2.43e+03 0.613 0.773 0.75 3.5 Target eBrem - 4 -0.544 1.18 -2.43e+03 0 0.613 0.399 3.9 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 383, Parent ID = 381 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.47 0.815 -2.43e+03 1.06 0 0 0 Target initStep - 1 -5.75 17.6 -2.44e+03 0.362 0 17.7 17.7 Target compt - 2 -9.6 16.4 -2.44e+03 0.345 0 4.72 22.4 Target compt - 3 -9.61 16.4 -2.44e+03 0 0.088 0.0113 22.4 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 386, Parent ID = 383 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.61 16.4 -2.44e+03 0.257 0 0 0 Target initStep - 1 -9.61 16.4 -2.44e+03 0 0.257 0.119 0.119 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 385, Parent ID = 383 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.6 16.4 -2.44e+03 0.0175 0 0 0 Target initStep - 1 -9.6 16.4 -2.44e+03 0 0.0175 0.00165 0.00165 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 384, Parent ID = 383 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.75 17.6 -2.44e+03 0.698 0 0 0 Target initStep - 1 -5.75 17.6 -2.44e+03 0 0.698 0.471 0.471 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 227, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0334 0.0556 -2.45e+03 0.593 0 0 0 Target initStep - 1 -0.18 0.328 -2.44e+03 0.23 0 4.89 4.89 Target compt - 2 -0.279 1.96 -2.44e+03 0 0.088 1.8 6.69 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 388, Parent ID = 227 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.279 1.96 -2.44e+03 0.142 0 0 0 Target initStep - 1 -0.279 1.96 -2.44e+03 0 0.142 0.0478 0.0478 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 387, Parent ID = 227 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.18 0.328 -2.44e+03 0.363 0 0 0 Target initStep - 1 -0.18 0.325 -2.44e+03 0 0.363 0.196 0.196 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 226, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0171 0.0204 -2.45e+03 0.517 0 0 0 Target initStep - 1 -0.101 0.243 -2.44e+03 0.221 0 4.41 4.41 Target compt - 2 -0.234 -0.527 -2.44e+03 0 0.088 0.813 5.23 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 390, Parent ID = 226 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.234 -0.527 -2.44e+03 0.133 0 0 0 Target initStep - 1 -0.235 -0.529 -2.44e+03 0 0.133 0.0434 0.0434 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 389, Parent ID = 226 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.101 0.243 -2.44e+03 0.296 0 0 0 Target initStep - 1 -0.1 0.247 -2.44e+03 0 0.296 0.146 0.146 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 225, Parent ID = 121 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.902 -18 -2.44e+03 0.804 0 0 0 Target initStep - 1 4.04 -14.8 -2.43e+03 0.528 0 5.53 5.53 Target compt - 2 0.636 -6.69 -2.42e+03 0 0.088 18 23.5 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 392, Parent ID = 225 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.636 -6.69 -2.42e+03 0.44 0 0 0 Target initStep - 1 0.63 -6.69 -2.42e+03 0 0.44 0.256 0.256 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 391, Parent ID = 225 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.04 -14.8 -2.43e+03 0.276 0 0 0 Target initStep - 1 4.04 -14.8 -2.43e+03 0 0.276 0.132 0.132 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 224, Parent ID = 121 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.902 -18 -2.44e+03 0.507 0 0 0 Target initStep - 1 1.48 -19.3 -2.44e+03 0 0.088 6.5 6.5 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 393, Parent ID = 224 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.48 -19.3 -2.44e+03 0.419 0 0 0 Target initStep - 1 1.49 -19.3 -2.44e+03 0 0.419 0.24 0.24 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 223, Parent ID = 121 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.956 -17.9 -2.44e+03 0.0978 0 0 0 Target initStep - 1 0.946 -17.9 -2.44e+03 0 0.088 0.0103 0.0103 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 394, Parent ID = 223 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.946 -17.9 -2.44e+03 0.00976 0 0 0 Target initStep - 1 0.946 -17.9 -2.44e+03 0 0.00976 0.000677 0.000677 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 222, Parent ID = 172 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.43 2.25 -2.41e+03 0.511 0 0 0 Target initStep - 1 4.16 3.16 -2.41e+03 0 0.088 1.41 1.41 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 395, Parent ID = 222 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.16 3.16 -2.41e+03 0.423 0 0 0 Target initStep - 1 4.17 3.17 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 221, Parent ID = 172 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.43 2.25 -2.41e+03 0.511 0 0 0 Target initStep - 1 2.95 1.64 -2.41e+03 0 0.088 0.929 0.929 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 396, Parent ID = 221 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.95 1.64 -2.41e+03 0.423 0 0 0 Target initStep - 1 2.94 1.64 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 220, Parent ID = 175 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.74 1.07 -2.4e+03 0.511 0 0 0 Target initStep - 1 2.83 0.946 -2.4e+03 0.177 0 1.17 1.17 Target compt - 2 2.81 0.956 -2.4e+03 0 0.088 0.0173 1.18 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 398, Parent ID = 220 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.81 0.956 -2.4e+03 0.0889 0 0 0 Target initStep - 1 2.81 0.956 -2.4e+03 0 0.0889 0.0227 0.0227 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 397, Parent ID = 220 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.83 0.946 -2.4e+03 0.334 0 0 0 Target initStep - 1 2.84 0.943 -2.4e+03 0 0.334 0.174 0.174 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 175 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.74 1.07 -2.4e+03 0.511 0 0 0 Target initStep - 1 -1.85 1.5 -2.4e+03 0.384 0 3.87 3.87 Target compt - 2 -7.79 10.4 -2.41e+03 0 0.088 11 14.9 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 400, Parent ID = 219 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.79 10.4 -2.41e+03 0.296 0 0 0 Target initStep - 1 -7.8 10.4 -2.41e+03 0 0.296 0.146 0.146 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 399, Parent ID = 219 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.85 1.5 -2.4e+03 0.127 0 0 0 Target initStep - 1 -1.85 1.5 -2.4e+03 0 0.127 0.0402 0.0402 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 218, Parent ID = 175 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.76 1.19 -2.4e+03 0.29 0 0 0 Target initStep - 1 1.76 1.12 -2.4e+03 0 0.088 0.0653 0.0653 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 401, Parent ID = 218 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.76 1.12 -2.4e+03 0.202 0 0 0 Target initStep - 1 1.76 1.12 -2.4e+03 0 0.202 0.0825 0.0825 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 217, Parent ID = 179 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.37 -0.374 -2.41e+03 0.511 0 0 0 Target initStep - 1 -0.794 1.35 -2.42e+03 0.182 0 10.8 10.8 Target compt - 2 -0.709 1.26 -2.42e+03 0 0.088 0.154 10.9 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 403, Parent ID = 217 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.709 1.26 -2.42e+03 0.0943 0 0 0 Target initStep - 1 -0.709 1.25 -2.42e+03 0 0.0943 0.025 0.025 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 402, Parent ID = 217 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.794 1.35 -2.42e+03 0.329 0 0 0 Target initStep - 1 -0.799 1.36 -2.42e+03 0 0.329 0.17 0.17 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 216, Parent ID = 179 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.37 -0.374 -2.41e+03 0.511 0 0 0 Target initStep - 1 3.53 -0.437 -2.41e+03 0 0.088 0.392 0.392 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 404, Parent ID = 216 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.53 -0.437 -2.41e+03 0.423 0 0 0 Target initStep - 1 3.53 -0.43 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 179 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.4 -0.423 -2.41e+03 0.123 0 0 0 Target initStep - 1 3.8 0.0659 -2.41e+03 0 0.088 0.636 0.636 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 405, Parent ID = 215 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.8 0.0659 -2.41e+03 0.0349 0 0 0 Target initStep - 1 3.81 0.0658 -2.41e+03 0 0.0349 0.00498 0.00498 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 214, Parent ID = 181 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.69 -1 -2.4e+03 0.511 0 0 0 Target initStep - 1 3.12 5.85 -2.4e+03 0.511 0 7.12 7.12 Tracker Transportation - 2 153 2.4e+03 -1.75e+03 0.511 0 2.48e+03 2.49e+03 World Transportation - 3 187 2.94e+03 -1.6e+03 0.511 0 566 3.05e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 213, Parent ID = 181 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.69 -1 -2.4e+03 0.511 0 0 0 Target initStep - 1 2.18 -9.02 -2.4e+03 0.306 0 8.33 8.33 Target compt - 2 2.67 -9.33 -2.4e+03 0 0.088 0.617 8.95 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 407, Parent ID = 213 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.67 -9.33 -2.4e+03 0.218 0 0 0 Target initStep - 1 2.67 -9.33 -2.4e+03 0 0.218 0.0927 0.0927 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 406, Parent ID = 213 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.18 -9.02 -2.4e+03 0.205 0 0 0 Target initStep - 1 2.18 -9.03 -2.4e+03 0 0.205 0.0847 0.0847 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 212, Parent ID = 181 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.21 -1.14 -2.4e+03 0.268 0 0 0 Target initStep - 1 2.25 -0.768 -2.4e+03 0 0.088 0.372 0.372 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 408, Parent ID = 212 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.25 -0.768 -2.4e+03 0.18 0 0 0 Target initStep - 1 2.25 -0.764 -2.4e+03 0 0.18 0.069 0.069 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 211, Parent ID = 183 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.14 -0.616 -2.41e+03 0.511 0 0 0 Target initStep - 1 1.75 -1.26 -2.41e+03 0 0.088 0.765 0.765 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 409, Parent ID = 211 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.75 -1.26 -2.41e+03 0.423 0 0 0 Target initStep - 1 1.74 -1.26 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 210, Parent ID = 183 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.14 -0.616 -2.41e+03 0.511 0 0 0 Target initStep - 1 14.8 20.1 -2.41e+03 0.511 0 24.7 24.7 World Transportation - 2 1.47e+03 2.4e+03 -2.94e+03 0.511 0 2.84e+03 2.86e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 209, Parent ID = 192 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.948 2.51 -2.41e+03 0.511 0 0 0 Target initStep - 1 0.284 2.34 -2.41e+03 0 0.088 3.08 3.08 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 410, Parent ID = 209 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.284 2.34 -2.41e+03 0.423 0 0 0 Target initStep - 1 0.294 2.34 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 208, Parent ID = 192 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.948 2.51 -2.41e+03 0.511 0 0 0 Target initStep - 1 -5.38 3.14 -2.4e+03 0.334 0 11.1 11.1 Target compt - 2 -9.99 5.48 -2.4e+03 0 0.088 5.2 16.3 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 412, Parent ID = 208 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.99 5.48 -2.4e+03 0.246 0 0 0 Target initStep - 1 -10 5.48 -2.4e+03 0 0.246 0.111 0.111 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 411, Parent ID = 208 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.38 3.14 -2.4e+03 0.177 0 0 0 Target initStep - 1 -5.38 3.14 -2.4e+03 0 0.177 0.0675 0.0675 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 207, Parent ID = 197 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.55 0.511 -2.41e+03 0.511 0 0 0 Target initStep - 1 2.25 -3.69 -2.41e+03 0 0.088 4.58 4.58 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 206, Parent ID = 197 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.55 0.511 -2.41e+03 0.511 0 0 0 Target initStep - 1 2.73 3.05 -2.41e+03 0.201 0 2.77 2.77 Target compt - 2 2.7 2.67 -2.41e+03 0.183 0 0.466 3.24 Target compt - 3 3.32 2.06 -2.41e+03 0.149 0 1.08 4.32 Target compt - 4 3.45 2.05 -2.41e+03 0.119 0 0.133 4.45 Target compt - 5 3.44 2.06 -2.41e+03 0 0.088 0.0201 4.47 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 382, Parent ID = 228 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.45 0.816 -2.43e+03 20.5 0 0 0 Target initStep - 1 -0.457 0.833 -2.43e+03 19.9 0.237 0.238 0.238 Target eBrem - 2 -0.46 1.14 -2.43e+03 17.6 2.03 2.07 2.3 Target eBrem - 3 -0.557 1.15 -2.43e+03 17 0.127 0.0987 2.4 Target eBrem - 4 -0.671 1.15 -2.43e+03 0.992 0.118 0.116 2.52 Target eBrem - 5 -0.716 1.19 -2.43e+03 0 0.992 0.731 3.25 Target eIoni - 6 -0.716 1.19 -2.43e+03 0 0 0 3.25 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 352, Parent ID = 318 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0327 1.81 -2.42e+03 2.13 0 0 0 Target initStep - 1 -0.0224 1.71 -2.42e+03 0.838 1.15 1.19 1.19 Target eBrem - 2 -0.0695 1.75 -2.42e+03 0 0.163 0.151 1.35 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 346, Parent ID = 321 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.97 1.59 -2.42e+03 1.44 0 0 0 Target initStep - 1 1.95 1.56 -2.42e+03 0.0665 1.37 1.12 1.12 Target eIoni - 2 1.95 1.56 -2.42e+03 0 0.0665 0.0129 1.13 Target eIoni - 3 1.95 1.56 -2.42e+03 0 0 0 1.13 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 317, Parent ID = 239 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.329 0.319 -2.44e+03 3.5 0 0 0 Target initStep - 1 -0.351 0.322 -2.44e+03 1.31 2.19 1.92 1.92 Target eIoni - 2 -0.251 0.259 -2.44e+03 0.235 1.07 0.966 2.88 Target eBrem - 3 -0.253 0.269 -2.44e+03 0 0.235 0.101 2.98 Target eIoni - 4 -0.253 0.269 -2.44e+03 0 0 0 2.98 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 299, Parent ID = 248 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.19 -0.358 -2.44e+03 18.3 0 0 0 Target initStep - 1 -1.29 -0.409 -2.44e+03 17.3 0.739 0.568 0.568 Target eBrem - 2 -1.51 -0.276 -2.43e+03 14.1 3.1 2.55 3.12 Target eBrem - 3 -1.52 -0.284 -2.43e+03 13.4 0.243 0.16 3.28 Target eBrem - 4 -1.65 -0.492 -2.43e+03 11.6 1.67 1.68 4.96 Target eBrem - 5 -1.89 -0.146 -2.43e+03 7.81 3.83 3.45 8.41 Target eIoni - 6 -2.1 -0.436 -2.43e+03 1.81 0.691 0.389 8.8 Target eBrem - 7 -2.15 -0.63 -2.43e+03 0.256 1.56 1.35 10.1 Target eIoni - 8 -2.14 -0.638 -2.43e+03 0 0.256 0.115 10.3 Target eIoni - 9 -2.14 -0.638 -2.43e+03 0 0 0 10.3 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 296, Parent ID = 250 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.74 -4.62 -2.43e+03 1.76 0 0 0 Target initStep - 1 -7.82 -4.69 -2.43e+03 0.478 1.28 1.32 1.32 Target eIoni - 2 -7.83 -4.69 -2.43e+03 0 0.478 0.284 1.6 Target eIoni - 3 -7.83 -4.69 -2.43e+03 0 0 0 1.6 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 263, Parent ID = 261 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.8 -3.56 -2.41e+03 1.12 0 0 0 Target initStep - 1 13.9 -3.6 -2.41e+03 0 1.12 0.847 0.847 Target eIoni - 2 13.9 -3.6 -2.41e+03 0 0 0 0.847 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 418, Parent ID = 206 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.44 2.06 -2.41e+03 0.0308 0 0 0 Target initStep - 1 3.44 2.06 -2.41e+03 0 0.0308 0.00406 0.00406 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 417, Parent ID = 206 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.45 2.05 -2.41e+03 0.03 0 0 0 Target initStep - 1 3.45 2.05 -2.41e+03 0 0.03 0.00388 0.00388 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 416, Parent ID = 206 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.32 2.06 -2.41e+03 0.0346 0 0 0 Target initStep - 1 3.32 2.06 -2.41e+03 0 0.0346 0.0049 0.0049 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 415, Parent ID = 206 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.7 2.67 -2.41e+03 0.0174 0 0 0 Target initStep - 1 2.7 2.67 -2.41e+03 0 0.0174 0.00163 0.00163 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 414, Parent ID = 206 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.73 3.05 -2.41e+03 0.31 0 0 0 Target initStep - 1 2.73 3.06 -2.41e+03 0 0.31 0.156 0.156 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 413, Parent ID = 207 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.25 -3.69 -2.41e+03 0.423 0 0 0 Target initStep - 1 2.24 -3.7 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 442, Parent ID = 263 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.9 -3.6 -2.41e+03 0.511 0 0 0 Target initStep - 1 22.2 -4.23 -2.4e+03 0.428 0 11.3 11.3 Target compt - 2 23.5 -3.47 -2.4e+03 0.428 0 1.59 12.9 Tracker Transportation - 3 2.06e+03 1.23e+03 -1.44e+03 0.428 0 2.57e+03 2.58e+03 World Transportation - 4 2.94e+03 1.77e+03 -1.02e+03 0.428 0 1.11e+03 3.69e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 443, Parent ID = 442 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 22.2 -4.23 -2.4e+03 0.0825 0 0 0 Target initStep - 1 22.2 -4.23 -2.4e+03 0 0.0825 0.0201 0.0201 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 441, Parent ID = 263 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.9 -3.6 -2.41e+03 0.511 0 0 0 Target initStep - 1 13.8 -3.59 -2.41e+03 0 0.088 0.161 0.161 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 444, Parent ID = 441 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.8 -3.59 -2.41e+03 0.423 0 0 0 Target initStep - 1 13.8 -3.58 -2.41e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 440, Parent ID = 296 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.83 -4.69 -2.43e+03 0.511 0 0 0 Target initStep - 1 -7.55 -4.5 -2.42e+03 0.225 0 0.648 0.648 Target compt - 2 -7.55 -4.29 -2.42e+03 0 0.088 0.268 0.917 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 446, Parent ID = 440 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.55 -4.29 -2.42e+03 0.137 0 0 0 Target initStep - 1 -7.55 -4.28 -2.42e+03 0 0.137 0.0452 0.0452 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 445, Parent ID = 440 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.55 -4.5 -2.42e+03 0.286 0 0 0 Target initStep - 1 -7.55 -4.5 -2.42e+03 0 0.286 0.139 0.139 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 439, Parent ID = 296 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.83 -4.69 -2.43e+03 0.511 0 0 0 Target initStep - 1 -7.84 -4.69 -2.43e+03 0 0.088 0.0295 0.0295 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 447, Parent ID = 439 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.84 -4.69 -2.43e+03 0.423 0 0 0 Target initStep - 1 -7.85 -4.69 -2.43e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 438, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.14 -0.638 -2.43e+03 0.511 0 0 0 Target initStep - 1 -2.09 -0.618 -2.43e+03 0.326 0 0.066 0.066 Target compt - 2 -2.54 0.751 -2.43e+03 0.212 0 2.65 2.71 Target compt - 3 -3.83 -1.97 -2.43e+03 0 0.088 3.68 6.39 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 450, Parent ID = 438 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.83 -1.97 -2.43e+03 0.124 0 0 0 Target initStep - 1 -3.83 -1.97 -2.43e+03 0 0.124 0.0388 0.0388 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 449, Parent ID = 438 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.54 0.751 -2.43e+03 0.114 0 0 0 Target initStep - 1 -2.54 0.753 -2.43e+03 0 0.114 0.0338 0.0338 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 448, Parent ID = 438 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.09 -0.618 -2.43e+03 0.185 0 0 0 Target initStep - 1 -2.09 -0.618 -2.43e+03 0 0.185 0.072 0.072 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 437, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.14 -0.638 -2.43e+03 0.511 0 0 0 Target initStep - 1 -3.71 -1.23 -2.43e+03 0.387 0 1.92 1.92 Target compt - 2 -3.99 -1.5 -2.43e+03 0 0.088 1.55 3.47 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 452, Parent ID = 437 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.99 -1.5 -2.43e+03 0.299 0 0 0 Target initStep - 1 -3.99 -1.5 -2.43e+03 0 0.299 0.148 0.148 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 451, Parent ID = 437 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.71 -1.23 -2.43e+03 0.124 0 0 0 Target initStep - 1 -3.71 -1.23 -2.43e+03 0 0.124 0.0388 0.0388 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 436, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.1 -0.436 -2.43e+03 5.31 0 0 0 Target initStep - 1 -1.56 -25 -2.42e+03 5.31 0 25.7 25.7 World Transportation - 2 -0.0504 -94.5 -2.4e+03 5.31 0 72.9 98.7 Tracker Transportation - 3 50.1 -2.4e+03 -1.67e+03 5.31 0 2.42e+03 2.52e+03 World Transportation - 4 61.9 -2.94e+03 -1.5e+03 5.31 0 567 3.08e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 435, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.65 -0.492 -2.43e+03 0.105 0 0 0 Target initStep - 1 -1.65 -0.49 -2.43e+03 0 0.088 0.0193 0.0193 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 453, Parent ID = 435 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.65 -0.49 -2.43e+03 0.0173 0 0 0 Target initStep - 1 -1.65 -0.49 -2.43e+03 0 0.0173 0.00162 0.00162 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 434, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.52 -0.284 -2.43e+03 0.386 0 0 0 Target initStep - 1 -1.63 -0.454 -2.43e+03 0 0.088 1.31 1.31 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 454, Parent ID = 434 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.63 -0.454 -2.43e+03 0.297 0 0 0 Target initStep - 1 -1.63 -0.457 -2.43e+03 0 0.297 0.147 0.147 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 433, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.51 -0.276 -2.43e+03 0.163 0 0 0 Target initStep - 1 -1.72 -0.32 -2.43e+03 0 0.088 2.48 2.48 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 455, Parent ID = 433 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.72 -0.32 -2.43e+03 0.075 0 0 0 Target initStep - 1 -1.72 -0.321 -2.43e+03 0 0.075 0.0172 0.0172 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 432, Parent ID = 299 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.29 -0.409 -2.44e+03 0.288 0 0 0 Target initStep - 1 -1.34 -0.369 -2.43e+03 0 0.088 0.634 0.634 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 456, Parent ID = 432 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.34 -0.369 -2.43e+03 0.2 0 0 0 Target initStep - 1 -1.35 -0.368 -2.43e+03 0 0.2 0.0816 0.0816 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 431, Parent ID = 317 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.253 0.269 -2.44e+03 0.511 0 0 0 Target initStep - 1 -0.0175 0.199 -2.44e+03 0 0.088 0.246 0.246 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 457, Parent ID = 431 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0175 0.199 -2.44e+03 0.423 0 0 0 Target initStep - 1 -0.00352 0.191 -2.44e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 430, Parent ID = 317 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.253 0.269 -2.44e+03 0.511 0 0 0 Target initStep - 1 -2.31 0.874 -2.44e+03 0.408 0 2.15 2.15 Target compt - 2 -2.58 0.757 -2.44e+03 0.33 0 0.298 2.44 Target compt - 3 -2.74 0.354 -2.44e+03 0 0.088 0.436 2.88 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 460, Parent ID = 430 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.74 0.354 -2.44e+03 0.242 0 0 0 Target initStep - 1 -2.74 0.347 -2.44e+03 0 0.242 0.109 0.109 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 459, Parent ID = 430 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.58 0.757 -2.44e+03 0.0773 0 0 0 Target initStep - 1 -2.58 0.758 -2.44e+03 0 0.0773 0.0181 0.0181 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 458, Parent ID = 430 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.31 0.874 -2.44e+03 0.103 0 0 0 Target initStep - 1 -2.31 0.876 -2.44e+03 0 0.103 0.0289 0.0289 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 429, Parent ID = 346 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.95 1.56 -2.42e+03 0.511 0 0 0 Target initStep - 1 3.26 1.61 -2.42e+03 0 0.088 1.32 1.32 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 461, Parent ID = 429 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.26 1.61 -2.42e+03 0.423 0 0 0 Target initStep - 1 3.28 1.61 -2.42e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 428, Parent ID = 346 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.95 1.56 -2.42e+03 0.511 0 0 0 Target initStep - 1 -1.28 1.46 -2.42e+03 0.458 0 3.24 3.24 Target compt - 2 -3.89 1.14 -2.42e+03 0 0.088 2.84 6.09 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 463, Parent ID = 428 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.89 1.14 -2.42e+03 0.37 0 0 0 Target initStep - 1 -3.9 1.13 -2.42e+03 0 0.37 0.201 0.201 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 462, Parent ID = 428 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.28 1.46 -2.42e+03 0.0533 0 0 0 Target initStep - 1 -1.28 1.46 -2.42e+03 0 0.0533 0.00991 0.00991 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 427, Parent ID = 352 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0695 1.75 -2.42e+03 1.1 0 0 0 Target initStep - 1 0.529 1.21 -2.43e+03 0.742 0 9.94 9.94 Target compt - 2 -0.138 -0.0132 -2.44e+03 0.423 0 2.17 12.1 Target compt - 3 1.67 -2.66 -2.44e+03 0 0.088 3.32 15.4 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 466, Parent ID = 427 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.67 -2.66 -2.44e+03 0.335 0 0 0 Target initStep - 1 1.67 -2.66 -2.44e+03 0 0.335 0.175 0.175 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 465, Parent ID = 427 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.138 -0.0132 -2.44e+03 0.319 0 0 0 Target initStep - 1 -0.146 -0.0146 -2.44e+03 0 0.319 0.163 0.163 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 464, Parent ID = 427 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.529 1.21 -2.43e+03 0.358 0 0 0 Target initStep - 1 0.534 1.22 -2.43e+03 0 0.358 0.192 0.192 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 426, Parent ID = 352 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0695 1.75 -2.42e+03 0.597 0 0 0 Target initStep - 1 -6.86 0.358 -2.42e+03 0.578 0 7.21 7.21 Target compt - 2 -10.2 -1.22 -2.42e+03 0.509 0 3.81 11 Target compt - 3 -13.3 -1.19 -2.42e+03 0 0.088 3.11 14.1 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 469, Parent ID = 426 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.3 -1.19 -2.42e+03 0.421 0 0 0 Target initStep - 1 -13.3 -1.2 -2.42e+03 0 0.421 0.241 0.241 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 468, Parent ID = 426 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.2 -1.22 -2.42e+03 0.0692 0 0 0 Target initStep - 1 -10.2 -1.22 -2.42e+03 0 0.0692 0.0151 0.0151 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 467, Parent ID = 426 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.86 0.358 -2.42e+03 0.0185 0 0 0 Target initStep - 1 -6.86 0.358 -2.42e+03 0 0.0185 0.0018 0.0018 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 425, Parent ID = 352 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0224 1.71 -2.42e+03 0.15 0 0 0 Target initStep - 1 -1.39 2.05 -2.42e+03 0 0.088 1.43 1.43 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 470, Parent ID = 425 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.39 2.05 -2.42e+03 0.0616 0 0 0 Target initStep - 1 -1.39 2.05 -2.42e+03 0 0.0616 0.0125 0.0125 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 424, Parent ID = 382 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.716 1.19 -2.43e+03 0.511 0 0 0 Target initStep - 1 -1.95 -1.73 -2.43e+03 0.479 0 3.31 3.31 Target compt - 2 -8.31 -9.38 -2.43e+03 0 0.088 11.6 14.9 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 472, Parent ID = 424 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.31 -9.38 -2.43e+03 0.391 0 0 0 Target initStep - 1 -8.32 -9.38 -2.43e+03 0.0688 0.224 0.158 0.158 Target eBrem - 2 -8.32 -9.38 -2.43e+03 0 0.0688 0.015 0.173 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 471, Parent ID = 424 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.95 -1.73 -2.43e+03 0.032 0 0 0 Target initStep - 1 -1.95 -1.73 -2.43e+03 0 0.032 0.00432 0.00432 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 473, Parent ID = 472 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.32 -9.38 -2.43e+03 0.0983 0 0 0 Target initStep - 1 -8.17 -9.4 -2.43e+03 0 0.088 0.417 0.417 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 474, Parent ID = 473 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.17 -9.4 -2.43e+03 0.0103 0 0 0 Target initStep - 1 -8.17 -9.4 -2.43e+03 0 0.0103 0.000738 0.000738 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 423, Parent ID = 382 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.716 1.19 -2.43e+03 0.511 0 0 0 Target initStep - 1 1.56 6.57 -2.43e+03 0 0.088 6.09 6.09 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 475, Parent ID = 423 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.56 6.57 -2.43e+03 0.423 0 0 0 Target initStep - 1 1.56 6.58 -2.43e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 422, Parent ID = 382 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.671 1.15 -2.43e+03 15.9 0 0 0 Target initStep - 1 -16 -1.9 -2.43e+03 0 0 15.9 15.9 Target conv - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 421, Parent ID = 382 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.557 1.15 -2.43e+03 0.482 0 0 0 Target initStep - 1 -23.5 0.775 -2.43e+03 0 0.088 23 23 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 420, Parent ID = 382 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.46 1.14 -2.43e+03 0.227 0 0 0 Target initStep - 1 -5.04 1.93 -2.43e+03 0 0.088 4.72 4.72 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 419, Parent ID = 382 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.457 0.833 -2.43e+03 0.364 0 0 0 Target initStep - 1 -0.436 2.06 -2.43e+03 0.342 0 8.35 8.35 Target compt - 2 -1.17 2.87 -2.42e+03 0 0.088 2.16 10.5 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 477, Parent ID = 422 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 -1.9 -2.43e+03 4.97 0 0 0 Target initStep - 1 -16.2 -1.93 -2.43e+03 3.37 0.544 0.149 0.149 Target eBrem - 2 -16.6 -2.11 -2.43e+03 1.12 2.25 1.88 2.03 Target eIoni - 3 -16.5 -2.05 -2.43e+03 0 1.12 0.844 2.88 Target eIoni - 4 -16.5 -2.05 -2.43e+03 0 0 0 2.88 Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 481, Parent ID = 419 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.17 2.87 -2.42e+03 0.254 0 0 0 Target initStep - 1 -1.17 2.88 -2.42e+03 0 0.254 0.116 0.116 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 480, Parent ID = 419 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.436 2.06 -2.43e+03 0.0224 0 0 0 Target initStep - 1 -0.436 2.06 -2.43e+03 0 0.0224 0.00244 0.00244 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 479, Parent ID = 420 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.04 1.93 -2.43e+03 0.139 0 0 0 Target initStep - 1 -5.04 1.94 -2.43e+03 0 0.139 0.0463 0.0463 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 478, Parent ID = 421 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -23.5 0.775 -2.43e+03 0.394 0 0 0 Target initStep - 1 -23.5 0.778 -2.43e+03 0 0.394 0.22 0.22 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 476, Parent ID = 422 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 -1.9 -2.43e+03 9.91 0 0 0 Target initStep - 1 -17.4 -2.13 -2.43e+03 7.24 2.55 2.31 2.31 Target eBrem - 2 -17.5 -2.23 -2.43e+03 4.58 0.29 0.154 2.47 Target eBrem - 3 -18.1 -2.4 -2.43e+03 1.68 2.9 2.14 4.6 Target eIoni - 4 -18.1 -2.38 -2.43e+03 1.52 0.044 0.0384 4.64 Target eBrem - 5 -18 -2.39 -2.43e+03 0.128 1.39 1.16 5.8 Target eIoni - 6 -18 -2.39 -2.43e+03 0 0.128 0.0406 5.84 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 487, Parent ID = 476 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.1 -2.38 -2.43e+03 0.115 0 0 0 Target initStep - 1 -17.9 -2.34 -2.43e+03 0 0.088 0.211 0.211 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 488, Parent ID = 487 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.9 -2.34 -2.43e+03 0.0269 0 0 0 Target initStep - 1 -17.9 -2.34 -2.43e+03 0 0.0269 0.00327 0.00327 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 486, Parent ID = 476 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.5 -2.23 -2.43e+03 2.37 0 0 0 Target initStep - 1 -24.2 -6.37 -2.43e+03 2.37 0 7.83 7.83 World Transportation - 2 -502 -305 -2.4e+03 2.37 0 564 572 Tracker Transportation - 3 -2.04e+03 -1.27e+03 -2.31e+03 2.37 0 1.82e+03 2.39e+03 World Transportation - 4 -2.94e+03 -1.83e+03 -2.25e+03 2.37 0 1.06e+03 3.45e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 485, Parent ID = 476 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.4 -2.13 -2.43e+03 0.115 0 0 0 Target initStep - 1 -17.8 -2.48 -2.43e+03 0 0.088 0.515 0.515 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 489, Parent ID = 485 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 -2.48 -2.43e+03 0.0275 0 0 0 Target initStep - 1 -17.8 -2.48 -2.43e+03 0 0.0275 0.00338 0.00338 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 484, Parent ID = 477 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.5 -2.05 -2.43e+03 0.511 0 0 0 Target initStep - 1 -20.4 0.589 -2.43e+03 0.329 0 5.64 5.64 Target compt - 2 -19.1 0.912 -2.42e+03 0.175 0 6.6 12.2 Target compt - 3 -17.2 1.41 -2.42e+03 0 0.088 2.35 14.6 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 492, Parent ID = 484 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.2 1.41 -2.42e+03 0.0868 0 0 0 Target initStep - 1 -17.2 1.42 -2.42e+03 0 0.0868 0.0218 0.0218 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 491, Parent ID = 484 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.1 0.912 -2.42e+03 0.154 0 0 0 Target initStep - 1 -19.1 0.912 -2.42e+03 0 0.154 0.0545 0.0545 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 490, Parent ID = 484 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.4 0.589 -2.43e+03 0.182 0 0 0 Target initStep - 1 -20.4 0.591 -2.43e+03 0 0.182 0.0704 0.0704 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 483, Parent ID = 477 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.5 -2.05 -2.43e+03 0.511 0 0 0 Target initStep - 1 -13.8 -3.91 -2.43e+03 0 0.088 3.99 3.99 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 493, Parent ID = 483 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.8 -3.91 -2.43e+03 0.423 0 0 0 Target initStep - 1 -13.8 -3.92 -2.43e+03 0 0.423 0.243 0.243 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 482, Parent ID = 477 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.2 -1.93 -2.43e+03 1.06 0 0 0 Target initStep - 1 -24.4 -5.24 -2.43e+03 1.06 0 9.47 9.47 World Transportation - 2 -92.8 -32.6 -2.4e+03 1.06 0 78.2 87.7 Tracker Transportation - 3 -2.23e+03 -887 -1.57e+03 1.06 0 2.45e+03 2.53e+03 World Transportation - 4 -2.94e+03 -1.17e+03 -1.3e+03 1.06 0 812 3.35e+03 OutOfWorld Transportation + 0 0 0 -2.86e+03 0.00213 0 0 0 World initStep + 1 0.0262 0.0732 -2.86e+03 0 0.00213 0.178 0.178 World eIoni >>> Event: 0 - 93 hits stored in this event + 46 hits stored in this event ### Run 2 starts. --> Event 0 starts. >>> Event: 0 - 3 hits stored in this event ->>> Event: 1 0 hits stored in this event +>>> Event: 1 + 257 hits stored in this event >>> Event: 2 0 hits stored in this event >>> Event: 3 @@ -7422,25 +3763,25 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 5 0 hits stored in this event >>> Event: 6 - 154 hits stored in this event + 90 hits stored in this event >>> Event: 7 0 hits stored in this event >>> Event: 8 - 9 hits stored in this event ->>> Event: 9 0 hits stored in this event +>>> Event: 9 + 70 hits stored in this event >>> Event: 10 0 hits stored in this event >>> Event: 11 0 hits stored in this event >>> Event: 12 - 82 hits stored in this event + 0 hits stored in this event >>> Event: 13 0 hits stored in this event >>> Event: 14 0 hits stored in this event >>> Event: 15 - 0 hits stored in this event + 46 hits stored in this event >>> Event: 16 0 hits stored in this event >>> Event: 17 @@ -7448,9 +3789,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 18 0 hits stored in this event >>> Event: 19 - 0 hits stored in this event + 35 hits stored in this event >>> Event: 20 - 7 hits stored in this event + 0 hits stored in this event >>> Event: 21 0 hits stored in this event >>> Event: 22 @@ -7464,37 +3805,37 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 26 0 hits stored in this event >>> Event: 27 - 24 hits stored in this event + 0 hits stored in this event >>> Event: 28 0 hits stored in this event >>> Event: 29 0 hits stored in this event >>> Event: 30 - 0 hits stored in this event + 103 hits stored in this event >>> Event: 31 0 hits stored in this event >>> Event: 32 0 hits stored in this event >>> Event: 33 - 18 hits stored in this event + 35 hits stored in this event >>> Event: 34 - 0 hits stored in this event + 96 hits stored in this event >>> Event: 35 - 0 hits stored in this event + 40 hits stored in this event >>> 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 + 27 hits stored in this event >>> Event: 39 0 hits stored in this event >>> Event: 40 - 0 hits stored in this event + 72 hits stored in this event >>> Event: 41 0 hits stored in this event >>> Event: 42 - 0 hits stored in this event + 13 hits stored in this event >>> Event: 43 0 hits stored in this event >>> Event: 44 @@ -7506,19 +3847,19 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 47 0 hits stored in this event >>> Event: 48 - 9 hits stored in this event + 0 hits stored in this event >>> Event: 49 0 hits stored in this event >>> Event: 50 0 hits stored in this event >>> Event: 51 - 0 hits stored in this event + 278 hits stored in this event >>> Event: 52 0 hits stored in this event >>> Event: 53 0 hits stored in this event >>> Event: 54 - 12 hits stored in this event + 0 hits stored in this event >>> Event: 55 0 hits stored in this event >>> Event: 56 @@ -7532,35 +3873,35 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 60 0 hits stored in this event >>> Event: 61 - 101 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 - 0 hits stored in this event + 12 hits stored in this event >>> Event: 65 - 30 hits stored in this event + 0 hits stored in this event >>> Event: 66 - 36 hits stored in this event + 0 hits stored in this event >>> Event: 67 - 203 hits stored in this event + 0 hits stored in this event >>> Event: 68 0 hits stored in this event >>> Event: 69 0 hits stored in this event >>> Event: 70 - 0 hits stored in this event + 250 hits stored in this event >>> Event: 71 0 hits stored in this event >>> Event: 72 0 hits stored in this event >>> Event: 73 - 0 hits stored in this event + 136 hits stored in this event >>> Event: 74 0 hits stored in this event >>> Event: 75 - 0 hits stored in this event + 14 hits stored in this event >>> Event: 76 0 hits stored in this event >>> Event: 77 @@ -7568,43 +3909,43 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 78 0 hits stored in this event >>> Event: 79 - 0 hits stored in this event + 104 hits stored in this event >>> Event: 80 - 0 hits stored in this event + 8 hits stored in this event >>> Event: 81 0 hits stored in this event >>> Event: 82 - 0 hits stored in this event + 336 hits stored in this event >>> Event: 83 0 hits stored in this event >>> Event: 84 0 hits stored in this event >>> Event: 85 - 0 hits stored in this event + 126 hits stored in this event >>> Event: 86 0 hits stored in this event >>> Event: 87 0 hits stored in this event >>> Event: 88 - 135 hits stored in this event ->>> Event: 89 0 hits stored in this event +>>> Event: 89 + 17 hits stored in this event >>> Event: 90 - 3 hits stored in this event + 0 hits stored in this event >>> Event: 91 0 hits stored in this event >>> Event: 92 - 41 hits stored in this event + 0 hits stored in this event >>> Event: 93 0 hits stored in this event >>> Event: 94 - 64 hits stored in this event + 0 hits stored in this event >>> Event: 95 0 hits stored in this event >>> Event: 96 0 hits stored in this event >>> Event: 97 - 14 hits stored in this event + 0 hits stored in this event >>> Event: 98 0 hits stored in this event >>> Event: 99 @@ -7612,204 +3953,204 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ### Run 3 starts. --> Event 0 starts. >>> Event: 0 - 54 hits stored in this event + 67 hits stored in this event >>> Event: 1 - 215 hits stored in this event + 67 hits stored in this event >>> Event: 2 - 61 hits stored in this event ->>> Event: 3 - 1329 hits stored in this event ->>> Event: 4 - 60 hits stored in this event ->>> Event: 5 - 41 hits stored in this event ->>> Event: 6 - 110 hits stored in this event ->>> Event: 7 - 1076 hits stored in this event ->>> Event: 8 - 100 hits stored in this event ->>> Event: 9 - 92 hits stored in this event ->>> Event: 10 - 1034 hits stored in this event ->>> Event: 11 - 60 hits stored in this event ->>> Event: 12 - 184 hits stored in this event ->>> Event: 13 - 180 hits stored in this event ->>> Event: 14 - 658 hits stored in this event ->>> Event: 15 - 53 hits stored in this event ->>> Event: 16 - 122 hits stored in this event ->>> Event: 17 - 155 hits stored in this event ->>> Event: 18 - 63 hits stored in this event ->>> Event: 19 - 59 hits stored in this event ->>> Event: 20 - 867 hits stored in this event ->>> Event: 21 - 593 hits stored in this event ->>> Event: 22 - 65 hits stored in this event ->>> Event: 23 - 1751 hits stored in this event ->>> Event: 24 - 154 hits stored in this event ->>> Event: 25 - 105 hits stored in this event ->>> Event: 26 - 125 hits stored in this event ->>> Event: 27 - 104 hits stored in this event ->>> Event: 28 - 265 hits stored in this event ->>> Event: 29 - 165 hits stored in this event ->>> Event: 30 - 211 hits stored in this event ->>> Event: 31 - 77 hits stored in this event ->>> Event: 32 - 141 hits stored in this event ->>> Event: 33 - 348 hits stored in this event ->>> Event: 34 - 70 hits stored in this event ->>> Event: 35 - 51 hits stored in this event ->>> Event: 36 - 98 hits stored in this event ->>> Event: 37 - 115 hits stored in this event ->>> Event: 38 - 190 hits stored in this event ->>> Event: 39 - 327 hits stored in this event ->>> Event: 40 - 1198 hits stored in this event ->>> Event: 41 - 132 hits stored in this event ->>> Event: 42 - 164 hits stored in this event ->>> Event: 43 - 154 hits stored in this event ->>> Event: 44 - 221 hits stored in this event ->>> Event: 45 - 356 hits stored in this event ->>> Event: 46 - 56 hits stored in this event ->>> Event: 47 - 99 hits stored in this event ->>> Event: 48 - 200 hits stored in this event ->>> Event: 49 - 118 hits stored in this event ->>> Event: 50 - 60 hits stored in this event ->>> Event: 51 - 69 hits stored in this event ->>> Event: 52 - 96 hits stored in this event ->>> Event: 53 - 81 hits stored in this event ->>> Event: 54 - 267 hits stored in this event ->>> Event: 55 - 60 hits stored in this event ->>> Event: 56 - 45 hits stored in this event ->>> Event: 57 - 90 hits stored in this event ->>> Event: 58 - 150 hits stored in this event ->>> Event: 59 - 131 hits stored in this event ->>> Event: 60 - 86 hits stored in this event ->>> Event: 61 - 118 hits stored in this event ->>> Event: 62 - 1306 hits stored in this event ->>> Event: 63 - 403 hits stored in this event ->>> Event: 64 - 84 hits stored in this event ->>> Event: 65 - 335 hits stored in this event ->>> Event: 66 - 116 hits stored in this event ->>> Event: 67 - 133 hits stored in this event ->>> Event: 68 - 70 hits stored in this event ->>> Event: 69 - 102 hits stored in this event ->>> Event: 70 - 66 hits stored in this event ->>> Event: 71 - 69 hits stored in this event ->>> Event: 72 - 60 hits stored in this event ->>> Event: 73 - 75 hits stored in this event ->>> Event: 74 - 822 hits stored in this event ->>> Event: 75 - 92 hits stored in this event ->>> Event: 76 - 178 hits stored in this event ->>> Event: 77 - 88 hits stored in this event ->>> Event: 78 - 46 hits stored in this event ->>> Event: 79 - 87 hits stored in this event ->>> Event: 80 - 132 hits stored in this event ->>> Event: 81 - 90 hits stored in this event ->>> Event: 82 - 66 hits stored in this event ->>> Event: 83 - 218 hits stored in this event ->>> Event: 84 - 178 hits stored in this event ->>> Event: 85 - 79 hits stored in this event ->>> Event: 86 - 71 hits stored in this event ->>> Event: 87 - 97 hits stored in this event ->>> Event: 88 - 107 hits stored in this event ->>> Event: 89 - 47 hits stored in this event ->>> Event: 90 - 174 hits stored in this event ->>> Event: 91 - 100 hits stored in this event ->>> Event: 92 - 105 hits stored in this event ->>> Event: 93 - 135 hits stored in this event ->>> Event: 94 - 159 hits stored in this event ->>> Event: 95 149 hits stored in this event ->>> Event: 96 +>>> Event: 3 + 76 hits stored in this event +>>> Event: 4 + 119 hits stored in this event +>>> Event: 5 + 60 hits stored in this event +>>> Event: 6 + 67 hits stored in this event +>>> Event: 7 + 313 hits stored in this event +>>> Event: 8 + 72 hits stored in this event +>>> Event: 9 + 241 hits stored in this event +>>> Event: 10 + 103 hits stored in this event +>>> Event: 11 + 122 hits stored in this event +>>> Event: 12 + 152 hits stored in this event +>>> Event: 13 + 85 hits stored in this event +>>> Event: 14 + 507 hits stored in this event +>>> Event: 15 + 115 hits stored in this event +>>> Event: 16 + 55 hits stored in this event +>>> Event: 17 + 92 hits stored in this event +>>> Event: 18 + 236 hits stored in this event +>>> Event: 19 + 97 hits stored in this event +>>> Event: 20 + 69 hits stored in this event +>>> Event: 21 + 68 hits stored in this event +>>> Event: 22 + 132 hits stored in this event +>>> Event: 23 + 58 hits stored in this event +>>> Event: 24 99 hits stored in this event ->>> Event: 97 +>>> Event: 25 + 67 hits stored in this event +>>> Event: 26 + 62 hits stored in this event +>>> Event: 27 + 213 hits stored in this event +>>> Event: 28 + 87 hits stored in this event +>>> Event: 29 + 86 hits stored in this event +>>> Event: 30 + 196 hits stored in this event +>>> Event: 31 + 98 hits stored in this event +>>> Event: 32 + 517 hits stored in this event +>>> Event: 33 + 61 hits stored in this event +>>> Event: 34 + 39 hits stored in this event +>>> Event: 35 + 146 hits stored in this event +>>> Event: 36 + 205 hits stored in this event +>>> Event: 37 + 51 hits stored in this event +>>> Event: 38 + 199 hits stored in this event +>>> Event: 39 + 2198 hits stored in this event +>>> Event: 40 + 87 hits stored in this event +>>> Event: 41 + 47 hits stored in this event +>>> Event: 42 + 214 hits stored in this event +>>> Event: 43 + 142 hits stored in this event +>>> Event: 44 + 87 hits stored in this event +>>> Event: 45 + 86 hits stored in this event +>>> Event: 46 + 131 hits stored in this event +>>> Event: 47 + 369 hits stored in this event +>>> Event: 48 + 60 hits stored in this event +>>> Event: 49 + 81 hits stored in this event +>>> Event: 50 + 443 hits stored in this event +>>> Event: 51 + 62 hits stored in this event +>>> Event: 52 + 353 hits stored in this event +>>> Event: 53 + 932 hits stored in this event +>>> Event: 54 + 127 hits stored in this event +>>> Event: 55 + 170 hits stored in this event +>>> Event: 56 + 117 hits stored in this event +>>> Event: 57 96 hits stored in this event +>>> Event: 58 + 48 hits stored in this event +>>> Event: 59 + 288 hits stored in this event +>>> Event: 60 + 94 hits stored in this event +>>> Event: 61 + 168 hits stored in this event +>>> Event: 62 + 89 hits stored in this event +>>> Event: 63 + 57 hits stored in this event +>>> Event: 64 + 62 hits stored in this event +>>> Event: 65 + 59 hits stored in this event +>>> Event: 66 + 46 hits stored in this event +>>> Event: 67 + 120 hits stored in this event +>>> Event: 68 + 554 hits stored in this event +>>> Event: 69 + 88 hits stored in this event +>>> Event: 70 + 136 hits stored in this event +>>> Event: 71 + 64 hits stored in this event +>>> Event: 72 + 102 hits stored in this event +>>> Event: 73 + 67 hits stored in this event +>>> Event: 74 + 61 hits stored in this event +>>> Event: 75 + 74 hits stored in this event +>>> Event: 76 + 94 hits stored in this event +>>> Event: 77 + 211 hits stored in this event +>>> Event: 78 + 105 hits stored in this event +>>> Event: 79 + 252 hits stored in this event +>>> Event: 80 + 59 hits stored in this event +>>> Event: 81 + 89 hits stored in this event +>>> Event: 82 + 134 hits stored in this event +>>> Event: 83 + 75 hits stored in this event +>>> Event: 84 + 59 hits stored in this event +>>> Event: 85 + 90 hits stored in this event +>>> Event: 86 + 120 hits stored in this event +>>> Event: 87 + 145 hits stored in this event +>>> Event: 88 + 87 hits stored in this event +>>> Event: 89 + 422 hits stored in this event +>>> Event: 90 + 181 hits stored in this event +>>> Event: 91 + 95 hits stored in this event +>>> Event: 92 + 132 hits stored in this event +>>> Event: 93 + 72 hits stored in this event +>>> Event: 94 + 97 hits stored in this event +>>> Event: 95 + 58 hits stored in this event +>>> Event: 96 + 95 hits stored in this event +>>> Event: 97 + 88 hits stored in this event >>> Event: 98 - 84 hits stored in this event + 52 hits stored in this event >>> Event: 99 - 154 hits stored in this event + 81 hits stored in this event Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/basic/B2/B2a/src/B2PrimaryGeneratorAction.cc b/examples/basic/B2/B2a/src/B2PrimaryGeneratorAction.cc index ab024874cd..a54eff899e 100644 --- a/examples/basic/B2/B2a/src/B2PrimaryGeneratorAction.cc +++ b/examples/basic/B2/B2a/src/B2PrimaryGeneratorAction.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: B2PrimaryGeneratorAction.cc 68058 2013-03-13 14:47:43Z gcosmo $ +// $Id: B2PrimaryGeneratorAction.cc 97979 2016-06-30 09:36:20Z gcosmo $ // /// \file B2PrimaryGeneratorAction.cc /// \brief Implementation of the B2PrimaryGeneratorAction class diff --git a/examples/basic/B2/B2b/exampleB2b.out b/examples/basic/B2/B2b/exampleB2b.out index ad4595edd4..63e47f1e86 100644 --- a/examples/basic/B2/B2b/exampleB2b.out +++ b/examples/basic/B2/B2b/exampleB2b.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -124,6 +126,14 @@ Checking overlaps for parameterised volume Chamber ... OK! There are 5 chambers in the tracker region. The chambers are 20 cm of G4_Xe The distance between chamber is 80 cm +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -241,7 +251,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -255,7 +265,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -364,7 +374,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -397,7 +407,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -523,6 +533,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -818,19 +833,26 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 14 0.151 0.126 -2.45e+03 195 0.859 0.644 492 Target eBrem 15 0.0689 0.138 -2.45e+03 192 1.07 0.798 493 Target eBrem 16 0.0305 0.147 -2.45e+03 70.8 0.408 0.432 494 Target eBrem - 17 0.0169 0.15 -2.45e+03 70.5 0.172 0.111 494 Target eBrem - 18 -0.00907 0.148 -2.45e+03 69.4 0.173 0.156 494 Target eBrem - 19 -0.0141 0.148 -2.45e+03 69.3 0.0315 0.035 494 Target eBrem - 20 -0.164 0.263 -2.44e+03 66.6 1.8 1.26 495 Target eBrem - 21 -0.338 0.308 -2.44e+03 58.9 1.16 1.01 496 Target eBrem - 22 -0.405 0.256 -2.44e+03 56.9 0.613 0.464 497 Target eBrem - 23 -0.557 0.0962 -2.44e+03 11.6 1.08 0.997 498 Target eBrem - 24 -0.657 0.0692 -2.44e+03 11.1 0.447 0.348 498 Target eBrem - 25 -0.62 0.273 -2.44e+03 3.72 4.36 2.54 500 Target eBrem - 26 -0.676 0.345 -2.44e+03 2.03 0.61 0.644 501 Target eBrem - 27 -0.801 0.337 -2.44e+03 0.686 1.35 1.45 503 Target eIoni - 28 -0.768 0.335 -2.44e+03 0 0.686 0.461 503 Target eIoni - 29 -0.768 0.335 -2.44e+03 0 0 0 503 Target annihil + 17 0.0187 0.15 -2.45e+03 64.4 0.178 0.111 494 Target eBrem + 18 -0.0282 0.122 -2.45e+03 63 1.11 0.867 495 Target eBrem + 19 -0.254 -0.0957 -2.44e+03 61.6 1.22 0.924 495 Target eBrem + 20 -0.304 -0.221 -2.44e+03 61 0.497 0.45 496 Target eBrem + 21 -0.321 -0.264 -2.44e+03 60.6 0.254 0.178 496 Target eBrem + 22 -0.364 -0.419 -2.44e+03 59.6 0.794 0.699 497 Target eBrem + 23 -0.42 -0.586 -2.44e+03 49.9 0.615 0.474 497 Target eBrem + 24 -0.587 -0.805 -2.44e+03 47.8 1.82 1.03 498 Target eBrem + 25 -0.896 -0.946 -2.44e+03 45.3 1.98 1.72 500 Target eBrem + 26 -1.18 -1.42 -2.44e+03 30.1 1.23 0.933 501 Target eBrem + 27 -1.26 -1.52 -2.44e+03 11.2 0.29 0.278 501 Target eBrem + 28 -1.34 -1.66 -2.44e+03 9.71 0.474 0.326 502 Target eBrem + 29 -1.45 -1.9 -2.44e+03 8.99 0.619 0.524 502 Target eBrem + 30 -1.24 -2.27 -2.44e+03 6.74 0.958 0.883 503 Target eBrem + 31 -1.79 -1.42 -2.44e+03 3.77 2.97 2.59 506 Target eIoni + 32 -1.92 -1.15 -2.44e+03 2.8 0.82 0.408 506 Target eBrem + 33 -1.98 -1.08 -2.44e+03 1.67 0.092 0.107 506 Target eBrem + 34 -2.15 -1.03 -2.44e+03 0.345 1.33 0.869 507 Target eBrem + 35 -2.13 -1.02 -2.44e+03 0 0.345 0.179 507 Target eIoni + 36 -2.13 -1.02 -2.44e+03 0 0 0 507 Target annihil ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 @@ -886,8 +908,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.177 0.076 -2.69e+03 0.00349 0 0 0 World initStep - 1 0.00809 0.0501 -2.69e+03 0.00155 0.00194 0.294 0.294 World eIoni - 2 0.0259 0.0806 -2.69e+03 0 0.00155 0.109 0.403 World eIoni + 1 -0.00233 0.0485 -2.69e+03 0 0.00349 0.409 0.409 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 @@ -903,418 +924,827 @@ 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.00225 -0.00402 -2.92e+03 0.0482 0 0 0 World initStep - 1 -6.05 -5.77 -2.91e+03 0.0411 0.0071 11.1 11.1 World eIoni - 2 -5.33 -14.2 -2.91e+03 0.0365 0.00454 8.67 19.7 World eIoni - 3 -5.72 -14.8 -2.91e+03 0.0296 0.000203 0.755 20.5 World eIoni - 4 -7.27 -18.7 -2.91e+03 0.0226 0.00701 5.46 25.9 World eIoni - 5 -7.23 -18.2 -2.91e+03 0.0174 0.0052 3.91 29.9 World eIoni - 6 -7.11 -18.1 -2.91e+03 0.0135 0.00391 2.96 32.8 World eIoni - 7 -7.62 -18.9 -2.9e+03 0.00953 0.00397 2.35 35.2 World eIoni - 8 -7.99 -19.4 -2.9e+03 0.00489 0.00465 1.76 36.9 World eIoni - 9 -7.81 -19.4 -2.9e+03 0 0.00489 0.735 37.7 World eIoni + 1 -5.96 -8.97 -2.92e+03 0.0446 0.00361 11.1 11.1 World eIoni + 2 -10.4 -17.1 -2.92e+03 0.039 0.00557 9.8 20.9 World eIoni + 3 -13.3 -23.7 -2.92e+03 0.0324 0.00663 8.02 28.9 World eIoni + 4 -14 -27.4 -2.91e+03 0.0277 0.00464 6.15 35 World eIoni + 5 -13.2 -26.7 -2.91e+03 0.0218 0.00323 4.48 39.5 World eIoni + 6 -12.3 -27 -2.91e+03 0.0186 0.00203 1.82 41.3 World eIoni + 7 -13.2 -26.9 -2.9e+03 0.0149 0.00364 3.16 44.5 World eIoni + 8 -12.8 -27.3 -2.9e+03 0.0111 0.00204 2 46.5 World eIoni + 9 -12.8 -27.3 -2.9e+03 0.00631 0 0.0208 46.5 World eIoni + 10 -13.1 -27 -2.9e+03 0.00173 0.00457 1 47.5 World eIoni + 11 -13.1 -26.9 -2.9e+03 0 0.00173 0.129 47.6 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.72 -14.8 -2.91e+03 0.00669 0 0 0 World initStep - 1 -5.95 -14.9 -2.91e+03 0 0.00669 1.24 1.24 World eIoni + 0 -12.8 -27.3 -2.9e+03 0.00484 0 0 0 World initStep + 1 -12.6 -27.2 -2.9e+03 0.00207 0.00144 0.365 0.365 World eIoni + 2 -12.5 -27.1 -2.9e+03 0 0.00207 0.171 0.536 World eIoni + +********************************************************************************************************* +* 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 -12.6 -27.2 -2.9e+03 0.00132 0 0 0 World initStep + 1 -12.6 -27.2 -2.9e+03 0 0.00132 0.0858 0.0858 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.8 -27.3 -2.9e+03 0.00175 0 0 0 World initStep + 1 -12.8 -27.4 -2.9e+03 0 0.00175 0.132 0.132 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.3 -27 -2.91e+03 0.00119 0 0 0 World initStep + 1 -12.3 -27 -2.91e+03 0 0.00119 0.0734 0.0734 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.2 -26.7 -2.91e+03 0.00269 0 0 0 World initStep + 1 -13.2 -26.8 -2.91e+03 0 0.00269 0.261 0.261 World eIoni + +********************************************************************************************************* +* 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 -2.13 -1.02 -2.44e+03 0.511 0 0 0 Target initStep + 1 -1 -5.2 -2.44e+03 0.221 0 4.47 4.47 Target compt + 2 0.376 -4.39 -2.44e+03 0 0.088 1.65 6.12 Target phot + +********************************************************************************************************* +* 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 0.376 -4.39 -2.44e+03 0.133 0 0 0 Target initStep + 1 0.378 -4.39 -2.44e+03 0 0.133 0.0434 0.0434 Target eIoni + +********************************************************************************************************* +* 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 -5.2 -2.44e+03 0.29 0 0 0 Target initStep + 1 -1 -5.21 -2.44e+03 0 0.29 0.142 0.142 Target eIoni + +********************************************************************************************************* +* 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 -2.13 -1.02 -2.44e+03 0.511 0 0 0 Target initStep + 1 -2.99 2.16 -2.44e+03 0.463 0 3.4 3.4 Target compt + 2 -2.9 2.94 -2.44e+03 0.395 0 0.791 4.19 Target compt + 3 -4.71 6.35 -2.44e+03 0 0.088 3.9 8.1 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.71 6.35 -2.44e+03 0.307 0 0 0 Target initStep + 1 -4.72 6.36 -2.44e+03 0 0.307 0.154 0.154 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.9 2.94 -2.44e+03 0.0681 0 0 0 Target initStep + 1 -2.9 2.94 -2.44e+03 0 0.0681 0.0148 0.0148 Target eIoni + +********************************************************************************************************* +* 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 -2.99 2.16 -2.44e+03 0.048 0 0 0 Target initStep + 1 -2.99 2.16 -2.44e+03 0 0.048 0.00834 0.00834 Target eIoni + +********************************************************************************************************* +* 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 -1.98 -1.08 -2.44e+03 1.03 0 0 0 Target initStep + 1 -3.05 -1.03 -2.44e+03 0 0.088 1.07 1.07 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.05 -1.03 -2.44e+03 0.946 0 0 0 Target initStep + 1 -3.1 -1.02 -2.44e+03 0 0.946 0.684 0.684 Target eIoni + +********************************************************************************************************* +* 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 -1.92 -1.15 -2.44e+03 0.151 0 0 0 Target initStep + 1 -2.58 -0.543 -2.44e+03 0 0.088 0.897 0.897 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.58 -0.543 -2.44e+03 0.0626 0 0 0 Target initStep + 1 -2.58 -0.544 -2.44e+03 0 0.0626 0.0129 0.0129 Target eIoni + +********************************************************************************************************* +* 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 -1.24 -2.27 -2.44e+03 1.29 0 0 0 Target initStep + 1 -2.78 0.218 -2.44e+03 0.455 0 3.92 3.92 Target compt + 2 -0.0254 -1.62 -2.43e+03 0.278 0 7.11 11 Target compt + 3 -1.6 -2.1 -2.43e+03 0 0.088 2.03 13.1 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.6 -2.1 -2.43e+03 0.19 0 0 0 Target initStep + 1 -1.6 -2.1 -2.43e+03 0 0.19 0.0751 0.0751 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0254 -1.62 -2.43e+03 0.177 0 0 0 Target initStep + 1 -0.0216 -1.62 -2.43e+03 0 0.177 0.0676 0.0676 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.78 0.218 -2.44e+03 0.838 0 0 0 Target initStep + 1 -2.8 0.251 -2.44e+03 0.127 0.344 0.347 0.347 Target eBrem + 2 -2.8 0.251 -2.44e+03 0 0.127 0.04 0.387 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 50, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.8 0.251 -2.44e+03 0.367 0 0 0 Target initStep + 1 -3.46 0.17 -2.44e+03 0 0.088 0.669 0.669 Target phot + +********************************************************************************************************* +* 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 + 0 -3.46 0.17 -2.44e+03 0.279 0 0 0 Target initStep + 1 -3.47 0.17 -2.44e+03 0 0.279 0.134 0.134 Target eIoni + +********************************************************************************************************* +* 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 -1.45 -1.9 -2.44e+03 0.0986 0 0 0 Target initStep + 1 -1.43 -1.93 -2.44e+03 0 0.088 0.0544 0.0544 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.43 -1.93 -2.44e+03 0.0106 0 0 0 Target initStep + 1 -1.43 -1.93 -2.44e+03 0 0.0106 0.000766 0.000766 Target 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.768 0.335 -2.44e+03 0.511 0 0 0 Target initStep - 1 1.25 -1.83 -2.44e+03 0 0.088 3.64 3.64 Target phot + 0 -1.34 -1.66 -2.44e+03 1.03 0 0 0 Target initStep + 1 -3.03 -6.02 -2.43e+03 1.03 0 8.47 8.47 Target compt + 2 -7 -13.5 -2.42e+03 0.696 0 16.5 24.9 Target compt + 3 -15.8 -19.4 -2.41e+03 0.696 0 11.6 36.5 World Transportation + 4 -40.1 -35.8 -2.4e+03 0.696 0 32.1 68.6 Tracker Transportation + 5 -1.99e+03 -1.35e+03 -1.35e+03 0.696 0 2.57e+03 2.64e+03 World Transportation + 6 -2.94e+03 -1.99e+03 -840 0.696 0 1.26e+03 3.9e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 28 +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 28 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.25 -1.83 -2.44e+03 0.423 0 0 0 Target initStep - 1 1.26 -1.85 -2.44e+03 0 0.423 0.243 0.243 Target eIoni + 0 -7 -13.5 -2.42e+03 0.331 0 0 0 Target initStep + 1 -6.99 -13.5 -2.42e+03 0 0.331 0.172 0.172 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.03 -6.02 -2.43e+03 0.00647 0 0 0 Target initStep + 1 -3.03 -6.02 -2.43e+03 0 0.00647 0.000374 0.000374 Target 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.768 0.335 -2.44e+03 0.511 0 0 0 Target initStep - 1 -5.33 5.23 -2.45e+03 0.236 0 8.22 8.22 Target compt - 2 -5.12 5.08 -2.45e+03 0 0.088 0.362 8.58 Target phot + 0 -1.26 -1.52 -2.44e+03 18.6 0 0 0 Target initStep + 1 -11 -19.5 -2.41e+03 0.652 0 37.8 37.8 Target compt + 2 -8.66 -20.8 -2.41e+03 0.442 0 2.76 40.6 Target compt + 3 -8.41 -20.7 -2.41e+03 0.172 0 0.506 41.1 Target compt + 4 -8.41 -20.9 -2.41e+03 0 0.088 0.4 41.5 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 27 +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.12 5.08 -2.45e+03 0.148 0 0 0 Target initStep - 1 -5.11 5.08 -2.45e+03 0 0.148 0.0509 0.0509 Target eIoni + 0 -8.41 -20.9 -2.41e+03 0.084 0 0 0 Target initStep + 1 -8.41 -20.9 -2.41e+03 0 0.084 0.0207 0.0207 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 27 +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.33 5.23 -2.45e+03 0.275 0 0 0 Target initStep - 1 -5.33 5.24 -2.45e+03 0 0.275 0.131 0.131 Target eIoni + 0 -8.41 -20.7 -2.41e+03 0.27 0 0 0 Target initStep + 1 -8.41 -20.7 -2.41e+03 0 0.27 0.128 0.128 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -8.66 -20.8 -2.41e+03 0.211 0 0 0 Target initStep + 1 -8.65 -20.8 -2.41e+03 0 0.211 0.0882 0.0882 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11 -19.5 -2.41e+03 17.9 0 0 0 Target initStep + 1 -11.1 -19.8 -2.41e+03 17.2 0.581 0.484 0.484 Target eBrem + 2 -11.8 -20.7 -2.41e+03 15.3 1.97 1.46 1.94 Target msc + 3 -12.2 -21 -2.41e+03 13.8 0.682 0.55 2.49 Target eBrem + 4 -12.3 -21 -2.41e+03 13.4 0.128 0.106 2.6 Target eBrem + 5 -12.7 -21.5 -2.41e+03 12.6 0.812 0.69 3.29 World Transportation + 6 -81.7 -73.2 -2.41e+03 12.6 0.0152 86.5 89.8 World eIoni + 7 -517 -415 -2.46e+03 12.5 0.0953 556 645 World eIoni + 8 -714 -582 -2.48e+03 12.4 0.0379 260 905 World eIoni + 9 -897 -720 -2.51e+03 12.4 0.035 231 1.14e+03 World eIoni + 10 -910 -730 -2.52e+03 12.4 0.00301 16.5 1.15e+03 World eIoni + 11 -1.02e+03 -818 -2.54e+03 12.3 0.0251 141 1.29e+03 World eIoni + 12 -1.06e+03 -853 -2.55e+03 12.3 0.0116 59 1.35e+03 World eIoni + 13 -1.31e+03 -1.04e+03 -2.59e+03 12.3 0.0452 309 1.66e+03 World eIoni + 14 -1.36e+03 -1.08e+03 -2.6e+03 12.3 0.00963 64.7 1.73e+03 World eIoni + 15 -1.37e+03 -1.08e+03 -2.6e+03 12.2 0.00112 11.2 1.74e+03 World eIoni + 16 -1.68e+03 -1.31e+03 -2.67e+03 12.2 0.0733 391 2.13e+03 World eIoni + 17 -1.76e+03 -1.38e+03 -2.69e+03 12.1 0.0162 111 2.24e+03 World eIoni + 18 -1.93e+03 -1.51e+03 -2.73e+03 12.1 0.0374 210 2.45e+03 World eIoni + 19 -2.11e+03 -1.64e+03 -2.77e+03 12.1 0.0362 234 2.68e+03 World eIoni + 20 -2.23e+03 -1.73e+03 -2.79e+03 12 0.025 145 2.83e+03 World eIoni + 21 -2.27e+03 -1.76e+03 -2.8e+03 12 0.00826 52.6 2.88e+03 World eIoni + 22 -2.33e+03 -1.8e+03 -2.81e+03 12 0.014 70.9 2.95e+03 World eIoni + 23 -2.38e+03 -1.84e+03 -2.82e+03 12 0.0105 66.6 3.02e+03 World eIoni + 24 -2.42e+03 -1.88e+03 -2.82e+03 12 0.00998 53.3 3.07e+03 World eIoni + 25 -2.45e+03 -1.9e+03 -2.83e+03 11.9 0.00697 45.5 3.12e+03 World eIoni + 26 -2.47e+03 -1.92e+03 -2.83e+03 11.9 0.00415 21.8 3.14e+03 World eIoni + 27 -2.52e+03 -1.96e+03 -2.84e+03 11.9 0.014 64.9 3.2e+03 World eIoni + 28 -2.59e+03 -2.01e+03 -2.85e+03 11.9 0.0163 89.2 3.29e+03 World eIoni + 29 -2.74e+03 -2.13e+03 -2.87e+03 11.8 0.0312 186 3.48e+03 World eIoni + 30 -2.94e+03 -2.28e+03 -2.9e+03 11.8 0.0434 258 3.74e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.74e+03 -2.13e+03 -2.87e+03 0.0059 0 0 0 World initStep + 1 -2.74e+03 -2.13e+03 -2.87e+03 0.00123 0.00467 1.03 1.03 World eIoni + 2 -2.74e+03 -2.13e+03 -2.87e+03 0 0.00123 0.077 1.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.59e+03 -2.01e+03 -2.85e+03 0.00326 0 0 0 World initStep + 1 -2.59e+03 -2.01e+03 -2.85e+03 0 0.00326 0.364 0.364 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.52e+03 -1.96e+03 -2.84e+03 0.00378 0 0 0 World initStep + 1 -2.52e+03 -1.96e+03 -2.84e+03 0 0.00378 0.469 0.469 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.47e+03 -1.92e+03 -2.83e+03 0.00243 0 0 0 World initStep + 1 -2.47e+03 -1.92e+03 -2.83e+03 0 0.00243 0.222 0.222 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.45e+03 -1.9e+03 -2.83e+03 0.0298 0 0 0 World initStep + 1 -2.46e+03 -1.9e+03 -2.82e+03 0.0263 0.00354 5.51 5.51 World eIoni + 2 -2.46e+03 -1.9e+03 -2.83e+03 0.0208 0.00544 4.68 10.2 World eIoni + 3 -2.46e+03 -1.9e+03 -2.83e+03 0.0174 0.0034 3.57 13.8 World eIoni + 4 -2.46e+03 -1.9e+03 -2.83e+03 0.0142 0.00327 2.97 16.7 World eIoni + 5 -2.46e+03 -1.9e+03 -2.83e+03 0.0111 0.00304 2.45 19.2 World eIoni + 6 -2.46e+03 -1.9e+03 -2.83e+03 0.00654 0.00458 2 21.2 World eIoni + 7 -2.46e+03 -1.9e+03 -2.83e+03 0 0.00654 1.2 22.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.42e+03 -1.88e+03 -2.82e+03 0.00128 0 0 0 World initStep + 1 -2.42e+03 -1.88e+03 -2.82e+03 0 0.00128 0.0816 0.0816 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.38e+03 -1.84e+03 -2.82e+03 0.00117 0 0 0 World initStep + 1 -2.38e+03 -1.84e+03 -2.82e+03 0 0.00117 0.0715 0.0715 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.33e+03 -1.8e+03 -2.81e+03 0.0106 0 0 0 World initStep + 1 -2.33e+03 -1.8e+03 -2.81e+03 0.00558 0.00505 1.93 1.93 World eIoni + 2 -2.33e+03 -1.8e+03 -2.81e+03 0 0.00558 0.93 2.86 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.27e+03 -1.76e+03 -2.8e+03 0.00129 0 0 0 World initStep + 1 -2.27e+03 -1.76e+03 -2.8e+03 0 0.00129 0.0826 0.0826 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.23e+03 -1.73e+03 -2.79e+03 0.00168 0 0 0 World initStep + 1 -2.23e+03 -1.73e+03 -2.79e+03 0 0.00168 0.123 0.123 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.11e+03 -1.64e+03 -2.77e+03 0.0196 0 0 0 World initStep + 1 -2.11e+03 -1.64e+03 -2.77e+03 0.014 0.00559 3.34 3.34 World eIoni + 2 -2.11e+03 -1.64e+03 -2.77e+03 0.00994 0.003 1.81 5.15 World eIoni + 3 -2.12e+03 -1.64e+03 -2.77e+03 0.00345 0.0065 1.83 6.98 World eIoni + 4 -2.12e+03 -1.64e+03 -2.77e+03 0 0.00345 0.4 7.38 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.11e+03 -1.64e+03 -2.77e+03 0.00105 0 0 0 World initStep + 1 -2.11e+03 -1.64e+03 -2.77e+03 0 0.00105 0.0608 0.0608 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.93e+03 -1.51e+03 -2.73e+03 0.00111 0 0 0 World initStep + 1 -1.93e+03 -1.51e+03 -2.73e+03 0 0.00111 0.066 0.066 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.76e+03 -1.38e+03 -2.69e+03 0.00167 0 0 0 World initStep + 1 -1.76e+03 -1.38e+03 -2.69e+03 0 0.00167 0.122 0.122 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.68e+03 -1.31e+03 -2.67e+03 0.00115 0 0 0 World initStep + 1 -1.68e+03 -1.31e+03 -2.67e+03 0 0.00115 0.0699 0.0699 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.37e+03 -1.08e+03 -2.6e+03 0.0215 0 0 0 World initStep + 1 -1.37e+03 -1.08e+03 -2.6e+03 0.014 0.00268 2.4 2.4 World eIoni + 2 -1.37e+03 -1.08e+03 -2.6e+03 0.00851 0.00551 2.43 4.83 World eIoni + 3 -1.37e+03 -1.08e+03 -2.6e+03 0.00337 0.00514 1.6 6.42 World eIoni + 4 -1.37e+03 -1.08e+03 -2.6e+03 0 0.00337 0.384 6.81 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 71 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.37e+03 -1.08e+03 -2.6e+03 0.00484 0 0 0 World initStep + 1 -1.37e+03 -1.08e+03 -2.6e+03 0 0.00484 0.724 0.724 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.36e+03 -1.08e+03 -2.6e+03 0.0126 0 0 0 World initStep + 1 -1.36e+03 -1.07e+03 -2.6e+03 0.00709 0.00548 2.21 2.21 World eIoni + 2 -1.36e+03 -1.07e+03 -2.6e+03 0 0.00709 1.33 3.54 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.31e+03 -1.04e+03 -2.59e+03 0.00535 0 0 0 World initStep + 1 -1.31e+03 -1.04e+03 -2.59e+03 0.00355 7.23e-05 0.0637 0.0637 World eBrem + 2 -1.31e+03 -1.04e+03 -2.59e+03 0 0.00355 0.42 0.484 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.06e+03 -853 -2.55e+03 0.0012 0 0 0 World initStep + 1 -1.06e+03 -853 -2.55e+03 0 0.0012 0.074 0.074 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.02e+03 -818 -2.54e+03 0.0288 0 0 0 World initStep + 1 -1.02e+03 -819 -2.54e+03 0.0205 0.000709 0.813 0.813 World eIoni + 2 -1.02e+03 -821 -2.54e+03 0.0163 0.00413 3.5 4.32 World eIoni + 3 -1.02e+03 -822 -2.54e+03 0.0138 0.00254 2.79 7.11 World eIoni + 4 -1.01e+03 -822 -2.54e+03 0.0108 0.00299 2.4 9.5 World eIoni + 5 -1.01e+03 -823 -2.54e+03 0.00703 0.00234 1.48 11 World eIoni + 6 -1.01e+03 -823 -2.54e+03 0.00396 0.00307 1.31 12.3 World eIoni + 7 -1.01e+03 -823 -2.54e+03 0 0.00396 0.508 12.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.01e+03 -823 -2.54e+03 0.00145 0 0 0 World initStep + 1 -1.01e+03 -822 -2.54e+03 0 0.00145 0.0989 0.0989 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.02e+03 -819 -2.54e+03 0.00757 0 0 0 World initStep + 1 -1.02e+03 -819 -2.54e+03 0.00198 0.00559 1.43 1.43 World eIoni + 2 -1.02e+03 -819 -2.54e+03 0 0.00198 0.159 1.59 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -910 -730 -2.52e+03 0.00201 0 0 0 World initStep + 1 -910 -730 -2.52e+03 0 0.00201 0.163 0.163 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -897 -720 -2.51e+03 0.0014 0 0 0 World initStep + 1 -897 -720 -2.51e+03 0 0.0014 0.0931 0.0931 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -714 -582 -2.48e+03 0.00709 0 0 0 World initStep + 1 -714 -583 -2.48e+03 0.00175 0.00535 1.33 1.33 World eIoni + 2 -714 -583 -2.48e+03 0 0.00175 0.131 1.46 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -517 -415 -2.46e+03 0.00113 0 0 0 World initStep + 1 -517 -415 -2.46e+03 0 0.00113 0.0682 0.0682 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -81.7 -73.2 -2.41e+03 0.00113 0 0 0 World initStep + 1 -81.7 -73.2 -2.41e+03 0 0.00113 0.0678 0.0678 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 88, Parent ID = 69 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.31e+03 -1.04e+03 -2.59e+03 0.00173 0 0 0 World initStep + 1 -1.31e+03 -1.04e+03 -2.59e+03 0 0.000403 3.41 3.41 World phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.31e+03 -1.04e+03 -2.59e+03 0.00133 0 0 0 World initStep + 1 -1.31e+03 -1.04e+03 -2.59e+03 0 0.00133 0.0863 0.0863 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.3 -21 -2.41e+03 0.256 0 0 0 Target initStep + 1 -12.5 -21.3 -2.41e+03 0 0.088 0.286 0.286 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 61 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.5 -21.3 -2.41e+03 0.168 0 0 0 Target initStep + 1 -12.5 -21.3 -2.41e+03 0 0.168 0.0622 0.0622 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 60, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.2 -21 -2.41e+03 0.778 0 0 0 Target initStep + 1 -12.8 -21.5 -2.41e+03 0.778 0 0.776 0.776 World Transportation + 2 -2.94e+03 -2.47e+03 -2.48e+03 0.778 0 3.82e+03 3.82e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 59, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.1 -19.8 -2.41e+03 0.14 0 0 0 Target initStep + 1 -11.2 -19.9 -2.41e+03 0 0.088 0.107 0.107 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 59 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.2 -19.9 -2.41e+03 0.0517 0 0 0 Target initStep + 1 -11.2 -19.9 -2.41e+03 0 0.0517 0.00942 0.00942 Target 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.676 0.345 -2.44e+03 1.08 0 0 0 Target initStep - 1 -2.98 2.22 -2.44e+03 0.883 0 3.84 3.84 Target compt - 2 -6.36 11 -2.45e+03 0.76 0 10.8 14.6 Target compt - 3 -6.41 16 -2.45e+03 0 0.088 5.06 19.7 Target phot + 0 -1.18 -1.42 -2.44e+03 14 0 0 0 Target initStep + 1 -16.7 -15.4 -2.4e+03 0 0 40.8 40.8 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 26 +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.41 16 -2.45e+03 0.672 0 0 0 Target initStep - 1 -6.41 16 -2.45e+03 0 0.672 0.449 0.449 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.36 11 -2.45e+03 0.123 0 0 0 Target initStep - 1 -6.36 11 -2.45e+03 0 0.123 0.038 0.038 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.98 2.22 -2.44e+03 0.198 0 0 0 Target initStep - 1 -2.98 2.22 -2.44e+03 0 0.198 0.0803 0.0803 Target eIoni + 0 -16.7 -15.4 -2.4e+03 1.26 0 0 0 Target initStep + 1 -16.7 -15.4 -2.4e+03 0 1.26 0.954 0.954 Target eIoni ********************************************************************************************************* * 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.62 0.273 -2.44e+03 2.97 0 0 0 Target initStep - 1 -4.95 5.54 -2.41e+03 2.64 0 34.2 34.2 Target compt - 2 -7.11 6.47 -2.4e+03 0 0 6.56 40.8 Target conv + 0 -0.896 -0.946 -2.44e+03 0.484 0 0 0 Target initStep + 1 -4.94 -6.41 -2.43e+03 0 0.088 11.8 11.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 25 +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 25 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.11 6.47 -2.4e+03 0.68 0 0 0 Target initStep - 1 -7.13 6.45 -2.4e+03 0 0.68 0.455 0.455 Target eIoni - -********************************************************************************************************* -* 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 -4.95 5.54 -2.41e+03 0.332 0 0 0 Target initStep - 1 -4.95 5.54 -2.41e+03 0 0.332 0.173 0.173 Target eIoni + 0 -4.94 -6.41 -2.43e+03 0.396 0 0 0 Target initStep + 1 -4.95 -6.42 -2.43e+03 0 0.396 0.222 0.222 Target 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.657 0.0692 -2.44e+03 0.135 0 0 0 Target initStep - 1 -0.397 -0.109 -2.44e+03 0 0.088 0.871 0.871 Target phot + 0 -0.587 -0.805 -2.44e+03 0.3 0 0 0 Target initStep + 1 -0.894 -1.17 -2.44e+03 0 0.088 4.01 4.01 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 24 +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 24 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.397 -0.109 -2.44e+03 0.0469 0 0 0 Target initStep - 1 -0.397 -0.109 -2.44e+03 0 0.0469 0.00803 0.00803 Target eIoni + 0 -0.894 -1.17 -2.44e+03 0.212 0 0 0 Target initStep + 1 -0.894 -1.17 -2.44e+03 0 0.212 0.0891 0.0891 Target eIoni ********************************************************************************************************* * 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.557 0.0962 -2.44e+03 44.2 0 0 0 Target initStep - 1 -12.7 -2.67 -2.4e+03 44.2 0 44.3 44.3 Tracker Transportation - 2 -213 -48.2 -1.7e+03 44.2 0 729 774 Chamber Transportation - 3 -234 -53.1 -1.63e+03 44.2 0 77.3 851 Tracker Transportation - 4 -442 -100 -900 44.2 0 756 1.61e+03 Chamber Transportation - 5 -499 -113 -700 44.2 0 208 1.82e+03 Tracker Transportation - 6 -670 -152 -100 44.2 0 625 2.44e+03 Chamber Transportation - 7 -727 -165 100 44.2 0 208 2.65e+03 Tracker Transportation - 8 -899 -204 700 44.2 0 625 3.27e+03 Chamber Transportation - 9 -956 -217 900 44.2 0 208 3.48e+03 Tracker Transportation - 10 -1.13e+03 -256 1.5e+03 44.2 0 625 4.11e+03 Chamber Transportation - 11 -1.18e+03 -269 1.7e+03 44.2 0 208 4.32e+03 Tracker Transportation - 12 -1.39e+03 -315 2.4e+03 44.2 0 729 5.05e+03 World Transportation - 13 -1.54e+03 -350 2.94e+03 44.2 0 563 5.61e+03 OutOfWorld Transportation + 0 -0.42 -0.586 -2.44e+03 9.08 0 0 0 Target initStep + 1 -1.29 -5.49 -2.43e+03 0 0 17.8 17.8 Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.29 -5.49 -2.43e+03 4.57 0 0 0 Target initStep + 1 -1.3 -5.64 -2.43e+03 2.55 1.73 1.69 1.69 Target eBrem + 2 -1.44 -5.47 -2.43e+03 0.3 2.25 1.62 3.31 Target eIoni + 3 -1.45 -5.47 -2.43e+03 0 0.3 0.149 3.46 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 98 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.3 -5.64 -2.43e+03 0.292 0 0 0 Target initStep + 1 -2.09 -4.71 -2.42e+03 0 0.088 1.25 1.25 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 100 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.09 -4.71 -2.42e+03 0.204 0 0 0 Target initStep + 1 -2.09 -4.71 -2.42e+03 0 0.204 0.084 0.084 Target 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.405 0.256 -2.44e+03 1.44 0 0 0 Target initStep - 1 -0.899 -0.385 -2.44e+03 0.368 0 6.51 6.51 Target compt - 2 5.48 -1.55 -2.44e+03 0.156 0 6.48 13 Target compt - 3 5.37 -1.56 -2.44e+03 0 0.088 0.116 13.1 Target phot + 0 -0.364 -0.419 -2.44e+03 0.193 0 0 0 Target initStep + 1 -0.397 -0.533 -2.44e+03 0 0.088 0.369 0.369 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 22 +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 22 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.37 -1.56 -2.44e+03 0.0679 0 0 0 Target initStep - 1 5.37 -1.56 -2.44e+03 0 0.0679 0.0147 0.0147 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 22 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.48 -1.55 -2.44e+03 0.212 0 0 0 Target initStep - 1 5.48 -1.55 -2.44e+03 0 0.212 0.0891 0.0891 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 22 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.899 -0.385 -2.44e+03 1.07 0 0 0 Target initStep - 1 -0.918 -0.388 -2.44e+03 0.546 0.228 0.235 0.235 Target eBrem - 2 -0.903 -0.405 -2.44e+03 0 0.546 0.343 0.577 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 40 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.918 -0.388 -2.44e+03 0.3 0 0 0 Target initStep - 1 -0.896 -1.56 -2.44e+03 0.28 0 1.29 1.29 Target compt - 2 -1.21 -2.27 -2.44e+03 0 0.088 0.786 2.08 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.21 -2.27 -2.44e+03 0.192 0 0 0 Target initStep - 1 -1.21 -2.27 -2.44e+03 0 0.192 0.0767 0.0767 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.896 -1.56 -2.44e+03 0.0198 0 0 0 Target initStep - 1 -0.896 -1.56 -2.44e+03 0 0.0198 0.00201 0.00201 Target eIoni + 0 -0.397 -0.533 -2.44e+03 0.105 0 0 0 Target initStep + 1 -0.396 -0.534 -2.44e+03 0 0.105 0.0297 0.0297 Target eIoni ********************************************************************************************************* * 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.338 0.308 -2.44e+03 6.55 0 0 0 Target initStep - 1 -2.17 -0.159 -2.43e+03 1.18 0 11.2 11.2 Target compt - 2 7.8 1.62 -2.42e+03 0.338 0 15.7 26.9 Target compt - 3 7.76 1.64 -2.42e+03 0 0.088 0.0561 26.9 Target phot + 0 -0.321 -0.264 -2.44e+03 0.15 0 0 0 Target initStep + 1 -0.347 -0.522 -2.44e+03 0 0.088 0.859 0.859 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 21 +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 21 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.76 1.64 -2.42e+03 0.25 0 0 0 Target initStep - 1 7.75 1.64 -2.42e+03 0 0.25 0.114 0.114 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 21 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.8 1.62 -2.42e+03 0.843 0 0 0 Target initStep - 1 7.84 1.62 -2.42e+03 0 0.843 0.595 0.595 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 21 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.17 -0.159 -2.43e+03 5.37 0 0 0 Target initStep - 1 -2.27 -0.18 -2.43e+03 0.26 0.627 0.377 0.377 Target eBrem - 2 -2.26 -0.185 -2.43e+03 0 0.26 0.121 0.498 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 49, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -0.18 -2.43e+03 4.48 0 0 0 Target initStep - 1 -1.21 -2.26 -2.43e+03 0.575 0 7.77 7.77 Target compt - 2 0.717 -0.82 -2.42e+03 0.521 0 2.51 10.3 Target compt - 3 5.99 1.32 -2.42e+03 0.419 0 5.7 16 Target compt - 4 11.3 6.64 -2.43e+03 0.415 0 9.57 25.6 Target compt - 5 17.6 11.1 -2.44e+03 0 0.088 9.35 34.9 Target phot - -********************************************************************************************************* -* 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 17.6 11.1 -2.44e+03 0.327 0 0 0 Target initStep - 1 17.6 11.1 -2.44e+03 0 0.327 0.169 0.169 Target eIoni - -********************************************************************************************************* -* 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 11.3 6.64 -2.43e+03 0.00365 0 0 0 Target initStep - 1 11.3 6.64 -2.43e+03 0 0.00365 0.00017 0.00017 Target eIoni - -********************************************************************************************************* -* 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 5.99 1.32 -2.42e+03 0.102 0 0 0 Target initStep - 1 5.99 1.32 -2.42e+03 0 0.102 0.0284 0.0284 Target eIoni - -********************************************************************************************************* -* 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 0.717 -0.82 -2.42e+03 0.0541 0 0 0 Target initStep - 1 0.717 -0.819 -2.42e+03 0 0.0541 0.0101 0.0101 Target eIoni - -********************************************************************************************************* -* 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 -1.21 -2.26 -2.43e+03 3.91 0 0 0 Target initStep - 1 -1.2 -2.29 -2.43e+03 3.59 0.1 0.121 0.121 Target eBrem - 2 -1.18 -2.25 -2.42e+03 1.37 1.92 1.82 1.94 Target eBrem - 3 -1.18 -2.17 -2.42e+03 0.116 1.25 1.05 2.99 Target eIoni - 4 -1.18 -2.17 -2.42e+03 0 0.116 0.0345 3.02 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.18 -2.25 -2.42e+03 0.301 0 0 0 Target initStep - 1 -1.18 -2.02 -2.42e+03 0 0.088 0.241 0.241 Target phot - -********************************************************************************************************* -* 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 -1.18 -2.02 -2.42e+03 0.213 0 0 0 Target initStep - 1 -1.18 -2.02 -2.42e+03 0 0.213 0.0898 0.0898 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.2 -2.29 -2.43e+03 0.213 0 0 0 Target initStep - 1 -1.27 -1.98 -2.42e+03 0 0.088 0.752 0.752 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.27 -1.98 -2.42e+03 0.125 0 0 0 Target initStep - 1 -1.26 -1.98 -2.42e+03 0 0.125 0.0392 0.0392 Target eIoni + 0 -0.347 -0.522 -2.44e+03 0.0621 0 0 0 Target initStep + 1 -0.347 -0.522 -2.44e+03 0 0.0621 0.0127 0.0127 Target 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.164 0.263 -2.44e+03 0.835 0 0 0 Target initStep - 1 -4.59 1.87 -2.4e+03 0.835 0 45.2 45.2 Tracker Transportation - 2 -73.5 26.9 -1.7e+03 0.835 0 704 749 Chamber Transportation - 3 -93.2 34.1 -1.5e+03 0.835 0 201 950 Tracker Transportation - 4 -152 55.5 -900 0.835 0 603 1.55e+03 Chamber Transportation - 5 -172 62.7 -700 0.835 0 201 1.75e+03 Tracker Transportation - 6 -231 84.1 -100 0.835 0 603 2.36e+03 Chamber Transportation - 7 -251 91.3 100 0.835 0 201 2.56e+03 Tracker Transportation - 8 -310 113 700 0.835 0 603 3.16e+03 Chamber Transportation - 9 -329 120 900 0.835 0 201 3.36e+03 Tracker Transportation - 10 -388 141 1.5e+03 0.835 0 603 3.97e+03 Chamber Transportation - 11 -408 148 1.7e+03 0.835 0 201 4.17e+03 Tracker Transportation - 12 -477 174 2.4e+03 0.835 0 704 4.87e+03 World Transportation - 13 -530 193 2.94e+03 0.835 0 543 5.41e+03 OutOfWorld Transportation + 0 -0.304 -0.221 -2.44e+03 0.0954 0 0 0 Target initStep + 1 -0.318 -0.27 -2.44e+03 0 0.088 0.177 0.177 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 20 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.318 -0.27 -2.44e+03 0.00736 0 0 0 Target initStep + 1 -0.318 -0.27 -2.44e+03 0 0.00736 0.000449 0.000449 Target eIoni ********************************************************************************************************* * 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.0141 0.148 -2.45e+03 0.0992 0 0 0 Target initStep - 1 -0.0176 0.148 -2.45e+03 0 0.088 0.0288 0.0288 Target phot + 0 -0.254 -0.0957 -2.44e+03 0.15 0 0 0 Target initStep + 1 -0.396 -0.387 -2.44e+03 0 0.088 1.34 1.34 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 19 +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0176 0.148 -2.45e+03 0.0112 0 0 0 Target initStep - 1 -0.0176 0.148 -2.45e+03 0 0.0112 0.000833 0.000833 Target eIoni + 0 -0.396 -0.387 -2.44e+03 0.0617 0 0 0 Target initStep + 1 -0.397 -0.388 -2.44e+03 0 0.0617 0.0126 0.0126 Target 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.00907 0.148 -2.45e+03 0.897 0 0 0 Target initStep - 1 -1.09 0.304 -2.44e+03 0.329 0 8.59 8.59 Target compt - 2 4.84 -6.16 -2.44e+03 0 0.088 8.83 17.4 Target phot + 0 -0.0282 0.122 -2.45e+03 0.305 0 0 0 Target initStep + 1 -1.03 -1.23 -2.44e+03 0 0.088 5.24 5.24 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 18 +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 18 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.84 -6.16 -2.44e+03 0.241 0 0 0 Target initStep - 1 4.84 -6.17 -2.44e+03 0 0.241 0.108 0.108 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.09 0.304 -2.44e+03 0.568 0 0 0 Target initStep - 1 -1.1 0.311 -2.44e+03 0 0.568 0.361 0.361 Target eIoni + 0 -1.03 -1.23 -2.44e+03 0.217 0 0 0 Target initStep + 1 -1.03 -1.23 -2.44e+03 0 0.217 0.0922 0.0922 Target 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.0169 0.15 -2.45e+03 0.134 0 0 0 Target initStep - 1 -0.0778 0.146 -2.45e+03 0 0.088 0.629 0.629 Target phot + 0 0.0187 0.15 -2.45e+03 6.23 0 0 0 Target initStep + 1 -0.167 0.154 -2.44e+03 3.54 0 1.61 1.61 Target compt + 2 -0.0225 1.53 -2.44e+03 0 0 4.3 5.9 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 17 +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 17 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0778 0.146 -2.45e+03 0.0457 0 0 0 Target initStep - 1 -0.0776 0.147 -2.45e+03 0 0.0457 0.0077 0.0077 Target eIoni + 0 -0.0225 1.53 -2.44e+03 1.21 0 0 0 Target initStep + 1 -0.0215 1.52 -2.44e+03 0 1.21 0.912 0.912 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.167 0.154 -2.44e+03 2.69 0 0 0 Target initStep + 1 -0.169 0.152 -2.44e+03 2.57 0.00704 0.00749 0.00749 Target eBrem + 2 -0.195 0.103 -2.44e+03 0.444 2.13 1.63 1.63 Target eIoni + 3 -0.179 0.0971 -2.44e+03 0 0.444 0.259 1.89 Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 107 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.169 0.152 -2.44e+03 0.109 0 0 0 Target initStep + 1 -0.171 0.132 -2.44e+03 0 0.088 0.0846 0.0846 Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 110 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.171 0.132 -2.44e+03 0.0212 0 0 0 Target initStep + 1 -0.171 0.132 -2.44e+03 0 0.0212 0.00223 0.00223 Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 @@ -1322,7 +1752,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.0305 0.147 -2.45e+03 121 0 0 0 Target initStep - 1 -0.219 0.212 -2.44e+03 0 0 2.67 2.67 Target conv + 1 -1.58 0.56 -2.43e+03 0 0 17.2 17.2 Target conv ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 @@ -1330,10 +1760,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.0689 0.138 -2.45e+03 1.6 0 0 0 Target initStep - 1 -2.97 1.17 -2.41e+03 0.649 0 33 33 Target compt - 2 -1.81 14.5 -2.41e+03 0.34 0 15.7 48.7 Target compt - 3 -0.972 16.5 -2.41e+03 0.221 0 2.78 51.4 Target compt - 4 -0.439 16.2 -2.41e+03 0 0.088 0.636 52.1 Target phot + 1 -0.807 0.435 -2.44e+03 0.49 0 9.53 9.53 Target compt + 2 -7.78 10.1 -2.43e+03 0 0.088 12.2 21.7 Target phot ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 @@ -1341,7 +1769,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.151 0.126 -2.45e+03 0.191 0 0 0 Target initStep - 1 0.109 0.127 -2.45e+03 0 0.088 0.512 0.512 Target phot + 1 0.128 0.127 -2.45e+03 0 0.088 0.29 0.29 Target phot ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 @@ -1349,7 +1777,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.206 0.124 -2.45e+03 0.174 0 0 0 Target initStep - 1 0.19 0.125 -2.45e+03 0 0.088 0.2 0.2 Target phot + 1 0.177 0.126 -2.45e+03 0 0.088 0.361 0.361 Target phot ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 @@ -1357,7 +1785,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.252 0.108 -2.45e+03 0.224 0 0 0 Target initStep - 1 0.248 0.109 -2.45e+03 0 0.088 0.123 0.123 Target phot + 1 0.222 0.112 -2.45e+03 0 0.088 0.873 0.873 Target phot ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 @@ -1365,1701 +1793,1638 @@ 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.252 0.108 -2.45e+03 1.36 0 0 0 Target initStep - 1 -1.47 0.337 -2.4e+03 0.57 0 46.7 46.7 Target compt - 2 -4.93 3.83 -2.4e+03 0.57 0 5.53 52.3 Tracker Transportation - 3 -1.69e+03 1.7e+03 -1.18e+03 0.57 0 2.69e+03 2.74e+03 World Transportation - 4 -2.91e+03 2.94e+03 -290 0.57 0 1.95e+03 4.69e+03 OutOfWorld Transportation + 1 -0.713 0.237 -2.42e+03 1.07 0 26.3 26.3 Target compt + 2 -4.43 -7.57 -2.41e+03 0.974 0 19.2 45.5 Target compt + 3 -5.24 -8.3 -2.4e+03 0.974 0 5.9 51.4 Tracker Transportation + 4 -103 -96.2 -1.7e+03 0.974 0 712 764 Chamber Transportation + 5 -130 -121 -1.5e+03 0.974 0 203 967 Tracker Transportation + 6 -214 -197 -900 0.974 0 610 1.58e+03 Chamber Transportation + 7 -242 -222 -700 0.974 0 203 1.78e+03 Tracker Transportation + 8 -325 -297 -100 0.974 0 610 2.39e+03 Chamber Transportation + 9 -353 -322 100 0.974 0 203 2.59e+03 Tracker Transportation + 10 -436 -397 700 0.974 0 610 3.21e+03 Chamber Transportation + 11 -464 -423 900 0.974 0 203 3.41e+03 Tracker Transportation + 12 -548 -498 1.5e+03 0.974 0 610 4.02e+03 Chamber Transportation + 13 -575 -523 1.7e+03 0.974 0 203 4.22e+03 Tracker Transportation + 14 -673 -611 2.4e+03 0.974 0 712 4.93e+03 World Transportation + 15 -748 -679 2.94e+03 0.974 0 549 5.48e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 64, Parent ID = 16 +* G4Track Information: Particle = e+, Track ID = 113, Parent ID = 16 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.219 0.212 -2.44e+03 96.5 0 0 0 Target initStep - 1 -0.229 0.213 -2.44e+03 88.9 0.186 0.104 0.104 Target eBrem - 2 -0.266 0.222 -2.44e+03 88.4 0.387 0.349 0.454 Target eBrem - 3 -0.27 0.225 -2.44e+03 76.8 0.0258 0.0319 0.486 Target eBrem - 4 -0.371 0.381 -2.44e+03 73.6 1.35 1.11 1.6 Target eBrem - 5 -0.384 0.392 -2.44e+03 73.2 0.0881 0.0835 1.68 Target eBrem - 6 -0.422 0.442 -2.44e+03 63.9 0.352 0.297 1.98 Target eBrem - 7 -0.437 0.459 -2.44e+03 61.3 0.192 0.136 2.11 Target eBrem - 8 -0.455 0.478 -2.44e+03 60.8 0.15 0.134 2.25 Target eBrem - 9 -0.456 0.478 -2.44e+03 49.3 0.00619 0.00534 2.25 Target eBrem - 10 -0.467 0.672 -2.44e+03 46.9 1.4 1.12 3.38 Target eIoni - 11 -0.691 0.753 -2.44e+03 44.8 1.71 1.44 4.82 Target eBrem - 12 -0.687 0.74 -2.44e+03 42.6 0.088 0.0755 4.9 Target eBrem - 13 -0.686 0.74 -2.44e+03 42.2 0.00629 0.00226 4.9 Target eBrem - 14 -0.682 0.702 -2.44e+03 40.6 0.477 0.219 5.12 Target eBrem - 15 -0.512 0.695 -2.44e+03 35.6 1.51 1.24 6.36 Target eIoni - 16 -0.33 1.39 -2.44e+03 14.8 3.32 2.03 8.39 Target eBrem - 17 -0.322 1.4 -2.44e+03 14.4 0.0312 0.0338 8.42 Target eBrem - 18 -0.152 1.6 -2.43e+03 11.6 1.05 0.933 9.36 Target eBrem - 19 -0.0274 1.59 -2.43e+03 10.8 0.76 0.702 10.1 Target eBrem - 20 0.138 1.75 -2.43e+03 9.67 0.692 0.519 10.6 Target eBrem - 21 0.26 1.9 -2.43e+03 8.02 0.415 0.399 11 Target eBrem - 22 0.314 1.96 -2.43e+03 6.15 0.266 0.198 11.2 Target eBrem - 23 0.358 1.98 -2.43e+03 5.66 0.219 0.224 11.4 Target eBrem - 24 0.462 2.01 -2.43e+03 5.33 0.209 0.257 11.7 Target eBrem - 25 0.471 2.01 -2.43e+03 4.33 0.019 0.0292 11.7 Target eBrem - 26 0.475 2.04 -2.43e+03 2 0.154 0.137 11.8 Target eBrem - 27 0.38 2.06 -2.43e+03 0.474 1.53 1.44 13.3 Target eIoni - 28 0.359 2.08 -2.43e+03 0 0.474 0.281 13.5 Target eIoni - 29 0.359 2.08 -2.43e+03 0 0 0 13.5 Target annihil + 0 -1.58 0.56 -2.43e+03 34.5 0 0 0 Target initStep + 1 -1.59 0.571 -2.43e+03 30.4 0.314 0.23 0.23 Target eBrem + 2 -1.57 0.665 -2.43e+03 28 1.88 1.32 1.55 Target eBrem + 3 -1.62 0.504 -2.43e+03 26.3 1.16 0.545 2.09 Target eBrem + 4 -1.66 0.39 -2.43e+03 24.2 0.306 0.322 2.41 Target eBrem + 5 -1.7 0.271 -2.43e+03 22.2 0.399 0.363 2.78 Target eBrem + 6 -1.72 0.241 -2.43e+03 21.7 0.181 0.15 2.93 Target eBrem + 7 -1.86 0.0299 -2.43e+03 20 1.03 0.904 3.83 Target eBrem + 8 -2.2 -0.0213 -2.42e+03 17.9 1.98 1.31 5.14 Target eBrem + 9 -3.28 -1.14 -2.43e+03 11.1 2.19 1.86 7 Target eBrem + 10 -3.37 -1.27 -2.43e+03 9.8 0.404 0.169 7.17 Target eBrem + 11 -3.58 -1.6 -2.43e+03 9.29 0.515 0.426 7.6 Target eBrem + 12 -3.9 -1.86 -2.43e+03 8.14 0.646 0.489 8.08 Target eBrem + 13 -3.93 -1.88 -2.43e+03 5.83 0.0365 0.0504 8.13 Target eBrem + 14 -4.25 -2 -2.43e+03 2.73 0.484 0.437 8.57 Target eBrem + 15 -4.6 -1.91 -2.43e+03 0.595 2.14 1.7 10.3 Target eIoni + 16 -4.6 -1.92 -2.43e+03 0 0.595 0.382 10.7 Target eIoni + 17 -4.6 -1.92 -2.43e+03 0 0 0 10.7 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 38, Parent ID = 25 +* G4Track Information: Particle = e+, Track ID = 109, Parent ID = 17 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.11 6.47 -2.4e+03 0.941 0 0 0 Target initStep - 1 -7.06 6.52 -2.4e+03 0 0.941 0.685 0.685 Target eIoni - 2 -7.06 6.52 -2.4e+03 0 0 0 0.685 Target annihil + 0 -0.0225 1.53 -2.44e+03 1.31 0 0 0 Target initStep + 1 -0.0164 1.61 -2.44e+03 0 1.31 1.02 1.02 Target eIoni + 2 -0.0164 1.61 -2.44e+03 0 0 0 1.02 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 64 +* G4Track Information: Particle = e+, Track ID = 99, Parent ID = 23 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.512 0.695 -2.44e+03 3.58 0 0 0 Target initStep - 1 -0.69 0.672 -2.44e+03 0.986 2.09 1.8 1.8 Target eBrem - 2 -0.659 0.714 -2.44e+03 0 0.986 0.718 2.52 Target eIoni + 0 -1.29 -5.49 -2.43e+03 3.49 0 0 0 Target initStep + 1 -1.33 -5.62 -2.43e+03 1.86 1.13 1.18 1.18 Target eBrem + 2 -1.51 -5.57 -2.43e+03 0.0414 1.82 1.37 2.55 Target eIoni + 3 -1.51 -5.57 -2.43e+03 0 0.0414 0.00579 2.55 Target eIoni + 4 -1.51 -5.57 -2.43e+03 0 0 0 2.55 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 64 +* G4Track Information: Particle = e+, Track ID = 95, Parent ID = 26 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.467 0.672 -2.44e+03 1.03 0 0 0 Target initStep - 1 -0.468 0.716 -2.44e+03 0 1.03 0.757 0.757 Target eIoni + 0 -16.7 -15.4 -2.4e+03 11.7 0 0 0 Target initStep + 1 -17.2 -15.5 -2.4e+03 8.88 2.82 1.47 1.47 Target msc + 2 -16.4 -16.4 -2.4e+03 7.51 1.38 1.2 2.67 Target msc + 3 -16 -17.2 -2.4e+03 6.02 1.48 1.06 3.72 Target msc + 4 -15.7 -16.6 -2.4e+03 5.11 0.913 0.873 4.6 Target msc + 5 -15.6 -16.6 -2.4e+03 3.67 0.0378 0.0344 4.63 Target eBrem + 6 -15.3 -16.6 -2.4e+03 2.49 0.936 0.847 5.48 Target eBrem + 7 -15.3 -16.6 -2.4e+03 2.27 0.104 0.0996 5.58 Target eBrem + 8 -15.3 -16.6 -2.4e+03 1.03 0.0362 0.0313 5.61 Target eBrem + 9 -15.4 -16.6 -2.4e+03 0 1.03 0.768 6.38 Target eIoni + 10 -15.4 -16.6 -2.4e+03 0 0 0 6.38 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 11 +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 11 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.47 0.337 -2.4e+03 0.785 0 0 0 Target initStep - 1 -1.46 0.325 -2.4e+03 0 0.785 0.545 0.545 Target eIoni + 0 -4.43 -7.57 -2.41e+03 0.0926 0 0 0 Target initStep + 1 -4.43 -7.57 -2.41e+03 0 0.0926 0.0242 0.0242 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 12 +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 11 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.248 0.109 -2.45e+03 0.136 0 0 0 Target initStep - 1 0.246 0.109 -2.45e+03 0 0.136 0.0448 0.0448 Target eIoni + 0 -0.713 0.237 -2.42e+03 0.289 0 0 0 Target initStep + 1 -0.711 0.244 -2.42e+03 0 0.289 0.141 0.141 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.19 0.125 -2.45e+03 0.0857 0 0 0 Target initStep - 1 0.191 0.125 -2.45e+03 0 0.0857 0.0214 0.0214 Target eIoni + 0 0.222 0.112 -2.45e+03 0.136 0 0 0 Target initStep + 1 0.223 0.111 -2.45e+03 0 0.136 0.0448 0.0448 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 14 +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 13 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.109 0.127 -2.45e+03 0.103 0 0 0 Target initStep - 1 0.108 0.126 -2.45e+03 0 0.103 0.0287 0.0287 Target eIoni + 0 0.177 0.126 -2.45e+03 0.0857 0 0 0 Target initStep + 1 0.178 0.127 -2.45e+03 0 0.0857 0.0214 0.0214 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 14 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.439 16.2 -2.41e+03 0.133 0 0 0 Target initStep - 1 -0.437 16.2 -2.41e+03 0 0.133 0.0429 0.0429 Target eIoni + 0 0.128 0.127 -2.45e+03 0.103 0 0 0 Target initStep + 1 0.128 0.126 -2.45e+03 0 0.103 0.0287 0.0287 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 15 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.972 16.5 -2.41e+03 0.119 0 0 0 Target initStep - 1 -0.973 16.5 -2.41e+03 0 0.119 0.0363 0.0363 Target eIoni + 0 -7.78 10.1 -2.43e+03 0.402 0 0 0 Target initStep + 1 -7.79 10.1 -2.43e+03 0 0.402 0.226 0.226 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 15 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.81 14.5 -2.41e+03 0.309 0 0 0 Target initStep - 1 -1.81 14.5 -2.41e+03 0 0.309 0.156 0.156 Target eIoni + 0 -0.807 0.435 -2.44e+03 1.11 0 0 0 Target initStep + 1 -0.802 0.42 -2.44e+03 0.15 0.955 0.491 0.491 Target eBrem + 2 -0.8 0.418 -2.44e+03 0 0.15 0.0523 0.543 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 16 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.97 1.17 -2.41e+03 0.946 0 0 0 Target initStep - 1 -2.97 1.15 -2.41e+03 0.0929 0.286 0.292 0.292 Target eBrem - 2 -2.98 1.15 -2.41e+03 0 0.0929 0.0244 0.316 Target eIoni + 0 -1.58 0.56 -2.43e+03 85.7 0 0 0 Target initStep + 1 -1.58 0.561 -2.43e+03 65.2 0.0704 0.0352 0.0352 Target eBrem + 2 -2.03 0.823 -2.43e+03 41.6 2.41 2.25 2.29 Target eBrem + 3 -2.26 0.832 -2.43e+03 39.4 0.911 0.765 3.06 Target eIoni + 4 -2.7 1.25 -2.42e+03 33.1 3.72 2.83 5.88 Target eBrem + 5 -2.71 1.27 -2.42e+03 32.9 0.0574 0.0541 5.94 Target eBrem + 6 -2.91 1.59 -2.42e+03 21.3 1.5 0.918 6.85 Target eBrem + 7 -3.36 2.24 -2.42e+03 19.4 1.69 1.33 8.19 Target eBrem + 8 -3.4 2.29 -2.42e+03 8.31 0.0729 0.0665 8.25 Target eBrem + 9 -4.14 2.93 -2.42e+03 5.44 2.87 1.92 10.2 Target eBrem + 10 -4.05 2.93 -2.42e+03 3.8 0.13 0.147 10.3 Target eBrem + 11 -3.9 2.92 -2.42e+03 3.35 0.231 0.213 10.5 Target eBrem + 12 -3.82 2.91 -2.42e+03 3.1 0.105 0.1 10.6 Target eBrem + 13 -3.53 3.02 -2.42e+03 0.981 2.12 1.78 12.4 Target eIoni + 14 -3.57 3.06 -2.42e+03 0 0.981 0.715 13.1 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 16 +* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.219 0.212 -2.44e+03 23.7 0 0 0 Target initStep - 1 -0.258 0.334 -2.44e+03 22.8 0.662 0.63 0.63 Target eBrem - 2 -0.452 0.451 -2.44e+03 21.1 0.626 0.502 1.13 Target eBrem - 3 -0.531 0.779 -2.44e+03 20 1.03 0.853 1.98 Target eBrem - 4 -0.868 0.842 -2.44e+03 18 1.49 1.09 3.08 Target eBrem - 5 -1.22 0.672 -2.44e+03 16.4 1.33 0.848 3.93 Target eBrem - 6 -1.27 0.687 -2.44e+03 16 0.0737 0.0641 3.99 Target eBrem - 7 -1.62 0.797 -2.44e+03 5.7 0.453 0.394 4.38 Target eBrem - 8 -2.28 0.785 -2.44e+03 3.52 1.93 1.3 5.68 Target eBrem - 9 -2.26 0.845 -2.44e+03 1.7 1.45 1.14 6.82 Target eBrem - 10 -2.28 0.776 -2.44e+03 1.18 0.118 0.101 6.92 Target eBrem - 11 -2.28 0.703 -2.44e+03 0.0193 1.16 0.873 7.79 Target eBrem - 12 -2.28 0.704 -2.44e+03 0 0.0193 0.00192 7.79 Target eIoni + 0 -2.26 0.832 -2.43e+03 1.3 0 0 0 Target initStep + 1 -2.33 0.841 -2.43e+03 0 1.3 0.992 0.992 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.28 0.776 -2.44e+03 0.4 0 0 0 Target initStep - 1 -2.49 -0.593 -2.44e+03 0 0.088 1.6 1.6 Target phot + 0 -3.82 2.91 -2.42e+03 0.148 0 0 0 Target initStep + 1 -3.69 2.97 -2.42e+03 0 0.088 0.15 0.15 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 114 +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 157 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.49 -0.593 -2.44e+03 0.312 0 0 0 Target initStep - 1 -2.49 -0.603 -2.44e+03 0 0.312 0.157 0.157 Target eIoni + 0 -3.69 2.97 -2.42e+03 0.0602 0 0 0 Target initStep + 1 -3.69 2.97 -2.42e+03 0 0.0602 0.0121 0.0121 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 156, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.26 0.845 -2.44e+03 0.378 0 0 0 Target initStep - 1 -3.82 -4.11 -2.44e+03 0.32 0 5.21 5.21 Target compt - 2 -4.16 -5.05 -2.44e+03 0.243 0 1.24 6.45 Target compt - 3 -5.22 -4.64 -2.44e+03 0.146 0 2.11 8.56 Target compt - 4 -5.65 -5.37 -2.44e+03 0 0.088 1.03 9.59 Target phot + 0 -3.9 2.92 -2.42e+03 0.215 0 0 0 Target initStep + 1 -3.76 2.87 -2.42e+03 0 0.088 0.179 0.179 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 113 +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 156 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.65 -5.37 -2.44e+03 0.0576 0 0 0 Target initStep - 1 -5.66 -5.37 -2.44e+03 0 0.0576 0.0112 0.0112 Target eIoni + 0 -3.76 2.87 -2.42e+03 0.127 0 0 0 Target initStep + 1 -3.76 2.87 -2.42e+03 0 0.127 0.0399 0.0399 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 113 +* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.22 -4.64 -2.44e+03 0.0977 0 0 0 Target initStep - 1 -5.22 -4.64 -2.44e+03 0 0.0977 0.0264 0.0264 Target eIoni + 0 -4.05 2.93 -2.42e+03 1.51 0 0 0 Target initStep + 1 19.5 1.17 -2.41e+03 1.19 0 26.5 26.5 Target compt + 2 25 -0.767 -2.4e+03 1.19 0 8.8 35.3 World Transportation + 3 27.1 -1.52 -2.4e+03 1.19 0 3.42 38.7 Tracker Transportation + 4 2.26e+03 -795 316 1.19 0 3.61e+03 3.65e+03 World Transportation + 5 2.94e+03 -1.03e+03 1.14e+03 1.19 0 1.09e+03 4.73e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 113 +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 155 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.16 -5.05 -2.44e+03 0.0765 0 0 0 Target initStep - 1 -4.16 -5.05 -2.44e+03 0 0.0765 0.0178 0.0178 Target eIoni + 0 19.5 1.17 -2.41e+03 0.325 0 0 0 Target initStep + 1 19.5 1.17 -2.41e+03 0 0.325 0.168 0.168 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 113 +* G4Track Information: Particle = gamma, Track ID = 154, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.82 -4.11 -2.44e+03 0.058 0 0 0 Target initStep - 1 -3.82 -4.11 -2.44e+03 0 0.058 0.0114 0.0114 Target eIoni + 0 -3.4 2.29 -2.42e+03 11.1 0 0 0 Target initStep + 1 -6.88 5.69 -2.42e+03 0 0 5.72 5.72 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 63 +* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 154 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.28 0.785 -2.44e+03 0.253 0 0 0 Target initStep - 1 -2.26 0.701 -2.44e+03 0 0.088 0.262 0.262 Target phot + 0 -6.88 5.69 -2.42e+03 3.89 0 0 0 Target initStep + 1 -6.93 5.75 -2.42e+03 3.71 0.0678 0.106 0.106 Target eBrem + 2 -7.06 6.1 -2.42e+03 0.658 1.75 1.6 1.7 Target eBrem + 3 -7.06 6.1 -2.42e+03 0 0.658 0.437 2.14 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 112 +* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 161 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.26 0.701 -2.44e+03 0.165 0 0 0 Target initStep - 1 -2.26 0.701 -2.44e+03 0 0.165 0.0605 0.0605 Target eIoni + 0 -7.06 6.1 -2.42e+03 1.29 0 0 0 Target initStep + 1 -7.31 6.54 -2.42e+03 0 0.088 3.15 3.15 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 63 +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 164 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.62 0.797 -2.44e+03 9.89 0 0 0 Target initStep - 1 -25 -0.176 -2.44e+03 9.89 0 23.9 23.9 World Transportation - 2 -197 -7.33 -2.4e+03 9.89 0 176 200 Tracker Transportation - 3 -2.4e+03 -98.9 -1.95e+03 9.89 0 2.25e+03 2.45e+03 World Transportation - 4 -2.94e+03 -121 -1.84e+03 9.89 0 554 3e+03 OutOfWorld Transportation + 0 -7.31 6.54 -2.42e+03 1.2 0 0 0 Target initStep + 1 -7.31 6.56 -2.42e+03 0.456 0.247 0.253 0.253 Target eBrem + 2 -7.31 6.55 -2.42e+03 0 0.456 0.269 0.522 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 166, Parent ID = 165 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.27 0.687 -2.44e+03 0.336 0 0 0 Target initStep - 1 -1.52 0.769 -2.44e+03 0 0.088 0.268 0.268 Target phot + 0 -7.31 6.56 -2.42e+03 0.501 0 0 0 Target initStep + 1 -6.93 5.64 -2.42e+03 0 0.088 1.07 1.07 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 110 +* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 166 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.52 0.769 -2.44e+03 0.248 0 0 0 Target initStep - 1 -1.52 0.776 -2.44e+03 0 0.248 0.112 0.112 Target eIoni + 0 -6.93 5.64 -2.42e+03 0.413 0 0 0 Target initStep + 1 -6.92 5.64 -2.42e+03 0.276 0.0151 0.0131 0.0131 Target eBrem + 2 -6.93 5.64 -2.42e+03 0 0.276 0.132 0.145 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 167 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.22 0.672 -2.44e+03 0.199 0 0 0 Target initStep - 1 -3.73 1.32 -2.44e+03 0 0.088 2.77 2.77 Target phot + 0 -6.92 5.64 -2.42e+03 0.122 0 0 0 Target initStep + 1 -6.61 5.34 -2.42e+03 0 0.088 0.72 0.72 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 109 +* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 168 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.73 1.32 -2.44e+03 0.111 0 0 0 Target initStep - 1 -3.74 1.32 -2.44e+03 0 0.111 0.0326 0.0326 Target eIoni + 0 -6.61 5.34 -2.42e+03 0.0343 0 0 0 Target initStep + 1 -6.61 5.34 -2.42e+03 0 0.0343 0.00483 0.00483 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 163, Parent ID = 161 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.868 0.842 -2.44e+03 0.494 0 0 0 Target initStep - 1 -1.3 0.637 -2.44e+03 0.214 0 1.01 1.01 Target compt - 2 -0.701 1.41 -2.44e+03 0 0.088 0.982 1.99 Target phot + 0 -6.93 5.75 -2.42e+03 0.115 0 0 0 Target initStep + 1 -6.97 5.89 -2.42e+03 0 0.088 0.146 0.146 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 108 +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 163 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.701 1.41 -2.44e+03 0.126 0 0 0 Target initStep - 1 -0.699 1.41 -2.44e+03 0 0.126 0.0398 0.0398 Target eIoni + 0 -6.97 5.89 -2.42e+03 0.0274 0 0 0 Target initStep + 1 -6.97 5.89 -2.42e+03 0 0.0274 0.00336 0.00336 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 108 +* G4Track Information: Particle = gamma, Track ID = 153, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.3 0.637 -2.44e+03 0.28 0 0 0 Target initStep - 1 -1.3 0.633 -2.44e+03 0 0.28 0.134 0.134 Target eIoni + 0 -3.36 2.24 -2.42e+03 0.217 0 0 0 Target initStep + 1 -3.67 2.59 -2.42e+03 0.139 0 0.539 0.539 Target compt + 2 -3.81 2.7 -2.42e+03 0 0.088 0.861 1.4 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 63 +* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 153 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.531 0.779 -2.44e+03 0.145 0 0 0 Target initStep - 1 -0.655 0.804 -2.44e+03 0 0.088 0.375 0.375 Target phot + 0 -3.81 2.7 -2.42e+03 0.0508 0 0 0 Target initStep + 1 -3.81 2.7 -2.42e+03 0 0.0508 0.00916 0.00916 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 107 +* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 153 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.655 0.804 -2.44e+03 0.0573 0 0 0 Target initStep - 1 -0.655 0.804 -2.44e+03 0 0.0573 0.0111 0.0111 Target eIoni + 0 -3.67 2.59 -2.42e+03 0.0786 0 0 0 Target initStep + 1 -3.67 2.59 -2.42e+03 0 0.0786 0.0186 0.0186 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 106, Parent ID = 63 +* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.452 0.451 -2.44e+03 1.06 0 0 0 Target initStep - 1 -4.08 3.76 -2.43e+03 0.968 0 11 11 Target compt - 2 -4.16 3.77 -2.43e+03 0.942 0 0.158 11.2 Target compt - 3 -11.6 6.81 -2.42e+03 0.335 0 12.7 23.9 Target compt - 4 -11.8 7.18 -2.42e+03 0 0.088 0.504 24.4 Target phot + 0 -2.91 1.59 -2.42e+03 10.1 0 0 0 Target initStep + 1 -3.39 2.25 -2.42e+03 0 0 1.27 1.27 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 106 +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 152 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.8 7.18 -2.42e+03 0.247 0 0 0 Target initStep - 1 -11.8 7.19 -2.42e+03 0 0.247 0.112 0.112 Target eIoni + 0 -3.39 2.25 -2.42e+03 8.31 0 0 0 Target initStep + 1 -3.6 2.5 -2.42e+03 3.12 0.64 0.608 0.608 Target eBrem + 2 -3.79 2.66 -2.42e+03 0.789 1.49 1.34 1.95 Target eBrem + 3 -3.75 2.66 -2.42e+03 0 0.789 0.548 2.49 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 106 +* G4Track Information: Particle = gamma, Track ID = 176, Parent ID = 173 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.6 6.81 -2.42e+03 0.607 0 0 0 Target initStep - 1 -11.6 6.81 -2.42e+03 0 0.607 0.393 0.393 Target eIoni + 0 -3.79 2.66 -2.42e+03 0.836 0 0 0 Target initStep + 1 8.03 4.23 -2.42e+03 0 0.088 12.6 12.6 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 106 +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 176 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.16 3.77 -2.43e+03 0.0263 0 0 0 Target initStep - 1 -4.16 3.77 -2.43e+03 0 0.0263 0.00315 0.00315 Target eIoni + 0 8.03 4.23 -2.42e+03 0.748 0 0 0 Target initStep + 1 8.05 4.26 -2.42e+03 0 0.748 0.513 0.513 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 106 +* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 173 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.08 3.76 -2.43e+03 0.0877 0 0 0 Target initStep - 1 -4.08 3.76 -2.43e+03 0 0.0877 0.0222 0.0222 Target eIoni + 0 -3.6 2.5 -2.42e+03 4.56 0 0 0 Target initStep + 1 -4.7 3.18 -2.42e+03 0.336 0 1.69 1.69 Target compt + 2 -4.76 3.47 -2.42e+03 0 0.088 0.803 2.49 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 63 +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 175 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.258 0.334 -2.44e+03 0.172 0 0 0 Target initStep - 1 -0.533 0.552 -2.44e+03 0 0.088 0.755 0.755 Target phot + 0 -4.76 3.47 -2.42e+03 0.248 0 0 0 Target initStep + 1 -4.76 3.47 -2.42e+03 0 0.248 0.113 0.113 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 105 +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 175 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.533 0.552 -2.44e+03 0.0842 0 0 0 Target initStep - 1 -0.532 0.553 -2.44e+03 0 0.0842 0.0208 0.0208 Target eIoni + 0 -4.7 3.18 -2.42e+03 4.22 0 0 0 Target initStep + 1 -5 3.35 -2.42e+03 1.78 2.44 1.51 1.51 Target eBrem + 2 -5.04 3.42 -2.42e+03 1.4 0.158 0.166 1.68 Target eBrem + 3 -5 3.49 -2.42e+03 0 1.4 1.08 2.75 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 65 +* G4Track Information: Particle = gamma, Track ID = 180, Parent ID = 178 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.97 1.15 -2.41e+03 0.568 0 0 0 Target initStep - 1 3.29 -6.86 -2.41e+03 0 0.088 12.4 12.4 Target phot + 0 -5.04 3.42 -2.42e+03 0.221 0 0 0 Target initStep + 1 -5.03 3.44 -2.42e+03 0 0.088 0.0206 0.0206 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 104 +* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 180 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.29 -6.86 -2.41e+03 0.48 0 0 0 Target initStep - 1 3.29 -6.88 -2.41e+03 0 0.48 0.288 0.288 Target eIoni + 0 -5.03 3.44 -2.42e+03 0.133 0 0 0 Target initStep + 1 -5.03 3.44 -2.42e+03 0 0.133 0.0434 0.0434 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 87 +* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.69 0.672 -2.44e+03 0.499 0 0 0 Target initStep - 1 0.838 0.463 -2.44e+03 0.317 0 2.18 2.18 Target compt - 2 0.798 -3.24 -2.43e+03 0 0.088 4.21 6.39 Target phot + 0 -2.71 1.27 -2.42e+03 0.1 0 0 0 Target initStep + 1 -2.73 1.3 -2.42e+03 0 0.088 0.0771 0.0771 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 103 +* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 151 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.798 -3.24 -2.43e+03 0.229 0 0 0 Target initStep - 1 0.793 -3.24 -2.43e+03 0 0.229 0.1 0.1 Target eIoni + 0 -2.73 1.3 -2.42e+03 0.0121 0 0 0 Target initStep + 1 -2.73 1.3 -2.42e+03 0 0.0121 0.000939 0.000939 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 103 +* G4Track Information: Particle = gamma, Track ID = 150, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.838 0.463 -2.44e+03 0.181 0 0 0 Target initStep - 1 0.842 0.466 -2.44e+03 0 0.181 0.07 0.07 Target eIoni + 0 -2.7 1.25 -2.42e+03 2.58 0 0 0 Target initStep + 1 -7.38 9.26 -2.4e+03 1.66 0 22 22 Target compt + 2 -8.12 8.88 -2.4e+03 1.66 0 3.87 25.9 Tracker Transportation + 3 -146 -61.6 -1.7e+03 1.66 0 717 743 Chamber Transportation + 4 -185 -81.7 -1.5e+03 1.66 0 205 948 Tracker Transportation + 5 -303 -142 -900 1.66 0 614 1.56e+03 Chamber Transportation + 6 -342 -162 -700 1.66 0 205 1.77e+03 Tracker Transportation + 7 -460 -223 -100 1.66 0 614 2.38e+03 Chamber Transportation + 8 -499 -243 100 1.66 0 205 2.59e+03 Tracker Transportation + 9 -617 -303 700 1.66 0 614 3.2e+03 Chamber Transportation + 10 -656 -323 900 1.66 0 205 3.41e+03 Tracker Transportation + 11 -774 -384 1.5e+03 1.66 0 614 4.02e+03 Chamber Transportation + 12 -813 -404 1.7e+03 1.66 0 205 4.22e+03 Tracker Transportation + 13 -951 -474 2.4e+03 1.66 0 717 4.94e+03 World Transportation + 14 -1.06e+03 -529 2.94e+03 1.66 0 553 5.49e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 102, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 150 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.06 6.52 -2.4e+03 0.511 0 0 0 Target initStep - 1 -6.78 7.76 -2.4e+03 0 0.088 3.19 3.19 Target phot + 0 -7.38 9.26 -2.4e+03 0.915 0 0 0 Target initStep + 1 -7.39 9.3 -2.4e+03 0 0.915 0.657 0.657 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 102 +* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.78 7.76 -2.4e+03 0.423 0 0 0 Target initStep - 1 -6.77 7.77 -2.4e+03 0 0.423 0.243 0.243 Target eIoni + 0 -2.03 0.823 -2.43e+03 21.2 0 0 0 Target initStep + 1 -8.87 1.2 -2.41e+03 0 0 23 23 Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 101, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 148 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.06 6.52 -2.4e+03 0.511 0 0 0 Target initStep - 1 -7.14 6.16 -2.4e+03 0.511 0 0.926 0.926 Tracker Transportation - 2 -149 -632 -900 0.511 0 1.64e+03 1.64e+03 Chamber Transportation - 3 -168 -717 -700 0.511 0 218 1.86e+03 Tracker Transportation - 4 -224 -973 -100 0.511 0 655 2.51e+03 Chamber Transportation - 5 -243 -1.06e+03 100 0.511 0 218 2.73e+03 Tracker Transportation - 6 -300 -1.31e+03 700 0.511 0 655 3.38e+03 Chamber Transportation - 7 -319 -1.4e+03 900 0.511 0 218 3.6e+03 Tracker Transportation - 8 -375 -1.65e+03 1.5e+03 0.511 0 655 4.26e+03 Chamber Transportation - 9 -394 -1.74e+03 1.7e+03 0.511 0 218 4.47e+03 Tracker Transportation - 10 -460 -2.04e+03 2.4e+03 0.511 0 764 5.24e+03 World Transportation - 11 -511 -2.27e+03 2.94e+03 0.511 0 589 5.83e+03 OutOfWorld Transportation + 0 -8.87 1.2 -2.41e+03 1.7 0 0 0 Target initStep + 1 -8.89 1.23 -2.41e+03 0 1.7 1.26 1.26 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 112 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.359 2.08 -2.43e+03 0.511 0 0 0 Target initStep - 1 2.39 -0.32 -2.43e+03 0 0.088 3.49 3.49 Target phot + 0 -1.58 0.561 -2.43e+03 20.4 0 0 0 Target initStep + 1 -3.45 0.756 -2.41e+03 0 0 17 17 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 100 +* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 147 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.39 -0.32 -2.43e+03 0.423 0 0 0 Target initStep - 1 2.4 -0.319 -2.43e+03 0 0.423 0.243 0.243 Target eIoni + 0 -3.45 0.756 -2.41e+03 8.62 0 0 0 Target initStep + 1 -3.51 0.858 -2.41e+03 7.72 0.777 0.767 0.767 Target eBrem + 2 -3.18 0.918 -2.41e+03 6.74 0.773 0.806 1.57 Target eBrem + 3 -3.33 1.31 -2.41e+03 5.65 0.97 0.973 2.55 Target eBrem + 4 -3.55 1.96 -2.41e+03 3.99 1.54 1.47 4.02 Target eBrem + 5 -3.36 2.25 -2.41e+03 0.885 2.08 1.97 5.98 Target eBrem + 6 -3.38 2.21 -2.41e+03 0 0.885 0.631 6.61 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 186 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.359 2.08 -2.43e+03 0.511 0 0 0 Target initStep - 1 -5.48 8.97 -2.43e+03 0 0.088 10 10 Target phot + 0 -3.36 2.25 -2.41e+03 1.03 0 0 0 Target initStep + 1 -14.2 -20.5 -2.41e+03 1.03 0 25.6 25.6 World Transportation + 2 -37 -68.2 -2.4e+03 1.03 0 53.4 79 Tracker Transportation + 3 -1.04e+03 -2.16e+03 -2.04e+03 1.03 0 2.35e+03 2.43e+03 World Transportation + 4 -1.41e+03 -2.94e+03 -1.9e+03 1.03 0 870 3.3e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 99 +* G4Track Information: Particle = gamma, Track ID = 191, Parent ID = 186 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.48 8.97 -2.43e+03 0.423 0 0 0 Target initStep - 1 -5.49 8.98 -2.43e+03 0 0.423 0.243 0.243 Target eIoni + 0 -3.55 1.96 -2.41e+03 0.125 0 0 0 Target initStep + 1 -3.48 2.11 -2.41e+03 0 0.088 0.241 0.241 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 191 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.475 2.04 -2.43e+03 2.17 0 0 0 Target initStep - 1 0.0836 5.07 -2.42e+03 1.18 0 9.03 9.03 Target compt - 2 -6.84 6.86 -2.42e+03 0.226 0 11.1 20.1 Target compt - 3 -6.62 6.1 -2.42e+03 0 0.088 1.53 21.7 Target phot + 0 -3.48 2.11 -2.41e+03 0.0365 0 0 0 Target initStep + 1 -3.48 2.11 -2.41e+03 0 0.0365 0.00535 0.00535 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 98 +* G4Track Information: Particle = gamma, Track ID = 190, Parent ID = 186 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.62 6.1 -2.42e+03 0.138 0 0 0 Target initStep - 1 -6.61 6.09 -2.42e+03 0 0.138 0.0459 0.0459 Target eIoni + 0 -3.33 1.31 -2.41e+03 0.114 0 0 0 Target initStep + 1 -3.59 1.78 -2.41e+03 0 0.088 0.537 0.537 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 98 +* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 190 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.84 6.86 -2.42e+03 0.952 0 0 0 Target initStep - 1 -6.87 6.87 -2.42e+03 0.241 0.711 0.671 0.671 Target eBrem - 2 -6.87 6.87 -2.42e+03 0 0.241 0.108 0.779 Target eIoni + 0 -3.59 1.78 -2.41e+03 0.0258 0 0 0 Target initStep + 1 -3.59 1.78 -2.41e+03 0 0.0258 0.00305 0.00305 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 98 +* G4Track Information: Particle = gamma, Track ID = 189, Parent ID = 186 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0836 5.07 -2.42e+03 0.996 0 0 0 Target initStep - 1 0.109 5.09 -2.42e+03 0 0.996 0.727 0.727 Target eIoni + 0 -3.18 0.918 -2.41e+03 0.213 0 0 0 Target initStep + 1 -4.16 2.78 -2.41e+03 0 0.088 2.68 2.68 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 97, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 189 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.471 2.01 -2.43e+03 0.982 0 0 0 Target initStep - 1 0.574 2.77 -2.43e+03 0.827 0 3.64 3.64 Target compt - 2 1.75 2.57 -2.43e+03 0 0.088 3.16 6.8 Target phot + 0 -4.16 2.78 -2.41e+03 0.125 0 0 0 Target initStep + 1 -4.16 2.78 -2.41e+03 0 0.125 0.0393 0.0393 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 97 +* G4Track Information: Particle = gamma, Track ID = 188, Parent ID = 186 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.75 2.57 -2.43e+03 0.739 0 0 0 Target initStep - 1 1.76 2.59 -2.43e+03 0 0.739 0.506 0.506 Target eIoni + 0 -3.51 0.858 -2.41e+03 0.117 0 0 0 Target initStep + 1 -3.42 0.867 -2.41e+03 0 0.088 0.154 0.154 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 97 +* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 188 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.574 2.77 -2.43e+03 0.155 0 0 0 Target initStep - 1 0.572 2.77 -2.43e+03 0 0.155 0.0549 0.0549 Target eIoni + 0 -3.42 0.867 -2.41e+03 0.0295 0 0 0 Target initStep + 1 -3.42 0.867 -2.41e+03 0 0.0295 0.00378 0.00378 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.462 2.01 -2.43e+03 0.121 0 0 0 Target initStep - 1 0.53 2.04 -2.43e+03 0 0.088 0.206 0.206 Target phot + 0 -15.4 -16.6 -2.4e+03 0.511 0 0 0 Target initStep + 1 -15.2 -15.3 -2.4e+03 0.192 0 1.59 1.59 Target compt + 2 -15 -15.9 -2.4e+03 0 0.088 0.725 2.32 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 96 +* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 146 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.53 2.04 -2.43e+03 0.0329 0 0 0 Target initStep - 1 0.53 2.04 -2.43e+03 0 0.0329 0.00452 0.00452 Target eIoni + 0 -15 -15.9 -2.4e+03 0.104 0 0 0 Target initStep + 1 -15 -15.9 -2.4e+03 0 0.104 0.0293 0.0293 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 146 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.358 1.98 -2.43e+03 0.276 0 0 0 Target initStep - 1 0.953 2.07 -2.43e+03 0 0.088 1.31 1.31 Target phot + 0 -15.2 -15.3 -2.4e+03 0.319 0 0 0 Target initStep + 1 -15.2 -15.3 -2.4e+03 0 0.319 0.163 0.163 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 95 +* G4Track Information: Particle = gamma, Track ID = 145, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.953 2.07 -2.43e+03 0.188 0 0 0 Target initStep - 1 0.953 2.08 -2.43e+03 0 0.188 0.0738 0.0738 Target eIoni + 0 -15.4 -16.6 -2.4e+03 0.511 0 0 0 Target initStep + 1 -15.4 -17.1 -2.4e+03 0.193 0 0.509 0.509 Target compt + 2 -15.5 -17 -2.4e+03 0 0.088 0.481 0.989 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 145 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.314 1.96 -2.43e+03 1.6 0 0 0 Target initStep - 1 3.21 3.92 -2.41e+03 0.539 0 18.7 18.7 Target compt - 2 9.4 4.81 -2.41e+03 0 0.088 6.4 25.1 Target phot + 0 -15.5 -17 -2.4e+03 0.105 0 0 0 Target initStep + 1 -15.5 -17 -2.4e+03 0 0.105 0.0299 0.0299 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 94 +* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 145 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.4 4.81 -2.41e+03 0.451 0 0 0 Target initStep - 1 9.42 4.81 -2.41e+03 0 0.451 0.265 0.265 Target eIoni + 0 -15.4 -17.1 -2.4e+03 0.318 0 0 0 Target initStep + 1 -15.4 -17.1 -2.4e+03 0 0.318 0.162 0.162 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 94 +* G4Track Information: Particle = gamma, Track ID = 144, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.21 3.92 -2.41e+03 1.06 0 0 0 Target initStep - 1 3.2 3.92 -2.41e+03 0 1.06 0.781 0.781 Target eIoni + 0 -15.3 -16.6 -2.4e+03 1.2 0 0 0 Target initStep + 1 -14.2 -14.8 -2.42e+03 0.265 0 11.1 11.1 Target compt + 2 -13.3 -12.8 -2.41e+03 0.183 0 2.8 13.9 Target compt + 3 -13.4 -12.3 -2.41e+03 0 0.088 0.618 14.5 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 144 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.26 1.9 -2.43e+03 1.24 0 0 0 Target initStep - 1 6.06 8.01 -2.41e+03 0.893 0 21.4 21.4 Target compt - 2 2.41 9.19 -2.4e+03 0.893 0 14.3 35.8 Tracker Transportation - 3 -182 69 -1.7e+03 0.893 0 726 762 Chamber Transportation - 4 -225 83 -1.54e+03 0.893 0 169 931 Tracker Transportation - 5 -393 137 -900 0.893 0 661 1.59e+03 Chamber Transportation - 6 -446 155 -700 0.893 0 208 1.8e+03 Tracker Transportation - 7 -604 206 -100 0.893 0 623 2.42e+03 Chamber Transportation - 8 -657 223 100 0.893 0 208 2.63e+03 Tracker Transportation - 9 -815 274 700 0.893 0 623 3.25e+03 Chamber Transportation - 10 -868 291 900 0.893 0 208 3.46e+03 Tracker Transportation - 11 -1.03e+03 343 1.5e+03 0.893 0 623 4.08e+03 Chamber Transportation - 12 -1.08e+03 360 1.7e+03 0.893 0 208 4.29e+03 Tracker Transportation - 13 -1.26e+03 420 2.4e+03 0.893 0 726 5.02e+03 World Transportation - 14 -1.41e+03 466 2.94e+03 0.893 0 560 5.58e+03 OutOfWorld Transportation + 0 -13.4 -12.3 -2.41e+03 0.0951 0 0 0 Target initStep + 1 -13.4 -12.3 -2.41e+03 0 0.0951 0.0253 0.0253 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 93 +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 144 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.06 8.01 -2.41e+03 0.344 0 0 0 Target initStep - 1 6.07 8.01 -2.41e+03 0 0.344 0.182 0.182 Target eIoni + 0 -13.3 -12.8 -2.41e+03 0.0819 0 0 0 Target initStep + 1 -13.3 -12.8 -2.41e+03 0 0.0819 0.0199 0.0199 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 144 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.138 1.75 -2.43e+03 0.425 0 0 0 Target initStep - 1 0.349 2 -2.43e+03 0 0.088 0.626 0.626 Target phot + 0 -14.2 -14.8 -2.42e+03 0.933 0 0 0 Target initStep + 1 -14.2 -14.8 -2.42e+03 0 0.933 0.673 0.673 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 92 +* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.349 2 -2.43e+03 0.337 0 0 0 Target initStep - 1 0.349 2.01 -2.43e+03 0.186 0.0505 0.0464 0.0464 Target eBrem - 2 0.345 2.01 -2.43e+03 0 0.186 0.0726 0.119 Target eIoni + 0 -15.3 -16.6 -2.4e+03 0.12 0 0 0 Target initStep + 1 -15.4 -16.5 -2.4e+03 0.0904 0 0.555 0.555 Target compt + 2 -15.2 -16.5 -2.4e+03 0 0.088 0.208 0.763 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 147 +* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 143 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.349 2.01 -2.43e+03 0.1 0 0 0 Target initStep - 1 0.228 2.02 -2.43e+03 0 0.088 0.302 0.302 Target phot + 0 -15.2 -16.5 -2.4e+03 0.00239 0 0 0 Target initStep + 1 -15.2 -16.5 -2.4e+03 0 0.00239 9.65e-05 9.65e-05 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 148 +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 143 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.228 2.02 -2.43e+03 0.0125 0 0 0 Target initStep - 1 0.228 2.02 -2.43e+03 0 0.0125 0.000979 0.000979 Target eIoni + 0 -15.4 -16.5 -2.4e+03 0.03 0 0 0 Target initStep + 1 -15.4 -16.5 -2.4e+03 0 0.03 0.00388 0.00388 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0274 1.59 -2.43e+03 0.104 0 0 0 Target initStep - 1 0.041 1.66 -2.43e+03 0 0.088 0.218 0.218 Target phot + 0 -15.3 -16.6 -2.4e+03 0.237 0 0 0 Target initStep + 1 -15.7 -16.5 -2.4e+03 0 0.088 0.6 0.6 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 142 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.041 1.66 -2.43e+03 0.0155 0 0 0 Target initStep - 1 0.0411 1.66 -2.43e+03 0 0.0155 0.00137 0.00137 Target eIoni + 0 -15.7 -16.5 -2.4e+03 0.149 0 0 0 Target initStep + 1 -15.7 -16.5 -2.4e+03 0 0.149 0.0517 0.0517 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 90, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 141, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.152 1.6 -2.43e+03 1.75 0 0 0 Target initStep - 1 1.1 0.576 -2.42e+03 0 0.088 13 13 Target phot + 0 -15.6 -16.6 -2.4e+03 1.41 0 0 0 Target initStep + 1 -9.39 -19.1 -2.41e+03 0.754 0 10.3 10.3 Target compt + 2 -7.55 -16.3 -2.42e+03 0 0.088 5.49 15.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 90 +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 141 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.1 0.576 -2.42e+03 1.66 0 0 0 Target initStep - 1 1.14 0.609 -2.42e+03 0.159 1.35 1.16 1.16 Target eBrem - 2 1.15 0.612 -2.42e+03 0 0.159 0.057 1.22 Target eIoni + 0 -7.55 -16.3 -2.42e+03 0.666 0 0 0 Target initStep + 1 -7.54 -16.3 -2.42e+03 0 0.666 0.443 0.443 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 151 +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 141 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.609 -2.42e+03 0.149 0 0 0 Target initStep - 1 1.16 0.725 -2.42e+03 0 0.088 0.117 0.117 Target phot + 0 -9.39 -19.1 -2.41e+03 0.652 0 0 0 Target initStep + 1 -9.37 -19.1 -2.41e+03 0 0.652 0.431 0.431 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 152 +* G4Track Information: Particle = gamma, Track ID = 140, Parent ID = 99 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.16 0.725 -2.42e+03 0.0613 0 0 0 Target initStep - 1 1.16 0.726 -2.42e+03 0 0.0613 0.0124 0.0124 Target eIoni + 0 -1.51 -5.57 -2.43e+03 0.511 0 0 0 Target initStep + 1 7.14 -4.06 -2.42e+03 0.365 0 10 10 Target compt + 2 10.3 8.59 -2.4e+03 0.365 0 24.4 34.4 Tracker Transportation + 3 596 2.32e+03 1.36e+03 0.365 0 4.46e+03 4.49e+03 World Transportation + 4 752 2.94e+03 2.36e+03 0.365 0 1.18e+03 5.68e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 89, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 140 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.322 1.4 -2.44e+03 0.348 0 0 0 Target initStep - 1 -0.242 1.49 -2.44e+03 0 0.088 0.415 0.415 Target phot + 0 7.14 -4.06 -2.42e+03 0.146 0 0 0 Target initStep + 1 7.14 -4.07 -2.42e+03 0 0.146 0.0501 0.0501 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 89 +* G4Track Information: Particle = gamma, Track ID = 139, Parent ID = 99 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.242 1.49 -2.44e+03 0.26 0 0 0 Target initStep - 1 -0.247 1.49 -2.44e+03 0 0.26 0.121 0.121 Target eIoni + 0 -1.51 -5.57 -2.43e+03 0.511 0 0 0 Target initStep + 1 -3.84 -5.97 -2.43e+03 0 0.088 2.7 2.7 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 88, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 139 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.33 1.39 -2.44e+03 17.4 0 0 0 Target initStep - 1 0.675 3.05 -2.43e+03 0 0 4.49 4.49 Target conv + 0 -3.84 -5.97 -2.43e+03 0.423 0 0 0 Target initStep + 1 -3.85 -5.98 -2.43e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 88 +* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 99 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.675 3.05 -2.43e+03 10.1 0 0 0 Target initStep - 1 0.787 3.3 -2.43e+03 9.02 0.902 0.708 0.708 Target eBrem - 2 0.859 3.46 -2.43e+03 1.75 0.41 0.454 1.16 Target eBrem - 3 0.917 3.56 -2.43e+03 0.511 1.24 1.3 2.46 Target eIoni - 4 0.927 3.58 -2.43e+03 0 0.511 0.314 2.77 Target eIoni + 0 -1.33 -5.62 -2.43e+03 0.502 0 0 0 Target initStep + 1 -3.42 -5.18 -2.43e+03 0.276 0 2.33 2.33 Target compt + 2 -3.24 -5.63 -2.43e+03 0 0.088 1.28 3.61 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 158, Parent ID = 155 +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 138 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.859 3.46 -2.43e+03 6.85 0 0 0 Target initStep - 1 4.96 11.8 -2.43e+03 0 0 10.4 10.4 Target conv + 0 -3.24 -5.63 -2.43e+03 0.188 0 0 0 Target initStep + 1 -3.24 -5.63 -2.43e+03 0 0.188 0.074 0.074 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 158 +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 138 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.96 11.8 -2.43e+03 4.35 0 0 0 Target initStep - 1 5.18 12.1 -2.43e+03 3.18 0.889 0.917 0.917 Target eBrem - 2 5.11 12.4 -2.43e+03 2.24 0.936 0.75 1.67 Target eBrem - 3 5.03 12.4 -2.43e+03 0.341 1.9 1.51 3.18 Target eIoni - 4 5.03 12.4 -2.43e+03 0 0.341 0.179 3.36 Target eIoni + 0 -3.42 -5.18 -2.43e+03 0.226 0 0 0 Target initStep + 1 -3.43 -5.17 -2.43e+03 0.134 0.0917 0.0674 0.0674 Target eBrem + 2 -3.43 -5.17 -2.43e+03 0 0.134 0.0438 0.111 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 159 +* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 109 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.18 12.1 -2.43e+03 0.288 0 0 0 Target initStep - 1 4.99 12.9 -2.43e+03 0 0.088 0.839 0.839 Target phot + 0 -0.0164 1.61 -2.44e+03 0.511 0 0 0 Target initStep + 1 2.93 -5.2 -2.45e+03 0.511 0 12 12 World Transportation + 2 157 -360 -2.94e+03 0.511 0 624 636 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 161 +* G4Track Information: Particle = gamma, Track ID = 136, Parent ID = 109 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.99 12.9 -2.43e+03 0.2 0 0 0 Target initStep - 1 4.99 12.9 -2.43e+03 0 0.2 0.0815 0.0815 Target eIoni + 0 -0.0164 1.61 -2.44e+03 0.511 0 0 0 Target initStep + 1 -0.765 3.34 -2.44e+03 0 0.088 3.04 3.04 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 155 +* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 136 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.787 3.3 -2.43e+03 0.179 0 0 0 Target initStep - 1 0.78 3.4 -2.43e+03 0 0.088 0.225 0.225 Target phot + 0 -0.765 3.34 -2.44e+03 0.423 0 0 0 Target initStep + 1 -0.765 3.34 -2.44e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 157 +* G4Track Information: Particle = gamma, Track ID = 135, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.78 3.4 -2.43e+03 0.0907 0 0 0 Target initStep - 1 0.781 3.4 -2.43e+03 0 0.0907 0.0234 0.0234 Target eIoni + 0 -4.6 -1.92 -2.43e+03 0.511 0 0 0 Target initStep + 1 0.864 16.4 -2.43e+03 0 0.088 21.1 21.1 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 86, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 135 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.682 0.702 -2.44e+03 1.1 0 0 0 Target initStep - 1 0.667 -0.594 -2.43e+03 0 0.088 10.7 10.7 Target phot + 0 0.864 16.4 -2.43e+03 0.423 0 0 0 Target initStep + 1 0.876 16.4 -2.43e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 86 +* G4Track Information: Particle = gamma, Track ID = 134, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.667 -0.594 -2.43e+03 1.01 0 0 0 Target initStep - 1 0.663 -0.574 -2.43e+03 0 1.01 0.739 0.739 Target eIoni + 0 -4.6 -1.92 -2.43e+03 0.511 0 0 0 Target initStep + 1 -4.71 -2.29 -2.43e+03 0 0.088 0.422 0.422 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 134 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.686 0.74 -2.44e+03 0.329 0 0 0 Target initStep - 1 -0.672 0.716 -2.44e+03 0 0.088 0.196 0.196 Target phot + 0 -4.71 -2.29 -2.43e+03 0.423 0 0 0 Target initStep + 1 -4.72 -2.29 -2.43e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 85 +* G4Track Information: Particle = gamma, Track ID = 133, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.672 0.716 -2.44e+03 0.241 0 0 0 Target initStep - 1 -0.667 0.717 -2.44e+03 0 0.241 0.108 0.108 Target eIoni + 0 -4.25 -2 -2.43e+03 2.62 0 0 0 Target initStep + 1 -25 -0.707 -2.43e+03 2.62 0 21.4 21.4 World Transportation + 2 -2.09e+03 128 -2.94e+03 2.62 0 2.13e+03 2.15e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.687 0.74 -2.44e+03 2.12 0 0 0 Target initStep - 1 -0.604 0.583 -2.44e+03 0.958 0 1.62 1.62 Target compt - 2 -4.16 -3.62 -2.43e+03 0.933 0 7.52 9.15 Target compt - 3 -8.09 -11 -2.42e+03 0 0.088 12.3 21.5 Target phot + 0 -3.93 -1.88 -2.43e+03 2.27 0 0 0 Target initStep + 1 -22.8 -9.95 -2.44e+03 1.9 0 23 23 Target compt + 2 -22.9 -9.97 -2.44e+03 1.9 0 0.106 23.1 World Transportation + 3 -573 -138 -2.94e+03 1.9 0 757 780 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 84 +* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 132 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.09 -11 -2.42e+03 0.845 0 0 0 Target initStep - 1 -8.07 -11 -2.42e+03 0 0.845 0.597 0.597 Target eIoni + 0 -22.8 -9.95 -2.44e+03 0.37 0 0 0 Target initStep + 1 -22.9 -9.96 -2.44e+03 0.287 0.0834 0.0445 0.0445 Target msc + 2 -22.8 -9.95 -2.44e+03 0 0.287 0.14 0.184 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 84 +* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.16 -3.62 -2.43e+03 0.0247 0 0 0 Target initStep - 1 -4.16 -3.62 -2.43e+03 0 0.0247 0.00285 0.00285 Target eIoni + 0 -3.9 -1.86 -2.43e+03 0.504 0 0 0 Target initStep + 1 -4.18 -2.02 -2.43e+03 0.185 0 0.395 0.395 Target compt + 2 -4.1 -1.52 -2.43e+03 0 0.088 0.622 1.02 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 84 +* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 131 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.604 0.583 -2.44e+03 1.16 0 0 0 Target initStep - 1 -0.579 0.598 -2.44e+03 0 1.16 0.872 0.872 Target eIoni + 0 -4.1 -1.52 -2.43e+03 0.0969 0 0 0 Target initStep + 1 -4.1 -1.52 -2.43e+03 0 0.0969 0.0261 0.0261 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 131 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.691 0.753 -2.44e+03 0.392 0 0 0 Target initStep - 1 -0.429 -0.359 -2.43e+03 0.234 0 6.12 6.12 Target compt - 2 0.467 -0.371 -2.43e+03 0 0.088 0.899 7.02 Target phot + 0 -4.18 -2.02 -2.43e+03 0.32 0 0 0 Target initStep + 1 -4.19 -2.02 -2.43e+03 0 0.32 0.163 0.163 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 83 +* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.467 -0.371 -2.43e+03 0.146 0 0 0 Target initStep - 1 0.47 -0.373 -2.43e+03 0 0.146 0.0502 0.0502 Target eIoni + 0 -3.37 -1.27 -2.43e+03 0.878 0 0 0 Target initStep + 1 -9.83 -13.2 -2.43e+03 0.676 0 13.8 13.8 Target compt + 2 -10.1 -13.3 -2.43e+03 0.603 0 0.365 14.2 Target compt + 3 -14.2 -14.8 -2.43e+03 0 0.088 4.55 18.8 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 83 +* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 130 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.429 -0.359 -2.43e+03 0.158 0 0 0 Target initStep - 1 -0.431 -0.36 -2.43e+03 0 0.158 0.0563 0.0563 Target eIoni + 0 -14.2 -14.8 -2.43e+03 0.515 0 0 0 Target initStep + 1 -14.2 -14.8 -2.43e+03 0 0.515 0.317 0.317 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 81, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 130 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.456 0.478 -2.44e+03 11.5 0 0 0 Target initStep - 1 -0.709 0.824 -2.44e+03 0 0 2.39 2.39 Target conv + 0 -10.1 -13.3 -2.43e+03 0.0726 0 0 0 Target initStep + 1 -10.1 -13.3 -2.43e+03 0 0.0726 0.0164 0.0164 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 81 +* G4Track Information: Particle = e-, Track ID = 219, Parent ID = 130 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.709 0.824 -2.44e+03 1.5 0 0 0 Target initStep - 1 -0.66 0.909 -2.44e+03 0 1.5 1.14 1.14 Target eIoni + 0 -9.83 -13.2 -2.43e+03 0.202 0 0 0 Target initStep + 1 -9.83 -13.2 -2.43e+03 0 0.202 0.0826 0.0826 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 129, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.455 0.478 -2.44e+03 0.426 0 0 0 Target initStep - 1 -0.688 0.797 -2.44e+03 0.377 0 2.04 2.04 Target compt - 2 -0.967 0.48 -2.44e+03 0 0.088 0.892 2.93 Target phot + 0 -3.28 -1.14 -2.43e+03 4.59 0 0 0 Target initStep + 1 -6.67 -10.4 -2.44e+03 2.09 0 15.8 15.8 Target compt + 2 -13.7 -12.7 -2.45e+03 1.59 0 14.4 30.3 Target compt + 3 -13.8 -12.8 -2.45e+03 1.59 0 0.16 30.4 World Transportation + 4 -149 -276 -2.94e+03 1.59 0 572 603 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 80 +* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 129 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.967 0.48 -2.44e+03 0.289 0 0 0 Target initStep - 1 -0.973 0.473 -2.44e+03 0 0.289 0.141 0.141 Target eIoni + 0 -13.7 -12.7 -2.45e+03 0.504 0 0 0 Target initStep + 1 -13.7 -12.6 -2.45e+03 0.392 0.111 0.0853 0.0853 Target msc + 2 -13.7 -12.6 -2.45e+03 0 0.392 0.219 0.304 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 80 +* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 129 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.688 0.797 -2.44e+03 0.049 0 0 0 Target initStep - 1 -0.688 0.798 -2.44e+03 0 0.049 0.00862 0.00862 Target eIoni + 0 -6.67 -10.4 -2.44e+03 2.49 0 0 0 Target initStep + 1 -6.66 -10.6 -2.44e+03 0.781 1.71 1.6 1.6 Target eIoni + 2 -6.64 -10.6 -2.44e+03 0 0.781 0.541 2.14 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 128, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.437 0.459 -2.44e+03 2.32 0 0 0 Target initStep - 1 -5.01 4.61 -2.41e+03 1.42 0 33.2 33.2 Target compt - 2 -1.32 7.37 -2.4e+03 1.42 0 10.2 43.4 Tracker Transportation - 3 607 461 -900 1.42 0 1.68e+03 1.72e+03 Chamber Transportation - 4 621 471 -865 1.42 0 39.5 1.76e+03 Tracker Transportation - 5 932 703 -100 1.42 0 857 2.62e+03 Chamber Transportation - 6 1.01e+03 763 100 1.42 0 224 2.85e+03 Tracker Transportation - 7 1.26e+03 945 700 1.42 0 672 3.52e+03 Chamber Transportation - 8 1.34e+03 1.01e+03 900 1.42 0 224 3.74e+03 Tracker Transportation - 9 1.58e+03 1.19e+03 1.5e+03 1.42 0 672 4.41e+03 Chamber Transportation - 10 1.66e+03 1.25e+03 1.7e+03 1.42 0 224 4.64e+03 Tracker Transportation - 11 1.92e+03 1.44e+03 2.34e+03 1.42 0 715 5.35e+03 World Transportation - 12 2.16e+03 1.62e+03 2.94e+03 1.42 0 675 6.03e+03 OutOfWorld Transportation + 0 -2.2 -0.0213 -2.42e+03 0.147 0 0 0 Target initStep + 1 -2.34 -0.17 -2.42e+03 0 0.088 0.216 0.216 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 79 +* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 128 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.01 4.61 -2.41e+03 0.901 0 0 0 Target initStep - 1 -5.05 4.61 -2.41e+03 0 0.901 0.645 0.645 Target eIoni + 0 -2.34 -0.17 -2.42e+03 0.0589 0 0 0 Target initStep + 1 -2.34 -0.17 -2.42e+03 0 0.0589 0.0117 0.0117 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 127, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.422 0.442 -2.44e+03 9 0 0 0 Target initStep - 1 -2.09 2.63 -2.43e+03 0 0 15.4 15.4 Target conv + 0 -1.86 0.0299 -2.43e+03 0.663 0 0 0 Target initStep + 1 -2.87 -0.181 -2.42e+03 0.227 0 3.7 3.7 Target compt + 2 -2.86 -0.441 -2.42e+03 0 0.088 0.31 4.01 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 78 +* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 127 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.09 2.63 -2.43e+03 4.72 0 0 0 Target initStep - 1 -2.13 2.65 -2.43e+03 2.52 0.689 0.701 0.701 Target eBrem - 2 -1.91 2.7 -2.43e+03 0.642 1.87 1.61 2.31 Target eIoni - 3 -1.89 2.7 -2.43e+03 0 0.642 0.423 2.73 Target eIoni + 0 -2.86 -0.441 -2.42e+03 0.139 0 0 0 Target initStep + 1 -2.86 -0.444 -2.42e+03 0 0.139 0.0462 0.0462 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 178, Parent ID = 176 +* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 127 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.13 2.65 -2.43e+03 1.52 0 0 0 Target initStep - 1 10.4 5.02 -2.43e+03 0.403 0 12.8 12.8 Target compt - 2 9.96 8.19 -2.42e+03 0.4 0 3.28 16 Target compt - 3 9.87 11.3 -2.42e+03 0 0.088 3.19 19.2 Target phot + 0 -2.87 -0.181 -2.42e+03 0.436 0 0 0 Target initStep + 1 -2.87 -0.178 -2.42e+03 0 0.436 0.253 0.253 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 178 +* G4Track Information: Particle = gamma, Track ID = 126, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.87 11.3 -2.42e+03 0.312 0 0 0 Target initStep - 1 9.87 11.4 -2.42e+03 0 0.312 0.158 0.158 Target eIoni + 0 -1.72 0.241 -2.43e+03 0.285 0 0 0 Target initStep + 1 -2.01 -0.102 -2.43e+03 0 0.088 1.42 1.42 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 178 +* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 126 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.96 8.19 -2.42e+03 0.00259 0 0 0 Target initStep - 1 9.96 8.19 -2.42e+03 0 0.00259 0.000108 0.000108 Target eIoni + 0 -2.01 -0.102 -2.43e+03 0.197 0 0 0 Target initStep + 1 -2.01 -0.105 -2.43e+03 0 0.197 0.0795 0.0795 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 178 +* G4Track Information: Particle = gamma, Track ID = 125, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.4 5.02 -2.43e+03 1.11 0 0 0 Target initStep - 1 10.4 5.02 -2.43e+03 0.893 0.078 0.0702 0.0702 Target eBrem - 2 10.5 5.03 -2.43e+03 0 0.893 0.638 0.708 Target eIoni + 0 -1.7 0.271 -2.43e+03 1.61 0 0 0 Target initStep + 1 -2.65 -1.28 -2.42e+03 0.632 0 7.87 7.87 Target compt + 2 -1.88 -0.577 -2.42e+03 0.529 0 1.43 9.3 Target compt + 3 0.292 0.856 -2.42e+03 0 0.088 2.66 12 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 179 +* G4Track Information: Particle = e-, Track ID = 230, Parent ID = 125 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.4 5.02 -2.43e+03 0.143 0 0 0 Target initStep - 1 10.6 5.15 -2.43e+03 0 0.088 0.224 0.224 Target phot + 0 0.292 0.856 -2.42e+03 0.441 0 0 0 Target initStep + 1 0.309 0.86 -2.42e+03 0 0.441 0.257 0.257 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 182 +* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 125 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.6 5.15 -2.43e+03 0.0552 0 0 0 Target initStep - 1 10.6 5.15 -2.43e+03 0 0.0552 0.0105 0.0105 Target eIoni + 0 -1.88 -0.577 -2.42e+03 0.103 0 0 0 Target initStep + 1 -1.88 -0.576 -2.42e+03 0 0.103 0.0288 0.0288 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 77, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 125 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.384 0.392 -2.44e+03 0.29 0 0 0 Target initStep - 1 -0.511 0.506 -2.44e+03 0 0.088 0.86 0.86 Target phot + 0 -2.65 -1.28 -2.42e+03 0.976 0 0 0 Target initStep + 1 -2.67 -1.3 -2.42e+03 0 0.976 0.71 0.71 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 77 +* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.511 0.506 -2.44e+03 0.202 0 0 0 Target initStep - 1 -0.506 0.505 -2.44e+03 0 0.202 0.0826 0.0826 Target eIoni + 0 -1.66 0.39 -2.43e+03 1.79 0 0 0 Target initStep + 1 -3.18 -3.99 -2.42e+03 1.06 0 12.8 12.8 Target compt + 2 -5.8 -2.42 -2.41e+03 0.484 0 6.87 19.7 Target compt + 3 -1.92 5.42 -2.4e+03 0 0.088 9.74 29.4 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 76, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 124 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.371 0.381 -2.44e+03 1.9 0 0 0 Target initStep - 1 -5.4 2.44 -2.43e+03 0 0 17.5 17.5 Target conv + 0 -1.92 5.42 -2.4e+03 0.396 0 0 0 Target initStep + 1 -1.91 5.42 -2.4e+03 0 0.396 0.221 0.221 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 76 +* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 124 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.4 2.44 -2.43e+03 0.339 0 0 0 Target initStep - 1 -5.39 2.44 -2.43e+03 0 0.339 0.178 0.178 Target eIoni + 0 -5.8 -2.42 -2.41e+03 0.573 0 0 0 Target initStep + 1 -5.81 -2.42 -2.41e+03 0 0.573 0.365 0.365 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 124 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.27 0.225 -2.44e+03 11.5 0 0 0 Target initStep - 1 -1.09 0.758 -2.44e+03 0 0 6.43 6.43 Target conv + 0 -3.18 -3.99 -2.42e+03 0.731 0 0 0 Target initStep + 1 -3.17 -4.02 -2.42e+03 0 0.731 0.498 0.498 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 75 +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.09 0.758 -2.44e+03 1.34 0 0 0 Target initStep - 1 -1.09 0.763 -2.44e+03 0.172 1.16 1.02 1.02 Target eIoni - 2 -1.09 0.763 -2.44e+03 0 0.172 0.0647 1.09 Target eIoni + 0 -1.62 0.504 -2.43e+03 0.636 0 0 0 Target initStep + 1 -1.92 -0.556 -2.42e+03 0 0.088 3.23 3.23 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 123 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.266 0.222 -2.44e+03 0.136 0 0 0 Target initStep - 1 -0.282 0.232 -2.44e+03 0 0.088 0.126 0.126 Target phot + 0 -1.92 -0.556 -2.42e+03 0.548 0 0 0 Target initStep + 1 -1.91 -0.563 -2.42e+03 0 0.548 0.344 0.344 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 74 +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.282 0.232 -2.44e+03 0.0481 0 0 0 Target initStep - 1 -0.283 0.232 -2.44e+03 0 0.0481 0.00839 0.00839 Target eIoni + 0 -1.57 0.665 -2.43e+03 0.501 0 0 0 Target initStep + 1 -1.74 0.131 -2.43e+03 0 0.088 1.84 1.84 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 122 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.229 0.213 -2.44e+03 7.46 0 0 0 Target initStep - 1 -1.13 0.585 -2.43e+03 0 0 12.2 12.2 Target conv + 0 -1.74 0.131 -2.43e+03 0.413 0 0 0 Target initStep + 1 -1.74 0.146 -2.43e+03 0 0.413 0.234 0.234 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 191, Parent ID = 73 +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 113 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.13 0.585 -2.43e+03 1.38 0 0 0 Target initStep - 1 -1.16 0.602 -2.43e+03 0.148 1.23 1.07 1.07 Target eIoni - 2 -1.16 0.597 -2.43e+03 0 0.148 0.0482 1.12 Target eIoni - 3 -1.16 0.597 -2.43e+03 0 0 0 1.12 Target annihil + 0 -1.59 0.571 -2.43e+03 3.75 0 0 0 Target initStep + 1 -1.43 2.39 -2.41e+03 0 0 16.1 16.1 Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 188, Parent ID = 75 +* G4Track Information: Particle = e+, Track ID = 237, Parent ID = 121 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.09 0.758 -2.44e+03 9.15 0 0 0 Target initStep - 1 -1.16 0.803 -2.44e+03 7.94 0.709 0.554 0.554 Target eBrem - 2 -1.26 0.856 -2.44e+03 6.71 0.544 0.535 1.09 Target eBrem - 3 -1.4 0.805 -2.44e+03 4.26 1.23 0.822 1.91 Target eBrem - 4 -1.49 0.541 -2.43e+03 2.31 1.95 1.46 3.37 Target eBrem - 5 -1.59 0.311 -2.43e+03 0.402 1.91 1.56 4.93 Target eIoni - 6 -1.57 0.317 -2.43e+03 0 0.402 0.223 5.15 Target eIoni - 7 -1.57 0.317 -2.43e+03 0 0 0 5.15 Target annihil + 0 -1.43 2.39 -2.41e+03 1.66 0 0 0 Target initStep + 1 -1.44 2.42 -2.41e+03 0.121 1.53 1.26 1.26 Target eIoni + 2 -1.45 2.42 -2.41e+03 0 0.121 0.0349 1.3 Target eIoni + 3 -1.45 2.42 -2.41e+03 0 0 0 1.3 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 186, Parent ID = 76 +* G4Track Information: Particle = e+, Track ID = 187, Parent ID = 147 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.4 2.44 -2.43e+03 0.54 0 0 0 Target initStep - 1 -5.43 2.45 -2.43e+03 0 0.54 0.335 0.335 Target eIoni - 2 -5.43 2.45 -2.43e+03 0 0 0 0.335 Target annihil + 0 -3.45 0.756 -2.41e+03 10.8 0 0 0 Target initStep + 1 -3.5 0.711 -2.41e+03 7.88 0.421 0.445 0.445 Target eBrem + 2 -3.5 0.71 -2.41e+03 7.3 0.0152 0.00793 0.453 Target eBrem + 3 -3.46 0.64 -2.41e+03 6.42 0.766 0.402 0.855 Target eBrem + 4 -3.22 0.926 -2.41e+03 3.8 2.63 2.53 3.39 Target eIoni + 5 -3.21 0.802 -2.41e+03 3.01 0.195 0.2 3.59 Target eBrem + 6 -3.23 0.393 -2.41e+03 1 2.01 1.79 5.38 Target eIoni + 7 -3.3 0.363 -2.41e+03 0 0.307 0.409 5.78 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 177, Parent ID = 78 +* G4Track Information: Particle = e+, Track ID = 185, Parent ID = 148 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.09 2.63 -2.43e+03 3.25 0 0 0 Target initStep - 1 -2.14 2.75 -2.43e+03 1.61 1.05 1.08 1.08 Target eBrem - 2 -2.19 2.86 -2.43e+03 0.135 1.47 1.23 2.31 Target eIoni - 3 -2.18 2.86 -2.43e+03 0 0.135 0.0416 2.36 Target eIoni - 4 -2.18 2.86 -2.43e+03 0 0 0 2.36 Target annihil + 0 -8.87 1.2 -2.41e+03 18.5 0 0 0 Target initStep + 1 -9.04 1.16 -2.4e+03 17.8 0.452 0.377 0.377 Target eBrem + 2 -9.37 1.16 -2.4e+03 14.5 0.609 0.582 0.959 Target eBrem + 3 -9.45 1.14 -2.4e+03 11.7 1.35 0.638 1.6 Target eBrem + 4 -10.1 1.59 -2.4e+03 8.76 2.19 1.94 3.53 Target eBrem + 5 -10.4 1.69 -2.4e+03 8.43 0.33 0.354 3.89 Target eBrem + 6 -11.6 1.2 -2.4e+03 5.95 1.91 1.81 5.7 Target eBrem + 7 -12.1 1.5 -2.4e+03 5.04 0.581 0.581 6.28 Target eBrem + 8 -12.3 1.62 -2.4e+03 3.76 0.392 0.43 6.71 Target eBrem + 9 -12.4 1.85 -2.4e+03 2.52 1.24 0.762 7.47 Target eBrem + 10 -12.6 2.36 -2.4e+03 0.925 1.59 1.63 9.1 Target eIoni + 11 -12.5 2.37 -2.4e+03 0 0.925 0.672 9.78 Target eIoni + 12 -12.5 2.37 -2.4e+03 0 0 0 9.78 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 172, Parent ID = 81 +* G4Track Information: Particle = e+, Track ID = 174, Parent ID = 152 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.709 0.824 -2.44e+03 8.95 0 0 0 Target initStep - 1 -0.905 0.683 -2.44e+03 7.97 0.836 0.849 0.849 Target eBrem - 2 -1.11 0.247 -2.44e+03 6.68 1.15 1.14 1.99 Target eBrem - 3 -2.09 -0.468 -2.44e+03 3.84 2.84 2.58 4.57 Target eIoni - 4 -2.17 -0.959 -2.44e+03 1.21 2.51 1.91 6.48 Target eBrem - 5 -2.2 -0.853 -2.44e+03 0 1.21 0.923 7.41 Target eIoni - 6 -2.2 -0.853 -2.44e+03 0 0 0 7.41 Target annihil + 0 -3.39 2.25 -2.42e+03 0.719 0 0 0 Target initStep + 1 -3.39 2.28 -2.42e+03 0 0.719 0.49 0.49 Target eIoni + 2 -3.39 2.28 -2.42e+03 0 0 0 0.49 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 160, Parent ID = 158 +* G4Track Information: Particle = e+, Track ID = 162, Parent ID = 154 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.96 11.8 -2.43e+03 1.48 0 0 0 Target initStep - 1 4.99 12 -2.43e+03 0 1.48 1.15 1.15 Target eIoni - 2 4.99 12 -2.43e+03 0 0 0 1.15 Target annihil + 0 -6.88 5.69 -2.42e+03 6.15 0 0 0 Target initStep + 1 -7.62 6.31 -2.42e+03 2.89 3.25 2.48 2.48 Target eIoni + 2 -7.65 6.28 -2.42e+03 2.7 0.0386 0.0584 2.54 Target eBrem + 3 -7.75 5.95 -2.42e+03 1.07 1.63 1.69 4.23 Target eIoni + 4 -7.7 5.88 -2.42e+03 0 1.07 0.805 5.04 Target eIoni + 5 -7.7 5.88 -2.42e+03 0 0 0 5.04 Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 156, Parent ID = 88 +* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 121 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.675 3.05 -2.43e+03 6.3 0 0 0 Target initStep - 1 0.684 3.06 -2.43e+03 5.92 0.0389 0.0303 0.0303 Target eBrem - 2 0.96 3.35 -2.43e+03 2.99 2.94 2.44 2.47 Target eIoni - 3 0.977 3.49 -2.43e+03 1.1 0.182 0.209 2.68 Target eBrem - 4 0.961 3.53 -2.43e+03 0 0.188 0.199 2.88 Target annihil + 0 -1.43 2.39 -2.41e+03 1.08 0 0 0 Target initStep + 1 -1.42 2.39 -2.41e+03 0 1.08 0.796 0.796 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 73 +* G4Track Information: Particle = gamma, Track ID = 259, Parent ID = 162 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.13 0.585 -2.43e+03 5.06 0 0 0 Target initStep - 1 -1.13 0.582 -2.43e+03 3.69 1.37 1.17 1.17 Target eBrem - 2 -1.41 0.379 -2.43e+03 1.81 1.87 1.93 3.11 Target eIoni - 3 -1.37 0.335 -2.43e+03 1.01 0.616 0.421 3.53 Target eBrem - 4 -1.34 0.298 -2.43e+03 0.462 0.547 0.549 4.08 Target eBrem - 5 -1.34 0.286 -2.43e+03 0.07 0.255 0.242 4.32 Target eBrem - 6 -1.34 0.287 -2.43e+03 0 0.07 0.0154 4.34 Target eIoni + 0 -7.7 5.88 -2.42e+03 0.511 0 0 0 Target initStep + 1 -9.99 7.9 -2.42e+03 0 0.088 3.14 3.14 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 216, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 260, Parent ID = 259 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.34 0.286 -2.43e+03 0.137 0 0 0 Target initStep - 1 -1.41 0.704 -2.43e+03 0 0.088 0.464 0.464 Target phot + 0 -9.99 7.9 -2.42e+03 0.423 0 0 0 Target initStep + 1 -10 7.9 -2.42e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 216 +* G4Track Information: Particle = gamma, Track ID = 258, Parent ID = 162 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.41 0.704 -2.43e+03 0.0487 0 0 0 Target initStep - 1 -1.41 0.704 -2.43e+03 0 0.0487 0.00855 0.00855 Target eIoni + 0 -7.7 5.88 -2.42e+03 0.511 0 0 0 Target initStep + 1 -5.42 3.87 -2.42e+03 0.203 0 3.11 3.11 Target compt + 2 -6.08 3.77 -2.42e+03 0 0.088 0.705 3.82 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 262, Parent ID = 258 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.37 0.335 -2.43e+03 0.189 0 0 0 Target initStep - 1 -1.14 -0.0542 -2.43e+03 0 0.088 0.455 0.455 Target phot + 0 -6.08 3.77 -2.42e+03 0.115 0 0 0 Target initStep + 1 -6.08 3.77 -2.42e+03 0 0.115 0.0344 0.0344 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 215 +* G4Track Information: Particle = e-, Track ID = 261, Parent ID = 258 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.14 -0.0542 -2.43e+03 0.101 0 0 0 Target initStep - 1 -1.14 -0.0561 -2.43e+03 0 0.101 0.0278 0.0278 Target eIoni + 0 -5.42 3.87 -2.42e+03 0.308 0 0 0 Target initStep + 1 -5.41 3.87 -2.42e+03 0 0.308 0.155 0.155 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 214, Parent ID = 156 +* G4Track Information: Particle = gamma, Track ID = 257, Parent ID = 162 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.961 3.53 -2.43e+03 1.46 0 0 0 Target initStep - 1 12.5 19.6 -2.43e+03 1.01 0 19.9 19.9 Target compt - 2 13.4 21.1 -2.43e+03 1.01 0 2.24 22.2 World Transportation - 3 29.6 51.2 -2.4e+03 1.01 0 43.6 65.8 Tracker Transportation - 4 1.14e+03 2.11e+03 -550 1.01 0 2.98e+03 3.05e+03 World Transportation - 5 1.59e+03 2.94e+03 195 1.01 0 1.2e+03 4.25e+03 OutOfWorld Transportation + 0 -7.65 6.28 -2.42e+03 0.154 0 0 0 Target initStep + 1 -7.78 5.89 -2.42e+03 0 0.088 0.411 0.411 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 219, Parent ID = 214 +* G4Track Information: Particle = e-, Track ID = 263, Parent ID = 257 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 12.5 19.6 -2.43e+03 0.446 0 0 0 Target initStep - 1 12.5 19.6 -2.43e+03 0.0851 0.361 0.156 0.156 Target eBrem - 2 12.5 19.6 -2.43e+03 0 0.0851 0.0212 0.177 Target eIoni + 0 -7.78 5.89 -2.42e+03 0.0663 0 0 0 Target initStep + 1 -7.78 5.89 -2.42e+03 0 0.0663 0.0141 0.0141 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 213, Parent ID = 156 +* G4Track Information: Particle = gamma, Track ID = 256, Parent ID = 174 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.961 3.53 -2.43e+03 0.478 0 0 0 Target initStep - 1 1.38 2.82 -2.43e+03 0.264 0 0.854 0.854 Target compt - 2 3.09 3.66 -2.43e+03 0 0.088 1.98 2.84 Target phot + 0 -3.39 2.28 -2.42e+03 0.511 0 0 0 Target initStep + 1 -6.54 15 -2.42e+03 0 0.088 13.5 13.5 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 213 +* G4Track Information: Particle = e-, Track ID = 264, Parent ID = 256 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.09 3.66 -2.43e+03 0.176 0 0 0 Target initStep - 1 3.09 3.67 -2.43e+03 0 0.176 0.0669 0.0669 Target eIoni + 0 -6.54 15 -2.42e+03 0.423 0 0 0 Target initStep + 1 -6.55 15.1 -2.42e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 213 +* G4Track Information: Particle = gamma, Track ID = 255, Parent ID = 174 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.38 2.82 -2.43e+03 0.214 0 0 0 Target initStep - 1 1.38 2.81 -2.43e+03 0 0.214 0.09 0.09 Target eIoni + 0 -3.39 2.28 -2.42e+03 0.511 0 0 0 Target initStep + 1 -3.06 0.962 -2.42e+03 0.307 0 1.39 1.39 Target compt + 2 -1.45 0.402 -2.42e+03 0 0.088 2.03 3.41 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 212, Parent ID = 156 +* G4Track Information: Particle = e-, Track ID = 266, Parent ID = 255 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.977 3.49 -2.43e+03 1.7 0 0 0 Target initStep - 1 -1.32 2.9 -2.45e+03 1.7 0 19.4 19.4 World Transportation - 2 -59.7 -12 -2.94e+03 1.7 0 494 513 OutOfWorld Transportation + 0 -1.45 0.402 -2.42e+03 0.219 0 0 0 Target initStep + 1 -1.44 0.402 -2.42e+03 0 0.219 0.0932 0.0932 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 211, Parent ID = 156 +* G4Track Information: Particle = e-, Track ID = 265, Parent ID = 255 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.684 3.06 -2.43e+03 0.339 0 0 0 Target initStep - 1 1.32 3.69 -2.43e+03 0 0.088 2.48 2.48 Target phot + 0 -3.06 0.962 -2.42e+03 0.204 0 0 0 Target initStep + 1 -3.06 0.958 -2.42e+03 0 0.204 0.0842 0.0842 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 211 +* G4Track Information: Particle = gamma, Track ID = 254, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.32 3.69 -2.43e+03 0.251 0 0 0 Target initStep - 1 1.32 3.69 -2.43e+03 0 0.251 0.115 0.115 Target eIoni + 0 -12.5 2.37 -2.4e+03 0.511 0 0 0 Target initStep + 1 -8.13 -1.33 -2.4e+03 0.32 0 6.9 6.9 Target compt + 2 -8.01 -0.473 -2.41e+03 0 0.088 2.98 9.87 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 210, Parent ID = 160 +* G4Track Information: Particle = e-, Track ID = 268, Parent ID = 254 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.99 12 -2.43e+03 0.511 0 0 0 Target initStep - 1 5.43 0.734 -2.42e+03 0 0.088 13.5 13.5 Target phot + 0 -8.01 -0.473 -2.41e+03 0.232 0 0 0 Target initStep + 1 -8.01 -0.469 -2.41e+03 0 0.232 0.102 0.102 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 210 +* G4Track Information: Particle = e-, Track ID = 267, Parent ID = 254 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.43 0.734 -2.42e+03 0.423 0 0 0 Target initStep - 1 5.44 0.723 -2.42e+03 0 0.423 0.243 0.243 Target eIoni + 0 -8.13 -1.33 -2.4e+03 0.191 0 0 0 Target initStep + 1 -8.13 -1.33 -2.4e+03 0 0.191 0.0756 0.0756 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 209, Parent ID = 160 +* G4Track Information: Particle = gamma, Track ID = 253, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.99 12 -2.43e+03 0.511 0 0 0 Target initStep - 1 4.77 17.6 -2.43e+03 0.381 0 6.71 6.71 Target compt - 2 1.77 18.9 -2.44e+03 0 0.088 7.43 14.1 Target phot + 0 -12.5 2.37 -2.4e+03 0.511 0 0 0 Target initStep + 1 -13.1 2.86 -2.4e+03 0.511 0 0.911 0.911 Tracker Transportation + 2 -1.84e+03 1.55e+03 -794 0.511 0 2.88e+03 2.88e+03 World Transportation + 3 -2.94e+03 2.48e+03 179 0.511 0 1.74e+03 4.62e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 209 +* G4Track Information: Particle = gamma, Track ID = 252, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.77 18.9 -2.44e+03 0.293 0 0 0 Target initStep - 1 1.77 18.9 -2.44e+03 0 0.293 0.144 0.144 Target eIoni + 0 -12.3 1.62 -2.4e+03 0.888 0 0 0 Target initStep + 1 -16.2 2.28 -2.4e+03 0.888 0 4.18 4.18 Tracker Transportation + 2 -2.37e+03 405 -1.54e+03 0.888 0 2.53e+03 2.54e+03 World Transportation + 3 -2.94e+03 503 -1.33e+03 0.888 0 619 3.16e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 209 +* G4Track Information: Particle = gamma, Track ID = 251, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.77 17.6 -2.43e+03 0.13 0 0 0 Target initStep - 1 4.77 17.6 -2.43e+03 0 0.13 0.0417 0.0417 Target eIoni + 0 -12.1 1.5 -2.4e+03 0.333 0 0 0 Target initStep + 1 -15.8 2.04 -2.4e+03 0.304 0 3.94 3.94 Target compt + 2 -16.8 2.47 -2.4e+03 0 0.088 1.08 5.02 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 208, Parent ID = 172 +* G4Track Information: Particle = e-, Track ID = 270, Parent ID = 251 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.2 -0.853 -2.44e+03 0.511 0 0 0 Target initStep - 1 -5.1 9.6 -2.44e+03 0 0.088 12.3 12.3 Target phot + 0 -16.8 2.47 -2.4e+03 0.216 0 0 0 Target initStep + 1 -16.8 2.47 -2.4e+03 0 0.216 0.0915 0.0915 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 208 +* G4Track Information: Particle = e-, Track ID = 269, Parent ID = 251 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.1 9.6 -2.44e+03 0.423 0 0 0 Target initStep - 1 -5.09 9.61 -2.44e+03 0 0.423 0.243 0.243 Target eIoni + 0 -15.8 2.04 -2.4e+03 0.0285 0 0 0 Target initStep + 1 -15.8 2.04 -2.4e+03 0 0.0285 0.00359 0.00359 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 207, Parent ID = 172 +* G4Track Information: Particle = gamma, Track ID = 250, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.2 -0.853 -2.44e+03 0.511 0 0 0 Target initStep - 1 -1.7 -2.64 -2.44e+03 0 0.088 2.1 2.1 Target phot + 0 -11.6 1.2 -2.4e+03 0.569 0 0 0 Target initStep + 1 -13 1.65 -2.4e+03 0.569 0 2.4 2.4 Tracker Transportation + 2 -2.29e+03 724 612 0.569 0 3.84e+03 3.85e+03 World Transportation + 3 -2.94e+03 930 1.48e+03 0.569 0 1.1e+03 4.95e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 207 +* G4Track Information: Particle = gamma, Track ID = 249, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.7 -2.64 -2.44e+03 0.423 0 0 0 Target initStep - 1 -1.7 -2.65 -2.44e+03 0 0.423 0.243 0.243 Target eIoni + 0 -10.1 1.59 -2.4e+03 0.791 0 0 0 Target initStep + 1 -11 1.55 -2.4e+03 0.511 0 1.04 1.04 Target compt + 2 -11.5 0.759 -2.4e+03 0 0.088 1.44 2.48 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 206, Parent ID = 172 +* G4Track Information: Particle = e-, Track ID = 272, Parent ID = 249 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.17 -0.959 -2.44e+03 0.125 0 0 0 Target initStep - 1 -2.35 -0.526 -2.44e+03 0 0.088 0.471 0.471 Target phot + 0 -11.5 0.759 -2.4e+03 0.423 0 0 0 Target initStep + 1 -11.4 0.751 -2.4e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 206 +* G4Track Information: Particle = e-, Track ID = 271, Parent ID = 249 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.35 -0.526 -2.44e+03 0.0368 0 0 0 Target initStep - 1 -2.35 -0.526 -2.44e+03 0 0.0368 0.00542 0.00542 Target eIoni + 0 -11 1.55 -2.4e+03 0.28 0 0 0 Target initStep + 1 -11 1.55 -2.4e+03 0 0.28 0.135 0.135 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 205, Parent ID = 172 +* G4Track Information: Particle = gamma, Track ID = 248, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.11 0.247 -2.44e+03 0.141 0 0 0 Target initStep - 1 -1.12 0.242 -2.44e+03 0 0.088 0.00947 0.00947 Target phot + 0 -9.45 1.14 -2.4e+03 1.44 0 0 0 Target initStep + 1 -10.1 0.788 -2.4e+03 0.899 0 1.94 1.94 Target compt + 2 -11.5 -0.244 -2.4e+03 0.248 0 1.93 3.87 Target compt + 3 -9.76 0.352 -2.4e+03 0 0.088 2.07 5.94 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 205 +* G4Track Information: Particle = e-, Track ID = 275, Parent ID = 248 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.12 0.242 -2.44e+03 0.0531 0 0 0 Target initStep - 1 -1.12 0.243 -2.44e+03 0 0.0531 0.00984 0.00984 Target eIoni + 0 -9.76 0.352 -2.4e+03 0.16 0 0 0 Target initStep + 1 -9.76 0.35 -2.4e+03 0 0.16 0.0575 0.0575 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 204, Parent ID = 172 +* G4Track Information: Particle = e-, Track ID = 274, Parent ID = 248 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.905 0.683 -2.44e+03 0.15 0 0 0 Target initStep - 1 -0.907 0.677 -2.44e+03 0 0.088 0.0108 0.0108 Target phot + 0 -11.5 -0.244 -2.4e+03 0.651 0 0 0 Target initStep + 1 -11.5 -0.26 -2.4e+03 0 0.651 0.431 0.431 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 230, Parent ID = 204 +* G4Track Information: Particle = e-, Track ID = 273, Parent ID = 248 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.907 0.677 -2.44e+03 0.0619 0 0 0 Target initStep - 1 -0.907 0.677 -2.44e+03 0 0.0619 0.0126 0.0126 Target eIoni + 0 -10.1 0.788 -2.4e+03 0.544 0 0 0 Target initStep + 1 -10.1 0.794 -2.4e+03 0 0.544 0.341 0.341 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 203, Parent ID = 177 +* G4Track Information: Particle = gamma, Track ID = 247, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.18 2.86 -2.43e+03 0.511 0 0 0 Target initStep - 1 -1.35 2.01 -2.43e+03 0 0.088 1.66 1.66 Target phot + 0 -9.37 1.16 -2.4e+03 2.67 0 0 0 Target initStep + 1 -10 1.02 -2.4e+03 0.965 0 1.78 1.78 Target compt + 2 -17.5 0.478 -2.4e+03 0.965 0 7.99 9.78 Tracker Transportation + 3 -2.39e+03 -170 -1.54e+03 0.965 0 2.53e+03 2.54e+03 World Transportation + 4 -2.94e+03 -209 -1.34e+03 0.965 0 582 3.12e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 203 +* G4Track Information: Particle = e-, Track ID = 276, Parent ID = 247 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.35 2.01 -2.43e+03 0.423 0 0 0 Target initStep - 1 -1.34 1.99 -2.43e+03 0 0.423 0.243 0.243 Target eIoni + 0 -10 1.02 -2.4e+03 1.7 0 0 0 Target initStep + 1 -10 1.01 -2.4e+03 0.79 0.911 0.91 0.91 Target eBrem + 2 -10 1.03 -2.4e+03 0 0.79 0.549 1.46 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 202, Parent ID = 177 +* G4Track Information: Particle = gamma, Track ID = 246, Parent ID = 185 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.18 2.86 -2.43e+03 0.511 0 0 0 Target initStep - 1 -9.18 9.94 -2.44e+03 0 0.088 13.9 13.9 Target phot + 0 -9.04 1.16 -2.4e+03 0.232 0 0 0 Target initStep + 1 -9.26 1.12 -2.4e+03 0 0.088 0.631 0.631 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 202 +* G4Track Information: Particle = e-, Track ID = 277, Parent ID = 246 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.18 9.94 -2.44e+03 0.423 0 0 0 Target initStep - 1 -9.18 9.95 -2.44e+03 0 0.423 0.243 0.243 Target eIoni + 0 -9.26 1.12 -2.4e+03 0.144 0 0 0 Target initStep + 1 -9.26 1.13 -2.4e+03 0 0.144 0.0487 0.0487 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 201, Parent ID = 177 +* G4Track Information: Particle = gamma, Track ID = 245, Parent ID = 187 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.14 2.75 -2.43e+03 0.597 0 0 0 Target initStep - 1 -4.46 9.92 -2.42e+03 0.509 0 10.8 10.8 Target compt - 2 -4.57 11.3 -2.42e+03 0 0.088 1.48 12.3 Target phot + 0 -3.3 0.363 -2.41e+03 0.55 0 0 0 Target initStep + 1 -4.62 3.51 -2.41e+03 0.435 0 5.17 5.17 Target compt + 2 -7.36 3.96 -2.4e+03 0.228 0 3.67 8.84 Target compt + 3 -7.29 3.66 -2.4e+03 0 0.088 0.318 9.16 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 201 +* G4Track Information: Particle = e-, Track ID = 280, Parent ID = 245 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.57 11.3 -2.42e+03 0.421 0 0 0 Target initStep - 1 -4.56 11.3 -2.42e+03 0 0.421 0.241 0.241 Target eIoni + 0 -7.29 3.66 -2.4e+03 0.14 0 0 0 Target initStep + 1 -7.29 3.66 -2.4e+03 0 0.14 0.0467 0.0467 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 201 +* G4Track Information: Particle = e-, Track ID = 279, Parent ID = 245 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.46 9.92 -2.42e+03 0.0883 0 0 0 Target initStep - 1 -4.46 9.92 -2.42e+03 0 0.0883 0.0225 0.0225 Target eIoni + 0 -7.36 3.96 -2.4e+03 0.207 0 0 0 Target initStep + 1 -7.36 3.96 -2.4e+03 0 0.207 0.0861 0.0861 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 186 +* G4Track Information: Particle = e-, Track ID = 278, Parent ID = 245 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.43 2.45 -2.43e+03 0.511 0 0 0 Target initStep - 1 -4.87 2.83 -2.42e+03 0 0.088 1.12 1.12 Target phot + 0 -4.62 3.51 -2.41e+03 0.114 0 0 0 Target initStep + 1 -4.62 3.51 -2.41e+03 0 0.114 0.034 0.034 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 200 +* G4Track Information: Particle = gamma, Track ID = 244, Parent ID = 187 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.87 2.83 -2.42e+03 0.423 0 0 0 Target initStep - 1 -4.86 2.83 -2.42e+03 0 0.423 0.243 0.243 Target eIoni + 0 -3.3 0.363 -2.41e+03 1.17 0 0 0 Target initStep + 1 -7.34 -7.49 -2.41e+03 1.04 0 8.85 8.85 Target compt + 2 -16.2 -19.1 -2.41e+03 1.04 0 14.9 23.7 World Transportation + 3 -1.52e+03 -1.99e+03 -2.94e+03 1.04 0 2.54e+03 2.56e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 186 +* G4Track Information: Particle = e-, Track ID = 281, Parent ID = 244 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.43 2.45 -2.43e+03 0.511 0 0 0 Target initStep - 1 -6.93 1.43 -2.43e+03 0.486 0 3.03 3.03 Target compt - 2 -10.1 0.177 -2.43e+03 0.459 0 4.33 7.36 Target compt - 3 -13.9 -3.71 -2.43e+03 0.199 0 6.53 13.9 Target compt - 4 -14 -3.6 -2.43e+03 0 0.088 0.2 14.1 Target phot + 0 -7.34 -7.49 -2.41e+03 0.131 0 0 0 Target initStep + 1 -7.34 -7.49 -2.41e+03 0 0.131 0.0424 0.0424 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 239, Parent ID = 199 +* G4Track Information: Particle = gamma, Track ID = 243, Parent ID = 187 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14 -3.6 -2.43e+03 0.111 0 0 0 Target initStep - 1 -14 -3.59 -2.43e+03 0 0.111 0.0322 0.0322 Target eIoni + 0 -3.21 0.802 -2.41e+03 0.592 0 0 0 Target initStep + 1 -3.86 -5.63 -2.41e+03 0.535 0 6.56 6.56 Target compt + 2 -1.81 -16 -2.41e+03 0 0.088 10.7 17.3 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 238, Parent ID = 199 +* G4Track Information: Particle = e-, Track ID = 283, Parent ID = 243 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.9 -3.71 -2.43e+03 0.261 0 0 0 Target initStep - 1 -13.9 -3.71 -2.43e+03 0 0.261 0.121 0.121 Target eIoni + 0 -1.81 -16 -2.41e+03 0.447 0 0 0 Target initStep + 1 -1.81 -16 -2.41e+03 0.0182 0.236 0.139 0.139 Target eBrem + 2 -1.81 -16 -2.41e+03 0 0.0182 0.00175 0.14 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 199 +* G4Track Information: Particle = e-, Track ID = 282, Parent ID = 243 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.1 0.177 -2.43e+03 0.0271 0 0 0 Target initStep - 1 -10.1 0.178 -2.43e+03 0 0.0271 0.0033 0.0033 Target eIoni + 0 -3.86 -5.63 -2.41e+03 0.0573 0 0 0 Target initStep + 1 -3.86 -5.63 -2.41e+03 0 0.0573 0.0111 0.0111 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 199 +* G4Track Information: Particle = gamma, Track ID = 284, Parent ID = 283 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.93 1.43 -2.43e+03 0.0245 0 0 0 Target initStep - 1 -6.93 1.43 -2.43e+03 0 0.0245 0.00282 0.00282 Target eIoni + 0 -1.81 -16 -2.41e+03 0.193 0 0 0 Target initStep + 1 -1.24 -16.8 -2.41e+03 0 0.088 0.982 0.982 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 188 +* G4Track Information: Particle = e-, Track ID = 285, Parent ID = 284 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.57 0.317 -2.43e+03 0.511 0 0 0 Target initStep - 1 -11.1 0.234 -2.43e+03 0.487 0 13 13 Target compt - 2 -11.6 0.429 -2.43e+03 0 0.088 0.972 13.9 Target phot + 0 -1.24 -16.8 -2.41e+03 0.105 0 0 0 Target initStep + 1 -1.23 -16.8 -2.41e+03 0 0.105 0.0297 0.0297 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 198 +* G4Track Information: Particle = gamma, Track ID = 242, Parent ID = 187 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.6 0.429 -2.43e+03 0.399 0 0 0 Target initStep - 1 -11.6 0.429 -2.43e+03 0 0.399 0.224 0.224 Target eIoni + 0 -3.46 0.64 -2.41e+03 0.113 0 0 0 Target initStep + 1 -3.41 0.719 -2.41e+03 0 0.088 0.203 0.203 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 198 +* G4Track Information: Particle = e-, Track ID = 286, Parent ID = 242 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.1 0.234 -2.43e+03 0.0238 0 0 0 Target initStep - 1 -11.1 0.234 -2.43e+03 0 0.0238 0.00269 0.00269 Target eIoni + 0 -3.41 0.719 -2.41e+03 0.0246 0 0 0 Target initStep + 1 -3.41 0.719 -2.41e+03 0 0.0246 0.00284 0.00284 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 188 +* G4Track Information: Particle = gamma, Track ID = 241, Parent ID = 187 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.57 0.317 -2.43e+03 0.511 0 0 0 Target initStep - 1 6.73 0.39 -2.44e+03 0.307 0 11.3 11.3 Target compt - 2 8.94 4.72 -2.44e+03 0 0.088 4.87 16.2 Target phot + 0 -3.5 0.71 -2.41e+03 0.562 0 0 0 Target initStep + 1 -3.23 0.0697 -2.41e+03 0.389 0 3.42 3.42 Target compt + 2 -5 7.56 -2.4e+03 0.389 0 11.6 15 Tracker Transportation + 3 -556 2.33e+03 281 0.389 0 3.59e+03 3.61e+03 World Transportation + 4 -699 2.94e+03 978 0.389 0 934 4.54e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 197 +* G4Track Information: Particle = e-, Track ID = 287, Parent ID = 241 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 8.94 4.72 -2.44e+03 0.219 0 0 0 Target initStep - 1 8.94 4.73 -2.44e+03 0 0.219 0.0936 0.0936 Target eIoni + 0 -3.23 0.0697 -2.41e+03 0.172 0 0 0 Target initStep + 1 -3.23 0.0663 -2.41e+03 0 0.172 0.0647 0.0647 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 197 +* G4Track Information: Particle = gamma, Track ID = 240, Parent ID = 187 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.73 0.39 -2.44e+03 0.204 0 0 0 Target initStep - 1 6.73 0.387 -2.44e+03 0 0.204 0.0837 0.0837 Target eIoni + 0 -3.5 0.711 -2.41e+03 2.49 0 0 0 Target initStep + 1 -2.36 -1.43 -2.4e+03 2.49 0 12.2 12.2 Tracker Transportation + 2 63.8 -127 -1.7e+03 2.49 0 714 726 Chamber Transportation + 3 82.7 -162 -1.5e+03 2.49 0 204 930 Tracker Transportation + 4 139 -270 -900 2.49 0 612 1.54e+03 Chamber Transportation + 5 158 -306 -700 2.49 0 204 1.75e+03 Tracker Transportation + 6 215 -413 -100 2.49 0 612 2.36e+03 Chamber Transportation + 7 234 -449 100 2.49 0 204 2.56e+03 Tracker Transportation + 8 291 -556 700 2.49 0 612 3.18e+03 Chamber Transportation + 9 310 -592 900 2.49 0 204 3.38e+03 Tracker Transportation + 10 366 -699 1.5e+03 2.49 0 612 3.99e+03 Chamber Transportation + 11 385 -735 1.7e+03 2.49 0 204 4.2e+03 Tracker Transportation + 12 452 -860 2.4e+03 2.49 0 714 4.91e+03 World Transportation + 13 503 -957 2.94e+03 2.49 0 551 5.46e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 196, Parent ID = 188 +* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 237 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.4 0.805 -2.44e+03 1.22 0 0 0 Target initStep - 1 -2.33 -1.73 -2.43e+03 0 0.088 6.29 6.29 Target phot + 0 -1.45 2.42 -2.41e+03 0.511 0 0 0 Target initStep + 1 -1.63 7.31 -2.42e+03 0 0.088 9.89 9.89 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 196 +* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 237 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.33 -1.73 -2.43e+03 1.13 0 0 0 Target initStep - 1 -2.35 -1.75 -2.43e+03 0 1.13 0.845 0.845 Target eIoni + 0 -1.45 2.42 -2.41e+03 0.511 0 0 0 Target initStep + 1 -1.42 1.6 -2.41e+03 0 0.088 1.66 1.66 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 188 +* G4Track Information: Particle = e-, Track ID = 289, Parent ID = 238 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.26 0.856 -2.44e+03 0.686 0 0 0 Target initStep - 1 -2.58 0.77 -2.43e+03 0 0.088 5.91 5.91 Target phot + 0 -1.42 1.6 -2.41e+03 0.423 0 0 0 Target initStep + 1 -1.42 1.59 -2.41e+03 0 0.423 0.243 0.243 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 195 +* G4Track Information: Particle = e-, Track ID = 288, Parent ID = 239 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.58 0.77 -2.43e+03 0.598 0 0 0 Target initStep - 1 -2.57 0.792 -2.43e+03 0 0.598 0.386 0.386 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 188 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.16 0.803 -2.44e+03 0.503 0 0 0 Target initStep - 1 -4.4 2.31 -2.43e+03 0.309 0 11.4 11.4 Target compt - 2 -6.5 2.25 -2.43e+03 0 0.088 2.11 13.5 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 194 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.5 2.25 -2.43e+03 0.221 0 0 0 Target initStep - 1 -6.51 2.25 -2.43e+03 0 0.221 0.0947 0.0947 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 194 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.4 2.31 -2.43e+03 0.194 0 0 0 Target initStep - 1 -4.4 2.31 -2.43e+03 0 0.194 0.078 0.078 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 191 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.16 0.597 -2.43e+03 0.511 0 0 0 Target initStep - 1 -2.12 0.216 -2.43e+03 0.18 0 1.25 1.25 Target compt - 2 -1.26 0.255 -2.43e+03 0 0.088 2.13 3.38 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 191 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.16 0.597 -2.43e+03 0.511 0 0 0 Target initStep - 1 -0.791 0.744 -2.43e+03 0.314 0 0.481 0.481 Target compt - 2 1.07 2.67 -2.43e+03 0.299 0 3.09 3.57 Target compt - 3 3.87 9.85 -2.43e+03 0.269 0 8.18 11.8 Target compt - 4 4.22 10 -2.43e+03 0 0.088 0.472 12.2 Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 192 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.22 10 -2.43e+03 0.181 0 0 0 Target initStep - 1 4.22 10.1 -2.43e+03 0 0.181 0.0696 0.0696 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 192 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.87 9.85 -2.43e+03 0.0308 0 0 0 Target initStep - 1 3.87 9.85 -2.43e+03 0 0.0308 0.00405 0.00405 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 251, Parent ID = 192 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.07 2.67 -2.43e+03 0.0144 0 0 0 Target initStep - 1 1.07 2.67 -2.43e+03 0 0.0144 0.00122 0.00122 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 250, Parent ID = 192 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.791 0.744 -2.43e+03 0.197 0 0 0 Target initStep - 1 -0.788 0.744 -2.43e+03 0 0.197 0.0797 0.0797 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 193 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.26 0.255 -2.43e+03 0.0924 0 0 0 Target initStep - 1 -1.26 0.256 -2.43e+03 0 0.0924 0.0242 0.0242 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 248, Parent ID = 193 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.12 0.216 -2.43e+03 0.331 0 0 0 Target initStep - 1 -2.13 0.213 -2.43e+03 0 0.331 0.171 0.171 Target eIoni + 0 -1.63 7.31 -2.42e+03 0.423 0 0 0 Target initStep + 1 -1.62 7.32 -2.42e+03 0 0.423 0.243 0.243 Target eIoni >>> Event: 0 0 hits stored in this event ### Run 1 starts. @@ -3071,1255 +3436,1082 @@ 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 -2.94e+03 1e+06 0 0 0 World initStep - 1 0 0 -2.85e+03 1e+06 0.0167 90.8 90.8 World muIoni - 2 1.87e-06 -1.06e-05 -2.78e+03 1e+06 0.0165 69.2 160 World muIoni - 3 5.3e-06 -1.14e-06 -2.62e+03 1e+06 0.0362 158 318 World muIoni - 4 1.88e-05 9.14e-06 -2.51e+03 1e+06 0.023 113 431 World muIoni - 5 3.65e-05 1.97e-05 -2.45e+03 1e+06 0.011 59 490 Target Transportation - 6 3.67e-05 1.99e-05 -2.45e+03 1e+06 1.68 0.749 491 Target muIoni - 7 8.48e-05 4.28e-05 -2.44e+03 1e+06 15.6 11.6 502 Target muIoni - 8 -0.000479 -2.99e-05 -2.41e+03 1e+06 31.6 23.6 526 Target muIoni - 9 -0.000494 -0.000131 -2.4e+03 1e+06 13.5 9.69 536 Target muIoni - 10 -0.000517 -0.000196 -2.4e+03 1e+06 4.77 3.87 540 Target muIoni - 11 -0.000521 -0.000197 -2.4e+03 1e+06 0.514 0.484 540 Tracker Transportation - 12 -0.00157 -0.000251 -2.32e+03 1e+06 0.0169 84.2 624 Tracker muIoni - 13 -0.00282 -0.000278 -2.22e+03 1e+06 0.0202 100 724 Tracker StepLimiter - 14 -0.00322 -0.000285 -2.18e+03 1e+06 0.00683 31.9 756 Tracker muIoni - 15 -0.00371 -0.000294 -2.14e+03 1e+06 0.00762 39.3 795 Tracker muIoni - 16 -0.00495 -0.000314 -2.04e+03 1e+06 0.0232 100 895 Tracker StepLimiter - 17 -0.00613 -0.000287 -1.94e+03 1e+06 0.0206 100 995 Tracker StepLimiter - 18 -0.00673 -0.000246 -1.89e+03 1e+06 0.0103 53.1 1.05e+03 Tracker muIoni - 19 -0.00787 -0.000185 -1.79e+03 1e+06 0.0197 100 1.15e+03 Tracker StepLimiter - 20 -0.00892 -0.00011 -1.7e+03 1e+06 0.0202 91.4 1.24e+03 Chamber Transportation - 21 -0.00938 -7.32e-05 -1.66e+03 1e+06 0.0349 39.8 1.28e+03 Chamber muIoni - 22 -0.00998 2.53e-05 -1.6e+03 1e+06 0.0374 56.6 1.34e+03 Chamber muIoni - 23 -0.0102 6.83e-05 -1.59e+03 1e+06 0.0142 17.2 1.35e+03 Chamber muIoni - 24 -0.0103 9.06e-05 -1.58e+03 1e+06 0.00708 10.5 1.36e+03 Chamber muIoni - 25 -0.0105 0.000135 -1.55e+03 1e+06 0.0111 22.3 1.39e+03 Chamber muIoni - 26 -0.0108 0.00017 -1.53e+03 1e+06 0.0263 21.7 1.41e+03 Chamber muIoni - 27 -0.0109 0.000199 -1.52e+03 1e+06 0.015 15.7 1.42e+03 Chamber muIoni - 28 -0.0109 0.000199 -1.52e+03 1e+06 0 0.0539 1.42e+03 Chamber muIoni - 29 -0.0111 0.000231 -1.5e+03 1e+06 0.0148 16.2 1.44e+03 Tracker Transportation - 30 -0.0118 0.000373 -1.44e+03 1e+06 0.0104 63.5 1.5e+03 Tracker muIoni - 31 -0.0125 0.000514 -1.37e+03 1e+06 0.0153 63.9 1.57e+03 Tracker muIoni - 32 -0.0128 0.000574 -1.35e+03 1e+06 0.0061 27.5 1.59e+03 Tracker muIoni - 33 -0.0139 0.0008 -1.25e+03 1e+06 0.0191 100 1.69e+03 Tracker StepLimiter - 34 -0.0149 0.00101 -1.15e+03 1e+06 0.0194 100 1.79e+03 Tracker StepLimiter - 35 -0.0151 0.00106 -1.12e+03 1e+06 0.00466 22.9 1.82e+03 Tracker muIoni - 36 -0.0158 0.00121 -1.06e+03 1e+06 0.0136 66.5 1.88e+03 Tracker muIoni - 37 -0.0169 0.00144 -956 1e+06 0.0194 100 1.98e+03 Tracker StepLimiter - 38 -0.0174 0.00157 -900 1e+06 0.0124 55.6 2.04e+03 Chamber Transportation - 39 -0.0195 0.00202 -700 1e+06 0.124 200 2.24e+03 Tracker Transportation - 40 -0.0205 0.00192 -600 1e+06 0.0238 100 2.34e+03 Tracker StepLimiter - 41 -0.0209 0.00187 -553 1e+06 0.00841 46.8 2.39e+03 Tracker muIoni - 42 -0.0213 0.00183 -518 1e+06 0.00488 35.3 2.42e+03 Tracker muIoni - 43 -0.0222 0.00169 -418 1e+06 0.0183 100 2.52e+03 Tracker StepLimiter - 44 -0.0233 0.00155 -318 1e+06 0.0185 100 2.62e+03 Tracker StepLimiter - 45 -0.0233 0.00155 -312 1e+06 0.00063 5.76 2.63e+03 Tracker muIoni - 46 -0.0234 0.00154 -308 1e+06 0.000831 3.86 2.63e+03 Tracker muIoni - 47 -0.0244 0.00139 -208 1e+06 0.0197 100 2.73e+03 Tracker StepLimiter - 48 -0.0252 0.00128 -130 1e+06 0.016 78.3 2.81e+03 Tracker muIoni - 49 -0.0255 0.00123 -100 1e+06 0.0052 30 2.84e+03 Chamber Transportation - 50 -0.0258 0.00118 -63.2 1e+06 0.0213 36.8 2.88e+03 Chamber muIoni - 51 -0.0261 0.00115 -35.7 1e+06 0.00694 27.5 2.9e+03 Chamber muIoni - 52 -0.0262 0.00115 -23.5 1e+06 0.00464 12.2 2.92e+03 Chamber muIoni - 53 -0.0273 0.00102 100 1e+06 0.0899 124 3.04e+03 Tracker Transportation - 54 -0.0283 0.000819 200 1e+06 0.023 100 3.14e+03 Tracker StepLimiter - 55 -0.0292 0.00062 300 1e+06 0.0157 100 3.24e+03 Tracker StepLimiter - 56 -0.0301 0.000434 400 1e+06 0.0169 100 3.34e+03 Tracker StepLimiter - 57 -0.0306 0.000324 455 1e+06 0.0132 54.6 3.39e+03 Tracker muIoni - 58 -0.0314 0.000147 549 1e+06 0.0143 94.3 3.49e+03 Tracker muIoni - 59 -0.0315 0.000127 559 1e+06 0.00089 10.4 3.5e+03 Tracker muIoni - 60 -0.0324 -7.09e-05 659 1e+06 0.0186 100 3.6e+03 Tracker StepLimiter - 61 -0.0328 -0.000155 700 1e+06 0.00569 40.8 3.64e+03 Chamber Transportation - 62 -0.0334 -0.000298 770 1e+06 0.0527 69.6 3.71e+03 Chamber muIoni - 63 -0.034 -0.000373 836 1e+06 0.0484 65.9 3.78e+03 Chamber muIoni - 64 -0.0346 -0.000527 900 1e+06 0.0335 64.4 3.84e+03 Tracker Transportation - 65 -0.035 -0.000641 946 1e+06 0.01 46.2 3.89e+03 Tracker muIoni - 66 -0.036 -0.000876 1.05e+03 1e+06 0.0209 100 3.99e+03 Tracker StepLimiter - 67 -0.0361 -0.000907 1.06e+03 1e+06 0.00257 12.5 4e+03 Tracker muIoni - 68 -0.0368 -0.00111 1.14e+03 1e+06 0.0166 80.6 4.08e+03 Tracker muIoni - 69 -0.037 -0.00118 1.17e+03 1e+06 0.00513 26.8 4.11e+03 Tracker muIoni - 70 -0.0375 -0.00132 1.22e+03 1e+06 0.0114 53.7 4.16e+03 Tracker muIoni - 71 -0.0384 -0.00155 1.31e+03 1e+06 0.0203 94.2 4.25e+03 Tracker muIoni - 72 -0.0384 -0.00156 1.32e+03 1e+06 0.000606 3.14 4.26e+03 Tracker muIoni - 73 -0.0392 -0.00178 1.41e+03 1e+06 0.0172 88.9 4.35e+03 Tracker muIoni - 74 -0.04 -0.00201 1.5e+03 1e+06 0.0161 94 4.44e+03 Chamber Transportation - 75 -0.0408 -0.00221 1.58e+03 1e+06 0.0706 84.1 4.52e+03 Chamber muIoni - 76 -0.0417 -0.00233 1.67e+03 1e+06 0.0759 90 4.61e+03 Chamber muPairProd - 77 -0.0419 -0.00233 1.7e+03 1e+06 0.0179 25.9 4.64e+03 Tracker Transportation - 78 -0.0423 -0.00235 1.74e+03 1e+06 0.00769 37.9 4.68e+03 Tracker muIoni - 79 -0.0424 -0.00236 1.75e+03 1e+06 0.00381 16 4.69e+03 Tracker muIoni - 80 -0.0426 -0.00238 1.77e+03 1e+06 0.00229 20 4.71e+03 Tracker muIoni - 81 -0.0429 -0.00239 1.81e+03 1e+06 0.00748 33.4 4.75e+03 Tracker muIoni - 82 -0.0438 -0.00246 1.91e+03 1e+06 0.0226 100 4.85e+03 Tracker StepLimiter - 83 -0.044 -0.00247 1.92e+03 1e+06 0.00283 16 4.86e+03 Tracker muIoni - 84 -0.0447 -0.00253 2e+03 1e+06 0.00938 77.2 4.94e+03 Tracker muIoni - 85 -0.0457 -0.00261 2.1e+03 1e+06 0.0194 100 5.04e+03 Tracker StepLimiter - 86 -0.046 -0.00264 2.14e+03 1e+06 0.00511 35.6 5.08e+03 Tracker muIoni - 87 -0.0469 -0.00271 2.23e+03 1e+06 0.0172 97.2 5.17e+03 Tracker muIoni - 88 -0.0475 -0.00276 2.3e+03 1e+06 0.011 65.1 5.24e+03 Tracker muIoni - 89 -0.0475 -0.00276 2.3e+03 1e+06 0.000802 2.31 5.24e+03 Tracker muIoni - 90 -0.0477 -0.00278 2.32e+03 1e+06 0.00587 22.7 5.26e+03 Tracker muIoni - 91 -0.0484 -0.00283 2.4e+03 1e+06 0.0142 74.5 5.34e+03 Tracker muIoni - 92 -0.0484 -0.00283 2.4e+03 1e+06 0.000878 2.2 5.34e+03 World Transportation - 93 -0.0488 -0.00286 2.44e+03 1e+06 0.0089 42.1 5.38e+03 World muIoni - 94 -0.0498 -0.00295 2.55e+03 1e+06 0.0202 113 5.49e+03 World muIoni - 95 -0.0503 -0.00298 2.6e+03 1e+06 0.00785 47.3 5.54e+03 World muIoni - 96 -0.0519 -0.00299 2.79e+03 1e+06 0.0392 185 5.73e+03 World muIoni - 97 -0.0532 -0.00297 2.93e+03 1e+06 0.0239 146 5.87e+03 World muIoni - 98 -0.0533 -0.00296 2.94e+03 1e+06 0.00103 7.57 5.88e+03 OutOfWorld Transportation + 1 0 0 -2.92e+03 1e+06 0.00466 20.7 20.7 World muIoni + 2 -3.17e-09 3.74e-07 -2.92e+03 1e+06 0.000418 4.11 24.8 World muIoni + 3 -6.7e-07 1.22e-05 -2.88e+03 1e+06 0.00541 37.6 62.4 World muIoni + 4 -1.32e-05 2.81e-05 -2.83e+03 1e+06 0.0086 45.6 108 World muIoni + 5 -1.63e-05 3.02e-05 -2.82e+03 1e+06 0.00197 8.36 116 World muIoni + 6 -1.74e-05 2.88e-05 -2.82e+03 1e+06 0.00122 6 122 World muIoni + 7 -4.5e-05 -9.13e-06 -2.67e+03 1e+06 0.0314 146 268 World muIoni + 8 -4.67e-05 -1.99e-05 -2.62e+03 1e+06 0.00686 48 316 World muIoni + 9 -6.36e-05 -4.72e-05 -2.51e+03 1e+06 0.0252 111 427 World muIoni + 10 -9.25e-05 -5.7e-05 -2.45e+03 1e+06 0.0122 59.6 487 World muIoni + 11 -9.42e-05 -5.73e-05 -2.45e+03 1e+06 0.000225 3.49 490 Target Transportation + 12 -0.000113 -5.9e-05 -2.42e+03 1e+06 49 34.4 524 Target muIoni + 13 -4.84e-05 -7.48e-05 -2.41e+03 1e+06 2.8 2.08 526 Target muIoni + 14 0.000546 -0.000262 -2.4e+03 1e+06 17.5 13.6 540 Tracker Transportation + 15 0.00299 -0.00102 -2.31e+03 1e+06 0.0152 88.5 629 Tracker muIoni + 16 0.00574 -0.00186 -2.21e+03 1e+06 0.0195 100 729 Tracker StepLimiter + 17 0.00771 -0.00248 -2.14e+03 1e+06 0.0163 70.9 799 Tracker muIoni + 18 0.00952 -0.00305 -2.08e+03 1e+06 0.011 65.1 865 Tracker muIoni + 19 0.00958 -0.00307 -2.07e+03 1e+06 0.000802 2.31 867 Tracker muIoni + 20 0.0102 -0.00327 -2.05e+03 1e+06 0.00587 22.7 890 Tracker muIoni + 21 0.0123 -0.00392 -1.98e+03 1e+06 0.0142 74.5 964 Tracker muIoni + 22 0.0135 -0.00431 -1.93e+03 1e+06 0.00824 44.3 1.01e+03 Tracker muIoni + 23 0.0163 -0.00521 -1.83e+03 1e+06 0.02 100 1.11e+03 Tracker StepLimiter + 24 0.0183 -0.00587 -1.76e+03 1e+06 0.0151 71.7 1.18e+03 Tracker muIoni + 25 0.0196 -0.00629 -1.71e+03 1e+06 0.00785 47.3 1.23e+03 Tracker muIoni + 26 0.0199 -0.0064 -1.7e+03 1e+06 0.00355 12.7 1.24e+03 Chamber Transportation + 27 0.0217 -0.00698 -1.64e+03 1e+06 0.0386 63.6 1.3e+03 Chamber muIoni + 28 0.0226 -0.00725 -1.6e+03 1e+06 0.0261 32.9 1.34e+03 Chamber muIoni + 29 0.0254 -0.00807 -1.51e+03 1e+06 0.0694 94.6 1.43e+03 Chamber muIoni + 30 0.0257 -0.00814 -1.5e+03 1e+06 0.00623 8.84 1.44e+03 Tracker Transportation + 31 0.0285 -0.00898 -1.4e+03 1e+06 0.0225 95.7 1.54e+03 Tracker muIoni + 32 0.0315 -0.00986 -1.3e+03 1e+06 0.0219 100 1.64e+03 Tracker StepLimiter + 33 0.0333 -0.0104 -1.24e+03 1e+06 0.0119 59.4 1.7e+03 Tracker muIoni + 34 0.0339 -0.0106 -1.22e+03 1e+06 0.00632 21.4 1.72e+03 Tracker muIoni + 35 0.034 -0.0106 -1.22e+03 1e+06 0.000455 3.18 1.72e+03 Tracker muIoni + 36 0.037 -0.0115 -1.12e+03 1e+06 0.023 100 1.82e+03 Tracker StepLimiter + 37 0.0373 -0.0115 -1.11e+03 1e+06 0.00142 9.84 1.83e+03 Tracker muIoni + 38 0.0386 -0.0119 -1.07e+03 1e+06 0.00987 43.1 1.87e+03 Tracker muIoni + 39 0.04 -0.0123 -1.02e+03 1e+06 0.00884 46.9 1.92e+03 Tracker muIoni + 40 0.043 -0.0133 -920 1e+06 0.0169 100 2.02e+03 Tracker StepLimiter + 41 0.0436 -0.0134 -900 1e+06 0.0048 20.4 2.04e+03 Chamber Transportation + 42 0.0496 -0.0153 -700 1e+06 0.139 200 2.24e+03 Chamber muIoni + 43 0.0496 -0.0153 -700 1e+06 0 0.0143 2.24e+03 Tracker Transportation + 44 0.0505 -0.0156 -669 1e+06 0.00659 31 2.27e+03 Tracker muIoni + 45 0.052 -0.0162 -619 1e+06 0.00886 50.3 2.32e+03 Tracker muIoni + 46 0.055 -0.0173 -519 1e+06 0.016 100 2.42e+03 Tracker StepLimiter + 47 0.0579 -0.0184 -419 1e+06 0.0176 100 2.52e+03 Tracker StepLimiter + 48 0.0598 -0.0191 -357 1e+06 0.0125 62 2.58e+03 Tracker muIoni + 49 0.0628 -0.0202 -257 1e+06 0.0193 100 2.68e+03 Tracker StepLimiter + 50 0.0643 -0.0208 -204 1e+06 0.00969 52.2 2.74e+03 Tracker muIoni + 51 0.0673 -0.0219 -104 1e+06 0.0175 100 2.84e+03 Tracker StepLimiter + 52 0.0674 -0.0219 -100 1e+06 0.000788 4.42 2.84e+03 Chamber Transportation + 53 0.0676 -0.022 -93.3 1e+06 0.00293 6.69 2.85e+03 Chamber muIoni + 54 0.0686 -0.0224 -58.7 1e+06 0.0292 34.6 2.88e+03 Chamber muIoni + 55 0.0689 -0.0224 -51.1 1e+06 0.00263 7.58 2.89e+03 Chamber muIoni + 56 0.0695 -0.0227 -29.1 1e+06 0.0216 22 2.91e+03 Chamber muIoni + 57 0.0703 -0.023 -2.4 1e+06 0.0195 26.7 2.94e+03 Chamber muIoni + 58 0.0705 -0.0231 4.94 1e+06 0.00277 7.34 2.94e+03 Chamber muIoni + 59 0.0709 -0.0232 18.4 1e+06 0.0118 13.5 2.96e+03 Chamber muIoni + 60 0.0711 -0.0233 24.7 1e+06 0.00519 6.26 2.96e+03 Chamber muIoni + 61 0.0713 -0.0234 33.6 1e+06 0.00462 8.9 2.97e+03 Chamber muIoni + 62 0.0728 -0.024 84.9 1e+06 0.0277 51.3 3.02e+03 Chamber muIoni + 63 0.0728 -0.024 87 1e+06 0.00126 2.11 3.03e+03 Chamber muIoni + 64 0.0732 -0.0241 100 1e+06 0.00671 13 3.04e+03 Tracker Transportation + 65 0.076 -0.0252 200 1e+06 0.0216 100 3.14e+03 Tracker StepLimiter + 66 0.0789 -0.0263 300 1e+06 0.0192 100 3.24e+03 Tracker StepLimiter + 67 0.0817 -0.0274 400 1e+06 0.0163 100 3.34e+03 Tracker StepLimiter + 68 0.0846 -0.0284 500 1e+06 0.0194 100 3.44e+03 Tracker StepLimiter + 69 0.0874 -0.0295 600 1e+06 0.0212 100 3.54e+03 Tracker StepLimiter + 70 0.0876 -0.0296 608 1e+06 0.00247 8.24 3.55e+03 Tracker muIoni + 71 0.0902 -0.0306 700 1e+06 0.0165 91.8 3.64e+03 Chamber Transportation + 72 0.0905 -0.0307 711 1e+06 0.012 11.5 3.65e+03 Chamber muIoni + 73 0.0913 -0.031 738 1e+06 0.0171 26.9 3.68e+03 Chamber muIoni + 74 0.0936 -0.0319 822 1e+06 0.0547 84 3.76e+03 Chamber muIoni + 75 0.0944 -0.0322 851 1e+06 0.0169 28.8 3.79e+03 Chamber muIoni + 76 0.0948 -0.0323 865 1e+06 0.00775 14.2 3.81e+03 Chamber muIoni + 77 0.0957 -0.0326 896 1e+06 0.019 30.3 3.84e+03 Chamber muIoni + 78 0.0958 -0.0327 900 1e+06 0.00565 4.31 3.84e+03 Tracker Transportation + 79 0.0985 -0.0337 1e+03 1e+06 0.0214 100 3.94e+03 Tracker StepLimiter + 80 0.0999 -0.0342 1.05e+03 1e+06 0.01 49.3 3.99e+03 Tracker muIoni + 81 0.103 -0.0352 1.15e+03 1e+06 0.0202 100 4.09e+03 Tracker StepLimiter + 82 0.105 -0.0361 1.25e+03 1e+06 0.0218 100 4.19e+03 Tracker StepLimiter + 83 0.108 -0.0371 1.35e+03 1e+06 0.0212 100 4.29e+03 Tracker StepLimiter + 84 0.109 -0.0374 1.38e+03 1e+06 0.00485 27 4.32e+03 Tracker muIoni + 85 0.111 -0.0384 1.47e+03 1e+06 0.0168 95.2 4.41e+03 Tracker muIoni + 86 0.112 -0.0387 1.5e+03 1e+06 0.00536 28.6 4.44e+03 Chamber Transportation + 87 0.113 -0.0389 1.52e+03 1e+06 0.0161 24.4 4.46e+03 Chamber muIoni + 88 0.113 -0.039 1.53e+03 1e+06 0.00536 9.97 4.47e+03 Chamber muIoni + 89 0.114 -0.0394 1.58e+03 1e+06 0.0316 42.5 4.52e+03 Chamber muIoni + 90 0.117 -0.0404 1.68e+03 1e+06 0.0618 99.1 4.62e+03 Chamber muIoni + 91 0.118 -0.0406 1.7e+03 1e+06 0.0179 21.2 4.64e+03 Chamber muIoni + 92 0.118 -0.0407 1.7e+03 1e+06 0.00182 2.67 4.64e+03 Tracker Transportation + 93 0.118 -0.0407 1.7e+03 1e+06 0 0.152 4.64e+03 Tracker muIoni + 94 0.118 -0.0408 1.71e+03 1e+06 0.00157 11.3 4.65e+03 Tracker muIoni + 95 0.119 -0.0412 1.75e+03 1e+06 0.00952 43.1 4.69e+03 Tracker muIoni + 96 0.122 -0.0423 1.85e+03 1e+06 0.0241 100 4.79e+03 Tracker StepLimiter + 97 0.122 -0.0425 1.87e+03 1e+06 0.00341 19.1 4.81e+03 Tracker muIoni + 98 0.125 -0.0436 1.97e+03 1e+06 0.0183 100 4.91e+03 Tracker StepLimiter + 99 0.127 -0.0445 2.05e+03 1e+06 0.0113 78.7 4.99e+03 Tracker muIoni + 100 0.13 -0.0455 2.15e+03 1e+06 0.0198 96.4 5.09e+03 Tracker muIoni + 101 0.131 -0.0461 2.21e+03 1e+06 0.0129 58.9 5.15e+03 Tracker muIoni + 102 0.131 -0.0462 2.21e+03 1e+06 0.000765 7.17 5.15e+03 Tracker muIoni + 103 0.132 -0.0464 2.24e+03 1e+06 0.00575 22.7 5.18e+03 Tracker muIoni + 104 0.134 -0.0471 2.31e+03 1e+06 0.0158 69.4 5.25e+03 Tracker muIoni + 105 0.135 -0.0478 2.37e+03 1e+06 0.0124 62.1 5.31e+03 Tracker muIoni + 106 0.136 -0.0482 2.4e+03 1e+06 0.00714 31 5.34e+03 World Transportation + 107 0.138 -0.0492 2.49e+03 1e+06 0.0197 91.5 5.43e+03 World muIoni + 108 0.14 -0.0498 2.55e+03 1e+06 0.0116 58.3 5.49e+03 World muIoni + 109 0.143 -0.0511 2.66e+03 1e+06 0.0245 115 5.6e+03 World muIoni + 110 0.144 -0.0515 2.7e+03 1e+06 0.00718 37 5.64e+03 World muIoni + 111 0.15 -0.0541 2.94e+03 1e+06 0.0511 239 5.88e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 0.144 -0.0515 2.7e+03 0.0479 0 0 0 World initStep + 1 -8.63 2.41 2.7e+03 0.0422 0.00574 11 11 World eIoni + 2 -13.7 -2.03 2.7e+03 0.0366 0.00556 9.03 20 World eIoni + 3 -13.4 -2.94 2.7e+03 0.0344 0.000646 1.01 21 World eIoni + 4 -12.3 -8.29 2.7e+03 0.0286 0.00582 6.7 27.7 World eIoni + 5 -14.5 -10 2.7e+03 0.0237 0.00335 4.49 32.2 World eIoni + 6 -15 -10.2 2.7e+03 0.0184 0.00032 0.535 32.7 World eIoni + 7 -16.4 -11.2 2.7e+03 0.0114 0.00694 3.13 35.9 World eIoni + 8 -16.5 -11.1 2.7e+03 0.00804 0.000368 0.179 36 World eIoni + 9 -16.9 -10.5 2.7e+03 0.00409 0.00394 1.51 37.6 World eIoni + 10 -17.1 -10.6 2.7e+03 0 0.00409 0.539 38.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.5 -11.1 2.7e+03 0.00304 0 0 0 World initStep + 1 -16.6 -11.1 2.7e+03 0 0.00304 0.322 0.322 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15 -10.2 2.7e+03 0.00497 0 0 0 World initStep + 1 -15.2 -10.1 2.7e+03 0.00145 0.00352 0.672 0.672 World eIoni + 2 -15.3 -10.1 2.7e+03 0 0.00145 0.0984 0.77 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.5 -10 2.7e+03 0.00155 0 0 0 World initStep + 1 -14.5 -10.1 2.7e+03 0 0.00155 0.109 0.109 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.4 -2.94 2.7e+03 0.00161 0 0 0 World initStep + 1 -13.4 -2.92 2.7e+03 0 0.00161 0.115 0.115 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 0.143 -0.0511 2.66e+03 0.00146 0 0 0 World initStep + 1 0.115 -0.0827 2.66e+03 0 0.00146 0.099 0.099 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 0.14 -0.0498 2.55e+03 0.00106 0 0 0 World initStep + 1 0.131 -0.0733 2.55e+03 0 0.00106 0.0617 0.0617 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 0.138 -0.0492 2.49e+03 0.00219 0 0 0 World initStep + 1 0.072 -0.0967 2.49e+03 0 0.00219 0.187 0.187 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 0.135 -0.0478 2.37e+03 0.00125 0 0 0 Tracker initStep + 1 0.119 -0.0762 2.37e+03 0 0.00125 0.0786 0.0786 Tracker 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 0.134 -0.0471 2.31e+03 0.012 0 0 0 Tracker initStep + 1 1.37 0.595 2.31e+03 0.00785 0.00413 2.13 2.13 Tracker eIoni + 2 1.59 0.0689 2.31e+03 0.0022 0.00565 1.48 3.61 Tracker eIoni + 3 1.57 -0.0105 2.31e+03 0 0.0022 0.189 3.8 Tracker 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 0.132 -0.0464 2.24e+03 0.00203 0 0 0 Tracker initStep + 1 0.198 -0.0743 2.24e+03 0 0.00203 0.165 0.165 Tracker 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 0.131 -0.0462 2.21e+03 0.00181 0 0 0 Tracker initStep + 1 0.133 -0.106 2.21e+03 0 0.00181 0.139 0.139 Tracker 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 0.131 -0.0461 2.21e+03 0.00304 0 0 0 Tracker initStep + 1 -0.00714 -0.0101 2.21e+03 0 0.00304 0.322 0.322 Tracker 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 0.13 -0.0455 2.15e+03 0.00206 0 0 0 Tracker initStep + 1 0.181 -0.099 2.15e+03 0 0.00206 0.17 0.17 Tracker 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 -0.0532 -0.00297 2.93e+03 0.00132 0 0 0 World initStep - 1 -0.0184 -0.0121 2.93e+03 0 0.00132 0.0858 0.0858 World eIoni + 0 0.127 -0.0445 2.05e+03 0.00458 0 0 0 Tracker initStep + 1 0.0638 -0.33 2.05e+03 0 0.00458 0.657 0.657 Tracker 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 -0.0519 -0.00299 2.79e+03 0.0012 0 0 0 World initStep - 1 -0.0714 0.021 2.79e+03 0 0.0012 0.0745 0.0745 World eIoni + 0 0.122 -0.0425 1.87e+03 0.0011 0 0 0 Tracker initStep + 1 0.146 -0.0304 1.87e+03 0 0.0011 0.0654 0.0654 Tracker 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 -0.0503 -0.00298 2.6e+03 0.00126 0 0 0 World initStep - 1 -0.0799 0.0123 2.6e+03 0 0.00126 0.0801 0.0801 World eIoni + 0 0.119 -0.0412 1.75e+03 0.0114 0 0 0 Tracker initStep + 1 1.41 0.164 1.75e+03 0.00636 0.00502 2.04 2.04 Tracker eIoni + 2 1.04 -0.115 1.75e+03 0 0.00636 1.16 3.2 Tracker 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 -0.0498 -0.00295 2.55e+03 0.00184 0 0 0 World initStep - 1 -0.0593 0.0575 2.55e+03 0 0.00184 0.142 0.142 World eIoni + 0 0.118 -0.0408 1.71e+03 0.0573 0 0 0 Tracker initStep + 1 -8.26 8.63 1.72e+03 0.0494 0.0079 14.5 14.5 Tracker eIoni + 2 -13.5 17.3 1.72e+03 0.0446 0.00476 11.5 26 Tracker eIoni + 3 -11.1 22.3 1.71e+03 0.0397 0.00273 6.99 33 Tracker eIoni + 4 -6.94 24.7 1.71e+03 0.035 0.00364 5.22 38.2 Tracker eIoni + 5 -1.19 26.9 1.71e+03 0.031 0.00398 6.86 45.1 Tracker eIoni + 6 0.366 27.3 1.71e+03 0.0198 0.00167 2.2 47.3 Tracker eIoni + 7 2.9 27.3 1.71e+03 0.0149 0.00499 3.39 50.7 Tracker eIoni + 8 4.25 26.4 1.71e+03 0.00925 0.0056 2.56 53.2 Tracker eIoni + 9 4.78 25.7 1.71e+03 0.00607 0.00319 1.72 55 Tracker eIoni + 10 5.11 25.6 1.71e+03 0.00183 0.00424 1.08 56 Tracker eIoni + 11 5.15 25.7 1.71e+03 0 0.00183 0.141 56.2 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.366 27.3 1.71e+03 0.00949 0 0 0 Tracker initStep + 1 0.166 27.3 1.71e+03 0.00392 0.00185 1.06 1.06 Tracker eIoni + 2 0.00141 27.2 1.71e+03 0 0.00392 0.5 1.56 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.166 27.3 1.71e+03 0.00372 0 0 0 Tracker initStep + 1 0.138 27.4 1.71e+03 0 0.00372 0.456 0.456 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -6.94 24.7 1.71e+03 0.00112 0 0 0 Tracker initStep + 1 -6.95 24.7 1.71e+03 0 0.00112 0.0668 0.0668 Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.1 22.3 1.71e+03 0.00214 0 0 0 Tracker initStep + 1 -11.1 22.3 1.71e+03 0 0.00214 0.181 0.181 Tracker 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 -0.0488 -0.00286 2.44e+03 0.00369 0 0 0 World initStep - 1 -0.235 0.0698 2.44e+03 0 0.00369 0.451 0.451 World eIoni + 0 0.118 -0.0407 1.7e+03 0.0019 0 0 0 Tracker initStep + 1 0.144 -0.12 1.7e+03 0.00151 0.000382 0.0915 0.0915 Tracker msc + 2 0.15 -0.126 1.7e+03 0 0.00151 0.105 0.197 Tracker 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 -0.0484 -0.00283 2.4e+03 0.00112 0 0 0 Tracker initStep - 1 -0.0724 0.0104 2.4e+03 0 0.00112 0.0669 0.0669 Tracker eIoni + 0 0.118 -0.0406 1.7e+03 0.00767 0 0 0 Chamber initStep + 1 0.14 -0.125 1.7e+03 0 0.00767 0.785 0.785 Chamber 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 -0.0477 -0.00278 2.32e+03 0.00256 0 0 0 Tracker initStep - 1 -0.0127 0.0978 2.32e+03 0 0.00256 0.242 0.242 Tracker eIoni + 0 0.117 -0.0404 1.68e+03 0.00189 0 0 0 Chamber initStep + 1 0.128 -0.0466 1.68e+03 0 0.00189 0.096 0.096 Chamber 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 -0.0475 -0.00276 2.3e+03 0.00113 0 0 0 Tracker initStep - 1 -0.0197 0.00109 2.3e+03 0 0.00113 0.0683 0.0683 Tracker eIoni + 0 0.114 -0.0394 1.58e+03 0.00896 0 0 0 Chamber initStep + 1 0.046 0.0468 1.58e+03 0 0.00896 1.02 1.02 Chamber 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 -0.0475 -0.00276 2.3e+03 0.00688 0 0 0 Tracker initStep - 1 -0.406 0.48 2.3e+03 0.00181 0.00507 1.28 1.28 Tracker eIoni - 2 -0.434 0.474 2.3e+03 0 0.00181 0.138 1.42 Tracker eIoni + 0 0.113 -0.039 1.53e+03 0.0714 0 0 0 Chamber initStep + 1 0.678 -2.79 1.54e+03 0.0621 0.00931 9.13 9.13 Chamber eIoni + 2 0.78 -2.75 1.54e+03 0.0544 4.11e-05 0.141 9.27 Chamber eIoni + 3 1.95 -3.03 1.53e+03 0.0478 0.00504 5.25 14.5 Chamber eIoni + 4 1.88 -3.48 1.53e+03 0.0415 0.00633 5.29 19.8 Chamber eIoni + 5 2.49 -3.4 1.53e+03 0.0369 0.00181 1.43 21.2 Chamber eIoni + 6 3.23 -2.86 1.53e+03 0.0309 0.00604 3.91 25.1 Chamber eIoni + 7 3.44 -2.62 1.53e+03 0.0237 0.00724 3.24 28.4 Chamber eIoni + 8 3 -2.79 1.53e+03 0.0207 0.00293 2.54 30.9 Chamber eIoni + 9 3.35 -2.71 1.53e+03 0.017 0.00229 0.847 31.8 Chamber eIoni + 10 3.32 -2.42 1.53e+03 0.00719 0.00984 1.95 33.7 Chamber eIoni + 11 3.33 -2.45 1.53e+03 0 0.00719 0.644 34.4 Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 60 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 3.35 -2.71 1.53e+03 0.00139 0 0 0 Chamber initStep + 1 3.35 -2.71 1.53e+03 0 0.00139 0.0635 0.0635 Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 60 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.49 -3.4 1.53e+03 0.00271 0 0 0 Chamber initStep + 1 2.48 -3.4 1.53e+03 0 0.00271 0.158 0.158 Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 60 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.95 -3.03 1.53e+03 0.00156 0 0 0 Chamber initStep + 1 1.95 -3.02 1.53e+03 0 0.00156 0.074 0.074 Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 60 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.78 -2.75 1.54e+03 0.00771 0 0 0 Chamber initStep + 1 0.746 -2.69 1.54e+03 0 0.00771 0.792 0.792 Chamber 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 -0.0469 -0.00271 2.23e+03 0.00131 0 0 0 Tracker initStep - 1 -0.0298 0.0286 2.23e+03 0 0.00131 0.085 0.085 Tracker eIoni + 0 0.113 -0.0389 1.52e+03 0.00505 0 0 0 Chamber initStep + 1 0.0747 -0.0679 1.52e+03 0 0.00505 0.401 0.401 Chamber 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 -0.046 -0.00264 2.14e+03 0.00113 0 0 0 Tracker initStep - 1 -0.0362 -0.0286 2.14e+03 0 0.00113 0.0676 0.0676 Tracker eIoni + 0 0.111 -0.0384 1.47e+03 0.00348 0 0 0 Tracker initStep + 1 0.268 0.0512 1.47e+03 0 0.00348 0.406 0.406 Tracker 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 -0.0447 -0.00253 2e+03 0.00985 0 0 0 Tracker initStep - 1 -0.671 -0.868 2e+03 0.00558 0.00427 1.81 1.81 Tracker eIoni - 2 -0.845 -1.22 2e+03 0 0.00558 0.931 2.74 Tracker eIoni + 0 0.109 -0.0374 1.38e+03 0.00151 0 0 0 Tracker initStep + 1 0.144 -0.0105 1.38e+03 0 0.00151 0.104 0.104 Tracker 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 -0.044 -0.00247 1.92e+03 0.00247 0 0 0 Tracker initStep - 1 -0.142 -0.0223 1.92e+03 0 0.00247 0.227 0.227 Tracker eIoni + 0 0.0999 -0.0342 1.05e+03 0.00388 0 0 0 Tracker initStep + 1 0.308 -0.0976 1.05e+03 0 0.00388 0.49 0.49 Tracker 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 -0.0429 -0.00239 1.81e+03 0.00183 0 0 0 Tracker initStep - 1 -0.0322 0.0575 1.81e+03 0 0.00183 0.141 0.141 Tracker eIoni + 0 0.0957 -0.0326 896 0.00194 0 0 0 Chamber initStep + 1 0.0917 -0.0449 896 0 0.00194 0.0999 0.0999 Chamber 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 -0.0426 -0.00238 1.77e+03 0.00111 0 0 0 Tracker initStep - 1 -0.0537 -0.0272 1.77e+03 0 0.00111 0.0664 0.0664 Tracker eIoni + 0 0.0948 -0.0323 865 0.00241 0 0 0 Chamber initStep + 1 0.0917 -0.0154 865 0 0.00241 0.135 0.135 Chamber 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 -0.0424 -0.00236 1.75e+03 0.0047 0 0 0 Tracker initStep - 1 0.11 0.263 1.75e+03 0 0.0047 0.687 0.687 Tracker eIoni + 0 0.0944 -0.0322 851 0.0194 0 0 0 Chamber initStep + 1 -0.184 -0.27 851 0.0132 0.00628 2.16 2.16 Chamber eIoni + 2 -0.324 -0.146 851 0 0.0132 1.58 3.74 Chamber 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 -0.0423 -0.00235 1.74e+03 0.00109 0 0 0 Tracker initStep - 1 -0.0685 0.000963 1.74e+03 0 0.00109 0.0646 0.0646 Tracker eIoni + 0 0.0936 -0.0319 822 0.00161 0 0 0 Chamber initStep + 1 0.104 -0.0292 822 0 0.00161 0.0774 0.0774 Chamber 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 0.0913 -0.031 738 0.00162 0 0 0 Chamber initStep + 1 0.101 -0.0357 738 0 0.00162 0.0778 0.0778 Chamber 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 -0.0417 -0.00233 1.67e+03 46.9 0 0 0 Chamber initStep - 1 -0.0417 -0.00219 1.67e+03 46.9 0.00048 0.451 0.451 Chamber eIoni - 2 0.0241 -0.0612 1.7e+03 46.9 0.0102 25.4 25.9 Tracker Transportation - 3 1.16 -3.74 1.8e+03 46.9 0.018 100 126 Tracker StepLimiter - 4 2.28 -6.78 1.9e+03 46.9 0.0231 100 226 Tracker StepLimiter - 5 2.57 -7.73 1.93e+03 46.9 0.00267 26.1 252 Tracker eIoni - 6 3.71 -11.9 2.03e+03 46.9 0.0181 100 352 Tracker StepLimiter - 7 4.85 -15.4 2.11e+03 46.3 0.0215 87.8 440 Tracker eIoni - 8 4.87 -17.3 2.15e+03 46.3 0.00627 41.2 481 Tracker eIoni - 9 4.8 -21.2 2.25e+03 46.3 0.0199 100 581 Tracker StepLimiter - 10 4.65 -21.9 2.27e+03 46.3 0.00298 18.8 600 Tracker eIoni - 11 3.72 -26.3 2.37e+03 46.3 0.0154 100 700 Tracker StepLimiter - 12 3.47 -27.5 2.4e+03 46.3 0.00459 26.7 726 World Transportation - 13 -3.62 -51.9 2.83e+03 46.2 0.0762 433 1.16e+03 World eIoni - 14 -4.04 -54.9 2.9e+03 46.2 0.00981 71 1.23e+03 World eIoni - 15 -4.46 -56.6 2.94e+03 46.2 0.0056 36.9 1.27e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.04 -54.9 2.9e+03 0.00158 0 0 0 World initStep - 1 -4.07 -54.9 2.9e+03 0 0.00158 0.112 0.112 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.62 -51.9 2.83e+03 0.00277 0 0 0 World initStep - 1 -3.54 -52 2.83e+03 0 0.00277 0.276 0.276 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.65 -21.9 2.27e+03 0.00542 0 0 0 Tracker initStep - 1 5.03 -21.8 2.27e+03 0 0.00542 0.883 0.883 Tracker eIoni - -********************************************************************************************************* -* 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 4.87 -17.3 2.15e+03 0.00151 0 0 0 Tracker initStep - 1 4.91 -17.3 2.15e+03 0 0.00151 0.105 0.105 Tracker eIoni - -********************************************************************************************************* -* 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 4.85 -15.4 2.11e+03 0.501 0 0 0 Tracker initStep - 1 72.8 20.8 2.15e+03 0.48 0.0141 85.2 85.2 Tracker eIoni - 2 141 74.2 2.2e+03 0.468 0.012 100 185 Tracker StepLimiter - 3 196 125 2.25e+03 0.37 0.0156 92.5 278 Tracker eIoni - 4 233 146 2.33e+03 0.354 0.016 100 378 Tracker StepLimiter - 5 252 156 2.36e+03 0.341 0.00635 34.1 412 Tracker eIoni - 6 280 180 2.4e+03 0.332 0.00852 55.6 467 World Transportation - 7 282 182 2.4e+03 0.329 0.00136 4.77 472 World eIoni - 8 302 259 2.58e+03 0.247 0.0416 212 684 World eIoni - 9 309 266 2.58e+03 0.242 0.00116 10.1 694 World eIoni - 10 327 280 2.59e+03 0.233 0.00529 24.1 718 World eIoni - 11 385 300 2.61e+03 0.218 0.0131 66.1 784 World eIoni - 12 390 303 2.61e+03 0.216 0.000886 5.27 789 World eIoni - 13 472 381 2.62e+03 0.182 0.0286 126 915 World eIoni - 14 493 384 2.6e+03 0.175 0.00625 30.9 946 World eIoni - 15 543 398 2.59e+03 0.156 0.0168 55.4 1e+03 World eIoni - 16 565 413 2.59e+03 0.141 0.00802 27.4 1.03e+03 World eIoni - 17 590 461 2.56e+03 0.123 0.018 65 1.09e+03 World eIoni - 18 606 495 2.54e+03 0.107 0.0154 44.5 1.14e+03 World eIoni - 19 638 517 2.54e+03 0.0971 0.0099 40.8 1.18e+03 World eIoni - 20 640 517 2.53e+03 0.0934 0.0021 8.88 1.19e+03 World eIoni - 21 646 514 2.5e+03 0.083 0.00804 26.9 1.21e+03 World eIoni - 22 625 520 2.49e+03 0.073 0.00995 26.7 1.24e+03 World eIoni - 23 617 520 2.48e+03 0.0654 0.0065 13.7 1.26e+03 World eIoni - 24 618 523 2.47e+03 0.0567 0.00454 7.59 1.26e+03 World eIoni - 25 622 528 2.46e+03 0.051 0.00572 14.3 1.28e+03 World eIoni - 26 629 533 2.46e+03 0.0414 0.0096 12.1 1.29e+03 World eIoni - 27 636 536 2.46e+03 0.0356 0.00575 8.77 1.3e+03 World eIoni - 28 639 541 2.46e+03 0.03 0.00567 7.04 1.3e+03 World eIoni - 29 640 541 2.46e+03 0.0271 0.00061 1.11 1.31e+03 World eIoni - 30 643 544 2.46e+03 0.0213 0.0058 4.87 1.31e+03 World eIoni - 31 643 546 2.46e+03 0.0151 0.00621 3.66 1.31e+03 World eIoni - 32 644 546 2.46e+03 0.0112 0.00385 2.59 1.32e+03 World eIoni - 33 645 546 2.46e+03 0.00803 0.00192 1.34 1.32e+03 World eIoni - 34 645 547 2.46e+03 0 0.00803 1.51 1.32e+03 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 645 546 2.46e+03 0.00129 0 0 0 World initStep - 1 645 546 2.46e+03 0 0.00129 0.0826 0.0826 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 640 541 2.46e+03 0.00225 0 0 0 World initStep - 1 640 541 2.46e+03 0 0.00225 0.196 0.196 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 618 523 2.47e+03 0.00419 0 0 0 World initStep - 1 618 523 2.47e+03 0 0.00419 0.562 0.562 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 617 520 2.48e+03 0.00112 0 0 0 World initStep - 1 617 520 2.48e+03 0 0.00112 0.0669 0.0669 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 646 514 2.5e+03 0.00233 0 0 0 World initStep - 1 646 514 2.5e+03 0 0.00233 0.207 0.207 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 640 517 2.53e+03 0.00159 0 0 0 World initStep - 1 640 517 2.53e+03 0 0.00159 0.113 0.113 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 606 495 2.54e+03 0.00105 0 0 0 World initStep - 1 606 495 2.54e+03 0 0.00105 0.0612 0.0612 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 565 413 2.59e+03 0.00629 0 0 0 World initStep - 1 565 413 2.59e+03 0.00165 0.00464 1.14 1.14 World eIoni - 2 565 413 2.59e+03 0 0.00165 0.12 1.26 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 543 398 2.59e+03 0.00206 0 0 0 World initStep - 1 543 398 2.59e+03 0 0.00206 0.169 0.169 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 493 384 2.6e+03 0.00112 0 0 0 World initStep - 1 493 384 2.6e+03 0 0.00112 0.0675 0.0675 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 472 381 2.62e+03 0.0052 0 0 0 World initStep - 1 472 381 2.62e+03 0 0.0052 0.821 0.821 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 390 303 2.61e+03 0.00171 0 0 0 World initStep - 1 390 303 2.61e+03 0 0.00171 0.127 0.127 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 385 300 2.61e+03 0.00185 0 0 0 World initStep - 1 386 300 2.61e+03 0 0.00185 0.143 0.143 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 327 280 2.59e+03 0.00323 0 0 0 World initStep - 1 327 280 2.59e+03 0 0.00323 0.357 0.357 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 309 266 2.58e+03 0.00432 0 0 0 World initStep - 1 309 266 2.58e+03 0.00144 0.00185 0.471 0.471 World eIoni - 2 309 266 2.58e+03 0 0.00144 0.0975 0.569 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 81 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 309 266 2.58e+03 0.00103 0 0 0 World initStep - 1 309 266 2.58e+03 0 0.00103 0.0599 0.0599 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 302 259 2.58e+03 0.0402 0 0 0 World initStep - 1 299 262 2.59e+03 0.0335 0.00669 8.39 8.39 World eIoni - 2 297 266 2.59e+03 0.0276 0.00592 6.45 14.8 World eIoni - 3 295 268 2.59e+03 0.0233 0.00421 4.97 19.8 World eIoni - 4 295 271 2.59e+03 0.0191 0.00245 2.82 22.6 World eIoni - 5 295 272 2.59e+03 0.0144 0.00477 3.26 25.9 World eIoni - 6 295 274 2.59e+03 0.0107 0.00367 2.48 28.4 World eIoni - 7 295 275 2.59e+03 0.00577 0.00491 1.94 30.3 World eIoni - 8 295 275 2.59e+03 0 0.00577 0.99 31.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 80 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 295 271 2.59e+03 0.00176 0 0 0 World initStep - 1 295 271 2.59e+03 0 0.00176 0.132 0.132 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 282 182 2.4e+03 0.00181 0 0 0 World initStep - 1 282 182 2.4e+03 0 0.00181 0.138 0.138 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 252 156 2.36e+03 0.00648 0 0 0 Tracker initStep - 1 252 156 2.36e+03 0 0.00648 1.18 1.18 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 196 125 2.25e+03 0.0826 0 0 0 Tracker initStep - 1 198 148 2.25e+03 0.0732 0.00941 26.5 26.5 Tracker eIoni - 2 198 148 2.25e+03 0.0706 0.000257 0.646 27.2 Tracker eIoni - 3 191 160 2.25e+03 0.0614 0.00778 15.9 43 Tracker eIoni - 4 191 160 2.25e+03 0.0574 0.000453 0.787 43.8 Tracker eIoni - 5 187 166 2.25e+03 0.0529 0.00337 7.21 51 Tracker eIoni - 6 182 168 2.24e+03 0.047 0.00589 12.8 63.8 Tracker eIoni - 7 176 169 2.24e+03 0.0398 0.00522 7.1 70.9 Tracker eIoni - 8 172 165 2.23e+03 0.0309 0.0089 8.29 79.2 Tracker eIoni - 9 169 161 2.23e+03 0.0262 0.00469 5.79 85 Tracker eIoni - 10 167 158 2.23e+03 0.0218 0.00445 4.68 89.7 Tracker eIoni - 11 166 156 2.23e+03 0.0181 0.00373 3.75 93.5 Tracker eIoni - 12 164 155 2.23e+03 0.0147 0.00225 2.86 96.3 Tracker eIoni - 13 163 154 2.23e+03 0.0101 0.00459 2.54 98.8 Tracker eIoni - 14 164 154 2.23e+03 0.00509 0.00506 1.86 101 Tracker eIoni - 15 164 154 2.23e+03 0.00273 0.00078 0.285 101 Tracker eIoni - 16 164 154 2.23e+03 0 0.00273 0.269 101 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 164 154 2.23e+03 0.00158 0 0 0 Tracker initStep - 1 164 154 2.23e+03 0 0.00158 0.112 0.112 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 164 155 2.23e+03 0.00108 0 0 0 Tracker initStep - 1 164 155 2.23e+03 0 0.00108 0.0637 0.0637 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 176 169 2.24e+03 0.00196 0 0 0 Tracker initStep - 1 176 169 2.24e+03 0 0.00196 0.157 0.157 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 187 166 2.25e+03 0.00115 0 0 0 Tracker initStep - 1 187 166 2.25e+03 0 0.00115 0.0696 0.0696 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 191 160 2.25e+03 0.00354 0 0 0 Tracker initStep - 1 190 160 2.25e+03 0 0.00354 0.418 0.418 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 191 160 2.25e+03 0.00145 0 0 0 Tracker initStep - 1 191 160 2.25e+03 0 0.00145 0.0985 0.0985 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 198 148 2.25e+03 0.00231 0 0 0 Tracker initStep - 1 198 148 2.25e+03 0 0.00231 0.204 0.204 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 72.8 20.8 2.15e+03 0.00731 0 0 0 Tracker initStep - 1 73.3 20.6 2.15e+03 0.00367 0.00221 0.877 0.877 Tracker eIoni - 2 73.4 20.7 2.15e+03 0 0.00367 0.445 1.32 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 76 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 73.3 20.6 2.15e+03 0.00143 0 0 0 Tracker initStep - 1 73.3 20.6 2.15e+03 0 0.00143 0.0963 0.0963 Tracker eIoni - -********************************************************************************************************* -* 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 2.57 -7.73 1.93e+03 0.00108 0 0 0 Tracker initStep - 1 2.55 -7.71 1.93e+03 0 0.00108 0.0636 0.0636 Tracker eIoni - -********************************************************************************************************* -* 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 -0.0417 -0.00219 1.67e+03 0.00758 0 0 0 Chamber initStep - 1 -0.0935 0.0624 1.67e+03 0.0033 0.00206 0.241 0.241 Chamber eIoni - 2 -0.0766 0.0828 1.67e+03 0 0.0033 0.209 0.45 Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 69 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0935 0.0624 1.67e+03 0.00222 0 0 0 Chamber initStep - 1 -0.0868 0.0568 1.67e+03 0 0.00222 0.12 0.12 Chamber eIoni + 0 0.0905 -0.0307 711 0.00145 0 0 0 Chamber initStep + 1 0.0813 -0.0313 711 0 0.00145 0.0672 0.0672 Chamber 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 -0.0408 -0.00221 1.58e+03 0.00322 0 0 0 Chamber initStep - 1 -0.0539 0.0198 1.58e+03 0 0.00322 0.202 0.202 Chamber eIoni + 0 0.0876 -0.0296 608 0.00127 0 0 0 Tracker initStep + 1 0.0795 -0.0621 608 0 0.00127 0.0804 0.0804 Tracker 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 -0.0392 -0.00178 1.41e+03 0.00407 0 0 0 Tracker initStep - 1 -0.231 -0.141 1.41e+03 0 0.00407 0.533 0.533 Tracker eIoni + 0 0.0728 -0.024 87 0.00283 0 0 0 Chamber initStep + 1 0.063 -0.00477 87 0 0.00283 0.168 0.168 Chamber 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 -0.0384 -0.00156 1.32e+03 0.00114 0 0 0 Tracker initStep - 1 -0.0668 -0.00218 1.32e+03 0 0.00114 0.0689 0.0689 Tracker eIoni + 0 0.0728 -0.024 84.9 0.00191 0 0 0 Chamber initStep + 1 0.0608 -0.0199 84.9 0 0.00191 0.0977 0.0977 Chamber 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 -0.0384 -0.00155 1.31e+03 0.00147 0 0 0 Tracker initStep - 1 -0.0768 0.0164 1.31e+03 0 0.00147 0.1 0.1 Tracker eIoni + 0 0.0713 -0.0234 33.6 0.00156 0 0 0 Chamber initStep + 1 0.0765 -0.032 33.6 0 0.00156 0.0742 0.0742 Chamber 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 -0.0375 -0.00132 1.22e+03 0.00119 0 0 0 Tracker initStep - 1 -0.0288 -0.0306 1.22e+03 0 0.00119 0.0737 0.0737 Tracker eIoni + 0 0.0711 -0.0233 24.7 0.00602 0 0 0 Chamber initStep + 1 0.118 -0.0635 24.7 0 0.00602 0.529 0.529 Chamber 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 -0.037 -0.00118 1.17e+03 0.00149 0 0 0 Tracker initStep - 1 -0.0687 0.0289 1.17e+03 0 0.00149 0.103 0.103 Tracker eIoni + 0 0.0709 -0.0232 18.4 0.00245 0 0 0 Chamber initStep + 1 0.0538 -0.0276 18.4 0 0.00245 0.137 0.137 Chamber 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 -0.0368 -0.00111 1.14e+03 0.00261 0 0 0 Tracker initStep - 1 -0.0423 0.108 1.14e+03 0 0.00261 0.248 0.248 Tracker eIoni + 0 0.0705 -0.0231 4.94 0.00293 0 0 0 Chamber initStep + 1 0.0813 -0.0429 4.95 0 0.00293 0.176 0.176 Chamber 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 -0.0361 -0.000907 1.06e+03 0.00352 0 0 0 Tracker initStep - 1 -0.218 0.0295 1.06e+03 0 0.00352 0.415 0.415 Tracker eIoni + 0 0.0703 -0.023 -2.4 0.00146 0 0 0 Chamber initStep + 1 0.0778 -0.0284 -2.4 0 0.00146 0.0678 0.0678 Chamber 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 -0.035 -0.000641 946 0.00115 0 0 0 Tracker initStep - 1 -0.0515 -0.0244 946 0 0.00115 0.0702 0.0702 Tracker eIoni + 0 0.0695 -0.0227 -29.1 0.00257 0 0 0 Chamber initStep + 1 0.0773 -0.0399 -29.1 0 0.00257 0.147 0.147 Chamber 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 -0.034 -0.000373 836 0.0122 0 0 0 Chamber initStep - 1 -0.193 -0.0798 836 0.0013 0.0109 1.47 1.47 Chamber eIoni - 2 -0.195 -0.0848 836 0 0.0013 0.0584 1.53 Chamber eIoni + 0 0.0689 -0.0224 -51.1 0.00157 0 0 0 Chamber initStep + 1 0.0589 -0.0208 -51.1 0 0.00157 0.0747 0.0747 Chamber 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.0334 -0.000298 770 0.00491 0 0 0 Chamber initStep - 1 0.00124 -0.0305 770 0 0.00491 0.382 0.382 Chamber eIoni + 0 0.0686 -0.0224 -58.7 0.00969 0 0 0 Chamber initStep + 1 0.0736 0.102 -58.7 0 0.00969 1.14 1.14 Chamber 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 -0.0315 0.000127 559 0.00161 0 0 0 Tracker initStep - 1 -0.0758 0.0217 559 0 0.00161 0.115 0.115 Tracker eIoni + 0 0.0676 -0.022 -93.3 0.00322 0 0 0 Chamber initStep + 1 0.0831 -0.0424 -93.3 0 0.00322 0.202 0.202 Chamber 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 -0.0314 0.000147 549 0.00262 0 0 0 Tracker initStep - 1 -0.00328 0.107 549 0 0.00262 0.251 0.251 Tracker eIoni + 0 0.0643 -0.0208 -204 0.00106 0 0 0 Tracker initStep + 1 0.0765 0.00157 -204 0 0.00106 0.0624 0.0624 Tracker 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 -0.0306 0.000324 455 0.00129 0 0 0 Tracker initStep - 1 -0.0564 0.0233 455 0 0.00129 0.0827 0.0827 Tracker eIoni + 0 0.0598 -0.0191 -357 0.00243 0 0 0 Tracker initStep + 1 -0.0325 -0.0504 -357 0 0.00243 0.222 0.222 Tracker 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 -0.0262 0.00115 -23.5 0.00632 0 0 0 Chamber initStep - 1 -0.00318 0.0632 -23.5 0 0.00632 0.573 0.573 Chamber eIoni + 0 0.052 -0.0162 -619 0.00543 0 0 0 Tracker initStep + 1 -0.05 0.365 -619 0 0.00543 0.886 0.886 Tracker 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 -0.0261 0.00115 -35.7 0.00734 0 0 0 Chamber initStep - 1 -0.0641 -0.0713 -35.7 0 0.00734 0.729 0.729 Chamber eIoni + 0 0.0505 -0.0156 -669 0.00529 0 0 0 Tracker initStep + 1 -0.279 -0.197 -669 0 0.00529 0.846 0.846 Tracker 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 -0.0258 0.00118 -63.2 0.00278 0 0 0 Chamber initStep - 1 -0.00968 0.0147 -63.2 0 0.00278 0.164 0.164 Chamber eIoni + 0 0.0496 -0.0153 -700 0.004 0 0 0 Chamber initStep + 1 0.0394 -0.0142 -700 0.00395 5.07e-05 0.011 0.011 Chamber msc + 2 0.0308 -0.0166 -700 0.00393 2.1e-05 0.0112 0.0221 Chamber msc + 3 0.0227 -0.0217 -700 0.0038 0.000128 0.0113 0.0334 Chamber msc + 4 0.0166 -0.0304 -700 0.00354 0.000261 0.011 0.0444 Chamber msc + 5 0.0168 -0.0266 -700 0.00349 4.43e-05 0.0109 0.0553 Chamber msc + 6 0.025 -0.0216 -700 0.00324 0.000255 0.0133 0.0686 Chamber msc + 7 0.0303 -0.0122 -700 0.0031 0.000138 0.0171 0.0857 Chamber msc + 8 0.0255 0.00549 -700 0.00281 0.00029 0.0268 0.113 Chamber msc + 9 0.00891 0.024 -700 0.00222 0.000589 0.027 0.139 Chamber msc + 10 0.011 0.0243 -700 0.00204 0.000183 0.03 0.169 Chamber msc + 11 0.0156 0.0181 -700 0.00182 0.000221 0.0145 0.184 Chamber msc + 12 0.0193 0.012 -700 0.0017 0.00012 0.0113 0.195 Chamber msc + 13 0.0207 0.0187 -700 0.00163 6.73e-05 0.0113 0.207 Chamber msc + 14 0.027 0.0191 -700 0.00145 0.000177 0.0109 0.217 Chamber msc + 15 0.0279 0.0192 -700 0.00145 0 0.00133 0.219 Tracker Transportation + 16 0.0522 0.0261 -700 0 0.00145 0.0499 0.269 Tracker msc ********************************************************************************************************* * 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 -0.0252 0.00128 -130 0.00123 0 0 0 Tracker initStep - 1 0.00648 -0.00429 -130 0 0.00123 0.0773 0.0773 Tracker eIoni + 0 0.04 -0.0123 -1.02e+03 0.00176 0 0 0 Tracker initStep + 1 -0.013 0.00887 -1.02e+03 0 0.00176 0.133 0.133 Tracker 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 -0.0234 0.00154 -308 0.00131 0 0 0 Tracker initStep - 1 0.0031 -0.0222 -308 0 0.00131 0.0849 0.0849 Tracker eIoni + 0 0.0386 -0.0119 -1.07e+03 0.00138 0 0 0 Tracker initStep + 1 0.0606 0.0198 -1.07e+03 0 0.00138 0.0917 0.0917 Tracker 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 -0.0233 0.00155 -312 0.00179 0 0 0 Tracker initStep - 1 -0.0704 0.0363 -312 0 0.00179 0.136 0.136 Tracker eIoni + 0 0.0373 -0.0115 -1.11e+03 0.00114 0 0 0 Tracker initStep + 1 0.0588 -0.0298 -1.11e+03 0 0.00114 0.0686 0.0686 Tracker 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 -0.0213 0.00183 -518 0.00365 0 0 0 Tracker initStep - 1 0.0727 0.174 -518 0 0.00365 0.442 0.442 Tracker eIoni + 0 0.034 -0.0106 -1.22e+03 0.00159 0 0 0 Tracker initStep + 1 -0.00828 0.0128 -1.22e+03 0 0.00159 0.113 0.113 Tracker 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 -0.0209 0.00187 -553 0.00181 0 0 0 Tracker initStep - 1 0.0173 0.0475 -553 0 0.00181 0.138 0.138 Tracker eIoni + 0 0.0339 -0.0106 -1.22e+03 0.00143 0 0 0 Tracker initStep + 1 0.0668 0.0133 -1.22e+03 0 0.00143 0.0961 0.0961 Tracker 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 -0.0158 0.00121 -1.06e+03 0.00101 0 0 0 Tracker initStep - 1 0.00662 -0.0053 -1.06e+03 0 0.00101 0.0578 0.0578 Tracker eIoni + 0 0.0333 -0.0104 -1.24e+03 0.00166 0 0 0 Tracker initStep + 1 0.0804 -0.0318 -1.24e+03 0 0.00166 0.121 0.121 Tracker 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 -0.0151 0.00106 -1.12e+03 0.00127 0 0 0 Tracker initStep - 1 0.00898 -0.0224 -1.12e+03 0 0.00127 0.0806 0.0806 Tracker eIoni + 0 0.0285 -0.00898 -1.4e+03 0.00108 0 0 0 Tracker initStep + 1 0.036 -0.0339 -1.4e+03 0 0.00108 0.0637 0.0637 Tracker 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 -0.0128 0.000574 -1.35e+03 0.00285 0 0 0 Tracker initStep - 1 -0.131 0.0494 -1.35e+03 0 0.00285 0.288 0.288 Tracker eIoni + 0 0.0254 -0.00807 -1.51e+03 0.00943 0 0 0 Chamber initStep + 1 0.033 0.111 -1.51e+03 0.00391 0.00552 1.1 1.1 Chamber eIoni + 2 0.0158 0.0841 -1.51e+03 0 0.00391 0.269 1.37 Chamber 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 -0.0125 0.000514 -1.37e+03 0.00254 0 0 0 Tracker initStep - 1 -0.116 0.0174 -1.37e+03 0 0.00254 0.238 0.238 Tracker eIoni + 0 0.0226 -0.00725 -1.6e+03 0.00702 0 0 0 Chamber initStep + 1 0.0979 0.00769 -1.6e+03 0 0.00702 0.679 0.679 Chamber 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 -0.0118 0.000373 -1.44e+03 0.00193 0 0 0 Tracker initStep - 1 0.0487 0.0272 -1.44e+03 0 0.00193 0.153 0.153 Tracker eIoni + 0 0.0217 -0.00698 -1.64e+03 0.00177 0 0 0 Chamber initStep + 1 0.0128 0.000445 -1.64e+03 0 0.00177 0.0879 0.0879 Chamber 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 -0.0109 0.000199 -1.52e+03 0.00163 0 0 0 Chamber initStep - 1 -0.00782 0.0103 -1.52e+03 0 0.00163 0.0784 0.0784 Chamber eIoni + 0 0.0196 -0.00629 -1.71e+03 0.00126 0 0 0 Tracker initStep + 1 0.0409 -0.0319 -1.71e+03 0 0.00126 0.0801 0.0801 Tracker 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 -0.0109 0.000199 -1.52e+03 0.00217 0 0 0 Chamber initStep - 1 0.00156 0.00829 -1.52e+03 0 0.00217 0.116 0.116 Chamber eIoni + 0 0.0183 -0.00587 -1.76e+03 0.00184 0 0 0 Tracker initStep + 1 0.0038 -0.0653 -1.76e+03 0 0.00184 0.142 0.142 Tracker 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 -0.0108 0.00017 -1.53e+03 0.00181 0 0 0 Chamber initStep - 1 -0.0201 0.00751 -1.53e+03 0 0.00181 0.0904 0.0904 Chamber eIoni + 0 0.0135 -0.00431 -1.93e+03 0.00122 0 0 0 Tracker initStep + 1 0.00683 0.0266 -1.93e+03 0 0.00122 0.0761 0.0761 Tracker 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 -0.0105 0.000135 -1.55e+03 0.00846 0 0 0 Chamber initStep - 1 -0.111 -0.012 -1.55e+03 0 0.00846 0.925 0.925 Chamber eIoni + 0 0.0123 -0.00392 -1.98e+03 0.00112 0 0 0 Tracker initStep + 1 0.0298 -0.0251 -1.98e+03 0 0.00112 0.0669 0.0669 Tracker 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 -0.0103 9.06e-05 -1.58e+03 0.00179 0 0 0 Chamber initStep - 1 -0.00631 0.0111 -1.58e+03 0 0.00179 0.089 0.089 Chamber eIoni + 0 0.0102 -0.00327 -2.05e+03 0.00256 0 0 0 Tracker initStep + 1 -0.0598 -0.0835 -2.05e+03 0 0.00256 0.242 0.242 Tracker 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 -0.0102 6.83e-05 -1.59e+03 0.00517 0 0 0 Chamber initStep - 1 -0.0579 -0.0134 -1.59e+03 0 0.00517 0.415 0.415 Chamber eIoni + 0 0.00958 -0.00307 -2.07e+03 0.00113 0 0 0 Tracker initStep + 1 -0.0177 0.00371 -2.07e+03 0 0.00113 0.0683 0.0683 Tracker 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 -0.00998 2.53e-05 -1.6e+03 0.00644 0 0 0 Chamber initStep - 1 0.0493 0.017 -1.6e+03 0.0034 0.00146 0.142 0.142 Chamber eIoni - 2 0.0467 0.00625 -1.6e+03 0 0.0034 0.218 0.36 Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0493 0.017 -1.6e+03 0.00158 0 0 0 Chamber initStep - 1 0.0545 0.00876 -1.6e+03 0 0.00158 0.0753 0.0753 Chamber eIoni + 0 0.00952 -0.00305 -2.08e+03 0.00688 0 0 0 Tracker initStep + 1 0.165 -0.581 -2.08e+03 0.00249 0.0044 1.22 1.22 Tracker eIoni + 2 0.102 -0.556 -2.08e+03 0 0.00249 0.23 1.45 Tracker 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 -0.00938 -7.32e-05 -1.66e+03 0.00712 0 0 0 Chamber initStep - 1 0.00173 -0.0777 -1.66e+03 0 0.00712 0.695 0.695 Chamber eIoni + 0 0.00771 -0.00248 -2.14e+03 0.00131 0 0 0 Tracker initStep + 1 -0.0198 -0.0251 -2.14e+03 0 0.00131 0.085 0.085 Tracker 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 -0.00673 -0.000246 -1.89e+03 0.00417 0 0 0 Tracker initStep - 1 -0.0243 0.246 -1.89e+03 0 0.00417 0.556 0.556 Tracker eIoni + 0 0.00299 -0.00102 -2.31e+03 0.00109 0 0 0 Tracker initStep + 1 0.0168 0.0215 -2.31e+03 0 0.00109 0.0646 0.0646 Tracker 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 -0.00371 -0.000294 -2.14e+03 0.00102 0 0 0 Tracker initStep - 1 -0.0275 -0.00326 -2.14e+03 0 0.00102 0.059 0.059 Tracker eIoni + 0 -4.84e-05 -7.48e-05 -2.41e+03 1.05 0 0 0 Target initStep + 1 0.0103 -0.0273 -2.41e+03 0.987 0.0589 0.0667 0.0667 Target eBrem + 2 0.0636 -0.0349 -2.41e+03 0 0.987 0.72 0.787 Target 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.00322 -0.000285 -2.18e+03 0.00538 0 0 0 Tracker initStep - 1 -0.00729 0.00646 -2.18e+03 0.00381 2.83e-06 0.00794 0.00794 Tracker eIoni - 2 0.00817 0.217 -2.18e+03 0 0.00381 0.476 0.484 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00729 0.00646 -2.18e+03 0.00156 0 0 0 Tracker initStep - 1 -0.0537 0.00941 -2.18e+03 0 0.00156 0.11 0.11 Tracker eIoni + 0 -0.000113 -5.9e-05 -2.42e+03 4.66 0 0 0 Target initStep + 1 -0.0189 0.119 -2.42e+03 4.13 0.424 0.371 0.371 Target eBrem + 2 -0.0707 0.41 -2.42e+03 1.87 0.555 0.489 0.859 Target eBrem + 3 -0.00132 0.501 -2.42e+03 1.7 0.173 0.219 1.08 Target eBrem + 4 -0.0952 0.526 -2.42e+03 0.248 1.45 1.27 2.34 Target eIoni + 5 -0.0906 0.521 -2.42e+03 0 0.248 0.113 2.46 Target 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 -0.00157 -0.000251 -2.32e+03 0.022 0 0 0 Tracker initStep - 1 -0.0157 -0.11 -2.32e+03 0.0148 6.81e-05 0.113 0.113 Tracker eIoni - 2 -1.02 -1.36 -2.32e+03 0.00879 0.00405 2.31 2.42 Tracker eIoni - 3 -1.31 -1.52 -2.32e+03 0.00793 0.000862 0.374 2.8 Tracker eIoni - 4 -1.13 -2.21 -2.32e+03 0.00375 0.00418 1.49 4.29 Tracker eIoni - 5 -1.21 -2.28 -2.32e+03 0 0.00375 0.462 4.76 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.02 -1.36 -2.32e+03 0.002 0 0 0 Tracker initStep - 1 -1.04 -1.36 -2.32e+03 0 0.002 0.161 0.161 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0157 -0.11 -2.32e+03 0.0071 0 0 0 Tracker initStep - 1 0.399 -0.552 -2.32e+03 0 0.0071 1.33 1.33 Tracker eIoni + 0 -9.25e-05 -5.7e-05 -2.45e+03 0.00151 0 0 0 World initStep + 1 -0.00305 0.0443 -2.45e+03 0 0.00151 0.105 0.105 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 -0.000517 -0.000196 -2.4e+03 1.36 0 0 0 Target initStep - 1 -0.105 -0.203 -2.4e+03 1.13 0.221 0.246 0.246 Target msc - 2 -0.171 -0.186 -2.4e+03 0 1.13 0.847 1.09 Target eIoni + 0 -6.36e-05 -4.72e-05 -2.51e+03 0.00122 0 0 0 World initStep + 1 0.0269 -0.0167 -2.51e+03 0 0.00122 0.0763 0.0763 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 -0.000494 -0.000131 -2.4e+03 1.93 0 0 0 Target initStep - 1 0.075 -0.048 -2.4e+03 0.314 1.62 1.38 1.38 Target eIoni - 2 0.0758 -0.0519 -2.4e+03 0 0.314 0.159 1.54 Target eIoni + 0 -4.67e-05 -1.99e-05 -2.62e+03 0.00221 0 0 0 World initStep + 1 0.068 -0.047 -2.62e+03 0 0.00221 0.189 0.189 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 -0.000479 -2.99e-05 -2.41e+03 1.28 0 0 0 Target initStep - 1 -0.013 -0.0536 -2.41e+03 0 1.28 0.976 0.976 Target eIoni + 0 -4.5e-05 -9.13e-06 -2.67e+03 0.0195 0 0 0 World initStep + 1 -2.44 0.729 -2.67e+03 0.0149 0.00459 3.32 3.32 World eIoni + 2 -3.03 2.32 -2.67e+03 0.0112 0.00372 2.56 5.88 World eIoni + 3 -2.32 3.38 -2.67e+03 0.00818 0.00298 2.01 7.88 World eIoni + 4 -2.57 3.52 -2.67e+03 0.00311 0.00506 1.54 9.42 World eIoni + 5 -2.65 3.4 -2.67e+03 0 0.00311 0.336 9.76 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.48e-05 4.28e-05 -2.44e+03 2.14 0 0 0 Target initStep - 1 0.0552 0.0565 -2.44e+03 1.47 0.301 0.255 0.255 Target eBrem - 2 0.0905 0.145 -2.44e+03 0.148 1.32 1.12 1.38 Target eIoni - 3 0.0904 0.141 -2.44e+03 0 0.148 0.0509 1.43 Target eIoni + 0 -1.74e-05 2.88e-05 -2.82e+03 0.00112 0 0 0 World initStep + 1 0.00048 0.0278 -2.82e+03 0 0.00112 0.0675 0.0675 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 3.67e-05 1.99e-05 -2.45e+03 3.97 0 0 0 Target initStep - 1 0.136 -0.0578 -2.45e+03 3.6 0.207 0.197 0.197 Target eBrem - 2 0.49 -0.0758 -2.45e+03 2.67 0.534 0.421 0.618 Target eBrem - 3 0.117 -0.263 -2.45e+03 1.99 0.675 0.629 1.25 Target msc - 4 0.0156 -0.278 -2.45e+03 1.66 0.162 0.206 1.45 Target eBrem - 5 -0.0896 -0.298 -2.45e+03 0.468 1.2 1.25 2.7 Target eIoni - 6 -0.078 -0.287 -2.45e+03 0 0.468 0.278 2.98 Target eIoni + 0 -1.63e-05 3.02e-05 -2.82e+03 0.271 0 0 0 World initStep + 1 -13.9 41.3 -2.8e+03 0.26 0.00894 49.5 49.5 World eIoni + 2 -21.4 59.3 -2.8e+03 0.254 0.00372 19.4 68.9 World eIoni + 3 -89 134 -2.8e+03 0.235 0.0171 105 174 World eIoni + 4 -184 237 -2.83e+03 0.201 0.0334 148 322 World eIoni + 5 -266 292 -2.88e+03 0.172 0.0296 116 438 World eIoni + 6 -266 290 -2.89e+03 0.131 0.00142 8.41 447 World eIoni + 7 -276 287 -2.9e+03 0.126 0.00344 13.3 460 World eIoni + 8 -300 267 -2.91e+03 0.114 0.00691 34 494 World eIoni + 9 -301 258 -2.91e+03 0.11 0.00296 9.14 503 World eIoni + 10 -310 242 -2.92e+03 0.102 0.00593 21.7 525 World eIoni + 11 -307 214 -2.94e+03 0.0906 0.0115 37.7 563 World eIoni + 12 -305 200 -2.94e+03 0.086 0.00461 15.3 578 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -310 242 -2.92e+03 0.00162 0 0 0 World initStep + 1 -310 242 -2.92e+03 0 0.00162 0.116 0.116 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -301 258 -2.91e+03 0.00146 0 0 0 World initStep + 1 -301 258 -2.91e+03 0 0.00146 0.0995 0.0995 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -300 267 -2.91e+03 0.00518 0 0 0 World initStep + 1 -300 267 -2.91e+03 0.00103 0.00416 0.669 0.669 World eIoni + 2 -300 267 -2.91e+03 0 0.00103 0.0593 0.728 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -276 287 -2.9e+03 0.00168 0 0 0 World initStep + 1 -276 287 -2.9e+03 0 0.00168 0.123 0.123 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -266 290 -2.89e+03 0.0391 0 0 0 World initStep + 1 -261 290 -2.89e+03 0.0334 0.00575 8.07 8.07 World eIoni + 2 -258 293 -2.89e+03 0.0282 0.00392 4.39 12.5 World eIoni + 3 -256 296 -2.9e+03 0.0228 0.00539 5.13 17.6 World eIoni + 4 -257 295 -2.89e+03 0.0188 0.00286 2.54 20.1 World eIoni + 5 -259 294 -2.89e+03 0.0147 0.00411 3.2 23.3 World eIoni + 6 -261 293 -2.89e+03 0.0107 0.00406 2.53 25.9 World eIoni + 7 -261 292 -2.89e+03 0.00625 0.0044 1.93 27.8 World eIoni + 8 -261 292 -2.89e+03 0 0.00625 1.13 28.9 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 -257 295 -2.89e+03 0.00117 0 0 0 World initStep + 1 -257 295 -2.89e+03 0 0.00117 0.0715 0.0715 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 96 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -258 293 -2.89e+03 0.00122 0 0 0 World initStep + 1 -258 293 -2.89e+03 0 0.00122 0.076 0.076 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89 134 -2.8e+03 0.00182 0 0 0 World initStep + 1 -89 134 -2.8e+03 0 0.00182 0.139 0.139 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.4 59.3 -2.8e+03 0.00215 0 0 0 World initStep + 1 -21.3 59.3 -2.8e+03 0 0.00215 0.182 0.182 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.9 41.3 -2.8e+03 0.00212 0 0 0 World initStep + 1 -13.9 41.4 -2.8e+03 0 0.00212 0.178 0.178 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 1.88e-05 9.14e-06 -2.51e+03 0.00178 0 0 0 World initStep - 1 0.0554 -0.0179 -2.51e+03 0 0.00178 0.135 0.135 World eIoni + 0 -1.32e-05 2.81e-05 -2.83e+03 0.00112 0 0 0 World initStep + 1 0.024 0.0134 -2.83e+03 0 0.00112 0.067 0.067 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 5.3e-06 -1.14e-06 -2.62e+03 0.00102 0 0 0 World initStep - 1 -0.0169 0.0166 -2.62e+03 0 0.00102 0.0584 0.0584 World eIoni + 0 -6.7e-07 1.22e-05 -2.88e+03 0.00205 0 0 0 World initStep + 1 0.059 -0.0427 -2.88e+03 0 0.00205 0.168 0.168 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 1.87e-06 -1.06e-05 -2.78e+03 0.00672 0 0 0 World initStep - 1 0.274 -0.371 -2.78e+03 0.00333 0.00139 0.665 0.665 World eIoni - 2 0.2 -0.259 -2.78e+03 0 0.00333 0.377 1.04 World eIoni + 0 -3.17e-09 3.74e-07 -2.92e+03 0.0174 0 0 0 World initStep + 1 -0.434 -0.741 -2.92e+03 0.0148 0.00146 0.942 0.942 World eIoni + 2 -1.37 -2.2 -2.91e+03 0.0068 0.00799 2.55 3.49 World eIoni + 3 -1.31 -2.64 -2.91e+03 0.00224 0.00349 0.776 4.26 World eIoni + 4 -1.28 -2.69 -2.91e+03 0 0.00224 0.194 4.46 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.274 -0.371 -2.78e+03 0.00199 0 0 0 World initStep - 1 0.307 -0.399 -2.78e+03 0 0.00199 0.161 0.161 World eIoni + 0 -1.31 -2.64 -2.91e+03 0.00107 0 0 0 World initStep + 1 -1.3 -2.64 -2.91e+03 0 0.00107 0.0631 0.0631 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.434 -0.741 -2.92e+03 0.00112 0 0 0 World initStep + 1 -0.443 -0.726 -2.92e+03 0 0.00112 0.0673 0.0673 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 0 0 -2.85e+03 0.00157 0 0 0 World initStep - 1 -0.041 0.0237 -2.85e+03 0 0.00157 0.111 0.111 World eIoni + 0 0 0 -2.92e+03 0.00227 0 0 0 World initStep + 1 -0.0805 -0.0321 -2.92e+03 0 0.00227 0.198 0.198 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 6 +* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0156 -0.278 -2.45e+03 0.166 0 0 0 Target initStep - 1 -1.01 -0.413 -2.45e+03 0 0.088 1.07 1.07 Target phot + 0 -0.0707 0.41 -2.42e+03 1.7 0 0 0 Target initStep + 1 1.47 18 -2.42e+03 1.14 0 17.6 17.6 Target compt + 2 2.41 24.9 -2.42e+03 1.14 0 8.34 26 World Transportation + 3 110 812 -2.94e+03 1.14 0 950 976 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 114 +* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.01 -0.413 -2.45e+03 0.078 0 0 0 Target initStep - 1 -1.01 -0.414 -2.45e+03 0 0.078 0.0184 0.0184 Target eIoni + 0 -0.0189 0.119 -2.42e+03 0.113 0 0 0 Target initStep + 1 -0.0229 0.153 -2.42e+03 0 0.088 0.0416 0.0416 Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 91 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.49 -0.0758 -2.45e+03 0.403 0 0 0 Target initStep - 1 -2.93 5.16 -2.45e+03 0 0.088 6.57 6.57 Target phot + 0 -0.0229 0.153 -2.42e+03 0.0249 0 0 0 Target initStep + 1 -0.0228 0.153 -2.42e+03 0 0.0249 0.00288 0.00288 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 92 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.136 -0.0578 -2.45e+03 0.16 0 0 0 Target initStep - 1 0.914 -1.54 -2.45e+03 0 0.088 1.74 1.74 Target phot + 0 1.47 18 -2.42e+03 0.562 0 0 0 Target initStep + 1 1.47 18 -2.42e+03 0.222 0.0749 0.061 0.061 Target eBrem + 2 1.47 18 -2.42e+03 0 0.222 0.0953 0.156 Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 7 +* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 105 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0552 0.0565 -2.44e+03 0.364 0 0 0 Target initStep - 1 0.312 2.14 -2.44e+03 0 0.088 2.24 2.24 Target phot + 0 1.47 18 -2.42e+03 0.266 0 0 0 Target initStep + 1 1.56 17.4 -2.42e+03 0 0.088 3.49 3.49 Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 51, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 107 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0417 -0.00233 1.67e+03 99.5 0 0 0 Chamber initStep - 1 -0.0431 -0.00529 1.7e+03 99.5 0.017 25.9 25.9 Tracker Transportation - 2 -0.0885 -0.289 1.74e+03 99.5 0.00697 39.9 65.8 Tracker eIoni - 3 -0.399 -0.658 1.84e+03 99.5 0.0196 100 166 Tracker StepLimiter - 4 -0.389 -0.655 1.89e+03 99.4 0.0108 54.8 221 Tracker eIoni - 5 -0.563 -1.06 1.99e+03 99.4 0.0206 100 321 Tracker StepLimiter - 6 -0.987 -1.14 2.09e+03 99.4 0.0179 100 421 Tracker StepLimiter - 7 -1.3 -1.57 2.19e+03 99.4 0.0153 100 521 Tracker StepLimiter - 8 -1.97 -2.26 2.28e+03 99.4 0.0183 89.5 610 Tracker eIoni - 9 -2.17 -3.18 2.38e+03 99.3 0.0179 100 710 Tracker StepLimiter - 10 -2.2 -3.35 2.4e+03 99.3 0.00218 15.8 726 World Transportation - 11 -2.2 -3.79 2.44e+03 99.3 0.0086 43.4 769 World eIoni - 12 -2.75 -6.25 2.63e+03 99.3 0.0376 189 958 World eIoni - 13 -3.13 -7.25 2.71e+03 99.2 0.0174 82.1 1.04e+03 World eIoni - 14 -3.22 -7.56 2.74e+03 99.2 0.00384 21.3 1.06e+03 World eIoni - 15 -3.26 -7.68 2.75e+03 99.2 0.00194 9.48 1.07e+03 World eIoni - 16 -3.7 -8.93 2.85e+03 99.2 0.017 99.8 1.17e+03 World eIoni - 17 -4.17 -10.2 2.94e+03 99.2 0.0203 94.9 1.27e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.7 -8.93 2.85e+03 0.00102 0 0 0 World initStep - 1 -3.72 -8.92 2.85e+03 0 0.00102 0.0589 0.0589 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.26 -7.68 2.75e+03 0.00277 0 0 0 World initStep - 1 -3.16 -7.74 2.75e+03 0 0.00277 0.275 0.275 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.22 -7.56 2.74e+03 0.00143 0 0 0 World initStep - 1 -3.23 -7.6 2.74e+03 0 0.00143 0.0965 0.0965 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.13 -7.25 2.71e+03 0.00168 0 0 0 World initStep - 1 -3.14 -7.2 2.71e+03 0 0.00168 0.124 0.124 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.75 -6.25 2.63e+03 0.0156 0 0 0 World initStep - 1 -3.26 -8.13 2.63e+03 0.0118 0.00384 2.68 2.68 World eIoni - 2 -3.15 -8.33 2.63e+03 0.0111 0.000718 0.527 3.2 World eIoni - 3 -3.01 -9.02 2.63e+03 0.00518 0.00589 1.99 5.2 World eIoni - 4 -3.25 -9.21 2.63e+03 0 0.00518 0.815 6.01 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.2 -3.79 2.44e+03 0.0031 0 0 0 World initStep - 1 -2.21 -3.64 2.44e+03 0 0.0031 0.334 0.334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.97 -2.26 2.28e+03 0.00803 0 0 0 Tracker initStep - 1 -2.72 -2.46 2.28e+03 0.00219 0.00584 1.51 1.51 Tracker eIoni - 2 -2.78 -2.5 2.28e+03 0 0.00219 0.187 1.7 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.389 -0.655 1.89e+03 0.00616 0 0 0 Tracker initStep - 1 0.0215 -0.929 1.89e+03 0.00139 0.00478 1.1 1.1 Tracker eIoni - 2 0.0409 -0.93 1.89e+03 0 0.00139 0.0919 1.2 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0885 -0.289 1.74e+03 0.00268 0 0 0 Tracker initStep - 1 -0.196 -0.33 1.74e+03 0 0.00268 0.261 0.261 Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 111 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.312 2.14 -2.44e+03 0.276 0 0 0 Target initStep - 1 0.317 2.14 -2.44e+03 0 0.276 0.132 0.132 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 112 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.914 -1.54 -2.45e+03 0.0717 0 0 0 Target initStep - 1 0.915 -1.54 -2.45e+03 0 0.0717 0.016 0.016 Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 113 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.93 5.16 -2.45e+03 0.315 0 0 0 Target initStep - 1 -2.94 5.16 -2.45e+03 0 0.315 0.16 0.16 Target eIoni + 0 1.56 17.4 -2.42e+03 0.178 0 0 0 Target initStep + 1 1.56 17.4 -2.42e+03 0 0.178 0.0679 0.0679 Target eIoni >>> Event: 0 - 42 hits stored in this event + 85 hits stored in this event ### Run 2 starts. --> Event 0 starts. >>> Event: 0 - 234 hits stored in this event + 0 hits stored in this event >>> Event: 1 0 hits stored in this event >>> Event: 2 - 0 hits stored in this event + 39 hits stored in this event >>> Event: 3 0 hits stored in this event >>> Event: 4 - 33 hits stored in this event + 0 hits stored in this event >>> Event: 5 0 hits stored in this event >>> Event: 6 - 0 hits stored in this event + 68 hits stored in this event >>> Event: 7 - 78 hits stored in this event + 0 hits stored in this event >>> Event: 8 - 16 hits stored in this event + 0 hits stored in this event >>> Event: 9 0 hits stored in this event >>> Event: 10 @@ -4327,21 +4519,21 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 11 0 hits stored in this event >>> Event: 12 - 53 hits stored in this event + 0 hits stored in this event >>> Event: 13 0 hits stored in this event >>> Event: 14 - 106 hits stored in this event + 0 hits stored in this event >>> Event: 15 - 148 hits stored in this event + 0 hits stored in this event >>> Event: 16 - 63 hits stored in this event + 0 hits stored in this event >>> Event: 17 0 hits stored in this event >>> Event: 18 - 48 hits stored in this event + 0 hits stored in this event >>> Event: 19 - 52 hits stored in this event + 94 hits stored in this event >>> Event: 20 0 hits stored in this event >>> Event: 21 @@ -4355,11 +4547,11 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 25 0 hits stored in this event >>> Event: 26 - 92 hits stored in this event + 0 hits stored in this event >>> Event: 27 0 hits stored in this event >>> Event: 28 - 0 hits stored in this event + 27 hits stored in this event >>> Event: 29 0 hits stored in this event >>> Event: 30 @@ -4367,11 +4559,11 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 31 0 hits stored in this event >>> Event: 32 - 81 hits stored in this event + 0 hits stored in this event >>> Event: 33 0 hits stored in this event >>> Event: 34 - 0 hits stored in this event + 46 hits stored in this event >>> Event: 35 0 hits stored in this event >>> Event: 36 @@ -4383,7 +4575,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 39 0 hits stored in this event >>> Event: 40 - 0 hits stored in this event + 55 hits stored in this event >>> Event: 41 0 hits stored in this event >>> Event: 42 @@ -4393,13 +4585,13 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 44 0 hits stored in this event >>> Event: 45 - 68 hits stored in this event + 0 hits stored in this event >>> Event: 46 0 hits stored in this event >>> Event: 47 0 hits stored in this event >>> Event: 48 - 1 hits stored in this event + 0 hits stored in this event >>> Event: 49 0 hits stored in this event >>> Event: 50 @@ -4409,53 +4601,53 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 52 0 hits stored in this event >>> Event: 53 - 161 hits stored in this event + 0 hits stored in this event >>> Event: 54 0 hits stored in this event >>> Event: 55 - 203 hits stored in this event ->>> Event: 56 0 hits stored in this event +>>> Event: 56 + 3 hits stored in this event >>> Event: 57 0 hits stored in this event >>> Event: 58 - 109 hits stored in this event + 0 hits stored in this event >>> Event: 59 0 hits stored in this event >>> Event: 60 - 53 hits stored in this event + 0 hits stored in this event >>> Event: 61 0 hits stored in this event >>> Event: 62 - 0 hits stored in this event + 17 hits stored in this event >>> Event: 63 0 hits stored in this event >>> Event: 64 0 hits stored in this event >>> Event: 65 - 0 hits stored in this event + 150 hits stored in this event >>> Event: 66 0 hits stored in this event >>> Event: 67 - 0 hits stored in this event + 80 hits stored in this event >>> Event: 68 0 hits stored in this event >>> Event: 69 - 0 hits stored in this event + 14 hits stored in this event >>> Event: 70 0 hits stored in this event >>> Event: 71 - 22 hits stored in this event + 247 hits stored in this event >>> Event: 72 - 0 hits stored in this event + 162 hits stored in this event >>> Event: 73 0 hits stored in this event >>> Event: 74 0 hits stored in this event >>> Event: 75 - 27 hits stored in this event + 0 hits stored in this event >>> Event: 76 - 14 hits stored in this event + 0 hits stored in this event >>> Event: 77 0 hits stored in this event >>> Event: 78 @@ -4465,7 +4657,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 80 0 hits stored in this event >>> Event: 81 - 0 hits stored in this event + 29 hits stored in this event >>> Event: 82 0 hits stored in this event >>> Event: 83 @@ -4481,9 +4673,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu >>> Event: 88 0 hits stored in this event >>> Event: 89 - 0 hits stored in this event + 219 hits stored in this event >>> Event: 90 - 0 hits stored in this event + 137 hits stored in this event >>> Event: 91 0 hits stored in this event >>> Event: 92 @@ -4505,204 +4697,204 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ### Run 3 starts. --> Event 0 starts. >>> Event: 0 - 54 hits stored in this event + 77 hits stored in this event >>> Event: 1 - 1871 hits stored in this event + 76 hits stored in this event >>> Event: 2 - 101 hits stored in this event + 49 hits stored in this event >>> Event: 3 - 93 hits stored in this event + 130 hits stored in this event >>> Event: 4 - 91 hits stored in this event + 134 hits stored in this event >>> Event: 5 - 66 hits stored in this event ->>> Event: 6 - 56 hits stored in this event ->>> Event: 7 - 69 hits stored in this event ->>> Event: 8 - 62 hits stored in this event ->>> Event: 9 - 24848 hits stored in this event ->>> Event: 10 - 34 hits stored in this event ->>> Event: 11 - 171 hits stored in this event ->>> Event: 12 - 81 hits stored in this event ->>> Event: 13 54 hits stored in this event ->>> Event: 14 - 171 hits stored in this event ->>> Event: 15 +>>> Event: 6 + 76 hits stored in this event +>>> Event: 7 + 87 hits stored in this event +>>> Event: 8 + 77 hits stored in this event +>>> Event: 9 + 64 hits stored in this event +>>> Event: 10 65 hits stored in this event +>>> Event: 11 + 2848 hits stored in this event +>>> Event: 12 + 141 hits stored in this event +>>> Event: 13 + 89 hits stored in this event +>>> Event: 14 + 52 hits stored in this event +>>> Event: 15 + 160 hits stored in this event >>> Event: 16 - 55 hits stored in this event + 684 hits stored in this event >>> Event: 17 - 173 hits stored in this event + 935 hits stored in this event >>> Event: 18 - 353 hits stored in this event ->>> Event: 19 - 116 hits stored in this event ->>> Event: 20 - 140 hits stored in this event ->>> Event: 21 - 94 hits stored in this event ->>> Event: 22 - 80 hits stored in this event ->>> Event: 23 - 164 hits stored in this event ->>> Event: 24 - 101 hits stored in this event ->>> Event: 25 - 259 hits stored in this event ->>> Event: 26 - 128 hits stored in this event ->>> Event: 27 - 74 hits stored in this event ->>> Event: 28 - 88 hits stored in this event ->>> Event: 29 - 73 hits stored in this event ->>> Event: 30 78 hits stored in this event +>>> Event: 19 + 141 hits stored in this event +>>> Event: 20 + 94 hits stored in this event +>>> Event: 21 + 683 hits stored in this event +>>> Event: 22 + 1798 hits stored in this event +>>> Event: 23 + 729 hits stored in this event +>>> Event: 24 + 107 hits stored in this event +>>> Event: 25 + 376 hits stored in this event +>>> Event: 26 + 72 hits stored in this event +>>> Event: 27 + 263 hits stored in this event +>>> Event: 28 + 85 hits stored in this event +>>> Event: 29 + 225 hits stored in this event +>>> Event: 30 + 123 hits stored in this event >>> Event: 31 - 98 hits stored in this event + 82 hits stored in this event >>> Event: 32 - 738 hits stored in this event + 52 hits stored in this event >>> Event: 33 91 hits stored in this event >>> Event: 34 - 160 hits stored in this event + 90 hits stored in this event >>> Event: 35 - 47 hits stored in this event ->>> Event: 36 - 65 hits stored in this event ->>> Event: 37 - 95 hits stored in this event ->>> Event: 38 - 66 hits stored in this event ->>> Event: 39 - 1095 hits stored in this event ->>> Event: 40 - 128 hits stored in this event ->>> Event: 41 - 96 hits stored in this event ->>> Event: 42 - 92 hits stored in this event ->>> Event: 43 - 208 hits stored in this event ->>> Event: 44 - 64 hits stored in this event ->>> Event: 45 - 248 hits stored in this event ->>> Event: 46 - 71 hits stored in this event ->>> Event: 47 - 118 hits stored in this event ->>> Event: 48 - 46 hits stored in this event ->>> Event: 49 - 51 hits stored in this event ->>> Event: 50 - 204 hits stored in this event ->>> Event: 51 - 871 hits stored in this event ->>> Event: 52 - 69 hits stored in this event ->>> Event: 53 - 69 hits stored in this event ->>> Event: 54 - 177 hits stored in this event ->>> Event: 55 - 79 hits stored in this event ->>> Event: 56 - 83 hits stored in this event ->>> Event: 57 - 102 hits stored in this event ->>> Event: 58 - 83 hits stored in this event ->>> Event: 59 - 135 hits stored in this event ->>> Event: 60 - 91 hits stored in this event ->>> Event: 61 - 45 hits stored in this event ->>> Event: 62 - 134 hits stored in this event ->>> Event: 63 - 98 hits stored in this event ->>> Event: 64 - 75 hits stored in this event ->>> Event: 65 - 269 hits stored in this event ->>> Event: 66 - 71 hits stored in this event ->>> Event: 67 - 236 hits stored in this event ->>> Event: 68 - 84 hits stored in this event ->>> Event: 69 - 191 hits stored in this event ->>> Event: 70 - 46 hits stored in this event ->>> Event: 71 - 1145 hits stored in this event ->>> Event: 72 - 204 hits stored in this event ->>> Event: 73 - 55 hits stored in this event ->>> Event: 74 - 86 hits stored in this event ->>> Event: 75 - 278 hits stored in this event ->>> Event: 76 - 82 hits stored in this event ->>> Event: 77 - 65 hits stored in this event ->>> Event: 78 - 78 hits stored in this event ->>> Event: 79 - 329 hits stored in this event ->>> Event: 80 - 219 hits stored in this event ->>> Event: 81 - 71 hits stored in this event ->>> Event: 82 - 59 hits stored in this event ->>> Event: 83 - 46 hits stored in this event ->>> Event: 84 - 81 hits stored in this event ->>> Event: 85 - 40 hits stored in this event ->>> Event: 86 - 60 hits stored in this event ->>> Event: 87 - 114 hits stored in this event ->>> Event: 88 - 152 hits stored in this event ->>> Event: 89 - 139 hits stored in this event ->>> Event: 90 49 hits stored in this event ->>> Event: 91 - 80 hits stored in this event ->>> Event: 92 - 917 hits stored in this event ->>> Event: 93 - 231 hits stored in this event ->>> Event: 94 +>>> Event: 36 + 156 hits stored in this event +>>> Event: 37 + 226 hits stored in this event +>>> Event: 38 + 105 hits stored in this event +>>> Event: 39 + 42 hits stored in this event +>>> Event: 40 + 494 hits stored in this event +>>> Event: 41 + 126 hits stored in this event +>>> Event: 42 + 74 hits stored in this event +>>> Event: 43 + 89 hits stored in this event +>>> Event: 44 + 220 hits stored in this event +>>> Event: 45 + 602 hits stored in this event +>>> Event: 46 + 76 hits stored in this event +>>> Event: 47 + 61 hits stored in this event +>>> Event: 48 + 139 hits stored in this event +>>> Event: 49 + 105 hits stored in this event +>>> Event: 50 + 61 hits stored in this event +>>> Event: 51 + 88 hits stored in this event +>>> Event: 52 + 1389 hits stored in this event +>>> Event: 53 + 65 hits stored in this event +>>> Event: 54 + 55 hits stored in this event +>>> Event: 55 + 122 hits stored in this event +>>> Event: 56 + 1803 hits stored in this event +>>> Event: 57 + 72 hits stored in this event +>>> Event: 58 + 58 hits stored in this event +>>> Event: 59 + 64 hits stored in this event +>>> Event: 60 86 hits stored in this event +>>> Event: 61 + 55 hits stored in this event +>>> Event: 62 + 63 hits stored in this event +>>> Event: 63 + 359 hits stored in this event +>>> Event: 64 + 579 hits stored in this event +>>> Event: 65 + 58 hits stored in this event +>>> Event: 66 + 69 hits stored in this event +>>> Event: 67 + 219 hits stored in this event +>>> Event: 68 + 212 hits stored in this event +>>> Event: 69 + 78 hits stored in this event +>>> Event: 70 + 89 hits stored in this event +>>> Event: 71 + 341 hits stored in this event +>>> Event: 72 + 47 hits stored in this event +>>> Event: 73 + 98 hits stored in this event +>>> Event: 74 + 669 hits stored in this event +>>> Event: 75 + 97 hits stored in this event +>>> Event: 76 + 76 hits stored in this event +>>> Event: 77 + 237 hits stored in this event +>>> Event: 78 + 48 hits stored in this event +>>> Event: 79 + 381 hits stored in this event +>>> Event: 80 + 629 hits stored in this event +>>> Event: 81 + 183 hits stored in this event +>>> Event: 82 + 129 hits stored in this event +>>> Event: 83 + 176 hits stored in this event +>>> Event: 84 + 212 hits stored in this event +>>> Event: 85 + 70 hits stored in this event +>>> Event: 86 + 141 hits stored in this event +>>> Event: 87 + 104 hits stored in this event +>>> Event: 88 + 79 hits stored in this event +>>> Event: 89 + 184 hits stored in this event +>>> Event: 90 + 69 hits stored in this event +>>> Event: 91 + 180 hits stored in this event +>>> Event: 92 + 162 hits stored in this event +>>> Event: 93 + 62 hits stored in this event +>>> Event: 94 + 126 hits stored in this event >>> Event: 95 - 127 hits stored in this event + 92 hits stored in this event >>> Event: 96 - 800 hits stored in this event + 532 hits stored in this event >>> Event: 97 - 59 hits stored in this event + 189 hits stored in this event >>> Event: 98 - 59 hits stored in this event + 50 hits stored in this event >>> Event: 99 - 56 hits stored in this event + 1376 hits stored in this event Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/basic/B2/README b/examples/basic/B2/README index 55821e5a02..b91fc104fd 100644 --- a/examples/basic/B2/README +++ b/examples/basic/B2/README @@ -1,4 +1,4 @@ -$Id: README 78001 2013-12-02 08:24:53Z gcosmo $ +$Id: README 94957 2016-01-08 13:27:26Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -46,8 +46,8 @@ $Id: README 78001 2013-12-02 08:24:53Z gcosmo $ See more on installation of the datasets in Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets: http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch03s03.html - The following datasets: G4LEDATA, G4LEVELGAMMADATA and G4SAIDXSDATA are - mandatory for this example. + The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4SAIDXSDATA and + G4ENSDFSTATEDATA are mandatory for this example. In addition, the build-in interactive command: /process/(in)activate processName diff --git a/examples/basic/B3/.README.txt b/examples/basic/B3/.README.txt index ef683f434c..5c3bcd730c 100644 --- a/examples/basic/B3/.README.txt +++ b/examples/basic/B3/.README.txt @@ -1,4 +1,4 @@ -//$Id: .README.txt 94093 2015-11-05 15:16:06Z gcosmo $ +//$Id: .README.txt 94957 2016-01-08 13:27:26Z gcosmo $ ///\file "B3/.README.txt" ///\brief Example B3 README page @@ -38,6 +38,8 @@ This physics list requires data files for: - low energy electromagnetic processes which path is defined via the G4LEDATA envirnoment variable + - data files for nuclides properties which path is defined via + the G4ENSDFSTATEDATA envirnoment variable - radioactive decay hadronic processes which path is defined via the G4RADIOACTIVEDATA envirnoment variable. diff --git a/examples/basic/B3/B3a/.README b/examples/basic/B3/B3a/.README new file mode 100644 index 0000000000..bd9ebce828 --- /dev/null +++ b/examples/basic/B3/B3a/.README @@ -0,0 +1,186 @@ +//$Id: .README 94957 2016-01-08 13:27:26Z gcosmo $ + +///\file "B3/.README" +///\brief Example B3 README page + +/*! \page ExampleB3 Example B3 + + This example simulates schematically a Positron Emitted Tomography system. + +\section B3_s1 GEOMETRY DEFINITION + + The support of gamma detection are scintillating crystals. A small number + of such crystals are optically grouped in a matrix of crystals. In + this example, individual crystals are not described; only the matrix of + crystals is and it is still called 'Crystal' hereafter. + + Crystals are circularly arranged to form a ring. Few rings make up the full + detector (gamma camera). This is done by positionning Crystals in + Ring with an appropriate rotation matrix. Several copies of Ring are + then placed in the full detector. + + The head of a patient is schematised as a homogeneous cylinder of brain + tissue, placed at the center of full detector. + + The Crystal material, Lu2SiO5, is not included in the G4Nist database. + Therefore, it is explicitly built in DefineMaterials(). + +\section B3_s2 PHYSICS LIST + + The physics list contains standard electromagnetic processes and the + radioactiveDecay module for GenericIon. It is defined in the B3PhysicsList + class as a Geant4 modular physics list with registered physics builders + provided in Geant4: + - G4DecayPhysics - defines all particles and their decay processes + - G4RadioactiveDecayPhysics - defines radioactiveDecay for GenericIon + - G4EmStandardPhysics - defines all EM standard processes + + This physics list requires data files for: + - low energy electromagnetic processes which path is defined via + the G4LEDATA envirnoment variable + - radioactive decay hadronic processes which path is defined via + the G4RADIOACTIVEDATA envirnoment variable. + + See more on installation of the datasets in + + Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets . + +\section B3_s3 ACTION INITALIZATION + + A newly introduced class, B1ActionInitialization, instantiates and registers + to Geant4 kernel all user action classes. + + While in sequential mode the action classes are instatiated just once, + via invoking the method: + B3ActionInitialization::Build() + in multi-threading mode the same method is invoked for each thread worker + and so all user action classes are defined thread-local. + + A run action class is instantiated both thread-local + and global that's why its instance is created also in the method + B3ActionInitialization::BuildForMaster() + which is invoked only in multi-threading mode. + +\section B3_s4 PRIMARY GENERATOR + + The default particle beam is an ion (F18), at rest, randomly distributed + within a zone inside a patient and is defined in + B3PrimaryGeneratorAction::GeneratePrimaries(). + The type of a primary particle can be changed with G4ParticleGun commands + (see run2.mac). + +\section B3_s5 DETECTOR RESPONSE : scorers + + A 'good' event is an event in which an identical energy of 511 keV is + deposited in two separate Crystals. A count of the number of such events + corresponds to a measure of the efficiency of the PET system. + The total dose deposited in a patient during a run is also computed. + + Scorers are defined in DetectorConstruction::ConstructSDandField(). There are + two G4MultiFunctionalDetector objects: one for the Crystal (EnergyDeposit), + and one for the Patient (DoseDeposit) + + B3Run::RecordEvent() collects informations event per event + from the hits collections, and accumulates statistic for + RunAction::EndOfRunAction(). + + In multi-threading mode the statistics accumulated per workers is merged + to the master in Run::Merge(). + +\section B3_s6 STACKING ACTION + + Beta decay of Fluor generates a neutrino. One wishes not to track this + neutrino; therefore one kills it immediately, before created particles + are put in a stack. + The function B3StackingAction::ClassifyNewTrack() is invoked by G4 kernel + each time a new particle is created. + +
+ +The following paragraphs are common to all basic examples + +\section B3_A VISUALISATION + + The visualization manager is set via the G4VisExecutive class + in the main () function in exampleB3.cc. + The initialisation of the drawing is done via a set of /vis/ commands + in the macro vis.mac. This macro is automatically read from + the main function when the example is used in interactive running mode. + + By default, vis.mac opens an OpenGL viewer (/vis/open OGL). + The user can change the initial viewer by commenting out this line + and instead uncommenting one of the other /vis/open statements, such as + HepRepFile or DAWNFILE (which produce files that can be viewed with the + HepRApp and DAWN viewers, respectively). Note that one can always + open new viewers at any time from the command line. For example, if + you already have a view in, say, an OpenGL window with a name + "viewer-0", then +\verbatim +/vis/open DAWNFILE +\endverbatim + then to get the same view +\verbatim +/vis/viewer/copyView viewer-0 +\endverbatim + or to get the same view *plus* scene-modifications +\verbatim +/vis/viewer/set/all viewer-0 +\endverbatim + then to see the result +\verbatim +/vis/viewer/flush +\endverbatim + + The DAWNFILE, HepRepFile drivers are always available + (since they require no external libraries), but the OGL driver requires + that the Geant4 libraries have been built with the OpenGL option. + + For more information on visualization, including information on how to + install and run DAWN, OpenGL and HepRApp, see the visualization tutorials, + for example,\n + - + OpenGL Tutorial + - + DAWN Tutorial + - + HepRApp Tutorial + + The tracks are automatically drawn at the end of each event, accumulated + for all events and erased at the beginning of the next run. + +\section B3_B USER INTERFACES + + The user command interface is set via the G4UIExecutive class + in the main () function in exampleB3.cc + The selection of the user command interface is then done automatically + according to the Geant4 configuration or it can be done explicitly via + the third argument of the G4UIExecutive constructor (see exampleB4a.cc). + +\section B3_C HOW TO RUN + + - Execute exampleB3 in the 'interactive mode' with visualization +\verbatim +% exampleB3 +and type in the commands from run1.mac line by line: +Idle> /control/verbose 2 +Idle> /tracking/verbose 2 +Idle> /run/beamOn 1 +Idle> ... +Idle> exit +\endverbatim + or +\verbatim +Idle> /control/execute run1.mac +.... +Idle> exit +\endverbatim + + - Execute exampleB3 in the 'batch' mode from macro files + (without visualization) +\verbatim +% exampleB3 run2.mac +% exampleB3 exampleB3.in > exampleB3.out +\endverbatim + +*/ diff --git a/examples/basic/B3/B3a/History b/examples/basic/B3/B3a/History deleted file mode 100644 index b14498aaaf..0000000000 --- a/examples/basic/B3/B3a/History +++ /dev/null @@ -1,90 +0,0 @@ -$Id: History 89902 2015-05-04 09:30:08Z ihrivnac $ --------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Example B3 History file - ----------------------- -This file should be used by the G4 example coordinator to briefly -summarize all major modifications introduced in the code and keep -track of all tags. - - ---------------------------------------------------------- - * Reverse chronological order (last date on top), please * - ---------------------------------------------------------- - -04/05/15 I. Hrivnacova (exampleB3-V10-01-00) -- Coding guidelines: removed empty lines - -29/11/14 I. Hrivnacova -- Use G4endl instead of \n in G4cout; - this makes each new line in the output on threads preceded with - G4WTN > - -06/11/14 I. Hrivnacova -- Finalized modifications in previous tag (01): - - Removed G4UI_USE/G4VIS_USE tests and init.mac macro (not needed) - - Moved G4UIExecutive at the beginning of main() in all examples - - Perform run initialization in macros instead of main() - -04/11/14 L. Garnier (exampleB3-V10-00-01) -- Remove old G4UI_USE/G4VIS_USE -- Move G4UIExecutive at the beginning of main() - -29/10/13 I. Hrivnacova (exampleB3-V09-06-06) -- Removed SetNumberOfThreads(4) from main (use Geant4 default) -- Updated README - -09/09/13 M.Asai (exampleB3-V09-06-05) -- B3PrimaryGeneratorAction.cc : Change G4ParticleTable::GetIon() to - G4IonTable::GetIon(), as the former method becomes obsolete. - -13/06/13 mma (exampleB3-V09-06-04) - Fixes for MT: -- Set sensitive detector via SetSensitiveDetector(..) -- Get hits collection IDs in B3Run::RecordEvent (and not B3Run constructor) -- Add a test for primary generator action in B3RunAction::EndOfRunAction() - as it does not exist on master - -05/06/13 mma (exampleB3-V09-06-03) -- add section about ACTION INITALIZATION to README and .README - -01/06/13 mma (exampleB3-V09-06-02) -- Migration for MT: - forgotten to add B3Run - -31/05/13 mma (exampleB3-V09-06-01) -- Migration for MT: - Added B3ActionInitialization, B3Run - Removed B3EventAction - and updated actions classes accordingly. - README files still need to be updated. - -28/02/13 I. Hrivnacova -- When building materials with NistManager - 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. - -21/11/11 I. Hrivnacova -- Improved vis.mac -- Removed alternative detector construction class - -14/11/11 I. Hrivnacova -- The first tagged version of the new B3 example - (tagged in basic). - -11-11-11 (mma) -- EventAction: printModulo 10000 - -01-11-11 (mma) -- DetectorConstruction2: - add an offset when replicate dPhi - -29-09-11 (mma) -- DetectorConstruction: - replace crystal shape Trd by Box - - add a gap for wrapping - -27-06-11 michel maire -- Created. diff --git a/examples/basic/B3/B3a/exampleB3a.out b/examples/basic/B3/B3a/exampleB3a.out index 1077025ca7..d24ad55ccc 100644 --- a/examples/basic/B3/B3a/exampleB3a.out +++ b/examples/basic/B3/B3a/exampleB3a.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -203,16 +205,16 @@ Checking overlaps for volume Patient ... OK! G4SDManager::AddNewCollection : the collection is registered at 1 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 2 -New sensitive detector is registored at / +New sensitive detector is registered at / # /run/beamOn 10000 ### Run 0 start. --------------------End of Global Run----------------------- - The run was 10000 events Nb of 'good' e+ annihilations: 1294 - Total dose in patient : 291.523 picoGy + The run was 10000 events Nb of 'good' e+ annihilations: 1249 + Total dose in patient : 290.467 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/basic/B3/B3a/src/B3aEventAction.cc b/examples/basic/B3/B3a/src/B3aEventAction.cc index f64bf04528..27246bc891 100644 --- a/examples/basic/B3/B3a/src/B3aEventAction.cc +++ b/examples/basic/B3/B3a/src/B3aEventAction.cc @@ -45,8 +45,8 @@ B3aEventAction::B3aEventAction(B3aRunAction* runAction) : G4UserEventAction(), fRunAction(runAction), - fCollID_cryst(0), - fCollID_patient(0) + fCollID_cryst(-1), + fCollID_patient(-1) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -56,16 +56,8 @@ B3aEventAction::~B3aEventAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void B3aEventAction::BeginOfEventAction(const G4Event* evt ) -{ - G4int evtNb = evt->GetEventID(); - - if (evtNb == 0) { - G4SDManager* SDMan = G4SDManager::GetSDMpointer(); - fCollID_cryst = SDMan->GetCollectionID("crystal/edep"); - fCollID_patient = SDMan->GetCollectionID("patient/dose"); - } -} +void B3aEventAction::BeginOfEventAction(const G4Event* /*evt*/) +{ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,6 +68,13 @@ void B3aEventAction::EndOfEventAction(const G4Event* evt ) G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); if(!HCE) return; + // Get hits collections IDs + if (fCollID_cryst < 0) { + G4SDManager* SDMan = G4SDManager::GetSDMpointer(); + fCollID_cryst = SDMan->GetCollectionID("crystal/edep"); + fCollID_patient = SDMan->GetCollectionID("patient/dose"); + } + //Energy in crystals : identify 'good events' // const G4double eThreshold = 500*keV; @@ -103,7 +102,7 @@ void B3aEventAction::EndOfEventAction(const G4Event* evt ) ///G4int copyNb = (itr->first); dose = *(itr->second); } - if (dose > 0.) fRunAction->SumDose(dose); + if (dose > 0.) fRunAction->SumDose(dose); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/basic/B3/B3b/.README b/examples/basic/B3/B3b/.README new file mode 100644 index 0000000000..bd9ebce828 --- /dev/null +++ b/examples/basic/B3/B3b/.README @@ -0,0 +1,186 @@ +//$Id: .README 94957 2016-01-08 13:27:26Z gcosmo $ + +///\file "B3/.README" +///\brief Example B3 README page + +/*! \page ExampleB3 Example B3 + + This example simulates schematically a Positron Emitted Tomography system. + +\section B3_s1 GEOMETRY DEFINITION + + The support of gamma detection are scintillating crystals. A small number + of such crystals are optically grouped in a matrix of crystals. In + this example, individual crystals are not described; only the matrix of + crystals is and it is still called 'Crystal' hereafter. + + Crystals are circularly arranged to form a ring. Few rings make up the full + detector (gamma camera). This is done by positionning Crystals in + Ring with an appropriate rotation matrix. Several copies of Ring are + then placed in the full detector. + + The head of a patient is schematised as a homogeneous cylinder of brain + tissue, placed at the center of full detector. + + The Crystal material, Lu2SiO5, is not included in the G4Nist database. + Therefore, it is explicitly built in DefineMaterials(). + +\section B3_s2 PHYSICS LIST + + The physics list contains standard electromagnetic processes and the + radioactiveDecay module for GenericIon. It is defined in the B3PhysicsList + class as a Geant4 modular physics list with registered physics builders + provided in Geant4: + - G4DecayPhysics - defines all particles and their decay processes + - G4RadioactiveDecayPhysics - defines radioactiveDecay for GenericIon + - G4EmStandardPhysics - defines all EM standard processes + + This physics list requires data files for: + - low energy electromagnetic processes which path is defined via + the G4LEDATA envirnoment variable + - radioactive decay hadronic processes which path is defined via + the G4RADIOACTIVEDATA envirnoment variable. + + See more on installation of the datasets in + + Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets . + +\section B3_s3 ACTION INITALIZATION + + A newly introduced class, B1ActionInitialization, instantiates and registers + to Geant4 kernel all user action classes. + + While in sequential mode the action classes are instatiated just once, + via invoking the method: + B3ActionInitialization::Build() + in multi-threading mode the same method is invoked for each thread worker + and so all user action classes are defined thread-local. + + A run action class is instantiated both thread-local + and global that's why its instance is created also in the method + B3ActionInitialization::BuildForMaster() + which is invoked only in multi-threading mode. + +\section B3_s4 PRIMARY GENERATOR + + The default particle beam is an ion (F18), at rest, randomly distributed + within a zone inside a patient and is defined in + B3PrimaryGeneratorAction::GeneratePrimaries(). + The type of a primary particle can be changed with G4ParticleGun commands + (see run2.mac). + +\section B3_s5 DETECTOR RESPONSE : scorers + + A 'good' event is an event in which an identical energy of 511 keV is + deposited in two separate Crystals. A count of the number of such events + corresponds to a measure of the efficiency of the PET system. + The total dose deposited in a patient during a run is also computed. + + Scorers are defined in DetectorConstruction::ConstructSDandField(). There are + two G4MultiFunctionalDetector objects: one for the Crystal (EnergyDeposit), + and one for the Patient (DoseDeposit) + + B3Run::RecordEvent() collects informations event per event + from the hits collections, and accumulates statistic for + RunAction::EndOfRunAction(). + + In multi-threading mode the statistics accumulated per workers is merged + to the master in Run::Merge(). + +\section B3_s6 STACKING ACTION + + Beta decay of Fluor generates a neutrino. One wishes not to track this + neutrino; therefore one kills it immediately, before created particles + are put in a stack. + The function B3StackingAction::ClassifyNewTrack() is invoked by G4 kernel + each time a new particle is created. + +
+ +The following paragraphs are common to all basic examples + +\section B3_A VISUALISATION + + The visualization manager is set via the G4VisExecutive class + in the main () function in exampleB3.cc. + The initialisation of the drawing is done via a set of /vis/ commands + in the macro vis.mac. This macro is automatically read from + the main function when the example is used in interactive running mode. + + By default, vis.mac opens an OpenGL viewer (/vis/open OGL). + The user can change the initial viewer by commenting out this line + and instead uncommenting one of the other /vis/open statements, such as + HepRepFile or DAWNFILE (which produce files that can be viewed with the + HepRApp and DAWN viewers, respectively). Note that one can always + open new viewers at any time from the command line. For example, if + you already have a view in, say, an OpenGL window with a name + "viewer-0", then +\verbatim +/vis/open DAWNFILE +\endverbatim + then to get the same view +\verbatim +/vis/viewer/copyView viewer-0 +\endverbatim + or to get the same view *plus* scene-modifications +\verbatim +/vis/viewer/set/all viewer-0 +\endverbatim + then to see the result +\verbatim +/vis/viewer/flush +\endverbatim + + The DAWNFILE, HepRepFile drivers are always available + (since they require no external libraries), but the OGL driver requires + that the Geant4 libraries have been built with the OpenGL option. + + For more information on visualization, including information on how to + install and run DAWN, OpenGL and HepRApp, see the visualization tutorials, + for example,\n + - + OpenGL Tutorial + - + DAWN Tutorial + - + HepRApp Tutorial + + The tracks are automatically drawn at the end of each event, accumulated + for all events and erased at the beginning of the next run. + +\section B3_B USER INTERFACES + + The user command interface is set via the G4UIExecutive class + in the main () function in exampleB3.cc + The selection of the user command interface is then done automatically + according to the Geant4 configuration or it can be done explicitly via + the third argument of the G4UIExecutive constructor (see exampleB4a.cc). + +\section B3_C HOW TO RUN + + - Execute exampleB3 in the 'interactive mode' with visualization +\verbatim +% exampleB3 +and type in the commands from run1.mac line by line: +Idle> /control/verbose 2 +Idle> /tracking/verbose 2 +Idle> /run/beamOn 1 +Idle> ... +Idle> exit +\endverbatim + or +\verbatim +Idle> /control/execute run1.mac +.... +Idle> exit +\endverbatim + + - Execute exampleB3 in the 'batch' mode from macro files + (without visualization) +\verbatim +% exampleB3 run2.mac +% exampleB3 exampleB3.in > exampleB3.out +\endverbatim + +*/ diff --git a/examples/basic/B3/B3b/History b/examples/basic/B3/B3b/History deleted file mode 100644 index b14498aaaf..0000000000 --- a/examples/basic/B3/B3b/History +++ /dev/null @@ -1,90 +0,0 @@ -$Id: History 89902 2015-05-04 09:30:08Z ihrivnac $ --------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Example B3 History file - ----------------------- -This file should be used by the G4 example coordinator to briefly -summarize all major modifications introduced in the code and keep -track of all tags. - - ---------------------------------------------------------- - * Reverse chronological order (last date on top), please * - ---------------------------------------------------------- - -04/05/15 I. Hrivnacova (exampleB3-V10-01-00) -- Coding guidelines: removed empty lines - -29/11/14 I. Hrivnacova -- Use G4endl instead of \n in G4cout; - this makes each new line in the output on threads preceded with - G4WTN > - -06/11/14 I. Hrivnacova -- Finalized modifications in previous tag (01): - - Removed G4UI_USE/G4VIS_USE tests and init.mac macro (not needed) - - Moved G4UIExecutive at the beginning of main() in all examples - - Perform run initialization in macros instead of main() - -04/11/14 L. Garnier (exampleB3-V10-00-01) -- Remove old G4UI_USE/G4VIS_USE -- Move G4UIExecutive at the beginning of main() - -29/10/13 I. Hrivnacova (exampleB3-V09-06-06) -- Removed SetNumberOfThreads(4) from main (use Geant4 default) -- Updated README - -09/09/13 M.Asai (exampleB3-V09-06-05) -- B3PrimaryGeneratorAction.cc : Change G4ParticleTable::GetIon() to - G4IonTable::GetIon(), as the former method becomes obsolete. - -13/06/13 mma (exampleB3-V09-06-04) - Fixes for MT: -- Set sensitive detector via SetSensitiveDetector(..) -- Get hits collection IDs in B3Run::RecordEvent (and not B3Run constructor) -- Add a test for primary generator action in B3RunAction::EndOfRunAction() - as it does not exist on master - -05/06/13 mma (exampleB3-V09-06-03) -- add section about ACTION INITALIZATION to README and .README - -01/06/13 mma (exampleB3-V09-06-02) -- Migration for MT: - forgotten to add B3Run - -31/05/13 mma (exampleB3-V09-06-01) -- Migration for MT: - Added B3ActionInitialization, B3Run - Removed B3EventAction - and updated actions classes accordingly. - README files still need to be updated. - -28/02/13 I. Hrivnacova -- When building materials with NistManager - 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. - -21/11/11 I. Hrivnacova -- Improved vis.mac -- Removed alternative detector construction class - -14/11/11 I. Hrivnacova -- The first tagged version of the new B3 example - (tagged in basic). - -11-11-11 (mma) -- EventAction: printModulo 10000 - -01-11-11 (mma) -- DetectorConstruction2: - add an offset when replicate dPhi - -29-09-11 (mma) -- DetectorConstruction: - replace crystal shape Trd by Box - - add a gap for wrapping - -27-06-11 michel maire -- Created. diff --git a/examples/basic/B3/B3b/exampleB3b.out b/examples/basic/B3/B3b/exampleB3b.out index 54017ad328..f9134d137e 100644 --- a/examples/basic/B3/B3b/exampleB3b.out +++ b/examples/basic/B3/B3b/exampleB3b.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -203,9 +205,9 @@ Checking overlaps for volume Patient ... OK! G4SDManager::AddNewCollection : the collection is registered at 1 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 2 -New sensitive detector is registored at / +New sensitive detector is registered at / # /run/beamOn 10000 ### Run 0 start. @@ -213,8 +215,8 @@ New sensitive detector is registored at / ---> end of event: 0 --------------------End of Global Run----------------------- - The run was 10000 events Nb of 'good' e+ annihilations: 1294 - Total dose in patient : 291.523 picoGy + The run was 10000 events Nb of 'good' e+ annihilations: 1249 + Total dose in patient : 290.467 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/basic/B3/History b/examples/basic/B3/History index fb2ff03527..e4af5bd63a 100644 --- a/examples/basic/B3/History +++ b/examples/basic/B3/History @@ -1,4 +1,4 @@ -$Id: History 94093 2015-11-05 15:16:06Z gcosmo $ +$Id: History 97070 2016-05-24 08:49:17Z gcosmo $ -------------------------------------------------- ========================================================= @@ -15,6 +15,14 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +24/05/16 I. Hrivnacova (exampleB3-V10-02-01) +- Fixed compiler warning introduced in the previous update + +20/05/16 I. Hrivnacova (exampleB3-V10-02-00) +- Fixed initialization of the hits collections IDs in B3aEventAction + (this fixes the problem report #1862) +- Removed History files from B3a and B3b + 05/11/15 I. Hrivnacova (exampleB3-V10-01-01) - Splitting example in two variants of merging data: -B3a (new) with the code based on G4Parameter diff --git a/examples/basic/B3/README b/examples/basic/B3/README index 4d3526a06c..17b42104bd 100644 --- a/examples/basic/B3/README +++ b/examples/basic/B3/README @@ -1,4 +1,4 @@ -$Id: README 94093 2015-11-05 15:16:06Z gcosmo $ +$Id: README 94957 2016-01-08 13:27:26Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -41,6 +41,8 @@ $Id: README 94093 2015-11-05 15:16:06Z gcosmo $ This physics list requires data files for: - low energy electromagnetic processes which path is defined via the G4LEDATA envirnoment variable + - nuclides properties which path is defined via + the G4ENSDFSTATEDATA envirnoment variable - radioactive decay hadronic processes which path is defined via the G4RADIOACTIVEDATA envirnoment variable. diff --git a/examples/basic/B4/.README.txt b/examples/basic/B4/.README.txt index 844a56808d..7ad22c90c6 100644 --- a/examples/basic/B4/.README.txt +++ b/examples/basic/B4/.README.txt @@ -1,4 +1,4 @@ -//$Id: .README.txt 94710 2015-12-03 16:15:05Z gunter $ +//$Id: .README.txt 94957 2016-01-08 13:27:26Z gcosmo $ ///\file "B4/.README.txt" ///\brief Example B4 README page @@ -66,8 +66,8 @@ See more on installation of the datasets in Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets . - The following datasets: G4LEDATA, G4LEVELGAMMADATA and G4SAIDXSDATA are - mandatory for this example. + The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4SAIDXSDATA and + G4ENSDFSTATEDATA are mandatory for this example. In addition the build-in interactive command: \verbatim diff --git a/examples/basic/B4/B4a/exampleB4a.cc b/examples/basic/B4/B4a/exampleB4a.cc index e192125246..976eb45c4f 100644 --- a/examples/basic/B4/B4a/exampleB4a.cc +++ b/examples/basic/B4/B4a/exampleB4a.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: exampleB4a.cc 86065 2014-11-07 08:51:15Z gcosmo $ +// $Id: exampleB4a.cc 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file exampleB4a.cc /// \brief Main program of the B4a example @@ -91,7 +91,7 @@ int main(int argc,char** argv) // G4UIExecutive* ui = 0; if ( ! macro.size() ) { - ui = new G4UIExecutive(argc, argv); + ui = new G4UIExecutive(argc, argv, session); } // Choose the Random engine diff --git a/examples/basic/B4/B4a/exampleB4a.out b/examples/basic/B4/B4a/exampleB4a.out index 2df2339b0e..3b82ad8e6b 100644 --- a/examples/basic/B4/B4a/exampleB4a.out +++ b/examples/basic/B4/B4a/exampleB4a.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -101,6 +103,14 @@ Checking overlaps for volume Gap ... OK! ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of liquidArgon ] ------------------------------------------------------------ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -218,7 +228,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -232,7 +242,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -341,7 +351,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -374,7 +384,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -500,6 +510,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -774,15 +789,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 271.624 MeV total track length: 19.3544 cm - Gap: total energy: 18.0399 MeV total track length: 8.76581 cm + Absorber: total energy: 288.973 MeV total track length: 20.951 cm + Gap: total energy: 7.92508 MeV total track length: 3.60411 cm ----> print histograms statistic for the entire run - EAbs : mean = 271.624 MeV rms = 0 eV - EGap : mean = 18.0399 MeV rms = 0 eV - LAbs : mean = 19.3544 cm rms = 0 fm - LGap : mean = 8.76581 cm rms = 0 fm + EAbs : mean = 288.973 MeV rms = 0 eV + EGap : mean = 7.92508 MeV rms = 0 eV + LAbs : mean = 20.951 cm rms = 0 fm + LGap : mean = 3.60411 cm rms = 0 fm ... write Root file : B4.root - done Transportation, msc, hIoni, ionIoni hBrems, hPairProd, CoulombScat, eIoni @@ -915,7 +930,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -929,7 +944,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1038,7 +1053,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1071,7 +1086,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1163,15 +1178,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 277.786 MeV total track length: 19.8555 cm - Gap: total energy: 16.3756 MeV total track length: 7.83325 cm + Absorber: total energy: 257.259 MeV total track length: 18.7821 cm + Gap: total energy: 19.9473 MeV total track length: 10.1826 cm ----> print histograms statistic for the entire run - EAbs : mean = 277.786 MeV rms = 0 eV - EGap : mean = 16.3756 MeV rms = 0 eV - LAbs : mean = 19.8555 cm rms = 0 fm - LGap : mean = 7.83325 cm rms = 0 fm + EAbs : mean = 257.259 MeV rms = 0 eV + EGap : mean = 19.9473 MeV rms = 0 eV + LAbs : mean = 18.7821 cm rms = 0 fm + LGap : mean = 10.1826 cm rms = 0 fm ... write Root file : B4.root - done phot: for gamma SubType= 12 BuildTable= 0 @@ -1289,7 +1304,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1303,7 +1318,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1412,7 +1427,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1445,7 +1460,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1537,15 +1552,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 418.811 MeV total track length: 30.1035 cm - Gap: total energy: 16.2571 MeV total track length: 8.25361 cm + Absorber: total energy: 457.539 MeV total track length: 32.8939 cm + Gap: total energy: 22.9868 MeV total track length: 11.5387 cm ----> print histograms statistic for the entire run - EAbs : mean = 418.811 MeV rms = 0 eV - EGap : mean = 16.2571 MeV rms = 0 eV - LAbs : mean = 30.1035 cm rms = 0 fm - LGap : mean = 8.25361 cm rms = 0 fm + EAbs : mean = 457.539 MeV rms = 0 eV + EGap : mean = 22.9868 MeV rms = 0 eV + LAbs : mean = 32.8939 cm rms = 0 fm + LGap : mean = 11.5387 cm rms = 0 fm ... write Root file : B4.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/basic/B4/B4a/include/B4PrimaryGeneratorAction.hh b/examples/basic/B4/B4a/include/B4PrimaryGeneratorAction.hh index 5fcc56e670..0ce206833e 100644 --- a/examples/basic/B4/B4a/include/B4PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4a/include/B4PrimaryGeneratorAction.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: B4PrimaryGeneratorAction.hh 68058 2013-03-13 14:47:43Z gcosmo $ +// $Id: B4PrimaryGeneratorAction.hh 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file B4PrimaryGeneratorAction.hh /// \brief Definition of the B4PrimaryGeneratorAction class @@ -62,5 +62,3 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/basic/B4/B4b/exampleB4b.cc b/examples/basic/B4/B4b/exampleB4b.cc index 47dcb379c8..19de76321c 100644 --- a/examples/basic/B4/B4b/exampleB4b.cc +++ b/examples/basic/B4/B4b/exampleB4b.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: exampleB4b.cc 86065 2014-11-07 08:51:15Z gcosmo $ +// $Id: exampleB4b.cc 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file exampleB4b.cc /// \brief Main program of the B4b example @@ -91,7 +91,7 @@ int main(int argc,char** argv) // G4UIExecutive* ui = 0; if ( ! macro.size() ) { - ui = new G4UIExecutive(argc, argv); + ui = new G4UIExecutive(argc, argv, session); } // Choose the Random engine diff --git a/examples/basic/B4/B4b/exampleB4b.out b/examples/basic/B4/B4b/exampleB4b.out index 39a423d283..424de591a0 100644 --- a/examples/basic/B4/B4b/exampleB4b.out +++ b/examples/basic/B4/B4b/exampleB4b.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -101,6 +103,14 @@ Checking overlaps for volume Gap ... OK! ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of liquidArgon ] ------------------------------------------------------------ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -218,7 +228,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -232,7 +242,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -341,7 +351,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -374,7 +384,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -500,6 +510,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -775,15 +790,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 271.624 MeV total track length: 19.3544 cm - Gap: total energy: 18.0399 MeV total track length: 8.76581 cm + Absorber: total energy: 288.973 MeV total track length: 20.951 cm + Gap: total energy: 7.92508 MeV total track length: 3.60411 cm ----> print histograms statistic for the entire run - EAbs : mean = 271.624 MeV rms = 0 eV - EGap : mean = 18.0399 MeV rms = 0 eV - LAbs : mean = 19.3544 cm rms = 0 fm - LGap : mean = 8.76581 cm rms = 0 fm + EAbs : mean = 288.973 MeV rms = 0 eV + EGap : mean = 7.92508 MeV rms = 0 eV + LAbs : mean = 20.951 cm rms = 0 fm + LGap : mean = 3.60411 cm rms = 0 fm ... write Root file : B4.root - done Transportation, msc, hIoni, ionIoni hBrems, hPairProd, CoulombScat, eIoni @@ -916,7 +931,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -930,7 +945,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1039,7 +1054,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1072,7 +1087,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1165,15 +1180,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 277.786 MeV total track length: 19.8555 cm - Gap: total energy: 16.3756 MeV total track length: 7.83325 cm + Absorber: total energy: 257.259 MeV total track length: 18.7821 cm + Gap: total energy: 19.9473 MeV total track length: 10.1826 cm ----> print histograms statistic for the entire run - EAbs : mean = 277.786 MeV rms = 0 eV - EGap : mean = 16.3756 MeV rms = 0 eV - LAbs : mean = 19.8555 cm rms = 0 fm - LGap : mean = 7.83325 cm rms = 0 fm + EAbs : mean = 257.259 MeV rms = 0 eV + EGap : mean = 19.9473 MeV rms = 0 eV + LAbs : mean = 18.7821 cm rms = 0 fm + LGap : mean = 10.1826 cm rms = 0 fm ... write Root file : B4.root - done phot: for gamma SubType= 12 BuildTable= 0 @@ -1291,7 +1306,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1305,7 +1320,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1414,7 +1429,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1447,7 +1462,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1540,15 +1555,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 418.811 MeV total track length: 30.1035 cm - Gap: total energy: 16.2571 MeV total track length: 8.25361 cm + Absorber: total energy: 457.539 MeV total track length: 32.8939 cm + Gap: total energy: 22.9868 MeV total track length: 11.5387 cm ----> print histograms statistic for the entire run - EAbs : mean = 418.811 MeV rms = 0 eV - EGap : mean = 16.2571 MeV rms = 0 eV - LAbs : mean = 30.1035 cm rms = 0 fm - LGap : mean = 8.25361 cm rms = 0 fm + EAbs : mean = 457.539 MeV rms = 0 eV + EGap : mean = 22.9868 MeV rms = 0 eV + LAbs : mean = 32.8939 cm rms = 0 fm + LGap : mean = 11.5387 cm rms = 0 fm ... write Root file : B4.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/basic/B4/B4b/include/B4PrimaryGeneratorAction.hh b/examples/basic/B4/B4b/include/B4PrimaryGeneratorAction.hh index 5fcc56e670..0ce206833e 100644 --- a/examples/basic/B4/B4b/include/B4PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4b/include/B4PrimaryGeneratorAction.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: B4PrimaryGeneratorAction.hh 68058 2013-03-13 14:47:43Z gcosmo $ +// $Id: B4PrimaryGeneratorAction.hh 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file B4PrimaryGeneratorAction.hh /// \brief Definition of the B4PrimaryGeneratorAction class @@ -62,5 +62,3 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/basic/B4/B4c/exampleB4c.cc b/examples/basic/B4/B4c/exampleB4c.cc index b155702e3b..b3464f620a 100644 --- a/examples/basic/B4/B4c/exampleB4c.cc +++ b/examples/basic/B4/B4c/exampleB4c.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: exampleB4c.cc 86065 2014-11-07 08:51:15Z gcosmo $ +// $Id: exampleB4c.cc 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file exampleB4c.cc /// \brief Main program of the B4c example @@ -91,7 +91,7 @@ int main(int argc,char** argv) // G4UIExecutive* ui = 0; if ( ! macro.size() ) { - ui = new G4UIExecutive(argc, argv); + ui = new G4UIExecutive(argc, argv, session); } // Choose the Random engine diff --git a/examples/basic/B4/B4c/exampleB4c.out b/examples/basic/B4/B4c/exampleB4c.out index 2df2339b0e..3b82ad8e6b 100644 --- a/examples/basic/B4/B4c/exampleB4c.out +++ b/examples/basic/B4/B4c/exampleB4c.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -101,6 +103,14 @@ Checking overlaps for volume Gap ... OK! ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of liquidArgon ] ------------------------------------------------------------ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -218,7 +228,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -232,7 +242,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -341,7 +351,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -374,7 +384,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -500,6 +510,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -774,15 +789,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 271.624 MeV total track length: 19.3544 cm - Gap: total energy: 18.0399 MeV total track length: 8.76581 cm + Absorber: total energy: 288.973 MeV total track length: 20.951 cm + Gap: total energy: 7.92508 MeV total track length: 3.60411 cm ----> print histograms statistic for the entire run - EAbs : mean = 271.624 MeV rms = 0 eV - EGap : mean = 18.0399 MeV rms = 0 eV - LAbs : mean = 19.3544 cm rms = 0 fm - LGap : mean = 8.76581 cm rms = 0 fm + EAbs : mean = 288.973 MeV rms = 0 eV + EGap : mean = 7.92508 MeV rms = 0 eV + LAbs : mean = 20.951 cm rms = 0 fm + LGap : mean = 3.60411 cm rms = 0 fm ... write Root file : B4.root - done Transportation, msc, hIoni, ionIoni hBrems, hPairProd, CoulombScat, eIoni @@ -915,7 +930,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -929,7 +944,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1038,7 +1053,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1071,7 +1086,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1163,15 +1178,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 277.786 MeV total track length: 19.8555 cm - Gap: total energy: 16.3756 MeV total track length: 7.83325 cm + Absorber: total energy: 257.259 MeV total track length: 18.7821 cm + Gap: total energy: 19.9473 MeV total track length: 10.1826 cm ----> print histograms statistic for the entire run - EAbs : mean = 277.786 MeV rms = 0 eV - EGap : mean = 16.3756 MeV rms = 0 eV - LAbs : mean = 19.8555 cm rms = 0 fm - LGap : mean = 7.83325 cm rms = 0 fm + EAbs : mean = 257.259 MeV rms = 0 eV + EGap : mean = 19.9473 MeV rms = 0 eV + LAbs : mean = 18.7821 cm rms = 0 fm + LGap : mean = 10.1826 cm rms = 0 fm ... write Root file : B4.root - done phot: for gamma SubType= 12 BuildTable= 0 @@ -1289,7 +1304,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1303,7 +1318,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1412,7 +1427,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1445,7 +1460,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1537,15 +1552,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 418.811 MeV total track length: 30.1035 cm - Gap: total energy: 16.2571 MeV total track length: 8.25361 cm + Absorber: total energy: 457.539 MeV total track length: 32.8939 cm + Gap: total energy: 22.9868 MeV total track length: 11.5387 cm ----> print histograms statistic for the entire run - EAbs : mean = 418.811 MeV rms = 0 eV - EGap : mean = 16.2571 MeV rms = 0 eV - LAbs : mean = 30.1035 cm rms = 0 fm - LGap : mean = 8.25361 cm rms = 0 fm + EAbs : mean = 457.539 MeV rms = 0 eV + EGap : mean = 22.9868 MeV rms = 0 eV + LAbs : mean = 32.8939 cm rms = 0 fm + LGap : mean = 11.5387 cm rms = 0 fm ... write Root file : B4.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/basic/B4/B4c/include/B4PrimaryGeneratorAction.hh b/examples/basic/B4/B4c/include/B4PrimaryGeneratorAction.hh index 5fcc56e670..0ce206833e 100644 --- a/examples/basic/B4/B4c/include/B4PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4c/include/B4PrimaryGeneratorAction.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: B4PrimaryGeneratorAction.hh 68058 2013-03-13 14:47:43Z gcosmo $ +// $Id: B4PrimaryGeneratorAction.hh 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file B4PrimaryGeneratorAction.hh /// \brief Definition of the B4PrimaryGeneratorAction class @@ -62,5 +62,3 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/basic/B4/B4d/exampleB4d.cc b/examples/basic/B4/B4d/exampleB4d.cc index 4c2b032f0b..858843a715 100644 --- a/examples/basic/B4/B4d/exampleB4d.cc +++ b/examples/basic/B4/B4d/exampleB4d.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: exampleB4d.cc 86065 2014-11-07 08:51:15Z gcosmo $ +// $Id: exampleB4d.cc 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file exampleB4d.cc /// \brief Main program of the B4d example @@ -92,7 +92,7 @@ int main(int argc,char** argv) // G4UIExecutive* ui = 0; if ( ! macro.size() ) { - ui = new G4UIExecutive(argc, argv); + ui = new G4UIExecutive(argc, argv, session); } // Choose the Random engine diff --git a/examples/basic/B4/B4d/exampleB4d.out b/examples/basic/B4/B4d/exampleB4d.out index 3511ef5d2f..cb5474f172 100644 --- a/examples/basic/B4/B4d/exampleB4d.out +++ b/examples/basic/B4/B4d/exampleB4d.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -103,10 +105,18 @@ Checking overlaps for volume Gap ... OK! ------------------------------------------------------------ G4SDManager::AddNewCollection : the collection is registered at 1 G4SDManager::AddNewCollection : the collection is registered at 2 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 3 G4SDManager::AddNewCollection : the collection is registered at 4 -New sensitive detector is registored at / +New sensitive detector is registered at / +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -224,7 +234,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -238,7 +248,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -347,7 +357,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -380,7 +390,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -506,6 +516,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -780,15 +795,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 271.624 MeV total track length: 19.3544 cm - Gap: total energy: 18.0399 MeV total track length: 8.76581 cm + Absorber: total energy: 288.973 MeV total track length: 20.951 cm + Gap: total energy: 7.92508 MeV total track length: 3.60411 cm ----> print histograms statistic for the entire run - EAbs : mean = 271.624 MeV rms = 0 eV - EGap : mean = 18.0399 MeV rms = 0 eV - LAbs : mean = 19.3544 cm rms = 0 fm - LGap : mean = 8.76581 cm rms = 0 fm + EAbs : mean = 288.973 MeV rms = 0 eV + EGap : mean = 7.92508 MeV rms = 0 eV + LAbs : mean = 20.951 cm rms = 0 fm + LGap : mean = 3.60411 cm rms = 0 fm ... write Root file : B4.root - done Transportation, msc, hIoni, ionIoni hBrems, hPairProd, CoulombScat, eIoni @@ -921,7 +936,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -935,7 +950,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1044,7 +1059,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1077,7 +1092,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1169,15 +1184,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 277.786 MeV total track length: 19.8555 cm - Gap: total energy: 16.3756 MeV total track length: 7.83325 cm + Absorber: total energy: 257.259 MeV total track length: 18.7821 cm + Gap: total energy: 19.9473 MeV total track length: 10.1826 cm ----> print histograms statistic for the entire run - EAbs : mean = 277.786 MeV rms = 0 eV - EGap : mean = 16.3756 MeV rms = 0 eV - LAbs : mean = 19.8555 cm rms = 0 fm - LGap : mean = 7.83325 cm rms = 0 fm + EAbs : mean = 257.259 MeV rms = 0 eV + EGap : mean = 19.9473 MeV rms = 0 eV + LAbs : mean = 18.7821 cm rms = 0 fm + LGap : mean = 10.1826 cm rms = 0 fm ... write Root file : B4.root - done phot: for gamma SubType= 12 BuildTable= 0 @@ -1295,7 +1310,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1309,7 +1324,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1418,7 +1433,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1451,7 +1466,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1543,15 +1558,15 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ... open Root analysis file : B4.root - done --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 418.811 MeV total track length: 30.1035 cm - Gap: total energy: 16.2571 MeV total track length: 8.25361 cm + Absorber: total energy: 457.539 MeV total track length: 32.8939 cm + Gap: total energy: 22.9868 MeV total track length: 11.5387 cm ----> print histograms statistic for the entire run - EAbs : mean = 418.811 MeV rms = 0 eV - EGap : mean = 16.2571 MeV rms = 0 eV - LAbs : mean = 30.1035 cm rms = 0 fm - LGap : mean = 8.25361 cm rms = 0 fm + EAbs : mean = 457.539 MeV rms = 0 eV + EGap : mean = 22.9868 MeV rms = 0 eV + LAbs : mean = 32.8939 cm rms = 0 fm + LGap : mean = 11.5387 cm rms = 0 fm ... write Root file : B4.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/basic/B4/B4d/include/B4PrimaryGeneratorAction.hh b/examples/basic/B4/B4d/include/B4PrimaryGeneratorAction.hh index 4f6faa8498..0ce206833e 100644 --- a/examples/basic/B4/B4d/include/B4PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4d/include/B4PrimaryGeneratorAction.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: B4PrimaryGeneratorAction.hh 69223 2013-04-23 12:36:10Z gcosmo $ +// $Id: B4PrimaryGeneratorAction.hh 94808 2015-12-10 08:22:26Z gcosmo $ // /// \file B4PrimaryGeneratorAction.hh /// \brief Definition of the B4PrimaryGeneratorAction class @@ -62,5 +62,3 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/basic/B4/History b/examples/basic/B4/History index 9d64e4c3c0..ab73972eba 100644 --- a/examples/basic/B4/History +++ b/examples/basic/B4/History @@ -15,6 +15,14 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +09/12/15 I. Hrivnacova (exampleB4-V10-02-00) +- Restored the third parameter in G4UIsession construction, which was + lost when moving G4UIExecutive at the beginning of main(). + This fixes the problem report #1802. + +04/05/15 I. Hrivnacova (exampleB4-V10-01-02) +- Coding guidelines: removed empty lines + 18/02/15 I. Hrivnacova (exampleB4-V10-01-01) - Fixed accessing gapHit (problem report #1714) diff --git a/examples/basic/B4/README b/examples/basic/B4/README index c4f8b4bb90..bb850eec64 100644 --- a/examples/basic/B4/README +++ b/examples/basic/B4/README @@ -1,4 +1,4 @@ -$Id: README 88153 2015-02-02 12:23:43Z gcosmo $ +$Id: README 94957 2016-01-08 13:27:26Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -59,8 +59,8 @@ $Id: README 88153 2015-02-02 12:23:43Z gcosmo $ See more on installation of the datasets in Geant4 Installation Guide, Chapter 3.3: Note On Geant4 Datasets: http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch03s03.html - The following datasets: G4LEDATA, G4LEVELGAMMADATA and G4SAIDXSDATA are - mandatory for this example. + The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4SAIDXSDATA and + G4ENSDFSTATEDATA are mandatory for this example. In addition the build-in interactive command: /process/(in)activate processName diff --git a/examples/basic/B5/History b/examples/basic/B5/History index 91f1983efe..2eae9f3412 100644 --- a/examples/basic/B5/History +++ b/examples/basic/B5/History @@ -1,4 +1,4 @@ -$Id: History 94486 2015-11-19 08:33:37Z gcosmo $ +$Id: History 96048 2016-03-10 15:34:12Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10 March 2016 Alberto Ribon (exampleB5-V10-02-00) +- Fixed wrong determination of the copy number in replicas + (thanks to Anna Zaborowska for reporting the problem). + 18 November 2015 Ivana Hrivnacova (exampleB5-V10-01-00) - Extended ntuple with two columns of a vector type in order to provide and example of this analysis use case. diff --git a/examples/basic/B5/exampleB5.out b/examples/basic/B5/exampleB5.out index c4b8966b2d..4e3fd74d39 100644 --- a/examples/basic/B5/exampleB5.out +++ b/examples/basic/B5/exampleB5.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -198,6 +200,14 @@ Checking overlaps for volume wirePlane2Physical ... OK! Checking overlaps for volume EMcalorimeterPhysical ... OK! Checking overlaps for volume HadCalorimeterPhysical ... OK! Checking overlaps for volume HadCalScintiPhysical ... OK! +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -315,7 +325,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -329,7 +339,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -438,7 +448,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -471,7 +481,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -597,6 +607,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -872,24 +887,25 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --> Event 0 starts. >>> Event 0 >>> Simulation truth : proton (-0,0,100000) -Hodoscope 1 has 1 hits. +Hodoscope 1 has 2 hits. Hodoscope[7] 4.9870028631879 (nsec) + Hodoscope[10] 5.2831790714351 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[9] 43.187442586337 (nsec) + Hodoscope[9] 43.187442586224 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6712421658801 (nsec) --- local (x,y) -0.018532663620672, 0.0011782693248463 - Layer[1] : time 8.33913610871 (nsec) --- local (x,y) -0.033658763161782, 0.0094391450998695 - Layer[2] : time 10.00703005185 (nsec) --- local (x,y) -0.050530991841182, 0.017719897232901 - Layer[3] : time 11.674923995494 (nsec) --- local (x,y) -0.0700555069981, 0.02673344761188 - Layer[4] : time 13.342817939159 (nsec) --- local (x,y) -0.089521658838707, 0.03444705664982 + Layer[0] : time 6.67124216588 (nsec) --- local (x,y) -0.01853266362009, 0.0011782693251699 + Layer[1] : time 8.3391361087098 (nsec) --- local (x,y) -0.033658763160679, 0.0094391451004609 + Layer[2] : time 10.00703005185 (nsec) --- local (x,y) -0.050530991839898, 0.017719897233291 + Layer[3] : time 11.674923995494 (nsec) --- local (x,y) -0.070055506996801, 0.026733447612062 + Layer[4] : time 13.342817939158 (nsec) --- local (x,y) -0.089521658837245, 0.034447056649833 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.849808987207 (nsec) --- local (x,y) -147.88104683065, 0.085803203936895 - Layer[1] : time 36.520610065136 (nsec) --- local (x,y) -177.41505795271, 0.088344863243328 - Layer[2] : time 38.191411246557 (nsec) --- local (x,y) -206.94959474, 0.090563330554128 - Layer[3] : time 39.862212545432 (nsec) --- local (x,y) -236.48472789155, 0.092028006985821 - Layer[4] : time 41.533014322408 (nsec) --- local (x,y) -266.02229069336, 0.092607223939585 -EM Calorimeter has 45 hits. Total Edep is 449.53264217638 (MeV) -Hadron Calorimeter has 16 hits. Total Edep is 4260.9222251696 (MeV) + Layer[0] : time 34.849808987255 (nsec) --- local (x,y) -147.88104601764, 0.085803203926758 + Layer[1] : time 36.520610065151 (nsec) --- local (x,y) -177.41505697618, 0.088344863231697 + Layer[2] : time 38.19141124654 (nsec) --- local (x,y) -206.94959359996, 0.090563330540956 + Layer[3] : time 39.862212545383 (nsec) --- local (x,y) -236.48472658798, 0.09202800697119 + Layer[4] : time 41.533014322327 (nsec) --- local (x,y) -266.02228922627, 0.092607223923183 +EM Calorimeter has 49 hits. Total Edep is 413.46624456895 (MeV) +Hadron Calorimeter has 13 hits. Total Edep is 3865.1066471359 (MeV) ... write Root file : B5.root - done ### Run 1 starts. ... open Root analysis file : B5.root - done @@ -897,27 +913,27 @@ Hadron Calorimeter has 16 hits. Total Edep is 4260.9222251696 (MeV) >>> Event 0 >>> Simulation truth : pi+ (-0,0,100000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867880839975 (nsec) -Hodoscope 2 has 3 hits. - Hodoscope[10] 42.694644466021 (nsec) - Hodoscope[9] 344.75570821235 (nsec) - Hodoscope[17] 896.50910662453 (nsec) -Drift Chamber 1 has 7 hits. - Layer[0] : time 6.6709548440571 (nsec) --- local (x,y) 0.028800633317323, -0.0071893187356043 - Layer[1] : time 8.3387769472896 (nsec) --- local (x,y) 0.05002259900567, -0.010026194141514 - Layer[2] : time 10.006599050278 (nsec) --- local (x,y) 0.069392946018092, -0.0099904316712616 - Layer[2] : time 10.047440099008 (nsec) --- local (x,y) 31.87989765699, 8.7439791034143 - Layer[3] : time 11.674421152701 (nsec) --- local (x,y) 0.083134038147325, -0.011560045242924 - Layer[3] : time 12.272179764553 (nsec) --- local (x,y) 423.88144094215, 144.74232025609 - Layer[4] : time 13.342243255262 (nsec) --- local (x,y) 0.098296759310152, -0.013424752940041 + Hodoscope[7] 4.9867880840021 (nsec) +Hodoscope 2 has 5 hits. + Hodoscope[10] 42.694388641747 (nsec) + Hodoscope[6] 347.83528812005 (nsec) + Hodoscope[21] 465.02965893484 (nsec) + Hodoscope[1] 1059.5118077069 (nsec) + Hodoscope[8] 123.08760385117 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6709548441401 (nsec) --- local (x,y) 0.013511887544846, -0.024381379745422 + Layer[1] : time 8.3387769480184 (nsec) --- local (x,y) 0.025170132813917, -0.046953717392802 + Layer[2] : time 10.006599053637 (nsec) --- local (x,y) 0.036174616704177, -0.079220880943465 + Layer[3] : time 11.674421159325 (nsec) --- local (x,y) 0.049311565044134, -0.11105487372779 + Layer[4] : time 13.342243264741 (nsec) --- local (x,y) 0.061756457528591, -0.14185501239139 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.367310079275 (nsec) --- local (x,y) -82.678714956797, -0.10874819291705 - Layer[1] : time 36.036048151298 (nsec) --- local (x,y) -99.252065702836, -0.12049867416408 - Layer[2] : time 37.704786249524 (nsec) --- local (x,y) -115.82565229937, -0.13385944073571 - Layer[3] : time 39.373523710953 (nsec) --- local (x,y) -132.39347423989, -0.1484041617168 - Layer[4] : time 41.042260957724 (nsec) --- local (x,y) -148.95935171409, -0.1642590866048 -EM Calorimeter has 58 hits. Total Edep is 797.43607999902 (MeV) -Hadron Calorimeter has 18 hits. Total Edep is 4575.8775976212 (MeV) + Layer[0] : time 34.367058387212 (nsec) --- local (x,y) -82.727399049595, -0.46133215802402 + Layer[1] : time 36.035795438243 (nsec) --- local (x,y) -99.291492635534, -0.48695402244793 + Layer[2] : time 37.704532107598 (nsec) --- local (x,y) -115.85212778515, -0.51394060013935 + Layer[3] : time 39.373268846783 (nsec) --- local (x,y) -132.41339646499, -0.5401841514467 + Layer[4] : time 41.042005576144 (nsec) --- local (x,y) -148.97457750317, -0.56554509918178 +EM Calorimeter has 59 hits. Total Edep is 23211.621533364 (MeV) +Hadron Calorimeter has 17 hits. Total Edep is 2749.9694093215 (MeV) ... write Root file : B5.root - done ### Run 2 starts. ... open Root analysis file : B5.root - done @@ -925,100 +941,97 @@ Hadron Calorimeter has 18 hits. Total Edep is 4575.8775976212 (MeV) >>> Event 0 >>> Simulation truth : e+ (-0,0,100000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867832232703 (nsec) -Hodoscope 2 has 3 hits. - Hodoscope[9] 43.185992064636 (nsec) - Hodoscope[17] 57.236893581662 (nsec) - Hodoscope[13] 56.073045898925 (nsec) + Hodoscope[7] 4.9867832232728 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[4] 43.319090584967 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6709483419006 (nsec) --- local (x,y) 0.0055412624370815, -0.028576417407934 - Layer[1] : time 8.3387688197073 (nsec) --- local (x,y) 0.010502238818122, -0.051338937252119 - Layer[2] : time 10.006589297464 (nsec) --- local (x,y) 0.014768733645703, -0.073942017106574 - Layer[3] : time 11.674409775179 (nsec) --- local (x,y) 0.020342519626735, -0.095971607069741 - Layer[4] : time 13.342230252645 (nsec) --- local (x,y) 0.025450411887407, -0.11633691532349 -Drift Chamber 2 has 5 hits. - Layer[0] : time 34.848764758378 (nsec) --- local (x,y) -147.45513687211, -0.26680520518999 - Layer[1] : time 36.519485831674 (nsec) --- local (x,y) -176.95654904524, -0.27299635927478 - Layer[2] : time 38.190206571847 (nsec) --- local (x,y) -206.45626556489, -0.27948190543746 - Layer[3] : time 39.860926817901 (nsec) --- local (x,y) -235.95346643989, -0.28773596649014 - Layer[4] : time 41.531646114972 (nsec) --- local (x,y) -265.44583562963, -0.29732665688737 -EM Calorimeter has 47 hits. Total Edep is 85210.396124605 (MeV) -Hadron Calorimeter has 8 hits. Total Edep is 84.872922230458 (MeV) + Layer[0] : time 6.6709483411087 (nsec) --- local (x,y) -0.0098819179717445, -0.0235130645282 + Layer[1] : time 8.3387688186263 (nsec) --- local (x,y) -0.01808027460229, -0.043246143196454 + Layer[2] : time 10.00658929667 (nsec) --- local (x,y) -0.027990209045617, -0.065946665950629 + Layer[3] : time 11.674409775338 (nsec) --- local (x,y) -0.036737096063619, -0.092802359505121 + Layer[4] : time 13.342230254012 (nsec) --- local (x,y) -0.04370650112658, -0.12028923705612 +Drift Chamber 2 has 6 hits. + Layer[0] : time 34.876714189547 (nsec) --- local (x,y) -423.58997524374, -0.44168376708643 + Layer[1] : time 36.568506863239 (nsec) --- local (x,y) -508.66836227795, -0.46534588133769 + Layer[2] : time 38.260298342333 (nsec) --- local (x,y) -593.74461446475, -0.48846699003522 + Layer[3] : time 39.952089956913 (nsec) --- local (x,y) -678.82110795118, -0.5145058136664 + Layer[3] : time 63.221978275538 (nsec) --- local (x,y) 997.69142330477, -273.64706748543 + Layer[4] : time 41.643880270849 (nsec) --- local (x,y) -763.89527596456, -0.54332484185229 +EM Calorimeter has 26 hits. Total Edep is 76797.76907382 (MeV) +Hadron Calorimeter has 5 hits. Total Edep is 32.83621950416 (MeV) ... write Root file : B5.root - done ### Run 3 starts. ... open Root analysis file : B5.root - done --> Event 0 starts. ->>> Event 0 >>> Simulation truth : proton (0,0,10000) +>>> Event 0 >>> Simulation truth : proton (-0,0,10000) Hodoscope 1 has 1 hits. - Hodoscope[7] 5.008695645598 (nsec) -Hodoscope 2 has 1 hits. - Hodoscope[9] 43.373314576247 (nsec) -Drift Chamber 1 has 6 hits. - Layer[0] : time 6.7002763826421 (nsec) --- local (x,y) -0.14093529106779, -0.16497915941331 - Layer[0] : time 6.9115401110857 (nsec) --- local (x,y) -33.125951561225, 259.79701192505 - Layer[1] : time 8.3754407782463 (nsec) --- local (x,y) -0.23608447951503, -0.31281565410243 - Layer[2] : time 10.050605291473 (nsec) --- local (x,y) -0.34467112688382, -0.45606017249503 - Layer[3] : time 11.725769930041 (nsec) --- local (x,y) -0.46115941002771, -0.57840868338377 - Layer[4] : time 13.400934682517 (nsec) --- local (x,y) -0.57585823918663, -0.69926027696868 + Hodoscope[7] 5.0086956170289 (nsec) +Hodoscope 2 has 2 hits. + Hodoscope[9] 43.373950997117 (nsec) + Hodoscope[23] 850.23872039559 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.7002647035263 (nsec) --- local (x,y) -0.075836990209864, -0.12034246446244 + Layer[1] : time 8.3754174460674 (nsec) --- local (x,y) -0.1536532131515, -0.15415937211055 + Layer[2] : time 10.050570334435 (nsec) --- local (x,y) -0.22813331236448, -0.19261612001691 + Layer[3] : time 11.725723343938 (nsec) --- local (x,y) -0.29066172610322, -0.24272902256797 + Layer[4] : time 13.400876478318 (nsec) --- local (x,y) -0.35691442141619, -0.28339855358594 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.998988627563 (nsec) --- local (x,y) -150.98908733006, -2.9527723711825 - Layer[1] : time 36.677138270693 (nsec) --- local (x,y) -180.83814187244, -3.1691834946073 - Layer[2] : time 38.355293240806 (nsec) --- local (x,y) -210.71248766221, -3.3869099055929 - Layer[3] : time 40.033447461291 (nsec) --- local (x,y) -240.58236402397, -3.5772124107733 - Layer[4] : time 41.711604659519 (nsec) --- local (x,y) -270.46656327842, -3.7515329132818 -EM Calorimeter has 3 hits. Total Edep is 194.55817351548 (MeV) -Hadron Calorimeter has 8 hits. Total Edep is 417.2903759494 (MeV) + Layer[0] : time 35.000108388351 (nsec) --- local (x,y) -148.24576687697, 0.096283690379486 + Layer[1] : time 36.678159604454 (nsec) --- local (x,y) -177.65963084759, 0.1889484306984 + Layer[2] : time 38.356215631775 (nsec) --- local (x,y) -207.09718078825, 0.29110148136338 + Layer[3] : time 40.03427396461 (nsec) --- local (x,y) -236.54578484301, 0.39502619458926 + Layer[4] : time 41.712336410064 (nsec) --- local (x,y) -266.01457827724, 0.50013514951362 +EM Calorimeter has 31 hits. Total Edep is 1386.3590911586 (MeV) +Hadron Calorimeter has 10 hits. Total Edep is 300.745993166 (MeV) ... write Root file : B5.root - done ### Run 4 starts. ... open Root analysis file : B5.root - done --> Event 0 starts. ->>> Event 0 >>> Simulation truth : pi+ (-0,0,10000) -Hodoscope 1 has 2 hits. - Hodoscope[7] 4.9872691688592 (nsec) - Hodoscope[6] 5.3771091389877 (nsec) +>>> Event 0 >>> Simulation truth : pi+ (0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.9872691639498 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[10] 42.696348289997 (nsec) + Hodoscope[10] 42.694064258103 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.671598558319 (nsec) --- local (x,y) -0.076179193810299, 0.1311956773684 - Layer[1] : time 8.3395816911222 (nsec) --- local (x,y) -0.12266909879431, 0.24464390102295 - Layer[2] : time 10.007564822984 (nsec) --- local (x,y) -0.18068180083169, 0.34610765908771 - Layer[3] : time 11.675547965831 (nsec) --- local (x,y) -0.26146285098214, 0.44289173327628 - Layer[4] : time 13.34353109122 (nsec) --- local (x,y) -0.3227541174167, 0.52000407816478 -Drift Chamber 2 has 6 hits. - Layer[0] : time 34.368241319848 (nsec) --- local (x,y) -83.127743198949, 1.4077351473808 - Layer[0] : time 34.847044842957 (nsec) --- local (x,y) 5.698379857565, -77.44260534933 - Layer[1] : time 36.037135684757 (nsec) --- local (x,y) -99.657141729965, 1.4619454639804 - Layer[2] : time 37.70602902088 (nsec) --- local (x,y) -116.17715809878, 1.5198366022455 - Layer[3] : time 39.37491940317 (nsec) --- local (x,y) -132.67028279827, 1.5827735742148 - Layer[4] : time 41.043811965432 (nsec) --- local (x,y) -149.18301494285, 1.6770751645994 -EM Calorimeter has 3 hits. Total Edep is 199.97161899065 (MeV) -Hadron Calorimeter has 7 hits. Total Edep is 72.827313745829 (MeV) + Layer[0] : time 6.6715984925554 (nsec) --- local (x,y) -0.08162447151661, -0.060324987154413 + Layer[1] : time 8.339581588858 (nsec) --- local (x,y) -0.15762834778316, -0.10656872538343 + Layer[2] : time 10.007564700687 (nsec) --- local (x,y) -0.25150689967315, -0.16074688888792 + Layer[3] : time 11.675547834712 (nsec) --- local (x,y) -0.3659180432847, -0.22354562564574 + Layer[4] : time 13.343530968441 (nsec) --- local (x,y) -0.47397578864268, -0.28979018460104 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.366101034086 (nsec) --- local (x,y) -82.998594015154, -1.2895116734141 + Layer[1] : time 36.034968906486 (nsec) --- local (x,y) -99.286029787694, -1.3326939076846 + Layer[2] : time 37.703834171507 (nsec) --- local (x,y) -115.5494180937, -1.3520353802198 + Layer[3] : time 39.372697423736 (nsec) --- local (x,y) -131.79416616322, -1.3781736946102 + Layer[4] : time 41.041559370615 (nsec) --- local (x,y) -148.02681171808, -1.3992063021874 +EM Calorimeter has 27 hits. Total Edep is 6929.8333104102 (MeV) +Hadron Calorimeter has 10 hits. Total Edep is 10.758987668989 (MeV) ... write Root file : B5.root - done ### Run 5 starts. ... open Root 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.9867832431895 (nsec) + Hodoscope[7] 4.986783234453 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[9] 43.18593526452 (nsec) + Hodoscope[9] 43.181306125594 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6709483837899 (nsec) --- local (x,y) -0.076049061283863, 0.16716975617185 - Layer[1] : time 8.3387688747312 (nsec) --- local (x,y) -0.10154494007288, 0.22882209247518 - Layer[2] : time 10.006589369192 (nsec) --- local (x,y) -0.1266045144214, 0.2979558101235 - Layer[3] : time 11.674409865307 (nsec) --- local (x,y) -0.15714999619144, 0.36901021029631 - Layer[4] : time 13.342230344697 (nsec) --- local (x,y) -0.18649076867661, 0.36392230668127 + Layer[0] : time 6.6709485105457 (nsec) --- local (x,y) -0.21551270699412, 0.18095460930644 + Layer[1] : time 8.3387691356545 (nsec) --- local (x,y) -0.39624657326796, 0.29055704117229 + Layer[2] : time 10.006589766614 (nsec) --- local (x,y) -0.58843776037648, 0.38748374895005 + Layer[3] : time 11.674410457639 (nsec) --- local (x,y) -0.80415155861575, 0.52110830568435 + Layer[4] : time 13.342231210771 (nsec) --- local (x,y) -1.0412874526491, 0.68236860472778 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.848558650352 (nsec) --- local (x,y) -148.23375541564, -0.22070024367433 - Layer[1] : time 36.519311375306 (nsec) --- local (x,y) -177.89579096056, -0.2701495367307 - Layer[2] : time 38.190061714588 (nsec) --- local (x,y) -207.54575015027, -0.31828127532245 - Layer[3] : time 39.860809297857 (nsec) --- local (x,y) -237.18174175761, -0.37026339957393 - Layer[4] : time 41.531559459327 (nsec) --- local (x,y) -266.83080044046, -0.41817715053423 -EM Calorimeter has 16 hits. Total Edep is 9504.3057993129 (MeV) -Hadron Calorimeter has 3 hits. Total Edep is 8.1201499673085 (MeV) + Layer[0] : time 34.843867074119 (nsec) --- local (x,y) -151.29712699215, 2.076167294801 + Layer[1] : time 36.514629157551 (nsec) --- local (x,y) -181.00644871234, 2.1510103199276 + Layer[2] : time 38.185391384676 (nsec) --- local (x,y) -210.71650491477, 2.2226333905349 + Layer[3] : time 39.856151886941 (nsec) --- local (x,y) -240.41784952904, 2.2910350105918 + Layer[4] : time 41.526911676278 (nsec) --- local (x,y) -270.11556724769, 2.3686036049599 +EM Calorimeter has 18 hits. Total Edep is 9609.3921354656 (MeV) +Hadron Calorimeter has 2 hits. Total Edep is 1.3893111079227 (MeV) ... write Root file : B5.root - done ### Run 6 starts. ... open Root analysis file : B5.root - done @@ -1026,22 +1039,25 @@ Hadron Calorimeter has 3 hits. Total Edep is 8.1201499673085 (MeV) >>> Event 0 >>> Simulation truth : proton (0,0,1000) Hodoscope 1 has 1 hits. - Hodoscope[7] 6.8391429494745 (nsec) + Hodoscope[7] 6.839243510063 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[9] 59.36588110974 (nsec) -Drift Chamber 1 has 5 hits. - Layer[0] : time 9.1533300222321 (nsec) --- local (x,y) -2.1855623493344, -1.2563109505436 - Layer[1] : time 11.44533351751 (nsec) --- local (x,y) -3.5744781400605, -2.6239093811 - Layer[2] : time 13.73753586392 (nsec) --- local (x,y) -5.0926862559618, -4.03497373148 - Layer[3] : time 16.030134804938 (nsec) --- local (x,y) -6.7745399467693, -5.5818052604026 - Layer[4] : time 18.322961870318 (nsec) --- local (x,y) -8.3893095471587, -7.1905514004188 + Hodoscope[9] 59.400177079865 (nsec) +Drift Chamber 1 has 8 hits. + Layer[0] : time 9.1545119509789 (nsec) --- local (x,y) -0.46576067458741, -1.2887142463843 + Layer[1] : time 11.447633198208 (nsec) --- local (x,y) -1.0819967072312, -2.4374252188506 + Layer[2] : time 13.740982664659 (nsec) --- local (x,y) -1.6183305862856, -3.885092226443 + Layer[2] : time 13.740987468165 (nsec) --- local (x,y) -1.6183314324441, -3.8850955576596 + Layer[2] : time 13.740987468165 (nsec) --- local (x,y) -1.6183314324441, -3.8850955576596 + Layer[2] : time 13.742259312473 (nsec) --- local (x,y) -1.5563373875845, -3.874335469192 + Layer[3] : time 16.034560980861 (nsec) --- local (x,y) -1.9664949231331, -5.5893295210566 + Layer[4] : time 18.32832745123 (nsec) --- local (x,y) -2.5469394235514, -7.713701737422 Drift Chamber 2 has 5 hits. - Layer[0] : time 47.877627479354 (nsec) --- local (x,y) -167.16309354109, -19.65693880405 - Layer[1] : time 50.179409332091 (nsec) --- local (x,y) -197.59057972561, -20.718573984708 - Layer[2] : time 52.481430813968 (nsec) --- local (x,y) -227.91624945161, -21.913419095773 - Layer[3] : time 54.783611201522 (nsec) --- local (x,y) -258.1518733366, -23.3516271774 - Layer[4] : time 57.085908626143 (nsec) --- local (x,y) -288.1060837544, -24.740093447352 -EM Calorimeter has 1 hits. Total Edep is 303.37157784522 (MeV) + Layer[0] : time 47.911070234694 (nsec) --- local (x,y) -172.09046261737, -46.975220773447 + Layer[1] : time 50.213110893288 (nsec) --- local (x,y) -204.06510159819, -50.695362440645 + Layer[2] : time 52.5152710489 (nsec) --- local (x,y) -235.89086556659, -54.237901403309 + Layer[3] : time 54.817591109325 (nsec) --- local (x,y) -267.61156786796, -57.740978706696 + Layer[4] : time 57.120025469649 (nsec) --- local (x,y) -299.12631256187, -61.124063983064 +EM Calorimeter has 2 hits. Total Edep is 290.49746421019 (MeV) Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) ... write Root file : B5.root - done ### Run 7 starts. @@ -1050,46 +1066,48 @@ Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) >>> Event 0 >>> Simulation truth : pi+ (0,0,1000) Hodoscope 1 has 1 hits. - Hodoscope[7] 5.0351622228409 (nsec) + Hodoscope[7] 5.0351599198345 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[10] 43.085488498097 (nsec) + Hodoscope[10] 43.077134339729 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.7357376157133 (nsec) --- local (x,y) -0.66116260595811, -1.8405802934014 - Layer[1] : time 8.4198131249429 (nsec) --- local (x,y) -1.1504692151397, -3.3488686110532 - Layer[2] : time 10.103891096384 (nsec) --- local (x,y) -1.4797165782799, -4.8739807393553 - Layer[3] : time 11.787974231035 (nsec) --- local (x,y) -1.7294075615062, -6.6425727618242 - Layer[4] : time 13.472058731682 (nsec) --- local (x,y) -1.8357625159015, -8.2691421328276 + Layer[0] : time 6.7357463043873 (nsec) --- local (x,y) 0.12207950882349, -1.3186749375072 + Layer[1] : time 8.4198313127173 (nsec) --- local (x,y) 0.23768665164214, -2.5409340096554 + Layer[2] : time 10.103920066881 (nsec) --- local (x,y) 0.51858608388298, -3.820449380887 + Layer[3] : time 11.788012450023 (nsec) --- local (x,y) 0.43177858153997, -5.118669318999 + Layer[4] : time 13.472105706813 (nsec) --- local (x,y) -0.15040050055401, -6.0643589751039 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.67642160277 (nsec) --- local (x,y) -91.510546484774, -24.342475780899 - Layer[1] : time 36.361514437145 (nsec) --- local (x,y) -108.37372224189, -26.037143535512 - Layer[2] : time 38.046633949484 (nsec) --- local (x,y) -125.44079875066, -27.809594734807 - Layer[3] : time 39.731742695204 (nsec) --- local (x,y) -142.38687224082, -29.584857222664 - Layer[4] : time 41.416857196657 (nsec) --- local (x,y) -159.37035441462, -31.194943977022 -EM Calorimeter has 9 hits. Total Edep is 317.00657869409 (MeV) -Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + Layer[0] : time 34.668505964587 (nsec) --- local (x,y) -90.274360353753, -18.150615893975 + Layer[1] : time 36.353486071248 (nsec) --- local (x,y) -106.14683678756, -19.580692767782 + Layer[2] : time 38.038478374484 (nsec) --- local (x,y) -122.08873450366, -21.179334543561 + Layer[3] : time 39.723498875911 (nsec) --- local (x,y) -138.25422603606, -22.714036905548 + Layer[4] : time 41.408566896453 (nsec) --- local (x,y) -154.83830552929, -24.148691609948 +EM Calorimeter has 9 hits. Total Edep is 177.94605480233 (MeV) +Hadron Calorimeter has 5 hits. Total Edep is 20.712700898149 (MeV) ... write Root file : B5.root - done ### Run 8 starts. ... open Root analysis file : B5.root - done --> Event 0 starts. ->>> Event 0 >>> Simulation truth : e+ (0,0,1000) +>>> Event 0 >>> Simulation truth : e+ (-0,0,1000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867843341257 (nsec) + Hodoscope[7] 4.9867838971197 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[9] 43.16768966314 (nsec) -Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6709815271645 (nsec) --- local (x,y) -1.6773575435648, -2.9419690031185 - Layer[1] : time 8.3388425395356 (nsec) --- local (x,y) -3.1039368776338, -6.122475135898 - Layer[2] : time 10.00670115101 (nsec) --- local (x,y) -4.6185282598817, -9.1435763668119 - Layer[3] : time 11.674558022135 (nsec) --- local (x,y) -6.2336169347804, -12.024362306118 - Layer[4] : time 13.342417459074 (nsec) --- local (x,y) -7.827231461186, -15.04565764086 + Hodoscope[8] 43.155028527779 (nsec) +Drift Chamber 1 has 7 hits. + Layer[0] : time 6.6709648994655 (nsec) --- local (x,y) -1.5517384139838, 2.3993418368759 + Layer[0] : time 6.6714738519518 (nsec) --- local (x,y) -1.5520856331936, 2.3999610123916 + Layer[0] : time 6.6714738519518 (nsec) --- local (x,y) -1.5520856331936, 2.3999610123916 + Layer[1] : time 8.3388061817555 (nsec) --- local (x,y) -2.6966699407711, 4.6165596383039 + Layer[2] : time 10.006647173445 (nsec) --- local (x,y) -3.9646874030295, 6.718545475035 + Layer[3] : time 11.674482675065 (nsec) --- local (x,y) -5.4256267536202, 8.257846232393 + Layer[4] : time 13.342319441222 (nsec) --- local (x,y) -7.0559065003754, 9.7478261576684 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.829872428916 (nsec) --- local (x,y) -157.75954876523, -59.954994732483 - Layer[1] : time 36.500584940788 (nsec) --- local (x,y) -186.99101852576, -63.597051329612 - Layer[2] : time 38.171307214374 (nsec) --- local (x,y) -216.23421266696, -67.537108238364 - Layer[3] : time 39.842175369848 (nsec) --- local (x,y) -246.24109622919, -71.284394651825 - Layer[4] : time 41.513112224949 (nsec) --- local (x,y) -276.58153258661, -75.104346882471 -EM Calorimeter has 9 hits. Total Edep is 965.652217796 (MeV) + Layer[0] : time 34.80826711747 (nsec) --- local (x,y) -208.64763830947, 31.005038569693 + Layer[1] : time 36.480828821835 (nsec) --- local (x,y) -246.32629772555, 32.933875663959 + Layer[2] : time 38.153434916972 (nsec) --- local (x,y) -284.18809739128, 34.729756793174 + Layer[3] : time 39.826067191442 (nsec) --- local (x,y) -322.16676230557, 36.223792168103 + Layer[4] : time 41.498748890561 (nsec) --- local (x,y) -360.34252756639, 37.669401565219 +EM Calorimeter has 8 hits. Total Edep is 942.03481351098 (MeV) Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) ... write Root file : B5.root - done Graphics systems deleted. diff --git a/examples/basic/B5/src/B5HadCalorimeterSD.cc b/examples/basic/B5/src/B5HadCalorimeterSD.cc index 4dad6d43d1..93afb5ed75 100644 --- a/examples/basic/B5/src/B5HadCalorimeterSD.cc +++ b/examples/basic/B5/src/B5HadCalorimeterSD.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: B5HadCalorimeterSD.cc 76474 2013-11-11 10:36:34Z gcosmo $ +// $Id: B5HadCalorimeterSD.cc 96048 2016-03-10 15:34:12Z gcosmo $ // /// \file B5HadCalorimeterSD.cc /// \brief Implementation of the B5HadCalorimeterSD class @@ -80,11 +80,8 @@ G4bool B5HadCalorimeterSD::ProcessHits(G4Step* step, G4TouchableHistory*) G4TouchableHistory* touchable = (G4TouchableHistory*)(step->GetPreStepPoint()->GetTouchable()); - G4VPhysicalVolume* cellPhysical = touchable->GetVolume(2); - G4int rowNo = cellPhysical->GetCopyNo(); - - G4VPhysicalVolume* columnPhysical = touchable->GetVolume(3); - G4int columnNo = columnPhysical->GetCopyNo(); + G4int rowNo = touchable->GetCopyNumber(2); + G4int columnNo = touchable->GetCopyNumber(3); G4int hitID = 2*columnNo+rowNo; B5HadCalorimeterHit* hit = (*fHitsCollection)[hitID]; diff --git a/examples/basic/History b/examples/basic/History index 0601e2b271..ffb97111ce 100644 --- a/examples/basic/History +++ b/examples/basic/History @@ -16,6 +16,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +08/01/16 I. Hrivnacova (exbasic-V10-02-00) +- Updated README files: + Added G4ENSDFSTATEDATA in the lists of mandatory data sets. + 29/11/14 I. Hrivnacova (exbasic-V10-00-01) - Use G4endl instead of \n in G4cout; this makes each new line in the output on threads preceded with diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.out b/examples/extended/analysis/AnaEx01/AnaEx01.out index 0ca484b1e7..6430dbdd70 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.out +++ b/examples/extended/analysis/AnaEx01/AnaEx01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -50,6 +50,14 @@ ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] ------------------------------------------------------------ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -167,7 +175,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -181,7 +189,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -290,7 +298,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -323,7 +331,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -449,6 +457,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -746,20 +759,20 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------End of Run------------------------------ - mean Energy in Absorber : 453.889 MeV +- 13.1894 MeV - mean Energy in Gap : 23.8243 MeV +- 6.98854 MeV + mean Energy in Absorber : 454.281 MeV +- 13.1852 MeV + mean Energy in Gap : 23.8207 MeV +- 7.24141 MeV - mean trackLength in Absorber : 32.4743 cm +- 1.02249 cm - mean trackLength in Gap : 11.8047 cm +- 3.58344 cm + mean trackLength in Absorber : 32.5013 cm +- 1.06218 cm + mean trackLength in Gap : 11.7927 cm +- 3.72054 cm ------------------------------------------------------------ ----> print histograms statistic -EAbs: mean = 453.889 MeV rms = 13.1894 MeV -EGap: mean = 23.8243 MeV rms = 6.98854 MeV -LAbs: mean = 32.4743 cm rms = 1.02249 cm -LGap: mean = 11.8047 cm rms = 3.58344 cm +EAbs: mean = 454.281 MeV rms = 13.1852 MeV +EGap: mean = 23.8207 MeV rms = 7.24141 MeV +LAbs: mean = 32.5013 cm rms = 1.06218 cm +LGap: mean = 11.7927 cm rms = 3.72054 cm ... write Root file : AnaEx01.root - done ----> Histograms and ntuples are saved diff --git a/examples/extended/analysis/AnaEx02/AnaEx02.out b/examples/extended/analysis/AnaEx02/AnaEx02.out index feb989457e..b46724ede1 100644 --- a/examples/extended/analysis/AnaEx02/AnaEx02.out +++ b/examples/extended/analysis/AnaEx02/AnaEx02.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -50,6 +50,14 @@ ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] ------------------------------------------------------------ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -167,7 +175,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -181,7 +189,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -290,7 +298,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -323,7 +331,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -449,6 +457,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -745,20 +758,20 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------End of Run------------------------------ - mean Energy in Absorber : 453.889 MeV +- 13.1894 MeV - mean Energy in Gap : 23.8243 MeV +- 6.98854 MeV + mean Energy in Absorber : 454.281 MeV +- 13.1852 MeV + mean Energy in Gap : 23.8207 MeV +- 7.24141 MeV - mean trackLength in Absorber : 32.4743 cm +- 1.02249 cm - mean trackLength in Gap : 11.8047 cm +- 3.58344 cm + mean trackLength in Absorber : 32.5013 cm +- 1.06218 cm + mean trackLength in Gap : 11.7927 cm +- 3.72054 cm ------------------------------------------------------------ ----> print histograms statistic -EAbs: mean = 453.889 MeV rms = 13.1894 MeV -EGap: mean = 23.8243 MeV rms = 6.98854 MeV -LAbs: mean = 32.4743 cm rms = 1.02249 cm -LGap: mean = 11.8047 cm rms = 3.58344 cm +EAbs: mean = 454.281 MeV rms = 13.1852 MeV +EGap: mean = 23.8207 MeV rms = 7.24141 MeV +LAbs: mean = 32.5013 cm rms = 1.06218 cm +LGap: mean = 11.7927 cm rms = 3.72054 cm ----> Histograms and ntuples are saved diff --git a/examples/extended/analysis/B1Con/exampleB01Con.out b/examples/extended/analysis/B1Con/exampleB01Con.out index c8279990db..4a0a21598b 100644 --- a/examples/extended/analysis/B1Con/exampleB01Con.out +++ b/examples/extended/analysis/B1Con/exampleB01Con.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -14,6 +14,14 @@ Checking overlaps for volume Envelope ... OK! Checking overlaps for volume Shape1 ... OK! Checking overlaps for volume Shape2 ... OK! +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -42,16 +50,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -178,7 +188,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -192,7 +202,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -301,7 +311,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -334,7 +344,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -461,6 +471,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -752,24 +767,24 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ---> Begin of event: 900 G4ConvergenceTester Output Result of DOSE_TALLY - EFFICIENCY = 0.171 - MEAN = 4.18432e-14 - VAR = 1.49485e-26 - SD = 1.22264e-13 - R = 0.0924005 - SHIFT = 1.85595e-13 - VOV = 0.0100538 - FOM = 1301.4 -THE LARGEST SCORE = 5.55155e-13 and it happend at 171th event - Affected Mean = 4.2356e-14 and its ratio to orignal is 1.01226 - Affected VAR = 1.51968e-26 and its ratio to orignal is 1.01661 - Affected R = 0.0919907 and its ratio to orignal is 0.995566 - Affected SHIFT = 1.86058e-13 and its ratio to orignal is 1.00249 - Affected FOM = 1301.4 and its ratio to orignal is 1 + EFFICIENCY = 0.188 + MEAN = 4.53847e-14 + VAR = 1.58166e-26 + SD = 1.25764e-13 + R = 0.0876289 + SHIFT = 1.7701e-13 + VOV = 0.00868154 + FOM = 868.189 +THE LARGEST SCORE = 5.55155e-13 and it happend at 5th event + Affected Mean = 4.5894e-14 and its ratio to orignal is 1.01122 + Affected VAR = 1.60604e-26 and its ratio to orignal is 1.01541 + Affected R = 0.0872781 and its ratio to orignal is 0.995998 + Affected SHIFT = 1.77506e-13 and its ratio to orignal is 1.0028 + Affected FOM = 868.189 and its ratio to orignal is 1 MEAN distribution is RANDOM r follows 1/std::sqrt(N) r is monotonically decrease -r is less than 0.1. r = 0.0924005 +r is less than 0.1. r = 0.0876289 VOV follows 1/std::sqrt(N) VOV is monotonically decrease FOM distribution is not RANDOM @@ -779,26 +794,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 3.05455e-14 1.13958e-26 1.06751e-13 0.440306 0.204306 57.3123 1.81233e-13 0.15873 0.084127 0.106665 - 2 124 2.98622e-14 1.03616e-26 1.01792e-13 0.304885 0.106591 119.532 1.76065e-13 0.144 0.0475556 0.0446558 - 3 187 3.0878e-14 9.58989e-27 9.7928e-14 0.231302 0.0785926 207.683 1.74438e-13 0.170213 0.0259309 0.027285 - 4 249 3.66573e-14 1.28418e-26 1.13322e-13 0.195516 0.0473651 290.666 1.85099e-13 0.164 0.0203902 0.0176832 - 5 312 3.84356e-14 1.37377e-26 1.17208e-13 0.172366 0.0354792 373.984 1.86206e-13 0.159744 0.0168051 0.0128101 - 6 374 3.80353e-14 1.35961e-26 1.16602e-13 0.158309 0.0302843 443.351 1.87815e-13 0.162667 0.0137268 0.0112681 - 7 437 3.89816e-14 1.42335e-26 1.19304e-13 0.146238 0.0253041 519.564 1.90523e-13 0.16895 0.0112304 0.0101062 - 8 499 4.03425e-14 1.44979e-26 1.20407e-13 0.133476 0.0213187 623.661 1.88056e-13 0.174 0.00949425 0.00828607 - 9 562 4.18182e-14 1.48971e-26 1.22054e-13 0.123008 0.0180807 734.335 1.85953e-13 0.174067 0.00842788 0.0066761 - 10 624 4.47922e-14 1.61977e-26 1.2727e-13 0.113654 0.0146294 860.179 1.84457e-13 0.1776 0.00740901 0.00548753 - 11 687 4.4433e-14 1.58792e-26 1.26013e-13 0.108122 0.0133975 950.452 1.83166e-13 0.177326 0.00674323 0.00493012 - 12 749 4.4434e-14 1.58133e-26 1.25751e-13 0.103339 0.0123169 1040.46 1.82716e-13 0.174667 0.00630025 0.00436449 - 13 812 4.2849e-14 1.52153e-26 1.2335e-13 0.100961 0.0119533 1090.06 1.83853e-13 0.172202 0.00591284 0.00426778 - 14 874 4.38656e-14 1.56004e-26 1.24902e-13 0.0962588 0.0108189 1199.16 1.83789e-13 0.178286 0.0052674 0.00398777 - 15 937 4.18943e-14 1.49513e-26 1.22276e-13 0.0952979 0.010676 1223.46 1.85208e-13 0.16951 0.00522321 0.0038488 - 16 999 4.18432e-14 1.49485e-26 1.22264e-13 0.0924005 0.0100538 1301.4 1.85595e-13 0.171 0.00484795 0.00368135 + 1 62 5.47726e-14 1.89905e-26 1.37806e-13 0.316982 0.127305 66.3497 1.79367e-13 0.206349 0.0610501 0.0378328 + 2 124 5.73411e-14 2.07988e-26 1.44218e-13 0.224956 0.0547426 131.738 1.77575e-13 0.2 0.032 0.0182005 + 3 187 4.59343e-14 1.62797e-26 1.27592e-13 0.202585 0.0496737 162.44 1.837e-13 0.175532 0.0249839 0.0158385 + 4 249 4.76015e-14 1.67468e-26 1.2941e-13 0.17194 0.0361214 225.505 1.83419e-13 0.18 0.0182222 0.0112228 + 5 312 5.01532e-14 1.71426e-26 1.3093e-13 0.147559 0.0255973 306.179 1.74495e-13 0.191693 0.0134718 0.00823242 + 6 374 4.64769e-14 1.61169e-26 1.26952e-13 0.141055 0.0237235 335.067 1.79141e-13 0.184 0.0118261 0.00801735 + 7 437 4.44088e-14 1.5253e-26 1.23503e-13 0.132884 0.0213574 377.543 1.78751e-13 0.187215 0.00991202 0.0077057 + 8 499 4.47663e-14 1.53652e-26 1.23957e-13 0.123832 0.0180147 434.752 1.76428e-13 0.186 0.00875269 0.00655104 + 9 562 4.48471e-14 1.57958e-26 1.25681e-13 0.118109 0.0157788 477.909 1.78766e-13 0.181172 0.00802772 0.00589715 + 10 624 4.67502e-14 1.65828e-26 1.28774e-13 0.110181 0.013355 549.158 1.78141e-13 0.1856 0.00702069 0.00509968 + 11 687 4.82132e-14 1.70712e-26 1.30657e-13 0.103317 0.0114943 624.548 1.76039e-13 0.186047 0.00635901 0.00429986 + 12 749 4.6534e-14 1.64928e-26 1.28424e-13 0.100773 0.0111214 656.473 1.7772e-13 0.184 0.00591304 0.00422869 + 13 812 4.559e-14 1.6258e-26 1.27507e-13 0.0980886 0.0105509 692.901 1.79099e-13 0.184502 0.00543665 0.00417289 + 14 874 4.5225e-14 1.60269e-26 1.26597e-13 0.0946329 0.00988644 744.431 1.78376e-13 0.184 0.00506832 0.00387683 + 15 937 4.61794e-14 1.6064e-26 1.26744e-13 0.0896142 0.00899115 830.147 1.7567e-13 0.187633 0.00461572 0.00340643 + 16 999 4.53847e-14 1.58166e-26 1.25764e-13 0.0876289 0.00868154 868.189 1.7701e-13 0.188 0.00431915 0.00335199 --------------------End of Global Run----------------------- The run consists of 1000 gamma of 6 MeV - Dose in scoring volume : 41.8432 picoGy +- 3.86439 picoGy + Dose in scoring volume : 45.3847 picoGy +- 3.97502 picoGy ------------------------------------------------------------ ### Run 1 start. @@ -824,53 +839,53 @@ i/16 till_ith mean var sd r vov ---> Begin of event: 900 G4ConvergenceTester Output Result of DOSE_TALLY - EFFICIENCY = 0.612 - MEAN = 4.9029e-12 - VAR = 2.11882e-23 - SD = 4.60307e-12 - R = 0.0296889 - SHIFT = 1.38522e-13 - VOV = 0.000177941 - FOM = 1829.87 -THE LARGEST SCORE = 1.07916e-11 and it happend at 431th event - Affected Mean = 4.90878e-12 and its ratio to orignal is 1.0012 - Affected VAR = 2.12017e-23 and its ratio to orignal is 1.00063 - Affected R = 0.0296479 and its ratio to orignal is 0.998619 - Affected SHIFT = 1.34291e-13 and its ratio to orignal is 0.969458 - Affected FOM = 1829.87 and its ratio to orignal is 1 -MEAN distribution is not RANDOM + EFFICIENCY = 0.633 + MEAN = 5.09132e-12 + VAR = 2.13276e-23 + SD = 4.61818e-12 + R = 0.0286841 + SHIFT = -3.67875e-14 + VOV = 0.000168128 + FOM = 1365.62 +THE LARGEST SCORE = 1.07064e-11 and it happend at 578th event + Affected Mean = 5.09693e-12 and its ratio to orignal is 1.0011 + Affected VAR = 2.13378e-23 and its ratio to orignal is 1.00048 + Affected R = 0.028645 and its ratio to orignal is 0.998638 + Affected SHIFT = -4.09947e-14 and its ratio to orignal is 1.11437 + Affected FOM = 1365.62 and its ratio to orignal is 1 +MEAN distribution is RANDOM r follows 1/std::sqrt(N) r is monotonically decrease -r is less than 0.1. r = 0.0296889 +r is less than 0.1. r = 0.0286841 VOV follows 1/std::sqrt(N) VOV is monotonically decrease FOM distribution is not RANDOM SLOPE is not large enough -This result passes 5 / 8 Convergence Test. +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 5.25449e-12 2.10697e-23 4.59017e-12 0.11006 0.00274798 133.153 -2.74093e-13 0.666667 0.00793651 0.00398434 - 2 124 4.90882e-12 2.13434e-23 4.61989e-12 0.0841782 0.00129089 227.619 6.13709e-14 0.608 0.00515789 0.00187139 - 3 187 4.63071e-12 2.12806e-23 4.61309e-12 0.072655 0.00096891 305.547 3.74896e-13 0.590426 0.00368986 0.0015608 - 4 249 4.73607e-12 2.06617e-23 4.54552e-12 0.0607009 0.000809633 437.741 2.64346e-13 0.612 0.00253595 0.00113392 - 5 312 4.99591e-12 2.10429e-23 4.58726e-12 0.0518999 0.000557112 598.792 3.91121e-14 0.629393 0.00188125 0.000803736 - 6 374 4.97277e-12 2.10608e-23 4.58921e-12 0.0476566 0.000462075 710.169 4.55154e-14 0.618667 0.00164368 0.00062142 - 7 437 4.98533e-12 2.07606e-23 4.55638e-12 0.0436706 0.000443316 845.727 5.27726e-14 0.627854 0.00135326 0.000549508 - 8 499 4.87247e-12 2.08346e-23 4.5645e-12 0.0418947 0.000385602 918.947 1.53528e-13 0.612 0.00126797 0.000483681 - 9 562 4.82179e-12 2.10269e-23 4.58551e-12 0.0400797 0.000333334 1004.06 2.11011e-13 0.609236 0.00113925 0.000464278 - 10 624 4.79785e-12 2.09007e-23 4.57172e-12 0.0381148 0.000309044 1110.25 2.26761e-13 0.6112 0.0010178 0.000432609 - 11 687 4.77867e-12 2.09828e-23 4.5807e-12 0.0365452 0.000278071 1207.67 2.44794e-13 0.606105 0.000944593 0.00038902 - 12 749 4.82451e-12 2.10626e-23 4.5894e-12 0.0347354 0.000243766 1336.79 1.98124e-13 0.606667 0.000864469 0.000340471 - 13 812 4.81521e-12 2.1138e-23 4.59761e-12 0.0334866 0.000221013 1438.35 2.09253e-13 0.603936 0.000806648 0.000313326 - 14 874 4.90115e-12 2.12619e-23 4.61106e-12 0.0318053 0.000197153 1594.45 1.37744e-13 0.611429 0.000726302 0.000284118 - 15 937 4.88599e-12 2.11068e-23 4.59422e-12 0.0307013 0.000193067 1711.17 1.53552e-13 0.613006 0.000673032 0.000268535 - 16 999 4.9029e-12 2.11882e-23 4.60307e-12 0.0296889 0.000177941 1829.87 1.38522e-13 0.612 0.000633987 0.000246563 + 1 62 5.71484e-12 2.20213e-23 4.69269e-12 0.103454 0.0033313 104.982 -6.00485e-13 0.650794 0.00851723 0.00201562 + 2 124 5.31373e-12 2.05249e-23 4.53044e-12 0.0762581 0.00186309 193.214 -2.51782e-13 0.648 0.00434568 0.0014231 + 3 187 5.57214e-12 2.02283e-23 4.49759e-12 0.0588679 0.00144383 324.23 -5.27092e-13 0.670213 0.00261736 0.000829638 + 4 249 5.5207e-12 2.06897e-23 4.5486e-12 0.0521091 0.000952743 413.793 -4.79542e-13 0.664 0.0020241 0.0006804 + 5 312 5.34646e-12 2.09833e-23 4.58075e-12 0.0484283 0.000649197 479.085 -3.20804e-13 0.642173 0.00178024 0.000557567 + 6 374 5.2749e-12 2.12091e-23 4.60533e-12 0.0450849 0.000499372 552.775 -2.37843e-13 0.637333 0.00151743 0.000509791 + 7 437 5.36773e-12 2.12229e-23 4.60683e-12 0.0410085 0.000450501 668.132 -3.18098e-13 0.646119 0.00125046 0.000427394 + 8 499 5.2964e-12 2.13e-23 4.61519e-12 0.0389694 0.000371782 739.883 -2.502e-13 0.636 0.00114465 0.000370922 + 9 562 5.20216e-12 2.11464e-23 4.59852e-12 0.0372546 0.000333759 809.563 -1.68787e-13 0.632327 0.00103279 0.000352649 + 10 624 5.32568e-12 2.12108e-23 4.60552e-12 0.034591 0.000305103 939.04 -2.68605e-13 0.6432 0.000887562 0.00030706 + 11 687 5.29569e-12 2.11847e-23 4.60268e-12 0.0331355 0.000277192 1023.34 -2.42794e-13 0.642442 0.000808955 0.000287413 + 12 749 5.22169e-12 2.11895e-23 4.6032e-12 0.0321898 0.000244906 1084.36 -1.74711e-13 0.636 0.000763103 0.000271702 + 13 812 5.21669e-12 2.12687e-23 4.6118e-12 0.0310049 0.000219122 1168.82 -1.62421e-13 0.635916 0.000704224 0.000255898 + 14 874 5.14589e-12 2.12536e-23 4.61017e-12 0.0302867 0.000200299 1224.91 -9.55652e-14 0.629714 0.000672025 0.000244213 + 15 937 5.1618e-12 2.14039e-23 4.62644e-12 0.0292647 0.000179289 1311.96 -1.05157e-13 0.633262 0.000617404 0.000238106 + 16 999 5.09132e-12 2.13276e-23 4.61818e-12 0.0286841 0.000168128 1365.62 -3.67875e-14 0.633 0.000579779 0.000242174 --------------------End of Global Run----------------------- The run consists of 1000 proton of 210 MeV - Dose in scoring volume : 4.9029 nanoGy +- 145.489 picoGy + Dose in scoring volume : 5.09132 nanoGy +- 145.967 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out index 668d9c88e3..62005174d3 100644 --- a/examples/extended/biasing/B01/exampleB01.out +++ b/examples/extended/biasing/B01/exampleB01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -12,6 +12,14 @@ <<< Geant4 Physics List simulation engine: FTFP_BERT 2.0 +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 paraFlag: 0 Preparing Importance Sampling @@ -205,7 +213,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -219,7 +227,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -328,7 +336,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -361,7 +369,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -487,6 +495,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -774,26 +787,26 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ============================================================= ============================================================= Volume | Tr.Entering | Population | Collisions | Coll*WGT | NumWGTedE | FluxWGTedE | Av.Tr.WGT | SL | SLW | SLW_v | SLWE | SLWE_v | - cell_00 | 44 | 134 | 44 | 44 | 0.0425661 | 2.82809 | 1 | 7233.93 | 7233.93 | 16751.8 | 20458.2 | 713.056 | - cell_01 | 142 | 181 | 498 | 498 | 0.014752 | 4.87534 | 1 | 20613.8 | 20613.8 | 182601 | 100499 | 2693.73 | - cell_02 | 160 | 244 | 1150 | 575 | 0.0119551 | 2.78988 | 0.5 | 44199.4 | 22099.7 | 160616 | 61655.4 | 1920.18 | - cell_03 | 261 | 369 | 2017 | 504.25 | 0.00453035 | 2.13109 | 0.25 | 67380.2 | 16845 | 266446 | 35898.3 | 1207.1 | - cell_04 | 265 | 409 | 2478 | 309.75 | 0.00565072 | 1.81814 | 0.125 | 77911.5 | 9738.94 | 113163 | 17706.7 | 639.452 | - cell_05 | 275 | 401 | 2579 | 161.188 | 0.00440395 | 1.49338 | 0.0625 | 78134.7 | 4883.42 | 60816.5 | 7292.79 | 267.833 | - cell_06 | 311 | 454 | 2834 | 88.5625 | 0.00303264 | 1.38657 | 0.03125 | 82069.4 | 2564.67 | 43423 | 3556.09 | 131.686 | - cell_07 | 303 | 454 | 2896 | 45.25 | 0.00341276 | 1.39919 | 0.015625 | 84910.6 | 1326.73 | 20049.7 | 1856.35 | 68.4248 | - cell_08 | 293 | 442 | 2526 | 19.7344 | 0.00389726 | 1.62108 | 0.0078125 | 75841.9 | 592.515 | 8743.39 | 960.511 | 34.0752 | - cell_09 | 274 | 422 | 2513 | 9.81641 | 0.00392513 | 1.40535 | 0.00390625 | 75680.8 | 295.628 | 4131.72 | 415.46 | 16.2175 | - cell_10 | 260 | 381 | 2386 | 4.66016 | 0.00289049 | 1.22121 | 0.00195312 | 71569.8 | 139.785 | 2407.12 | 170.707 | 6.95777 | - cell_11 | 214 | 329 | 1992 | 1.94531 | 0.00402576 | 1.51082 | 0.000976562 | 62634 | 61.166 | 880.193 | 92.4107 | 3.54344 | - cell_12 | 209 | 314 | 1734 | 0.84668 | 0.00465381 | 1.46232 | 0.000488281 | 55065.4 | 26.8874 | 337.545 | 39.3181 | 1.57087 | - cell_13 | 252 | 346 | 2278 | 0.556152 | 0.00399247 | 1.2862 | 0.000244141 | 68674.1 | 16.7661 | 219.739 | 21.5646 | 0.877303 | - cell_14 | 213 | 324 | 2188 | 0.26709 | 0.00251341 | 1.22292 | 0.00012207 | 63777.5 | 7.78534 | 157.746 | 9.52082 | 0.396482 | - cell_15 | 181 | 277 | 1745 | 0.106506 | 0.00311928 | 1.20266 | 6.10352e-05 | 50601.1 | 3.08844 | 50.062 | 3.71436 | 0.156158 | - cell_16 | 189 | 261 | 1879 | 0.0573425 | 0.00240988 | 0.831841 | 3.05176e-05 | 54383.8 | 1.65966 | 27.141 | 1.38058 | 0.0654065 | - cell_17 | 171 | 258 | 1901 | 0.029007 | 0.0025084 | 0.910156 | 1.52588e-05 | 51952.5 | 0.792732 | 12.9935 | 0.72151 | 0.032593 | - cell_18 | 110 | 201 | 1153 | 0.00879669 | 0.00145789 | 0.738537 | 7.62939e-06 | 31837.3 | 0.242899 | 5.58877 | 0.17939 | 0.0081478 | - cell_19 | 58 | 58 | 58 | 0.000442505 | 0.00320786 | 0.993434 | 7.62939e-06 | 8710.99 | 0.0664595 | 0.911819 | 0.0660232 | 0.00292499 | + cell_00 | 43 | 133 | 43 | 43 | 0.0420683 | 3.12036 | 1 | 8582.52 | 8582.52 | 19996.5 | 26780.5 | 841.22 | + cell_01 | 136 | 170 | 439 | 439 | 0.0264113 | 5.12031 | 1 | 21332.3 | 21332.3 | 109484 | 109228 | 2891.61 | + cell_02 | 142 | 246 | 1031 | 515.5 | 0.0130269 | 3.26244 | 0.5 | 39846.8 | 19923.4 | 152564 | 64998.9 | 1987.43 | + cell_03 | 209 | 319 | 1946 | 486.5 | 0.00771441 | 2.03668 | 0.25 | 61445.9 | 15361.5 | 137572 | 31286.4 | 1061.28 | + cell_04 | 266 | 412 | 2521 | 315.125 | 0.00358201 | 1.74936 | 0.125 | 76417.4 | 9552.18 | 158499 | 16710.2 | 567.745 | + cell_05 | 275 | 410 | 2341 | 146.312 | 0.00364392 | 1.70863 | 0.0625 | 73257 | 4578.56 | 75082.9 | 7823.06 | 273.596 | + cell_06 | 282 | 418 | 2469 | 77.1562 | 0.00385387 | 1.58883 | 0.03125 | 75337.7 | 2354.3 | 35124.2 | 3740.59 | 135.364 | + cell_07 | 297 | 427 | 2640 | 41.25 | 0.00315514 | 1.29265 | 0.015625 | 79608.6 | 1243.88 | 20018.2 | 1607.91 | 63.1603 | + cell_08 | 268 | 407 | 2493 | 19.4766 | 0.00325828 | 1.36425 | 0.0078125 | 72203.9 | 564.093 | 8979.71 | 769.565 | 29.2584 | + cell_09 | 237 | 355 | 2378 | 9.28906 | 0.00291997 | 1.17362 | 0.00390625 | 65892.1 | 257.391 | 4144.3 | 302.079 | 12.1012 | + cell_10 | 211 | 315 | 2140 | 4.17969 | 0.00298622 | 1.19864 | 0.00195312 | 62615.6 | 122.296 | 1914.27 | 146.589 | 5.71643 | + cell_11 | 185 | 275 | 1972 | 1.92578 | 0.00258118 | 0.969542 | 0.000976562 | 55433.4 | 54.1342 | 847.773 | 52.4853 | 2.18826 | + cell_12 | 168 | 260 | 1612 | 0.787109 | 0.00301013 | 1.13544 | 0.000488281 | 48770.4 | 23.8137 | 362.33 | 27.0389 | 1.09066 | + cell_13 | 170 | 239 | 1557 | 0.380127 | 0.00243654 | 0.931859 | 0.000244141 | 44351.8 | 10.8281 | 186.698 | 10.0902 | 0.454898 | + cell_14 | 146 | 216 | 1545 | 0.188599 | 0.00168602 | 0.861212 | 0.00012207 | 41904 | 5.11523 | 112.038 | 4.4053 | 0.188898 | + cell_15 | 118 | 178 | 1192 | 0.0727539 | 0.00270262 | 1.0356 | 6.10352e-05 | 34079.1 | 2.08003 | 33.743 | 2.15408 | 0.0911947 | + cell_16 | 97 | 137 | 885 | 0.0270081 | 0.00290569 | 1.03746 | 3.05176e-05 | 27447.9 | 0.837643 | 12.6329 | 0.869023 | 0.0367072 | + cell_17 | 79 | 122 | 836 | 0.0127563 | 0.00245004 | 0.919797 | 1.52588e-05 | 22177.4 | 0.338401 | 5.92169 | 0.31126 | 0.0145084 | + cell_18 | 47 | 84 | 491 | 0.00374603 | 0.00160247 | 0.711271 | 7.62939e-06 | 13182.1 | 0.100572 | 2.21359 | 0.0715336 | 0.00354722 | + cell_19 | 24 | 24 | 24 | 0.000183105 | 0.00303984 | 1.01055 | 7.62939e-06 | 4503.6 | 0.0343597 | 0.512951 | 0.0347223 | 0.00155929 | ============================================= === G4ProcessPlacer::RemoveProcess: for: neutron ProcessName: ImportanceProcess, will be removed! diff --git a/examples/extended/biasing/B03/History b/examples/extended/biasing/B03/History index 8255b0b481..68c8679279 100644 --- a/examples/extended/biasing/B03/History +++ b/examples/extended/biasing/B03/History @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jan 27th, 2016 M. Asai - B03-V10-02-00 +- B03PhysicsList.cc : change process order index of G4ParallelWorldProcess + to 9900 to make sure it is registered prior to G4OpBoundaryProcess. + Jan 21st, 2015 M. Asai - B03-V10-01-00 - B03PhysicsList.cc : properly use SetProcessOrderingToSecond() method for G4ParallelWorldProcess. diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out index 678d5df309..91d136defb 100644 --- a/examples/extended/biasing/B03/exampleB03.out +++ b/examples/extended/biasing/B03/exampleB03.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -65,6 +65,30 @@ DoIt Vector: ================================================ GeomSampler Configured!!! Running in singlethreaded mode!!! +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= B03PhysicsList::SetCuts:CutLength : 1 (mm) ghost world: ParallelBiasingWorld adding cell: 1 replica: 0 name: cell_01 @@ -233,7 +257,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -260,7 +284,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -483,7 +507,7 @@ hIoni: for pi- SubType= 2 *** G4Exception : GeomBias1001 issued by : G4ImportanceAlgorithm::Warning() Calculate() - ipre_over_ipost ! in [0.25, 4]. -ipre_over_ipost = 1024. +ipre_over_ipost = 131072. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- @@ -503,26 +527,26 @@ ipre_over_ipost = 1024. ============================================================= ============================================================= Volume | Tr.Entering | Population | Collisions | Coll*WGT | NumWGTedE | FluxWGTedE | Av.Tr.WGT | SL | SLW | SLW_v | SLWE | SLWE_v | - cell_00 | 32 | 129 | 0 | 0 | 0.32628 | 1.97579 | 1 | 5694.37 | 5694.37 | 1326.49 | 11250.9 | 432.807 | - cell_01 | 158 | 195 | 690 | 690 | 0.430151 | 3.75868 | 1 | 26557.9 | 26557.9 | 6716.46 | 99822.7 | 2889.09 | - cell_02 | 165 | 288 | 1459 | 729.5 | 0.203696 | 2.11154 | 0.5 | 50786.1 | 25393.1 | 9168.09 | 53618.3 | 1867.51 | - cell_03 | 182 | 297 | 1306 | 326.5 | 0.17897 | 2.09376 | 0.25 | 43597.4 | 10899.4 | 4427.79 | 22820.6 | 792.44 | - cell_04 | 200 | 327 | 1682 | 210.25 | 0.21166 | 1.99235 | 0.125 | 54684.9 | 6835.62 | 2344.57 | 13619 | 496.252 | - cell_05 | 215 | 361 | 2062 | 128.875 | 0.173644 | 1.73616 | 0.0625 | 65069.6 | 4066.85 | 1536.69 | 7060.69 | 266.837 | - cell_06 | 239 | 384 | 2180 | 68.125 | 0.147585 | 1.65521 | 0.03125 | 68998.3 | 2156.2 | 904.208 | 3568.97 | 133.448 | - cell_07 | 258 | 402 | 2415 | 37.7344 | 0.107177 | 1.3449 | 0.015625 | 73349.8 | 1146.09 | 581.596 | 1541.38 | 62.3337 | - cell_08 | 238 | 359 | 2038 | 15.9219 | 0.10873 | 1.45253 | 0.0078125 | 63973 | 499.789 | 260.507 | 725.957 | 28.3249 | - cell_09 | 222 | 337 | 1928 | 7.53125 | 0.124002 | 1.44929 | 0.00390625 | 58956.8 | 230.3 | 106.93 | 333.772 | 13.2595 | - cell_10 | 224 | 342 | 1973 | 3.85352 | 0.101274 | 1.12632 | 0.00195312 | 58318.7 | 113.904 | 54.6998 | 128.292 | 5.53964 | - cell_11 | 194 | 293 | 1726 | 1.68555 | 0.0786365 | 0.991328 | 0.000976562 | 50120 | 48.9453 | 27.8549 | 48.5208 | 2.19042 | - cell_12 | 147 | 238 | 1356 | 0.662109 | 0.0822361 | 0.995181 | 0.000488281 | 39547.8 | 19.3104 | 10.5843 | 19.2174 | 0.870412 | - cell_13 | 123 | 191 | 1059 | 0.258545 | 0.122309 | 1.33391 | 0.000244141 | 31844.6 | 7.77455 | 3.5889 | 10.3706 | 0.438956 | - cell_14 | 124 | 202 | 1347 | 0.164429 | 0.0867807 | 1.07809 | 0.00012207 | 39347.5 | 4.80316 | 2.66272 | 5.17822 | 0.231073 | - cell_15 | 93 | 158 | 864 | 0.0527344 | 0.127452 | 1.21932 | 6.10352e-05 | 26339.8 | 1.60765 | 0.707673 | 1.96024 | 0.0901946 | - cell_16 | 82 | 123 | 573 | 0.0174866 | 0.162767 | 1.46524 | 3.05176e-05 | 19194.5 | 0.585771 | 0.225663 | 0.858297 | 0.0367305 | - cell_17 | 74 | 121 | 672 | 0.0102539 | 0.1057 | 1.17456 | 1.52588e-05 | 20426 | 0.311677 | 0.153972 | 0.366083 | 0.0162748 | - cell_18 | 40 | 85 | 354 | 0.00270081 | 0.187845 | 1.38514 | 7.62939e-06 | 12488.9 | 0.095283 | 0.0324356 | 0.131981 | 0.00609286 | - cell_19 | 24 | 24 | 0 | 0 | 0.30325 | 1.64268 | 7.62939e-06 | 3864.16 | 0.0294812 | 0.00670912 | 0.048428 | 0.00203454 | + cell_00 | 36 | 130 | 0 | 0 | 0.491582 | 2.48121 | 1 | 6555.92 | 6555.92 | 1223.76 | 16266.6 | 601.581 | + cell_01 | 151 | 178 | 561 | 561 | 0.472863 | 4.33965 | 1 | 24495.7 | 24495.7 | 6201.14 | 106303 | 2932.29 | + cell_02 | 180 | 306 | 1373 | 686.5 | 0.285776 | 2.96843 | 0.5 | 48523.1 | 24261.5 | 7786.08 | 72018.6 | 2225.07 | + cell_03 | 241 | 375 | 1809 | 452.25 | 0.208519 | 2.31399 | 0.25 | 62578.7 | 15644.7 | 5779 | 36201.7 | 1205.03 | + cell_04 | 287 | 466 | 2330 | 291.25 | 0.184597 | 1.96926 | 0.125 | 77669.6 | 9708.7 | 3709.5 | 19119 | 684.762 | + cell_05 | 314 | 478 | 2381 | 148.812 | 0.18696 | 1.89939 | 0.0625 | 79021.9 | 4938.87 | 1842.55 | 9380.83 | 344.482 | + cell_06 | 341 | 526 | 3014 | 94.1875 | 0.122682 | 1.46118 | 0.03125 | 90423.5 | 2825.73 | 1322.01 | 4128.92 | 162.187 | + cell_07 | 306 | 495 | 2721 | 42.5156 | 0.114495 | 1.4641 | 0.015625 | 84037.8 | 1313.09 | 654.934 | 1922.5 | 74.9866 | + cell_08 | 275 | 438 | 2394 | 18.7031 | 0.132459 | 1.57396 | 0.0078125 | 76179.8 | 595.154 | 271.856 | 936.75 | 36.0098 | + cell_09 | 280 | 445 | 2374 | 9.27344 | 0.131719 | 1.68602 | 0.00390625 | 73908.6 | 288.706 | 135.239 | 486.764 | 17.8135 | + cell_10 | 272 | 447 | 2289 | 4.4707 | 0.129014 | 1.52821 | 0.00195312 | 71049.5 | 138.769 | 63.8366 | 212.068 | 8.23583 | + cell_11 | 258 | 421 | 2282 | 2.22852 | 0.135776 | 1.6504 | 0.000976562 | 71974.1 | 70.2873 | 31.6796 | 116.002 | 4.30134 | + cell_12 | 284 | 418 | 2316 | 1.13086 | 0.107414 | 1.48367 | 0.000488281 | 72439.3 | 35.3707 | 18.7636 | 52.4785 | 2.01547 | + cell_13 | 286 | 414 | 2506 | 0.611816 | 0.108482 | 1.20397 | 0.000244141 | 76286.3 | 18.6246 | 8.88085 | 22.4234 | 0.963415 | + cell_14 | 293 | 414 | 2613 | 0.31897 | 0.0993867 | 1.11912 | 0.00012207 | 74820.4 | 9.13335 | 4.46063 | 10.2213 | 0.443327 | + cell_15 | 262 | 397 | 2620 | 0.159912 | 0.0955301 | 1.07912 | 6.10352e-05 | 75485.4 | 4.60726 | 2.30043 | 4.97181 | 0.21976 | + cell_16 | 219 | 322 | 1949 | 0.0594788 | 0.0860681 | 1.13969 | 3.05176e-05 | 57152.6 | 1.74416 | 0.961786 | 1.9878 | 0.082779 | + cell_17 | 194 | 303 | 1821 | 0.0277863 | 0.0890139 | 1.18903 | 1.52588e-05 | 55962.8 | 0.853924 | 0.472604 | 1.01534 | 0.0420683 | + cell_18 | 121 | 258 | 1235 | 0.0094223 | 0.125286 | 1.59049 | 7.62939e-06 | 37485 | 0.285988 | 0.13727 | 0.45486 | 0.017198 | + cell_19 | 91 | 91 | 0 | 0 | 0.222498 | 2.44191 | 7.62939e-06 | 14528.2 | 0.110842 | 0.0409162 | 0.270665 | 0.00910376 | ============================================= === G4ProcessPlacer::RemoveProcess: for: neutron ProcessName: ImportanceProcess, will be removed! diff --git a/examples/extended/biasing/B03/src/B03PhysicsList.cc b/examples/extended/biasing/B03/src/B03PhysicsList.cc index 04141d06c0..ca0dd6283d 100644 --- a/examples/extended/biasing/B03/src/B03PhysicsList.cc +++ b/examples/extended/biasing/B03/src/B03PhysicsList.cc @@ -655,9 +655,9 @@ void B03PhysicsList::AddScoringProcess(){ G4ProcessManager* pmanager = particle->GetProcessManager(); pmanager->AddProcess(theParallelWorldProcess); if(theParallelWorldProcess->IsAtRestRequired(particle)) - {pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9999);} + {pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9900);} pmanager->SetProcessOrderingToSecond(theParallelWorldProcess, idxAlongStep); - pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9999); + pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9900); } } diff --git a/examples/extended/biasing/GB01/exampleGB01.out b/examples/extended/biasing/GB01/exampleGB01.out index b612c24cbf..ecc6f47701 100644 --- a/examples/extended/biasing/GB01/exampleGB01.out +++ b/examples/extended/biasing/GB01/exampleGB01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -17,6 +17,14 @@ ********** processes are wrapped for biasing ************ ********************************************************* Attaching biasing operator TestManyExponentialTransform to logical volume test.logical +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -45,16 +53,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -181,7 +191,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -195,7 +205,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -304,7 +314,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -337,7 +347,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -463,6 +473,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1586,37 +1601,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 132 71.5 0 0 0 test.phys initStep - 1 4.39 -1.97 182 64.4 6.78 50.4 50.4 test.phys eIoni - 2 4.68 -2.08 185 64.1 0.32 2.65 53.1 test.phys eBrem - 3 5.29 -3.38 199 46.6 1.74 14.7 67.7 test.phys eBrem - 4 5.36 -3.44 200 46.5 0.109 0.891 68.6 World Transportation - 5 711 -381 1e+04 46.5 3.39e-22 9.83e+03 9.9e+03 OutOfWorld Transportation + 1 0.802 -1.72 182 62.2 6.75 50.4 50.4 test.phys eIoni + 2 0.781 -1.61 185 61.8 0.32 2.65 53.1 test.phys eBrem + 3 0.54 -1.24 200 60 1.82 15.2 68.3 World Transportation + 4 445 775 1e+04 60 3.47e-22 9.84e+03 9.91e+03 OutOfWorld Transportation ********************************************************************************************************* * 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 4.39 -1.97 182 0.321 0 0 0 test.phys initStep - 1 3.95 -2.32 182 0.0504 0.271 1.25 1.25 test.phys eIoni - 2 3.93 -2.34 182 0 0.0504 0.0612 1.31 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 5.29 -3.38 199 15.7 0 0 0 test.phys initStep - 1 5.36 -3.44 200 15.7 0 0.891 0.891 World Transportation - 2 831 -642 1e+04 15.7 0 9.86e+03 9.86e+03 OutOfWorld Transportation + 0 0.802 -1.72 182 2.56 0 0 0 test.phys initStep + 1 -3.14 -0.31 185 1.89 0.673 5.3 5.3 test.phys eIoni + 2 -5.44 0.766 188 1.26 0.629 4.2 9.5 test.phys eIoni + 3 -6.55 -1.17 187 0.839 0.419 3.15 12.6 test.phys eIoni + 4 -8.22 -1.16 186 0.526 0.313 2.43 15.1 test.phys eIoni + 5 -9.25 -1.73 185 0.208 0.318 1.83 16.9 test.phys eIoni + 6 -9.08 -2.01 185 0 0.208 0.664 17.6 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 4.68 -2.08 185 0.0114 0 0 0 test.phys initStep - 1 5.49 -3.81 199 0 0.000403 14.5 14.5 test.phys biasWrapper(phot) + 0 0.781 -1.61 185 0.067 0 0 0 test.phys initStep + 1 0.526 -1.24 200 0.067 0 15.2 15.2 World Transportation + 2 -163 239 1e+04 0.067 0 9.8e+03 9.82e+03 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 3, Parent ID = 1 @@ -1624,143 +1634,50 @@ 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 132 27.5 0 0 0 test.phys initStep - 1 -0.786 0.135 136 13 0.526 4.3 4.3 test.phys eIoni - 2 -6.72 3.08 157 10.2 2.83 22.2 26.5 test.phys eIoni - 3 -4.05 0.255 165 8.86 0.946 8.66 35.1 test.phys eIoni - 4 -2.55 -0.593 167 8.18 0.427 2.91 38 test.phys eIoni - 5 1.45 -2.85 172 7.35 0.793 6.67 44.7 test.phys eBrem - 6 9.52 -10.9 178 5.67 1.68 13.1 57.8 test.phys eIoni - 7 12.8 -17.7 185 4.31 1.36 10.4 68.3 test.phys eIoni - 8 15.6 -16 193 3.35 0.965 8.21 76.5 test.phys eIoni - 9 19.8 -11.7 195 2.45 0.892 6.63 83.1 test.phys eIoni - 10 23.4 -8.7 193 1.91 0.542 5.16 88.3 test.phys eIoni - 11 27 -9.49 191 1.29 0.62 4.26 92.5 test.phys eIoni - 12 29.7 -7.91 192 0.911 0.381 3.22 95.8 test.phys eIoni - 13 31.6 -7.48 191 0.62 0.291 2.57 98.3 test.phys eIoni - 14 30.2 -7.19 191 0.242 0.378 2.02 100 test.phys eIoni - 15 30 -7.18 190 0 0.242 0.82 101 test.phys eIoni - 16 30 -7.18 190 0 0 0 101 test.phys annihil - -********************************************************************************************************* -* 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 -2.55 -0.593 167 0.251 0 0 0 test.phys initStep - 1 -2.47 -0.264 167 0 0.251 0.892 0.892 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 -4.05 0.255 165 0.359 0 0 0 test.phys initStep - 1 -4.2 -0.479 165 0.0826 0.277 1.39 1.39 test.phys eIoni - 2 -4.19 -0.435 165 0 0.0826 0.144 1.53 test.phys eIoni + 1 -1.39 -0.366 141 26.1 1.12 9.1 9.1 test.phys eIoni + 2 -1.53 -0.481 153 24 1.51 12.7 21.8 test.phys eIoni + 3 2.89 -0.0759 193 18.5 5.46 39.7 61.5 test.phys eIoni + 4 2.9 -0.0882 193 12.4 0.0104 0.113 61.6 test.phys eIoni + 5 5.29 -0.923 200 11.4 0.993 7.68 69.3 World Transportation + 6 989 201 1e+04 11.4 2.99e-22 9.85e+03 9.92e+03 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 -0.786 0.135 136 14 0 0 0 test.phys initStep - 1 -1.62 -0.928 145 12.6 1.16 9.38 9.38 test.phys eIoni - 2 -5.7 -0.0509 161 9.37 1.9 16.7 26.1 test.phys eBrem - 3 -12.5 4.78 175 7.33 2.04 16.3 42.4 test.phys eIoni - 4 -21.2 2.86 184 5.68 1.39 12.5 54.9 test.phys eIoni - 5 -28.4 3.81 191 4.4 1.28 10.4 65.3 test.phys eIoni - 6 -34.3 0.212 195 3 1.4 8.3 73.6 test.phys eIoni - 7 -31.5 -4.33 197 2.22 0.782 6.03 79.6 test.phys eIoni - 8 -32 -6.8 200 1.71 0.513 3.89 83.5 World Transportation - 9 -3.49e+03 -1e+04 3.52e+03 1.71 2.94e-22 1.11e+04 1.12e+04 OutOfWorld Transportation + 0 2.9 -0.0882 193 6.14 0 0 0 test.phys initStep + 1 2.69 -0.611 196 5.63 0.309 2.93 2.93 test.phys eBrem + 2 2.05 -1.18 200 5.12 0.514 4.5 7.43 World Transportation + 3 -3.51e+03 -2.66e+03 1e+04 5.12 3.03e-22 1.07e+04 1.08e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.2 2.86 184 0.266 0 0 0 test.phys initStep - 1 -21.6 3.07 184 0 0.266 0.978 0.978 test.phys eIoni + 0 -1.53 -0.481 153 0.543 0 0 0 test.phys initStep + 1 -0.711 -1.19 154 0.328 0.215 1.86 1.86 test.phys eIoni + 2 -0.269 -0.654 154 0.108 0.22 1.27 3.14 test.phys eIoni + 3 -0.298 -0.7 154 0 0.108 0.227 3.36 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, 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 -1.62 -0.928 145 0.226 0 0 0 test.phys initStep - 1 -1.99 -0.975 145 0 0.226 0.758 0.758 test.phys eIoni + 0 -1.39 -0.366 141 0.296 0 0 0 test.phys initStep + 1 -1.9 -0.388 141 0.0556 0.24 1.14 1.14 test.phys eIoni + 2 -1.93 -0.377 141 0 0.0556 0.0727 1.21 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 8 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.49 -3.81 199 0.011 0 0 0 test.phys initStep - 1 5.49 -3.81 199 0 0.011 0.00422 0.00422 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.7 -0.0509 161 1.3 0 0 0 test.phys initStep - 1 -15.7 9.02 200 1.3 0 41.1 41.1 World Transportation - 2 -2.55e+03 2.3e+03 1e+04 1.3 0 1.04e+04 1.04e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 30 -7.18 190 0.511 0 0 0 test.phys initStep - 1 28.9 -23.8 185 0.508 0 17.4 17.4 test.phys biasWrapper(compt) - 2 28.9 -410 27.1 0.184 0 418 435 test.phys biasWrapper(compt) - 3 31 -326 3.55e-15 0.184 0 88.1 523 World Transportation - 4 291 1e+04 -3.34e+03 0.184 0 1.09e+04 1.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28.9 -410 27.1 0.323 0 0 0 test.phys initStep - 1 28.9 -411 26.9 0.00386 0.319 1.25 1.25 test.phys eIoni - 2 28.9 -411 26.9 0 0.00386 0.000695 1.25 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28.9 -23.8 185 0.00325 0 0 0 test.phys initStep - 1 28.9 -23.8 185 0 0.00325 0.000522 0.000522 test.phys eIoni - -********************************************************************************************************* -* 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 30 -7.18 190 0.511 0 0 0 test.phys initStep - 1 31.2 12.2 196 0.383 0 20.3 20.3 test.phys biasWrapper(compt) - 2 24 18.8 200 0.383 0 10.5 30.8 World Transportation - 3 -1e+04 9.25e+03 5.58e+03 0.383 0 1.47e+04 1.47e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.45 -2.85 172 0.0356 0 0 0 test.phys initStep - 1 28.6 -32.4 200 0.0356 0 49.1 49.1 World Transportation - 2 9.21e+03 -1e+04 9.72e+03 0.0356 0 1.66e+04 1.66e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 31.2 12.2 196 0.128 0 0 0 test.phys initStep - 1 31.3 12.3 196 0 0.128 0.302 0.302 test.phys eIoni + 0 2.69 -0.611 196 0.2 0 0 0 test.phys initStep + 1 1.96 -1.15 200 0.2 0 4.43 4.43 World Transportation + 2 -1.65e+03 -1.21e+03 1e+04 0.2 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -1789,25 +1706,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 0 0 -500 100 0 0 0 World initStep 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 200 0 0 200 700 test.phys biasWrapper(conv) + 2 0 0 199 0 0 199 699 test.phys biasWrapper(conv) ********************************************************************************************************* * 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 200 77 0 0 0 test.phys initStep - 1 0.00263 0.00208 200 77 0.0402 0.417 0.417 World Transportation - 2 40.9 70 1e+04 77 3.53e-22 9.8e+03 9.8e+03 OutOfWorld Transportation + 0 0 0 199 54.8 0 0 0 test.phys initStep + 1 0.00536 -0.00335 200 54.6 0.145 1.31 1.31 World Transportation + 2 108 125 1e+04 54.6 3.42e-22 9.8e+03 9.8e+03 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 0 200 21.9 0 0 0 test.phys initStep - 1 -0.00909 -0.0072 200 21.9 0.0543 0.417 0.417 World Transportation - 2 -42.4 -279 1e+04 21.9 3.16e-22 9.8e+03 9.8e+03 OutOfWorld Transportation + 0 0 0 199 44.2 0 0 0 test.phys initStep + 1 -0.00663 0.00414 200 44 0.201 1.31 1.31 World Transportation + 2 74.5 -16.6 1e+04 44 3.36e-22 9.8e+03 9.8e+03 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -1816,8 +1733,293 @@ 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 -500 100 0 0 0 World initStep 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 200 100 0 200 700 World Transportation - 3 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + 2 0 0 115 0 0 115 615 test.phys biasWrapper(conv) + +********************************************************************************************************* +* 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 115 85.1 0 0 0 test.phys initStep + 1 -0.12 -0.147 124 10.2 1.09 8.77 8.77 test.phys eBrem + 2 -0.169 0.121 124 10.1 0.0975 1 9.78 test.phys eBrem + 3 -4.52 2.9 141 7.75 2.38 17.5 27.3 test.phys eIoni + 4 -0.931 8.21 153 6.08 1.68 13.7 41 test.phys eIoni + 5 4.89 9.2 162 4.82 1.25 10.5 51.5 test.phys eBrem + 6 5 9.12 162 2.83 0.0487 0.293 51.8 test.phys eIoni + 7 8.57 8.03 166 2.23 0.607 5.75 57.5 test.phys eIoni + 8 8.41 5.26 169 1.66 0.567 4.75 62.3 test.phys eIoni + 9 7.86 2.98 171 1.21 0.446 3.82 66.1 test.phys eIoni + 10 7.2 0.523 172 0.735 0.477 3.07 69.2 test.phys eIoni + 11 6.34 -0.185 171 0.457 0.278 2.24 71.4 test.phys eIoni + 12 5.65 0.169 170 0.154 0.302 1.67 73.1 test.phys eIoni + 13 5.83 0.272 170 0 0.154 0.411 73.5 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 5 9.12 162 1.94 0 0 0 test.phys initStep + 1 4.75 7.77 165 1.41 0.534 4.29 4.29 test.phys eIoni + 2 5.22 7.52 166 1.25 0.1 0.994 5.28 test.phys eBrem + 3 5.83 6.33 169 0.836 0.413 3.13 8.41 test.phys eIoni + 4 6.29 8.15 168 0.571 0.266 2.42 10.8 test.phys eIoni + 5 6.68 9.12 167 0.202 0.369 1.92 12.8 test.phys eIoni + 6 6.83 9.29 168 0 0.202 0.635 13.4 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 5.22 7.52 166 0.0591 0 0 0 test.phys initStep + 1 3.32 -0.324 174 0.0482 0 11.4 11.4 test.phys biasWrapper(compt) + 2 3.37 -0.206 174 0.0439 0 0.153 11.6 test.phys biasWrapper(compt) + 3 -13.8 5.26 171 0.0407 0 18.3 29.9 test.phys biasWrapper(compt) + 4 -11 15.8 168 0.0402 0 11.4 41.3 test.phys biasWrapper(compt) + 5 -15.6 30 157 0.0396 0 18.3 59.6 test.phys biasWrapper(compt) + 6 10 87.3 76.7 0.0349 0 102 162 test.phys biasWrapper(compt) + 7 -28.2 45.5 89.6 0.031 0 58.1 220 test.phys biasWrapper(compt) + 8 27.9 80.4 104 0.0298 0 67.7 288 test.phys biasWrapper(compt) + 9 16.3 124 137 0.0287 0 56.3 344 test.phys biasWrapper(compt) + 10 71.6 192 122 0.0279 0 88.3 432 test.phys biasWrapper(compt) + 11 97.6 188 129 0.027 0 27.2 459 test.phys biasWrapper(compt) + 12 131 197 89.1 0 0.000403 52.9 512 test.phys biasWrapper(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 131 197 89.1 0.0266 0 0 0 test.phys initStep + 1 131 197 89.1 0 0.0266 0.0199 0.0199 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 97.6 188 129 0.000902 0 0 0 test.phys initStep + 1 97.6 188 129 0 0.000902 7.21e-05 7.21e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 71.6 192 122 0.000856 0 0 0 test.phys initStep + 1 71.6 192 122 0 0.000856 6.7e-05 6.7e-05 test.phys eIoni + +********************************************************************************************************* +* 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 16.3 124 137 0.00106 0 0 0 test.phys initStep + 1 16.3 124 137 0 0.00106 9.11e-05 9.11e-05 test.phys eIoni + +********************************************************************************************************* +* 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 27.9 80.4 104 0.00116 0 0 0 test.phys initStep + 1 27.9 80.4 104 0 0.00116 0.000103 0.000103 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -28.2 45.5 89.6 0.00396 0 0 0 test.phys initStep + 1 -28.2 45.5 89.6 0 0.00396 0.000725 0.000725 test.phys eIoni + +********************************************************************************************************* +* 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 10 87.3 76.7 0.00472 0 0 0 test.phys initStep + 1 10 87.3 76.7 0 0.00472 0.000975 0.000975 test.phys eIoni + +********************************************************************************************************* +* 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 -15.6 30 157 0.000529 0 0 0 test.phys initStep + 1 -15.6 30 157 0 0.000529 3.58e-05 3.58e-05 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 -11 15.8 168 0.000567 0 0 0 test.phys initStep + 1 -11 15.8 168 0 0.000567 3.9e-05 3.9e-05 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 -13.8 5.26 171 0.00318 0 0 0 test.phys initStep + 1 -13.8 5.26 171 0 0.00318 0.000504 0.000504 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 3.37 -0.206 174 0.00428 0 0 0 test.phys initStep + 1 3.37 -0.205 174 0 0.00428 0.000828 0.000828 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 3.32 -0.324 174 0.0109 0 0 0 test.phys initStep + 1 3.32 -0.325 174 0 0.0109 0.00414 0.00414 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 4.89 9.2 162 0.00357 0 0 0 test.phys initStep + 1 4.9 9.2 162 0 0.000403 0.0508 0.0508 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 4.9 9.2 162 0.00317 0 0 0 test.phys initStep + 1 4.9 9.2 162 0 0.00317 0.000501 0.000501 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.169 0.121 124 0.00636 0 0 0 test.phys initStep + 1 -0.511 0.487 126 0 0.000403 1.35 1.35 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 -0.511 0.487 126 0.00596 0 0 0 test.phys initStep + 1 -0.511 0.487 126 0 0.00596 0.00145 0.00145 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.12 -0.147 124 73.8 0 0 0 test.phys initStep + 1 -1.95 -3.28 200 73.8 0 76.6 76.6 World Transportation + 2 -236 -405 1e+04 73.8 0 9.81e+03 9.89e+03 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 0 115 13.8 0 0 0 test.phys initStep + 1 1.12 1.36 125 12.1 1.54 10.7 10.7 test.phys eIoni + 2 0.939 1.83 129 11.4 0.379 3.54 14.2 test.phys eIoni + 3 1.81 2.36 137 8.55 1.03 8.51 22.7 test.phys eIoni + 4 -1.12 1.98 152 6.86 1.7 15.1 37.8 test.phys eIoni + 5 -3.37 -0.757 164 5.38 1.47 12.3 50.1 test.phys eIoni + 6 -1.37 -2.22 173 4.19 1.19 9.95 60.1 test.phys eIoni + 7 3.49 -0.873 179 3.12 1.07 8.01 68.1 test.phys eIoni + 8 8.37 1.3 182 2.41 0.713 6.26 74.3 test.phys eIoni + 9 11.9 4.12 184 1.83 0.574 5.09 79.4 test.phys eIoni + 10 14.4 6.71 183 1.37 0.461 4.13 83.6 test.phys eIoni + 11 16.2 8.96 183 0.886 0.487 3.36 86.9 test.phys eIoni + 12 15.3 10.7 182 0.604 0.281 2.52 89.4 test.phys eIoni + 13 14.6 11.6 182 0.211 0.393 1.99 91.4 test.phys eIoni + 14 14.4 11.8 181 0 0.211 0.661 92.1 test.phys eIoni + 15 14.4 11.8 181 0 0 0 92.1 test.phys annihil + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.81 2.36 137 1.79 0 0 0 test.phys initStep + 1 4.14 3.13 140 1.33 0.463 4.04 4.04 test.phys eIoni + 2 3.57 4.82 142 0.823 0.506 3.27 7.31 test.phys eIoni + 3 3.54 5.22 144 0.548 0.275 2.4 9.71 test.phys eIoni + 4 3.86 5.18 145 0.3 0.248 1.87 11.6 test.phys eIoni + 5 4.17 4.88 146 0.0346 0.265 1.15 12.7 test.phys eIoni + 6 4.17 4.87 146 0 0.0346 0.0317 12.8 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 0.939 1.83 129 0.326 0 0 0 test.phys initStep + 1 0.962 1.23 129 0.0231 0.303 1.26 1.26 test.phys eIoni + 2 0.954 1.23 129 0 0.0231 0.0155 1.28 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.12 1.36 125 0.227 0 0 0 test.phys initStep + 1 1.48 1.38 125 0 0.227 0.764 0.764 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 14.4 11.8 181 0.511 0 0 0 test.phys initStep + 1 20.6 11.3 200 0.511 0 19.6 19.6 World Transportation + 2 3.29e+03 -275 1e+04 0.511 0 1.03e+04 1.04e+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 14.4 11.8 181 0.511 0 0 0 test.phys initStep + 1 -8.49 13.8 113 0.419 0 72.3 72.3 test.phys biasWrapper(compt) + 2 -37 -13.5 78.5 0.181 0 52.3 125 test.phys biasWrapper(compt) + 3 -33.1 -17.5 91.8 0.177 0 14.4 139 test.phys biasWrapper(compt) + 4 -39.6 -37.2 200 0.177 0 110 249 World Transportation + 5 -630 -1.82e+03 1e+04 0.177 0 9.98e+03 1.02e+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 -33.1 -17.5 91.8 0.00377 0 0 0 test.phys initStep + 1 -33.1 -17.5 91.8 0 0.00377 0.000666 0.000666 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 -37 -13.5 78.5 0.238 0 0 0 test.phys initStep + 1 -37.2 -13.6 78.2 0 0.238 0.824 0.824 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 -8.49 13.8 113 0.092 0 0 0 test.phys initStep + 1 -8.47 13.9 113 0 0.092 0.173 0.173 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -1876,17 +2078,67 @@ 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 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 33 0.78 0 33 533 test.phys biasWrapper(hadElastic) - 3 -25.6 -18.9 0 0.78 0 45.8 579 World Transportation - 4 -7.8e+03 -5.74e+03 -1e+04 0.78 0 1.39e+04 1.45e+04 OutOfWorld Transportation + 2 0 0 11.1 0.839 0 11.1 511 test.phys biasWrapper(hadElastic) + 3 2.6 0.725 10.5 0.669 0 2.76 514 test.phys biasWrapper(hadElastic) + 4 -17.6 13.8 19.2 0.589 0 25.6 539 test.phys biasWrapper(hadElastic) + 5 -10.4 37.7 9.28 0.507 0 26.8 566 test.phys biasWrapper(hadElastic) + 6 11.1 44.2 44 0.42 0 41.4 608 test.phys biasWrapper(hadElastic) + 7 -17.2 -18.4 48.1 0.4 0.0198 68.8 676 test.phys biasWrapper(hadElastic) + 8 11.9 -89.6 76.2 0.348 0.0525 81.9 758 test.phys biasWrapper(hadElastic) + 9 45.2 -55.4 134 0.309 0.039 74.9 833 test.phys biasWrapper(hadElastic) + 10 47.4 -57.8 135 0.233 0 3.31 837 test.phys biasWrapper(hadElastic) + 11 33.5 -27.2 116 0.196 0.0374 38.2 875 test.phys biasWrapper(hadElastic) + 12 -93.8 -87.8 179 0.184 0.0123 154 1.03e+03 test.phys biasWrapper(hadElastic) + 13 -165 -40.2 200 0.184 0 88 1.12e+03 World Transportation + 14 -1e+04 6.54e+03 3.07e+03 0.184 0 1.22e+04 1.33e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.4 -57.8 135 0.0753 0 0 0 test.phys initStep + 1 47.4 -57.8 135 0 0.0753 0.000965 0.000965 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 11.1 44.2 44 0.0874 0 0 0 test.phys initStep + 1 11.1 44.2 44 0 0.0874 0.00106 0.00106 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.4 37.7 9.28 0.0813 0 0 0 test.phys initStep + 1 -10.4 37.7 9.28 0 0.0813 0.00101 0.00101 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.6 13.8 19.2 0.0798 0 0 0 test.phys initStep + 1 -17.6 13.8 19.2 0 0.0798 0.001 0.001 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N15, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.6 0.725 10.5 0.17 0 0 0 test.phys initStep + 1 2.6 0.725 10.5 0 0.17 0.00167 0.00167 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 33 0.22 0 0 0 test.phys initStep - 1 0.000478 0.000352 33 0 0.22 0.00183 0.00183 test.phys ionIoni + 0 0 0 11.1 0.161 0 0 0 test.phys initStep + 1 -0.000802 -0.000224 11.1 0 0.161 0.00157 0.00157 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -1895,29 +2147,48 @@ 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 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 73.5 0.933 0.0669 73.5 574 test.phys biasWrapper(hadElastic) - 3 -1.14 6.97 77.8 0.835 0 8.27 582 test.phys biasWrapper(hadElastic) - 4 -35.9 21.4 63.3 0.64 0 40.4 622 test.phys biasWrapper(hadElastic) - 5 -25.6 23.1 65.5 0.621 0.0191 10.7 633 test.phys biasWrapper(hadElastic) - 6 -25.1 23.2 66.1 0.613 0.00712 0.76 634 test.phys biasWrapper(hadElastic) - 7 81.3 102 200 0.613 0 188 822 World Transportation - 8 7.87e+03 5.84e+03 1e+04 0.613 0 1.38e+04 1.46e+04 OutOfWorld Transportation + 2 0 0 61.7 0.918 0 61.7 562 test.phys biasWrapper(hadElastic) + 3 50.9 130 124 0.86 0.0578 153 714 test.phys biasWrapper(hadElastic) + 4 31.7 155 130 0.827 0.0329 32.4 747 test.phys biasWrapper(hadElastic) + 5 -10.5 164 129 0.824 0.00273 43.1 790 test.phys biasWrapper(hadElastic) + 6 -43 178 127 0.8 0.0241 35.7 826 test.phys biasWrapper(hadElastic) + 7 -113 177 160 0.704 0 77.3 903 test.phys biasWrapper(hadElastic) + 8 -115 179 157 0.61 0 3.74 907 test.phys biasWrapper(hadElastic) + 9 -29.1 194 110 0.537 0 99 1.01e+03 test.phys biasWrapper(hadElastic) + 10 -98 435 0 0.537 0 274 1.28e+03 World Transportation + 11 -2.83e+03 1e+04 -4.35e+03 0.537 0 1.09e+04 1.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.1 194 110 0.0736 0 0 0 test.phys initStep + 1 -29.1 194 110 0 0.0736 0.000951 0.000951 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -115 179 157 0.0938 0 0 0 test.phys initStep + 1 -115 179 157 0 0.0938 0.00111 0.00111 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.9 21.4 63.3 0.196 0 0 0 test.phys initStep - 1 -35.9 21.4 63.3 0 0.196 0.00174 0.00174 test.phys ionIoni + 0 -113 177 160 0.0961 0 0 0 test.phys initStep + 1 -113 177 160 0 0.0961 0.00113 0.00113 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.14 6.97 77.8 0.0979 0 0 0 test.phys initStep - 1 -1.14 6.97 77.8 0 0.0979 0.00114 0.00114 test.phys ionIoni + 0 0 0 61.7 0.0823 0 0 0 test.phys initStep + 1 -0.000236 -0.000602 61.7 0 0.0823 0.00102 0.00102 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -1936,99 +2207,58 @@ 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 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 22 0.785 0 22 522 test.phys biasWrapper(hadElastic) - 3 8.8 -22.4 0 0.785 0 32.6 555 World Transportation - 4 3.93e+03 -1e+04 -9.79e+03 0.785 0 1.45e+04 1.51e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 22 0.215 0 0 0 test.phys initStep - 1 -0.000231 0.000589 22 0 0.215 0.00181 0.00181 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 140 0.784 0 140 640 test.phys biasWrapper(hadElastic) - 3 3.03 -1.9 137 0.757 0.0265 4.92 645 test.phys biasWrapper(hadElastic) - 4 6.7 -18.4 128 0.706 0.0518 18.8 664 test.phys biasWrapper(hadElastic) - 5 48.7 -104 188 0.678 0.0281 113 776 test.phys biasWrapper(hadElastic) - 6 71.7 -114 192 0.63 0.0471 25.4 802 test.phys biasWrapper(hadElastic) - 7 75.6 -114 200 0.63 0 9.14 811 World Transportation - 8 4.66e+03 633 1e+04 0.63 0 1.08e+04 1.17e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 140 0.216 0 0 0 test.phys initStep - 1 -0.000528 0.000331 140 0 0.216 0.00182 0.00182 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 85.8 0.878 0 85.8 586 test.phys biasWrapper(hadElastic) - 3 10.2 17.6 87.8 0.821 0.0571 20.5 606 test.phys biasWrapper(hadElastic) - 4 29.9 45.5 44.5 0.703 0 55.2 661 test.phys biasWrapper(hadElastic) - 5 164 29.4 109 0.56 0 150 811 test.phys biasWrapper(hadElastic) - 6 99.6 197 18.1 0.469 0 202 1.01e+03 test.phys biasWrapper(hadElastic) - 7 118 227 111 0.392 0 99.1 1.11e+03 test.phys biasWrapper(hadElastic) - 8 90.7 235 106 0.324 0.0683 28.8 1.14e+03 test.phys biasWrapper(hadElastic) - 9 92.2 199 128 0.301 0.0228 41.6 1.18e+03 test.phys biasWrapper(hadElastic) - 10 92.8 195 126 0.243 0.058 4.17 1.19e+03 test.phys biasWrapper(hadElastic) - 11 139 210 200 0.243 0 89.1 1.28e+03 World Transportation - 12 6.28e+03 2.17e+03 1e+04 0.243 0 1.17e+04 1.3e+04 OutOfWorld Transportation + 2 0 0 76.9 0.787 0 76.9 577 test.phys biasWrapper(hadElastic) + 3 14.1 23.3 52.9 0.66 0 36.4 613 test.phys biasWrapper(hadElastic) + 4 21 37.6 81.6 0.577 0 32.8 646 test.phys biasWrapper(hadElastic) + 5 -47.9 14.6 116 0.495 0 80.6 727 test.phys biasWrapper(hadElastic) + 6 -52.2 42.5 122 0.429 0.0664 28.9 756 test.phys biasWrapper(hadElastic) + 7 -23.3 47 123 0.356 0 29.2 785 test.phys biasWrapper(hadElastic) + 8 -35.7 72.6 116 0.288 0.0677 29.1 814 test.phys biasWrapper(hadElastic) + 9 -88.5 -30.2 68.2 0.282 0.00606 125 939 test.phys biasWrapper(hadElastic) + 10 -85.7 -321 37.8 0.227 0.0549 292 1.23e+03 test.phys biasWrapper(hadElastic) + 11 -100 -310 55.2 0.2 0.0279 24.8 1.26e+03 test.phys biasWrapper(hadElastic) + 12 -127 -234 0 0.2 0 97.7 1.35e+03 World Transportation + 13 -3.81e+03 1e+04 -7.44e+03 0.2 0 1.32e+04 1.45e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 227 111 0.077 0 0 0 test.phys initStep - 1 118 227 111 0 0.077 0.000978 0.000978 test.phys ionIoni + 0 -23.3 47 123 0.0727 0 0 0 test.phys initStep + 1 -23.3 47 123 0 0.0727 0.000944 0.000944 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 99.6 197 18.1 0.0912 0 0 0 test.phys initStep - 1 99.6 197 18.1 0 0.0912 0.00109 0.00109 test.phys ionIoni + 0 -47.9 14.6 116 0.0818 0 0 0 test.phys initStep + 1 -47.9 14.6 116 0 0.0818 0.00102 0.00102 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 164 29.4 109 0.143 0 0 0 test.phys initStep - 1 164 29.4 109 0 0.143 0.00145 0.00145 test.phys ionIoni + 0 21 37.6 81.6 0.0825 0 0 0 test.phys initStep + 1 21 37.6 81.6 0 0.0825 0.00102 0.00102 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29.9 45.5 44.5 0.118 0 0 0 test.phys initStep - 1 29.9 45.5 44.5 0 0.118 0.00129 0.00129 test.phys ionIoni + 0 14.1 23.3 52.9 0.127 0 0 0 test.phys initStep + 1 14.1 23.3 52.9 0 0.127 0.00135 0.00135 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.8 0.122 0 0 0 test.phys initStep - 1 -0.000399 -0.000691 85.8 0 0.122 0.00131 0.00131 test.phys ionIoni + 0 0 0 76.9 0.213 0 0 0 test.phys initStep + 1 -0.000333 -0.00055 76.9 0 0.213 0.00181 0.00181 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2037,38 +2267,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 0 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 5.13 0.936 0.064 5.13 505 test.phys biasWrapper(hadElastic) - 3 -103 213 158 0.861 0 282 787 test.phys biasWrapper(hadElastic) - 4 -123 213 161 0.662 0 21 808 test.phys biasWrapper(hadElastic) - 5 -33.8 251 87.4 0.631 0.0311 122 930 test.phys biasWrapper(hadElastic) - 6 -27.7 254 88.7 0.534 0 6.76 936 test.phys biasWrapper(hadElastic) - 7 -30.3 230 121 0.482 0.0517 40.4 977 test.phys biasWrapper(hadElastic) - 8 36 273 200 0.482 0 112 1.09e+03 World Transportation - 9 8.24e+03 5.58e+03 1e+04 0.482 0 1.38e+04 1.49e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -27.7 254 88.7 0.0964 0 0 0 test.phys initStep - 1 -27.7 254 88.7 0 0.0964 0.00113 0.00113 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -123 213 161 0.199 0 0 0 test.phys initStep - 1 -123 213 161 0 0.199 0.00176 0.00176 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -103 213 158 0.0754 0 0 0 test.phys initStep - 1 -103 213 158 0 0.0754 0.000966 0.000966 test.phys ionIoni + 2 0 0 200 1 0 200 700 World Transportation + 3 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2077,79 +2277,118 @@ 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 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 82.4 0.892 0 82.4 582 test.phys biasWrapper(hadElastic) - 3 46.5 11.6 92.8 0.88 0.0122 49 631 test.phys biasWrapper(hadElastic) - 4 169 19.7 181 0 0 151 782 test.phys biasWrapper(neutronInelastic) + 2 0 0 200 1 0 200 700 World Transportation + 3 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 1 +* 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 169 19.7 181 0.0615 0 0 0 test.phys initStep - 1 169 19.7 181 0 0.0615 0.000849 0.000849 test.phys ionIoni + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 38.7 0 0 38.7 539 test.phys biasWrapper(neutronInelastic) ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 82.4 0.108 0 0 0 test.phys initStep - 1 -0.000734 -0.000182 82.4 0 0.108 0.00121 0.00121 test.phys ionIoni + 0 0 0 38.7 0.0565 0 0 0 test.phys initStep + 1 -0.000226 2.21e-05 38.8 0 0.0565 0.000804 0.000804 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 169 19.7 181 0.541 0 0 0 test.phys initStep - 1 173 56.1 200 0.541 0 41.3 41.3 World Transportation - 2 1.49e+03 1e+04 5.41e+03 0.541 0 1.13e+04 1.13e+04 OutOfWorld Transportation + 0 0 0 38.7 0.169 0 0 0 test.phys initStep + 1 37.9 -4.73 60.5 0.146 0.0229 44 44 test.phys biasWrapper(hadElastic) + 2 36.3 -19.8 59.6 0.113 0.0329 15.2 59.2 test.phys biasWrapper(hadElastic) + 3 27 12 40.5 0.0985 0.0144 38.3 97.4 test.phys biasWrapper(hadElastic) + 4 -148 5.88 94.6 0.0764 0.022 183 281 test.phys biasWrapper(hadElastic) + 5 -121 14.6 105 0.0636 0.0128 30.2 311 test.phys biasWrapper(hadElastic) + 6 -128 37.8 70.4 0.0481 0.0155 42.5 354 test.phys biasWrapper(hadElastic) + 7 -118 30 100 0.0467 0.00135 32.3 386 test.phys biasWrapper(hadElastic) + 8 -115 40.6 128 0.0396 0.0071 29.9 416 test.phys biasWrapper(hadElastic) + 9 -101 49.1 120 0.0334 0.0062 18.5 434 test.phys biasWrapper(hadElastic) + 10 -96.2 42.7 126 0.029 0.00441 9.98 444 test.phys biasWrapper(hadElastic) + 11 -95.8 35.3 118 0.0227 0.00633 10.8 455 test.phys biasWrapper(hadElastic) + 12 -98.2 49.7 119 0.0189 0.00378 14.6 470 test.phys biasWrapper(hadElastic) + 13 -37.8 43.6 118 0.0159 0.00302 60.7 530 test.phys biasWrapper(hadElastic) + 14 -49.2 44.6 68.8 0.0154 0.000433 50.1 581 test.phys biasWrapper(hadElastic) + 15 -39.5 46.9 45.6 0.0135 0.00197 25.2 606 test.phys biasWrapper(hadElastic) + 16 -42.9 37.6 42.7 0.0129 0.000597 10.3 616 test.phys biasWrapper(hadElastic) + 17 -49 34.3 34.4 0.0128 0.000117 10.8 627 test.phys biasWrapper(hadElastic) + 18 -64.6 33.7 20.8 0.0123 0.000469 20.8 648 test.phys biasWrapper(hadElastic) + 19 -88.5 31.4 21.2 0.00946 0.00283 24 672 test.phys biasWrapper(hadElastic) + 20 -64.4 48.7 31.7 0.00888 0.000578 31.5 703 test.phys biasWrapper(hadElastic) + 21 -61.5 50.9 45.3 0.00813 0.000752 14.1 717 test.phys biasWrapper(hadElastic) + 22 -60.4 73.4 50.7 0.00758 0.000555 23.1 740 test.phys biasWrapper(hadElastic) + 23 -67.8 78.2 59.1 0.00745 0.00013 12.2 752 test.phys biasWrapper(hadElastic) + 24 -71.7 82.7 61.1 0.00582 0.00163 6.33 759 test.phys biasWrapper(hadElastic) + 25 -67.6 82.2 60.9 0.00521 0.000603 4.08 763 test.phys biasWrapper(hadElastic) + 26 -55.8 110 28.9 0.0043 0.000912 44.1 807 test.phys biasWrapper(hadElastic) + 27 -18.1 121 82.9 0.00405 0.00025 66.8 874 test.phys biasWrapper(hadElastic) + 28 -18.1 103 111 0.00367 0.000376 33.3 907 test.phys biasWrapper(hadElastic) + 29 -26.1 92.2 109 0.0034 0.000271 13.3 920 test.phys biasWrapper(hadElastic) + 30 -28.1 90 113 0.00297 0.000435 4.92 925 test.phys biasWrapper(hadElastic) + 31 -54 147 135 0.0025 0.000464 66.2 991 test.phys biasWrapper(hadElastic) + 32 -51.6 148 130 0.00228 0.000229 5.46 997 test.phys biasWrapper(hadElastic) + 33 -52.6 148 129 0.00172 0.00056 1.8 999 test.phys biasWrapper(hadElastic) + 34 -51.3 149 130 0.00156 0.000151 2.25 1e+03 test.phys biasWrapper(hadElastic) + 35 -30 122 166 0.0015 6.25e-05 49.8 1.05e+03 test.phys biasWrapper(hadElastic) + 36 -16.4 109 167 0.00147 3.1e-05 18.7 1.07e+03 test.phys biasWrapper(hadElastic) + 37 9.21 79.8 193 0.00114 0.000327 46.7 1.12e+03 test.phys biasWrapper(hadElastic) + 38 2.39 96.6 194 0.000911 0.000233 18.2 1.13e+03 test.phys biasWrapper(hadElastic) + 39 44.7 84.8 171 0.000786 0.000126 49.8 1.18e+03 test.phys biasWrapper(hadElastic) + 40 44.8 83.1 172 0.000702 8.34e-05 2.06 1.19e+03 test.phys biasWrapper(hadElastic) + 41 4.49 65.2 165 0.000664 3.79e-05 44.6 1.23e+03 test.phys biasWrapper(hadElastic) + 42 -1.31 46.3 151 0.000652 1.21e-05 24.3 1.26e+03 test.phys biasWrapper(hadElastic) + 43 -14.3 32.7 119 0.000536 0.000117 36.9 1.29e+03 test.phys biasWrapper(hadElastic) + 44 -3.16 18 130 0.000473 6.24e-05 21.4 1.31e+03 test.phys biasWrapper(hadElastic) + 45 -9.66 -19.2 99.8 0.000379 9.46e-05 48.4 1.36e+03 test.phys biasWrapper(hadElastic) + 46 9.77 -13.1 107 0.000378 1.12e-06 21.6 1.38e+03 test.phys biasWrapper(hadElastic) + 47 17.4 -12.1 109 0.000351 2.64e-05 7.89 1.39e+03 test.phys biasWrapper(hadElastic) + 48 19.1 -10.9 114 0.00034 1.14e-05 5.89 1.4e+03 test.phys biasWrapper(hadElastic) + 49 26.3 3.79 125 0.000289 5.13e-05 19.6 1.42e+03 test.phys biasWrapper(hadElastic) + 50 138 -43 82 0.000239 4.95e-05 129 1.55e+03 test.phys biasWrapper(hadElastic) + 51 128 -34.1 65.2 0.00019 4.9e-05 21.6 1.57e+03 test.phys biasWrapper(hadElastic) + 52 149 -100 69.9 0.000175 1.51e-05 69.7 1.64e+03 test.phys biasWrapper(hadElastic) + 53 144 -113 94.9 0.000149 2.63e-05 28.7 1.67e+03 test.phys biasWrapper(hadElastic) + 54 138 -113 92.9 0.000116 3.24e-05 6.58 1.67e+03 test.phys biasWrapper(hadElastic) + 55 211 -201 105 0.000109 7.56e-06 116 1.79e+03 test.phys biasWrapper(hadElastic) + 56 229 -199 104 9.99e-05 8.82e-06 17.6 1.81e+03 test.phys biasWrapper(hadElastic) + 57 255 -164 33.9 8.49e-05 1.5e-05 82.8 1.89e+03 test.phys biasWrapper(hadElastic) + 58 221 -157 29.4 6.91e-05 1.58e-05 35.2 1.92e+03 test.phys biasWrapper(hadElastic) + 59 221 -158 29.7 5.19e-05 1.72e-05 1.15 1.92e+03 test.phys biasWrapper(hadElastic) + 60 220 -155 28 4.62e-05 5.66e-06 3.98 1.93e+03 test.phys biasWrapper(hadElastic) + 61 239 -145 26.6 4.35e-05 2.74e-06 20.9 1.95e+03 test.phys biasWrapper(hadElastic) + 62 260 -111 64.1 4.34e-05 1.5e-07 54.9 2e+03 test.phys biasWrapper(hadElastic) + 63 269 -92.8 92.9 4.27e-05 6.4e-07 35.2 2.04e+03 test.phys biasWrapper(hadElastic) + 64 248 -46 185 3.51e-05 7.59e-06 105 2.14e+03 test.phys biasWrapper(hadElastic) + 65 249 -36.5 175 3.06e-05 4.53e-06 14 2.16e+03 test.phys biasWrapper(hadElastic) + 66 279 -20.8 192 2.87e-05 1.9e-06 37.7 2.2e+03 test.phys biasWrapper(hadElastic) + 67 288 -27.7 200 2.87e-05 0 13.6 2.21e+03 World Transportation + 68 1e+04 -7.8e+03 9.35e+03 2.87e-05 0 1.54e+04 1.77e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, 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 169 19.7 181 0.237 0 0 0 test.phys initStep - 1 176 -16.5 89.8 0.217 0 98.3 98.3 test.phys biasWrapper(compt) - 2 192 -29.8 74.2 0.144 0 25.9 124 test.phys biasWrapper(compt) - 3 197 -11 69.5 0.0985 0 20.1 144 test.phys biasWrapper(compt) - 4 236 -62.6 96.8 0.0901 0 70.6 215 test.phys biasWrapper(compt) - 5 243 -76.9 200 0.0901 0 104 319 World Transportation - 6 887 -1.43e+03 1e+04 0.0901 0 9.91e+03 1.02e+04 OutOfWorld Transportation + 0 0 0 38.7 0.733 0 0 0 test.phys initStep + 1 28.1 20.2 17.9 0.466 0 40.5 40.5 test.phys biasWrapper(compt) + 2 25.1 32.1 -7.11e-15 0.466 0 21.7 62.1 World Transportation + 3 -1.7e+03 6.7e+03 -1e+04 0.466 0 1.21e+04 1.22e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 4 +* 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 236 -62.6 96.8 0.00838 0 0 0 test.phys initStep - 1 236 -62.6 96.8 0 0.00838 0.00262 0.00262 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 197 -11 69.5 0.0454 0 0 0 test.phys initStep - 1 197 -11 69.5 0 0.0454 0.051 0.051 test.phys eIoni - -********************************************************************************************************* -* 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 192 -29.8 74.2 0.0726 0 0 0 test.phys initStep - 1 192 -29.9 74.2 0 0.0726 0.116 0.116 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 176 -16.5 89.8 0.021 0 0 0 test.phys initStep - 1 176 -16.5 89.8 0 0.021 0.0131 0.0131 test.phys eIoni + 0 28.1 20.2 17.9 0.267 0 0 0 test.phys initStep + 1 28.6 20.3 17.9 0 0.267 0.983 0.983 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2158,45 +2397,26 @@ 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 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 102 0.781 0 102 602 test.phys biasWrapper(hadElastic) - 3 -27.1 -49.1 45.2 0.765 0.0163 79.7 682 test.phys biasWrapper(hadElastic) - 4 -34 -69.6 39.3 0.606 0 22.5 704 test.phys biasWrapper(hadElastic) - 5 -24.4 -44.9 105 0.52 0 70.7 775 test.phys biasWrapper(hadElastic) - 6 -20.9 -18.6 92.5 0.427 0 29.2 804 test.phys biasWrapper(hadElastic) - 7 -84.7 -112 0 0.427 0 146 950 World Transportation - 8 -6.83e+03 -1e+04 -9.77e+03 0.427 0 1.55e+04 1.64e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -18.6 92.5 0.093 0 0 0 test.phys initStep - 1 -20.9 -18.6 92.5 0 0.093 0.0011 0.0011 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.4 -44.9 105 0.086 0 0 0 test.phys initStep - 1 -24.4 -44.9 105 0 0.086 0.00105 0.00105 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -69.6 39.3 0.158 0 0 0 test.phys initStep - 1 -34 -69.6 39.3 0 0.158 0.00155 0.00155 test.phys ionIoni + 2 0 0 7.96 0.931 0.0688 7.96 508 test.phys biasWrapper(hadElastic) + 3 62.1 0.933 44.4 0.894 0.0368 72 580 test.phys biasWrapper(hadElastic) + 4 70.4 2.51 74.2 0.846 0.0489 31 611 test.phys biasWrapper(hadElastic) + 5 295 9.88 164 0.777 0.069 242 853 test.phys biasWrapper(hadElastic) + 6 347 13.7 114 0.658 0 72.4 926 test.phys biasWrapper(hadElastic) + 7 356 -99.9 140 0.601 0.0566 117 1.04e+03 test.phys biasWrapper(hadElastic) + 8 362 -104 162 0.577 0.0239 23.4 1.07e+03 test.phys biasWrapper(hadElastic) + 9 361 -110 168 0.562 0.0157 9.17 1.07e+03 test.phys biasWrapper(hadElastic) + 10 344 -134 176 0.531 0.0303 30.5 1.11e+03 test.phys biasWrapper(hadElastic) + 11 342 -139 188 0.468 0.0632 13.2 1.12e+03 test.phys biasWrapper(hadElastic) + 12 389 -153 200 0.468 0 50.8 1.17e+03 World Transportation + 13 1e+04 -3.01e+03 2.57e+03 0.468 0 1.03e+04 1.15e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 102 0.219 0 0 0 test.phys initStep - 1 0.00029 0.000526 102 0 0.219 0.00183 0.00183 test.phys ionIoni + 0 347 13.7 114 0.119 0 0 0 test.phys initStep + 1 347 13.7 114 0 0.119 0.00129 0.00129 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2205,164 +2425,148 @@ 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 -500 1 0 0 0 World initStep 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 32.8 0.935 0.0655 32.8 533 test.phys biasWrapper(hadElastic) - 3 -23.6 35.1 59.3 0.89 0.0445 49.9 583 test.phys biasWrapper(hadElastic) - 4 -22.5 37.1 62.3 0.809 0 3.77 586 test.phys biasWrapper(hadElastic) - 5 25.5 202 7.8 0.612 0 180 767 test.phys biasWrapper(hadElastic) - 6 -20.4 139 19.7 0.463 0 78.7 846 test.phys biasWrapper(hadElastic) - 7 -4.24 173 -7.11e-15 0.463 0 41.9 887 World Transportation - 8 4.76e+03 1e+04 -5.82e+03 0.463 0 1.24e+04 1.33e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.4 139 19.7 0.149 0 0 0 test.phys initStep - 1 -20.4 139 19.7 0 0.149 0.00149 0.00149 test.phys ionIoni + 2 0 0 81.3 0.813 0 81.3 581 test.phys biasWrapper(hadElastic) + 3 4.51 27.7 67.7 0.731 0 31.1 612 test.phys biasWrapper(hadElastic) + 4 64.4 12.4 0 0.731 0 91.7 704 World Transportation + 5 8.9e+03 -2.24e+03 -1e+04 0.731 0 1.35e+04 1.42e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.5 202 7.8 0.197 0 0 0 test.phys initStep - 1 25.5 202 7.8 0 0.197 0.00175 0.00175 test.phys ionIoni + 0 4.51 27.7 67.7 0.0815 0 0 0 test.phys initStep + 1 4.51 27.7 67.7 0 0.0815 0.00101 0.00101 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.5 37.1 62.3 0.0807 0 0 0 test.phys initStep - 1 -22.5 37.1 62.3 0 0.0807 0.00101 0.00101 test.phys ionIoni + 0 0 0 81.3 0.187 0 0 0 test.phys initStep + 1 -0.000125 -0.000769 81.3 0 0.187 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 200 100 0 200 700 World Transportation - 3 0 0 1e+04 100 0 9.8e+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 200 100 0 200 700 World Transportation - 3 0 0 1e+04 100 0 9.8e+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 200 100 0 200 700 World Transportation - 3 0 0 1e+04 100 0 9.8e+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 48.6 0 0 48.6 549 test.phys biasWrapper(neutronInelastic) + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 171 0.99 0.00971 171 671 test.phys biasWrapper(hadElastic) + 3 2.3 8.41 193 0.912 0 24.1 695 test.phys biasWrapper(hadElastic) + 4 10.5 84.4 199 0.689 0 76.6 771 test.phys biasWrapper(hadElastic) + 5 -6.77 43.3 187 0.648 0.0414 46.1 817 test.phys biasWrapper(hadElastic) + 6 -82.4 30.5 165 0.624 0.0233 79.8 897 test.phys biasWrapper(hadElastic) + 7 -132 -35.9 120 0.515 0 94.2 991 test.phys biasWrapper(hadElastic) + 8 -292 225 130 0.452 0.0624 306 1.3e+03 test.phys biasWrapper(hadElastic) + 9 -286 230 118 0.389 0.0634 14.5 1.31e+03 test.phys biasWrapper(hadElastic) + 10 -289 234 118 0.308 0 4.3 1.32e+03 test.phys biasWrapper(hadElastic) + 11 -278 217 84.2 0.308 0.000123 39.6 1.36e+03 test.phys biasWrapper(hadElastic) + 12 -272 209 69.2 0.237 0 18.1 1.37e+03 test.phys biasWrapper(hadElastic) + 13 -279 206 86.8 0.22 0.0176 19.3 1.39e+03 test.phys biasWrapper(hadElastic) + 14 -254 103 140 0.165 0.0544 118 1.51e+03 test.phys biasWrapper(hadElastic) + 15 -271 142 128 0.135 0.0305 43.5 1.55e+03 test.phys biasWrapper(hadElastic) + 16 -267 139 153 0.122 0.0126 25.8 1.58e+03 test.phys biasWrapper(hadElastic) + 17 -274 23.7 181 0.105 0.0171 119 1.7e+03 test.phys biasWrapper(hadElastic) + 18 -273 24.8 185 0.0851 0.0199 4.12 1.7e+03 test.phys biasWrapper(hadElastic) + 19 -283 30.2 180 0.0672 0.0179 12.6 1.72e+03 test.phys biasWrapper(hadElastic) + 20 -278 9.05 181 0.0558 0.0115 21.8 1.74e+03 test.phys biasWrapper(hadElastic) + 21 -269 19.6 200 0.0558 0 23 1.76e+03 World Transportation + 22 4.18e+03 5.59e+03 1e+04 0.0558 0 1.21e+04 1.39e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 48.6 1.59 0 0 0 test.phys initStep - 1 -0.000318 -0.00301 48.6 0 1.59 0.00319 0.00319 test.phys ionIoni + 0 -272 209 69.2 0.0712 0 0 0 test.phys initStep + 1 -272 209 69.2 0 0.0712 0.000931 0.000931 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -289 234 118 0.0802 0 0 0 test.phys initStep + 1 -289 234 118 0 0.0802 0.001 0.001 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -132 -35.9 120 0.11 0 0 0 test.phys initStep + 1 -132 -35.9 120 0 0.11 0.00123 0.00123 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 10.5 84.4 199 0.223 0 0 0 test.phys initStep + 1 10.5 84.4 199 0 0.223 0.00184 0.00184 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.3 8.41 193 0.0782 0 0 0 test.phys initStep + 1 2.3 8.41 193 0 0.0782 0.000989 0.000989 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 40.4 0 0 40.4 540 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 40.4 1.5 0 0 0 test.phys initStep + 1 -0.00338 -0.000506 40.4 0 1.5 0.00356 0.00356 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 40.4 1.11 0 0 0 test.phys initStep + 1 0.0159 0.0373 40.4 0 1.11 0.0414 0.0414 test.phys hIoni ********************************************************************************************************* * 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 48.6 92.4 0 0 0 test.phys initStep - 1 7.99 77.4 200 92.4 0 170 170 World Transportation - 2 526 5.09e+03 1e+04 92.4 0 1.1e+04 1.12e+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 0 48.6 0.758 0 0 0 test.phys initStep - 1 23.7 10.6 0 0.758 0 55.1 55.1 World Transportation - 2 4.89e+03 2.18e+03 -1e+04 0.758 0 1.13e+04 1.14e+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 0 48.6 1.84 0 0 0 test.phys initStep - 1 100 12.6 98 1.09 0 112 112 test.phys biasWrapper(compt) - 2 192 -44.7 200 1.09 0 149 261 World Transportation - 3 8.99e+03 -5.56e+03 1e+04 1.09 0 1.43e+04 1.45e+04 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 100 12.6 98 0.757 0 0 0 test.phys initStep - 1 102 13.6 98.1 0.317 0.44 2.28 2.28 test.phys eIoni - 2 102 13.3 98.5 0.0831 0.234 1.23 3.51 test.phys eIoni - 3 102 13.4 98.5 0 0.0831 0.146 3.65 test.phys eIoni + 0 0 0 40.4 88.6 0 0 0 test.phys initStep + 1 68.3 -5.63 200 88.6 0 174 174 World Transportation + 2 4.26e+03 -351 1e+04 88.6 0 1.07e+04 1.08e+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 0 48.6 3.33 0 0 0 test.phys initStep - 1 -31.7 -36 88.6 1.14 0 62.4 62.4 test.phys biasWrapper(compt) - 2 -30.3 -39.1 92.8 0.46 0 5.37 67.8 test.phys biasWrapper(compt) - 3 -79.2 -79.6 106 0.337 0 64.9 133 test.phys biasWrapper(compt) - 4 -243 -35.2 200 0.337 0 193 326 World Transportation - 5 -1e+04 2.62e+03 5.8e+03 0.337 0 1.16e+04 1.19e+04 OutOfWorld Transportation + 0 0 0 40.4 1.24 0 0 0 test.phys initStep + 1 -4.78 -5.94 52.7 0.973 0 14.5 14.5 test.phys biasWrapper(compt) + 2 -85.3 -215 200 0.973 0 268 283 World Transportation + 3 -3.85e+03 -1e+04 7.09e+03 0.973 0 1.25e+04 1.28e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 3 +* 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 -79.2 -79.6 106 0.123 0 0 0 test.phys initStep - 1 -79.2 -79.7 106 0 0.123 0.285 0.285 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 -30.3 -39.1 92.8 0.683 0 0 0 test.phys initStep - 1 -29.4 -39.7 94 0.121 0.562 2.14 2.14 test.phys eIoni - 2 -29.4 -39.6 94.1 0 0.121 0.275 2.42 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 -31.7 -36 88.6 2.19 0 0 0 test.phys initStep - 1 -34.8 -38 90.6 1.58 0.611 4.7 4.7 test.phys eIoni - 2 -37.4 -39.7 91.6 1.12 0.462 3.69 8.39 test.phys eIoni - 3 -39.7 -40.6 91.1 0.667 0.452 2.91 11.3 test.phys eIoni - 4 -40.1 -39.1 91.1 0.39 0.277 2.11 13.4 test.phys eIoni - 5 -39.6 -38.4 91.4 0.0956 0.294 1.48 14.9 test.phys eIoni - 6 -39.6 -38.4 91.5 0 0.0956 0.185 15.1 test.phys eIoni + 0 -4.78 -5.94 52.7 0.271 0 0 0 test.phys initStep + 1 -4.89 -5.72 53.2 0.0234 0.247 1.01 1.01 test.phys eIoni + 2 -4.88 -5.72 53.2 0 0.0234 0.0158 1.02 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2371,297 +2575,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 0 -500 100 0 0 0 World initStep 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 142 0 0 142 642 test.phys biasWrapper(neutronInelastic) + 2 0 0 165 99.5 0 165 665 test.phys biasWrapper(hadElastic) + 3 8.91 -2.8 200 99.5 0 36.5 701 World Transportation + 4 2.48e+03 -780 1e+04 99.5 0 1.01e+04 1.08e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = Li6, Track ID = 10, Parent ID = 1 +* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 142 1.17 0 0 0 test.phys initStep - 1 0.00461 0.000188 142 0 1.17 0.00507 0.00507 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = alpha, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 142 5.66 0 0 0 test.phys initStep - 1 0.00748 0.00284 142 4.35 1.31 0.0225 0.0225 test.phys ionIoni - 2 0.0138 0.00513 142 2.76 1.59 0.0196 0.0421 test.phys ionIoni - 3 0.0188 0.00723 142 0.763 1.99 0.0154 0.0575 test.phys ionIoni - 4 0.0206 0.00783 142 0 0.763 0.00508 0.0626 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 142 2.24 0 0 0 test.phys initStep - 1 0.112 -0.0128 142 0.307 1.93 0.124 0.124 test.phys hIoni - 2 0.118 -0.0136 142 0 0.307 0.00654 0.131 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 142 6.79 0 0 0 test.phys initStep - 1 -0.313 0.0197 142 5.15 1.64 0.325 0.325 test.phys hIoni - 2 -0.557 0.0392 142 3.57 1.58 0.253 0.578 test.phys hIoni - 3 -0.737 0.0621 142 1.83 1.74 0.189 0.767 test.phys hIoni - 4 -0.823 0.0731 142 0.0598 1.77 0.0929 0.86 test.phys hIoni - 5 -0.824 0.0732 142 0.00354 0.0562 0.00162 0.861 test.phys hIoni - 6 -0.825 0.0732 142 0 0.00354 0.000368 0.862 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 142 1.68 0 0 0 test.phys initStep - 1 -8.68 1.06 139 0 0 9.12 9.12 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 11, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.68 1.06 139 0.819 0 0 0 test.phys initStep - 1 -3.57 -7.33 147 0.678 0 12.5 12.5 test.phys biasWrapper(hadElastic) - 2 -23.9 13.8 166 0.659 0.0191 34.9 47.4 test.phys biasWrapper(hadElastic) - 3 -24.2 15.7 169 0.501 0 3.96 51.4 test.phys biasWrapper(hadElastic) - 4 -19.6 11.2 28.9 0.378 0 140 192 test.phys biasWrapper(hadElastic) - 5 23 42.7 200 0.378 0 179 371 World Transportation - 6 2.46e+03 1.85e+03 1e+04 0.378 0 1.03e+04 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 142 5.66 0 0 0 test.phys initStep - 1 -64.7 -184 200 5.66 0 203 203 World Transportation - 2 -3.52e+03 -1e+04 3.32e+03 5.66 0 1.09e+04 1.11e+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 142 30.1 0 0 0 test.phys initStep - 1 -9.14 14.2 200 30.1 0 60.7 60.7 World Transportation - 2 -1.54e+03 2.4e+03 1e+04 30.1 0 1.02e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.68 1.06 139 0.546 0 0 0 test.phys initStep - 1 27.1 38.4 200 0.546 0 79.9 79.9 World Transportation - 2 5.78e+03 6.04e+03 1e+04 0.546 0 1.28e+04 1.29e+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 0 142 0.32 0 0 0 test.phys initStep - 1 75.2 -102 78.2 0.296 0 142 142 test.phys biasWrapper(compt) - 2 129 -169 82.5 0.171 0 86.2 228 test.phys biasWrapper(compt) - 3 78.7 -189 100 0.105 0 56.5 284 test.phys biasWrapper(compt) - 4 84.1 -185 101 0.0864 0 6.28 291 test.phys biasWrapper(compt) - 5 89.9 -205 122 0.0655 0 29.4 320 test.phys biasWrapper(compt) - 6 81.7 -200 106 0.0636 0 19.1 339 test.phys biasWrapper(compt) - 7 81.4 -208 73.1 0.0528 0 33.7 373 test.phys biasWrapper(compt) - 8 81.3 -199 77.9 0.0477 0 10.5 383 test.phys biasWrapper(compt) - 9 27.2 -195 65.9 0.047 0 55.5 439 test.phys biasWrapper(compt) - 10 22.9 -193 67.1 0.0445 0 4.8 444 test.phys biasWrapper(compt) - 11 -34.4 -242 48.1 0.0381 0 77.4 521 test.phys biasWrapper(compt) - 12 36.7 -211 96 0.0376 0 91.2 612 test.phys biasWrapper(compt) - 13 42 -211 96.4 0.0352 0 5.37 618 test.phys biasWrapper(compt) - 14 49.2 -228 53.5 0.035 0 46.7 664 test.phys biasWrapper(compt) - 15 46.7 -240 39.1 0.0346 0 18.9 683 test.phys biasWrapper(compt) - 16 47.5 -241 25.6 0.0338 0 13.6 697 test.phys biasWrapper(compt) - 17 49.8 -242 24 0 0.000403 2.81 700 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 49.8 -242 24 0.0334 0 0 0 test.phys initStep - 1 49.8 -242 24 0 0.0334 0.0297 0.0297 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 47.5 -241 25.6 0.000863 0 0 0 test.phys initStep - 1 47.5 -241 25.6 0 0.000863 6.78e-05 6.78e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 46.7 -240 39.1 0.000407 0 0 0 test.phys initStep - 1 46.7 -240 39.1 0 0.000407 2.62e-05 2.62e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 49.2 -228 53.5 0.000222 0 0 0 test.phys initStep - 1 49.2 -228 53.5 0 0.000222 1.44e-05 1.44e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42 -211 96.4 0.00234 0 0 0 test.phys initStep - 1 42 -211 96.4 0 0.00234 0.000305 0.000305 test.phys eIoni - -********************************************************************************************************* -* 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 36.7 -211 96 0.000545 0 0 0 test.phys initStep - 1 36.7 -211 96 0 0.000545 3.71e-05 3.71e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.4 -242 48.1 0.00638 0 0 0 test.phys initStep - 1 -34.4 -242 48.1 0 0.00638 0.00163 0.00163 test.phys eIoni - -********************************************************************************************************* -* 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 22.9 -193 67.1 0.0025 0 0 0 test.phys initStep - 1 22.9 -193 67.1 0 0.0025 0.000338 0.000338 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 27.2 -195 65.9 0.000666 0 0 0 test.phys initStep - 1 27.2 -195 65.9 0 0.000666 4.79e-05 4.79e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.3 -199 77.9 0.00509 0 0 0 test.phys initStep - 1 81.3 -199 77.9 0 0.00509 0.00111 0.00111 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.4 -208 73.1 0.0109 0 0 0 test.phys initStep - 1 81.4 -208 73.1 0 0.0109 0.00412 0.00412 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.7 -200 106 0.00188 0 0 0 test.phys initStep - 1 81.7 -200 106 0 0.00188 0.000214 0.000214 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 89.9 -205 122 0.0209 0 0 0 test.phys initStep - 1 89.9 -205 122 0 0.0209 0.0129 0.0129 test.phys eIoni - -********************************************************************************************************* -* 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 84.1 -185 101 0.0186 0 0 0 test.phys initStep - 1 84.1 -185 101 0 0.0186 0.0106 0.0106 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 78.7 -189 100 0.0657 0 0 0 test.phys initStep - 1 78.7 -189 100 0 0.0657 0.0973 0.0973 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 129 -169 82.5 0.125 0 0 0 test.phys initStep - 1 129 -169 82.5 0 0.125 0.292 0.292 test.phys eIoni - -********************************************************************************************************* -* 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 75.2 -102 78.2 0.0242 0 0 0 test.phys initStep - 1 75.2 -102 78.1 0 0.0242 0.0168 0.0168 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 0 142 1.98 0 0 0 test.phys initStep - 1 0.0518 39.1 0 1.98 0 147 147 World Transportation - 2 3.71 2.8e+03 -1e+04 1.98 0 1.04e+04 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 16, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.6 11.2 28.9 0.123 0 0 0 test.phys initStep - 1 -19.6 11.2 28.9 0 0.123 0.00132 0.00132 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 15, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.2 15.7 169 0.158 0 0 0 test.phys initStep - 1 -24.2 15.7 169 0 0.158 0.00155 0.00155 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 14, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.57 -7.33 147 0.141 0 0 0 test.phys initStep - 1 -3.57 -7.33 147 0 0.141 0.00145 0.00145 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 13, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.68 1.06 139 0.291 0 0 0 test.phys initStep - 1 -8.68 1.06 139 0 0.291 0.00203 0.00203 test.phys ionIoni + 0 0 0 165 0.504 0 0 0 test.phys initStep + 1 -0.00221 0.000693 165 0 0.504 0.00239 0.00239 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2670,197 +2594,150 @@ 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 -500 100 0 0 0 World initStep 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0.349 0 0 0.349 500 test.phys biasWrapper(neutronInelastic) + 2 0 0 105 0 0 105 605 test.phys biasWrapper(neutronInelastic) ********************************************************************************************************* -* G4Track Information: Particle = B11, Track ID = 8, Parent ID = 1 +* G4Track Information: Particle = C12, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0.349 5.88 0 0 0 test.phys initStep - 1 -0.00217 -0.00115 0.359 0 5.88 0.00971 0.00971 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0.349 2.36 0 0 0 test.phys initStep - 1 0.0683 0.043 0.245 0.446 1.92 0.132 0.132 test.phys hIoni - 2 0.0738 0.0457 0.236 0 0.446 0.0106 0.143 test.phys hIoni + 0 0 0 105 12.8 0 0 0 test.phys initStep + 1 0.00769 0.00123 105 0 12.8 0.018 0.018 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0.349 27 0 0 0 test.phys initStep - 1 0.427 -1.97 1.25 23.8 3.26 2.21 2.21 test.phys hIoni - 2 0.796 -3.56 1.97 20.8 3.01 1.78 3.99 test.phys hIoni - 3 1.08 -4.83 2.57 17.8 2.97 1.43 5.42 test.phys hIoni - 4 1.31 -5.83 3.01 15.2 2.64 1.12 6.55 test.phys hIoni - 5 1.49 -6.63 3.35 12.8 2.33 0.881 7.43 test.phys hIoni - 6 1.64 -7.25 3.62 10.9 1.89 0.694 8.12 test.phys hIoni - 7 1.76 -7.75 3.85 9.05 1.89 0.56 8.68 test.phys hIoni - 8 1.86 -8.14 4.02 7.45 1.61 0.443 9.13 test.phys hIoni - 9 1.93 -8.46 4.16 5.81 1.64 0.357 9.48 test.phys hIoni - 10 1.98 -8.72 4.26 4.22 1.59 0.28 9.76 test.phys hIoni - 11 2.03 -8.91 4.34 2.67 1.55 0.215 9.98 test.phys hIoni - 12 2.05 -9.05 4.4 0.822 1.85 0.149 10.1 test.phys hIoni - 13 2.06 -9.07 4.4 0.141 0.681 0.0259 10.2 test.phys hIoni - 14 2.06 -9.08 4.41 0.0169 0.125 0.00297 10.2 test.phys hIoni - 15 2.06 -9.08 4.41 0.0166 0.000308 0.00078 10.2 test.phys hIoni - 16 2.06 -9.08 4.41 0.014 0.0026 0.000772 10.2 test.phys hIoni - 17 2.06 -9.08 4.41 0 0.014 0.000707 10.2 test.phys hIoni + 0 0 0 105 17.2 0 0 0 test.phys initStep + 1 0.442 -0.689 105 14.8 2.41 1.06 1.06 test.phys hIoni + 2 0.794 -1.24 104 12.6 2.2 0.848 1.91 test.phys hIoni + 3 1.07 -1.67 104 10.6 1.92 0.674 2.59 test.phys hIoni + 4 1.28 -2.01 103 8.84 1.81 0.541 3.13 test.phys hIoni + 5 1.47 -2.28 103 7.08 1.76 0.431 3.56 test.phys hIoni + 6 1.61 -2.5 103 5.52 1.56 0.339 3.9 test.phys hIoni + 7 1.72 -2.67 103 3.94 1.58 0.268 4.16 test.phys hIoni + 8 1.81 -2.81 103 2.25 1.69 0.204 4.37 test.phys hIoni + 9 1.86 -2.88 102 0.294 1.96 0.125 4.49 test.phys hIoni + 10 1.86 -2.89 102 0 0.294 0.00623 4.5 test.phys hIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0.349 6.4 0 0 0 test.phys initStep - 1 15.3 2.89 7.62 4.97 0 17.2 17.2 test.phys biasWrapper(hadElastic) - 2 -82.7 15.3 30.8 4.34 0 101 119 test.phys biasWrapper(hadElastic) - 3 -95.1 -4.14 7.11e-15 4.34 0 38.5 157 World Transportation - 4 -4.11e+03 -6.3e+03 -1e+04 4.34 0 1.25e+04 1.26e+04 OutOfWorld Transportation + 0 0 0 105 11.6 0 0 0 test.phys initStep + 1 -120 72.9 0 11.6 0 176 176 World Transportation + 2 -1e+04 6.05e+03 -8.64e+03 11.6 0 1.44e+04 1.46e+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.349 27.3 0 0 0 test.phys initStep - 1 -89.8 185 18.8 27.2 0 207 207 test.phys biasWrapper(hadElastic) - 2 -188 506 3.55e-15 27.2 0 336 543 World Transportation - 3 -3.08e+03 1e+04 -557 27.2 0 9.94e+03 1.05e+04 OutOfWorld Transportation + 0 0 0 105 36.3 0 0 0 test.phys initStep + 1 -34.6 2.19 134 35.6 0 44.9 44.9 test.phys biasWrapper(hadElastic) + 2 -46.4 3.81 136 34.9 0 12.1 57.1 test.phys biasWrapper(hadElastic) + 3 -124 41.5 200 34.9 0 107 164 World Transportation + 4 -1e+04 4.86e+03 8.35e+03 34.9 0 1.37e+04 1.38e+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 0 0.349 0.201 0 0 0 test.phys initStep - 1 5.6 18.1 6.83 0.127 0 20 20 test.phys biasWrapper(compt) - 2 17.5 7.78 -4.44e-15 0.127 0 17.2 37.2 World Transportation - 3 1e+04 -8.66e+03 -5.74e+03 0.127 0 1.44e+04 1.44e+04 OutOfWorld Transportation + 0 0 0 105 0.409 0 0 0 test.phys initStep + 1 -49.9 106 200 0.238 0 150 150 test.phys biasWrapper(compt) + 2 -52.3 106 198 0.135 0 3.13 153 test.phys biasWrapper(compt) + 3 -39.8 79.5 200 0.135 0 29.8 183 World Transportation + 4 4.64e+03 -1e+04 1.05e+03 0.135 0 1.11e+04 1.13e+04 OutOfWorld 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 5.6 18.1 6.83 0.0742 0 0 0 test.phys initStep - 1 5.6 18.2 6.86 0 0.0742 0.12 0.12 test.phys eIoni + 0 -52.3 106 198 0.103 0 0 0 test.phys initStep + 1 -52.4 107 198 0 0.103 0.209 0.209 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 -49.9 106 200 0.171 0 0 0 test.phys initStep + 1 -50 106 200 0.104 0.067 0.317 0.317 test.phys msc + 2 -50 106 200 0 0.104 0.213 0.53 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 0 105 2.05 0 0 0 test.phys initStep + 1 165 -147 0 2.05 0 245 245 World Transportation + 2 1e+04 -8.92e+03 -6.27e+03 2.05 0 1.46e+04 1.48e+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 0 0.349 2.41 0 0 0 test.phys initStep - 1 12 -35.4 79.2 1.7 0 87.2 87.2 test.phys biasWrapper(compt) - 2 14.9 -104 141 0.336 0 92.2 179 test.phys biasWrapper(compt) - 3 -38.8 -152 52.5 0.213 0 114 294 test.phys biasWrapper(compt) - 4 -9.47 -182 44.6 0.139 0 42.9 337 test.phys biasWrapper(compt) - 5 -4.26 -175 52.7 0.134 0 12.3 349 test.phys biasWrapper(compt) - 6 50.8 -114 66.6 0.0999 0 83.1 432 test.phys biasWrapper(compt) - 7 81 -189 113 0.073 0 92.9 525 test.phys biasWrapper(compt) - 8 92.6 -82.1 0 0.073 0 156 681 World Transportation - 9 1.12e+03 9.41e+03 -1e+04 0.073 0 1.38e+04 1.45e+04 OutOfWorld Transportation + 0 0 0 105 7.27 0 0 0 test.phys initStep + 1 -89.8 544 98.1 2.1 0 551 551 test.phys biasWrapper(compt) + 2 -240 751 200 2.1 0 276 827 World Transportation + 3 -6.93e+03 1e+04 4.74e+03 2.1 0 1.23e+04 1.31e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 11, Parent ID = 2 +* G4Track Information: Particle = N14, Track ID = 10, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -89.8 185 18.8 0.0899 0 0 0 test.phys initStep - 1 -89.8 185 18.8 0 0.0899 0.00108 0.00108 test.phys ionIoni + 0 -46.4 3.81 136 0.729 0 0 0 test.phys initStep + 1 -46.4 3.81 136 0 0.729 0.00264 0.00264 test.phys ionIoni ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 10, Parent ID = 4 +* G4Track Information: Particle = N14, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -82.7 15.3 30.8 0.628 0 0 0 test.phys initStep - 1 -82.7 15.3 30.8 0 0.628 0.00254 0.00254 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 9, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 15.3 2.89 7.62 1.43 0 0 0 test.phys initStep - 1 15.4 2.89 7.62 0 1.43 0.00311 0.00311 test.phys ionIoni - -********************************************************************************************************* -* 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 81 -189 113 0.0269 0 0 0 test.phys initStep - 1 81 -189 113 0 0.0269 0.0203 0.0203 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 50.8 -114 66.6 0.0337 0 0 0 test.phys initStep - 1 50.8 -114 66.6 0 0.0337 0.0302 0.0302 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 -4.26 -175 52.7 0.0057 0 0 0 test.phys initStep - 1 -4.26 -175 52.7 0 0.0057 0.00134 0.00134 test.phys eIoni - -********************************************************************************************************* -* 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 -9.47 -182 44.6 0.0734 0 0 0 test.phys initStep - 1 -9.45 -182 44.6 0 0.0734 0.118 0.118 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.8 -152 52.5 0.123 0 0 0 test.phys initStep - 1 -39 -152 52.4 0 0.123 0.283 0.283 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14.9 -104 141 1.37 0 0 0 test.phys initStep - 1 15 -104 142 1.04 0.058 0.539 0.539 test.phys eIoni - 2 15.4 -105 144 0.549 0.495 2.78 3.32 test.phys eIoni - 3 15.7 -106 144 0.317 0.232 1.88 5.2 test.phys eIoni - 4 15.4 -107 144 0.0811 0.235 1.23 6.43 test.phys eIoni - 5 15.4 -107 143 0 0.0811 0.14 6.57 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 15 -104 142 0.266 0 0 0 test.phys initStep - 1 14.7 -104 142 0 0.266 0.977 0.977 test.phys eIoni + 0 -34.6 2.19 134 0.675 0 0 0 test.phys initStep + 1 -34.6 2.19 134 0 0.675 0.00259 0.00259 test.phys ionIoni ********************************************************************************************************* * 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 12 -35.4 79.2 0.708 0 0 0 test.phys initStep - 1 12.4 -35 80.7 0.392 0.317 2.19 2.19 test.phys eIoni - 2 12.8 -35.4 81.4 0.0324 0.359 1.49 3.68 test.phys eIoni - 3 12.8 -35.4 81.4 0 0.0324 0.0281 3.71 test.phys eIoni + 0 -89.8 544 98.1 5.17 0 0 0 test.phys initStep + 1 -89.8 553 96.7 4.01 1.16 9.55 9.55 test.phys eIoni + 2 -87.9 559 93.1 3.18 0.837 7.67 17.2 test.phys eIoni + 3 -87 564 91.9 2.41 0.761 6.31 23.5 test.phys eIoni + 4 -87.1 568 89 1.73 0.68 5.06 28.6 test.phys eIoni + 5 -84.9 569 86.8 1.13 0.599 3.94 32.5 test.phys eIoni + 6 -82.9 570 85.4 0.813 0.321 2.94 35.5 test.phys eIoni + 7 -81 570 85.5 0.482 0.331 2.38 37.9 test.phys eIoni + 8 -82.1 570 85 0.158 0.324 1.73 39.6 test.phys eIoni + 9 -82.3 570 85.1 0 0.158 0.429 40 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 52.8 99.2 0 52.8 553 test.phys biasWrapper(hadElastic) + 3 -49.9 -6.4 200 99.2 0 156 708 World Transportation + 4 -3.37e+03 -432 1e+04 99.2 0 1.04e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 52.8 0.81 0 0 0 test.phys initStep + 1 0.00262 0.000337 52.8 0 0.81 0.00272 0.00272 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -2899,8 +2776,200 @@ 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 -500 100 0 0 0 World initStep 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 147 100 0.0489 147 647 test.phys biasWrapper(hadElastic) - 3 -1.11 -4.1 200 100 0 52.9 700 World Transportation - 4 -206 -766 1e+04 100 0 9.83e+03 1.05e+04 OutOfWorld Transportation + 2 0 0 80.8 100 0.00203 80.8 581 test.phys biasWrapper(hadElastic) + 3 0.782 1.79 200 100 0 119 700 World Transportation + 4 65 149 1e+04 100 0 9.8e+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 51.9 99.5 0 51.9 552 test.phys biasWrapper(hadElastic) + 3 26 -29.9 200 99.5 0 153 705 World Transportation + 4 1.75e+03 -2.01e+03 1e+04 99.5 0 1.01e+04 1.08e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 51.9 0.514 0 0 0 test.phys initStep + 1 -0.00153 0.00176 51.9 0 0.514 0.00241 0.00241 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 157 0 0 157 657 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 157 1.16 0 0 0 test.phys initStep + 1 0.00269 -0.000135 157 0 1.16 0.00313 0.00313 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 157 35.6 0 0 0 test.phys initStep + 1 -2.03 2.42 159 31.3 4.3 3.52 3.52 test.phys hIoni + 2 -3.64 4.35 160 27.5 3.75 2.82 6.34 test.phys hIoni + 3 -4.91 5.92 161 24.1 3.42 2.27 8.61 test.phys hIoni + 4 -5.91 7.21 162 21 3.07 1.82 10.4 test.phys hIoni + 5 -6.7 8.26 163 18.3 2.77 1.46 11.9 test.phys hIoni + 6 -7.35 9.1 163 15.8 2.42 1.17 13.1 test.phys hIoni + 7 -7.85 9.8 164 13.6 2.21 0.94 14 test.phys hIoni + 8 -8.23 10.4 164 11.5 2.16 0.755 14.8 test.phys hIoni + 9 -8.54 10.8 164 9.66 1.8 0.595 15.4 test.phys hIoni + 10 -8.79 11.2 164 7.88 1.78 0.479 15.8 test.phys hIoni + 11 -8.98 11.5 164 6.15 1.72 0.379 16.2 test.phys hIoni + 12 -9.14 11.7 165 4.61 1.55 0.296 16.5 test.phys hIoni + 13 -9.26 11.9 165 3.02 1.59 0.231 16.7 test.phys hIoni + 14 -9.34 12 165 1.17 1.85 0.166 16.9 test.phys hIoni + 15 -9.36 12 165 0 1.17 0.0448 16.9 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 157 0.322 0 0 0 test.phys initStep + 1 1.95 -8.53 159 0.303 0.0189 8.96 8.96 test.phys biasWrapper(hadElastic) + 2 81.7 -89.6 85.6 0.251 0.0513 136 145 test.phys biasWrapper(hadElastic) + 3 66.7 -80 70.9 0.225 0.0264 23.1 168 test.phys biasWrapper(hadElastic) + 4 65.5 -60.2 77.5 0.218 0.00724 20.9 189 test.phys biasWrapper(hadElastic) + 5 52.3 -46.2 91.2 0.184 0.0337 23.6 212 test.phys biasWrapper(hadElastic) + 6 51.5 -44.9 88.1 0.161 0.0228 3.51 216 test.phys biasWrapper(hadElastic) + 7 38.5 -49.9 88 0.127 0.0342 13.9 230 test.phys biasWrapper(hadElastic) + 8 44.6 -53.3 88 0.106 0.0208 7.02 237 test.phys biasWrapper(hadElastic) + 9 14.7 -86.1 94.9 0.0808 0.0255 45 282 test.phys biasWrapper(hadElastic) + 10 84.5 -49.1 106 0.064 0.0168 79.8 361 test.phys biasWrapper(hadElastic) + 11 36.9 -41.5 49.6 0.0615 0.00242 74.2 436 test.phys biasWrapper(hadElastic) + 12 33.5 -42 49 0.0513 0.0102 3.42 439 test.phys biasWrapper(hadElastic) + 13 34.5 -26 60.9 0.0499 0.00142 20 459 test.phys biasWrapper(hadElastic) + 14 86.5 31.6 91.9 0.0454 0.00452 83.6 543 test.phys biasWrapper(hadElastic) + 15 94 37.4 81.6 0.0391 0.00628 14 557 test.phys biasWrapper(hadElastic) + 16 -12.8 56.7 20.9 0.0368 0.0023 124 681 test.phys biasWrapper(hadElastic) + 17 -27.2 44.6 20 0.0298 0.00704 18.8 700 test.phys biasWrapper(hadElastic) + 18 -29 74.7 -7.11e-15 0.0298 0 36.2 736 World Transportation + 19 -636 1e+04 -6.57e+03 0.0298 0 1.19e+04 1.27e+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 157 41.2 0 0 0 test.phys initStep + 1 1.11 -18.5 188 41.1 0 36.1 36.1 test.phys biasWrapper(hadElastic) + 2 3.58 -22.9 200 41.1 0 12.6 48.8 World Transportation + 3 2.09e+03 -3.76e+03 1e+04 41.1 0 1.07e+04 1.07e+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 0 157 0.102 0 0 0 test.phys initStep + 1 29.2 -88.8 128 0.0747 0 97.9 97.9 test.phys biasWrapper(compt) + 2 9.96 -70.7 150 0.0578 0 34.3 132 test.phys biasWrapper(compt) + 3 10.9 -71.6 149 0.0552 0 1.65 134 test.phys biasWrapper(compt) + 4 62 -68.7 147 0.0528 0 51.2 185 test.phys biasWrapper(compt) + 5 90.4 -68.2 183 0.0494 0 45.7 231 test.phys biasWrapper(compt) + 6 90.7 -68.5 183 0.0465 0 0.378 231 test.phys biasWrapper(compt) + 7 62.8 -120 176 0.04 0 59.3 290 test.phys biasWrapper(compt) + 8 67.4 -91.2 200 0.04 0 38.2 329 World Transportation + 9 1.69e+03 1e+04 8.61e+03 0.04 0 1.32e+04 1.36e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 62.8 -120 176 0.00655 0 0 0 test.phys initStep + 1 62.8 -120 176 0 0.00655 0.00171 0.00171 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 90.7 -68.5 183 0.0029 0 0 0 test.phys initStep + 1 90.7 -68.5 183 0 0.0029 0.000431 0.000431 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 90.4 -68.2 183 0.00339 0 0 0 test.phys initStep + 1 90.4 -68.2 183 0 0.00339 0.000559 0.000559 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 62 -68.7 147 0.00236 0 0 0 test.phys initStep + 1 62 -68.7 147 0 0.00236 0.000309 0.000309 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 10.9 -71.6 149 0.00266 0 0 0 test.phys initStep + 1 10.9 -71.6 149 0 0.00266 0.000375 0.000375 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 9.96 -70.7 150 0.0169 0 0 0 test.phys initStep + 1 9.95 -70.7 150 0 0.0169 0.00892 0.00892 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 29.2 -88.8 128 0.0274 0 0 0 test.phys initStep + 1 29.2 -88.8 128 0 0.0274 0.021 0.021 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 0 157 2.68 0 0 0 test.phys initStep + 1 -71.6 -98.9 0 2.68 0 199 199 World Transportation + 2 -4.62e+03 -6.38e+03 -1e+04 2.68 0 1.27e+04 1.29e+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 0 157 6.43 0 0 0 test.phys initStep + 1 -12.6 -26 200 6.43 0 51.4 51.4 World Transportation + 2 -2.91e+03 -6.01e+03 1e+04 6.43 0 1.18e+04 1.19e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.11 -18.5 188 0.173 0 0 0 test.phys initStep + 1 1.11 -18.5 188 0 0.173 0.00164 0.00164 test.phys ionIoni Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/biasing/GB02/exampleGB02.out b/examples/extended/biasing/GB02/exampleGB02.out index 7a0436ae0a..09f6863a08 100644 --- a/examples/extended/biasing/GB02/exampleGB02.out +++ b/examples/extended/biasing/GB02/exampleGB02.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -17,6 +17,14 @@ ********** processes are wrapped for biasing ************ ********************************************************* Attaching biasing operator TestManyForceCollision to logical volume test.logical +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -45,16 +53,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -181,7 +191,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -195,7 +205,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -304,7 +314,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -337,7 +347,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -463,6 +473,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1341,19 +1356,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 0 33.5 7.9 0 0 0 test.phys initStep - 1 -2.2 0.766 47.1 6.1 1.81 14 14 test.phys eIoni - 2 -2.25 1.15 49.3 5.86 0.237 2.25 16.3 test.phys eBrem - 3 -2.38 -0.285 59.8 4.49 1.37 10.7 27 test.phys eIoni - 4 -4.14 1.18 67.6 3.29 1.2 8.5 35.5 test.phys eIoni - 5 -6.35 3.4 72.8 2.58 0.704 6.54 42 test.phys eIoni - 6 -11.1 2.85 74 2.01 0.569 5.38 47.4 test.phys eIoni - 7 -13.9 0.295 72.8 1.36 0.653 4.43 51.8 test.phys eIoni - 8 -15.6 -1.9 71.9 1.01 0.349 3.34 55.2 test.phys eIoni - 9 -17.1 -3.65 72 0.691 0.322 2.74 57.9 test.phys eIoni - 10 -17.8 -5.01 72.6 0.365 0.326 2.16 60.1 test.phys eIoni - 11 -17.7 -5.74 72.9 0.00975 0.355 1.39 61.5 test.phys eIoni - 12 -17.7 -5.74 72.9 0 0.00975 0.00303 61.5 test.phys eIoni - 13 -17.7 -5.74 72.9 0 0 0 61.5 test.phys annihil + 1 -2.93 0.33 47.1 6.03 1.87 14 14 test.phys eIoni + 2 -3.63 1.01 49.1 5.82 0.21 2.26 16.3 test.phys eBrem + 3 -5.57 4.84 54.8 4.82 0.992 7.27 23.5 test.phys eBrem + 4 -7.52 9.27 61.9 3.58 1.24 9.04 32.6 test.phys eIoni + 5 -8.56 13 67.3 2.83 0.75 7.01 39.6 test.phys eIoni + 6 -9.15 15.1 67.6 2.56 0.223 2.34 41.9 test.phys eBrem + 7 -9.68 20 67.2 1.81 0.75 5.34 47.3 test.phys eIoni + 8 -8.89 23.5 67.7 1.35 0.464 4.1 51.4 test.phys eIoni + 9 -8.34 25.2 68.3 1.11 0.229 2 53.4 test.phys eBrem + 10 -7.04 26.6 67.4 0.649 0.449 2.45 55.8 test.phys eBrem + 11 -6.03 27 66.3 0.397 0.252 2.08 57.9 test.phys eIoni + 12 -5.68 26.9 65.5 0.0234 0.373 1.5 59.4 test.phys eIoni + 13 -5.68 26.9 65.5 0 0.0234 0.0145 59.4 test.phys eIoni + 14 -5.68 26.9 65.5 0 0 0 59.4 test.phys annihil ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 @@ -1361,1928 +1377,223 @@ 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 33.5 91.1 0 0 0 test.phys initStep - 1 -0.133 0.475 52.9 84.9 2.59 19.4 19.4 test.phys eBrem - 2 -0.109 1.14 70.2 45.4 2.12 17.3 36.7 test.phys eBrem - 3 -0.251 1.54 76.3 44.1 0.831 6.08 42.8 test.phys eBrem - 4 -0.453 5.71 110 36.3 4.34 34.4 77.2 test.phys eIoni - 5 -2.98 11.2 136 32.2 3.47 26.8 104 test.phys eIoni - 6 -4.71 15.5 148 30.1 1.55 12.8 117 test.phys eIoni - 7 -5.16 16.2 151 29.7 0.404 2.65 119 test.phys eBrem - 8 -5.38 16.6 152 28.9 0.172 1.53 121 test.phys eBrem - 9 -15 29.5 196 22.7 6.16 47.4 168 test.phys eIoni - 10 -15.9 31.3 200 22.2 0.498 4.28 173 World Transportation - 11 -1.45e+03 5.21e+03 1e+04 22.2 3.6e-22 1.12e+04 1.13e+04 OutOfWorld Transportation + 1 0.556 -0.586 59.5 87.3 3.7 26 26 test.phys eBrem + 2 -1.74 -2.33 100 81.6 5.39 41 67 test.phys eIoni + 3 -5.28 -7.4 149 73 5.94 48.9 116 test.phys eBrem + 4 -6.24 -7.51 165 70.9 2.04 15.9 132 test.phys eBrem + 5 -7.04 -7.34 177 69.4 1.49 12 144 test.phys eBrem + 6 -8.25 -7.51 194 67.2 2.2 17.1 161 test.phys eBrem + 7 -8.44 -7.46 200 66.3 0.885 6.34 167 World Transportation + 8 -385 -154 1e+04 66.3 3.48e-22 9.81e+03 9.98e+03 OutOfWorld Transportation ********************************************************************************************************* * 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 -4.71 15.5 148 0.567 0 0 0 test.phys initStep - 1 -4.61 16.8 149 0.3 0.268 1.92 1.92 test.phys eIoni - 2 -4.67 17.3 148 0 0.3 1.15 3.07 test.phys eIoni - -********************************************************************************************************* -* 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.98 11.2 136 0.66 0 0 0 test.phys initStep - 1 -2.74 12.6 137 0.358 0.303 2.1 2.1 test.phys eIoni - 2 -2.4 12.8 138 0.0749 0.283 1.38 3.48 test.phys eIoni - 3 -2.41 12.8 138 0 0.0749 0.122 3.6 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 -0.453 5.71 110 3.43 0 0 0 test.phys initStep - 1 1.21 5.8 114 2.64 0.558 4.13 4.13 test.phys eIoni - 2 4.5 7.49 117 2.05 0.59 5.43 9.56 test.phys eIoni - 3 5.02 10.2 120 1.4 0.647 4.46 14 test.phys eIoni - 4 6.37 12.7 121 0.959 0.441 3.39 17.4 test.phys eIoni - 5 6.32 14.9 121 0.597 0.362 2.64 20 test.phys eIoni - 6 5.88 16.2 121 0.176 0.421 1.98 22 test.phys eIoni - 7 5.73 16.4 121 0 0.176 0.511 22.5 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 1.21 5.8 114 0.234 0 0 0 test.phys initStep - 1 1.6 5.77 114 0 0.234 0.804 0.804 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 -5.38 16.6 152 0.608 0 0 0 test.phys initStep - 1 -11.6 25.2 186 0.259 0 35.4 35.4 test.phys biasWrapper(compt) - 2 74.9 22.3 191 0.216 0 86.7 122 test.phys biasWrapper(compt) - 3 83.4 13.7 200 0.216 0 15.3 137 World Transportation - 4 9.03e+03 -9e+03 1e+04 0.216 0 1.6e+04 1.62e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 74.9 22.3 191 0.043 0 0 0 test.phys initStep - 1 74.9 22.3 191 0 0.043 0.0464 0.0464 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.6 25.2 186 0.349 0 0 0 test.phys initStep - 1 -12 25.4 187 0.113 0.236 1.35 1.35 test.phys eIoni - 2 -12 25.3 186 0 0.113 0.244 1.59 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.16 16.2 151 0.0185 0 0 0 test.phys initStep - 1 -7.1 19.5 163 0.0179 0 13.2 13.2 test.phys biasWrapper(compt) - 2 45.5 -27.7 181 0.0173 0 72.9 86.1 test.phys biasWrapper(compt) - 3 47.1 -30.6 173 0 0.000403 8.87 95 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 47.1 -30.6 173 0.0169 0 0 0 test.phys initStep - 1 47.1 -30.6 173 0 0.0169 0.00896 0.00896 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.5 -27.7 181 0.000538 0 0 0 test.phys initStep - 1 45.5 -27.7 181 0 0.000538 3.65e-05 3.65e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.1 19.5 163 0.000668 0 0 0 test.phys initStep - 1 -7.1 19.5 163 0 0.000668 4.81e-05 4.81e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.251 1.54 76.3 0.431 0 0 0 test.phys initStep - 1 1.09 11.4 168 0.385 0 92.3 92.3 test.phys biasWrapper(compt) - 2 7.35 34.6 200 0.385 0 40 132 World Transportation - 3 1.93e+03 7.15e+03 1e+04 0.385 0 1.23e+04 1.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.09 11.4 168 0.0459 0 0 0 test.phys initStep - 1 1.08 11.3 168 0 0.0459 0.0521 0.0521 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 -0.109 1.14 70.2 37.4 0 0 0 test.phys initStep - 1 0.838 7.78 200 37.4 0 130 130 World Transportation - 2 72.3 509 1e+04 37.4 0 9.81e+03 9.94e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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.133 0.475 52.9 3.59 0 0 0 test.phys initStep - 1 6.02 4.1 200 3.59 0 147 147 World Transportation - 2 416 246 1e+04 3.59 0 9.81e+03 9.96e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.7 -5.74 72.9 0.511 0 0 0 test.phys initStep - 1 157 41.6 97.2 0.456 0 182 182 test.phys biasWrapper(compt) - 2 185 64.8 114 0.207 0 40 222 test.phys biasWrapper(compt) - 3 -128 197 168 0.135 0 344 566 test.phys biasWrapper(compt) - 4 -127 171 106 0.101 0 67.5 634 test.phys biasWrapper(compt) - 5 -27.5 71.6 200 0.101 0 169 802 World Transportation - 6 1e+04 -9.93e+03 9.73e+03 0.101 0 1.71e+04 1.79e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -17.7 -5.74 72.9 0.511 0 0 0 test.phys initStep - 1 -203 -55.9 47.2 0.292 0 193 193 test.phys biasWrapper(compt) - 2 -212 -64.3 74 0.243 0 29.6 223 test.phys biasWrapper(compt) - 3 -360 -182 125 0.13 0 196 419 test.phys biasWrapper(compt) - 4 -311 -178 89.8 0.127 0 60.8 480 test.phys biasWrapper(compt) - 5 -287 -158 54.6 0.113 0 47 527 test.phys biasWrapper(compt) - 6 -289 -154 51.5 0.099 0 5.17 532 test.phys biasWrapper(compt) - 7 -206 -60.6 23.5 0.0849 0 128 661 test.phys biasWrapper(compt) - 8 -223 -45.7 -3.55e-15 0.0849 0 32.8 693 World Transportation - 9 -7.61e+03 6.29e+03 -1e+04 0.0849 0 1.4e+04 1.46e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.25 1.15 49.3 0.00265 0 0 0 test.phys initStep - 1 -2.25 1.16 49.4 0 0.000403 0.0562 0.0562 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.25 1.16 49.4 0.00225 0 0 0 test.phys initStep - 1 -2.25 1.16 49.4 0 0.00225 0.000287 0.000287 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -206 -60.6 23.5 0.0141 0 0 0 test.phys initStep - 1 -206 -60.6 23.5 0 0.0141 0.00648 0.00648 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -289 -154 51.5 0.0142 0 0 0 test.phys initStep - 1 -289 -154 51.5 0 0.0142 0.0066 0.0066 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -287 -158 54.6 0.0135 0 0 0 test.phys initStep - 1 -287 -158 54.6 0 0.0135 0.00603 0.00603 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -311 -178 89.8 0.00369 0 0 0 test.phys initStep - 1 -311 -178 89.8 0 0.00369 0.000645 0.000645 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -360 -182 125 0.112 0 0 0 test.phys initStep - 1 -360 -182 125 0 0.112 0.242 0.242 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -212 -64.3 74 0.0496 0 0 0 test.phys initStep - 1 -212 -64.3 74 0 0.0496 0.0596 0.0596 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -203 -55.9 47.2 0.219 0 0 0 test.phys initStep - 1 -203 -56 46.9 0 0.219 0.722 0.722 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -127 171 106 0.034 0 0 0 test.phys initStep - 1 -127 171 106 0 0.034 0.0306 0.0306 test.phys eIoni - -********************************************************************************************************* -* 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 -128 197 168 0.0715 0 0 0 test.phys initStep - 1 -128 197 168 0 0.0715 0.113 0.113 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 185 64.8 114 0.249 0 0 0 test.phys initStep - 1 185 64.9 114 0 0.249 0.885 0.885 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 157 41.6 97.2 0.0552 0 0 0 test.phys initStep - 1 157 41.6 97.1 0 0.0552 0.0719 0.0719 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 181 0 0 181 681 test.phys biasWrapper(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 181 46.6 0 0 0 test.phys initStep - 1 0.00902 0.0154 182 46.6 0.0307 0.38 0.38 test.phys eBrem - 2 0.543 0.15 190 36.5 1.31 8.67 9.05 test.phys eBrem - 3 0.578 0.198 191 36.2 0.0868 0.936 9.99 test.phys eBrem - 4 0.782 0.54 200 35.2 1.02 8.74 18.7 World Transportation - 5 -747 854 1e+04 35.2 3.32e-22 9.87e+03 9.88e+03 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 181 52.4 0 0 0 test.phys initStep - 1 -0.363 -0.563 200 50 2.37 18.7 18.7 World Transportation - 2 -360 33.4 1e+04 50 3.4e-22 9.81e+03 9.83e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.578 0.198 191 0.237 0 0 0 test.phys initStep - 1 0.774 0.54 200 0.237 0 8.73 8.73 World Transportation - 2 221 384 1e+04 0.237 0 9.81e+03 9.82e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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.543 0.15 190 8.73 0 0 0 test.phys initStep - 1 1.01 0.507 200 8.73 0 9.67 9.67 World Transportation - 2 476 363 1e+04 8.73 0 9.82e+03 9.83e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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.00902 0.0154 182 0.00571 0 0 0 test.phys initStep - 1 0.0138 0.0169 182 0 0.000403 0.0863 0.0863 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 0.0138 0.0169 182 0.00531 0 0 0 test.phys initStep - 1 0.0135 0.0174 182 0 0.00531 0.00119 0.00119 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 111 0 0 111 611 test.phys biasWrapper(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 111 43.8 0 0 0 test.phys initStep - 1 -0.177 -0.0135 114 42.9 0.341 2.88 2.88 test.phys eBrem - 2 -1.61 0.946 130 40.9 2 15.8 18.7 test.phys eBrem - 3 -1.91 0.944 132 40.5 0.217 2 20.7 test.phys eIoni - 4 -4.56 4.11 174 34.7 5.48 42.4 63.1 test.phys eIoni - 5 -5.23 4.57 180 34 0.711 6.51 69.6 test.phys eBrem - 6 -5.97 4.58 189 5.98 1.04 8.76 78.4 test.phys eBrem - 7 -4.82 4.43 196 4.14 0.905 7.06 85.4 test.phys eIoni - 8 -5.85 4.15 200 3.63 0.5 4.46 89.9 World Transportation - 9 -2.51e+03 -4.52e+03 1e+04 3.63 3.04e-22 1.11e+04 1.12e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.82 4.43 196 0.941 0 0 0 test.phys initStep - 1 -3.48 3.22 197 0.437 0.504 2.61 2.61 test.phys eIoni - 2 -3.68 2.67 198 0.17 0.267 1.62 4.22 test.phys eIoni - 3 -3.82 2.47 198 0 0.17 0.485 4.71 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 -4.56 4.11 174 0.284 0 0 0 test.phys initStep - 1 -4.23 4.49 174 0.0034 0.281 1.08 1.08 test.phys eIoni - 2 -4.23 4.49 174 0 0.0034 0.000562 1.08 test.phys eIoni - -********************************************************************************************************* -* 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.91 0.944 132 0.249 0 0 0 test.phys initStep - 1 -1.98 1.35 132 0 0.249 0.881 0.881 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 111 55.2 0 0 0 test.phys initStep - 1 0.222 -0.0193 116 54.6 0.595 5.18 5.18 test.phys eBrem - 2 0.363 -0.0183 118 54.1 0.227 2.31 7.49 test.phys eIoni - 3 1.16 -0.283 128 52.6 1.23 10 17.5 test.phys eIoni - 4 1.19 -0.264 129 52.5 0.0692 0.577 18.1 test.phys eBrem - 5 4.3 1.86 200 43.6 8.88 71.5 89.6 World Transportation - 6 62.6 409 1e+04 43.6 3.36e-22 9.81e+03 9.9e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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 1.16 -0.283 128 0.227 0 0 0 test.phys initStep - 1 1.51 -0.371 129 0 0.227 0.763 0.763 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.363 -0.0183 118 0.233 0 0 0 test.phys initStep - 1 0.0161 -0.105 119 0 0.233 0.796 0.796 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 1.19 -0.264 129 0.0346 0 0 0 test.phys initStep - 1 3.65 3.48 200 0.0346 0 71.1 71.1 World Transportation - 2 342 520 1e+04 0.0346 0 9.82e+03 9.89e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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 0.222 -0.0193 116 0.00984 0 0 0 test.phys initStep - 1 0.327 -0.017 118 0 0.000403 1.63 1.63 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 0.327 -0.017 118 0.00944 0 0 0 test.phys initStep - 1 0.325 -0.0179 118 0 0.00944 0.00322 0.00322 test.phys eIoni - -********************************************************************************************************* -* 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 -5.97 4.58 189 27 0 0 0 test.phys initStep - 1 -6.64 4.72 200 27 0 11.2 11.2 World Transportation - 2 -591 125 1e+04 27 0 9.82e+03 9.83e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -5.23 4.57 180 0.00725 0 0 0 test.phys initStep - 1 -5.31 4.62 181 0 0.000403 1.09 1.09 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 -5.31 4.62 181 0.00684 0 0 0 test.phys initStep - 1 -5.31 4.62 181 0 0.00684 0.00184 0.00184 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 -1.61 0.946 130 0.0142 0 0 0 test.phys initStep - 1 -2.4 0.99 134 0 0.000403 4.72 4.72 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 -2.4 0.99 134 0.0138 0 0 0 test.phys initStep - 1 -2.4 0.989 134 0 0.0138 0.00623 0.00623 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.177 -0.0135 114 0.534 0 0 0 test.phys initStep - 1 -3.54 0.579 163 0.199 0 49.7 49.7 test.phys biasWrapper(compt) - 2 220 -90.6 0.442 0.181 0 291 341 test.phys biasWrapper(compt) - 3 220 -90.7 0 0.181 0 0.47 341 World Transportation - 4 2.1e+03 -3.19e+03 -1e+04 0.181 0 1.06e+04 1.1e+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 220 -90.6 0.442 0.0174 0 0 0 test.phys initStep - 1 220 -90.6 0.444 0 0.0174 0.00941 0.00941 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 -3.54 0.579 163 0.335 0 0 0 test.phys initStep - 1 -3.74 0.652 164 0.11 0.225 1.3 1.3 test.phys eIoni - 2 -3.69 0.63 164 0 0.11 0.233 1.53 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 94.5 0.763 0 94.5 594 test.phys biasWrapper(compt) - 2 37.4 45.1 115 0.673 0 62.2 657 test.phys biasWrapper(compt) - 3 47.3 50.6 123 0.227 0 13.9 670 test.phys biasWrapper(compt) - 4 68.3 -172 49.1 0.124 0 235 906 test.phys biasWrapper(compt) - 5 77.1 -128 43.7 0.0871 0 45.3 951 test.phys biasWrapper(compt) - 6 69.3 -133 44.9 0.0711 0 9.79 961 test.phys biasWrapper(compt) - 7 93.8 -151 40.8 0.0626 0 30.3 991 test.phys biasWrapper(compt) - 8 110 -129 41.2 0.0554 0 27.2 1.02e+03 test.phys biasWrapper(compt) - 9 129 -145 0 0.0554 0 48.3 1.07e+03 World Transportation - 10 4.71e+03 -4.15e+03 -1e+04 0.0554 0 1.17e+04 1.28e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 110 -129 41.2 0.00716 0 0 0 test.phys initStep - 1 110 -129 41.2 0 0.00716 0.00199 0.00199 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 93.8 -151 40.8 0.00852 0 0 0 test.phys initStep - 1 93.8 -151 40.8 0 0.00852 0.00269 0.00269 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 69.3 -133 44.9 0.016 0 0 0 test.phys initStep - 1 69.3 -133 44.9 0 0.016 0.00809 0.00809 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 77.1 -128 43.7 0.0369 0 0 0 test.phys initStep - 1 77.1 -128 43.7 0 0.0369 0.0355 0.0355 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 68.3 -172 49.1 0.103 0 0 0 test.phys initStep - 1 68.3 -172 49 0 0.103 0.209 0.209 test.phys eIoni - -********************************************************************************************************* -* 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 47.3 50.6 123 0.447 0 0 0 test.phys initStep - 1 47.8 51.2 124 0.0646 0.382 1.64 1.64 test.phys eIoni - 2 47.9 51.2 124 0 0.0646 0.0943 1.73 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 37.4 45.1 115 0.0895 0 0 0 test.phys initStep - 1 37.4 45.2 115 0 0.0895 0.165 0.165 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 94.5 99.2 0 0 0 test.phys initStep - 1 -0.113 -0.188 105 97.7 1.24 10.5 10.5 test.phys eIoni - 2 -0.0779 -0.209 109 97.3 0.428 3.68 14.2 test.phys eBrem - 3 -0.172 -0.574 127 94.2 2.19 17.9 32.1 test.phys eIoni - 4 -0.75 -0.6 151 90.3 3.41 24.1 56.1 test.phys eIoni - 5 -0.798 -0.807 167 87.9 1.71 16.3 72.4 test.phys eIoni - 6 -0.835 -0.753 171 86.9 0.522 3.76 76.2 test.phys eIoni - 7 -0.837 -0.75 171 86.1 0.0138 0.107 76.3 test.phys eIoni - 8 -1.68 0.142 200 81.9 4.15 29.3 106 World Transportation - 9 -531 -51.2 1e+04 81.9 3.55e-22 9.81e+03 9.92e+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.837 -0.75 171 0.883 0 0 0 test.phys initStep - 1 0.2 -1.73 172 0.593 0.29 2.51 2.51 test.phys eIoni - 2 1.42 -1.01 172 0.332 0.262 1.97 4.48 test.phys eIoni - 3 2.01 -0.808 173 0.138 0.193 1.29 5.76 test.phys eIoni - 4 2.09 -0.949 173 0 0.138 0.344 6.11 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.835 -0.753 171 0.428 0 0 0 test.phys initStep - 1 -1.14 0.0447 171 0.135 0.293 1.59 1.59 test.phys eIoni - 2 -1.3 0.00762 171 0 0.135 0.329 1.92 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.798 -0.807 167 0.653 0 0 0 test.phys initStep - 1 -0.0603 -1.74 168 0.424 0.229 2.09 2.09 test.phys eIoni - 2 -0.631 -1.54 169 0.152 0.272 1.58 3.67 test.phys eIoni - 3 -0.659 -1.46 168 0 0.152 0.402 4.07 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.75 -0.6 151 0.478 0 0 0 test.phys initStep - 1 -0.832 0.34 151 0.0709 0.407 1.72 1.72 test.phys eIoni - 2 -0.88 0.367 151 0 0.0709 0.111 1.83 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.172 -0.574 127 0.928 0 0 0 test.phys initStep - 1 -1.53 0.0983 128 0.611 0.317 2.58 2.58 test.phys eIoni - 2 -2.47 1.14 128 0.201 0.41 2 4.59 test.phys eIoni - 3 -2.42 1.46 128 0 0.201 0.632 5.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 -0.113 -0.188 105 0.265 0 0 0 test.phys initStep - 1 0.333 -0.247 105 0 0.265 0.974 0.974 test.phys eIoni - -********************************************************************************************************* -* 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 -0.0779 -0.209 109 0.0342 0 0 0 test.phys initStep - 1 0.661 -1.05 161 0 0.000403 52.1 52.1 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 0.661 -1.05 161 0.0338 0 0 0 test.phys initStep - 1 0.653 -1.04 161 0 0.0338 0.0304 0.0304 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 200 0 0 200 700 test.phys biasWrapper(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 200 30.5 0 0 0 test.phys initStep - 1 -0.000638 -0.00123 200 30.5 0.0217 0.19 0.19 World Transportation - 2 -78.3 -104 1e+04 30.5 3.25e-22 9.8e+03 9.8e+03 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 200 68.5 0 0 0 test.phys initStep - 1 0.000287 0.000553 200 68.5 0.0215 0.19 0.19 World Transportation - 2 18.2 45.9 1e+04 68.5 3.49e-22 9.8e+03 9.8e+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 164 0 0 164 664 test.phys biasWrapper(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 164 64 0 0 0 test.phys initStep - 1 -0.0149 -0.00293 164 63.8 0.231 0.77 0.77 test.phys eBrem - 2 0.486 -0.519 186 61.2 2.5 21.8 22.5 test.phys eBrem - 3 0.445 -0.441 193 60 0.791 7.34 29.9 test.phys eIoni - 4 0.565 -0.264 200 59.3 0.742 6.58 36.5 World Transportation - 5 -10.5 390 1e+04 59.3 3.45e-22 9.81e+03 9.84e+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 0.445 -0.441 193 0.392 0 0 0 test.phys initStep - 1 0.109 0.254 194 0.148 0.245 1.49 1.49 test.phys eIoni - 2 -0.079 0.206 194 0 0.148 0.383 1.87 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 164 34.9 0 0 0 test.phys initStep - 1 0.366 0.451 172 33.3 1.2 8.28 8.28 test.phys eIoni - 2 -0.139 2.04 193 30.6 2.67 21.8 30.1 test.phys eBrem - 3 -0.16 2.04 194 30.5 0.0554 0.509 30.6 test.phys eBrem - 4 -0.21 2.12 200 29.8 0.648 6.02 36.6 World Transportation - 5 -593 310 1e+04 29.8 3.25e-22 9.82e+03 9.86e+03 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 0.366 0.451 172 0.459 0 0 0 test.phys initStep - 1 -0.519 0.611 172 0.198 0.261 1.67 1.67 test.phys eIoni - 2 -0.697 0.855 172 0 0.198 0.616 2.29 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.16 2.04 194 0.0776 0 0 0 test.phys initStep - 1 -0.218 2.14 200 0.0776 0 6.01 6.01 World Transportation - 2 -93.5 168 1e+04 0.0776 0 9.8e+03 9.81e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -0.139 2.04 193 0.00712 0 0 0 test.phys initStep - 1 -0.168 2.02 194 0 0.000403 0.791 0.791 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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.486 -0.519 186 0.0555 0 0 0 test.phys initStep - 1 0.452 -1 200 0.0555 0 13.9 13.9 World Transportation - 2 -23.7 -341 1e+04 0.0555 0 9.81e+03 9.82e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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.0149 -0.00293 164 0.0509 0 0 0 test.phys initStep - 1 -0.159 -0.0604 195 0.0441 0 30.7 30.7 test.phys biasWrapper(compt) - 2 1.68 0.839 194 0.043 0 2.4 33.1 test.phys biasWrapper(compt) - 3 3.04 2.12 185 0.0428 0 8.88 42 test.phys biasWrapper(compt) - 4 9.71 -5.79 119 0.0426 0 66.6 109 test.phys biasWrapper(compt) - 5 6.32 -16 94.4 0.0412 0 27.1 136 test.phys biasWrapper(compt) - 6 -71.7 13.9 23.1 0.0407 0 110 246 test.phys biasWrapper(compt) - 7 -88.9 6.52 0 0.0407 0 29.7 275 World Transportation - 8 -7.57e+03 -3.21e+03 -1e+04 0.0407 0 1.29e+04 1.32e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -71.7 13.9 23.1 0.000501 0 0 0 test.phys initStep - 1 -71.7 13.9 23.1 0 0.000501 3.35e-05 3.35e-05 test.phys eIoni - -********************************************************************************************************* -* 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 6.32 -16 94.4 0.00144 0 0 0 test.phys initStep - 1 6.32 -16 94.4 0 0.00144 0.000142 0.000142 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.71 -5.79 119 0.00022 0 0 0 test.phys initStep - 1 9.71 -5.79 119 0 0.00022 1.43e-05 1.43e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.04 2.12 185 0.00013 0 0 0 test.phys initStep - 1 3.04 2.12 185 0 0.00013 9.9e-06 9.9e-06 test.phys eIoni - -********************************************************************************************************* -* 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 1.68 0.839 194 0.00118 0 0 0 test.phys initStep - 1 1.68 0.839 194 0 0.00118 0.000106 0.000106 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 -0.159 -0.0604 195 0.00671 0 0 0 test.phys initStep - 1 -0.16 -0.0605 195 0 0.00671 0.00178 0.00178 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 -0.168 2.02 194 0.00671 0 0 0 test.phys initStep - 1 -0.167 2.02 194 0 0.00671 0.00178 0.00178 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 0.851 0 0 0.851 501 test.phys biasWrapper(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 0.851 53 0 0 0 test.phys initStep - 1 0.176 1.86 17.7 49.9 2.42 17 17 test.phys eBrem - 2 0.176 2.69 24 48.7 0.985 6.3 23.3 test.phys eIoni - 3 -0.584 4.19 43.1 45.2 2.59 19.2 42.5 test.phys eBrem - 4 0.576 8.93 72.6 41.2 3.44 30 72.4 test.phys eIoni - 5 0.629 12.1 85.3 39.3 1.7 13 85.5 test.phys eIoni - 6 1.32 14.5 97.2 36.3 1.31 12.2 97.7 test.phys eIoni - 7 1.29 16.3 105 35 0.967 8.3 106 test.phys eIoni - 8 1.55 17.7 111 34.2 0.855 5.65 112 test.phys eBrem - 9 2.36 19.5 124 31.6 1.75 13.4 125 test.phys eIoni - 10 1.55 20.5 138 30.1 1.54 13.8 139 test.phys eBrem - 11 -0.942 26 165 26.8 3.28 27.6 166 test.phys eBrem - 12 -1.61 27.9 172 25.3 0.901 7.46 174 test.phys eIoni - 13 -1.83 29.6 177 18.2 0.707 5.33 179 test.phys eBrem - 14 -1.74 30.8 180 17.4 0.359 3.18 182 test.phys eBrem - 15 -2.56 38.6 200 14.5 2.93 22 204 World Transportation - 16 -4e+03 5.04e+03 1e+04 14.5 3.63e-22 1.17e+04 1.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.61 27.9 172 0.587 0 0 0 test.phys initStep - 1 -0.917 27.4 173 0.333 0.255 1.96 1.96 test.phys eIoni - 2 -0.805 26.7 173 0.0627 0.27 1.29 3.25 test.phys eIoni - 3 -0.785 26.7 173 0 0.0627 0.0896 3.34 test.phys eIoni - -********************************************************************************************************* -* 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 2.36 19.5 124 0.778 0 0 0 test.phys initStep - 1 3.05 20.8 125 0.512 0.266 2.32 2.32 test.phys eIoni - 2 3.56 21.8 126 0.201 0.311 1.8 4.11 test.phys eIoni - 3 3.55 22.1 126 0 0.201 0.629 4.74 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.29 16.3 105 0.328 0 0 0 test.phys initStep - 1 1.48 15.8 106 0 0.328 1.27 1.27 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 1.32 14.5 97.2 1.64 0 0 0 test.phys initStep - 1 3.04 14 100 1.22 0.422 3.78 3.78 test.phys eIoni - 2 4.52 14.2 102 0.873 0.343 3.08 6.86 test.phys eIoni - 3 5.8 15.2 103 0.574 0.299 2.49 9.34 test.phys eIoni - 4 6.64 15.4 104 0.17 0.404 1.93 11.3 test.phys eIoni - 5 6.83 15.4 104 0 0.17 0.482 11.8 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 0.629 12.1 85.3 0.228 0 0 0 test.phys initStep - 1 0.313 11.9 85.4 0 0.228 0.771 0.771 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 0.576 8.93 72.6 0.513 0 0 0 test.phys initStep - 1 1.56 8.97 73.3 0.279 0.235 1.8 1.8 test.phys eIoni - 2 1.91 9.3 73.1 0 0.279 1.05 2.85 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.176 2.69 24 0.253 0 0 0 test.phys initStep - 1 0.122 2.3 24.2 0 0.253 0.905 0.905 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 0.851 45.9 0 0 0 test.phys initStep - 1 -0.0443 -0.158 2.43 45.5 0.173 1.58 1.58 test.phys eIoni - 2 -5.72 -3.56 45.8 39.5 5.51 43.9 45.5 test.phys eIoni - 3 -10.4 -6.43 71.7 35.6 3.49 26.5 71.9 test.phys eIoni - 4 -11.6 -1.7 93.6 30.2 3 22.4 94.4 test.phys eIoni - 5 -9.09 2.87 117 26.4 3.19 24.3 119 test.phys eIoni - 6 -7.7 2.25 124 25.3 1.03 7 126 test.phys eBrem - 7 -7.49 2.19 125 24.8 0.127 1.22 127 test.phys eIoni - 8 -5.74 0.494 143 22.4 2.28 18.3 145 test.phys eBrem - 9 -5.25 0.422 146 22.1 0.284 2.53 148 test.phys eBrem - 10 -4.37 0.524 151 11.1 0.734 4.88 153 test.phys eBrem - 11 1.13 3.87 169 8.86 2.26 19.1 172 test.phys eIoni - 12 1.45 4.53 171 8.5 0.327 2.56 174 test.phys eBrem - 13 4.88 5.5 185 6.62 1.88 14.9 189 test.phys eIoni - 14 6.57 11.2 196 5.36 1.27 11.9 201 test.phys eIoni - 15 6.94 14.5 200 4.49 0.872 5.67 207 World Transportation - 16 -6.22e+03 1e+04 8.67e+03 4.49 4.05e-22 1.45e+04 1.47e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.49 2.19 125 0.405 0 0 0 test.phys initStep - 1 -6.85 1.62 126 0.144 0.261 1.53 1.53 test.phys eIoni - 2 -6.8 1.44 126 0 0.144 0.368 1.9 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.09 2.87 117 0.587 0 0 0 test.phys initStep - 1 -9.51 3.79 118 0.198 0.389 1.96 1.96 test.phys eIoni - 2 -9.47 4.1 118 0 0.198 0.616 2.57 test.phys eIoni - -********************************************************************************************************* -* 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 -11.6 -1.7 93.6 2.4 0 0 0 test.phys initStep - 1 -13.1 0.38 97.4 1.79 0.603 5.03 5.03 test.phys eIoni - 2 -14.3 3.47 98.9 1.35 0.446 4.04 9.07 test.phys eIoni - 3 -14.4 3.81 99 1.24 0.0393 0.389 9.46 test.phys eBrem - 4 -15.7 6.1 99.4 0.88 0.364 3.12 12.6 test.phys eIoni - 5 -14.8 7.63 98.5 0.561 0.318 2.5 15.1 test.phys eIoni - 6 -15.8 6.97 97.9 0.25 0.312 1.9 17 test.phys eIoni - 7 -15.9 6.99 97.4 0 0.25 0.887 17.9 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.4 -6.43 71.7 0.442 0 0 0 test.phys initStep - 1 -10.3 -5.45 72 0.203 0.24 1.63 1.63 test.phys eIoni - 2 -10.3 -5.36 71.7 0 0.203 0.64 2.27 test.phys eIoni - -********************************************************************************************************* -* 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 -5.72 -3.56 45.8 0.53 0 0 0 test.phys initStep - 1 -5.07 -4.38 46.5 0.261 0.27 1.84 1.84 test.phys eIoni - 2 -4.72 -4.67 46.7 0 0.261 0.949 2.78 test.phys eIoni - -********************************************************************************************************* -* 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.0443 -0.158 2.43 0.24 0 0 0 test.phys initStep - 1 -0.0476 0.208 2.65 0 0.24 0.832 0.832 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 22 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.4 3.81 99 0.0643 0 0 0 test.phys initStep - 1 -79.8 99.1 112 0.0629 0 116 116 test.phys biasWrapper(compt) - 2 -102 113 129 0.0628 0 30.7 147 test.phys biasWrapper(compt) - 3 -142 152 163 0.054 0 65.9 213 test.phys biasWrapper(compt) - 4 -130 144 175 0.0459 0 18 231 test.phys biasWrapper(compt) - 5 -199 98.9 69.8 0.0389 0 133 364 test.phys biasWrapper(compt) - 6 -120 133 166 0.0344 0 129 493 test.phys biasWrapper(compt) - 7 -117 127 139 0.0313 0 27 520 test.phys biasWrapper(compt) - 8 -115 127 141 0 0.000403 2.29 522 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 - 0 -115 127 141 0.0309 0 0 0 test.phys initStep - 1 -115 127 141 0 0.0309 0.0259 0.0259 test.phys eIoni - -********************************************************************************************************* -* 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 -117 127 139 0.00311 0 0 0 test.phys initStep - 1 -117 127 139 0 0.00311 0.000486 0.000486 test.phys eIoni - -********************************************************************************************************* -* 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 -120 133 166 0.00451 0 0 0 test.phys initStep - 1 -120 133 166 0 0.00451 0.000902 0.000902 test.phys eIoni - -********************************************************************************************************* -* 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 -199 98.9 69.8 0.00696 0 0 0 test.phys initStep - 1 -199 98.9 69.8 0 0.00696 0.0019 0.0019 test.phys eIoni - -********************************************************************************************************* -* 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 -130 144 175 0.0081 0 0 0 test.phys initStep - 1 -130 144 175 0 0.0081 0.00247 0.00247 test.phys eIoni - -********************************************************************************************************* -* 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 -142 152 163 0.00881 0 0 0 test.phys initStep - 1 -142 152 163 0 0.00881 0.00285 0.00285 test.phys eIoni - -********************************************************************************************************* -* 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 -102 113 129 0.000136 0 0 0 test.phys initStep - 1 -102 113 129 0 0.000136 1.02e-05 1.02e-05 test.phys eIoni - -********************************************************************************************************* -* 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 -79.8 99.1 112 0.00132 0 0 0 test.phys initStep - 1 -79.8 99.1 112 0 0.00132 0.000125 0.000125 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.45 4.53 171 0.0279 0 0 0 test.phys initStep - 1 3.36 7.32 184 0.0255 0 13.8 13.8 test.phys biasWrapper(compt) - 2 9.66 -33.8 156 0 0.000403 50.3 64.1 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 29 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.66 -33.8 156 0.0251 0 0 0 test.phys initStep - 1 9.66 -33.8 156 0 0.0251 0.018 0.018 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 29 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.36 7.32 184 0.00236 0 0 0 test.phys initStep - 1 3.36 7.32 184 0 0.00236 0.00031 0.00031 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.37 0.524 151 10.3 0 0 0 test.phys initStep - 1 1.23 2.57 200 10.3 0 49.7 49.7 World Transportation - 2 1.11e+03 409 1e+04 10.3 0 9.87e+03 9.92e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.25 0.422 146 0.00299 0 0 0 test.phys initStep - 1 -5.24 0.421 146 0 0.000403 0.039 0.039 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.24 0.421 146 0.00259 0 0 0 test.phys initStep - 1 -5.24 0.421 146 0 0.00259 0.000359 0.000359 test.phys eIoni - -********************************************************************************************************* -* 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 -5.74 0.494 143 0.105 0 0 0 test.phys initStep - 1 6.86 -0.588 200 0.105 0 58 58 World Transportation - 2 2.19e+03 -188 1e+04 0.105 0 1e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.7 2.25 124 0.0532 0 0 0 test.phys initStep - 1 -1.93 0.0721 160 0.0527 0 36.6 36.6 test.phys biasWrapper(compt) - 2 -2.25 -1.27 163 0 0.000403 3.61 40.2 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 -2.25 -1.27 163 0.0523 0 0 0 test.phys initStep - 1 -2.23 -1.24 163 0 0.0523 0.0654 0.0654 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 -1.93 0.0721 160 0.000444 0 0 0 test.phys initStep - 1 -1.93 0.0721 160 0 0.000444 2.9e-05 2.9e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.74 30.8 180 0.392 0 0 0 test.phys initStep - 1 -2.28 38.2 200 0.392 0 21.6 21.6 World Transportation - 2 -265 3.65e+03 1e+04 0.392 0 1.04e+04 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -1.83 29.6 177 6.44 0 0 0 test.phys initStep - 1 -2.97 38.5 200 6.44 0 24.9 24.9 World Transportation - 2 -486 3.79e+03 1e+04 6.44 0 1.05e+04 1.05e+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 -0.942 26 165 0.036 0 0 0 test.phys initStep - 1 -1.7 36.7 200 0.036 0 37 37 World Transportation - 2 -212 3e+03 1e+04 0.036 0 1.02e+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 1.55 20.5 138 0.0033 0 0 0 test.phys initStep - 1 1.55 20.5 138 0 0.000403 0.231 0.231 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.55 20.5 138 0.0029 0 0 0 test.phys initStep - 1 1.55 20.5 138 0 0.0029 0.000433 0.000433 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.55 17.7 111 0.00615 0 0 0 test.phys initStep - 1 1.59 17.9 112 0 0.000403 0.9 0.9 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.59 17.9 112 0.00575 0 0 0 test.phys initStep - 1 1.59 17.9 112 0 0.00575 0.00136 0.00136 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.584 4.19 43.1 0.919 0 0 0 test.phys initStep - 1 -3.02 21.3 200 0.919 0 158 158 World Transportation - 2 -155 1.09e+03 1e+04 0.919 0 9.86e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.176 1.86 17.7 0.714 0 0 0 test.phys initStep - 1 -0.212 9.75 85.2 0.349 0 67.9 67.9 test.phys biasWrapper(compt) - 2 -0.34 13.7 85.7 0.2 0 4 71.9 test.phys biasWrapper(compt) - 3 -32.6 -6.15 163 0.159 0 86.1 158 test.phys biasWrapper(compt) - 4 -187 -169 143 0.114 0 226 384 test.phys biasWrapper(compt) - 5 -174 -176 137 0.0829 0 16.1 400 test.phys biasWrapper(compt) - 6 -241 -13.5 144 0.0773 0 176 576 test.phys biasWrapper(compt) - 7 -241 -13.2 143 0.0718 0 0.728 576 test.phys biasWrapper(compt) - 8 -244 -13.3 143 0.0631 0 2.61 579 test.phys biasWrapper(compt) - 9 -243 -17.6 136 0.0515 0 8.41 587 test.phys biasWrapper(compt) - 10 -238 8.5 150 0.0432 0 30.1 617 test.phys biasWrapper(compt) - 11 -239 3.02 143 0.0427 0 9.03 626 test.phys biasWrapper(compt) - 12 -236 -2.23 105 0.0374 0 37.9 664 test.phys biasWrapper(compt) - 13 -232 -0.933 110 0 0.000403 5.95 670 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -232 -0.933 110 0.037 0 0 0 test.phys initStep - 1 -232 -0.928 110 0 0.037 0.0356 0.0356 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -236 -2.23 105 0.00532 0 0 0 test.phys initStep - 1 -236 -2.23 105 0 0.00532 0.0012 0.0012 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -239 3.02 143 0.00048 0 0 0 test.phys initStep - 1 -239 3.02 143 0 0.00048 3.18e-05 3.18e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -238 8.5 150 0.00831 0 0 0 test.phys initStep - 1 -238 8.5 150 0 0.00831 0.00257 0.00257 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -243 -17.6 136 0.0116 0 0 0 test.phys initStep - 1 -243 -17.6 136 0 0.0116 0.00461 0.00461 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -244 -13.3 143 0.00863 0 0 0 test.phys initStep - 1 -244 -13.3 143 0 0.00863 0.00275 0.00275 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -241 -13.2 143 0.00554 0 0 0 test.phys initStep - 1 -241 -13.2 143 0 0.00554 0.00128 0.00128 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -241 -13.5 144 0.00562 0 0 0 test.phys initStep - 1 -241 -13.5 144 0 0.00562 0.00131 0.00131 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -174 -176 137 0.0311 0 0 0 test.phys initStep - 1 -174 -176 137 0 0.0311 0.0263 0.0263 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -187 -169 143 0.0451 0 0 0 test.phys initStep - 1 -187 -170 143 0 0.0451 0.0503 0.0503 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.6 -6.15 163 0.0408 0 0 0 test.phys initStep - 1 -32.6 -6.15 163 0 0.0408 0.0423 0.0423 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.34 13.7 85.7 0.149 0 0 0 test.phys initStep - 1 -0.309 13.9 85.6 0 0.149 0.39 0.39 test.phys eIoni - -********************************************************************************************************* -* 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.212 9.75 85.2 0.365 0 0 0 test.phys initStep - 1 -0.204 9.45 85.9 0 0.365 1.41 1.41 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 93.5 0 0 93.5 594 test.phys biasWrapper(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 93.5 59.5 0 0 0 test.phys initStep - 1 -0.757 -0.469 118 56.3 3.02 24.5 24.5 test.phys eBrem - 2 -1.1 -0.0323 128 54.5 1.57 10.4 34.8 test.phys eIoni - 3 -1.24 0.0533 131 54.2 0.323 2.76 37.6 test.phys eBrem - 4 -1.31 0.126 133 52.1 0.173 1.71 39.3 test.phys eIoni - 5 -1.5 0.206 135 51.8 0.238 2.33 41.6 test.phys eBrem - 6 -1.86 0.581 144 49.3 1.23 9.18 50.8 test.phys eBrem - 7 -2.5 1.09 154 48.3 0.996 9.44 60.3 test.phys eBrem - 8 0.00262 -3.53 176 36.3 2.69 23 83.3 test.phys eBrem - 9 -0.00618 -6.7 192 31.3 1.93 16.1 99.3 test.phys eIoni - 10 -0.00712 -7.06 194 30.8 0.181 1.79 101 test.phys eIoni - 11 -0.0596 -7.72 197 27.5 0.315 3.19 104 test.phys eBrem - 12 -0.232 -8.28 200 27.1 0.354 3.43 108 World Transportation - 13 -92.4 -1.61e+03 1e+04 27.1 3.26e-22 9.93e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00712 -7.06 194 0.317 0 0 0 test.phys initStep - 1 0.386 -6.71 194 0.0269 0.29 1.23 1.23 test.phys eIoni - 2 0.377 -6.71 194 0 0.0269 0.0202 1.25 test.phys eIoni - -********************************************************************************************************* -* 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 -0.00618 -6.7 192 3.05 0 0 0 test.phys initStep - 1 1.73 -3.99 197 2.27 0.78 6.1 6.1 test.phys eIoni - 2 4.77 -3 200 1.56 0.707 4.82 10.9 test.phys eIoni - 3 4.93 -3.14 200 1.53 0.0349 0.41 11.3 World Transportation - 4 5.4e+03 -7.22e+03 1e+04 1.53 3.53e-22 1.33e+04 1.33e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -1.31 0.126 133 1.95 0 0 0 test.phys initStep - 1 0.603 0.926 136 1.42 0.526 4.3 4.3 test.phys eIoni - 2 2.31 0.933 138 1.06 0.368 3.43 7.72 test.phys eIoni - 3 3.95 0.364 140 0.767 0.288 2.8 10.5 test.phys eIoni - 4 5.02 0.631 141 0.483 0.285 2.3 12.8 test.phys eIoni - 5 5.6 1.5 141 0.191 0.292 1.73 14.6 test.phys eIoni - 6 5.47 1.74 141 0 0.191 0.581 15.1 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 -1.1 -0.0323 128 0.261 0 0 0 test.phys initStep - 1 -0.779 0.268 129 0 0.261 0.951 0.951 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 93.5 39.5 0 0 0 test.phys initStep - 1 -4.23 0.297 151 26.8 7.31 57.9 57.9 test.phys eBrem - 2 -3.41 -0.794 163 24.9 1.48 12.5 70.4 test.phys eIoni - 3 -2.94 -3.57 179 14.8 2.04 16.4 86.8 test.phys eBrem - 4 -1.65 -4.15 185 12.8 0.771 5.42 92.2 test.phys eIoni - 5 -0.343 -4.35 188 11.9 0.409 3.28 95.5 test.phys eIoni - 6 0.132 -4.72 189 11.5 0.198 1.73 97.2 test.phys eIoni - 7 4.83 -7.18 200 9.98 1.51 12.1 109 World Transportation - 8 2.8e+03 -1.49e+03 1e+04 9.98 3.08e-22 1.03e+04 1.04e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.132 -4.72 189 0.226 0 0 0 test.phys initStep - 1 -0.133 -4.8 190 0 0.226 0.759 0.759 test.phys eIoni - -********************************************************************************************************* -* 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.343 -4.35 188 0.437 0 0 0 test.phys initStep - 1 0.233 -3.7 188 0.181 0.256 1.62 1.62 test.phys eIoni - 2 0.502 -3.66 188 0 0.181 0.534 2.15 test.phys eIoni - -********************************************************************************************************* -* 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.65 -4.15 185 1.27 0 0 0 test.phys initStep - 1 -2.5 -3.81 187 0.879 0.391 3.17 3.17 test.phys eIoni - 2 -2.17 -3.41 189 0.453 0.426 2.5 5.67 test.phys eIoni - 3 -2.37 -2.72 190 0.183 0.27 1.66 7.32 test.phys eIoni - 4 -2.27 -2.47 190 0 0.183 0.543 7.87 test.phys eIoni - -********************************************************************************************************* -* 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 -3.41 -0.794 163 0.398 0 0 0 test.phys initStep - 1 -2.63 -1.08 164 0.121 0.278 1.51 1.51 test.phys eIoni - 2 -2.64 -0.993 164 0 0.121 0.274 1.78 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 -2.94 -3.57 179 8.11 0 0 0 test.phys initStep - 1 0.887 -6.78 200 8.11 0 21.1 21.1 World Transportation - 2 1.83e+03 -1.54e+03 1e+04 8.11 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -4.23 0.297 151 5.31 0 0 0 test.phys initStep - 1 1.69 -2.5 200 5.31 0 49.4 49.4 World Transportation - 2 1.19e+03 -562 1e+04 5.31 0 9.89e+03 9.94e+03 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 -0.0596 -7.72 197 3.04 0 0 0 test.phys initStep - 1 -0.228 -8.34 200 3.04 0 3.44 3.44 World Transportation - 2 -490 -1.81e+03 1e+04 3.04 0 9.98e+03 9.98e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00262 -3.53 176 9.33 0 0 0 test.phys initStep - 1 0.304 -9.4 200 9.33 0 24.7 24.7 World Transportation - 2 123 -2.41e+03 1e+04 9.33 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -2.5 1.09 154 0.0113 0 0 0 test.phys initStep - 1 -1.83 0.0451 159 0 0.000403 5.87 5.87 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 -1.83 0.0451 159 0.0109 0 0 0 test.phys initStep - 1 -1.83 0.0463 159 0 0.0109 0.00414 0.00414 test.phys eIoni - -********************************************************************************************************* -* 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 -1.86 0.581 144 1.21 0 0 0 test.phys initStep - 1 -6.78 2.33 200 1.21 0 56 56 World Transportation - 2 -872 310 1e+04 1.21 0 9.84e+03 9.9e+03 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -1.5 0.206 135 0.0699 0 0 0 test.phys initStep - 1 -6.62 3.01 200 0.0699 0 65.2 65.2 World Transportation - 2 -779 426 1e+04 0.0699 0 9.84e+03 9.9e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.24 0.0533 131 0.013 0 0 0 test.phys initStep - 1 -1.51 0.194 137 0 0.000403 5.52 5.52 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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.757 -0.469 118 0.157 0 0 0 test.phys initStep - 1 -0.713 2.88 179 0.152 0 60.8 60.8 test.phys biasWrapper(compt) - 2 -8.74 -2.14 200 0.152 0 23.3 84.2 World Transportation - 3 -3.7e+03 -2.31e+03 1e+04 0.152 0 1.07e+04 1.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -0.713 2.88 179 0.00466 0 0 0 test.phys initStep - 1 -0.713 2.88 179 0 0.00466 0.000955 0.000955 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.51 0.194 137 0.0126 0 0 0 test.phys initStep - 1 -1.51 0.192 137 0 0.0126 0.0053 0.0053 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 56.6 16.5 0 56.6 557 test.phys biasWrapper(compt) - 2 -27.9 -18.1 200 16.5 0 147 704 World Transportation - 3 -1.93e+03 -1.25e+03 1e+04 16.5 0 1.01e+04 1.08e+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 56.6 83.5 0 0 0 test.phys initStep - 1 0.211 0.188 67.5 81.8 1.37 10.9 10.9 test.phys eIoni - 2 1.01 -1.18 81.1 79 1.72 13.7 24.6 test.phys eBrem - 3 3.75 -4.16 109 75.2 3.67 27.9 52.5 test.phys eBrem - 4 4.42 -4.88 116 74.2 0.763 7.41 59.9 test.phys eIoni - 5 5.25 -5.2 123 73.1 0.83 7.24 67.2 test.phys eIoni - 6 8.33 -6.3 141 70.2 2.37 17.7 84.9 test.phys eIoni - 7 8.83 -6.64 144 69.6 0.339 3.25 88.1 test.phys eIoni - 8 9.25 -7.03 147 67.3 0.427 3.04 91.2 test.phys eIoni - 9 10.8 -8.58 157 62.9 1.49 10.8 102 test.phys eBrem - 10 11 -8.79 159 62.1 0.224 2.06 104 test.phys eIoni - 11 13 -10.4 173 57.7 1.53 13.4 117 test.phys eBrem - 12 14.3 -11.4 183 52.5 1.27 10.9 128 test.phys eIoni - 13 14.5 -11.5 185 51.3 0.15 1.49 130 test.phys eIoni - 14 17.1 -13.3 198 49.4 1.61 13.7 144 test.phys eBrem - 15 17.6 -13.5 200 48.9 0.451 1.98 145 World Transportation - 16 2.51e+03 -1.13e+03 1e+04 48.9 3.52e-22 1.02e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14.5 -11.5 185 1.02 0 0 0 test.phys initStep - 1 13.4 -11.2 187 0.675 0.349 2.75 2.75 test.phys eIoni - 2 13.5 -9.69 187 0.368 0.308 2.13 4.88 test.phys eIoni - 3 13.9 -9.2 187 0.00958 0.358 1.41 6.29 test.phys eIoni - 4 13.9 -9.2 187 0 0.00958 0.0033 6.3 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 14.3 -11.4 183 3.92 0 0 0 test.phys initStep - 1 13.9 -10.8 191 3.07 0.855 7.52 7.52 test.phys eIoni - 2 11.3 -13 196 2.31 0.76 6.13 13.7 test.phys eIoni - 3 11.1 -12.8 196 2.24 0.0593 0.548 14.2 test.phys eBrem - 4 10.4 -12 198 1.43 0.201 1.91 16.1 test.phys eIoni - 5 8.03 -10 198 0.993 0.439 3.44 19.5 test.phys eIoni - 6 6.26 -9.07 197 0.643 0.35 2.7 22.2 test.phys eIoni - 7 6.38 -8.55 199 0.327 0.316 2.07 24.3 test.phys eIoni - 8 6.2 -9.04 200 0.0568 0.27 1.27 25.6 test.phys eIoni - 9 6.2 -9.03 200 0 0.0568 0.0755 25.7 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.4 -12 198 0.611 0 0 0 test.phys initStep - 1 10.3 -11.1 198 0.451 0.16 1.34 1.34 test.phys msc - 2 9.6 -11.5 199 0.326 0.125 0.969 2.31 test.phys msc - 3 9.95 -11.8 198 0.208 0.117 0.802 3.11 test.phys msc - 4 10.2 -12 198 0 0.208 0.668 3.78 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 11 -8.79 159 0.591 0 0 0 test.phys initStep - 1 12.2 -8.59 160 0.345 0.246 1.96 1.96 test.phys eIoni - 2 12.9 -9 160 0.0476 0.297 1.34 3.3 test.phys eIoni - 3 12.8 -9 160 0 0.0476 0.0555 3.36 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 9.25 -7.03 147 1.82 0 0 0 test.phys initStep - 1 11.7 -8.04 149 1.38 0.444 4.09 4.09 test.phys eIoni - 2 11.9 -9.47 152 0.971 0.408 3.35 7.44 test.phys eIoni - 3 11.4 -10.5 154 0.505 0.466 2.66 10.1 test.phys eIoni - 4 10.5 -10.9 154 0.224 0.281 1.78 11.9 test.phys eIoni - 5 10.7 -10.8 155 0 0.224 0.747 12.6 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 8.83 -6.64 144 0.239 0 0 0 test.phys initStep - 1 8.71 -6.31 144 0 0.239 0.827 0.827 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 8.33 -6.3 141 0.55 0 0 0 test.phys initStep - 1 8.33 -5.33 141 0.166 0.384 1.88 1.88 test.phys eIoni - 2 8.2 -5.18 142 0 0.166 0.464 2.34 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 5.25 -5.2 123 0.236 0 0 0 test.phys initStep - 1 5.4 -5.57 123 0 0.236 0.811 0.811 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.42 -4.88 116 0.279 0 0 0 test.phys initStep - 1 4.24 -5.33 116 0 0.279 1.05 1.05 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 0.211 0.188 67.5 0.33 0 0 0 test.phys initStep - 1 -0.342 -0.0595 67.8 0.0842 0.246 1.28 1.28 test.phys eIoni - 2 -0.322 -0.07 67.8 0 0.0842 0.149 1.43 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 11.1 -12.8 196 0.00303 0 0 0 test.phys initStep - 1 11.1 -12.8 196 0 0.000403 0.00397 0.00397 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 11.1 -12.8 196 0.00263 0 0 0 test.phys initStep - 1 11.1 -12.8 196 0 0.00263 0.000369 0.000369 test.phys eIoni + 0 -1.74 -2.33 100 0.376 0 0 0 test.phys initStep + 1 -2.08 -3.02 101 0.118 0.258 1.44 1.44 test.phys eIoni + 2 -2.2 -2.95 101 0 0.118 0.265 1.71 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 17.1 -13.3 198 0.349 0 0 0 test.phys initStep - 1 17.6 -13.5 200 0.349 0 1.98 1.98 World Transportation - 2 2.49e+03 -1.14e+03 1e+04 0.349 0 1.02e+04 1.02e+04 OutOfWorld Transportation + 0 -8.25 -7.51 194 0.018 0 0 0 test.phys initStep + 1 -8.29 -7.5 195 0 0.000403 1.32 1.32 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -8.29 -7.5 195 0.0176 0 0 0 test.phys initStep + 1 -8.29 -7.49 195 0 0.0176 0.00961 0.00961 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 -7.04 -7.34 177 0.0702 0 0 0 test.phys initStep + 1 -8.46 -7.13 200 0.0702 0 23.4 23.4 World Transportation + 2 -607 81.6 1e+04 0.0702 0 9.82e+03 9.84e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -6.24 -7.51 165 0.00725 0 0 0 test.phys initStep + 1 -6.3 -7.48 166 0 0.000403 1.02 1.02 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -6.3 -7.48 166 0.00684 0 0 0 test.phys initStep + 1 -6.3 -7.48 166 0 0.00684 0.00184 0.00184 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13 -10.4 173 2.84 0 0 0 test.phys initStep - 1 16.3 -12.4 200 2.84 0 27.7 27.7 World Transportation - 2 1.18e+03 -706 1e+04 2.84 0 9.89e+03 9.92e+03 OutOfWorld Transportation + 0 -5.28 -7.4 149 2.66 0 0 0 test.phys initStep + 1 -9.71 -9.12 200 2.66 0 51.4 51.4 World Transportation + 2 -857 -339 1e+04 2.66 0 9.84e+03 9.89e+03 OutOfWorld Transportation ********************************************************************************************************* * 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 10.8 -8.58 157 2.96 0 0 0 test.phys initStep - 1 16.6 -12.4 200 2.96 0 43.2 43.2 World Transportation - 2 1.35e+03 -899 1e+04 2.96 0 9.93e+03 9.97e+03 OutOfWorld Transportation + 0 0.556 -0.586 59.5 0.0325 0 0 0 test.phys initStep + 1 0.437 -0.953 65.8 0.0311 0 6.37 6.37 test.phys biasWrapper(compt) + 2 13.2 -16.3 71.2 0 0.000403 20.7 27.1 test.phys biasWrapper(phot) ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.75 -4.16 109 0.0878 0 0 0 test.phys initStep - 1 4.73 -5.09 125 0.0741 0 16.6 16.6 test.phys biasWrapper(compt) - 2 -112 137 126 0.061 0 184 200 test.phys biasWrapper(compt) - 3 -123 105 113 0 0.000403 36.8 237 test.phys biasWrapper(phot) + 0 13.2 -16.3 71.2 0.0307 0 0 0 test.phys initStep + 1 13.2 -16.3 71.2 0 0.0307 0.0256 0.0256 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -123 105 113 0.0606 0 0 0 test.phys initStep - 1 -123 105 113 0 0.0606 0.0845 0.0845 test.phys eIoni + 0 0.437 -0.953 65.8 0.0014 0 0 0 test.phys initStep + 1 0.437 -0.953 65.8 0 0.0014 0.000137 0.000137 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 6 +* 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 -112 137 126 0.0131 0 0 0 test.phys initStep - 1 -112 137 126 0 0.0131 0.00572 0.00572 test.phys eIoni + 0 -5.68 26.9 65.5 0.511 0 0 0 test.phys initStep + 1 -12.9 28.1 68.1 0.297 0 7.8 7.8 test.phys biasWrapper(compt) + 2 -37.3 7.06 44.6 0.259 0 39.9 47.7 test.phys biasWrapper(compt) + 3 -34.2 -21.8 0 0.259 0 53.2 101 World Transportation + 4 650 -6.49e+03 -1e+04 0.259 0 1.19e+04 1.2e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 6 +* 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 4.73 -5.09 125 0.0137 0 0 0 test.phys initStep - 1 4.73 -5.09 125 0 0.0137 0.00616 0.00616 test.phys eIoni + 0 -5.68 26.9 65.5 0.511 0 0 0 test.phys initStep + 1 171 -2.82 0 0.511 0 191 191 World Transportation + 2 1e+04 -1.66e+03 -3.65e+03 0.511 0 1.06e+04 1.08e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 3 +* 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 1.01 -1.18 81.1 1.11 0 0 0 test.phys initStep - 1 13 -11.7 200 1.11 0 120 120 World Transportation - 2 1e+03 -882 1e+04 1.11 0 9.89e+03 1e+04 OutOfWorld Transportation + 0 -7.04 26.6 67.4 0.00804 0 0 0 test.phys initStep + 1 -7.24 26.3 67.3 0 0.000403 0.331 0.331 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -8.34 25.2 68.3 0.0139 0 0 0 test.phys initStep + 1 -6.62 26.8 69.8 0 0.000403 2.8 2.8 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.15 15.1 67.6 0.0424 0 0 0 test.phys initStep + 1 -11.9 32.9 65.8 0.0396 0 18.1 18.1 test.phys biasWrapper(compt) + 2 -16.2 34 71.9 0 0.000403 7.57 25.6 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 -5.57 4.84 54.8 0.00247 0 0 0 test.phys initStep + 1 -5.59 4.87 54.9 0 0.000403 0.046 0.046 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 -3.63 1.01 49.1 0.00608 0 0 0 test.phys initStep + 1 -3.75 1.21 49.5 0 0.000403 0.492 0.492 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.75 1.21 49.5 0.00568 0 0 0 test.phys initStep + 1 -3.75 1.21 49.5 0 0.00568 0.00134 0.00134 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.59 4.87 54.9 0.00207 0 0 0 test.phys initStep + 1 -5.59 4.87 54.9 0 0.00207 0.000251 0.000251 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.2 34 71.9 0.0392 0 0 0 test.phys initStep + 1 -16.2 34 71.9 0 0.0392 0.0395 0.0395 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 32.9 65.8 0.0028 0 0 0 test.phys initStep + 1 -11.9 32.9 65.8 0 0.0028 0.000407 0.000407 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -6.62 26.8 69.8 0.0135 0 0 0 test.phys initStep + 1 -6.62 26.8 69.8 0 0.0135 0.006 0.006 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.24 26.3 67.3 0.00764 0 0 0 test.phys initStep + 1 -7.24 26.3 67.3 0 0.00764 0.00223 0.00223 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 -37.3 7.06 44.6 0.0383 0 0 0 test.phys initStep + 1 -37.3 7.06 44.6 0 0.0383 0.0379 0.0379 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 -12.9 28.1 68.1 0.214 0 0 0 test.phys initStep + 1 -13.1 28.3 68.4 0 0.214 0.696 0.696 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -3301,635 +1612,587 @@ 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 70.9 0 0 70.9 571 test.phys biasWrapper(conv) + 1 0 0 60.3 0 0 60.3 560 test.phys biasWrapper(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 70.9 77.5 0 0 0 test.phys initStep - 1 -0.000222 0.00426 71.7 6.67 0.127 0.783 0.783 test.phys eBrem - 2 -0.0326 0.274 73.2 6.16 0.155 1.58 2.36 test.phys eBrem - 3 -0.0445 2.74 83.7 4.44 1.72 11.2 13.6 test.phys eIoni - 4 -1.02 4.3 88.1 3.58 0.566 4.97 18.5 test.phys eIoni - 5 -3.14 5.19 92.2 2.21 0.605 4.86 23.4 test.phys eIoni - 6 -2.67 4.74 96.5 1.69 0.52 4.76 28.2 test.phys eIoni - 7 -2.98 4.8 99.9 1.28 0.41 3.9 32.1 test.phys eIoni - 8 -4.8 5.84 99.9 0 0.32 2.34 34.4 test.phys annihil + 0 0 0 60.3 77.3 0 0 0 test.phys initStep + 1 0.0821 0.0179 65.5 76.5 0.552 5.28 5.28 test.phys eIoni + 2 0.224 2.12 93.1 73.3 3.26 27.7 33 test.phys eBrem + 3 3.6 13.4 141 66.3 6.06 49 82 test.phys eIoni + 4 4.29 14.9 151 64.8 1.23 10.1 92.1 test.phys eIoni + 5 5.3 16.7 164 62.7 1.63 13.7 106 test.phys eIoni + 6 5.31 16.7 164 62.4 0.00528 0.0585 106 test.phys eIoni + 7 5.52 17.7 173 61.3 1.09 9 115 test.phys eBrem + 8 5.54 20.9 193 58.6 2.49 20 135 test.phys eIoni + 9 5.51 22.3 200 57.7 0.808 7.14 142 World Transportation + 10 -592 2.59e+03 1e+04 57.7 3.56e-22 1.01e+04 1.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 5.54 20.9 193 0.291 0 0 0 test.phys initStep + 1 5.61 21.4 193 0.0122 0.278 1.11 1.11 test.phys eIoni + 2 5.61 21.4 193 0 0.0122 0.00506 1.11 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.31 16.7 164 0.244 0 0 0 test.phys initStep + 1 5.57 16.4 165 0 0.244 0.859 0.859 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 5.3 16.7 164 0.529 0 0 0 test.phys initStep + 1 4.37 17.1 165 0.286 0.243 1.83 1.83 test.phys eIoni + 2 3.87 16.9 165 0.0606 0.225 1.08 2.92 test.phys eIoni + 3 3.91 16.9 165 0 0.0606 0.0845 3 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 -3.14 5.19 92.2 0.76 0 0 0 test.phys initStep - 1 -4.21 5.99 93.4 0.442 0.318 2.29 2.29 test.phys eIoni - 2 -4.76 5.87 94.2 0.102 0.34 1.63 3.91 test.phys eIoni - 3 -4.78 5.77 94.2 0 0.102 0.208 4.12 test.phys eIoni + 0 4.29 14.9 151 0.255 0 0 0 test.phys initStep + 1 4.65 15.2 151 0 0.255 0.916 0.916 test.phys eIoni ********************************************************************************************************* * 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.02 4.3 88.1 0.295 0 0 0 test.phys initStep - 1 -1.08 4.87 88.3 0.0453 0.249 1.13 1.13 test.phys eIoni - 2 -1.09 4.86 88.3 0 0.0453 0.0508 1.18 test.phys eIoni + 0 3.6 13.4 141 0.866 0 0 0 test.phys initStep + 1 4.02 15 142 0.595 0.271 2.48 2.48 test.phys eIoni + 2 4.32 15.9 141 0.263 0.332 1.97 4.45 test.phys eIoni + 3 4.54 16.1 140 0 0.263 0.96 5.41 test.phys eIoni + +********************************************************************************************************* +* 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.0821 0.0179 65.5 0.226 0 0 0 test.phys initStep + 1 0.243 -0.284 65.7 0 0.226 0.758 0.758 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 70.9 21.5 0 0 0 test.phys initStep - 1 -0.325 -1.28 87 19.2 2.17 16.3 16.3 test.phys eBrem - 2 -9.21 -1.29 117 15.2 3.96 32 48.3 test.phys eIoni - 3 -13.9 0.927 123 13.8 1.09 7.51 55.8 test.phys eIoni - 4 -27 1.97 138 9.2 2.26 20.2 76 test.phys eIoni - 5 -38.4 -1.54 142 7.15 1.72 12.6 88.6 test.phys eIoni - 6 -44.7 -4.01 144 6.38 0.72 7.05 95.6 test.phys eBrem - 7 -45 -4.12 144 5.95 0.0317 0.276 95.9 test.phys eIoni - 8 -53.6 -8.65 147 4.75 1.2 10.8 107 test.phys eIoni - 9 -59.9 -9.93 152 3.61 0.876 8.31 115 test.phys eIoni - 10 -60.9 -10.3 153 3.35 0.224 1.58 117 test.phys eBrem - 11 -66.2 -11.7 156 2.46 0.889 6.59 123 test.phys eIoni - 12 -69 -10 159 1.87 0.588 5.14 128 test.phys eIoni - 13 -72 -8.29 161 1.42 0.45 4.17 132 test.phys eIoni - 14 -74.1 -6.24 161 0.936 0.484 3.42 136 test.phys eIoni - 15 -74.8 -4.96 163 0.542 0.393 2.6 139 test.phys eIoni - 16 -74.8 -4.96 163 0.349 3.29e-05 0.000514 139 test.phys eBrem - 17 -75.1 -4.3 163 0.0803 0.269 1.35 140 test.phys eIoni - 18 -75.1 -4.32 163 0 0.0803 0.138 140 test.phys eIoni - -********************************************************************************************************* -* 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 -59.9 -9.93 152 0.266 0 0 0 test.phys initStep - 1 -59.9 -10.4 152 0 0.266 0.976 0.976 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45 -4.12 144 0.403 0 0 0 test.phys initStep - 1 -45.8 -3.74 144 0.03 0.373 1.52 1.52 test.phys eIoni - 2 -45.8 -3.74 144 0 0.03 0.0246 1.55 test.phys eIoni + 0 0 0 60.3 21.7 0 0 0 test.phys initStep + 1 -0.56 -0.0988 67.9 20.3 1.1 7.67 7.67 test.phys eIoni + 2 -8.19 1.15 101 16.2 4.17 33.7 41.4 test.phys eIoni + 3 -7.74 6.32 127 12.7 3.48 27.1 68.5 test.phys eIoni + 4 -5.2 19.9 143 10.1 2.58 21.6 90.1 test.phys eIoni + 5 -13.9 28.7 155 7.82 2.27 17.1 107 test.phys eBrem + 6 -19 31.8 167 6.19 1.64 13.8 121 test.phys eIoni + 7 -27.3 30.7 174 4.79 1.39 11.2 132 test.phys eIoni + 8 -34.4 31.5 179 3.8 0.994 8.94 141 test.phys eIoni + 9 -35.7 31.4 182 2.38 0.408 3.98 145 test.phys eIoni + 10 -35.8 32 187 1.75 0.628 5 150 test.phys eIoni + 11 -36.9 32.7 189 1.5 0.245 2.31 152 test.phys eBrem + 12 -38.9 32.6 191 0.87 0.632 3.56 156 test.phys eIoni + 13 -39.5 33.3 193 0.527 0.343 2.48 158 test.phys eIoni + 14 -40.2 32.8 194 0.271 0.255 1.83 160 test.phys eIoni + 15 -40.6 33.1 194 0.023 0.248 1.01 161 test.phys eIoni + 16 -40.6 33.2 194 0 0.023 0.0153 161 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 -38.4 -1.54 142 0.328 0 0 0 test.phys initStep - 1 -38.9 -1.06 142 0.102 0.226 1.27 1.27 test.phys eIoni - 2 -38.9 -1.16 142 0 0.102 0.206 1.48 test.phys eIoni + 0 -35.7 31.4 182 1.01 0 0 0 test.phys initStep + 1 -37 30.5 184 0.694 0.316 2.73 2.73 test.phys eIoni + 2 -38 29.7 185 0.177 0.518 2.16 4.89 test.phys eIoni + 3 -38.2 29.6 185 0 0.177 0.513 5.41 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 -27 1.97 138 2.35 0 0 0 test.phys initStep - 1 -30.2 4.27 140 1.74 0.616 4.96 4.96 test.phys eIoni - 2 -32.4 4.87 143 1.35 0.381 3.94 8.9 test.phys eIoni - 3 -34.3 3.15 144 0.925 0.43 3.31 12.2 test.phys eIoni - 4 -35.3 1.39 145 0.597 0.328 2.58 14.8 test.phys eIoni - 5 -36.1 0.654 146 0.289 0.308 1.98 16.8 test.phys eIoni - 6 -36.3 0.716 145 0.00634 0.282 1.1 17.9 test.phys eIoni - 7 -36.3 0.717 145 0 0.00634 0.00161 17.9 test.phys eIoni - -********************************************************************************************************* -* 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 -13.9 0.927 123 0.339 0 0 0 test.phys initStep - 1 -13.8 1.56 123 0.111 0.228 1.32 1.32 test.phys eIoni - 2 -13.9 1.63 123 0 0.111 0.24 1.56 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -74.8 -4.96 163 0.194 0 0 0 test.phys initStep - 1 -96.9 37.3 200 0.194 0 60.6 60.6 World Transportation - 2 -5.31e+03 1e+04 9.01e+03 0.194 0 1.43e+04 1.43e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -60.9 -10.3 153 0.0405 0 0 0 test.phys initStep - 1 -98.7 -44.5 183 0.039 0 58.9 58.9 test.phys biasWrapper(compt) - 2 -87.7 -70.8 200 0.039 0 33.4 92.3 World Transportation - 3 4.07e+03 -1e+04 6.81e+03 0.039 0 1.26e+04 1.27e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -98.7 -44.5 183 0.00152 0 0 0 test.phys initStep - 1 -98.7 -44.5 183 0 0.00152 0.000155 0.000155 test.phys eIoni + 0 -0.56 -0.0988 67.9 0.241 0 0 0 test.phys initStep + 1 -0.948 0.0201 68 0 0.241 0.837 0.837 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 -44.7 -4.01 144 0.0473 0 0 0 test.phys initStep - 1 -120 -47 200 0.0473 0 103 103 World Transportation - 2 -1e+04 -5.71e+03 7.62e+03 0.0473 0 1.36e+04 1.37e+04 OutOfWorld Transportation + 0 -36.9 32.7 189 0.00351 0 0 0 test.phys initStep + 1 -37.1 32.7 189 0 0.000403 0.255 0.255 test.phys biasWrapper(phot) ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 3 +* 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.325 -1.28 87 0.114 0 0 0 test.phys initStep - 1 -26.1 -11.2 160 0.0867 0 78.2 78.2 test.phys biasWrapper(compt) - 2 -31.6 -19.4 152 0.0797 0 13.2 91.3 test.phys biasWrapper(compt) - 3 -39.3 -1.06 94.8 0.0615 0 60.1 151 test.phys biasWrapper(compt) - 4 -46.3 -0.721 128 0.0613 0 34 185 test.phys biasWrapper(compt) - 5 -50.1 -10.6 200 0.0613 0 72.7 258 World Transportation - 6 -565 -1.36e+03 1e+04 0.0613 0 9.91e+03 1.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -46.3 -0.721 128 0.00017 0 0 0 test.phys initStep - 1 -46.3 -0.721 128 0 0.00017 1.17e-05 1.17e-05 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 -39.3 -1.06 94.8 0.0182 0 0 0 test.phys initStep - 1 -39.3 -1.06 94.8 0 0.0182 0.0101 0.0101 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 -31.6 -19.4 152 0.00704 0 0 0 test.phys initStep - 1 -31.6 -19.4 152 0 0.00704 0.00193 0.00193 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 -26.1 -11.2 160 0.0269 0 0 0 test.phys initStep - 1 -26.1 -11.1 160 0 0.0269 0.0203 0.0203 test.phys eIoni - -********************************************************************************************************* -* 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 -4.8 5.84 99.9 1.48 0 0 0 test.phys initStep - 1 -83.4 -25.1 153 0.379 0 99.8 99.8 test.phys biasWrapper(compt) - 2 -76.9 35.3 198 0.298 0 75.4 175 test.phys biasWrapper(compt) - 3 -38.8 138 173 0.264 0 112 288 test.phys biasWrapper(compt) - 4 -48.5 178 178 0.135 0 41.2 329 test.phys biasWrapper(compt) - 5 -8.61 129 194 0.1 0 65.3 394 test.phys biasWrapper(compt) - 6 -5.67 138 200 0.1 0 11.1 405 World Transportation - 7 3.22e+03 1e+04 6.57e+03 0.1 0 1.22e+04 1.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.61 129 194 0.035 0 0 0 test.phys initStep - 1 -8.6 129 194 0 0.035 0.0323 0.0323 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -48.5 178 178 0.129 0 0 0 test.phys initStep - 1 -48.6 178 178 0 0.129 0.305 0.305 test.phys eIoni - -********************************************************************************************************* -* 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 -38.8 138 173 0.0345 0 0 0 test.phys initStep - 1 -38.7 138 173 0 0.0345 0.0315 0.0315 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -76.9 35.3 198 0.081 0 0 0 test.phys initStep - 1 -76.9 35.4 198 0 0.081 0.14 0.14 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -83.4 -25.1 153 1.1 0 0 0 test.phys initStep - 1 -85.3 -26.3 154 0.714 0.39 2.89 2.89 test.phys eIoni - 2 -85.2 -27.9 153 0.452 0.262 2.2 5.09 test.phys eIoni - 3 -85.9 -28.6 153 0.212 0.24 1.65 6.74 test.phys eIoni - 4 -85.7 -28.6 153 0 0.212 0.685 7.43 test.phys eIoni - -********************************************************************************************************* -* 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 -4.8 5.84 99.9 0.501 0 0 0 test.phys initStep - 1 -35.8 44 0 0.501 0 111 111 World Transportation - 2 -3.13e+03 3.86e+03 -1e+04 0.501 0 1.11e+04 1.13e+04 OutOfWorld Transportation + 0 5.52 17.7 173 0.013 0 0 0 test.phys initStep + 1 5.51 18.7 182 0 0.000403 8.46 8.46 test.phys biasWrapper(phot) ********************************************************************************************************* * 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.0326 0.274 73.2 0.353 0 0 0 test.phys initStep - 1 -0.0733 0.74 76.1 0.196 0 2.91 2.91 test.phys biasWrapper(compt) - 2 134 84.5 38.2 0.174 0 162 165 test.phys biasWrapper(compt) - 3 153 191 24.8 0.123 0 109 274 test.phys biasWrapper(compt) - 4 156 179 115 0.103 0 90.6 365 test.phys biasWrapper(compt) - 5 117 144 122 0.0965 0 52.2 417 test.phys biasWrapper(compt) - 6 108 46.9 200 0.0965 0 125 542 World Transportation - 7 -887 -1e+04 8.21e+03 0.0965 0 1.29e+04 1.34e+04 OutOfWorld Transportation + 0 0.224 2.12 93.1 0.0369 0 0 0 test.phys initStep + 1 0.447 3.67 101 0 0.000403 8.38 8.38 test.phys biasWrapper(phot) ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 6 +* 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 117 144 122 0.00647 0 0 0 test.phys initStep - 1 117 144 122 0 0.00647 0.00167 0.00167 test.phys eIoni + 0 0.447 3.67 101 0.0365 0 0 0 test.phys initStep + 1 0.456 3.66 101 0.00364 0.0257 0.0287 0.0287 test.phys eBrem + 2 0.456 3.66 101 0 0.00364 0.000629 0.0293 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 6 +* 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 156 179 115 0.0196 0 0 0 test.phys initStep - 1 156 179 115 0 0.0196 0.0116 0.0116 test.phys eIoni + 0 5.51 18.7 182 0.0126 0 0 0 test.phys initStep + 1 5.52 18.7 182 0 0.0126 0.00532 0.00532 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 6 +* 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 153 191 24.8 0.0519 0 0 0 test.phys initStep - 1 153 191 24.7 0 0.0519 0.0645 0.0645 test.phys eIoni + 0 -37.1 32.7 189 0.00311 0 0 0 test.phys initStep + 1 -37.1 32.7 189 0 0.00311 0.000485 0.000485 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 6 +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 18 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 134 84.5 38.2 0.0216 0 0 0 test.phys initStep - 1 134 84.5 38.2 0 0.0216 0.0138 0.0138 test.phys eIoni + 0 0.456 3.66 101 0.00715 0 0 0 test.phys initStep + 1 0.387 3.7 101 0 0.000403 0.195 0.195 test.phys biasWrapper(phot) ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 19 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0733 0.74 76.1 0.157 0 0 0 test.phys initStep - 1 -0.157 0.718 76.3 0 0.157 0.423 0.423 test.phys eIoni + 0 0.387 3.7 101 0.00674 0 0 0 test.phys initStep + 1 0.387 3.7 101 0 0.00674 0.0018 0.0018 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 65.5 0 0 65.5 566 test.phys biasWrapper(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 65.5 32.4 0 0 0 test.phys initStep + 1 -0.404 0.208 73 31 0.804 7.45 7.45 test.phys eBrem + 2 -0.366 0.836 76.6 30.4 0.383 3.68 11.1 test.phys eBrem + 3 -0.382 1.13 78.2 30.3 0.174 1.63 12.8 test.phys eBrem + 4 -1.77 6.87 100 26.3 3.09 22.9 35.7 test.phys eIoni + 5 -5.75 10.1 114 24.4 1.97 14.5 50.2 test.phys eBrem + 6 -7.15 10.6 117 23.9 0.419 3.9 54.1 test.phys eBrem + 7 -13.4 12.6 132 21.8 1.75 15.5 69.6 test.phys eIoni + 8 -13.9 12.8 133 21.6 0.145 1.28 70.8 test.phys eBrem + 9 -16.7 14 139 20.1 0.757 6.66 77.5 test.phys eIoni + 10 -21.9 15.2 148 18.5 1.32 10.8 88.4 test.phys eIoni + 11 -26.5 16.6 158 15.9 1.42 10.9 99.2 test.phys eIoni + 12 -31.9 16.2 173 12.4 1.99 15.8 115 test.phys eIoni + 13 -31.3 14.6 194 9.91 2.5 21.2 136 test.phys eIoni + 14 -31.3 15.6 196 9.23 0.3 2.66 139 test.phys eIoni + 15 -31.2 17.3 200 8.44 0.789 4.19 143 World Transportation + 16 -116 4.07e+03 1e+04 8.44 3.13e-22 1.06e+04 1.07e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -31.3 15.6 196 0.379 0 0 0 test.phys initStep + 1 -31.6 15.2 197 0.106 0.273 1.45 1.45 test.phys eIoni + 2 -31.5 15.1 197 0 0.106 0.221 1.67 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.9 16.2 173 1.49 0 0 0 test.phys initStep + 1 -32.8 17.9 175 1.09 0.4 3.53 3.53 test.phys eIoni + 2 -33.2 17.8 177 0.723 0.366 2.86 6.4 test.phys eIoni + 3 -31.6 18.1 178 0.459 0.265 2.22 8.62 test.phys eIoni + 4 -32.3 17.7 177 0.243 0.216 1.67 10.3 test.phys eIoni + 5 -32.4 17.7 177 0 0.243 0.85 11.1 test.phys eIoni + +********************************************************************************************************* +* 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 -26.5 16.6 158 1.16 0 0 0 test.phys initStep + 1 -26.7 15.1 160 0.829 0.335 2.99 2.99 test.phys eIoni + 2 -25.6 13.7 161 0.563 0.266 2.41 5.4 test.phys eIoni + 3 -24.9 14.3 162 0.27 0.293 1.91 7.3 test.phys eIoni + 4 -24.8 14.6 162 0 0.27 1 8.3 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.9 15.2 148 0.292 0 0 0 test.phys initStep + 1 -22.4 14.8 148 0 0.292 1.11 1.11 test.phys eIoni + +********************************************************************************************************* +* 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 -16.7 14 139 0.771 0 0 0 test.phys initStep + 1 -16.8 15.3 140 0.48 0.29 2.31 2.31 test.phys eIoni + 2 -17.3 16.3 140 0.109 0.371 1.72 4.03 test.phys eIoni + 3 -17.4 16.3 140 0 0.109 0.233 4.26 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.4 12.6 132 0.437 0 0 0 test.phys initStep + 1 -12.8 12.7 132 0.143 0.294 1.62 1.62 test.phys eIoni + 2 -12.7 12.7 132 0 0.143 0.364 1.98 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 -1.77 6.87 100 0.811 0 0 0 test.phys initStep + 1 -0.746 6.68 102 0.0161 0.795 2.38 2.38 test.phys eIoni + 2 -0.748 6.69 102 0 0.0161 0.00819 2.39 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 65.5 66.6 0 0 0 test.phys initStep + 1 0.0293 -0.165 72.1 65.4 0.836 6.58 6.58 test.phys eIoni + 2 0.0542 -0.222 75.5 65 0.384 3.42 10 test.phys eBrem + 3 -0.057 -0.273 81.7 63.4 0.811 6.15 16.2 test.phys eBrem + 4 -0.0569 -0.272 81.7 63 0.00478 0.0303 16.2 test.phys eBrem + 5 0.67 0.169 108 59.2 2.97 26 42.2 test.phys eIoni + 6 1.02 -0.455 118 56.6 1.21 10.3 52.5 test.phys eBrem + 7 1.02 -0.652 121 54.4 0.278 2.64 55.2 test.phys eIoni + 8 0.649 -1.3 129 52.3 1.15 8.27 63.4 test.phys eIoni + 9 0.845 -1.61 136 50.9 0.968 7.56 71 test.phys eIoni + 10 1.46 -3.6 156 47.5 2.5 19.9 90.9 test.phys eBrem + 11 4.04 -5.46 174 44.1 2.54 18.5 109 test.phys eIoni + 12 9.43 -6.41 200 41 3.13 26.3 136 World Transportation + 13 1.66e+03 -318 1e+04 41 3.39e-22 9.94e+03 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.04 -5.46 174 0.795 0 0 0 test.phys initStep + 1 5.44 -4.75 175 0.482 0.313 2.35 2.35 test.phys eIoni + 2 5.82 -5.65 176 0.233 0.249 1.73 4.08 test.phys eIoni + 3 5.9 -6.03 176 0 0.233 0.796 4.87 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.845 -1.61 136 0.423 0 0 0 test.phys initStep + 1 0.239 -1.12 137 0.112 0.31 1.58 1.58 test.phys eIoni + 2 0.298 -1.12 137 0 0.112 0.243 1.82 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.649 -1.3 129 0.898 0 0 0 test.phys initStep + 1 -0.523 -2.31 130 0.579 0.319 2.53 2.53 test.phys eIoni + 2 -1.02 -3.49 131 0.231 0.348 1.94 4.47 test.phys eIoni + 3 -1.25 -3.65 130 0 0.231 0.785 5.26 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 1.02 -0.652 121 1.91 0 0 0 test.phys initStep + 1 2.24 0.995 124 1.32 0.588 4.23 4.23 test.phys eIoni + 2 2.27 3.12 126 0.878 0.442 3.25 7.48 test.phys eIoni + 3 2.16 5.09 125 0.587 0.291 2.5 9.98 test.phys eIoni + 4 2.4 5.85 126 0.35 0.237 1.95 11.9 test.phys eIoni + 5 2.66 6.55 126 0.0214 0.328 1.35 13.3 test.phys eIoni + 6 2.65 6.55 126 0 0.0214 0.0135 13.3 test.phys eIoni + +********************************************************************************************************* +* 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.67 0.169 108 0.794 0 0 0 test.phys initStep + 1 1.98 0.695 109 0.507 0.286 2.35 2.35 test.phys eIoni + 2 3.14 0.565 109 0.218 0.29 1.79 4.13 test.phys eIoni + 3 3.4 0.428 109 0 0.218 0.716 4.85 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0293 -0.165 72.1 0.302 0 0 0 test.phys initStep + 1 -0.51 -0.111 72.4 0.0811 0.221 1.16 1.16 test.phys eIoni + 2 -0.465 -0.104 72.5 0 0.0811 0.14 1.3 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.46 -3.6 156 0.972 0 0 0 test.phys initStep + 1 6.25 -6.26 200 0.972 0 44.2 44.2 World Transportation + 2 1.08e+03 -601 1e+04 0.972 0 9.88e+03 9.92e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 1.02 -0.455 118 1.43 0 0 0 test.phys initStep + 1 1.1 -0.694 121 0.689 0 3.36 3.36 test.phys biasWrapper(compt) + 2 -4.42 -15.7 132 0.596 0 19.5 22.9 test.phys biasWrapper(compt) + 3 -1.8 -267 195 0.226 0 259 282 test.phys biasWrapper(compt) + 4 6.21 -261 200 0.226 0 11 293 World Transportation + 5 1e+04 7e+03 6.21e+03 0.226 0 1.37e+04 1.4e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.8 -267 195 0.369 0 0 0 test.phys initStep + 1 -1.98 -268 195 0.122 0.247 1.42 1.42 test.phys eIoni + 2 -1.93 -268 195 0 0.122 0.278 1.7 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.42 -15.7 132 0.0938 0 0 0 test.phys initStep + 1 -4.48 -15.7 133 0 0.0938 0.179 0.179 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.1 -0.694 121 0.738 0 0 0 test.phys initStep + 1 1.45 -0.0419 123 0.374 0.364 2.25 2.25 test.phys eIoni + 2 1.51 0.762 123 0.146 0.228 1.44 3.68 test.phys eIoni + 3 1.56 0.73 123 0 0.146 0.378 4.06 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0569 -0.272 81.7 0.476 0 0 0 test.phys initStep + 1 3.26 -1.06 166 0.414 0 84.2 84.2 test.phys biasWrapper(compt) + 2 -17 1.43 200 0.414 0 39.8 124 World Transportation + 3 -5.83e+03 715 1e+04 0.414 0 1.14e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 21 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 3.26 -1.06 166 0.0629 0 0 0 test.phys initStep + 1 3.29 -1.07 166 0 0.0629 0.09 0.09 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.057 -0.273 81.7 0.8 0 0 0 test.phys initStep + 1 1.66 1.56 159 0.43 0 77 77 test.phys biasWrapper(compt) + 2 -73.3 27.6 200 0.43 0 89.5 166 World Transportation + 3 -1e+04 3.47e+03 5.68e+03 0.43 0 1.19e+04 1.2e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0542 -0.222 75.5 0.0117 0 0 0 test.phys initStep + 1 0.0197 -0.254 76.2 0 0.000403 0.617 0.617 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.9 12.8 133 0.00447 0 0 0 test.phys initStep + 1 -14.1 12.9 133 0 0.000403 0.322 0.322 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 -7.15 10.6 117 0.0103 0 0 0 test.phys initStep + 1 -7.96 11 120 0 0.000403 2.62 2.62 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 -5.75 10.1 114 0.00562 0 0 0 test.phys initStep + 1 -5.86 10.2 114 0 0.000403 0.271 0.271 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.382 1.13 78.2 0.00745 0 0 0 test.phys initStep + 1 -0.414 1.58 80.8 0 0.000403 2.61 2.61 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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.366 0.836 76.6 0.204 0 0 0 test.phys initStep + 1 -0.335 3.02 90.5 0.186 0 14.1 14.1 test.phys biasWrapper(compt) + 2 58.5 -1.03 161 0.138 0 92.1 106 test.phys biasWrapper(compt) + 3 15.2 -23.5 200 0.138 0 62.2 168 World Transportation + 4 -1e+04 -5.23e+03 9.15e+03 0.138 0 1.44e+04 1.46e+04 OutOfWorld Transportation ********************************************************************************************************* * 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.000222 0.00426 71.7 70.7 0 0 0 test.phys initStep - 1 0.607 -1.75 200 70.7 0 128 128 World Transportation - 2 47 -136 1e+04 70.7 0 9.8e+03 9.93e+03 OutOfWorld Transportation + 0 -0.404 0.208 73 0.576 0 0 0 test.phys initStep + 1 0.455 11.3 123 0.386 0 51.1 51.1 test.phys biasWrapper(compt) + 2 -106 14.2 200 0.386 0 132 183 World Transportation + 3 -1e+04 285 7.36e+03 0.386 0 1.22e+04 1.24e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 5 ********************************************************************************************************* 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 + 0 0.455 11.3 123 0.19 0 0 0 test.phys initStep + 1 0.653 11.3 123 0 0.19 0.578 0.578 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 6 ********************************************************************************************************* 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 71.1 0.92 0 71.1 571 test.phys biasWrapper(hadElastic) - 2 -15.2 13.4 80.5 0.903 0.0171 22.4 593 test.phys biasWrapper(hadElastic) - 3 -61.5 170 200 0.903 0 202 796 World Transportation - 4 -2.98e+03 1e+04 7.71e+03 0.903 0 1.27e+04 1.35e+04 OutOfWorld Transportation + 0 58.5 -1.03 161 0.0478 0 0 0 test.phys initStep + 1 58.5 -1.03 161 0 0.0478 0.0559 0.0559 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +* 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 0 71.1 0.0798 0 0 0 test.phys initStep - 1 0.000474 -0.00042 71.1 0 0.0798 0.001 0.001 test.phys ionIoni + 0 -0.335 3.02 90.5 0.0183 0 0 0 test.phys initStep + 1 -0.339 3.02 90.5 0 0.0183 0.0103 0.0103 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* 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 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 + 0 -0.414 1.58 80.8 0.00704 0 0 0 test.phys initStep + 1 -0.413 1.58 80.8 0 0.00704 0.00194 0.00194 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 9 ********************************************************************************************************* 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 152 0.9 0 152 652 test.phys biasWrapper(hadElastic) - 2 -17.7 -170 200 0.9 0 178 830 World Transportation - 3 -1.04e+03 -1e+04 2.96e+03 0.9 0 1.03e+04 1.11e+04 OutOfWorld Transportation + 0 -5.86 10.2 114 0.00522 0 0 0 test.phys initStep + 1 -5.86 10.2 114 0 0.00522 0.00116 0.00116 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 10 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 152 0.1 0 0 0 test.phys initStep - 1 7.56e-05 0.000725 152 0 0.1 0.00116 0.00116 test.phys ionIoni + 0 -7.96 11 120 0.00986 0 0 0 test.phys initStep + 1 -7.96 11 120 0 0.00986 0.00347 0.00347 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 12 ********************************************************************************************************* 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 + 0 -14.1 12.9 133 0.00407 0 0 0 test.phys initStep + 1 -14.1 12.9 133 0 0.00407 0.000759 0.000759 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 19 ********************************************************************************************************* 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 38.1 0.755 0 38.1 538 test.phys biasWrapper(hadElastic) - 2 -6.72 -10.6 0 0.755 0 40.1 578 World Transportation - 3 -1.77e+03 -2.8e+03 -1e+04 0.755 0 1.05e+04 1.11e+04 OutOfWorld Transportation + 0 0.0197 -0.254 76.2 0.0113 0 0 0 test.phys initStep + 1 0.0212 -0.252 76.2 0 0.0113 0.00441 0.00441 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 20 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 38.1 0.245 0 0 0 test.phys initStep - 1 0.000141 0.000223 38.1 0 0.245 0.00191 0.00191 test.phys ionIoni + 0 1.66 1.56 159 0.37 0 0 0 test.phys initStep + 1 2.1 1.44 159 0.109 0.261 1.42 1.42 test.phys eIoni + 2 2.18 1.45 159 0 0.109 0.231 1.65 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 24.9 0.773 0 24.9 525 test.phys biasWrapper(hadElastic) - 2 13.2 -15 -7.11e-15 0.773 0 32 557 World Transportation - 3 5.33e+03 -6.02e+03 -1e+04 0.773 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 24.9 0.227 0 0 0 test.phys initStep - 1 -0.000353 0.000399 24.9 0 0.227 0.00185 0.00185 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 199 0.986 0.0139 199 699 test.phys biasWrapper(hadElastic) - 2 -0.625 -0.0472 200 0.986 0 1.46 700 World Transportation - 3 -4.66e+03 -352 1e+04 0.986 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 52 0.912 0 52 552 test.phys biasWrapper(hadElastic) - 2 -165 -50.2 119 0.758 0 185 736 test.phys biasWrapper(hadElastic) - 3 -198 99.7 0 0.758 0 194 931 World Transportation - 4 -2.41e+03 1e+04 -7.83e+03 0.758 0 1.28e+04 1.37e+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 -165 -50.2 119 0.154 0 0 0 test.phys initStep - 1 -165 -50.2 119 0 0.154 0.00152 0.00152 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 52 0.0881 0 0 0 test.phys initStep - 1 0.000647 0.000197 52 0 0.0881 0.00107 0.00107 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 120 0.988 0.0119 120 620 test.phys biasWrapper(hadElastic) - 2 -32 -14 200 0.988 0 87.7 707 World Transportation - 3 -3.93e+03 -1.72e+03 1e+04 0.988 0 1.07e+04 1.14e+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 58.6 0.835 0 58.6 559 test.phys biasWrapper(hadElastic) - 2 -20.1 -14.5 52.3 0.813 0.0216 25.5 584 test.phys biasWrapper(hadElastic) - 3 -198 -12.5 0 0.813 0 186 770 World Transportation - 4 -1e+04 95.4 -2.87e+03 0.813 0 1.02e+04 1.1e+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 58.6 0.165 0 0 0 test.phys initStep - 1 0.000673 0.000485 58.6 0 0.165 0.0016 0.0016 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.8 0.938 0.0619 37.8 538 test.phys biasWrapper(hadElastic) - 2 -91.1 -8.24 99.2 0.801 0 110 648 test.phys biasWrapper(hadElastic) - 3 -112 2.56 61.8 0.696 0 44.2 692 test.phys biasWrapper(hadElastic) - 4 42.1 461 91.8 0.668 0.0281 484 1.18e+03 test.phys biasWrapper(hadElastic) - 5 89.9 486 85.5 0.623 0.0443 54.6 1.23e+03 test.phys biasWrapper(hadElastic) - 6 162 443 69.6 0.559 0.0644 84.9 1.32e+03 test.phys biasWrapper(hadElastic) - 7 141 392 0 0.559 0 88.8 1.4e+03 World Transportation - 8 -2.77e+03 -6.97e+03 -1e+04 0.559 0 1.28e+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 -112 2.56 61.8 0.105 0 0 0 test.phys initStep - 1 -112 2.55 61.8 0 0.105 0.00119 0.00119 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 -91.1 -8.24 99.2 0.137 0 0 0 test.phys initStep - 1 -91.1 -8.24 99.2 0 0.137 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 105 0.926 0 105 605 test.phys biasWrapper(hadElastic) - 2 -0.0295 -0.00938 105 0.852 0 0.0351 605 test.phys biasWrapper(hadElastic) - 3 15.6 -54 200 0.852 0 111 715 World Transportation - 4 1.62e+03 -5.61e+03 1e+04 0.852 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 -0.0295 -0.00938 105 0.0748 0 0 0 test.phys initStep - 1 -0.0302 -0.00925 105 0 0.0748 0.00096 0.00096 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 105 0.0735 0 0 0 test.phys initStep - 1 0.000569 0.000181 105 0 0.0735 0.00095 0.00095 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 @@ -3940,1176 +2203,1726 @@ 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 16.7 0 0 16.7 517 test.phys biasWrapper(neutronInelastic) + 1 0 0 76.5 0 0 76.5 577 test.phys biasWrapper(conv) ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 5, 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 16.7 11.4 0 0 0 test.phys initStep - 1 102 71.5 103 11 0 152 152 test.phys biasWrapper(hadElastic) - 2 109 129 158 10.7 0 79.8 232 test.phys biasWrapper(hadElastic) - 3 125 138 200 10.7 0 45.8 277 World Transportation - 4 3.83e+03 2.09e+03 1e+04 10.7 0 1.07e+04 1.09e+04 OutOfWorld Transportation + 0 0 0 76.5 92 0 0 0 test.phys initStep + 1 -0.00976 0.0962 81.1 91.5 0.523 4.55 4.55 test.phys eBrem + 2 0.239 -0.0948 96.8 89.3 1.97 15.8 20.3 test.phys eBrem + 3 -0.266 -0.435 113 87 1.96 15.9 36.2 test.phys eIoni + 4 -1.09 -0.654 126 84.1 2 13.3 49.6 test.phys eIoni + 5 -2.75 -1.66 140 37.3 1.96 14.1 63.7 test.phys eBrem + 6 -3.11 -1.94 145 21.7 0.608 4.97 68.7 test.phys eBrem + 7 -5.68 -3.66 162 19.3 2.18 17.5 86.1 test.phys eIoni + 8 -6.45 -4.03 170 18.1 0.952 7.91 94.1 test.phys eIoni + 9 -7.06 -3.91 174 17.2 0.522 3.59 97.7 test.phys eIoni + 10 -7.3 -3.78 174 17.1 0.0846 0.691 98.3 test.phys eBrem + 11 -10.7 -1.87 183 15.7 1.29 9.36 108 test.phys eBrem + 12 -12.8 -0.803 200 13.5 2.23 17.8 125 World Transportation + 13 -247 383 1e+04 13.5 3.02e-22 9.81e+03 9.94e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +* 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 0 0 16.7 47.8 0 0 0 test.phys initStep - 1 -54.4 -76.5 189 47.7 0 197 197 test.phys biasWrapper(hadElastic) - 2 -55.3 -81.6 200 47.7 0 11.8 208 World Transportation - 3 -849 -4.73e+03 1e+04 47.7 0 1.09e+04 1.11e+04 OutOfWorld Transportation + 0 -7.06 -3.91 174 0.361 0 0 0 test.phys initStep + 1 -7.8 -4.14 174 0 0.361 1.39 1.39 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 +* 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 0 0 16.7 0.469 0 0 0 test.phys initStep - 1 3.6 -17.6 -3.55e-15 0.469 0 24.5 24.5 World Transportation - 2 2.04e+03 -1e+04 -9.43e+03 0.469 0 1.39e+04 1.39e+04 OutOfWorld Transportation + 0 -6.45 -4.03 170 0.227 0 0 0 test.phys initStep + 1 -6.77 -4.21 170 0 0.227 0.765 0.765 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 16.7 1.01 0 0 0 test.phys initStep - 1 133 -117 163 0.956 0 230 230 test.phys biasWrapper(compt) - 2 169 -164 197 0.225 0 67.5 298 test.phys biasWrapper(compt) - 3 162 -132 200 0.162 0 32.6 330 test.phys biasWrapper(compt) - 4 162 -132 200 0.162 0 0.41 331 World Transportation - 5 -2.28e+03 -181 1e+04 0.162 0 1.01e+04 1.04e+04 OutOfWorld Transportation + 0 -5.68 -3.66 162 0.281 0 0 0 test.phys initStep + 1 -5.21 -3.71 162 0 0.281 1.06 1.06 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 +* 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 162 -132 200 0.0622 0 0 0 test.phys initStep - 1 162 -132 200 0 0.0622 0.0885 0.0885 test.phys eIoni + 0 -1.09 -0.654 126 0.887 0 0 0 test.phys initStep + 1 -2.22 0.403 127 0.565 0.322 2.51 2.51 test.phys eIoni + 2 -2.78 1.31 128 0.29 0.275 1.91 4.42 test.phys eIoni + 3 -2.99 1.52 129 0.0531 0.236 1.1 5.53 test.phys eIoni + 4 -3.01 1.52 129 0 0.0531 0.0672 5.59 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 7 +* 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 169 -164 197 0.732 0 0 0 test.phys initStep - 1 169 -165 197 0.552 0.18 1.33 1.33 test.phys msc - 2 168 -166 199 0.363 0.188 1.5 2.83 test.phys msc - 3 169 -166 199 0.223 0.14 0.877 3.71 test.phys msc - 4 169 -166 199 0 0.223 0.745 4.45 test.phys eIoni + 0 -0.266 -0.435 113 0.3 0 0 0 test.phys initStep + 1 -0.108 0.0684 113 0 0.3 1.15 1.15 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 7 +* 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 133 -117 163 0.0524 0 0 0 test.phys initStep - 1 133 -117 163 0 0.0524 0.0656 0.0656 test.phys eIoni + 0 0 0 76.5 6.94 0 0 0 test.phys initStep + 1 -0.329 -1.9 85.7 5.73 1.22 9.66 9.66 test.phys eBrem + 2 -5.53 -4.96 93.7 4.44 1.29 10.4 20.1 test.phys eIoni + 3 -5.65 -12.2 91.6 3.03 0.93 7.92 28 test.phys eIoni + 4 -3.29 -16.7 89.2 2.39 0.644 6.08 34.1 test.phys eIoni + 5 -0.158 -19.9 90.2 1.68 0.711 5.02 39.1 test.phys eIoni + 6 2.54 -21.2 91.8 1.21 0.467 3.85 43 test.phys eIoni + 7 4.75 -19.9 92.4 0.823 0.389 3.07 46.1 test.phys eIoni + 8 5.86 -20.5 93.8 0.427 0.397 2.4 48.5 test.phys eIoni + 9 6.6 -20.4 94.4 0.154 0.273 1.59 50 test.phys eIoni + 10 6.81 -20.3 94.5 0 0.154 0.41 50.5 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 16.7 8.31 0 0 0 test.phys initStep - 1 -89 14.9 -3.55e-15 8.31 0 91.8 91.8 World Transportation - 2 -1e+04 1.68e+03 -1.86e+03 8.31 0 1.02e+04 1.03e+04 OutOfWorld Transportation + 0 -5.65 -12.2 91.6 0.473 0 0 0 test.phys initStep + 1 -6.3 -13.1 91.3 0.238 0.235 1.7 1.7 test.phys eIoni + 2 -6.3 -13.2 91.7 0 0.238 0.823 2.53 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 12, Parent ID = 3 +* 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 -54.4 -76.5 189 0.154 0 0 0 test.phys initStep - 1 -54.4 -76.5 189 0 0.154 0.00153 0.00153 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 11, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 129 158 0.329 0 0 0 test.phys initStep - 1 109 129 158 0 0.329 0.00211 0.00211 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 10, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 102 71.5 103 0.347 0 0 0 test.phys initStep - 1 102 71.5 103 0 0.347 0.00214 0.00214 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = C12, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 16.7 2.49 0 0 0 test.phys initStep - 1 -0.00268 0.0024 16.7 0 2.49 0.00408 0.00408 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 16.7 16 0 0 0 test.phys initStep - 1 0.814 -0.496 16.6 13.7 2.36 0.957 0.957 test.phys hIoni - 2 1.45 -0.898 16.5 11.6 2.1 0.758 1.72 test.phys hIoni - 3 2 -1.16 16.5 9.63 1.94 0.603 2.32 test.phys hIoni - 4 2.43 -1.35 16.5 7.96 1.66 0.477 2.8 test.phys hIoni - 5 2.78 -1.51 16.5 6.26 1.7 0.383 3.18 test.phys hIoni - 6 3.06 -1.62 16.5 4.65 1.61 0.3 3.48 test.phys hIoni - 7 3.27 -1.72 16.5 3.03 1.62 0.232 3.71 test.phys hIoni - 8 3.42 -1.79 16.5 1.18 1.85 0.166 3.88 test.phys hIoni - 9 3.46 -1.81 16.5 0.142 1.03 0.0454 3.92 test.phys hIoni - 10 3.46 -1.81 16.5 0 0.142 0.00299 3.93 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 173 0 0 173 673 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* 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 173 2.26 0 0 0 test.phys initStep - 1 80.7 24.1 128 1.84 0 95.1 95.1 test.phys biasWrapper(hadElastic) - 2 57.9 31.3 116 1.77 0.0614 27 122 test.phys biasWrapper(hadElastic) - 3 -24.7 174 61.3 1.7 0 174 296 test.phys biasWrapper(hadElastic) - 4 -58 204 79.8 1.45 0 48.4 344 test.phys biasWrapper(hadElastic) - 5 -85.3 190 41 1.19 0 49.5 394 test.phys biasWrapper(hadElastic) - 6 28.1 344 0 1.19 0 196 590 World Transportation - 7 7.12e+03 1e+04 -2.57e+03 1.19 0 1.22e+04 1.28e+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 0 173 0.0992 0 0 0 test.phys initStep - 1 26.9 -110 147 0.079 0 116 116 test.phys biasWrapper(compt) - 2 118 -47.4 138 0.0618 0 111 227 test.phys biasWrapper(compt) - 3 69 -47.1 156 0.0596 0 52.5 279 test.phys biasWrapper(compt) - 4 15.8 -15 140 0 0.000403 64 343 test.phys biasWrapper(phot) - -********************************************************************************************************* -* 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 15.8 -15 140 0.0592 0 0 0 test.phys initStep - 1 15.8 -14.9 140 0 0.0592 0.0812 0.0812 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 69 -47.1 156 0.00213 0 0 0 test.phys initStep - 1 69 -47.1 156 0 0.00213 0.000263 0.000263 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 -47.4 138 0.0172 0 0 0 test.phys initStep - 1 118 -47.4 138 0 0.0172 0.00922 0.00922 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 26.9 -110 147 0.0202 0 0 0 test.phys initStep - 1 26.9 -110 147 0 0.0202 0.0123 0.0123 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 173 1.05 0 0 0 test.phys initStep - 1 64.8 69.4 200 1.05 0 98.9 98.9 World Transportation - 2 9.33e+03 1e+04 4.12e+03 1.05 0 1.41e+04 1.42e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -85.3 190 41 0.263 0 0 0 test.phys initStep - 1 -85.3 190 41 0 0.263 0.00196 0.00196 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 10, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58 204 79.8 0.25 0 0 0 test.phys initStep - 1 -58 204 79.8 0 0.25 0.00193 0.00193 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 9, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.7 174 61.3 0.0715 0 0 0 test.phys initStep - 1 -24.7 174 61.3 0 0.0715 0.000934 0.000934 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 8, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 80.7 24.1 128 0.422 0 0 0 test.phys initStep - 1 80.7 24.1 128 0 0.422 0.00226 0.00226 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = C13, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 173 2.93 0 0 0 test.phys initStep - 1 -0.00253 0.00315 173 0 2.93 0.0046 0.0046 test.phys ionIoni - -********************************************************************************************************* -* 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 173 86.1 0 0 0 test.phys initStep - 1 3.66 -8.08 187 76.2 9.95 16.6 16.6 test.phys hIoni - 2 6.55 -14.5 198 67.3 8.87 13.4 30 test.phys hIoni - 3 7.05 -15.6 200 65.7 1.6 2.31 32.3 World Transportation - 4 2.46e+03 -5.53e+03 1e+04 65.7 1.74e-21 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 152 99.3 0 152 652 test.phys biasWrapper(hadElastic) - 2 12.3 -8.28 200 99.3 0 50.2 702 World Transportation - 3 2.52e+03 -1.7e+03 1e+04 99.3 0 1.03e+04 1.1e+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 152 0.674 0 0 0 test.phys initStep - 1 -0.00209 0.00141 152 0 0.674 0.00259 0.00259 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 135 0 0 135 635 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* 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 135 1.51 0 0 0 test.phys initStep - 1 40.9 107 0 1.51 0 177 177 World Transportation - 2 3.07e+03 8.03e+03 -1e+04 1.51 0 1.31e+04 1.33e+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 135 57.3 0 0 0 test.phys initStep - 1 122 -363 200 57.3 0 388 388 World Transportation - 2 3.35e+03 -1e+04 1.93e+03 57.3 0 1.03e+04 1.07e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 135 0.67 0 0 0 test.phys initStep - 1 5.96 -6.54 161 0.521 0 27.8 27.8 test.phys biasWrapper(compt) - 2 27.8 -6.2 180 0.172 0 29 56.8 test.phys biasWrapper(compt) - 3 -58.4 -11.8 113 0.162 0 110 166 test.phys biasWrapper(compt) - 4 -61.9 -13.4 102 0.114 0 12 178 test.phys biasWrapper(compt) - 5 -74.7 -38.4 120 0.112 0 33.6 212 test.phys biasWrapper(compt) - 6 -84.9 -75 129 0.0781 0 39.1 251 test.phys biasWrapper(compt) - 7 -75.3 -41.9 122 0.0609 0 35.1 286 test.phys biasWrapper(compt) - 8 -97.9 -106 97.9 0.0508 0 71.9 358 test.phys biasWrapper(compt) - 9 -128 -37.8 94.4 0.0485 0 74.2 432 test.phys biasWrapper(compt) - 10 -127 -26.9 78.7 0.0439 0 19.2 452 test.phys biasWrapper(compt) - 11 -46 -70.7 66.2 0.039 0 92.5 544 test.phys biasWrapper(compt) - 12 -65.7 -78.7 53.1 0.0385 0 24.9 569 test.phys biasWrapper(compt) - 13 -70.7 -84.8 38.4 0.0361 0 16.7 586 test.phys biasWrapper(compt) - 14 -83.8 -96.6 45.4 0 0.000403 18.9 605 test.phys biasWrapper(phot) - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -83.8 -96.6 45.4 0.0357 0 0 0 test.phys initStep - 1 -83.8 -96.6 45.4 0 0.0357 0.0334 0.0334 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -70.7 -84.8 38.4 0.0024 0 0 0 test.phys initStep - 1 -70.7 -84.8 38.4 0 0.0024 0.000317 0.000317 test.phys eIoni - -********************************************************************************************************* -* 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 -65.7 -78.7 53.1 0.00053 0 0 0 test.phys initStep - 1 -65.7 -78.7 53.1 0 0.00053 3.58e-05 3.58e-05 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 -46 -70.7 66.2 0.0049 0 0 0 test.phys initStep - 1 -46 -70.7 66.2 0 0.0049 0.00104 0.00104 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 -127 -26.9 78.7 0.00463 0 0 0 test.phys initStep - 1 -127 -26.9 78.7 0 0.00463 0.000943 0.000943 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 -128 -37.8 94.4 0.00224 0 0 0 test.phys initStep - 1 -128 -37.8 94.4 0 0.00224 0.000284 0.000284 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 -97.9 -106 97.9 0.0101 0 0 0 test.phys initStep - 1 -97.9 -106 97.9 0 0.0101 0.00362 0.00362 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 -75.3 -41.9 122 0.0172 0 0 0 test.phys initStep - 1 -75.3 -41.9 122 0 0.0172 0.00926 0.00926 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 -84.9 -75 129 0.0344 0 0 0 test.phys initStep - 1 -84.9 -75 129 0 0.0344 0.0313 0.0313 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 -74.7 -38.4 120 0.00194 0 0 0 test.phys initStep - 1 -74.7 -38.4 120 0 0.00194 0.000227 0.000227 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 -61.9 -13.4 102 0.0473 0 0 0 test.phys initStep - 1 -61.9 -13.4 102 0 0.0473 0.0549 0.0549 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 -58.4 -11.8 113 0.00974 0 0 0 test.phys initStep - 1 -58.4 -11.8 113 0 0.00974 0.0034 0.0034 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 27.8 -6.2 180 0.349 0 0 0 test.phys initStep - 1 28.4 -6.19 181 0.132 0.217 1.35 1.35 test.phys eIoni - 2 28.4 -6.04 181 0 0.132 0.319 1.67 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.96 -6.54 161 0.149 0 0 0 test.phys initStep - 1 5.84 -6.62 162 0 0.149 0.39 0.39 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 135 8.28 0 0 0 test.phys initStep - 1 -20.4 -36.9 0 8.28 0 141 141 World Transportation - 2 -1.53e+03 -2.77e+03 -1e+04 8.28 0 1.05e+04 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 0 135 6.46 0 0 0 test.phys initStep - 1 -0.00224 0.00376 135 0 6.46 0.00819 0.00819 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 135 13.2 0 0 0 test.phys initStep - 1 -0.0532 0.491 136 11 2.2 0.725 0.725 test.phys hIoni - 2 -0.102 0.874 136 9.14 1.9 0.567 1.29 test.phys hIoni - 3 -0.134 1.18 136 7.43 1.71 0.448 1.74 test.phys hIoni - 4 -0.154 1.42 137 5.86 1.57 0.356 2.1 test.phys hIoni - 5 -0.165 1.61 137 4.24 1.62 0.283 2.38 test.phys hIoni - 6 -0.187 1.76 137 2.63 1.61 0.216 2.6 test.phys hIoni - 7 -0.2 1.85 137 0.752 1.88 0.147 2.74 test.phys hIoni - 8 -0.203 1.87 137 0 0.752 0.0227 2.77 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 182 98.1 0 182 682 test.phys biasWrapper(hadElastic) - 2 3.41 9.57 200 98.1 0 20.7 703 World Transportation - 3 1.86e+03 5.21e+03 1e+04 98.1 0 1.13e+04 1.2e+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 182 1.94 0 0 0 test.phys initStep - 1 -0.00109 -0.00306 182 0 1.94 0.00338 0.00338 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 72.1 99.9 0.0628 72.1 572 test.phys biasWrapper(hadElastic) - 2 10.4 -5.2 200 99.9 0 128 701 World Transportation - 3 811 -404 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 134 0 0 134 634 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* 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 134 2.53 0 0 0 test.phys initStep - 1 41.8 -37.9 107 2.48 0.0504 62.5 62.5 test.phys biasWrapper(hadElastic) - 2 101 -80.5 1.42e-14 2.48 0 129 192 World Transportation - 3 5.62e+03 -4.07e+03 -1e+04 2.48 0 1.21e+04 1.23e+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 134 15.9 0 0 0 test.phys initStep - 1 -47 -86.1 0 15.9 0 166 166 World Transportation - 2 -3.57e+03 -6.53e+03 -1e+04 15.9 0 1.24e+04 1.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 134 0.133 0 0 0 test.phys initStep - 1 -92.6 -29.1 120 0.131 0 98 98 test.phys biasWrapper(compt) - 2 -107 -35.8 110 0.118 0 18.7 117 test.phys biasWrapper(compt) - 3 -107 -35.8 110 0.114 0 0.298 117 test.phys biasWrapper(compt) - 4 -92.8 -28 79.4 0.085 0 34.7 152 test.phys biasWrapper(compt) - 5 -88.3 -23.4 89.9 0.0689 0 12.3 164 test.phys biasWrapper(compt) - 6 13 -75.4 0 0.0689 0 145 309 World Transportation - 7 1e+04 -5.2e+03 -8.86e+03 0.0689 0 1.43e+04 1.46e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -88.3 -23.4 89.9 0.0161 0 0 0 test.phys initStep - 1 -88.3 -23.4 89.9 0 0.0161 0.00821 0.00821 test.phys eIoni - -********************************************************************************************************* -* 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 -92.8 -28 79.4 0.0287 0 0 0 test.phys initStep - 1 -92.8 -28 79.4 0 0.0287 0.0227 0.0227 test.phys eIoni - -********************************************************************************************************* -* 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 -107 -35.8 110 0.00468 0 0 0 test.phys initStep - 1 -107 -35.8 110 0 0.00468 0.00096 0.00096 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 -107 -35.8 110 0.0122 0 0 0 test.phys initStep - 1 -107 -35.8 110 0 0.0122 0.00505 0.00505 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 -92.6 -29.1 120 0.00273 0 0 0 test.phys initStep - 1 -92.6 -29.1 120 0 0.00273 0.000393 0.000393 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 134 0.746 0 0 0 test.phys initStep - 1 -5.39 -52.7 111 0.56 0 57.4 57.4 test.phys biasWrapper(compt) - 2 -43.5 -113 -1.42e-14 0.56 0 132 190 World Transportation - 3 -3.47e+03 -5.53e+03 -1e+04 0.56 0 1.19e+04 1.21e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -5.39 -52.7 111 0.186 0 0 0 test.phys initStep - 1 -5.33 -52.9 111 0 0.186 0.56 0.56 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 134 1.05 0 0 0 test.phys initStep - 1 14.2 -49.9 0 1.05 0 143 143 World Transportation - 2 1.08e+03 -3.79e+03 -1e+04 1.05 0 1.07e+04 1.09e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = Be8, Track ID = 10, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 134 1.8 0 0 0 test.phys initStep - 1 0.00312 -0.00136 134 0 1.8 0.00486 0.00486 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 134 8.7 0 0 0 test.phys initStep - 1 -0.00338 0.00104 134 7.36 1.34 0.0295 0.0295 test.phys ionIoni - 2 -0.0063 0.00241 134 5.96 1.4 0.0263 0.0558 test.phys ionIoni - 3 -0.00852 0.00359 134 4.59 1.37 0.0232 0.0789 test.phys ionIoni - 4 -0.0103 0.00496 134 3.03 1.56 0.0202 0.0991 test.phys ionIoni - 5 -0.0118 0.0059 134 1.24 1.79 0.0163 0.115 test.phys ionIoni - 6 -0.0123 0.00651 134 0 1.24 0.00739 0.123 test.phys ionIoni - -********************************************************************************************************* -* 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 134 49.3 0 0 0 test.phys initStep - 1 -1.47 3.43 139 43.9 5.35 6.21 6.21 test.phys hIoni - 2 -2.71 6.27 143 38.5 5.45 5.07 11.3 test.phys hIoni - 3 -3.78 8.56 146 33.9 4.56 4.03 15.3 test.phys hIoni - 4 -4.65 10.3 148 29.6 4.28 3.24 18.6 test.phys hIoni - 5 -5.29 11.8 150 25.9 3.73 2.58 21.1 test.phys hIoni - 6 -5.83 12.9 152 22.7 3.17 2.05 23.2 test.phys hIoni - 7 -6.25 13.9 153 19.7 3.03 1.66 24.8 test.phys hIoni - 8 -6.59 14.7 154 17.1 2.64 1.32 26.2 test.phys hIoni - 9 -6.84 15.3 155 14.8 2.3 1.05 27.2 test.phys hIoni - 10 -7.04 15.8 156 12.5 2.22 0.847 28.1 test.phys hIoni - 11 -7.22 16.2 156 10.5 2.01 0.672 28.7 test.phys hIoni - 12 -7.35 16.5 157 8.64 1.88 0.533 29.3 test.phys hIoni - 13 -7.47 16.8 157 6.96 1.68 0.42 29.7 test.phys hIoni - 14 -7.56 17 157 5.39 1.57 0.333 30 test.phys hIoni - 15 -7.62 17.1 157 3.81 1.58 0.262 30.3 test.phys hIoni - 16 -7.66 17.2 158 2.18 1.63 0.199 30.5 test.phys hIoni - 17 -7.69 17.3 158 0.189 1.99 0.12 30.6 test.phys hIoni - 18 -7.69 17.3 158 0 0.189 0.00385 30.6 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 136 0 0 136 636 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* 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 136 20.8 0 0 0 test.phys initStep - 1 16.4 -0.567 132 20.6 0 17.1 17.1 test.phys biasWrapper(hadElastic) - 2 368 53 139 0 0 356 373 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 368 53 139 5.45 0 0 0 test.phys initStep - 1 484 106 0 5.45 0 188 188 World Transportation - 2 8.79e+03 3.91e+03 -1e+04 5.45 0 1.35e+04 1.37e+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 136 54.6 0 0 0 test.phys initStep - 1 -26.5 -4.16 200 54.6 0 68.9 68.9 World Transportation - 2 -4.11e+03 -646 1e+04 54.6 0 1.06e+04 1.07e+04 OutOfWorld Transportation + 0 -10.7 -1.87 183 0.0442 0 0 0 test.phys initStep + 1 -12.1 -0.819 200 0.0442 0 17.5 17.5 World Transportation + 2 -805 590 1e+04 0.0442 0 9.85e+03 9.87e+03 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 368 53 139 0.171 0 0 0 test.phys initStep - 1 353 56.8 136 0.122 0 16.1 16.1 test.phys biasWrapper(compt) - 2 359 -27.3 94.4 0.104 0 94 110 test.phys biasWrapper(compt) - 3 355 -30.1 96.5 0.0776 0 4.77 115 test.phys biasWrapper(compt) - 4 475 -57.7 7.23 0.068 0 152 267 test.phys biasWrapper(compt) - 5 494 -93.6 37.9 0.0662 0 50.8 318 test.phys biasWrapper(compt) - 6 477 -140 112 0.0638 0 88.9 406 test.phys biasWrapper(compt) - 7 461 -163 118 0.059 0 28.3 435 test.phys biasWrapper(compt) - 8 355 -191 0 0.059 0 161 596 World Transportation - 9 -8.65e+03 -2.63e+03 -1e+04 0.059 0 1.37e+04 1.43e+04 OutOfWorld Transportation + 0 -7.3 -3.78 174 0.0768 0 0 0 test.phys initStep + 1 -17.2 1.78 200 0.0768 0 28.2 28.2 World Transportation + 2 -3.79e+03 2.11e+03 1e+04 0.0768 0 1.07e+04 1.07e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 14 +* 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 461 -163 118 0.00477 0 0 0 test.phys initStep - 1 461 -163 118 0 0.00477 0.000993 0.000993 test.phys eIoni + 0 -3.11 -1.94 145 14.9 0 0 0 test.phys initStep + 1 -6.4 -4.25 200 14.9 0 55.2 55.2 World Transportation + 2 -593 -416 1e+04 14.9 0 9.83e+03 9.88e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 14 +* 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 477 -140 112 0.00243 0 0 0 test.phys initStep - 1 477 -140 112 0 0.00243 0.000324 0.000324 test.phys eIoni + 0 -2.75 -1.66 140 44.9 0 0 0 test.phys initStep + 1 -10.3 -5.46 200 44.9 0 60.6 60.6 World Transportation + 2 -1.25e+03 -625 1e+04 44.9 0 9.9e+03 9.96e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 14 +* 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 494 -93.6 37.9 0.0018 0 0 0 test.phys initStep - 1 494 -93.6 37.9 0 0.0018 0.000201 0.000201 test.phys eIoni + 0 0.239 -0.0948 96.8 0.239 0 0 0 test.phys initStep + 1 0.483 -4.35 166 0.231 0 69.3 69.3 test.phys biasWrapper(compt) + 2 -13.1 -1.93 200 0.231 0 36.7 106 World Transportation + 3 -3.92e+03 696 1e+04 0.231 0 1.06e+04 1.07e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 14 +* 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 475 -57.7 7.23 0.00964 0 0 0 test.phys initStep - 1 475 -57.7 7.23 0 0.00964 0.00334 0.00334 test.phys eIoni + 0 -0.00976 0.0962 81.1 0.00736 0 0 0 test.phys initStep + 1 0.0244 0.117 83 0 0.000403 1.92 1.92 test.phys biasWrapper(phot) ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 14 +* 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 355 -30.1 96.5 0.0266 0 0 0 test.phys initStep - 1 355 -30.1 96.6 0 0.0266 0.02 0.02 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 359 -27.3 94.4 0.0176 0 0 0 test.phys initStep - 1 359 -27.3 94.4 0 0.0176 0.00961 0.00961 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 353 56.8 136 0.0487 0 0 0 test.phys initStep - 1 353 56.9 136 0 0.0487 0.0578 0.0578 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 368 53 139 2.33 0 0 0 test.phys initStep - 1 490 -36.3 84.6 0.37 0 161 161 test.phys biasWrapper(compt) - 2 504 -22.7 107 0.311 0 29.7 190 test.phys biasWrapper(compt) - 3 578 -14.8 135 0.157 0 79.4 270 test.phys biasWrapper(compt) - 4 554 -37.2 145 0.154 0 34.7 304 test.phys biasWrapper(compt) - 5 510 -54.6 158 0.154 0 48.5 353 test.phys biasWrapper(compt) - 6 287 -125 200 0.154 0 238 591 World Transportation - 7 -1e+04 -3.39e+03 2.15e+03 0.154 0 1.1e+04 1.16e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 510 -54.6 158 0.000253 0 0 0 test.phys initStep - 1 510 -54.6 158 0 0.000253 1.61e-05 1.61e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 554 -37.2 145 0.00293 0 0 0 test.phys initStep - 1 554 -37.2 145 0 0.00293 0.000439 0.000439 test.phys eIoni - -********************************************************************************************************* -* 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 578 -14.8 135 0.154 0 0 0 test.phys initStep - 1 578 -14.8 135 0 0.154 0.409 0.409 test.phys eIoni - -********************************************************************************************************* -* 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 504 -22.7 107 0.0592 0 0 0 test.phys initStep - 1 504 -22.7 107 0 0.0592 0.0811 0.0811 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 490 -36.3 84.6 1.96 0 0 0 test.phys initStep - 1 493 -38.7 82.9 1.42 0.534 4.31 4.31 test.phys eIoni - 2 493 -40.8 80.9 1.02 0.4 3.42 7.73 test.phys eIoni - 3 493 -38.6 80.3 0.626 0.396 2.75 10.5 test.phys eIoni - 4 492 -37.9 81.2 0.35 0.276 2.03 12.5 test.phys eIoni - 5 492 -38.6 81 0.123 0.227 1.35 13.9 test.phys eIoni - 6 492 -38.7 80.9 0 0.123 0.284 14.2 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 136 0.156 0 0 0 test.phys initStep - 1 -7.29 9.24 158 0.113 0 24.8 24.8 test.phys biasWrapper(compt) - 2 -8.97 -9.94 161 0.0795 0 19.4 44.2 test.phys biasWrapper(compt) - 3 -12.9 10.6 151 0.0765 0 22.9 67.1 test.phys biasWrapper(compt) - 4 36.6 108 0 0.0765 0 187 254 World Transportation - 5 3.31e+03 6.57e+03 -1e+04 0.0765 0 1.23e+04 1.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.9 10.6 151 0.00293 0 0 0 test.phys initStep - 1 -12.9 10.6 151 0 0.00293 0.00044 0.00044 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.97 -9.94 161 0.0338 0 0 0 test.phys initStep - 1 -8.97 -9.95 161 0 0.0338 0.0304 0.0304 test.phys eIoni - -********************************************************************************************************* -* 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 -7.29 9.24 158 0.0432 0 0 0 test.phys initStep - 1 -7.29 9.26 158 0 0.0432 0.0468 0.0468 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 136 0.913 0 0 0 test.phys initStep - 1 148 -24.5 0 0.913 0 203 203 World Transportation - 2 1e+04 -1.65e+03 -9.06e+03 0.913 0 1.35e+04 1.37e+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 0 136 2.02 0 0 0 test.phys initStep - 1 -137 -40.3 13.1 2.01 0 189 189 test.phys biasWrapper(compt) - 2 -151 -45.5 0 2.01 0 20.3 209 World Transportation - 3 -1e+04 -3.55e+03 -8.85e+03 2.01 0 1.37e+04 1.39e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = C13, Track ID = 15, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 368 53 139 0.699 0 0 0 test.phys initStep - 1 368 53 139 0 0.699 0.00293 0.00293 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 368 53 139 4.39 0 0 0 test.phys initStep - 1 368 53.1 139 2.68 1.71 0.222 0.222 test.phys hIoni - 2 368 53.2 139 0.801 1.88 0.15 0.371 test.phys hIoni - 3 368 53.2 139 0 0.801 0.0249 0.396 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 10, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 16.4 -0.567 132 0.198 0 0 0 test.phys initStep - 1 16.4 -0.568 132 0 0.198 0.00175 0.00175 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = C12, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 136 1.17 0 0 0 test.phys initStep - 1 -0.00243 0.000255 136 0 1.17 0.00314 0.00314 test.phys ionIoni - -********************************************************************************************************* -* 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 136 7.84 0 0 0 test.phys initStep - 1 0.19 0.0418 137 6.16 1.68 0.377 0.377 test.phys hIoni - 2 0.339 0.0736 137 4.56 1.6 0.296 0.673 test.phys hIoni - 3 0.45 0.1 137 2.95 1.61 0.229 0.902 test.phys hIoni - 4 0.536 0.119 137 1.12 1.83 0.163 1.06 test.phys hIoni - 5 0.558 0.126 137 0.0282 1.09 0.0421 1.11 test.phys hIoni - 6 0.559 0.126 137 0.00272 0.0255 0.00105 1.11 test.phys hIoni - 7 0.559 0.126 137 0 0.00272 0.000323 1.11 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -137 -40.3 13.1 0.00739 0 0 0 test.phys initStep - 1 -137 -40.3 13.1 0 0.00739 0.0021 0.0021 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 - -********************************************************************************************************* -* 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 159 0 0 159 659 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* 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 159 2.1 0 0 0 test.phys initStep - 1 13.7 269 128 1.75 0 271 271 test.phys biasWrapper(hadElastic) - 2 -42.9 259 176 1.33 0 75.3 346 test.phys biasWrapper(hadElastic) - 3 -9.41 242 144 1.29 0.0492 49.3 395 test.phys biasWrapper(hadElastic) - 4 -7.58 239 120 1.13 0 24.6 420 test.phys biasWrapper(hadElastic) - 5 2.54 288 108 0.887 0 50.9 471 test.phys biasWrapper(hadElastic) - 6 133 109 200 0.887 0 239 710 World Transportation - 7 7.53e+03 -1e+04 5.39e+03 0.887 0 1.36e+04 1.43e+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 159 54.6 0 0 0 test.phys initStep - 1 45.9 -38.8 189 54.3 0 66.8 66.8 test.phys biasWrapper(hadElastic) - 2 54.9 -52.4 200 54.3 0 20 86.8 World Transportation - 3 6.6e+03 -1e+04 8.57e+03 54.3 0 1.46e+04 1.46e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 159 1.05 0 0 0 test.phys initStep - 1 -22.7 100 179 0.295 0 104 104 test.phys biasWrapper(compt) - 2 -43.4 82.4 200 0.295 0 34.4 139 World Transportation - 3 -9.64e+03 -8.11e+03 1e+04 0.295 0 1.6e+04 1.61e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -22.7 100 179 0.756 0 0 0 test.phys initStep - 1 -22.8 102 179 0.456 0.3 2.28 2.28 test.phys eIoni - 2 -22.4 103 179 0.195 0.261 1.66 3.94 test.phys eIoni - 3 -22.5 103 179 0 0.195 0.601 4.55 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 159 1.78 0 0 0 test.phys initStep - 1 -37.8 -41.4 102 1.17 0 80.5 80.5 test.phys biasWrapper(compt) - 2 -29.4 -115 0 1.17 0 126 206 World Transportation - 3 797 -7.36e+03 -1e+04 1.17 0 1.24e+04 1.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 15, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.9 -38.8 189 0.347 0 0 0 test.phys initStep - 1 45.9 -38.8 189 0 0.347 0.00214 0.00214 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 14, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.54 288 108 0.245 0 0 0 test.phys initStep - 1 2.54 288 108 0 0.245 0.00191 0.00191 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 13, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.58 239 120 0.154 0 0 0 test.phys initStep - 1 -7.58 239 120 0 0.154 0.00153 0.00153 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 12, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.9 259 176 0.419 0 0 0 test.phys initStep - 1 -42.9 259 176 0 0.419 0.00226 0.00226 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 11, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.7 269 128 0.345 0 0 0 test.phys initStep - 1 13.7 269 128 0 0.345 0.00214 0.00214 test.phys ionIoni - -********************************************************************************************************* -* 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 159 6.83 0 0 0 test.phys initStep - 1 -0.00941 0.0106 159 5.45 1.38 0.0251 0.0251 test.phys ionIoni - 2 -0.0176 0.0201 159 3.98 1.46 0.022 0.0471 test.phys ionIoni - 3 -0.0249 0.0281 159 2.36 1.62 0.0188 0.0659 test.phys ionIoni - 4 -0.0304 0.0339 159 0.206 2.15 0.0138 0.0797 test.phys ionIoni - 5 -0.0313 0.0352 159 0 0.206 0.0027 0.0824 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 159 4.95 0 0 0 test.phys initStep - 1 -0.0208 -0.00172 159 3.41 1.54 0.021 0.021 test.phys ionIoni - 2 -0.038 -0.00276 159 1.71 1.7 0.0173 0.0383 test.phys ionIoni - 3 -0.0483 -0.00362 159 0.168 1.55 0.0104 0.0487 test.phys ionIoni - 4 -0.0507 -0.0035 159 0 0.168 0.00245 0.0511 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 159 3.78 0 0 0 test.phys initStep - 1 0.0101 0.0122 159 2.14 1.64 0.0183 0.0183 test.phys ionIoni - 2 0.0172 0.0208 159 0.367 1.78 0.0128 0.0311 test.phys ionIoni - 3 0.0192 0.0232 159 0 0.367 0.0035 0.0346 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 159 5.09 0 0 0 test.phys initStep - 1 -0.109 -0.169 159 3.48 1.61 0.25 0.25 test.phys hIoni - 2 -0.187 -0.298 160 1.81 1.67 0.186 0.436 test.phys hIoni - 3 -0.222 -0.359 160 0 1.81 0.0907 0.526 test.phys hIoni + 0 0.0244 0.117 83 0.00695 0 0 0 test.phys initStep + 1 0.0251 0.117 83 0 0.00695 0.00189 0.00189 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 -37.8 -41.4 102 0.616 0 0 0 test.phys initStep - 1 -39.2 -41.8 101 0.28 0.335 2.01 2.01 test.phys eIoni - 2 -39.7 -41.9 101 0.0415 0.239 1.06 3.07 test.phys eIoni - 3 -39.7 -41.9 101 0 0.0415 0.0435 3.11 test.phys eIoni + 0 0.483 -4.35 166 0.00864 0 0 0 test.phys initStep + 1 0.484 -4.35 166 0 0.00864 0.00276 0.00276 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 91.4 0 0 91.4 591 test.phys biasWrapper(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 91.4 22.2 0 0 0 test.phys initStep + 1 -4.55 -3.09 128 17.3 4.93 36.8 36.8 test.phys eIoni + 2 -13.7 0.397 155 13.6 3.69 29 65.8 test.phys eIoni + 3 -19.6 9.9 174 10.6 2.92 23.1 88.9 test.phys eIoni + 4 -20.6 11.8 177 9.87 0.551 3.78 92.7 test.phys eIoni + 5 -26.1 13.7 193 7.42 2.46 17.2 110 test.phys eIoni + 6 -29.4 17.6 200 6.43 0.983 8.47 118 World Transportation + 7 -6.86e+03 5.23e+03 1e+04 6.43 3.75e-22 1.3e+04 1.31e+04 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 -20.6 11.8 177 0.224 0 0 0 test.phys initStep + 1 -20.9 11.7 177 0 0.224 0.747 0.747 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 91.4 76.8 0 0 0 test.phys initStep + 1 -0.0686 0.0193 95 75.6 0.436 3.61 3.61 test.phys eIoni + 2 -0.274 0.105 100 74.8 0.861 5.4 9.01 test.phys eBrem + 3 -0.803 0.299 108 72.7 0.921 8.05 17.1 test.phys eIoni + 4 -0.818 0.307 109 39.5 0.0301 0.183 17.2 test.phys eBrem + 5 -2.91 1.06 127 29.2 2.26 18.9 36.1 test.phys eIoni + 6 -5.48 1.07 152 24.3 3.37 25.2 61.3 test.phys eBrem + 7 -6.39 1.64 161 19.1 1.13 8.62 69.9 test.phys eBrem + 8 -6.4 1.66 161 18.7 0.0136 0.113 70 test.phys eIoni + 9 -9.45 8.78 183 15.6 2.76 23.8 93.8 test.phys eIoni + 10 -10.5 9.4 188 13.9 0.515 4.34 98.2 test.phys eIoni + 11 -15 10.1 200 12.3 1.58 13.4 112 World Transportation + 12 -616 4.83e+03 1e+04 12.3 3.34e-22 1.09e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -10.5 9.4 188 1.26 0 0 0 test.phys initStep + 1 -11.4 11.3 189 0.918 0.341 3.15 3.15 test.phys eIoni + 2 -12.7 12.8 190 0.567 0.352 2.57 5.72 test.phys eIoni + 3 -13.7 13.6 190 0.16 0.406 1.91 7.63 test.phys eIoni + 4 -13.7 13.4 190 0 0.16 0.438 8.07 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 -9.45 8.78 183 0.26 0 0 0 test.phys initStep + 1 -9.33 9.21 184 0 0.26 0.945 0.945 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 -6.4 1.66 161 0.468 0 0 0 test.phys initStep + 1 -7.09 1.12 162 0.245 0.223 1.69 1.69 test.phys eIoni + 2 -6.81 1.37 161 0 0.245 0.862 2.56 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 -2.91 1.06 127 8.1 0 0 0 test.phys initStep + 1 -0.0214 3.16 140 6.26 1.64 14 14 test.phys eBrem + 2 -0.0285 3.84 151 4.9 1.37 11.3 25.3 test.phys eIoni + 3 -3.38 5.81 159 3.9 0.995 9.11 34.4 test.phys eIoni + 4 -4.17 7.87 166 2.96 0.941 7.49 41.9 test.phys eIoni + 5 -3.34 9.76 171 2.25 0.713 5.96 47.9 test.phys eIoni + 6 -3.17 11 172 1.99 0.194 2.01 49.9 test.phys eBrem + 7 -2.4 12.7 176 0.923 0.402 4.1 54 test.phys eIoni + 8 -1.53 14.5 176 0.647 0.277 2.58 56.6 test.phys eIoni + 9 -0.815 15.7 175 0.323 0.323 2.07 58.7 test.phys eIoni + 10 -0.95 16.3 175 0 0.323 1.25 59.9 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.4 12.7 176 0.663 0 0 0 test.phys initStep + 1 -2.68 13.3 177 0.431 0.231 2.1 2.1 test.phys eIoni + 2 -2.8 12.4 177 0.167 0.265 1.6 3.71 test.phys eIoni + 3 -2.63 12.4 177 0 0.167 0.467 4.17 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.803 0.299 108 1.12 0 0 0 test.phys initStep + 1 0.406 1.41 110 0.788 0.331 2.91 2.91 test.phys eIoni + 2 1.85 1.58 111 0.497 0.29 2.34 5.25 test.phys eIoni + 3 2.1 2.18 112 0.27 0.228 1.76 7.01 test.phys eIoni + 4 2.17 2.28 113 0 0.27 0.999 8.01 test.phys eIoni + +********************************************************************************************************* +* 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.0686 0.0193 95 0.707 0 0 0 test.phys initStep + 1 0.933 -0.722 96.1 0.422 0.285 2.19 2.19 test.phys eIoni + 2 1 -1.1 97 0.14 0.281 1.58 3.76 test.phys eIoni + 3 1.1 -1.1 96.8 0 0.14 0.353 4.12 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.17 11 172 0.0653 0 0 0 test.phys initStep + 1 17.7 46.9 200 0.0653 0 49.9 49.9 World Transportation + 2 5.81e+03 1e+04 7.89e+03 0.0653 0 1.38e+04 1.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0214 3.16 140 0.194 0 0 0 test.phys initStep + 1 -1.52 -3.08 200 0.194 0 60 60 World Transportation + 2 -248 -1.03e+03 1e+04 0.194 0 9.86e+03 9.92e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -6.39 1.64 161 4.04 0 0 0 test.phys initStep + 1 -8.58 7.75 200 4.04 0 39.6 39.6 World Transportation + 2 -556 1.54e+03 1e+04 4.04 0 9.93e+03 9.97e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.48 1.07 152 1.47 0 0 0 test.phys initStep + 1 -11.5 3.86 191 1.15 0 39.2 39.2 test.phys biasWrapper(compt) + 2 -14.4 0.437 200 1.15 0 10.1 49.3 World Transportation + 3 -3.18e+03 -3.72e+03 1e+04 1.15 0 1.09e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -11.5 3.86 191 0.324 0 0 0 test.phys initStep + 1 -11.4 4.37 191 0.0797 0.245 1.26 1.26 test.phys eIoni + 2 -11.4 4.39 191 0 0.0797 0.136 1.39 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 -0.818 0.307 109 33.2 0 0 0 test.phys initStep + 1 -7.64 3.5 196 0 0 87.5 87.5 test.phys biasWrapper(conv) + +********************************************************************************************************* +* 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.274 0.105 100 0.00513 0 0 0 test.phys initStep + 1 -0.298 0.13 101 0 0.000403 0.725 0.725 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 21, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.64 3.5 196 28 0 0 0 test.phys initStep + 1 -8.29 3.54 200 27.4 0.603 4.27 4.27 World Transportation + 2 -828 186 1e+04 27.4 3.23e-22 9.84e+03 9.84e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.298 0.13 101 0.00473 0 0 0 test.phys initStep + 1 -0.298 0.13 101 0 0.00473 0.000978 0.000978 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.64 3.5 196 4.13 0 0 0 test.phys initStep + 1 -5.86 4.36 200 3.55 0.585 4.81 4.81 World Transportation + 2 5.45e+03 1.79e+03 1e+04 3.55 3.11e-22 1.14e+04 1.14e+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 87.7 3.89 0 87.7 588 test.phys biasWrapper(compt) + 2 11.8 54.2 187 2.33 0 114 702 test.phys biasWrapper(compt) + 3 13.5 55.2 200 2.33 0 12.8 715 World Transportation + 4 1.35e+03 782 1e+04 2.33 0 9.92e+03 1.06e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 11.8 54.2 187 1.56 0 0 0 test.phys initStep + 1 11.9 56.9 189 1.14 0.422 3.65 3.65 test.phys eIoni + 2 11.7 57.7 191 0.817 0.319 2.94 6.59 test.phys eIoni + 3 12.6 58.3 193 0.505 0.312 2.39 8.98 test.phys eIoni + 4 13.1 58.9 194 0.271 0.235 1.78 10.8 test.phys eIoni + 5 12.9 58.8 194 0.00587 0.265 1.01 11.8 test.phys eIoni + 6 12.9 58.8 194 0 0.00587 0.00141 11.8 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 87.7 96.1 0 0 0 test.phys initStep + 1 -0.000747 -0.00296 87.9 96.1 0.0145 0.14 0.14 test.phys eBrem + 2 1.38 0.518 152 81.8 7.49 64.1 64.3 test.phys eIoni + 3 1.48 0.485 160 80.5 0.968 8.04 72.3 test.phys eIoni + 4 1.16 0.403 200 75.5 5 40 112 World Transportation + 5 42.2 -231 1e+04 75.5 3.52e-22 9.8e+03 9.92e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.48 0.485 160 0.358 0 0 0 test.phys initStep + 1 0.793 0.544 160 0.0953 0.263 1.38 1.38 test.phys eIoni + 2 0.861 0.504 160 0 0.0953 0.184 1.57 test.phys eIoni + +********************************************************************************************************* +* 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 1.38 0.518 152 6.76 0 0 0 test.phys initStep + 1 -0.349 -3.51 163 5.31 1.45 12.1 12.1 test.phys eIoni + 2 0.768 -10.2 170 4.07 1.24 9.77 21.9 test.phys eIoni + 3 1.2 -10.5 171 3.92 0.107 1.22 23.1 test.phys eBrem + 4 2.84 -10.8 174 3.5 0.392 3.44 26.5 test.phys eBrem + 5 5.04 -12 178 2.88 0.615 4.79 31.3 test.phys eBrem + 6 9.83 -13.7 180 1.87 1.01 5.82 37.2 test.phys eIoni + 7 10.9 -14 180 1.38 0.104 1.12 38.3 test.phys eIoni + 8 13.2 -14.9 182 0.931 0.451 3.36 41.6 test.phys eIoni + 9 14.2 -16.4 183 0.607 0.324 2.59 44.2 test.phys eIoni + 10 15.4 -16.3 182 0.346 0.261 2 46.2 test.phys eIoni + 11 15.8 -16.3 183 0.077 0.269 1.34 47.6 test.phys eIoni + 12 15.8 -16.3 183 0 0.077 0.128 47.7 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 10.9 -14 180 0.383 0 0 0 test.phys initStep + 1 11.3 -14.4 180 0.0614 0.309 0.952 0.952 test.phys eBrem + 2 11.3 -14.4 180 0 0.0614 0.0864 1.04 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 11.3 -14.4 180 0.0119 0 0 0 test.phys initStep + 1 7.53 -19.3 183 0 0.000403 6.99 6.99 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.04 -12 178 0.00356 0 0 0 test.phys initStep + 1 5.09 -12 178 0 0.000403 0.0533 0.0533 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.84 -10.8 174 0.0277 0 0 0 test.phys initStep + 1 19.7 -28.3 200 0.0277 0 35.9 35.9 World Transportation + 2 6.3e+03 -6.52e+03 1e+04 0.0277 0 1.33e+04 1.34e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.2 -10.5 171 0.042 0 0 0 test.phys initStep + 1 11.5 -14.7 193 0.0395 0 25.1 25.1 test.phys biasWrapper(compt) + 2 2.82 -15.2 200 0.0395 0 11 36.1 World Transportation + 3 -1e+04 -661 8.05e+03 0.0395 0 1.27e+04 1.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.000747 -0.00296 87.9 0.00587 0 0 0 test.phys initStep + 1 -0.0137 -0.0219 89 0 0.000403 1.09 1.09 test.phys biasWrapper(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.0137 -0.0219 89 0.00546 0 0 0 test.phys initStep + 1 -0.0131 -0.0218 89 0 0.00546 0.00125 0.00125 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 11.5 -14.7 193 0.00247 0 0 0 test.phys initStep + 1 11.5 -14.7 193 0 0.00247 0.000332 0.000332 test.phys eIoni + +********************************************************************************************************* +* 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 5.09 -12 178 0.00315 0 0 0 test.phys initStep + 1 5.09 -12 178 0 0.00315 0.000496 0.000496 test.phys eIoni + +********************************************************************************************************* +* 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 7.53 -19.3 183 0.0115 0 0 0 test.phys initStep + 1 7.53 -19.3 183 0 0.0115 0.00456 0.00456 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 9.06 0 0 9.06 509 test.phys biasWrapper(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 9.06 75.2 0 0 0 test.phys initStep + 1 0.0342 -0.122 24.4 73.2 1.97 15.3 15.3 test.phys eBrem + 2 -1.02 0.851 73.9 66.4 6.79 49.6 64.9 test.phys eBrem + 3 -1.98 1.37 85.9 62.3 1.81 12.1 77 test.phys eIoni + 4 -2.04 1.33 90.1 61.7 0.519 4.11 81.1 test.phys eBrem + 5 -5.43 1.17 146 55 6.68 55.8 137 test.phys eBrem + 6 -6.11 0.636 149 54.6 0.36 3.38 140 test.phys eBrem + 7 -9.13 -1.47 162 49.1 1.75 13.9 154 test.phys eBrem + 8 -14.1 -4.81 183 44.7 2.99 21.3 175 test.phys eIoni + 9 -17.4 -8.84 200 42.5 2.23 18.1 193 World Transportation + 10 -1.47e+03 -2.01e+03 1e+04 42.5 3.46e-22 1.01e+04 1.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.1 -4.81 183 1.36 0 0 0 test.phys initStep + 1 -16.1 -4.22 185 0.9 0.463 3.32 3.32 test.phys eIoni + 2 -16.9 -5.66 186 0.595 0.305 2.54 5.86 test.phys eIoni + 3 -15.8 -6.19 187 0.311 0.283 1.97 7.83 test.phys eIoni + 4 -16 -6.52 187 0.0475 0.264 1.2 9.04 test.phys eIoni + 5 -16 -6.52 187 0 0.0475 0.0553 9.09 test.phys eIoni + +********************************************************************************************************* +* 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.98 1.37 85.9 2.27 0 0 0 test.phys initStep + 1 -4.31 2.42 89.5 1.69 0.576 4.82 4.82 test.phys eIoni + 2 -6.31 5.1 90.3 1.3 0.394 3.87 8.7 test.phys eIoni + 3 -7.75 7.43 89.9 0.909 0.39 3.22 11.9 test.phys eIoni + 4 -9.06 8.87 90.6 0.61 0.299 2.55 14.5 test.phys eIoni + 5 -9.8 9.47 90.5 0.457 0.153 1.12 15.6 test.phys eBrem + 6 -10.7 9.73 90 0.173 0.284 1.67 17.3 test.phys eIoni + 7 -10.6 9.94 90.1 0 0.173 0.496 17.7 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 9.06 23.8 0 0 0 test.phys initStep + 1 2.37 -7.23 47.5 19.1 4.67 39.3 39.3 test.phys eIoni + 2 2.42 -7.29 55.7 17.9 0.929 8.17 47.4 test.phys eBrem + 3 2.26 -7.93 64.6 16.6 1.01 8.94 56.4 test.phys eIoni + 4 1.84 -8.14 66.8 16 0.374 2.24 58.6 test.phys eIoni + 5 -2.26 -16.2 91.9 12.3 3.64 26.8 85.5 test.phys eIoni + 6 -1.74 -17.3 112 9.5 2.84 21 107 test.phys eIoni + 7 1.01 -19.5 128 7.32 2.18 16.5 123 test.phys eIoni + 8 1.28 -18.7 133 6.42 0.539 5.11 128 test.phys eIoni + 9 4.94 -16 143 4.88 1.54 11.6 140 test.phys eIoni + 10 4.9 -13.6 152 3.52 1.36 9.08 149 test.phys eIoni + 11 4.77 -13.6 152 3.4 0.0161 0.148 149 test.phys eBrem + 12 -0.399 -10.2 152 2.24 1.16 6.67 156 test.phys eIoni + 13 -3.16 -6.83 153 1.67 0.574 4.78 160 test.phys eIoni + 14 -5.74 -5.88 155 1.09 0.58 3.83 164 test.phys eIoni + 15 -7.34 -5.51 156 0.718 0.37 2.86 167 test.phys eIoni + 16 -8.36 -6.27 158 0.438 0.279 2.21 169 test.phys eIoni + 17 -8.26 -6.59 159 0.138 0.3 1.62 171 test.phys eIoni + 18 -8.19 -6.65 159 0 0.138 0.342 171 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 1.28 -18.7 133 0.357 0 0 0 test.phys initStep + 1 0.975 -19.1 134 0.0111 0.346 1.38 1.38 test.phys eIoni + 2 0.975 -19.1 134 0 0.0111 0.00426 1.38 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 1.84 -8.14 66.8 0.24 0 0 0 test.phys initStep + 1 1.5 -7.95 67 0 0.24 0.834 0.834 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 2.26 -7.93 64.6 0.242 0 0 0 test.phys initStep + 1 2.19 -8.33 64.7 0 0.242 0.848 0.848 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 4.77 -13.6 152 0.106 0 0 0 test.phys initStep + 1 1.53 -10.9 154 0.0985 0 5.12 5.12 test.phys biasWrapper(compt) + 2 -70.7 -20.3 168 0.0974 0 74.1 79.2 test.phys biasWrapper(compt) + 3 -214 12.8 200 0.0974 0 151 230 World Transportation + 4 -1e+04 2.27e+03 2.36e+03 0.0974 0 1.03e+04 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -70.7 -20.3 168 0.00114 0 0 0 test.phys initStep + 1 -70.7 -20.3 168 0 0.00114 0.000101 0.000101 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.53 -10.9 154 0.00696 0 0 0 test.phys initStep + 1 1.53 -10.9 154 0 0.00696 0.0019 0.0019 test.phys eIoni + +********************************************************************************************************* +* 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 2.42 -7.29 55.7 0.349 0 0 0 test.phys initStep + 1 3.99 -7.94 159 0.179 0 103 103 test.phys biasWrapper(compt) + 2 224 26.9 60 0.178 0 244 347 test.phys biasWrapper(compt) + 3 312 36.4 33.8 0.136 0 92.1 439 test.phys biasWrapper(compt) + 4 313 24.4 25.1 0.0966 0 14.9 454 test.phys biasWrapper(compt) + 5 185 38.6 200 0.0966 0 217 671 World Transportation + 6 -6.99e+03 836 1e+04 0.0966 0 1.22e+04 1.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 313 24.4 25.1 0.0399 0 0 0 test.phys initStep + 1 313 24.4 25.1 0 0.0399 0.0406 0.0406 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 312 36.4 33.8 0.0419 0 0 0 test.phys initStep + 1 312 36.5 33.8 0 0.0419 0.0444 0.0444 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 224 26.9 60 0.00058 0 0 0 test.phys initStep + 1 224 26.9 60 0 0.00058 4.02e-05 4.02e-05 test.phys eIoni + +********************************************************************************************************* +* 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 3.99 -7.94 159 0.17 0 0 0 test.phys initStep + 1 3.91 -7.96 159 0 0.17 0.483 0.483 test.phys eIoni + +********************************************************************************************************* +* 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 -9.13 -1.47 162 3.83 0 0 0 test.phys initStep + 1 -16.8 -5.84 200 3.83 0 38.7 38.7 World Transportation + 2 -2.01e+03 -1.14e+03 1e+04 3.83 0 1.01e+04 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -6.11 0.636 149 0.0319 0 0 0 test.phys initStep + 1 -15.8 -6.52 200 0.0319 0 52.5 52.5 World Transportation + 2 -1.87e+03 -1.38e+03 1e+04 0.0319 0 1.01e+04 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.04 1.33 90.1 0.0738 0 0 0 test.phys initStep + 1 -0.501 -3.8 200 0.0738 0 110 110 World Transportation + 2 136 -461 1e+04 0.0738 0 9.81e+03 9.92e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -1.02 0.851 73.9 0.0154 0 0 0 test.phys initStep + 1 -1.11 0.94 75.1 0 0.000403 1.24 1.24 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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.0342 -0.122 24.4 0.0185 0 0 0 test.phys initStep + 1 -2.12 -1.63 49.5 0.0178 0 25.2 25.2 test.phys biasWrapper(compt) + 2 -0.282 -1.16 49.5 0 0.000403 1.9 27.1 test.phys biasWrapper(phot) + +********************************************************************************************************* +* 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 -0.282 -1.16 49.5 0.0174 0 0 0 test.phys initStep + 1 -0.279 -1.16 49.5 0 0.0174 0.00939 0.00939 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 -2.12 -1.63 49.5 0.000699 0 0 0 test.phys initStep + 1 -2.12 -1.63 49.5 0 0.000699 5.1e-05 5.1e-05 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 -1.11 0.94 75.1 0.015 0 0 0 test.phys initStep + 1 -1.11 0.937 75.1 0 0.015 0.00724 0.00724 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 0.29 14.4 0 0.29 500 test.phys biasWrapper(compt) + 2 -49.7 -8.09 200 14.4 0 206 706 World Transportation + 3 -2.49e+03 -405 1e+04 14.4 0 1.01e+04 1.08e+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 0.29 85.6 0 0 0 test.phys initStep + 1 0.179 0.0635 10.1 84.2 1.21 9.84 9.84 test.phys eBrem + 2 1.22 -0.987 36.1 75.7 3.01 26 35.9 test.phys eBrem + 3 0.0303 -0.682 68.2 71.6 3.83 32.1 68 test.phys eIoni + 4 -1.8 -1.24 95.9 56.8 3.26 27.8 95.7 test.phys eBrem + 5 -2.54 -2.65 119 53.6 2.88 23.3 119 test.phys eIoni + 6 -3.37 -4.46 134 51.5 2.07 15.3 134 test.phys eBrem + 7 -3.65 -4.1 154 49.2 2.18 19.5 154 test.phys eBrem + 8 -4.27 -4.16 171 47 2.19 17 171 test.phys eBrem + 9 -5.73 -2.75 200 43.2 3.78 29.5 200 World Transportation + 10 -415 1.01e+03 1e+04 43.2 3.38e-22 9.86e+03 1.01e+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 -2.54 -2.65 119 0.343 0 0 0 test.phys initStep + 1 -2.59 -2.05 120 0 0.343 1.33 1.33 test.phys eIoni + +********************************************************************************************************* +* 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.0303 -0.682 68.2 0.261 0 0 0 test.phys initStep + 1 -0.113 -0.269 68.4 0 0.261 0.952 0.952 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.27 -4.16 171 0.0196 0 0 0 test.phys initStep + 1 -4.63 -3.49 178 0 0.000403 7.16 7.16 test.phys biasWrapper(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 -4.63 -3.49 178 0.0192 0 0 0 test.phys initStep + 1 -4.63 -3.49 178 0 0.0192 0.0112 0.0112 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.65 -4.1 154 0.0802 0 0 0 test.phys initStep + 1 -3.36 -4.74 200 0.0802 0 46.3 46.3 World Transportation + 2 59.5 -141 1e+04 0.0802 0 9.8e+03 9.85e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -3.37 -4.46 134 0.0454 0 0 0 test.phys initStep + 1 -4 -3.77 152 0.0447 0 17.5 17.5 test.phys biasWrapper(compt) + 2 12.8 -26.2 200 0.0447 0 55.7 73.3 World Transportation + 3 3.43e+03 -4.59e+03 1e+04 0.0447 0 1.13e+04 1.14e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -4 -3.77 152 0.000649 0 0 0 test.phys initStep + 1 -4 -3.77 152 0 0.000649 4.64e-05 4.64e-05 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 -1.8 -1.24 95.9 11.5 0 0 0 test.phys initStep + 1 -9.96 -7.21 200 11.5 0 105 105 World Transportation + 2 -778 -569 1e+04 11.5 0 9.85e+03 9.95e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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 1.22 -0.987 36.1 5.48 0 0 0 test.phys initStep + 1 1.84 -1.59 200 5.48 0 164 164 World Transportation + 2 38.9 -37.5 1e+04 5.48 0 9.8e+03 9.96e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.179 0.0635 10.1 0.222 0 0 0 test.phys initStep + 1 1.91 -0.559 96 0.135 0 85.9 85.9 test.phys biasWrapper(compt) + 2 102 56.4 31.6 0.13 0 132 218 test.phys biasWrapper(compt) + 3 113 77 3.55e-15 0.13 0 39.3 257 World Transportation + 4 3.6e+03 6.6e+03 -1e+04 0.13 0 1.24e+04 1.27e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 102 56.4 31.6 0.00581 0 0 0 test.phys initStep + 1 102 56.4 31.6 0 0.00581 0.00139 0.00139 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.91 -0.559 96 0.0868 0 0 0 test.phys initStep + 1 1.89 -0.575 96.1 0 0.0868 0.157 0.157 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 163 0 0 163 663 test.phys biasWrapper(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 163 43.2 0 0 0 test.phys initStep + 1 -0.783 -1.4 189 33.3 3.26 26.1 26.1 test.phys eBrem + 2 -0.71 -1.37 190 33 0.133 1.28 27.3 test.phys eBrem + 3 -0.657 -1.34 191 32.7 0.079 0.747 28.1 test.phys eIoni + 4 0.053 -0.919 200 31.7 0.997 8.86 36.9 World Transportation + 5 1.26e+03 60.3 1e+04 31.7 3.29e-22 9.88e+03 9.92e+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 -0.657 -1.34 191 0.224 0 0 0 test.phys initStep + 1 -0.835 -1.04 191 0 0.224 0.748 0.748 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 163 55.8 0 0 0 test.phys initStep + 1 0.484 -0.172 200 51.3 4.51 36.9 36.9 World Transportation + 2 172 -947 1e+04 51.3 3.42e-22 9.85e+03 9.88e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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.71 -1.37 190 0.199 0 0 0 test.phys initStep + 1 -0.0983 -0.938 200 0.199 0 9.58 9.58 World Transportation + 2 627 440 1e+04 0.199 0 9.83e+03 9.84e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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.783 -1.4 189 6.59 0 0 0 test.phys initStep + 1 -0.433 -1.06 200 6.59 0 10.8 10.8 World Transportation + 2 316 310 1e+04 6.59 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 113 0 0 113 613 test.phys biasWrapper(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 113 71.3 0 0 0 test.phys initStep + 1 -0.371 -0.258 127 69.3 1.8 14.3 14.3 test.phys eBrem + 2 -0.434 -0.231 129 68.7 0.286 1.79 16.1 test.phys eBrem + 3 -0.547 -0.269 140 66.8 1.29 11.2 27.3 test.phys eBrem + 4 -1.14 -0.615 198 59.2 6.77 58.6 85.9 test.phys eIoni + 5 -1.51 -0.536 200 59 0.244 1.7 87.6 World Transportation + 6 -2.16e+03 441 1e+04 59 3.53e-22 1e+04 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -1.14 -0.615 198 0.762 0 0 0 test.phys initStep + 1 -1.61 -0.235 199 0.658 0.104 0.858 0.858 test.phys msc + 2 -1.96 0.0602 199 0.578 0.0801 0.594 1.45 test.phys msc + 3 -2.12 0.27 200 0.523 0.0552 0.48 1.93 test.phys msc + 4 -2.39 0.45 200 0.397 0.126 0.397 2.33 test.phys msc + 5 -2.51 0.451 200 0.376 0.0209 0.22 2.55 World Transportation + 6 -3.65e+03 2.16e+03 1e+04 0.376 3.55e-22 1.07e+04 1.07e+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 113 27.7 0 0 0 test.phys initStep + 1 -0.0142 0.0216 113 26.9 0.0727 0.849 0.849 test.phys eIoni + 2 0.177 0.084 117 26.4 0.479 4.01 4.86 test.phys eBrem + 3 0.367 0.0361 120 25.5 0.293 2.85 7.7 test.phys eIoni + 4 0.602 -0.222 135 23.7 1.72 14.6 22.4 test.phys eBrem + 5 0.598 -0.147 140 22.9 0.767 5.14 27.5 test.phys eBrem + 6 0.862 -0.415 146 22 0.8 5.94 33.4 test.phys eBrem + 7 0.927 -0.33 154 19.3 0.951 7.73 41.2 test.phys eBrem + 8 1.15 -0.215 156 18.8 0.22 2.16 43.3 test.phys eIoni + 9 0.171 0.976 170 15.3 2.21 14.4 57.7 test.phys eIoni + 10 -0.0801 3.93 179 13.6 0.934 8.98 66.7 test.phys eIoni + 11 -0.333 8.43 200 10.7 2.93 22.4 89.1 World Transportation + 12 429 365 1e+04 10.7 2.96e-22 9.82e+03 9.9e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0801 3.93 179 0.71 0 0 0 test.phys initStep + 1 -0.376 5.4 179 0.464 0.246 2.19 2.19 test.phys eIoni + 2 -1.01 6.07 180 0.238 0.226 1.68 3.88 test.phys eIoni + 3 -0.848 6.44 180 0 0.238 0.823 4.7 test.phys eIoni + +********************************************************************************************************* +* 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.171 0.976 170 1.31 0 0 0 test.phys initStep + 1 0.894 -0.0536 173 0.973 0.338 3.24 3.24 test.phys eIoni + 2 0.458 -0.471 173 0.873 0.0998 0.833 4.07 test.phys eIoni + 3 -0.715 -1.34 174 0.568 0.305 2.49 6.56 test.phys eIoni + 4 -1.35 -0.652 175 0.331 0.237 1.92 8.48 test.phys eIoni + 5 -1.11 -0.189 176 0.115 0.213 0.748 9.22 test.phys eBrem + 6 -1.24 -0.179 176 0 0.115 0.254 9.48 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.15 -0.215 156 0.255 0 0 0 test.phys initStep + 1 1.58 -0.162 156 0 0.255 0.919 0.919 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 0.367 0.0361 120 0.607 0 0 0 test.phys initStep + 1 1.43 0.576 121 0.33 0.277 2 2 test.phys eIoni + 2 1.58 -0.00479 121 0.0678 0.262 1.28 3.28 test.phys eIoni + 3 1.59 0.0355 121 0 0.0678 0.103 3.38 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.0142 0.0216 113 0.735 0 0 0 test.phys initStep + 1 -1.06 0.79 115 0.406 0.329 2.24 2.24 test.phys eIoni + 2 -1.92 1.07 115 0.117 0.289 1.53 3.77 test.phys eIoni + 3 -1.98 0.958 115 0 0.117 0.259 4.03 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.11 -0.189 176 0.00232 0 0 0 test.phys initStep + 1 -1.15 -0.179 176 0 0.000403 0.0516 0.0516 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 19 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.15 -0.179 176 0.00192 0 0 0 test.phys initStep + 1 -1.15 -0.179 176 0 0.00192 0.000223 0.000223 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.927 -0.33 154 1.81 0 0 0 test.phys initStep + 1 3.91 2.38 200 1.81 0 46.5 46.5 World Transportation + 2 634 576 1e+04 1.81 0 9.84e+03 9.88e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.862 -0.415 146 0.084 0 0 0 test.phys initStep + 1 0.927 -0.575 149 0.0804 0 3.23 3.23 test.phys biasWrapper(compt) + 2 -2.74 -12.4 161 0.07 0 17.2 20.5 test.phys biasWrapper(compt) + 3 -11.1 25.2 200 0.07 0 54.7 75.2 World Transportation + 4 -2.13e+03 9.52e+03 1e+04 0.07 0 1.38e+04 1.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.74 -12.4 161 0.0104 0 0 0 test.phys initStep + 1 -2.74 -12.4 161 0 0.0104 0.00381 0.00381 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.927 -0.575 149 0.00364 0 0 0 test.phys initStep + 1 0.927 -0.575 149 0 0.00364 0.000629 0.000629 test.phys eIoni + +********************************************************************************************************* +* 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.598 -0.147 140 0.0257 0 0 0 test.phys initStep + 1 -3.64 -1.81 182 0.0257 2.26e-05 42.1 42.1 test.phys biasWrapper(compt) + 2 -3.65 -1.83 182 0.0246 0 0.104 42.2 test.phys biasWrapper(compt) + 3 -6.12 11 186 0.0227 0 13.7 55.9 test.phys biasWrapper(compt) + 4 12.7 -1.86 180 0.0221 0 23.5 79.4 test.phys biasWrapper(compt) + 5 12.3 -3.51 179 0.0217 0 2.39 81.8 test.phys biasWrapper(compt) + 6 13.5 -3.54 176 0 0.000403 2.85 84.6 test.phys biasWrapper(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 13.5 -3.54 176 0.0213 0 0 0 test.phys initStep + 1 13.5 -3.55 176 0 0.0213 0.0134 0.0134 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 12.3 -3.51 179 0.000417 0 0 0 test.phys initStep + 1 12.3 -3.51 179 0 0.000417 2.7e-05 2.7e-05 test.phys eIoni + +********************************************************************************************************* +* 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 12.7 -1.86 180 0.000598 0 0 0 test.phys initStep + 1 12.7 -1.86 180 0 0.000598 4.17e-05 4.17e-05 test.phys eIoni + +********************************************************************************************************* +* 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 -6.12 11 186 0.00189 0 0 0 test.phys initStep + 1 -6.12 11 186 0 0.00189 0.000217 0.000217 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.65 -1.83 182 0.0011 0 0 0 test.phys initStep + 1 -3.65 -1.83 182 0 0.0011 9.6e-05 9.6e-05 test.phys eIoni + +********************************************************************************************************* +* 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 0.602 -0.222 135 0.0554 0 0 0 test.phys initStep + 1 -1.54 1.89 200 0.0554 0 65.2 65.2 World Transportation + 2 -323 319 1e+04 0.0554 0 9.81e+03 9.88e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.177 0.084 117 0.0343 0 0 0 test.phys initStep + 1 0.889 -0.418 132 0 0.000403 14.7 14.7 test.phys biasWrapper(phot) + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.889 -0.418 132 0.0339 0 0 0 test.phys initStep + 1 0.898 -0.42 132 0 0.0339 0.0305 0.0305 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.547 -0.269 140 0.601 0 0 0 test.phys initStep + 1 -0.128 0.676 200 0.601 0 60.1 60.1 World Transportation + 2 68.3 155 1e+04 0.601 0 9.8e+03 9.86e+03 OutOfWorld Transportation + +********************************************************************************************************* +* 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.434 -0.231 129 0.386 0 0 0 test.phys initStep + 1 -2.95 0.532 195 0.339 0 66.2 66.2 test.phys biasWrapper(compt) + 2 -6.59 -0.875 200 0.339 0 6.49 72.7 World Transportation + 3 -6.87e+03 -2.66e+03 1e+04 0.339 0 1.23e+04 1.23e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.371 -0.258 127 0.153 0 0 0 test.phys initStep + 1 -3.71 0.691 200 0.153 0 73.2 73.2 World Transportation + 2 -451 128 1e+04 0.153 0 9.81e+03 9.88e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.95 0.532 195 0.0468 0 0 0 test.phys initStep + 1 -2.93 0.542 195 0 0.0468 0.0538 0.0538 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 1.7 0.885 0 1.7 502 test.phys biasWrapper(hadElastic) + 2 -68.9 -68.9 17.1 0.738 0 98.7 600 test.phys biasWrapper(hadElastic) + 3 -72.4 -44.1 47.1 0.677 0.0607 39.1 639 test.phys biasWrapper(hadElastic) + 4 -27.3 -35.5 73.3 0.54 0 52.9 692 test.phys biasWrapper(hadElastic) + 5 -60.5 -121 50.9 0.503 0.0375 94.8 787 test.phys biasWrapper(hadElastic) + 6 -238 -142 -7.11e-15 0.503 0 185 973 World Transportation + 7 -1e+04 -1.29e+03 -2.8e+03 0.503 0 1.02e+04 1.12e+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 -27.3 -35.5 73.3 0.137 0 0 0 test.phys initStep + 1 -27.3 -35.5 73.3 0 0.137 0.00142 0.00142 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 -68.9 -68.9 17.1 0.147 0 0 0 test.phys initStep + 1 -68.9 -68.9 17.1 0 0.147 0.00149 0.00149 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 1.7 0.115 0 0 0 test.phys initStep + 1 0.00055 0.000551 1.7 0 0.115 0.00126 0.00126 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 74.1 0.896 0 74.1 574 test.phys biasWrapper(hadElastic) + 2 -224 -247 155 0.721 0 343 917 test.phys biasWrapper(hadElastic) + 3 -216 -218 65.5 0.702 0.0194 94.6 1.01e+03 test.phys biasWrapper(hadElastic) + 4 -211 -215 60.5 0.569 0 7.57 1.02e+03 test.phys biasWrapper(hadElastic) + 5 -210 -616 76.6 0.539 0.0299 402 1.42e+03 test.phys biasWrapper(hadElastic) + 6 -223 -652 37.2 0.483 0.0565 55 1.48e+03 test.phys biasWrapper(hadElastic) + 7 -318 -676 58.4 0.478 0.00472 99.9 1.58e+03 test.phys biasWrapper(hadElastic) + 8 -345 -674 60.1 0.382 0 27 1.6e+03 test.phys biasWrapper(hadElastic) + 9 -303 -648 104 0.308 0 66.5 1.67e+03 test.phys biasWrapper(hadElastic) + 10 -304 -651 105 0.262 0.045 3.32 1.67e+03 test.phys biasWrapper(hadElastic) + 11 -265 -642 188 0.234 0.0282 91.5 1.76e+03 test.phys biasWrapper(hadElastic) + 12 -278 -655 200 0.234 0 21.7 1.79e+03 World Transportation + 13 -9.86e+03 -1e+04 9.55e+03 0.234 0 1.63e+04 1.81e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -303 -648 104 0.0747 0 0 0 test.phys initStep + 1 -303 -648 104 0 0.0747 0.00096 0.00096 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 -345 -674 60.1 0.0958 0 0 0 test.phys initStep + 1 -345 -674 60.1 0 0.0958 0.00113 0.00113 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 -211 -215 60.5 0.133 0 0 0 test.phys initStep + 1 -211 -215 60.5 0 0.133 0.00139 0.00139 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 -224 -247 155 0.174 0 0 0 test.phys initStep + 1 -224 -247 155 0 0.174 0.00165 0.00165 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 74.1 0.104 0 0 0 test.phys initStep + 1 0.0005 0.000552 74.1 0 0.104 0.00119 0.00119 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 87.5 0.902 0 87.5 588 test.phys biasWrapper(hadElastic) + 2 169 126 149 0.757 0 220 807 test.phys biasWrapper(hadElastic) + 3 148 108 200 0.757 0 57.5 865 World Transportation + 4 -3.88e+03 -3.36e+03 1e+04 0.757 0 1.11e+04 1.2e+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 169 126 149 0.144 0 0 0 test.phys initStep + 1 169 126 149 0 0.144 0.00147 0.00147 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 87.5 0.0985 0 0 0 test.phys initStep + 1 -0.000579 -0.000432 87.5 0 0.0985 0.00115 0.00115 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 142 0.886 0 142 642 test.phys biasWrapper(hadElastic) + 2 28.1 -3.52 147 0.848 0.038 28.7 671 test.phys biasWrapper(hadElastic) + 3 44.9 -5.91 171 0.735 0 29.9 701 test.phys biasWrapper(hadElastic) + 4 32.6 44.8 185 0.674 0.0612 54 755 test.phys biasWrapper(hadElastic) + 5 42.2 54 182 0.593 0 13.7 768 test.phys biasWrapper(hadElastic) + 6 44.6 49.1 171 0.526 0.0668 11.8 780 test.phys biasWrapper(hadElastic) + 7 54.9 51.6 171 0.411 0 10.6 791 test.phys biasWrapper(hadElastic) + 8 33.7 28.5 155 0.317 0 35 826 test.phys biasWrapper(hadElastic) + 9 83.4 32.2 200 0.317 0 67.2 893 World Transportation + 10 1e+04 768 9.15e+03 0.317 0 1.34e+04 1.43e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 33.7 28.5 155 0.0933 0 0 0 test.phys initStep + 1 33.6 28.5 155 0 0.0933 0.00111 0.00111 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 54.9 51.6 171 0.115 0 0 0 test.phys initStep + 1 54.9 51.6 171 0 0.115 0.00127 0.00127 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 42.2 54 182 0.0816 0 0 0 test.phys initStep + 1 42.2 54 182 0 0.0816 0.00102 0.00102 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 44.9 -5.91 171 0.113 0 0 0 test.phys initStep + 1 44.9 -5.91 171 0 0.113 0.00125 0.00125 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 142 0.114 0 0 0 test.phys initStep + 1 -0.00077 9.67e-05 142 0 0.114 0.00126 0.00126 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 22.7 0.948 0.052 22.7 523 test.phys biasWrapper(hadElastic) + 2 110 114 151 0.739 0 204 727 test.phys biasWrapper(hadElastic) + 3 7.72 95.2 135 0.669 0.0697 106 833 test.phys biasWrapper(hadElastic) + 4 7.19 92.9 136 0.643 0.0264 2.52 835 test.phys biasWrapper(hadElastic) + 5 3.41 60.6 200 0.643 0 72.2 907 World Transportation + 6 -572 -4.85e+03 1e+04 0.643 0 1.1e+04 1.19e+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 110 114 151 0.209 0 0 0 test.phys initStep + 1 110 114 151 0 0.209 0.00179 0.00179 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 110 0.811 0 110 610 test.phys biasWrapper(hadElastic) + 2 -184 -119 0 0.811 0 245 855 World Transportation + 3 -1e+04 -6.44e+03 -5.86e+03 0.811 0 1.31e+04 1.39e+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 110 0.189 0 0 0 test.phys initStep + 1 0.00065 0.000418 110 0 0.189 0.00172 0.00172 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 177 0.827 0 177 677 test.phys biasWrapper(hadElastic) + 2 37.8 37.4 159 0.707 0 56 733 test.phys biasWrapper(hadElastic) + 3 9.83 76.1 200 0.707 0 62.8 796 World Transportation + 4 -6.72e+03 9.38e+03 1e+04 0.707 0 1.51e+04 1.59e+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 37.8 37.4 159 0.121 0 0 0 test.phys initStep + 1 37.8 37.4 159 0 0.121 0.00131 0.00131 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 177 0.173 0 0 0 test.phys initStep + 1 -0.000584 -0.000577 177 0 0.173 0.00164 0.00164 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 58.5 0.978 0.0223 58.5 559 test.phys biasWrapper(hadElastic) + 2 6.48 -28.2 104 0.819 0 53.9 612 test.phys biasWrapper(hadElastic) + 3 116 193 158 0.817 0.00209 253 865 test.phys biasWrapper(hadElastic) + 4 158 250 170 0.783 0.0337 71.5 937 test.phys biasWrapper(hadElastic) + 5 252 281 134 0.774 0.00889 105 1.04e+03 test.phys biasWrapper(hadElastic) + 6 688 362 147 0.742 0.0326 444 1.49e+03 test.phys biasWrapper(hadElastic) + 7 745 419 200 0.742 0 96.6 1.58e+03 World Transportation + 8 1e+04 9.64e+03 8.88e+03 0.742 0 1.57e+04 1.73e+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 6.48 -28.2 104 0.159 0 0 0 test.phys initStep + 1 6.48 -28.2 104 0 0.159 0.00156 0.00156 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 38.5 0.901 0 38.5 539 test.phys biasWrapper(hadElastic) + 2 1.12 3.92 39.7 0.727 0 4.24 543 test.phys biasWrapper(hadElastic) + 3 11.9 -5.47 32.4 0.668 0.0592 16.1 559 test.phys biasWrapper(hadElastic) + 4 86.6 10.7 51 0.566 0 78.7 637 test.phys biasWrapper(hadElastic) + 5 80.2 26.3 52.9 0.518 0.0478 17 655 test.phys biasWrapper(hadElastic) + 6 92.1 41.9 79.8 0.499 0.0194 33.2 688 test.phys biasWrapper(hadElastic) + 7 97.8 37.8 94.4 0.45 0.0482 16.3 704 test.phys biasWrapper(hadElastic) + 8 -3.33 91.4 200 0.45 0 156 860 World Transportation + 9 -9.39e+03 5.07e+03 1e+04 0.45 0 1.45e+04 1.53e+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 86.6 10.7 51 0.102 0 0 0 test.phys initStep + 1 86.6 10.7 51 0 0.102 0.00117 0.00117 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 1.12 3.92 39.7 0.174 0 0 0 test.phys initStep + 1 1.12 3.92 39.7 0 0.174 0.00165 0.00165 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 38.5 0.0992 0 0 0 test.phys initStep + 1 -0.0002 -0.000697 38.5 0 0.0992 0.00115 0.00115 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 97.7 0.994 0.00556 97.7 598 test.phys biasWrapper(hadElastic) + 2 -25.5 14.5 200 0.994 0 106 704 World Transportation + 3 -2.47e+03 1.4e+03 1e+04 0.994 0 1.02e+04 1.09e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -5128,8 +3941,998 @@ 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 38.9 100 0.0411 38.9 539 test.phys biasWrapper(hadElastic) - 2 0.464 -11.9 200 100 0 162 700 World Transportation - 3 28.7 -735 1e+04 100 0 9.83e+03 1.05e+04 OutOfWorld Transportation + 1 0 0 1.34 99.7 0 1.34 501 test.phys biasWrapper(hadElastic) + 2 36.5 -8.28 200 99.7 0 202 703 World Transportation + 3 1.84e+03 -417 1e+04 99.7 0 9.97e+03 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 1.34 0.262 0 0 0 test.phys initStep + 1 -0.00178 0.000405 1.34 0 0.262 0.00196 0.00196 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 73 98 0 73 573 test.phys biasWrapper(hadElastic) + 2 -0.764 73.4 200 98 0 147 720 World Transportation + 3 -59.7 5.74e+03 1e+04 98 0 1.13e+04 1.2e+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 73 2.02 0 0 0 test.phys initStep + 1 3.41e-05 -0.00328 73 0 2.02 0.00342 0.00342 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 28.6 0 0 28.6 529 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* 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 28.6 29.8 0 0 0 test.phys initStep + 1 276 76.2 200 29.8 0 334 334 World Transportation + 2 1e+04 2.76e+03 6.23e+03 29.8 0 1.18e+04 1.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 28.6 0.104 0 0 0 test.phys initStep + 1 -100 11.1 78.4 0.0798 0 112 112 test.phys biasWrapper(compt) + 2 -15.7 115 80.3 0.0753 0 134 246 test.phys biasWrapper(compt) + 3 -13.6 121 73.4 0.0688 0 9.2 255 test.phys biasWrapper(compt) + 4 -92.6 124 0 0.0688 0 108 363 World Transportation + 5 -1e+04 529 -9.2e+03 0.0688 0 1.35e+04 1.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -13.6 121 73.4 0.00646 0 0 0 test.phys initStep + 1 -13.6 121 73.4 0 0.00646 0.00167 0.00167 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 -15.7 115 80.3 0.00457 0 0 0 test.phys initStep + 1 -15.7 115 80.3 0 0.00457 0.000923 0.000923 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -100 11.1 78.4 0.024 0 0 0 test.phys initStep + 1 -100 11.1 78.4 0 0.024 0.0166 0.0166 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 28.6 0.517 0 0 0 test.phys initStep + 1 -1.43 3.48 30.5 0.175 0 4.23 4.23 test.phys biasWrapper(compt) + 2 -0.51 -4.38 22.9 0.156 0 11 15.2 test.phys biasWrapper(compt) + 3 6.49 -2.97 0 0.156 0 24 39.2 World Transportation + 4 3.07e+03 615 -1e+04 0.156 0 1.05e+04 1.05e+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 28.6 0.784 0 0 0 test.phys initStep + 1 68.1 36.3 200 0.784 0 188 188 World Transportation + 2 3.96e+03 2.11e+03 1e+04 0.784 0 1.07e+04 1.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 28.6 0.444 0 0 0 test.phys initStep + 1 -0.0018 -0.00175 28.6 0 0.444 0.00256 0.00256 test.phys ionIoni + +********************************************************************************************************* +* 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 28.6 60.8 0 0 0 test.phys initStep + 1 -1.56 0.22 32.7 0 3.24 4.36 4.36 test.phys protonInelastic + +********************************************************************************************************* +* G4Track Information: Particle = N13, Track ID = 17, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.56 0.22 32.7 1.18 0 0 0 test.phys initStep + 1 -1.56 0.218 32.7 0 1.18 0.0028 0.0028 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 14, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.56 0.22 32.7 43.4 0 0 0 test.phys initStep + 1 -2.83 2.64 36.8 38.3 5.09 4.97 4.97 test.phys hIoni + 2 -3.84 4.57 40.2 33.5 4.78 4 8.97 test.phys hIoni + 3 -4.65 6.11 42.8 29.8 3.76 3.18 12.2 test.phys hIoni + 4 -5.27 7.32 45.1 26 3.82 2.6 14.8 test.phys hIoni + 5 -5.76 8.25 46.8 22.7 3.28 2.06 16.8 test.phys hIoni + 6 -6.19 8.98 48.2 19.6 3.08 1.65 18.5 test.phys hIoni + 7 -6.54 9.56 49.4 17 2.56 1.31 19.8 test.phys hIoni + 8 -6.84 10 50.3 14.7 2.33 1.05 20.8 test.phys hIoni + 9 -7.09 10.4 51 12.4 2.27 0.843 21.7 test.phys hIoni + 10 -7.29 10.7 51.5 10.5 1.94 0.665 22.3 test.phys hIoni + 11 -7.43 10.9 52 8.77 1.72 0.531 22.9 test.phys hIoni + 12 -7.55 11.1 52.3 7.11 1.66 0.427 23.3 test.phys hIoni + 13 -7.64 11.3 52.6 5.55 1.56 0.34 23.6 test.phys hIoni + 14 -7.71 11.4 52.9 3.93 1.62 0.269 23.9 test.phys hIoni + 15 -7.77 11.5 53 2.3 1.63 0.204 24.1 test.phys hIoni + 16 -7.81 11.5 53.2 0.331 1.97 0.128 24.2 test.phys hIoni + 17 -7.81 11.5 53.2 0.0624 0.268 0.00718 24.2 test.phys hIoni + 18 -7.81 11.5 53.2 0.00624 0.0561 0.00166 24.2 test.phys hIoni + 19 -7.81 11.5 53.2 0 0.00624 0.000489 24.2 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 15, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.56 0.22 32.7 1.98 0 0 0 test.phys initStep + 1 -29.2 -3.3 -7.11e-15 1.98 0 43 43 World Transportation + 2 -8.5e+03 -1.08e+03 -1e+04 1.98 0 1.31e+04 1.32e+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.51 -4.38 22.9 0.0189 0 0 0 test.phys initStep + 1 -0.511 -4.38 22.9 0 0.0189 0.0109 0.0109 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 -1.43 3.48 30.5 0.342 0 0 0 test.phys initStep + 1 -1.64 4.08 30.9 0.0196 0.323 1.33 1.33 test.phys eIoni + 2 -1.63 4.08 30.9 0 0.0196 0.0116 1.34 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 -1.56 0.22 32.7 0.368 0 0 0 test.phys initStep + 1 41.8 -40.8 25.1 0.285 0 60.1 60.1 test.phys biasWrapper(compt) + 2 61.6 -43.3 0 0.285 0 32.1 92.2 World Transportation + 3 7.95e+03 -1.07e+03 -1e+04 0.285 0 1.28e+04 1.29e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 41.8 -40.8 25.1 0.0825 0 0 0 test.phys initStep + 1 41.8 -40.8 25.1 0 0.0825 0.144 0.144 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 + +********************************************************************************************************* +* 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 194 98.9 0 194 694 test.phys biasWrapper(hadElastic) + 2 0.125 -2.31 200 98.9 0 6.29 700 World Transportation + 3 209 -3.86e+03 1e+04 98.9 0 1.05e+04 1.12e+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 194 1.05 0 0 0 test.phys initStep + 1 -0.000152 0.0028 194 0 1.05 0.00289 0.00289 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 127 0 0 127 627 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* 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 127 2.77 0 0 0 test.phys initStep + 1 82.2 -122 200 2.77 0 164 164 World Transportation + 2 6.73e+03 -1e+04 6.07e+03 2.77 0 1.33e+04 1.34e+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 0 127 0.225 0 0 0 test.phys initStep + 1 24.7 54.1 132 0.206 0 59.6 59.6 test.phys biasWrapper(compt) + 2 17.3 87.8 130 0.199 0 34.5 94.2 test.phys biasWrapper(compt) + 3 -28.8 343 0 0.199 0 290 384 World Transportation + 4 -1.77e+03 1e+04 -4.93e+03 0.199 0 1.1e+04 1.14e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 17.3 87.8 130 0.00697 0 0 0 test.phys initStep + 1 17.3 87.8 130 0 0.00697 0.0019 0.0019 test.phys eIoni + +********************************************************************************************************* +* 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 24.7 54.1 132 0.0187 0 0 0 test.phys initStep + 1 24.7 54.1 132 0 0.0187 0.0107 0.0107 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 127 3.45 0 0 0 test.phys initStep + 1 -9.15 5.38 192 2.96 0 65.3 65.3 test.phys biasWrapper(compt) + 2 -10.9 4.3 200 2.96 0 8.38 73.7 World Transportation + 3 -2.12e+03 -1.3e+03 1e+04 2.96 0 1.01e+04 1.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 127 2.92 0 0 0 test.phys initStep + 1 0.00407 -0.000382 127 0 2.92 0.00459 0.00459 test.phys ionIoni + +********************************************************************************************************* +* 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 127 83 0 0 0 test.phys initStep + 1 -10.5 2.91 139 72.6 10.4 15.6 15.6 test.phys hIoni + 2 -18.6 5.4 147 64.2 8.48 12.3 27.9 test.phys hIoni + 3 -25.2 7.11 155 56.4 7.8 9.89 37.8 test.phys hIoni + 4 -30.4 8.36 160 49.5 6.87 7.87 45.7 test.phys hIoni + 5 -34.4 9.35 165 43.3 6.15 6.26 51.9 test.phys hIoni + 6 -37.7 9.91 169 38 5.32 4.96 56.9 test.phys hIoni + 7 -40.4 10.3 172 33.4 4.61 3.95 60.8 test.phys hIoni + 8 -42.5 10.7 174 29.3 4.16 3.16 64 test.phys hIoni + 9 -44.2 11.1 176 25.7 3.59 2.52 66.5 test.phys hIoni + 10 -45.6 11.5 177 22.5 3.17 2.02 68.5 test.phys hIoni + 11 -46.6 11.8 178 19.7 2.76 1.63 70.1 test.phys hIoni + 12 -47.5 12 179 17.1 2.63 1.32 71.5 test.phys hIoni + 13 -48.2 12.2 180 14.7 2.37 1.06 72.5 test.phys hIoni + 14 -48.8 12.3 181 12.7 2.06 0.845 73.4 test.phys hIoni + 15 -49.3 12.4 181 10.6 2.06 0.682 74.1 test.phys hIoni + 16 -49.7 12.5 182 8.81 1.81 0.539 74.6 test.phys hIoni + 17 -49.9 12.6 182 7.17 1.64 0.429 75 test.phys hIoni + 18 -50.2 12.7 182 5.57 1.61 0.343 75.4 test.phys hIoni + 19 -50.3 12.7 182 3.96 1.61 0.27 75.6 test.phys hIoni + 20 -50.5 12.8 183 2.32 1.64 0.205 75.8 test.phys hIoni + 21 -50.6 12.8 183 0.349 1.97 0.13 76 test.phys hIoni + 22 -50.6 12.8 183 0 0.349 0.00769 76 test.phys hIoni + +********************************************************************************************************* +* 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 -9.15 5.38 192 0.497 0 0 0 test.phys initStep + 1 -8.97 6.29 193 0.23 0.267 1.76 1.76 test.phys eIoni + 2 -9.34 6.4 193 0 0.23 0.781 2.54 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 + +********************************************************************************************************* +* 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 154 0 0 154 654 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* 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 154 75.3 0 0 0 test.phys initStep + 1 21.6 -16.9 200 75.3 0 53.6 53.6 World Transportation + 2 4.62e+03 -3.6e+03 1e+04 75.3 0 1.14e+04 1.15e+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 154 0.134 0 0 0 test.phys initStep + 1 -26.8 -11.6 157 0.0906 0 29.4 29.4 test.phys biasWrapper(compt) + 2 34 39.1 194 0.0741 0 87.7 117 test.phys biasWrapper(compt) + 3 0.305 68.8 181 0.0696 0 46.8 164 test.phys biasWrapper(compt) + 4 -8.56 71.9 188 0.0658 0 11.7 176 test.phys biasWrapper(compt) + 5 -8.52 76.6 192 0.0534 0 6.13 182 test.phys biasWrapper(compt) + 6 -12.6 69.8 190 0.047 0 8.18 190 test.phys biasWrapper(compt) + 7 17.8 60.4 200 0.047 0 33.5 223 World Transportation + 8 1e+04 -3.04e+03 3.56e+03 0.047 0 1.1e+04 1.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 154 0.413 0 0 0 test.phys initStep + 1 -4.56 56.1 174 0.251 0 59.7 59.7 test.phys biasWrapper(compt) + 2 101 78.7 200 0.251 0 111 170 World Transportation + 3 1e+04 2.21e+03 2.65e+03 0.251 0 1.04e+04 1.06e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 154 5.06 0 0 0 test.phys initStep + 1 -0.00536 0.00372 154 0 5.06 0.00653 0.00653 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 154 8.84 0 0 0 test.phys initStep + 1 0.211 -0.124 154 6.65 2.19 0.315 0.315 test.phys hIoni + 2 0.374 -0.222 154 4.54 2.1 0.246 0.561 test.phys hIoni + 3 0.493 -0.3 154 2.33 2.21 0.183 0.744 test.phys hIoni + 4 0.551 -0.34 154 0 2.33 0.0896 0.834 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.56 56.1 174 0.162 0 0 0 test.phys initStep + 1 -4.7 56.2 174 0 0.162 0.447 0.447 test.phys eIoni + +********************************************************************************************************* +* 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 -12.6 69.8 190 0.00639 0 0 0 test.phys initStep + 1 -12.6 69.8 190 0 0.00639 0.00164 0.00164 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 -8.52 76.6 192 0.0124 0 0 0 test.phys initStep + 1 -8.52 76.6 192 0 0.0124 0.00519 0.00519 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 -8.56 71.9 188 0.00377 0 0 0 test.phys initStep + 1 -8.56 71.9 188 0 0.00377 0.000666 0.000666 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 0.305 68.8 181 0.00454 0 0 0 test.phys initStep + 1 0.305 68.8 181 0 0.00454 0.000914 0.000914 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 34 39.1 194 0.0165 0 0 0 test.phys initStep + 1 34 39.1 194 0 0.0165 0.00856 0.00856 test.phys 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 -26.8 -11.6 157 0.0433 0 0 0 test.phys initStep + 1 -26.8 -11.6 157 0 0.0433 0.047 0.047 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 + +********************************************************************************************************* +* 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 68 0 0 68 568 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* 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 68 29.6 0 0 0 test.phys initStep + 1 71.6 -24.1 115 0 0 89.2 89.2 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 9, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 71.6 -24.1 115 2.43 0 0 0 test.phys initStep + 1 117 -58.3 200 2.43 0 102 102 World Transportation + 2 5.42e+03 -4.02e+03 1e+04 2.43 0 1.18e+04 1.19e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 71.6 -24.1 115 6.08 0 0 0 test.phys initStep + 1 95.6 139 200 6.08 0 186 186 World Transportation + 2 1.54e+03 1e+04 5.3e+03 6.08 0 1.12e+04 1.14e+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 68 57.4 0 0 0 test.phys initStep + 1 -33.7 33.2 103 0 0 59.1 59.1 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 14, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.7 33.2 103 16 0 0 0 test.phys initStep + 1 -271 127 175 15.9 0 265 265 test.phys biasWrapper(hadElastic) + 2 -288 130 176 0 0 17.7 283 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 21, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -288 130 176 3.48 0 0 0 test.phys initStep + 1 -302 154 183 3.39 0 29.3 29.3 test.phys biasWrapper(hadElastic) + 2 -313 167 200 3.39 0 23.8 53.1 World Transportation + 3 -6.48e+03 7.06e+03 1e+04 3.39 0 1.35e+04 1.35e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 13, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.7 33.2 103 23.9 0 0 0 test.phys initStep + 1 -54.7 55.3 199 0 0 101 101 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 26, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -54.7 55.3 199 12 0 0 0 test.phys initStep + 1 -68.5 57.7 200 12 0 14 14 World Transportation + 2 -1e+04 1.81e+03 737 12 0 1.01e+04 1.01e+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 -54.7 55.3 199 0.147 0 0 0 test.phys initStep + 1 -54.2 55.4 200 0.147 0 0.941 0.941 World Transportation + 2 7.33e+03 1.83e+03 1e+04 0.147 0 1.24e+04 1.24e+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 -54.7 55.3 199 1.08 0 0 0 test.phys initStep + 1 -55.1 55.9 200 1.08 0 0.991 0.991 World Transportation + 2 -4.92e+03 7.18e+03 1e+04 1.08 0 1.31e+04 1.31e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -288 130 176 1.66 0 0 0 test.phys initStep + 1 -277 145 200 1.66 0 30.6 30.6 World Transportation + 2 4.47e+03 6.46e+03 1e+04 1.66 0 1.26e+04 1.26e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -33.7 33.2 103 0.109 0 0 0 test.phys initStep + 1 -31.9 36 89.5 0.0874 0 14.4 14.4 test.phys biasWrapper(compt) + 2 -59.2 46.3 93 0.0775 0 29.4 43.8 test.phys biasWrapper(compt) + 3 -102 28.2 11.4 0.0608 0 94.1 138 test.phys biasWrapper(compt) + 4 -37.9 23.1 48.6 0.0601 0 74.7 213 test.phys biasWrapper(compt) + 5 21.3 44.2 67 0.0512 0 65.5 278 test.phys biasWrapper(compt) + 6 -2.43 67.7 57 0.0479 0 34.8 313 test.phys biasWrapper(compt) + 7 -30.9 54.4 59 0.0467 0 31.5 344 test.phys biasWrapper(compt) + 8 -134 -111 181 0.0461 0 230 574 test.phys biasWrapper(compt) + 9 -143 -116 200 0.0461 0 21.5 596 World Transportation + 10 -4.62e+03 -3.03e+03 1e+04 0.0461 0 1.12e+04 1.18e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -134 -111 181 0.000698 0 0 0 test.phys initStep + 1 -134 -111 181 0 0.000698 5.09e-05 5.09e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.9 54.4 59 0.00112 0 0 0 test.phys initStep + 1 -30.9 54.4 59 0 0.00112 9.82e-05 9.82e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.43 67.7 57 0.0033 0 0 0 test.phys initStep + 1 -2.43 67.7 57 0 0.0033 0.000535 0.000535 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 21.3 44.2 67 0.0089 0 0 0 test.phys initStep + 1 21.3 44.2 67 0 0.0089 0.0029 0.0029 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -37.9 23.1 48.6 0.000714 0 0 0 test.phys initStep + 1 -37.9 23.1 48.6 0 0.000714 5.25e-05 5.25e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -102 28.2 11.4 0.0167 0 0 0 test.phys initStep + 1 -103 28.2 11.4 0 0.0167 0.0088 0.0088 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -59.2 46.3 93 0.00988 0 0 0 test.phys initStep + 1 -59.2 46.3 93 0 0.00988 0.00348 0.00348 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.9 36 89.5 0.0217 0 0 0 test.phys initStep + 1 -31.9 36 89.5 0 0.0217 0.0138 0.0138 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.7 33.2 103 1.12 0 0 0 test.phys initStep + 1 66.3 42.7 -1.42e-14 1.12 0 144 144 World Transportation + 2 9.73e+03 963 -1e+04 1.12 0 1.39e+04 1.41e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -33.7 33.2 103 1.32 0 0 0 test.phys initStep + 1 266 -247 69 0.482 0 412 412 test.phys biasWrapper(compt) + 2 251 -355 185 0.334 0 159 571 test.phys biasWrapper(compt) + 3 282 -374 200 0.334 0 39.6 610 World Transportation + 4 1e+04 -6.36e+03 4.92e+03 0.334 0 1.24e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 251 -355 185 0.148 0 0 0 test.phys initStep + 1 250 -355 185 0 0.148 0.385 0.385 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 266 -247 69 0.833 0 0 0 test.phys initStep + 1 268 -248 68.3 0.547 0.287 2.42 2.42 test.phys eIoni + 2 268 -249 68.4 0.253 0.294 1.87 4.29 test.phys eIoni + 3 268 -248 68.7 0 0.253 0.904 5.19 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 71.6 -24.1 115 0.286 0 0 0 test.phys initStep + 1 102 -20.8 174 0.181 0 66.4 66.4 test.phys biasWrapper(compt) + 2 47.4 -20.3 200 0.181 0 60.2 127 World Transportation + 3 -1e+04 70.1 4.91e+03 0.181 0 1.11e+04 1.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 102 -20.8 174 0.105 0 0 0 test.phys initStep + 1 102 -20.8 175 0 0.105 0.217 0.217 test.phys eIoni + +********************************************************************************************************* +* 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 71.6 -24.1 115 0.574 0 0 0 test.phys initStep + 1 56.4 -22.7 178 0.337 0 64.2 64.2 test.phys biasWrapper(compt) + 2 56.7 -72.2 200 0.337 0 54.2 118 World Transportation + 3 121 -1e+04 4.63e+03 0.337 0 1.09e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 56.4 -22.7 178 0.237 0 0 0 test.phys initStep + 1 56.3 -22.5 178 0 0.237 0.818 0.818 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 68 1.2 0 0 0 test.phys initStep + 1 -25.4 34.2 200 1.2 0 139 139 World Transportation + 2 -1.91e+03 2.57e+03 1e+04 1.2 0 1.03e+04 1.04e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 30, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -54.7 55.3 199 1.24 0 0 0 test.phys initStep + 1 -54.7 55.3 199 0 1.24 0.00338 0.00338 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 27, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -54.7 55.3 199 1.86 0 0 0 test.phys initStep + 1 -54.7 55.3 199 0.279 1.58 0.0949 0.0949 test.phys hIoni + 2 -54.7 55.3 199 0.0126 0.266 0.00585 0.101 test.phys hIoni + 3 -54.7 55.3 199 0 0.0126 0.000671 0.101 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 25, Parent ID = 21 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -302 154 183 0.0917 0 0 0 test.phys initStep + 1 -302 154 183 0 0.0917 0.00109 0.00109 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 24, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -288 130 176 0.953 0 0 0 test.phys initStep + 1 -288 130 176 0 0.953 0.00316 0.00316 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 22, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -288 130 176 2.22 0 0 0 test.phys initStep + 1 -288 130 176 0.234 1.98 0.123 0.123 test.phys hIoni + 2 -288 130 176 0 0.234 0.0048 0.128 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 20, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -271 127 175 0.116 0 0 0 test.phys initStep + 1 -271 127 175 0 0.116 0.00127 0.00127 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 19, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.7 33.2 103 0.517 0 0 0 test.phys initStep + 1 -33.7 33.2 103 0 0.517 0.00254 0.00254 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 15, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.7 33.2 103 1.9 0 0 0 test.phys initStep + 1 -33.8 33.2 103 0.125 1.77 0.0985 0.0985 test.phys hIoni + 2 -33.8 33.2 103 0.0523 0.0728 0.00269 0.101 test.phys hIoni + 3 -33.8 33.2 103 0 0.0523 0.00149 0.103 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 12, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 71.6 -24.1 115 1.48 0 0 0 test.phys initStep + 1 71.6 -24.1 115 0 1.48 0.00335 0.00335 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 71.6 -24.1 115 6.18 0 0 0 test.phys initStep + 1 71.7 -24.1 116 4.64 1.54 0.297 0.297 test.phys hIoni + 2 71.8 -24.1 116 2.95 1.69 0.232 0.529 test.phys hIoni + 3 71.8 -24.2 116 1.17 1.77 0.162 0.691 test.phys hIoni + 4 71.9 -24.2 116 0 1.17 0.0451 0.736 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = N13, 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 1.2 0 0 0 test.phys initStep + 1 -3.19e-06 -0.00203 68 0 1.2 0.00281 0.00281 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 72.3 0 0 72.3 572 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* 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 72.3 38.3 0 0 0 test.phys initStep + 1 -192 86.4 200 38.3 0 246 246 World Transportation + 2 -1e+04 4.51e+03 6.74e+03 38.3 0 1.26e+04 1.28e+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 72.3 48.9 0 0 0 test.phys initStep + 1 98.7 -15.6 154 48.4 0 129 129 test.phys biasWrapper(hadElastic) + 2 151 1.32 200 48.4 0 71.6 201 World Transportation + 3 1e+04 3.2e+03 8.92e+03 48.4 0 1.35e+04 1.37e+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 72.3 1.55 0 0 0 test.phys initStep + 1 139 -50.3 149 1.22 0 167 167 test.phys biasWrapper(compt) + 2 176 -78.6 200 1.22 0 68.8 235 World Transportation + 3 7.28e+03 -5.53e+03 1e+04 1.22 0 1.33e+04 1.35e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 98.7 -15.6 154 0.465 0 0 0 test.phys initStep + 1 98.7 -15.6 154 0 0.465 0.00233 0.00233 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N13, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 72.3 0.655 0 0 0 test.phys initStep + 1 -0.000477 -0.0011 72.3 0 0.655 0.00244 0.00244 test.phys ionIoni + +********************************************************************************************************* +* 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 139 -50.3 149 0.327 0 0 0 test.phys initStep + 1 140 -50.3 149 0.0976 0.229 1.27 1.27 test.phys eIoni + 2 139 -50.2 149 0 0.0976 0.192 1.46 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 + +********************************************************************************************************* +* 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 166 99.9 0 166 666 test.phys biasWrapper(hadElastic) + 2 2.74 -2.78 200 99.9 0 34.3 700 World Transportation + 3 792 -803 1e+04 99.9 0 9.86e+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 166 0.0988 0 0 0 test.phys initStep + 1 -0.000651 0.000661 166 0 0.0988 0.00115 0.00115 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 193 99.5 0 193 693 test.phys biasWrapper(hadElastic) + 2 0.508 -1.82 200 99.5 0 7.66 700 World Transportation + 3 671 -2.4e+03 1e+04 99.5 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 193 0.466 0 0 0 test.phys initStep + 1 -0.000607 0.00217 193 0 0.466 0.00234 0.00234 test.phys ionIoni Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/biasing/GB03/exampleGB03.out b/examples/extended/biasing/GB03/exampleGB03.out index 971c2cf138..7fc3f41505 100644 --- a/examples/extended/biasing/GB03/exampleGB03.out +++ b/examples/extended/biasing/GB03/exampleGB03.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -40,16 +40,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -67,11 +69,19 @@ Available colours: G4SDManager::AddNewCollection : the collection is registered at 1 G4SDManager::AddNewCollection : the collection is registered at 2 G4SDManager::AddNewCollection : the collection is registered at 3 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 4 G4SDManager::AddNewCollection : the collection is registered at 5 G4SDManager::AddNewCollection : the collection is registered at 6 -New sensitive detector is registored at / +New sensitive detector is registered at / +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 phot: for gamma SubType= 12 BuildTable= 0 @@ -189,7 +199,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -203,7 +213,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -312,7 +322,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -345,7 +355,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -471,6 +481,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -800,7 +815,7 @@ GB03BOptrGeometryBasedBiasing : starting run with splitting factor = 2, and prob Run terminated. Run Summary Number of events processed : 10 - User=0.18s Real=0.18s Sys=0.01s + User=0.18s Real=0.18s Sys=0s Region -- -- appears in world volume This region is in the mass world. @@ -860,7 +875,7 @@ GB03BOptrGeometryBasedBiasing : starting run with splitting factor = 2, and prob Run terminated. Run Summary Number of events processed : 10 - User=0.68s Real=0.69s Sys=0s + User=0.19s Real=0.2s Sys=0s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -872,22 +887,22 @@ RunManager is deleting RunManagerKernel. G4SDManager deleted. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 82 +Total navigation history collections cleaned: 78 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.127 MB +Pool ID '20G4NavigationLevelRep', size : 0.121 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.0375 MB +Pool ID '17G4DynamicParticle', size : 0.0327 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 '16G4HitsCollection', size : 0 MB -Pool ID '7G4Track', size : 0.075 MB +Pool ID '7G4Track', size : 0.0644 MB Pool ID '18G4TouchableHistory', size : 0.00961 MB Pool ID '15G4CountedObjectIvE', size : 0.00192 MB Pool ID '10G4Fragment', size : 0.00192 MB Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.26 MB +Dynamic pools deleted: 12 / Total memory freed: 0.24 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/biasing/GB04/exampleGB04.out b/examples/extended/biasing/GB04/exampleGB04.out index 6f7268e2a8..ed53d91b31 100644 --- a/examples/extended/biasing/GB04/exampleGB04.out +++ b/examples/extended/biasing/GB04/exampleGB04.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -17,6 +17,14 @@ ********** processes are wrapped for biasing ************ ********************************************************* Attaching biasing operator BremSplittingOperator to logical volume test.logical +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -45,16 +53,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -181,7 +191,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -195,7 +205,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -304,7 +314,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -337,7 +347,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -463,6 +473,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -780,55 +795,82 @@ BremSplittingOperator : starting run with brem. splitting factor = 1, biasing on 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.000543 -0.00342 0.427 91.5 0.16 0.427 1e+03 test.phys biasWrapper(eBrem) - 3 -0.0467 0.105 4.31 89.6 1.86 3.88 1e+03 test.phys biasWrapper(eBrem) - 4 -0.0123 0.16 5.34 53.9 0.457 1.04 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.027 0.206 6.31 28.7 0.398 0.973 1.01e+03 test.phys biasWrapper(eBrem) - 6 -0.00372 0.288 10 27.2 1.5 3.71 1.01e+03 World Transportation - 7 -195 -199 1e+04 27.2 3.28e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + 2 -0.00337 0.000102 0.427 99.8 0.153 0.427 1e+03 test.phys biasWrapper(eBrem) + 3 0.0103 -0.019 2.67 98.5 1.31 2.25 1e+03 test.phys biasWrapper(eBrem) + 4 0.0207 -0.0153 3.55 98 0.398 0.876 1e+03 test.phys biasWrapper(eBrem) + 5 0.143 -0.0274 7.3 94.3 1.66 3.75 1.01e+03 test.phys biasWrapper(eBrem) + 6 0.165 0.0553 10 93.1 1.22 2.7 1.01e+03 World Transportation + 7 40.6 315 1e+04 93.1 3.65e-22 1e+04 1.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.027 0.206 6.31 24.8 0 0 0 test.phys initStep - 1 0.437 0.582 10 24.8 0 3.73 3.73 World Transportation - 2 1.11e+03 1.02e+03 1e+04 24.8 0 1.01e+04 1.01e+04 OutOfWorld Transportation + 0 0.143 -0.0274 7.3 2.05 0 0 0 test.phys initStep + 1 0.166 0.0378 10 2.05 0 2.7 2.7 World Transportation + 2 84 241 1e+04 2.05 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.0123 0.16 5.34 35.3 0 0 0 test.phys initStep - 1 0.0946 0.435 10 35.3 0 4.67 4.67 World Transportation - 2 229 591 1e+04 35.3 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0207 -0.0153 3.55 0.0372 0 0 0 test.phys initStep + 1 0.111 0.0342 10 0.0372 0 6.45 6.45 World Transportation + 2 140 76.8 1e+04 0.0372 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.0467 0.105 4.31 0.0161 0 0 0 test.phys initStep - 1 -0.0155 0.163 5.08 0 0.00156 0.779 0.779 test.phys phot + 0 0.0103 -0.019 2.67 0.0424 0 0 0 test.phys initStep + 1 0.0648 0.04 7.71 0 0.00156 5.04 5.04 test.phys phot + +********************************************************************************************************* +* 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.00337 0.000102 0.427 0.013 0 0 0 test.phys initStep + 1 -0.00368 0.00017 0.478 0 0.00156 0.0514 0.0514 test.phys phot + +********************************************************************************************************* +* 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 -0.00368 0.00017 0.478 0.0115 0 0 0 test.phys initStep + 1 -0.00333 0.000523 0.478 0 0.0115 0.00167 0.00167 test.phys eIoni ********************************************************************************************************* * 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.0155 0.163 5.08 0.0146 0 0 0 test.phys initStep - 1 -0.0161 0.163 5.08 0 0.0146 0.00252 0.00252 test.phys eIoni + 0 0.0648 0.04 7.71 0.0408 0 0 0 test.phys initStep + 1 0.0663 0.0431 7.71 0 0.0408 0.015 0.015 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.178 -0.108 8.73 95.7 3.5 8.73 1.01e+03 test.phys biasWrapper(eBrem) + 3 0.156 -0.136 10 95.2 0.592 1.27 1.01e+03 World Transportation + 4 -10.8 -412 1e+04 95.2 3.66e-22 1e+04 1.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.000543 -0.00342 0.427 8.34 0 0 0 test.phys initStep - 1 -0.000257 0.0932 10 8.34 0 9.57 9.57 World Transportation - 2 0.299 101 1e+04 8.34 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.178 -0.108 8.73 0.76 0 0 0 test.phys initStep + 1 0.157 -0.135 10 0.76 0 1.27 1.27 World Transportation + 2 -170 -214 1e+04 0.76 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -837,28 +879,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 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.89 10 1.01e+03 World Transportation - 3 -182 283 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.335 0.12 8.73 96.2 3.77 8.73 1.01e+03 test.phys biasWrapper(eBrem) - 3 0.404 0.0778 10 95.6 0.516 1.28 1.01e+03 World Transportation - 4 541 -489 1e+04 95.6 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 -0.0487 -0.0748 3.82 98.5 1.49 3.82 1e+03 test.phys biasWrapper(eBrem) + 3 -0.107 -0.258 10 95.8 2.72 6.19 1.01e+03 World Transportation + 4 374 -462 1e+04 95.8 3.67e-22 1e+04 1.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.335 0.12 8.73 0.0684 0 0 0 test.phys initStep - 1 0.401 0.0804 10 0.0684 0 1.28 1.28 World Transportation - 2 518 -307 1e+04 0.0684 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0487 -0.0748 3.82 0.0215 0 0 0 test.phys initStep + 1 -0.0504 -0.0812 4.03 0 0.00156 0.206 0.206 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.0504 -0.0812 4.03 0.02 0 0 0 test.phys initStep + 1 -0.0508 -0.0826 4.03 0 0.02 0.00434 0.00434 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -867,257 +906,299 @@ 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 0 10 95.9 4.06 10 1.01e+03 World Transportation - 3 148 -235 1e+04 95.9 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.000352 0.000358 0.108 99.8 0.105 0.108 1e+03 test.phys biasWrapper(eBrem) - 3 -0.00234 -0.0007 10 96 3.81 9.9 1.01e+03 World Transportation - 4 -8.62 -292 1e+04 96 3.66e-22 9.99e+03 1.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.000352 0.000358 0.108 0.0858 0 0 0 test.phys initStep - 1 0.00558 -0.139 10 0.0858 0 9.89 9.89 World Transportation - 2 6 -141 1e+04 0.0858 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.016 0.0821 4.48 93.9 1.91 4.48 1e+03 test.phys biasWrapper(eBrem) - 3 0.0688 0.101 10 91.5 2.41 5.52 1.01e+03 World Transportation - 4 526 -684 1e+04 91.5 3.66e-22 1e+04 1.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.016 0.0821 4.48 4.17 0 0 0 test.phys initStep - 1 0.122 0.0822 10 4.17 0 5.52 5.52 World Transportation - 2 251 0.236 1e+04 4.17 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.0862 -0.104 5.14 94.9 1.81 5.15 1.01e+03 test.phys biasWrapper(eBrem) - 3 0.079 -0.211 7.91 93.9 0.896 2.76 1.01e+03 test.phys biasWrapper(eBrem) - 4 0.0414 -0.311 10 93.1 0.79 2.1 1.01e+03 World Transportation - 5 -165 -653 1e+04 93.1 3.66e-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.079 -0.211 7.91 0.116 0 0 0 test.phys initStep - 1 0.0431 -0.305 10 0.116 0 2.1 2.1 World Transportation - 2 -171 -449 1e+04 0.116 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.0862 -0.104 5.14 3.27 0 0 0 test.phys initStep - 1 0.0403 -0.374 10 3.27 0 4.86 4.86 World Transportation - 2 -94.4 -555 1e+04 3.27 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.0263 0.0911 4.44 95.7 1.61 4.44 1e+03 test.phys biasWrapper(eBrem) - 3 0.125 0.0885 10 93.5 2.17 5.57 1.01e+03 World Transportation - 4 1.24e+03 376 1e+04 93.5 3.68e-22 1.01e+04 1.11e+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.0911 4.44 2.71 0 0 0 test.phys initStep - 1 0.0986 0.093 10 2.71 0 5.56 5.56 World Transportation - 2 130 3.64 1e+04 2.71 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 7.81e-06 6.71e-06 0.0135 100 0.00335 0.0135 1e+03 test.phys biasWrapper(eBrem) - 3 -0.249 0.136 7.09 93.1 2.83 7.09 1.01e+03 test.phys eIoni - 4 -0.197 0.135 10 91.8 1.33 2.91 1.01e+03 World Transportation - 5 309 143 1e+04 91.8 3.65e-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.249 0.136 7.09 3.98 0 0 0 test.phys initStep - 1 -0.147 0.957 8.24 3.5 0.487 1.48 1.48 test.phys msc - 2 -0.189 1.83 9.86 2.74 0.753 2.04 3.52 test.phys msc - 3 -0.0914 1.98 10 2.62 0.119 0.234 3.75 World Transportation - 4 8.62e+03 6.42e+03 1e+04 2.62 3.95e-22 1.47e+04 1.47e+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 7.81e-06 6.71e-06 0.0135 0.0345 0 0 0 test.phys initStep - 1 -0.0854 0.0296 0.956 0.0341 0 0.947 0.947 test.phys compt - 2 -1.3 0.358 2.53 0.0339 0 2.02 2.96 test.phys compt - 3 -1.47 0.36 3.06 0 0.00156 0.561 3.52 test.phys phot - -********************************************************************************************************* -* 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 -1.47 0.36 3.06 0.0324 0 0 0 test.phys initStep - 1 -1.47 0.364 3.06 0 0.0324 0.01 0.01 test.phys eIoni - -********************************************************************************************************* -* 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.3 0.358 2.53 0.000177 0 0 0 test.phys initStep - 1 -1.3 0.358 2.53 0 0.000177 6.03e-06 6.03e-06 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 -0.0854 0.0296 0.956 0.000378 0 0 0 test.phys initStep - 1 -0.0854 0.0296 0.956 0 0.000378 1.14e-05 1.14e-05 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.00406 0.00283 0.525 99.8 0.19 0.525 1e+03 test.phys biasWrapper(eBrem) - 3 -0.00927 -0.0344 3.91 98.3 1.39 3.38 1e+03 test.phys biasWrapper(eBrem) - 4 -0.0106 -0.0144 5.24 45.6 0.43 1.33 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.0189 -0.00344 7 44.9 0.626 1.76 1.01e+03 test.phys biasWrapper(eBrem) - 6 0.0112 0.0109 7.24 44.8 0.101 0.247 1.01e+03 test.phys biasWrapper(eBrem) - 7 -0.0795 0.0698 8.61 44.3 0.451 1.37 1.01e+03 test.phys biasWrapper(eBrem) - 8 -0.148 0.196 10 43.7 0.57 1.4 1.01e+03 World Transportation - 9 -504 72.3 1e+04 43.7 3.43e-22 1e+04 1.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.0795 0.0698 8.61 0.0281 0 0 0 test.phys initStep - 1 -0.0244 0.232 10 0.0281 0 1.4 1.4 World Transportation - 2 396 1.17e+03 1e+04 0.0281 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.0112 0.0109 7.24 0.0307 0 0 0 test.phys initStep - 1 -0.0117 0.0491 7.98 0 0.00156 0.738 0.738 test.phys phot - -********************************************************************************************************* -* 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 -0.0117 0.0491 7.98 0.0291 0 0 0 test.phys initStep - 1 -0.0142 0.048 7.98 0 0.0291 0.00833 0.00833 test.phys eIoni + 2 0.03 0.0621 3.87 98.7 1.26 3.87 1e+03 test.phys biasWrapper(eBrem) + 3 0.0277 0.0703 4.14 90.7 0.0726 0.271 1e+03 test.phys biasWrapper(eBrem) + 4 0.000522 0.167 6.24 76.9 0.895 2.11 1.01e+03 test.phys biasWrapper(eBrem) + 5 0.00309 0.175 6.43 76.5 0.133 0.192 1.01e+03 test.phys biasWrapper(eBrem) + 6 0.0466 0.312 10 75.4 1.16 3.57 1.01e+03 World Transportation + 7 41.6 165 1e+04 75.4 3.59e-22 9.99e+03 1.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.0189 -0.00344 7 0.0178 0 0 0 test.phys initStep - 1 0.0125 0.0462 7.68 0 0.00156 0.686 0.686 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 0.0125 0.0462 7.68 0.0162 0 0 0 test.phys initStep - 1 0.0128 0.0469 7.68 0 0.0162 0.00304 0.00304 test.phys eIoni + 0 0.00309 0.175 6.43 0.261 0 0 0 test.phys initStep + 1 0.0164 0.304 10 0.261 0 3.57 3.57 World Transportation + 2 37.4 362 1e+04 0.261 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.0106 -0.0144 5.24 52.4 0 0 0 test.phys initStep - 1 -0.0772 0.122 10 52.4 0 4.76 4.76 World Transportation - 2 -140 287 1e+04 52.4 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.000522 0.167 6.24 12.8 0 0 0 test.phys initStep + 1 0.0538 0.378 10 12.8 0 3.77 3.77 World Transportation + 2 142 562 1e+04 12.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.00927 -0.0344 3.91 0.032 0 0 0 test.phys initStep - 1 -0.0126 -0.0166 4.74 0 0.00156 0.828 0.828 test.phys phot + 0 0.0277 0.0703 4.14 7.99 0 0 0 test.phys initStep + 1 -0.0201 0.257 10 7.99 0 5.87 5.87 World Transportation + 2 -81.5 318 1e+04 7.99 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.00406 0.00283 0.525 0.0405 0 0 0 test.phys initStep - 1 -0.0427 0.0191 7.89 0 0.00156 7.37 7.37 test.phys phot + 0 0.03 0.0621 3.87 0.017 0 0 0 test.phys initStep + 1 0.0147 0.114 6.35 0 0.00156 2.48 2.48 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 +* 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.0427 0.0191 7.89 0.0389 0 0 0 test.phys initStep - 1 -0.0472 0.0189 7.89 0 0.0389 0.0138 0.0138 test.phys eIoni + 0 0.0147 0.114 6.35 0.0154 0 0 0 test.phys initStep + 1 0.0156 0.114 6.35 0 0.0154 0.00279 0.00279 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 3 +* 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.0126 -0.0166 4.74 0.0305 0 0 0 test.phys initStep - 1 -0.0144 -0.0175 4.74 0 0.0305 0.00903 0.00903 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.00723 0.00563 1.38 99.5 0.471 1.38 1e+03 test.phys biasWrapper(eBrem) + 3 0.067 0.0352 4.07 96.3 1.29 2.7 1e+03 test.phys biasWrapper(eBrem) + 4 0.171 0.326 10 94 2.29 5.94 1.01e+03 World Transportation + 5 47.3 527 1e+04 94 3.66e-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.067 0.0352 4.07 1.94 0 0 0 test.phys initStep + 1 0.17 0.333 10 1.94 0 5.94 5.94 World Transportation + 2 173 503 1e+04 1.94 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.00723 0.00563 1.38 0.0242 0 0 0 test.phys initStep + 1 0.0189 0.00962 2.88 0 0.00156 1.5 1.5 test.phys phot + +********************************************************************************************************* +* 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.0189 0.00962 2.88 0.0226 0 0 0 test.phys initStep + 1 0.0175 0.0107 2.88 0 0.0226 0.00539 0.00539 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.0054 -0.0181 1.51 99.1 0.842 1.51 1e+03 test.phys biasWrapper(eBrem) + 3 0.0585 -0.0983 5.7 97.2 1.87 4.19 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.0778 -0.181 7.46 96.4 0.813 1.76 1.01e+03 test.phys biasWrapper(eBrem) + 5 0.0604 -0.334 10 95.4 0.96 2.55 1.01e+03 World Transportation + 6 174 -408 1e+04 95.4 3.66e-22 1e+04 1.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.0778 -0.181 7.46 0.0148 0 0 0 test.phys initStep + 1 0.0775 -0.189 7.57 0 0.00156 0.114 0.114 test.phys phot + +********************************************************************************************************* +* 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.0585 -0.0983 5.7 0.0225 0 0 0 test.phys initStep + 1 0.198 -0.31 9.75 0 0.00156 4.06 4.06 test.phys phot + +********************************************************************************************************* +* 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.0054 -0.0181 1.51 0.0367 0 0 0 test.phys initStep + 1 0.00562 -0.0187 1.58 0 0.00156 0.0703 0.0703 test.phys phot + +********************************************************************************************************* +* 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 0.00562 -0.0187 1.58 0.0351 0 0 0 test.phys initStep + 1 0.00236 -0.0195 1.58 0 0.0351 0.0115 0.0115 test.phys eIoni + +********************************************************************************************************* +* 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.198 -0.31 9.75 0.0209 0 0 0 test.phys initStep + 1 0.199 -0.311 9.75 0 0.0209 0.00471 0.00471 test.phys eIoni + +********************************************************************************************************* +* 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.0775 -0.189 7.57 0.0133 0 0 0 test.phys initStep + 1 0.077 -0.188 7.57 0 0.0133 0.00214 0.00214 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.000821 -0.0631 4.78 98.2 1.79 4.78 1e+03 test.phys biasWrapper(eBrem) + 3 -0.00548 -0.0932 7.13 97 0.866 2.35 1.01e+03 test.phys biasWrapper(eBrem) + 4 -0.00655 -0.103 7.37 64.1 0.0777 0.242 1.01e+03 test.phys biasWrapper(eBrem) + 5 -0.0541 -0.194 9.23 55.1 0.799 1.87 1.01e+03 test.phys biasWrapper(eBrem) + 6 -0.0606 -0.294 10 54.6 0.543 0.777 1.01e+03 World Transportation + 7 -225 -1.71e+03 1e+04 54.6 3.54e-22 1.01e+04 1.11e+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.0541 -0.194 9.23 8.14 0 0 0 test.phys initStep + 1 -0.0829 -0.286 10 8.14 0 0.776 0.776 World Transportation + 2 -375 -1.2e+03 1e+04 8.14 0 1.01e+04 1.01e+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.00655 -0.103 7.37 32.9 0 0 0 test.phys initStep + 1 -0.00819 -0.221 10 32.9 0 2.63 2.63 World Transportation + 2 -6.26 -451 1e+04 32.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.00548 -0.0932 7.13 0.265 0 0 0 test.phys initStep + 1 -0.0145 -0.226 10 0.265 0 2.88 2.88 World Transportation + 2 -31.2 -460 1e+04 0.265 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.000821 -0.0631 4.78 0.0487 0 0 0 test.phys initStep + 1 -0.083 -0.125 10 0.0487 0 5.22 5.22 World Transportation + 2 -161 -119 1e+04 0.0487 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.0302 -0.00505 2.18 97.6 0.78 2.18 1e+03 test.phys eIoni + 3 -0.0602 0.025 5.55 96.1 1.41 3.38 1.01e+03 test.phys biasWrapper(eBrem) + 4 -0.0791 -0.012 6.96 94.1 0.594 1.41 1.01e+03 test.phys eIoni + 5 -0.0798 -0.012 7.18 84.9 0.0619 0.212 1.01e+03 test.phys eIoni + 6 -0.0402 -0.0653 10 83.9 1 2.83 1.01e+03 World Transportation + 7 -398 137 1e+04 83.9 3.62e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.0798 -0.012 7.18 9.17 0 0 0 test.phys initStep + 1 -0.608 0.745 10 7.77 1.4 3.06 3.06 World Transportation + 2 -3.24e+03 4.9e+03 1e+04 7.77 3.39e-22 1.16e+04 1.16e+04 OutOfWorld 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 + 0 -0.0791 -0.012 6.96 1.43 0 0 0 test.phys initStep + 1 -0.449 -1.96 6.98 0.723 0.703 1.98 1.98 test.phys eIoni + 2 -0.104 -2.37 6.98 0.0892 0.634 1.29 3.28 test.phys eIoni + 3 -0.11 -2.38 6.98 0 0.0892 0.0573 3.33 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.0302 -0.00505 2.18 1.63 0 0 0 test.phys initStep + 1 -0.981 0.242 2.49 1.14 0.482 1.04 1.04 test.phys msc + 2 -1.55 0.994 2.68 0.518 0.625 1.76 2.8 test.phys eIoni + 3 -1.76 1.07 2.45 0 0.518 0.882 3.68 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.0602 0.025 5.55 0.0473 0 0 0 test.phys initStep + 1 -0.116 -0.168 10 0.0473 0 4.45 4.45 World Transportation + 2 -124 -434 1e+04 0.0473 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.00555 0.015 1.09 45.4 0.393 1.09 1e+03 test.phys biasWrapper(eBrem) + 3 0.00363 0.00273 1.67 45 0.21 0.582 1e+03 test.phys biasWrapper(eBrem) + 4 0.197 0.0578 10 42 2.98 8.37 1.01e+03 World Transportation + 5 -1.65e+03 89.2 1e+04 42 3.46e-22 1.01e+04 1.11e+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.00363 0.00273 1.67 0.189 0 0 0 test.phys initStep + 1 0.295 -0.126 10 0.189 0 8.33 8.33 World Transportation + 2 349 -154 1e+04 0.189 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.00555 0.015 1.09 54.2 0 0 0 test.phys initStep + 1 -0.0708 -0.0181 10 54.2 0 8.91 8.91 World Transportation + 2 -73.2 -37.1 1e+04 54.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 0 10 96.2 3.84 10 1.01e+03 World Transportation + 3 -983 -597 1e+04 96.2 3.69e-22 1.01e+04 1.11e+04 OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0.01s Sys=0s + User=0.01s Real=0s Sys=0s Region -- -- appears in world volume This region is in the mass world. @@ -1160,99 +1241,125 @@ 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.0879 -0.0381 6.43 97.3 2.52 6.43 1.01e+03 test.phys biasWrapper(eBrem) - 3 -0.142 0.0644 10 95.8 1.56 3.57 1.01e+03 World Transportation - 4 -22.8 268 1e+04 95.8 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + 2 0.0148 0.0527 2.85 99 0.946 2.85 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0606 0.0485 6.44 83.3 1.58 3.59 1.01e+03 test.phys biasWrapper(eBrem) + 4 -0.0444 -0.0146 10 81.8 1.55 3.56 1.01e+03 World Transportation + 5 99.5 -83.6 1e+04 81.8 3.61e-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.0606 0.0485 6.44 14.1 0 0 0 test.phys initStep + 1 -0.0271 -0.0152 10 14.1 0 3.56 3.56 World Transportation + 2 94 -179 1e+04 14.1 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.0879 -0.0381 6.43 0.0861 0 0 0 test.phys initStep - 1 -0.158 0.0764 10 0.0861 0 3.57 3.57 World Transportation - 2 -197 320 1e+04 0.0861 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 1.14 0 0 0 test.phys initStep + 1 0.0901 6.83e-05 10 1.14 0 7.15 7.15 World Transportation + 2 105 -73.5 1e+04 1.14 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.0879 -0.0381 6.43 1.07 0 0 0 test.phys initStep - 1 -0.142 0.0658 10 1.07 0 3.57 3.57 World Transportation - 2 -151 291 1e+04 1.07 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 5.46 0 0 0 test.phys initStep + 1 0.0105 -0.148 10 5.46 0 7.15 7.15 World Transportation + 2 -6 -281 1e+04 5.46 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.0879 -0.0381 6.43 0.0728 0 0 0 test.phys initStep - 1 -0.139 0.0691 10 0.0728 0 3.57 3.57 World Transportation - 2 -144 300 1e+04 0.0728 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 0.515 0 0 0 test.phys initStep + 1 -0.0286 -0.0823 10 0.515 0 7.15 7.15 World Transportation + 2 -60.6 -189 1e+04 0.515 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.0879 -0.0381 6.43 2.95 0 0 0 test.phys initStep - 1 -0.132 0.0783 10 2.95 0 3.57 3.57 World Transportation - 2 -124 326 1e+04 2.95 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 9.62 0 0 0 test.phys initStep + 1 -0.0463 -0.059 10 9.62 0 7.15 7.15 World Transportation + 2 -85.4 -156 1e+04 9.62 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.0879 -0.0381 6.43 0.675 0 0 0 test.phys initStep - 1 -0.0816 0.118 10 0.675 0 3.57 3.57 World Transportation - 2 17.6 437 1e+04 0.675 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 1.51 0 0 0 test.phys initStep + 1 0.119 -0.274 10 1.51 0 7.16 7.16 World Transportation + 2 145 -457 1e+04 1.51 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.0879 -0.0381 6.43 0.663 0 0 0 test.phys initStep - 1 -0.134 0.0639 10 0.663 0 3.57 3.57 World Transportation - 2 -130 285 1e+04 0.663 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 0.0451 0 0 0 test.phys initStep + 1 -0.0282 -0.118 10 0.0451 0 7.15 7.15 World Transportation + 2 -60.1 -239 1e+04 0.0451 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.0879 -0.0381 6.43 0.945 0 0 0 test.phys initStep - 1 -0.144 0.0634 10 0.945 0 3.57 3.57 World Transportation - 2 -158 284 1e+04 0.945 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 0.195 0 0 0 test.phys initStep + 1 0.0736 -0.0785 7.91 0.189 0 5.06 5.06 test.phys compt + 2 0.409 -1.01 10 0.189 0 2.31 7.37 World Transportation + 3 1.6e+03 -4.44e+03 1e+04 0.189 0 1.11e+04 1.11e+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 0.0736 -0.0785 7.91 0.00609 0 0 0 test.phys initStep + 1 0.0736 -0.0783 7.91 0 0.00609 0.000576 0.000576 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.0879 -0.0381 6.43 4.95 0 0 0 test.phys initStep - 1 -0.0731 0.0686 10 4.95 0 3.57 3.57 World Transportation - 2 41.1 299 1e+04 4.95 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 43.7 0 0 0 test.phys initStep + 1 0.0467 -0.0824 10 43.7 0 7.15 7.15 World Transportation + 2 44.6 -189 1e+04 43.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.0879 -0.0381 6.43 73.7 0 0 0 test.phys initStep - 1 -0.153 0.0697 10 73.7 0 3.57 3.57 World Transportation - 2 -181 302 1e+04 73.7 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 1.09 0 0 0 test.phys initStep + 1 -0.0141 -0.0855 10 1.09 0 7.15 7.15 World Transportation + 2 -40.3 -193 1e+04 1.09 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.0879 -0.0381 6.43 0.136 0 0 0 test.phys initStep - 1 -0.175 0.0433 10 0.136 0 3.57 3.57 World Transportation - 2 -242 228 1e+04 0.136 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0148 0.0527 2.85 0.0202 0 0 0 test.phys initStep + 1 0.00677 0.0272 4 0 0.00156 1.14 1.14 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00677 0.0272 4 0.0186 0 0 0 test.phys initStep + 1 0.00553 0.0271 4 0 0.0186 0.00384 0.00384 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1261,696 +1368,148 @@ 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.0382 0.000513 2.06 98.7 0.727 2.06 1e+03 test.phys eIoni - 3 -0.189 0.142 10 95.6 3.09 7.95 1.01e+03 World Transportation - 4 -519 -602 1e+04 95.6 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 0.0343 0.0741 3.55 98.3 1.68 3.55 1e+03 test.phys biasWrapper(eBrem) + 3 0.0277 0.17 7.99 95.4 2.02 4.45 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.0502 0.216 10 94.7 0.716 2.01 1.01e+03 World Transportation + 5 495 323 1e+04 94.7 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +* 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.0382 0.000513 2.06 0.534 0 0 0 test.phys initStep - 1 -0.0766 0.284 2.26 0 0.534 0.921 0.921 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.00352 -0.00428 0.545 99.2 0.19 0.545 1e+03 test.phys biasWrapper(eBrem) - 3 0.00371 -0.00439 0.577 95.6 0.0101 0.0326 1e+03 test.phys eIoni - 4 0.00753 -0.00562 3.9 89.2 1.14 3.32 1e+03 test.phys biasWrapper(eBrem) - 5 -0.000136 0.0128 6.67 86 1.34 2.77 1.01e+03 test.phys biasWrapper(eBrem) - 6 0.0795 0.0734 10 84.8 1.26 3.33 1.01e+03 World Transportation - 7 635 -111 1e+04 84.8 3.63e-22 1e+04 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.00371 -0.00439 0.577 3.57 0 0 0 test.phys initStep - 1 -0.367 0.69 1.4 3.2 0.372 1.14 1.14 test.phys msc - 2 -1.12 1.01 2.5 2.6 0.602 1.47 2.61 test.phys msc - 3 -1.13 1.01 2.52 2.4 0.00521 0.024 2.64 test.phys biasWrapper(eBrem) - 4 -2.54 0.918 3.07 1.89 0.51 1.51 4.15 test.phys msc - 5 -1.65 -0.344 3.44 1.18 0.715 1.84 6 test.phys msc - 6 -1.54 -0.974 4.2 0.466 0.692 1.78 7.78 test.phys biasWrapper(eBrem) - 7 -1.74 -1.1 4.04 0 0.466 0.762 8.54 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.54 -0.974 4.2 0.0185 0 0 0 test.phys initStep - 1 -1.54 -0.975 4.2 0 0.00156 0.00148 0.00148 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.54 -0.975 4.2 0.0169 0 0 0 test.phys initStep - 1 -1.54 -0.976 4.2 0 0.0169 0.00326 0.00326 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.13 1.01 2.52 0.191 0 0 0 test.phys initStep - 1 -2.65 1.81 3.84 0.129 0 2.16 2.16 test.phys compt - 2 -1.33 -31.8 10 0.129 0 34.2 36.4 World Transportation - 3 389 -1e+04 1.83e+03 0.129 0 1.01e+04 1.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.65 1.81 3.84 0.0619 0 0 0 test.phys initStep - 1 -2.65 1.82 3.85 0 0.0619 0.0307 0.0307 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.000136 0.0128 6.67 1.86 0 0 0 test.phys initStep - 1 0.0614 0.0799 10 1.86 0 3.33 3.33 World Transportation - 2 185 201 1e+04 1.86 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.00753 -0.00562 3.9 5.25 0 0 0 test.phys initStep - 1 0.0688 -0.162 10 5.25 0 6.1 6.1 World Transportation - 2 101 -256 1e+04 5.25 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0277 0.17 7.99 0.851 0 0 0 test.phys initStep + 1 0.0599 0.197 10 0.851 0 2.01 2.01 World Transportation + 2 161 133 1e+04 0.851 0 9.99e+03 9.99e+03 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.00352 -0.00428 0.545 4.81 0 0 0 test.phys initStep - 1 -0.00831 -0.0541 10 4.81 0 9.46 9.46 World Transportation - 2 -12.5 -52.7 1e+04 4.81 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 0.0244 0 0 0 test.phys initStep + 1 0.127 0.123 6.71 0 0.00156 3.17 3.17 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.127 0.123 6.71 0.0229 0 0 0 test.phys initStep + 1 0.128 0.124 6.71 0 0.0229 0.00548 0.00548 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.00352 -0.00428 0.545 0.185 0 0 0 test.phys initStep - 1 -0.0057 -0.0807 10 0.185 0 9.46 9.46 World Transportation - 2 -9.75 -80.9 1e+04 0.185 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 7.18 0 0 0 test.phys initStep + 1 0.176 0.191 10 7.18 0 6.46 6.46 World Transportation + 2 219 180 1e+04 7.18 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.00352 -0.00428 0.545 71.5 0 0 0 test.phys initStep - 1 0.066 -0.0591 10 71.5 0 9.46 9.46 World Transportation - 2 66.1 -57.9 1e+04 71.5 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 0.757 0 0 0 test.phys initStep + 1 0.061 0.0929 4.61 0.371 0 1.07 1.07 test.phys compt + 2 7.24 4.17 6.94 0.312 0 8.58 9.65 test.phys compt + 3 8.54 6.1 10 0.312 0 3.84 13.5 World Transportation + 4 4.22e+03 6.28e+03 1e+04 0.312 0 1.25e+04 1.25e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +* 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.00352 -0.00428 0.545 0.0209 0 0 0 test.phys initStep - 1 0.0206 0.0146 3.81 0 0.00156 3.26 3.26 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0206 0.0146 3.81 0.0194 0 0 0 test.phys initStep - 1 0.0194 0.0139 3.81 0 0.0194 0.00411 0.00411 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.00352 -0.00428 0.545 0.714 0 0 0 test.phys initStep - 1 0.0381 -0.0115 10 0.714 0 9.46 9.46 World Transportation - 2 36.6 -7.69 1e+04 0.714 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.00352 -0.00428 0.545 58.8 0 0 0 test.phys initStep - 1 0.168 -0.0383 10 58.8 0 9.46 9.46 World Transportation - 2 174 -36 1e+04 58.8 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.00352 -0.00428 0.545 0.241 0 0 0 test.phys initStep - 1 0.0216 -0.0537 10 0.241 0 9.46 9.46 World Transportation - 2 19.2 -52.3 1e+04 0.241 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.00352 -0.00428 0.545 1.05 0 0 0 test.phys initStep - 1 -0.032 -0.0516 10 1.05 0 9.46 9.46 World Transportation - 2 -37.5 -50 1e+04 1.05 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.00352 -0.00428 0.545 0.0783 0 0 0 test.phys initStep - 1 0.0156 -0.00605 10 0.0783 0 9.46 9.46 World Transportation - 2 12.8 -1.88 1e+04 0.0783 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.00352 -0.00428 0.545 0.607 0 0 0 test.phys initStep - 1 0.021 -0.0871 10 0.607 0 9.46 9.46 World Transportation - 2 18.5 -87.6 1e+04 0.607 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.000301 0.0003 0.113 97.9 0.0441 0.113 1e+03 test.phys biasWrapper(eBrem) - 3 -0.0374 -0.0588 5.05 93.3 1.8 4.93 1.01e+03 test.phys eIoni - 4 -0.0946 -0.0873 10 91.5 1.78 4.96 1.01e+03 World Transportation - 5 -26.1 211 1e+04 91.5 3.65e-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.0374 -0.0588 5.05 2.75 0 0 0 test.phys initStep - 1 -0.321 0.604 6.47 1.07 0.726 1.78 1.78 test.phys eIoni - 2 -0.889 0.293 7.09 0.42 0.652 1.7 3.47 test.phys eIoni - 3 -0.897 0.237 6.85 0 0.42 0.66 4.13 test.phys eIoni - -********************************************************************************************************* -* 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.321 0.604 6.47 0.953 0 0 0 test.phys initStep - 1 -0.858 1.07 6.77 0.201 0.752 1.58 1.58 test.phys eIoni - 2 -0.884 1.11 6.71 0 0.201 0.218 1.8 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.000301 0.0003 0.113 5.11 0 0 0 test.phys initStep - 1 0.00453 0.0332 10 5.11 0 9.89 9.89 World Transportation - 2 4.88 33.3 1e+04 5.11 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.000301 0.0003 0.113 3.23 0 0 0 test.phys initStep - 1 -0.0018 0.101 10 3.23 0 9.89 9.89 World Transportation - 2 -1.52 102 1e+04 3.23 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.000301 0.0003 0.113 88.6 0 0 0 test.phys initStep - 1 -0.32 0.0169 9.37 0 0 9.26 9.26 test.phys conv + 0 7.24 4.17 6.94 0.0599 0 0 0 test.phys initStep + 1 7.25 4.17 6.93 0 0.0599 0.0291 0.0291 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 9 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.32 0.0169 9.37 1.4 0 0 0 test.phys initStep - 1 -0.265 0.0322 9.63 1.28 0.118 0.269 0.269 test.phys msc - 2 -0.216 0.167 9.8 1.21 0.0717 0.223 0.491 test.phys msc - 3 -0.273 0.221 9.95 1.15 0.0639 0.168 0.659 test.phys msc - 4 -0.265 0.253 10 1.13 0.0179 0.0641 0.724 World Transportation - 5 -2.82e+03 1e+04 9.12e+03 1.13 3.71e-22 1.38e+04 1.38e+04 OutOfWorld Transportation + 0 0.061 0.0929 4.61 0.385 0 0 0 test.phys initStep + 1 -0.0236 0.0455 4.8 0 0.385 0.582 0.582 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.000301 0.0003 0.113 0.694 0 0 0 test.phys initStep - 1 0.00865 0.0763 10 0.694 0 9.89 9.89 World Transportation - 2 9.06 76.9 1e+04 0.694 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 25.5 0 0 0 test.phys initStep + 1 0.221 0.19 10 25.5 0 6.46 6.46 World Transportation + 2 288 180 1e+04 25.5 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.000301 0.0003 0.113 0.0979 0 0 0 test.phys initStep - 1 -0.000182 0.000738 0.362 0.0927 0 0.248 0.248 test.phys compt - 2 -0.205 -1.02 1.4 0.0832 0 1.47 1.72 test.phys compt - 3 3.88 1.67 10 0.0832 0 9.89 11.6 World Transportation - 4 4.75e+03 3.13e+03 1e+04 0.0832 0 1.15e+04 1.15e+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 -0.205 -1.02 1.4 0.00952 0 0 0 test.phys initStep - 1 -0.205 -1.02 1.4 0 0.00952 0.00122 0.00122 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 -0.000182 0.000738 0.362 0.00521 0 0 0 test.phys initStep - 1 -0.000157 0.000862 0.362 0 0.00521 0.000446 0.000446 test.phys eIoni + 0 0.0343 0.0741 3.55 32.4 0 0 0 test.phys initStep + 1 0.238 0.205 10 32.4 0 6.46 6.46 World Transportation + 2 316 202 1e+04 32.4 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.000301 0.0003 0.113 5.18 0 0 0 test.phys initStep - 1 -0.0407 0.129 10 5.18 0 9.89 9.89 World Transportation - 2 -40.9 130 1e+04 5.18 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 0.00642 0 0 0 test.phys initStep + 1 0.0355 0.0752 3.6 0 0.00156 0.0522 0.0522 test.phys phot + +********************************************************************************************************* +* 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.0355 0.0752 3.6 0.00485 0 0 0 test.phys initStep + 1 0.0354 0.0753 3.6 0 0.00485 0.000397 0.000397 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.000301 0.0003 0.113 0.0109 0 0 0 test.phys initStep - 1 -0.000896 0.00632 0.544 0 0.00156 0.43 0.43 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.000896 0.00632 0.544 0.00933 0 0 0 test.phys initStep - 1 -0.000851 0.00595 0.544 0 0.00933 0.00118 0.00118 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.000301 0.0003 0.113 1.27 0 0 0 test.phys initStep - 1 -0.0923 0.0522 10 1.27 0 9.89 9.89 World Transportation - 2 -93 52.5 1e+04 1.27 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.000301 0.0003 0.113 2.75 0 0 0 test.phys initStep - 1 -0.00886 0.0725 10 2.75 0 9.89 9.89 World Transportation - 2 -8.66 73 1e+04 2.75 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.000301 0.0003 0.113 2.1 0 0 0 test.phys initStep - 1 -0.0934 0.0698 10 2.1 0 9.89 9.89 World Transportation - 2 -94.2 70.3 1e+04 2.1 0 9.99e+03 1e+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.32 0.0169 9.37 86.1 0 0 0 test.phys initStep - 1 -0.347 0.0188 9.98 85.7 0.213 0.613 0.613 test.phys biasWrapper(eBrem) - 2 -0.347 0.019 10 85.7 0.00318 0.016 0.629 World Transportation - 3 -254 124 1e+04 85.7 3.63e-22 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.347 0.0188 9.98 0.243 0 0 0 test.phys initStep - 1 -0.347 0.0189 10 0.243 0 0.016 0.016 World Transportation - 2 -229 85 1e+04 0.243 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.0432 0.0276 2.55 97.6 1.39 2.55 1e+03 test.phys eIoni - 3 -0.272 -0.0682 6.04 92.5 1.33 3.51 1.01e+03 test.phys eIoni - 4 -0.311 -0.105 7.14 92.1 0.425 1.1 1.01e+03 test.phys biasWrapper(eBrem) - 5 -0.398 -0.0948 9.68 90.7 1.34 2.54 1.01e+03 test.phys biasWrapper(eBrem) - 6 -0.415 -0.0877 10 90.6 0.0969 0.325 1.01e+03 World Transportation - 7 -587 172 1e+04 90.6 3.65e-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.272 -0.0682 6.04 3.81 0 0 0 test.phys initStep - 1 -0.758 0.0519 6.63 3.08 0.242 0.784 0.784 test.phys eIoni - 2 -2.17 0.843 7.45 2.44 0.64 2.02 2.81 test.phys msc - 3 -3.46 1.22 8.44 1.89 0.542 1.78 4.58 test.phys msc - 4 -4.44 1.51 9.48 1.3 0.596 1.78 6.36 test.phys msc - 5 -4.94 1.26 10 0.879 0.419 0.983 7.35 World Transportation - 6 -4.94 1.26 10 0.879 0 0 7.35 test.phys Transportation - 7 -4.96 1.18 9.95 0.854 0.0255 0.0927 7.44 test.phys msc - 8 -4.93 1.12 9.95 0.837 0.0164 0.074 7.51 test.phys msc - 9 -4.93 1.05 9.97 0.815 0.0221 0.074 7.59 test.phys msc - 10 -4.9 0.979 9.97 0.792 0.0228 0.074 7.66 test.phys msc - 11 -4.89 0.909 9.99 0.771 0.0219 0.074 7.74 test.phys msc - 12 -4.9 0.894 10 0.764 0.0066 0.0191 7.76 World Transportation - 13 -353 -1e+04 7.98e+03 0.764 3.57e-22 1.28e+04 1.28e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.758 0.0519 6.63 0.49 0 0 0 test.phys initStep - 1 -0.699 0.0779 6.93 0 0.49 0.819 0.819 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.0432 0.0276 2.55 0.961 0 0 0 test.phys initStep - 1 -0.509 0.353 3.08 0.378 0.583 1.59 1.59 test.phys eIoni - 2 -0.453 0.499 2.95 0 0.378 0.567 2.15 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.398 -0.0948 9.68 0.0133 0 0 0 test.phys initStep - 1 -0.388 -0.0981 10 0.0133 0 0.325 0.325 World Transportation - 2 308 -101 1e+04 0.0133 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.311 -0.105 7.14 0.0603 0 0 0 test.phys initStep - 1 -0.433 -0.141 10 0.0603 0 2.86 2.86 World Transportation - 2 -424 -126 1e+04 0.0603 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.311 -0.105 7.14 0.243 0 0 0 test.phys initStep - 1 -0.451 -0.136 10 0.243 0 2.86 2.86 World Transportation - 2 -488 -107 1e+04 0.243 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.311 -0.105 7.14 0.172 0 0 0 test.phys initStep - 1 -0.445 -0.141 10 0.172 0 2.86 2.86 World Transportation - 2 -467 -125 1e+04 0.172 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.311 -0.105 7.14 1.63 0 0 0 test.phys initStep - 1 -0.514 -0.277 10 1.63 0 2.87 2.87 World Transportation - 2 -707 -602 1e+04 1.63 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.311 -0.105 7.14 0.316 0 0 0 test.phys initStep - 1 -0.472 -0.115 10 0.316 0 2.86 2.86 World Transportation - 2 -560 -33.8 1e+04 0.316 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.311 -0.105 7.14 0.0543 0 0 0 test.phys initStep - 1 -0.431 -0.129 10 0.0543 0 2.86 2.86 World Transportation - 2 -418 -82.6 1e+04 0.0543 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.311 -0.105 7.14 0.0134 0 0 0 test.phys initStep - 1 -0.317 -0.106 7.26 0 0.00156 0.117 0.117 test.phys phot - -********************************************************************************************************* -* 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 -0.317 -0.106 7.26 0.0118 0 0 0 test.phys initStep - 1 -0.318 -0.105 7.26 0 0.0118 0.00176 0.00176 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.311 -0.105 7.14 7.15 0 0 0 test.phys initStep - 1 -0.447 -0.143 10 7.15 0 2.86 2.86 World Transportation - 2 -474 -132 1e+04 7.15 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.311 -0.105 7.14 0.977 0 0 0 test.phys initStep - 1 -0.47 -0.105 10 0.977 0 2.86 2.86 World Transportation - 2 -553 -0.945 1e+04 0.977 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.311 -0.105 7.14 0.00751 0 0 0 test.phys initStep - 1 -0.312 -0.105 7.15 0 0.00156 0.0144 0.0144 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.312 -0.105 7.15 0.00594 0 0 0 test.phys initStep - 1 -0.312 -0.105 7.15 0 0.00594 0.000553 0.000553 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 95.7 4.34 10 1.01e+03 World Transportation - 3 -353 563 1e+04 95.7 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.021 -0.0354 1.99 99.1 0.814 1.99 1e+03 test.phys biasWrapper(eBrem) - 3 -0.0758 -0.0673 5.55 92.9 1.14 3.56 1.01e+03 test.phys biasWrapper(eBrem) - 4 -0.0779 -0.0678 6.06 92.3 0.411 0.516 1.01e+03 test.phys biasWrapper(eBrem) - 5 -0.13 -0.0632 8.86 71.4 1.21 2.8 1.01e+03 test.phys biasWrapper(eBrem) - 6 -0.116 -0.0709 10 71 0.441 1.14 1.01e+03 World Transportation - 7 308 -31.1 1e+04 71 3.57e-22 9.99e+03 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.13 -0.0632 8.86 19.6 0 0 0 test.phys initStep - 1 -0.124 -0.064 10 19.6 0 1.14 1.14 World Transportation - 2 54.2 -6.77 1e+04 19.6 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.0779 -0.0678 6.06 0.231 0 0 0 test.phys initStep - 1 -0.107 -0.0584 10 0.231 0 3.94 3.94 World Transportation - 2 -74.8 24 1e+04 0.231 0 9.99e+03 9.99e+03 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.0758 -0.0673 5.55 5.08 0 0 0 test.phys initStep - 1 -0.111 -0.0596 10 5.08 0 4.45 4.45 World Transportation - 2 -79.5 17.2 1e+04 5.08 0 9.99e+03 9.99e+03 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.021 -0.0354 1.99 0.00813 0 0 0 test.phys initStep - 1 -0.0213 -0.0355 2 0 0.00156 0.0131 0.0131 test.phys phot - -********************************************************************************************************* -* 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 -0.0213 -0.0355 2 0.00657 0 0 0 test.phys initStep - 1 -0.0215 -0.0356 2 0 0.00657 0.000653 0.000653 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.021 -0.0354 1.99 8.23 0 0 0 test.phys initStep - 1 -0.22 -0.0596 10 8.23 0 8.01 8.01 World Transportation - 2 -248 -30.3 1e+04 8.23 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.021 -0.0354 1.99 0.0177 0 0 0 test.phys initStep - 1 -0.0356 -0.0385 2.48 0 0.00156 0.488 0.488 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.0356 -0.0385 2.48 0.0161 0 0 0 test.phys initStep - 1 -0.0347 -0.0388 2.48 0 0.0161 0.00299 0.00299 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.021 -0.0354 1.99 3.22 0 0 0 test.phys initStep - 1 -0.229 -0.0436 10 3.22 0 8.01 8.01 World Transportation - 2 -260 -10.3 1e+04 3.22 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.021 -0.0354 1.99 0.0597 0 0 0 test.phys initStep - 1 -0.183 -0.0947 10 0.0597 0 8.01 8.01 World Transportation - 2 -202 -74.1 1e+04 0.0597 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.021 -0.0354 1.99 2.62 0 0 0 test.phys initStep - 1 -0.259 0.0527 10 2.62 0 8.02 8.02 World Transportation - 2 -297 110 1e+04 2.62 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.021 -0.0354 1.99 0.0335 0 0 0 test.phys initStep - 1 -0.117 -0.0582 6.82 0 0.00156 4.83 4.83 test.phys phot + 0 0.0343 0.0741 3.55 0.0218 0 0 0 test.phys initStep + 1 0.0622 0.0917 4.3 0 0.00156 0.76 0.76 test.phys phot ********************************************************************************************************* * 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.117 -0.0582 6.82 0.0319 0 0 0 test.phys initStep - 1 -0.116 -0.0552 6.82 0 0.0319 0.00979 0.00979 test.phys eIoni + 0 0.0622 0.0917 4.3 0.0202 0 0 0 test.phys initStep + 1 0.0624 0.0932 4.31 0 0.0202 0.00444 0.00444 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.021 -0.0354 1.99 55.2 0 0 0 test.phys initStep - 1 -0.235 -0.103 10 55.2 0 8.01 8.01 World Transportation - 2 -266 -84.8 1e+04 55.2 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 1.55 0 0 0 test.phys initStep + 1 0.196 0.154 10 1.55 0 6.46 6.46 World Transportation + 2 251 124 1e+04 1.55 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.021 -0.0354 1.99 28.1 0 0 0 test.phys initStep - 1 -0.276 -0.038 10 28.1 0 8.02 8.02 World Transportation - 2 -319 -3.31 1e+04 28.1 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 0.0512 0 0 0 test.phys initStep + 1 0.222 0.178 10 0.0512 0 6.46 6.46 World Transportation + 2 291 160 1e+04 0.0512 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.021 -0.0354 1.99 0.0465 0 0 0 test.phys initStep - 1 -0.216 -0.00688 10 0.0465 0 8.01 8.01 World Transportation - 2 -243 35.5 1e+04 0.0465 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0343 0.0741 3.55 0.0532 0 0 0 test.phys initStep + 1 0.203 0.185 10 0.0532 0 6.46 6.46 World Transportation + 2 261 172 1e+04 0.0532 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1959,129 +1518,142 @@ 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.00171 0.00344 0.466 99.1 0.155 0.466 1e+03 test.phys eIoni - 3 -0.106 -0.0325 6.71 95.8 2.76 6.24 1.01e+03 test.phys eIoni - 4 -0.122 -0.128 8.68 94.8 0.958 1.97 1.01e+03 test.phys biasWrapper(eBrem) - 5 -0.14 -0.205 10 94.2 0.562 1.33 1.01e+03 World Transportation - 6 -109 -694 1e+04 94.2 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.106 -0.0325 6.71 0.555 0 0 0 test.phys initStep - 1 -0.4 -0.00666 6.93 0 0.555 0.97 0.97 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.00171 0.00344 0.466 0.713 0 0 0 test.phys initStep - 1 -0.0565 0.0568 0.531 0.659 0.0539 0.104 0.104 test.phys msc - 2 -0.0719 0.122 0.83 0.538 0.121 0.319 0.422 test.phys msc - 3 -0.0669 -0.0397 1.13 0.118 0.42 0.498 0.92 test.phys msc - 4 -0.0913 -0.0335 1.15 0 0.118 0.0911 1.01 test.phys eIoni + 2 -0.0113 0.00818 5.36 92.6 2.39 5.37 1.01e+03 test.phys biasWrapper(eBrem) + 3 -0.0133 0.00401 5.42 81 0.0179 0.0609 1.01e+03 test.phys biasWrapper(eBrem) + 4 -0.0622 -0.194 8.49 52.4 1.12 3.08 1.01e+03 test.phys biasWrapper(eBrem) + 5 -0.104 -0.293 10 51.5 0.912 1.51 1.01e+03 World Transportation + 6 -383 -776 1e+04 51.5 3.49e-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.122 -0.128 8.68 1.95 0 0 0 test.phys initStep - 1 -0.138 -0.206 10 1.95 0 1.33 1.33 World Transportation - 2 -123 -589 1e+04 1.95 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0622 -0.194 8.49 27.4 0 0 0 test.phys initStep + 1 -0.0901 -0.309 10 27.4 0 1.51 1.51 World Transportation + 2 -186 -761 1e+04 27.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.122 -0.128 8.68 2.34 0 0 0 test.phys initStep - 1 -0.142 -0.209 10 2.34 0 1.33 1.33 World Transportation - 2 -154 -612 1e+04 2.34 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0133 0.00401 5.42 11.6 0 0 0 test.phys initStep + 1 -0.113 -0.385 10 11.6 0 4.59 4.59 World Transportation + 2 -217 -850 1e+04 11.6 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.122 -0.128 8.68 90.3 0 0 0 test.phys initStep - 1 -0.14 -0.208 10 90.3 0 1.33 1.33 World Transportation - 2 -137 -603 1e+04 90.3 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 2.3 0 0 0 test.phys initStep + 1 -0.156 -0.334 10 2.3 0 4.65 4.65 World Transportation + 2 -313 -737 1e+04 2.3 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.122 -0.128 8.68 0.775 0 0 0 test.phys initStep - 1 -0.134 -0.167 9.37 0.464 0 0.696 0.696 test.phys compt - 2 0.54 0.338 10 0.464 0 1.05 1.75 World Transportation - 3 1e+04 7.49e+03 9.32e+03 0.464 0 1.56e+04 1.56e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.0376 0 0 0 test.phys initStep + 1 -0.0529 -0.0862 6.69 0.0366 0 1.33 1.33 test.phys compt + 2 0.027 -0.305 6.86 0 0.00156 0.287 1.62 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.027 -0.305 6.86 0.035 0 0 0 test.phys initStep + 1 0.0241 -0.305 6.86 0 0.035 0.0115 0.0115 test.phys eIoni ********************************************************************************************************* * 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.134 -0.167 9.37 0.311 0 0 0 test.phys initStep - 1 -0.208 -0.23 9.49 0 0.311 0.424 0.424 test.phys eIoni + 0 -0.0529 -0.0862 6.69 0.001 0 0 0 test.phys initStep + 1 -0.0529 -0.0862 6.69 0 0.001 3.71e-05 3.71e-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.122 -0.128 8.68 7.47 0 0 0 test.phys initStep - 1 -0.137 -0.205 10 7.47 0 1.32 1.32 World Transportation - 2 -113 -582 1e+04 7.47 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.0177 0 0 0 test.phys initStep + 1 -0.0444 -0.0599 6.36 0 0.00156 0.998 0.998 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.0444 -0.0599 6.36 0.0161 0 0 0 test.phys initStep + 1 -0.0444 -0.059 6.36 0 0.0161 0.00299 0.00299 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.122 -0.128 8.68 0.0195 0 0 0 test.phys initStep - 1 -0.139 -0.197 10 0.0195 0 1.32 1.32 World Transportation - 2 -126 -519 1e+04 0.0195 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.934 0 0 0 test.phys initStep + 1 -0.161 -0.307 10 0.934 0 4.65 4.65 World Transportation + 2 -323 -680 1e+04 0.934 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.122 -0.128 8.68 62.2 0 0 0 test.phys initStep - 1 -0.142 -0.198 10 62.2 0 1.32 1.32 World Transportation - 2 -149 -528 1e+04 62.2 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.32 0 0 0 test.phys initStep + 1 -0.181 -0.275 10 0.32 0 4.65 4.65 World Transportation + 2 -365 -611 1e+04 0.32 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.122 -0.128 8.68 1.09 0 0 0 test.phys initStep - 1 -0.14 -0.204 10 1.09 0 1.32 1.32 World Transportation - 2 -137 -571 1e+04 1.09 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.101 0 0 0 test.phys initStep + 1 0.0214 -0.661 10 0.101 0 4.69 4.69 World Transportation + 2 70.5 -1.44e+03 1e+04 0.101 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.122 -0.128 8.68 0.107 0 0 0 test.phys initStep - 1 -0.14 -0.203 10 0.107 0 1.32 1.32 World Transportation - 2 -135 -567 1e+04 0.107 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.0511 0 0 0 test.phys initStep + 1 -0.134 -0.268 10 0.0511 0 4.65 4.65 World Transportation + 2 -265 -596 1e+04 0.0511 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.122 -0.128 8.68 0.0862 0 0 0 test.phys initStep - 1 -0.158 -0.202 10 0.0862 0 1.33 1.33 World Transportation - 2 -271 -557 1e+04 0.0862 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0113 0.00818 5.36 0.589 0 0 0 test.phys initStep + 1 -0.152 -0.314 10 0.589 0 4.65 4.65 World Transportation + 2 -304 -693 1e+04 0.589 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.0113 0.00818 5.36 0.274 0 0 0 test.phys initStep + 1 -0.138 -0.32 10 0.274 0 4.65 4.65 World Transportation + 2 -272 -708 1e+04 0.274 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.0113 0.00818 5.36 5.01 0 0 0 test.phys initStep + 1 -0.148 -0.295 10 5.01 0 4.65 4.65 World Transportation + 2 -294 -653 1e+04 5.01 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2090,8 +1662,173 @@ 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 0 10 96.3 3.65 10 1.01e+03 World Transportation - 3 413 504 1e+04 96.3 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 -0.000579 0.000728 0.496 99.5 0.223 0.496 1e+03 test.phys biasWrapper(eBrem) + 3 0.00872 0.0255 10 95.9 3.54 9.51 1.01e+03 World Transportation + 4 -129 -30.9 1e+04 95.9 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.000579 0.000728 0.496 0.242 0 0 0 test.phys initStep + 1 0.000534 0.00337 3.33 0.174 0 2.83 2.83 test.phys compt + 2 -3.46 -13 5.84 0.174 0 13.7 16.5 test.phys compt + 3 -7.9 -32.7 8.52 0.106 0 20.4 36.9 test.phys compt + 4 -3.16 -25.6 10 0.106 0 8.64 45.5 World Transportation + 5 6.7e+03 1e+04 2.1e+03 0.106 0 1.22e+04 1.23e+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 -7.9 -32.7 8.52 0.0683 0 0 0 test.phys initStep + 1 -7.9 -32.7 8.53 0 0.0683 0.0364 0.0364 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 -3.46 -13 5.84 0.000126 0 0 0 test.phys initStep + 1 -3.46 -13 5.84 0 0.000126 4.89e-06 4.89e-06 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.000534 0.00337 3.33 0.0675 0 0 0 test.phys initStep + 1 0.00253 0.0108 3.34 0 0.0675 0.0357 0.0357 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.000579 0.000728 0.496 1.93 0 0 0 test.phys initStep + 1 -0.00557 -0.00124 1.92 0.336 0 1.42 1.42 test.phys compt + 2 6.49 -3.22 -2.22e-16 0.336 0 7.5 8.92 World Transportation + 3 1e+04 -4.95e+03 -2.95e+03 0.336 0 1.15e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.00557 -0.00124 1.92 1.6 0 0 0 test.phys initStep + 1 0.47 0.0196 2.88 1.27 0.327 1.08 1.08 test.phys msc + 2 0.863 0.792 3.52 0.281 0.988 1.86 2.94 test.phys eIoni + 3 0.947 0.787 3.42 0 0.281 0.364 3.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.000579 0.000728 0.496 0.802 0 0 0 test.phys initStep + 1 1.86e-05 0.00237 0.605 0.445 0 0.109 0.109 test.phys compt + 2 16.8 -2.05 10 0.445 0 19.3 19.5 World Transportation + 3 1e+04 -1.22e+03 5.6e+03 0.445 0 1.15e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 1.86e-05 0.00237 0.605 0.357 0 0 0 test.phys initStep + 1 -0.103 0.0184 0.763 0 0.357 0.521 0.521 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.000579 0.000728 0.496 1.06 0 0 0 test.phys initStep + 1 -0.00397 0.0327 10 1.06 0 9.5 9.5 World Transportation + 2 -3.56 33.6 1e+04 1.06 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.000579 0.000728 0.496 0.103 0 0 0 test.phys initStep + 1 0.0542 0.0671 4.91 0.0758 0 4.41 4.41 test.phys compt + 2 4.13 0.217 0 0.0758 0 6.38 10.8 World Transportation + 3 8.31e+03 306 -1e+04 0.0758 0 1.3e+04 1.3e+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 0.0542 0.0671 4.91 0.0268 0 0 0 test.phys initStep + 1 0.0535 0.0671 4.91 0 0.0268 0.00722 0.00722 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.000579 0.000728 0.496 0.159 0 0 0 test.phys initStep + 1 0.258 0.0546 10 0.159 0 9.51 9.51 World Transportation + 2 272 56.7 1e+04 0.159 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.000579 0.000728 0.496 5.56 0 0 0 test.phys initStep + 1 0.0722 -0.0502 10 5.56 0 9.5 9.5 World Transportation + 2 76.6 -53.6 1e+04 5.56 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.000579 0.000728 0.496 1.3 0 0 0 test.phys initStep + 1 0.0301 0.116 10 1.3 0 9.5 9.5 World Transportation + 2 32.2 121 1e+04 1.3 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.000579 0.000728 0.496 0.105 0 0 0 test.phys initStep + 1 0.079 0.0217 10 0.105 0 9.5 9.5 World Transportation + 2 83.7 22 1e+04 0.105 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.000579 0.000728 0.496 0.294 0 0 0 test.phys initStep + 1 -0.000156 0.00176 1.41 0.149 0 0.917 0.917 test.phys compt + 2 1.23 -0.195 0.244 0.132 0 1.7 2.62 test.phys compt + 3 1.23 -0.448 0 0.132 0 0.351 2.97 World Transportation + 4 87.9 -1e+04 -9.68e+03 0.132 0 1.39e+04 1.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.23 -0.195 0.244 0.0168 0 0 0 test.phys initStep + 1 1.23 -0.195 0.244 0 0.0168 0.00323 0.00323 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.000156 0.00176 1.41 0.145 0 0 0 test.phys initStep + 1 -0.0118 0.00368 1.46 0 0.145 0.128 0.128 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2100,12 +1837,687 @@ 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 0 10 96.4 3.65 10 1.01e+03 World Transportation - 3 -625 -387 1e+04 96.4 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 -0.0584 0.00296 2.75 97.9 1.06 2.75 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0146 -0.0341 6.16 96.3 1.5 3.41 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.00557 -0.212 8.27 94.8 0.859 2.13 1.01e+03 test.phys eIoni + 5 0.00988 -0.259 8.74 94.6 0.179 0.468 1.01e+03 test.phys biasWrapper(eBrem) + 6 0.0236 -0.379 10 94.2 0.367 1.27 1.01e+03 World Transportation + 7 75.9 -836 1e+04 94.2 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 0.00557 -0.212 8.27 0.7 0 0 0 test.phys initStep + 1 0.257 0.0642 8.62 0.145 0.555 1.26 1.26 test.phys eIoni + 2 0.236 0.0778 8.66 0 0.145 0.129 1.39 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.00988 -0.259 8.74 0.0223 0 0 0 test.phys initStep + 1 0.0263 -0.32 9.34 0 0.00156 0.607 0.607 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 0.0263 -0.32 9.34 0.0207 0 0 0 test.phys initStep + 1 0.025 -0.319 9.34 0 0.0207 0.00462 0.00462 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.0146 -0.0341 6.16 0.0921 0 0 0 test.phys initStep + 1 0.0409 -0.356 10 0.0921 0 3.86 3.86 World Transportation + 2 144 -836 1e+04 0.0921 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.0584 0.00296 2.75 0.49 0 0 0 test.phys initStep + 1 -0.101 0.0247 5.43 0.321 0 2.69 2.69 test.phys compt + 2 -9.51 -0.549 10 0.321 0 10.5 13.2 World Transportation + 3 -1e+04 -610 4.86e+03 0.321 0 1.11e+04 1.11e+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 -0.101 0.0247 5.43 0.169 0 0 0 test.phys initStep + 1 -0.065 0.0275 5.48 0 0.169 0.165 0.165 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.0584 0.00296 2.75 0.0631 0 0 0 test.phys initStep + 1 -0.0783 -0.0121 6.22 0.0621 0 3.47 3.47 test.phys compt + 2 0.674 1.97 10 0.0621 0 4.33 7.81 World Transportation + 3 1.99e+03 5.25e+03 1e+04 0.0621 0 1.15e+04 1.15e+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.0783 -0.0121 6.22 0.001 0 0 0 test.phys initStep + 1 -0.0783 -0.0121 6.22 0 0.001 3.73e-05 3.73e-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.0584 0.00296 2.75 0.256 0 0 0 test.phys initStep + 1 -0.145 -0.0263 10 0.256 0 7.25 7.25 World Transportation + 2 -119 -40.4 1e+04 0.256 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.0584 0.00296 2.75 0.181 0 0 0 test.phys initStep + 1 -0.125 -0.0329 9.63 0.159 0 6.88 6.88 test.phys compt + 2 0.288 0.211 10 0.159 0 0.606 7.49 World Transportation + 3 1e+04 5.9e+03 9e+03 0.159 0 1.47e+04 1.47e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.125 -0.0329 9.63 0.0223 0 0 0 test.phys initStep + 1 -0.126 -0.0336 9.63 0 0.0223 0.00525 0.00525 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.0584 0.00296 2.75 1.73 0 0 0 test.phys initStep + 1 -0.204 -0.386 10 1.73 0 7.26 7.26 World Transportation + 2 -201 -537 1e+04 1.73 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.0584 0.00296 2.75 0.333 0 0 0 test.phys initStep + 1 -0.204 0.00912 10 0.333 0 7.25 7.25 World Transportation + 2 -201 8.49 1e+04 0.333 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.0584 0.00296 2.75 0.0568 0 0 0 test.phys initStep + 1 -0.0928 0.00161 8.31 0 0.00156 5.57 5.57 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.0928 0.00161 8.31 0.0552 0 0 0 test.phys initStep + 1 -0.0893 -0.000288 8.32 0 0.0552 0.0253 0.0253 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.0584 0.00296 2.75 0.0139 0 0 0 test.phys initStep + 1 -0.0618 0.00244 3 0 0.00156 0.251 0.251 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0618 0.00244 3 0.0123 0 0 0 test.phys initStep + 1 -0.0619 0.00207 3 0 0.0123 0.00188 0.00188 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.0584 0.00296 2.75 7.61 0 0 0 test.phys initStep + 1 -0.131 -0.0403 10 7.61 0 7.25 7.25 World Transportation + 2 -100 -59.6 1e+04 7.61 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.0584 0.00296 2.75 1.03 0 0 0 test.phys initStep + 1 -0.0859 0.00835 4.11 0.828 0 1.36 1.36 test.phys compt + 2 2.95 -0.338 10 0.828 0 6.64 8 World Transportation + 3 5.15e+03 -587 1e+04 0.828 0 1.13e+04 1.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.0859 0.00835 4.11 0.204 0 0 0 test.phys initStep + 1 -0.149 0.0158 4.15 0 0.204 0.222 0.222 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.00269 -0.00887 0.745 96.2 0.228 0.745 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0201 0.00366 2.09 94.3 0.474 1.34 1e+03 test.phys eIoni + 4 -0.026 0.00701 2.42 94 0.184 0.332 1e+03 test.phys biasWrapper(eBrem) + 5 -0.0998 0.0487 9.92 88 2.86 7.51 1.01e+03 test.phys eIoni + 6 -0.101 0.0527 10 88 0.0228 0.0752 1.01e+03 World Transportation + 7 -190 538 1e+04 88 3.64e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -0.0998 0.0487 9.92 3.07 0 0 0 test.phys initStep + 1 -0.144 0.0403 10 3.04 0.0303 0.088 0.088 World Transportation + 2 -4.73e+03 -2.15e+03 1e+04 3.04 3.06e-22 1.13e+04 1.13e+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.0201 0.00366 2.09 1.44 0 0 0 test.phys initStep + 1 0.406 -0.103 3.09 1.03 0.405 1.25 1.25 test.phys msc + 2 0.895 -0.417 3.71 0 1.03 1.66 2.91 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.026 0.00701 2.42 0.116 0 0 0 test.phys initStep + 1 -0.15 0.116 10 0.116 0 7.58 7.58 World Transportation + 2 -163 144 1e+04 0.116 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.00269 -0.00887 0.745 10.2 0 0 0 test.phys initStep + 1 -0.00693 0.0499 10 10.2 0 9.26 9.26 World Transportation + 2 -10.4 63.4 1e+04 10.2 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.00269 -0.00887 0.745 11 0 0 0 test.phys initStep + 1 -0.00785 0.109 10 11 0 9.26 9.26 World Transportation + 2 -11.4 128 1e+04 11 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.00269 -0.00887 0.745 0.848 0 0 0 test.phys initStep + 1 0.0187 0.135 10 0.848 0 9.26 9.26 World Transportation + 2 17.3 155 1e+04 0.848 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.00269 -0.00887 0.745 0.568 0 0 0 test.phys initStep + 1 0.0909 -0.0586 10 0.568 0 9.26 9.26 World Transportation + 2 95.3 -53.8 1e+04 0.568 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.00269 -0.00887 0.745 0.531 0 0 0 test.phys initStep + 1 -0.0137 0.0778 10 0.531 0 9.26 9.26 World Transportation + 2 -17.7 93.6 1e+04 0.531 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.00269 -0.00887 0.745 0.142 0 0 0 test.phys initStep + 1 -0.0204 0.171 10 0.142 0 9.26 9.26 World Transportation + 2 -25 194 1e+04 0.142 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.00269 -0.00887 0.745 0.302 0 0 0 test.phys initStep + 1 0.307 0.417 10 0.302 0 9.27 9.27 World Transportation + 2 329 460 1e+04 0.302 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.00269 -0.00887 0.745 0.0129 0 0 0 test.phys initStep + 1 0.00263 -0.00766 0.869 0 0.00156 0.124 0.124 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.00263 -0.00766 0.869 0.0113 0 0 0 test.phys initStep + 1 0.00239 -0.00812 0.869 0 0.0113 0.00164 0.00164 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.00269 -0.00887 0.745 26.9 0 0 0 test.phys initStep + 1 -0.033 0.0853 10 26.9 0 9.26 9.26 World Transportation + 2 -38.5 102 1e+04 26.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.00269 -0.00887 0.745 3.6 0 0 0 test.phys initStep + 1 -0.0537 -0.281 10 3.6 0 9.26 9.26 World Transportation + 2 -60.9 -295 1e+04 3.6 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.00231 0.00345 0.514 98.7 0.374 0.514 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0265 0.13 5.38 95.3 1.75 4.87 1.01e+03 test.phys biasWrapper(eBrem) + 4 -0.0138 0.147 6.27 90.7 0.264 0.888 1.01e+03 test.phys biasWrapper(eBrem) + 5 0.0562 0.174 10 89.3 1.32 3.73 1.01e+03 World Transportation + 6 605 302 1e+04 89.3 3.65e-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.0138 0.147 6.27 4.41 0 0 0 test.phys initStep + 1 0.0646 0.154 10 4.41 0 3.73 3.73 World Transportation + 2 210 17.6 1e+04 4.41 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.0265 0.13 5.38 1.66 0 0 0 test.phys initStep + 1 0.0315 0.176 10 1.66 0 4.62 4.62 World Transportation + 2 126 99.3 1e+04 1.66 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.00231 0.00345 0.514 2.55 0 0 0 test.phys initStep + 1 0.0707 0.175 10 2.55 0 9.49 9.49 World Transportation + 2 77 181 1e+04 2.55 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.00231 0.00345 0.514 0.704 0 0 0 test.phys initStep + 1 0.0259 0.0796 4.74 0.281 0 4.23 4.23 test.phys compt + 2 -28.2 4.2 2.25 0.204 0 28.6 32.8 test.phys compt + 3 -29.1 3.06 3.74 0.118 0 2.11 34.9 test.phys compt + 4 -22.9 15.7 0 0.118 0 14.6 49.5 World Transportation + 5 4.86e+03 1e+04 -2.95e+03 0.118 0 1.15e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -29.1 3.06 3.74 0.0866 0 0 0 test.phys initStep + 1 -29.1 3.04 3.75 0 0.0866 0.0546 0.0546 test.phys eIoni + +********************************************************************************************************* +* 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 -28.2 4.2 2.25 0.077 0 0 0 test.phys initStep + 1 -28.2 4.2 2.24 0 0.077 0.0447 0.0447 test.phys eIoni + +********************************************************************************************************* +* 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.0259 0.0796 4.74 0.423 0 0 0 test.phys initStep + 1 0.114 0.0708 4.97 0 0.423 0.666 0.666 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.00231 0.00345 0.514 0.397 0 0 0 test.phys initStep + 1 0.0765 0.227 10 0.397 0 9.49 9.49 World Transportation + 2 83 235 1e+04 0.397 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.00231 0.00345 0.514 87.1 0 0 0 test.phys initStep + 1 0.118 0.19 10 87.1 0 9.49 9.49 World Transportation + 2 127 196 1e+04 87.1 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.00231 0.00345 0.514 0.258 0 0 0 test.phys initStep + 1 0.172 0.31 10 0.258 0 9.49 9.49 World Transportation + 2 184 323 1e+04 0.258 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.00231 0.00345 0.514 0.185 0 0 0 test.phys initStep + 1 0.0783 0.248 10 0.185 0 9.49 9.49 World Transportation + 2 85 258 1e+04 0.185 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.00231 0.00345 0.514 0.875 0 0 0 test.phys initStep + 1 0.251 0.249 10 0.875 0 9.49 9.49 World Transportation + 2 267 259 1e+04 0.875 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.00231 0.00345 0.514 0.088 0 0 0 test.phys initStep + 1 0.0014 0.0145 2.76 0.0857 0 2.25 2.25 test.phys compt + 2 1.33 -4.42 10 0.0857 0 8.59 10.8 World Transportation + 3 1.84e+03 -6.13e+03 1e+04 0.0857 0 1.19e+04 1.19e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.0014 0.0145 2.76 0.00236 0 0 0 test.phys initStep + 1 0.00139 0.0146 2.76 0 0.00236 0.000127 0.000127 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.00231 0.00345 0.514 0.912 0 0 0 test.phys initStep + 1 0.0716 0.253 10 0.912 0 9.49 9.49 World Transportation + 2 77.9 263 1e+04 0.912 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.00231 0.00345 0.514 0.892 0 0 0 test.phys initStep + 1 0.0695 0.221 10 0.892 0 9.49 9.49 World Transportation + 2 75.7 229 1e+04 0.892 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.123 -0.288 8.53 96.2 3.21 8.54 1.01e+03 test.phys eIoni + 3 0.15 -0.287 10 95.5 0.751 1.47 1.01e+03 World Transportation + 4 38.3 32.6 1e+04 95.5 3.66e-22 9.99e+03 1.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.123 -0.288 8.53 0.562 0 0 0 test.phys initStep + 1 0.355 -0.0898 8.75 0 0.562 0.988 0.988 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 95.5 4.49 10 1.01e+03 World Transportation + 3 -116 -815 1e+04 95.5 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 -6.89e-08 -5.81e-06 0.00606 99.7 0.00182 0.00606 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0123 0.0104 1.3 97.6 0.534 1.3 1e+03 test.phys biasWrapper(eBrem) + 4 -0.0123 0.0106 1.31 97.5 0.00261 0.00639 1e+03 test.phys biasWrapper(eBrem) + 5 -0.0567 0.306 7.73 95.2 2.35 6.43 1.01e+03 test.phys biasWrapper(eBrem) + 6 -0.124 0.487 10 94.4 0.736 2.28 1.01e+03 World Transportation + 7 -489 1.12e+03 1e+04 94.4 3.68e-22 1.01e+04 1.11e+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.0567 0.306 7.73 0.0144 0 0 0 test.phys initStep + 1 -0.0593 0.313 7.82 0 0.00156 0.0934 0.0934 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 -0.0593 0.313 7.82 0.0129 0 0 0 test.phys initStep + 1 -0.0598 0.313 7.82 0 0.0129 0.00203 0.00203 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.0123 0.0106 1.31 0.0289 0 0 0 test.phys initStep + 1 -0.0123 0.0207 1.64 0 0.00156 0.331 0.331 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0123 0.0207 1.64 0.0274 0 0 0 test.phys initStep + 1 -0.0136 0.0223 1.64 0 0.0274 0.0075 0.0075 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.0123 0.0104 1.3 1.58 0 0 0 test.phys initStep + 1 0.114 0.298 10 1.58 0 8.7 8.7 World Transportation + 2 145 331 1e+04 1.58 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 -6.89e-08 -5.81e-06 0.00606 0.0293 0 0 0 test.phys initStep + 1 -0.0178 -0.0152 0.623 0 0.00156 0.617 0.617 test.phys phot + +********************************************************************************************************* +* 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 -0.0178 -0.0152 0.623 0.0278 0 0 0 test.phys initStep + 1 -0.0162 -0.0148 0.625 0 0.0278 0.00768 0.00768 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 -6.89e-08 -5.81e-06 0.00606 15.6 0 0 0 test.phys initStep + 1 0.0452 -0.0526 10 15.6 0 9.99 9.99 World Transportation + 2 45.2 -52.6 1e+04 15.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 -6.89e-08 -5.81e-06 0.00606 0.00728 0 0 0 test.phys initStep + 1 -0.00153 -0.000692 0.1 0 0.00156 0.0944 0.0944 test.phys phot + +********************************************************************************************************* +* 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.00153 -0.000692 0.1 0.00572 0 0 0 test.phys initStep + 1 -0.00144 -0.000828 0.1 0 0.00572 0.000519 0.000519 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 -6.89e-08 -5.81e-06 0.00606 0.0408 0 0 0 test.phys initStep + 1 0.168 0.138 8.95 0 0.00156 8.95 8.95 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.168 0.138 8.95 0.0392 0 0 0 test.phys initStep + 1 0.172 0.138 8.95 0 0.0392 0.014 0.014 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 -6.89e-08 -5.81e-06 0.00606 10.1 0 0 0 test.phys initStep + 1 0.0754 0.0146 10 10.1 0 9.99 9.99 World Transportation + 2 75.5 14.7 1e+04 10.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 -6.89e-08 -5.81e-06 0.00606 6.92 0 0 0 test.phys initStep + 1 0.0234 0.0277 10 6.92 0 9.99 9.99 World Transportation + 2 23.4 27.7 1e+04 6.92 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 -6.89e-08 -5.81e-06 0.00606 0.0116 0 0 0 test.phys initStep + 1 -0.000474 -0.00247 0.35 0 0.00156 0.344 0.344 test.phys phot + +********************************************************************************************************* +* 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.000474 -0.00247 0.35 0.0101 0 0 0 test.phys initStep + 1 -0.00011 -0.00231 0.35 0 0.0101 0.00134 0.00134 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 -6.89e-08 -5.81e-06 0.00606 0.675 0 0 0 test.phys initStep + 1 -0.0577 0.000575 10 0.675 0 9.99 9.99 World Transportation + 2 -57.8 0.581 1e+04 0.675 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 -6.89e-08 -5.81e-06 0.00606 5.47 0 0 0 test.phys initStep + 1 0.00884 -0.0109 10 5.47 0 9.99 9.99 World Transportation + 2 8.85 -10.9 1e+04 5.47 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 -6.89e-08 -5.81e-06 0.00606 0.318 0 0 0 test.phys initStep + 1 0.000484 0.00839 10 0.318 0 9.99 9.99 World Transportation + 2 0.484 8.4 1e+04 0.318 0 9.99e+03 1e+04 OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 10 - User=0.02s Real=0.01s Sys=0.01s + User=0.01s Real=0.02s Sys=0s Region -- -- appears in world volume This region is in the mass world. @@ -2148,8 +2560,340 @@ 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 0 10 96.4 3.64 10 1.01e+03 World Transportation - 3 -881 -386 1e+04 96.4 3.68e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 -0.00614 -0.0111 0.922 88.6 0.36 0.922 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0779 -0.0366 5.65 72 1.93 4.74 1.01e+03 test.phys biasWrapper(eBrem) + 4 -0.0834 -0.071 6.55 70.3 0.411 0.9 1.01e+03 test.phys biasWrapper(eBrem) + 5 -0.0687 -0.187 9.67 68.5 1.13 3.12 1.01e+03 test.phys eIoni + 6 -0.0578 -0.218 10 68.4 0.0877 0.333 1.01e+03 World Transportation + 7 283 -765 1e+04 68.4 3.57e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -0.0687 -0.187 9.67 0.657 0 0 0 test.phys initStep + 1 -0.0715 -0.291 9.82 0.598 0.0594 0.182 0.182 test.phys msc + 2 -0.0588 -0.322 9.93 0.544 0.0534 0.121 0.303 test.phys msc + 3 -0.0526 -0.331 9.98 0.524 0.0206 0.0515 0.355 test.phys msc + 4 -0.0499 -0.335 10 0.517 0.00679 0.0197 0.374 World Transportation + 5 -2.01e+03 -3.73e+03 1e+04 0.517 3.28e-22 1.09e+04 1.09e+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.0834 -0.071 6.55 4.11 0 0 0 test.phys initStep + 1 -0.21 -0.151 10 4.11 0 3.45 3.45 World Transportation + 2 -368 -233 1e+04 4.11 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.0834 -0.071 6.55 4.92 0 0 0 test.phys initStep + 1 -0.00475 -0.148 10 4.92 0 3.45 3.45 World Transportation + 2 228 -223 1e+04 4.92 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.0834 -0.071 6.55 37.9 0 0 0 test.phys initStep + 1 0.0109 -0.127 10 37.9 0 3.45 3.45 World Transportation + 2 273 -163 1e+04 37.9 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.0834 -0.071 6.55 0.0298 0 0 0 test.phys initStep + 1 -0.0388 -0.145 8.65 0 0.00156 2.09 2.09 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0388 -0.145 8.65 0.0283 0 0 0 test.phys initStep + 1 -0.0392 -0.144 8.65 0 0.0283 0.00793 0.00793 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.0834 -0.071 6.55 13 0 0 0 test.phys initStep + 1 -0.0248 -0.162 10 13 0 3.45 3.45 World Transportation + 2 170 -264 1e+04 13 0 9.99e+03 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.0834 -0.071 6.55 0.024 0 0 0 test.phys initStep + 1 -0.000908 -0.145 10 0.024 0 3.45 3.45 World Transportation + 2 239 -216 1e+04 0.024 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.0834 -0.071 6.55 0.439 0 0 0 test.phys initStep + 1 -0.00528 -0.141 10 0.439 0 3.45 3.45 World Transportation + 2 227 -204 1e+04 0.439 0 9.99e+03 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.0834 -0.071 6.55 13.8 0 0 0 test.phys initStep + 1 0.0213 -0.168 10 13.8 0 3.45 3.45 World Transportation + 2 304 -281 1e+04 13.8 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.0834 -0.071 6.55 2.22 0 0 0 test.phys initStep + 1 -0.0274 -0.132 10 2.22 0 3.45 3.45 World Transportation + 2 162 -178 1e+04 2.22 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.0834 -0.071 6.55 1.32 0 0 0 test.phys initStep + 1 -0.0118 -0.155 10 1.32 0 3.45 3.45 World Transportation + 2 208 -243 1e+04 1.32 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.0779 -0.0366 5.65 0.0284 0 0 0 test.phys initStep + 1 -0.0785 -0.0428 5.98 0 0.00156 0.329 0.329 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.0785 -0.0428 5.98 0.0269 0 0 0 test.phys initStep + 1 -0.08 -0.0417 5.98 0 0.0269 0.00726 0.00726 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.0779 -0.0366 5.65 0.391 0 0 0 test.phys initStep + 1 -0.161 -0.121 10 0.391 0 4.35 4.35 World Transportation + 2 -191 -195 1e+04 0.391 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.0779 -0.0366 5.65 2.74 0 0 0 test.phys initStep + 1 -0.176 -0.0824 10 2.74 0 4.35 4.35 World Transportation + 2 -225 -105 1e+04 2.74 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.0779 -0.0366 5.65 0.0615 0 0 0 test.phys initStep + 1 -0.137 -0.137 10 0.0615 0 4.35 4.35 World Transportation + 2 -136 -231 1e+04 0.0615 0 9.99e+03 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.0779 -0.0366 5.65 0.327 0 0 0 test.phys initStep + 1 -0.121 -0.107 6.09 0.155 0 0.443 0.443 test.phys compt + 2 1.95 -4.2 0 0.155 0 7.62 8.07 World Transportation + 3 3.41e+03 -6.72e+03 -1e+04 0.155 0 1.25e+04 1.25e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.121 -0.107 6.09 0.172 0 0 0 test.phys initStep + 1 -0.131 -0.103 6.15 0 0.172 0.17 0.17 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.0779 -0.0366 5.65 4.12 0 0 0 test.phys initStep + 1 -0.136 -0.0936 10 4.12 0 4.35 4.35 World Transportation + 2 -133 -131 1e+04 4.12 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.0779 -0.0366 5.65 24.2 0 0 0 test.phys initStep + 1 -0.111 -0.148 10 24.2 0 4.35 4.35 World Transportation + 2 -76.8 -256 1e+04 24.2 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.0779 -0.0366 5.65 0.79 0 0 0 test.phys initStep + 1 -0.157 -0.149 10 0.79 0 4.35 4.35 World Transportation + 2 -182 -257 1e+04 0.79 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.0779 -0.0366 5.65 0.0339 0 0 0 test.phys initStep + 1 -0.119 -0.0652 8.18 0.0313 0 2.52 2.52 test.phys compt + 2 -2.72 3.08 7.03 0 0.00156 4.24 6.76 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.72 3.08 7.03 0.0297 0 0 0 test.phys initStep + 1 -2.72 3.08 7.03 0 0.0297 0.00866 0.00866 test.phys eIoni + +********************************************************************************************************* +* 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.119 -0.0652 8.18 0.00264 0 0 0 test.phys initStep + 1 -0.119 -0.0652 8.18 0 0.00264 0.000151 0.000151 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.0779 -0.0366 5.65 14.6 0 0 0 test.phys initStep + 1 -0.154 -0.138 10 14.6 0 4.35 4.35 World Transportation + 2 -176 -234 1e+04 14.6 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.00614 -0.0111 0.922 0.27 0 0 0 test.phys initStep + 1 -0.0603 -0.0612 10 0.27 0 9.08 9.08 World Transportation + 2 -59.6 -55.1 1e+04 0.27 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.00614 -0.0111 0.922 0.0207 0 0 0 test.phys initStep + 1 -0.00612 -0.0261 2.92 0 0.00156 1.99 1.99 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00612 -0.0261 2.92 0.0191 0 0 0 test.phys initStep + 1 -0.00612 -0.0264 2.92 0 0.0191 0.00402 0.00402 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.00614 -0.0111 0.922 0.187 0 0 0 test.phys initStep + 1 -0.0523 -0.0746 10 0.187 0 9.08 9.08 World Transportation + 2 -50.8 -69.9 1e+04 0.187 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.00614 -0.0111 0.922 0.106 0 0 0 test.phys initStep + 1 -0.283 -0.0853 10 0.106 0 9.08 9.08 World Transportation + 2 -305 -81.7 1e+04 0.106 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.00614 -0.0111 0.922 4.05 0 0 0 test.phys initStep + 1 -0.065 -0.0989 10 4.05 0 9.08 9.08 World Transportation + 2 -64.8 -96.7 1e+04 4.05 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.00614 -0.0111 0.922 0.63 0 0 0 test.phys initStep + 1 -0.126 -0.131 10 0.63 0 9.08 9.08 World Transportation + 2 -132 -132 1e+04 0.63 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.00614 -0.0111 0.922 0.353 0 0 0 test.phys initStep + 1 -0.0583 -0.0912 10 0.353 0 9.08 9.08 World Transportation + 2 -57.4 -88.3 1e+04 0.353 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.00614 -0.0111 0.922 3.22 0 0 0 test.phys initStep + 1 -0.0493 -0.0428 10 3.22 0 9.08 9.08 World Transportation + 2 -47.5 -34.9 1e+04 3.22 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.00614 -0.0111 0.922 40.6 0 0 0 test.phys initStep + 1 -0.078 -0.111 10 40.6 0 9.08 9.08 World Transportation + 2 -79.2 -110 1e+04 40.6 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.00614 -0.0111 0.922 11.1 0 0 0 test.phys initStep + 1 -0.0633 -0.0236 10 11.1 0 9.08 9.08 World Transportation + 2 -62.9 -13.7 1e+04 11.1 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2158,296 +2902,609 @@ 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.000905 0.00226 0.432 99.1 0.144 0.432 1e+03 test.phys eIoni - 3 0.0115 -0.0479 3.17 97.9 1.24 2.74 1e+03 test.phys biasWrapper(eBrem) - 4 0.178 -0.241 10 95.4 2.48 6.84 1.01e+03 World Transportation - 5 93.2 -125 1e+04 95.4 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + 2 0 0 10 96.3 3.7 10 1.01e+03 World Transportation + 3 -158 -131 1e+04 96.3 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, 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.000905 0.00226 0.432 0.715 0 0 0 test.phys initStep - 1 -0.0485 0.0771 0.65 0.621 0.094 0.24 0.24 test.phys msc - 2 -0.364 0.263 0.726 0.46 0.162 0.39 0.63 test.phys msc - 3 -0.783 0.316 0.643 0.25 0.21 0.436 1.07 test.phys msc - 4 -0.747 0.275 0.549 0 0.25 0.305 1.37 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.171 0.147 6.26 97.1 2.57 6.27 1.01e+03 test.phys biasWrapper(eBrem) + 3 -0.32 0.106 8.88 95.4 0.908 2.62 1.01e+03 test.phys eIoni + 4 -0.354 0.102 10 95 0.381 1.12 1.01e+03 World Transportation + 5 -391 -52.9 1e+04 95 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +* 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.0115 -0.0479 3.17 39.9 0 0 0 test.phys initStep - 1 0.22 -0.248 10 39.9 0 6.83 6.83 World Transportation - 2 306 -293 1e+04 39.9 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.32 0.106 8.88 0.856 0 0 0 test.phys initStep + 1 -0.458 -0.439 9.27 0.587 0.268 0.853 0.853 test.phys msc + 2 -0.521 -0.44 9.31 0.505 0.0363 0.0797 0.933 test.phys biasWrapper(eBrem) + 3 -0.571 -0.0245 9.46 0.19 0.316 0.48 1.41 test.phys msc + 4 -0.612 0.00862 9.41 0 0.19 0.198 1.61 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.00625 0 0 0 test.phys initStep + 1 -0.513 -0.402 9.33 0 0.00156 0.0428 0.0428 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.513 -0.402 9.33 0.00469 0 0 0 test.phys initStep + 1 -0.512 -0.402 9.33 0 0.00469 0.000375 0.000375 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.0796 0 0 0 test.phys initStep + 1 -1.31 -0.0977 10 0.0796 0 1.1 1.1 World Transportation + 2 -1e+04 4.36e+03 8.72e+03 0.0796 0 1.4e+04 1.4e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.0142 0 0 0 test.phys initStep + 1 -0.36 -0.453 9.37 0 0.00156 0.171 0.171 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 20 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.36 -0.453 9.37 0.0126 0 0 0 test.phys initStep + 1 -0.36 -0.453 9.37 0 0.0126 0.00196 0.00196 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.106 0 0 0 test.phys initStep + 1 -17.3 3.71 5.25 0 0.00156 17.7 17.7 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 19 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.3 3.71 5.25 0.104 0 0 0 test.phys initStep + 1 -17.3 3.71 5.23 0 0.104 0.0742 0.0742 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.0103 0 0 0 test.phys initStep + 1 -0.523 -0.439 9.32 0 0.00156 0.00456 0.00456 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.523 -0.439 9.32 0.00872 0 0 0 test.phys initStep + 1 -0.523 -0.439 9.32 0 0.00872 0.00105 0.00105 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.0896 0 0 0 test.phys initStep + 1 -0.976 -0.568 9.08 0.0711 0 0.527 0.527 test.phys compt + 2 -0.0656 -0.493 8.46 0.0673 0 1.1 1.63 test.phys compt + 3 6.4 -10.3 3.39 0.062 0 12.8 14.4 test.phys compt + 4 6.55 -12.1 4.96 0.0599 0 2.42 16.8 test.phys compt + 5 6.83 -12.6 10 0.0599 0 5.07 21.9 World Transportation + 6 577 -976 1e+04 0.0599 0 1.01e+04 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.55 -12.1 4.96 0.00201 0 0 0 test.phys initStep + 1 6.55 -12.1 4.96 0 0.00201 0.0001 0.0001 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.4 -10.3 3.39 0.00531 0 0 0 test.phys initStep + 1 6.4 -10.3 3.39 0 0.00531 0.00046 0.00046 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0656 -0.493 8.46 0.00385 0 0 0 test.phys initStep + 1 -0.0655 -0.493 8.46 0 0.00385 0.000273 0.000273 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 -0.976 -0.568 9.08 0.0185 0 0 0 test.phys initStep + 1 -0.978 -0.568 9.08 0 0.0185 0.0038 0.0038 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.018 0 0 0 test.phys initStep + 1 -0.546 -0.477 9.65 0 0.00156 0.336 0.336 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.546 -0.477 9.65 0.0165 0 0 0 test.phys initStep + 1 -0.546 -0.478 9.65 0 0.0165 0.00312 0.00312 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.521 -0.44 9.31 0.131 0 0 0 test.phys initStep + 1 -0.71 -0.15 10 0.131 0 0.768 0.768 World Transportation + 2 -2.75e+03 4.24e+03 1e+04 0.131 0 1.12e+04 1.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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 -0.521 -0.44 9.31 0.00617 0 0 0 test.phys initStep + 1 -0.524 -0.439 9.32 0 0.00156 0.00494 0.00494 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.524 -0.439 9.32 0.00461 0 0 0 test.phys initStep + 1 -0.524 -0.439 9.32 0 0.00461 0.000365 0.000365 test.phys eIoni + +********************************************************************************************************* +* 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.521 -0.44 9.31 0.0457 0 0 0 test.phys initStep + 1 -0.981 -0.108 10 0.0457 0 0.89 0.89 World Transportation + 2 -6.71e+03 4.85e+03 1e+04 0.0457 0 1.3e+04 1.3e+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.0115 -0.0479 3.17 10.9 0 0 0 test.phys initStep - 1 0.153 -0.241 10 10.9 0 6.83 6.83 World Transportation - 2 207 -282 1e+04 10.9 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.171 0.147 6.26 0.00641 0 0 0 test.phys initStep + 1 -0.173 0.147 6.31 0 0.00156 0.0453 0.0453 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.173 0.147 6.31 0.00484 0 0 0 test.phys initStep + 1 -0.173 0.147 6.31 0 0.00484 0.000396 0.000396 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.0115 -0.0479 3.17 0.6 0 0 0 test.phys initStep - 1 0.111 -0.278 10 0.6 0 6.83 6.83 World Transportation - 2 146 -338 1e+04 0.6 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.171 0.147 6.26 7.8 0 0 0 test.phys initStep + 1 -0.335 0.161 10 7.8 0 3.74 3.74 World Transportation + 2 -440 39.5 1e+04 7.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.0115 -0.0479 3.17 0.113 0 0 0 test.phys initStep - 1 0.0192 -0.0552 3.44 0.0863 0 0.262 0.262 test.phys compt - 2 3.89 -6.35 0 0.0863 0 8.15 8.41 World Transportation - 3 6.15e+03 -1e+04 -5.45e+03 0.0863 0 1.29e+04 1.29e+04 OutOfWorld Transportation + 0 -0.171 0.147 6.26 0.798 0 0 0 test.phys initStep + 1 -0.321 0.173 10 0.798 0 3.74 3.74 World Transportation + 2 -400 69.3 1e+04 0.798 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.171 0.147 6.26 10.8 0 0 0 test.phys initStep + 1 -0.339 0.116 10 10.8 0 3.74 3.74 World Transportation + 2 -449 -81.8 1e+04 10.8 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.171 0.147 6.26 0.372 0 0 0 test.phys initStep + 1 -0.331 0.163 10 0.372 0 3.74 3.74 World Transportation + 2 -428 42.5 1e+04 0.372 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.171 0.147 6.26 0.0115 0 0 0 test.phys initStep + 1 -0.177 0.147 6.41 0 0.00156 0.141 0.141 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.177 0.147 6.41 0.00998 0 0 0 test.phys initStep + 1 -0.177 0.147 6.41 0 0.00998 0.00132 0.00132 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.171 0.147 6.26 1.86 0 0 0 test.phys initStep + 1 -0.306 0.177 10 1.86 0 3.74 3.74 World Transportation + 2 -362 81.1 1e+04 1.86 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.171 0.147 6.26 0.123 0 0 0 test.phys initStep + 1 -0.314 0.165 10 0.123 0 3.74 3.74 World Transportation + 2 -382 49.9 1e+04 0.123 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.171 0.147 6.26 0.0232 0 0 0 test.phys initStep + 1 -0.262 0.145 8.5 0 0.00156 2.23 2.23 test.phys phot + +********************************************************************************************************* +* 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.171 0.147 6.26 0.285 0 0 0 test.phys initStep + 1 -0.217 0.145 7.46 0 0.00156 1.2 1.2 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.217 0.145 7.46 0.284 0 0 0 test.phys initStep + 1 -0.279 0.128 7.58 0 0.284 0.371 0.371 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.262 0.145 8.5 0.0217 0 0 0 test.phys initStep + 1 -0.262 0.144 8.5 0 0.0217 0.005 0.005 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.000114 -0.000207 0.0638 99.8 0.124 0.0638 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0233 0.00165 10 95.9 3.83 9.95 1.01e+03 World Transportation + 4 -152 -281 1e+04 95.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.000114 -0.000207 0.0638 0.571 0 0 0 test.phys initStep + 1 -0.00974 -0.00219 4.65 0.361 0 4.59 4.59 test.phys compt + 2 6.7 -7.06 10 0.361 0 11.1 15.7 World Transportation + 3 9.5e+03 -1e+04 7.57e+03 0.361 0 1.57e+04 1.57e+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.00974 -0.00219 4.65 0.21 0 0 0 test.phys initStep + 1 -0.0454 0.035 4.72 0 0.21 0.233 0.233 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.000114 -0.000207 0.0638 0.433 0 0 0 test.phys initStep + 1 -0.00236 0.00529 10 0.433 0 9.94 9.94 World Transportation + 2 -2.27 5.53 1e+04 0.433 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.000114 -0.000207 0.0638 0.0187 0 0 0 test.phys initStep + 1 1.06e-05 -0.00025 0.186 0 0.00156 0.123 0.123 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.0192 -0.0552 3.44 0.0264 0 0 0 test.phys initStep - 1 0.0187 -0.0543 3.44 0 0.0264 0.00702 0.00702 test.phys eIoni + 0 1.06e-05 -0.00025 0.186 0.0171 0 0 0 test.phys initStep + 1 -7.41e-05 0.000584 0.187 0 0.0171 0.00332 0.00332 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.0115 -0.0479 3.17 0.0339 0 0 0 test.phys initStep - 1 0.0663 -0.0986 5.3 0 0.00156 2.13 2.13 test.phys phot + 0 -0.000114 -0.000207 0.0638 50.4 0 0 0 test.phys initStep + 1 -0.038 0.0229 10 50.4 0 9.94 9.94 World Transportation + 2 -38.2 23.3 1e+04 50.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.000114 -0.000207 0.0638 0.0298 0 0 0 test.phys initStep + 1 0.000459 0.000234 0.609 0 0.00156 0.545 0.545 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.000459 0.000234 0.609 0.0282 0 0 0 test.phys initStep + 1 -0.00134 -0.000412 0.611 0 0.0282 0.00791 0.00791 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.000114 -0.000207 0.0638 2.21 0 0 0 test.phys initStep + 1 -0.0564 -0.0162 10 2.21 0 9.94 9.94 World Transportation + 2 -56.6 -16.1 1e+04 2.21 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.000114 -0.000207 0.0638 0.0208 0 0 0 test.phys initStep + 1 -0.000166 -0.00011 0.0831 0 0.00156 0.0193 0.0193 test.phys phot + +********************************************************************************************************* +* 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.000114 -0.000207 0.0638 0.0899 0 0 0 test.phys initStep + 1 -0.202 -0.0835 10 0.0899 0 9.94 9.94 World Transportation + 2 -203 -83.9 1e+04 0.0899 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.000114 -0.000207 0.0638 0.0936 0 0 0 test.phys initStep + 1 -0.0899 0.0206 10 0.0936 0 9.94 9.94 World Transportation + 2 -90.4 20.9 1e+04 0.0936 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.000114 -0.000207 0.0638 0.121 0 0 0 test.phys initStep + 1 -0.0298 -0.00248 10 0.121 0 9.94 9.94 World Transportation + 2 -29.9 -2.29 1e+04 0.121 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.000166 -0.00011 0.0831 0.0192 0 0 0 test.phys initStep + 1 -0.000951 -0.000666 0.084 0 0.0192 0.00406 0.00406 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.0125 -0.00585 2.13 98.8 0.748 2.13 1e+03 test.phys eIoni + 3 0.201 -0.0499 10 95.7 3.02 7.88 1.01e+03 World Transportation + 4 452 202 1e+04 95.7 3.66e-22 1e+04 1.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.0125 -0.00585 2.13 0.491 0 0 0 test.phys initStep + 1 0.245 0.101 2.3 0 0.491 0.821 0.821 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.0149 0.0253 1.69 98.2 0.575 1.69 1e+03 test.phys biasWrapper(eBrem) + 3 0.0103 0.11 4.1 96.6 0.996 2.41 1e+03 test.phys eIoni + 4 0.0468 0.258 10 94.2 2.44 5.91 1.01e+03 World Transportation + 5 298 782 1e+04 94.2 3.67e-22 1e+04 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.0103 0.11 4.1 0.579 0 0 0 test.phys initStep + 1 0.119 0.411 4.33 0 0.579 1.03 1.03 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.0149 0.0253 1.69 27.4 0 0 0 test.phys initStep + 1 -0.0406 0.187 10 27.4 0 8.31 8.31 World Transportation + 2 -30.9 194 1e+04 27.4 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.0149 0.0253 1.69 0.251 0 0 0 test.phys initStep + 1 0.0635 0.0904 10 0.251 0 8.31 8.31 World Transportation + 2 94.3 78.3 1e+04 0.251 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.0149 0.0253 1.69 0.192 0 0 0 test.phys initStep + 1 -0.0972 0.0947 9.12 0.158 0 7.43 7.43 test.phys compt + 2 -1.9 0.892 10 0.158 0 2.16 9.59 World Transportation + 3 -1e+04 4.42e+03 4.9e+03 0.158 0 1.2e+04 1.2e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.0972 0.0947 9.12 0.0343 0 0 0 test.phys initStep + 1 -0.0947 0.0936 9.12 0 0.0343 0.0111 0.0111 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.0149 0.0253 1.69 0.00953 0 0 0 test.phys initStep + 1 -0.0151 0.0272 1.78 0 0.00156 0.0856 0.0856 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.0663 -0.0986 5.3 0.0324 0 0 0 test.phys initStep - 1 0.0662 -0.102 5.3 0 0.0324 0.01 0.01 test.phys eIoni + 0 -0.0151 0.0272 1.78 0.00797 0 0 0 test.phys initStep + 1 -0.0149 0.0274 1.78 0 0.00797 0.000902 0.000902 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.0115 -0.0479 3.17 0.00685 0 0 0 test.phys initStep - 1 0.0115 -0.0479 3.17 0 0.00156 0.000748 0.000748 test.phys phot + 0 -0.0149 0.0253 1.69 0.134 0 0 0 test.phys initStep + 1 -0.168 0.0847 9.45 0.132 0 7.77 7.77 test.phys compt + 2 -0.0884 -0.0299 10 0.132 0 0.563 8.33 World Transportation + 3 1.45e+03 -2.1e+03 1e+04 0.132 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.0115 -0.0479 3.17 0.00529 0 0 0 test.phys initStep - 1 0.0115 -0.0478 3.17 0 0.00529 0.000456 0.000456 test.phys eIoni + 0 -0.168 0.0847 9.45 0.00123 0 0 0 test.phys initStep + 1 -0.168 0.0847 9.45 0 0.00123 4.95e-05 4.95e-05 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.0115 -0.0479 3.17 0.263 0 0 0 test.phys initStep - 1 0.182 -0.247 10 0.263 0 6.83 6.83 World Transportation - 2 250 -291 1e+04 0.263 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0149 0.0253 1.69 0.0243 0 0 0 test.phys initStep + 1 -0.0268 0.0867 5.04 0 0.00156 3.35 3.35 test.phys phot + +********************************************************************************************************* +* 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.0268 0.0867 5.04 0.0227 0 0 0 test.phys initStep + 1 -0.0284 0.0863 5.04 0 0.0227 0.00542 0.00542 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.0115 -0.0479 3.17 6.64 0 0 0 test.phys initStep - 1 0.17 -0.242 10 6.64 0 6.83 6.83 World Transportation - 2 232 -285 1e+04 6.64 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0149 0.0253 1.69 11.8 0 0 0 test.phys initStep + 1 -0.0425 0.175 10 11.8 0 8.31 8.31 World Transportation + 2 -33.3 180 1e+04 11.8 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.0115 -0.0479 3.17 0.0407 0 0 0 test.phys initStep - 1 0.058 -0.153 5.15 0.0351 0 1.98 1.98 test.phys compt - 2 -0.782 0.00225 2.17 0.033 0 3.09 5.07 test.phys compt - 3 -0.64 0.222 2.12 0 0.00156 0.266 5.34 test.phys phot + 0 -0.0149 0.0253 1.69 21.8 0 0 0 test.phys initStep + 1 0.0205 0.0361 10 21.8 0 8.31 8.31 World Transportation + 2 42.6 13 1e+04 21.8 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.0115 -0.0479 3.17 0.0366 0 0 0 test.phys initStep - 1 0.0908 -0.118 6.12 0.0363 0 2.95 2.95 test.phys compt - 2 -0.681 -0.0628 7.74 0 0.00156 1.8 4.75 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.681 -0.0628 7.74 0.0347 0 0 0 test.phys initStep - 1 -0.681 -0.0601 7.74 0 0.0347 0.0113 0.0113 test.phys eIoni - -********************************************************************************************************* -* 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.0908 -0.118 6.12 0.000286 0 0 0 test.phys initStep - 1 0.0908 -0.118 6.12 0 0.000286 8.72e-06 8.72e-06 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.64 0.222 2.12 0.0315 0 0 0 test.phys initStep - 1 -0.64 0.225 2.12 0 0.0315 0.00955 0.00955 test.phys eIoni - -********************************************************************************************************* -* 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.782 0.00225 2.17 0.00211 0 0 0 test.phys initStep - 1 -0.782 0.00223 2.17 0 0.00211 0.000107 0.000107 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.058 -0.153 5.15 0.0055 0 0 0 test.phys initStep - 1 0.058 -0.153 5.15 0 0.0055 0.000488 0.000488 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 95.8 4.24 10 1.01e+03 World Transportation - 3 1.16e+03 200 1e+04 95.8 3.69e-22 1.01e+04 1.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 -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 95.8 4.22 10 1.01e+03 World Transportation - 3 657 -870 1e+04 95.8 3.68e-22 1e+04 1.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 -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.00686 -0.0527 3.13 97.6 1.07 3.13 1e+03 test.phys biasWrapper(eBrem) - 3 -0.156 -0.0251 10 94.4 3.16 6.88 1.01e+03 World Transportation - 4 46.2 122 1e+04 94.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.00686 -0.0527 3.13 1.02 0 0 0 test.phys initStep - 1 -0.183 0.137 10 1.02 0 6.87 6.87 World Transportation - 2 -257 276 1e+04 1.02 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.00686 -0.0527 3.13 5.85 0 0 0 test.phys initStep - 1 -0.126 -0.0217 10 5.85 0 6.87 6.87 World Transportation - 2 -173 45.1 1e+04 5.85 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.00686 -0.0527 3.13 4.88 0 0 0 test.phys initStep - 1 -0.131 -0.011 10 4.88 0 6.87 6.87 World Transportation - 2 -180 60.7 1e+04 4.88 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.00686 -0.0527 3.13 0.407 0 0 0 test.phys initStep - 1 -0.163 -0.013 10 0.407 0 6.87 6.87 World Transportation - 2 -227 57.8 1e+04 0.407 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.00686 -0.0527 3.13 0.162 0 0 0 test.phys initStep - 1 -0.166 -0.0421 10 0.162 0 6.87 6.87 World Transportation - 2 -232 15.4 1e+04 0.162 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.00686 -0.0527 3.13 0.219 0 0 0 test.phys initStep - 1 -0.131 -0.00778 10 0.219 0 6.87 6.87 World Transportation - 2 -181 65.3 1e+04 0.219 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.00686 -0.0527 3.13 41.1 0 0 0 test.phys initStep - 1 -0.117 -0.0301 10 41.1 0 6.87 6.87 World Transportation - 2 -161 32.8 1e+04 41.1 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.00686 -0.0527 3.13 0.227 0 0 0 test.phys initStep - 1 -0.106 0.0259 10 0.227 0 6.87 6.87 World Transportation - 2 -145 114 1e+04 0.227 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.00686 -0.0527 3.13 0.432 0 0 0 test.phys initStep - 1 -0.0993 0.0422 10 0.432 0 6.87 6.87 World Transportation - 2 -134 138 1e+04 0.432 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 -0.0149 0.0253 1.69 17 0 0 0 test.phys initStep + 1 -0.0451 0.176 10 17 0 8.31 8.31 World Transportation + 2 -36.4 181 1e+04 17 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.00686 -0.0527 3.13 1.33 0 0 0 test.phys initStep - 1 -0.207 0.0421 10 1.33 0 6.87 6.87 World Transportation - 2 -292 138 1e+04 1.33 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0149 0.0253 1.69 1.21 0 0 0 test.phys initStep + 1 -0.0677 0.18 10 1.21 0 8.31 8.31 World Transportation + 2 -63.5 186 1e+04 1.21 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2456,539 +3513,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 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.069 -0.0396 3.53 98.9 1.1 3.53 1e+03 test.phys biasWrapper(eBrem) - 3 0.073 -0.0496 3.94 98.7 0.119 0.413 1e+03 test.phys biasWrapper(eBrem) - 4 0.168 -0.143 7.54 93.1 1.32 3.6 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.194 -0.195 8.46 92.3 0.351 0.919 1.01e+03 test.phys biasWrapper(eBrem) - 6 0.199 -0.273 9.9 88.8 0.91 1.44 1.01e+03 test.phys biasWrapper(eBrem) - 7 0.199 -0.28 10 88.8 0.0341 0.105 1.01e+03 World Transportation - 8 -29.2 -767 1e+04 88.8 3.65e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 0.0468 -0.00516 2.98 98.3 1.21 2.98 1e+03 test.phys eIoni + 3 0.175 -0.0646 10 95.8 2.46 7.03 1.01e+03 World Transportation + 4 173 -116 1e+04 95.8 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 1 +* 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.199 -0.273 9.9 0.0213 0 0 0 test.phys initStep - 1 0.199 -0.28 10 0.0213 0 0.105 0.105 World Transportation - 2 -8.26 -671 1e+04 0.0213 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.199 -0.273 9.9 0.0258 0 0 0 test.phys initStep - 1 0.199 -0.28 10 0.0258 0 0.105 0.105 World Transportation - 2 -27.9 -661 1e+04 0.0258 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.199 -0.273 9.9 14.8 0 0 0 test.phys initStep - 1 0.191 -0.281 10 14.8 0 0.105 0.105 World Transportation - 2 -791 -792 1e+04 14.8 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.199 -0.273 9.9 13.8 0 0 0 test.phys initStep - 1 0.198 -0.281 10 13.8 0 0.105 0.105 World Transportation - 2 -84.8 -785 1e+04 13.8 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.199 -0.273 9.9 16.3 0 0 0 test.phys initStep - 1 0.199 -0.281 10 16.3 0 0.105 0.105 World Transportation - 2 -29.4 -709 1e+04 16.3 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.199 -0.273 9.9 0.0985 0 0 0 test.phys initStep - 1 0.199 -0.28 10 0.0985 0 0.105 0.105 World Transportation - 2 2.46 -661 1e+04 0.0985 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.199 -0.273 9.9 0.082 0 0 0 test.phys initStep - 1 0.199 -0.28 10 0.082 0 0.105 0.105 World Transportation - 2 -6.91 -707 1e+04 0.082 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.199 -0.273 9.9 0.0226 0 0 0 test.phys initStep - 1 0.199 -0.28 9.99 0 0.00156 0.0916 0.0916 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 44 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.199 -0.28 9.99 0.021 0 0 0 test.phys initStep - 1 0.2 -0.281 9.99 0 0.021 0.00475 0.00475 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.199 -0.273 9.9 11.4 0 0 0 test.phys initStep - 1 0.198 -0.28 10 11.4 0 0.105 0.105 World Transportation - 2 -82.4 -684 1e+04 11.4 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.199 -0.273 9.9 2.52 0 0 0 test.phys initStep - 1 0.199 -0.28 10 2.52 0 0.105 0.105 World Transportation - 2 -39.6 -654 1e+04 2.52 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.194 -0.195 8.46 1.76 0 0 0 test.phys initStep - 1 0.226 -0.281 10 1.76 0 1.55 1.55 World Transportation - 2 208 -557 1e+04 1.76 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.194 -0.195 8.46 0.0509 0 0 0 test.phys initStep - 1 0.19 -0.249 10 0.0509 0 1.54 1.54 World Transportation - 2 -24.5 -351 1e+04 0.0509 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 0.194 -0.195 8.46 3.14 0 0 0 test.phys initStep - 1 0.237 -0.295 10 3.14 0 1.55 1.55 World Transportation - 2 276 -648 1e+04 3.14 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.194 -0.195 8.46 0.0259 0 0 0 test.phys initStep - 1 0.196 -0.2 8.55 0 0.00156 0.0973 0.0973 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.196 -0.2 8.55 0.0243 0 0 0 test.phys initStep - 1 0.195 -0.201 8.55 0 0.0243 0.00612 0.00612 test.phys eIoni - -********************************************************************************************************* -* 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.194 -0.195 8.46 2.24 0 0 0 test.phys initStep - 1 0.251 -0.293 10 2.24 0 1.55 1.55 World Transportation - 2 369 -639 1e+04 2.24 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.194 -0.195 8.46 0.251 0 0 0 test.phys initStep - 1 0.222 -0.277 10 0.251 0 1.55 1.55 World Transportation - 2 181 -532 1e+04 0.251 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.194 -0.195 8.46 4.63 0 0 0 test.phys initStep - 1 0.225 -0.278 10 4.63 0 1.55 1.55 World Transportation - 2 201 -537 1e+04 4.63 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.194 -0.195 8.46 0.0257 0 0 0 test.phys initStep - 1 0.217 -0.278 10 0.0257 0 1.55 1.55 World Transportation - 2 150 -539 1e+04 0.0257 0 1e+04 1e+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.194 -0.195 8.46 0.0154 0 0 0 test.phys initStep - 1 0.194 -0.195 8.46 0 0.00156 0.000117 0.000117 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.194 -0.195 8.46 0.0138 0 0 0 test.phys initStep - 1 0.193 -0.194 8.46 0 0.0138 0.00231 0.00231 test.phys eIoni - -********************************************************************************************************* -* 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.194 -0.195 8.46 0.515 0 0 0 test.phys initStep - 1 0.225 -0.286 10 0.515 0 1.55 1.55 World Transportation - 2 203 -592 1e+04 0.515 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.168 -0.143 7.54 31.2 0 0 0 test.phys initStep - 1 0.164 -0.261 10 31.2 0 2.46 2.46 World Transportation - 2 -13.8 -483 1e+04 31.2 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.168 -0.143 7.54 0.308 0 0 0 test.phys initStep - 1 0.173 -0.159 7.86 0.165 0 0.322 0.322 test.phys compt - 2 0.0925 0.183 7.72 0.155 0 0.379 0.702 test.phys compt - 3 -19.6 20.2 6.98 0.14 0 28.1 28.8 test.phys compt - 4 -21.3 27.5 0 0.14 0 10.2 39 World Transportation - 5 -2.35e+03 1e+04 -9.62e+03 0.14 0 1.41e+04 1.41e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.6 20.2 6.98 0.0153 0 0 0 test.phys initStep - 1 -19.6 20.2 6.98 0 0.0153 0.00275 0.00275 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0925 0.183 7.72 0.01 0 0 0 test.phys initStep - 1 0.0928 0.183 7.72 0 0.01 0.00133 0.00133 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.173 -0.159 7.86 0.142 0 0 0 test.phys initStep - 1 0.177 -0.176 7.9 0 0.142 0.125 0.125 test.phys eIoni - -********************************************************************************************************* -* 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.168 -0.143 7.54 1.59 0 0 0 test.phys initStep - 1 0.17 -0.272 10 1.59 0 2.46 2.46 World Transportation - 2 7.99 -527 1e+04 1.59 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.168 -0.143 7.54 0.0353 0 0 0 test.phys initStep - 1 0.266 -0.216 10 0.0353 0 2.46 2.46 World Transportation - 2 398 -298 1e+04 0.0353 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.168 -0.143 7.54 2.9 0 0 0 test.phys initStep - 1 0.236 -0.261 10 2.9 0 2.46 2.46 World Transportation - 2 277 -480 1e+04 2.9 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.168 -0.143 7.54 26.6 0 0 0 test.phys initStep - 1 0.211 -0.264 10 26.6 0 2.46 2.46 World Transportation - 2 175 -493 1e+04 26.6 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.168 -0.143 7.54 0.454 0 0 0 test.phys initStep - 1 0.17 -0.19 10 0.454 0 2.46 2.46 World Transportation - 2 9.54 -192 1e+04 0.454 0 9.99e+03 9.99e+03 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.168 -0.143 7.54 0.215 0 0 0 test.phys initStep - 1 0.0989 -0.242 10 0.215 0 2.46 2.46 World Transportation - 2 -280 -403 1e+04 0.215 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.168 -0.143 7.54 1.25 0 0 0 test.phys initStep - 1 0.215 -0.239 10 1.25 0 2.46 2.46 World Transportation - 2 193 -392 1e+04 1.25 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.168 -0.143 7.54 4.29 0 0 0 test.phys initStep - 1 0.207 -0.265 10 4.29 0 2.46 2.46 World Transportation - 2 157 -496 1e+04 4.29 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.073 -0.0496 3.94 7.89 0 0 0 test.phys initStep - 1 0.12 -0.274 10 7.89 0 6.06 6.06 World Transportation - 2 76.9 -370 1e+04 7.89 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.073 -0.0496 3.94 0.806 0 0 0 test.phys initStep - 1 0.0954 -0.256 10 0.806 0 6.06 6.06 World Transportation - 2 37.1 -341 1e+04 0.806 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.073 -0.0496 3.94 11 0 0 0 test.phys initStep - 1 0.19 -0.257 10 11 0 6.06 6.06 World Transportation - 2 194 -342 1e+04 11 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.073 -0.0496 3.94 0.375 0 0 0 test.phys initStep - 1 0.116 -0.267 10 0.375 0 6.06 6.06 World Transportation - 2 70.6 -360 1e+04 0.375 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.073 -0.0496 3.94 0.0116 0 0 0 test.phys initStep - 1 0.0735 -0.0508 3.98 0 0.00156 0.0351 0.0351 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0735 -0.0508 3.98 0.01 0 0 0 test.phys initStep - 1 0.0734 -0.0505 3.98 0 0.01 0.00133 0.00133 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.073 -0.0496 3.94 1.88 0 0 0 test.phys initStep - 1 0.0819 -0.237 10 1.88 0 6.06 6.06 World Transportation - 2 14.7 -309 1e+04 1.88 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.073 -0.0496 3.94 0.124 0 0 0 test.phys initStep - 1 0.103 -0.243 10 0.124 0 6.06 6.06 World Transportation - 2 50 -319 1e+04 0.124 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.073 -0.0496 3.94 29 0 0 0 test.phys initStep - 1 0.134 -0.268 10 29 0 6.06 6.06 World Transportation - 2 101 -360 1e+04 29 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.073 -0.0496 3.94 2.03 0 0 0 test.phys initStep - 1 0.153 -0.268 10 2.03 0 6.06 6.06 World Transportation - 2 131 -361 1e+04 2.03 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.073 -0.0496 3.94 0.0304 0 0 0 test.phys initStep - 1 0.0879 -0.0937 5.29 0 0.00156 1.35 1.35 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0879 -0.0937 5.29 0.0288 0 0 0 test.phys initStep - 1 0.087 -0.0921 5.29 0 0.0288 0.0082 0.0082 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.069 -0.0396 3.53 0.2 0 0 0 test.phys initStep - 1 0.163 -0.252 10 0.2 0 6.47 6.47 World Transportation - 2 145 -328 1e+04 0.2 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.069 -0.0396 3.53 24.8 0 0 0 test.phys initStep - 1 0.153 -0.261 10 24.8 0 6.47 6.47 World Transportation - 2 130 -342 1e+04 24.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.069 -0.0396 3.53 0.285 0 0 0 test.phys initStep - 1 0.191 -0.252 10 0.285 0 6.47 6.47 World Transportation - 2 188 -329 1e+04 0.285 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.069 -0.0396 3.53 11.9 0 0 0 test.phys initStep - 1 0.163 -0.225 10 11.9 0 6.47 6.47 World Transportation - 2 146 -286 1e+04 11.9 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.069 -0.0396 3.53 56.3 0 0 0 test.phys initStep - 1 0.18 -0.238 10 56.3 0 6.47 6.47 World Transportation - 2 172 -307 1e+04 56.3 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.069 -0.0396 3.53 0.447 0 0 0 test.phys initStep - 1 0.153 -0.274 10 0.447 0 6.47 6.47 World Transportation - 2 130 -362 1e+04 0.447 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.069 -0.0396 3.53 0.95 0 0 0 test.phys initStep - 1 0.189 -0.227 10 0.95 0 6.47 6.47 World Transportation - 2 186 -290 1e+04 0.95 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.069 -0.0396 3.53 86.7 0 0 0 test.phys initStep - 1 0.121 -0.207 10 86.7 0 6.47 6.47 World Transportation - 2 80.8 -258 1e+04 86.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.069 -0.0396 3.53 0.0214 0 0 0 test.phys initStep - 1 0.0756 -0.0856 4.89 0 0.00156 1.36 1.36 test.phys phot - -********************************************************************************************************* -* 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.069 -0.0396 3.53 0.00898 0 0 0 test.phys initStep - 1 0.0708 -0.0449 3.67 0 0.00156 0.141 0.141 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0708 -0.0449 3.67 0.00741 0 0 0 test.phys initStep - 1 0.071 -0.0449 3.67 0 0.00741 0.000799 0.000799 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0756 -0.0856 4.89 0.0198 0 0 0 test.phys initStep - 1 0.0758 -0.0846 4.89 0 0.0198 0.00428 0.00428 test.phys eIoni + 0 0.0468 -0.00516 2.98 0.535 0 0 0 test.phys initStep + 1 0.274 0.167 3.18 0 0.535 0.925 0.925 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2997,1325 +3532,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 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.0241 0.00182 1.42 99.2 0.641 1.42 1e+03 test.phys biasWrapper(eBrem) - 3 0.0221 0.00553 2.02 97.1 0.165 0.602 1e+03 test.phys biasWrapper(eBrem) - 4 0.000309 0.0619 3.01 88.7 0.482 0.987 1e+03 test.phys biasWrapper(eBrem) - 5 -0.00729 0.0834 3.47 88.4 0.154 0.468 1e+03 test.phys biasWrapper(eBrem) - 6 0.0628 0.482 8.46 30.4 1.97 5 1.01e+03 test.phys biasWrapper(eBrem) - 7 0.126 0.547 10 29.1 1.38 1.55 1.01e+03 World Transportation - 8 374 1.01e+03 1e+04 29.1 3.32e-22 1e+04 1.11e+04 OutOfWorld Transportation + 2 -0.00658 0.00535 1.11 99 0.495 1.11 1e+03 test.phys eIoni + 3 0.198 0.0891 10 94.9 4.14 8.9 1.01e+03 World Transportation + 4 -223 -175 1e+04 94.9 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 1 +* 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.0628 0.482 8.46 0.0231 0 0 0 test.phys initStep - 1 0.101 0.525 9.29 0 0.00156 0.831 0.831 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.101 0.525 9.29 0.0215 0 0 0 test.phys initStep - 1 0.1 0.524 9.29 0 0.0215 0.00495 0.00495 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0628 0.482 8.46 0.0395 0 0 0 test.phys initStep - 1 0.133 0.563 10 0.0395 0 1.55 1.55 World Transportation - 2 458 525 1e+04 0.0395 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.0628 0.482 8.46 7.14 0 0 0 test.phys initStep - 1 0.138 0.563 10 7.14 0 1.55 1.55 World Transportation - 2 484 523 1e+04 7.14 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.0628 0.482 8.46 0.16 0 0 0 test.phys initStep - 1 0.137 0.561 10 0.16 0 1.55 1.55 World Transportation - 2 481 511 1e+04 0.16 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.0628 0.482 8.46 0.457 0 0 0 test.phys initStep - 1 0.123 0.559 10 0.457 0 1.55 1.55 World Transportation - 2 390 498 1e+04 0.457 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.0628 0.482 8.46 0.631 0 0 0 test.phys initStep - 1 0.129 0.559 10 0.631 0 1.55 1.55 World Transportation - 2 431 496 1e+04 0.631 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0628 0.482 8.46 0.0506 0 0 0 test.phys initStep - 1 0.143 0.571 10 0.0506 0 1.55 1.55 World Transportation - 2 520 576 1e+04 0.0506 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0628 0.482 8.46 15.5 0 0 0 test.phys initStep - 1 0.133 0.542 10 15.5 0 1.54 1.54 World Transportation - 2 455 389 1e+04 15.5 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0628 0.482 8.46 0.024 0 0 0 test.phys initStep - 1 0.0929 0.515 9.09 0 0.00156 0.63 0.63 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0929 0.515 9.09 0.0224 0 0 0 test.phys initStep - 1 0.0913 0.515 9.09 0 0.0224 0.00531 0.00531 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0628 0.482 8.46 56 0 0 0 test.phys initStep - 1 0.137 0.571 10 56 0 1.55 1.55 World Transportation - 2 482 577 1e+04 56 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.00729 0.0834 3.47 0.0295 0 0 0 test.phys initStep - 1 -0.055 0.323 7.66 0 0.00156 4.19 4.19 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 41 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.055 0.323 7.66 0.0279 0 0 0 test.phys initStep - 1 -0.0531 0.322 7.66 0 0.0279 0.00776 0.00776 test.phys eIoni - -********************************************************************************************************* -* 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.00729 0.0834 3.47 0.0922 0 0 0 test.phys initStep - 1 -0.0836 0.469 10 0.0922 0 6.54 6.54 World Transportation - 2 -117 591 1e+04 0.0922 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -0.00729 0.0834 3.47 6.09 0 0 0 test.phys initStep - 1 -0.0587 0.462 10 6.09 0 6.54 6.54 World Transportation - 2 -78.7 580 1e+04 6.09 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.00729 0.0834 3.47 9.42 0 0 0 test.phys initStep - 1 -0.00853 0.0996 3.76 0 0 0.282 0.282 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00853 0.0996 3.76 4.48 0 0 0 test.phys initStep - 1 -0.817 -0.198 5.97 2.78 1.15 2.42 2.42 test.phys eIoni - 2 -0.16 -2.06 7.32 1.29 1.49 2.83 5.25 test.phys eIoni - 3 0.647 -3.07 7.63 0.573 0.718 1.88 7.13 test.phys eIoni - 4 0.939 -3.31 7.55 0.0596 0.513 1.01 8.15 test.phys eIoni - 5 0.945 -3.32 7.54 0 0.0596 0.0288 8.17 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.817 -0.198 5.97 0.552 0 0 0 test.phys initStep - 1 -1.1 -0.214 6.21 0 0.552 0.963 0.963 test.phys eIoni - -********************************************************************************************************* -* 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.00729 0.0834 3.47 28.8 0 0 0 test.phys initStep - 1 -0.0914 0.355 10 28.8 0 6.53 6.53 World Transportation - 2 -129 416 1e+04 28.8 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.00729 0.0834 3.47 0.723 0 0 0 test.phys initStep - 1 -0.0766 0.493 10 0.723 0 6.54 6.54 World Transportation - 2 -106 628 1e+04 0.723 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.00729 0.0834 3.47 14.1 0 0 0 test.phys initStep - 1 0.033 0.5 10 14.1 0 6.54 6.54 World Transportation - 2 61.7 638 1e+04 14.1 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.00729 0.0834 3.47 1.09 0 0 0 test.phys initStep - 1 -0.0618 0.394 10 1.09 0 6.53 6.53 World Transportation - 2 -83.5 477 1e+04 1.09 0 1e+04 1e+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.00729 0.0834 3.47 0.0991 0 0 0 test.phys initStep - 1 -0.0723 0.446 10 0.0991 0 6.54 6.54 World Transportation - 2 -99.5 556 1e+04 0.0991 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.00729 0.0834 3.47 0.135 0 0 0 test.phys initStep - 1 -0.0461 0.188 5.27 0.0919 0 1.8 1.8 test.phys compt - 2 -2.18 3.42 0 0.0919 0 6.54 8.35 World Transportation - 3 -4.04e+03 6.13e+03 -1e+04 0.0919 0 1.24e+04 1.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 32 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0461 0.188 5.27 0.0429 0 0 0 test.phys initStep - 1 -0.0454 0.187 5.28 0 0.0429 0.0164 0.0164 test.phys eIoni - -********************************************************************************************************* -* 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.000309 0.0619 3.01 0.0221 0 0 0 test.phys initStep - 1 -0.0166 0.148 4.48 0 0.00156 1.47 1.47 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 31 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0166 0.148 4.48 0.0205 0 0 0 test.phys initStep - 1 -0.0152 0.148 4.48 0 0.0205 0.00454 0.00454 test.phys eIoni - -********************************************************************************************************* -* 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.000309 0.0619 3.01 0.0346 0 0 0 test.phys initStep - 1 -0.00799 0.105 3.75 0 0.00156 0.741 0.741 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00799 0.105 3.75 0.033 0 0 0 test.phys initStep - 1 -0.00472 0.105 3.75 0 0.033 0.0104 0.0104 test.phys eIoni - -********************************************************************************************************* -* 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.000309 0.0619 3.01 0.98 0 0 0 test.phys initStep - 1 -0.111 0.446 10 0.98 0 7 7 World Transportation - 2 -159 549 1e+04 0.98 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.000309 0.0619 3.01 0.0173 0 0 0 test.phys initStep - 1 -0.00704 0.0801 3.31 0 0.00156 0.308 0.308 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00704 0.0801 3.31 0.0158 0 0 0 test.phys initStep - 1 -0.00715 0.0799 3.32 0 0.0158 0.00288 0.00288 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.000309 0.0619 3.01 0.264 0 0 0 test.phys initStep - 1 -0.17 0.463 10 0.264 0 7.01 7.01 World Transportation - 2 -244 573 1e+04 0.264 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.000309 0.0619 3.01 35.3 0 0 0 test.phys initStep - 1 -0.163 0.459 10 35.3 0 7.01 7.01 World Transportation - 2 -234 568 1e+04 35.3 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.000309 0.0619 3.01 77 0 0 0 test.phys initStep - 1 -0.145 0.472 10 77 0 7.01 7.01 World Transportation - 2 -207 586 1e+04 77 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.000309 0.0619 3.01 0.0355 0 0 0 test.phys initStep - 1 -0.0753 0.306 7.57 0 0.00156 4.57 4.57 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 24 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0753 0.306 7.57 0.034 0 0 0 test.phys initStep - 1 -0.0754 0.309 7.57 0 0.034 0.0109 0.0109 test.phys eIoni - -********************************************************************************************************* -* 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.000309 0.0619 3.01 0.0113 0 0 0 test.phys initStep - 1 -0.0025 0.0661 3.09 0 0.00156 0.0803 0.0803 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 23 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0025 0.0661 3.09 0.00974 0 0 0 test.phys initStep - 1 -0.00211 0.0661 3.09 0 0.00974 0.00127 0.00127 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.000309 0.0619 3.01 7.95 0 0 0 test.phys initStep - 1 -0.0829 0.453 10 7.95 0 7 7 World Transportation - 2 -119 560 1e+04 7.95 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.0221 0.00553 2.02 0.262 0 0 0 test.phys initStep - 1 -0.103 0.347 10 0.262 0 7.99 7.99 World Transportation - 2 -156 427 1e+04 0.262 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.0221 0.00553 2.02 31.5 0 0 0 test.phys initStep - 1 -0.12 0.43 10 31.5 0 7.99 7.99 World Transportation - 2 -178 532 1e+04 31.5 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.0221 0.00553 2.02 0.454 0 0 0 test.phys initStep - 1 -0.169 0.418 10 0.454 0 7.99 7.99 World Transportation - 2 -240 517 1e+04 0.454 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.0221 0.00553 2.02 5.52 0 0 0 test.phys initStep - 1 -0.0531 0.276 6.97 1.3 0 4.96 4.96 test.phys compt - 2 -2.58 -1.3 10 1.3 0 4.25 9.21 World Transportation - 3 -8.35e+03 -5.22e+03 1e+04 1.3 0 1.4e+04 1.4e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0531 0.276 6.97 4.22 0 0 0 test.phys initStep - 1 0.772 0.488 8.55 3.65 0.571 1.82 1.82 test.phys msc - 2 1.49 2.09 9.87 2.81 0.837 2.42 4.24 test.phys msc - 3 1.94 2.52 10 2.59 0.224 0.671 4.91 World Transportation - 4 5e+03 1e+04 2.91e+03 2.59 3.1e-22 1.15e+04 1.16e+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.0221 0.00553 2.02 1.06 0 0 0 test.phys initStep - 1 -0.136 0.408 10 1.06 0 7.99 7.99 World Transportation - 2 -199 504 1e+04 1.06 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.0221 0.00553 2.02 0.0356 0 0 0 test.phys initStep - 1 -0.0333 0.136 5.16 0 0.00156 3.14 3.14 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0333 0.136 5.16 0.0341 0 0 0 test.phys initStep - 1 -0.0321 0.133 5.16 0 0.0341 0.011 0.011 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.0221 0.00553 2.02 8.76 0 0 0 test.phys initStep - 1 -0.143 0.422 10 8.76 0 7.99 7.99 World Transportation - 2 -207 522 1e+04 8.76 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.0221 0.00553 2.02 3.47 0 0 0 test.phys initStep - 1 -0.276 0.364 10 3.47 0 7.99 7.99 World Transportation - 2 -374 450 1e+04 3.47 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.0221 0.00553 2.02 1.32 0 0 0 test.phys initStep - 1 -0.138 0.383 10 1.32 0 7.99 7.99 World Transportation - 2 -200 472 1e+04 1.32 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.0221 0.00553 2.02 1.95 0 0 0 test.phys initStep - 1 -0.139 0.386 10 1.95 0 7.99 7.99 World Transportation - 2 -202 477 1e+04 1.95 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.0241 0.00182 1.42 0.097 0 0 0 test.phys initStep - 1 0.0392 0.034 8.54 0.0759 0 7.12 7.12 test.phys compt - 2 -2.48 -16.2 0 0.0759 0 18.5 25.6 World Transportation - 3 -1.55e+03 -1e+04 -5.25e+03 0.0759 0 1.14e+04 1.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0392 0.034 8.54 0.0211 0 0 0 test.phys initStep - 1 0.0393 0.0347 8.54 0 0.0211 0.00477 0.00477 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.0241 0.00182 1.42 0.0114 0 0 0 test.phys initStep - 1 0.0241 0.00192 1.43 0 0.00156 0.00738 0.00738 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0241 0.00192 1.43 0.00983 0 0 0 test.phys initStep - 1 0.0243 0.00212 1.43 0 0.00983 0.00128 0.00128 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.0241 0.00182 1.42 0.0111 0 0 0 test.phys initStep - 1 0.0234 0.00848 2.02 0 0.00156 0.602 0.602 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0234 0.00848 2.02 0.00954 0 0 0 test.phys initStep - 1 0.0231 0.00862 2.02 0 0.00954 0.00122 0.00122 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.0241 0.00182 1.42 0.0228 0 0 0 test.phys initStep - 1 0.027 0.0114 2.53 0 0.00156 1.11 1.11 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.027 0.0114 2.53 0.0212 0 0 0 test.phys initStep - 1 0.027 0.00998 2.53 0 0.0212 0.00481 0.00481 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.0241 0.00182 1.42 3.91 0 0 0 test.phys initStep - 1 0.0679 0.0645 10 3.91 0 8.58 8.58 World Transportation - 2 51.1 73 1e+04 3.91 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.0241 0.00182 1.42 47.1 0 0 0 test.phys initStep - 1 0.0262 0.0125 2.43 0 0 1.01 1.01 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0262 0.0125 2.43 28.4 0 0 0 test.phys initStep - 1 0.166 -0.0287 4.7 25.2 0.766 2.28 2.28 test.phys eIoni - 2 1.14 0.671 9.47 23.6 1.63 4.94 7.22 test.phys biasWrapper(eBrem) - 3 1.16 0.725 10 23.4 0.19 0.533 7.75 World Transportation - 4 218 1.13e+03 1e+04 23.4 3.26e-22 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 -0.0287 4.7 2.46 0 0 0 test.phys initStep - 1 0.834 -1.09 5.74 1.89 0.576 1.68 1.68 test.phys msc - 2 0.672 -1.73 7.85 1.18 0.711 2.29 3.97 test.phys eIoni - 3 0.678 -0.558 7.99 0.73 0.445 1.29 5.26 test.phys msc - 4 0.664 -0.368 7.48 0.117 0.613 1.31 6.57 test.phys eIoni - 5 0.684 -0.361 7.46 0 0.117 0.0907 6.66 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 82, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.0654 0 0 0 test.phys initStep - 1 1.12 0.735 10 0.0654 0 0.533 0.533 World Transportation - 2 -277 1.22e+03 1e+04 0.0654 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 81, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 12.7 0 0 0 test.phys initStep - 1 1.16 0.727 10 12.7 0 0.533 0.533 World Transportation - 2 423 1.06e+03 1e+04 12.7 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.0814 0 0 0 test.phys initStep - 1 1.15 0.726 10 0.0814 0 0.532 0.532 World Transportation - 2 171 1.03e+03 1e+04 0.0814 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 5.08 0 0 0 test.phys initStep - 1 1.18 0.723 10 5.08 0 0.533 0.533 World Transportation - 2 737 974 1e+04 5.08 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 6.42 0 0 0 test.phys initStep - 1 1.18 0.709 9.96 0 0 0.497 0.497 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 78 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 0.709 9.96 3.12 0 0 0 test.phys initStep - 1 1.18 0.717 10 3.11 0.00839 0.0361 0.0361 World Transportation - 2 -660 2.73e+03 1e+04 3.11 2.82e-22 1.04e+04 1.04e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 77, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.217 0 0 0 test.phys initStep - 1 1.15 0.724 10 0.217 0 0.532 0.532 World Transportation - 2 201 1e+03 1e+04 0.217 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 76, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.0208 0 0 0 test.phys initStep - 1 1.15 0.707 9.64 0 0.00156 0.169 0.169 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 76 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 0.707 9.64 0.0192 0 0 0 test.phys initStep - 1 1.15 0.706 9.64 0 0.0192 0.00406 0.00406 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.939 0 0 0 test.phys initStep - 1 1.16 0.732 10 0.939 0 0.533 0.533 World Transportation - 2 490 1.15e+03 1e+04 0.939 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.0104 0 0 0 test.phys initStep - 1 1.14 0.674 9.49 0 0.00156 0.021 0.021 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 74 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.674 9.49 0.00886 0 0 0 test.phys initStep - 1 1.14 0.673 9.49 0 0.00886 0.00108 0.00108 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.671 9.47 0.0102 0 0 0 test.phys initStep - 1 1.14 0.686 9.64 0 0.00156 0.167 0.167 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 73 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.14 0.686 9.64 0.00867 0 0 0 test.phys initStep - 1 1.14 0.686 9.64 0 0.00867 0.00104 0.00104 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.0241 0.00182 1.42 0.152 0 0 0 test.phys initStep - 1 0.0605 0.0401 10 0.152 0 8.58 8.58 World Transportation - 2 42.4 44.7 1e+04 0.152 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.0241 0.00182 1.42 38.8 0 0 0 test.phys initStep - 1 0.24 -0.181 10 38.8 0 8.59 8.59 World Transportation - 2 252 -213 1e+04 38.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.0241 0.00182 1.42 0.0835 0 0 0 test.phys initStep - 1 0.0681 0.0199 8.64 0.0711 0 7.22 7.22 test.phys compt - 2 -3.15 9.37 7.96 0.0591 0 9.91 17.1 test.phys compt - 3 -2.85 4.28 0 0.0591 0 9.45 26.6 World Transportation - 4 369 -6.39e+03 -1e+04 0.0591 0 1.19e+04 1.19e+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.0241 0.00182 1.42 0.112 0 0 0 test.phys initStep - 1 0.0583 0.076 9.04 0.106 0 7.62 7.62 test.phys compt - 2 0.999 -0.137 10 0.106 0 1.36 8.98 World Transportation - 3 9.83e+03 -2.23e+03 1e+04 0.106 0 1.42e+04 1.42e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 84, Parent ID = 78 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 0.709 9.96 2.27 0 0 0 test.phys initStep - 1 1.18 0.705 10 2.27 0.0082 0.036 0.036 World Transportation - 2 2.48e+03 -1.03e+03 1e+04 2.27 2.77e-22 1.03e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 71, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0262 0.0125 2.43 17.6 0 0 0 test.phys initStep - 1 -0.637 0.281 6.99 15.6 1.62 4.63 4.63 test.phys biasWrapper(eBrem) - 2 -0.596 0.228 10 14.4 1.13 3.05 7.68 World Transportation - 3 60.5 -347 1e+04 14.4 3.1e-22 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 56, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00853 0.0996 3.76 3.91 0 0 0 test.phys initStep - 1 -1.04 -0.0015 6.1 3.06 0.856 2.58 2.58 test.phys msc - 2 -0.62 -1.16 7.96 2.28 0.776 2.34 4.92 test.phys msc - 3 -2.3 -2.21 8.02 1.41 0.871 2.12 7.04 test.phys msc - 4 -2.27 -3.1 7.89 0.945 0.297 0.93 7.97 test.phys biasWrapper(eBrem) - 5 -2.47 -3.83 7.65 0.314 0.631 1.58 9.55 test.phys eIoni - 6 -2.57 -3.84 7.53 0.0484 0.253 0.397 9.95 test.phys biasWrapper(eBrem) - 7 -2.57 -3.84 7.53 0 0.0484 0.0185 9.97 test.phys eIoni - 8 -2.57 -3.84 7.53 0 0 0 9.97 test.phys annihil - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0583 0.076 9.04 0.00684 0 0 0 test.phys initStep - 1 0.0581 0.0761 9.04 0 0.00684 0.000699 0.000699 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.15 9.37 7.96 0.012 0 0 0 test.phys initStep - 1 -3.15 9.37 7.96 0 0.012 0.00181 0.00181 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0681 0.0199 8.64 0.0124 0 0 0 test.phys initStep - 1 0.0683 0.0195 8.64 0 0.0124 0.00191 0.00191 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.511 0 0 0 test.phys initStep - 1 -1.37 9.43 10 0.511 0 13.5 13.5 World Transportation - 2 900 1e+04 1.87e+03 0.511 0 1.02e+04 1.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.511 0 0 0 test.phys initStep - 1 -4.63 -26.7 3.28 0.501 0 23.3 23.3 test.phys compt - 2 -4.64 -35.2 0 0.501 0 9.14 32.5 World Transportation - 3 -10.6 -1e+04 -3.84e+03 0.501 0 1.07e+04 1.07e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -4.63 -26.7 3.28 0.0103 0 0 0 test.phys initStep - 1 -4.63 -26.7 3.28 0 0.0103 0.0014 0.0014 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 120, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0463 0 0 0 test.phys initStep - 1 -3.37 -2.5 5.86 0.0434 0 2.28 2.28 test.phys compt - 2 -6.1 5.26 10 0.0434 0 9.21 11.5 World Transportation - 3 -3.52e+03 1e+04 5.34e+03 0.0434 0 1.19e+04 1.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -3.37 -2.5 5.86 0.00287 0 0 0 test.phys initStep - 1 -3.37 -2.5 5.86 0 0.00287 0.000172 0.000172 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0492 0 0 0 test.phys initStep - 1 -4.47 -3.68 10 0.0492 0 3.12 3.12 World Transportation - 2 -7.66e+03 640 1e+04 0.0492 0 1.26e+04 1.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0163 0 0 0 test.phys initStep - 1 -2.65 -3.72 7.83 0 0.00156 0.33 0.33 test.phys phot - -********************************************************************************************************* -* 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 -2.65 -3.72 7.83 0.0147 0 0 0 test.phys initStep - 1 -2.65 -3.71 7.83 0 0.0147 0.00255 0.00255 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0196 0 0 0 test.phys initStep - 1 -2.69 -3.5 7.59 0 0.00156 0.37 0.37 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 117 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.69 -3.5 7.59 0.018 0 0 0 test.phys initStep - 1 -2.7 -3.5 7.59 0 0.018 0.00362 0.00362 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0202 0 0 0 test.phys initStep - 1 -2.37 -3.35 7.59 0 0.00156 0.536 0.536 test.phys phot - -********************************************************************************************************* -* 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 -2.37 -3.35 7.59 0.0187 0 0 0 test.phys initStep - 1 -2.37 -3.35 7.59 0 0.0187 0.00386 0.00386 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0236 0 0 0 test.phys initStep - 1 -3.27 -3.93 7.51 0 0.00156 0.697 0.697 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 115 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.27 -3.93 7.51 0.0221 0 0 0 test.phys initStep - 1 -3.27 -3.93 7.51 0 0.0221 0.00517 0.00517 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.00912 0 0 0 test.phys initStep - 1 -2.52 -3.86 7.55 0 0.00156 0.0629 0.0629 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 114 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.52 -3.86 7.55 0.00756 0 0 0 test.phys initStep - 1 -2.52 -3.86 7.55 0 0.00756 0.000825 0.000825 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0167 0 0 0 test.phys initStep - 1 -2.5 -3.82 7.54 0 0.00156 0.0756 0.0756 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 113 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.5 -3.82 7.54 0.0151 0 0 0 test.phys initStep - 1 -2.5 -3.82 7.54 0 0.0151 0.00268 0.00268 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0431 0 0 0 test.phys initStep - 1 -2.31 -3.72 7.8 0 0.00156 0.396 0.396 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 112 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.31 -3.72 7.8 0.0415 0 0 0 test.phys initStep - 1 -2.31 -3.72 7.8 0 0.0415 0.0154 0.0154 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.57 -3.84 7.53 0.0131 0 0 0 test.phys initStep - 1 -2.92 -4.69 7.35 0 0.00156 0.932 0.932 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 111 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.92 -4.69 7.35 0.0116 0 0 0 test.phys initStep - 1 -2.91 -4.69 7.35 0 0.0116 0.0017 0.0017 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.0863 0 0 0 test.phys initStep - 1 -1.24 -6.13 8.47 0.0654 0 3.26 3.26 test.phys compt - 2 -1.92 -4.47 9 0 0.00156 1.87 5.13 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 110 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.92 -4.47 9 0.0638 0 0 0 test.phys initStep - 1 -1.93 -4.47 9 0 0.0638 0.0324 0.0324 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 110 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.24 -6.13 8.47 0.0209 0 0 0 test.phys initStep - 1 -1.24 -6.13 8.47 0 0.0209 0.00469 0.00469 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.0336 0 0 0 test.phys initStep - 1 -3.09 -4.25 7.21 0 0.00156 1.57 1.57 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 109 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.09 -4.25 7.21 0.0321 0 0 0 test.phys initStep - 1 -3.09 -4.26 7.21 0 0.0321 0.00988 0.00988 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.00828 0 0 0 test.phys initStep - 1 -2.27 -3.1 7.89 0 0.00156 0.00144 0.00144 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 108 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.00672 0 0 0 test.phys initStep - 1 -2.27 -3.1 7.89 0 0.00672 0.000678 0.000678 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.0715 0 0 0 test.phys initStep - 1 -1.5 -6.27 4.3 0.0629 0 4.85 4.85 test.phys compt - 2 -4.29 -6.67 3.95 0.0617 0 2.84 7.69 test.phys compt - 3 -22.4 -22.8 2.46 0.0576 0 24.3 32 test.phys compt - 4 -20 -30.8 3.5 0.0501 0 8.4 40.4 test.phys compt - 5 -22.2 -28 10 0.0501 0 7.38 47.8 World Transportation - 6 -3.34e+03 4.21e+03 1e+04 0.0501 0 1.13e+04 1.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 107 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 -30.8 3.5 0.0075 0 0 0 test.phys initStep - 1 -20 -30.8 3.5 0 0.0075 0.000814 0.000814 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 107 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.4 -22.8 2.46 0.00413 0 0 0 test.phys initStep - 1 -22.4 -22.8 2.46 0 0.00413 0.000305 0.000305 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 107 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.29 -6.67 3.95 0.00126 0 0 0 test.phys initStep - 1 -4.29 -6.67 3.95 0 0.00126 5.1e-05 5.1e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 107 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.5 -6.27 4.3 0.00855 0 0 0 test.phys initStep - 1 -1.5 -6.27 4.3 0 0.00855 0.00102 0.00102 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 106, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.0429 0 0 0 test.phys initStep - 1 -2.08 -12.4 4.52 0.0425 0 9.93 9.93 test.phys compt - 2 -2.68 -14.7 2.45 0.0379 0 3.15 13.1 test.phys compt - 3 6.07 -8.52 0.557 0 0.00156 10.9 24 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 106 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.07 -8.52 0.557 0.0364 0 0 0 test.phys initStep - 1 6.07 -8.52 0.554 0 0.0364 0.0123 0.0123 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 106 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.68 -14.7 2.45 0.00459 0 0 0 test.phys initStep - 1 -2.68 -14.7 2.45 0 0.00459 0.000363 0.000363 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 106 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.08 -12.4 4.52 0.000336 0 0 0 test.phys initStep - 1 -2.08 -12.4 4.52 0 0.000336 1.01e-05 1.01e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.476 0 0 0 test.phys initStep - 1 -5.93 -8.7 6.14 0.344 0 6.92 6.92 test.phys compt - 2 -10.2 -9.45 0 0.344 0 7.49 14.4 World Transportation - 3 -6.9e+03 -1.23e+03 -1e+04 0.344 0 1.22e+04 1.22e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 105 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.93 -8.7 6.14 0.132 0 0 0 test.phys initStep - 1 -5.93 -8.74 6.15 0 0.132 0.11 0.11 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.00845 0 0 0 test.phys initStep - 1 -2.38 -3.29 7.85 0 0.00156 0.229 0.229 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 104 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.38 -3.29 7.85 0.00689 0 0 0 test.phys initStep - 1 -2.38 -3.29 7.85 0 0.00689 0.000707 0.000707 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.0113 0 0 0 test.phys initStep - 1 -2.25 -3.34 8.05 0 0.00156 0.289 0.289 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 103 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.25 -3.34 8.05 0.00978 0 0 0 test.phys initStep - 1 -2.25 -3.34 8.05 0 0.00978 0.00127 0.00127 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 102, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.0123 0 0 0 test.phys initStep - 1 -2.53 -3.3 7.74 0 0.00156 0.362 0.362 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.53 -3.3 7.74 0.0108 0 0 0 test.phys initStep - 1 -2.53 -3.3 7.74 0 0.0108 0.0015 0.0015 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 101, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.27 -3.1 7.89 0.166 0 0 0 test.phys initStep - 1 -2.33 -3.44 7.99 0.101 0 0.363 0.363 test.phys compt - 2 4.81 14.7 -8.88e-16 0.101 0 21.1 21.5 World Transportation - 3 3.93e+03 1e+04 -4.39e+03 0.101 0 1.16e+04 1.16e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 101 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.33 -3.44 7.99 0.0651 0 0 0 test.phys initStep - 1 -2.33 -3.45 8 0 0.0651 0.0335 0.0335 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.0382 0 0 0 test.phys initStep - 1 -0.382 0.388 10 0.0382 0 3.03 3.03 World Transportation - 2 843 353 1e+04 0.0382 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.0172 0 0 0 test.phys initStep - 1 -0.611 0.259 7.79 0 0.00156 0.803 0.803 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 99 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.611 0.259 7.79 0.0157 0 0 0 test.phys initStep - 1 -0.61 0.259 7.79 0 0.0157 0.00286 0.00286 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.11 0 0 0 test.phys initStep - 1 -0.336 0.366 10 0.11 0 3.03 3.03 World Transportation - 2 997 279 1e+04 0.11 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 97, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.0126 0 0 0 test.phys initStep - 1 -0.635 0.286 7.24 0 0.00156 0.257 0.257 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 97 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.635 0.286 7.24 0.011 0 0 0 test.phys initStep - 1 -0.635 0.286 7.24 0 0.011 0.00155 0.00155 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.506 0 0 0 test.phys initStep - 1 -0.559 0.175 10 0.506 0 3.02 3.02 World Transportation - 2 257 -351 1e+04 0.506 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.0212 0 0 0 test.phys initStep - 1 -0.62 0.263 7.64 0 0.00156 0.658 0.658 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 95 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.62 0.263 7.64 0.0197 0 0 0 test.phys initStep - 1 -0.62 0.262 7.64 0 0.0197 0.00422 0.00422 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.014 0 0 0 test.phys initStep - 1 -0.688 0.279 7.33 0 0.00156 0.345 0.345 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 94 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.688 0.279 7.33 0.0124 0 0 0 test.phys initStep - 1 -0.688 0.279 7.33 0 0.0124 0.00192 0.00192 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.804 0 0 0 test.phys initStep - 1 -0.751 0.318 10 0.804 0 3.02 3.02 World Transportation - 2 -378 122 1e+04 0.804 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.0164 0 0 0 test.phys initStep - 1 -0.629 0.27 7.36 0 0.00156 0.372 0.372 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 71 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.637 0.281 6.99 0.448 0 0 0 test.phys initStep - 1 -0.389 0.388 10 0.448 0 3.03 3.03 World Transportation - 2 819 353 1e+04 0.448 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.629 0.27 7.36 0.0148 0 0 0 test.phys initStep - 1 -0.628 0.27 7.36 0 0.0148 0.00259 0.00259 test.phys eIoni + 0 -0.00658 0.00535 1.11 0.466 0 0 0 test.phys initStep + 1 0.0105 -0.229 1.27 0 0.466 0.763 0.763 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4324,331 +3551,122 @@ 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.022 4.64e-05 1.33 96.1 0.433 1.33 1e+03 test.phys biasWrapper(eBrem) - 3 0.0232 0.00374 1.44 96.1 0.0346 0.118 1e+03 test.phys biasWrapper(eBrem) - 4 0.0627 0.501 9.75 91.4 3.82 8.32 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.0534 0.517 10 91.3 0.0943 0.252 1.01e+03 World Transportation - 6 -308 621 1e+04 91.3 3.65e-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.0627 0.501 9.75 68.9 0 0 0 test.phys initStep - 1 0.0529 0.517 10 68.9 0 0.252 0.252 World Transportation - 2 -387 624 1e+04 68.9 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.0627 0.501 9.75 1.13 0 0 0 test.phys initStep - 1 0.0547 0.513 10 1.13 0 0.252 0.252 World Transportation - 2 -319 501 1e+04 1.13 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.0627 0.501 9.75 0.0522 0 0 0 test.phys initStep - 1 0.0524 0.518 10 0.0522 0 0.252 0.252 World Transportation - 2 -410 663 1e+04 0.0522 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.0627 0.501 9.75 42.6 0 0 0 test.phys initStep - 1 0.0536 0.517 10 42.6 0 0.252 0.252 World Transportation - 2 -362 645 1e+04 42.6 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.0627 0.501 9.75 25.9 0 0 0 test.phys initStep - 1 0.0525 0.517 10 25.9 0 0.252 0.252 World Transportation - 2 -405 635 1e+04 25.9 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.0627 0.501 9.75 53.1 0 0 0 test.phys initStep - 1 0.053 0.516 10 53.1 0 0.252 0.252 World Transportation - 2 -384 588 1e+04 53.1 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.0627 0.501 9.75 1.35 0 0 0 test.phys initStep - 1 0.0508 0.518 10 1.35 0 0.253 0.253 World Transportation - 2 -472 668 1e+04 1.35 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.0627 0.501 9.75 0.0796 0 0 0 test.phys initStep - 1 0.0535 0.517 10 0.0796 0 0.252 0.252 World Transportation - 2 -366 643 1e+04 0.0796 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.0627 0.501 9.75 18.5 0 0 0 test.phys initStep - 1 0.0535 0.517 10 18.5 0 0.252 0.252 World Transportation - 2 -366 647 1e+04 18.5 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.0627 0.501 9.75 0.842 0 0 0 test.phys initStep - 1 0.0527 0.517 10 0.842 0 0.252 0.252 World Transportation - 2 -395 642 1e+04 0.842 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.0232 0.00374 1.44 1.05 0 0 0 test.phys initStep - 1 0.0939 0.275 10 1.05 0 8.56 8.56 World Transportation - 2 82.6 317 1e+04 1.05 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.0232 0.00374 1.44 0.111 0 0 0 test.phys initStep - 1 0.0349 0.0528 3.09 0.0925 0 1.64 1.64 test.phys compt - 2 -31.4 -48.9 10 0.0925 0 58.6 60.3 World Transportation - 3 -6.43e+03 -1e+04 1.42e+03 0.0925 0 1.19e+04 1.2e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 20 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0349 0.0528 3.09 0.0183 0 0 0 test.phys initStep - 1 0.0354 0.0535 3.09 0 0.0183 0.00372 0.00372 test.phys eIoni - -********************************************************************************************************* -* 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.0232 0.00374 1.44 0.485 0 0 0 test.phys initStep - 1 0.0808 0.271 10 0.485 0 8.56 8.56 World Transportation - 2 67.3 312 1e+04 0.485 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.0232 0.00374 1.44 8.26 0 0 0 test.phys initStep - 1 0.115 0.418 10 8.26 0 8.57 8.57 World Transportation - 2 107 484 1e+04 8.26 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.0232 0.00374 1.44 5.81 0 0 0 test.phys initStep - 1 0.167 0.37 10 5.81 0 8.56 8.56 World Transportation - 2 168 428 1e+04 5.81 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.0232 0.00374 1.44 0.388 0 0 0 test.phys initStep - 1 0.0801 0.258 10 0.388 0 8.56 8.56 World Transportation - 2 66.4 298 1e+04 0.388 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.0232 0.00374 1.44 27.1 0 0 0 test.phys initStep - 1 0.1 0.252 10 27.1 0 8.56 8.56 World Transportation - 2 89.9 290 1e+04 27.1 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.0232 0.00374 1.44 0.616 0 0 0 test.phys initStep - 1 0.0969 0.27 10 0.616 0 8.56 8.56 World Transportation - 2 86.1 311 1e+04 0.616 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.0232 0.00374 1.44 0.843 0 0 0 test.phys initStep - 1 0.0953 0.262 10 0.843 0 8.56 8.56 World Transportation - 2 84.2 302 1e+04 0.843 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.0232 0.00374 1.44 0.0104 0 0 0 test.phys initStep - 1 0.0239 0.00579 1.53 0 0.00156 0.0829 0.0829 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0239 0.00579 1.53 0.00881 0 0 0 test.phys initStep - 1 0.0239 0.00545 1.53 0 0.00881 0.00107 0.00107 test.phys eIoni + 2 0.347 -0.228 9.35 95.7 4.18 9.36 1.01e+03 test.phys biasWrapper(eBrem) + 3 0.366 -0.228 10 95.2 0.56 0.652 1.01e+03 World Transportation + 4 402 -23 1e+04 95.2 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.022 4.64e-05 1.33 0.115 0 0 0 test.phys initStep - 1 0.154 0.268 10 0.115 0 8.68 8.68 World Transportation - 2 152 309 1e+04 0.115 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 54.6 0 0 0 test.phys initStep + 1 0.361 -0.227 10 54.6 0 0.652 0.652 World Transportation + 2 212 4.18 1e+04 54.6 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.022 4.64e-05 1.33 0.952 0 0 0 test.phys initStep - 1 0.148 0.266 10 0.952 0 8.68 8.68 World Transportation - 2 146 307 1e+04 0.952 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 0.327 0 0 0 test.phys initStep + 1 0.367 -0.228 10 0.327 0 0.652 0.652 World Transportation + 2 317 -3.44 1e+04 0.327 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.022 4.64e-05 1.33 0.356 0 0 0 test.phys initStep - 1 0.0539 0.033 2.74 0.161 0 1.42 1.42 test.phys compt - 2 -0.966 0.0343 1.68 0.155 0 1.47 2.89 test.phys compt - 3 -1.46 0.192 0 0.155 0 1.76 4.65 World Transportation - 4 -2.91e+03 935 -1e+04 0.155 0 1.05e+04 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.966 0.0343 1.68 0.00578 0 0 0 test.phys initStep - 1 -0.966 0.0343 1.68 0 0.00578 0.000528 0.000528 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0539 0.033 2.74 0.195 0 0 0 test.phys initStep - 1 0.0719 0.0343 2.81 0 0.195 0.207 0.207 test.phys eIoni + 0 0.347 -0.228 9.35 0.0765 0 0 0 test.phys initStep + 1 0.365 -0.23 10 0.0765 0 0.652 0.652 World Transportation + 2 282 -31.5 1e+04 0.0765 0 9.99e+03 9.99e+03 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.022 4.64e-05 1.33 0.042 0 0 0 test.phys initStep - 1 0.127 0.225 4.39 0 0.00156 3.08 3.08 test.phys phot - -********************************************************************************************************* -* 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 0.127 0.225 4.39 0.0405 0 0 0 test.phys initStep - 1 0.128 0.222 4.4 0 0.0405 0.0148 0.0148 test.phys eIoni + 0 0.347 -0.228 9.35 0.509 0 0 0 test.phys initStep + 1 0.363 -0.23 10 0.509 0 0.652 0.652 World Transportation + 2 250 -41.3 1e+04 0.509 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.022 4.64e-05 1.33 39.2 0 0 0 test.phys initStep - 1 0.138 0.251 10 39.2 0 8.68 8.68 World Transportation - 2 134 289 1e+04 39.2 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 0.0184 0 0 0 test.phys initStep + 1 0.347 -0.228 9.35 0 0.00156 0.00257 0.00257 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.347 -0.228 9.35 0.0169 0 0 0 test.phys initStep + 1 0.347 -0.227 9.35 0 0.0169 0.00324 0.00324 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.022 4.64e-05 1.33 18.6 0 0 0 test.phys initStep - 1 -0.0644 0.36 10 18.6 0 8.68 8.68 World Transportation - 2 -99.6 415 1e+04 18.6 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 0.0064 0 0 0 test.phys initStep + 1 0.349 -0.228 9.4 0 0.00156 0.0546 0.0546 test.phys phot + +********************************************************************************************************* +* 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.349 -0.228 9.4 0.00484 0 0 0 test.phys initStep + 1 0.349 -0.228 9.4 0 0.00484 0.000395 0.000395 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.022 4.64e-05 1.33 0.119 0 0 0 test.phys initStep - 1 0.122 0.396 10 0.119 0 8.68 8.68 World Transportation - 2 115 457 1e+04 0.119 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 8.79 0 0 0 test.phys initStep + 1 0.366 -0.23 10 8.79 0 0.652 0.652 World Transportation + 2 292 -33 1e+04 8.79 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.022 4.64e-05 1.33 1.11 0 0 0 test.phys initStep - 1 0.137 0.263 10 1.11 0 8.68 8.68 World Transportation - 2 133 304 1e+04 1.11 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 5.05 0 0 0 test.phys initStep + 1 0.367 -0.229 10 5.05 0 0.652 0.652 World Transportation + 2 316 -27 1e+04 5.05 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.022 4.64e-05 1.33 0.403 0 0 0 test.phys initStep - 1 0.132 0.315 9.51 0.318 0 8.19 8.19 test.phys compt - 2 0.168 -0.199 10 0.318 0 0.711 8.9 World Transportation - 3 695 -1e+04 9.54e+03 0.318 0 1.38e+04 1.38e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.132 0.315 9.51 0.0848 0 0 0 test.phys initStep - 1 0.132 0.329 9.52 0 0.0848 0.0526 0.0526 test.phys eIoni + 0 0.347 -0.228 9.35 0.201 0 0 0 test.phys initStep + 1 0.357 -0.228 9.64 0.169 0 0.29 0.29 test.phys compt + 2 0.995 -0.365 10 0.169 0 0.746 1.04 World Transportation + 3 1e+04 -2.15e+03 5.68e+03 0.169 0 1.17e+04 1.17e+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.022 4.64e-05 1.33 3.43 0 0 0 test.phys initStep - 1 0.12 0.267 10 3.43 0 8.68 8.68 World Transportation - 2 113 308 1e+04 3.43 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.347 -0.228 9.35 0.0858 0 0 0 test.phys initStep + 1 0.367 -0.231 10 0.0858 0 0.652 0.652 World Transportation + 2 311 -44.4 1e+04 0.0858 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* 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.357 -0.228 9.64 0.0324 0 0 0 test.phys initStep + 1 0.354 -0.227 9.64 0 0.0324 0.01 0.01 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4657,587 +3675,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 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.313 -0.194 9.63 92.4 3.78 9.64 1.01e+03 test.phys biasWrapper(eBrem) - 3 -0.318 -0.216 10 92.3 0.12 0.373 1.01e+03 World Transportation - 4 -274 -621 1e+04 92.3 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 0.195 -0.338 9.11 94.9 3.64 9.12 1.01e+03 test.phys eIoni + 3 0.26 -0.351 10 94.5 0.42 0.89 1.01e+03 World Transportation + 4 659 -246 1e+04 94.5 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +* 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.313 -0.194 9.63 6.07 0 0 0 test.phys initStep - 1 -0.315 -0.217 10 6.07 0 0.373 0.373 World Transportation - 2 -34.1 -619 1e+04 6.07 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.313 -0.194 9.63 62.4 0 0 0 test.phys initStep - 1 -0.32 -0.217 10 62.4 0 0.373 0.373 World Transportation - 2 -178 -621 1e+04 62.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.313 -0.194 9.63 5.33 0 0 0 test.phys initStep - 1 -0.32 -0.218 10 5.33 0 0.373 0.373 World Transportation - 2 -174 -647 1e+04 5.33 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.313 -0.194 9.63 0.00757 0 0 0 test.phys initStep - 1 -0.314 -0.197 9.69 0 0.00156 0.0578 0.0578 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.314 -0.197 9.69 0.006 0 0 0 test.phys initStep - 1 -0.314 -0.198 9.69 0 0.006 0.000563 0.000563 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.313 -0.194 9.63 0.0142 0 0 0 test.phys initStep - 1 -0.314 -0.195 9.65 0 0.00156 0.0217 0.0217 test.phys phot - -********************************************************************************************************* -* 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 -0.314 -0.195 9.65 0.0127 0 0 0 test.phys initStep - 1 -0.314 -0.195 9.65 0 0.0127 0.00198 0.00198 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.313 -0.194 9.63 0.00869 0 0 0 test.phys initStep - 1 -0.314 -0.197 9.68 0 0.00156 0.0536 0.0536 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.314 -0.197 9.68 0.00712 0 0 0 test.phys initStep - 1 -0.314 -0.197 9.68 0 0.00712 0.000748 0.000748 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.313 -0.194 9.63 0.206 0 0 0 test.phys initStep - 1 -0.318 -0.216 10 0.206 0 0.373 0.373 World Transportation - 2 -124 -579 1e+04 0.206 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.313 -0.194 9.63 0.317 0 0 0 test.phys initStep - 1 -0.317 -0.216 10 0.317 0 0.373 0.373 World Transportation - 2 -86 -591 1e+04 0.317 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.313 -0.194 9.63 0.856 0 0 0 test.phys initStep - 1 -0.317 -0.219 10 0.856 0 0.373 0.373 World Transportation - 2 -89.6 -661 1e+04 0.856 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.313 -0.194 9.63 3.84 0 0 0 test.phys initStep - 1 -0.313 -0.212 10 3.84 0 0.373 0.373 World Transportation - 2 -2.3 -471 1e+04 3.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.000662 -0.00434 0.448 93.1 0.224 0.448 1e+03 test.phys biasWrapper(eBrem) - 3 -0.0737 -0.0411 3.3 65.1 1.49 2.86 1e+03 test.phys biasWrapper(eBrem) - 4 -0.0774 -0.0358 4.27 50.7 0.48 0.965 1e+03 test.phys biasWrapper(eBrem) - 5 -0.173 0.0685 6.58 42.8 0.819 2.31 1.01e+03 test.phys biasWrapper(eBrem) - 6 -0.172 0.28 10 41.6 1.26 3.44 1.01e+03 World Transportation - 7 -882 -1.26e+03 1e+04 41.6 3.45e-22 1.01e+04 1.11e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.173 0.0685 6.58 0.0186 0 0 0 test.phys initStep - 1 -0.167 -0.0384 6.88 0 0.00156 0.318 0.318 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 41 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.167 -0.0384 6.88 0.017 0 0 0 test.phys initStep - 1 -0.167 -0.0392 6.88 0 0.017 0.00328 0.00328 test.phys eIoni - -********************************************************************************************************* -* 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.173 0.0685 6.58 6.34 0 0 0 test.phys initStep - 1 -0.162 0.224 10 6.34 0 3.43 3.43 World Transportation - 2 33.3 453 1e+04 6.34 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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 -0.173 0.0685 6.58 0.947 0 0 0 test.phys initStep - 1 -0.177 0.343 10 0.947 0 3.43 3.43 World Transportation - 2 -12.8 801 1e+04 0.947 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.173 0.0685 6.58 0.0131 0 0 0 test.phys initStep - 1 -0.171 0.0781 6.71 0 0.00156 0.133 0.133 test.phys phot - -********************************************************************************************************* -* 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 -0.171 0.0781 6.71 0.0115 0 0 0 test.phys initStep - 1 -0.171 0.0778 6.71 0 0.0115 0.00168 0.00168 test.phys eIoni - -********************************************************************************************************* -* 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.173 0.0685 6.58 2.58 0 0 0 test.phys initStep - 1 -0.195 0.183 8.32 1.3 0 1.74 1.74 test.phys compt - 2 -1.33 0.956 10 1.3 0 2.17 3.91 World Transportation - 3 -6.71e+03 4.59e+03 1e+04 1.3 0 1.29e+04 1.29e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.195 0.183 8.32 1.29 0 0 0 test.phys initStep - 1 0.321 -0.359 8.77 0.998 0.289 0.883 0.883 test.phys msc - 2 -0.00107 -0.696 9.24 0.752 0.246 0.736 1.62 test.phys msc - 3 -0.363 -0.439 9.31 0.571 0.181 0.457 2.08 test.phys msc - 4 -0.489 -0.242 9.64 0.43 0.14 0.417 2.49 test.phys msc - 5 -0.559 -0.048 9.66 0.366 0.0644 0.217 2.71 test.phys msc - 6 -0.737 0.0142 9.73 0.285 0.0808 0.202 2.91 test.phys msc - 7 -0.821 0.0502 9.84 0.206 0.0794 0.162 3.07 test.phys msc - 8 -0.784 0.161 9.8 0.133 0.0725 0.144 3.22 test.phys msc - 9 -0.751 0.178 9.81 0 0.133 0.112 3.33 test.phys eIoni - -********************************************************************************************************* -* 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.173 0.0685 6.58 12.4 0 0 0 test.phys initStep - 1 -0.184 0.278 10 12.4 0 3.43 3.43 World Transportation - 2 -30.9 611 1e+04 12.4 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.173 0.0685 6.58 0.0548 0 0 0 test.phys initStep - 1 -0.179 0.286 10 0.0548 0 3.43 3.43 World Transportation - 2 -19 635 1e+04 0.0548 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* 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.173 0.0685 6.58 10.8 0 0 0 test.phys initStep - 1 -0.208 0.279 10 10.8 0 3.43 3.43 World Transportation - 2 -103 614 1e+04 10.8 0 1e+04 1e+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.173 0.0685 6.58 0.131 0 0 0 test.phys initStep - 1 -0.174 0.322 10 0.131 0 3.43 3.43 World Transportation - 2 -2.03 740 1e+04 0.131 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.173 0.0685 6.58 7.02 0 0 0 test.phys initStep - 1 -0.199 0.315 10 7.02 0 3.43 3.43 World Transportation - 2 -75.6 720 1e+04 7.02 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.0774 -0.0358 4.27 0.225 0 0 0 test.phys initStep - 1 -0.149 0.284 10 0.225 0 5.74 5.74 World Transportation - 2 -125 558 1e+04 0.225 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.0774 -0.0358 4.27 0.225 0 0 0 test.phys initStep - 1 -0.197 0.175 10 0.225 0 5.74 5.74 World Transportation - 2 -208 368 1e+04 0.225 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.0774 -0.0358 4.27 47.3 0 0 0 test.phys initStep - 1 -0.143 0.254 10 47.3 0 5.74 5.74 World Transportation - 2 -114 506 1e+04 47.3 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.0774 -0.0358 4.27 1.54 0 0 0 test.phys initStep - 1 -0.159 0.268 10 1.54 0 5.74 5.74 World Transportation - 2 -143 529 1e+04 1.54 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.0774 -0.0358 4.27 1.09 0 0 0 test.phys initStep - 1 -0.134 0.25 10 1.09 0 5.74 5.74 World Transportation - 2 -98.7 499 1e+04 1.09 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.0774 -0.0358 4.27 39 0 0 0 test.phys initStep - 1 -0.211 0.258 10 39 0 5.74 5.74 World Transportation - 2 -233 512 1e+04 39 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.0774 -0.0358 4.27 0.0491 0 0 0 test.phys initStep - 1 -0.101 0.229 9.5 0 0.00156 5.24 5.24 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 25 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.101 0.229 9.5 0.0476 0 0 0 test.phys initStep - 1 -0.0964 0.225 9.51 0 0.0476 0.0196 0.0196 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.0774 -0.0358 4.27 0.854 0 0 0 test.phys initStep - 1 -0.0816 0.105 10 0.854 0 5.73 5.73 World Transportation - 2 -7.5 246 1e+04 0.854 0 9.99e+03 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.0774 -0.0358 4.27 0.236 0 0 0 test.phys initStep - 1 -0.131 0.263 10 0.236 0 5.74 5.74 World Transportation - 2 -93.6 521 1e+04 0.236 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.0774 -0.0358 4.27 13.9 0 0 0 test.phys initStep - 1 -0.225 0.18 10 13.9 0 5.74 5.74 World Transportation - 2 -257 377 1e+04 13.9 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.0737 -0.0411 3.3 80.2 0 0 0 test.phys initStep - 1 -0.163 -0.109 10 80.2 0 6.7 6.7 World Transportation - 2 -133 -101 1e+04 80.2 0 9.99e+03 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.0737 -0.0411 3.3 0.766 0 0 0 test.phys initStep - 1 -0.232 -0.0505 10 0.766 0 6.7 6.7 World Transportation - 2 -237 -14.1 1e+04 0.766 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.0737 -0.0411 3.3 0.298 0 0 0 test.phys initStep - 1 -0.146 -0.0697 10 0.298 0 6.7 6.7 World Transportation - 2 -108 -42.7 1e+04 0.298 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.0737 -0.0411 3.3 1.18 0 0 0 test.phys initStep - 1 -0.138 -0.0417 6.47 0.987 0 3.17 3.17 test.phys compt - 2 -1.78 0.158 10 0.987 0 3.89 7.06 World Transportation - 3 -4.64e+03 565 1e+04 0.987 0 1.1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.138 -0.0417 6.47 0.196 0 0 0 test.phys initStep - 1 -0.0784 -0.0494 6.52 0 0.196 0.209 0.209 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.0737 -0.0411 3.3 41 0 0 0 test.phys initStep - 1 -0.207 -0.0215 10 41 0 6.7 6.7 World Transportation - 2 -199 29.2 1e+04 41 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.0737 -0.0411 3.3 2.95 0 0 0 test.phys initStep - 1 -0.214 -0.0507 10 2.95 0 6.7 6.7 World Transportation - 2 -210 -14.3 1e+04 2.95 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.0737 -0.0411 3.3 0.561 0 0 0 test.phys initStep - 1 -0.138 -0.0361 6.67 0.214 0 3.37 3.37 test.phys compt - 2 3.75 11.7 0 0.214 0 14 17.4 World Transportation - 3 3.31e+03 1e+04 -5.68e+03 0.214 0 1.2e+04 1.2e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.138 -0.0361 6.67 0.347 0 0 0 test.phys initStep - 1 -0.156 -0.0831 6.84 0 0.347 0.5 0.5 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.0737 -0.0411 3.3 0.0204 0 0 0 test.phys initStep - 1 -0.195 0.0806 5.25 0 0.00156 1.96 1.96 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.195 0.0806 5.25 0.0188 0 0 0 test.phys initStep - 1 -0.194 0.0798 5.25 0 0.0188 0.0039 0.0039 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.0737 -0.0411 3.3 5.43 0 0 0 test.phys initStep - 1 -0.236 -0.0566 10 5.43 0 6.7 6.7 World Transportation - 2 -242 -23.2 1e+04 5.43 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.0737 -0.0411 3.3 26.5 0 0 0 test.phys initStep - 1 -0.161 -0.0418 10 26.5 0 6.7 6.7 World Transportation - 2 -130 -1.05 1e+04 26.5 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.000662 -0.00434 0.448 0.0389 0 0 0 test.phys initStep - 1 -0.0779 -0.0595 10 0.0389 0 9.55 9.55 World Transportation - 2 -82.3 -57.7 1e+04 0.0389 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.000662 -0.00434 0.448 0.0123 0 0 0 test.phys initStep - 1 -0.00516 -0.00972 0.895 0 0.00156 0.447 0.447 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00516 -0.00972 0.895 0.0108 0 0 0 test.phys initStep - 1 -0.00509 -0.00927 0.896 0 0.0108 0.0015 0.0015 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.000662 -0.00434 0.448 0.0548 0 0 0 test.phys initStep - 1 -0.0247 -0.0694 10 0.0548 0 9.55 9.55 World Transportation - 2 -26.5 -68.1 1e+04 0.0548 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.000662 -0.00434 0.448 2.58 0 0 0 test.phys initStep - 1 -0.00835 -0.0648 10 2.58 0 9.55 9.55 World Transportation - 2 -9.43 -63.3 1e+04 2.58 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.000662 -0.00434 0.448 0.0686 0 0 0 test.phys initStep - 1 -0.0342 -0.0534 10 0.0686 0 9.55 9.55 World Transportation - 2 -36.5 -51.4 1e+04 0.0686 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.000662 -0.00434 0.448 1.8 0 0 0 test.phys initStep - 1 0.00365 -0.0147 1.87 1.15 0 1.42 1.42 test.phys compt - 2 -0.0256 2.67 6.09 1.12 0 5 6.42 test.phys compt - 3 0.502 4.62 10 1.12 0 4.4 10.8 World Transportation - 4 1.35e+03 5e+03 1e+04 1.12 0 1.13e+04 1.13e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0256 2.67 6.09 0.0331 0 0 0 test.phys initStep - 1 -0.0283 2.67 6.09 0 0.0331 0.0104 0.0104 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00365 -0.0147 1.87 0.651 0 0 0 test.phys initStep - 1 0.00832 -0.295 2.24 0.0168 0.635 1.17 1.17 test.phys eIoni - 2 0.00881 -0.295 2.24 0 0.0168 0.00323 1.18 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.000662 -0.00434 0.448 2 0 0 0 test.phys initStep - 1 -0.0247 -0.00832 10 2 0 9.55 9.55 World Transportation - 2 -26.5 -4.17 1e+04 2 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.000662 -0.00434 0.448 0.614 0 0 0 test.phys initStep - 1 -0.0139 0.00332 10 0.614 0 9.55 9.55 World Transportation - 2 -15.2 8.01 1e+04 0.614 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.000662 -0.00434 0.448 50.4 0 0 0 test.phys initStep - 1 0.00859 -0.0789 10 50.4 0 9.55 9.55 World Transportation - 2 8.3 -78.1 1e+04 50.4 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.000662 -0.00434 0.448 6.68 0 0 0 test.phys initStep - 1 0.0023 -0.0825 10 6.68 0 9.55 9.55 World Transportation - 2 1.71 -81.8 1e+04 6.68 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.195 -0.338 9.11 1.43 0 0 0 test.phys initStep + 1 -0.11 0.00063 9.43 1.22 0.204 0.567 0.567 test.phys msc + 2 -0.38 0.168 9.5 1.11 0.117 0.332 0.899 test.phys msc + 3 -0.602 0.332 9.43 1.01 0.0951 0.302 1.2 test.phys msc + 4 -0.846 0.459 9.33 0.865 0.145 0.296 1.5 test.phys msc + 5 -0.926 0.631 9.01 0.727 0.138 0.375 1.87 test.phys msc + 6 -1.42 0.724 8.76 0.508 0.218 0.583 2.45 test.phys msc + 7 -1.46 0.787 8.45 0 0.508 0.861 3.32 test.phys eIoni Run terminated. Run Summary Number of events processed : 10 - User=0.03s Real=0.05s Sys=0.01s + User=0.01s Real=0.01s Sys=0s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -5252,15 +3710,15 @@ Total navigation history collections cleaned: 7 ================== Deleting memory pools =================== Pool ID '20G4NavigationLevelRep', size : 0.00769 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.00865 MB +Pool ID '17G4DynamicParticle', size : 0.00577 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.0163 MB +Pool ID '7G4Track', size : 0.0106 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.038 MB +Dynamic pools deleted: 9 / Total memory freed: 0.03 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out b/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out index 3988e99f2d..35828b3862 100644 --- a/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out +++ b/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -75,6 +77,7 @@ G4AdjointPhysicsList::SetCuts:CutLength : 10 um *** Company: SpaceIT GmbH, Bern, Switzerland *** *** Sponsored by: ESA/ESTEC contract contract 21435/08/NL/AT *** **************************************************************** +Test Sim Adjoint1 compt: for gamma SubType= 13 BuildTable= 1 Lambda table from 100 eV to 1 MeV, 7 bins per decade, spline: 1 @@ -351,54 +354,14 @@ nb event 260000 nb event 265000 nb event 270000 nb event 275000 -nb event 280000 -nb event 285000 -nb event 290000 -nb event 295000 -nb event 300000 -nb event 305000 -nb event 310000 -nb event 315000 -nb event 320000 -nb event 325000 -nb event 330000 -nb event 335000 -nb event 340000 -nb event 345000 -nb event 350000 -nb event 355000 -nb event 360000 -nb event 365000 -nb event 370000 -nb event 375000 -nb event 380000 -nb event 385000 -nb event 390000 -nb event 395000 -nb event 400000 -nb event 405000 -nb event 410000 -nb event 415000 -nb event 420000 -nb event 425000 -nb event 430000 -nb event 435000 -nb event 440000 -nb event 445000 -nb event 450000 -nb event 455000 -nb event 460000 -nb event 465000 -nb event 470000 -nb event 475000 1% Precision reached! Run terminated. Run Summary - Run Aborted after 476575 events processed. - User=522.6s Real=523.44s Sys=0.01s + Run Aborted after 275352 events processed. + User=252.13s Real=252.86s Sys=0.04s Results of reverse/adjoint simulation! -normalised edep [MeV] = 0.000897042 -error[MeV] = 8.97014e-06 +normalised edep [MeV] = 0.00152112 +error[MeV] = 1.52109e-05 ----> Histogram Tree is saved in adjoint_sim.root Graphics systems deleted. @@ -406,6 +369,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 1 -Dynamic pools deleted: 11 / Total memory freed: 0.056 MB +Dynamic pools deleted: 11 / Total memory freed: 0.047 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm0/GNUmakefile b/examples/extended/electromagnetic/TestEm0/GNUmakefile index fbd9144e7a..ff5379fd9a 100644 --- a/examples/extended/electromagnetic/TestEm0/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm0/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile 94302 2015-11-11 12:58:04Z gcosmo $ +# $Id: GNUmakefile 96419 2016-04-13 10:23:38Z gcosmo $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- -##name := DirectAccess +#name := DirectAccess name := TestEm0 G4TARGET := $(name) diff --git a/examples/extended/electromagnetic/TestEm0/History b/examples/extended/electromagnetic/TestEm0/History index 619837b670..c18f633dc6 100644 --- a/examples/extended/electromagnetic/TestEm0/History +++ b/examples/extended/electromagnetic/TestEm0/History @@ -1,4 +1,4 @@ -$Id: History 94302 2015-11-11 12:58:04Z gcosmo $ +$Id: History 96419 2016-04-13 10:23:38Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,9 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +12-04-16 mma (testem0-V10-02-02) +- PhysicsList: use G4EmParameters 11-11-15 V.Ivant (testem0-V10-01-01) - DirectAccess.cc - make it work for Geant4 10.1 diff --git a/examples/extended/electromagnetic/TestEm0/TestEm0.out b/examples/extended/electromagnetic/TestEm0/TestEm0.out index 3c7f0e99c0..5fa4c0ea58 100644 --- a/examples/extended/electromagnetic/TestEm0/TestEm0.out +++ b/examples/extended/electromagnetic/TestEm0/TestEm0.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/electromagnetic/TestEm0/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm0/src/PhysicsList.cc index 00c622840b..258581c3ba 100644 --- a/examples/extended/electromagnetic/TestEm0/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm0/src/PhysicsList.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysicsList class // // -// $Id: PhysicsList.cc 93512 2015-10-23 13:45:07Z gcosmo $ +// $Id: PhysicsList.cc 96419 2016-04-13 10:23:38Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -178,8 +178,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmProcessOptions.hh" - void PhysicsList::ConstructProcess() { // Transportation @@ -192,25 +190,9 @@ void PhysicsList::ConstructProcess() // Em options // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - //emOptions.SetMinEnergy(100*eV); //default - //emOptions.SetMaxEnergy(100*TeV); //default - //emOptions.SetDEDXBinning(12*20); //default=12*7 - //emOptions.SetLambdaBinning(12*20); //default=12*7 + G4EmParameters* param = G4EmParameters::Instance(); + param->SetBuildCSDARange(true); - emOptions.SetBuildCSDARange(true); - emOptions.SetMaxEnergyForCSDARange(10*GeV); - //emOptions.SetDEDXBinningForCSDARange(12*20); - - //emOptions.SetSplineFlag(true); //default - - emOptions.SetVerbose(0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -280,14 +262,14 @@ void PhysicsList::AddPhysicsList(const G4String& name) void PhysicsList::SetCuts() { - // fixe lower limit for cut - G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(100*eV, 1*GeV); + // fixe lower limit for cut + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(100*eV, 1*GeV); - // call base class method to set cuts which default value can be - // modified via /run/setCut/* commands - G4VUserPhysicsList::SetCuts(); + // call base class method to set cuts which default value can be + // modified via /run/setCut/* commands + G4VUserPhysicsList::SetCuts(); - DumpCutValuesTable(); + DumpCutValuesTable(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/.README.txt b/examples/extended/electromagnetic/TestEm1/.README.txt index a4a0be086f..1b0c8cb75f 100644 --- a/examples/extended/electromagnetic/TestEm1/.README.txt +++ b/examples/extended/electromagnetic/TestEm1/.README.txt @@ -146,11 +146,5 @@ Idle> exit It is also possible to print selected histograms on an ascii file: /analysis/h1/setAscii id All selected histos will be written on a file name.ascii (default testem1) - -\subsection TestEm1_subs1 Using hbook format - - Need a special treatement : the Cern Library must be installed and the - environment variable CERNLIB correctly set. Then, *before* compiling, - activate G4_USE_HBOOK in GNUmakefile and g4hbook.hh in HistoManager.hh */ diff --git a/examples/extended/electromagnetic/TestEm1/CMakeLists.txt b/examples/extended/electromagnetic/TestEm1/CMakeLists.txt index b6b5440356..639144d665 100644 --- a/examples/extended/electromagnetic/TestEm1/CMakeLists.txt +++ b/examples/extended/electromagnetic/TestEm1/CMakeLists.txt @@ -40,7 +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 erange.mac gammaconversion.mac geantino.mac photoelec.mac photon.mac radioactive.mac range.mac runs.mac TestEm1.in TestEm1.out vis.mac + annihil.mac brems.mac decayinfly.mac erange.mac gammaconversion.mac + geantino.mac photoelec.mac photon.mac radioactive.mac range.mac runs.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 6f8b0ea28d..95c54ed0c0 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -1,4 +1,4 @@ -$Id: History 93735 2015-10-30 11:00:28Z gcosmo $ +$Id: History 97813 2016-06-14 07:58:46Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,26 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +13-06-16 mma (testem1-V10-02-04) +- add decayinfly.mac +- adapt vis.mac (colors) + +12-04-16 mma (testem1-V10-02-03) +- PhysicsList: use G4EmParameters +- remove geant3 subdirectory + +06-02-16 mma (testem1-V10-02-02) +- update radioactive.mac + +27-01-16 mma (testem1-V10-02-01) +- PhysicsList::AddRadioactiveDecay() : + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); + +10-12-15 V.Ivanchenko (testem1-V10-02-00) +01-12-15 V.Ivanchenko (testem1-V10-01-04) +- H.Burkhardt fixed plotHisto.C macro to allow to work both + with root5 and 6 28-10-15 D.Sawkey (testem1-V10-01-03) - add EM standards physics builders GS, WVI diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index 4e767a1c0b..991c8fb426 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -1,4 +1,4 @@ -$Id: README 93735 2015-10-30 11:00:28Z gcosmo $ +$Id: README 97813 2016-06-14 07:58:46Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -140,11 +140,4 @@ $Id: README 93735 2015-10-30 11:00:28Z gcosmo $ It is also possible to print selected histograms on an ascii file: /analysis/h1/setAscii id - All selected histos will be written on a file name.ascii (default testem1) - - Using hbook format - ------------------ - - Need a special treatement : the Cern Library must be installed and the - environment variable CERNLIB correctly set. Then, *before* compiling, - activate G4_USE_HBOOK in GNUmakefile and g4hbook.hh in HistoManager.hh + All selected histos will be written on a file name.ascii (default testem1) \ No newline at end of file diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index 2c7b673c4b..0b356c8f55 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -4,14 +4,14 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -***** Table : Nb of materials = 20 ***** +***** Table : Nb of materials = 21 ***** Material: Air density: 1.290 mg/cm3 RadL: 285.161 m Nucl.Int.Length: 662.680 m Imean: 85.703 eV temperature: 293.15 K pressure: 1.00 atm @@ -244,6 +244,15 @@ ElmMassFraction: 5.22 % ElmAbundance 57.49 % + Material: Galactic density: 0.000 kg/m3 RadL: 204322111.300 pc Nucl.Int.Length: 113427275.267 pc + Imean: 19.200 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: Lu2SiO5 density: 7.400 g/cm3 RadL: 1.143 cm Nucl.Int.Length: 20.920 cm Imean: 418.807 eV @@ -252,7 +261,7 @@ ---> Isotope: Lu176 Z = 71 N = 176 A = 175.94 g/mole abundance: 2.590 % ElmMassFraction: 76.40 % ElmAbundance 25.00 % - ---> Element: Si (Si) Z = 14.0 N = 28 A = 28.085 g/mole + ---> Element: Si (Si) Z = 14.0 N = 28 A = 28.090 g/mole ---> Isotope: Si28 Z = 14 N = 28 A = 27.98 g/mole abundance: 92.230 % ---> Isotope: Si29 Z = 14 N = 29 A = 28.98 g/mole abundance: 4.683 % ---> Isotope: Si30 Z = 14 N = 30 A = 29.97 g/mole abundance: 3.087 % @@ -324,40 +333,40 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 2000 - User=3.11s Real=3.11s Sys=0s + User=3.2s Real=3.21s Sys=0s ======================== run summary ====================== The run is: 2000 e- of 100 MeV through 10 m of Aluminium (density: 2.7 g/cm3 ) - total energy deposit: 99.818 MeV + total energy deposit: 99.823 MeV - nb tracks/event neutral: 25.37 charged: 137.86 - nb steps/event neutral: 131.25 charged: 203.51 + nb tracks/event neutral: 25.329 charged: 138.1 + nb steps/event neutral: 131.58 charged: 203.97 Process calls frequency : - Transportation= 1797 annihil= 2832 compt= 211768 - conv= 2818 eBrem= 46132 eIoni= 357656 - msc= 393 phot= 46131 + Transportation= 1794 annihil= 2815 compt= 212509 + conv= 2802 eBrem= 46102 eIoni= 358682 + msc= 344 phot= 46066 --------------------------------------------------------- Primary particle : - true Range = 11.108 cm rms = 3.7531 cm - proj Range = 9.6718 cm rms = 3.5086 cm - proj/true = 0.87069 - transverse dispersion at end = 1.5715 cm - mass true Range from simulation = 29.992 g/cm2 + true Range = 10.962 cm rms = 3.8646 cm + proj Range = 9.5297 cm rms = 3.5623 cm + proj/true = 0.86932 + transverse dispersion at end = 1.5861 cm + mass true Range from simulation = 29.598 g/cm2 from PhysicsTable (csda range) = 32.1 g/cm2 --------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1125509901, 1932947406 + Current couple of seeds = 1031624495, 298128577 ---------------------------------------- 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.064 MB +Dynamic pools deleted: 9 / Total memory freed: 0.066 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm1/decayinfly.mac b/examples/extended/electromagnetic/TestEm1/decayinfly.mac new file mode 100644 index 0000000000..2a4e66154c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/decayinfly.mac @@ -0,0 +1,24 @@ +# $Id: TestEm1.in 85282 2014-10-27 09:22:11Z gcosmo $ +# +# Macro file for "TestEm1.cc" +# +/control/verbose 2 +/run/verbose 1 +# +/testem/det/setMat Galactic +/testem/det/setSize 10000 km +# +/testem/phys/addPhysics local +/run/setCut 1 km +# +/run/initialize +# +/testem/gun/setDefault +/testem/gun/rndm 0.7 +/gun/particle ion +/gun/ion 7 16 +/gun/energy 100 keV +# +/control/execute vis.mac +/tracking/verbose 2 +/run/beamOn 4 diff --git a/examples/extended/electromagnetic/TestEm1/geant3/README b/examples/extended/electromagnetic/TestEm1/geant3/README deleted file mode 100644 index 275d6a18f8..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/README +++ /dev/null @@ -1,26 +0,0 @@ - - testem1/src is the geant3 equivalent of TestEm1 - - % cd geant3 - % gmakeB to make an executable (Batch version) - % gmakeT to make an executable (inTeractive version) - - To execute: - - % cd geant3 - % $G4SYSTEM/testem1.xb (for batch) or testem1.xt (for interactive) - - The program will ask: - G3 > gives the filename of the data cards to be read: - - run01.dat (runNN.dat is the equivalent of the G4 runNN.mac) - - - testem1 produces several histo saved as testem1.paw if ISWIT(2)=1 - - Content of these histo: - - 1 : track length of primary particle - 2 : number of steps of primary particle - 3 : step size of primary particle - diff --git a/examples/extended/electromagnetic/TestEm1/geant3/annihil.dat b/examples/extended/electromagnetic/TestEm1/geant3/annihil.dat deleted file mode 100644 index 07eb4d7fe5..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/annihil.dat +++ /dev/null @@ -1,20 +0,0 @@ -LIST -C -C e+ beam; 100 MeV -C -CALOR 5 (Al) 20. (cm) 0. (field) -TRIG 20 -KINE 2 (positron) 0.1 (GeV) 1. (xBeam) 0.8 (rBeam) -DEBUG 10 5 1000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm) -MULS 0 -PHOT 0 -COMP 0 -PAIR 0 -LOSS 1 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/brems.dat b/examples/extended/electromagnetic/TestEm1/geant3/brems.dat deleted file mode 100644 index 4534d798e6..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/brems.dat +++ /dev/null @@ -1,20 +0,0 @@ -LIST -C -C Bremsstrahlung only -C -CALOR 5 (Al) 50. (cm) 0. (field) -TRIG 10000 -KINE 3 (electron) 0.2 (GeV) 1. (xBeam) -DEBUG 10 5 2000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e-6 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm) -MULS 0 -PHOT 0 -COMP 0 -PAIR 0 -LOSS 1 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/gammaconversion.dat b/examples/extended/electromagnetic/TestEm1/geant3/gammaconversion.dat deleted file mode 100644 index 2c92859f6a..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/gammaconversion.dat +++ /dev/null @@ -1,19 +0,0 @@ -LIST -C -C Photon beam; 100 MeV -C -CALOR 5 (Al) 100. (cm) 0. (field) -TRIG 20 -KINE 1 (gamma) 0.1 (GeV) 1. (xBeam) 0.8 (rBeam) -DEBUG 10 5 1000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm) -PHOT 0 -COMP 0 -MULS 0 -LOSS 1 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/geantino.dat b/examples/extended/electromagnetic/TestEm1/geant3/geantino.dat deleted file mode 100644 index 63b061df41..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/geantino.dat +++ /dev/null @@ -1,11 +0,0 @@ -LIST -C -C geantino; 100 evts -C -CALOR 5 (Al) 1000. (cm) 0. (field) -TRIG 100 -KINE 48 (Geantino) 1. (GeV) 1. (xBeam) -DEBUG 10 5 1000 -SWIT 0 (draw) 0 (save) -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e-6 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm) diff --git a/examples/extended/electromagnetic/TestEm1/geant3/gmakeB b/examples/extended/electromagnetic/TestEm1/geant3/gmakeB deleted file mode 100755 index a03b57d498..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/gmakeB +++ /dev/null @@ -1,32 +0,0 @@ -# -# @(#) Script to build a Batch geant executable -# -set name=testem1 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F - -# -# Link -# -echo 'linking geant3+cernlib libraries ...' -# -hepf77 $extnam -lgfortran -g -o $name.xb *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xb -# -# cleanup -# -rm -rf *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm1/geant3/gmakeT b/examples/extended/electromagnetic/TestEm1/geant3/gmakeT deleted file mode 100755 index 929357af57..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/gmakeT +++ /dev/null @@ -1,31 +0,0 @@ -# -# @(#) Script to build an inTeractive geant executable -# -set name=testem1 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -f77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries...' -# -f77 $extnam -lgfortran -g -o $name.xt *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xt -# -# cleanup -# -rm -rf *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm1/geant3/include/calor.inc b/examples/extended/electromagnetic/TestEm1/geant3/include/calor.inc deleted file mode 100644 index 01b3d2dae6..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/include/calor.inc +++ /dev/null @@ -1,7 +0,0 @@ - - COMMON/CALOR/Imat,BoxSize,Field -* -* Imat = GEANT material number. (data card CALOR) -* BoxSize = total size of the box (cm) (data card CALOR) -* Field = magnetic field (tesla) (data card CALOR) -* diff --git a/examples/extended/electromagnetic/TestEm1/geant3/include/celoss.inc b/examples/extended/electromagnetic/TestEm1/geant3/include/celoss.inc deleted file mode 100644 index eb22131091..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/include/celoss.inc +++ /dev/null @@ -1,4 +0,0 @@ - - COMMON/CELOSS/ ETOT,NTRAK0,NTRAK1,NSTEP0,NSTEP1,NBCALL(12), - + NSTRK0,NSTRK1 - diff --git a/examples/extended/electromagnetic/TestEm1/geant3/ionis.dat b/examples/extended/electromagnetic/TestEm1/geant3/ionis.dat deleted file mode 100644 index d5c7abf941..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/ionis.dat +++ /dev/null @@ -1,17 +0,0 @@ -LIST -C -C full Ionisation only -C -CALOR 5 (Al) 50. (cm) 0. (field) -TRIG 10000 -KINE 3 (electron) 0.2 (GeV) 1. (xBeam) -DEBUG 10 5 2000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e+3 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm) -MULS 0 -LOSS 1 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/photon.dat b/examples/extended/electromagnetic/TestEm1/geant3/photon.dat deleted file mode 100644 index a3d2984ab7..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/photon.dat +++ /dev/null @@ -1,16 +0,0 @@ -LIST -C -C Photon beam; gamma 300 keV -C -CALOR 10 (Germanium) 1. (cm) 0. (field) -TRIG 100000 -KINE 1 (gamma) 300.e-6 (GeV) 1. (xBeam) 0.8 (rBeam) -DEBUG 10 5 1000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm) -LOSS 1 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/range.dat b/examples/extended/electromagnetic/TestEm1/geant3/range.dat deleted file mode 100644 index b0a806c09b..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/range.dat +++ /dev/null @@ -1,17 +0,0 @@ -LIST -C -C csda range of the primary particle -C -CALOR 3 (water) 10. (cm) 0. (field) -TRIG 20000 -KINE 14 (proton) 0.1 (GeV) 1. (xBeam) -DEBUG 10 5 2000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm) -MULS 0 -LOSS 4 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/gtgama.F b/examples/extended/electromagnetic/TestEm1/geant3/src/gtgama.F deleted file mode 100644 index 6feb8775a5..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/gtgama.F +++ /dev/null @@ -1,267 +0,0 @@ - - SUBROUTINE GTGAMA -C. -C. ****************************************************************** -C. * * -C. * Photon track. Computes step size and propagates particle * -C. * through step. * -C. * * -C. * ==>Called by : GTRACK * -C. * Authors R.Brun, F.Bruyant L.Urban ******** * -C. * * -C. ****************************************************************** -C. -#include "geant321/gcbank.inc" -#include "geant321/gccuts.inc" -#include "geant321/gcjloc.inc" -#include "geant321/gconsp.inc" -#include "geant321/gcphys.inc" -#include "geant321/gcstak.inc" -#include "geant321/gctmed.inc" -#include "geant321/gcmulo.inc" -#include "geant321/gctrak.inc" -#include "geant321/gcunit.inc" - - PARAMETER (EPSMAC=1.E-6) - DOUBLE PRECISION ONE,XCOEF1,XCOEF2,XCOEF3,ZERO - - PARAMETER (ONE=1,ZERO=0) - PARAMETER (EPCUT=1.022E-3) -C. -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - IABAN = NINT(DPHYS1) -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -C. ------------------------------------------------------------------ -* -* *** Particle below energy threshold ? Short circuit -* -* - IF (GEKIN.LE.CUTGAM) GOTO 998 -* -* *** Update local pointers if medium has changed -* - IF(IUPD.EQ.0)THEN - IUPD = 1 - JPHOT = LQ(JMA-6) - JCOMP = LQ(JMA-8) - JPAIR = LQ(JMA-10) - JPFIS = LQ(JMA-12) - JRAYL = LQ(JMA-13) - ENDIF -* -* *** Compute current step size -* - IPROC = 103 - STEP = STEMAX - GEKRT1 = 1 .-GEKRAT -* -* ** Step limitation due to pair production ? -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) THEN - STEPPA = GEKRT1*Q(JPAIR+IEKBIN) +GEKRAT*Q(JPAIR+IEKBIN+1) - SPAIR = STEPPA*ZINTPA - IF (SPAIR.LT.STEP) THEN - STEP = SPAIR - IPROC = 6 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to Compton scattering ? -* - IF (ICOMP.GT.0) THEN - STEPCO = GEKRT1*Q(JCOMP+IEKBIN) +GEKRAT*Q(JCOMP+IEKBIN+1) - SCOMP = STEPCO*ZINTCO - IF (SCOMP.LT.STEP) THEN - STEP = SCOMP - IPROC = 7 - ENDIF - ENDIF -* -* ** Step limitation due to photo-electric effect ? -* - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) THEN - STEPPH = GEKRT1*Q(JPHOT+IEKBIN) +GEKRAT*Q(JPHOT+IEKBIN+1) - SPHOT = STEPPH*ZINTPH - IF (SPHOT.LT.STEP) THEN - STEP = SPHOT - IPROC = 8 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to photo-fission ? -* - IF (JPFIS.GT.0) THEN - STEPPF = GEKRT1*Q(JPFIS+IEKBIN) +GEKRAT*Q(JPFIS+IEKBIN+1) - SPFIS = STEPPF*ZINTPF - IF (SPFIS.LT.STEP) THEN - STEP = SPFIS - IPROC = 23 - ENDIF - ENDIF -* -* ** Step limitation due to Rayleigh scattering ? -* - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) THEN - STEPRA = GEKRT1*Q(JRAYL+IEKBIN) +GEKRAT*Q(JRAYL+IEKBIN+1) - SRAYL = STEPRA*ZINTRA - IF (SRAYL.LT.STEP) THEN - STEP = SRAYL - IPROC = 25 - ENDIF - ENDIF - ENDIF -* - IF (STEP.LT.0.) STEP = 0. -* -* ** Step limitation due to geometry ? -* - IF (STEP.GE.SAFETY) THEN - CALL GTNEXT - IF (IGNEXT.NE.0) THEN - STEP = SNEXT + PREC - INWVOL= 2 - IPROC = 0 - NMEC = 1 - LMEC(1)=1 - ENDIF -* -* Update SAFETY in stack companions, if any - IF (IQ(JSTAK+3).NE.0) THEN - DO 10 IST = IQ(JSTAK+3),IQ(JSTAK+1) - JST = JSTAK +3 +(IST-1)*NWSTAK - Q(JST+11) = SAFETY - 10 CONTINUE - IQ(JSTAK+3) = 0 - ENDIF -* - ELSE - IQ(JSTAK+3) = 0 - ENDIF -* -* *** Linear transport -* - IF (INWVOL.EQ.2) THEN - DO 20 I = 1,3 - VECTMP = VECT(I) +STEP*VECT(I+3) - IF(VECTMP.EQ.VECT(I)) THEN -* -* *** Correct for machine precision -* - IF(VECT(I+3).NE.0.) THEN - VECTMP = VECT(I)+ABS(VECT(I))*SIGN(1.,VECT(I+3))* - + EPSMAC - IF(NMEC.GT.0) THEN - IF(LMEC(NMEC).EQ.104) NMEC=NMEC-1 - ENDIF - NMEC=NMEC+1 - LMEC(NMEC)=104 -#ifdef G3DEBUG - WRITE(CHMAIL, 10000) - CALL GMAIL(0,0) - WRITE(CHMAIL, 10100) GEKIN, NUMED, STEP, SNEXT - CALL GMAIL(0,0) -10000 FORMAT(' Boundary correction in GTGAMA: ', - + ' GEKIN NUMED STEP SNEXT') -10100 FORMAT(31X,E10.3,1X,I10,1X,E10.3,1X,E10.3,1X) -#endif - ENDIF - ENDIF - VECT(I) = VECTMP - 20 CONTINUE - ELSE - DO 30 I = 1,3 - VECT(I) = VECT(I) +STEP*VECT(I+3) - 30 CONTINUE - ENDIF -* - SLENG = SLENG +STEP -* -* *** Update time of flight -* - TOFG = TOFG +STEP/CLIGHT -* -* *** Update interaction probabilities -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) ZINTPA = ZINTPA -STEP/STEPPA - ENDIF - IF (ICOMP.GT.0) ZINTCO = ZINTCO -STEP/STEPCO - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) ZINTPH = ZINTPH -STEP/STEPPH - ENDIF - IF (JPFIS.GT.0) ZINTPF = ZINTPF -STEP/STEPPF - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) ZINTRA = ZINTRA -STEP/STEPRA - ENDIF -* - IF (IPROC.EQ.0) GO TO 999 - NMEC = 1 - LMEC(1) = IPROC -* -* ** Pair production ? -* - IF (IPROC.EQ.6) THEN - CALL GPAIRG -* -* ** Compton scattering ? -* - ELSE IF (IPROC.EQ.7) THEN - CALL GCOMP -* -* ** Photo-electric effect ? -* - ELSE IF (IPROC.EQ.8) THEN -* - IF ((IABAN.NE.0).AND.(GEKIN.LE.0.001)) THEN -* Calculate range of the photoelectron ( with kin. energy Ephot) - JCOEF = LQ(JMA-17) - IF(GEKRAT.LT.0.7) THEN - I1 = MAX(IEKBIN-1,1) - ELSE - I1 = MIN(IEKBIN,NEKBIN-1) - ENDIF - I1 = 3*(I1-1)+1 - XCOEF1 = Q(JCOEF+I1) - XCOEF2 = Q(JCOEF+I1+1) - XCOEF3 = Q(JCOEF+I1+2) - IF(XCOEF1.NE.0.) THEN - STOPMX = -XCOEF2+SIGN(ONE,XCOEF1)*SQRT(XCOEF2**2 - (XCOEF3- - + GEKIN/XCOEF1)) - ELSE - STOPMX = - (XCOEF3-GEKIN)/XCOEF2 - ENDIF -* -* DO NOT call GPHOT if this (overestimated) range is smaller -* than SAFETY -* - IF (STOPMX.LE.SAFETY) GOTO 998 - ENDIF - - CALL GPHOT -* -* ** Rayleigh effect ? -* - ELSE IF (IPROC.EQ.25) THEN - CALL GRAYL -* -* ** Photo-fission ? -* - ELSE IF (IPROC.EQ.23) THEN - CALL GPFIS -* - ENDIF -* - GOTO 999 -998 DESTEP = GEKIN - GEKIN = 0. - GETOT = 0. - VECT(7)= 0. - ISTOP = 2 - NMEC = 1 - LMEC(1)= 30 - 999 END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F deleted file mode 100644 index 5bb203640b..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F +++ /dev/null @@ -1,40 +0,0 @@ - - SUBROUTINE GUKINE -* -* Generates Kinematics for primary track -* -* Data card Kine : Itype Ekine xbeam rbeam -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "calor.inc" -* - DIMENSION VERTEX(3),PLAB(3) - dimension rndm(3) -* - DATA VERTEX/3*0./ - DATA PLAB /3*0./ -* - IF (PKINE(2).NE.0.) vertex(1) = -0.5*BoxSize -* -* random in YZ ? - if ((pkine(3).lt.0.).or.(pkine(3).gt.1.)) pkine(3) = 0. - rbeam = pkine(3)*0.5*BoxSize - call GRNDM (rndm,2) -* - VERTEX(2) = (2*rndm(1)-1.)*rbeam - VERTEX(3) = (2*rndm(2)-1.)*rbeam -* - CALL GSVERT(VERTEX,0,0,0,0,NVERT) -* - JPA = LQ(JPART-IKINE) - XMASS = Q(JPA+7) - PLAB(1) = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) -* - CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) -* -* *** Kinematics debug - IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm1/geant3/src/guout.F deleted file mode 100644 index 98db6689c1..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/guout.F +++ /dev/null @@ -1,28 +0,0 @@ - - SUBROUTINE GUOUT -* -* User routine called at the end of each event -* -#include "geant321/gcflag.inc" -#include "celoss.inc" -* - CHARACTER*4 unit -* -* *** drawing -* -#ifndef batch - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'TestEm1',0.) - CALL GDSHOW (3) - CALL GDXYZ (0) - END IF -#endif -* -* energy deposited -* - CALL GEVKEV (ETOT,ETunit,unit) - IF (ISWIT(1).NE.0) PRINT 750,ETunit,unit -* - 750 FORMAT(1X,'Energy deposit: ',F8.3,A4) -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm1/geant3/src/gustep.F deleted file mode 100644 index db0cfca6c6..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/gustep.F +++ /dev/null @@ -1,46 +0,0 @@ - - SUBROUTINE GUSTEP -* -* User routine called at the end of each tracking step -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gcking.inc" -#include "geant321/gctrak.inc" -#include "celoss.inc" -* -* -* *** Debug event and store tracks for drawing - IF (IDEBUG.NE.0) CALL GPCXYZ - IF (IDEBUG.NE.0) CALL GPGKIN - IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ - IF (ISWIT(1).EQ.2) CALL GSXYZ -* -* *** Something generated ? - IF(NGKINE.GT.0) CALL GSKING(0) -* -* *** Energy deposited - ETOT = ETOT + DESTEP -* -* *** count number of steps - IF (CHARGE.NE.0.) THEN - NSTEP1 = NSTEP1 + 1 - NSTRK1 = NSTRK1 + 1 - ELSE - NSTEP0 = NSTEP0 + 1 - NSTRK0 = NSTRK0 + 1 - ENDIF -* -* *** count nb of invoked processes - IF (NMEC.GT.0) THEN - DO IM = 1,NMEC - IPROC = LMEC(IM) - IF (IPROC.EQ.21) IPROC = 12 - IF (IPROC.LE.12) NBCALL(IPROC) = NBCALL(IPROC)+1 - ENDDO - ENDIF -* -* *** step size of primary particle - IF ((ITRA.EQ.1).AND.(ISTAK.EQ.0)) CALL HFILL (3,STEP*10,0.,1.) -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm1/geant3/src/gutrak.F deleted file mode 100644 index 4efc31f698..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/gutrak.F +++ /dev/null @@ -1,35 +0,0 @@ - - - SUBROUTINE GUTRAK -* -* User routine to control tracking of one track -* Called by GTREVE -* -#include "geant321/gckine.inc" -#include "geant321/gctrak.inc" -#include "celoss.inc" - -* -* -* *** initialisation track per track - NSTRK0 = 0 - NSTRK1 = 0 -* - CALL GTRACK -* -* *** count nb of tracks - IF (CHARGE.NE.0.) THEN - NTRAK1 = NTRAK1 + 1 - ELSE - NTRAK0 = NTRAK0 + 1 - ENDIF -* -* *** track length of primary particle - IF ((ITRA.EQ.1).AND.(ISTAK.EQ.0)) THEN - CALL HFILL (1,SLENG*10,0.,1.) - nstrk = NSTRK0 - if (CHARGE.NE.0.) nstrk = NSTRK1 - CALL HFILL (2,REAL(nstrk),0.,1.) - ENDIF -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/gutrev.F b/examples/extended/electromagnetic/TestEm1/geant3/src/gutrev.F deleted file mode 100644 index 9e0698c3c2..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/gutrev.F +++ /dev/null @@ -1,13 +0,0 @@ - - SUBROUTINE GUTREV -* -* User routine to control tracking of one event -* Called by GRUN -* -#include "celoss.inc" -* - ETOT = 0. -* - CALL GTREVE -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/main.F b/examples/extended/electromagnetic/TestEm1/geant3/src/main.F deleted file mode 100644 index 2ce531104e..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/main.F +++ /dev/null @@ -1,61 +0,0 @@ -#ifdef batch - - PROGRAM main -* -* - PARAMETER (NGBANK=100000, NHBOOK=10000) - COMMON/GCBANK/Q(NGBANK) - COMMON/PAWC /H(NHBOOK) -* - CALL GZEBRA( NGBANK) - CALL HLIMIT(-NHBOOK) -* -* *** initialize HIGZ - CALL HPLINT(0) -* -* *** GEANT initialisation - CALL UGINIT -* -* *** Start events processing - CALL GRUN -* -* *** End of RUN - CALL UGLAST -* - STOP - END - -#else - - PROGRAM main -* -* GEANT main program. To link with the MOTIF user interface -* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas -* the routine GPAW(NWGEAN,NWPAW) gives access to the basic -* graphics version. -* - PARAMETER (NWGEAN=3000000, NWPAW=1000000) - COMMON/GCBANK/GEANT(NWGEAN) - COMMON/PAWC /PAW (NWPAW) -* -* - CALL GPAW (NWGEAN,NWPAW) -* - END -* - SUBROUTINE qnext - END -* - SUBROUTINE czopen - END -* - SUBROUTINE cztcp - END -* - SUBROUTINE czclos - END -* - SUBROUTINE czputa - END - -#endif diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F deleted file mode 100644 index cee198757a..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F +++ /dev/null @@ -1,75 +0,0 @@ - - SUBROUTINE UGEOM -* -* *** Define user geometry set up -* -* -#include "calor.inc" -* - DIMENSION PAR(3) - - DIMENSION Aair(2),Zair(2),Wair(2) - DIMENSION AH2O(2),ZH2O(2),WH2O(2) -* -* *** Air compound parameters - DATA Aair/14.01, 16.00/ - DATA Zair/ 7. , 8. / - DATA Wair/ 0.7 , 0.3 / -* -* *** Air compound parameters - DATA AH2O/ 1.01, 16.00/ - DATA ZH2O/ 1. , 8. / - DATA WH2O/ 2. , 1. / -* -* *** Defines USER perticular materials - CALL GSMIXT( 1,'Air' , Aair ,Zair, 1.29E-3, 2 , Wair) - CALL GSMATE( 2,'H2 Liquid', 1.01, 1., 0.0708 , 865., 790., 0,0) - CALL GSMIXT( 3,'Water' , AH2O ,ZH2O, 1.0 ,-2 , WH2O) - CALL GSMATE( 4,'Liquid Ar', 39.95, 18., 1.39 , 14.0, 84.0, 0,0) - CALL GSMATE( 5,'Aluminium', 26.98, 13., 2.7 , 8.9, 37.2, 0,0) - CALL GSMATE( 6,'Iron' , 55.85, 26., 7.87 , 1.76, 17.1, 0,0) - CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0) - CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0) - CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0) - CALL GSMATE(10,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0) -* -* *** Defines USER tracking media parameters - IFIELD = 0 - IF (Field.GT.0.) IFIELD = 3 - FIELDM = 10*Field - TMAXFD = 10.0 - STEMAX = 1000. - DEEMAX = 0.20 - EPSIL = 0.001 - STMIN = 0.010 -* - CALL GSTMED( 1,'Container',Imat, 0 ,IFIELD,FIELDM,TMAXFD, - * STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 ) -* -* -* *** Geometry - PAR(1) = BoxSize/2. - PAR(2) = BoxSize/2. - PAR(3) = BoxSize/2. - CALL GSVOLU('aBox','BOX ',1,PAR,3,IVOL) -* -* *** Close geometry banks. (obligatory system routine) - CALL GGCLOS -* -* -* *** dessin - CALL GSATT ('*','SEEN',1) -* - DO IX = 1,3 - CALL GDOPEN (IX) - SCALE = 18./BoxSize - PAXIS = 0. - SAXIS = 0.1*BoxSize - CALL GDRAWC ('aBox',IX,0.,10.,9.3,SCALE,SCALE) - CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) - CALL GDSCAL (10. , 0.3) - CALL GDCLOS - END DO -* - - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm1/geant3/src/uginit.F deleted file mode 100644 index f71ce383e4..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/uginit.F +++ /dev/null @@ -1,53 +0,0 @@ - - SUBROUTINE UGINIT -* -* To initialise GEANT/USER program and read data cards -* -#include "calor.inc" -#include "celoss.inc" -* - CHARACTER*20 filnam -* -* *** Define the GEANT parameters - CALL GINIT - -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'testem1.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') - -* -* *** Calor definition - CALL FFKEY('CALOR',Imat,3,'MIXED') -* -* *** read data cards - CALL GFFGO - -* - CALL GZINIT - CALL GPART -* - CALL GDINIT -* -* *** Geometry and materials description - CALL UGEOM -* -* *** Energy loss and cross-sections initialisations - CALL GPHYSI -* - CALL GPRINT('MATE',0) - CALL GPRINT('TMED',0) - CALL GPRINT('VOLU',0) -* -* *** Define user histograms - CALL UHINIT -* -* *** some initialisation - NTRAK0 = 0 - NTRAK1 = 0 - NSTEP0 = 0 - NSTEP1 = 0 - CALL VZERO (NBCALL,12) -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F deleted file mode 100644 index da0f16eb3d..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F +++ /dev/null @@ -1,45 +0,0 @@ - - SUBROUTINE UGLAST -* -* Termination routine to print histograms and statistics -* -#include "geant321/gcflag.inc" -#include "geant321/gctrak.inc" -#include "celoss.inc" -* -* *** nb of steps and tracks per event - TOTEVT = IEVENT - FNTRK0 = NTRAK0/TOTEVT - FNTRK1 = NTRAK1/TOTEVT - FNSTP0 = NSTEP0/TOTEVT - FNSTP1 = NSTEP1/TOTEVT - PRINT 750, FNTRK0,FNTRK1,FNSTP0,FNSTP1 -* -* *** frequency of processes call - CALL UCTOH('MUNU',NAMEC(12),4,4) - PRINT 760,(NAMEC(I),I=1,12) - PRINT 761,(NBCALL(I)/TOTEVT,I=1,12) -* -* *** geant termination - CALL GLAST -* -* *** print selected histo - -* -* *** close HIGZ file - CALL HPLEND -* -* *** Save selected histograms - IF (ISWIT(2).EQ.1) THEN - CALL HRPUT(0,'testem1.hbook','N') - ENDIF -* -* *** formats - 750 FORMAT(//,1X,'nb tracks/event neutral: ',F9.2,' charged: ',F9.2, - + /,1X,'nb steps/event neutral: ',F9.2,' charged: ',F9.2) - - 760 FORMAT(//,1X,'nb of process calls per event: ', - + /,3X,12A12) - 761 FORMAT( 3X,12F12.4,//) -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm1/geant3/src/uhinit.F deleted file mode 100644 index da4cde09ba..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/uhinit.F +++ /dev/null @@ -1,13 +0,0 @@ - - SUBROUTINE UHINIT -* -* To book the user's histograms -* - CALL HBOOK1(1,'track length (mm) of primary particle', - + 100,0.,500.,0.) - CALL HBOOK1(2,'Nb of steps of primary particle', - + 100,0.,100.,0.) - CALL HBOOK1(3,'step size (mm) of primary particle', - + 100,0.,10. ,0.) -* - END diff --git a/examples/extended/electromagnetic/TestEm1/geant3/testem1.dat b/examples/extended/electromagnetic/TestEm1/geant3/testem1.dat deleted file mode 100644 index 6c7e2e4c00..0000000000 --- a/examples/extended/electromagnetic/TestEm1/geant3/testem1.dat +++ /dev/null @@ -1,16 +0,0 @@ -LIST -C -C e- 100 MeV; all processes -C -CALOR 5 (Al) 1000. (cm) 0. (field) -TRIG 2000 -KINE 3 (electron) 0.1 (GeV) 1. (xBeam) -DEBUG 10 5 1000 -SWIT 0 (draw) 0 (save) -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.e-6 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm) -LOSS 1 -C -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/plotHisto.C b/examples/extended/electromagnetic/TestEm1/plotHisto.C index 3974524ae0..695806f4dd 100644 --- a/examples/extended/electromagnetic/TestEm1/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm1/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("run1.root"); + TFile f("run1.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("1"); diff --git a/examples/extended/electromagnetic/TestEm1/radioactive.mac b/examples/extended/electromagnetic/TestEm1/radioactive.mac index 31705b9210..8f5e0b3d14 100644 --- a/examples/extended/electromagnetic/TestEm1/radioactive.mac +++ b/examples/extended/electromagnetic/TestEm1/radioactive.mac @@ -1,12 +1,12 @@ -# $Id: range.mac,v 1.12 2009-09-15 12:51:49 maire Exp $ +# $Id: radioactive.mac,v 1.12 2009-09-15 12:51:49 maire Exp $ # # Macro file for "TestEm1.cc" # /control/verbose 2 /run/verbose 2 # -/testem/det/setMat Air -/testem/det/setSize 100 m +/testem/det/setMat G4_SODIUM_IODINE +/testem/det/setSize 1 m # /testem/phys/addPhysics local # @@ -17,18 +17,15 @@ # /testem/gun/setDefault /gun/particle ion -/gun/ion 20 56 20 1000. -/gun/energy 1 eV +/gun/ion 11 22 +/gun/energy 0 eV /gun/position 0 0 0 mm # ###/grdm/nucleusLimits 210 210 82 82 # /analysis/setFileName rdecay -/analysis/h1/set 4 100 0 80 keV #total edep +/analysis/h1/set 4 100 0 3 MeV #total edep # /run/printProgress 10000 # -###/run/beamOn 40000 -# -/tracking/verbose 2 -/run/beamOn 1 +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc index 8fdebf6a82..fd1c05cc05 100644 --- a/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm1/src/DetectorConstruction.cc /// \brief Implementation of the DetectorConstruction class // -// $Id: DetectorConstruction.cc 84815 2014-10-21 12:19:02Z gcosmo $ +// $Id: DetectorConstruction.cc 97813 2016-06-14 07:58:46Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,6 +49,7 @@ #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" +#include "G4PhysicalConstants.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -167,10 +168,17 @@ void DetectorConstruction::DefineMaterials() ArButane->AddMaterial(argonGas, fractionmass=70*perCent); ArButane->AddMaterial(butane , fractionmass=30*perCent); + // example of vacuum + // + density = universe_mean_density; //from PhysicalConstants.h + new G4Material("Galactic", z=1., a=1.008*g/mole, density, + kStateGas,2.73*kelvin,3.e-18*pascal); + + // use Nist + // G4NistManager* man = G4NistManager::Instance(); G4bool isotopes = false; - ///G4Element* O = man->FindOrBuildElement("O" , isotopes); G4Element* Si = man->FindOrBuildElement("Si", isotopes); G4Element* Lu = man->FindOrBuildElement("Lu", isotopes); diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc index ac2e54f72a..31b3c3307a 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc 85268 2014-10-27 09:04:27Z gcosmo $ +// $Id: PhysListEmStandard.cc 96420 2016-04-13 10:24:08Z gcosmo $ // GEANT4 tag $Name: not supported by cvs2svn $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,6 +39,7 @@ #include "G4PhotoElectricEffect.hh" #include "G4RayleighScattering.hh" #include "G4KleinNishinaModel.hh" +#include "G4LivermorePhotoElectricModel.hh" #include "G4eMultipleScattering.hh" #include "G4eIonisation.hh" @@ -59,19 +60,27 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" +#include "G4BuilderType.hh" #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetMscStepLimitType(fUseSafetyPlus); + SetPhysicsType(bElectromagnetic); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -94,7 +103,11 @@ void PhysListEmStandard::ConstructProcess() if (particleName == "gamma") { ////ph->RegisterProcess(new G4RayleighScattering, particle); - ph->RegisterProcess(new G4PhotoElectricEffect, particle); + ph->RegisterProcess(new G4PhotoElectricEffect, particle); + ///G4PhotoElectricEffect* phot = new G4PhotoElectricEffect(); + ///phot->SetEmModel(new G4LivermorePhotoElectricModel(), 1); + ///ph->RegisterProcess(phot, particle); + G4ComptonScattering* cs = new G4ComptonScattering; cs->SetEmModel(new G4KleinNishinaModel()); ph->RegisterProcess(cs, particle); @@ -171,24 +184,6 @@ void PhysListEmStandard::ConstructProcess() } } - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(10*eV); //default 100 eV - emOptions.SetMaxEnergy(10*TeV); //default 100 TeV - emOptions.SetDEDXBinning(12*10); //default=12*7 - emOptions.SetLambdaBinning(12*10); //default=12*7 - - //multiple coulomb scattering - // - emOptions.SetMscStepLimitation(fUseSafetyPlus); //default=fUseSafety - // Deexcitation // G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc index 2a51e01bdb..970ef3bfde 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm1/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 93735 2015-10-30 11:00:28Z gcosmo $ +// $Id: PhysicsList.cc 96420 2016-04-13 10:24:08Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -115,8 +115,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmProcessOptions.hh" - void PhysicsList::ConstructProcess() { // Transportation @@ -129,10 +127,9 @@ void PhysicsList::ConstructProcess() // Em options // - G4EmProcessOptions emOptions; - emOptions.SetBuildCSDARange(true); - emOptions.SetDEDXBinningForCSDARange(10*10); - + G4EmParameters* param = G4EmParameters::Instance(); + param->SetBuildCSDARange(true); + // Decay Process // AddDecay(); @@ -249,15 +246,20 @@ void PhysicsList::AddDecay() #include "G4PhysicsListHelper.hh" #include "G4RadioactiveDecay.hh" #include "G4GenericIon.hh" +#include "G4NuclideTable.hh" void PhysicsList::AddRadioactiveDecay() { G4RadioactiveDecay* radioactiveDecay = new G4RadioactiveDecay(); - radioactiveDecay->SetHLThreshold(-1.*s); + radioactiveDecay->SetARM(true); //Atomic Rearangement G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); ph->RegisterProcess(radioactiveDecay, G4GenericIon::GenericIon()); + + // mandatory for G4NuclideTable + // + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/vis.mac b/examples/extended/electromagnetic/TestEm1/vis.mac index af4d41e9d8..cb397e194b 100644 --- a/examples/extended/electromagnetic/TestEm1/vis.mac +++ b/examples/extended/electromagnetic/TestEm1/vis.mac @@ -65,8 +65,10 @@ # # 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 +/vis/modeling/trajectories/create/drawByParticleID +/vis/modeling/trajectories/drawByParticleID-0/set nu_e white +/vis/modeling/trajectories/drawByParticleID-0/set anti_nu_e white +/vis/modeling/trajectories/drawByParticleID-0/set geantino white # # To superimpose all of the events from a given run: /vis/scene/endOfEventAction accumulate diff --git a/examples/extended/electromagnetic/TestEm10/.README.txt b/examples/extended/electromagnetic/TestEm10/.README.txt index 802da3fa24..9eb0150ffc 100644 --- a/examples/extended/electromagnetic/TestEm10/.README.txt +++ b/examples/extended/electromagnetic/TestEm10/.README.txt @@ -5,94 +5,88 @@ /*! \page ExampleTestEm10 Example TestEm10 - Test for investigation of ionisation in thin absorbers, transition - and synchrotron radiations. Default setup for "TestEm10.in" and "TestEm10.large_N.in" is - the experiment for XTR with NIM A294 (1990) 465-472 (fig. 11) setup + Test for investigation of transition radiation. + Default setup for "TestEm10.in" and "TestEm10.large_N.in" is the simplified + setup for ALICE XTR test beam (~2004), defined in DetectorSimpleALICE class. +\section TestEm10_s0 GEOMETRY DEFINITION + + The geometry setup includes "radiator" and "absorber" volumes + of a box shape. -\section TestEm10_s0 INTRODUCTION - - The parameterisations models can be changed simply with: + The "radiator" material is defined as a mixture of a gas and foil material + and the "absorber" contains a gas material. + + Several geometry setups are defined in the classes + DetectorSetupX, + where SetupX = ALICE06, Bari05, Barr90, Construction, Harris73, Messenger, SimpleALICE, Watase86 + + The default setup, SimpleALICE, can be changed via UI command: \verbatim -Idle> /XTRdetector/setModel i (i = 1 to 10) +/XTRdetector/setup setup + where setup = simpleALICE, alice06, bari05, harris73, watase86, barr90 \endverbatim - It is NOT needed (and not recommended) to issue the command - /XTRdetector/update if just the model is changed. - - See macro file "TestEm10.in" for an example. - - -\section TestEm10_s1 GEOMETRY DEFINITION - - The "absorber" is a tube made of a given material. - - Three parameters define the absorber : - - the material of the absorber, - - the thickness of an absorber, - - the transverse size of the absorber (the input face is a square). - - The volume "World" contains the "absorber". - In this test the parameters of the "World" can be changed , too. - - In addition a transverse uniform magnetic field can be applied. - - The default geometry is constructed in Em10DetectorConstruction class, - but all the parameters can be changed via - the commands defined in the Em10DetectorMessenger class. -\section TestEm10_s2 AN EVENT : THE PRIMARY GENERATOR +\section TestEm10_s1 PRIMARY GENERATOR The primary kinematic consists of a single particle which hits the absorber perpendicular to the input face. The type of the particle - and its energy are set in the Em10PrimaryGeneratorAction class, and can + and its energy are set in the PrimaryGeneratorAction class, and can be changed via the G4 build-in commands of G4ParticleGun class (see the macros provided with this example). - - A RUN is a set of events. -\section TestEm10_s3 DETECTOR RESPONSE +\section TestEm10_s2 DETECTOR RESPONSE - Here we test G4PAIionisation , G4IonisationByLogicalVolume and - transition radiation processes - - A HIT is a record, event per event , of all the - informations needed to simulate and analyse the detector response. - - In this example a Em10CalorHit is defined as a set of 2 informations: - - the total energy deposit in the absorber, - - the total tracklength of all charged particles in the absorber, - - Therefore the absorber is declared - 'sensitive detector' (SD), see Em10CalorimeterSD, which means they can contribute to the hit. - - At the end of a run, from the histogram(s), one can study - different physics quantities such as : - - angle distribution, - - energy deposit, - - transmission/backscattering, - - ... - - The test contains 10 built-in histograms, which can be activated by - interactive commands (see the macros runxx.mac for details). - - The histogram files can be viewed using PAW e.g with the commands -\verbatim -paw> h/file 1 geant4.plot01 or g4.p11 -paw> option stat -paw> h/pl 1 -\endverbatim + In this example the total energy deposited in the "absorber" volume + is accounted in SensitevDetector class, and a spectrum of XTR gamma + particles, all secondary gamma particles and all secondary e- + particleas is accounted in StackingAction class. -\section TestEm10_s4 PHYSICS DEMO +\section TestEm10_s3 PHYSICS The particle's type and the physic processes which will be available - in this example are set in Em10PhysicsList class. + in this example are set in PhysicsList class. + The trasition radiation process is defined in the + TransitionRadiationPhysics builder. - The messenger classes introduce interactive commands . Using these - commands the geometry of the detector, the data of the primary - particle, the limits of the histograms , etc. can be changed. + The transition radiator models can be changed simply with: +\verbatim +Idle> /emphyslist/setXTRModel modelName +\endverbatim + See macro files "*.mac" for different setups providede with the example. -\section TestEm10_s5- HOW TO START ? +\section TestEm10_s4 HISTOGRAMS + + Testem10 produces several histo which are saved as testem10.root by default. + Content of these histo: + - 1. Energy deposit in absorber + - 2. XTR Gamma spectrum + - 3. Secondary Gamma spectrum + - 4. Secondary e- spectrum + - 5. Energy deposit in absorber with the same histogram parameters + as in the previous version of this example (Geant4 version <=10.2) + + The histograms are managed by G4AnalysisManager class and its Messenger. + The histos can be individually activated with the command : + /analysis/h1/set id nbBins valMin valMax unit + where unit is the desired unit for the histo (MeV or keV, deg or mrad, etc..) + + One can control the name of the histograms file with the command: +\verbatim +/analysis/setFileName name (default testem1) +\endverbatim + + It is possible to choose the format of the histogram file : root (default), + hbook, xml, csv, by using namespace in HistoManager.hh + + It is also possible to print selected histograms on an ascii file: +\verbatim +/analysis/h1/setAscii id +\endverbatim + All selected histos will be written on a file name.ascii (default testem1) + +\section TestEm10_s5 HOW TO START ? - Execute TestEm10 in 'batch' mode from macro files e.g. \verbatim @@ -106,29 +100,5 @@ paw> h/pl 1 Idle> type your commands .... \endverbatim - -\section TestEm10_s6 List of the built-in histograms - - 1. number of (tracking) steps/event - - 2. energy deposit distribution in the absorber (in MeV) - - 3. angle distribution of the primary particle at the exit - of the absorber (deg) - - 4. distribution of the lateral displacement at exit(mm) - - 5. kinetic energy of the transmitted primaries (MeV) - - 6. angle distribution of the backscattered primaries (deg) - - 7. kinetic energy of the backscattered primary particles (MeV) - - 8. kinetic energy of the charged secondary particles (MeV) - - 9. z distribution of the secondary charged vertices (mm) - - 10. kinetic energy of the photons escaping the absorber (MeV) - - -\subsection TestEm10_sub_s61 Using histograms - -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. - -To use histograms any of implementations of AIDA interfaces should -be available. See InstallAida.txt - */ diff --git a/examples/extended/electromagnetic/TestEm10/CMakeLists.txt b/examples/extended/electromagnetic/TestEm10/CMakeLists.txt index f68cdbff79..400f5020b6 100644 --- a/examples/extended/electromagnetic/TestEm10/CMakeLists.txt +++ b/examples/extended/electromagnetic/TestEm10/CMakeLists.txt @@ -40,7 +40,7 @@ target_link_libraries(TestEm10 ${Geant4_LIBRARIES} ) # relies on these scripts being in the current working directory. # set(TestEm10_SCRIPTS - alice06.mac bari05.mac barr90.mac harris73.mac run11.mac salice.mac TestEm10.in TestEm10.large_N.in TestEm10.large_N.out TestEm10.out test.mac vis.mac watase86.mac + alice06.mac bari05.mac barr90.mac harris73.mac salice.mac TestEm10.in TestEm10.large_N.in TestEm10.large_N.out TestEm10.out vis.mac watase86.mac test_suite.sh ) foreach(_script ${TestEm10_SCRIPTS}) diff --git a/examples/extended/electromagnetic/TestEm10/History b/examples/extended/electromagnetic/TestEm10/History index d62e769d6c..5df6acd33b 100644 --- a/examples/extended/electromagnetic/TestEm10/History +++ b/examples/extended/electromagnetic/TestEm10/History @@ -1,4 +1,4 @@ -$Id: History 90463 2015-06-01 09:33:38Z gcosmo $ +$Id: History 94932 2015-12-18 09:21:29Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,20 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +17-12-15 I.Hrivnacova, V.Ivanchenko (testem10-V10-02-00) +- Major example revision & clean-up: + - Removed Em10 prefix from class names to be consistent with other examples + in electromagnetic category + - Refactored detector construction & its messenger classes + - Revised scoring: removed unused code and replaced own-defined + histograms with Geant4 analysis + - Added StackingAction which accounts XTR gamma, all gamma and all e- + spectra + - PhysicsList changed to a modular physics list and introduced + TransitionRadiationPhysics builder + - Clean-up primary generator action + - Added test_suite.sh script + 30-05-15 V.Ivanchenko (testem10-V10-01-00) - Em10PhysicsList - removed obsolete header diff --git a/examples/extended/electromagnetic/TestEm10/README b/examples/extended/electromagnetic/TestEm10/README index 74f0a8cda6..d9cc4ea661 100644 --- a/examples/extended/electromagnetic/TestEm10/README +++ b/examples/extended/electromagnetic/TestEm10/README @@ -1,4 +1,4 @@ -$Id: README 66241 2012-12-13 18:34:42Z gunter $ +$Id: README 94932 2015-12-18 09:21:29Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -8,95 +8,82 @@ $Id: README 66241 2012-12-13 18:34:42Z gunter $ TestEm10 -------- - Test for investigation of ionisation in thin absorbers, transition - and synchrotron radiations. Default setup for "TestEm10.in" and "TestEm10.large_N.in" is - the experiment for XTR with NIM A294 (1990) 465-472 (fig. 11) setup + Test for investigation of transition radiation. + Default setup for "TestEm10.in" and "TestEm10.large_N.in" is the simplified + setup for ALICE XTR test beam (~2004), defined in DetectorSimpleALICE class. - 0- INTRODUCTION - - The parameterisations models can be changed simply with: - - Idle> /XTRdetector/setModel i (i = 1 to 10) - - It is NOT needed (and not recommended) to issue the command - /XTRdetector/update if just the model is changed. - - See macro file "TestEm10.in" for an example. - - 1- GEOMETRY DEFINITION - The "absorber" is a tube made of a given material. - - Three parameters define the absorber : - - the material of the absorber, - - the thickness of an absorber, - - the transverse size of the absorber (the input face is a square). - - The volume "World" contains the "absorber". - In this test the parameters of the "World" can be changed , too. + The geometry setup includes "radiator" and "absorber" volumes + of a box shape. - In addition a transverse uniform magnetic field can be applied. + The "radiator" material is defined as a mixture of a gas and foil material + and the "absorber" contains a gas material. + + Several geometry setups are defined in the classes + DetectorSetupX, + where SetupX = ALICE06, Bari05, Barr90, Construction, Harris73, Messenger, SimpleALICE, Watase86 - The default geometry is constructed in DetectorConstruction class, - but all the parameters can be changed via - the commands defined in the DetectorMessenger class. + The default setup, SimpleALICE, can be changed via UI command: + /XTRdetector/setup setup + where setup = simpleALICE, alice06, bari05, harris73, watase86, barr90 - 2- AN EVENT : THE PRIMARY GENERATOR + 2- PRIMARY GENERATOR The primary kinematic consists of a single particle which hits the absorber perpendicular to the input face. The type of the particle and its energy are set in the PrimaryGeneratorAction class, and can - be changed via the G4 build-in commands of ParticleGun class (see + be changed via the G4 build-in commands of G4ParticleGun class (see the macros provided with this example). - A RUN is a set of events. - 3- DETECTOR RESPONSE - Here we test G4PAIionisation , G4IonisationByLogicalVolume and - transition radiation processes - - A HIT is a record, event per event , of all the - informations needed to simulate and analyse the detector response. + In this example the total energy deposited in the "absorber" volume + is accounted in SensitevDetector class, and a spectrum of XTR gamma + particles, all secondary gamma particles and all secondary e- + particleas is accounted in StackingAction class. - In this example a CalorHit is defined as a set of 2 informations: - - the total energy deposit in the absorber, - - the total tracklength of all charged particles in the absorber, - - Therefore the absorber is declared - 'sensitive detector' (SD), which means they can contribute to the hit. - - At the end of a run, from the histogram(s), one can study - different physics quantities such as : - - angle distribution, - - energy deposit, - - transmission/backscattering, - - ... - - The test contains 10 built-in histograms, which can be activated by - interactive commands (see the macros runxx.mac for details). - - The histogram files can be viewed using PAW e.g with the commands - - paw> h/file 1 geant4.plot01 or g4.p11 - paw> option stat - paw> h/pl 1 - - - - 4- PHYSICS DEMO - + 4- PHYSICS + The particle's type and the physic processes which will be available in this example are set in PhysicsList class. - - The messenger classes introduce interactive commands . Using these - commands the geometry of the detector, the data of the primary - particle, the limits of the histograms , etc. can be changed. - + The trasition radiation process is defined in the + TransitionRadiationPhysics builder. + + The transition radiator models can be changed simply with: - 5- HOW TO START ? + Idle> /emphyslist/setXTRModel modelName + + See macro files "*.mac" for different setups providede with the example. + + 5 - HISTOGRAMS + + Testem10 produces several histo which are saved as testem10.root by default. + Content of these histo: + 1: Energy deposit in absorber + 2: XTR Gamma spectrum + 3: Secondary Gamma spectrum + 4: Secondary e- spectrum + 5: Energy deposit in absorber with the same histogram parameters + as in the previous version of this example (Geant4 version <=10.2) + + The histograms are managed by G4AnalysisManager class and its Messenger. + The histos can be individually activated with the command : + /analysis/h1/set id nbBins valMin valMax unit + where unit is the desired unit for the histo (MeV or keV, deg or mrad, etc..) + + One can control the name of the histograms file with the command: + /analysis/setFileName name (default testem1) + + It is possible to choose the format of the histogram file : root (default), + hbook, xml, csv, by using namespace in HistoManager.hh + + It is also possible to print selected histograms on an ascii file: + /analysis/h1/setAscii id + All selected histos will be written on a file name.ascii (default testem1) + + 6- HOW TO START ? - execute TestEm10 in 'batch' mode from macro files e.g. % TestEm10 run11.mac @@ -106,29 +93,3 @@ $Id: README 66241 2012-12-13 18:34:42Z gunter $ .... Idle> type your commands .... - - List of the built-in histograms - ------------------------------- - - 1. number of (tracking) steps/event - 2. energy deposit distribution in the absorber (in MeV) - 3. angle distribution of the primary particle at the exit - of the absorber (deg) - 4. distribution of the lateral displacement at exit(mm) - 5. kinetic energy of the transmitted primaries (MeV) - 6. angle distribution of the backscattered primaries (deg) - 7. kinetic energy of the backscattered primary particles (MeV) - 8. kinetic energy of the charged secondary particles (MeV) - 9. z distribution of the secondary charged vertices (mm) - 10. kinetic energy of the photons escaping the absorber (MeV) - - - Using histograms - ---------------- - -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. - -To use histograms any of implementations of AIDA interfaces should -be available. See InstallAida.txt diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.cc b/examples/extended/electromagnetic/TestEm10/TestEm10.cc index 57083576ce..baec078580 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.cc +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.cc @@ -23,11 +23,11 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/TestEm10.cc -/// \brief Main program of the electromagnetic/TestEm10 example +/// \file electromagnetic/TestEm10/Test.cc +/// \brief Main program of the electromagnetic/Test example // // -// $Id: TestEm10.cc 73033 2013-08-15 09:24:45Z gcosmo $ +// $Id: TestEm10.cc 94932 2015-12-18 09:21:29Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -37,15 +37,12 @@ #include "G4UImanager.hh" #include "Randomize.hh" -#include "Em10DetectorConstruction.hh" -// #include "ALICEDetectorConstruction.hh" -#include "Em10PhysicsList.hh" -#include "Em10PrimaryGeneratorAction.hh" -#include "Em10RunAction.hh" -#include "Em10EventAction.hh" -#include "Em10SteppingAction.hh" -#include "Em10SteppingVerbose.hh" -#include "Em10TrackingAction.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "StackingAction.hh" #ifdef G4VIS_USE #include "G4VisExecutive.hh" @@ -63,43 +60,32 @@ int main(int argc,char** argv) //choose the Random engine CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); - - //my Verbose output class - - G4VSteppingVerbose::SetInstance(new Em10SteppingVerbose); - + // Construct the default run manager G4RunManager * runManager = new G4RunManager; // set mandatory initialization classes - Em10DetectorConstruction* detector; - detector = new Em10DetectorConstruction; + DetectorConstruction* detector; + detector = new DetectorConstruction; // ALICEDetectorConstruction* detector; // detector = new ALICEDetectorConstruction; runManager->SetUserInitialization(detector); - runManager->SetUserInitialization(new Em10PhysicsList(detector)); + runManager->SetUserInitialization(new PhysicsList(detector)); // set user action classes - runManager->SetUserAction(new Em10PrimaryGeneratorAction(detector)); - - Em10RunAction* runAction = new Em10RunAction; + runManager->SetUserAction(new PrimaryGeneratorAction()); + RunAction* runAction = new RunAction; runManager->SetUserAction(runAction); - Em10EventAction* eventAction = new Em10EventAction(runAction); - + EventAction* eventAction = new EventAction(runAction); runManager->SetUserAction(eventAction); - Em10SteppingAction* steppingAction = new Em10SteppingAction(eventAction, - runAction); - runManager->SetUserAction(steppingAction); - - - runManager->SetUserAction( new Em10TrackingAction ); + runManager->SetUserAction( new StackingAction ); G4UImanager* UI = G4UImanager::GetUIpointer(); diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.in b/examples/extended/electromagnetic/TestEm10/TestEm10.in index 3474065316..67a0fcfc69 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.in +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.in @@ -3,17 +3,19 @@ # # /run/verbose 1 -# PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 65 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.1 MeV +/analysis/h1/set 1 100 0.00 0.1 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 1 65 0.00 0.1 MeV # En (Edep with original limits) +# /run/initialize +/run/particle/dumpCutValues /gun/particle e- /gun/energy 2 GeV +# /run/beamOn 1000 -/run/dumpCouples diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in index cb1fee3d7f..b9f207271e 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in @@ -2,17 +2,18 @@ # Macro file 'TestEm10.in' for testing "TestEm10" # # -# PLOT: energy deposit distribution in absorber (g4.11) -# -/plots/sethistName g4.p11 -/plots/setnbinEn 65 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.1 MeV +/analysis/setFileName testem10_large +/analysis/h1/set 1 100 0.00 0.1 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 1 65 0.00 0.1 MeV # En (Edep with original limits) # /run/initialize /run/particle/dumpCutValues /gun/particle e- /gun/energy 2 GeV +# /run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index 5b20dcfb09..00bf073427 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -4,33 +4,28 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material WARNING: duplicate name of material CO2 - hist file = g4.p11 - Nb of bins in Edep plot = 65 - Elow in the Edep plot = 0 - Ehigh in the Edep plot = 0.1 -Material is selected: Mylar +DetectorSimpleALICE setup Material is selected: Air -Material is selected: Al +Material is selected: Mylar Material is selected: Xe15CO2 The WORLD is made of 4000mm of Air, the transverse size (R) of the world is 200 mm. The ABSORBER is made of 38.3mm of Xe15CO2, the transverse size (R) is 100 mm. Z position of the (middle of the) absorber 293.401 mm. -fRadZ = 129.58 mm -fStartZ = 100 mm +radZ = 129.58 mm +startZ = 100 mm fRadThick = 59.16 mm fFoilNumber = 220 fRadiatorMat = radiatorMat WorldMaterial = Air -XTR model = transpM +TransitionRadiationPhysics: XTR model ### G4VXTRenergyLoss: the number of TR radiator plates = 220 total radiator thickness = 5.94 cm plate material = Mylar @@ -38,28 +33,25 @@ gas material = Air plate plasma energy = 24.5068 eV gas plasma energy = 0.731967 eV Regular transparent X-ray TR radiator EM process is called -Em10PhysicsList::SetCuts:CutLength for e-, e+ and gamma is: 1 mm -Radiator gamma cut = 1 mm -Radiator electron cut = 1 mm -Radiator positron cut = 1 mm -Radiator cuts are set -Detector gamma cut = 1 mm -Detector electron cut = 1 mm -Detector positron cut = 1 mm -Detector cuts are set +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. -phot: for gamma, applyCuts: 1 SubType= 12 BuildTable= 0 +phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PhotoElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila + PhotoElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila FluoActive -compt: for gamma, applyCuts: 1 SubType= 13 BuildTable= 1 +compt: for gamma SubType= 13 BuildTable= 1 Lambda table from 100 eV to 1 MeV, 7 bins per decade, spline: 1 LambdaPrime table from 1 MeV to 10 TeV in 49 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== Klein-Nishina : Emin= 0 eV Emax= 10 TeV -conv: for gamma, applyCuts: 1 SubType= 14 BuildTable= 1 +conv: for gamma SubType= 14 BuildTable= 1 Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BetheHeitler : Emin= 0 eV Emax= 80 GeV @@ -68,7 +60,8 @@ conv: for gamma, applyCuts: 1 SubType= 14 BuildTable= 1 msc: for e- SubType= 10 RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV + WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV eIoni: for e- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -76,8 +69,6 @@ eIoni: for e- SubType= 2 finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MollerBhabha : Emin= 0 eV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI eBrem: for e- SubType= 3 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -87,6 +78,12 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen +CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 + Lambda table from 100 MeV to 10 TeV, 7 bins per decade, spline: 1 + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 10 TeV + Lorentz Factor XTR photon number 107.6 0.0003511 @@ -140,15 +137,13 @@ Lorentz Factor XTR photon number 8.085e+04 3.149 9.283e+04 3.149 -total time for build X-ray TR energy loss tables = 0.06 s - -SynRad: Incoherent Synchrotron Radiation - good description for long magnets at all energies +total time for build X-ray TR energy loss tables = 0.05 s msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV + WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV eIoni: for e+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -156,8 +151,6 @@ eIoni: for e+ SubType= 2 finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MollerBhabha : Emin= 0 eV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI eBrem: for e+ SubType= 3 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -167,10 +160,16 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen -annihil: for e+, integral: 1 , applyCuts: 1 SubType= 5 BuildTable= 0 +annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV +CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1 + Lambda table from 100 MeV to 10 TeV, 7 bins per decade, spline: 1 + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 10 TeV + Lorentz Factor XTR photon number 107.6 0.0003511 @@ -224,12 +223,12 @@ Lorentz Factor XTR photon number 8.085e+04 3.149 9.283e+04 3.149 -total time for build X-ray TR energy loss tables = 0.06 s +total time for build X-ray TR energy loss tables = 0.04 s msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV hIoni: for proton SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -238,14 +237,90 @@ hIoni: for proton SubType= 2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI -msc: for kaon+ SubType= 10 +hBrems: for proton SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for proton SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + Sampling table 13x1001 from 7.50618 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1 + Used Lambda table of anti_proton + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +msc: for GenericIon SubType= 10 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 10 TeV + +ionIoni: for GenericIon SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 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= 10 TeV + +msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV +ionIoni: for alpha SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 7.9452 MeV + BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV + +msc: for anti_proton SubType= 10 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + +hIoni: for anti_proton SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +hBrems: for anti_proton SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for anti_proton SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + Sampling table 13x1001 from 7.50618 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1 + Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1 + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +msc: for kaon+ SubType= 10 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + hIoni: for kaon+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 @@ -253,13 +328,30 @@ hIoni: for kaon+ SubType= 2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI + +hBrems: for kaon+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for kaon+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + Sampling table 14x1001 from 3.94942 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1 + Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1 + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV hIoni: for kaon- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -268,24 +360,39 @@ hIoni: for kaon- SubType= 2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI + +hBrems: for kaon- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for kaon- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + Sampling table 14x1001 from 3.94942 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1 + Used Lambda table of kaon+ + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV MuBetheBloch : Emin= 1 GeV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI muBrems: for mu+ SubType= 3 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -300,21 +407,25 @@ muPairProd: for mu+ SubType= 4 ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 10 TeV +CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1 + Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1 + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + msc: for mu- SubType= 10 RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV MuBetheBloch : Emin= 1 GeV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI muBrems: for mu- SubType= 3 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -329,10 +440,16 @@ muPairProd: for mu- SubType= 4 ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 10 TeV -msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 +CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1 + Used Lambda table of mu+ + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +msc: for pi+ SubType= 10 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV hIoni: for pi+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -341,13 +458,30 @@ hIoni: for pi+ SubType= 2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI + +hBrems: for pi+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for pi+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + Sampling table 16x1001 from 1.11656 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1 + Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1 + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV + WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV hIoni: for pi- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins @@ -356,8 +490,25 @@ hIoni: for pi- SubType= 2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV - ===== EM models for the G4Region XTRdEdxDetector ====== - PAIModel : Emin= 0 eV Emax= 10 TeV deltaVI + +hBrems: for pi- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for pi- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 + Sampling table 16x1001 from 1.11656 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 + Used Lambda table of pi+ + 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV ========= Table of registered couples ============================== @@ -370,15 +521,15 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : radiatorMat - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 0 fm - Energy thresholds : gamma 1.07314 keV e- 83.5287 keV e+ 82.4135 keV proton 0 eV + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 1.07314 keV e- 83.5287 keV e+ 82.4135 keV proton 100 keV Region(s) which use this couple : XTRradiator Index : 2 used in the geometry : Yes Material : Xe15CO2 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 0 fm - Energy thresholds : gamma 990 eV e- 2.08861 keV e+ 2.0697 keV proton 0 eV + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 990 eV e- 2.08861 keV e+ 2.0697 keV proton 100 keV Region(s) which use this couple : XTRdEdxDetector @@ -391,134 +542,26 @@ Index : 2 used in the geometry : Yes Initial seed (index) = 0 Current couple of seeds = 9876, 54321 ---------------------------------------- - ----> Begin of Event: 0 +... open Root analysis file : testem10.root - done +--> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=0.85s Real=0.85s Sys=0s + User=0.68s Real=0.68s Sys=0s ================== run summary ===================== - end of Run TotNbofEvents = 1000 - mean charged track length in absorber=44.6123 +- 0.615106 mm - - mean energy deposit in absorber=0.0523117 +- 0.000856792 MeV - - mean number of steps in absorber (charged) =8.081 +- 0.200705 - mean number of steps in absorber (neutral) =2.794 +- 0.0514545 - - mean number of charged secondaries = 3.372 +- 0.0687431 - - mean number of neutral secondaries = 0.042 +- 0.00634319 - - mean number of e-s =3.372 and e+s =0 - -(number) transmission coeff=0.233 reflection coeff=0 - - energy deposit distribution -#entries=1000 #underflows=0 #overflows=59 - bin nb Elow entries normalized - 0 0 0 0 - 1 1.53846 0 0 - 2 3.07692 0 0 - 3 4.61538 0 0 - 4 6.15385 0 0 - 5 7.69231 0 0 - 6 9.23077 0 0 - 7 10.7692 0 0 - 8 12.3077 0 0 - 9 13.8462 4 0.004 - 10 15.3846 7 0.007 - 11 16.9231 11 0.011 - 12 18.4615 21 0.021 - 13 20 16 0.016 - 14 21.5385 12 0.012 - 15 23.0769 17 0.017 - 16 24.6154 20 0.02 - 17 26.1538 27 0.027 - 18 27.6923 27 0.027 - 19 29.2308 29 0.029 - 20 30.7692 34 0.034 - 21 32.3077 27 0.027 - 22 33.8462 29 0.029 - 23 35.3846 32 0.032 - 24 36.9231 25 0.025 - 25 38.4615 34 0.034 - 26 40 35 0.035 - 27 41.5385 30 0.03 - 28 43.0769 36 0.036 - 29 44.6154 27 0.027 - 30 46.1538 35 0.035 - 31 47.6923 26 0.026 - 32 49.2308 27 0.027 - 33 50.7692 19 0.019 - 34 52.3077 22 0.022 - 35 53.8462 19 0.019 - 36 55.3846 27 0.027 - 37 56.9231 19 0.019 - 38 58.4615 19 0.019 - 39 60 17 0.017 - 40 61.5385 11 0.011 - 41 63.0769 12 0.012 - 42 64.6154 19 0.019 - 43 66.1538 12 0.012 - 44 67.6923 13 0.013 - 45 69.2308 15 0.015 - 46 70.7692 17 0.017 - 47 72.3077 5 0.005 - 48 73.8462 8 0.008 - 49 75.3846 11 0.011 - 50 76.9231 6 0.006 - 51 78.4615 8 0.008 - 52 80 10 0.01 - 53 81.5385 16 0.016 - 54 83.0769 4 0.004 - 55 84.6154 2 0.002 - 56 86.1538 7 0.007 - 57 87.6923 6 0.006 - 58 89.2308 4 0.004 - 59 90.7692 3 0.003 - 60 92.3077 7 0.007 - 61 93.8462 4 0.004 - 62 95.3846 1 0.001 - 63 96.9231 5 0.005 - 64 98.4615 5 0.005 - - Emp = 0.0430769 width= 0.0461538 MeV - + End of Run TotNbofEvents = 1000 + Mean energy deposit in absorber = 0.0488112 +-0.0190093 MeV + Total number of XTR gammas = 2700 + Total number of all gammas = 2792 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2102791090, 1435182547 + Current couple of seeds = 2017245243, 233346664 ---------------------------------------- - -========= Table of registered couples ============================== - -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 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 : radiatorMat - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 0 fm - Energy thresholds : gamma 1.07314 keV e- 83.5287 keV e+ 82.4135 keV proton 0 eV - Region(s) which use this couple : - XTRradiator - -Index : 2 used in the geometry : Yes - Material : Xe15CO2 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 0 fm - Energy thresholds : gamma 990 eV e- 2.08861 keV e+ 2.0697 keV proton 0 eV - Region(s) which use this couple : - XTRdEdxDetector - -==================================================================== - +... write Root file : testem10.root - done G4 kernel has come to Quit state. ================== Deleting memory pools =================== -Number of memory pools allocated: 12 of which, static: 1 -Dynamic pools deleted: 11 / Total memory freed: 0.05 MB +Number of memory pools allocated: 10 of which, static: 0 +Dynamic pools deleted: 10 / Total memory freed: 0.048 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm10/alice06.mac b/examples/extended/electromagnetic/TestEm10/alice06.mac index e54ed1d37d..f30eb11adb 100644 --- a/examples/extended/electromagnetic/TestEm10/alice06.mac +++ b/examples/extended/electromagnetic/TestEm10/alice06.mac @@ -9,10 +9,12 @@ # # PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 41 -/plots/setEnlow 0.00 MeV -/plots/setEnhigh 0.041 MeV +/analysis/setFileName alice06 +/analysis/h1/set 1 100 0.00 0.1 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 5 41 0.00 0.041 MeV # En (Edep with original limits) # # # Change and choice of experimental setups. Can be @@ -42,25 +44,17 @@ # /run/particle/applyCuts # -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 0.001 -/emphyslist/setElectronCut 0.001 -/emphyslist/setPositronCut 0.001 -/emphyslist/setRadiatorCuts 0.001 -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 1.01 -/emphyslist/setElectronCut 1.01 -/emphyslist/setPositronCut 1.01 -# -/emphyslist/setDetectorCuts 1.01 -# /run/initialize # +# set cuts +# +/run/setCut 0.001 +/run/setCutForRegion Radiator 0.001 +/run/setCutForRegion Absorber 1.01 +# +#/hits/verbose 1 +# /geometry/test/run -/geometry/test/recursive_test # #/XTRdetector/update # @@ -102,7 +96,7 @@ #/tracking/verbose 1 # -/event/printModulo 1000 +/run/printProgress 1000 /run/beamOn 10000 # diff --git a/examples/extended/electromagnetic/TestEm10/bari05.mac b/examples/extended/electromagnetic/TestEm10/bari05.mac index a807b69f3b..8ccad1c1be 100644 --- a/examples/extended/electromagnetic/TestEm10/bari05.mac +++ b/examples/extended/electromagnetic/TestEm10/bari05.mac @@ -9,10 +9,12 @@ # # PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 26 -/plots/setEnlow 0.000 MeV -/plots/setEnhigh 0.052 MeV +/analysis/setFileName bari05 +/analysis/h1/set 1 100 0.00 1.0 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 5 26 0.00 0.052 MeV # En (Edep with original limits) # # # Change and choice of experimental setups. Can be @@ -42,25 +44,18 @@ # #/run/particle/applyCuts # -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1. -/emphyslist/setRadiatorCuts 1. -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 100. -/emphyslist/setElectronCut 100. -/emphyslist/setPositronCut 1. -# -/emphyslist/setDetectorCuts 1. # /run/initialize # +# set cuts +# +/run/setCut 1. +/run/setCutForRegion Radiator 1. +/run/setCutForRegion Absorber 1. +# +#/hits/verbose 1 +# /geometry/test/run -/geometry/test/recursive_test # #/XTRdetector/update # @@ -100,7 +95,7 @@ #/tracking/verbose 1 # -/event/printModulo 1000 +/run/printProgress 1000 /run/beamOn 10000 # diff --git a/examples/extended/electromagnetic/TestEm10/barr90.mac b/examples/extended/electromagnetic/TestEm10/barr90.mac index 284967267a..5ae2e8b6b5 100644 --- a/examples/extended/electromagnetic/TestEm10/barr90.mac +++ b/examples/extended/electromagnetic/TestEm10/barr90.mac @@ -9,10 +9,12 @@ # # PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 65 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.1 MeV +/analysis/setFileName barr90 +/analysis/h1/set 1 100 0.00 1.0 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 5 65 0.00 0.1 MeV # En (Edep with original limits) # # # Change and choice of experimental setups. Can be @@ -45,22 +47,16 @@ # /run/particle/applyCuts # -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1.0 -/emphyslist/setRadiatorCuts 1.0 -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1.0 -/emphyslist/setDetectorCuts 1.0 -# /run/initialize # +# set cuts +# +/run/setCut 1. +/run/setCutForRegion Radiator 1. +/run/setCutForRegion Absorber 1. +# +#/hits/verbose 1 +# #/XTRdetector/update # #Innactivate some processes: msc eIoni eBrem RegularXTRadiator @@ -96,7 +92,7 @@ # #/tracking/verbose 1 # -/event/printModulo 1000 +/run/printProgress 1000 /run/beamOn 10000 #/tracking/verbose 0 #/run/beamOn 1 diff --git a/examples/extended/electromagnetic/TestEm10/harris73.mac b/examples/extended/electromagnetic/TestEm10/harris73.mac index b825b91ad2..b47dca0532 100644 --- a/examples/extended/electromagnetic/TestEm10/harris73.mac +++ b/examples/extended/electromagnetic/TestEm10/harris73.mac @@ -9,10 +9,12 @@ # # PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 49 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.011 MeV +/analysis/setFileName harris73 +/analysis/h1/set 1 100 0.00 0.1 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 5 49 0.00 0.011 MeV # En (Edep with original limits) # # # Change and choice of experimental setups. Can be @@ -45,22 +47,16 @@ # /run/particle/applyCuts # -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1.0 -/emphyslist/setRadiatorCuts 1.0 -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1.0 -/emphyslist/setDetectorCuts 1.0 -# /run/initialize # +# set cuts +# +/run/setCut 1. +/run/setCutForRegion Radiator 1. +/run/setCutForRegion Absorber 1. +# +#/hits/verbose 1 +# #/XTRdetector/update # #Innactivate some processes: msc eIoni eBrem RegularXTRadiator @@ -96,7 +92,7 @@ # #/tracking/verbose 1 # -/event/printModulo 1000 +/run/printProgress 1000 /run/beamOn 20000 # diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc b/examples/extended/electromagnetic/TestEm10/include/Analysis.hh similarity index 84% rename from source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc rename to examples/extended/electromagnetic/TestEm10/include/Analysis.hh index 2dbc6bbc28..b21b190d4d 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc +++ b/examples/extended/electromagnetic/TestEm10/include/Analysis.hh @@ -23,18 +23,15 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// $Id: Analysis.hh 68058 2013-03-13 14:47:43Z gcosmo $ // -// $Id: G4VLevelDensityParameter.cc 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Oct 1998) -// +/// \file electromagnetic/TestEm10/include/Analysis.hh +/// \brief Selection of the analysis technology -#include "G4VLevelDensityParameter.hh" +#ifndef Analysis_h +#define Analysis_h 1 -G4VLevelDensityParameter::G4VLevelDensityParameter() -{} - -G4VLevelDensityParameter::~G4VLevelDensityParameter() -{} +#include "g4root.hh" +//#include "g4xml.hh" +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/DetectorALICE06.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorALICE06.hh new file mode 100644 index 0000000000..09452e6b85 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorALICE06.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm10/include/DetectorALICE06.hh +/// \brief Definition of the DetectorALICE06 class +// +// +// $Id: DetectorALICE06.hh 72513 2013-07-24 20:37:54Z gum $ +// +// Simplified setup for ALICE XTR test beam (~2004). +// Runs by : Test salice.mac + +#ifndef DetectorALICE06_h +#define DetectorALICE06_h 1 + +#include "globals.hh" + +#include "RadiatorDescription.hh" + +class G4VPhysicalVolume; +class G4UniformMagField; + +class DetectorALICE06 +{ + public: + DetectorALICE06(); + ~DetectorALICE06(); + + // methods + G4VPhysicalVolume* Construct(); + + // get methods + RadiatorDescription* GetRadiatorDescription() const { return fRadiatorDescription; } + + private: + // data members + RadiatorDescription* fRadiatorDescription; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/DetectorBari05.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorBari05.hh new file mode 100644 index 0000000000..e2b1da3faa --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorBari05.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm10/include/DetectorBari05.hh +/// \brief Definition of the DetectorBari05 class +// +// +// $Id: DetectorBari05.hh 72513 2013-07-24 20:37:54Z gum $ +// +// Setup for Bari INFN XTR test beam (~2004) at CERN. With He beam-pipe +// M. Brigida et al, NIM A550 (2005) 157-168 +// Runs by : TestEm10 bari05.mac + +#ifndef DetectorBari05_h +#define DetectorBari05_h 1 + +#include "globals.hh" + +#include "RadiatorDescription.hh" + +class G4VPhysicalVolume; + +class DetectorBari05 +{ + public: + DetectorBari05(); + ~DetectorBari05(); + + // methods + G4VPhysicalVolume* Construct(); + + // get methods + RadiatorDescription* GetRadiatorDescription() const { return fRadiatorDescription; } + + private: + // data members + RadiatorDescription* fRadiatorDescription; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorBarr90.hh similarity index 71% rename from examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh rename to examples/extended/electromagnetic/TestEm10/include/DetectorBarr90.hh index f5a42bccd5..aa3a081798 100644 --- a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorBarr90.hh @@ -23,37 +23,38 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/TRTDetectorConstruction.hh -/// \brief Definition of the TRTDetectorConstruction class +/// \file electromagnetic/TestEm10/include/DetectorBarr90.hh +/// \brief Definition of the DetectorBarr90 class // // -// $Id: TRTDetectorConstruction.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: DetectorBarr90.hh 72513 2013-07-24 20:37:54Z gum $ // -// +// Setuo from G.D. Barr et al NIM A294 (1990) 465-472 (fig.11) -#ifndef TRTDetectorConstruction_h -#define TRTDetectorConstruction_h 1 +#ifndef DetectorBarr90_h +#define DetectorBarr90_h 1 -#include "G4VUserDetectorConstruction.hh" -#include "Randomize.hh" +#include "globals.hh" -class TRTTrackerSD; -class SCTTrackerSD; -class HepJamesRandom; +#include "RadiatorDescription.hh" -class TRTDetectorConstruction : public G4VUserDetectorConstruction +class G4VPhysicalVolume; + +class DetectorBarr90 { public: - TRTDetectorConstruction(); - ~TRTDetectorConstruction(); + DetectorBarr90(); + ~DetectorBarr90(); - public: - G4VPhysicalVolume* Construct(); + // methods + G4VPhysicalVolume* Construct(); + + // get methods + RadiatorDescription* GetRadiatorDescription() const { return fRadiatorDescription; } private: - TRTTrackerSD *TRTStrawSD; - SCTTrackerSD *SCTStripSD; - HepJamesRandom theJamesEngine; + // data members + RadiatorDescription* fRadiatorDescription; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorConstruction.hh similarity index 64% rename from source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh rename to examples/extended/electromagnetic/TestEm10/include/DetectorConstruction.hh index e09c77a6b5..322857c462 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorConstruction.hh @@ -23,44 +23,46 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +/// \file electromagnetic/TestEm10/include/DetectorConstruction.hh +/// \brief Definition of the DetectorConstruction class // -// $Id: G4GEMCoulombBarrierHE.hh 67983 2013-03-13 10:42:03Z gcosmo $ // -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) +// $Id: DetectorConstruction.hh 94932 2015-12-18 09:21:29Z gcosmo $ +// -#ifndef G4GEMCoulombBarrierHE_h -#define G4GEMCoulombBarrierHE_h 1 +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" + +#include "RadiatorDescription.hh" -#include "G4VCoulombBarrier.hh" #include "globals.hh" +#include "G4ios.hh" +class DetectorMessenger; -class G4GEMCoulombBarrierHE : public G4VCoulombBarrier +class G4Material; +class G4VPhysicalVolume; + +class DetectorConstruction : public G4VUserDetectorConstruction { -public: + public: + DetectorConstruction(); + ~DetectorConstruction(); - G4GEMCoulombBarrierHE(G4int anA, G4int aZ); + virtual G4VPhysicalVolume* Construct(); - ~G4GEMCoulombBarrierHE(); + void SetDetectorSetUp(G4String setup) { fSetUp = setup; } - G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const; - -private: - - G4GEMCoulombBarrierHE(); - G4GEMCoulombBarrierHE(const G4GEMCoulombBarrierHE & right); - const G4GEMCoulombBarrierHE & operator=(const G4GEMCoulombBarrierHE & right); - G4bool operator==(const G4GEMCoulombBarrierHE & right) const; - G4bool operator!=(const G4GEMCoulombBarrierHE & right) const; - -public: - - virtual G4double BarrierPenetrationFactor(G4double /*aZ*/) const - {return 1.0;}; - - G4double CalcCompoundRadius(G4int ARes) const; + RadiatorDescription* GetRadiatorDescription() const; + G4Material* GetAbsorberMaterial() const; + private: + // data members + DetectorMessenger* fDetectorMessenger; //pointer to the Messenger + RadiatorDescription* fRadiatorDescription; + G4String fSetUp; }; -#endif +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10TrackingAction.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorHarris73.hh similarity index 70% rename from examples/extended/electromagnetic/TestEm10/include/Em10TrackingAction.hh rename to examples/extended/electromagnetic/TestEm10/include/DetectorHarris73.hh index af9b173374..2e707b46e2 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorHarris73.hh @@ -23,27 +23,38 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: Em10TrackingAction.hh 66587 2012-12-21 11:06:44Z ihrivnac $ +/// \file electromagnetic/TestEm10/include/DetectorHarris73.hh +/// \brief Definition of the DetectorHarris73 class // -/// \file electromagnetic/TestEm10/include/Em10TrackingAction.hh -/// \brief Definition of the Em10TrackingAction class // - #ifndef Em10TrackingAction_h - #define Em10TrackingAction_h +// $Id: DetectorHarris73.hh 72513 2013-07-24 20:37:54Z gum $ +// +// Setup from F. Harris et al NIM 107 (1973) 413-422 (fig.5b) - #include "G4UserTrackingAction.hh" +#ifndef DetectorHarris73_h +#define DetectorHarris73_h 1 - #include "globals.hh" +#include "globals.hh" - class Em10TrackingAction : public G4UserTrackingAction { +#include "RadiatorDescription.hh" +class G4VPhysicalVolume; + +class DetectorHarris73 +{ public: - Em10TrackingAction(); - virtual ~Em10TrackingAction(){}; + DetectorHarris73(); + ~DetectorHarris73(); - virtual void PreUserTrackingAction(const G4Track*); + // methods + G4VPhysicalVolume* Construct(); - }; + // get methods + RadiatorDescription* GetRadiatorDescription() const { return fRadiatorDescription; } - #endif + private: + // data members + RadiatorDescription* fRadiatorDescription; +}; +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorMessenger.hh new file mode 100644 index 0000000000..7ac8b562fe --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorMessenger.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm10/include/DetectorMessenger.hh +/// \brief Definition of the DetectorMessenger class +// +// +// $Id: DetectorMessenger.hh 94932 2015-12-18 09:21:29Z gcosmo $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; + +class DetectorMessenger: public G4UImessenger +{ + public: + DetectorMessenger(DetectorConstruction* detector); + ~DetectorMessenger(); + + virtual void SetNewValue(G4UIcommand*, G4String); + + private: + DetectorConstruction* fDetector; + G4UIdirectory* fDirectory; + G4UIcmdWithAString* fDetectorSetUpCmd; +}; + +#endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/DetectorSimpleALICE.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorSimpleALICE.hh new file mode 100644 index 0000000000..144081fd94 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorSimpleALICE.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm10/include/DetectorSimpleALICE.hh +/// \brief Definition of the DetectorSimpleALICE class +// +// +// $Id: DetectorSimpleALICE.hh 72513 2013-07-24 20:37:54Z gum $ +// +// Simplified setup for ALICE XTR test beam (~2004). +// Runs by : Test salice.mac + +#ifndef DetectorSimpleALICE_h +#define DetectorSimpleALICE_h 1 + +#include "globals.hh" + +#include "RadiatorDescription.hh" + +class G4VPhysicalVolume; + +class DetectorSimpleALICE +{ + public: + DetectorSimpleALICE(); + ~DetectorSimpleALICE(); + + // methods + G4VPhysicalVolume* Construct(); + + // get methods + RadiatorDescription* GetRadiatorDescription() const { return fRadiatorDescription; } + + private: + // data members + RadiatorDescription* fRadiatorDescription; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/DetectorWatase86.hh b/examples/extended/electromagnetic/TestEm10/include/DetectorWatase86.hh new file mode 100644 index 0000000000..4dbb93bc91 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/DetectorWatase86.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/include/DetectorWatase86.hh +/// \brief Definition of the DetectorWatase86 class +// +// +// $Id: DetectorWatase86.hh 72513 2013-07-24 20:37:54Z gum $ +// +// Setup from Y. Watase et al, NIM A248 (1986) 379-388 (fig.7; Li, e-, 2 Gev/c) + +#ifndef DetectorWatase86_h +#define DetectorWatase86_h 1 + +#include "globals.hh" + +#include "RadiatorDescription.hh" + +class G4VPhysicalVolume; + +class DetectorWatase86 +{ + public: + DetectorWatase86(); + ~DetectorWatase86(); + + // methods + G4VPhysicalVolume* Construct(); + + // get methods + RadiatorDescription* GetRadiatorDescription() const { return fRadiatorDescription; } + + private: + // data members + RadiatorDescription* fRadiatorDescription; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh deleted file mode 100644 index 36f29f3086..0000000000 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh +++ /dev/null @@ -1,214 +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 electromagnetic/TestEm10/include/Em10DetectorConstruction.hh -/// \brief Definition of the Em10DetectorConstruction class -// -// -// $Id: Em10DetectorConstruction.hh 73033 2013-08-15 09:24:45Z gcosmo $ -// -// - -#ifndef Em10DetectorConstruction_h -#define Em10DetectorConstruction_h 1 - -#include "G4VUserDetectorConstruction.hh" -#include "globals.hh" -#include "G4ios.hh" - -class G4Box; -class G4Tubs; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4Region; -class G4UniformMagField; -class Em10DetectorMessenger; -class Em10CalorimeterSD; -class G4Region; -class Em10Materials; - - -class Em10DetectorConstruction : public G4VUserDetectorConstruction -{ - public: - - Em10DetectorConstruction(); - ~Em10DetectorConstruction(); - - public: - - void SetAbsorberMaterial (G4String); - void SetAbsorberThickness(G4double); - void SetAbsorberRadius(G4double); - void SetAbsorberZpos(G4double); - - void SetRadiatorMaterial (G4String); - void SetRadiatorThickness(G4double); - - void SetGasGapThickness(G4double); - - void SetFoilNumber (G4int i) {fFoilNumber = i; }; - - void SetWorldMaterial(G4String); - void SetWorldSizeZ(G4double); - void SetWorldSizeR(G4double); - void SetDetectorSetUp(G4String s) {fSetUp = s;}; - - - void SetMagField(G4double); - - G4VPhysicalVolume* Construct(); - - void UpdateGeometry(); - - public: - - void PrintGeometryParameters(); - - G4Material* GetWorldMaterial() {return fWorldMaterial;}; - G4double GetWorldSizeZ() {return fWorldSizeZ;}; - G4double GetWorldSizeR() {return fWorldSizeR;}; - - G4double GetAbsorberZpos() {return fAbsorberZ;}; - - G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;}; - G4double GetAbsorberThickness() {return fAbsorberThickness;}; - G4double GetAbsorberRadius() {return fAbsorberRadius;}; - - const G4VPhysicalVolume* GetphysiWorld() {return fPhysicsWorld;}; - const G4VPhysicalVolume* GetAbsorber() {return fPhysicsAbsorber;}; - G4LogicalVolume* GetLogicalAbsorber() {return fLogicAbsorber;}; - - G4LogicalVolume* GetLogicalRadiator() {return fLogicRadiator;}; - G4double GetFoilThick() {return fRadThickness;}; - G4double GetGasThick() {return fGasGap;}; - G4int GetFoilNumber() {return fFoilNumber;}; - G4Material* GetFoilMaterial() {return fFoilMat;}; - G4Material* GetGasMaterial() {return fGasMat;}; - -private: - - G4VPhysicalVolume* ConstructDetectorXTR(); - - G4VPhysicalVolume* SimpleSetUpALICE(); - G4VPhysicalVolume* SetUpALICE06(); - G4VPhysicalVolume* SetUpBari05(); - G4VPhysicalVolume* SetUpHarris73(); - G4VPhysicalVolume* SetUpWatase86(); - G4VPhysicalVolume* SetUpBarr90(); - - void TestOld(); - -private: - - G4bool fWorldChanged; - G4Material* fAbsorberMaterial; - G4double fAbsorberThickness; - G4double fAbsorberRadius; - - G4Material* fPipeMat; - - G4Material* fWindowMat; - G4double fWindowThick; - - G4Material* fElectrodeMat; - G4double fElectrodeThick; - - G4Material* fGapMat; - G4double fGapThick; - - G4double fAbsorberZ; - // G4double zstartAbs , zendAbs; - G4String fSetUp; - - G4Material* fWorldMaterial; - G4double fWorldSizeR; - G4double fWorldSizeZ; - - G4Box* fSolidWorld; //pointer to the solid World - G4LogicalVolume* fLogicWorld; //pointer to the logical World - G4VPhysicalVolume* fPhysicsWorld; //pointer to the physical World - - // TR radiator volumes and dimensions - -// G4Box* fSolidRadSlice; // pointer to the solid z-slice -// G4LogicalVolume* fLogicRadSlice; // pointer to the logical z-slide -// G4VPhysicalVolume* fPhysicRadSlice; // pointer to the physical z-slide - -// G4Box* fSolidRadRing; // pointer to the solid R-slice -// G4LogicalVolume* fLogicRadRing; // pointer to the logical R-slide -// G4VPhysicalVolume* fPhysicRadRing; // pointer to the physical R-slide - - G4Box* fSolidRadiator; - G4LogicalVolume* fLogicRadiator; - G4VPhysicalVolume* fPhysicsRadiator; - - G4Material* fRadiatorMat; // pointer to the mixed TR radiator material - G4Material* fFoilMat; // pointer to the TR foil radiator material - G4Material* fGasMat; // pointer to the TR gas radiator material - - G4double fRadThickness; - G4double fGasGap; - G4double foilGasRatio; - - G4int fFoilNumber; - - G4double fDetThickness; - G4double fDetLength; - G4double fDetGap; - - G4double fStartR; - G4double fStartZ; - - G4int fModuleNumber; // the number of Rad-Det modules - - G4double fRadThick; - G4double fMylarThick; - G4double fPipeLength; - G4bool fPipe; - G4bool fPipeField; - G4double fRadZ; - G4double fWindowZ; - G4double fGapZ; - G4double fElectrodeZ; - - G4Box* fSolidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* fLogicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* fPhysicsAbsorber; //pointer to the physical Absorber - - G4UniformMagField* fMagField; //pointer to the magnetic field - - // G4double fElectronCut, fGammaCut, fPositronCut; - - Em10DetectorMessenger* fDetectorMessenger; //pointer to the Messenger - Em10CalorimeterSD* fCalorimeterSD; //pointer to the sensitive detector - G4Region* fRegGasDet; - G4Region* fRadRegion; - Em10Materials* fMat; - -}; - -#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh deleted file mode 100644 index 2fe7d4483c..0000000000 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh +++ /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. * -// ******************************************************************** -// -/// \file electromagnetic/TestEm10/include/Em10PhysicsList.hh -/// \brief Definition of the Em10PhysicsList class -// -// -// $Id: Em10PhysicsList.hh 66241 2012-12-13 18:34:42Z gunter $ -// - -#ifndef Em10PhysicsList_h -#define Em10PhysicsList_h 1 - -#include "G4VUserPhysicsList.hh" -#include "G4VModularPhysicsList.hh" -#include "globals.hh" - -class G4ForwardXrayTR ; -class Em10StepCut; -class Em10DetectorConstruction; -class Em10PhysicsListMessenger; -class G4ProductionCuts; - - -class Em10PhysicsList: public G4VModularPhysicsList // G4VUserPhysicsList -{ -public: - Em10PhysicsList( Em10DetectorConstruction*); - - ~Em10PhysicsList(); - - // Construct particle and physics - void ConstructParticle(); - void ConstructProcess(); - - void SetCuts(); - -private: - // these methods Construct particles - void ConstructBosons(); - void ConstructLeptons(); - void ConstructMesons(); - void ConstructBarions(); - - // these methods Construct physics processes and register them - - void AddParameterisation(); - void ConstructGeneral(); - void ConstructEM(); - -public: - - void SetGammaCut(G4double); - void SetElectronCut(G4double); - - void SetRegGammaCut(G4double cut){fGammaCut = cut;}; - void SetRegElectronCut(G4double cut){fElectronCut = cut;}; - void SetRegPositronCut(G4double cut){fPositronCut = cut;}; - - void SetRadiatorCuts(); - void SetDetectorCuts(); - - void SetMaxStep(G4double); - void SetXTRModel(G4String m) {fXTRModel = m; G4cout< - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em10RunMessenger; -class G4Run; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em10RunAction : public G4UserRunAction -{ - public: - Em10RunAction(); - ~Em10RunAction(); - - public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); - - void CountEvent(); - void CountParticles(G4double,G4double); - void AddEP(G4double,G4double); - void AddEdeps(G4double Eabs); - void AddTrackLength(G4double tlabs); - void AddnStepsCharged(G4double ns); - void AddnStepsNeutral(G4double ns); - - void AddTrRef(G4double tr,G4double ref); - - void FillEn(G4double En); - void FillTh(G4double Th); - void FillThBack(G4double Th); - void FillR(G4double R); - void FillTt(G4double Tt); - void FillTb(G4double Tt); - void FillTsec(G4double T); - void FillGammaSpectrum(G4double E); - void FillNbOfSteps(G4double nstep); - void Fillvertexz(G4double z); - - void SethistName(G4String name) ; - - void SetnbinStep(G4int nbin); - void SetSteplow(G4double Slow); - void SetStephigh(G4double Shigh); - - void SetnbinEn(G4int nbin); - void SetEnlow(G4double Elow); - void SetEnhigh(G4double Enhigh); - - void SetnbinTt(G4int nbin); - void SetTtlow(G4double Ttlow); - void SetTthigh(G4double Tthigh); - - void SetnbinTb(G4int nbin); - void SetTblow(G4double Tblow); - void SetTbhigh(G4double Tbhigh); - - void SetnbinTsec(G4int nbin); - void SetTseclow(G4double Tlow); - void SetTsechigh(G4double Thigh); - - void SetnbinTh(G4int nbin); - void SetThlow(G4double Thlow); - void SetThhigh(G4double Thhigh); - - void SetnbinThBack(G4int nbin); - void SetThlowBack(G4double Thlow); - void SetThhighBack(G4double Thhigh); - - void SetnbinR(G4int nbin); - void SetRlow(G4double Rlow); - void SetRhigh(G4double Rhigh); - - void SetnbinGamma(G4int nbin); - void SetElowGamma(G4double Elow); - void SetEhighGamma(G4double Ehigh); - - void Setnbinzvertex(G4int nbin); - void Setzlow(G4double z); - void Setzhigh(G4double z); - - void SetRndmFreq(G4int val) {saveRndm = val;} - G4int GetRndmFreq() {return saveRndm;} - - private: - - void bookHisto(); - - private: - - G4String histName ; - - G4double EnergySumAbs,EnergySquareSumAbs; - G4double tlSumAbs,tlsquareSumAbs; - G4double nStepSumCharged,nStepSum2Charged ; - G4double nStepSumNeutral,nStepSum2Neutral ; - G4double TotNbofEvents; - G4double SumCharged,Sum2Charged,SumNeutral,Sum2Neutral; - G4double Selectron,Spositron; - - G4double Transmitted,Reflected ; - - G4double entryStep,underStep,overStep,distStep[200]; - G4double Steplow,Stephigh,dStep; - G4int nbinStep; - G4double entryEn,underEn,overEn,distEn[200]; - G4double Enlow,Enhigh,dEn; - G4int nbinEn; - G4double entryTt,underTt,overTt,distTt[200]; - G4double Ttlow,Tthigh,dTt; - G4int nbinTt; - G4double Ttmean,Tt2mean; - G4double entryTb,underTb,overTb,distTb[200]; - G4double Tblow,Tbhigh,dTb; - G4int nbinTb; - G4double Tbmean,Tb2mean; - G4double entryTsec,underTsec,overTsec,distTsec[200]; - G4double Tseclow,Tsechigh,dTsec; - G4int nbinTsec; - G4double entryTh,underTh,overTh,distTh[200]; - G4double Thlow,Thhigh,dTh; - G4int nbinTh; - G4double entryThback,underThback,overThback,distThback[200]; - G4double Thlowback,Thhighback,dThback; - G4int nbinThback; - G4double entryR ,underR ,overR ,distR[200]; - G4double Rlow,Rhigh,dR; - G4int nbinR; - G4double Rmean,R2mean; - G4double entryGamma,underGamma,overGamma,distGamma[200]; - G4double ElowGamma,EhighGamma,dEGamma; - G4int nbinGamma ; - G4double entryvertexz,undervertexz,oververtexz,distvertexz[200]; - G4double zlow,zhigh,dz; - G4int nbinvertexz; - - Em10RunMessenger* runMessenger; - G4int saveRndm; -}; - -#endif - diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh deleted file mode 100644 index 475847de03..0000000000 --- a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh +++ /dev/null @@ -1,120 +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 electromagnetic/TestEm10/include/Em10RunMessenger.hh -/// \brief Definition of the Em10RunMessenger class -// - -// -// $Id: Em10RunMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef Em10RunMessenger_h -#define Em10RunMessenger_h 1 - -#include "globals.hh" -#include "G4UImessenger.hh" -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em10RunAction; -class G4UIdirectory; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithADouble; -class G4UIcmdWithAString; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em10RunMessenger: public G4UImessenger -{ - public: - - Em10RunMessenger(Em10RunAction* ); - ~Em10RunMessenger(); - - void SetNewValue(G4UIcommand* ,G4String ); - - private: - - Em10RunAction* runAction; - - G4UIdirectory* plotDir; - - G4UIcmdWithAString* sethistNameCmd; - - G4UIcmdWithAnInteger* setnbinStepCmd; - G4UIcmdWithADouble* setSteplowCmd; - G4UIcmdWithADouble* setStephighCmd; - - G4UIcmdWithAnInteger* setnbinEnCmd; - G4UIcmdWithADoubleAndUnit* setEnlowCmd; - G4UIcmdWithADoubleAndUnit* setEnhighCmd; - - G4UIcmdWithAnInteger* setnbinGammaCmd; - G4UIcmdWithADoubleAndUnit* setElowGammaCmd; - G4UIcmdWithADoubleAndUnit* setEhighGammaCmd; - - G4UIcmdWithAnInteger* setnbinTtCmd; - G4UIcmdWithADoubleAndUnit* setTtlowCmd; - G4UIcmdWithADoubleAndUnit* setTthighCmd; - - G4UIcmdWithAnInteger* setnbinTbCmd; - G4UIcmdWithADoubleAndUnit* setTblowCmd; - G4UIcmdWithADoubleAndUnit* setTbhighCmd; - - G4UIcmdWithAnInteger* setnbinTsecCmd; - G4UIcmdWithADoubleAndUnit* setTseclowCmd; - G4UIcmdWithADoubleAndUnit* setTsechighCmd; - - G4UIcmdWithAnInteger* setnbinRCmd; - G4UIcmdWithADoubleAndUnit* setRlowCmd; - G4UIcmdWithADoubleAndUnit* setRhighCmd; - - G4UIcmdWithAnInteger* setnbinThCmd; - G4UIcmdWithADoubleAndUnit* setThlowCmd; - G4UIcmdWithADoubleAndUnit* setThhighCmd; - - G4UIcmdWithAnInteger* setnbinThbackCmd; - G4UIcmdWithADoubleAndUnit* setThlowbackCmd; - G4UIcmdWithADoubleAndUnit* setThhighbackCmd; - - G4UIcmdWithAnInteger* setnbinzvertexCmd; - G4UIcmdWithADoubleAndUnit* setzlowCmd; - G4UIcmdWithADoubleAndUnit* setzhighCmd; - - G4UIdirectory* RndmDir; - G4UIcmdWithAnInteger* RndmSaveCmd; - G4UIcmdWithAString* RndmReadCmd; - -}; - -#endif - diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh deleted file mode 100644 index ab41001ff7..0000000000 --- a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh +++ /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. * -// ******************************************************************** -// -/// \file electromagnetic/TestEm10/include/Em10StepCut.hh -/// \brief Definition of the Em10StepCut class -// -// -// $Id: Em10StepCut.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// - -#ifndef Em10StepCut_h -#define Em10StepCut_h 1 - -#include "G4ios.hh" -#include "globals.hh" -#include "G4VDiscreteProcess.hh" -#include "G4Step.hh" - -class Em10StepCut : public G4VDiscreteProcess -{ - public: - - Em10StepCut(const G4String& processName ="UserStepCut" ); - Em10StepCut(Em10StepCut &); - - ~Em10StepCut(); - - G4double PostStepGetPhysicalInteractionLength( - const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition - ); - - G4VParticleChange* PostStepDoIt( - const G4Track& , - const G4Step& - ); - - void SetMaxStep(G4double); - - protected: - - // it is not needed here ! - G4double GetMeanFreePath(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition - ); - - - private: - - // hide assignment operator as private - Em10StepCut & operator=(const Em10StepCut &right); - - private: - - G4double MaxChargedStep ; -}; - -// inlined function members implementation - -#include "G4Step.hh" -#include "G4Track.hh" -#include "G4UserLimits.hh" -#include "G4VParticleChange.hh" -#include "G4EnergyLossTables.hh" - -inline G4double Em10StepCut::PostStepGetPhysicalInteractionLength( - const G4Track& aTrack, - G4double, - G4ForceCondition* condition - ) -{ - // condition is set to "Not Forced" - *condition = NotForced; - - G4double ProposedStep = DBL_MAX; - - if((MaxChargedStep > 0.) && - (aTrack.GetVolume() != NULL) && - (aTrack.GetVolume()->GetName() == "Absorber") && - (aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge() != 0.)) - ProposedStep = MaxChargedStep ; - - return ProposedStep; -} - -inline G4VParticleChange* Em10StepCut::PostStepDoIt( - const G4Track& aTrack, - const G4Step& - ) -{ - // do nothing - aParticleChange.Initialize(aTrack); - return &aParticleChange; -} - -inline G4double Em10StepCut::GetMeanFreePath(const G4Track&, - G4double, - G4ForceCondition* - ) -{ - return 0.; -} - -#endif - diff --git a/examples/extended/electromagnetic/TestEm10/include/EventAction.hh b/examples/extended/electromagnetic/TestEm10/include/EventAction.hh new file mode 100644 index 0000000000..87e2f31636 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/EventAction.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/include/EventAction.hh +/// \brief Definition of the EventAction class +// +// +// $Id: EventAction.hh 94932 2015-12-18 09:21:29Z gcosmo $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef EventAction_h +#define EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class RunAction; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class EventAction : public G4UserEventAction +{ + public: + EventAction(RunAction* runAction); + ~EventAction(); + + virtual void BeginOfEventAction(const G4Event*); + virtual void EndOfEventAction(const G4Event*); + + void SetVerboseLevel(G4int level) { fVerboseLevel = level; } + + private: + RunAction* fRunAction; + G4int fVerboseLevel; +}; + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10Materials.hh b/examples/extended/electromagnetic/TestEm10/include/Materials.hh similarity index 80% rename from examples/extended/electromagnetic/TestEm10/include/Em10Materials.hh rename to examples/extended/electromagnetic/TestEm10/include/Materials.hh index 22da521ba8..b7732f57dc 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10Materials.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Materials.hh @@ -23,42 +23,44 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: Em10Materials.hh 66587 2012-12-21 11:06:44Z ihrivnac $ +// $Id: Materials.hh 94932 2015-12-18 09:21:29Z gcosmo $ // -/// \file electromagnetic/TestEm10/include/Em10Materials.hh -/// \brief Definition of the Em10Materials class +/// \file electromagnetic/TestEm10/include/Materials.hh +/// \brief Definition of the Materials class // // // ------------------------------------------------------------- // GEANT 4 class // -// ---------- Em10Materials------- +// ---------- Materials------- // Originally Created in Test30 by Vladimir Ivanchenko, 12 March 2002 // -// Modified for TestEm10 by V. Grichine, 30 Jan 2006 +// Modified for Test by V. Grichine, 30 Jan 2006 // // -#ifndef Em10Materials_h -#define Em10Materials_h 1 +#ifndef Materials_h +#define Materials_h 1 #include "globals.hh" class G4Material; -class Em10Materials +class Materials { public: - - Em10Materials(); - ~Em10Materials(); + Materials(); + ~Materials(); + + static Materials* GetInstance(); - G4Material* GetMaterial(const G4String&); + G4Material* GetMaterial(const G4String&); private: - void Initialise(); - + void Initialise(); + + static Materials* fgInstance; }; #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/PhysicsList.hh similarity index 58% rename from examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh rename to examples/extended/electromagnetic/TestEm10/include/PhysicsList.hh index f26d041970..e3dca74a45 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/PhysicsList.hh @@ -23,55 +23,68 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh -/// \brief Definition of the Em10PhysicsListMessenger class +/// \file electromagnetic/TestEm10/include/PhysicsList.hh +/// \brief Definition of the PhysicsList class // +// $Id: PhysicsList.hh 94932 2015-12-18 09:21:29Z gcosmo $ // -// $Id: Em10PhysicsListMessenger.hh 73033 2013-08-15 09:24:45Z gcosmo $ +//--------------------------------------------------------------------------- +// +// ClassName: PhysicsList +// +// Description: EM physics with a possibility to add transition radiation +// +// Author: V.Ivanchenko 16.12.2015 +// +//---------------------------------------------------------------------------- // -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef Em10PhysicsListMessenger_h -#define Em10PhysicsListMessenger_h 1 +#ifndef PhysicsList_h +#define PhysicsList_h 1 +#include "G4VModularPhysicsList.hh" #include "globals.hh" -#include "G4UImessenger.hh" -class Em10PhysicsList; -class G4UIcmdWithoutParameter; -class G4UIcmdWithADouble; -class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithAString; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +class G4VPhysicsConstructor; +class PhysicsListMessenger; +class TransitionRadiationPhysics; +class StepMax; +class DetectorConstruction; -class Em10PhysicsListMessenger: public G4UImessenger +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsList: public G4VModularPhysicsList { - public: - Em10PhysicsListMessenger(Em10PhysicsList*); - ~Em10PhysicsListMessenger(); +public: + + PhysicsList(DetectorConstruction* ptr); + virtual ~PhysicsList(); + + virtual void ConstructParticle(); + + virtual void ConstructProcess(); - void SetNewValue(G4UIcommand*, G4String); - - private: - Em10PhysicsList* Em10List; + void AddPhysicsList(const G4String& name); - G4UIcmdWithADoubleAndUnit* setMaxStepCmd; + void SetXTRModel(const G4String& name); - G4UIcmdWithADoubleAndUnit* cutGCmd; - G4UIcmdWithADoubleAndUnit* cutECmd; - G4UIcmdWithADoubleAndUnit* eCmd; +private: - G4UIcmdWithADoubleAndUnit* ElectronCutCmd; - G4UIcmdWithADoubleAndUnit* PositronCutCmd; - G4UIcmdWithADoubleAndUnit* GammaCutCmd; + void AddStepMax(); - G4UIcmdWithADoubleAndUnit* RadiatorCutCmd; - G4UIcmdWithADoubleAndUnit* DetectorCutCmd; - G4UIcmdWithAString* XTRModelCmd; + G4VPhysicsConstructor* fEmPhysicsList; + G4VPhysicsConstructor* fDecayPhysicsList; + + TransitionRadiationPhysics* fXTRPhysicsList; + + G4String fEmName; + G4int fVerbose; + + PhysicsListMessenger* fMessenger; + static G4ThreadLocal StepMax* fStepMaxProcess; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh b/examples/extended/electromagnetic/TestEm10/include/PhysicsListMessenger.hh similarity index 73% rename from examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh rename to examples/extended/electromagnetic/TestEm10/include/PhysicsListMessenger.hh index 2e9b46a222..2b147418fa 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/PhysicsListMessenger.hh @@ -23,46 +23,43 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10SteppingAction.hh -/// \brief Definition of the Em10SteppingAction class +/// \file electromagnetic/TestEm10/include/PhysicsListMessenger.hh +/// \brief Definition of the PhysicsListMessenger class // // -// $Id: Em10SteppingAction.hh 90463 2015-06-01 09:33:38Z gcosmo $ +// $Id: PhysicsListMessenger.hh 94932 2015-12-18 09:21:29Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifndef Em10SteppingAction_h -#define Em10SteppingAction_h 1 +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 -#include "G4UserSteppingAction.hh" -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4ios.hh" #include "globals.hh" +#include "G4UImessenger.hh" -class Em10RunAction; -class Em10EventAction; +class PhysicsList; +class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class Em10SteppingAction : public G4UserSteppingAction +class PhysicsListMessenger: public G4UImessenger { public: - Em10SteppingAction(Em10EventAction*, - Em10RunAction* ); - virtual ~Em10SteppingAction(); - - void UserSteppingAction(const G4Step*); - + PhysicsListMessenger(PhysicsList*); + ~PhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + private: - Em10EventAction* eventaction; - Em10RunAction* runaction; - G4long IDnow,IDold; + PhysicsList* fList; + G4UIcmdWithAString* fXTRModelCmd; + G4UIcmdWithAString* fListCmd; }; #endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm10/include/PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..ecb9ec651e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/PrimaryGeneratorAction.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/include/PrimaryGeneratorAction.hh +/// \brief Definition of the PrimaryGeneratorAction class +// +// +// $Id: PrimaryGeneratorAction.hh 94932 2015-12-18 09:21:29Z gcosmo $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + PrimaryGeneratorAction(); + ~PrimaryGeneratorAction(); + + public: + virtual void GeneratePrimaries(G4Event*); + + private: + G4ParticleGun* fParticleGun; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc b/examples/extended/electromagnetic/TestEm10/include/RadiatorDescription.hh similarity index 70% rename from examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc rename to examples/extended/electromagnetic/TestEm10/include/RadiatorDescription.hh index 3dd5c0f96d..11195afe89 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc +++ b/examples/extended/electromagnetic/TestEm10/include/RadiatorDescription.hh @@ -23,39 +23,36 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/src/Em10StepCut.cc -/// \brief Implementation of the Em10StepCut class +/// \file electromagnetic/TestEm10/include/DetectorConstruction.hh +/// \brief Definition of the DetectorConstruction class // // -// $Id: Em10StepCut.cc 66241 2012-12-13 18:34:42Z gunter $ +// $Id: DetectorConstruction.hh 72513 2013-07-24 20:37:54Z gum $ +// // -#include "Em10StepCut.hh" +#ifndef RadiatorDescription_h +#define RadiatorDescription_h 1 -#include "G4Step.hh" -#include "G4UserLimits.hh" -#include "G4VParticleChange.hh" -#include "G4EnergyLossTables.hh" +#include "globals.hh" -Em10StepCut::Em10StepCut(const G4String& aName) - : G4VDiscreteProcess(aName),MaxChargedStep(DBL_MAX) +class G4LogicalVolume; +class G4Material; + +struct RadiatorDescription { - if (verboseLevel>0) { - G4cout << GetProcessName() << " is created "<< G4endl; - } -} + RadiatorDescription() + : fLogicalVolume(0), fFoilMaterial(0), fGasMaterial(0), + fFoilThickness(0.), fGasThickness(0.), fFoilNumber(0) {} -Em10StepCut::~Em10StepCut() -{ -} + G4LogicalVolume* fLogicalVolume; + G4Material* fFoilMaterial; + G4Material* fGasMaterial; + G4double fFoilThickness; + G4double fGasThickness; + G4int fFoilNumber; +}; -Em10StepCut::Em10StepCut(Em10StepCut& right) - :G4VDiscreteProcess(right) -{} - -void Em10StepCut::SetMaxStep(G4double step) -{ - MaxChargedStep = step ; -} +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/RunAction.hh b/examples/extended/electromagnetic/TestEm10/include/RunAction.hh new file mode 100644 index 0000000000..8b336ebf98 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/RunAction.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/include/RunAction.hh +/// \brief Definition of the RunAction class +// +// +// $Id: RunAction.hh 94932 2015-12-18 09:21:29Z gcosmo $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef RunAction_h +#define RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class RunMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class RunAction : public G4UserRunAction +{ + public: + RunAction(); + ~RunAction(); + + public: + virtual void BeginOfRunAction(const G4Run*); + virtual void EndOfRunAction(const G4Run*); + + void SetRndmFreq(G4int val) { fRndmFreq = val; } + G4int GetRndmFreq() { return fRndmFreq; } + private: + // methods + void BookHisto(); + + // data members + RunMessenger* fRunMessenger; + G4int fRndmFreq; +}; + +#endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/RunMessenger.hh similarity index 75% rename from examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh rename to examples/extended/electromagnetic/TestEm10/include/RunMessenger.hh index b99c35c728..d6ae333d31 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/RunMessenger.hh @@ -23,43 +23,47 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10EventActionMessenger.hh -/// \brief Definition of the Em10EventActionMessenger class +/// \file electromagnetic/TestEm10/include/RunMessenger.hh +/// \brief Definition of the RunMessenger class +// + +// +// $Id: RunMessenger.hh 94932 2015-12-18 09:21:29Z gcosmo $ // // -// $Id: Em10EventActionMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifndef Em10EventActionMessenger_h -#define Em10EventActionMessenger_h 1 +#ifndef RunMessenger_h +#define RunMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" - -class Em10EventAction; -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADoubleAndUnit; +#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class Em10EventActionMessenger: public G4UImessenger +class RunAction; +class G4UIdirectory; +class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class RunMessenger: public G4UImessenger { public: - Em10EventActionMessenger(Em10EventAction*); - ~Em10EventActionMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - + RunMessenger(RunAction* runAction); + ~RunMessenger(); + + virtual void SetNewValue(G4UIcommand* ,G4String ); + private: - Em10EventAction* eventAction; - G4UIcmdWithAnInteger* setVerboseCmd; - G4UIcmdWithAString* DrawCmd; - G4UIcmdWithAnInteger* PrintCmd; + RunAction* fRunAction; + G4UIdirectory* fRndmDir; + G4UIcmdWithAnInteger* fRndmSaveCmd; + G4UIcmdWithAString* fRndmReadCmd; }; #endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm10/include/SensitiveDetector.hh similarity index 72% rename from examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh rename to examples/extended/electromagnetic/TestEm10/include/SensitiveDetector.hh index bc464c5bb8..a7cc010123 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm10/include/SensitiveDetector.hh @@ -23,48 +23,44 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10CalorimeterSD.hh -/// \brief Definition of the Em10CalorimeterSD class +/// \file electromagnetic/TestEm10/include/SensitiveDetector.hh +/// \brief Definition of the SensitiveDetector class // // -// $Id: Em10CalorimeterSD.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: SensitiveDetector.hh 94932 2015-12-18 09:21:29Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifndef Em10CalorimeterSD_h -#define Em10CalorimeterSD_h 1 +#ifndef SensitiveDetector_h +#define SensitiveDetector_h 1 #include "G4VSensitiveDetector.hh" + #include "globals.hh" -class Em10DetectorConstruction; +class DetectorConstruction; class G4HCofThisEvent; class G4Step; -#include "Em10CalorHit.hh" + +class G4LogicalVolume; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class Em10CalorimeterSD : public G4VSensitiveDetector +class SensitiveDetector : public G4VSensitiveDetector { public: - - Em10CalorimeterSD(G4String, Em10DetectorConstruction* ); - ~Em10CalorimeterSD(); + SensitiveDetector(G4String); + ~SensitiveDetector(); - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step*,G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void PrintAll(); + virtual void Initialize(G4HCofThisEvent*); + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + virtual void EndOfEvent(G4HCofThisEvent*); private: - - Em10CalorHitsCollection* CalCollection; - Em10DetectorConstruction* Detector; - G4int* HitID; + G4double fEdep; }; #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/StackingAction.hh b/examples/extended/electromagnetic/TestEm10/include/StackingAction.hh new file mode 100644 index 0000000000..397ba4ffde --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/StackingAction.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm510/include/StackingAction.hh +/// \brief Definition of the StackingAction class +// +// $Id: StackingAction.hh 83921 2014-09-23 09:14:40Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StackingAction_h +#define StackingAction_h 1 + +#include "G4UserStackingAction.hh" +#include "globals.hh" + +class EventAction; +class StackingMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StackingAction : public G4UserStackingAction +{ + public: + StackingAction(); + ~StackingAction(); + + virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/StepMax.hh b/examples/extended/electromagnetic/TestEm10/include/StepMax.hh index 3e122af576..cf4fd94cbc 100644 --- a/examples/extended/electromagnetic/TestEm10/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm10/include/StepMax.hh @@ -23,13 +23,13 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/StepMax.hh +/// \file electromagnetic/TestEm8/include/StepMax.hh /// \brief Definition of the StepMax class // -// $Id: StepMax.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: StepMax.hh 94932 2015-12-18 09:21:29Z gcosmo $ // -// -/////////////////////////////////////////////////////////////////////////////////. +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #ifndef StepMax_h #define StepMax_h 1 @@ -39,50 +39,42 @@ #include "G4ParticleDefinition.hh" #include "G4Step.hh" -class Histo; -// class G4VPhysicalVolume; -// class StepMaxMessenger; +class StepMaxMessenger; -//////////////////////////////////////////////////////////////////////////////// -// -// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class StepMax : public G4VDiscreteProcess { - public: +public: - StepMax(const G4String& processName = "UserMaxStep"); - ~StepMax(); + StepMax(const G4String& processName = "UserMaxStep"); + ~StepMax(); - G4bool IsApplicable(const G4ParticleDefinition&); + void SetMaxStep(G4double); - void SetMaxStep(G4double); + inline G4double GetMaxStep() { return fMaxChargedStep; }; - G4double GetMaxStep() {return MaxChargedStep;}; + virtual G4bool IsApplicable(const G4ParticleDefinition&); - G4double PostStepGetPhysicalInteractionLength( const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition); + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); - G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); - G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*) - {return 0.;}; // it is not needed here ! + virtual G4double + GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*); - private: +private: - G4double MaxChargedStep; - G4double ProposedStep; - G4double thDensity; + G4double fMaxChargedStep; + G4double fProposedStep; - // StepMaxMessenger* pMess; - // Histo* histo; - G4VPhysicalVolume* checkVolume; - G4VPhysicalVolume* gasVolume; - G4bool first; + StepMaxMessenger* fMessenger; }; -//////////////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/StepMaxMessenger.hh new file mode 100644 index 0000000000..36436bc30b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/StepMaxMessenger.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm8/include/StepMaxMessenger.hh +/// \brief Definition of the StepMaxMessenger class +// +// $Id: StepMaxMessenger.hh 67268 2013-02-13 11:38:40Z ihrivnac $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StepMaxMessenger_h +#define StepMaxMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class StepMax; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StepMaxMessenger: public G4UImessenger +{ +public: + + StepMaxMessenger(StepMax*); + ~StepMaxMessenger(); + + virtual void SetNewValue(G4UIcommand*, G4String); + +private: + StepMax* fStepMax; + G4UIcmdWithADoubleAndUnit* fStepMaxCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh deleted file mode 100644 index d32ac628de..0000000000 --- a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh +++ /dev/null @@ -1,126 +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 electromagnetic/TestEm10/include/TRTMaterials.hh -/// \brief Definition of the TRTMaterials class -// -// -// $Id: TRTMaterials.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// - -#ifndef TRT_MATERIALS_HH -#define TRT_MATERIALS_HH - -//--------- Material definition --------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel, nComponents; - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); - a = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon", symbol="C", iz=6., a); - a = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen", symbol="H", iz=1., a); - a = 131.29*g/mole; - G4Element* elXe = new G4Element(name="Xenon", symbol="Xe", iz=54., a); - a = 19.00*g/mole; - G4Element* elF = new G4Element(name="Fluorine", symbol="F", iz=9., a); - - density = 1.205*mg/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2, - kStateGas,293.15*kelvin,1.*atmosphere); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - - density = 1.39*g/cm3; - G4Material* Kapton = new G4Material(name="Kapton", density, nel=3); - Kapton->AddElement(elO,2); - Kapton->AddElement(elC,5); - Kapton->AddElement(elH,4); - - a = 63.55*g/mole; - density = 8.96*g/cm3; - G4Material* Copper = new G4Material(name="Copper", z=29.,a, density); - - a = 26.98*g/mole; - density = 2.7*g/cm3; - G4Material* Al = new G4Material(name="Aluminum", z=13., a, density); - - a = 28.09*g/mole; - density = 2.33*g/cm3; - G4Material* Si = new G4Material(name="Silicon", z=14., a, density); - - density = 1.977*mg/cm3; - G4Material* CO2 = new G4Material(name="CO2", density, nel=2, - kStateGas,273.15*kelvin,1.*atmosphere); - CO2->AddElement(elC,1); - CO2->AddElement(elO,2); - - G4double TRT_Xe_density = 5.485*mg/cm3; - G4Material* TRT_Xe = new G4Material(name="TRT_Xe", TRT_Xe_density, nel=1, - kStateGas,293.15*kelvin,1.*atmosphere); - TRT_Xe->AddElement(elXe,1); - - G4double TRT_CO2_density = 1.842*mg/cm3; - G4Material* TRT_CO2 = new G4Material(name="TRT_CO2", TRT_CO2_density, nel=2, - kStateGas,293.15*kelvin,1.*atmosphere); - TRT_CO2->AddElement(elC,1); - TRT_CO2->AddElement(elO,2); - - G4double TRT_CF4_density = 3.9*mg/cm3; - G4Material* TRT_CF4 = new G4Material(name="TRT_CF4", TRT_CF4_density, nel=2, - kStateGas,293.15*kelvin,1.*atmosphere); - TRT_CF4->AddElement(elC,1); - TRT_CF4->AddElement(elF,4); - - G4double XeCO2CF4_density = 4.76*mg/cm3; - G4Material* XeCO2CF4 = new G4Material(name="XeCO2CF4", XeCO2CF4_density, - nComponents=3, - kStateGas,293.15*kelvin,1.*atmosphere); - XeCO2CF4->AddMaterial(TRT_Xe,0.807); - XeCO2CF4->AddMaterial(TRT_CO2,0.039); - XeCO2CF4->AddMaterial(TRT_CF4,0.154); - - density = 0.935*g/cm3; - G4Material* TRT_CH2 = new G4Material(name="TRT_CH2",density, nel=2); - TRT_CH2->AddElement(elC,1); - TRT_CH2->AddElement(elH,2); - - density = 0.059*g/cm3; - G4Material* Radiator = new G4Material(name="Radiator",density, nel=2); - Radiator->AddElement(elC,1); - Radiator->AddElement(elH,2); - - density = 0.145*g/cm3; - G4Material* CarbonFiber = new G4Material(name="CarbonFiber",density, nel=1); - CarbonFiber->AddElement(elC,1); - -#endif - diff --git a/examples/extended/electromagnetic/TestEm10/include/TransitionRadiationPhysics.hh b/examples/extended/electromagnetic/TestEm10/include/TransitionRadiationPhysics.hh new file mode 100644 index 0000000000..8ffcb75f78 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/include/TransitionRadiationPhysics.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/include/TransitionRadiationPhysics.hh +/// \brief Definition of the TransitionRadiationPhysics class +// +// $Id: TransitionRadiationPhysics.hh 66241 2012-12-13 18:34:42Z gunter $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TransitionRadiationPhysics_h +#define TransitionRadiationPhysics_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4VXTRenergyLoss; +class DetectorConstruction; + +class TransitionRadiationPhysics : public G4VPhysicsConstructor +{ +public: + TransitionRadiationPhysics(G4int verb, DetectorConstruction* ptr); + virtual ~TransitionRadiationPhysics(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + + inline void SetXTRModel(const G4String& name) { fXTRModel = name; }; + +private: + + DetectorConstruction* fDetector; + G4int fVerbose; + G4String fXTRModel; + + static G4ThreadLocal G4VXTRenergyLoss* fXTRProcess; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10XTRTransparentRegRadModel.hh b/examples/extended/electromagnetic/TestEm10/include/XTRTransparentRegRadModel.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm10/include/Em10XTRTransparentRegRadModel.hh rename to examples/extended/electromagnetic/TestEm10/include/XTRTransparentRegRadModel.hh index 85a17285f2..24ec87135d 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10XTRTransparentRegRadModel.hh +++ b/examples/extended/electromagnetic/TestEm10/include/XTRTransparentRegRadModel.hh @@ -23,10 +23,10 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: Em10XTRTransparentRegRadModel.hh 66587 2012-12-21 11:06:44Z ihrivnac $ +// $Id: XTRTransparentRegRadModel.hh 94932 2015-12-18 09:21:29Z gcosmo $ // -/// \file electromagnetic/TestEm10/include/Em10XTRTransparentRegRadModel.hh -/// \brief Definition of the Em10XTRTransparentRegRadModel class +/// \file electromagnetic/TestEm10/include/XTRTransparentRegRadModel.hh +/// \brief Definition of the XTRTransparentRegRadModel class // // /////////////////////////////////////////////////////////////////////////// @@ -45,19 +45,19 @@ // -#ifndef Em10XTRTransparentRegRadModel_h -#define Em10XTRTransparentRegRadModel_h 1 +#ifndef XTRTransparentRegRadModel_h +#define XTRTransparentRegRadModel_h 1 #include "G4VXTRenergyLoss.hh" -class Em10XTRTransparentRegRadModel : public G4VXTRenergyLoss +class XTRTransparentRegRadModel : public G4VXTRenergyLoss { public: - Em10XTRTransparentRegRadModel (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + XTRTransparentRegRadModel (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, G4double,G4double,G4int, const G4String & processName = "XTRTransparentRegRadModel"); - ~Em10XTRTransparentRegRadModel (); + ~XTRTransparentRegRadModel (); // reimplementation of base class function in analytical way diff --git a/examples/extended/electromagnetic/TestEm10/run11.mac b/examples/extended/electromagnetic/TestEm10/run11.mac deleted file mode 100644 index 55fac997c2..0000000000 --- a/examples/extended/electromagnetic/TestEm10/run11.mac +++ /dev/null @@ -1,148 +0,0 @@ -# -# Macro file 'run11.mac' for the initialization phase of "TestEm10.cc" -# -/control/verbose 2 -# -#control/saveHistory -# -/run/verbose 2 -# -#/run/initialize -# -# Parameters of MWPC detector: material and its thickness -# Xe55He15CH4, Xe10CH4, Xe20CH4, Xe5CH4, Xe20CO2, Kr20CO2 -# Kr7CH4, Ar7CH4, XeArCH4 -# -#/XTRdetector/setAbsMat Xe10CH4 -#/XTRdetector/setAbsThick 30.0 mm -#/XTRdetector/setWorldZ 4000.0 mm -# -# Parameters of Radiator (default mm) -# TRT_CH2, Radiator, CarbonFiber, Li, Be, Mylar, Kapton ?, CH2 -# Air, CO2, He, Ne, Kr, Ar, Xe, -# -#/XTRdetector/setRadMat Li -#/XTRdetector/setWorldMat He -#/XTRdetector/setRadThick 0.04 mm -#/XTRdetector/setGasGapThick 0.126 mm -#/XTRdetector/setFoilNum 300 -# -# Selection of XTR parametrisation model: 1-10 -# TRmodel/XTRdEdx: Foam 1/2, GamDistr 3/4, Irr 5/6, Plate 7/8, Reg 9/10, no model 0 -# -#/XTRdetector/setModel 0 -# -# Update geometry after changing its parametrs -# -#/XTRdetector/update -# window: Mylar 51 micron -# PLOT: energy deposit distribution in absorber (g4.11) -# -/plots/sethistName g4.p11 -/plots/setnbinEn 35 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.07 MeV -# -# -# Change and choice of experimental setups. Can be -# simpleALICE., -# -# -/XTRdetector/setup simpleALICE -# -# these commands do not change energy cuts??? -# -# Set XTR model (default: transpM). Name list consits: -# gammaR, gammaM, regR, regM, strawR, transpR, transpM -# -# R - XTR dE/dx models, M - XTR flux after radiator models -# -#/emphyslist/setXTRModel transpM -#/emphyslist/setXTRModel transpR -/emphyslist/setXTRModel gammaM -#/emphyslist/setXTRModel gammaR -#/emphyslist/setXTRModel strawR -#/emphyslist/setXTRModel regM -#/emphyslist/setXTRModel regR -# -#/emphyslist/eMinEnergy 100. -#/emphyslist/gMinEnergy 100. -# -#/run/initialize -# -#/run/particle/dumpCutValues -# -/run/particle/applyCuts -# -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 100.0 -/emphyslist/setPositronCut 100. -/emphyslist/setRadiatorCuts 1. -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 100.0 -/emphyslist/setElectronCut 100.0 -/emphyslist/setPositronCut 100. -/emphyslist/setDetectorCuts 1. -# -/run/initialize -# -#/XTRdetector/update -# -#Innactivate some processes: msc eIoni eBrem RegularXTRadiator -# hIoni -# -# (switch off dEdx and msc always together!) -# -/process/inactivate msc -/process/inactivate eIoni -/process/inactivate hIoni -# -#/process/inactivate eBrem -# -# Inactivate gamma processes -# -#/process/inactivate phot -#/process/inactivate compt -#/process/inactivate conv -# -#/process/inactivate RegularXTRadiator -# -#/process/inactivate GammaXTRadiator -# -#/process/eLoss/fluct false -# -#/process/verbose 1 -# -# -# Particle and its energy -# -/gun/particle e- -/gun/energy 2000.0 MeV -# -#/gun/particle proton -#/gun/energy 6000000.0 MeV -# -#/tracking/verbose 2 -# -/event/printModulo 1000 -/run/beamOn 5000 -# -#/run/beamOn 1 -#/process/inactivate eIoni -#/process/inactivate eBrem -# -# - - - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm10/salice.mac b/examples/extended/electromagnetic/TestEm10/salice.mac index 2d0e70f600..8d9696e941 100644 --- a/examples/extended/electromagnetic/TestEm10/salice.mac +++ b/examples/extended/electromagnetic/TestEm10/salice.mac @@ -9,10 +9,13 @@ # # PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 35 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.07 MeV +/analysis/setFileName salice +/analysis/h1/set 1 100 0.00 0.1 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 5 35 0.00 0.07 MeV # En (Edep with original limits) + # # # Change and choice of experimental setups. Can be @@ -42,22 +45,16 @@ # /run/particle/applyCuts # -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 100.0 -/emphyslist/setPositronCut 100. -/emphyslist/setRadiatorCuts 1. -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 100.0 -/emphyslist/setElectronCut 100.0 -/emphyslist/setPositronCut 100. -/emphyslist/setDetectorCuts 1. -# /run/initialize # +# set cuts +# +/run/setCut 100. +/run/setCutForRegion Radiator 1. +/run/setCutForRegion Absorber 1. +# +#/hits/verbose 1 +# #/XTRdetector/update # #Innactivate some processes: msc eIoni eBrem RegularXTRadiator @@ -94,7 +91,7 @@ #/tracking/verbose 2 # -/event/printModulo 1000 +/run/printProgress 1000 /run/beamOn 5000 # diff --git a/examples/extended/electromagnetic/TestEm10/src/DetectorALICE06.cc b/examples/extended/electromagnetic/TestEm10/src/DetectorALICE06.cc new file mode 100644 index 0000000000..78826bf054 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/DetectorALICE06.cc @@ -0,0 +1,247 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/DetectorALICE06.cc +/// \brief Implementation of the DetectorALICE06 class +// +// +// $Id: DetectorALICE06.cc 72517 2013-07-24 23:01:29Z gum $ +// +// + +#include "DetectorALICE06.hh" +#include "SensitiveDetector.hh" +#include "Materials.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UniformMagField.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4SDManager.hh" + +#include "G4Region.hh" + +#include "G4UnitsTable.hh" +#include "G4SystemOfUnits.hh" +#include "G4ios.hh" + +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorALICE06::DetectorALICE06() + : fRadiatorDescription(0) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorALICE06::~DetectorALICE06() +{ + // delete fRadiatorDescription; + // the description is deleted in detector construction +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorALICE06::Construct() +{ + // Geometry parameters + // + + G4cout << "DetectorALICE06 setup" << G4endl; + + G4double worldSizeZ = 600.*cm; + G4double worldSizeR = 22.*cm; + + // Radiator and detector parameters + + G4double radThickness = 0.020*mm; + G4double gasGap = 0.500*mm; + G4double foilGasRatio = radThickness/(radThickness+gasGap); + G4int foilNumber = 120; + + G4double absorberThickness = 37*mm; + G4double absorberRadius = 100.*mm; + + G4double electrodeThick = 100.0*micrometer; + G4double pipeLength = 160.0*cm; + G4double mylarThick = 20.0*micrometer; + G4double detGap = 0.01*mm; + + G4double startZ = 100.0*mm; + + // Materials + // + + // Change to create materials using NIST + G4Material* air = Materials::GetInstance()->GetMaterial("Air"); + G4Material* ch2 = Materials::GetInstance()->GetMaterial("CH2"); + G4Material* xe15CO2 = Materials::GetInstance()->GetMaterial("Xe15CO2"); + + G4double foilDensity = ch2->GetDensity(); + G4double gasDensity = air->GetDensity(); + G4double totDensity = foilDensity*foilGasRatio + + gasDensity*(1.0-foilGasRatio); + + G4double fractionFoil = foilDensity*foilGasRatio/totDensity; + G4double fractionGas = 1.0 - fractionFoil; + G4Material* radiatorMat = new G4Material("radiatorMat", totDensity, 2); + radiatorMat->AddMaterial(ch2, fractionFoil); + radiatorMat->AddMaterial(air, fractionGas); + + // Radiator description + fRadiatorDescription = new RadiatorDescription; + fRadiatorDescription->fFoilMaterial = ch2; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fRadiatorDescription->fGasMaterial = air; // CO2; // He; // + fRadiatorDescription->fFoilThickness = radThickness; + fRadiatorDescription->fGasThickness = gasGap; + fRadiatorDescription->fFoilNumber = foilNumber; + + G4Material* worldMaterial = air; // CO2; + G4Material* absorberMaterial = xe15CO2; + + // Volumes + // + + G4VSolid* solidWorld + = new G4Box("World", worldSizeR, worldSizeR, worldSizeZ/2.); + + G4LogicalVolume* logicWorld + = new G4LogicalVolume(solidWorld, worldMaterial, "World"); + + G4VPhysicalVolume* physicsWorld + = new G4PVPlacement(0, G4ThreeVector(), "World", logicWorld, 0, false, 0); + + // TR radiator envelope + + G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap; + G4double radZ = startZ + 0.5*radThick; + + G4VSolid* solidRadiator + = new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick); + + G4LogicalVolume* logicRadiator + = new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator"); + + new G4PVPlacement(0, G4ThreeVector(0, 0, radZ), + "Radiator", logicRadiator, physicsWorld, false, 0 ); + + fRadiatorDescription->fLogicalVolume = logicRadiator; + + // Create region for radiator + + G4Region* radRegion = new G4Region("XTRradiator"); + radRegion->AddRootLogicalVolume(logicRadiator); + + // Drift Electrode on both sides of Radiator + // (not placed) + + G4double zElectrode1 = radZ - radThick/2. - electrodeThick/2.; + G4double zElectrode2 = radZ + radThick/2. + electrodeThick/2.; + + G4cout << "zElectrode1 = " << zElectrode1/mm << " mm" <AddRootLogicalVolume(logicAbsorber); + + // Sensitive Detectors: Absorber + + SensitiveDetector* sd = new SensitiveDetector("AbsorberSD"); + G4SDManager::GetSDMpointer()->AddNewDetector(sd ); + logicAbsorber->SetSensitiveDetector(sd); + + // Print geometry parameters + + G4cout << "\n The WORLD is made of " + << worldSizeZ/mm << "mm of " << worldMaterial->GetName(); + G4cout << ", the transverse size (R) of the world is " + << worldSizeR/mm << " mm. " << G4endl; + G4cout << " The ABSORBER is made of " + << absorberThickness/mm << "mm of " << absorberMaterial->GetName(); + G4cout << ", the transverse size (R) is " + << absorberRadius/mm << " mm. " << G4endl; + G4cout << " Z position of the (middle of the) absorber " + << absorberZ/mm << " mm." << G4endl; + + G4cout << "radZ = " << radZ/mm << " mm" << G4endl; + G4cout << "startZ = " << startZ/mm<< " mm" << G4endl; + + G4cout << "fRadThick = " << radThick/mm << " mm"<GetMaterial("Air"); + G4Material* ch2 = Materials::GetInstance()->GetMaterial("CH2"); + G4Material* he = Materials::GetInstance()->GetMaterial("He"); + G4Material* si = Materials::GetInstance()->GetMaterial("Si"); + + G4double foilDensity = ch2->GetDensity(); + G4double gasDensity = air->GetDensity(); + G4double totDensity = foilDensity*foilGasRatio + + gasDensity*(1.0-foilGasRatio); + + G4double fractionFoil = foilDensity*foilGasRatio/totDensity; + G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; + G4Material* radiatorMat = new G4Material("radiatorMat", totDensity, 2); + radiatorMat->AddMaterial(ch2, fractionFoil); + radiatorMat->AddMaterial(air, fractionGas); + + // Radiator description + fRadiatorDescription = new RadiatorDescription; + fRadiatorDescription->fFoilMaterial = ch2; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fRadiatorDescription->fGasMaterial = air; // CO2; // He; // + fRadiatorDescription->fFoilThickness = radThickness; + fRadiatorDescription->fGasThickness = gasGap; + fRadiatorDescription->fFoilNumber = foilNumber; + + // pipe material is assumed to be He + small admixture of air + foilGasRatio = 0.99999; + foilDensity = 1.2928*mg/cm3; // Air + gasDensity = 0.178*mg/cm3; // He + totDensity = foilDensity*foilGasRatio + gasDensity*(1.0-foilGasRatio); + + fractionFoil = foilDensity*foilGasRatio/totDensity; + fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; + + G4Material* pipeMat = new G4Material("pipeMat", totDensity, 2); + pipeMat->AddMaterial(air, fractionFoil); + pipeMat->AddMaterial(he, fractionGas); + + + G4Material* worldMaterial = air; // CO2; + G4Material* absorberMaterial = si; + + // Volumes + // + + G4VSolid* solidWorld + = new G4Box("World", worldSizeR, worldSizeR, worldSizeZ/2.); + + G4LogicalVolume* logicWorld + = new G4LogicalVolume(solidWorld, worldMaterial, "World"); + + G4VPhysicalVolume* physicsWorld + = new G4PVPlacement(0, G4ThreeVector(), "World", logicWorld, 0, false, 0); + + // TR radiator envelope + + G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap; + G4double radZ = startZ + 0.5*radThick; + + G4VSolid* solidRadiator + = new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick); + + G4LogicalVolume* logicRadiator + = new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator"); + + new G4PVPlacement(0, G4ThreeVector(0, 0, radZ), + "Radiator", logicRadiator, physicsWorld, false, 0 ); + + fRadiatorDescription->fLogicalVolume = logicRadiator; + + // create region for window inside windowR for + + G4Region* radRegion = new G4Region("XTRradiator"); + radRegion->AddRootLogicalVolume(logicRadiator); + + // Drift Electrode on both sides of Radiator: + // (not placed) + + G4double zElectrode1 = radZ - radThick/2. - electrodeThick/2.; + G4double zElectrode2 = radZ + radThick/2. + electrodeThick/2.; + + G4cout << "zElectrode1 = " << zElectrode1/mm << " mm" << G4endl; + G4cout << "zElectrode2 = " << zElectrode2/mm << " mm" << G4endl; + G4cout << "electrodeThick = " << electrodeThick/mm << " mm" << G4endl << G4endl; + + // Helium Pipe + // (not placed) + + G4double pipeDist = 1.*cm; //Distance between pipe and radiator / absorber + G4double zPipe = zElectrode2 + electrodeThick/2. + pipeLength/2. + pipeDist/2.; + + G4cout << "zPipe = " << zPipe/mm << " mm" << G4endl; + G4cout << "pipeLength = " << pipeLength/mm << " mm" << G4endl << G4endl; + + // Mylar Foil on both sides of helium pipe + // (not placed) + + G4double zMylar1 = zPipe - pipeLength/2. - mylarThick/2 - 0.01*mm; + G4double zMylar2 = zPipe + pipeLength/2. + mylarThick/2 + 0.01*mm; + + G4cout << "zMylar1 = " << zMylar1/mm << " mm" << G4endl; + G4cout << "zMylar2 = " << zMylar2/mm << " mm" << G4endl; + G4cout << "fMylarThick = " << mylarThick/mm << " mm" << G4endl << G4endl; + + // Mylar Foil on Chamber + // (not placed) + + G4double zMylar = zElectrode2 + electrodeThick/2. + mylarThick/2. + 1.0*mm; + zMylar += ( pipeLength + pipeDist ); + + G4cout << "zMylar = " << zMylar/mm <<" mm" <AddRootLogicalVolume(logicAbsorber); + + // Sensitive Detectors: Absorber + + SensitiveDetector* sd = new SensitiveDetector("AbsorberSD"); + G4SDManager::GetSDMpointer()->AddNewDetector(sd ); + logicAbsorber->SetSensitiveDetector(sd); + + // Print geometry parameters + + G4cout << "\n The WORLD is made of " + << worldSizeZ/mm << "mm of " << worldMaterial->GetName(); + G4cout << ", the transverse size (R) of the world is " + << worldSizeR/mm << " mm. " << G4endl; + G4cout << " The ABSORBER is made of " + << absorberThickness/mm << "mm of " << absorberMaterial->GetName(); + G4cout << ", the transverse size (R) is " + << absorberRadius/mm << " mm. " << G4endl; + G4cout << " Z position of the (middle of the) absorber " + << absorberZ/mm << " mm." << G4endl; + + G4cout << "radZ = " << radZ/mm << " mm" << G4endl; + G4cout << "startZ = " << startZ/mm<< " mm" << G4endl; + + G4cout << "fRadThick = " << radThick/mm << " mm"<GetMaterial("Air"); + G4Material* ch2 = Materials::GetInstance()->GetMaterial("CH2"); + G4Material* co2 = Materials::GetInstance()->GetMaterial("CO2"); + G4Material* xe55he15ch4 = Materials::GetInstance()->GetMaterial("Xe55He15CH4"); + + G4double foilDensity = ch2->GetDensity(); + G4double gasDensity = co2->GetDensity(); + G4double totDensity = foilDensity*foilGasRatio + + gasDensity*(1.0-foilGasRatio); + + G4double fractionFoil = foilDensity*foilGasRatio/totDensity; + G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; + G4Material* radiatorMat = new G4Material("radiatorMat", totDensity, 2); + radiatorMat->AddMaterial(ch2, fractionFoil); + radiatorMat->AddMaterial(co2, fractionGas); + + // Radiator description + fRadiatorDescription = new RadiatorDescription; + fRadiatorDescription->fFoilMaterial = ch2; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fRadiatorDescription->fGasMaterial = co2; // CO2; // He; // + fRadiatorDescription->fFoilThickness = radThickness; + fRadiatorDescription->fGasThickness = gasGap; + fRadiatorDescription->fFoilNumber = foilNumber; + + G4Material* worldMaterial = air; // CO2; + G4Material* absorberMaterial = xe55he15ch4; + + // Volumes + // + + G4VSolid* solidWorld + = new G4Box("World", worldSizeR, worldSizeR, worldSizeZ/2.); + + G4LogicalVolume* logicWorld + = new G4LogicalVolume(solidWorld, worldMaterial, "World"); + + G4VPhysicalVolume* physicsWorld + = new G4PVPlacement(0, G4ThreeVector(), "World", logicWorld, 0, false, 0); + + // TR radiator envelope + + G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap; + G4double radZ = startZ + 0.5*radThick; + + G4VSolid* solidRadiator + = new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick); + + G4LogicalVolume* logicRadiator + = new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator"); + + new G4PVPlacement(0, G4ThreeVector(0, 0, radZ), + "Radiator", logicRadiator, physicsWorld, false, 0 ); + + fRadiatorDescription->fLogicalVolume = logicRadiator; + + // create region for radiator + + G4Region* radRegion = new G4Region("XTRradiator"); + radRegion->AddRootLogicalVolume(logicRadiator); + + G4double windowZ = startZ + radThick + windowThick/2. + 15.0*mm; + + G4double gapZ = windowZ + windowThick/2. + gapThick/2. + 0.01*mm; + + G4double electrodeZ = gapZ + gapThick/2. + electrodeThick/2. + 0.01*mm; + + // Absorber + + G4double absorberZ = electrodeZ + electrodeThick/2. + + + absorberThickness/2. + 0.01*mm; + + G4VSolid* solidAbsorber + = new G4Box("Absorber", absorberRadius, absorberRadius, absorberThickness/2.); + + G4LogicalVolume* logicAbsorber + = new G4LogicalVolume(solidAbsorber, absorberMaterial, "Absorber"); + + new G4PVPlacement(0, G4ThreeVector(0., 0., absorberZ), + "Absorber", logicAbsorber, physicsWorld, false, 0); + + G4Region* regGasDet = new G4Region("XTRdEdxDetector"); + regGasDet->AddRootLogicalVolume(logicAbsorber); + + // Sensitive Detectors: Absorber + + SensitiveDetector* sd = new SensitiveDetector("AbsorberSD"); + G4SDManager::GetSDMpointer()->AddNewDetector(sd ); + logicAbsorber->SetSensitiveDetector(sd); + + // Print geometry parameters + + G4cout << "\n The WORLD is made of " + << worldSizeZ/mm << "mm of " << worldMaterial->GetName(); + G4cout << ", the transverse size (R) of the world is " + << worldSizeR/mm << " mm. " << G4endl; + G4cout << " The ABSORBER is made of " + << absorberThickness/mm << "mm of " << absorberMaterial->GetName(); + G4cout << ", the transverse size (R) is " + << absorberRadius/mm << " mm. " << G4endl; + G4cout << " Z position of the (middle of the) absorber " + << absorberZ/mm << " mm." << G4endl; + + G4cout << "radZ = " << radZ/mm << " mm" << G4endl; + G4cout << "startZ = " << startZ/mm<< " mm" << G4endl; + + G4cout << "fRadThick = " << radThick/mm << " mm"<GetVolume("Absorber"); + + if ( ! lv ) { + G4cerr << "Absorber logical volume is not defined." << G4endl; + return 0; + } + + return lv->GetMaterial(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm10/src/DetectorHarris73.cc b/examples/extended/electromagnetic/TestEm10/src/DetectorHarris73.cc new file mode 100644 index 0000000000..fe78cc29d4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/DetectorHarris73.cc @@ -0,0 +1,216 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/DetectorHarris73.cc +/// \brief Implementation of the DetectorHarris73 class +// +// +// $Id: DetectorHarris73.cc 72517 2013-07-24 23:01:29Z gum $ +// +// + +#include "DetectorHarris73.hh" +#include "SensitiveDetector.hh" +#include "Materials.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UniformMagField.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4SDManager.hh" + +#include "G4Region.hh" + +#include "G4UnitsTable.hh" +#include "G4SystemOfUnits.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorHarris73::DetectorHarris73() + : fRadiatorDescription(0) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorHarris73::~DetectorHarris73() +{ + // delete fRadiatorDescription; + // the description is deleted in detector construction +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorHarris73::Construct() +{ + // Geometry parameters + // + + G4cout << "DetectorHarris73 setup" << G4endl; + + G4double worldSizeZ = 400.*cm; + G4double worldSizeR = 20.*cm; + + // Radiator and detector parameters + + G4double radThickness = 0.0127*mm; + G4double gasGap = 0.762*mm; + G4double foilGasRatio = radThickness/(radThickness+gasGap); + G4double foilNumber = 100; + + G4double absorberThickness = 15.0*mm; + G4double absorberRadius = 100.*mm; + + G4double windowThick = 51.0*micrometer; + G4double electrodeThick = 10.0*micrometer; + G4double gapThick = 10.0*cm; + G4double detGap = 0.01*mm; + + G4double startZ = 100.0*mm; + + // Materials + // + + // Change to create materials using NIST + G4Material* air = Materials::GetInstance()->GetMaterial("Air"); + G4Material* mylar = Materials::GetInstance()->GetMaterial("Mylar"); + G4Material* kr7ch4 = Materials::GetInstance()->GetMaterial("Kr7CH4"); + + // Preparation of mixed radiator material + + G4double foilDensity = mylar->GetDensity(); + G4double gasDensity = air->GetDensity(); + G4double totDensity = foilDensity*foilGasRatio + + gasDensity*(1.0-foilGasRatio); + + G4double fractionFoil = foilDensity*foilGasRatio/totDensity; + G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; + G4Material* radiatorMat = new G4Material("radiatorMat", totDensity, 2); + radiatorMat->AddMaterial(mylar, fractionFoil); + radiatorMat->AddMaterial(air, fractionGas); + + // Radiator description + fRadiatorDescription = new RadiatorDescription; + fRadiatorDescription->fFoilMaterial = mylar; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fRadiatorDescription->fGasMaterial = air; // CO2; // He; // + fRadiatorDescription->fFoilThickness = radThickness; + fRadiatorDescription->fGasThickness = gasGap; + fRadiatorDescription->fFoilNumber = foilNumber; + + G4Material* worldMaterial = air; // CO2; + G4Material* absorberMaterial = kr7ch4; + + // Volumes + // + + G4VSolid* solidWorld + = new G4Box("World", worldSizeR, worldSizeR, worldSizeZ/2.); + + G4LogicalVolume* logicWorld + = new G4LogicalVolume(solidWorld, worldMaterial, "World"); + + G4VPhysicalVolume* physicsWorld + = new G4PVPlacement(0, G4ThreeVector(), "World", logicWorld, 0, false, 0); + + // TR radiator envelope + + G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap; + G4double radZ = startZ + 0.5*radThick; + + G4VSolid* solidRadiator + = new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick); + + G4LogicalVolume* logicRadiator + = new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator"); + + fRadiatorDescription->fLogicalVolume = logicRadiator; + + new G4PVPlacement(0, G4ThreeVector(0, 0, radZ), + "Radiator", logicRadiator, physicsWorld, false, 0 ); + + // create region for radiator + + G4Region* radRegion = new G4Region("XTRradiator"); + radRegion->AddRootLogicalVolume(logicRadiator); + + G4double windowZ = startZ + radThick + windowThick/2. + 15.0*mm; + + G4double gapZ = windowZ + windowThick/2. + gapThick/2. + 0.01*mm; + + G4double electrodeZ = gapZ + gapThick/2. + electrodeThick/2. + 0.01*mm; + + // Absorber + + G4double absorberZ = electrodeZ + electrodeThick/2. + + absorberThickness/2. + 0.01*mm; + + G4VSolid* solidAbsorber + = new G4Box("Absorber", absorberRadius, absorberRadius, absorberThickness/2.); + + G4LogicalVolume* logicAbsorber + = new G4LogicalVolume(solidAbsorber, absorberMaterial, "Absorber"); + + new G4PVPlacement(0, G4ThreeVector(0., 0., absorberZ), + "Absorber", logicAbsorber, physicsWorld, false, 0); + + G4Region* regGasDet = new G4Region("XTRdEdxDetector"); + regGasDet->AddRootLogicalVolume(logicAbsorber); + + // Sensitive Detectors: Absorber + + SensitiveDetector* sd = new SensitiveDetector("AbsorberSD"); + G4SDManager::GetSDMpointer()->AddNewDetector(sd ); + logicAbsorber->SetSensitiveDetector(sd); + + // Print geometry parameters + + G4cout << "\n The WORLD is made of " + << worldSizeZ/mm << "mm of " << worldMaterial->GetName(); + G4cout << ", the transverse size (R) of the world is " + << worldSizeR/mm << " mm. " << G4endl; + G4cout << " The ABSORBER is made of " + << absorberThickness/mm << "mm of " << absorberMaterial->GetName(); + G4cout << ", the transverse size (R) is " + << absorberRadius/mm << " mm. " << G4endl; + G4cout << " Z position of the (middle of the) absorber " + << absorberZ/mm << " mm." << G4endl; + + G4cout << "radZ = " << radZ/mm << " mm" << G4endl; + G4cout << "startZ = " << startZ/mm<< " mm" << G4endl; + + G4cout << "fRadThick = " << radThick/mm << " mm"<SetGuidance(" detector control."); + + fDetectorSetUpCmd = new G4UIcmdWithAString("/XTRdetector/setup",this); + fDetectorSetUpCmd->SetGuidance("Select setup for comparison with experiment"); + fDetectorSetUpCmd->SetParameterName("choice", true); + fDetectorSetUpCmd->SetDefaultValue("simpleALICE"); + fDetectorSetUpCmd->SetCandidates("simpleALICE alice06 bari05 harris73 watase86 barr90"); + fDetectorSetUpCmd->AvailableForStates(G4State_PreInit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::~DetectorMessenger() +{ + delete fDetectorSetUpCmd; + delete fDirectory; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if ( command == fDetectorSetUpCmd ) { + fDetector->SetDetectorSetUp(newValue); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/DetectorSimpleALICE.cc b/examples/extended/electromagnetic/TestEm10/src/DetectorSimpleALICE.cc new file mode 100644 index 0000000000..f8c560d0f6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/DetectorSimpleALICE.cc @@ -0,0 +1,210 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/DetectorSimpleALICE.cc +/// \brief Implementation of the DetectorSimpleALICE class +// +// +// $Id: DetectorSimpleALICE.cc 72517 2013-07-24 23:01:29Z gum $ +// +// + +#include "DetectorSimpleALICE.hh" +#include "SensitiveDetector.hh" +#include "Materials.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UniformMagField.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4SDManager.hh" + +#include "G4Region.hh" + +#include "G4UnitsTable.hh" +#include "G4SystemOfUnits.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorSimpleALICE::DetectorSimpleALICE() + : fRadiatorDescription(0) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorSimpleALICE::~DetectorSimpleALICE() +{ + // delete fRadiatorDescription; + // the description is deleted in detector construction +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorSimpleALICE::Construct() +{ + // Geometry parameters + // + + G4cout << "DetectorSimpleALICE setup" << G4endl; + + G4double worldSizeZ = 400.*cm; + G4double worldSizeR = 20.*cm; + + // Radiator and detector parameters + + G4double radThickness = 0.020*mm; + G4double gasGap = 0.250*mm; + G4double foilGasRatio = radThickness/(radThickness+gasGap); + G4int foilNumber = 220; + + G4double absorberThickness = 38.3*mm; + G4double absorberRadius = 100.*mm; + + G4double windowThick = 51.0*micrometer; + G4double electrodeThick = 10.0*micrometer; + G4double gapThick = 10.0*cm; + G4double detGap = 0.01*mm; + + G4double startZ = 100.0*mm; + + // Materials + // + + // Change to create materials using NIST + G4Material* air = Materials::GetInstance()->GetMaterial("Air"); + G4Material* mylar = Materials::GetInstance()->GetMaterial("Mylar"); + G4Material* xe15CO2 = Materials::GetInstance()->GetMaterial("Xe15CO2"); + + G4double foilDensity = mylar->GetDensity(); + G4double gasDensity = air->GetDensity(); + G4double totDensity = foilDensity*foilGasRatio + + gasDensity*(1.0-foilGasRatio); + + G4double fractionFoil = foilDensity*foilGasRatio/totDensity; + G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; + + G4Material* radiatorMat = new G4Material("radiatorMat", totDensity, 2); + radiatorMat->AddMaterial(mylar, fractionFoil); + radiatorMat->AddMaterial(air, fractionGas); + + // Radiator description + fRadiatorDescription = new RadiatorDescription; + fRadiatorDescription->fFoilMaterial = mylar; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fRadiatorDescription->fGasMaterial = air; // CO2; // He; // + fRadiatorDescription->fFoilThickness = radThickness; + fRadiatorDescription->fGasThickness = gasGap; + fRadiatorDescription->fFoilNumber = foilNumber; + + G4Material* worldMaterial = air; // CO2; + G4Material* absorberMaterial = xe15CO2; + + // Volumes + // + + G4VSolid* solidWorld + = new G4Box("World", worldSizeR, worldSizeR, worldSizeZ/2.); + + G4LogicalVolume* logicWorld + = new G4LogicalVolume(solidWorld, worldMaterial, "World"); + + G4VPhysicalVolume* physicsWorld + = new G4PVPlacement(0, G4ThreeVector(), "World", logicWorld, 0, false, 0); + + // TR radiator envelope + + G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap; + G4double radZ = startZ + 0.5*radThick; + + G4VSolid* solidRadiator + = new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick); + + G4LogicalVolume* logicRadiator + = new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator"); + + new G4PVPlacement(0, G4ThreeVector(0, 0, radZ), + "Radiator", logicRadiator, physicsWorld, false, 0 ); + + fRadiatorDescription->fLogicalVolume = logicRadiator; + + // create region for window inside windowR for + + G4Region* radRegion = new G4Region("XTRradiator"); + radRegion->AddRootLogicalVolume(logicRadiator); + + // Absorber + + G4VSolid* solidAbsorber + = new G4Box("Absorber", absorberRadius, absorberRadius, absorberThickness/2.); + + G4LogicalVolume* logicAbsorber + = new G4LogicalVolume(solidAbsorber, absorberMaterial, "Absorber"); + + G4double windowZ = startZ + radThick + windowThick/2. + 15.0*mm; + G4double gapZ = windowZ + windowThick/2. + gapThick/2. + 0.01*mm; + G4double electrodeZ = gapZ + gapThick/2. + electrodeThick/2. + 0.01*mm; + G4double absorberZ = electrodeZ + electrodeThick/2. + absorberThickness/2. + 0.01*mm; + + new G4PVPlacement(0, G4ThreeVector(0., 0., absorberZ), + "Absorber", logicAbsorber, physicsWorld, false, 0); + + G4Region* regGasDet = new G4Region("XTRdEdxDetector"); + regGasDet->AddRootLogicalVolume(logicAbsorber); + + // Sensitive Detectors: Absorber + + SensitiveDetector* sd = new SensitiveDetector("AbsorberSD"); + G4SDManager::GetSDMpointer()->AddNewDetector(sd ); + logicAbsorber->SetSensitiveDetector(sd); + + // Print geometry parameters + + G4cout << "\n The WORLD is made of " + << worldSizeZ/mm << "mm of " << worldMaterial->GetName(); + G4cout << ", the transverse size (R) of the world is " + << worldSizeR/mm << " mm. " << G4endl; + G4cout << " The ABSORBER is made of " + << absorberThickness/mm << "mm of " << absorberMaterial->GetName(); + G4cout << ", the transverse size (R) is " + << absorberRadius/mm << " mm. " << G4endl; + G4cout << " Z position of the (middle of the) absorber " + << absorberZ/mm << " mm." << G4endl; + + G4cout << "radZ = " << radZ/mm << " mm" << G4endl; + G4cout << "startZ = " << startZ/mm<< " mm" << G4endl; + + G4cout << "fRadThick = " << radThick/mm << " mm"<GetMaterial("Li"); + G4Material* he = Materials::GetInstance()->GetMaterial("He"); + G4Material* xe10CH4 = Materials::GetInstance()->GetMaterial("Xe10CH4"); + + G4double foilDensity = li->GetDensity(); + G4double gasDensity = he->GetDensity(); + G4double totDensity = foilDensity*foilGasRatio + + gasDensity*(1.0-foilGasRatio); + + G4double fractionFoil = foilDensity*foilGasRatio/totDensity; + G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; + G4Material* radiatorMat = new G4Material("radiatorMat", totDensity, 2); + radiatorMat->AddMaterial(li, fractionFoil); + radiatorMat->AddMaterial(he, fractionGas); + + // Radiator description + fRadiatorDescription = new RadiatorDescription; + fRadiatorDescription->fFoilMaterial = li; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fRadiatorDescription->fGasMaterial = he; // CO2; // He; // + fRadiatorDescription->fFoilThickness = radThickness; + fRadiatorDescription->fGasThickness = gasGap; + fRadiatorDescription->fFoilNumber = foilNumber; + + G4Material* worldMaterial = he; // CO2; + G4Material* absorberMaterial = xe10CH4; + + // Volumes + // + + G4VSolid* solidWorld + = new G4Box("World", worldSizeR, worldSizeR, worldSizeZ/2.); + + G4LogicalVolume* logicWorld + = new G4LogicalVolume(solidWorld, worldMaterial, "World"); + + G4VPhysicalVolume* physicsWorld + = new G4PVPlacement(0, G4ThreeVector(), "World", logicWorld, 0, false, 0); + + // TR radiator envelope + + G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap; + G4double radZ = startZ + 0.5*radThick; + + G4VSolid* solidRadiator + = new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick); + + G4LogicalVolume* logicRadiator + = new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator"); + + new G4PVPlacement(0, G4ThreeVector(0, 0, radZ), + "Radiator", logicRadiator, physicsWorld, false, 0 ); + + fRadiatorDescription->fLogicalVolume = logicRadiator; + + // create region for radiator + + G4Region* radRegion = new G4Region("XTRradiator"); + radRegion->AddRootLogicalVolume(logicRadiator); + + G4double windowZ = startZ + radThick + windowThick/2. + 15.0*mm; + + G4double gapZ = windowZ + windowThick/2. + gapThick/2. + 0.01*mm; + + G4double electrodeZ = gapZ + gapThick/2. + electrodeThick/2. + 0.01*mm; + + // Absorber + + G4double absorberZ = electrodeZ + electrodeThick/2. + + absorberThickness/2. + 0.01*mm; + + G4VSolid* solidAbsorber + = new G4Box("Absorber", absorberRadius, absorberRadius, absorberThickness/2.); + + G4LogicalVolume* logicAbsorber + = new G4LogicalVolume(solidAbsorber, absorberMaterial, "Absorber"); + + new G4PVPlacement(0, G4ThreeVector(0., 0., absorberZ), + "Absorber", logicAbsorber, physicsWorld, false, 0); + + G4Region* regGasDet = new G4Region("XTRdEdxDetector"); + regGasDet->AddRootLogicalVolume(logicAbsorber); + + // Sensitive Detectors: Absorber + + SensitiveDetector* sd = new SensitiveDetector("AbsorberSD"); + G4SDManager::GetSDMpointer()->AddNewDetector(sd ); + logicAbsorber->SetSensitiveDetector(sd); + + // Print geometry parameters + + G4cout << "\n The WORLD is made of " + << worldSizeZ/mm << "mm of " << worldMaterial->GetName(); + G4cout << ", the transverse size (R) of the world is " + << worldSizeR/mm << " mm. " << G4endl; + G4cout << " The ABSORBER is made of " + << absorberThickness/mm << "mm of " << absorberMaterial->GetName(); + G4cout << ", the transverse size (R) is " + << absorberRadius/mm << " mm. " << G4endl; + G4cout << " Z position of the (middle of the) absorber " + << absorberZ/mm << " mm." << G4endl; + + G4cout << "radZ = " << radZ/mm << " mm" << G4endl; + G4cout << "startZ = " << startZ/mm<< " mm" << G4endl; + + G4cout << "fRadThick = " << radThick/mm << " mm"<OpenGeometry(); - G4PhysicalVolumeStore::GetInstance()->Clean(); - G4LogicalVolumeStore::GetInstance()->Clean(); - G4SolidStore::GetInstance()->Clean(); - - if( fSetUp == "simpleALICE" ) - { - return SimpleSetUpALICE(); - } - else if( fSetUp == "alice06" ) - { - return SetUpALICE06(); - } - else if( fSetUp == "bari05" ) - { - return SetUpBari05(); - } - else if( fSetUp == "harris73" ) - { - return SetUpHarris73(); - } - else if( fSetUp == "watase86" ) - { - return SetUpWatase86(); - } - else if( fSetUp == "barr90" ) - { - return SetUpBarr90(); - } - else - { - G4cout << - "Experimental setup is unsupported. Check /XTRdetector/setup " <GetMaterial("Mylar"); - G4Material* Air = fMat->GetMaterial("Air"); - G4Material* Al = fMat->GetMaterial("Al"); - - G4double foilDensity = 1.39*g/cm3; - // Mylar // 0.91*g/cm3; // CH2 0.534*g/cm3; //Li - G4double gasDensity = 1.2928*mg/cm3; - // Air // 1.977*mg/cm3; // CO2 0.178*mg/cm3; //He - G4double totDensity = foilDensity*foilGasRatio + - gasDensity*(1.0-foilGasRatio); - - G4double fractionFoil = foilDensity*foilGasRatio/totDensity; - G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; - - G4Material* radiatorMat = new G4Material("radiatorMat" , totDensity, - 2); - radiatorMat->AddMaterial( Mylar, fractionFoil ); - radiatorMat->AddMaterial( Air, fractionGas ); - - // default materials of the detector and TR radiator - - fRadiatorMat = radiatorMat; - fFoilMat = Mylar; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; - fGasMat = Air; // CO2; // He; // - - fWindowMat = Mylar; - fElectrodeMat = Al; - - fAbsorberMaterial = fMat->GetMaterial("Xe15CO2"); - - fGapMat = fAbsorberMaterial; - - fWorldMaterial = Air; // CO2; - - fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.); - - fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World"); - - fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World", - fLogicWorld, 0, false, 0); - - // TR radiator envelope - - fRadThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap; - - fRadZ = fStartZ + 0.5*fRadThick; - - fSolidRadiator = new G4Box("Radiator",1.1*fAbsorberRadius , - 1.1*fAbsorberRadius, 0.5*fRadThick ); - - fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat, - "Radiator"); - - fPhysicsRadiator = new G4PVPlacement(0, - G4ThreeVector(0,0,fRadZ), - "Radiator", fLogicRadiator, - fPhysicsWorld, false, 0 ); - - // create region for window inside windowR for - - if( fRadRegion != 0 ) delete fRadRegion; - if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator"); - fRadRegion->AddRootLogicalVolume(fLogicRadiator); - - fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm; - - // G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001, - // fAbsorberRadius+0.001, - // fWindowThick/2.+0.001 ); - - // G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR, - // fWorldMaterial, "WindowR"); - - // G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,fWindowZ), - // "WindowR",logicWindowR,fPhysicsWorld,false,0); - // window - - // G4Box* solidWindow = new G4Box("Window",fAbsorberRadius, - // fAbsorberRadius, fWindowThick/2.); - - // G4LogicalVolume* logicWindow = new G4LogicalVolume(solidWindow, - // fWindowMat, "Window"); - - // G4VPhysicalVolume* physiWindow = - // new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), - // "Window", logicWindow, physiWindowR, false, 0); - - fGapZ = fWindowZ + fWindowThick/2. + fGapThick/2. + 0.01*mm; - - fElectrodeZ = fGapZ + fGapThick/2. + fElectrodeThick/2. + 0.01*mm; - - // Absorber - - fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + - fAbsorberThickness/2. + 0.01*mm; - - fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius, - fAbsorberRadius, fAbsorberThickness/2.); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial, - "Absorber"); - - fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ), - "Absorber", fLogicAbsorber, - fPhysicsWorld, false, 0); - - if( fRegGasDet != 0 ) delete fRegGasDet; - if( fRegGasDet == 0 ) fRegGasDet = new G4Region("XTRdEdxDetector"); - fRegGasDet->AddRootLogicalVolume(fLogicAbsorber); - - // Sensitive Detectors: Absorber - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!fCalorimeterSD) - { - fCalorimeterSD = new Em10CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( fCalorimeterSD ); - } - if (fLogicAbsorber) fLogicAbsorber->SetSensitiveDetector(fCalorimeterSD); - - PrintGeometryParameters(); - - return fPhysicsWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Setup for ALICE XTR test beam (~2004). With He beam-pipe -// Runs by : TestEm10 alice06.mac - -G4VPhysicalVolume* Em10DetectorConstruction::SetUpALICE06() -{ - fWorldSizeZ = 600.*cm; - fWorldSizeR = 22.*cm; - - // Radiator and detector parameters - - //fRadThickness = 0.01*mm; // Gamma XTR (malz: 0.01) - //fGasGap = 0.19*mm; // Gamma XTR (malz: 0.09) - //fFoilNumber = 240; // Gamma XTR (malz: 480) - - fRadThickness = 0.020*mm; // Reg1 - fGasGap = 0.500*mm; // Reg1 - fFoilNumber = 120; // Reg1 - - //fRadThickness = 0.013*mm; // Anton - //fGasGap = 0.060*mm; // Anton - //fFoilNumber = 550; // Anton - - // fRadThickness = 0.020*mm; // Reg2 - // fGasGap = 0.250*mm; // Reg2 - // fFoilNumber = 220; // Reg2 - - foilGasRatio = fRadThickness/(fRadThickness+fGasGap); - - fAbsorberThickness = 37.*mm; // 38.3*mm; - - fAbsorberRadius = 100.*mm; - fAbsorberZ = 136.*cm; - - fPipeLength = 160.0*cm; - fMylarThick = 20.0*micrometer; - - fWindowThick = 51.0*micrometer; - fElectrodeThick = 100.0*micrometer; - fGapThick = 10.0*cm; - - fDetThickness = 40.0*mm; - fDetLength = 200.0*cm; - fDetGap = 0.01*mm; - - fStartR = 40*cm; - fStartZ = 100.0*mm; - - fModuleNumber = 1; - - // Preparation of mixed radiator material - - G4Material* Mylar = fMat->GetMaterial("Mylar"); - G4Material* Air = fMat->GetMaterial("Air"); - G4Material* Al = fMat->GetMaterial("Al"); - G4Material* CH2 = fMat->GetMaterial("CH2"); - G4Material* He = fMat->GetMaterial("He"); - - G4double foilDensity = CH2->GetDensity(); - G4double gasDensity = Air->GetDensity(); - G4double totDensity = foilDensity*foilGasRatio + - gasDensity*(1.0-foilGasRatio); - - G4double fractionFoil = foilDensity*foilGasRatio/totDensity; - G4double fractionGas = 1.0 - fractionFoil; -// gasDensity*(1.0-foilGasRatio)/totDensity ; - - G4Material* radiatorMat = new G4Material("radiatorMat" , totDensity, - 2); - radiatorMat->AddMaterial( CH2, fractionFoil ); - radiatorMat->AddMaterial( Air, fractionGas ); - - // default materials of the detector and TR radiator - - fRadiatorMat = radiatorMat; - fFoilMat = CH2; // Kapton; // Mylar ; // Li ; // CH2 ; - fGasMat = Air; // CO2; // He; // - - fWindowMat = Mylar; - fElectrodeMat = Al; - - fAbsorberMaterial = fMat->GetMaterial("Xe15CO2"); - - // pipe material is assumed to be He + small admixture of air - /* - foilGasRatio = 0.000001; - foilDensity = Air->GetDensity(); - gasDensity = He->GetDensity(); - totDensity = foilDensity*foilGasRatio + gasDensity*( 1.0 - foilGasRatio ); - - fractionFoil = foilDensity*foilGasRatio/totDensity; - fractionGas = 1.0 - fractionFoil; - // gasDensity*(1.0 - foilGasRatio)/totDensity; - - fPipeMat = new G4Material("pipeMat" , totDensity, 2); - fPipeMat->AddMaterial( Air, fractionFoil ); - fPipeMat->AddMaterial( He, fractionGas ); - */ - fPipeMat = He; - - fGapMat = fAbsorberMaterial; - - fWorldMaterial = Air; - - fSolidWorld = new G4Box("World", fWorldSizeR, fWorldSizeR, fWorldSizeZ/2.); - - fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World"); - - fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World", - fLogicWorld, 0, false, 0); - - // TR radiator envelope - - fRadThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap; - - fRadZ = fStartZ + 0.5*fRadThick; - - // fRadZ = -fRadThick/2. - fElectrodeThick; - // if ( fabs(pipe) > 1.e-15 ) fRadZ -= ( fPipeLength/2. + pipeDist ); - - fSolidRadiator = new G4Box("Radiator",1.1*fAbsorberRadius , - 1.1*fAbsorberRadius, 0.5*fRadThick ); - - fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat, - "Radiator"); - - fPhysicsRadiator = new G4PVPlacement(0, - G4ThreeVector(0,0,fRadZ), - "Radiator", fLogicRadiator, - fPhysicsWorld, false, 0 ); - - // create region for radiator - - if( fRadRegion != 0 ) delete fRadRegion; - if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator"); - fRadRegion->AddRootLogicalVolume(fLogicRadiator); - - // Drift Electrode on both sides of Radiator: - - G4double zElectrode1 = fRadZ - fRadThick/2. - fElectrodeThick/2.; - G4double zElectrode2 = fRadZ + fRadThick/2. + fElectrodeThick/2.; - /* - G4Box* solidElectrode = new G4Box("Electrode",fAbsorberRadius*1.1, - fAbsorberRadius*1.1, - fElectrodeThick/2.); - - G4LogicalVolume* logicElectrode = new G4LogicalVolume(solidElectrode, - fElectrodeMat, - "Electrode"); - - G4VPhysicalVolume* physiElectrode1 = new G4PVPlacement(0, - G4ThreeVector(0.,0.,zElectrode1), - "Electrode1",logicElectrode, - fPhysicsWorld,false,0); - - G4VPhysicalVolume* physiElectrode2 = new G4PVPlacement(0, - G4ThreeVector(0.,0.,zElectrode2), - "Electrode1",logicElectrode, - fPhysicsWorld,false,0); - */ - G4cout<<"zElectrode1 = "<SetDetectorField(fMagField); - fieldMgr->CreateChordFinder(fMagField); - logicPipe->SetFieldManager(fieldMgr, true); - } - - } - else G4cout<<"No Helium pipe is used"<AddRootLogicalVolume(fLogicAbsorber); - - // Sensitive Detectors: Absorber - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!fCalorimeterSD) - { - fCalorimeterSD = new Em10CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( fCalorimeterSD ); - } - if (fLogicAbsorber) fLogicAbsorber->SetSensitiveDetector(fCalorimeterSD); - - PrintGeometryParameters(); - - return fPhysicsWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Setup for Bari INFN XTR test beam (~2004) at CERN. With He beam-pipe -// M. Brigida et al, NIM A550 (2005) 157-168 -// Runs by : TestEm10 bari05.mac - -G4VPhysicalVolume* Em10DetectorConstruction::SetUpBari05() -{ - fWorldSizeZ = 600.*cm; - fWorldSizeR = 22.*cm; - - // Radiator and detector parameters - - //fRadThickness = 0.01*mm; // Gamma XTR (malz: 0.01) - //fGasGap = 0.19*mm; // Gamma XTR (malz: 0.09) - //fFoilNumber = 240; // Gamma XTR (malz: 480) - - //fRadThickness = 0.020*mm; // Reg1 - //fGasGap = 0.500*mm; // Reg1 - //fFoilNumber = 120; // Reg1 - - //fRadThickness = 0.013*mm; // Anton - //fGasGap = 0.230*mm; // Anton - //fFoilNumber = 550; // Anton - - fRadThickness = 0.0055*mm; // Reg2 - fGasGap = 0.23*mm; // Reg2 - fFoilNumber = 191; // Reg2 - - foilGasRatio = fRadThickness/(fRadThickness+fGasGap); - - fAbsorberThickness = 0.4*mm; - - fAbsorberRadius = 100.*mm; - fAbsorberZ = 136.*cm; - - fPipeLength = 50.0*cm; - fMylarThick = 20.0*micrometer; - - fWindowThick = 51.0*micrometer; - fElectrodeThick = 100.0*micrometer; - fGapThick = 10.0*cm; - - fDetThickness = 40.0*mm; - fDetLength = 200.0*cm; - fDetGap = 0.01*mm; - - fStartR = 40*cm; - fStartZ = 100.0*mm; - - fModuleNumber = 1; - - // Preparation of mixed radiator material - - G4Material* Mylar = fMat->GetMaterial("Mylar"); - G4Material* Air = fMat->GetMaterial("Air"); - G4Material* Al = fMat->GetMaterial("Al"); - G4Material* CH2 = fMat->GetMaterial("CH2"); - G4Material* He = fMat->GetMaterial("He"); - - G4double foilDensity = 0.91*g/cm3; - // CH2 1.39*g/cm3; // Mylar // 0.534*g/cm3; //Li - G4double gasDensity = 1.2928*mg/cm3; - // Air // 1.977*mg/cm3; // CO2 0.178*mg/cm3; // He - G4double totDensity = foilDensity*foilGasRatio + - gasDensity*(1.0-foilGasRatio); - - G4double fractionFoil = foilDensity*foilGasRatio/totDensity; - G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; - - G4Material* radiatorMat = new G4Material("radiatorMat" , totDensity, - 2); - radiatorMat->AddMaterial( CH2, fractionFoil ); - radiatorMat->AddMaterial( Air, fractionGas ); - - // default materials of the detector and TR radiator - - fRadiatorMat = radiatorMat; - fFoilMat = CH2; // Kapton; // Mylar ; // Li ; // CH2 ; - fGasMat = Air; // CO2; // He; // - - fWindowMat = Mylar; - fElectrodeMat = Al; - - fAbsorberMaterial = fMat->GetMaterial("Si"); - - // pipe material is assumed to be He + small admixture of air - - foilGasRatio = 0.99999; - foilDensity = 1.2928*mg/cm3; // Air - gasDensity = 0.178*mg/cm3; // He - totDensity = foilDensity*foilGasRatio + gasDensity*(1.0-foilGasRatio); - - fractionFoil = foilDensity*foilGasRatio/totDensity; - fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; - - fPipeMat = new G4Material("pipeMat" , totDensity, 2); - fPipeMat->AddMaterial( Air, fractionFoil ); - fPipeMat->AddMaterial( He, fractionGas ); - - // fPipeMat = He; - - fGapMat = fAbsorberMaterial; - - fWorldMaterial = Air; - - fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.); - - fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World"); - - fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World", - fLogicWorld, 0, false, 0); - - // TR radiator envelope - - fRadThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap; - - fRadZ = fStartZ + 0.5*fRadThick; - // fRadZ = -fRadThick/2. - fElectrodeThick; - // if ( fabs(pipe) > 1.e-15 ) fRadZ -= ( fPipeLength/2. + pipeDist ); - - fSolidRadiator = new G4Box("Radiator",1.1*fAbsorberRadius , - 1.1*fAbsorberRadius, 0.5*fRadThick ); - - fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat, - "Radiator"); - - fPhysicsRadiator = new G4PVPlacement(0, - G4ThreeVector(0,0,fRadZ), - "Radiator", fLogicRadiator, - fPhysicsWorld, false, 0 ); - - // create region for radiator - - if( fRadRegion != 0 ) delete fRadRegion; - if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator"); - fRadRegion->AddRootLogicalVolume(fLogicRadiator); - - // Drift Electrode on both sides of Radiator: - - // G4Box* solidElectrode = new G4Box("Electrode",fAbsorberRadius*1.1, - // fAbsorberRadius*1.1, - // fElectrodeThick/2.); - - // G4LogicalVolume* logicElectrode = new G4LogicalVolume(solidElectrode, - // fElectrodeMat, - // "Electrode"); - - G4double zElectrode1 = fRadZ - fRadThick/2. - fElectrodeThick/2.; - G4double zElectrode2 = fRadZ + fRadThick/2. + fElectrodeThick/2.; - - // G4VPhysicalVolume* physiElectrode1 = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zElectrode1), - // "Electrode1",logicElectrode, - // fPhysicsWorld,false,0); - - // G4VPhysicalVolume* physiElectrode2 = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zElectrode2), - // "Electrode1",logicElectrode, - // fPhysicsWorld,false,0); - - G4cout<<"zElectrode1 = "< 1.e-15 ) - { - - // G4Box* solidPipe = new G4Box("Pipe",fAbsorberRadius*0.5, - // fAbsorberRadius*0.5, - // fPipeLength/2. ); - - // G4LogicalVolume* logicPipe = new G4LogicalVolume(solidPipe, - // fPipeMat, - // "Pipe"); - - // magnetic field in Pipe: - // if( fMagField ) delete fMagField; //delete the existing mag field - // fMagField = new G4UniformMagField(G4ThreeVector(fieldStrength,0.,0.)); - // G4FieldManager* fieldMgr= new G4FieldManager(fMagField); - // fieldMgr->SetDetectorField(fMagField); - // fieldMgr->CreateChordFinder(fMagField); - // if ( fabs(field) > 1.e-15 ) logicPipe->SetFieldManager(fieldMgr, true); - - // G4VPhysicalVolume* physiPipe = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zPipe), - // "Pipe1",logicPipe, - // fPhysicsWorld,false,0); - - G4cout<<"zPipe = "< 1.e-15 ) - { - - // G4VPhysicalVolume* physiMylar1 = new G4PVPlacement(0, - // G4ThreeVector( 0., 0., zMylar1), - // "Mylar1", logicMylar, fPhysicsWorld, - // false, 0); - - // G4VPhysicalVolume* physiMylar2 = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zMylar2), - // "Mylar2", logicMylar, fPhysicsWorld, - // false, 0); - - G4cout<<"zMylar1 = "< 1.e-15 ) zMylar += ( fPipeLength + pipeDist ); - - // G4VPhysicalVolume* physiMylar = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zMylar), - // "Mylar",logicMylar,fPhysicsWorld,false,0); - - G4cout<<"zMylar = "<AddRootLogicalVolume(fLogicAbsorber); - - // Sensitive Detectors: Absorber - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!fCalorimeterSD) - { - fCalorimeterSD = new Em10CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( fCalorimeterSD ); - } - if (fLogicAbsorber) fLogicAbsorber->SetSensitiveDetector(fCalorimeterSD); - - PrintGeometryParameters(); - - return fPhysicsWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Setuo from F. Harris et al NIM 107 (1973) 413-422 (fig.5b) - -G4VPhysicalVolume* Em10DetectorConstruction::SetUpHarris73() -{ - fWorldSizeZ = 400.*cm; - fWorldSizeR = 20.*cm; - - // Radiator and detector parameters - - fRadThickness = 0.0127*mm; - fGasGap = 0.762*mm; - foilGasRatio = fRadThickness/(fRadThickness+fGasGap); - - fFoilNumber = 100; - - fAbsorberThickness = 15.0*mm; - - fAbsorberRadius = 100.*mm; - fAbsorberZ = 136.*cm; - - fWindowThick = 51.0*micrometer; - fElectrodeThick = 10.0*micrometer; - fGapThick = 10.0*cm; - - fDetThickness = 40.0*mm; - fDetLength = 200.0*cm; - fDetGap = 0.01*mm; - - fStartR = 40*cm; - fStartZ = 100.0*mm; - - fModuleNumber = 1; - - // Preparation of mixed radiator material - - G4Material* Mylar = fMat->GetMaterial("Mylar"); - G4Material* Air = fMat->GetMaterial("Air"); - G4Material* Al = fMat->GetMaterial("Al"); - - G4double foilDensity = 1.39*g/cm3; - // Mylar // 0.91*g/cm3; // CH2 0.534*g/cm3; //Li - G4double gasDensity = 1.2928*mg/cm3; - // Air // 1.977*mg/cm3; // CO2 0.178*mg/cm3; // He - - G4double totDensity = foilDensity*foilGasRatio + - gasDensity*(1.0-foilGasRatio); - - G4double fractionFoil = foilDensity*foilGasRatio/totDensity; - G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; - - G4Material* radiatorMat = new G4Material("radiatorMat" , totDensity, - 2); - radiatorMat->AddMaterial( Mylar, fractionFoil ); - radiatorMat->AddMaterial( Air, fractionGas ); - - // default materials of the detector and TR radiator - - fRadiatorMat = radiatorMat; - fFoilMat = Mylar; - fGasMat = Air; - - fWindowMat = Mylar; - fElectrodeMat = Al; - - fAbsorberMaterial = fMat->GetMaterial("Kr7CH4"); - - fGapMat = fAbsorberMaterial; - - fWorldMaterial = Air; // CO2; - - fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.); - - fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World"); - - fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World", - fLogicWorld, 0, false, 0); - - // TR radiator envelope - - fRadThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap; - - fRadZ = fStartZ + 0.5*fRadThick; - - fSolidRadiator = new G4Box("Radiator",1.1*fAbsorberRadius , - 1.1*fAbsorberRadius, 0.5*fRadThick ); - - fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat, - "Radiator"); - - fPhysicsRadiator = new G4PVPlacement(0, - G4ThreeVector(0,0,fRadZ), - "Radiator", fLogicRadiator, - fPhysicsWorld, false, 0 ); - - // create region for window inside windowR for - - if( fRadRegion != 0 ) delete fRadRegion; - if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator"); - fRadRegion->AddRootLogicalVolume(fLogicRadiator); - - fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm; - - // G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001, - // fAbsorberRadius+0.001, - // fWindowThick/2.+0.001 ); - - // G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR, - // fWorldMaterial, "WindowR"); - - // G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,fWindowZ), - // "WindowR",logicWindowR,fPhysicsWorld,false,0); - // window - - // G4Box* solidWindow = new G4Box("Window",fAbsorberRadius, - // fAbsorberRadius, fWindowThick/2.); - - // G4LogicalVolume* logicWindow = new G4LogicalVolume(solidWindow, - // fWindowMat, "Window"); - - // G4VPhysicalVolume* physiWindow = - // new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), - // "Window", logicWindow, physiWindowR, false, 0); - - fGapZ = fWindowZ + fWindowThick/2. + fGapThick/2. + 0.01*mm; - - fElectrodeZ = fGapZ + fGapThick/2. + fElectrodeThick/2. + 0.01*mm; - - // Absorber - - fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + - fAbsorberThickness/2. + 0.01*mm; - - fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius, - fAbsorberRadius, fAbsorberThickness/2.); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial, - "Absorber"); - - fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ), - "Absorber", fLogicAbsorber, - fPhysicsWorld, false, 0); - - if( fRegGasDet != 0 ) delete fRegGasDet; - if( fRegGasDet == 0 ) fRegGasDet = new G4Region("XTRdEdxDetector"); - fRegGasDet->AddRootLogicalVolume(fLogicAbsorber); - - // Sensitive Detectors: Absorber - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!fCalorimeterSD) - { - fCalorimeterSD = new Em10CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( fCalorimeterSD ); - } - if (fLogicAbsorber) fLogicAbsorber->SetSensitiveDetector(fCalorimeterSD); - - PrintGeometryParameters(); - - return fPhysicsWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Setuo from Y. Watase et al, NIM A248 (1986) 379-388 (fig.7; Li, e-, 2 Gev/c) - -G4VPhysicalVolume* Em10DetectorConstruction::SetUpWatase86() -{ - fWorldSizeZ = 400.*cm; - fWorldSizeR = 20.*cm; - - // Radiator and detector parameters - - fRadThickness = 0.04*mm; - fGasGap = 0.126*mm; - foilGasRatio = fRadThickness/(fRadThickness+fGasGap); - - fFoilNumber = 300; - - fAbsorberThickness = 30.0*mm; - - fAbsorberRadius = 100.*mm; - fAbsorberZ = 136.*cm; - - fWindowThick = 51.0*micrometer; - fElectrodeThick = 10.0*micrometer; - fGapThick = 10.0*cm; - - fDetThickness = 30.0*mm; - fDetLength = 200.0*cm; - fDetGap = 0.01*mm; - - fStartR = 40*cm; - fStartZ = 100.0*mm; - - fModuleNumber = 1; - - // Preparation of mixed radiator material - - G4Material* Li = fMat->GetMaterial("Li"); - // G4Material* Air = fMat->GetMaterial("Air"); - G4Material* He = fMat->GetMaterial("He"); - G4Material* Al = fMat->GetMaterial("Al"); - G4Material* Mylar = fMat->GetMaterial("Mylar"); - - G4double foilDensity = 0.534*g/cm3; - //Li 1.39*g/cm3; // Mylar 0.91*g/cm3; // CH2 - G4double gasDensity = 0.178*mg/cm3; - // He 1.2928*mg/cm3; // Air // 1.977*mg/cm3; // CO2 - - G4double totDensity = foilDensity*foilGasRatio + - gasDensity*(1.0-foilGasRatio); - - G4double fractionFoil = foilDensity*foilGasRatio/totDensity; - G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; - - G4Material* radiatorMat = new G4Material("radiatorMat" , totDensity, - 2); - radiatorMat->AddMaterial( Li, fractionFoil ); - radiatorMat->AddMaterial( He, fractionGas ); - - // default materials of the detector and TR radiator - - fRadiatorMat = radiatorMat; - fFoilMat = Li; - fGasMat = He; - - fWindowMat = Mylar; - fElectrodeMat = Al; - - fAbsorberMaterial = fMat->GetMaterial("Xe10CH4"); - - fGapMat = fAbsorberMaterial; - - fWorldMaterial = He; // Air; // CO2 ; - - fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.); - - fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World"); - - fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World", - fLogicWorld, 0, false, 0); - - // TR radiator envelope - - fRadThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap; - - fRadZ = fStartZ + 0.5*fRadThick; - - fSolidRadiator = new G4Box("Radiator",1.1*fAbsorberRadius , - 1.1*fAbsorberRadius, 0.5*fRadThick ); - - fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat, - "Radiator"); - - fPhysicsRadiator = new G4PVPlacement(0, - G4ThreeVector(0,0,fRadZ), - "Radiator", fLogicRadiator, - fPhysicsWorld, false, 0 ); - - // create region for window inside windowR for - - if( fRadRegion != 0 ) delete fRadRegion; - if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator"); - fRadRegion->AddRootLogicalVolume(fLogicRadiator); - - fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm; - - // G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001, - // fAbsorberRadius+0.001, - // fWindowThick/2.+0.001 ); - - // G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR, - // fWorldMaterial, "WindowR"); - - // G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,fWindowZ), - // "WindowR",logicWindowR,fPhysicsWorld,false,0); - // window - - // G4Box* solidWindow = new G4Box("Window",fAbsorberRadius, - // fAbsorberRadius, fWindowThick/2.); - - // G4LogicalVolume* logicWindow = new G4LogicalVolume(solidWindow, - // fWindowMat, "Window"); - - // G4VPhysicalVolume* physiWindow = - // new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), - // "Window", logicWindow, physiWindowR, false, 0); - - fGapZ = fWindowZ + fWindowThick/2. + fGapThick/2. + 0.01*mm; - - fElectrodeZ = fGapZ + fGapThick/2. + fElectrodeThick/2. + 0.01*mm; - - // Absorber - - fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + - fAbsorberThickness/2. + 0.01*mm; - - fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius, - fAbsorberRadius, fAbsorberThickness/2.); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial, - "Absorber"); - - fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ), - "Absorber", fLogicAbsorber, - fPhysicsWorld, false, 0); - - if( fRegGasDet != 0 ) delete fRegGasDet; - if( fRegGasDet == 0 ) fRegGasDet = new G4Region("XTRdEdxDetector"); - fRegGasDet->AddRootLogicalVolume(fLogicAbsorber); - - // Sensitive Detectors: Absorber - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!fCalorimeterSD) - { - fCalorimeterSD = new Em10CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( fCalorimeterSD ); - } - if (fLogicAbsorber) fLogicAbsorber->SetSensitiveDetector(fCalorimeterSD); - - PrintGeometryParameters(); - - return fPhysicsWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Setuo from G.D. Barr et al NIM A294 (1990) 465-472 (fig.11) - -G4VPhysicalVolume* Em10DetectorConstruction::SetUpBarr90() -{ - fWorldSizeZ = 400.*cm; - fWorldSizeR = 20.*cm; - - // Radiator and detector parameters - - fRadThickness = 0.019*mm; - fGasGap = 0.6*mm; - foilGasRatio = fRadThickness/(fRadThickness+fGasGap); - - fFoilNumber = 350; - - fAbsorberThickness = 50.0*mm; - - fAbsorberRadius = 100.*mm; - fAbsorberZ = 136.*cm; - - fWindowThick = 51.0*micrometer; - fElectrodeThick = 10.0*micrometer; - fGapThick = 10.0*cm; - - fDetThickness = 50.0*mm; - fDetLength = 200.0*cm; - fDetGap = 0.01*mm; - - fStartR = 40*cm; - fStartZ = 100.0*mm; - - fModuleNumber = 1; - - // Preparation of mixed radiator material - - G4Material* CH2 = fMat->GetMaterial("CH2"); - G4Material* CO2 = fMat->GetMaterial("CO2"); - G4Material* Air = fMat->GetMaterial("Air"); - G4Material* Al = fMat->GetMaterial("Al"); - G4Material* Mylar = fMat->GetMaterial("Mylar"); - - G4double foilDensity = 0.91*g/cm3; - // CH21.39*g/cm3; // Mylar // 0.534*g/cm3; //Li - G4double gasDensity = 1.977*mg/cm3; - // CO2 1.2928*mg/cm3; // Air // 0.178*mg/cm3; // He - - G4double totDensity = foilDensity*foilGasRatio + - gasDensity*(1.0-foilGasRatio); - - G4double fractionFoil = foilDensity*foilGasRatio/totDensity; - G4double fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity; - - G4Material* radiatorMat = new G4Material("radiatorMat" , totDensity, - 2); - radiatorMat->AddMaterial( CH2, fractionFoil ); - radiatorMat->AddMaterial( CO2, fractionGas ); - - // default materials of the detector and TR radiator - - fRadiatorMat = radiatorMat; - fFoilMat = CH2; - fGasMat = CO2; - - fWindowMat = Mylar; - fElectrodeMat = Al; - - fAbsorberMaterial = fMat->GetMaterial("Xe55He15CH4"); - - fGapMat = fAbsorberMaterial; - - fWorldMaterial = Air; // CO2; // - - fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.); - - fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World"); - - fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World", - fLogicWorld, 0, false, 0); - - // TR radiator envelope - - fRadThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap; - - fRadZ = fStartZ + 0.5*fRadThick; - - fSolidRadiator = new G4Box("Radiator",1.1*fAbsorberRadius , - 1.1*fAbsorberRadius, 0.5*fRadThick ); - - fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat, - "Radiator"); - - fPhysicsRadiator = new G4PVPlacement(0, - G4ThreeVector(0,0,fRadZ), - "Radiator", fLogicRadiator, - fPhysicsWorld, false, 0 ); - - // create region for window inside windowR for - - if( fRadRegion != 0 ) delete fRadRegion; - if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator"); - fRadRegion->AddRootLogicalVolume(fLogicRadiator); - - fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm; - - // G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001, - // fAbsorberRadius+0.001, - // fWindowThick/2.+0.001 ); - - // G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR, - // fWorldMaterial, "WindowR"); - // - // G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,fWindowZ), - // "WindowR",logicWindowR,fPhysicsWorld,false,0); - // window - - // G4Box* solidWindow = new G4Box("Window",fAbsorberRadius, - // fAbsorberRadius, fWindowThick/2.); - - // G4LogicalVolume* logicWindow = new G4LogicalVolume(solidWindow, - // fWindowMat, "Window"); - - // G4VPhysicalVolume* physiWindow = - // new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), - // "Window", logicWindow, physiWindowR, false, 0); - - fGapZ = fWindowZ + fWindowThick/2. + fGapThick/2. + 0.01*mm; - - fElectrodeZ = fGapZ + fGapThick/2. + fElectrodeThick/2. + 0.01*mm; - - // Absorber - - fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + - fAbsorberThickness/2. + 0.01*mm; - - fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius, - fAbsorberRadius, fAbsorberThickness/2.); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial, - "Absorber"); - - fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ), - "Absorber", fLogicAbsorber, - fPhysicsWorld, false, 0); - - if( fRegGasDet != 0 ) delete fRegGasDet; - if( fRegGasDet == 0 ) fRegGasDet = new G4Region("XTRdEdxDetector"); - fRegGasDet->AddRootLogicalVolume(fLogicAbsorber); - - // Sensitive Detectors: Absorber - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!fCalorimeterSD) - { - fCalorimeterSD = new Em10CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( fCalorimeterSD ); - } - if (fLogicAbsorber) fLogicAbsorber->SetSensitiveDetector(fCalorimeterSD); - - PrintGeometryParameters(); - - return fPhysicsWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::TestOld() -{ - // G4double inch = 2.54*cm; - // G4double mil = inch/1000.0; - // G4double GetzstartAbs() {return zstartAbs;}; - // G4double GetzendAbs() {return zendAbs;}; - // void ComputeCalorParameters(); - - // void SetGammaCut(G4double cut){fGammaCut = cut;}; - // void SetElectronCut(G4double cut){fElectronCut = cut;}; - // void SetPositronCut(G4double cut){fPositronCut = cut;}; - // G4int fModelNumber ; // selection of parametrisation model1-10 - // void SetAlphaPlate (G4double val){fAlphaPlate = val;}; - // void SetAlphaGas (G4double val){fAlphaGas = val;}; - - // G4double fAlphaPlate ; - // G4double fAlphaGas ; - - // fAlphaPlate = 160.0; - // fAlphaGas = 160.0; - // fModelNumber = 0; - - // create commands for interactive definition of the calorimeter - - // fGammaCut = 23*mm; - // fElectronCut = 23*mm; - // fPositronCut = 23*mm; - - // G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - // G4int i, j ; - // G4int j ; - // G4double zModule, zRadiator, rModule, rRadiator ; - - // complete the Calor parameters definition and Print - - //ComputeCalorParameters(); - - // zRadiator ; - - // World - - // if(solidWorld) delete solidWorld ; - // if(logicWorld) delete logicWorld ; - // if(physiWorld) delete physiWorld ; - - // if(solidRadiator) delete solidRadiator; - // if(logicRadiator) delete logicRadiator; - // if(physiRadiator) delete physiRadiator; - - // radThick *= 1.02 ; - - // if(fSolidRadSlice) delete fSolidRadSlice; - // if(fLogicRadSlice) delete fLogicRadSlice; - // if(fPhysicRadSlice) delete fPhysicRadSlice; - // fSolidRadSlice = new G4Box("RadSlice",fAbsorberRadius, - // fAbsorberRadius,0.5*fRadThickness ); - - // fLogicRadSlice = new G4LogicalVolume(fSolidRadSlice,fRadiatorMat, - // "RadSlice",0,0,0); - -// for(j=0;jRemoveRootLogicalVolume(logicWindowR); - // G4ProductionCuts* cutsR = 0; - // cutsR = new G4ProductionCuts(); - // fRadRegion->SetProductionCuts(cutsR); - - // else // Second time - get a cut object from region - { - // cutsR = fRadRegion->GetProductionCuts(); - } - - // cutsR->SetProductionCut(fGammaCut,"gamma"); - // cutsR->SetProductionCut(fElectronCut,"e-"); - // cutsR->SetProductionCut(fPositronCut,"e+"); - // G4Box* solidGap = new G4Box("Gap",fAbsorberRadius, fAbsorberRadius, - // fGapThick/2. ) ; - - // G4LogicalVolume* logicGap = new G4LogicalVolume(solidGap,fGapMat, "Gap"); - - // G4VPhysicalVolume* physiGap = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zGap), - // "Gap",logicGap,physiWorld,false,0); - - // G4Box* solidElectrode = new G4Box("Electrode",fAbsorberRadius, - // fAbsorberRadius, fElectrodeThick/2. ); - - // G4LogicalVolume* logicElectrode = new G4LogicalVolume(solidElectrode, - // fElectrodeMat, "Electrode"); - - // G4VPhysicalVolume* physiElectrode = new G4PVPlacement(0, - // G4ThreeVector(0.,0.,zElectrode), - // "Electrode",logicElectrode, - // physiWorld,false,0); - // if(solidAbsorber) delete solidAbsorber; - // if(logicAbsorber) delete logicAbsorber; - // if(physiAbsorber) delete physiAbsorber; -// if (fAbsorberThickness > 0.) -// { -// } - - // fRegGasDet->RemoveRootLogicalVolume(logicAbsorber); - // G4ProductionCuts* cuts = 0; - // cuts = new G4ProductionCuts(); - // fRegGasDet->SetProductionCuts(cuts); - // else // Second time - get a cut object from region - { - // cuts = fRegGasDet->GetProductionCuts(); - } - - // cuts->SetProductionCut(fGammaCut,"gamma"); - // cuts->SetProductionCut(fElectronCut,"e-"); - // cuts->SetProductionCut(fPositronCut,"e+"); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::PrintGeometryParameters() -{ - G4cout << "\n The WORLD is made of " - << fWorldSizeZ/mm << "mm of " << fWorldMaterial->GetName(); - G4cout << ", the transverse size (R) of the world is " << - fWorldSizeR/mm << " mm. " << G4endl; - G4cout << " The ABSORBER is made of " - << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName(); - G4cout << ", the transverse size (R) is " << fAbsorberRadius/mm << - " mm. " << G4endl; - G4cout << " Z position of the (middle of the) absorber " - << fAbsorberZ/mm << " mm." << G4endl; - - G4cout<<"fRadZ = "<size() ; J++) - { - pttoMaterial = (*theMaterialTable)[J]; - - if(pttoMaterial->GetName() == materialChoice) - { - fAbsorberMaterial = pttoMaterial; - fLogicAbsorber->SetMaterial(pttoMaterial); - // PrintCalorParameters(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetRadiatorMaterial(G4String materialChoice) -{ - // get the pointer to the material table - - const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - - // search the material by its name - - G4Material* pttoMaterial; - for (size_t J=0 ; Jsize() ; J++) - { - pttoMaterial = (*theMaterialTable)[J]; - - if(pttoMaterial->GetName() == materialChoice) - { - fRadiatorMat = pttoMaterial; -// fLogicRadSlice->SetMaterial(pttoMaterial); - // PrintCalorParameters(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetWorldMaterial(G4String materialChoice) -{ - // get the pointer to the material table - const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - - // search the material by its name - G4Material* pttoMaterial; - - for (size_t J=0 ; Jsize() ; J++) - { - pttoMaterial = (*theMaterialTable)[J]; - - if(pttoMaterial->GetName() == materialChoice) - { - fWorldMaterial = pttoMaterial; - fLogicWorld->SetMaterial(pttoMaterial); - // PrintCalorParameters(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetAbsorberThickness(G4double val) -{ - // change Absorber thickness and recompute the calorimeter parameters - fAbsorberThickness = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetRadiatorThickness(G4double val) -{ - // change XTR radiator thickness and recompute the calorimeter parameters - fRadThickness = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetGasGapThickness(G4double val) -{ - // change XTR gas gap thickness and recompute the calorimeter parameters - fGasGap = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetAbsorberRadius(G4double val) -{ - // change the transverse size and recompute the calorimeter parameters - fAbsorberRadius = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetWorldSizeZ(G4double val) -{ - fWorldChanged=true; - fWorldSizeZ = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetWorldSizeR(G4double val) -{ - fWorldChanged=true; - fWorldSizeR = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetAbsorberZpos(G4double val) -{ - fAbsorberZ = val; - // ComputeCalorParameters(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::SetMagField(G4double) -{ - //apply a global uniform magnetic field along X axis - - /* ********************************************************* - - G4FieldManager* fieldMgr - = G4TransportationManager::GetTransportationManager()->GetFieldManager(); - - if(magField) delete magField; //delete the existing magn field - - if(fieldValue!=0.) // create a new one if non null - { - magField = new G4UniformMagField(G4ThreeVector(fieldValue,0.,0.)); - fieldMgr->SetDetectorField(magField); - fieldMgr->CreateChordFinder(magField); - } - else - { - magField = 0; - fieldMgr->SetDetectorField(magField); - } - - *************************************************************** */ - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10DetectorConstruction::UpdateGeometry() -{ - G4RunManager::GetRunManager()->DefineWorldVolume(ConstructDetectorXTR()); -} diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc deleted file mode 100644 index d14aa19d85..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc +++ /dev/null @@ -1,278 +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 electromagnetic/TestEm10/src/Em10DetectorMessenger.cc -/// \brief Implementation of the Em10DetectorMessenger class -// -// -// $Id: Em10DetectorMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -// - -#include "Em10DetectorMessenger.hh" - -#include "Em10DetectorConstruction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithoutParameter.hh" - -////////////////////////////////////////////////////////////////////////////// - -Em10DetectorMessenger::Em10DetectorMessenger(Em10DetectorConstruction * Em10Det) -:G4UImessenger(), - Em10Detector(Em10Det) -{ - Em10detDir = new G4UIdirectory("/XTRdetector/"); - Em10detDir->SetGuidance("Em10 detector control."); - - AbsMaterCmd = new G4UIcmdWithAString("/XTRdetector/setAbsMat",this); - AbsMaterCmd->SetGuidance("Select Material of the Absorber."); - AbsMaterCmd->SetParameterName("choice",true); - AbsMaterCmd->SetDefaultValue("Xe"); - AbsMaterCmd->AvailableForStates(G4State_Idle); - - RadiatorMaterCmd = new G4UIcmdWithAString("/XTRdetector/setRadMat",this); - RadiatorMaterCmd->SetGuidance("Select Material of the XTR radiator."); - RadiatorMaterCmd->SetParameterName("choice",true); - RadiatorMaterCmd->SetDefaultValue("CH2"); - RadiatorMaterCmd->AvailableForStates(G4State_Idle); - - DetectorSetUpCmd = new G4UIcmdWithAString("/XTRdetector/setup",this); - DetectorSetUpCmd->SetGuidance("Select setup for comparison with experiment"); - DetectorSetUpCmd->SetParameterName("choice",true); - DetectorSetUpCmd->SetDefaultValue("simpleALICE"); - DetectorSetUpCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - ModelCmd = new G4UIcmdWithAnInteger("/XTRdetector/setModel",this); - ModelCmd->SetGuidance("Select Model for XTR"); - ModelCmd->SetParameterName("choice",true); - ModelCmd->SetDefaultValue(0); - // ModelCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - ModelCmd->AvailableForStates(G4State_Idle); - - FoilNumCmd = new G4UIcmdWithAnInteger("/XTRdetector/setFoilNum",this); - FoilNumCmd->SetGuidance("Select foil number for XTR"); - FoilNumCmd->SetParameterName("choice",true); - FoilNumCmd->SetDefaultValue(0); - FoilNumCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - WorldMaterCmd = new G4UIcmdWithAString("/XTRdetector/setWorldMat",this); - WorldMaterCmd->SetGuidance("Select Material of the World."); - WorldMaterCmd->SetParameterName("wchoice",true); - WorldMaterCmd->SetDefaultValue("Air"); - WorldMaterCmd->AvailableForStates(G4State_Idle); - - AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setAbsThick",this); - AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); - AbsThickCmd->SetParameterName("SizeZ",false,false); - AbsThickCmd->SetDefaultUnit("mm"); - AbsThickCmd->SetRange("SizeZ>0."); - AbsThickCmd->AvailableForStates(G4State_Idle); - - RadiatorThickCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setRadThick",this); - RadiatorThickCmd->SetGuidance("Set Thickness of XTR radiator"); - RadiatorThickCmd->SetParameterName("SizeZ",false,false); - RadiatorThickCmd->SetDefaultUnit("mm"); - RadiatorThickCmd->SetRange("SizeZ>0."); - RadiatorThickCmd->AvailableForStates(G4State_Idle); - - GasGapThickCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setGasGapThick",this); - GasGapThickCmd->SetGuidance("Set Thickness of XTR gas gaps"); - GasGapThickCmd->SetParameterName("SizeZ",false,false); - GasGapThickCmd->SetDefaultUnit("mm"); - GasGapThickCmd->SetRange("SizeZ>0."); - GasGapThickCmd->AvailableForStates(G4State_Idle); - - AbsRadCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setAbsRad",this); - AbsRadCmd->SetGuidance("Set radius of the Absorber"); - AbsRadCmd->SetParameterName("SizeR",false,false); - AbsRadCmd->SetDefaultUnit("mm"); - AbsRadCmd->SetRange("SizeR>0."); - AbsRadCmd->AvailableForStates(G4State_Idle); - - AbsZposCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setAbsZpos",this); - AbsZposCmd->SetGuidance("Set Z pos. of the Absorber"); - AbsZposCmd->SetParameterName("Zpos",false,false); - AbsZposCmd->SetDefaultUnit("mm"); - AbsZposCmd->AvailableForStates(G4State_Idle); - - WorldZCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setWorldZ",this); - WorldZCmd->SetGuidance("Set Z size of the World"); - WorldZCmd->SetParameterName("WSizeZ",false,false); - WorldZCmd->SetDefaultUnit("mm"); - WorldZCmd->SetRange("WSizeZ>0."); - WorldZCmd->AvailableForStates(G4State_Idle); - - WorldRCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setWorldR",this); - WorldRCmd->SetGuidance("Set R size of the World"); - WorldRCmd->SetParameterName("WSizeR",false,false); - WorldRCmd->SetDefaultUnit("mm"); - WorldRCmd->SetRange("WSizeR>0."); - WorldRCmd->AvailableForStates(G4State_Idle); - - UpdateCmd = new G4UIcmdWithoutParameter("/XTRdetector/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("/XTRdetector/setField",this); - MagFieldCmd->SetGuidance("Define magnetic field."); - MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); - MagFieldCmd->SetParameterName("Bz",false,false); - MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(G4State_Idle); - /* - ElectronCutCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setElectronCut",this); - ElectronCutCmd->SetGuidance("Set electron cut in mm for vertex region"); - ElectronCutCmd->SetParameterName("ElectronCut",false,false); - ElectronCutCmd->SetDefaultUnit("mm"); - ElectronCutCmd->SetRange("ElectronCut>0."); - ElectronCutCmd->AvailableForStates(G4State_Idle); - - - PositronCutCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setPositronCut",this); - PositronCutCmd->SetGuidance("Set positron cut in mm for vertex region"); - PositronCutCmd->SetParameterName("PositronCut",false,false); - PositronCutCmd->SetDefaultUnit("mm"); - PositronCutCmd->SetRange("PositronCut>0."); - PositronCutCmd->AvailableForStates(G4State_Idle); - - - GammaCutCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setGammaCut",this); - GammaCutCmd->SetGuidance("Set gamma cut in mm for vertex region"); - GammaCutCmd->SetParameterName("GammaCut",false,false); - GammaCutCmd->SetDefaultUnit("mm"); - GammaCutCmd->SetRange("GammaCut>0."); - GammaCutCmd->AvailableForStates(G4State_Idle); - */ - -} - -/////////////////////////////////////////////////////////////////////////////// - -Em10DetectorMessenger::~Em10DetectorMessenger() -{ - delete AbsMaterCmd; - delete ModelCmd; - delete FoilNumCmd; - delete AbsThickCmd; - delete RadiatorThickCmd; - delete GasGapThickCmd; - delete AbsRadCmd; - delete AbsZposCmd; - delete WorldMaterCmd; - delete RadiatorMaterCmd; - delete WorldZCmd; - delete WorldRCmd; - delete UpdateCmd; - delete MagFieldCmd; - delete Em10detDir; -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10DetectorMessenger::SetNewValue(G4UIcommand* command,G4int newValue) -{ - if( command == ModelCmd && newValue == 0 ) - { - // Em10Detector->SetParametrisationModel(newValue); - Em10Detector->Construct(); - } -} -//////////////////////////////////////////////////////////////////////////// -// -// - -void Em10DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == ModelCmd ) - { - // Em10Detector->SetParametrisationModel(ModelCmd->GetNewIntValue(newValue)); - // Em10Detector->ParametrisationModel(); - } - if( command == FoilNumCmd ) - { - Em10Detector->SetFoilNumber(FoilNumCmd->GetNewIntValue(newValue)); - } - if( command == AbsMaterCmd ) - { Em10Detector->SetAbsorberMaterial(newValue);} - - if( command == DetectorSetUpCmd ) - { Em10Detector->SetDetectorSetUp(newValue);} - - if( command == RadiatorMaterCmd ) - { Em10Detector->SetRadiatorMaterial(newValue);} - - if( command == WorldMaterCmd ) - { Em10Detector->SetWorldMaterial(newValue);} - - if( command == AbsThickCmd ) - { Em10Detector->SetAbsorberThickness(AbsThickCmd->GetNewDoubleValue(newValue));} - - if( command == RadiatorThickCmd ) - { Em10Detector->SetRadiatorThickness(RadiatorThickCmd-> - GetNewDoubleValue(newValue));} - - if( command == GasGapThickCmd ) - { Em10Detector->SetGasGapThickness(GasGapThickCmd-> - GetNewDoubleValue(newValue));} - - if( command == AbsRadCmd ) - { Em10Detector->SetAbsorberRadius(AbsRadCmd->GetNewDoubleValue(newValue));} - - if( command == AbsZposCmd ) - { Em10Detector->SetAbsorberZpos(AbsZposCmd->GetNewDoubleValue(newValue));} - - if( command == WorldZCmd ) - { Em10Detector->SetWorldSizeZ(WorldZCmd->GetNewDoubleValue(newValue));} - - if( command == WorldRCmd ) - { Em10Detector->SetWorldSizeR(WorldRCmd->GetNewDoubleValue(newValue));} - - if( command == UpdateCmd ) - { Em10Detector->UpdateGeometry(); } - - if( command == MagFieldCmd ) - { Em10Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} - /* - if( command == ElectronCutCmd ) - { - Em10Detector->SetElectronCut(WorldRCmd->GetNewDoubleValue(newValue)); - } - if( command == PositronCutCmd ) - { - Em10Detector->SetPositronCut(WorldRCmd->GetNewDoubleValue(newValue)); - } - if( command == GammaCutCmd ) - { - Em10Detector->SetGammaCut(WorldRCmd->GetNewDoubleValue(newValue)); - } - */ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc deleted file mode 100644 index 4cdfe7d410..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc +++ /dev/null @@ -1,235 +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 electromagnetic/TestEm10/src/Em10EventAction.cc -/// \brief Implementation of the Em10EventAction class -// -// -// $Id: Em10EventAction.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "Em10EventAction.hh" - -#include "Em10RunAction.hh" - -#include "Em10CalorHit.hh" -#include "Em10EventActionMessenger.hh" - -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4HCofThisEvent.hh" -#include "G4VHitsCollection.hh" -#include "G4SDManager.hh" -#include "G4UImanager.hh" -#include "G4ios.hh" -#include "G4UnitsTable.hh" -#include "Randomize.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10EventAction::Em10EventAction(Em10RunAction* Em10RA) -:G4UserEventAction(),calorimeterCollID(-1),eventMessenger(0), - runaction(Em10RA),verboselevel(0),drawFlag("all"),printModulo(10000) -{ - eventMessenger = new Em10EventActionMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10EventAction::~Em10EventAction() -{ - delete eventMessenger; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::BeginOfEventAction(const G4Event* evt) -{ - G4int evtNb = evt->GetEventID(); - if (evtNb%printModulo == 0) - G4cout << "\n---> Begin of Event: " << evtNb << G4endl; - - if(verboselevel>1) - G4cout << "<<< Event " << evtNb << " started." << G4endl; - - if (calorimeterCollID==-1) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - calorimeterCollID = SDman->GetCollectionID("CalCollection"); - } - - nstep = 0. ; - nstepCharged = 0. ; - nstepNeutral = 0. ; - Nch = 0. ; - Nne = 0. ; - NE=0.; - NP=0.; - Transmitted=0.; - Reflected =0.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::EndOfEventAction(const G4Event* evt) -{ - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - Em10CalorHitsCollection* CHC = 0; - if (HCE) - CHC = (Em10CalorHitsCollection*)(HCE->GetHC(calorimeterCollID)); - - if (CHC) - { - int n_hit = CHC->entries(); - // if(verboselevel==2) - // G4cout << " " << n_hit - // << " hits are stored in Em10CalorHitsCollection." << G4endl; - - G4double totEAbs=0, totLAbs=0; - for (int i=0;iGetEdepAbs(); - totLAbs += (*CHC)[i]->GetTrakAbs(); - } - if(verboselevel==2) - G4cout - << " Absorber: total energy: " << std::setw(7) << - G4BestUnit(totEAbs,"Energy") - << " total track length: " << std::setw(7) << - G4BestUnit(totLAbs,"Length") - << G4endl; - - // count event, add deposits to the sum ... - runaction->CountEvent() ; - runaction->AddTrackLength(totLAbs) ; - runaction->AddnStepsCharged(nstepCharged) ; - runaction->AddnStepsNeutral(nstepNeutral) ; - if(verboselevel==2) - G4cout << " Ncharged=" << Nch << " , Nneutral=" << Nne << G4endl; - runaction->CountParticles(Nch,Nne); - runaction->AddEP(NE,NP); - runaction->AddTrRef(Transmitted,Reflected) ; - runaction->AddEdeps(totEAbs) ; - runaction->FillEn(totEAbs) ; - - nstep=nstepCharged+nstepNeutral ; - runaction->FillNbOfSteps(nstep); - } - - if(verboselevel>0) - G4cout << "<<< Event " << evt->GetEventID() << " ended." << G4endl; - - - //save rndm status - if (runaction->GetRndmFreq() == 2) - { - CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); - G4int evtNb = evt->GetEventID(); - if (evtNb%printModulo == 0) - { - G4cout << "\n---> End of Event: " << evtNb << G4endl; - CLHEP::HepRandom::showEngineStatus(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4int Em10EventAction::GetEventno() -{ - G4int evno = fpEventManager->GetConstCurrentEvent()->GetEventID() ; - return evno ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::setEventVerbose(G4int level) -{ - verboselevel = level ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::CountStepsCharged() -{ - nstepCharged += 1. ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::CountStepsNeutral() -{ - nstepNeutral += 1. ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::AddCharged() -{ - Nch += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::AddNeutral() -{ - Nne += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::AddE() -{ - NE += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::AddP() -{ - NP += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::SetTr() -{ - Transmitted = 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10EventAction::SetRef() -{ - Reflected = 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc deleted file mode 100644 index 1160c77cef..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc +++ /dev/null @@ -1,513 +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 electromagnetic/TestEm10/src/Em10PhysicsList.cc -/// \brief Implementation of the Em10PhysicsList class -// -// -// $Id: Em10PhysicsList.cc 90463 2015-06-01 09:33:38Z gcosmo $ -// - -#include "Em10PhysicsList.hh" -#include "Em10DetectorConstruction.hh" -#include "Em10PhysicsListMessenger.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleTypes.hh" -#include "G4Material.hh" - -#include "G4UnitsTable.hh" -#include "G4SystemOfUnits.hh" -#include "G4ios.hh" -#include - -#include "G4Region.hh" -#include "G4RegionStore.hh" - -#include "G4ProductionCuts.hh" -#include "G4EmProcessOptions.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 "G4PAIModel.hh" -#include "G4PAIPhotModel.hh" - -#include "G4SynchrotronRadiation.hh" - -#include "G4MuIonisation.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" - -#include "G4hIonisation.hh" - -#include "G4Decay.hh" - -#include "G4VXTRenergyLoss.hh" -#include "G4RegularXTRadiator.hh" -#include "G4TransparentRegXTRadiator.hh" -#include "G4GammaXTRadiator.hh" -#include "G4StrawTubeXTRadiator.hh" - -#include "G4XTRGammaRadModel.hh" -#include "G4XTRRegularRadModel.hh" -#include "G4XTRTransparentRegRadModel.hh" -#include "Em10XTRTransparentRegRadModel.hh" - -#include "Em10StepCut.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em10PhysicsList::Em10PhysicsList(Em10DetectorConstruction* p) - : G4VUserPhysicsList(), - MaxChargedStep(DBL_MAX), - theeminusStepCut(0), theeplusStepCut(0), - fRadiatorCuts(0),fDetectorCuts(0),fXTRModel("transpM") -{ - pDet = p; - - // world cuts - - defaultCutValue = 1.*mm; - cutForGamma = defaultCutValue; - cutForElectron = defaultCutValue; - cutForPositron = defaultCutValue; - - // Region cuts - - fGammaCut = defaultCutValue; - fElectronCut = defaultCutValue; - fPositronCut = defaultCutValue; - - SetVerboseLevel(1); - physicsListMessenger = new Em10PhysicsListMessenger(this); -} - -Em10PhysicsList::~Em10PhysicsList() -{ - delete physicsListMessenger; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructParticle() -{ - // In this method, static member functions should be called - // for all particles which you want to use. - // This ensures that objects of these particle types will be - // created in the program. - - ConstructBosons(); - ConstructLeptons(); - ConstructMesons(); - ConstructBarions(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructBosons() -{ - // gamma - G4Gamma::GammaDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructLeptons() -{ - // leptons - - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructMesons() -{ - // mesons - - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructBarions() -{ -// barions - - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructGeneral(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructEM() -{ - - // G4cout<<"fMinElectronEnergy = "<GetLogicalRadiator(), - 100., - 100., - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), - "GammaXTRadiator"); - } - else if(fXTRModel == "gammaM" ) - { - // G4XTRGammaRadModel* - processXTR = new G4XTRGammaRadModel(pDet->GetLogicalRadiator(), - 100., - 100., - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), - "GammaXTRadiator"); - } - else if(fXTRModel == "strawR" ) - { - // G4StrawTubeXTRadiator* - processXTR = new G4StrawTubeXTRadiator(pDet->GetLogicalRadiator(), - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - 0.53, // pDet->GetFoilThick(), - 3.14159, // pDet->GetGasThick(), - pDet->GetAbsorberMaterial(), - true, - "strawXTRadiator"); - } - else if(fXTRModel == "regR" ) - { - // G4RegularXTRadiator* - processXTR = new G4RegularXTRadiator(pDet->GetLogicalRadiator(), - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), - "RegularXTRadiator"); - } - else if(fXTRModel == "transpR" ) - { - // G4TransparentRegXTRadiator* - processXTR = new G4TransparentRegXTRadiator(pDet->GetLogicalRadiator(), - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), - "RegularXTRadiator"); - } - else if(fXTRModel == "regM" ) - { - // G4XTRRegularRadModel* - processXTR = new G4XTRRegularRadModel(pDet->GetLogicalRadiator(), - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), - "RegularXTRadiator"); - - } - else if(fXTRModel == "transpM" ) - { - // G4XTRTransparentRegRadModel* - // processXTR = new G4XTRTransparentRegRadModel(pDet->GetLogicalRadiator(), - processXTR = new Em10XTRTransparentRegRadModel(pDet->GetLogicalRadiator(), - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), - "RegularXTRadiator"); - } - else - { - G4Exception("Invalid XTR model name", "InvalidSetup", - FatalException, "XTR model name is out of the name list"); - } - // processXTR->SetCompton(true); - processXTR->SetVerboseLevel(1); - - theParticleIterator->reset(); - - while( (*theParticleIterator)() ) - { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") - { - // Construct processes for gamma - - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); - - } - else if (particleName == "e-") - { - // Construct processes for electron - theeminusStepCut = new Em10StepCut(); - theeminusStepCut->SetMaxStep(MaxChargedStep) ; - G4eIonisation* eioni = new G4eIonisation(); - G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); - eioni->AddEmModel(0,pai,pai,gas); - - pmanager->AddProcess(new G4eMultipleScattering,-1,1,1); - pmanager->AddProcess(eioni,-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung,-1,3,3); - pmanager->AddDiscreteProcess(processXTR); - pmanager->AddDiscreteProcess(new G4SynchrotronRadiation); - pmanager->AddDiscreteProcess(theeminusStepCut); - - } - else if (particleName == "e+") - { - // Construct processes for positron - - theeplusStepCut = new Em10StepCut(); - theeplusStepCut->SetMaxStep(MaxChargedStep) ; - G4eIonisation* eioni = new G4eIonisation(); - G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); - eioni->AddEmModel(0,pai,pai,gas); - - pmanager->AddProcess(new G4eMultipleScattering,-1,1,1); - pmanager->AddProcess(eioni,-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung,-1,3,3); - pmanager->AddProcess(new G4eplusAnnihilation,0,-1,4); - pmanager->AddDiscreteProcess(processXTR); - pmanager->AddDiscreteProcess(new G4SynchrotronRadiation); - pmanager->AddDiscreteProcess(theeplusStepCut); - - } - else if( particleName == "mu+" || - particleName == "mu-" ) - { - // Construct processes for muon+ - - Em10StepCut* muonStepCut = new Em10StepCut(); - muonStepCut->SetMaxStep(MaxChargedStep) ; - - G4MuIonisation* muioni = new G4MuIonisation() ; - - G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); - muioni->AddEmModel(0,pai,pai,gas); - - pmanager->AddProcess(new G4MuMultipleScattering(),-1,1,1); - pmanager->AddProcess(muioni,-1,2,2); - pmanager->AddProcess(new G4MuBremsstrahlung(),-1,3,3); - pmanager->AddProcess(new G4MuPairProduction(),-1,4,4); - pmanager->AddProcess( muonStepCut,-1,-1,5); - - } - else if ( - particleName == "proton" - || particleName == "antiproton" - || particleName == "pi+" - || particleName == "pi-" - || particleName == "kaon+" - || particleName == "kaon-" - ) - { - Em10StepCut* thehadronStepCut = new Em10StepCut(); - thehadronStepCut->SetMaxStep(MaxChargedStep) ; - - G4hIonisation* thehIonisation = new G4hIonisation(); - G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); - thehIonisation->AddEmModel(0,pai,pai,gas); - - pmanager->AddProcess(new G4hMultipleScattering,-1,1,1); - pmanager->AddProcess(thehIonisation,-1,2,2); - pmanager->AddProcess( thehadronStepCut,-1,-1,3); - - } - } - G4EmProcessOptions opt; - opt.SetApplyCuts(true); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::ConstructGeneral() -{ - // Add Decay Process - - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - - while( (*theParticleIterator)() ) - { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - - if (theDecayProcess->IsApplicable(*particle)) - { - pmanager ->AddProcess(theDecayProcess); - - // set ordering for PostStepDoIt and AtRestDoIt - - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::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", "DefaultRegionForTheWorld"); - SetCutValue(cutForElectron, "e-", "DefaultRegionForTheWorld"); - SetCutValue(cutForPositron, "e+", "DefaultRegionForTheWorld"); - - if (verboseLevel > 0) - { - G4cout << "Em10PhysicsList::SetCuts:"; - G4cout << "CutLength for e-, e+ and gamma is: " - << G4BestUnit(defaultCutValue,"Length") << G4endl; - } - - if( !fRadiatorCuts ) SetRadiatorCuts(); - - G4Region* region = (G4RegionStore::GetInstance())->GetRegion("XTRradiator"); - region->SetProductionCuts(fRadiatorCuts); - G4cout << "Radiator cuts are set" << G4endl; - - if( !fDetectorCuts ) SetDetectorCuts(); - region = (G4RegionStore::GetInstance())->GetRegion("XTRdEdxDetector"); - region->SetProductionCuts(fDetectorCuts); - G4cout << "Detector cuts are set" << G4endl; - - if (verboseLevel > 1) DumpCutValuesTable(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::SetGammaCut(G4double val) -{ - cutForGamma = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::SetElectronCut(G4double val) -{ - cutForElectron = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::SetMaxStep(G4double step) -{ - MaxChargedStep = step ; - G4cout << " MaxChargedStep=" << MaxChargedStep << G4endl; - G4cout << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PhysicsList::SetRadiatorCuts() -{ - if( !fRadiatorCuts ) fRadiatorCuts = new G4ProductionCuts(); - - fRadiatorCuts->SetProductionCut(fGammaCut, idxG4GammaCut); - fRadiatorCuts->SetProductionCut(fElectronCut, idxG4ElectronCut); - fRadiatorCuts->SetProductionCut(fPositronCut, idxG4PositronCut); - - G4cout<<"Radiator gamma cut = "<SetProductionCut(fGammaCut, idxG4GammaCut); - fDetectorCuts->SetProductionCut(fElectronCut, idxG4ElectronCut); - fDetectorCuts->SetProductionCut(fPositronCut, idxG4PositronCut); - - G4cout<<"Detector gamma cut = "<SetGuidance("Set cut values by RANGE for Gamma."); - cutGCmd->SetParameterName("range",true); - cutGCmd->SetDefaultValue(1.); - cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); - cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); - cutECmd->SetParameterName("range",true); - cutECmd->SetDefaultValue(1.); - cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); - setMaxStepCmd->SetGuidance("Set max. step length in the detector"); - setMaxStepCmd->SetParameterName("mxStep",true); - setMaxStepCmd->SetDefaultUnit("mm"); - - - ElectronCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setElectronCut",this); - ElectronCutCmd->SetGuidance("Set electron cut in mm for vertex region"); - ElectronCutCmd->SetParameterName("ElectronCut",false,false); - ElectronCutCmd->SetDefaultUnit("mm"); - ElectronCutCmd->SetRange("ElectronCut>0."); - ElectronCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - - PositronCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setPositronCut",this); - PositronCutCmd->SetGuidance("Set positron cut in mm for vertex region"); - PositronCutCmd->SetParameterName("PositronCut",false,false); - PositronCutCmd->SetDefaultUnit("mm"); - PositronCutCmd->SetRange("PositronCut>0."); - PositronCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - - GammaCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setGammaCut",this); - GammaCutCmd->SetGuidance("Set gamma cut in mm for vertex region"); - GammaCutCmd->SetParameterName("GammaCut",false,false); - GammaCutCmd->SetDefaultUnit("mm"); - GammaCutCmd->SetRange("GammaCut>0."); - GammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - RadiatorCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setRadiatorCuts",this); - RadiatorCutCmd->SetGuidance("Set radiator cut in mm for vertex region"); - RadiatorCutCmd->SetParameterName("RadiatorCuts",false,false); - RadiatorCutCmd->SetDefaultUnit("mm"); - RadiatorCutCmd->SetRange("RadiatorCuts > 0."); - RadiatorCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - DetectorCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setDetectorCuts",this); - DetectorCutCmd->SetGuidance("Set radiator cut in mm for vertex region"); - DetectorCutCmd->SetParameterName("DetectorCuts",false,false); - DetectorCutCmd->SetDefaultUnit("mm"); - DetectorCutCmd->SetRange("DetectorCuts > 0."); - DetectorCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - XTRModelCmd = new G4UIcmdWithAString("/emphyslist/setXTRModel",this); - XTRModelCmd->SetGuidance("Set XTR model"); - XTRModelCmd->SetParameterName("XTRModel",false); - XTRModelCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - -} - -///////////////////////////////////////////////////////////////////////////// - -Em10PhysicsListMessenger::~Em10PhysicsListMessenger() -{ - delete cutGCmd; - delete cutECmd; - - delete setMaxStepCmd; - - delete ElectronCutCmd; - delete PositronCutCmd; - delete GammaCutCmd; - delete XTRModelCmd; -} - -//////////////////////////////////////////////////////////////////////////////// - -void Em10PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if(command == cutGCmd) - { Em10List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} - if(command == cutECmd) - { Em10List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} - if(command == setMaxStepCmd) - { Em10List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} - - if( command == ElectronCutCmd ) - { - Em10List->SetRegElectronCut(ElectronCutCmd->GetNewDoubleValue(newValue)); - } - if( command == PositronCutCmd ) - { - Em10List->SetRegPositronCut(PositronCutCmd->GetNewDoubleValue(newValue)); - } - if( command == GammaCutCmd ) - { - Em10List->SetRegGammaCut(GammaCutCmd->GetNewDoubleValue(newValue)); - } - if( command == RadiatorCutCmd ) - { - Em10List->SetRadiatorCuts(); - } - if( command == DetectorCutCmd ) - { - Em10List->SetDetectorCuts(); - } - if( command == XTRModelCmd ) - { - Em10List->SetXTRModel(newValue); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc deleted file mode 100644 index 95c07b413d..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc +++ /dev/null @@ -1,166 +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 electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc -/// \brief Implementation of the Em10PrimaryGeneratorAction class -// -// -// $Id: Em10PrimaryGeneratorAction.cc 73033 2013-08-15 09:24:45Z gcosmo $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em10PrimaryGeneratorAction.hh" - -#include "Em10DetectorConstruction.hh" -#include "Em10PrimaryGeneratorMessenger.hh" - -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" -#include "Randomize.hh" -#include "G4ios.hh" -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" - - G4String Em10PrimaryGeneratorAction::thePrimaryParticleName="proton"; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em10PrimaryGeneratorAction::Em10PrimaryGeneratorAction( - Em10DetectorConstruction*) -// Em10DetectorConstruction* Em10DC) -:G4VUserPrimaryGeneratorAction(), -// Em10Detector(Em10DC), - rndmFlag("off"),xvertex(0.),yvertex(0.),zvertex(0.), - vertexdefined(false) -{ - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - - //create a messenger for this class - gunMessenger = new Em10PrimaryGeneratorMessenger(this); - - // default particle kinematic - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="proton"); - particleGun->SetParticleDefinition(particle); - - thePrimaryParticleName = particle->GetParticleName(); - - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); - particleGun->SetParticleEnergy(100.*GeV); - - zvertex = 0.0 ; // -0.5*(Em10Detector->GetAbsorberThickness()); - particleGun->SetParticlePosition(G4ThreeVector(xvertex,yvertex,zvertex)); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em10PrimaryGeneratorAction::~Em10PrimaryGeneratorAction() -{ - delete particleGun; - delete gunMessenger; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ - //this function is called at the begining of event - // - thePrimaryParticleName = particleGun->GetParticleDefinition()-> - GetParticleName(); - /* **************************************************** - G4double x0,y0,z0; - if(vertexdefined) - { - x0 = xvertex; - y0 = yvertex; - z0 = zvertex; - } - else - { - x0 = 0.; - y0 = 0.; - z0 = 0.; // -0.5*(Em10Detector->GetWorldSizeZ()) ; - } - G4double r0,phi0; - if (rndmFlag == "on") - { - r0 = Em10Detector->GetAbsorberRadius())*std::sqrt(G4UniformRand(); - phi0 = twopi*G4UniformRand(); - x0 = r0*std::cos(phi0); - y0 = r0*std::sin(phi0); - } - ********************************************* */ - // particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); - particleGun->SetParticlePosition(G4ThreeVector(0.,0.,0.)); - particleGun->GeneratePrimaryVertex(anEvent); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4String Em10PrimaryGeneratorAction::GetPrimaryName() -{ - return thePrimaryParticleName; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PrimaryGeneratorAction::Setzvertex(G4double z) -{ - vertexdefined = true; - zvertex = z; - G4cout << " Z coordinate of the primary vertex = " << zvertex/mm << - " mm." << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PrimaryGeneratorAction::Setxvertex(G4double x) -{ - vertexdefined = true; - xvertex = x; - G4cout << " X coordinate of the primary vertex = " << xvertex/mm << - " mm." << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10PrimaryGeneratorAction::Setyvertex(G4double y) -{ - vertexdefined = true; - yvertex = y; - G4cout << " Y coordinate of the primary vertex = " << yvertex/mm << - " mm." << G4endl; -} diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc deleted file mode 100644 index f5190fd13a..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc +++ /dev/null @@ -1,99 +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 electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc -/// \brief Implementation of the Em10PrimaryGeneratorMessenger class -// -// -// $Id: Em10PrimaryGeneratorMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "Em10PrimaryGeneratorMessenger.hh" - -#include "Em10PrimaryGeneratorAction.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4SystemOfUnits.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10PrimaryGeneratorMessenger::Em10PrimaryGeneratorMessenger(Em10PrimaryGeneratorAction* Em10Gun) -:G4UImessenger(),Em10Action(Em10Gun) -{ - RndmCmd = new G4UIcmdWithAString("/gun/random",this); - RndmCmd->SetGuidance("Shoot randomly the incident particle."); - RndmCmd->SetGuidance(" Choice : on, off(default)"); - RndmCmd->SetParameterName("choice",true); - RndmCmd->SetDefaultValue("off"); - RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); - setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); - setxvertexCmd->SetParameterName("xv",true); - setxvertexCmd->SetDefaultValue(0.0*mm) ; - - setyvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/yvertex",this); - setyvertexCmd->SetGuidance(" Set y coord. of the primary vertex."); - setyvertexCmd->SetParameterName("yv",true); - setyvertexCmd->SetDefaultValue(0.0*mm) ; - - setzvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/zvertex",this); - setzvertexCmd->SetGuidance(" Set z coord. of the primary vertex."); - setzvertexCmd->SetParameterName("zv",true); - setzvertexCmd->SetDefaultValue(0.0*mm) ; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10PrimaryGeneratorMessenger::~Em10PrimaryGeneratorMessenger() -{ - delete RndmCmd; - delete setxvertexCmd; - delete setyvertexCmd; - delete setzvertexCmd; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10PrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) -{ - if( command == RndmCmd ) - { Em10Action->SetRndmFlag(newValue);} - if( command == setxvertexCmd) - { Em10Action->Setxvertex(setxvertexCmd->GetNewDoubleValue(newValue));} - if( command == setyvertexCmd) - { Em10Action->Setyvertex(setyvertexCmd->GetNewDoubleValue(newValue));} - if( command == setzvertexCmd) - { Em10Action->Setzvertex(setzvertexCmd->GetNewDoubleValue(newValue));} -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc deleted file mode 100644 index 5d9c6e8bfe..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc +++ /dev/null @@ -1,1059 +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 electromagnetic/TestEm10/src/Em10RunAction.cc -/// \brief Implementation of the Em10RunAction class -// -// -// $Id: Em10RunAction.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -// - - -#include "Em10RunAction.hh" -#include "Em10RunMessenger.hh" - -#include "G4Run.hh" -#include "G4UImanager.hh" -#include "G4VVisManager.hh" -#include "G4ios.hh" -#include - -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" -#include "Randomize.hh" - -////////////////////////////////////////////////////////////////////////////// - -Em10RunAction::Em10RunAction() - :G4UserRunAction(), - histName("histfile"),nbinStep(0),nbinEn(0),nbinTt(0),nbinTb(0), - nbinTsec(0),nbinTh(0),nbinThback(0),nbinR(0),nbinGamma(0), - nbinvertexz(0) -{ - runMessenger = new Em10RunMessenger(this); - saveRndm = 1; - - EnergySumAbs = EnergySquareSumAbs = tlSumAbs = tlsquareSumAbs = - nStepSumCharged = nStepSum2Charged= nStepSumNeutral = nStepSum2Neutral= - TotNbofEvents = SumCharged= SumNeutral=Sum2Charged=Sum2Neutral=Selectron= - Spositron=Transmitted=Reflected =dStep=entryStep=underStep=overStep= - dEn = entryEn= underEn=overEn=dTt = entryTt=underTt=overTt=Ttmean= - Tt2mean=dTb = entryTb=underTb=overTb=Tbmean=Tb2mean=dTsec =entryTsec= - underTsec=overTsec=dTh = entryTh=underTh=overTh=dThback =entryThback= - underThback=overThback=dR =entryR =underR =overR =Rmean=R2mean=dEGamma= - entryGamma = underGamma=overGamma=dz=entryvertexz=undervertexz= - oververtexz=0.; -} - -//////////////////////////////////////////////////////////////////////////// - -Em10RunAction::~Em10RunAction() -{ - delete runMessenger; -} - -//////////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::bookHisto() -{ -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::BeginOfRunAction(const G4Run* aRun) -{ - G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - - // save Rndm status - if (saveRndm > 0) - { - CLHEP::HepRandom::showEngineStatus(); - CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); - } - G4UImanager* UI = G4UImanager::GetUIpointer(); - - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - - if(pVVisManager) UI->ApplyCommand("/vis/scene/notifyHandlers"); - - - EnergySumAbs = 0. ; - EnergySquareSumAbs = 0.; - tlSumAbs = 0. ; - tlsquareSumAbs = 0. ; - nStepSumCharged = 0. ; - nStepSum2Charged= 0. ; - nStepSumNeutral = 0. ; - nStepSum2Neutral= 0. ; - TotNbofEvents = 0. ; - SumCharged=0.; - SumNeutral=0.; - Sum2Charged=0.; - Sum2Neutral=0.; - Selectron=0.; - Spositron=0.; - - Transmitted=0.; - Reflected =0.; - - // plot definitions - - if(nbinStep>0) - { - dStep=(Stephigh-Steplow)/nbinStep; - entryStep=0.; - underStep=0.; - overStep=0.; - for(G4int ist=0; ist<200; ist++) - { - distStep[ist]=0.; - } - } - if(nbinEn>0) - { - dEn = (Enhigh-Enlow)/nbinEn ; - entryEn=0.; - underEn=0.; - overEn=0.; - - for (G4int ien=0; ien<200; ien++) distEn[ien]=0.; - } - if(nbinTt>0) - { - dTt = (Tthigh-Ttlow)/nbinTt ; - entryTt=0.; - underTt=0.; - overTt=0.; - - for (G4int itt=0; itt<200; itt++) distTt[itt]=0.; - - Ttmean=0.; - Tt2mean=0.; - } - if(nbinTb>0) - { - dTb = (Tbhigh-Tblow)/nbinTb ; - entryTb=0.; - underTb=0.; - overTb=0.; - for (G4int itt=0; itt<200; itt++) - { - distTb[itt]=0.; - } - Tbmean=0.; - Tb2mean=0.; - } - if(nbinTsec>0) - { - dTsec = (Tsechigh-Tseclow)/nbinTsec ; - entryTsec=0.; - underTsec=0.; - overTsec=0.; - for (G4int its=0; its<200; its++) - { - distTsec[its]=0.; - } - } - if(nbinTh>0) - { - dTh = (Thhigh-Thlow)/nbinTh ; - entryTh=0.; - underTh=0.; - overTh=0.; - for (G4int ith=0; ith<200; ith++) - { - distTh[ith]=0.; - } - } - - if(nbinThback>0) - { - dThback = (Thhighback-Thlowback)/nbinThback ; - entryThback=0.; - underThback=0.; - overThback=0.; - for (G4int ithback=0; ithback<200; ithback++) - { - distThback[ithback]=0.; - } - } - - - if(nbinR >0) - { - dR = (Rhigh-Rlow)/nbinR ; - entryR =0.; - underR =0.; - overR =0.; - for (G4int ir =0; ir<200; ir++) - { - distR[ir]=0.; - } - Rmean=0.; - R2mean=0.; - } - - if(nbinGamma>0) - { - dEGamma = std::log(EhighGamma/ElowGamma)/nbinGamma ; - entryGamma = 0.; - underGamma=0.; - overGamma=0.; - for (G4int ig=0; ig<200; ig++) - { - distGamma[ig]=0.; - } - } - if(nbinvertexz>0) - { - dz=(zhigh-zlow)/nbinvertexz; - entryvertexz=0.; - undervertexz=0.; - oververtexz=0.; - for(G4int iz=0; iz<200; iz++) - { - distvertexz[iz]=0.; - } - } - - bookHisto(); -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::EndOfRunAction(const G4Run*) -{ - G4double sAbs,sigAbs,sigstep,sigcharged,signeutral; - if(0.0 >= TotNbofEvents) { return; } - - tlSumAbs /= TotNbofEvents ; - sAbs = tlsquareSumAbs/TotNbofEvents-tlSumAbs*tlSumAbs ; - if(sAbs>0.) - sAbs = std::sqrt(sAbs/TotNbofEvents) ; - else - sAbs = 0. ; - - EnergySumAbs /= TotNbofEvents ; - sigAbs = EnergySquareSumAbs/TotNbofEvents-EnergySumAbs*EnergySumAbs; - if(sigAbs>0.) - sigAbs = std::sqrt(sigAbs/TotNbofEvents); - else - sigAbs = 0.; - - nStepSumCharged /= TotNbofEvents ; - sigstep = nStepSum2Charged/TotNbofEvents-nStepSumCharged*nStepSumCharged; - if(sigstep>0.) - sigstep = std::sqrt(sigstep/TotNbofEvents); - else - sigstep = 0.; - G4double sigch=sigstep ; - - nStepSumNeutral /= TotNbofEvents ; - sigstep = nStepSum2Neutral/TotNbofEvents-nStepSumNeutral*nStepSumNeutral; - if(sigstep>0.) - sigstep = std::sqrt(sigstep/TotNbofEvents); - else - sigstep = 0.; - G4double signe=sigstep ; - - SumCharged /= TotNbofEvents; - sigcharged = Sum2Charged/TotNbofEvents-SumCharged*SumCharged; - if(sigcharged>0.) - sigcharged = std::sqrt(sigcharged/TotNbofEvents); - else - sigcharged = 0. ; - - SumNeutral /= TotNbofEvents; - signeutral = Sum2Neutral/TotNbofEvents-SumNeutral*SumNeutral; - if(signeutral>0.) - signeutral = std::sqrt(signeutral/TotNbofEvents); - else - signeutral = 0. ; - - Selectron /= TotNbofEvents ; - Spositron /= TotNbofEvents ; - - Transmitted /=TotNbofEvents ; - Reflected /=TotNbofEvents ; - G4cout << " ================== run summary =====================" << G4endl; - G4int prec = G4cout.precision(6); - G4cout << " end of Run TotNbofEvents = " << - TotNbofEvents << G4endl ; - G4cout << " mean charged track length in absorber=" << - tlSumAbs/mm << " +- " << sAbs/mm << - " mm " << G4endl; - G4cout << G4endl; - G4cout << " mean energy deposit in absorber=" << - EnergySumAbs/MeV << " +- " << sigAbs/MeV << - " MeV " << G4endl ; - G4cout << G4endl ; - G4cout << " mean number of steps in absorber (charged) =" << - nStepSumCharged << " +- " << sigch << - " " << G4endl ; - G4cout << " mean number of steps in absorber (neutral) =" << - nStepSumNeutral << " +- " << signe << - " " << G4endl ; - G4cout << G4endl ; - G4cout << " mean number of charged secondaries = " << - SumCharged << " +- " << sigcharged << G4endl; - G4cout << G4endl ; - G4cout << " mean number of neutral secondaries = " << - SumNeutral << " +- " << signeutral << G4endl; - G4cout << G4endl ; - - G4cout << " mean number of e-s =" << Selectron << - " and e+s =" << Spositron << G4endl; - G4cout << G4endl; - - G4cout << "(number) transmission coeff=" << Transmitted << - " reflection coeff=" << Reflected << G4endl; - G4cout << G4endl; - - if(nbinStep>0) - {G4double E , dnorm, norm ; - G4cout << " step number/event distribution " << G4endl ; - G4cout << "#entries=" << entryStep << " #underflows=" << underStep << - " #overflows=" << overStep << G4endl ; - if( entryStep>0.) - { - E = Steplow - dStep ; - norm = TotNbofEvents ; - G4cout << " bin nb nsteplow entries normalized " << G4endl ; - for(G4int iss=0; iss 0) - { - std::ofstream fileOut("distribution.out", std::ios::out ) ; - fileOut.setf( std::ios::scientific, std::ios::floatfield ); - - std::ofstream normOut("normDist.out", std::ios::out ) ; - normOut.setf( std::ios::scientific, std::ios::floatfield ); - - G4double E , dnorm, norm,fmax,Emp ; - Emp=-999.999 ; - G4cout << " energy deposit distribution " << G4endl ; - G4cout << "#entries=" << entryEn << " #underflows=" << underEn << - " #overflows=" << overEn << G4endl ; - if( entryEn>0.) - { - E = Enlow - dEn ; - norm = TotNbofEvents*1.0 ; // *dEn ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - fmax = 0. ; - - for(G4int ien=0; ienfmax) - { - fmax = distEn[ien] ; - Emp = E ; // most probable roughly - } - dnorm = distEn[ien]/norm; - - G4cout << std::setw(5) << ien << std::setw(10) << E/keV << - std::setw(12) << distEn[ien] << - std::setw(12) << dnorm << G4endl ; - - fileOut << E/keV << "\t"<< distEn[ien] << G4endl ; - normOut << E/keV << "\t"<< dnorm << G4endl ; - } - G4cout << G4endl; - G4int ii ; - G4double E1,E2 ; - E1=-1.e6 ; - E2=+1.e6 ; - E = Enlow -dEn ; - ii = -1; - - for(G4int i1=0; i1= 0.5*fmax) - { - E1=E ; - ii=i1 ; - } - } - } - E = Enlow -dEn ; - - for(G4int i2=0; i2= 0.5*fmax) E2=E ; - } - G4cout << " Emp = " << std::setw(15) << Emp/MeV << " width=" - << std::setw(15) << (E2-E1)/MeV << " MeV " << G4endl; - G4cout << G4endl ; - } - } - if(nbinTt>0) - { - G4double E , dnorm, norm ,sig; - G4cout << " transmitted energy distribution " << G4endl ; - G4cout << "#entries=" << entryTt << " #underflows=" << underTt << - " #overflows=" << overTt << G4endl ; - if( entryTt>0.) - { - Ttmean /= entryTt; - sig=Tt2mean/entryTt-Ttmean*Ttmean ; - if(sig<=0.) - sig=0.; - else - sig=std::sqrt(sig/entryTt) ; - G4cout << " mean energy of transmitted particles=" << Ttmean/keV << - " +- " << sig/keV << " keV." << G4endl; - E = Ttlow - dTt ; - norm = TotNbofEvents*dTt ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - { - G4double E , dnorm, norm ,sig; - G4cout << " backscattered energy distribution " << G4endl ; - G4cout << "#entries=" << entryTb << " #underflows=" << underTb << - " #overflows=" << overTb << G4endl ; - if( entryTb>0.) - { - Tbmean /= entryTb; - sig=Tb2mean/entryTb-Tbmean*Tbmean ; - if(sig<=0.) - sig=0.; - else - sig=std::sqrt(sig/entryTb) ; - G4cout << " mean energy of backscattered particles=" << Tbmean/keV << - " +- " << sig/keV << " keV." << G4endl; - E = Tblow - dTb ; - norm = TotNbofEvents*dTb ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - {G4double E , dnorm, norm ; - G4cout << " energy distribution of charged secondaries " << G4endl ; - G4cout << "#entries=" << entryTsec << " #underflows=" << underTsec << - " #overflows=" << overTsec << G4endl ; - if( entryTsec>0.) - { - E = Tseclow - dTsec ; - norm = TotNbofEvents*dTsec ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - {G4double R , dnorm, norm,sig ; - G4cout << " R distribution " << G4endl ; - G4cout << "#entries=" << entryR << " #underflows=" << underR << - " #overflows=" << overR << G4endl ; - if( entryR >0.) - { - Rmean /= entryR; - sig = R2mean/entryR - Rmean*Rmean; - if(sig<=0.) sig=0. ; - else sig = std::sqrt(sig/entryR) ; - G4cout << " mean lateral displacement at exit=" << Rmean/mm << " +- " - << sig/mm << " mm." << G4endl ; - R = Rlow - dR ; - norm = TotNbofEvents*dR ; - G4cout << " bin nb Rlow entries normalized " << G4endl ; - for(G4int ier=0; ier0) - {G4double Th,Thdeg, dnorm, norm,fac0,fnorm,pere,Thpere,Thmean,sum; - G4cout << " angle distribution " << G4endl ; - G4cout << "#entries=" << entryTh << " #underflows=" << underTh << - " #overflows=" << overTh << G4endl ; - if( entryTh>0.) - { - Th= Thlow - dTh ; - norm = TotNbofEvents ; - if(distTh[0] == 0.) - fac0 = 1. ; - else - fac0 = 1./distTh[0] ; - pere = 1./std::exp(1.) ; - - G4cout << " bin nb Thlowdeg Thlowrad " << - " entries normalized " << G4endl ; - Thpere = 0. ; - sum = 0. ; - Thmean = 0. ; - for(G4int ien=0; ien pere) - Thpere = Th ; - G4cout << std::setw(5) << ien << std::setw(10) << Thdeg << " " << - std::setw(10) << Th << " " << - std::setw(12) << distTh[ien] << " " << - std::setw(12) << dnorm << " " << std::setw(12) << fnorm <0) - {G4double Thb,Thdegb, dnormb, normb,fac0b,fnormb,pereb,Thpereb,Thmeanb,sumb; - G4cout << " backscattering angle distribution " << G4endl ; - G4cout << "#entries=" << entryThback << " #underflows=" << underThback << - " #overflows=" << overThback << G4endl ; - if( entryThback>0.) - { - Thb= Thlowback - dThback ; - normb = TotNbofEvents ; - if(distThback[0] == 0.) - fac0b = 1. ; - else - fac0b = 1./distThback[0] ; - pereb = 1./std::exp(1.) ; - - G4cout << " bin nb Thlowdeg Thlowrad " << - " entries normalized " << G4endl ; - Thpereb = 0. ; - sumb = 0. ; - Thmeanb = 0. ; - for(G4int ien=0; ien pereb) - Thpereb = Thb ; - G4cout << std::setw(5) << ien << std::setw(10) << Thdegb << " " << - std::setw(10) << Thb << " " << - std::setw(12) << distThback[ien] << " " << - std::setw(12) << dnormb << " " << std::setw(12) << fnormb <0) - {G4double E , fact,dnorm, norm ; - G4cout << " gamma energy distribution " << G4endl ; - G4cout << "#entries=" << entryGamma << " #underflows=" << underGamma << - " #overflows=" << overGamma << G4endl ; - if( entryGamma>0.) - { - fact=std::exp(dEGamma) ; - E = ElowGamma/fact ; - norm = TotNbofEvents*dEGamma; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - {G4double z , dnorm, norm ; - G4cout << " vertex Z distribution " << G4endl ; - G4cout << "#entries=" << entryvertexz << " #underflows=" << undervertexz << - " #overflows=" << oververtexz << G4endl ; - if( entryvertexz >0.) - { - z =zlow - dz ; - norm = TotNbofEvents*dz ; - G4cout << " bin nb zlow entries normalized " << G4endl ; - for(G4int iez=0; iezApplyCommand("/vis/viewer/update"); - } - - // save Rndm status - - if (saveRndm == 1) - { - CLHEP::HepRandom::showEngineStatus(); - CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); - } -} - -/////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::CountEvent() -{ - TotNbofEvents += 1. ; -} - -///////////////////////////////////////////////////////////////////////// - -void Em10RunAction::AddnStepsCharged(G4double nstp) -{ - nStepSumCharged += nstp; - nStepSum2Charged += nstp*nstp; -} - -//////////////////////////////////////////////////////////////////////// - -void Em10RunAction::AddnStepsNeutral(G4double nstp) -{ - nStepSumNeutral += nstp; - nStepSum2Neutral += nstp*nstp; -} - -//////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::AddEdeps(G4double Eabs) -{ - EnergySumAbs += Eabs; - EnergySquareSumAbs += Eabs*Eabs; -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::AddTrackLength(G4double tlabs) -{ - tlSumAbs += tlabs; - tlsquareSumAbs += tlabs*tlabs ; -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::AddTrRef(G4double tr,G4double ref) -{ - Transmitted += tr ; - Reflected += ref; -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillNbOfSteps(G4double)// ns) -{ -} - -////////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillEn(G4double En) -{ - G4double bin ; - G4int ibin; - - entryEn += 1. ; - if(Enlow < Enhigh) { - - if(En < Enlow) underEn += 1. ; - else if( En >= Enhigh) overEn += 1. ; - else - { - bin = (En-Enlow)/dEn; - ibin= (G4int)bin; - if(ibin < 0) { ibin = 0; } - if(ibin > 199) { ibin = 199; } - distEn[ibin] += 1.; - } - } -} - -//////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillTt(G4double) // En) -{ -} - -////////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillTb(G4double) // En) -{ -} - -/////////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillTsec(G4double) // En) -{ -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillGammaSpectrum(G4double) // En) -{ -} - -//////////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillTh(G4double) // Th) -{ -} - -////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillThBack(G4double) // Th) -{ -} - -////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::FillR(G4double) // R ) -{ -} - -///////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::Fillvertexz(G4double) // z ) -{ -} - -////////////////////////////////////////////////////////////////////////////// - -void Em10RunAction::SethistName(G4String name) -{ - histName = name ; - G4cout << " hist file = " << histName << G4endl; -} - -void Em10RunAction::SetnbinStep(G4int nbin) -{ - if(nbin> 0 && nbin<= 200) { - nbinStep = nbin; - G4cout << " Nb of bins in #step plot = " << nbinStep << G4endl ; - } -} - -void Em10RunAction::SetSteplow(G4double low) -{ - if(low >= 0.0){ - Steplow = low ; - G4cout << " low in the #step plot = " << Steplow << G4endl ; - } -} -void Em10RunAction::SetStephigh(G4double high) -{ - if(high > 0.0) { - Stephigh = high; - G4cout << " high in the #step plot = " << Stephigh << G4endl ; - } -} - -//////////////////////////////////////////////////////////////////////// - -void Em10RunAction::SetnbinEn(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinEn = nbin; - G4cout << " Nb of bins in Edep plot = " << nbinEn << G4endl ; - } -} - -void Em10RunAction::SetEnlow(G4double Elow) -{ - if(Elow >= 0.0) { - Enlow = Elow ; - G4cout << " Elow in the Edep plot = " << Enlow << G4endl ; - } -} - -void Em10RunAction::SetEnhigh(G4double Ehigh) -{ - if(Ehigh > 0.0) { - Enhigh = Ehigh ; - G4cout << " Ehigh in the Edep plot = " << Enhigh << G4endl ; - } -} - -///////////////////////////////////////////////////////////////////////// - -void Em10RunAction::SetnbinGamma(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinGamma = nbin; - G4cout << " Nb of bins in gamma spectrum plot = " << nbinGamma << G4endl ; - } -} - -void Em10RunAction::SetElowGamma(G4double Elow) -{ - if(Elow >= 0.0) { - ElowGamma = Elow; - G4cout << " Elow in the gamma spectrum plot = " << ElowGamma << G4endl ; - } -} - -void Em10RunAction::SetEhighGamma(G4double Ehigh) -{ - if(Ehigh > 0.0) { - EhighGamma = Ehigh; - G4cout << " Ehigh in the gamma spectrum plot = " << EhighGamma << G4endl ; - } -} - -void Em10RunAction::SetnbinTt(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinTt = nbin; - G4cout << " Nb of bins in Etransmisssion plot = " << nbinTt << G4endl ; - } -} - -void Em10RunAction::SetTtlow(G4double Elow) -{ - if(Elow >= 0.0) { - Ttlow = Elow; - G4cout << " Elow in the Etransmission plot = " << Ttlow << G4endl ; - } -} - -void Em10RunAction::SetTthigh(G4double Ehigh) -{ - if(Ehigh > 0.0) { - Tthigh = Ehigh; - G4cout << " Ehigh in the Etransmission plot = " << Tthigh << G4endl ; - } -} - -void Em10RunAction::SetnbinTb(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinTb = nbin; - G4cout << " Nb of bins in Ebackscattered plot = " << nbinTb << G4endl ; - } -} - -void Em10RunAction::SetTblow(G4double Elow) -{ - - Tblow = Elow ; - G4cout << " Elow in the Ebackscattered plot = " << Tblow << G4endl ; -} - -void Em10RunAction::SetTbhigh(G4double Ehigh) -{ - Tbhigh = Ehigh ; - G4cout << " Ehigh in the Ebackscattered plot = " << Tbhigh << G4endl ; -} - -void Em10RunAction::SetnbinTsec(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinTsec = nbin; - G4cout << " Nb of bins in Tsecondary plot = " << nbinTsec << G4endl ; - } -} - -void Em10RunAction::SetTseclow(G4double Elow) -{ - Tseclow = Elow ; - G4cout << " Elow in the Tsecondary plot = " << Tseclow << G4endl ; -} - -void Em10RunAction::SetTsechigh(G4double Ehigh) -{ - Tsechigh = Ehigh ; - G4cout << " Ehigh in the Tsecondary plot = " << Tsechigh << G4endl ; -} - -void Em10RunAction::SetnbinR(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinR = nbin; - G4cout << " Nb of bins in R plot = " << nbinR << G4endl ; - } -} - -void Em10RunAction::SetRlow(G4double rlow) -{ - Rlow = rlow ; - G4cout << " Rlow in the R plot = " << Rlow << G4endl ; -} - -void Em10RunAction::SetRhigh(G4double rhigh) -{ - Rhigh = rhigh ; - G4cout << " Rhigh in the R plot = " << Rhigh << G4endl ; -} - -void Em10RunAction::Setnbinzvertex(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinvertexz = nbin; - G4cout << " Nb of bins in Z plot = " << nbinvertexz << G4endl ; - } -} - -void Em10RunAction::Setzlow(G4double z) -{ - zlow = z ; - G4cout << " zlow in the Z plot = " << zlow << G4endl ; -} - -void Em10RunAction::Setzhigh(G4double z) -{ - zhigh = z ; - G4cout << " zhigh in the Z plot = " << zhigh << G4endl ; -} - -void Em10RunAction::SetnbinTh(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinTh = nbin; - G4cout << " Nb of bins in Theta plot = " << nbinTh << G4endl ; - } -} - -void Em10RunAction::SetThlow(G4double Tlow) -{ - Thlow = Tlow ; - G4cout << " Tlow in the Theta plot = " << Thlow << G4endl ; -} - -void Em10RunAction::SetThhigh(G4double Thigh) -{ - Thhigh = Thigh ; - G4cout << " Thigh in the Theta plot = " << Thhigh << G4endl ; -} - -void Em10RunAction::SetnbinThBack(G4int nbin) -{ - if(nbin > 0 && nbin <= 200) { - nbinThback = nbin; - G4cout << " Nb of bins in Theta plot = " << nbinThback << G4endl ; - } -} - -void Em10RunAction::SetThlowBack(G4double Tlow) -{ - Thlowback = Tlow ; - G4cout << " Tlow in the Theta plot = " << Thlowback << G4endl ; -} - -void Em10RunAction::SetThhighBack(G4double Thigh) -{ - Thhighback = Thigh ; - G4cout << " Thigh in the Theta plot = " << Thhighback << G4endl ; -} - -void Em10RunAction::CountParticles(G4double nch,G4double nne) -{ - SumCharged += nch ; - SumNeutral += nne ; - Sum2Charged += nch*nch ; - Sum2Neutral += nne*nne ; -} - -void Em10RunAction::AddEP(G4double nele,G4double npos) -{ - Selectron += nele; - Spositron += npos; -} - -// -// -//////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc deleted file mode 100644 index db8024c398..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc +++ /dev/null @@ -1,395 +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 electromagnetic/TestEm10/src/Em10RunMessenger.cc -/// \brief Implementation of the Em10RunMessenger class -// -// -// $Id: Em10RunMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "Em10RunMessenger.hh" - -#include "Em10RunAction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcmdWithAString.hh" -#include "G4ios.hh" -#include "globals.hh" -#include "Randomize.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10RunMessenger::Em10RunMessenger(Em10RunAction* RA) -:G4UImessenger(),runAction (RA) -{ - plotDir = new G4UIdirectory("/plots/"); - plotDir->SetGuidance("plot control"); - - sethistNameCmd = new G4UIcmdWithAString("/plots/sethistName",this); - sethistNameCmd->SetGuidance("set name for the histogram file"); - - setnbinStepCmd = new G4UIcmdWithAnInteger("/plots/setnbinStep",this); - setnbinStepCmd->SetGuidance("set nb of bins in #step plot"); - setnbinStepCmd->SetParameterName("nbinStep",false); - - setSteplowCmd = new G4UIcmdWithADouble("/plots/setSteplow",this); - setSteplowCmd->SetGuidance("set lower limit for #step plot "); - setSteplowCmd->SetParameterName("Steplow",false); - - setStephighCmd = new G4UIcmdWithADouble("/plots/setStephigh",this); - setStephighCmd->SetGuidance("set upper limit for #step plot "); - setStephighCmd->SetParameterName("Stephigh",false); - - setnbinEnCmd = new G4UIcmdWithAnInteger("/plots/setnbinEn",this); - setnbinEnCmd->SetGuidance("set nb of bins in Edep plot"); - setnbinEnCmd->SetParameterName("nbinE",false); - - setEnlowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setEnlow",this); - setEnlowCmd->SetGuidance("set lower limit for Edep plot "); - setEnlowCmd->SetParameterName("Elow",false); - setEnlowCmd->SetUnitCategory("Energy"); - - setEnhighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setEnhigh",this); - setEnhighCmd->SetGuidance("set upper limit for Edep plot "); - setEnhighCmd->SetParameterName("Ehigh",false); - setEnhighCmd->SetUnitCategory("Energy"); - - setnbinGammaCmd = new G4UIcmdWithAnInteger("/plots/setnbinGamma",this); - setnbinGammaCmd->SetGuidance("set nb of bins in gamma spectrum plot"); - setnbinGammaCmd->SetParameterName("nbinGamma",false); - - setElowGammaCmd = new G4UIcmdWithADoubleAndUnit("/plots/setElowGamma",this); - setElowGammaCmd->SetGuidance("set lower limit for gamma spectrum plot "); - setElowGammaCmd->SetParameterName("ElowGamma",false); - setElowGammaCmd->SetUnitCategory("Energy"); - - setEhighGammaCmd = new G4UIcmdWithADoubleAndUnit("/plots/setEhighGamma",this); - setEhighGammaCmd->SetGuidance("set upper limit for gamma spectrum plot "); - setEhighGammaCmd->SetParameterName("EhighGamma",false); - setEhighGammaCmd->SetUnitCategory("Energy"); - - setnbinTtCmd = new G4UIcmdWithAnInteger("/plots/setnbinTt",this); - setnbinTtCmd->SetGuidance("set nb of bins in Etransmitted plot"); - setnbinTtCmd->SetParameterName("nbinTt",false); - - setTtlowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setTtlow",this); - setTtlowCmd->SetGuidance("set lower limit for Etransmitted plot "); - setTtlowCmd->SetParameterName("Ttlow",false); - - setTthighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setTthigh",this); - setTthighCmd->SetGuidance("set upper limit for Etransmitted plot "); - setTthighCmd->SetParameterName("Tthigh",false); - - setnbinTbCmd = new G4UIcmdWithAnInteger("/plots/setnbinTb",this); - setnbinTbCmd->SetGuidance("set nb of bins in Ebackscattering plot"); - setnbinTbCmd->SetParameterName("nbinTb",false); - - setTblowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setTblow",this); - setTblowCmd->SetGuidance("set lower limit for Ebackscattered plot "); - setTblowCmd->SetParameterName("Tblow",false); - - setTbhighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setTbhigh",this); - setTbhighCmd->SetGuidance("set upper limit for Ebackscattered plot "); - setTbhighCmd->SetParameterName("Tbhigh",false); - - setnbinTsecCmd = new G4UIcmdWithAnInteger("/plots/setnbinTsec",this); - setnbinTsecCmd->SetGuidance("set nb of bins in charged Tsecondary plot"); - setnbinTsecCmd->SetParameterName("nbinTsec",false); - - setTseclowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setTseclow",this); - setTseclowCmd->SetGuidance("set lower limit for charged Tsecondary plot "); - setTseclowCmd->SetParameterName("Tseclow",false); - - setTsechighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setTsechigh",this); - setTsechighCmd->SetGuidance("set upper limit for charged Tsecondary plot "); - setTsechighCmd->SetParameterName("Tsechigh",false); - - setnbinRCmd = new G4UIcmdWithAnInteger("/plots/setnbinR",this); - setnbinRCmd->SetGuidance("set nb of bins in R plot"); - setnbinRCmd->SetParameterName("nbinR",false); - - setRlowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setRlow",this); - setRlowCmd->SetGuidance("set lower limit for R plot "); - setRlowCmd->SetParameterName("Rlow",false); - - setRhighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setRhigh",this); - setRhighCmd->SetGuidance("set upper limit for R plot "); - setRhighCmd->SetParameterName("Rhigh",false); - - setnbinzvertexCmd = new G4UIcmdWithAnInteger("/plots/setnbinzvertex",this); - setnbinzvertexCmd->SetGuidance("set nb of bins in Z vertex plot"); - setnbinzvertexCmd->SetParameterName("nbinZ",false); - - setzlowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setzlow",this); - setzlowCmd->SetGuidance("set lower limit for Z vertex plot "); - setzlowCmd->SetParameterName("zlow",false); - - setzhighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setzhigh",this); - setzhighCmd->SetGuidance("set upper limit for Z vertex plot "); - setzhighCmd->SetParameterName("zhigh",false); - - setnbinThCmd = new G4UIcmdWithAnInteger("/plots/setnbinTh",this); - setnbinThCmd->SetGuidance("set nb of bins in Theta transmitted plot"); - setnbinThCmd->SetParameterName("nbinTh",false); - - setThlowCmd = new G4UIcmdWithADoubleAndUnit("/plots/setThlow",this); - setThlowCmd->SetGuidance("set lower limit for Theta transmitted plot "); - setThlowCmd->SetParameterName("Thlow",false); - - setThhighCmd = new G4UIcmdWithADoubleAndUnit("/plots/setThhigh",this); - setThhighCmd->SetGuidance("set upper limit for Theta transmitted plot "); - setThhighCmd->SetParameterName("Thhigh",false); - - setnbinThbackCmd = new G4UIcmdWithAnInteger("/plots/setnbinThback",this); - setnbinThbackCmd->SetGuidance("set nb of bins in backscattering Theta plot"); - setnbinThbackCmd->SetParameterName("nbinThback",false); - - setThlowbackCmd = new G4UIcmdWithADoubleAndUnit("/plots/setThlowback",this); - setThlowbackCmd->SetGuidance("set lower limit for backscattering Theta plot "); - setThlowbackCmd->SetParameterName("Thlowback",false); - - setThhighbackCmd = new G4UIcmdWithADoubleAndUnit("/plots/setThhighback",this); - setThhighbackCmd->SetGuidance("set upper limit for backscattering Theta plot "); - setThhighbackCmd->SetParameterName("Thhighback",false); - - RndmDir = new G4UIdirectory("/rndm/"); - RndmDir->SetGuidance("Rndm status control."); - - RndmSaveCmd = new G4UIcmdWithAnInteger("/rndm/save",this); - RndmSaveCmd->SetGuidance("set frequency to save rndm status on external files."); - RndmSaveCmd->SetGuidance("freq = 0 not saved"); - RndmSaveCmd->SetGuidance("freq > 0 saved on: beginOfRun.rndm"); - RndmSaveCmd->SetGuidance("freq = 1 saved on: endOfRun.rndm"); - RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); - RndmSaveCmd->SetParameterName("frequency",false); - RndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); - RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); - RndmReadCmd->SetGuidance("get rndm status from an external file."); - RndmReadCmd->SetParameterName("fileName",true); - RndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); - RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10RunMessenger::~Em10RunMessenger() -{ - delete sethistNameCmd; - - delete setnbinStepCmd; - delete setSteplowCmd; - delete setStephighCmd; - - delete setnbinEnCmd; - delete setEnlowCmd; - delete setEnhighCmd; - - delete setnbinGammaCmd; - delete setElowGammaCmd; - delete setEhighGammaCmd; - - delete setnbinTtCmd; - delete setTtlowCmd; - delete setTthighCmd; - - delete setnbinTbCmd; - delete setTblowCmd; - delete setTbhighCmd; - - delete setnbinTsecCmd; - delete setTseclowCmd; - delete setTsechighCmd; - - delete setnbinRCmd; - delete setRlowCmd; - delete setRhighCmd; - - delete setnbinzvertexCmd; - delete setzlowCmd; - delete setzhighCmd; - - delete setnbinThCmd; - delete setThlowCmd; - delete setThhighCmd; - - delete setnbinThbackCmd; - delete setThlowbackCmd; - delete setThhighbackCmd; - - delete plotDir; - - delete RndmSaveCmd; delete RndmReadCmd; delete RndmDir; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) -{ - if( command == sethistNameCmd) - runAction - ->SethistName(newValues) ; - - if( command == setnbinStepCmd) - runAction - ->SetnbinStep(setnbinStepCmd->GetNewIntValue(newValues)); - - if( command == setSteplowCmd) - runAction - ->SetSteplow( setSteplowCmd->GetNewDoubleValue(newValues)); - - if( command == setStephighCmd) - runAction - ->SetStephigh( setStephighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinEnCmd) - runAction - ->SetnbinEn(setnbinEnCmd->GetNewIntValue(newValues)); - - if( command == setEnlowCmd) - runAction - ->SetEnlow( setEnlowCmd->GetNewDoubleValue(newValues)); - - if( command == setEnhighCmd) - runAction - ->SetEnhigh( setEnhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinGammaCmd) - runAction - ->SetnbinGamma(setnbinGammaCmd->GetNewIntValue(newValues)); - - if( command == setElowGammaCmd) - runAction - ->SetElowGamma( setElowGammaCmd->GetNewDoubleValue(newValues)); - - if( command == setEhighGammaCmd) - runAction - ->SetEhighGamma( setEhighGammaCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinTtCmd) - runAction - ->SetnbinTt(setnbinTtCmd->GetNewIntValue(newValues)); - - if( command == setTtlowCmd) - runAction - ->SetTtlow( setTtlowCmd->GetNewDoubleValue(newValues)); - - if( command == setTthighCmd) - runAction - ->SetTthigh( setTthighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinTbCmd) - runAction - ->SetnbinTb(setnbinTbCmd->GetNewIntValue(newValues)); - - if( command == setTblowCmd) - runAction - ->SetTblow( setTblowCmd->GetNewDoubleValue(newValues)); - - if( command == setTbhighCmd) - runAction - ->SetTbhigh( setTbhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinTsecCmd) - runAction - ->SetnbinTsec(setnbinTsecCmd->GetNewIntValue(newValues)); - - if( command == setTseclowCmd) - runAction - ->SetTseclow( setTseclowCmd->GetNewDoubleValue(newValues)); - - if( command == setTsechighCmd) - runAction - ->SetTsechigh( setTsechighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinRCmd) - runAction - ->SetnbinR(setnbinRCmd->GetNewIntValue(newValues)); - - if( command == setRlowCmd) - runAction - ->SetRlow( setRlowCmd->GetNewDoubleValue(newValues)); - - if( command == setRhighCmd) - runAction - ->SetRhigh( setRhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinzvertexCmd) - runAction - ->Setnbinzvertex(setnbinzvertexCmd->GetNewIntValue(newValues)); - - if( command == setzlowCmd) - runAction - ->Setzlow( setzlowCmd->GetNewDoubleValue(newValues)); - - if( command == setzhighCmd) - runAction - ->Setzhigh( setzhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinThCmd) - runAction - ->SetnbinTh(setnbinThCmd->GetNewIntValue(newValues)); - - if( command == setThlowCmd) - runAction - ->SetThlow( setThlowCmd->GetNewDoubleValue(newValues)); - - if( command == setThhighCmd) - runAction - ->SetThhigh( setThhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinThbackCmd) - runAction - ->SetnbinThBack(setnbinThbackCmd->GetNewIntValue(newValues)); - - if( command == setThlowbackCmd) - runAction - ->SetThlowBack( setThlowbackCmd->GetNewDoubleValue(newValues)); - - if( command == setThhighbackCmd) - runAction - ->SetThhighBack( setThhighbackCmd->GetNewDoubleValue(newValues)); - - if (command == RndmSaveCmd) - runAction->SetRndmFreq(RndmSaveCmd->GetNewIntValue(newValues)); - - if (command == RndmReadCmd) - { G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; - CLHEP::HepRandom::restoreEngineStatus(newValues); - CLHEP::HepRandom::showEngineStatus(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc deleted file mode 100644 index 0fd2a78931..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc +++ /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. * -// ******************************************************************** -// -/// \file electromagnetic/TestEm10/src/Em10SteppingAction.cc -/// \brief Implementation of the Em10SteppingAction class -// -// -// $Id: Em10SteppingAction.cc 73033 2013-08-15 09:24:45Z gcosmo $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em10DetectorConstruction.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4Gamma.hh" -#include "Em10SteppingAction.hh" -#include "Em10EventAction.hh" -#include "Em10RunAction.hh" -#include "G4Event.hh" -#include "G4VPhysicalVolume.hh" -#include "G4PhysicalConstants.hh" -#include "G4ios.hh" -#include - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em10SteppingAction::Em10SteppingAction(Em10EventAction* EA, - Em10RunAction* RA) - :G4UserSteppingAction(),eventaction (EA),runaction (RA), - IDold(-1) -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em10SteppingAction::~Em10SteppingAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em10SteppingAction::UserSteppingAction(const G4Step* aStep) -{ - - G4double Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,yend,zend,rend; - - G4int evno = eventaction->GetEventno(); - - const G4Track* track = aStep->GetTrack(); - const G4StepPoint* prePoint = aStep->GetPreStepPoint(); - G4int trackID = track->GetTrackID(); - G4int parentID = track->GetParentID(); - - const G4DynamicParticle* dynParticle = track->GetDynamicParticle(); - const G4ParticleDefinition* particle = dynParticle->GetDefinition(); - G4VPhysicalVolume* preVol = prePoint->GetPhysicalVolume(); - G4VPhysicalVolume* postVol = aStep->GetPostStepPoint()->GetPhysicalVolume(); - - IDnow = evno+10000*trackID+100000000*parentID; - if(IDnow != IDold) { - IDold=IDnow; - if(trackID > 1 && (particle == G4Electron::Electron() || - particle == G4Positron::Positron() || - particle == G4Gamma::Gamma())) { - runaction->Fillvertexz(track->GetVertexPosition().z()); - - if(preVol->GetName()=="Absorber") { - if(particle == G4Gamma::Gamma()) { - eventaction->AddNeutral(); - } else { - eventaction->AddCharged(); - Tsec = track->GetKineticEnergy(); - Tsec += aStep->GetTotalEnergyDeposit(); - runaction->FillTsec(Tsec); - if(particle == G4Electron::Electron()) { - eventaction->AddE(); - } else { - eventaction->AddP(); - } - } - } - } - } - - if(preVol->GetName()=="Absorber") { - if(particle == G4Electron::Electron() || - particle == G4Positron::Positron()) { - eventaction->CountStepsCharged(); - - } else if(particle == G4Gamma::Gamma()) { - eventaction->CountStepsNeutral(); - } - - if(prePoint->GetStepStatus() == fGeomBoundary && - preVol != postVol) { - - if(trackID == 1) { - if(track->GetMomentumDirection().z()>0.) { - - eventaction->SetTr(); - Theta = std::acos(track->GetMomentumDirection().z()); - runaction->FillTh(Theta); - Ttrans = track->GetKineticEnergy(); - runaction->FillTt(Ttrans); - yend= aStep->GetTrack()->GetPosition().y(); - zend= aStep->GetTrack()->GetPosition().x(); - rend = std::sqrt(yend*yend+zend*zend); - runaction->FillR(rend); - - } else { - eventaction->SetRef(); - Thetaback = std::acos(aStep->GetTrack()->GetMomentumDirection().z()); - Thetaback -= 0.5*pi; - runaction->FillThBack(Thetaback); - Tback = aStep->GetTrack()->GetKineticEnergy(); - runaction->FillTb(Tback); - } - } - if(track->GetMomentumDirection().z()>0. && - particle == G4Gamma::Gamma()) { - - Egamma = aStep->GetTrack()->GetKineticEnergy(); - runaction->FillGammaSpectrum(Egamma); - } - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc deleted file mode 100644 index dcd8459136..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.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. * -// ******************************************************************** -// -/// \file electromagnetic/TestEm10/src/Em10SteppingVerbose.cc -/// \brief Implementation of the Em10SteppingVerbose class -// -// -// $Id: Em10SteppingVerbose.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -#include "Em10SteppingVerbose.hh" - -#include "G4SteppingManager.hh" -#include "G4UnitsTable.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -Em10SteppingVerbose::Em10SteppingVerbose() - : G4SteppingVerbose() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -Em10SteppingVerbose::~Em10SteppingVerbose() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void Em10SteppingVerbose::StepInfo() -{ - CopyState(); - - G4int prec = G4cout.precision(8); - - if( verboseLevel >= 1 ){ - if( verboseLevel >= 4 ) VerboseTrack(); - if( verboseLevel >= 3 ){ - G4cout << G4endl; - G4cout << std::setw( 5) << "#Step#" << " " - << std::setw(10) << "X" << " " - << std::setw(10) << "Y" << " " - << std::setw(10) << "Z" << " " - << std::setw(10) << "KineE" << " " - << std::setw(10) << "dEStep" << " " - << std::setw(10) << "StepLeng" - << std::setw(10) << "TrakLeng" - << std::setw(10) << "NextVolu" - << std::setw(10) << "Process" - << std::setw(10) << "Dir_x" << " " - << std::setw(10) << "Dir_y" << " " - << std::setw(10) << "Dir_z" << " " - << G4endl; - } - - G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " " - << std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length") - << std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length") - << std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length") - << std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") - << std::setw(10) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") - << std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length") - << std::setw(10) << 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 << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().x(),"Length") - << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().y(),"Length") - << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().z(),"Length"); - - G4cout << G4endl; - - if( verboseLevel == 2 ){ - G4int tN2ndariesTot = fN2ndariesAtRestDoIt + - fN2ndariesAlongStepDoIt + - fN2ndariesPostStepDoIt; - if(tN2ndariesTot>0){ - G4cout << " :----- List of 2ndaries - " - << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot - << "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt - << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt - << ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt - << "), " - << "#SpawnTotal=" << std::setw(3) << (*fSecondary).size() - << " ---------------" - << G4endl; - - for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; - lp1<(*fSecondary).size(); lp1++){ - - G4cout << " : " - << std::setw(6) - << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") - << std::setw(6) - << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") - << std::setw(6) - << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") - << std::setw(6) - << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") - << std::setw(10) - << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); - G4cout << G4endl; - } - - G4cout << " :-----------------------------" - << "----------------------------------" - << "-- EndOf2ndaries Info ---------------" - << G4endl; - } - } - - } - G4cout.precision(prec); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void Em10SteppingVerbose::TrackingStarted() -{ - - CopyState(); -G4int prec = G4cout.precision(3); - if( verboseLevel > 0 ){ - - G4cout << std::setw( 5) << "Step#" << " " - << std::setw( 6) << "X" << " " - << std::setw( 6) << "Y" << " " - << std::setw( 6) << "Z" << " " - << std::setw( 9) << "KineE" << " " - << std::setw( 9) << "dEStep" << " " - << std::setw(10) << "StepLeng" - << std::setw(10) << "TrakLeng" - << std::setw(10) << "Volume" << " " - << std::setw(10) << "Process" << G4endl; - - G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " " - << std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length") - << std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length") - << std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length") - << std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") - << std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") - << std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length") - << std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); - - if(fTrack->GetNextVolume()){ - G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); - } else { - G4cout << std::setw(10) << "OutOfWorld"; - } - G4cout << " initStep" << G4endl; - } - G4cout.precision(prec); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10TrackingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10TrackingAction.cc deleted file mode 100644 index c57741d41f..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10TrackingAction.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. * -// ******************************************************************** -// -// $Id: Em10TrackingAction.cc 67268 2013-02-13 11:38:40Z ihrivnac $ -// -/// \file electromagnetic/TestEm10/src/Em10TrackingAction.cc -/// \brief Implementation of the Em10TrackingAction class -// - #include "Em10TrackingAction.hh" - - #include "G4TrackingManager.hh" - #include "G4Track.hh" - #include "G4RunManager.hh" - - #include "G4UImanager.hh" - #include "G4SystemOfUnits.hh" - - Em10TrackingAction::Em10TrackingAction() - : G4UserTrackingAction() - { } - - void Em10TrackingAction::PreUserTrackingAction(const G4Track* aTrack) - { - - if( aTrack->GetParentID() == 1 && aTrack->GetKineticEnergy() > 100.*GeV ){ - G4cout << "[Em10TrackingAction::DEBUG]" << G4endl; - G4cout << " Track ID: " << aTrack->GetTrackID() << G4endl; - G4cout << " particle: " << aTrack->GetDynamicParticle()->GetDefinition()->GetParticleName() << G4endl; - G4cout << " Parent ID: " << aTrack->GetParentID() << G4endl; - G4cout << " created by: " << aTrack->GetCreatorProcess()->GetProcessName() << G4endl; - G4cout << " kin. energy (TeV): " << aTrack->GetKineticEnergy() / TeV << G4endl; - G4cout << " volume: " << aTrack->GetVolume()->GetName() << G4endl; - G4cout << " global time: " << aTrack->GetGlobalTime() << G4endl; - - G4cout << " Killing event..." << G4endl; - if( aTrack->GetTrackID() != 1 ) - const_cast(aTrack)->SetTrackStatus( fKillTrackAndSecondaries ); - } - - return; - } diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc b/examples/extended/electromagnetic/TestEm10/src/EventAction.cc similarity index 68% rename from examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc rename to examples/extended/electromagnetic/TestEm10/src/EventAction.cc index d1b3b89f91..c91e06dc33 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm10/src/EventAction.cc @@ -23,55 +23,59 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/src/Em10CalorHit.cc -/// \brief Implementation of the Em10CalorHit class +/// \file electromagnetic/TestEm10/src/EventAction.cc +/// \brief Implementation of the EventAction class // // -// $Id: Em10CalorHit.cc 66241 2012-12-13 18:34:42Z gunter $ +// $Id: EventAction.cc 94932 2015-12-18 09:21:29Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "Em10CalorHit.hh" +#include "EventAction.hh" +#include "RunAction.hh" -G4Allocator Em10CalorHitAllocator; +#include "G4RunManager.hh" +#include "G4Event.hh" +#include "Randomize.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em10CalorHit::Em10CalorHit() +EventAction::EventAction(RunAction* runAction) +: G4UserEventAction(), + fRunAction(runAction), fVerboseLevel(0) { - EdepAbs = 0.; TrackLengthAbs = 0.; - EdepGap = 0.; TrackLengthGap = 0.; + G4RunManager::GetRunManager()->SetPrintProgress(10000); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em10CalorHit::~Em10CalorHit() -{;} +EventAction::~EventAction() +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -/* -Em10CalorHit::Em10CalorHit(const Em10CalorHit& right) -{ - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; -} -*/ + +void EventAction::BeginOfEventAction(const G4Event*) +{} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -const Em10CalorHit& Em10CalorHit::operator=(const Em10CalorHit& right) -{ - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; - return *this; +void EventAction::EndOfEventAction(const G4Event* event) +{ + // save rndm status + if (fRunAction->GetRndmFreq() == 2) { + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); + + // show rndm status + G4int eventNb = event->GetEventID(); + G4int printModulo = G4RunManager::GetRunManager()->GetPrintProgress(); + if (eventNb%printModulo == 0) { + G4cout << "\n---> End of Event: " << eventNb << G4endl; + CLHEP::HepRandom::showEngineStatus(); + } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10CalorHit::Print() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10Materials.cc b/examples/extended/electromagnetic/TestEm10/src/Materials.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm10/src/Em10Materials.cc rename to examples/extended/electromagnetic/TestEm10/src/Materials.cc index 3e56b9effa..6c04d1b4ec 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10Materials.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Materials.cc @@ -23,39 +23,51 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: Em10Materials.cc 66587 2012-12-21 11:06:44Z ihrivnac $ +// $Id: Materials.cc 94932 2015-12-18 09:21:29Z gcosmo $ // -/// \file electromagnetic/TestEm10/src/Em10Materials.cc -/// \brief Implementation of the Em10Materials class +/// \file electromagnetic/TestEm10/src/Materials.cc +/// \brief Implementation of the Materials class // // // // GEANT 4 class // // History: based on object model of -// Em10Materials +// Materials // Originally Created in Test30 by Vladimir Ivanchenko, 12 March 2002 // -// Modified for TestEm10 by V. Grichine, 29 Jan 2006 +// Modified for Test by V. Grichine, 29 Jan 2006 // is filled with XTR related materials, plastics, gas mixtures, etc -#include "Em10Materials.hh" +#include "Materials.hh" #include "G4UnitsTable.hh" #include "G4Material.hh" #include "G4MaterialTable.hh" #include "G4SystemOfUnits.hh" -Em10Materials::Em10Materials() +Materials* Materials::fgInstance = 0; + +Materials* Materials::GetInstance() { + if ( ! fgInstance ) { + fgInstance = new Materials(); + } + return fgInstance; +} + + +Materials::Materials() +{ + fgInstance = this; Initialise(); } -Em10Materials::~Em10Materials() +Materials::~Materials() {} -void Em10Materials::Initialise() +void Materials::Initialise() { G4String name, symbol; G4double a, z; @@ -246,7 +258,7 @@ void Em10Materials::Initialise() // Carbon dioxide, STP density = 1.977*273.*mg/cm3/293.; - G4Material* CarbonDioxide = new G4Material(name="CO2", density, nel=2); + G4Material* CarbonDioxide = new G4Material(name="CO2_2", density, nel=2); CarbonDioxide->AddElement(elC,1); CarbonDioxide->AddElement(elO,2); @@ -445,7 +457,7 @@ void Em10Materials::Initialise() } -G4Material* Em10Materials::GetMaterial(const G4String& name) +G4Material* Materials::GetMaterial(const G4String& name) { // const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); diff --git a/examples/extended/electromagnetic/TestEm10/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm10/src/PhysicsList.cc new file mode 100644 index 0000000000..1c8cdfabec --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/PhysicsList.cc @@ -0,0 +1,237 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/PhysicsList.cc +/// \brief Implementation of the PhysicsList class +// +// $Id: PhysicsList.cc 94932 2015-12-18 09:21:29Z gcosmo $ +// +//--------------------------------------------------------------------------- +// +// ClassName: PhysicsList +// +// Description: EM physics with a possibility to add transition radiation +// +// Author: V.Ivanchenko 16.12.2015 +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" +#include "DetectorConstruction.hh" + +#include "G4EmStandardPhysics.hh" +#include "G4EmStandardPhysics_option1.hh" +#include "G4EmStandardPhysics_option2.hh" +#include "G4EmStandardPhysics_option3.hh" +#include "G4EmStandardPhysics_option4.hh" +#include "G4EmStandardPhysicsGS.hh" +#include "G4EmStandardPhysicsSS.hh" +#include "G4EmStandardPhysicsWVI.hh" +#include "G4EmLivermorePhysics.hh" +#include "G4EmPenelopePhysics.hh" +#include "G4EmLowEPPhysics.hh" +#include "G4DecayPhysics.hh" +#include "TransitionRadiationPhysics.hh" + +#include "G4EmParameters.hh" + +#include "StepMax.hh" + +#include "G4ProcessManager.hh" +//#include "G4ParticleTypes.hh" +//#include "G4ParticleTable.hh" +#include "G4SystemOfUnits.hh" + +G4ThreadLocal StepMax* PhysicsList::fStepMaxProcess = nullptr; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList(DetectorConstruction* ptr) +: G4VModularPhysicsList(), + fVerbose(1) +{ + SetDefaultCutValue(1*CLHEP::mm); + SetVerboseLevel(fVerbose); + + fMessenger = new PhysicsListMessenger(this); + + // Decay Physics is always defined to define all particles + fDecayPhysicsList = new G4DecayPhysics(fVerbose); + + // EM physics + fEmName = G4String("emstandard_opt0"); + fEmPhysicsList = new G4EmStandardPhysics(fVerbose); + + // Transition radiation physics + fXTRPhysicsList = new TransitionRadiationPhysics(fVerbose, ptr); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ + delete fMessenger; + delete fDecayPhysicsList; + delete fXTRPhysicsList; + delete fEmPhysicsList; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructParticle() +{ + fDecayPhysicsList->ConstructParticle(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructProcess() +{ + AddTransportation(); + fEmPhysicsList->ConstructProcess(); + fDecayPhysicsList->ConstructProcess(); + fXTRPhysicsList->ConstructProcess(); + AddStepMax(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddPhysicsList(const G4String& name) +{ + if (fVerbose > 1) { + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + } + + if (name == fEmName) { + return; + + } else if (name == "emstandard_opt0") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics(fVerbose); + + } else if (name == "emstandard_opt1") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics_option1(fVerbose); + + } else if (name == "emstandard_opt2") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics_option2(fVerbose); + + } else if (name == "emstandard_opt3") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics_option3(fVerbose); + + } else if (name == "emstandard_opt4") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics_option4(fVerbose); + + } else if (name == "emstandardWVI") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysicsWVI(fVerbose); + + } else if (name == "emstandardSS") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysicsSS(fVerbose); + + } else if (name == "emstandardGS") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysicsGS(fVerbose); + + } else if (name == "emlivermore") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmLivermorePhysics(fVerbose); + + } else if (name == "empenelope") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmPenelopePhysics(fVerbose); + + } else if (name == "emlowenergy") { + + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmLowEPPhysics(fVerbose); + + } else { + + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetXTRModel(const G4String& name) +{ + fXTRPhysicsList->SetXTRModel(name); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddStepMax() +{ + // Step limitation seen as a process + fStepMaxProcess = new StepMax(); + + theParticleIterator->reset(); + while ((*theParticleIterator)()) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (fStepMaxProcess->IsApplicable(*particle)) + { + pmanager->AddDiscreteProcess(fStepMaxProcess); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm10/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/PhysicsListMessenger.cc new file mode 100644 index 0000000000..e5507f1671 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/PhysicsListMessenger.cc @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/PhysicsListMessenger.cc +/// \brief Implementation of the PhysicsListMessenger class +// +// +// $Id: PhysicsListMessenger.cc 94932 2015-12-18 09:21:29Z gcosmo $ +// + +#include "PhysicsListMessenger.hh" + +#include "PhysicsList.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* aList) + : G4UImessenger(),fList(aList) +{ + fXTRModelCmd = new G4UIcmdWithAString("/emphyslist/setXTRModel",this); + fXTRModelCmd->SetGuidance("Set XTR model"); + fXTRModelCmd->SetParameterName("XTRModel",false); + fXTRModelCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + fListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this); + fListCmd->SetGuidance("Add modula physics list."); + fListCmd->SetParameterName("PList",false); + fListCmd->AvailableForStates(G4State_PreInit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::~PhysicsListMessenger() +{ + delete fXTRModelCmd; + delete fListCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if( command == fXTRModelCmd ) { fList->SetXTRModel(newValue); } + else if( command == fListCmd ) { fList->AddPhysicsList(newValue); } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/extended/electromagnetic/TestEm10/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..726696d1b6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/PrimaryGeneratorAction.cc @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/PrimaryGeneratorAction.cc +/// \brief Implementation of the PrimaryGeneratorAction class +// +// +// $Id: PrimaryGeneratorAction.cc 94932 2015-12-18 09:21:29Z gcosmo $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4SystemOfUnits.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::PrimaryGeneratorAction() + : G4VUserPrimaryGeneratorAction(), + fParticleGun(0) +{ + G4int n_particle = 1; + fParticleGun = new G4ParticleGun(n_particle); + + // default particle kinematic + + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* particle = particleTable->FindParticle("proton"); + fParticleGun->SetParticleDefinition(particle); + + fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); + fParticleGun->SetParticleEnergy(100.*GeV); + fParticleGun->SetParticlePosition(G4ThreeVector()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::~PrimaryGeneratorAction() +{ + delete fParticleGun; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + fParticleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/electromagnetic/TestEm10/src/RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/RunAction.cc new file mode 100644 index 0000000000..a06bfb4e3d --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/RunAction.cc @@ -0,0 +1,156 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm10/src/RunAction.cc +/// \brief Implementation of the RunAction class +// +// +// $Id: RunAction.cc 94932 2015-12-18 09:21:29Z gcosmo $ +// +// + +#include "RunAction.hh" +#include "RunMessenger.hh" +#include "Analysis.hh" + +#include "G4Run.hh" +#include "G4ios.hh" + +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RunAction::RunAction() + : G4UserRunAction(), + fRunMessenger(0), fRndmFreq(1) +{ + fRunMessenger = new RunMessenger(this); + + BookHisto(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RunAction::~RunAction() +{ + delete fRunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RunAction::BookHisto() +{ + // 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->SetFileName("testem10"); + analysisManager->SetVerboseLevel(1); + analysisManager->SetFirstHistoId(1); // start histogram numbering from 1 + analysisManager->SetActivation(true); // enable inactivation of histograms + + // Define histograms start values + const G4int kMaxHisto = 5; + const G4String id[] = + { "1", "2", "3", "4", "5"}; + const G4String title[] = + { "Edep", // 1 + "XTR Gamma spectrum", // 2 + "Secondary Gamma spectrum" , // 3 + "Secondary e- spectrum", // 4 + "Edep.old"}; // 5 + // Default values (to be reset via /analysis/h1/set command) + G4int nbins = 100; + G4double vmin = 0.; + G4double vmax = 100.; + + // Create all histograms as inactivated + // as we have not yet set nbins, vmin, vmax + for (G4int k=0; kCreateH1(id[k], title[k], nbins, vmin, vmax); + analysisManager->SetH1Activation(ih, false); + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + // save Rndm status + if (fRndmFreq > 0) { + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); + } + + // histograms + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + if ( analysisManager->IsActive() ) { + analysisManager->OpenFile(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RunAction::EndOfRunAction(const G4Run* run) +{ + // print run statisctics + G4int nofEvents = run->GetNumberOfEvent(); + G4cout << " ================== run summary =====================" << G4endl; + G4cout << " End of Run TotNbofEvents = " << nofEvents << G4endl ; + + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + if ( analysisManager->GetH1(1) ) { + G4cout << " Mean energy deposit in absorber = " + << analysisManager->GetH1(1)->mean()/MeV << " +-" + << analysisManager->GetH1(1)->rms()/MeV << " MeV " << G4endl; + } + if ( analysisManager->GetH1(2) ) { + G4cout << " Total number of XTR gammas = " + << analysisManager->GetH1(2)->entries() << G4endl; + } + if ( analysisManager->GetH1(3) ) { + G4cout << " Total number of all gammas = " + << analysisManager->GetH1(3)->entries() << G4endl; + } + + // save Rndm status + if (fRndmFreq == 1) { + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); + } + + //save histograms + if ( analysisManager->IsActive() ) { + analysisManager->Write(); + analysisManager->CloseFile(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/RunMessenger.cc similarity index 53% rename from examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc rename to examples/extended/electromagnetic/TestEm10/src/RunMessenger.cc index b2c35a87bb..a3d384a85c 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/RunMessenger.cc @@ -23,71 +23,77 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/src/Em10EventActionMessenger.cc -/// \brief Implementation of the Em10EventActionMessenger class +/// \file electromagnetic/TestEm10/src/RunMessenger.cc +/// \brief Implementation of the RunMessenger class // // -// $Id: Em10EventActionMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ +// $Id: RunMessenger.cc 94932 2015-12-18 09:21:29Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "Em10EventActionMessenger.hh" +#include "RunMessenger.hh" -#include "Em10EventAction.hh" -#include "G4UIcmdWithAString.hh" +#include "RunAction.hh" +#include "G4UIdirectory.hh" #include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "globals.hh" +#include "G4UIcmdWithAString.hh" +#include "G4ios.hh" +#include "Randomize.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em10EventActionMessenger::Em10EventActionMessenger(Em10EventAction* EvAct) -:G4UImessenger(),eventAction(EvAct) -{ - setVerboseCmd = new G4UIcmdWithAnInteger("/event/setverbose",this); - setVerboseCmd->SetGuidance("Set verbose level ." ); - setVerboseCmd->SetParameterName("level",true); - setVerboseCmd->SetDefaultValue(0); - - DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); - DrawCmd->SetGuidance("Draw the tracks in the event"); - DrawCmd->SetGuidance(" Choice : none,charged, all"); - DrawCmd->SetParameterName("choice",true); - DrawCmd->SetDefaultValue("all"); - DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(G4State_Idle); - - PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); - PrintCmd->SetGuidance("Print events modulo n"); - PrintCmd->SetParameterName("EventNb",false); - PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(G4State_Idle); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10EventActionMessenger::~Em10EventActionMessenger() +RunMessenger::RunMessenger(RunAction* runAction) + : G4UImessenger(), + fRunAction(runAction), + fRndmDir(0), fRndmSaveCmd(0), fRndmReadCmd(0) { - delete setVerboseCmd; - delete DrawCmd; - delete PrintCmd; + fRndmDir = new G4UIdirectory("/rndm/"); + fRndmDir->SetGuidance("Rndm status control."); + + fRndmSaveCmd = new G4UIcmdWithAnInteger("/rndm/save",this); + fRndmSaveCmd->SetGuidance("set frequency to save rndm status on external files."); + fRndmSaveCmd->SetGuidance("freq = 0 not saved"); + fRndmSaveCmd->SetGuidance("freq > 0 saved on: beginOfRun.rndm"); + fRndmSaveCmd->SetGuidance("freq = 1 saved on: endOfRun.rndm"); + fRndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); + fRndmSaveCmd->SetParameterName("frequency",false); + fRndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); + fRndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + fRndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); + fRndmReadCmd->SetGuidance("get rndm status from an external file."); + fRndmReadCmd->SetParameterName("fileName",true); + fRndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); + fRndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void Em10EventActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) -{ - if(command == setVerboseCmd) - {eventAction->setEventVerbose(setVerboseCmd->GetNewIntValue(newValue));} - - if(command == DrawCmd) - {eventAction->SetDrawFlag(newValue);} - - if(command == PrintCmd) - {eventAction->SetPrintModulo(PrintCmd->GetNewIntValue(newValue));} +RunMessenger::~RunMessenger() +{ + delete fRndmSaveCmd; + delete fRndmReadCmd; + delete fRndmDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RunMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + if (command == fRndmSaveCmd) { + fRunAction->SetRndmFreq(fRndmSaveCmd->GetNewIntValue(newValues)); + } + + if (command == fRndmReadCmd) { + G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; + CLHEP::HepRandom::restoreEngineStatus(newValues); + CLHEP::HepRandom::showEngineStatus(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh b/examples/extended/electromagnetic/TestEm10/src/SensitiveDetector.cc similarity index 58% rename from examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh rename to examples/extended/electromagnetic/TestEm10/src/SensitiveDetector.cc index 19f31502b0..bc799cb75d 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm10/src/SensitiveDetector.cc @@ -23,79 +23,69 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10CalorHit.hh -/// \brief Definition of the Em10CalorHit class +/// \file electromagnetic/TestEm10/src/SensitiveDetector.cc +/// \brief Implementation of the SensitiveDetector class // // -// $Id: Em10CalorHit.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: SensitiveDetector.cc 94932 2015-12-18 09:21:29Z gcosmo $ // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em10CalorHit_h -#define Em10CalorHit_h 1 +#include "SensitiveDetector.hh" +#include "Analysis.hh" -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" +#include "G4Step.hh" +#include "G4UnitsTable.hh" +#include "G4ios.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em10CalorHit : public G4VHit +SensitiveDetector::SensitiveDetector(G4String name) + : G4VSensitiveDetector(name), fEdep(0.) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SensitiveDetector::~SensitiveDetector() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SensitiveDetector::Initialize(G4HCofThisEvent*) { -public: - - Em10CalorHit(); - ~Em10CalorHit(); - Em10CalorHit(const Em10CalorHit&); - - void* operator new(size_t); - void operator delete(void*); - - const Em10CalorHit& operator=(const Em10CalorHit&); - - void Print(); - -public: - - void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;}; - void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;}; - - G4double GetEdepAbs() { return EdepAbs; }; - G4double GetTrakAbs() { return TrackLengthAbs; }; - G4double GetEdepGap() { return EdepGap; }; - G4double GetTrakGap() { return TrackLengthGap; }; - -private: - - G4double EdepAbs, TrackLengthAbs; - G4double EdepGap, TrackLengthGap; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -typedef G4THitsCollection Em10CalorHitsCollection; - -extern G4Allocator Em10CalorHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void* Em10CalorHit::operator new(size_t) -{ - void* aHit; - aHit = (void*) Em10CalorHitAllocator.MallocSingle(); - return aHit; + fEdep = 0.; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void Em10CalorHit::operator delete(void* aHit) +G4bool SensitiveDetector::ProcessHits(G4Step* step, G4TouchableHistory*) { - Em10CalorHitAllocator.FreeSingle((Em10CalorHit*) aHit); + G4double edep = step->GetTotalEnergyDeposit(); + fEdep += edep; + + // verbose level can be set via /hits/verbose command + if (verboseLevel>1) { + G4cout << " Energy added to the hit: " << G4BestUnit(edep, "Energy") << G4endl; + } + + return true; } -#endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void SensitiveDetector::EndOfEvent(G4HCofThisEvent*) +{ + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + analysisManager->FillH1(1, fEdep); + analysisManager->FillH1(5, fEdep); + // verbose level can be set via /hits/verbose command + if (verboseLevel>0) { + G4cout << " Absorber: total energy: " << G4BestUnit(fEdep, "Energy") << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/src/StackingAction.cc b/examples/extended/electromagnetic/TestEm10/src/StackingAction.cc new file mode 100644 index 0000000000..86b7e85669 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/StackingAction.cc @@ -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 electromagnetic/TestEm5/src/StackingAction.cc +/// \brief Implementation of the StackingAction class +// +// $Id: StackingAction.cc 88674 2015-03-05 08:29:46Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StackingAction.hh" +#include "Analysis.hh" + +#include "G4Track.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4EmProcessSubType.hh" +#include "G4VProcess.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StackingAction::StackingAction() + : G4UserStackingAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StackingAction::~StackingAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4ClassificationOfNewTrack +StackingAction::ClassifyNewTrack(const G4Track* track) +{ + // do nothing if primary particle + if (track->GetParentID() == 0) { return fUrgent; } + + //count secondary particles + + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + // + //energy spectrum of secondaries + // + G4double energy = track->GetKineticEnergy(); + + // Gamma + if (track->GetDefinition() == G4Gamma::Gamma()) { + // XTR gamma + // G4int processSubType + // = track->GetCreatorProcess()->GetProcessSubType(); + // if ( processSubType == fTransitionRadiation) { + G4String creatorProcessName = track->GetCreatorProcess()->GetProcessName(); + if (creatorProcessName.find("XTRadiator") != std::string::npos) { + analysisManager->FillH1(2, energy); + } + + // all gamma + analysisManager->FillH1(3, energy); + } + + // e- + if (track->GetDefinition() == G4Electron::Electron()) { + analysisManager->FillH1(4, energy); + } + + return fUrgent; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/src/StepMax.cc b/examples/extended/electromagnetic/TestEm10/src/StepMax.cc index a9bc1386d3..9bbae95ddd 100644 --- a/examples/extended/electromagnetic/TestEm10/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm10/src/StepMax.cc @@ -23,97 +23,76 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/src/StepMax.cc +/// \file electromagnetic/TestEm8/src/StepMax.cc /// \brief Implementation of the StepMax class // -// $Id: StepMax.cc 66241 2012-12-13 18:34:42Z gunter $ +// $Id: StepMax.cc 94932 2015-12-18 09:21:29Z gcosmo $ // -/////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "StepMax.hh" -// #include "StepMaxMessenger.hh" -// #include "Histo.hh" +#include "StepMaxMessenger.hh" #include "G4VPhysicalVolume.hh" -#include "G4SystemOfUnits.hh" -/////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... StepMax::StepMax(const G4String& processName) - : G4VDiscreteProcess(processName), - MaxChargedStep(DBL_MAX), - thDensity(0.1*gram/cm3), - first(true) + : G4VDiscreteProcess(processName), + fMaxChargedStep(DBL_MAX), + fMessenger(0) { - // pMess = new StepMaxMessenger(this); - // histo = Histo::GetPointer(); + fMessenger = new StepMaxMessenger(this); } -////////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... StepMax::~StepMax() { - // delete pMess; + delete fMessenger; } -//////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4bool StepMax::IsApplicable(const G4ParticleDefinition& particle) { - return ( particle.GetPDGCharge() != 0. ); + return (particle.GetPDGCharge() != 0.); } -///////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} +void StepMax::SetMaxStep(G4double step) +{ + fMaxChargedStep = step; +} -///////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double StepMax::PostStepGetPhysicalInteractionLength( - const G4Track& aTrack, - G4double, - G4ForceCondition* condition ) +G4double +StepMax::PostStepGetPhysicalInteractionLength(const G4Track&, + G4double, + G4ForceCondition* condition) { // condition is set to "Not Forced" *condition = NotForced; - ProposedStep = DBL_MAX; + fProposedStep = fMaxChargedStep; - if(first) - { - // checkVolume = histo->CheckVolume(); - // gasVolume = histo->GasVolume(); - first = false; - } - - G4VPhysicalVolume* pv = aTrack.GetVolume(); - - if( pv == gasVolume || pv == checkVolume ) ProposedStep = 0.0; - - else if( (aTrack.GetMaterial())->GetDensity() > thDensity && - aTrack.GetPosition().z() < 0.0 ) ProposedStep = MaxChargedStep; - - return ProposedStep; + return fProposedStep; } -//////////////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) { aParticleChange.Initialize(aTrack); - - if ( ProposedStep == 0.0 ) - { - aParticleChange.ProposeTrackStatus(fStopAndKill); - /* - if(1 < (Histo::GetPointer())->GetVerbose()) - { - G4cout << "StepMax: " << aTrack.GetDefinition()->GetParticleName() - << " with energy = " << aTrack.GetKineticEnergy()/MeV - << " MeV is killed in Check volume at " << aTrack.GetPosition() - << G4endl; - } - */ - } return &aParticleChange; } -//////////////////////////////////////////////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double StepMax::GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*) +{ + return 0.; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringProcess.cc b/examples/extended/electromagnetic/TestEm10/src/StepMaxMessenger.cc old mode 100755 new mode 100644 similarity index 69% rename from examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringProcess.cc rename to examples/extended/electromagnetic/TestEm10/src/StepMaxMessenger.cc index 847cc3a37c..5e89159722 --- a/examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringProcess.cc +++ b/examples/extended/electromagnetic/TestEm10/src/StepMaxMessenger.cc @@ -23,49 +23,46 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -#include "G4DiscreteScatteringProcess.hh" -#include "G4DiscreteScatteringModel.hh" -#include "G4Electron.hh" +/// \file electromagnetic/TestEm8/src/StepMaxMessenger.cc +/// \brief Implementation of the StepMaxMessenger class +// +// $Id: StepMaxMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMaxMessenger.hh" + +#include "StepMax.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4DiscreteScatteringProcess::G4DiscreteScatteringProcess(G4int iNumAngles) -: G4VEmProcess("DiscreteScattering", fElectromagnetic), - fIsInitialised(false), fNumAngles(iNumAngles) +StepMaxMessenger::StepMaxMessenger(StepMax* stepM) + :G4UImessenger(),fStepMax(stepM),fStepMaxCmd(0) +{ + fStepMaxCmd = new G4UIcmdWithADoubleAndUnit("/testem/stepmax",this); + fStepMaxCmd->SetGuidance("Set max allowed step length"); + fStepMaxCmd->SetParameterName("mxStep",false); + fStepMaxCmd->SetRange("mxStep>0."); + fStepMaxCmd->SetUnitCategory("Length"); + fStepMaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxMessenger::~StepMaxMessenger() { - SetBuildTableFlag(true); - SetStartFromNullFlag(false); - SetMinKinEnergy(2*CLHEP::keV); - SetMaxKinEnergy(100*CLHEP::MeV); - SetIntegral(false); - SetSplineFlag(false); - SetProcessSubType(1); + delete fStepMaxCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4DiscreteScatteringProcess::~G4DiscreteScatteringProcess(){ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -bool G4DiscreteScatteringProcess::IsApplicable(const G4ParticleDefinition& p){ - return (&p == G4Electron::Definition()); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4DiscreteScatteringProcess::PrintInfo(){} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void -G4DiscreteScatteringProcess::InitialiseProcess(const G4ParticleDefinition*) -{ - if(fIsInitialised) { return; } - fIsInitialised = true; - G4VEmModel* model = new G4DiscreteScatteringModel(fNumAngles); - AddEmModel(1, model); +void StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if (command == fStepMaxCmd) + { fStepMax->SetMaxStep(fStepMaxCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/src/TransitionRadiationPhysics.cc b/examples/extended/electromagnetic/TestEm10/src/TransitionRadiationPhysics.cc new file mode 100644 index 0000000000..c86d684c9e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/TransitionRadiationPhysics.cc @@ -0,0 +1,173 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: TransitionRadiationPhysics.cc 85047 2014-10-23 13:06:38Z maire $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TransitionRadiationPhysics.hh" +#include "DetectorConstruction.hh" +#include "G4VXTRenergyLoss.hh" +#include "G4ProcessManager.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4VXTRenergyLoss.hh" +#include "G4RegularXTRadiator.hh" +#include "G4TransparentRegXTRadiator.hh" +#include "G4GammaXTRadiator.hh" +#include "G4StrawTubeXTRadiator.hh" + +#include "G4XTRGammaRadModel.hh" +#include "G4XTRRegularRadModel.hh" +#include "G4XTRTransparentRegRadModel.hh" +#include "XTRTransparentRegRadModel.hh" + +G4ThreadLocal +G4VXTRenergyLoss* TransitionRadiationPhysics::fXTRProcess = nullptr; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TransitionRadiationPhysics::TransitionRadiationPhysics(G4int verb, + DetectorConstruction* ptr) + : G4VPhysicsConstructor("XTR"), + fDetector(ptr), + fVerbose(verb), + fXTRModel("transpM") +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TransitionRadiationPhysics::~TransitionRadiationPhysics() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TransitionRadiationPhysics::ConstructProcess() +{ + if("dummy" == fXTRModel) { return; } + if(0 < fVerbose) { + G4cout<< "TransitionRadiationPhysics: XTR model <" << fXTRModel + << ">" <GetRadiatorDescription(); + + if(fXTRModel == "gammaR" ) { + + fXTRProcess = new G4GammaXTRadiator(rDescription->fLogicalVolume, + 100., 100., + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + rDescription->fFoilThickness, + rDescription->fGasThickness, + rDescription->fFoilNumber, + "GammaXTRadiator"); + } + else if(fXTRModel == "gammaM" ) + { + fXTRProcess = new G4XTRGammaRadModel(rDescription->fLogicalVolume, + 100., 100., + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + rDescription->fFoilThickness, + rDescription->fGasThickness, + rDescription->fFoilNumber, + "GammaXTRadiator"); + } + else if(fXTRModel == "strawR" ) + { + fXTRProcess = new G4StrawTubeXTRadiator(rDescription->fLogicalVolume, + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + 0.53, + 3.14159, + fDetector->GetAbsorberMaterial(), + true, + "strawXTRadiator"); + } + else if(fXTRModel == "regR" ) + { + fXTRProcess = new G4RegularXTRadiator(rDescription->fLogicalVolume, + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + rDescription->fFoilThickness, + rDescription->fGasThickness, + rDescription->fFoilNumber, + "RegularXTRadiator"); + } + else if(fXTRModel == "transpR" ) + { + // G4TransparentRegXTRadiator* + fXTRProcess = new G4TransparentRegXTRadiator(rDescription->fLogicalVolume, + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + rDescription->fFoilThickness, + rDescription->fGasThickness, + rDescription->fFoilNumber, + "RegularXTRadiator"); + } + else if(fXTRModel == "regM" ) + { + fXTRProcess = new G4XTRRegularRadModel(rDescription->fLogicalVolume, + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + rDescription->fFoilThickness, + rDescription->fGasThickness, + rDescription->fFoilNumber, + "RegularXTRadiator"); + + } + else if(fXTRModel == "transpM" ) + { + fXTRProcess = new XTRTransparentRegRadModel(rDescription->fLogicalVolume, + rDescription->fFoilMaterial, + rDescription->fGasMaterial, + rDescription->fFoilThickness, + rDescription->fGasThickness, + rDescription->fFoilNumber, + "RegularXTRadiator"); + } + if(!fXTRProcess) { + if(0 < fVerbose) { + G4cout<< "TransitionRadiationPhysics: XTR model <" << fXTRModel + << "> is not known - no XTR process defined" <SetVerboseLevel(fVerbose); + + G4Electron* elec = G4Electron::Electron(); + G4ProcessManager* manager = elec->GetProcessManager(); + manager->AddDiscreteProcess(fXTRProcess); + + G4Positron* posi = G4Positron::Positron(); + manager = posi->GetProcessManager(); + manager->AddDiscreteProcess(fXTRProcess); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10XTRTransparentRegRadModel.cc b/examples/extended/electromagnetic/TestEm10/src/XTRTransparentRegRadModel.cc similarity index 92% rename from examples/extended/electromagnetic/TestEm10/src/Em10XTRTransparentRegRadModel.cc rename to examples/extended/electromagnetic/TestEm10/src/XTRTransparentRegRadModel.cc index 121d260c20..ab2ab1c427 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10XTRTransparentRegRadModel.cc +++ b/examples/extended/electromagnetic/TestEm10/src/XTRTransparentRegRadModel.cc @@ -23,16 +23,16 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: Em10XTRTransparentRegRadModel.cc 66587 2012-12-21 11:06:44Z ihrivnac $ +// $Id: XTRTransparentRegRadModel.cc 94932 2015-12-18 09:21:29Z gcosmo $ // -/// \file electromagnetic/TestEm10/src/Em10XTRTransparentRegRadModel.cc -/// \brief Implementation of the Em10XTRTransparentRegRadModel class +/// \file electromagnetic/TestEm10/src/XTRTransparentRegRadModel.cc +/// \brief Implementation of the XTRTransparentRegRadModel class // // #include -#include "Em10XTRTransparentRegRadModel.hh" +#include "XTRTransparentRegRadModel.hh" #include "Randomize.hh" #include "G4Integrator.hh" #include "G4Gamma.hh" @@ -44,7 +44,7 @@ using namespace std; // // Constructor, destructor -Em10XTRTransparentRegRadModel::Em10XTRTransparentRegRadModel(G4LogicalVolume *anEnvelope, +XTRTransparentRegRadModel::XTRTransparentRegRadModel(G4LogicalVolume *anEnvelope, G4Material* foilMat,G4Material* gasMat, G4double a, G4double b, G4int n, const G4String& processName) : @@ -63,7 +63,7 @@ Em10XTRTransparentRegRadModel::Em10XTRTransparentRegRadModel(G4LogicalVolume *an /////////////////////////////////////////////////////////////////////////// -Em10XTRTransparentRegRadModel::~Em10XTRTransparentRegRadModel() +XTRTransparentRegRadModel::~XTRTransparentRegRadModel() { ; } @@ -72,7 +72,7 @@ Em10XTRTransparentRegRadModel::~Em10XTRTransparentRegRadModel() // // -G4double Em10XTRTransparentRegRadModel::SpectralXTRdEdx(G4double energy) +G4double XTRTransparentRegRadModel::SpectralXTRdEdx(G4double energy) { G4double result, sum = 0., tmp, cof1, cof2, cofMin, cofPHC,aMa, bMb, sigma; G4int k, kMax, kMin; @@ -150,7 +150,7 @@ G4double Em10XTRTransparentRegRadModel::SpectralXTRdEdx(G4double energy) // mean absorption length of XTR photons in coresponding material. G4double -Em10XTRTransparentRegRadModel::GetStackFactor( G4double energy, +XTRTransparentRegRadModel::GetStackFactor( G4double energy, G4double gamma, G4double varAngle ) { /* diff --git a/examples/extended/electromagnetic/TestEm10/test.mac b/examples/extended/electromagnetic/TestEm10/test.mac deleted file mode 100644 index 0327452718..0000000000 --- a/examples/extended/electromagnetic/TestEm10/test.mac +++ /dev/null @@ -1,24 +0,0 @@ -# -# Macro file 'TestEm10.in' for testing "TestEm10" -# -# -/run/verbose 1 -# PLOT: energy deposit distribution in absorber (g4.11) -# -/plots/sethistName g4.p11 -/plots/setnbinEn 65 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.1 MeV -/run/initialize -/gun/particle e- -/gun/energy 2 GeV -/tracking/verbose 1 -/run/beamOn 10 -/run/dumpCouples - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm10/test_suite.sh b/examples/extended/electromagnetic/TestEm10/test_suite.sh new file mode 100755 index 0000000000..560fa3ec0c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/test_suite.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +# run all TestEm10 macros and save their outputs in log directory + +CURDIR=`pwd` +OUTDIR=$CURDIR/log +PASSED="0" +FAILED="0" + +if [ ! -d $OUTDIR ]; then + mkdir -p $OUTDIR +fi + +for MACRO in TestEm10.in alice06.mac bari05.mac barr90.mac harris73.mac salice.mac watase86.mac +do + OUT=$OUTDIR/$MACRO.out + + echo "... processing macro $MACRO" + ./TestEm10 $MACRO > $OUT + + TMP_FAILED="0" + if [ "$?" -ne "0" ]; then TMP_FAILED="1" ; fi + if [ "$TMP_FAILED" -ne "0" ]; then FAILED=`expr $FAILED + 1`; else PASSED=`expr $PASSED + 1`; fi +done + +# Print summary message +if [ "$FAILED" -eq "0" -a "$PASSED" -ne "0" ]; then + echo "... All ($PASSED) tests passed successfully." +elif [ "$FAILED" -ne "0" -a "$PASSED" -eq "0" ]; then + echo "... All ($FAILED) tests failed." +else + echo "... $PASSED tests passed successfully." + echo "... $FAILED tests failed." +fi +echo " " + +cd $CURDIR + +exit $FAILED diff --git a/examples/extended/electromagnetic/TestEm10/watase86.mac b/examples/extended/electromagnetic/TestEm10/watase86.mac index 6caae06033..1e6ecf4e13 100644 --- a/examples/extended/electromagnetic/TestEm10/watase86.mac +++ b/examples/extended/electromagnetic/TestEm10/watase86.mac @@ -9,10 +9,13 @@ # # PLOT: energy deposit distribution in absorber (g4.11) # -/plots/sethistName g4.p11 -/plots/setnbinEn 30 -/plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.06 MeV +/analysis/setFileName watase86 +/analysis/h1/set 1 100 0.00 0.1 MeV # Edep +/analysis/h1/set 2 100 0.00 0.1 MeV # XTR gamma +/analysis/h1/set 3 100 0.00 0.1 MeV # all gamma +/analysis/h1/set 4 100 0.00 0.1 MeV # all e- +/analysis/h1/set 5 30 0.00 0.06 MeV # En (Edep with original limits) + # # # Change and choice of experimental setups. Can be @@ -45,22 +48,16 @@ # /run/particle/applyCuts # -# set cuts in XTR radiator -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1.0 -/emphyslist/setRadiatorCuts 1.0 -# -# set cuts in XTR detector -# -/emphyslist/setGammaCut 1.0 -/emphyslist/setElectronCut 1.0 -/emphyslist/setPositronCut 1.0 -/emphyslist/setDetectorCuts 1.0 -# /run/initialize # +# set cuts +# +/run/setCut 1. +/run/setCutForRegion Radiator 1. +/run/setCutForRegion Absorber 1. +# +#/hits/verbose 1 +# #/XTRdetector/update # #Innactivate some processes: msc eIoni eBrem RegularXTRadiator @@ -96,7 +93,7 @@ # #/tracking/verbose 1 # -/event/printModulo 1000 +/run/printProgress 1000 /run/beamOn 10000 # diff --git a/examples/extended/electromagnetic/TestEm11/.README.txt b/examples/extended/electromagnetic/TestEm11/.README.txt index fe6d9518a0..82d29d762d 100644 --- a/examples/extended/electromagnetic/TestEm11/.README.txt +++ b/examples/extended/electromagnetic/TestEm11/.README.txt @@ -49,11 +49,8 @@ - "empenelope" low-energy EM physics implementing Penelope models - "emlowenergy" low-energy EM physics implementing experimental low-energy models - - "emstandardMP" standard EM physics where for e- a new model - G4DiscreteScatteringModel is applied; for this model - a data set G4GBFPDATA should be requested from EM group - A local builder, PhysListEmStandard "local" (similar to opt0) is also + A local builder, PhysListEmStandard "local" (similar to opt3) is also available. Physics lists and options can be (re)set with UI commands @@ -157,7 +154,11 @@ Idle> exit - 7 : step size of charged secondary tracks - 8 : longitudinal energy profile (in MeV.cm2/g), as a function of x/r0 where r0 is the range of the primary particle - + + - 11 : energy deposited in absorber 1 + - 12 : energy deposited in absorber 2 + ...etc........ + The histograms are managed by G4Analysis classes; The histos can be individually activated with the command : \verbatim @@ -178,11 +179,5 @@ Idle> exit /analysis/h1/setAscii id \endverbatim All selected histos will be written on a file name.ascii (default testem11) - -\subsection TestEm11_sub_s81 Using hbook format - - Need a special treatement : the Cern Library must be installed and the - environment variable CERNLIB correctly set. Then, *before* compiling, - activate G4_USE_HBOOK in GNUmakefile and g4hbook.hh in HistoManager.hh */ diff --git a/examples/extended/electromagnetic/TestEm11/CMakeLists.txt b/examples/extended/electromagnetic/TestEm11/CMakeLists.txt index d9b8cc977c..f0fbd828a0 100644 --- a/examples/extended/electromagnetic/TestEm11/CMakeLists.txt +++ b/examples/extended/electromagnetic/TestEm11/CMakeLists.txt @@ -40,7 +40,8 @@ target_link_libraries(TestEm11 ${Geant4_LIBRARIES}) # relies on these scripts being in the current working directory. # set(TestEm11_SCRIPTS - multiLayers.mac range.mac run01.mac run02.mac sandia.mac TestEm11.in TestEm11.out vis.mac water.mac + multiLayers.mac radioactive.mac range.mac run01.mac run02.mac sandia.mac + TestEm11.in TestEm11.out vis.mac water.mac ) foreach(_script ${TestEm11_SCRIPTS}) diff --git a/examples/extended/electromagnetic/TestEm11/History b/examples/extended/electromagnetic/TestEm11/History index c3e4fa2a8d..98ea55e366 100644 --- a/examples/extended/electromagnetic/TestEm11/History +++ b/examples/extended/electromagnetic/TestEm11/History @@ -1,4 +1,4 @@ -$Id: History 94269 2015-11-10 07:55:24Z gcosmo $ +$Id: History 96377 2016-04-11 06:59:03Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,29 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +08-04-16 mma (testem11-V10-02-05) +- PhysicsList, PhysListEmStandard: remove G4EmProcessOptions.hh + +08-04-16 mma (testem11-V10-02-04) +- PhysicsList: use G4EmParameters + +06-04-16 mma (testem11-V10-02-03) +- update PhysicsList +- remove G4DiscreteScattering + +21-03-16 mma (testem11-V10-02-02) +- PrimaryGeneratorMessenger : restaure command SetDefaultKinematic + update all macros + +22-02-16 mma (testem11-V10-02-01) +- PhysicsList: add radioactiveDecay process +- macro radioactive.mac +- Run : compute energy deposit per absorber +- PrimaryGenerator : restaure SetDefaultKinematic() + +10-12-15 V.Ivant (testem11-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 10-11-15 V.Ivanchenko (testem11-V10-01-03) - G4DiscreteScatteringModel- D.Dixon fixed for number of diff --git a/examples/extended/electromagnetic/TestEm11/README b/examples/extended/electromagnetic/TestEm11/README index 7e82f78f44..c2888a53ea 100644 --- a/examples/extended/electromagnetic/TestEm11/README +++ b/examples/extended/electromagnetic/TestEm11/README @@ -1,4 +1,4 @@ -$Id: README 94269 2015-11-10 07:55:24Z gcosmo $ +$Id: README 96329 2016-04-06 15:53:16Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -57,7 +57,7 @@ $Id: README 94269 2015-11-10 07:55:24Z gcosmo $ G4DiscreteScatteringModel is applied; for this model a data set G4GBFPDATA should be requested from EM group - A local builder, PhysListEmStandard "local" (similar to opt0) is also + A local builder, PhysListEmStandard "local" (similar to opt3) is also available. Physics lists and options can be (re)set with UI commands @@ -147,7 +147,7 @@ $Id: README 94269 2015-11-10 07:55:24Z gcosmo $ TestEm11 has several predefined 1D histograms : 1 : longitudinal energy profile (in MeV/mm and per event) - 2 : total energy deposited in the absorber + 2 : total energy deposited in all absorbers 3 : total track length of the primary track 4 : step size of the primary track 5 : projected range of the primary track @@ -155,7 +155,11 @@ $Id: README 94269 2015-11-10 07:55:24Z gcosmo $ 7 : step size of charged secondary tracks 8 : longitudinal energy profile (in MeV.cm2/g), as a function of x/r0 where r0 is the range of the primary particle - + + 11 : energy deposited in absorber 1 + 12 : energy deposited in absorber 2 + ...etc........ + The histograms are managed by G4Analysis classes. The histos can be individually activated with the command : /analysis/h1/set id nbBins valMin valMax unit @@ -170,10 +174,3 @@ $Id: README 94269 2015-11-10 07:55:24Z gcosmo $ It is also possible to print selected histograms on an ascii file: /analysis/h1/setAscii id All selected histos will be written on a file name.ascii (default testem11) - - Using hbook format - ------------------ - - Need a special treatement : the Cern Library must be installed and the - environment variable CERNLIB correctly set. Then, *before* compiling, - activate G4_USE_HBOOK in GNUmakefile and g4hbook.hh in HistoManager.hh diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.cc b/examples/extended/electromagnetic/TestEm11/TestEm11.cc index 8c7fa70565..091d69846a 100644 --- a/examples/extended/electromagnetic/TestEm11/TestEm11.cc +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/TestEm11.cc /// \brief Main program of the electromagnetic/TestEm11 example // -// $Id: TestEm11.cc 94269 2015-11-10 07:55:24Z gcosmo $ +// $Id: TestEm11.cc 96329 2016-04-06 15:53:16Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,17 +65,9 @@ int main(int argc,char** argv) { #ifdef G4MULTITHREADED G4MTRunManager* runManager = new G4MTRunManager; // Number of threads can be defined via 3rd argument - G4int nThreads = 4; - if (argc==3) { - if(G4String(argv[2]) == "NMAX") { - nThreads = G4Threading::G4GetNumberOfCores(); - } else { - nThreads = G4UIcommand::ConvertToInt(argv[2]); - } - } else if(argc==1) { - nThreads = 1; - } - if (nThreads > 0) { runManager->SetNumberOfThreads(nThreads); } + G4int nThreads = std::min(G4Threading::G4GetNumberOfCores(),4); + if (argc==3) nThreads = G4UIcommand::ConvertToInt(argv[2]); + runManager->SetNumberOfThreads(nThreads); G4cout << "===== TestEm11 is started with " << runManager->GetNumberOfThreads() << " threads =====" << G4endl; #else diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.in b/examples/extended/electromagnetic/TestEm11/TestEm11.in index d41a8d45ef..ea4d79d2dd 100644 --- a/examples/extended/electromagnetic/TestEm11/TestEm11.in +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.in @@ -1,4 +1,4 @@ -# $Id: TestEm11.in 94269 2015-11-10 07:55:24Z gcosmo $ +# $Id: TestEm11.in 96172 2016-03-22 09:19:11Z gcosmo $ # # limit the step size from histo 1 # @@ -14,6 +14,7 @@ # /run/initialize # +/testem/gun/setDefault /gun/particle e- /gun/energy 500 keV # diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.out b/examples/extended/electromagnetic/TestEm11/TestEm11.out index 80848936ad..5147913d4d 100644 --- a/examples/extended/electromagnetic/TestEm11/TestEm11.out +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -36,6 +36,7 @@ physicsList->Construct() start. physicsList->CheckParticleList() start. physicsList->setCut() start. # +/testem/gun/setDefault /gun/particle e- /gun/energy 500 keV # @@ -51,7 +52,8 @@ physicsList->setCut() start. /run/beamOn 20000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -97,6 +99,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -118,12 +127,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -171,7 +187,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -189,7 +205,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -220,7 +236,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -247,7 +263,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -274,7 +290,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -302,7 +318,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -330,7 +346,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -357,7 +373,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -440,27 +456,27 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 20000 - User=4.95s Real=4.95s Sys=0s + User=5.68s Real=5.73s Sys=0.01s ======================== run summary ===================== The run is 20000 e- of 500.00 keV through 1 absorbers: - 1.00 mm of G4_Si (density: 2.33 g/cm3 ) + 1 1.00 mm of G4_Si (density: 2.33 g/cm3 ) - Total Energy deposited = 448.952 keV +- 104.254 keV + Edep in absorber 1 = 449.264 keV (18.074 keV-->500.000 keV) - Track length of primary track = 881.139 um +- 191.624 um + Track length of primary track = 880.829 um +- 191.683 um Range from EmCalculator = 942.776 um (from full dE/dx) - Projected range = 317.035 um +- 196.526 um + Projected range = 318.504 um +- 198.342 um - Nb of steps of primary track = 21.31 +- 4.82 Step size= 41.848 um +- 7.385 um + Nb of steps of primary track = 20.97 +- 4.87 Step size= 42.491 um +- 6.737 um - absorbed = 78.31 % transmit = 5.08 % reflected = 16.62 % + absorbed = 78.31 % transmit = 5.19 % reflected = 16.50 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 536398241, 1538275505 + Current couple of seeds = 436669118, 486485246 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/electromagnetic/TestEm11/geant3/README b/examples/extended/electromagnetic/TestEm11/geant3/README deleted file mode 100644 index 89fa8302c6..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/README +++ /dev/null @@ -1,47 +0,0 @@ - - testem11/src is the geant3 equivalent of TestEm11 - - % cd geant3 - % gmakeB to make an executable (Batch version) - % gmakeT to make an executable (inTeractive version) - - To execute: - - % cd geant3 - % $G4SYSTEM/testem1.xb (for batch) or testem1.xt (for interactive) - - The program will ask: - G3 > gives the filename of the data cards to be read: - - run01.dat (runNN.dat is the equivalent of the G4 runNN.mac) - - - testem11 can produce several histo saved if ISWIT(2)=1 - - Content of these histo: - - 1 'Edep (MeV/mm) along absorber', - 2 'total energy deposit in absorber', - 3 'true track length of the primary particle', - 4 'true step size of the primary particle', - 5 'projected range of the primary particle', - 6 'true track length of charged secondaries', - 7 'true step size of charged secondaries' - - - One can control the binning of the histograms with the data card: - *HISTO id1 nbBins valMin valMax valUnit - *HISTO id2 nbBins valMin valMax valUnit - ... etc ........... - - valMin and ValMax are given in the desired unit, whose numerical value must - be specified in valUnit. Remember that Geant3 defaults are: GeV, cm, rad. - - The name of de histograms file must be defined with the data card: - FILE fileName (character) This data card is mandatory; it must be the first, - with the format A4,A2,A25 - - It is possible to set the max allowed step size STEMAX, - via the data card: - STEPMX stepmax (in cm) - (However this value will be taken into account only if auto=0) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/gmakeB b/examples/extended/electromagnetic/TestEm11/geant3/gmakeB deleted file mode 100755 index 35c8d2ee08..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/gmakeB +++ /dev/null @@ -1,30 +0,0 @@ -# -# @(#) Script to build a Batch geant executable -# -set name=testem11 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries ...' -# -hepf77 $extnam -g -o $name.xb *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xb -# -# cleanup -# -rm -f *.o -echo 'done' -exit diff --git a/examples/extended/electromagnetic/TestEm11/geant3/gmakeT b/examples/extended/electromagnetic/TestEm11/geant3/gmakeT deleted file mode 100755 index 64e9b9854b..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/gmakeT +++ /dev/null @@ -1,30 +0,0 @@ -# -# @(#) Script to build an inTeractive geant executable -# -set name=testem11 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries...' -# -hepf77 $extnam -g -o $name.xt *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xt -# -# cleanup -# -rm -f *.o -echo 'done' -exit diff --git a/examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc b/examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc deleted file mode 100644 index 014f3b0e35..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc +++ /dev/null @@ -1,13 +0,0 @@ - - COMMON/CALOR/Imat,SizeX,SizeYZ,nLayers - COMMON/FIELD/Field -* -* Imat = GEANT material number (data card CALOR) -* SizeX = total X-size of the box (cm) (data card CALOR) -* SizeYZ = total YZ-size of the box (cm) (data card CALOR) -* nLayers = numbers of layers (data card CALOR) -* Field = magnetic field (tesla) (data card FIELD) -* - COMMON/STEPMAX/stepmax -* -* stepmax = max allowed step length (data card STEPMX) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc b/examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc deleted file mode 100644 index 09030ac039..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc +++ /dev/null @@ -1,3 +0,0 @@ - - COMMON/CELOSS/Eevent,Etot,Etot2, TrLen,TrLen2, XTrLen,XTrLen2, - & StepLen,StepLen2, NbStep,NbStep2, kcoef(3) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc deleted file mode 100644 index 69d31108e2..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc +++ /dev/null @@ -1,8 +0,0 @@ - CHARACTER*25 fileName - COMMON/HISTO1/fileName - - COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit - - PARAMETER (MaxHist = 7) - LOGICAL histo - COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/run01.dat b/examples/extended/electromagnetic/TestEm11/geant3/run01.dat deleted file mode 100644 index 473c8f7f75..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/run01.dat +++ /dev/null @@ -1,28 +0,0 @@ -FILE run01.paw -LIST -C -C stepmax -C -CALOR 10 (silicon) 0.1 (sizeX) 0.1 (sizeYZ) 1 (nLayers) -KINE 3 (electron) 0.5e-3 (Ekine) 1. (xBeam) 0. (rBeam) -TRIG 100000 -DEBUG 10 5 10000 -LOSS 1 -HADR 0 -ABAN 0 -C -AUTO 0 -STEPMX 10.e-4 -C -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*541.0e-6 (dcute/m) -C -SWIT 0 (draw) 1 (histo) -C -*HISTO 1 100 0. 1. 1.e-1 (mm) -*HISTO 2 102 0. 510. 1.e-6 (keV) -*HISTO 3 100 0. 2. 1.e-1 (mm) -*HISTO 4 10 0. 20. 1.e-4 (um) -*HISTO 5 100 0. 1. 1.e-1 (mm) -C -END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/run02.dat b/examples/extended/electromagnetic/TestEm11/geant3/run02.dat deleted file mode 100644 index ec8307f6c7..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/run02.dat +++ /dev/null @@ -1,25 +0,0 @@ -FILE run02.paw -LIST -C -C limit the step by geometry -C -CALOR 10 (silicon) 0.1 (sizeX) 0.1 (sizeYZ) 100 (nLayers) -KINE 3 (electron) 0.5e-3 (Ekine) 1. (xBeam) 0. (rBeam) -TRIG 100000 -DEBUG 10 5 10000 -LOSS 1 -HADR 0 -ABAN 0 -C -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*541.0e-6 (dcute/m) -C -SWIT 0 (draw) 1 (histo) -C -*HISTO 1 100 0. 1. 1.e-1 (mm) -*HISTO 2 102 0. 510. 1.e-6 (keV) -*HISTO 3 100 0. 2. 1.e-1 (mm) -*HISTO 4 100 0. 200. 1.e-4 (um) -*HISTO 5 100 0. 1. 1.e-1 (mm) -C -END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F deleted file mode 100644 index abe29f1568..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F +++ /dev/null @@ -1,11 +0,0 @@ - - SUBROUTINE FFUSER(ikey) -* -* The routine is called when a *key card is read -* - CHARACTER*4 keyw -* - call UHTOC(ikey,4,keyw,4) - if (keyw.eq.'HIST') call uhinit -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F deleted file mode 100644 index 6feb8775a5..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F +++ /dev/null @@ -1,267 +0,0 @@ - - SUBROUTINE GTGAMA -C. -C. ****************************************************************** -C. * * -C. * Photon track. Computes step size and propagates particle * -C. * through step. * -C. * * -C. * ==>Called by : GTRACK * -C. * Authors R.Brun, F.Bruyant L.Urban ******** * -C. * * -C. ****************************************************************** -C. -#include "geant321/gcbank.inc" -#include "geant321/gccuts.inc" -#include "geant321/gcjloc.inc" -#include "geant321/gconsp.inc" -#include "geant321/gcphys.inc" -#include "geant321/gcstak.inc" -#include "geant321/gctmed.inc" -#include "geant321/gcmulo.inc" -#include "geant321/gctrak.inc" -#include "geant321/gcunit.inc" - - PARAMETER (EPSMAC=1.E-6) - DOUBLE PRECISION ONE,XCOEF1,XCOEF2,XCOEF3,ZERO - - PARAMETER (ONE=1,ZERO=0) - PARAMETER (EPCUT=1.022E-3) -C. -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - IABAN = NINT(DPHYS1) -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -C. ------------------------------------------------------------------ -* -* *** Particle below energy threshold ? Short circuit -* -* - IF (GEKIN.LE.CUTGAM) GOTO 998 -* -* *** Update local pointers if medium has changed -* - IF(IUPD.EQ.0)THEN - IUPD = 1 - JPHOT = LQ(JMA-6) - JCOMP = LQ(JMA-8) - JPAIR = LQ(JMA-10) - JPFIS = LQ(JMA-12) - JRAYL = LQ(JMA-13) - ENDIF -* -* *** Compute current step size -* - IPROC = 103 - STEP = STEMAX - GEKRT1 = 1 .-GEKRAT -* -* ** Step limitation due to pair production ? -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) THEN - STEPPA = GEKRT1*Q(JPAIR+IEKBIN) +GEKRAT*Q(JPAIR+IEKBIN+1) - SPAIR = STEPPA*ZINTPA - IF (SPAIR.LT.STEP) THEN - STEP = SPAIR - IPROC = 6 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to Compton scattering ? -* - IF (ICOMP.GT.0) THEN - STEPCO = GEKRT1*Q(JCOMP+IEKBIN) +GEKRAT*Q(JCOMP+IEKBIN+1) - SCOMP = STEPCO*ZINTCO - IF (SCOMP.LT.STEP) THEN - STEP = SCOMP - IPROC = 7 - ENDIF - ENDIF -* -* ** Step limitation due to photo-electric effect ? -* - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) THEN - STEPPH = GEKRT1*Q(JPHOT+IEKBIN) +GEKRAT*Q(JPHOT+IEKBIN+1) - SPHOT = STEPPH*ZINTPH - IF (SPHOT.LT.STEP) THEN - STEP = SPHOT - IPROC = 8 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to photo-fission ? -* - IF (JPFIS.GT.0) THEN - STEPPF = GEKRT1*Q(JPFIS+IEKBIN) +GEKRAT*Q(JPFIS+IEKBIN+1) - SPFIS = STEPPF*ZINTPF - IF (SPFIS.LT.STEP) THEN - STEP = SPFIS - IPROC = 23 - ENDIF - ENDIF -* -* ** Step limitation due to Rayleigh scattering ? -* - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) THEN - STEPRA = GEKRT1*Q(JRAYL+IEKBIN) +GEKRAT*Q(JRAYL+IEKBIN+1) - SRAYL = STEPRA*ZINTRA - IF (SRAYL.LT.STEP) THEN - STEP = SRAYL - IPROC = 25 - ENDIF - ENDIF - ENDIF -* - IF (STEP.LT.0.) STEP = 0. -* -* ** Step limitation due to geometry ? -* - IF (STEP.GE.SAFETY) THEN - CALL GTNEXT - IF (IGNEXT.NE.0) THEN - STEP = SNEXT + PREC - INWVOL= 2 - IPROC = 0 - NMEC = 1 - LMEC(1)=1 - ENDIF -* -* Update SAFETY in stack companions, if any - IF (IQ(JSTAK+3).NE.0) THEN - DO 10 IST = IQ(JSTAK+3),IQ(JSTAK+1) - JST = JSTAK +3 +(IST-1)*NWSTAK - Q(JST+11) = SAFETY - 10 CONTINUE - IQ(JSTAK+3) = 0 - ENDIF -* - ELSE - IQ(JSTAK+3) = 0 - ENDIF -* -* *** Linear transport -* - IF (INWVOL.EQ.2) THEN - DO 20 I = 1,3 - VECTMP = VECT(I) +STEP*VECT(I+3) - IF(VECTMP.EQ.VECT(I)) THEN -* -* *** Correct for machine precision -* - IF(VECT(I+3).NE.0.) THEN - VECTMP = VECT(I)+ABS(VECT(I))*SIGN(1.,VECT(I+3))* - + EPSMAC - IF(NMEC.GT.0) THEN - IF(LMEC(NMEC).EQ.104) NMEC=NMEC-1 - ENDIF - NMEC=NMEC+1 - LMEC(NMEC)=104 -#ifdef G3DEBUG - WRITE(CHMAIL, 10000) - CALL GMAIL(0,0) - WRITE(CHMAIL, 10100) GEKIN, NUMED, STEP, SNEXT - CALL GMAIL(0,0) -10000 FORMAT(' Boundary correction in GTGAMA: ', - + ' GEKIN NUMED STEP SNEXT') -10100 FORMAT(31X,E10.3,1X,I10,1X,E10.3,1X,E10.3,1X) -#endif - ENDIF - ENDIF - VECT(I) = VECTMP - 20 CONTINUE - ELSE - DO 30 I = 1,3 - VECT(I) = VECT(I) +STEP*VECT(I+3) - 30 CONTINUE - ENDIF -* - SLENG = SLENG +STEP -* -* *** Update time of flight -* - TOFG = TOFG +STEP/CLIGHT -* -* *** Update interaction probabilities -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) ZINTPA = ZINTPA -STEP/STEPPA - ENDIF - IF (ICOMP.GT.0) ZINTCO = ZINTCO -STEP/STEPCO - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) ZINTPH = ZINTPH -STEP/STEPPH - ENDIF - IF (JPFIS.GT.0) ZINTPF = ZINTPF -STEP/STEPPF - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) ZINTRA = ZINTRA -STEP/STEPRA - ENDIF -* - IF (IPROC.EQ.0) GO TO 999 - NMEC = 1 - LMEC(1) = IPROC -* -* ** Pair production ? -* - IF (IPROC.EQ.6) THEN - CALL GPAIRG -* -* ** Compton scattering ? -* - ELSE IF (IPROC.EQ.7) THEN - CALL GCOMP -* -* ** Photo-electric effect ? -* - ELSE IF (IPROC.EQ.8) THEN -* - IF ((IABAN.NE.0).AND.(GEKIN.LE.0.001)) THEN -* Calculate range of the photoelectron ( with kin. energy Ephot) - JCOEF = LQ(JMA-17) - IF(GEKRAT.LT.0.7) THEN - I1 = MAX(IEKBIN-1,1) - ELSE - I1 = MIN(IEKBIN,NEKBIN-1) - ENDIF - I1 = 3*(I1-1)+1 - XCOEF1 = Q(JCOEF+I1) - XCOEF2 = Q(JCOEF+I1+1) - XCOEF3 = Q(JCOEF+I1+2) - IF(XCOEF1.NE.0.) THEN - STOPMX = -XCOEF2+SIGN(ONE,XCOEF1)*SQRT(XCOEF2**2 - (XCOEF3- - + GEKIN/XCOEF1)) - ELSE - STOPMX = - (XCOEF3-GEKIN)/XCOEF2 - ENDIF -* -* DO NOT call GPHOT if this (overestimated) range is smaller -* than SAFETY -* - IF (STOPMX.LE.SAFETY) GOTO 998 - ENDIF - - CALL GPHOT -* -* ** Rayleigh effect ? -* - ELSE IF (IPROC.EQ.25) THEN - CALL GRAYL -* -* ** Photo-fission ? -* - ELSE IF (IPROC.EQ.23) THEN - CALL GPFIS -* - ENDIF -* - GOTO 999 -998 DESTEP = GEKIN - GEKIN = 0. - GETOT = 0. - VECT(7)= 0. - ISTOP = 2 - NMEC = 1 - LMEC(1)= 30 - 999 END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F deleted file mode 100644 index 54dbe22fe2..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F +++ /dev/null @@ -1,40 +0,0 @@ - - SUBROUTINE GUKINE -* -* Generates Kinematics for primary track -* -* Data card Kine : Itype Ekine xbeam rbeam -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "calor.inc" -* - DIMENSION VERTEX(3),PLAB(3) - dimension rndm(3) -* - DATA VERTEX/3*0./ - DATA PLAB /3*0./ -* - IF (PKINE(2).NE.0.) vertex(1) = -0.5*SizeX -* -* random in YZ ? - if ((pkine(3).lt.0.).or.(pkine(3).gt.1.)) pkine(3) = 0. - rbeam = pkine(3)*0.5*SizeYZ - call GRNDM (rndm,2) -* - VERTEX(2) = (2*rndm(1)-1.)*rbeam - VERTEX(3) = (2*rndm(2)-1.)*rbeam -* - CALL GSVERT(VERTEX,0,0,0,0,NVERT) -* - JPA = LQ(JPART-IKINE) - XMASS = Q(JPA+7) - PLAB(1) = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) -* - CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) -* -* *** Kinematics debug - IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm11/geant3/src/guout.F deleted file mode 100644 index 5f3539699a..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/guout.F +++ /dev/null @@ -1,20 +0,0 @@ - - SUBROUTINE GUOUT -* -* User routine called at the end of each event -* -#include "geant321/gcflag.inc" -* -* -* *** drawing -* -#ifndef batch - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'TestEm11',0.) - CALL GDSHOW (3) - CALL GDXYZ (0) - END IF -#endif -* -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F deleted file mode 100644 index 66d8e7e35b..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F +++ /dev/null @@ -1,47 +0,0 @@ - - SUBROUTINE GUSTEP -* -* User routine called at the end of each tracking step -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gcking.inc" -#include "geant321/gctrak.inc" -#include "calor.inc" -#include "celoss.inc" -#include "histo.inc" -* - common/local1/ fnorm -* - data amm, aMeV /1.e-1, 1.e-3/ -* - if (ievent.eq.1) fnorm = amm/(nevent*aMeV*binWidth(1)*histUnit(1)) -* -* *** Debug event and store tracks for drawing - IF (IDEBUG.NE.0) CALL GPCXYZ - IF (IDEBUG.NE.0) CALL GPGKIN - IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ - IF (ISWIT(1).EQ.2) CALL GSXYZ -* -* *** Something generated ? - IF(NGKINE.GT.0) CALL GSKING(0) -* - if (destep.le.0.) return -* -* *** Energy deposited per event - Eevent = Eevent + destep -* -* *** histo edep longitudinal profile - xlen = 0.5*sizeX + vect(1) - ih = 1 - if (histo(ih)) - & call hfill (ih,xlen/histUnit(ih),0.,fnorm*destep) -* -* *** histo step size - ih = 0 - if (istak.eq.0) ih = 4 - if (istak*charge.ne.0.) ih = 7 - if ((ih.gt.0).and.(histo(ih))) - & call hfill (ih,step/histUnit(ih),0.,1.) -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F deleted file mode 100644 index daf79f7488..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F +++ /dev/null @@ -1,57 +0,0 @@ - - SUBROUTINE GUTRAK -* -* User routine to control tracking of one track -* Called by GTREVE -* -#include "geant321/gckine.inc" -#include "geant321/gctrak.inc" -#include "celoss.inc" -#include "histo.inc" -* -* *** per track initialisations -* -* *** process a track - CALL GTRACK -* -* *** count track length of primary particle - if (istak.eq.0) then - TrLen = TrLen + sleng - TrLen2 = TrLen2 + sleng*sleng -* - xLen = vect(1) - vert(1) - XTrLen = XTrLen + xLen - XTrLen2 = XTrLen2 + xLen*xLen -* - NbStep = NbStep + nstep - NbStep2 = NbStep2 + nstep*nstep -* - stepsize = sleng/nstep - StepLen = StepLen + stepsize - StepLen2 = StepLen2 + stepsize*stepsize - endif -* -* *** absorbed, transmited, reflected ? - if (istak.eq.0) then - i = 1 - if (inwvol.eq.3) then - i = 2 - if (vect(4).le.0.) i = 3 - endif - kcoef(i) = kcoef(i) + 1 - endif -* -* *** histo track length - ih = 0 - if (istak.eq.0) ih = 3 - if (istak*charge.ne.0.) ih = 6 - if ((ih.gt.0).and.(histo(ih))) - & call hfill (ih,sleng/histUnit(ih),0.,1.) -* -* *** histo projected range of primary - if (istak.eq.0) then - ih = 5 - if (histo(ih)) call hfill (ih,xLen/histUnit(ih),0.,1.) - endif -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F deleted file mode 100644 index 50eb8249a7..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F +++ /dev/null @@ -1,27 +0,0 @@ - - SUBROUTINE GUTREV -* -* User routine to control tracking of one event -* Called by GRUN -* -#include "celoss.inc" -#include "histo.inc" -* -* *** par event initialisations - Eevent = 0. -* -* *** process the event - CALL GTREVE -* -* *** returns if no energy deposition - if (Eevent.le.0.) return -* -* *** histo: total energy deposited - ih = 2 - if (histo(ih)) call hfill (ih,Eevent/histUnit(ih),0.,1.) -* -* *** cumul energy deposited - Etot = Etot + Eevent - Etot2 = Etot2 + Eevent*Eevent -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/main.F b/examples/extended/electromagnetic/TestEm11/geant3/src/main.F deleted file mode 100644 index 2ce531104e..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/main.F +++ /dev/null @@ -1,61 +0,0 @@ -#ifdef batch - - PROGRAM main -* -* - PARAMETER (NGBANK=100000, NHBOOK=10000) - COMMON/GCBANK/Q(NGBANK) - COMMON/PAWC /H(NHBOOK) -* - CALL GZEBRA( NGBANK) - CALL HLIMIT(-NHBOOK) -* -* *** initialize HIGZ - CALL HPLINT(0) -* -* *** GEANT initialisation - CALL UGINIT -* -* *** Start events processing - CALL GRUN -* -* *** End of RUN - CALL UGLAST -* - STOP - END - -#else - - PROGRAM main -* -* GEANT main program. To link with the MOTIF user interface -* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas -* the routine GPAW(NWGEAN,NWPAW) gives access to the basic -* graphics version. -* - PARAMETER (NWGEAN=3000000, NWPAW=1000000) - COMMON/GCBANK/GEANT(NWGEAN) - COMMON/PAWC /PAW (NWPAW) -* -* - CALL GPAW (NWGEAN,NWPAW) -* - END -* - SUBROUTINE qnext - END -* - SUBROUTINE czopen - END -* - SUBROUTINE cztcp - END -* - SUBROUTINE czclos - END -* - SUBROUTINE czputa - END - -#endif diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F deleted file mode 100644 index 3682b1abb1..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F +++ /dev/null @@ -1,79 +0,0 @@ - - SUBROUTINE UGEOM - -* *** Define user geometry set up -* -#include "calor.inc" -* - DIMENSION PAR(3) -* - DIMENSION Aair(2),Zair(2),Wair(2) - DIMENSION AH2O(2),ZH2O(2),WH2O(2) -* -* *** Air compound parameters - DATA Aair/14.01, 16.00/ - DATA Zair/ 7. , 8. / - DATA Wair/ 0.7 , 0.3 / -* -* *** Air compound parameters - DATA AH2O/ 1.01, 16.00/ - DATA ZH2O/ 1. , 8. / - DATA WH2O/ 2. , 1. / -* -* *** Defines USER perticular materials - CALL GSMIXT( 1,'Air' , Aair ,Zair, 1.29E-3, 2 , Wair) - CALL GSMATE( 2,'H2 Liquid', 1.01, 1., 0.0708 , 865., 790., 0,0) - CALL GSMIXT( 3,'Water' , AH2O ,ZH2O, 1.0 ,-2 , WH2O) - CALL GSMATE( 4,'Liquid Ar', 39.95, 18., 1.39 , 14.0, 84.0, 0,0) - CALL GSMATE( 5,'Aluminium', 26.98, 13., 2.7 , 8.9, 37.2, 0,0) - CALL GSMATE( 6,'Iron' , 55.85, 26., 7.87 , 1.76, 17.1, 0,0) - CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0) - CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0) - CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0) -* - CALL GSMATE(10,'Silicon' , 28.09, 14., 2.33 , 9.36, 45.5, 0,0) - CALL GSMATE(11,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0) -* -* *** Defines USER tracking media parameters - IFIELD = 0 - IF (Field.GT.0.) IFIELD = 3 - FIELDM = 10*Field - TMAXFD = 10.0 - STEMAX = 1000. - if (stepmax.gt.0.) STEMAX = stepmax - DEEMAX = 0.20 - EPSIL = 0.001 - STMIN = 0.010 -* - CALL GSTMED( 1,'Container',Imat, 0 ,IFIELD,FIELDM,TMAXFD, - * STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 ) -* -* -* *** Geometry - PAR(1) = SizeX /2. - PAR(2) = SizeYZ/2. - PAR(3) = SizeYZ/2. - CALL GSVOLU('aBox','BOX ',1,PAR,3,IVOL) -* - if (nLayers.gt.1) CALL GSDVN ('layr','aBox',nLayers,1) -* -* *** Close geometry banks. (obligatory system routine) - CALL GGCLOS -* -* -* *** dessin - CALL GSATT ('*','SEEN',1) -* - DO IX = 1,3 - CALL GDOPEN (IX) - SCALE = 18./SizeX - PAXIS = 0. - SAXIS = 0.1*SizeX - CALL GDRAWC ('aBox',IX,0.,10.,9.3,SCALE,SCALE) - CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) - CALL GDSCAL (10. , 0.3) - CALL GDCLOS - END DO -* - - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F deleted file mode 100644 index 59c8d43776..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F +++ /dev/null @@ -1,72 +0,0 @@ - - SUBROUTINE UGINIT -* -* To initialise GEANT/USER program and read data cards -* -#include "calor.inc" -#include "celoss.inc" -#include "histo.inc" -* - CHARACTER*20 filnam -* -* *** Define the GEANT parameters - CALL GINIT -* -* *** default values for histo - do ih = 1,MaxHist - histo(ih) = .false. - enddo -* -* *** Calor definition - CALL FFKEY('CALOR', Imat, 4,'MIXED') - CALL FFKEY('FIELD', Field, 1,'REAL') - CALL FFKEY('STEPMX',stepmax,1,'REAL') - CALL FFKEY('HISTO', idhist, 5,'MIXED') -* -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'run01.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') -* -* fileName for histograms, must be 1st data card ! - fileName = 'testem11.paw' - READ(5,98)key,spaces,fileName -98 FORMAT(A4,A2,A25) -* - CALL GFFGO -* - CALL GZINIT - CALL GPART -* - CALL GDINIT -* -* *** Geometry and materials description - CALL UGEOM -* -* *** Energy loss and cross-sections initialisations - CALL GPHYSI -* - CALL GPRINT('MATE',0) - CALL GPRINT('TMED',0) - CALL GPRINT('VOLU',0) -* -* *** Define user histograms - CALL UHINIT -* -* *** per run initialisations - Etot = 0. - Etot2 = 0. - TrLen = 0. - TrLen2 = 0. - XTrLen = 0. - XTrLen2 = 0. - StepLen = 0. - StepLen2 = 0. - NbStep = 0 - NbStep2 = 0 - kcoef(1) = 0 - kcoef(2) = 0 - kcoef(3) = 0 -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F deleted file mode 100644 index 8565ea9dac..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F +++ /dev/null @@ -1,100 +0,0 @@ - - SUBROUTINE UGLAST -* -* Termination routine to print histograms and statistics -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gctrak.inc" -#include "calor.inc" -#include "celoss.inc" -#include "histo.inc" -* - CHARACTER*20 parnam,matnam - CHARACTER*4 unit1,unit2 -* -* *** run summary - PRINT 749 - call GFPART (Ikine,parnam,ityp,dum,duc,dut,udu,idu) - call GFMATE (Imat ,matnam,dua,duz,dud,dur,dui,udu,idu) - CALL GEVKEV (pkine(1),Ekine,unit1) - PRINT 750, Ievent,parnam,Ekine,unit1,sizeX,matnam - PRINT 749 -* - fnorm = 1./Ievent -* -* *** total energy deposit - Etot = fnorm*Etot - Etot2 = fnorm*Etot2 - rms = sqrt(abs(Etot2-Etot**2)) -* - CALL GEVKEV (Etot,aveE,unit1) - CALL GEVKEV (rms ,rmsE ,unit2) - PRINT 752, aveE,unit1,rmsE,unit2 -* -* *** track length of primary track - TrLen = fnorm*TrLen - TrLen2 = fnorm*TrLen2 - rms = sqrt(abs(TrLen2-TrLen**2)) - PRINT 753, TrLen,rms -* -* *** compare with csda range from table - call GFTMAT(Imat,ikine,'RANG',1,pkine(1),csdaRang,dum,ixst) - PRINT 763, csdaRang -* -* *** projected range of primary track - XTrLen = fnorm*XTrLen - XTrLen2 = fnorm*XTrLen2 - rms = sqrt(abs(XTrLen2-XTrLen**2)) - PRINT 754, XTrLen,rms -* -* *** nb of steps and step size of primary track - fNbStep = fnorm*NbStep - fNbStep2 = fnorm*NbStep2 - rms1 = sqrt(abs(fNbStep2-fNbStep**2)) -* - StepLen = fnorm*StepLen - StepLen2 = fnorm*StepLen2 - rms2 = sqrt(abs(StepLen2-StepLen**2)) - PRINT 755, fNbStep,rms1,StepLen,rms2 -* -* *** transmission coefficients - absorbed = fnorm*100*kcoef(1) - transmit = fnorm*100*kcoef(2) - reflected = fnorm*100*kcoef(3) - PRINT 756, absorbed, transmit, reflected -* - PRINT 749 -* -* *** geant termination - CALL GLAST -* -* *** close HIGZ - CALL HPLEND -* -* *** Save histo - if (iswit(2).eq.1) then - write(6,99) fileName -99 format(/,15x,'histogram file --> Name: ',A25) - CALL HRPUT(0,fileName,'N') - endif -* -* *** formats - 749 FORMAT(/, 60(1H-),/) - 750 FORMAT( 1X,'The run is',I8,1X,A10,' of',F8.2,A4,' through ', - & E12.4,' cm of ',A10) - 752 FORMAT( 1X,'Total Energy deposited = ', - & F8.3, A4,' +- ', F8.3, A4) - 753 FORMAT(/,1X,'Track length of primary track = ', - & E12.5,' cm +- ', E12.5,' cm') - 763 FORMAT( 1X,'csda Range from table = ', - & E12.5,' cm') - 754 FORMAT(/,1X,'Projected range = ', - & E12.5,' cm +- ', E12.5,' cm') - 755 FORMAT(/,1X,'Nb of steps of primary track = ', - & F6.2,' +- ', F6.2, - & 3X,'Step size = ', E12.5,' cm +- ', E12.5,' cm') - 756 FORMAT(/,1X,'absorbed = ',F6.2,' %',3X,'transmit = ', F6.2,' %', - & 3X,'reflected = ', F6.2,' %') -* - END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F deleted file mode 100644 index eca8624f96..0000000000 --- a/examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F +++ /dev/null @@ -1,29 +0,0 @@ - - SUBROUTINE UHINIT -* -* -#include "histo.inc" -* - CHARACTER*50 title(7) -* - data title / - 1 'Edep (MeV/mm) along absorber', - 2 'total energy deposit in absorber', - 3 'true track length of the primary particle', - 4 'true step size of the primary particle', - 5 'projected range of the primary particle', - 6 'true track length of charged secondaries', - 7 'true step size of charged secondaries' / -* - if (idhist.gt.MaxHist) return -* - if (histo(idhist)) call hdelet(idhist) -* - call hbook1(idhist,title(idhist),nbBins,valmin,valmax,0.) -* - histo (idhist) = .true. - binWidth(idhist) = (valmax-valmin)/nbBins - if (valunit.le.0.) valunit = 1. - histUnit(idhist) = valunit -* - END diff --git a/examples/extended/electromagnetic/TestEm11/include/EventAction.hh b/examples/extended/electromagnetic/TestEm11/include/EventAction.hh index 9ce61793e6..efd0ed0743 100644 --- a/examples/extended/electromagnetic/TestEm11/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/EventAction.hh @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/include/EventAction.hh /// \brief Definition of the EventAction class // -// $Id: EventAction.hh 74997 2013-10-25 10:52:13Z gcosmo $ +// $Id: EventAction.hh 95740 2016-02-23 09:34:37Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,24 +36,26 @@ #include "G4UserEventAction.hh" #include "globals.hh" +#include "DetectorConstruction.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class EventAction : public G4UserEventAction { public: - EventAction(); + EventAction(DetectorConstruction*); ~EventAction(); public: virtual void BeginOfEventAction(const G4Event*); virtual void EndOfEventAction(const G4Event*); - void AddEdep(G4double edep) { fTotalEdep += edep; } - G4double GetEdep() const { return fTotalEdep; } + void AddEdep(G4int k, G4double edep) { fEdepAbsor[k] += edep; } private: - G4double fTotalEdep; + DetectorConstruction* fDetector; + + G4double fEdepAbsor[MaxAbsor]; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringModel.hh b/examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringModel.hh deleted file mode 100755 index 4af67486ff..0000000000 --- a/examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringModel.hh +++ /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. * -// ******************************************************************** -// -#ifndef G4DiscreteScatteringModel_HH -#define G4DiscreteScatteringModel_HH - -#include "G4VEmModel.hh" -#include "G4ParticleDefinition.hh" -#include "G4Material.hh" -#include "G4Element.hh" -#include "G4ElementData.hh" -#include "G4PhysicsVector.hh" -#include "G4ParticleChangeForGamma.hh" - -#include - -typedef std::vector G4PVDataVector; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4DiscreteScatteringModel : public G4VEmModel -{ - -public: - - G4DiscreteScatteringModel(G4int iNumAngles=1); - - virtual ~G4DiscreteScatteringModel(); - - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); - - void ReadData(G4int, const G4String & argFileName); - - virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, - G4double E, - G4double Z, - G4double A = 0., - G4double cutEnergy = 0.0, - G4double maxEnergy = DBL_MAX); - - virtual void SampleSecondaries(std::vector*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double tmin=0.0, - G4double maxEnergy=DBL_MAX); - - inline void SetNumberOfAngles(G4int N) { fNumAngles=N; }; - inline void SetAnalog(const G4String& model) { fAnalogModel=model; }; - -private: - - G4ThreeVector GetNewDirection(G4double z1); - - static G4ElementData* fCdf; - static G4ElementData* fTcs; - G4PVDataVector fGrid; - G4ParticleChangeForGamma* fParticleChange; - G4String fAnalogModel; - G4int fNumAngles; - G4double fLowEnergyLimit; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - - diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh index 5d5195be20..c4a3f69eab 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh @@ -27,7 +27,7 @@ /// \brief Definition of the PhysicsList class // // -// $Id: PhysicsList.hh 94269 2015-11-10 07:55:24Z gcosmo $ +// $Id: PhysicsList.hh 96329 2016-04-06 15:53:16Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -54,21 +54,19 @@ class PhysicsList: public G4VModularPhysicsList ~PhysicsList(); virtual void ConstructParticle(); - + void AddPhysicsList(const G4String& name); virtual void ConstructProcess(); - void AddDecay(); - void AddStepMax(); - StepMax* GetStepMaxProcess() {return fStepMaxProcess;}; + void AddRadioactiveDecay(); + void AddStepMax(); - inline void SetNumAngles(G4int num) { fNumAngles = num; }; + StepMax* GetStepMaxProcess() {return fStepMaxProcess;}; private: G4String fEmName; G4VPhysicsConstructor* fEmPhysicsList; static G4ThreadLocal StepMax* fStepMaxProcess; - G4int fNumAngles; PhysicsListMessenger* fMessenger; }; diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh index 369c07f87e..835ba2301c 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/include/PhysicsListMessenger.hh /// \brief Definition of the PhysicsListMessenger class // -// $Id: PhysicsListMessenger.hh 94269 2015-11-10 07:55:24Z gcosmo $ +// $Id: PhysicsListMessenger.hh 96329 2016-04-06 15:53:16Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,7 +40,6 @@ class PhysicsList; class G4UIdirectory; class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,8 +58,6 @@ class PhysicsListMessenger: public G4UImessenger G4UIdirectory* fPhysDir; G4UIcmdWithAString* fListCmd; - G4UIcmdWithAnInteger* fNumAngs; - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh index b9666ce226..bb099ef00d 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class // -// $Id: PrimaryGeneratorAction.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: PrimaryGeneratorAction.hh 95740 2016-02-23 09:34:37Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,7 +50,8 @@ class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction PrimaryGeneratorAction(DetectorConstruction*); ~PrimaryGeneratorAction(); - public: + public: + void SetDefaultKinematic(); void SetRndmBeam(G4double val) {fRndmBeam = val;} virtual void GeneratePrimaries(G4Event*); diff --git a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh index 7204ecd9b7..2f6866ab7c 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh /// \brief Definition of the PrimaryGeneratorMessenger class // -// $Id: PrimaryGeneratorMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: PrimaryGeneratorMessenger.hh 96172 2016-03-22 09:19:11Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,6 +39,7 @@ class PrimaryGeneratorAction; class G4UIdirectory; +class G4UIcmdWithoutParameter; class G4UIcmdWithADoubleAndUnit; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,7 +54,8 @@ class PrimaryGeneratorMessenger: public G4UImessenger private: PrimaryGeneratorAction* fAction; - G4UIdirectory* fGunDir; + G4UIdirectory* fGunDir; + G4UIcmdWithoutParameter* fDefaultCmd; G4UIcmdWithADoubleAndUnit* fRndmCmd; }; diff --git a/examples/extended/electromagnetic/TestEm11/include/Run.hh b/examples/extended/electromagnetic/TestEm11/include/Run.hh index 8108c4bb7f..46b77d0578 100644 --- a/examples/extended/electromagnetic/TestEm11/include/Run.hh +++ b/examples/extended/electromagnetic/TestEm11/include/Run.hh @@ -52,7 +52,8 @@ class Run : public G4Run public: void SetPrimary(G4ParticleDefinition* particle, G4double energy); - void AddEdep (G4double e); + void AddEdep (G4int i, G4double e); + void AddTotEdep (G4double e); void AddTrackLength (G4double t); void AddProjRange (G4double x); void AddStepSize (G4int nb, G4double st); @@ -68,17 +69,19 @@ class Run : public G4Run void EndOfRun(); private: - DetectorConstruction* fDetector; + DetectorConstruction* fDetector; G4ParticleDefinition* fParticle; G4double fEkin; - - G4double fEdeposit, fEdeposit2; + G4double fTrackLen, fTrackLen2; G4double fProjRange, fProjRange2; G4int fNbOfSteps, fNbOfSteps2; G4double fStepSize, fStepSize2; G4int fStatus[3]; + G4double fEdeposit[MaxAbsor]; + G4double fEmin[MaxAbsor], fEmax[MaxAbsor]; + G4double fTotEdep[3]; G4double fCsdaRange[MaxAbsor]; G4double fXfrontNorm[MaxAbsor]; }; diff --git a/examples/extended/electromagnetic/TestEm11/mp.in b/examples/extended/electromagnetic/TestEm11/mp.in deleted file mode 100644 index ba649b7f4e..0000000000 --- a/examples/extended/electromagnetic/TestEm11/mp.in +++ /dev/null @@ -1,30 +0,0 @@ -# $Id: TestEm11.in 85061 2014-10-23 16:30:57Z maire $ -# -# limit the step size from histo 1 -# -/control/verbose 2 -/control/cout/ignoreThreadsExcept 0 -/run/numberOfThreads 2 -/run/verbose 2 -# -/testem/det/setNbOfAbsor 1 -/testem/det/setAbsor 1 G4_Si 1 mm -/testem/det/setSizeYZ 1 mm -# -/testem/phys/addPhysics emstandardMP # em physics -# -/run/initialize -# -/gun/particle e- -/gun/energy 500 keV -# -###/analysis/setFileName testem11mp -###/analysis/h1/set 1 100 0. 1. mm #edep profile -###/analysis/h1/set 2 102 0. 510. keV #total Edep -###/analysis/h1/set 3 100 0. 2. mm #track length -###/analysis/h1/set 4 100 0. 200. um #step length -###/analysis/h1/set 5 100 0. 1. mm #proj range -# -/run/printProgress 10000 -# -/run/beamOn 20000 diff --git a/examples/extended/electromagnetic/TestEm11/multiLayers.mac b/examples/extended/electromagnetic/TestEm11/multiLayers.mac index bec3283f70..8c6ed7a648 100644 --- a/examples/extended/electromagnetic/TestEm11/multiLayers.mac +++ b/examples/extended/electromagnetic/TestEm11/multiLayers.mac @@ -1,4 +1,4 @@ -# $Id: multiLayers.mac 74997 2013-10-25 10:52:13Z gcosmo $ +# $Id: multiLayers.mac 96172 2016-03-22 09:19:11Z gcosmo $ # # multiLayers # @@ -17,6 +17,7 @@ # /run/initialize # +/testem/gun/setDefault /gun/particle gamma /gun/energy 6 MeV # diff --git a/examples/extended/electromagnetic/TestEm11/plotHisto.C b/examples/extended/electromagnetic/TestEm11/plotHisto.C index 3b7d5ae3e1..dbec1a64ab 100644 --- a/examples/extended/electromagnetic/TestEm11/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm11/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("water_100um.root"); + TFile f("water_100um.root"); TCanvas* c1 = new TCanvas("c1", " "); c1->SetLogy(0); c1->cd(); diff --git a/examples/extended/electromagnetic/TestEm11/radioactive.mac b/examples/extended/electromagnetic/TestEm11/radioactive.mac new file mode 100644 index 0000000000..444b7f6c4c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/radioactive.mac @@ -0,0 +1,31 @@ +# $Id: radioactive.mac 74917 2013-10-24 10:44:43Z ihrivnac $ +# +# multiLayers +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setNbOfAbsor 4 +/testem/det/setAbsor 1 G4_PLEXIGLASS 5 mm +/testem/det/setAbsor 2 G4_Al 0.5 mm +/testem/det/setAbsor 3 G4_AIR 2 mm +/testem/det/setAbsor 4 G4_SODIUM_IODIDE 5 cm +/testem/det/setSizeYZ 5 cm +# +/testem/phys/addPhysics local # em physics +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle ion +/gun/ion 11 22 +/gun/energy 0 eV +/gun/position -26.25 0 0 mm +# +/analysis/setFileName rdecay +/analysis/h1/set 14 100 0. 3. MeV #edep in absor 4 +/analysis/h1/setAscii 14 +# +/run/printProgress 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm11/range.mac b/examples/extended/electromagnetic/TestEm11/range.mac index 80a2edf548..5338f27d3b 100644 --- a/examples/extended/electromagnetic/TestEm11/range.mac +++ b/examples/extended/electromagnetic/TestEm11/range.mac @@ -1,4 +1,4 @@ -# $Id: range.mac 82462 2014-06-23 10:45:28Z gcosmo $ +# $Id: range.mac 96172 2016-03-22 09:19:11Z gcosmo $ # # Macro file for "TestEm11.cc" # @@ -25,6 +25,7 @@ /process/inactivate msc /process/eLoss/fluct false # +/testem/gun/setDefault /gun/particle e- /gun/energy 600 keV # diff --git a/examples/extended/electromagnetic/TestEm11/run01.mac b/examples/extended/electromagnetic/TestEm11/run01.mac index 97bb64c819..b3ecba3d6d 100644 --- a/examples/extended/electromagnetic/TestEm11/run01.mac +++ b/examples/extended/electromagnetic/TestEm11/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac 74997 2013-10-25 10:52:13Z gcosmo $ +# $Id: run01.mac 96172 2016-03-22 09:19:11Z gcosmo $ # # limit the step size from histo 1 # @@ -14,6 +14,7 @@ # /run/initialize # +/testem/gun/setDefault /gun/particle e- /gun/energy 500 keV # diff --git a/examples/extended/electromagnetic/TestEm11/run02.mac b/examples/extended/electromagnetic/TestEm11/run02.mac index bfc87c3d64..d45931558b 100644 --- a/examples/extended/electromagnetic/TestEm11/run02.mac +++ b/examples/extended/electromagnetic/TestEm11/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac 74997 2013-10-25 10:52:13Z gcosmo $ +# $Id: run02.mac 96172 2016-03-22 09:19:11Z gcosmo $ # # limit the step size by geometry # @@ -15,6 +15,7 @@ # /run/initialize # +/testem/gun/setDefault /gun/particle e- /gun/energy 500 keV # diff --git a/examples/extended/electromagnetic/TestEm11/sandia.mac b/examples/extended/electromagnetic/TestEm11/sandia.mac index 78d8127ccd..62ebbf94f2 100644 --- a/examples/extended/electromagnetic/TestEm11/sandia.mac +++ b/examples/extended/electromagnetic/TestEm11/sandia.mac @@ -1,4 +1,4 @@ -# $Id: sandia.mac 76258 2013-11-08 11:36:51Z gcosmo $ +# $Id: sandia.mac 96172 2016-03-22 09:19:11Z gcosmo $ # # limit the step size from histo 8 # @@ -22,6 +22,7 @@ # /run/setCut 1 mm # will set cut for proton # +/testem/gun/setDefault /gun/particle e- /gun/energy 1000 keV # diff --git a/examples/extended/electromagnetic/TestEm11/sandia_mp.mac b/examples/extended/electromagnetic/TestEm11/sandia_mp.mac deleted file mode 100644 index 7bc319ccad..0000000000 --- a/examples/extended/electromagnetic/TestEm11/sandia_mp.mac +++ /dev/null @@ -1,34 +0,0 @@ -# $Id: sandia.mac 76008 2013-11-07 16:00:44Z maire $ -# -# limit the step size from histo 8 -# -# G.J.Lockwood et al. -# Sandia report SAND79-0414.UC-34a, February 1987 -# O.Kadri et al. NIM B 258 (2007) 381 -# -/control/verbose 2 -/run/verbose 2 -# -/testem/det/setNbOfAbsor 1 -###/testem/det/setAbsor 1 G4_Al 1 cm -###/testem/det/setAbsor 1 G4_Mo 1 cm -/testem/det/setAbsor 1 G4_Ta 1 cm -/testem/det/setSizeYZ 1 cm -# -/testem/phys/addPhysics emstandardMP -###/testem/phys/addPhysics local -# -/run/initialize -# -/run/setCut 1 mm # will set cut for proton -# -/gun/particle e- -/gun/energy 1000 keV -# -/analysis/setFileName sandia/Ta_1000keV_mp -###/analysis/h1/set 8 100 0. 1.0 none #normalized Edep profile -/analysis/h1/set 8 100 0. 0.5 none #for Ta -# -/run/printProgress 10000 -# -/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm11/src/ActionInitialization.cc b/examples/extended/electromagnetic/TestEm11/src/ActionInitialization.cc index 5426d719ae..09919b1830 100644 --- a/examples/extended/electromagnetic/TestEm11/src/ActionInitialization.cc +++ b/examples/extended/electromagnetic/TestEm11/src/ActionInitialization.cc @@ -67,7 +67,7 @@ void ActionInitialization::Build() const SetUserAction(new RunAction(fDetector, fPhysics, kinematics)); - EventAction* eventAction = new EventAction(); + EventAction* eventAction = new EventAction(fDetector); SetUserAction(eventAction); SetUserAction(new TrackingAction(fDetector)); diff --git a/examples/extended/electromagnetic/TestEm11/src/EventAction.cc b/examples/extended/electromagnetic/TestEm11/src/EventAction.cc index b8af82265e..1973b8cfbe 100644 --- a/examples/extended/electromagnetic/TestEm11/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/EventAction.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/src/EventAction.cc /// \brief Implementation of the EventAction class // -// $Id: EventAction.cc 74997 2013-10-25 10:52:13Z gcosmo $ +// $Id: EventAction.cc 95740 2016-02-23 09:34:37Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,8 +42,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -:G4UserEventAction(), fTotalEdep(0.) +EventAction::EventAction(DetectorConstruction* det) +:G4UserEventAction(), fDetector(det) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,23 +55,33 @@ EventAction::~EventAction() void EventAction::BeginOfEventAction(const G4Event*) { - //energy deposited per event - fTotalEdep = 0.; + //energy deposited per event + for (G4int k=0; k( + G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + //plot energy deposited per event // - if (fTotalEdep > 0.) { - Run* run - = static_cast( - G4RunManager::GetRunManager()->GetNonConstCurrentRun()); - run->AddEdep(fTotalEdep); - G4AnalysisManager::Instance()->FillH1(2,fTotalEdep); - } + G4double TotalEdep(0.); + for (G4int k=1; k<=fDetector->GetNbOfAbsor(); k++) { + if (fEdepAbsor[k] > 0.) { + run->AddEdep(k,fEdepAbsor[k]); + G4AnalysisManager::Instance()->FillH1(10 + k, fEdepAbsor[k]); + TotalEdep += fEdepAbsor[k]; + } + } + + if (TotalEdep > 0.) { + run->AddTotEdep(TotalEdep); + G4AnalysisManager::Instance()->FillH1(2,TotalEdep); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringModel.cc b/examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringModel.cc deleted file mode 100755 index 6c04b7cc6a..0000000000 --- a/examples/extended/electromagnetic/TestEm11/src/G4DiscreteScatteringModel.cc +++ /dev/null @@ -1,392 +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 "G4DiscreteScatteringModel.hh" -#include "G4ParticleDefinition.hh" -#include "G4AtomicShells.hh" -#include "G4Track.hh" -#include "G4Material.hh" -#include "G4UnitsTable.hh" -#include "G4ProductionCutsTable.hh" -#include "G4ParticleChangeForGamma.hh" -#include "G4ElementData.hh" -#include "G4Exp.hh" -#include "G4Log.hh" - -#include -#include - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -using namespace std; -using namespace CLHEP; - -G4ElementData* G4DiscreteScatteringModel::fCdf = nullptr; -G4ElementData* G4DiscreteScatteringModel::fTcs = nullptr; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4DiscreteScatteringModel::G4DiscreteScatteringModel(G4int iNumAngles) - : G4VEmModel("DiscrScat"), fParticleChange(nullptr),fAnalogModel("pwe"), - fNumAngles(iNumAngles), fLowEnergyLimit(2*keV) -{ - SetHighEnergyLimit(100.*MeV); - SetLowEnergyLimit(fLowEnergyLimit); - if(IsMaster() && fCdf == nullptr) { - fCdf = new G4ElementData(); - fTcs = new G4ElementData(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4DiscreteScatteringModel::~G4DiscreteScatteringModel() -{ - if(IsMaster()) { - delete fCdf; - delete fTcs; - fCdf = nullptr; - fTcs = nullptr; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4DiscreteScatteringModel::Initialise(const G4ParticleDefinition*, - const G4DataVector&) -{ - if(nullptr == fParticleChange) { - fParticleChange = GetParticleChangeForGamma(); - } - if(!IsMaster()) { return; } - - G4cout << "G4DiscreteScatteringModel::Initialise start"<GetTableSize(); - - for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); - const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); - - for (G4int j=0; jGetZ()); - if(Z < 1) { Z = 1; } - else if(Z > maxZ) { Z = maxZ; } - if(!fTcs->GetElementData(Z)) { ReadData(Z, path); } - } - } - G4cout << "G4DiscreteScatteringModel::Initialise completed"<Retrieve(in,true); - - // Convert tcs from cm^2 to mm^2 - //tempData->ScaleVector(1.0, 100.0); - - // store pass this data to the tcs object and initialise for current element - fTcs->InitialiseForElement(Z,tempData); - in.close(); - - // Set strings with paths to cdf data files. Currently not a variable - // but this this will change - G4String cdfPath = fullFileName+"/gbfp_"+fAnalogModel+"_cdf_" - +ss1.str()+"_"+ss2.str()+".dat"; - - // Do some error checking and exiting if data does not exist - std::ifstream in2(cdfPath, std::ifstream::binary|std::ifstream::in); - if (!in2.is_open()) - { - G4String message("Data file \""); - message+=cdfPath; - message+="\" not found"; - G4Exception("G4DiscreteScatteringModel::LoadData","em0003", - FatalException,message); - return; - } - - //G4cout<<"Reading in data file "<< cdfPath<GetElementData(Z)->GetVectorLength(); - - // The ElementData object pointer is then initialized by - fCdf->InitialiseForComponent(Z, numEnergies); - - // Now the data files are read in for all energies. At each energy, - // there are fNumAngles angles and fNumAngles CDF values. - - std::vector tempDataCDF; - // Loop through each energy - for (int j=0; j>temp1>>temp2) - { - // Write data to temporary file - file<Retrieve(inTemp,true); - fCdf->AddComponent(Z,j,tempDataCDF[j]); - j++; - inTemp.close(), inTemp.clear(), file.close(), file.clear(); - file.open("tempDataFile.dat",std::fstream::out | std::fstream::trunc); - file<<"-1. 1. "<*, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* p, - G4double cutEnergy, - G4double) -{ - G4double E = p->GetKineticEnergy(); - - if(E < fLowEnergyLimit) return; - - // Select random atom - G4int Z = G4lrint(SelectRandomAtom(couple,p->GetDefinition(), - E,cutEnergy,E)->GetZ()); - - // Determine the energy bin - G4double logE = G4Log(E); - G4ThreeVector dir = p->GetMomentumDirection(); //old direction - G4int j = fTcs->GetElementData(Z)->FindBin(logE,0); - - //------------------------------------------------------------------------- - // it would be nice to have the following block of code in G4PhysicsVector. - // it could be a simple function. - - // v.GetVectorLength() - number of points - // v.Energy(size_t idx) - value x(i) - // v[i] - value y(i) - - // This is a monte carlo interpolation scheme - G4double e1 = fTcs->GetElementData(Z)->Energy(j); - G4double e2 = fTcs->GetElementData(Z)->Energy(j+1); - - // This is a monte carlo interpolation scheme - G4double pie1 = (logE-e1)/(e2-e1); - G4double r = G4UniformRand(); - if (r(*fCdf->GetComponentDataByIndex(Z,j)).Energy(fNumAngles-2)) - { k = fNumAngles-1; } - // or the least probable... not sure why I do this (maybe because - // it is a simple check) - else if (r<=(*fCdf->GetComponentDataByIndex(Z,j)).Energy(0)) { k = 0; } - // if neither then loop through remaining angles, break when locating angle - else { - for (G4int i=fNumAngles-2; i>0; --i) { - if ( (r>(*fCdf->GetComponentDataByIndex(Z,j)).Energy(i-1)) - && (r<= (*fCdf->GetComponentDataByIndex(Z,j)).Energy(i)) ) - { k=i; break;} - } - } - // Throw an error if an angle was not sampled, data is probably no good - if(k<0) - { - G4cout << "G4DiscreteScatteringModel::SampleSecondaries():" - << " CDF was not inverted properly "<GetComponentDataByIndex(Z,j)).Energy(i)<<" "<GetComponentDataByIndex(Z,j)).Energy(k)<GetComponentDataByIndex(Z,j))[k]); - newDirection.rotateUz(dir); - fParticleChange->ProposeMomentumDirection(newDirection); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4DiscreteScatteringModel::ComputeCrossSectionPerAtom( - const G4ParticleDefinition*,G4double E, G4double Z, G4double, - G4double, G4double) -{ - // super simple, very compact look-up for total cross section - if (E==0.) {return 1e30;} - //G4cout<<"------------------"<GetValueForElement(Z,log(E))) - //<<" "<GetValueForElement(Z,log(E))<GetValueForElement(Z,log(E)))<GetValueForElement(Z,G4Log(E))); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4ThreeVector G4DiscreteScatteringModel::GetNewDirection(G4double z1) -{ - G4ThreeVector dir(0.0,0.0,1.0); - - G4double sint = sin(acos(z1)); - G4double cost = sqrt(1.0 - sint*sint); - G4double phi = twopi* G4UniformRand(); - G4double dirx = sint*cos(phi); - G4double diry = sint*sin(phi); - G4double dirz = cost; - - dir.set(dirx,diry,dirz); - return dir; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - diff --git a/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc index 48cfd8142e..118d01014e 100644 --- a/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc @@ -27,12 +27,13 @@ /// \brief Implementation of the HistoManager class // // -// $Id: HistoManager.cc 78560 2014-01-07 10:06:52Z gcosmo $ +// $Id: HistoManager.cc 95740 2016-02-23 09:34:37Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoManager.hh" +#include "DetectorConstruction.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,33 +62,46 @@ void HistoManager::Book() analysisManager->SetFileName(fFileName); analysisManager->SetVerboseLevel(1); analysisManager->SetActivation(true); - // enable inactivation of histograms // Define histograms start values - const G4int kMaxHisto = 9; - const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8" }; - + const G4int kMaxHisto = 10; + const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", + "10","11","12","13","14","15","16","17","18","19", + "20","21","22"}; + const G4String title[] = - { "dummy", //0 - "Edep (MeV/mm) along absorber", //1 - "total Energy deposited in absorber", //2 - "true track length of the primary particle", //3 - "true step size of the primary particle", //4 - "projected range of the primary particle", //5 - "true track length of charged secondaries", //6 - "true step size of charged secondaries", //7 - "Edep (MeV.cm2/g) along x/r0" //8 + { "dummy", //0 + "Edep (MeV/mm) along absorbers", //1 + "total Energy deposited in absorbers", //2 + "true track length of the primary particle", //3 + "true step size of the primary particle", //4 + "projected range of the primary particle", //5 + "true track length of charged secondaries", //6 + "true step size of charged secondaries", //7 + "Edep (MeV.cm2/g) along x/r0", //8 + "dummy", //9 + "dummy" //10 }; - // Default values (to be reset via /analysis/h1/set command) + // Default values (to be reset via /analysis/h1/set command) G4int nbins = 100; G4double vmin = 0.; G4double vmax = 100.; // Create all histograms as inactivated // as we have not yet set nbins, vmin, vmax - for (G4int k=0; kCreateH1(id[k], title[k], nbins, vmin, vmax); analysisManager->SetH1Activation(ih, false); } + + G4String title2; + for (G4int k=1; kCreateH1(id[kMaxHisto+k], title2, nbins, vmin, vmax); + analysisManager->SetH1Activation(ih, false); + } } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc index 6386f16f07..9bdb2026f0 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc 94269 2015-11-10 07:55:24Z gcosmo $ +// $Id: PhysListEmStandard.cc 96377 2016-04-11 06:59:03Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,14 +58,12 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" #include "G4BuilderType.hh" -#include "G4EmModelActivator.hh" #include "G4SystemOfUnits.hh" @@ -76,8 +74,11 @@ PhysListEmStandard::PhysListEmStandard(const G4String& name) { G4EmParameters* param = G4EmParameters::Instance(); param->SetDefaults(); - param->SetFluo(true); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); param->SetMscStepLimitType(fUseSafetyPlus); + param->SetFluo(true); SetPhysicsType(bElectromagnetic); } @@ -184,8 +185,6 @@ void PhysListEmStandard::ConstructProcess() G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); G4LossTableManager::Instance()->SetAtomDeexcitation(de); - G4EmModelActivator mact; - mact.ConstructProcess(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc index df55acb6dc..4060e4804c 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 94269 2015-11-10 07:55:24Z gcosmo $ +// $Id: PhysicsList.cc 96377 2016-04-11 06:59:03Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,7 +35,6 @@ #include "PhysicsListMessenger.hh" #include "PhysListEmStandard.hh" -#include "PhysListEmStandardMP.hh" #include "G4EmStandardPhysics.hh" #include "G4EmStandardPhysics_option1.hh" @@ -67,7 +66,7 @@ G4ThreadLocal StepMax* PhysicsList::fStepMaxProcess = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysicsList::PhysicsList() : G4VModularPhysicsList(), fNumAngles(1) +PhysicsList::PhysicsList() : G4VModularPhysicsList() { fMessenger = new PhysicsListMessenger(this); @@ -114,7 +113,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4ProcessManager.hh" -#include "G4EmProcessOptions.hh" void PhysicsList::ConstructProcess() { @@ -128,14 +126,17 @@ void PhysicsList::ConstructProcess() // Em options // - G4EmProcessOptions emOptions; - emOptions.SetBuildCSDARange(true); - emOptions.SetDEDXBinningForCSDARange(8*10); - + G4EmParameters* param = G4EmParameters::Instance(); + param->SetBuildCSDARange(true); + // decay process // AddDecay(); - + + // radioactive decay Process + // + AddRadioactiveDecay(); + // step limitation (as a full process) // AddStepMax(); @@ -210,11 +211,6 @@ void PhysicsList::AddPhysicsList(const G4String& name) fEmName = name; delete fEmPhysicsList; fEmPhysicsList = new G4EmPenelopePhysics(); - - } else if (name == "emstandardMP") { - fEmName = name; - delete fEmPhysicsList; - fEmPhysicsList = new PhysListEmStandardMP(fNumAngles); } else { @@ -250,6 +246,26 @@ void PhysicsList::AddDecay() } } } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4PhysicsListHelper.hh" +#include "G4RadioactiveDecay.hh" +#include "G4GenericIon.hh" +#include "G4NuclideTable.hh" + +void PhysicsList::AddRadioactiveDecay() +{ + G4RadioactiveDecay* radioactiveDecay = new G4RadioactiveDecay(); + + radioactiveDecay->SetARM(true); //Atomic Rearangement + + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + ph->RegisterProcess(radioactiveDecay, G4GenericIon::GenericIon()); + + // mandatory for G4NuclideTable + // + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc index db8689b154..8fe917d3db 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/src/PhysicsListMessenger.cc /// \brief Implementation of the PhysicsListMessenger class // -// $Id: PhysicsListMessenger.cc 94269 2015-11-10 07:55:24Z gcosmo $ +// $Id: PhysicsListMessenger.cc 96329 2016-04-06 15:53:16Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ #include "PhysicsList.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,12 +50,6 @@ PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) fListCmd->SetParameterName("PList",false); fListCmd->AvailableForStates(G4State_PreInit); fListCmd->SetToBeBroadcasted(false); - - fNumAngs = new G4UIcmdWithAnInteger("/testem/phys/setNumberOfAngles",this); - fNumAngs->SetGuidance("Set the Number of Discrete Angles."); - fNumAngs->SetParameterName("numAngles",false); - fNumAngs->AvailableForStates(G4State_PreInit); - fNumAngs->SetToBeBroadcasted(false); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,7 +58,6 @@ PhysicsListMessenger::~PhysicsListMessenger() { delete fListCmd; delete fPhysDir; - delete fNumAngs; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -75,8 +67,6 @@ void PhysicsListMessenger::SetNewValue(G4UIcommand* command, { if( command == fListCmd ) { fPhysicsList->AddPhysicsList(newValue);} - if( command == fNumAngs ) - { fPhysicsList->SetNumAngles(fNumAngs->GetNewIntValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc index 9a6304e7f6..f5b18267a1 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc /// \brief Implementation of the PrimaryGeneratorAction class // -// $Id: PrimaryGeneratorAction.cc 68309 2013-03-21 17:42:10Z maire $ +// $Id: PrimaryGeneratorAction.cc 95740 2016-02-23 09:34:37Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,11 +50,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) fDetector(det),fRndmBeam(0.), fGunMessenger(0) { fParticleGun = new G4ParticleGun(1); - G4ParticleDefinition* particle - = G4ParticleTable::GetParticleTable()->FindParticle("e-"); - fParticleGun->SetParticleDefinition(particle); - fParticleGun->SetParticleEnergy(500*keV); - fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + SetDefaultKinematic(); //create a messenger for this class fGunMessenger = new PrimaryGeneratorMessenger(this); @@ -70,25 +66,39 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void PrimaryGeneratorAction::SetDefaultKinematic() +{ + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("e-"); + fParticleGun->SetParticleDefinition(particle); + fParticleGun->SetParticleEnergy(500*keV); + fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + G4double position = -0.5*(fDetector->GetAbsorSizeX()); + fParticleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event - // - G4double x0 = -0.5*(fDetector->GetAbsorSizeX()); - G4double y0 = 0.*cm, z0 = 0.*cm; //randomize the beam, if requested. // if (fRndmBeam > 0.) { + G4ThreeVector oldPosition = fParticleGun->GetParticlePosition(); if (fRndmBeam > fDetector->GetAbsorSizeYZ()) fRndmBeam = fDetector->GetAbsorSizeYZ(); G4double rbeam = 0.5*fRndmBeam; - y0 = (2*G4UniformRand()-1.)*rbeam; - z0 = (2*G4UniformRand()-1.)*rbeam; + G4double x0 = oldPosition.x(); + G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; + G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; + fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + fParticleGun->GeneratePrimaryVertex(anEvent); + fParticleGun->SetParticlePosition(oldPosition); } - fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); - fParticleGun->GeneratePrimaryVertex(anEvent); + + else fParticleGun->GeneratePrimaryVertex(anEvent); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc index e8d030833d..0f0000a2b9 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc /// \brief Implementation of the PrimaryGeneratorMessenger class // -// $Id: PrimaryGeneratorMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ +// $Id: PrimaryGeneratorMessenger.cc 96172 2016-03-22 09:19:11Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,17 +35,22 @@ #include "PrimaryGeneratorAction.hh" #include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithADoubleAndUnit.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( PrimaryGeneratorAction* Gun) -:G4UImessenger(),fAction(Gun),fGunDir(0),fRndmCmd(0) +:G4UImessenger(),fAction(Gun),fGunDir(0),fDefaultCmd(0),fRndmCmd(0) { fGunDir = new G4UIdirectory("/testem/gun/"); fGunDir->SetGuidance("gun control"); + fDefaultCmd = new G4UIcmdWithoutParameter("/testem/gun/setDefault",this); + fDefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator"); + fDefaultCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fRndmCmd = new G4UIcmdWithADoubleAndUnit("/testem/gun/rndm",this); fRndmCmd->SetGuidance("random lateral extension on the beam"); fRndmCmd->SetParameterName("rBeam",false); @@ -58,6 +63,7 @@ PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() { + delete fDefaultCmd; delete fRndmCmd; delete fGunDir; } @@ -67,6 +73,9 @@ PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { + if (command == fDefaultCmd) + {fAction->SetDefaultKinematic();} + if (command == fRndmCmd) {fAction->SetRndmBeam(fRndmCmd->GetNewDoubleValue(newValue));} } diff --git a/examples/extended/electromagnetic/TestEm11/src/Run.cc b/examples/extended/electromagnetic/TestEm11/src/Run.cc index d95f90ca1f..40f47de5f7 100644 --- a/examples/extended/electromagnetic/TestEm11/src/Run.cc +++ b/examples/extended/electromagnetic/TestEm11/src/Run.cc @@ -50,14 +50,15 @@ Run::Run(DetectorConstruction* detector) : G4Run(), fDetector(detector), fParticle(0), fEkin(0.), - fEdeposit(0.), fEdeposit2(0.), fTrackLen(0.), fTrackLen2(0.), fProjRange(0.), fProjRange2(0.), fNbOfSteps(0), fNbOfSteps2(0), fStepSize(0.), fStepSize2(0.) { - for (G4int i=0; i<3; ++i) fStatus[i] = 0; + for (G4int i=0; i<3; ++i) { fStatus[i] = 0; fTotEdep[i] = 0.; } + fTotEdep[1] = joule; for (G4int i=0; i 0.) { + fEdeposit[i] += e; + if (e < fEmin[i]) fEmin[i] = e; + if (e > fEmax[i]) fEmax[i] = e; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::AddTotEdep (G4double e) +{ + if (e > 0.) { + fTotEdep[0] += e; + if (e < fTotEdep[1]) fTotEdep[1] = e; + if (e > fTotEdep[2]) fTotEdep[2] = e; + } +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void Run::AddTrackLength (G4double t) { @@ -155,8 +169,6 @@ void Run::Merge(const G4Run* run) fEkin = localRun->fEkin; // accumulate sums - fEdeposit += localRun->fEdeposit; - fEdeposit2 += localRun->fEdeposit2; fTrackLen += localRun->fTrackLen; fTrackLen2 += localRun->fTrackLen2; fProjRange += localRun->fProjRange; @@ -168,11 +180,24 @@ void Run::Merge(const G4Run* run) G4int nbOfAbsor = fDetector->GetNbOfAbsor(); for (G4int i=1; i<=nbOfAbsor; ++i) { + fEdeposit[i] += localRun->fEdeposit[i]; fCsdaRange[i] = localRun->fCsdaRange[i]; fXfrontNorm[i] = localRun->fXfrontNorm[i]; + // min, max + G4double min,max; + min = localRun->fEmin[i]; max = localRun->fEmax[i]; + if (fEmin[i] > min) fEmin[i] = min; + if (fEmax[i] < max) fEmax[i] = max; } for (G4int i=0; i<3; ++i) fStatus[i] += localRun->fStatus[i]; + + // total Edep + fTotEdep[0] += localRun->fTotEdep[0]; + G4double min,max; + min = localRun->fTotEdep[1]; max = localRun->fTotEdep[2]; +if (fTotEdep[1] > min) fTotEdep[1] = min; +if (fTotEdep[2] < max) fTotEdep[2] = max; G4Run::Merge(run); } @@ -190,7 +215,7 @@ void Run::EndOfRun() G4String partName = fParticle->GetParticleName(); G4int nbOfAbsor = fDetector->GetNbOfAbsor(); - G4cout << "\n ======================== run summary =====================\n"; + G4cout << "\n ======================== run summary =====================\n"; G4cout << "\n The run is " << numberOfEvent << " "<< partName << " of " << G4BestUnit(fEkin,"Energy") @@ -198,28 +223,43 @@ void Run::EndOfRun() for (G4int i=1; i<= nbOfAbsor; i++) { G4Material* material = fDetector->GetAbsorMaterial(i); G4double thickness = fDetector->GetAbsorThickness(i); - G4double density = material->GetDensity(); - G4cout << std::setw(20) << G4BestUnit(thickness,"Length") << " of " + G4double density = material->GetDensity(); + G4cout << std::setw(5) << i + << std::setw(10) << G4BestUnit(thickness,"Length") << " of " << material->GetName() << " (density: " << G4BestUnit(density,"Volumic Mass") << ")" << G4endl; - } + } if (numberOfEvent == 0) { G4cout.setf(mode,std::ios::floatfield); G4cout.precision(prec); return; } - - fEdeposit /= numberOfEvent; fEdeposit2 /= numberOfEvent; - G4double rms = fEdeposit2 - fEdeposit*fEdeposit; - if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4double rms (0); + + for (G4int i=1; i<= nbOfAbsor; i++) { + fEdeposit[i] /= numberOfEvent; - G4cout.precision(3); - G4cout - << "\n Total Energy deposited = " << G4BestUnit(fEdeposit,"Energy") - << " +- " << G4BestUnit( rms,"Energy") - << G4endl; - + G4cout + << "\n Edep in absorber " << i << " = " + << G4BestUnit(fEdeposit[i],"Energy") + << "\t(" << G4BestUnit(fEmin[i], "Energy") + << "-->" << G4BestUnit(fEmax[i], "Energy") + << ")"; + } + G4cout << G4endl; + + if (nbOfAbsor > 1) { + fTotEdep[0] /= numberOfEvent; + G4cout + << "\n Edep in all absorbers = " << G4BestUnit(fTotEdep[0],"Energy") + << "\t(" << G4BestUnit(fTotEdep[1], "Energy") + << "-->" << G4BestUnit(fTotEdep[2], "Energy") + << ")" << G4endl; + } + //compute track length of primary track // fTrackLen /= numberOfEvent; fTrackLen2 /= numberOfEvent; diff --git a/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc index 0d3f7cbd61..b51efcc164 100644 --- a/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm11/src/SteppingAction.cc /// \brief Implementation of the SteppingAction class // -// $Id: SteppingAction.cc 74997 2013-10-25 10:52:13Z gcosmo $ +// $Id: SteppingAction.cc 95740 2016-02-23 09:34:37Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,10 +59,6 @@ void SteppingAction::UserSteppingAction(const G4Step* step) G4double edep = step->GetTotalEnergyDeposit(); if (edep <= 0.) return; - //total energy deposit in absorber - // - fEventAction->AddEdep(edep); - G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); //longitudinal profile of deposited energy @@ -91,7 +87,11 @@ void SteppingAction::UserSteppingAction(const G4Step* step) G4double xnorm = xfrontNorm + (x - xfront)/csdaRange; analysisManager->FillH1(8, xnorm, edep/(csdaRange*density)); } - + + //total energy deposit in absorber + // + fEventAction->AddEdep(iabs, edep); + //step size of primary particle or charged secondaries // G4double steplen = step->GetStepLength(); diff --git a/examples/extended/electromagnetic/TestEm11/water.mac b/examples/extended/electromagnetic/TestEm11/water.mac index 473e9b6acc..71baf1d517 100644 --- a/examples/extended/electromagnetic/TestEm11/water.mac +++ b/examples/extended/electromagnetic/TestEm11/water.mac @@ -1,4 +1,4 @@ -# $Id: water.mac 82462 2014-06-23 10:45:28Z gcosmo $ +# $Id: water.mac 96172 2016-03-22 09:19:11Z gcosmo $ # # no constraint on tracking step # @@ -15,6 +15,7 @@ # /run/setCut 100 um # +/testem/gun/setDefault /gun/particle e- /gun/energy 4 MeV # diff --git a/examples/extended/electromagnetic/TestEm12/History b/examples/extended/electromagnetic/TestEm12/History index 140c87c072..150f0f2876 100644 --- a/examples/extended/electromagnetic/TestEm12/History +++ b/examples/extended/electromagnetic/TestEm12/History @@ -1,4 +1,4 @@ -$Id: History 93666 2015-10-28 09:52:00Z gcosmo $ +$Id: History 96380 2016-04-11 07:01:31Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +08-04-16 mma (testem12-V10-02-02) +- PhysicsList, PhysListEmStandard: use G4EmParameters + +08-01-16 SI (testem12-V10-02-01) +- updated dna.mac + +10-12-15 V.Ivant (testem12-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 27-10-15 D.Sawkey (testem12-V10-01-02) - update READMEs diff --git a/examples/extended/electromagnetic/TestEm12/TestEm12.out b/examples/extended/electromagnetic/TestEm12/TestEm12.out index da21268b7d..8ac8c1b5c7 100644 --- a/examples/extended/electromagnetic/TestEm12/TestEm12.out +++ b/examples/extended/electromagnetic/TestEm12/TestEm12.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -117,24 +117,24 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=2.44s Real=2.44s Sys=0s + User=3.78s Real=3.8s Sys=0s ======================== 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.944 MeV +- 221.845 keV + Total Energy deposited = 3.947 MeV +- 207.279 keV - Track length of primary track = 2.038 cm +- 2.816 mm - Range from EmCalculator = 2.037 cm (from full dE/dx) + Track length of primary track = 2.048 cm +- 2.797 mm + Range from EmCalculator = 2.045 cm (from full dE/dx) - Projected range = 1.320 cm +- 3.573 mm + Projected range = 1.324 cm +- 3.648 mm - Nb of steps of primary track = 16.24 +- 3.03 Step size= 1.292 mm +- 278.684 um + Nb of steps of primary track = 16.34 +- 3.03 Step size= 1.291 mm +- 278.555 um --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 689336582, 1429368840 + Current couple of seeds = 1385749139, 1434972061 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/electromagnetic/TestEm12/dna.mac b/examples/extended/electromagnetic/TestEm12/dna.mac index 9a4e3075cf..797c3ce64f 100644 --- a/examples/extended/electromagnetic/TestEm12/dna.mac +++ b/examples/extended/electromagnetic/TestEm12/dna.mac @@ -17,7 +17,7 @@ /analysis/h1/set 1 50 0. 100 nm #edep profile /analysis/h1/set 3 50 0. 300 nm #true track length # -/testem/applyAutomaticStepMax false +/testem/applyAutomaticStepMax true # /run/printProgress 1000 # diff --git a/examples/extended/electromagnetic/TestEm12/plotHisto.C b/examples/extended/electromagnetic/TestEm12/plotHisto.C index f7fb78949f..e90b20374d 100644 --- a/examples/extended/electromagnetic/TestEm12/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm12/plotHisto.C @@ -3,8 +3,8 @@ // Draw histos filled by Geant4 simulation // - // TFile f = TFile("testem12.root"); - TFile f = TFile("compton-pen.root"); + // TFile f("testem12.root"); + TFile f("compton-pen.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("1"); diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc index b6e434c79c..dd24c34c7e 100644 --- a/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc 85260 2014-10-27 08:53:35Z gcosmo $ +// $Id: PhysListEmStandard.cc 96380 2016-04-11 07:01:31Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,19 +58,28 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" +#include "G4BuilderType.hh" #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetMscStepLimitType(fUseSafetyPlus); + param->SetFluo(true); + SetPhysicsType(bElectromagnetic); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -170,30 +179,9 @@ void PhysListEmStandard::ConstructProcess() } } - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(10*eV); //default 100 eV - emOptions.SetMaxEnergy(10*TeV); //default 100 TeV - emOptions.SetDEDXBinning(12*10); //default=12*7 - emOptions.SetLambdaBinning(12*10); //default=12*7 - - //multiple coulomb scattering - // - emOptions.SetMscStepLimitation(fUseSafetyPlus); //default=fUseSafety - // Deexcitation // G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); - de->SetFluo(true); - de->SetAuger(false); - de->SetPIXE(false); G4LossTableManager::Instance()->SetAtomDeexcitation(de); } diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandardSSM.cc b/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandardSSM.cc index 40f648e54a..ee89ad5226 100644 --- a/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandardSSM.cc +++ b/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandardSSM.cc @@ -26,10 +26,10 @@ /// \file electromagnetic/TestEm12/src/PhysListEmStandardSSM.cc /// \brief Implementation of the PhysListEmStandardSSM class // -// $Id: PhysListEmStandardSSM.cc 68530 2013-04-01 21:30:05Z adotti $ +// $Id: PhysListEmStandardSSM.cc 96380 2016-04-11 07:01:31Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandardSSM.hh" @@ -56,8 +56,6 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" - #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -151,9 +149,6 @@ void PhysListEmStandardSSM::ConstructProcess() pmanager->AddDiscreteProcess(new G4CoulombScattering); } } - // scattering - G4EmProcessOptions emOptions; - emOptions.SetPolarAngleLimit(0.0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc index 6293afd436..b93fdf2416 100644 --- a/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm12/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 90967 2015-06-12 08:10:54Z gcosmo $ +// $Id: PhysicsList.cc 96380 2016-04-11 07:01:31Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -128,7 +128,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4ProcessManager.hh" -#include "G4EmProcessOptions.hh" void PhysicsList::ConstructProcess() { @@ -142,10 +141,9 @@ void PhysicsList::ConstructProcess() // Em options // - G4EmProcessOptions emOptions; - emOptions.SetBuildCSDARange(true); - emOptions.SetDEDXBinningForCSDARange(8*10); - + G4EmParameters* param = G4EmParameters::Instance(); + param->SetBuildCSDARange(true); + // decay process // AddDecay(); diff --git a/examples/extended/electromagnetic/TestEm13/History b/examples/extended/electromagnetic/TestEm13/History index 800fd44d43..714e7aca9a 100644 --- a/examples/extended/electromagnetic/TestEm13/History +++ b/examples/extended/electromagnetic/TestEm13/History @@ -1,4 +1,4 @@ -$Id: History 92997 2015-09-28 08:04:21Z gcosmo $ +$Id: History 96378 2016-04-11 06:59:45Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,14 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - + +08-04-16 mma (testem13-V10-02-01) +- PhysListEmStandard: remove G4EmProcessOption.hh + +08-04-16 mma (testem13-V10-02-00) +- PhysicsList: use G4EmParameters +- remove geant3 subdirectory + 27-09-15 mma (testem13-V10-01-00) - DetectorConstruction::SetMatetial(): allow nist materials diff --git a/examples/extended/electromagnetic/TestEm13/TestEm13.out b/examples/extended/electromagnetic/TestEm13/TestEm13.out index 013f54c7fc..32425104aa 100644 --- a/examples/extended/electromagnetic/TestEm13/TestEm13.out +++ b/examples/extended/electromagnetic/TestEm13/TestEm13.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -216,7 +216,8 @@ physicsList->setCut() start. /run/beamOn 1000000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -265,7 +266,7 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen -annihil: for e+ SubType= 5 BuildTable= 0 +annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -280,7 +281,7 @@ hIoni: for proton SubType= 2 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 0, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -289,7 +290,7 @@ ionIoni: for GenericIon SubType= 2 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 0, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -321,7 +322,7 @@ hIoni: for kaon- SubType= 2 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -343,7 +344,7 @@ muPairProd: for mu+ SubType= 4 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -426,7 +427,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000000 - User=7.79s Real=7.8s Sys=0s + User=7.67s Real=7.71s Sys=0s ======================== run summary ====================== @@ -493,7 +494,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000000 - User=6.52s Real=6.55s Sys=0s + User=11.24s Real=11.31s Sys=0s ======================== run summary ====================== diff --git a/examples/extended/electromagnetic/TestEm13/geant3/README b/examples/extended/electromagnetic/TestEm13/geant3/README deleted file mode 100644 index 2cd1dd8d19..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/README +++ /dev/null @@ -1,44 +0,0 @@ - - testem13 is the geant3 equivalent of TestEm13 - - % cd geant3 - % gmakeB to make an executable (Batch version) - % gmakeT to make an executable (inTeractive version) - - To execute: - - % cd geant3 - % $G4SYSTEM/testem13.xb (for batch) or testem13.xt (for interactive) - - The program will ask: - G3 > gives the filename of the data cards to be read: - - myMacro.dat (myMacro.dat is the equivalent of the G4 myMacro.mac) - - data cards - ---------- - Most of the data cards used in xxxx.dat are standard data cards of GEANT3, - but some of them are defined in testem13: - - KEY VARIABLE/type Short description - - FILE fileName (character) fileName of the histos - (the FILE data card should be the - first, with the format A4,A2,A25) - - DETECTOR MAT (integer) mat.number of the absorber - THICK (real) X thickness of the absorber - - - histograms - ---------- - The list of built-in histograms is identical to TestEm13.cc - (see G4 README or histo.F) - - One can control the binning of the histograms with the data card: - *HISTO id1 nbBins valMin valMax valUnit - *HISTO id2 nbBins valMin valMax valUnit - ... etc ........... - - valMin and ValMax are given in the desired unit, whose numerical value must - be specified in valUnit. Remember that Geant3 defaults are: GeV, cm, rad. diff --git a/examples/extended/electromagnetic/TestEm13/geant3/anni.dat b/examples/extended/electromagnetic/TestEm13/geant3/anni.dat deleted file mode 100644 index 56ec634ecf..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/anni.dat +++ /dev/null @@ -1,23 +0,0 @@ -FILE anni.hbook -LIST -C -C positron 100 MeV -C -DETECTOR 5 (Aluminium) 10000. (cm) -KINE 2 (positron) 0.100 (GeV) -C -*HISTO 5 (id) 210 (nbins) 0. (Emin) 105. (Emax) 1.e-3 (MeV) -*HISTO 6 (id) 200 (nbins) -1. (cost1) +1. (cost2) -C -MULS 0 -LOSS 0 -DRAY 0 -BREM 0 -ANNI 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/compton.dat b/examples/extended/electromagnetic/TestEm13/geant3/compton.dat deleted file mode 100644 index 28aee7ba36..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/compton.dat +++ /dev/null @@ -1,23 +0,0 @@ -FILE compton.hbook -LIST -C -C Photon 300 keV; compton -C -DETECTOR 5 (Aluminium) 10000. (cm) -KINE 1 (gamma) 300.e-6 (GeV) -C -*HISTO 1 (id) 100 (nbins) 0. (Emin) 300. (Emax) 1.e-6 (keV) -*HISTO 2 (id) 200 (nbins) -1. (cost1) +1. (cost2) -*HISTO 3 (id) 100 (nbins) 0. (Emin) 300. (Emax) 1.e-6 (keV) -*HISTO 4 (id) 200 (nbins) -1. (cost1) +1. (cost2) -C -PHOT 0 -COMP 1 -PAIR 0 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/conv.dat b/examples/extended/electromagnetic/TestEm13/geant3/conv.dat deleted file mode 100644 index 1fc4c2da2f..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/conv.dat +++ /dev/null @@ -1,21 +0,0 @@ -FILE conversion.hbook -LIST -C -C Photon 100 MeV; gamma conversion to e+e- -C -DETECTOR 8 (Lead) 10000. (cm) -KINE 1 (gamma) 0.1 (GeV) -C -*HISTO 3 (id) 200 (nbins) 0. (Emin) 100. (Emax) 1.e-3 (MeV) -*HISTO 4 (id) 200 (nbins) 0. (cost1) +1. (cost2) -C -PHOT 0 -COMP 0 -PAIR 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/electron.dat b/examples/extended/electromagnetic/TestEm13/geant3/electron.dat deleted file mode 100644 index 1584046da4..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/electron.dat +++ /dev/null @@ -1,24 +0,0 @@ -FILE gamma.hbook -LIST -C -C electron 100 MeV -C -DETECTOR 5 (Aluminium) 10000. (cm) -KINE 3 (electron) 0.100 (GeV) -C -*HISTO 1 (id) 100 (nbins) 0. (Emin) 100. (Emax) 1.e-3 (MeV) -*HISTO 2 (id) 100 (nbins) 0.5 (cost1) +1. (cost2) -*HISTO 3 (id) 100 (nbins) 0. (Emin) 100. (Emax) 1.e-3 (MeV) -*HISTO 4 (id) 100 (nbins) 0. (cost1) +1. (cost2) -C -MULS 0 -LOSS 4 -DRAY 1 -BREM 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/gamma.dat b/examples/extended/electromagnetic/TestEm13/geant3/gamma.dat deleted file mode 100644 index fb6da29e07..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/gamma.dat +++ /dev/null @@ -1,18 +0,0 @@ -FILE gamma.hbook -LIST -C -C Photon Processes; gamma 100 keV -C -DETECTOR 3 (Water) 10000. (cm) -KINE 1 (gamma) 0.0001 (GeV) -C -PHOT 1 -COMP 1 -PAIR 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/gmakeB b/examples/extended/electromagnetic/TestEm13/geant3/gmakeB deleted file mode 100755 index 6f9fbfda90..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/gmakeB +++ /dev/null @@ -1,32 +0,0 @@ -# -# @(#) Script to build a Batch geant executable -# -set name=testem13 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F - -# -# Link -# -echo 'linking geant3+cernlib libraries ...' -# -hepf77 $extnam -g -o $name.xb *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xb -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm13/geant3/gmakeT b/examples/extended/electromagnetic/TestEm13/geant3/gmakeT deleted file mode 100755 index 22b6e5d165..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/gmakeT +++ /dev/null @@ -1,31 +0,0 @@ -# -# @(#) Script to build an inTeractive geant executable -# -set name=testem13 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries...' -# -hepf77 $extnam -g -o $name.xt *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xt -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm13/geant3/include/detector.inc b/examples/extended/electromagnetic/TestEm13/geant3/include/detector.inc deleted file mode 100644 index 1405514abd..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/include/detector.inc +++ /dev/null @@ -1,6 +0,0 @@ - - COMMON/DETECTOR/Imat,BoxSize -* -* Imat = GEANT material number. (data card DETECTOR) -* BoxSize = total size of the box (cm) (data card DETECTOR) -* diff --git a/examples/extended/electromagnetic/TestEm13/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm13/geant3/include/histo.inc deleted file mode 100644 index 1da08da7da..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/include/histo.inc +++ /dev/null @@ -1,8 +0,0 @@ - CHARACTER*25 fileName - COMMON/HISTO1/fileName - - COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit - - PARAMETER (MaxHist = 6) - LOGICAL histo - COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm13/geant3/include/process.inc b/examples/extended/electromagnetic/TestEm13/geant3/include/process.inc deleted file mode 100644 index 3edc74ffeb..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/include/process.inc +++ /dev/null @@ -1,2 +0,0 @@ - - COMMON/PROCESS/nbCall(12),nbTot,sumTrak,sumTrak2 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/photoelec.dat b/examples/extended/electromagnetic/TestEm13/geant3/photoelec.dat deleted file mode 100644 index c81fc1c17b..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/photoelec.dat +++ /dev/null @@ -1,18 +0,0 @@ -FILE photoelec.hbook -LIST -C -C gamma 100 keV -C -DETECTOR 6 (Iron) 10000. (cm) -KINE 1 (gamma) 0.0001 (GeV) -C -PHOT 1 -COMP 0 -PAIR 0 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/proton.dat b/examples/extended/electromagnetic/TestEm13/geant3/proton.dat deleted file mode 100644 index ee3e6d20bb..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/proton.dat +++ /dev/null @@ -1,23 +0,0 @@ -FILE proton.hbook -LIST -C -C proton 1 GeV -C -DETECTOR 3 (Water) 10000. (cm) -KINE 14 (proton) 1. (GeV) -C -*HISTO 1 (id) 100 (nbins) 990. (Emin) 1000. (Emax) 1.e-3 (MeV) -*HISTO 2 (id) 100 (nbins) 0.9 (cost1) +1. (cost2) -*HISTO 3 (id) 100 (nbins) 0. (Emin) 5. (Emax) 1.e-3 (MeV) -*HISTO 4 (id) 100 (nbins) 0. (cost1) +1. (cost2) -C -MULS 0 -LOSS 4 -DRAY 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm13/geant3/src/ffuser.F deleted file mode 100644 index abe29f1568..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/ffuser.F +++ /dev/null @@ -1,11 +0,0 @@ - - SUBROUTINE FFUSER(ikey) -* -* The routine is called when a *key card is read -* - CHARACTER*4 keyw -* - call UHTOC(ikey,4,keyw,4) - if (keyw.eq.'HIST') call uhinit -* - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/gtgama.F b/examples/extended/electromagnetic/TestEm13/geant3/src/gtgama.F deleted file mode 100644 index 6feb8775a5..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/gtgama.F +++ /dev/null @@ -1,267 +0,0 @@ - - SUBROUTINE GTGAMA -C. -C. ****************************************************************** -C. * * -C. * Photon track. Computes step size and propagates particle * -C. * through step. * -C. * * -C. * ==>Called by : GTRACK * -C. * Authors R.Brun, F.Bruyant L.Urban ******** * -C. * * -C. ****************************************************************** -C. -#include "geant321/gcbank.inc" -#include "geant321/gccuts.inc" -#include "geant321/gcjloc.inc" -#include "geant321/gconsp.inc" -#include "geant321/gcphys.inc" -#include "geant321/gcstak.inc" -#include "geant321/gctmed.inc" -#include "geant321/gcmulo.inc" -#include "geant321/gctrak.inc" -#include "geant321/gcunit.inc" - - PARAMETER (EPSMAC=1.E-6) - DOUBLE PRECISION ONE,XCOEF1,XCOEF2,XCOEF3,ZERO - - PARAMETER (ONE=1,ZERO=0) - PARAMETER (EPCUT=1.022E-3) -C. -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - IABAN = NINT(DPHYS1) -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -C. ------------------------------------------------------------------ -* -* *** Particle below energy threshold ? Short circuit -* -* - IF (GEKIN.LE.CUTGAM) GOTO 998 -* -* *** Update local pointers if medium has changed -* - IF(IUPD.EQ.0)THEN - IUPD = 1 - JPHOT = LQ(JMA-6) - JCOMP = LQ(JMA-8) - JPAIR = LQ(JMA-10) - JPFIS = LQ(JMA-12) - JRAYL = LQ(JMA-13) - ENDIF -* -* *** Compute current step size -* - IPROC = 103 - STEP = STEMAX - GEKRT1 = 1 .-GEKRAT -* -* ** Step limitation due to pair production ? -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) THEN - STEPPA = GEKRT1*Q(JPAIR+IEKBIN) +GEKRAT*Q(JPAIR+IEKBIN+1) - SPAIR = STEPPA*ZINTPA - IF (SPAIR.LT.STEP) THEN - STEP = SPAIR - IPROC = 6 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to Compton scattering ? -* - IF (ICOMP.GT.0) THEN - STEPCO = GEKRT1*Q(JCOMP+IEKBIN) +GEKRAT*Q(JCOMP+IEKBIN+1) - SCOMP = STEPCO*ZINTCO - IF (SCOMP.LT.STEP) THEN - STEP = SCOMP - IPROC = 7 - ENDIF - ENDIF -* -* ** Step limitation due to photo-electric effect ? -* - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) THEN - STEPPH = GEKRT1*Q(JPHOT+IEKBIN) +GEKRAT*Q(JPHOT+IEKBIN+1) - SPHOT = STEPPH*ZINTPH - IF (SPHOT.LT.STEP) THEN - STEP = SPHOT - IPROC = 8 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to photo-fission ? -* - IF (JPFIS.GT.0) THEN - STEPPF = GEKRT1*Q(JPFIS+IEKBIN) +GEKRAT*Q(JPFIS+IEKBIN+1) - SPFIS = STEPPF*ZINTPF - IF (SPFIS.LT.STEP) THEN - STEP = SPFIS - IPROC = 23 - ENDIF - ENDIF -* -* ** Step limitation due to Rayleigh scattering ? -* - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) THEN - STEPRA = GEKRT1*Q(JRAYL+IEKBIN) +GEKRAT*Q(JRAYL+IEKBIN+1) - SRAYL = STEPRA*ZINTRA - IF (SRAYL.LT.STEP) THEN - STEP = SRAYL - IPROC = 25 - ENDIF - ENDIF - ENDIF -* - IF (STEP.LT.0.) STEP = 0. -* -* ** Step limitation due to geometry ? -* - IF (STEP.GE.SAFETY) THEN - CALL GTNEXT - IF (IGNEXT.NE.0) THEN - STEP = SNEXT + PREC - INWVOL= 2 - IPROC = 0 - NMEC = 1 - LMEC(1)=1 - ENDIF -* -* Update SAFETY in stack companions, if any - IF (IQ(JSTAK+3).NE.0) THEN - DO 10 IST = IQ(JSTAK+3),IQ(JSTAK+1) - JST = JSTAK +3 +(IST-1)*NWSTAK - Q(JST+11) = SAFETY - 10 CONTINUE - IQ(JSTAK+3) = 0 - ENDIF -* - ELSE - IQ(JSTAK+3) = 0 - ENDIF -* -* *** Linear transport -* - IF (INWVOL.EQ.2) THEN - DO 20 I = 1,3 - VECTMP = VECT(I) +STEP*VECT(I+3) - IF(VECTMP.EQ.VECT(I)) THEN -* -* *** Correct for machine precision -* - IF(VECT(I+3).NE.0.) THEN - VECTMP = VECT(I)+ABS(VECT(I))*SIGN(1.,VECT(I+3))* - + EPSMAC - IF(NMEC.GT.0) THEN - IF(LMEC(NMEC).EQ.104) NMEC=NMEC-1 - ENDIF - NMEC=NMEC+1 - LMEC(NMEC)=104 -#ifdef G3DEBUG - WRITE(CHMAIL, 10000) - CALL GMAIL(0,0) - WRITE(CHMAIL, 10100) GEKIN, NUMED, STEP, SNEXT - CALL GMAIL(0,0) -10000 FORMAT(' Boundary correction in GTGAMA: ', - + ' GEKIN NUMED STEP SNEXT') -10100 FORMAT(31X,E10.3,1X,I10,1X,E10.3,1X,E10.3,1X) -#endif - ENDIF - ENDIF - VECT(I) = VECTMP - 20 CONTINUE - ELSE - DO 30 I = 1,3 - VECT(I) = VECT(I) +STEP*VECT(I+3) - 30 CONTINUE - ENDIF -* - SLENG = SLENG +STEP -* -* *** Update time of flight -* - TOFG = TOFG +STEP/CLIGHT -* -* *** Update interaction probabilities -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) ZINTPA = ZINTPA -STEP/STEPPA - ENDIF - IF (ICOMP.GT.0) ZINTCO = ZINTCO -STEP/STEPCO - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) ZINTPH = ZINTPH -STEP/STEPPH - ENDIF - IF (JPFIS.GT.0) ZINTPF = ZINTPF -STEP/STEPPF - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) ZINTRA = ZINTRA -STEP/STEPRA - ENDIF -* - IF (IPROC.EQ.0) GO TO 999 - NMEC = 1 - LMEC(1) = IPROC -* -* ** Pair production ? -* - IF (IPROC.EQ.6) THEN - CALL GPAIRG -* -* ** Compton scattering ? -* - ELSE IF (IPROC.EQ.7) THEN - CALL GCOMP -* -* ** Photo-electric effect ? -* - ELSE IF (IPROC.EQ.8) THEN -* - IF ((IABAN.NE.0).AND.(GEKIN.LE.0.001)) THEN -* Calculate range of the photoelectron ( with kin. energy Ephot) - JCOEF = LQ(JMA-17) - IF(GEKRAT.LT.0.7) THEN - I1 = MAX(IEKBIN-1,1) - ELSE - I1 = MIN(IEKBIN,NEKBIN-1) - ENDIF - I1 = 3*(I1-1)+1 - XCOEF1 = Q(JCOEF+I1) - XCOEF2 = Q(JCOEF+I1+1) - XCOEF3 = Q(JCOEF+I1+2) - IF(XCOEF1.NE.0.) THEN - STOPMX = -XCOEF2+SIGN(ONE,XCOEF1)*SQRT(XCOEF2**2 - (XCOEF3- - + GEKIN/XCOEF1)) - ELSE - STOPMX = - (XCOEF3-GEKIN)/XCOEF2 - ENDIF -* -* DO NOT call GPHOT if this (overestimated) range is smaller -* than SAFETY -* - IF (STOPMX.LE.SAFETY) GOTO 998 - ENDIF - - CALL GPHOT -* -* ** Rayleigh effect ? -* - ELSE IF (IPROC.EQ.25) THEN - CALL GRAYL -* -* ** Photo-fission ? -* - ELSE IF (IPROC.EQ.23) THEN - CALL GPFIS -* - ENDIF -* - GOTO 999 -998 DESTEP = GEKIN - GEKIN = 0. - GETOT = 0. - VECT(7)= 0. - ISTOP = 2 - NMEC = 1 - LMEC(1)= 30 - 999 END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm13/geant3/src/gukine.F deleted file mode 100644 index d3ab20ab19..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/gukine.F +++ /dev/null @@ -1,40 +0,0 @@ - - SUBROUTINE GUKINE -* -* Generates Kinematics for primary track -* -* Data card Kine : Itype Ekine -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -* -#include "detector.inc" -* - DIMENSION vertex(3),Plab(3) - dimension rndm(2) -* - DATA vertex/3*0./ - DATA Plab /3*0./ -* - vertex(1) = -0.5*BoxSize -* -* random in YZ - beam = 0.4*BoxSize - call GRNDM (rndm,2) -* - vertex(2) = (2*rndm(1)-1.)*beam - vertex(3) = (2*rndm(2)-1.)*beam -* - CALL GSVERT(vertex,0,0,0,0,NVERT) -* - JPA = LQ(JPART-IKINE) - XMASS = Q(JPA+7) - Plab(1) = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) -* - CALL GSKINE(Plab,IKINE,NVERT,0,0,NT) -* -* *** Kinematics debug - IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -* - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm13/geant3/src/guout.F deleted file mode 100644 index 0fd3fc3a70..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/guout.F +++ /dev/null @@ -1,18 +0,0 @@ - - SUBROUTINE GUOUT -* -* User routine called at the end of each event -* -#include "geant321/gcflag.inc" -* -* *** drawing -* -#ifndef batch - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'TestEm13',0.) - CALL GDSHOW (3) - CALL GDXYZ (0) - END IF -#endif -* - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm13/geant3/src/gustep.F deleted file mode 100644 index e17dc8f6e4..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/gustep.F +++ /dev/null @@ -1,68 +0,0 @@ - - SUBROUTINE GUSTEP -* -* User routine called at the end of each tracking step -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gcking.inc" -#include "geant321/gctrak.inc" -* -#include "process.inc" -#include "histo.inc" -* - character*20 cdum -* -* *** Debug event and store tracks for drawing - IF (IDEBUG.NE.0) CALL GPCXYZ - IF (IDEBUG.NE.0) CALL GPGKIN - IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ - IF (ISWIT(1).EQ.2) CALL GSXYZ -* -* *** if no process: return - IF (NMEC.EQ.0) return -* -* *** count nb of invoked processes - DO IM = 1,NMEC - IPROC = LMEC(IM) - IF (IPROC.EQ.21) IPROC = 12 - IF (IPROC.LE.12) NBCALL(IPROC) = NBCALL(IPROC)+1 - ENDDO -* -* *** sum track length for discrete processes - if ((iproc.gt.5)) then - nbTot = nbTot + 1 - sumTrak = sumTrak + sleng - sumTrak2 = sumTrak2 + sleng*sleng - endif -* -* *** plot final state -* -* scattered primary particle (if still alive) - if (istop.eq.0) then - id = 1 - if (histo(id)) call hfill (id,gekin/histUnit(id),0.,1.) - id = 2 - if (histo(id)) call hfill (id,vect(4),0.,1.) - endif -* -* *** secondaries - if (ngkine.gt.0) then - do lp = 1,ngkine - ipar = gkin(5,lp) + 0.1 - call gfpart(ipar,cdum,ndum,gmass,gcharg,dum,dum,ndum) - ekin = gkin(4,lp) - gmass - pc = sqrt(gkin(1,lp)**2 + gkin(2,lp)**2 + gkin(3,lp)**2) - cost = gkin(1,lp)/pc - if (gcharg.ne.0.) id = 3 - if (gcharg.eq.0.) id = 5 - if (histo(id)) call hfill (id,ekin/histUnit(id),0.,1.) - id = id + 1 - if (histo(id)) call hfill (id,cost,0.,1.) - enddo - endif -* -* *** stop the tracking - istop = 1 -* - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/main.F b/examples/extended/electromagnetic/TestEm13/geant3/src/main.F deleted file mode 100644 index 2ce531104e..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/main.F +++ /dev/null @@ -1,61 +0,0 @@ -#ifdef batch - - PROGRAM main -* -* - PARAMETER (NGBANK=100000, NHBOOK=10000) - COMMON/GCBANK/Q(NGBANK) - COMMON/PAWC /H(NHBOOK) -* - CALL GZEBRA( NGBANK) - CALL HLIMIT(-NHBOOK) -* -* *** initialize HIGZ - CALL HPLINT(0) -* -* *** GEANT initialisation - CALL UGINIT -* -* *** Start events processing - CALL GRUN -* -* *** End of RUN - CALL UGLAST -* - STOP - END - -#else - - PROGRAM main -* -* GEANT main program. To link with the MOTIF user interface -* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas -* the routine GPAW(NWGEAN,NWPAW) gives access to the basic -* graphics version. -* - PARAMETER (NWGEAN=3000000, NWPAW=1000000) - COMMON/GCBANK/GEANT(NWGEAN) - COMMON/PAWC /PAW (NWPAW) -* -* - CALL GPAW (NWGEAN,NWPAW) -* - END -* - SUBROUTINE qnext - END -* - SUBROUTINE czopen - END -* - SUBROUTINE cztcp - END -* - SUBROUTINE czclos - END -* - SUBROUTINE czputa - END - -#endif diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm13/geant3/src/ugeom.F deleted file mode 100644 index 7f77100913..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/ugeom.F +++ /dev/null @@ -1,74 +0,0 @@ - - SUBROUTINE UGEOM -* -* *** Define user geometry set up -* -* -#include "detector.inc" -* - DIMENSION PAR(3) - - DIMENSION Aair(2),Zair(2),Wair(2) - DIMENSION AH2O(2),ZH2O(2),WH2O(2) -* -* *** Air compound parameters - DATA Aair/14.01, 16.00/ - DATA Zair/ 7. , 8. / - DATA Wair/ 0.7 , 0.3 / -* -* *** Air compound parameters - DATA AH2O/ 1.01, 16.00/ - DATA ZH2O/ 1. , 8. / - DATA WH2O/ 2. , 1. / -* -* *** Defines USER perticular materials - CALL GSMIXT( 1,'Air' , Aair ,Zair, 1.29E-3, 2 , Wair) - CALL GSMATE( 2,'H2 Liquid', 1.01, 1., 0.0708 , 865., 790., 0,0) - CALL GSMIXT( 3,'Water' , AH2O ,ZH2O, 1.0 ,-2 , WH2O) - CALL GSMATE( 4,'Liquid Ar', 39.95, 18., 1.39 , 14.0, 84.0, 0,0) - CALL GSMATE( 5,'Aluminium', 26.98, 13., 2.7 , 8.9, 37.2, 0,0) - CALL GSMATE( 6,'Iron' , 55.85, 26., 7.87 , 1.76, 17.1, 0,0) - CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0) - CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0) - CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0) - CALL GSMATE(10,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0) -* -* *** Defines USER tracking media parameters - IFIELD = 0 - FIELDM = 0. - TMAXFD = 10.0 - STEMAX = 1000. - DEEMAX = 1. - EPSIL = 0.001 - STMIN = 0.010 -* - CALL GSTMED( 1,'Container',Imat, 0 ,IFIELD,FIELDM,TMAXFD, - * STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 ) -* -* -* *** Geometry - PAR(1) = BoxSize/2. - PAR(2) = BoxSize/2. - PAR(3) = BoxSize/2. - CALL GSVOLU('aBox','BOX ',1,PAR,3,IVOL) -* -* *** Close geometry banks. (obligatory system routine) - CALL GGCLOS -* -* -* *** dessin - CALL GSATT ('*','SEEN',1) -* - DO IX = 1,3 - CALL GDOPEN (IX) - SCALE = 18./BoxSize - PAXIS = 0. - SAXIS = 0.1*BoxSize - CALL GDRAWC ('aBox',IX,0.,10.,9.3,SCALE,SCALE) - CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) - CALL GDSCAL (10. , 0.3) - CALL GDCLOS - END DO -* - - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm13/geant3/src/uginit.F deleted file mode 100644 index 09478c43ee..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/uginit.F +++ /dev/null @@ -1,67 +0,0 @@ - - SUBROUTINE UGINIT -* -* To initialise GEANT/USER program and read data cards -* -#include "detector.inc" -#include "process.inc" -#include "histo.inc" -* - CHARACTER*20 filnam - CHARACTER*4 key - CHARACTER*2 spaces -* -* *** Define the GEANT parameters - CALL GINIT -* -* histograms - do ih = 1,MaxHist - histo(ih) = .false. - enddo -* -* *** Detector definition - CALL FFKEY('DETECTOR',Imat,2,'MIXED') -* -* histograms - CALL FFKEY('HISTO',idhist,5,'MIXED') -* -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'allprocesses.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') -* -* filename should be 1st data card ! - fileName = 'photonprocesses.paw' - READ(5,98)key,spaces,fileName -98 FORMAT(A4,A2,A25) -* -* *** read data cards - CALL GFFGO -* - write(6,99) fileName -99 FORMAT(/,15x,'histogram file --> Name: ',A25) -* - CALL GZINIT - CALL GPART -* - CALL GDINIT -* -* *** Geometry and materials description - CALL UGEOM -* -* *** Energy loss and cross-sections initialisations - CALL GPHYSI -* - CALL GPRINT('MATE',0) - CALL GPRINT('TMED',0) - CALL GPRINT('VOLU',0) -* -* *** initialisation of /process/ - - CALL VZERO (nbCall,12) - nbTot = 0 - sumTrak = 0. - sumTrak2 = 0. -* - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm13/geant3/src/uglast.F deleted file mode 100644 index 6123c14293..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/uglast.F +++ /dev/null @@ -1,62 +0,0 @@ - - SUBROUTINE UGLAST -* -* Termination routine to print histograms and statistics -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gctrak.inc" -* -#include "detector.inc" -#include "process.inc" -#include "histo.inc" -* - character*20 material, particle - character*4 unit - real massMFP, massAC -* -* *** run conditions - call gfmate(Imat,material,dum,dum,density,dum,dum,dum,ndum) - call gfpart(Ikine,particle,ndum,dum,dum,dum,dum,ndum) - call gevkev(pkine(1),energy,unit) - PRINT 750, ievent,particle,energy,unit,boxSize,material,density -* -* *** frequency of processes call - CALL UCTOH('MUNU',NAMEC(12),4,4) - PRINT 760,(NAMEC(I),I=1,12) - PRINT 761,(NBCALL(I),I=1,12) -* -* *** compute mean free path and related quantities - avTrak = sumTrak /nbTot - avTrak2 = sumTrak2/nbTot - rms = sqrt(abs(avTrak2 - avTrak*avTrak)) - AtteCoef = 1./avTrak -* - massMFP = avTrak*density - massAC = 1./massMFP - print 770, avTrak,rms,massMFP,AtteCoef,massAC -* -* *** geant termination - CALL GLAST -* -* *** close HIGZ file - CALL HPLEND -* -* *** histograms - CALL HRPUT(0,fileName,'N') -* -* *** formats -* - 750 FORMAT(/,1X,'The run consists of ',I7,1X,A8,' of ',F7.2,A4, - + ' throught',F10.2,' cm of ',A8,' (density: ',F7.3,' g/cm3)') - - 760 FORMAT(/,1X,'Frequency of process calls: ', - + /,1X,12A8) - 761 FORMAT( 1X,12I8,/) - - 770 FORMAT(/,1X,'MeanFreePath:',F12.5,' cm +- ',F12.5,' cm', - + 5X,'massic:',F12.5,' g/cm2', - + /,1X,'CrossSection:',F12.5,' cm^-1 ',15X, - + 5X,'massic:',F12.5,' cm2/g',/) -* - END diff --git a/examples/extended/electromagnetic/TestEm13/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm13/geant3/src/uhinit.F deleted file mode 100644 index c58617dae2..0000000000 --- a/examples/extended/electromagnetic/TestEm13/geant3/src/uhinit.F +++ /dev/null @@ -1,28 +0,0 @@ - - SUBROUTINE UHINIT -* -* -#include "histo.inc" -* - CHARACTER*50 title(6) -* - data title / - 1 'scattered primary particle: energy spectrum', - 2 'scattered primary particle: costheta distribution', - 3 'charged secondaries: energy spectrum', - 4 'charged secondaries: costheta distribution', - 5 'neutral secondaries: energy spectrum', - 6 'neutral secondaries: costheta distribution' / -* - if (histo(idhist)) call hdelet(idhist) -* - vmin = valmin - vmax = valmax - call hbook1(idhist,title(idhist),nbBins,vmin,vmax,0.) -* - histo (idhist) = .true. - binWidth(idhist) = (valmax-valmin)/nbBins - if (valunit.le.0.) valunit = 1. - histUnit(idhist) = valunit -* - END diff --git a/examples/extended/electromagnetic/TestEm13/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm13/src/PhysListEmStandard.cc index 249b0f2b86..58bb31ab54 100644 --- a/examples/extended/electromagnetic/TestEm13/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm13/src/PhysListEmStandard.cc @@ -27,10 +27,10 @@ /// \brief Implementation of the PhysListEmStandard class // // -// $Id: PhysListEmStandard.cc 68585 2013-04-01 23:35:07Z adotti $ +// $Id: PhysListEmStandard.cc 96378 2016-04-11 06:59:45Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandard.hh" #include "G4ParticleDefinition.hh" @@ -53,7 +53,6 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" diff --git a/examples/extended/electromagnetic/TestEm13/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm13/src/PhysicsList.cc index b40f236e7c..186b115e34 100644 --- a/examples/extended/electromagnetic/TestEm13/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm13/src/PhysicsList.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysicsList class // // -// $Id: PhysicsList.cc 85259 2014-10-27 08:52:40Z gcosmo $ +// $Id: PhysicsList.cc 96378 2016-04-11 06:59:45Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -109,8 +109,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmProcessOptions.hh" - void PhysicsList::ConstructProcess() { // Transportation @@ -123,8 +121,8 @@ void PhysicsList::ConstructProcess() // Em options // - G4EmProcessOptions emOptions; - emOptions.SetIntegral(false); + G4EmParameters* param = G4EmParameters::Instance(); + param->SetIntegral(false); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm14/History b/examples/extended/electromagnetic/TestEm14/History index c09f17c439..9a9dacb11c 100644 --- a/examples/extended/electromagnetic/TestEm14/History +++ b/examples/extended/electromagnetic/TestEm14/History @@ -1,4 +1,4 @@ -$Id: History 92996 2015-09-28 08:03:50Z gcosmo $ +$Id: History 96379 2016-04-11 07:00:43Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +08-04-16 mma (testem14-V10-02-01) +- PhysicsList: use G4EmParameters +- remove geant3 subdirectory + +10-12-15 V.Ivant (testem14-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 27-09-15 mma (testem14-V10-01-00) - DetectorConstruction::SetMatetial(): allow nist materials diff --git a/examples/extended/electromagnetic/TestEm14/TestEm14.out b/examples/extended/electromagnetic/TestEm14/TestEm14.out index b29a892931..745d86499e 100644 --- a/examples/extended/electromagnetic/TestEm14/TestEm14.out +++ b/examples/extended/electromagnetic/TestEm14/TestEm14.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -252,7 +252,8 @@ physicsList->setCut() start. /run/beamOn 1000000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -304,7 +305,7 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen -annihil: for e+ SubType= 5 BuildTable= 0 +annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -319,7 +320,7 @@ hIoni: for proton SubType= 2 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 0, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -328,7 +329,7 @@ ionIoni: for GenericIon SubType= 2 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 0, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -360,7 +361,7 @@ hIoni: for kaon- SubType= 2 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -382,7 +383,7 @@ muPairProd: for mu+ SubType= 4 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -465,7 +466,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000000 - User=11.59s Real=11.61s Sys=0s + User=15.69s Real=15.74s Sys=0s ======================== run summary ====================== @@ -534,7 +535,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000000 - User=17.72s Real=17.76s Sys=0s + User=9.38s Real=9.4s Sys=0s ======================== run summary ====================== diff --git a/examples/extended/electromagnetic/TestEm14/geant3/README b/examples/extended/electromagnetic/TestEm14/geant3/README deleted file mode 100644 index 2cd1dd8d19..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/README +++ /dev/null @@ -1,44 +0,0 @@ - - testem13 is the geant3 equivalent of TestEm13 - - % cd geant3 - % gmakeB to make an executable (Batch version) - % gmakeT to make an executable (inTeractive version) - - To execute: - - % cd geant3 - % $G4SYSTEM/testem13.xb (for batch) or testem13.xt (for interactive) - - The program will ask: - G3 > gives the filename of the data cards to be read: - - myMacro.dat (myMacro.dat is the equivalent of the G4 myMacro.mac) - - data cards - ---------- - Most of the data cards used in xxxx.dat are standard data cards of GEANT3, - but some of them are defined in testem13: - - KEY VARIABLE/type Short description - - FILE fileName (character) fileName of the histos - (the FILE data card should be the - first, with the format A4,A2,A25) - - DETECTOR MAT (integer) mat.number of the absorber - THICK (real) X thickness of the absorber - - - histograms - ---------- - The list of built-in histograms is identical to TestEm13.cc - (see G4 README or histo.F) - - One can control the binning of the histograms with the data card: - *HISTO id1 nbBins valMin valMax valUnit - *HISTO id2 nbBins valMin valMax valUnit - ... etc ........... - - valMin and ValMax are given in the desired unit, whose numerical value must - be specified in valUnit. Remember that Geant3 defaults are: GeV, cm, rad. diff --git a/examples/extended/electromagnetic/TestEm14/geant3/anni.dat b/examples/extended/electromagnetic/TestEm14/geant3/anni.dat deleted file mode 100644 index 56ec634ecf..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/anni.dat +++ /dev/null @@ -1,23 +0,0 @@ -FILE anni.hbook -LIST -C -C positron 100 MeV -C -DETECTOR 5 (Aluminium) 10000. (cm) -KINE 2 (positron) 0.100 (GeV) -C -*HISTO 5 (id) 210 (nbins) 0. (Emin) 105. (Emax) 1.e-3 (MeV) -*HISTO 6 (id) 200 (nbins) -1. (cost1) +1. (cost2) -C -MULS 0 -LOSS 0 -DRAY 0 -BREM 0 -ANNI 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/compton.dat b/examples/extended/electromagnetic/TestEm14/geant3/compton.dat deleted file mode 100644 index 28aee7ba36..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/compton.dat +++ /dev/null @@ -1,23 +0,0 @@ -FILE compton.hbook -LIST -C -C Photon 300 keV; compton -C -DETECTOR 5 (Aluminium) 10000. (cm) -KINE 1 (gamma) 300.e-6 (GeV) -C -*HISTO 1 (id) 100 (nbins) 0. (Emin) 300. (Emax) 1.e-6 (keV) -*HISTO 2 (id) 200 (nbins) -1. (cost1) +1. (cost2) -*HISTO 3 (id) 100 (nbins) 0. (Emin) 300. (Emax) 1.e-6 (keV) -*HISTO 4 (id) 200 (nbins) -1. (cost1) +1. (cost2) -C -PHOT 0 -COMP 1 -PAIR 0 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/conv.dat b/examples/extended/electromagnetic/TestEm14/geant3/conv.dat deleted file mode 100644 index 1fc4c2da2f..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/conv.dat +++ /dev/null @@ -1,21 +0,0 @@ -FILE conversion.hbook -LIST -C -C Photon 100 MeV; gamma conversion to e+e- -C -DETECTOR 8 (Lead) 10000. (cm) -KINE 1 (gamma) 0.1 (GeV) -C -*HISTO 3 (id) 200 (nbins) 0. (Emin) 100. (Emax) 1.e-3 (MeV) -*HISTO 4 (id) 200 (nbins) 0. (cost1) +1. (cost2) -C -PHOT 0 -COMP 0 -PAIR 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/electron.dat b/examples/extended/electromagnetic/TestEm14/geant3/electron.dat deleted file mode 100644 index 1584046da4..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/electron.dat +++ /dev/null @@ -1,24 +0,0 @@ -FILE gamma.hbook -LIST -C -C electron 100 MeV -C -DETECTOR 5 (Aluminium) 10000. (cm) -KINE 3 (electron) 0.100 (GeV) -C -*HISTO 1 (id) 100 (nbins) 0. (Emin) 100. (Emax) 1.e-3 (MeV) -*HISTO 2 (id) 100 (nbins) 0.5 (cost1) +1. (cost2) -*HISTO 3 (id) 100 (nbins) 0. (Emin) 100. (Emax) 1.e-3 (MeV) -*HISTO 4 (id) 100 (nbins) 0. (cost1) +1. (cost2) -C -MULS 0 -LOSS 4 -DRAY 1 -BREM 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/gamma.dat b/examples/extended/electromagnetic/TestEm14/geant3/gamma.dat deleted file mode 100644 index fb6da29e07..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/gamma.dat +++ /dev/null @@ -1,18 +0,0 @@ -FILE gamma.hbook -LIST -C -C Photon Processes; gamma 100 keV -C -DETECTOR 3 (Water) 10000. (cm) -KINE 1 (gamma) 0.0001 (GeV) -C -PHOT 1 -COMP 1 -PAIR 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/gmakeB b/examples/extended/electromagnetic/TestEm14/geant3/gmakeB deleted file mode 100755 index cf8c624032..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/gmakeB +++ /dev/null @@ -1,32 +0,0 @@ -# -# @(#) Script to build a Batch geant executable -# -set name=testem14 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F - -# -# Link -# -echo 'linking geant3+cernlib libraries ...' -# -hepf77 $extnam -g -o $name.xb *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xb -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm14/geant3/gmakeT b/examples/extended/electromagnetic/TestEm14/geant3/gmakeT deleted file mode 100755 index 3e26e1acac..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/gmakeT +++ /dev/null @@ -1,31 +0,0 @@ -# -# @(#) Script to build an inTeractive geant executable -# -set name=testem14 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries...' -# -hepf77 $extnam -g -o $name.xt *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xt -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm14/geant3/include/detector.inc b/examples/extended/electromagnetic/TestEm14/geant3/include/detector.inc deleted file mode 100644 index 1405514abd..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/include/detector.inc +++ /dev/null @@ -1,6 +0,0 @@ - - COMMON/DETECTOR/Imat,BoxSize -* -* Imat = GEANT material number. (data card DETECTOR) -* BoxSize = total size of the box (cm) (data card DETECTOR) -* diff --git a/examples/extended/electromagnetic/TestEm14/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm14/geant3/include/histo.inc deleted file mode 100644 index 1da08da7da..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/include/histo.inc +++ /dev/null @@ -1,8 +0,0 @@ - CHARACTER*25 fileName - COMMON/HISTO1/fileName - - COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit - - PARAMETER (MaxHist = 6) - LOGICAL histo - COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm14/geant3/include/process.inc b/examples/extended/electromagnetic/TestEm14/geant3/include/process.inc deleted file mode 100644 index 3edc74ffeb..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/include/process.inc +++ /dev/null @@ -1,2 +0,0 @@ - - COMMON/PROCESS/nbCall(12),nbTot,sumTrak,sumTrak2 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/photoelec.dat b/examples/extended/electromagnetic/TestEm14/geant3/photoelec.dat deleted file mode 100644 index c81fc1c17b..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/photoelec.dat +++ /dev/null @@ -1,18 +0,0 @@ -FILE photoelec.hbook -LIST -C -C gamma 100 keV -C -DETECTOR 6 (Iron) 10000. (cm) -KINE 1 (gamma) 0.0001 (GeV) -C -PHOT 1 -COMP 0 -PAIR 0 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/proton.dat b/examples/extended/electromagnetic/TestEm14/geant3/proton.dat deleted file mode 100644 index ee3e6d20bb..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/proton.dat +++ /dev/null @@ -1,23 +0,0 @@ -FILE proton.hbook -LIST -C -C proton 1 GeV -C -DETECTOR 3 (Water) 10000. (cm) -KINE 14 (proton) 1. (GeV) -C -*HISTO 1 (id) 100 (nbins) 990. (Emin) 1000. (Emax) 1.e-3 (MeV) -*HISTO 2 (id) 100 (nbins) 0.9 (cost1) +1. (cost2) -*HISTO 3 (id) 100 (nbins) 0. (Emin) 5. (Emax) 1.e-3 (MeV) -*HISTO 4 (id) 100 (nbins) 0. (cost1) +1. (cost2) -C -MULS 0 -LOSS 4 -DRAY 1 -C -CUTS 10.e-6 (cutgam) 10.e-6 (cutele) -C -SWIT 0 (draw) -DEBUG 10 5 10000 -C -TRIG 100000 diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm14/geant3/src/ffuser.F deleted file mode 100644 index abe29f1568..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/ffuser.F +++ /dev/null @@ -1,11 +0,0 @@ - - SUBROUTINE FFUSER(ikey) -* -* The routine is called when a *key card is read -* - CHARACTER*4 keyw -* - call UHTOC(ikey,4,keyw,4) - if (keyw.eq.'HIST') call uhinit -* - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/gtgama.F b/examples/extended/electromagnetic/TestEm14/geant3/src/gtgama.F deleted file mode 100644 index 6feb8775a5..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/gtgama.F +++ /dev/null @@ -1,267 +0,0 @@ - - SUBROUTINE GTGAMA -C. -C. ****************************************************************** -C. * * -C. * Photon track. Computes step size and propagates particle * -C. * through step. * -C. * * -C. * ==>Called by : GTRACK * -C. * Authors R.Brun, F.Bruyant L.Urban ******** * -C. * * -C. ****************************************************************** -C. -#include "geant321/gcbank.inc" -#include "geant321/gccuts.inc" -#include "geant321/gcjloc.inc" -#include "geant321/gconsp.inc" -#include "geant321/gcphys.inc" -#include "geant321/gcstak.inc" -#include "geant321/gctmed.inc" -#include "geant321/gcmulo.inc" -#include "geant321/gctrak.inc" -#include "geant321/gcunit.inc" - - PARAMETER (EPSMAC=1.E-6) - DOUBLE PRECISION ONE,XCOEF1,XCOEF2,XCOEF3,ZERO - - PARAMETER (ONE=1,ZERO=0) - PARAMETER (EPCUT=1.022E-3) -C. -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - IABAN = NINT(DPHYS1) -*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -C. ------------------------------------------------------------------ -* -* *** Particle below energy threshold ? Short circuit -* -* - IF (GEKIN.LE.CUTGAM) GOTO 998 -* -* *** Update local pointers if medium has changed -* - IF(IUPD.EQ.0)THEN - IUPD = 1 - JPHOT = LQ(JMA-6) - JCOMP = LQ(JMA-8) - JPAIR = LQ(JMA-10) - JPFIS = LQ(JMA-12) - JRAYL = LQ(JMA-13) - ENDIF -* -* *** Compute current step size -* - IPROC = 103 - STEP = STEMAX - GEKRT1 = 1 .-GEKRAT -* -* ** Step limitation due to pair production ? -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) THEN - STEPPA = GEKRT1*Q(JPAIR+IEKBIN) +GEKRAT*Q(JPAIR+IEKBIN+1) - SPAIR = STEPPA*ZINTPA - IF (SPAIR.LT.STEP) THEN - STEP = SPAIR - IPROC = 6 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to Compton scattering ? -* - IF (ICOMP.GT.0) THEN - STEPCO = GEKRT1*Q(JCOMP+IEKBIN) +GEKRAT*Q(JCOMP+IEKBIN+1) - SCOMP = STEPCO*ZINTCO - IF (SCOMP.LT.STEP) THEN - STEP = SCOMP - IPROC = 7 - ENDIF - ENDIF -* -* ** Step limitation due to photo-electric effect ? -* - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) THEN - STEPPH = GEKRT1*Q(JPHOT+IEKBIN) +GEKRAT*Q(JPHOT+IEKBIN+1) - SPHOT = STEPPH*ZINTPH - IF (SPHOT.LT.STEP) THEN - STEP = SPHOT - IPROC = 8 - ENDIF - ENDIF - ENDIF -* -* ** Step limitation due to photo-fission ? -* - IF (JPFIS.GT.0) THEN - STEPPF = GEKRT1*Q(JPFIS+IEKBIN) +GEKRAT*Q(JPFIS+IEKBIN+1) - SPFIS = STEPPF*ZINTPF - IF (SPFIS.LT.STEP) THEN - STEP = SPFIS - IPROC = 23 - ENDIF - ENDIF -* -* ** Step limitation due to Rayleigh scattering ? -* - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) THEN - STEPRA = GEKRT1*Q(JRAYL+IEKBIN) +GEKRAT*Q(JRAYL+IEKBIN+1) - SRAYL = STEPRA*ZINTRA - IF (SRAYL.LT.STEP) THEN - STEP = SRAYL - IPROC = 25 - ENDIF - ENDIF - ENDIF -* - IF (STEP.LT.0.) STEP = 0. -* -* ** Step limitation due to geometry ? -* - IF (STEP.GE.SAFETY) THEN - CALL GTNEXT - IF (IGNEXT.NE.0) THEN - STEP = SNEXT + PREC - INWVOL= 2 - IPROC = 0 - NMEC = 1 - LMEC(1)=1 - ENDIF -* -* Update SAFETY in stack companions, if any - IF (IQ(JSTAK+3).NE.0) THEN - DO 10 IST = IQ(JSTAK+3),IQ(JSTAK+1) - JST = JSTAK +3 +(IST-1)*NWSTAK - Q(JST+11) = SAFETY - 10 CONTINUE - IQ(JSTAK+3) = 0 - ENDIF -* - ELSE - IQ(JSTAK+3) = 0 - ENDIF -* -* *** Linear transport -* - IF (INWVOL.EQ.2) THEN - DO 20 I = 1,3 - VECTMP = VECT(I) +STEP*VECT(I+3) - IF(VECTMP.EQ.VECT(I)) THEN -* -* *** Correct for machine precision -* - IF(VECT(I+3).NE.0.) THEN - VECTMP = VECT(I)+ABS(VECT(I))*SIGN(1.,VECT(I+3))* - + EPSMAC - IF(NMEC.GT.0) THEN - IF(LMEC(NMEC).EQ.104) NMEC=NMEC-1 - ENDIF - NMEC=NMEC+1 - LMEC(NMEC)=104 -#ifdef G3DEBUG - WRITE(CHMAIL, 10000) - CALL GMAIL(0,0) - WRITE(CHMAIL, 10100) GEKIN, NUMED, STEP, SNEXT - CALL GMAIL(0,0) -10000 FORMAT(' Boundary correction in GTGAMA: ', - + ' GEKIN NUMED STEP SNEXT') -10100 FORMAT(31X,E10.3,1X,I10,1X,E10.3,1X,E10.3,1X) -#endif - ENDIF - ENDIF - VECT(I) = VECTMP - 20 CONTINUE - ELSE - DO 30 I = 1,3 - VECT(I) = VECT(I) +STEP*VECT(I+3) - 30 CONTINUE - ENDIF -* - SLENG = SLENG +STEP -* -* *** Update time of flight -* - TOFG = TOFG +STEP/CLIGHT -* -* *** Update interaction probabilities -* - IF (GETOT.GT.EPCUT) THEN - IF (IPAIR.GT.0) ZINTPA = ZINTPA -STEP/STEPPA - ENDIF - IF (ICOMP.GT.0) ZINTCO = ZINTCO -STEP/STEPCO - IF (GEKIN.LT.0.4) THEN - IF (IPHOT.GT.0) ZINTPH = ZINTPH -STEP/STEPPH - ENDIF - IF (JPFIS.GT.0) ZINTPF = ZINTPF -STEP/STEPPF - IF (IRAYL.GT.0) THEN - IF (GEKIN.LT.0.01) ZINTRA = ZINTRA -STEP/STEPRA - ENDIF -* - IF (IPROC.EQ.0) GO TO 999 - NMEC = 1 - LMEC(1) = IPROC -* -* ** Pair production ? -* - IF (IPROC.EQ.6) THEN - CALL GPAIRG -* -* ** Compton scattering ? -* - ELSE IF (IPROC.EQ.7) THEN - CALL GCOMP -* -* ** Photo-electric effect ? -* - ELSE IF (IPROC.EQ.8) THEN -* - IF ((IABAN.NE.0).AND.(GEKIN.LE.0.001)) THEN -* Calculate range of the photoelectron ( with kin. energy Ephot) - JCOEF = LQ(JMA-17) - IF(GEKRAT.LT.0.7) THEN - I1 = MAX(IEKBIN-1,1) - ELSE - I1 = MIN(IEKBIN,NEKBIN-1) - ENDIF - I1 = 3*(I1-1)+1 - XCOEF1 = Q(JCOEF+I1) - XCOEF2 = Q(JCOEF+I1+1) - XCOEF3 = Q(JCOEF+I1+2) - IF(XCOEF1.NE.0.) THEN - STOPMX = -XCOEF2+SIGN(ONE,XCOEF1)*SQRT(XCOEF2**2 - (XCOEF3- - + GEKIN/XCOEF1)) - ELSE - STOPMX = - (XCOEF3-GEKIN)/XCOEF2 - ENDIF -* -* DO NOT call GPHOT if this (overestimated) range is smaller -* than SAFETY -* - IF (STOPMX.LE.SAFETY) GOTO 998 - ENDIF - - CALL GPHOT -* -* ** Rayleigh effect ? -* - ELSE IF (IPROC.EQ.25) THEN - CALL GRAYL -* -* ** Photo-fission ? -* - ELSE IF (IPROC.EQ.23) THEN - CALL GPFIS -* - ENDIF -* - GOTO 999 -998 DESTEP = GEKIN - GEKIN = 0. - GETOT = 0. - VECT(7)= 0. - ISTOP = 2 - NMEC = 1 - LMEC(1)= 30 - 999 END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm14/geant3/src/gukine.F deleted file mode 100644 index d3ab20ab19..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/gukine.F +++ /dev/null @@ -1,40 +0,0 @@ - - SUBROUTINE GUKINE -* -* Generates Kinematics for primary track -* -* Data card Kine : Itype Ekine -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -* -#include "detector.inc" -* - DIMENSION vertex(3),Plab(3) - dimension rndm(2) -* - DATA vertex/3*0./ - DATA Plab /3*0./ -* - vertex(1) = -0.5*BoxSize -* -* random in YZ - beam = 0.4*BoxSize - call GRNDM (rndm,2) -* - vertex(2) = (2*rndm(1)-1.)*beam - vertex(3) = (2*rndm(2)-1.)*beam -* - CALL GSVERT(vertex,0,0,0,0,NVERT) -* - JPA = LQ(JPART-IKINE) - XMASS = Q(JPA+7) - Plab(1) = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) -* - CALL GSKINE(Plab,IKINE,NVERT,0,0,NT) -* -* *** Kinematics debug - IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -* - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm14/geant3/src/guout.F deleted file mode 100644 index 5776b1fa4e..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/guout.F +++ /dev/null @@ -1,18 +0,0 @@ - - SUBROUTINE GUOUT -* -* User routine called at the end of each event -* -#include "geant321/gcflag.inc" -* -* *** drawing -* -#ifndef batch - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'TestEm14',0.) - CALL GDSHOW (3) - CALL GDXYZ (0) - END IF -#endif -* - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm14/geant3/src/gustep.F deleted file mode 100644 index e17dc8f6e4..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/gustep.F +++ /dev/null @@ -1,68 +0,0 @@ - - SUBROUTINE GUSTEP -* -* User routine called at the end of each tracking step -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gcking.inc" -#include "geant321/gctrak.inc" -* -#include "process.inc" -#include "histo.inc" -* - character*20 cdum -* -* *** Debug event and store tracks for drawing - IF (IDEBUG.NE.0) CALL GPCXYZ - IF (IDEBUG.NE.0) CALL GPGKIN - IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ - IF (ISWIT(1).EQ.2) CALL GSXYZ -* -* *** if no process: return - IF (NMEC.EQ.0) return -* -* *** count nb of invoked processes - DO IM = 1,NMEC - IPROC = LMEC(IM) - IF (IPROC.EQ.21) IPROC = 12 - IF (IPROC.LE.12) NBCALL(IPROC) = NBCALL(IPROC)+1 - ENDDO -* -* *** sum track length for discrete processes - if ((iproc.gt.5)) then - nbTot = nbTot + 1 - sumTrak = sumTrak + sleng - sumTrak2 = sumTrak2 + sleng*sleng - endif -* -* *** plot final state -* -* scattered primary particle (if still alive) - if (istop.eq.0) then - id = 1 - if (histo(id)) call hfill (id,gekin/histUnit(id),0.,1.) - id = 2 - if (histo(id)) call hfill (id,vect(4),0.,1.) - endif -* -* *** secondaries - if (ngkine.gt.0) then - do lp = 1,ngkine - ipar = gkin(5,lp) + 0.1 - call gfpart(ipar,cdum,ndum,gmass,gcharg,dum,dum,ndum) - ekin = gkin(4,lp) - gmass - pc = sqrt(gkin(1,lp)**2 + gkin(2,lp)**2 + gkin(3,lp)**2) - cost = gkin(1,lp)/pc - if (gcharg.ne.0.) id = 3 - if (gcharg.eq.0.) id = 5 - if (histo(id)) call hfill (id,ekin/histUnit(id),0.,1.) - id = id + 1 - if (histo(id)) call hfill (id,cost,0.,1.) - enddo - endif -* -* *** stop the tracking - istop = 1 -* - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/main.F b/examples/extended/electromagnetic/TestEm14/geant3/src/main.F deleted file mode 100644 index 2ce531104e..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/main.F +++ /dev/null @@ -1,61 +0,0 @@ -#ifdef batch - - PROGRAM main -* -* - PARAMETER (NGBANK=100000, NHBOOK=10000) - COMMON/GCBANK/Q(NGBANK) - COMMON/PAWC /H(NHBOOK) -* - CALL GZEBRA( NGBANK) - CALL HLIMIT(-NHBOOK) -* -* *** initialize HIGZ - CALL HPLINT(0) -* -* *** GEANT initialisation - CALL UGINIT -* -* *** Start events processing - CALL GRUN -* -* *** End of RUN - CALL UGLAST -* - STOP - END - -#else - - PROGRAM main -* -* GEANT main program. To link with the MOTIF user interface -* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas -* the routine GPAW(NWGEAN,NWPAW) gives access to the basic -* graphics version. -* - PARAMETER (NWGEAN=3000000, NWPAW=1000000) - COMMON/GCBANK/GEANT(NWGEAN) - COMMON/PAWC /PAW (NWPAW) -* -* - CALL GPAW (NWGEAN,NWPAW) -* - END -* - SUBROUTINE qnext - END -* - SUBROUTINE czopen - END -* - SUBROUTINE cztcp - END -* - SUBROUTINE czclos - END -* - SUBROUTINE czputa - END - -#endif diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm14/geant3/src/ugeom.F deleted file mode 100644 index 7f77100913..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/ugeom.F +++ /dev/null @@ -1,74 +0,0 @@ - - SUBROUTINE UGEOM -* -* *** Define user geometry set up -* -* -#include "detector.inc" -* - DIMENSION PAR(3) - - DIMENSION Aair(2),Zair(2),Wair(2) - DIMENSION AH2O(2),ZH2O(2),WH2O(2) -* -* *** Air compound parameters - DATA Aair/14.01, 16.00/ - DATA Zair/ 7. , 8. / - DATA Wair/ 0.7 , 0.3 / -* -* *** Air compound parameters - DATA AH2O/ 1.01, 16.00/ - DATA ZH2O/ 1. , 8. / - DATA WH2O/ 2. , 1. / -* -* *** Defines USER perticular materials - CALL GSMIXT( 1,'Air' , Aair ,Zair, 1.29E-3, 2 , Wair) - CALL GSMATE( 2,'H2 Liquid', 1.01, 1., 0.0708 , 865., 790., 0,0) - CALL GSMIXT( 3,'Water' , AH2O ,ZH2O, 1.0 ,-2 , WH2O) - CALL GSMATE( 4,'Liquid Ar', 39.95, 18., 1.39 , 14.0, 84.0, 0,0) - CALL GSMATE( 5,'Aluminium', 26.98, 13., 2.7 , 8.9, 37.2, 0,0) - CALL GSMATE( 6,'Iron' , 55.85, 26., 7.87 , 1.76, 17.1, 0,0) - CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0) - CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0) - CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0) - CALL GSMATE(10,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0) -* -* *** Defines USER tracking media parameters - IFIELD = 0 - FIELDM = 0. - TMAXFD = 10.0 - STEMAX = 1000. - DEEMAX = 1. - EPSIL = 0.001 - STMIN = 0.010 -* - CALL GSTMED( 1,'Container',Imat, 0 ,IFIELD,FIELDM,TMAXFD, - * STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 ) -* -* -* *** Geometry - PAR(1) = BoxSize/2. - PAR(2) = BoxSize/2. - PAR(3) = BoxSize/2. - CALL GSVOLU('aBox','BOX ',1,PAR,3,IVOL) -* -* *** Close geometry banks. (obligatory system routine) - CALL GGCLOS -* -* -* *** dessin - CALL GSATT ('*','SEEN',1) -* - DO IX = 1,3 - CALL GDOPEN (IX) - SCALE = 18./BoxSize - PAXIS = 0. - SAXIS = 0.1*BoxSize - CALL GDRAWC ('aBox',IX,0.,10.,9.3,SCALE,SCALE) - CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) - CALL GDSCAL (10. , 0.3) - CALL GDCLOS - END DO -* - - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm14/geant3/src/uginit.F deleted file mode 100644 index 09478c43ee..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/uginit.F +++ /dev/null @@ -1,67 +0,0 @@ - - SUBROUTINE UGINIT -* -* To initialise GEANT/USER program and read data cards -* -#include "detector.inc" -#include "process.inc" -#include "histo.inc" -* - CHARACTER*20 filnam - CHARACTER*4 key - CHARACTER*2 spaces -* -* *** Define the GEANT parameters - CALL GINIT -* -* histograms - do ih = 1,MaxHist - histo(ih) = .false. - enddo -* -* *** Detector definition - CALL FFKEY('DETECTOR',Imat,2,'MIXED') -* -* histograms - CALL FFKEY('HISTO',idhist,5,'MIXED') -* -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'allprocesses.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') -* -* filename should be 1st data card ! - fileName = 'photonprocesses.paw' - READ(5,98)key,spaces,fileName -98 FORMAT(A4,A2,A25) -* -* *** read data cards - CALL GFFGO -* - write(6,99) fileName -99 FORMAT(/,15x,'histogram file --> Name: ',A25) -* - CALL GZINIT - CALL GPART -* - CALL GDINIT -* -* *** Geometry and materials description - CALL UGEOM -* -* *** Energy loss and cross-sections initialisations - CALL GPHYSI -* - CALL GPRINT('MATE',0) - CALL GPRINT('TMED',0) - CALL GPRINT('VOLU',0) -* -* *** initialisation of /process/ - - CALL VZERO (nbCall,12) - nbTot = 0 - sumTrak = 0. - sumTrak2 = 0. -* - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm14/geant3/src/uglast.F deleted file mode 100644 index 6123c14293..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/uglast.F +++ /dev/null @@ -1,62 +0,0 @@ - - SUBROUTINE UGLAST -* -* Termination routine to print histograms and statistics -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gctrak.inc" -* -#include "detector.inc" -#include "process.inc" -#include "histo.inc" -* - character*20 material, particle - character*4 unit - real massMFP, massAC -* -* *** run conditions - call gfmate(Imat,material,dum,dum,density,dum,dum,dum,ndum) - call gfpart(Ikine,particle,ndum,dum,dum,dum,dum,ndum) - call gevkev(pkine(1),energy,unit) - PRINT 750, ievent,particle,energy,unit,boxSize,material,density -* -* *** frequency of processes call - CALL UCTOH('MUNU',NAMEC(12),4,4) - PRINT 760,(NAMEC(I),I=1,12) - PRINT 761,(NBCALL(I),I=1,12) -* -* *** compute mean free path and related quantities - avTrak = sumTrak /nbTot - avTrak2 = sumTrak2/nbTot - rms = sqrt(abs(avTrak2 - avTrak*avTrak)) - AtteCoef = 1./avTrak -* - massMFP = avTrak*density - massAC = 1./massMFP - print 770, avTrak,rms,massMFP,AtteCoef,massAC -* -* *** geant termination - CALL GLAST -* -* *** close HIGZ file - CALL HPLEND -* -* *** histograms - CALL HRPUT(0,fileName,'N') -* -* *** formats -* - 750 FORMAT(/,1X,'The run consists of ',I7,1X,A8,' of ',F7.2,A4, - + ' throught',F10.2,' cm of ',A8,' (density: ',F7.3,' g/cm3)') - - 760 FORMAT(/,1X,'Frequency of process calls: ', - + /,1X,12A8) - 761 FORMAT( 1X,12I8,/) - - 770 FORMAT(/,1X,'MeanFreePath:',F12.5,' cm +- ',F12.5,' cm', - + 5X,'massic:',F12.5,' g/cm2', - + /,1X,'CrossSection:',F12.5,' cm^-1 ',15X, - + 5X,'massic:',F12.5,' cm2/g',/) -* - END diff --git a/examples/extended/electromagnetic/TestEm14/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm14/geant3/src/uhinit.F deleted file mode 100644 index c58617dae2..0000000000 --- a/examples/extended/electromagnetic/TestEm14/geant3/src/uhinit.F +++ /dev/null @@ -1,28 +0,0 @@ - - SUBROUTINE UHINIT -* -* -#include "histo.inc" -* - CHARACTER*50 title(6) -* - data title / - 1 'scattered primary particle: energy spectrum', - 2 'scattered primary particle: costheta distribution', - 3 'charged secondaries: energy spectrum', - 4 'charged secondaries: costheta distribution', - 5 'neutral secondaries: energy spectrum', - 6 'neutral secondaries: costheta distribution' / -* - if (histo(idhist)) call hdelet(idhist) -* - vmin = valmin - vmax = valmax - call hbook1(idhist,title(idhist),nbBins,vmin,vmax,0.) -* - histo (idhist) = .true. - binWidth(idhist) = (valmax-valmin)/nbBins - if (valunit.le.0.) valunit = 1. - histUnit(idhist) = valunit -* - END diff --git a/examples/extended/electromagnetic/TestEm14/plotHisto.C b/examples/extended/electromagnetic/TestEm14/plotHisto.C index 3b2c42687b..35a5698972 100644 --- a/examples/extended/electromagnetic/TestEm14/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm14/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("compt.root"); + TFile f("compt.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("1"); diff --git a/examples/extended/electromagnetic/TestEm14/src/PhysListEmLivermore.cc b/examples/extended/electromagnetic/TestEm14/src/PhysListEmLivermore.cc index ecc12734ea..585ba12732 100644 --- a/examples/extended/electromagnetic/TestEm14/src/PhysListEmLivermore.cc +++ b/examples/extended/electromagnetic/TestEm14/src/PhysListEmLivermore.cc @@ -27,10 +27,10 @@ /// \brief Implementation of the PhysListEmLivermore class // // -// $Id: PhysListEmLivermore.cc 68585 2013-04-01 23:35:07Z adotti $ +// $Id: PhysListEmLivermore.cc 96379 2016-04-11 07:00:43Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmLivermore.hh" #include "G4ParticleDefinition.hh" @@ -74,7 +74,6 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" diff --git a/examples/extended/electromagnetic/TestEm14/src/PhysListEmPenelope.cc b/examples/extended/electromagnetic/TestEm14/src/PhysListEmPenelope.cc index c46a4618f1..6569dc5381 100644 --- a/examples/extended/electromagnetic/TestEm14/src/PhysListEmPenelope.cc +++ b/examples/extended/electromagnetic/TestEm14/src/PhysListEmPenelope.cc @@ -27,10 +27,10 @@ /// \brief Implementation of the PhysListEmPenelope class // // -// $Id: PhysListEmPenelope.cc 68585 2013-04-01 23:35:07Z adotti $ +// $Id: PhysListEmPenelope.cc 96379 2016-04-11 07:00:43Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmPenelope.hh" #include "G4ParticleDefinition.hh" @@ -75,7 +75,6 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" diff --git a/examples/extended/electromagnetic/TestEm14/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm14/src/PhysListEmStandard.cc index 35587ca6cc..217c8b1da3 100644 --- a/examples/extended/electromagnetic/TestEm14/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm14/src/PhysListEmStandard.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysListEmStandard class // // -// $Id: PhysListEmStandard.cc 73712 2013-09-09 09:58:37Z gcosmo $ +// $Id: PhysListEmStandard.cc 96379 2016-04-11 07:00:43Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,7 +54,6 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" diff --git a/examples/extended/electromagnetic/TestEm14/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm14/src/PhysicsList.cc index ff6b459c27..e9016691b8 100644 --- a/examples/extended/electromagnetic/TestEm14/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm14/src/PhysicsList.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysicsList class // // -// $Id: PhysicsList.cc 85258 2014-10-27 08:51:49Z gcosmo $ +// $Id: PhysicsList.cc 96379 2016-04-11 07:00:43Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -110,8 +110,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmProcessOptions.hh" - void PhysicsList::ConstructProcess() { // Transportation @@ -124,8 +122,8 @@ void PhysicsList::ConstructProcess() // Em options // - G4EmProcessOptions emOptions; - emOptions.SetIntegral(false); + G4EmParameters* param = G4EmParameters::Instance(); + param->SetIntegral(false); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm15/History b/examples/extended/electromagnetic/TestEm15/History index a7356fca36..cdf8486629 100644 --- a/examples/extended/electromagnetic/TestEm15/History +++ b/examples/extended/electromagnetic/TestEm15/History @@ -1,4 +1,4 @@ -$Id: History 82361 2014-06-17 15:18:30Z gcosmo $ +$Id: History 96376 2016-04-11 06:58:14Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,10 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - + +09-04-16 mma (testem15-V10-02-00) +- PhysicsList: use G4EmParameters + 17-06-14 mma (testem15-V10-00-01) - remove PhysicsList::SetCuts() diff --git a/examples/extended/electromagnetic/TestEm15/TestEm15.out b/examples/extended/electromagnetic/TestEm15/TestEm15.out index c2b24dacff..bfe08c6b5b 100644 --- a/examples/extended/electromagnetic/TestEm15/TestEm15.out +++ b/examples/extended/electromagnetic/TestEm15/TestEm15.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -280,7 +280,7 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen -annihil: for e+ SubType= 5 BuildTable= 0 +annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -292,7 +292,7 @@ msc: for proton SubType= 10 hIoni: for proton SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV @@ -305,7 +305,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -319,7 +319,7 @@ msc: for alpha SubType= 10 hIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -332,7 +332,7 @@ msc: for anti_proton SubType= 10 hIoni: for anti_proton SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV @@ -345,7 +345,7 @@ msc: for kaon+ SubType= 10 hIoni: for kaon+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV @@ -358,7 +358,7 @@ msc: for kaon- SubType= 10 hIoni: for kaon- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV @@ -371,7 +371,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -398,7 +398,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -425,7 +425,7 @@ msc: for pi+ SubType= 10 hIoni: for pi+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV @@ -438,7 +438,7 @@ msc: for pi- SubType= 10 hIoni: for pi- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 0, fluct: 0, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 0, fluct: 0, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV @@ -488,19 +488,19 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=0.13s Real=0.13s Sys=0s + User=0.1s Real=0.1s Sys=0s The run consists of 10000 e- of 5 MeV through 100 m of Water (density: 1 g/cm3 ) Process calls frequency ---> msc = 10000 - truePathLength : 2.7385 cm +- 1.3496 mm - geomPathLength : 2.0624 cm +- 857.69 um - lateralDisplac : 135.02 um +- 1.1357 mm - Psi : 7.315 mrad +- 57.611 mrad (0.41912 deg +- 3.3009 deg) + truePathLength : 2.7529 cm +- 19.55 nm + geomPathLength : 2.0709 cm +- 7.1087 nm + lateralDisplac : 0 fm +- 0 fm + Psi : 0 mrad +- 0 mrad (0 deg +- 0 deg) - Theta_plane : 135.36 mrad (7.7557 deg) - phi correlation: 0.0084857 +- 0.077631 (std::cos(phi_pos - phi_dir)) + Theta_plane : 0 mrad (0 deg) + phi correlation: 0 +- 0 (std::cos(phi_pos - phi_dir)) Verification from G4EmCalculator. @@ -508,11 +508,11 @@ Run Summary range from restrict dE/dx: 2.7529 cm ---> effective facRange : 1 - compute theta0 from Highland : 618.47 mrad (35.436 deg) + compute theta0 from Highland : 620.23 mrad (35.536 deg) --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1407003853, 458097757 + Current couple of seeds = 9876, 54321 ---------------------------------------- # /gun/energy 100 keV @@ -553,36 +553,36 @@ Index : 1 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1407003853, 458097757 + Current couple of seeds = 9876, 54321 ---------------------------------------- Run terminated. Run Summary Number of events processed : 10000 - User=0.17s Real=0.17s Sys=0s + User=0.15s Real=0.15s Sys=0s The run consists of 10000 e- of 100 keV through 100 m of Water (density: 1 g/cm3 ) Process calls frequency ---> msc = 10000 - truePathLength : 6.2884 um +- 1.8088 um - geomPathLength : 6.1532 um +- 1.7366 um - lateralDisplac : 939.94 nm +- 463.43 nm - Psi : 144.83 mrad +- 41.609 mrad (8.2982 deg +- 2.384 deg) + truePathLength : 6.3076 um +- 475.43 nm + geomPathLength : 6.1823 um +- 456.56 nm + lateralDisplac : 915.7 nm +- 238.78 nm + Psi : 146.47 mrad +- 34.441 mrad (8.3923 deg +- 1.9733 deg) - Theta_plane : 233.32 mrad (13.368 deg) - phi correlation: 0.16258 +- 0.15273 (std::cos(phi_pos - phi_dir)) + Theta_plane : 233.15 mrad (13.358 deg) + phi correlation: 0.16506 +- 0.15215 (std::cos(phi_pos - phi_dir)) Verification from G4EmCalculator. transport mean free path : 1.5763 cm range from restrict dE/dx: 143.25 um - ---> effective facRange : 0.00039894 + ---> effective facRange : 0.00040016 - compute theta0 from Highland : 180.41 mrad (10.337 deg) + compute theta0 from Highland : 180.73 mrad (10.355 deg) --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 163536160, 1014324879 + Current couple of seeds = 1226144376, 883988589 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/electromagnetic/TestEm15/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm15/src/PhysicsList.cc index 02d4c09bc2..b296f9926d 100644 --- a/examples/extended/electromagnetic/TestEm15/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm15/src/PhysicsList.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysicsList class // // -// $Id: PhysicsList.cc 82361 2014-06-17 15:18:30Z gcosmo $ +// $Id: PhysicsList.cc 96376 2016-04-11 06:58:14Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -165,8 +165,6 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmProcessOptions.hh" - void PhysicsList::ConstructProcess() { // Transportation @@ -179,10 +177,10 @@ void PhysicsList::ConstructProcess() // Em options // - G4EmProcessOptions emOptions; - emOptions.SetStepFunction(1., 1*mm); - emOptions.SetIntegral(false); - emOptions.SetLossFluctuations(false); + G4EmParameters* param = G4EmParameters::Instance(); + param->SetIntegral(false); + param->SetStepFunction(1., 1*mm); + param->SetLossFluctuations(false); // step limitation (as a full process) // diff --git a/examples/extended/electromagnetic/TestEm16/History b/examples/extended/electromagnetic/TestEm16/History index 4e6d81d798..7c0aeb9ffe 100644 --- a/examples/extended/electromagnetic/TestEm16/History +++ b/examples/extended/electromagnetic/TestEm16/History @@ -1,4 +1,4 @@ -$Id: History 87529 2014-12-08 08:25:04Z gcosmo $ +$Id: History 94807 2015-12-10 08:20:59Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,14 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +09-12-15 V.Ivant (testem16-V10-02-00) +01-12-15 V.Ivant (testem16-V10-01-02) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6; + added run01_prot.mac - demonstrating synkrotron radiation for FCC + +10-12-14 V.Ivant (testem16-V10-01-01) +- Fixed vis.mac and READMY + 05-12-14 V.Ivant (testem16-V10-01-00) - Run - fixed computation of max gamma energy for MT mode diff --git a/examples/extended/electromagnetic/TestEm16/README b/examples/extended/electromagnetic/TestEm16/README index 4388d55076..5299292851 100644 --- a/examples/extended/electromagnetic/TestEm16/README +++ b/examples/extended/electromagnetic/TestEm16/README @@ -1,4 +1,4 @@ -$Id: README 83423 2014-08-21 15:38:28Z gcosmo $ +$Id: README 94807 2015-12-10 08:20:59Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -71,7 +71,7 @@ $Id: README 83423 2014-08-21 15:38:28Z gcosmo $ allows to activate/inactivate the processes one by one. The threshold for producing secondaries can be changed. - eg: /run/particle/setCut 100 micrometer + eg: /run/setCut 100 micrometer /run/initialize To visualize the Synchrotron radiation : diff --git a/examples/extended/electromagnetic/TestEm16/TestEm16.out b/examples/extended/electromagnetic/TestEm16/TestEm16.out index c4f868740a..019e2a07b8 100644 --- a/examples/extended/electromagnetic/TestEm16/TestEm16.out +++ b/examples/extended/electromagnetic/TestEm16/TestEm16.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -196,7 +196,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -223,7 +223,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -268,7 +268,7 @@ G4SynchrotronRadiation::GetRandomEnergySR : Run terminated. Run Summary Number of events processed : 100 - User=0.38s Real=0.39s Sys=0s + User=0.35s Real=0.35s Sys=0s Summary for synchrotron radiation : Number of photons = 64554 Emean = 20.24 +/- 0.1449 keV diff --git a/examples/extended/electromagnetic/TestEm16/plotHisto.C b/examples/extended/electromagnetic/TestEm16/plotHisto.C new file mode 100644 index 0000000000..42f299cffd --- /dev/null +++ b/examples/extended/electromagnetic/TestEm16/plotHisto.C @@ -0,0 +1,24 @@ +{ + gROOT->Reset(); + + // Draw histos filled by Geant4 simulation + // + TFile f("run01.root"); + TCanvas* c1 = new TCanvas("c1", " "); + c1->Divide(3,1); + + TH1D* hist1 = (TH1D*)f.Get("1"); + c1->cd(1); + hist1->Draw("HIST"); + gPad->SetLogy(); + + TH1D* hist2 = (TH1D*)f.Get("2"); + c1->cd(2); + hist2->Draw("HIST"); + gPad->SetLogy(); + + TH1D* hist3 = (TH1D*)f.Get("3"); + c1->cd(3); + hist3->Draw("HIST"); + gPad->SetLogy(); +} diff --git a/examples/extended/electromagnetic/TestEm16/run01_prot.mac b/examples/extended/electromagnetic/TestEm16/run01_prot.mac new file mode 100644 index 0000000000..33dbaa45a3 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm16/run01_prot.mac @@ -0,0 +1,47 @@ +# +# Macro file for "TestEm16.cc" +# +# exmaple of synchrotron radiation for heavier particles, as relevant for fcc-hh +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat Vacuum +# +/run/initialize +# +# /process/activate SynchrotronRadiation +# +# inactivate other processes to make SynchrotronRadiation more visible +/process/inactivate msc +/process/inactivate eIoni +/process/inactivate eBrem +/process/inactivate annihil +/process/inactivate phot +/process/inactivate compt +/process/inactivate conv +/process/inactivate Rayl +# fcc-hh example +/globalField/setValue 0 0 20 tesla +# +# proton +/gun/particle proton +/gun/energy 50 TeV +# +# +# muon +# /gun/particle mu+ +# /gun/energy 10 TeV +# +# GenericIon, here Z=6, multiply gun energy with Z 50*Z = 300 +# /gun/particle ion +# /gun/ion 6 12 +# /gun/energy 300 TeV +# +# set up histos. A reasonable choice for the upper limits is about 5*Ecr and 10*MeanFreePath +/analysis/setFileName run01 +/analysis/h1/set 1 100 0 40 keV #SynRad Energy +/analysis/h1/set 2 100 0 40 keV #SynRad Power +/analysis/h1/set 3 100 0 16 m #Path Length +# +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm16/vis.mac b/examples/extended/electromagnetic/TestEm16/vis.mac index 19676098e5..02be30f2e7 100644 --- a/examples/extended/electromagnetic/TestEm16/vis.mac +++ b/examples/extended/electromagnetic/TestEm16/vis.mac @@ -19,7 +19,7 @@ /process/inactivate conv /process/inactivate Rayl # -/testem/det/setField 0.5 tesla +/testem/det/setField 0 0 0.5 tesla # /gun/particle e- /gun/energy 9.9994890009 GeV diff --git a/examples/extended/electromagnetic/TestEm17/History b/examples/extended/electromagnetic/TestEm17/History index a3d0771be6..a6f4b2a827 100644 --- a/examples/extended/electromagnetic/TestEm17/History +++ b/examples/extended/electromagnetic/TestEm17/History @@ -1,4 +1,4 @@ -$Id: History 94383 2015-11-13 10:20:27Z gcosmo $ +$Id: History 94806 2015-12-10 08:20:03Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +09-12-15 V.Ivant (testem17-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6; + added run01_prot.mac - demonstrating synkrotron radiation for FCC + 13-11-14 V.Ivant (testem17-V10-01-01) - PhysicsList, PhysListEmStandard - fixed upper energy for physics tables (A.Bogdanov) diff --git a/examples/extended/electromagnetic/TestEm17/TestEm17.out b/examples/extended/electromagnetic/TestEm17/TestEm17.out index 418d5cef05..ec4cc61feb 100644 --- a/examples/extended/electromagnetic/TestEm17/TestEm17.out +++ b/examples/extended/electromagnetic/TestEm17/TestEm17.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -187,18 +187,18 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=3.17s Real=3.18s Sys=0s + User=4.08s Real=4.12s Sys=0s The run consists of 10000 mu+ of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) - Number of process calls ---> muIoni : 463280 muPairProd : 63677 muBrems : 674 CoulombScat : 5656 + Number of process calls ---> muIoni : 462167 muPairProd : 63761 muBrems : 664 CoulombScat : 5600 - Simulation: total CrossSection = 0.53329 /cm MeanFreePath = 1.8752 cm massicCrossSection = 0.067762 cm2/g + Simulation: total CrossSection = 0.53219 /cm MeanFreePath = 1.879 cm massicCrossSection = 0.067623 cm2/g Theory: total CrossSection = 0.53938 /cm MeanFreePath = 1.854 cm massicCrossSection = 0.068536 cm2/g --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1974484803, 47695379 + Current couple of seeds = 2123812079, 2030589659 ---------------------------------------- # /gun/particle pi+ @@ -233,7 +233,7 @@ Index : 0 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1974484803, 47695379 + Current couple of seeds = 2123812079, 2030589659 ---------------------------------------- --> Event 0 starts. @@ -250,17 +250,17 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=3.1s Real=3.1s Sys=0s + User=3.43s Real=3.42s Sys=0s The run consists of 10000 pi+ of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) - Number of process calls ---> hIoni : 434781 hPairProd : 59329 CoulombScat : 5587 hBrems : 353 + Number of process calls ---> hIoni : 433869 hPairProd : 59593 CoulombScat : 5528 hBrems : 356 - Simulation: total CrossSection = 0.50005 /cm MeanFreePath = 1.9998 cm massicCrossSection = 0.063539 cm2/g + Simulation: total CrossSection = 0.49935 /cm MeanFreePath = 2.0026 cm massicCrossSection = 0.063449 cm2/g --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 697528997, 1765016416 + Current couple of seeds = 581364600, 618985999 ---------------------------------------- # /gun/particle proton @@ -295,7 +295,7 @@ Index : 0 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 697528997, 1765016416 + Current couple of seeds = 581364600, 618985999 ---------------------------------------- --> Event 0 starts. @@ -312,17 +312,17 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=2.8s Real=2.79s Sys=0s + User=2.2s Real=2.2s Sys=0s The run consists of 10000 proton of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) - Number of process calls ---> hIoni : 434179 hPairProd : 34242 CoulombScat : 5609 hBrems : 7 + Number of process calls ---> hIoni : 434766 hPairProd : 34303 CoulombScat : 5574 hBrems : 9 - Simulation: total CrossSection = 0.47404 /cm MeanFreePath = 2.1095 cm massicCrossSection = 0.060233 cm2/g + Simulation: total CrossSection = 0.47465 /cm MeanFreePath = 2.1068 cm massicCrossSection = 0.060312 cm2/g --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1105838860, 1013245767 + Current couple of seeds = 2133005659, 161514010 ---------------------------------------- # G4 kernel has come to Quit state. @@ -340,12 +340,12 @@ 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.0154 MB -Pool ID '7G4Track', size : 0.0308 MB +Pool ID '17G4DynamicParticle', size : 0.0163 MB +Pool ID '7G4Track', size : 0.0317 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.059 MB +Dynamic pools deleted: 9 / Total memory freed: 0.061 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/electromagnetic/TestEm17/plotHisto.C b/examples/extended/electromagnetic/TestEm17/plotHisto.C index fda7eb09b9..27a7c3b417 100644 --- a/examples/extended/electromagnetic/TestEm17/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm17/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("allproc.root"); + TFile f("allproc.root"); TCanvas* c1 = new TCanvas("c1", " "); c1->Divide(3,1); @@ -35,6 +35,6 @@ hist13->SetLineColor(2); hist13->Draw("HIST SAME"); - c1.Print("allproc.gif"); - c1.Close(); + c1->Print("allproc.gif"); + c1->Close(); } diff --git a/examples/extended/electromagnetic/TestEm18/History b/examples/extended/electromagnetic/TestEm18/History index 0703e7b145..d584d18002 100644 --- a/examples/extended/electromagnetic/TestEm18/History +++ b/examples/extended/electromagnetic/TestEm18/History @@ -1,4 +1,4 @@ -$Id: History 82401 2014-06-18 14:43:54Z gcosmo $ +$Id: History 96374 2016-04-11 06:55:50Z gcosmo $ ---------------------------------------------------- ========================================================= @@ -15,6 +15,12 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10-04-16 mma (testem18-V10-02-01) +- PhysListEmStandard: use G4EmParameters + +09-12-15 V.Ivant (testem18-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 18-06-14 mma (testem18-V10-00-00) - remove PhysicsList::SetCuts() - remove EventActionMessenger diff --git a/examples/extended/electromagnetic/TestEm18/TestEm18.out b/examples/extended/electromagnetic/TestEm18/TestEm18.out index e76854bd31..dbd2980a4c 100644 --- a/examples/extended/electromagnetic/TestEm18/TestEm18.out +++ b/examples/extended/electromagnetic/TestEm18/TestEm18.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -178,52 +178,53 @@ physicsList->setCut() start. /run/beamOn 100000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 - LambdaPrime table from 200 keV to 10 TeV in 154 bins + LambdaPrime table from 200 keV to 10 TeV in 77 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== PhotoElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila FluoActive compt: for gamma SubType= 13 BuildTable= 1 - Lambda table from 10 eV to 1 MeV, 20 bins per decade, spline: 1 - LambdaPrime table from 1 MeV to 10 TeV in 140 bins + Lambda table from 10 eV to 1 MeV, 10 bins per decade, spline: 1 + LambdaPrime table from 1 MeV to 10 TeV in 70 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== KleinNishina : Emin= 0 eV Emax= 10 TeV FluoActive conv: for gamma SubType= 14 BuildTable= 1 - Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1 + Lambda table from 1.022 MeV to 10 TeV, 18 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BetheHeitler : Emin= 0 eV Emax= 80 GeV BetheHeitlerLPM : Emin= 80 GeV Emax= 10 TeV eIoni: for e- SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MollerBhabha : Emin= 0 eV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins eBrem: for e- SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen eIoni: for e+ SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MollerBhabha : Emin= 0 eV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins eBrem: for e+ SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen @@ -234,165 +235,165 @@ annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 eplus2gg : Emin= 0 eV Emax= 10 TeV hIoni: for proton SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins hBrems: for proton SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 10 TeV hPairProd: for proton SubType= 4 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 Sampling table 13x1001 from 7.50618 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 10 TeV ionIoni: for GenericIon SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ParamICRU73 : Emin= 0 eV Emax= 10 TeV deltaVI - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 eV Emax= 10 TeV ionIoni: for alpha SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins nuclearStopping: for alpha SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 eV Emax= 10 TeV hIoni: for anti_proton SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins hIoni: for kaon+ SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins hIoni: for kaon- SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins muIoni: for mu+ SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.05, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV MuBetheBloch : Emin= 1 GeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins muBrems: for mu+ SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MuBrem : Emin= 0 eV Emax= 10 TeV muPairProd: for mu+ SubType= 4 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 Sampling table 17x1001 from 1 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 10 TeV muIoni: for mu- SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.05, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV MuBetheBloch : Emin= 1 GeV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins muBrems: for mu- SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MuBrem : Emin= 0 eV Emax= 10 TeV muPairProd: for mu- SubType= 4 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 Sampling table 17x1001 from 1 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 10 TeV hIoni: for pi+ SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins hBrems: for pi+ SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 10 TeV hPairProd: for pi+ SubType= 4 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 Sampling table 16x1001 from 1.11656 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 10 TeV hIoni: for pi- SubType= 2 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV - CSDA range table up to 10 TeV in 240 bins + CSDA range table up to 1 GeV in 80 bins hBrems: for pi- SubType= 3 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 10 TeV hPairProd: for pi- SubType= 4 - dE/dx and range tables from 10 eV to 10 TeV in 240 bins - Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + dE/dx and range tables from 10 eV to 10 TeV in 120 bins + Lambda tables from threshold to 10 TeV, 10 bins per decade, spline: 1 Sampling table 16x1001 from 1.11656 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 10 TeV @@ -435,7 +436,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 100000 - User=2.03s Real=2.03s Sys=0s + User=1.47s Real=1.46s Sys=0s ======================== run summary ====================== @@ -445,17 +446,17 @@ Run Summary TrackLength= 1.0004 cm nb of steps= 2.5074 stepSize= 3.9899 mm - d-rays : eLoss/primary= 244.12 keV nb of d-rays= 0.23308 = 1.0474 MeV Tmin= 351.9 keV Tmax= 4.9325 MeV + d-rays : eLoss/primary= 244.26 keV nb of d-rays= 0.23298 = 1.0484 MeV Tmin= 351.89 keV Tmax= 4.9325 MeV - gamma : eLoss/primary= 160.83 keV nb of gammas= 0.27671 = 581.22 keV Tmin= 2.9408 keV Tmax= 9.7286 MeV + gamma : eLoss/primary= 160.99 keV nb of gammas= 0.27726 = 580.66 keV Tmin= 2.9408 keV Tmax= 9.7286 MeV - deposit : eLoss/primary= 1.7327 MeV table= 1.7337 MeV ---> simul/reference= 0.99946 + deposit : eLoss/primary= 1.7327 MeV table= 1.7337 MeV ---> simul/reference= 0.99944 - total : eLoss/primary= 2.1377 MeV table= 2.1387 MeV ---> simul/reference= 0.99951 + total : eLoss/primary= 2.138 MeV table= 2.1388 MeV ---> simul/reference= 0.99962 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 345611154, 166225783 + Current couple of seeds = 901273126, 1892315932 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/electromagnetic/TestEm18/plotHisto.C b/examples/extended/electromagnetic/TestEm18/plotHisto.C index b8ac39b263..7a3dc33ca8 100644 --- a/examples/extended/electromagnetic/TestEm18/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm18/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("pixe.root"); + TFile f("pixe.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist3 = (TH1D*)f.Get("3"); diff --git a/examples/extended/electromagnetic/TestEm18/src/PhysListEmLivermore.cc b/examples/extended/electromagnetic/TestEm18/src/PhysListEmLivermore.cc index 425d61d9d7..a98f83e9a8 100644 --- a/examples/extended/electromagnetic/TestEm18/src/PhysListEmLivermore.cc +++ b/examples/extended/electromagnetic/TestEm18/src/PhysListEmLivermore.cc @@ -27,12 +27,13 @@ /// \brief Implementation of the PhysListEmLivermore class // // -// $Id: PhysListEmLivermore.cc 68585 2013-04-01 23:35:07Z adotti $ +// $Id: PhysListEmLivermore.cc 96374 2016-04-11 06:55:50Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmLivermore.hh" +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -80,7 +81,15 @@ PhysListEmLivermore::PhysListEmLivermore(const G4String& name) : G4VPhysicsConstructor(name) -{ } +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetBuildCSDARange(true); + SetPhysicsType(bElectromagnetic); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm18/src/PhysListEmPenelope.cc b/examples/extended/electromagnetic/TestEm18/src/PhysListEmPenelope.cc index 6e6af636ed..0c2f3ba15a 100644 --- a/examples/extended/electromagnetic/TestEm18/src/PhysListEmPenelope.cc +++ b/examples/extended/electromagnetic/TestEm18/src/PhysListEmPenelope.cc @@ -27,12 +27,13 @@ /// \brief Implementation of the PhysListEmPenelope class // // -// $Id: PhysListEmPenelope.cc 68585 2013-04-01 23:35:07Z adotti $ +// $Id: PhysListEmPenelope.cc 96374 2016-04-11 06:55:50Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmPenelope.hh" +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -81,7 +82,15 @@ PhysListEmPenelope::PhysListEmPenelope(const G4String& name) : G4VPhysicsConstructor(name) -{ } +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetBuildCSDARange(true); + SetPhysicsType(bElectromagnetic); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm18/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm18/src/PhysListEmStandard.cc index 90426807ee..ccdd1fb4a5 100644 --- a/examples/extended/electromagnetic/TestEm18/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm18/src/PhysListEmStandard.cc @@ -26,12 +26,14 @@ /// \file electromagnetic/TestEm18/src/PhysListEmStandard.cc /// \brief Implementation of the PhysListEmStandard class // -// $Id: PhysListEmStandard.cc 68585 2013-04-01 23:35:07Z adotti $ +// $Id: PhysListEmStandard.cc 96374 2016-04-11 06:55:50Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandard.hh" + +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" #include "G4PhysicsListHelper.hh" @@ -67,7 +69,15 @@ PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetBuildCSDARange(true); + SetPhysicsType(bElectromagnetic); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm18/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm18/src/PhysicsList.cc index 505bbf05a1..81951cd195 100644 --- a/examples/extended/electromagnetic/TestEm18/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm18/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm18/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 82401 2014-06-18 14:43:54Z gcosmo $ +// $Id: PhysicsList.cc 96374 2016-04-11 06:55:50Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -173,34 +173,11 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmProcessOptions.hh" - void PhysicsList::ConstructProcess() { AddTransportation(); fEmPhysicsList->ConstructProcess(); AddStepMax(); - - // Em options - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(10*eV); //default 100 eV - emOptions.SetMaxEnergy(10*TeV); //default 100 TeV - emOptions.SetDEDXBinning(12*20); //default=12*7 - emOptions.SetLambdaBinning(12*20); //default=12*7 - - //build CSDA range - // - emOptions.SetBuildCSDARange(true); - emOptions.SetMaxEnergyForCSDARange(10*TeV); - emOptions.SetDEDXBinningForCSDARange(12*20); - - //ionization - // - emOptions.SetSubCutoff(false); //default } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/History b/examples/extended/electromagnetic/TestEm2/History index 40a731e5c4..20d327fe92 100644 --- a/examples/extended/electromagnetic/TestEm2/History +++ b/examples/extended/electromagnetic/TestEm2/History @@ -1,4 +1,4 @@ -$Id: History 93736 2015-10-30 11:01:12Z gcosmo $ +$Id: History 96399 2016-04-12 07:25:24Z gcosmo $ ---------------------------------------------------- ========================================================= @@ -14,7 +14,14 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +11-04-16 mma (testem2-V10-02-01) +- PhysListEmStandard: use G4EmParameters +- remove geant3 subdirectory +10-12-15 V.Ivant (testem2-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 28-10-15 D.Sawkey (testem2-V10-01-03) - Update description of physics lists in README, again diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index 1da9ff8001..f259039fe3 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -286,7 +286,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -300,7 +300,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -409,7 +409,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -442,7 +442,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -558,35 +558,35 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=6.32s Real=6.39s Sys=0s + User=4.7s Real=4.75s Sys=0s ===== SUMMARY ===== Total number of events: 100 - Mean number of charged steps: 7215.84 - Mean number of neutral steps: 3893.77 + Mean number of charged steps: 7236.64 + Mean number of neutral steps: 3911.53 - energy deposit : 94.99 % E0 +- 0.92 % E0 - charged traklen: 482.51 radl +- 4.72 radl - neutral traklen: 4215.26 radl +- 129.52 radl + energy deposit : 94.93 % E0 +- 0.99 % E0 + charged traklen: 481.88 radl +- 5.30 radl + neutral traklen: 4224.66 radl +- 122.84 radl - 90.00 % confinement: radius = 2.92 radl (2.60 cm ) + 90.00 % confinement: radius = 2.93 radl (2.62 cm ) <<<>>> 100 events for Total Energy in Absorber -Edep: 0.949929 delEdep= 0.000929008 nrms= 1.13294 -Erms: 0.00916842 delErms= 0.000968422 nrms= 1.181 +Edep: 0.949253 delEdep= 0.000252735 nrms= 0.308213 +Erms: 0.0099308 delErms= 0.0017308 nrms= 2.11073 <<<>>> IS ACCEPTED --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1184869450, 1689580159 + Current couple of seeds = 1088784914, 1116957450 ---------------------------------------- ... write Root file : testem2.root - done 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.2 MB +Dynamic pools deleted: 9 / Total memory freed: 0.21 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm2/geant3/README b/examples/extended/electromagnetic/TestEm2/geant3/README deleted file mode 100644 index 76136dd02f..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/README +++ /dev/null @@ -1,43 +0,0 @@ - - testem2.cra is the geant3 equivalent of TestEm2 - - % cd geant3 - % gmakeB to make an executable (Batch version) - % gmakeT to make an executable (inTeractive version) - - To execute: - - % cd geant3 - % $G4SYSTEM/testem2.xb (for batch) or testem2.xt (for interactive) - - The program will ask: - G3 > gives the filename of the data cards to be read: - - run01.dat (runNN.dat is the equivalent of the G4 runNN.mac) - - - testem2 produces several histo saved as testem2.paw if ISWIT(2)=1 - - Content of these histo: - - 1 : energy deposit per event - 2 : charged track length per event - 3 : neutral track length per event - - 4 : longitudinal energy profile - 5 : rms of longitudinal energy profile - 6 : cumulated longitudinal energy profile - 7 : rms of cumulated longitudinal energy profile - - 8 : radial energy profile - 9 : rms of radial energy profile - 10 : cumulated radial energy profile - 11 : rms of cumulated radial energy profile - - 21 : edep distrib as function of kine energy of contributing particle - 22 : cumulative distrib of 21 - - It is possible to set the max allowed step size STEMAX, - via the data card: - STEPMX stepmax (in cm) - (However this value will be taken into account only if auto=0) diff --git a/examples/extended/electromagnetic/TestEm2/geant3/gmakeB b/examples/extended/electromagnetic/TestEm2/geant3/gmakeB deleted file mode 100755 index d091538c1d..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/gmakeB +++ /dev/null @@ -1,32 +0,0 @@ -# -# @(#) Script to build a Batch geant executable -# -set name=testem2 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F - -# -# Link -# -echo 'linking geant3+cernlib libraries ...' -# -hepf77 $extnam -g -o $name.xb *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xb -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm2/geant3/gmakeT b/examples/extended/electromagnetic/TestEm2/geant3/gmakeT deleted file mode 100755 index d48735674c..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/gmakeT +++ /dev/null @@ -1,31 +0,0 @@ -# -# @(#) Script to build an inTeractive geant executable -# -set name=testem2 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries...' -# -hepf77 $extnam -g -o $name.xt *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xt -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm2/geant3/include/celoss.inc b/examples/extended/electromagnetic/TestEm2/geant3/include/celoss.inc deleted file mode 100644 index ce4731ac4a..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/include/celoss.inc +++ /dev/null @@ -1,7 +0,0 @@ - - PARAMETER (NBIN= 500) - COMMON/CELOSS/ SEL1(NBIN), SEL1C(NBIN), SER1(NBIN), SER1C(NBIN), - + SEL2(NBIN), SEL2C(NBIN), SER2(NBIN), SER2C(NBIN), - + DEDL(NBIN), DEDR(NBIN) , - + STRCH,STRCH1,STRCH2,STRNE,STRNE1,STRNE2, - + EDEPCH,EDEPNE diff --git a/examples/extended/electromagnetic/TestEm2/geant3/include/history.inc b/examples/extended/electromagnetic/TestEm2/geant3/include/history.inc deleted file mode 100644 index f3cf49c570..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/include/history.inc +++ /dev/null @@ -1,34 +0,0 @@ - -* -* TEST PROGRAM FOR GEANT/SHOWER STUDIES -* -* Authors R.Brun, M.Maire ********* -* -* This program generates showers within a cylinder made of an -* homogeneous material.The statistics of shower profiles and -* particle's flux are computed and plotted. -* It has been used to do the GEANT/EGS comparison.(CERN/DD/85/1) -* -* The present release has been modified : -* -* - to increase the flexibility of the volume definition from -* data cards.(see description of the common /PVOLUM/ ) -* -* - to permit to define all kinds of primary particles,i.e electrons -* as well pions ( ===> hadronic showers ). -* see data card KINE. -* -* -* History -* ------- -* -* 11-01-06 : suppress divisions. suppress particle flux calculation. - histo 10->12 moved to 7->9 - change binning of run01.dat -* 27-08-01 : added histo 21 and 22 : edep distribution -* 08-02-99 : adapted for Geant4 comparison: electromagnetic/test/TestEm2 -* 17-02-98 : adapted to Unix + interactive + graphic -* 21-01-90 : Simplified version (i.e. near gexam1) -* 06-04-89 : Add Hydrogen in the material library (imate=2) -* 10-02-89 : new histgrams for the resolution of the energy profile -* diff --git a/examples/extended/electromagnetic/TestEm2/geant3/include/pvolum.inc b/examples/extended/electromagnetic/TestEm2/geant3/include/pvolum.inc deleted file mode 100644 index 4d7c60b270..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/include/pvolum.inc +++ /dev/null @@ -1,13 +0,0 @@ - - COMMON/PVOLUM/ IMAT,NLTOT,NRTOT,DLX0,DRX0,X0,Z1,R1 -* -* IMAT = GEANT material number. (data card MATE) -* NLTOT = total number of longitudinal bins. (data card BINS) -* NRTOT = total number of radial bins. (data card BINS) -* DLX0 = longitudinal bin length , in radiation length unit. (data card BINS) -* DRX0 = radial bin length , in radiation length unit. (data card BINS) -* - - COMMON/STEPMAX/stepmax -* -* stepmax = max allowed step length (data card STEPMX) diff --git a/examples/extended/electromagnetic/TestEm2/geant3/plotHisto.kumac b/examples/extended/electromagnetic/TestEm2/geant3/plotHisto.kumac deleted file mode 100644 index cb08e5dc4e..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/plotHisto.kumac +++ /dev/null @@ -1,14 +0,0 @@ -macro plotHisto.kumac -* -h/file 1 testem2.hbook -* -h/list -* -opt stat -* -h/pl 1 -h/pl 2 -h/pl 3 -h/pl 4 -* -return diff --git a/examples/extended/electromagnetic/TestEm2/geant3/run01.dat b/examples/extended/electromagnetic/TestEm2/geant3/run01.dat deleted file mode 100644 index 15f6ca31c5..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/run01.dat +++ /dev/null @@ -1,19 +0,0 @@ -LIST -C -C PbWO4 L=20radl R=5radl -C e- 5 GeV 500 events -C -C -MATE 7 (PbWO4) -BINS 40 (nbZ) 50 (nbR) 0.5 (dZ/radl) 0.1 (dR/radl) -TRIG 500 -KINE 3 (Itype) 5. (Ekine) -DEBUG 10 5 50 -SWIT 0 (draw) 0 (print) -ERAN 1.e-6 (ekmin) 10.e+3 (ekmax) 100 (nekbin) -CUTS 1.0e-6 (cutgam) 1.0e-6 (cutele) 3*10.e-03 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -LOSS 1 -HADR 0 -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm2/geant3/run02.dat b/examples/extended/electromagnetic/TestEm2/geant3/run02.dat deleted file mode 100644 index ac5e202ce8..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/run02.dat +++ /dev/null @@ -1,20 +0,0 @@ -LIST -C -C Al L=13.5radl R=1.35radl -C e- 1 GeV 500 events -C -C Experimental results: Electron-induced cascade showers -C J&H Crannel - Phys. Rev. 184-2 - August69 -C -MATE 4 -BINS 12 (nbZ) 12 (nbR) 1.1245 (dZ/radl) 0.11245 (dR/radl) -TRIG 500 -KINE 3 (Itype) 1. (Ekine) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (print) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-03 (cutneu/had/muo) - 2*10.8e-6 (bcute/m) 2*1.03e-3 (dcute/m) -LOSS 1 -HADR 0 -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm2/geant3/run03.dat b/examples/extended/electromagnetic/TestEm2/geant3/run03.dat deleted file mode 100644 index 5b804b4345..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/run03.dat +++ /dev/null @@ -1,20 +0,0 @@ -LIST -C -C H2O L=9.97radl R=0.665radl -C e- 1 GeV 500 events -C -C Experimental results: Electron-induced cascade showers -C J&H Crannel - Phys. Rev. 184-2 - August69 -C -MATE 2 -BINS 9 (nbZ) 6 (nbR) 1.11 (dZ/radl) 0.111 (dR/radl) -TRIG 500 -KINE 3 (Itype) 1. (Ekine) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (print) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-03 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*1.16e-3 (dcute/m) -LOSS 1 -HADR 0 -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm2/geant3/run04.dat b/examples/extended/electromagnetic/TestEm2/geant3/run04.dat deleted file mode 100644 index 19b3fd452a..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/run04.dat +++ /dev/null @@ -1,20 +0,0 @@ -LIST -C -C Fe L=20 radl R=5 radl -C e- 30 GeV 100 events -C -C EGS4 simulation: Particle Data Group - Phys.Rev.D 50-3 - August94 -C -C -MATE 5 -BINS 40 (nbZ) 20 (nbR) 0.5 (dZ/radl) 0.25 (dR/radl) -TRIG 100 -KINE 3 (Itype) 30. (Ekine) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (print) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-03 (cutneu/had/muo) - 2*18.4e-6 (bcute/m) 2*1.06e-3 (dcute/m) -LOSS 1 -HADR 0 -ABAN 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm2/geant3/src/gukine.F deleted file mode 100644 index dcc84f8b3a..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/gukine.F +++ /dev/null @@ -1,31 +0,0 @@ - - SUBROUTINE GUKINE -* -* Generates Kinematics for primary track -* -* Data card Kine : Itype Ekine -* (pkine(3) is used internaly to store Etot) -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "pvolum.inc" -* - DIMENSION VERTEX(3),PLAB(3) - DATA VERTEX/3*0./ - DATA PLAB /3*0./ -* - VERTEX(3) = - Z1 + 0.0001 - CALL GSVERT(VERTEX,0,0,0,0,NVERT) -* - JPA = LQ(JPART-IKINE) - XMASS = Q(JPA+7) - PKINE(3) = XMASS + PKINE(1) - PLAB(3) = SQRT(PKINE(1)*(PKINE(3)+XMASS)) -* - CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) -* -* *** Kinematics debug - IF(IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -* - END diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm2/geant3/src/guout.F deleted file mode 100644 index b97604c2fe..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/guout.F +++ /dev/null @@ -1,69 +0,0 @@ - - SUBROUTINE GUOUT -* -* User routine called at the end of each event -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "pvolum.inc" -#include "celoss.inc" -* -* *** drawing -* -#ifndef batch - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'testem2',0.) - CALL GDSHOW (1) - CALL GDXYZ (0) - END IF -#endif -* -* -* *** statistic -* - DLC = 0. - DRC = 0. - -* longitudinal profile -* - DO 2 I = 1,NLTOT - SEL1 (I) = SEL1 (I) + DEDL(I) - SEL2 (I) = SEL2 (I) + DEDL(I)**2 - DLC = DLC + DEDL(I) - SEL1C(I) = SEL1C(I) + DLC - SEL2C(I) = SEL2C(I) + DLC**2 - - BIN = (FLOAT(I)-0.5)*DLX0 - CALL HFILL(4,BIN,100*DEDL(I)/(DLX0*PKINE(3)),1.) - BIN = FLOAT(I)*DLX0 - CALL HFILL(6,BIN,100*DLC /PKINE(3),1.) - 2 CONTINUE - -* radial profile -* - DO 3 I = 1,NRTOT - SER1 (I) = SER1 (I) + DEDR(I) - SER2 (I) = SER2 (I) + DEDR(I)**2 - DRC = DRC + DEDR(I) - SER1C(I) = SER1C(I) + DRC - SER2C(I) = SER2C(I) + DRC**2 - - BIN = (FLOAT(I)-0.5)*DRX0 - CALL HFILL(8,BIN,100*DEDR(I)/(DRX0*PKINE(3)),1.) - BIN = FLOAT(I)*DRX0 - CALL HFILL(10,BIN,100*DRC /PKINE(3),1.) - 3 CONTINUE -* -* energy deposited and track length -* - ESEEN = 100.*DLC/PKINE(3) - CALL HFILL(1, ESEEN,0.,1.) - CALL HFILL(2,STRCH/X0,0.,1.) - CALL HFILL(3,STRNE/X0,0.,1.) -* - STRCH1 = STRCH1 + STRCH - STRCH2 = STRCH2 + STRCH**2 - STRNE1 = STRNE1 + STRNE - STRNE2 = STRNE2 + STRNE**2 -* - END diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm2/geant3/src/gustep.F deleted file mode 100644 index 6f79d3254c..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/gustep.F +++ /dev/null @@ -1,48 +0,0 @@ - - SUBROUTINE GUSTEP -* -* User routine called at the end of each tracking step -* -#include "geant321/gcflag.inc" -#include "geant321/gconst.inc" -#include "geant321/gckine.inc" -#include "geant321/gcking.inc" -#include "geant321/gctmed.inc" -#include "geant321/gctrak.inc" -#include "geant321/gcvolu.inc" -#include "pvolum.inc" -#include "celoss.inc" -* -* -* *** Debug event and strore track for drawing - IF (IDEBUG.NE.0) CALL GPCXYZ - IF (ISWIT(1).EQ.1.AND.(CHARGE.NE.0.)) CALL GSXYZ - IF (ISWIT(1).EQ.2) CALL GSXYZ -* -* *** Something generated ? - IF(NGKINE.GT.0) CALL GSKING(0) -* -* *** Energy deposited - IF (DESTEP.GT.0.)THEN - radius = sqrt(vect(1)**2 + vect(2)**2) - NR = 1 + radius/(DRX0*X0) - NL = 1 + (Z1 + vect(3))/(DLX0*X0) - DEDR(NR) = DEDR(NR) + DESTEP - DEDL(NL) = DEDL(NL) + DESTEP - ENDIF -* -* *** track length and total energy deposit - IF (CHARGE.NE.0.) THEN - STRCH = STRCH + STEP - EDEPCH = EDEPCH + DESTEP - ELSE - STRNE = STRNE + STEP - EDEPNE = EDEPNE + DESTEP - ENDIF -* -* *** energy of particles contributing to edep - IF ((DESTEP).GT.0.)THEN - elog = log10((gekin+destep)/pkine(3)) - call hfill (21,elog,0.,destep) - ENDIF - END diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/gutrev.F b/examples/extended/electromagnetic/TestEm2/geant3/src/gutrev.F deleted file mode 100644 index 37f2a32f47..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/gutrev.F +++ /dev/null @@ -1,15 +0,0 @@ - - SUBROUTINE GUTREV -* -* User routine to control tracking of one event -* Called by GRUN -* -#include "celoss.inc" -* - CALL VZERO(DEDL,2*NBIN) - STRCH = 0. - STRNE = 0. -* - CALL GTREVE -* - END diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/main.F b/examples/extended/electromagnetic/TestEm2/geant3/src/main.F deleted file mode 100644 index 4fea06b838..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/main.F +++ /dev/null @@ -1,61 +0,0 @@ -#ifdef batch - - PROGRAM main -* -* - PARAMETER (NGBANK=500000, NHBOOK=5000) - COMMON/GCBANK/Q(NGBANK) - COMMON/PAWC /H(NHBOOK) -* - CALL GZEBRA( NGBANK) - CALL HLIMIT(-NHBOOK) -* -* *** initialize HIGZ - CALL HPLINT(0) -* -* *** GEANT initialisation - CALL UGINIT -* -* *** Start events processing - CALL GRUN -* -* *** End of RUN - CALL UGLAST -* - STOP - END - -#else - - PROGRAM main -* -* GEANT main program. To link with the MOTIF user interface -* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas -* the routine GPAW(NWGEAN,NWPAW) gives access to the basic -* graphics version. -* - PARAMETER (NWGEAN=3000000, NWPAW=1000000) - COMMON/GCBANK/GEANT(NWGEAN) - COMMON/PAWC /PAW (NWPAW) -* -* - CALL GPAW (NWGEAN,NWPAW) -* - END -* - SUBROUTINE qnext - END -* - SUBROUTINE czopen - END -* - SUBROUTINE cztcp - END -* - SUBROUTINE czclos - END -* - SUBROUTINE czputa - END - -#endif diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm2/geant3/src/ugeom.F deleted file mode 100644 index e1f0a89892..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/ugeom.F +++ /dev/null @@ -1,95 +0,0 @@ - - SUBROUTINE UGEOM -* -* *** Define user geometry set up -* -#include "geant321/gcbank.inc" -#include "pvolum.inc" -* - DIMENSION ZAir (2),AAir (2),WAir (2) - DIMENSION ZH2O (2),AH2O (2),WH2O (2) - DIMENSION ZBGO (3),ABGO (3),WBGO (3) - DIMENSION ZPbWO(3),APbWO(3),WPbWO(3) - - DIMENSION PAR(3) - -* -* *** Air mixture parameters - DATA ZAir/ 7.00, 8.00 / - DATA AAir/ 14.01, 16.00 / - DATA WAir/ 0.70, 0.30 / -* -* *** H2O compound parameters - DATA ZH2O/ 1.00, 8.00 / - DATA AH2O/ 1.01, 16.00 / - DATA WH2O/ 2. , 1. / -* -* *** BGO compound parameters - DATA ZBGO/ 8.00, 32.00, 83.00 / - DATA ABGO/ 16.00, 72.59, 208.98 / - DATA WBGO/ 12. , 3. , 4. / -* -* *** PbWO4 compound parameters - DATA ZPbWO/ 8.00, 74.00, 82.00 / - DATA APbWO/ 16.00, 183.84, 207.19 / - DATA WPbWO/ 4. , 1. , 1. / -* -* *** Defines USER perticular materials -* - CALL GSMIXT( 1,'Air' , AAir , ZAir , 1.29E-3, 2,WAir) - CALL GSMIXT( 2,'Water' , AH2O , ZH2O , 1.0 ,-2,WH2O) - CALL GSMATE( 3,'Ar Liquid', 40.00, 18. , 1.39 ,14.0 ,84.0,0,0) - CALL GSMATE( 4,'Aluminium', 26.98, 13. , 2.7 , 8.9 ,37.2,0,0) - CALL GSMATE( 5,'Iron' , 55.85, 26. , 7.87 , 1.76,17.1,0,0) - CALL GSMIXT( 6,'BGO' , ABGO , ZBGO , 7.1 ,-3,WBGO) - CALL GSMIXT( 7,'PbWO4' , APbWO, ZPbWO, 8.28 ,-3,WPbWO) - CALL GSMATE( 8,'Lead ' ,207.19, 82. ,11.35 ,0.56,18.5,0,0) - CALL GSMATE( 9,'Tungsten' ,183.85, 74. ,19.30 ,0.35, 9.6,0,0) - - CALL GSMATE(10,'Copper' , 63.55, 29. , 8.96 , 1.43,17.1,0,0) - CALL GSMATE(11,'Uranium' ,238.03, 92. ,18.95 , 0.32,17.1,0,0) -* -* *** Defines USER tracking media parameters - FIELDM = 0.0 - IFIELD = 0 - TMAXFD = 10.0 - STEMAX = 1000. - IF (stepmax.gt.0.) STEMAX = stepmax - DEEMAX = 0.20 - EPSIL = 0.001 - STMIN = 0.010 -* - CALL GSTMED( 1,'Absorber',IMAT, 0 ,IFIELD,FIELDM,TMAXFD, - * STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 ) -* -* *** Defines USER'S VOLUMES - JMA = LQ(JMATE-IMAT) - X0 = Q(JMA + 9) - R1 = NRTOT*DRX0*X0 - Z1 = NLTOT*DLX0*X0*0.5 -* - PAR(1) = 0. - PAR(2) = R1 - PAR(3) = Z1 - CALL GSVOLU( 'ECAL' , 'TUBE' , 1 , PAR , 3 , IVOL) -* -* *** Close geometry banks. (obligatory system routine) - CALL GGCLOS -** -* *** dessin - CALL GSATT ('*' ,'SEEN',1) - CALL GSATT ('RING','SEEN',0) -* - DO IX =1,3 - CALL GDOPEN (IX) - SCALE = 9.5/Z1 - PAXIS = 0. - SAXIS = 0.2*Z1 - CALL GDRAWC ('ECAL',IX,0.,10.,10.,SCALE,SCALE) -CCC CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) - CALL GDSCAL ( 10., 0.3) - CALL GDCLOS - END DO -* - - END diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm2/geant3/src/uginit.F deleted file mode 100644 index 5f1c516e9b..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/uginit.F +++ /dev/null @@ -1,65 +0,0 @@ - - SUBROUTINE UGINIT -* -* To initialise GEANT/USER program and read data cards -* -#include "pvolum.inc" -#include "celoss.inc" -* - CHARACTER*20 filnam -* -* *** Define the GEANT parameters - CALL GINIT - -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'run01.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') -* -* *** material definition - CALL FFKEY('MATE',IMAT,1,'INTEGER') -* -* *** volumes and bins definition - CALL FFKEY('BINS',NLTOT,4,'MIXED') -* -* *** max allowed step size - CALL FFKEY('STEPMX',stepmax,1,'REAL') -* -* *** read data cards - CALL GFFGO -* -* *** check size of arrays - if (NLTOT.gt.NBIN) then - write (6,51) NLTOT, NBIN - NLTOT = NBIN - endif - if (NRTOT.gt.NBIN) then - write (6,52) NRTOT, NBIN - NRTOT = NBIN - endif -51 FORMAT (/,5x,'warning (uginit): NLTOT= ',I3,' truncated to ',I3) -52 FORMAT (/,5x,'warning (uginit): NRTOT= ',I3,' truncated to ',I3) -* -* *** achieve initialization - CALL VZERO(SEL1,10*NBIN+8) -* - CALL GZINIT - CALL GPART -* - CALL GDINIT -* -* *** Geometry and materials description - CALL UGEOM -* -* *** Energy loss and cross-sections initialisations - CALL GPHYSI -* - CALL GPRINT('MATE',0) - CALL GPRINT('TMED',0) - CALL GPRINT('VOLU',0) -* -* *** Define user histograms - CALL UHINIT -* - END diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm2/geant3/src/uglast.F deleted file mode 100644 index 6bc98e2809..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/uglast.F +++ /dev/null @@ -1,119 +0,0 @@ - - SUBROUTINE UGLAST -* -* Termination routine to print histograms and statistics -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "pvolum.inc" -#include "celoss.inc" -* - DIMENSION XSEL1(NBIN),XSEL1C(NBIN),XSER1(NBIN),XSER1C(NBIN), - + XSEL2(NBIN),XSEL2C(NBIN),XSER2(NBIN),XSER2C(NBIN) - - DIMENSION EDIST(100),EDISTC(100) -* -* *** Normalize and print energy distribution - XEVENT=IEVENT - CNORM = 100./(XEVENT*PKINE(3)) -* -* *** mean total energy deposit by charged and by neutral - EDEPCH = CNORM*EDEPCH - EDEPNE = CNORM*EDEPNE -* -* *** longitudinal profile - DO 2 I = 1,NLTOT - XSEL1 (I) = CNORM * SEL1 (I) - XSEL2 (I) = CNORM*SQRT(ABS(XEVENT*SEL2 (I) - SEL1 (I)**2)) - XSEL1C(I) = CNORM * SEL1C(I) - XSEL2C(I) = CNORM*SQRT(ABS(XEVENT*SEL2C(I) - SEL1C(I)**2)) - 2 CONTINUE - CALL HPAK (5,XSEL2) - CALL HPAK (7,XSEL2C) -* -* *** radial profile - DO 3 I = 1,NRTOT - XSER1 (I) = CNORM * SER1 (I) - XSER2 (I) = CNORM*SQRT(ABS(XEVENT*SER2 (I) - SER1 (I)**2)) - XSER1C(I) = CNORM * SER1C(I) - XSER2C(I) = CNORM*SQRT(ABS(XEVENT*SER2C(I) - SER1C(I)**2)) - 3 CONTINUE - CALL HPAK ( 9,XSER2) - CALL HPAK (11,XSER2C) -* -* *** total track length - CNORM = 1./(XEVENT*X0) - XTRCH1 = CNORM*STRCH1 - XTRCH2 = CNORM*SQRT(ABS(XEVENT*STRCH2 - STRCH1**2)) - XTRNE1 = CNORM*STRNE1 - XTRNE2 = CNORM*SQRT(ABS(XEVENT*STRNE2 - STRNE1**2)) -* -* *** Print profiles (under condition iswit(2).gt.0) -* - if (iswit(2).gt.0) then - PRINT 749 - PRINT 750 - PRINT 751 - DO 15 I=1,NLTOT - B0 = (I-1)*DLX0 - B1 = I*DLX0 - PRINT 754,B0,B1,XSEL1(I),XSEL2(I),B1,XSEL1C(I),XSEL2C(I) - 15 CONTINUE - - PRINT 760 - PRINT 751 - DO 16 I=1,NRTOT - B0 = (I-1)*DRX0 - B1 = I*DRX0 - PRINT 754,B0,B1,XSER1(I),XSER2(I),B1,XSER1C(I),XSER2C(I) - 16 CONTINUE - endif -* -* *** normalize histo of energy ditribution of contributing particles -* and compute cumulative distribution - SUM = HSUM (21) - CALL HUNPAK(21,EDIST,'HIST',1) - EDIST( 1) = EDIST(1)*100/SUM - EDISTC(1) = EDIST(1) - DO 17 I=2,100 - EDIST (I) = EDIST (I)*100/SUM - EDISTC(I) = EDISTC(I-1) + EDIST(I) - 17 CONTINUE - CALL HPAK (21,EDIST) - CALL HPAK (22,EDISTC) -* -* *** print summary - PRINT 770 - PRINT 771,XSEL1C(NLTOT),XSEL2C(NLTOT) - PRINT 774,EDEPCH - PRINT 775,EDEPNE - PRINT 772,XTRCH1,XTRCH2 - PRINT 773,XTRNE1,XTRNE2 - PRINT 749 -* -* *** Save selected histograms - CALL HRPUT(0,'testem2.hbook','N') -* -* *** terminaison - CALL GLAST -* -* *** close HIGZ - CALL HPLEND -* - 749 FORMAT(//) - 750 FORMAT(15X,'LATERAL PROFILE',35X,'CUMULATIVE LATERAL PROFILE'/) - 751 FORMAT( 8X,'Bin',12X,' Mean ',5X,' rms', - * 19X,'Bin', 9X,' Mean ',5X,' rms',/) - 754 FORMAT( 3X,F5.2,'->',F5.2,' radl: ',F7.2,'% ',F7.2,'%', - * 13X, '0->',F5.2,' radl: ',F7.2,'% ',F7.2,'%') - 760 FORMAT(///,15X,'RADIAL PROFILE',35X,'CUMULATIVE RADIAL PROFILE'/) - 770 FORMAT(/,30X,'SUMMARY',/) - 771 FORMAT( 25X,'energy deposit : ',F7.2,' % E0 +- ',F7.2,' % E0') - 772 FORMAT( 25X,'charged traklen: ',F7.2,' radl +- ',F7.2,' radl') - 773 FORMAT( 25X,'neutral traklen: ',F7.2,' radl +- ',F7.2,' radl') - 774 FORMAT( 25X,'edep by charged: ',F7.2,' % E0') - 775 FORMAT( 25X,'edep by neutral: ',F7.2,' % E0') -* - END - diff --git a/examples/extended/electromagnetic/TestEm2/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm2/geant3/src/uhinit.F deleted file mode 100644 index 89383dfa24..0000000000 --- a/examples/extended/electromagnetic/TestEm2/geant3/src/uhinit.F +++ /dev/null @@ -1,66 +0,0 @@ - - SUBROUTINE UHINIT -* -* To book the user's histograms -* -#include "geant321/gckine.inc" -#include "pvolum.inc" -* -* *** Histograms for showers development -* - EDMIN=0. - EDMAX=110. - TRKMX=110.*PKINE(1) -* - CALL HBOOK1(1,'total energy deposition (in percent of E inc)' - *,110,EDMIN,EDMAX,0.0) - CALL HBOOK1(2,'total charged tracklengh (in radl)' - *,110, 0. , TRKMX, 0.0) - CALL HBOOK1(3,'total neutral tracklengh (in radl)' - *,110, 0. , 10*TRKMX, 0.0) -* - CALL HIDOPT(0,'STAT') -* -* *** Longitudinal profile - ZMAX=NLTOT*DLX0 - - CALL HBPROF(4,'longit energy profile (in percent of E inc)' - *, NLTOT, 0.,ZMAX, 0., 1000.,' ') - CALL HBPROF(5,'rms longit energy profile (in percent of E inc)' - *, NLTOT, 0.,ZMAX, 0., 1000.,' ') -* - ZMIN = 0.5*DLX0 - ZMAX = ZMIN + NLTOT*DLX0 - - CALL HBPROF(6,'cumul longit energy dep. (in percent of E inc)' - *, NLTOT, ZMIN,ZMAX, 0., 100.,' ') - CALL HBOOK1(7,'resolution: cumul L energy dep. (% of E inc)' - *, NLTOT, ZMIN,ZMAX, 0.0) -* -* *** Radial profile - RMAX=NRTOT*DRX0 - - CALL HBPROF(8,'radial energy profile (in percent of E inc)' - *, NRTOT, 0.,RMAX, 0., 1000.,' ') - CALL HBPROF(9,'rms radial energy profile (in percent of E inc)' - *, NRTOT, 0.,RMAX, 0., 1000.,' ') -* - RMIN = 0.5*DRX0 - RMAX = RMIN + NRTOT*DRX0 - - CALL HBPROF(10,'cumul radial energy dep. (in percent of E inc)' - *, NRTOT, RMIN,RMAX, 0., 100.,' ') - CALL HBOOK1(11,'resolution: cumul R energy dep. (% of E inc)' - *, NRTOT, RMIN,RMAX, 0.0) - -* -* *** Origin of the deposited energy - tminlog = -6. - tmaxlog = 0. - CALL HBOOK1(21,'edep (normalized 100 percent) versus log(ekin/e0)' - *, 100, tminlog, tmaxlog, 0.0) - CALL HBOOK1(22,'cumul edep (100 percent) versus log(ekin/e0)' - *, 100, tminlog, tmaxlog, 0.0) - -* - END diff --git a/examples/extended/electromagnetic/TestEm2/plotHisto.C b/examples/extended/electromagnetic/TestEm2/plotHisto.C index 46f5a5ca17..c0a88b3190 100644 --- a/examples/extended/electromagnetic/TestEm2/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm2/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("run01.root"); + TFile f("run01.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("h1"); diff --git a/examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc index 92e3cc685d..7e2b272d87 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc 83431 2014-08-21 15:49:56Z gcosmo $ +// $Id: PhysListEmStandard.cc 96399 2016-04-12 07:25:24Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,19 +58,27 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" +#include "G4BuilderType.hh" #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetMscStepLimitType(fUseSafetyPlus); + SetPhysicsType(bElectromagnetic); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -170,24 +178,6 @@ void PhysListEmStandard::ConstructProcess() } } - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(10*eV); //default 100 eV - emOptions.SetMaxEnergy(10*TeV); //default 100 TeV - emOptions.SetDEDXBinning(12*10); //default=12*7 - emOptions.SetLambdaBinning(12*10); //default=12*7 - - //multiple coulomb scattering - // - emOptions.SetMscStepLimitation(fUseSafety); //default - // Deexcitation // G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); diff --git a/examples/extended/electromagnetic/TestEm3/CMakeLists.txt b/examples/extended/electromagnetic/TestEm3/CMakeLists.txt index 5ca9f98f0d..1288703778 100644 --- a/examples/extended/electromagnetic/TestEm3/CMakeLists.txt +++ b/examples/extended/electromagnetic/TestEm3/CMakeLists.txt @@ -40,7 +40,8 @@ target_link_libraries(TestEm3 ${Geant4_LIBRARIES}) # relies on these scripts being in the current working directory. # set(TestEm3_SCRIPTS - atlashec.mac dedx.mac emtutor.mac ionC12.mac lhcb.mac linac.mac lockwood.mac retrieveTables.mac run01.mac run02.mac storeTables.mac TestEm3.in TestEm3.out tileCal.mac vis.mac + atlashec.mac dedx.mac emtutor.mac ionC12.mac lhcb.mac linac.mac lockwood.mac retrieveTables.mac + run01.mac run02.mac radioactive.mac storeTables.mac TestEm3.in TestEm3.out tileCal.mac vis.mac ) foreach(_script ${TestEm3_SCRIPTS}) diff --git a/examples/extended/electromagnetic/TestEm3/History b/examples/extended/electromagnetic/TestEm3/History index bfbdb289cb..b307962455 100644 --- a/examples/extended/electromagnetic/TestEm3/History +++ b/examples/extended/electromagnetic/TestEm3/History @@ -1,4 +1,4 @@ -$Id: History 93737 2015-10-30 11:01:43Z gcosmo $ +$Id: History 95469 2016-02-12 08:48:53Z gcosmo $ ---------------------------------------------------- ========================================================= @@ -14,7 +14,19 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +10-02-16 mma (testem3-V10-02-03) +- update radioactive.mac again +06-02-16 mma (testem3-V10-02-02) +- update radioactive.mac + +29-01-16 mma (testem3-V10-02-01) +- Physicsist: add radioactiveDecay process (not active by default) + +10-12-15 V.Ivant (testem3-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 28-10-15 D.Sawkey (testem3-V10-01-04) - update description of physics lists in README, again diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index 55d69bfac5..d72630d262 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -193,7 +193,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -207,7 +207,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -316,7 +316,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -349,7 +349,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -499,28 +499,28 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 100 - User=5.37s Real=5.38s Sys=0s + User=2.85s Real=2.85s Sys=0s ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - Lead: 778.42 MeV : 17.35 MeV 2.229 +- 0.2229 % 54.7 cm +- 1.36 cm - liquidArgon: 210.83 MeV : 15.81 MeV 7.497 +- 0.7497 % 1.04 m +- 8.27 cm + Lead: 777.65 MeV : 17.3 MeV 2.225 +- 0.2225 % 54.6 cm +- 1.33 cm + liquidArgon: 211.87 MeV : 15.75 MeV 7.435 +- 0.7435 % 1.05 m +- 8.21 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV Mean number of gamma 508 - Mean number of e- 867 - Mean number of e+ 53.6 - Mean number of charged steps 3566.29 - Mean number of neutral steps 3649.09 + Mean number of e- 873 + Mean number of e+ 53.9 + Mean number of charged steps 3615.95 + Mean number of neutral steps 3709.01 ------------------------------------------------------------ Energy deposition from Energy flow balance : material Total Edep - Lead: 778.421 MeV -liquidArgon: 210.599 MeV + Lead: 777.659 MeV +liquidArgon: 211.846 MeV ------------------------------------------------------------ @@ -655,7 +655,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -669,7 +669,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -778,7 +778,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -811,7 +811,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -944,28 +944,28 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=4.12s Real=4.12s Sys=0s + User=2.5s Real=2.5s Sys=0s ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - Lead: 779.47 MeV : 22.23 MeV 2.852 +- 0.2852 % 52.1 cm +- 1.47 cm - liquidArgon: 210.18 MeV : 16.84 MeV 8.014 +- 0.8014 % 99.3 cm +- 7.45 cm + Lead: 776.57 MeV : 22 MeV 2.833 +- 0.2833 % 52 cm +- 1.38 cm + liquidArgon: 211.59 MeV : 14.28 MeV 6.749 +- 0.6749 % 1 m +- 6.67 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV Mean number of gamma 292 - Mean number of e- 555 - Mean number of e+ 53.6 - Mean number of charged steps 3074.41 - Mean number of neutral steps 2875.61 + Mean number of e- 556 + Mean number of e+ 53.5 + Mean number of charged steps 3019.94 + Mean number of neutral steps 2917.07 ------------------------------------------------------------ Energy deposition from Energy flow balance : material Total Edep - Lead: 777.535 MeV -liquidArgon: 210.455 MeV + Lead: 775.848 MeV +liquidArgon: 213.082 MeV ------------------------------------------------------------ @@ -979,19 +979,19 @@ UserPrimaryGenerator deleted. RunManager is deleting RunManagerKernel. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 152 +Total navigation history collections cleaned: 159 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.234 MB +Pool ID '20G4NavigationLevelRep', size : 0.245 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.0394 MB -Pool ID '7G4Track', size : 0.0788 MB -Pool ID '18G4TouchableHistory', size : 0.0183 MB +Pool ID '17G4DynamicParticle', size : 0.0385 MB +Pool ID '7G4Track', size : 0.0759 MB +Pool ID '18G4TouchableHistory', size : 0.0192 MB Pool ID '15G4CountedObjectIvE', size : 0.00288 MB Number of memory pools allocated: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.38 MB +Dynamic pools deleted: 9 / Total memory freed: 0.39 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh index 03c73589fe..9bd21e975f 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm3/include/PhysicsList.hh /// \brief Definition of the PhysicsList class // -// $Id: PhysicsList.hh 82333 2014-06-16 09:57:47Z gcosmo $ +// $Id: PhysicsList.hh 95227 2016-02-01 09:19:15Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,6 +54,8 @@ public: virtual void ConstructProcess(); void AddPhysicsList(const G4String& name); + void AddDecay(); + void AddRadioactiveDecay(); void AddStepMax(); private: diff --git a/examples/extended/electromagnetic/TestEm3/plotHisto.C b/examples/extended/electromagnetic/TestEm3/plotHisto.C index 46991c2010..998d46330d 100644 --- a/examples/extended/electromagnetic/TestEm3/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm3/plotHisto.C @@ -3,8 +3,8 @@ // Draw histos filled by Geant4 simulation // - ///TFile f = TFile("testem3.root"); - TFile f = TFile("run01.root"); + ///TFile f("testem3.root"); + TFile f("run01.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("1"); diff --git a/examples/extended/electromagnetic/TestEm3/radioactive.mac b/examples/extended/electromagnetic/TestEm3/radioactive.mac new file mode 100644 index 0000000000..d05fab583e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/radioactive.mac @@ -0,0 +1,30 @@ +# Macro file for "TestEm3.cc" +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 4 +/testem/det/setAbsor 1 Polystyrene 5 mm +/testem/det/setAbsor 2 Aluminium 0.5 mm +/testem/det/setAbsor 3 Air20 2 mm +/testem/det/setAbsor 4 G4_SODIUM_IODIDE 5 cm +/testem/det/setSizeYZ 5 cm +# +/testem/phys/addPhysics local +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle ion +/gun/ion 11 22 +/gun/energy 0 eV +/gun/position -26.25 0 0 mm +# +/analysis/setFileName rdecay +/analysis/h1/set 4 100 0.001 3. MeV #edep in absor4 +/analysis/h1/setAscii 4 +# +/run/printProgress 100000 +# +/run/beamOn 1000000 diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc index bcf5529376..9836aa9124 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm3/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 90969 2015-06-12 08:12:57Z gcosmo $ +// $Id: PhysicsList.cc 95227 2016-02-01 09:19:15Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -113,36 +113,25 @@ void PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4ProcessManager.hh" -#include "G4Decay.hh" void PhysicsList::ConstructProcess() { + // Transportation + // AddTransportation(); // electromagnetic Physics List // fEmPhysicsList->ConstructProcess(); - // Add Decay Process + // decay Process // - G4Decay* fDecayProcess = new G4Decay(); + AddDecay(); + + // radioactive decay Process + // + ////AddRadioactiveDecay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - - if (fDecayProcess->IsApplicable(*particle)) { - - pmanager ->AddProcess(fDecayProcess); - - // set ordering for PostStepDoIt and AtRestDoIt - pmanager ->SetProcessOrdering(fDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(fDecayProcess, idxAtRest); - - } - } - // stepLimitation (as a full process) // AddStepMax(); @@ -237,6 +226,47 @@ void PhysicsList::AddPhysicsList(const G4String& name) << G4endl; } } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4PhysicsListHelper.hh" +#include "G4Decay.hh" + +void PhysicsList::AddDecay() +{ + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + + // Decay Process + // + G4Decay* fDecayProcess = new G4Decay(); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + if (fDecayProcess->IsApplicable(*particle)) + ph->RegisterProcess(fDecayProcess, particle); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4PhysicsListHelper.hh" +#include "G4RadioactiveDecay.hh" +#include "G4GenericIon.hh" +#include "G4NuclideTable.hh" + +void PhysicsList::AddRadioactiveDecay() +{ + G4RadioactiveDecay* radioactiveDecay = new G4RadioactiveDecay(); + + radioactiveDecay->SetARM(true); //Atomic Rearangement + + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + ph->RegisterProcess(radioactiveDecay, G4GenericIon::GenericIon()); + + // mandatory for G4NuclideTable + // + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/vis.mac b/examples/extended/electromagnetic/TestEm3/vis.mac index e176ca0823..013b38ac21 100644 --- a/examples/extended/electromagnetic/TestEm3/vis.mac +++ b/examples/extended/electromagnetic/TestEm3/vis.mac @@ -36,7 +36,7 @@ #/vis/viewer/set/viewpointThetaPhi 90. 0. # # Specify zoom value: -/vis/viewer/zoom 0.75 +/vis/viewer/zoom 1.2 # # Specify style (surface or wireframe): #/vis/viewer/set/style wireframe diff --git a/examples/extended/electromagnetic/TestEm4/History b/examples/extended/electromagnetic/TestEm4/History index cb9d13b907..73fb2eb4c9 100644 --- a/examples/extended/electromagnetic/TestEm4/History +++ b/examples/extended/electromagnetic/TestEm4/History @@ -1,4 +1,4 @@ -$Id: History 85264 2014-10-27 09:00:06Z gcosmo $ +$Id: History 94837 2015-12-10 16:17:16Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,10 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - + +10-12-15 V.Ivant (testem4-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 23-10-14 ma (testem4-V10-00-03) - improved output MT diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index 529e727dad..6ee2f069f7 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -140,11 +140,11 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 100000 - User=2.62s Real=2.63s Sys=0s + User=1.25s Real=1.26s Sys=0s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 478461045, 560725148 + Current couple of seeds = 734203742, 429203169 ---------------------------------------- ... write Root file : testem4.root - done G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm4/plotHisto.C b/examples/extended/electromagnetic/TestEm4/plotHisto.C index 328911919f..c211d0c47a 100644 --- a/examples/extended/electromagnetic/TestEm4/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm4/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("testem4.root"); + TFile f("testem4.root"); TCanvas* c1 = new TCanvas("c1", " "); c1->SetLogy(1); diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index d85298489c..de1a76073a 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -1,4 +1,4 @@ -$Id: History 94333 2015-11-12 09:57:47Z gcosmo $ +$Id: History 96400 2016-04-12 07:26:33Z gcosmo $ ---------------------------------------------------- ========================================================= @@ -14,7 +14,20 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +11-04-16 mma (testem5-V10-02-03) +- PhysListEmStandard: use G4EmParameters +- remove geant3 subdirectory +24-02-16 mma (testem5-V10-02-02) +- EventAction: correct filling of histo 1 + +11-01-16 V.Ivant (testem5-V10-02-01) +- PhysicsList - added hadron elastic physics + +10-12-15 V.Ivant (testem5-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 12-11-15 V.Ivant (testem5-V10-01-06) - TrackingAction - more accurate fix which does not change results diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index 295513f8ae..378a0d304d 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -61,7 +61,8 @@ PhysicsList::AddPhysicsList: /run/beamOn 100000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -106,6 +107,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -126,12 +134,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -177,7 +192,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -194,7 +209,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -224,7 +239,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -250,7 +265,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -276,7 +291,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -303,7 +318,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -330,7 +345,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -356,7 +371,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -418,30 +433,30 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=2.92s Real=2.92s Sys=0s + User=2.42s Real=2.42s Sys=0s ======================== 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.21 eV + Total energy deposit in absorber per event = 6.345 keV +- 16.48 eV - -----> Mean dE/dx = 3.172 MeV/cm (1.361 MeV*cm2/g) + -----> Mean dE/dx = 3.173 MeV/cm (1.362 MeV*cm2/g) From formulas : restricted dEdx = 2.963 MeV/cm (1.272 MeV*cm2/g) full dEdx = 4.725 MeV/cm (2.028 MeV*cm2/g) - Leakage : primary = 5 GeV +- 226.3 eV secondaries = 1.795 keV +- 224.4 eV + Leakage : primary = 5 GeV +- 1.132 keV secondaries = 3.701 keV +- 1.131 keV Energy balance : edep + eleak = 5 GeV - Total track length (charged) in absorber per event = 20.26 um +- 7.736 nm - Total track length (neutral) in absorber per event = 4.915 Ang +- 3.91 Ang + Total track length (charged) in absorber per event = 20.25 um +- 7.668 nm + Total track length (neutral) in absorber per event = 3.729 Ang +- 3.3 Ang - Number of steps (charged) in absorber per event = 1.221 +- 8.796e-06 - Number of steps (neutral) in absorber per event = 5e-05 +- 8.796e-06 + Number of steps (charged) in absorber per event = 1.207 +- 8.757e-06 + Number of steps (neutral) in absorber per event = 2e-05 +- 8.757e-06 - Number of secondaries per event : Gammas = 5e-05 electrons = 0.01678 positrons = 0 + Number of secondaries per event : Gammas = 2e-05 electrons = 0.01654 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 % @@ -452,11 +467,11 @@ Run Summary MultipleScattering: rms proj angle of transmit primary particle = 0.025 mrad (central part only) computed theta0 (Highland formula) = 0.02627 mrad - central part defined as +- 0.0788 mrad Tail ratio = 1.9 % + central part defined as +- 0.0788 mrad Tail ratio = 1.981 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 66374378, 1835217871 + Current couple of seeds = 61017283, 1553222545 ---------------------------------------- # /testem/det/setAbsMat Gold @@ -470,7 +485,8 @@ Run Summary /run/beamOn 50000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -515,6 +531,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -535,12 +558,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -586,7 +616,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -603,7 +633,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -633,7 +663,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -659,7 +689,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -685,7 +715,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -712,7 +742,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -739,7 +769,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -765,7 +795,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -817,7 +847,7 @@ Index : 2 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 66374378, 1835217871 + Current couple of seeds = 61017283, 1553222545 ---------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -827,45 +857,45 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 50000 - User=4.39s Real=4.4s Sys=0s + User=2.18s Real=2.19s Sys=0.01s ======================== 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.57 keV +- 64.85 eV + Total energy deposit in absorber per event = 18.49 keV +- 63.45 eV - -----> Mean dE/dx = 19.23 MeV/cm (0.9952 MeV*cm2/g) + -----> Mean dE/dx = 19.15 MeV/cm (0.9911 MeV*cm2/g) From formulas : restricted dEdx = 17.91 MeV/cm (0.9269 MeV*cm2/g) full dEdx = 61.41 MeV/cm (3.179 MeV*cm2/g) - Leakage : primary = 15.64 MeV +- 2.275 keV secondaries = 42.73 keV +- 2.261 keV + Leakage : primary = 15.64 MeV +- 2.203 keV secondaries = 41.77 keV +- 2.191 keV Energy balance : edep + eleak = 15.7 MeV - Total track length (charged) in absorber per event = 9.939 um +- 12.09 nm - Total track length (neutral) in absorber per event = 126.6 nm +- 4.361 nm + Total track length (charged) in absorber per event = 9.917 um +- 11.06 nm + Total track length (neutral) in absorber per event = 129.9 nm +- 4.405 nm - Number of steps (charged) in absorber per event = 6.061 +- 1.555e-05 - Number of steps (neutral) in absorber per event = 0.02842 +- 1.555e-05 + Number of steps (charged) in absorber per event = 4.999 +- 1.487e-05 + Number of steps (neutral) in absorber per event = 0.0285 +- 1.487e-05 - Number of secondaries per event : Gammas = 0.02826 electrons = 0.02236 positrons = 0 + Number of secondaries per event : Gammas = 0.0284 electrons = 0.02186 positrons = 0 Number of events with the primary particle transmitted = 99.98 % Number of events with at least 1 particle transmitted (same charge as primary) = 99.98 % - Number of events with the primary particle reflected = 0.016 % - Number of events with at least 1 particle reflected (same charge as primary) = 0.322 % + Number of events with the primary particle reflected = 0.02 % + Number of events with at least 1 particle reflected (same charge as primary) = 0.31 % MultipleScattering: - rms proj angle of transmit primary particle = 35.59 mrad (central part only) + rms proj angle of transmit primary particle = 35.48 mrad (central part only) computed theta0 (Highland formula) = 35.1 mrad - central part defined as +- 105.3 mrad Tail ratio = 2.947 % + central part defined as +- 105.3 mrad Tail ratio = 2.998 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 94783198, 1314652179 + Current couple of seeds = 335593972, 1470832266 ---------------------------------------- # /run/setCut 10 um @@ -879,7 +909,8 @@ Run Summary /run/beamOn 50000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -924,6 +955,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -944,12 +982,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -995,7 +1040,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1012,7 +1057,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1042,7 +1087,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1068,7 +1113,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1094,7 +1139,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1121,7 +1166,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1148,7 +1193,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1174,7 +1219,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1231,7 +1276,7 @@ Index : 3 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 94783198, 1314652179 + Current couple of seeds = 335593972, 1470832266 ---------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -1241,30 +1286,30 @@ Index : 3 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 50000 - User=5.59s Real=5.6s Sys=0s + User=4.26s Real=4.29s Sys=0s ======================== 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 +- 1.001 keV + Total energy deposit in absorber per event = 1.047 MeV +- 995.3 eV - -----> Mean dE/dx = 2.212 MeV/cm (2.353 MeV*cm2/g) + -----> Mean dE/dx = 2.209 MeV/cm (2.351 MeV*cm2/g) From formulas : - restricted dEdx = 1.754 MeV/cm (1.866 MeV*cm2/g) - full dEdx = 2.266 MeV/cm (2.41 MeV*cm2/g) + restricted dEdx = 1.753 MeV/cm (1.865 MeV*cm2/g) + full dEdx = 2.265 MeV/cm (2.409 MeV*cm2/g) - Leakage : primary = 95.13 MeV +- 1.349 keV secondaries = 26.48 keV +- 708.7 eV + Leakage : primary = 95.12 MeV +- 2.34 keV secondaries = 31.84 keV +- 2.85 keV Energy balance : edep + eleak = 96.2 MeV - Total track length (charged) in absorber per event = 5.171 mm +- 3.774 um - Total track length (neutral) in absorber per event = 18 um +- 1.949 um + Total track length (charged) in absorber per event = 5.171 mm +- 3.76 um + Total track length (neutral) in absorber per event = 16.92 um +- 1.878 um - Number of steps (charged) in absorber per event = 12.49 +- 0.0002748 - Number of steps (neutral) in absorber per event = 0.00978 +- 0.0002748 + Number of steps (charged) in absorber per event = 12.47 +- 0.0002742 + Number of steps (neutral) in absorber per event = 0.0091 +- 0.0002742 - Number of secondaries per event : Gammas = 0.00934 electrons = 4.036 positrons = 0 + Number of secondaries per event : Gammas = 0.0087 electrons = 4.042 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 % @@ -1273,13 +1318,13 @@ Run Summary Number of events with at least 1 particle reflected (same charge as primary) = 0 % MultipleScattering: - rms proj angle of transmit primary particle = 7.358 mrad (central part only) + rms proj angle of transmit primary particle = 7.339 mrad (central part only) computed theta0 (Highland formula) = 7.636 mrad - central part defined as +- 22.91 mrad Tail ratio = 1.263 % + central part defined as +- 22.91 mrad Tail ratio = 1.328 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 520975728, 173516767 + Current couple of seeds = 1456042948, 789190412 ---------------------------------------- # /run/setCut 1 mm @@ -1294,7 +1339,8 @@ Run Summary /run/beamOn 50000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -1339,6 +1385,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -1359,12 +1412,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1410,7 +1470,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1427,7 +1487,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1457,7 +1517,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1483,7 +1543,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1509,7 +1569,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1536,7 +1596,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1563,7 +1623,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1589,7 +1649,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1651,7 +1711,7 @@ Index : 4 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 520975728, 173516767 + Current couple of seeds = 1456042948, 789190412 ---------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -1661,21 +1721,21 @@ Index : 4 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 50000 - User=2.03s Real=2.04s Sys=0s + User=1.22s Real=1.23s Sys=0s ======================== 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 = 4.586 MeV +- 160.5 keV + Total energy deposit in absorber per event = 5.055 MeV +- 308.4 keV - -----> Mean dE/dx = 5.73 MeV/cm (2.122 MeV*cm2/g) + -----> Mean dE/dx = 6.316 MeV/cm (2.339 MeV*cm2/g) From formulas : restricted dEdx = 4.024 MeV/cm (1.49 MeV*cm2/g) full dEdx = 6.049 MeV/cm (2.24 MeV*cm2/g) - Leakage : primary = 174.7 GeV +- 160.5 keV secondaries = 0 eV +- 0 eV + Leakage : primary = 174.7 GeV +- 308.4 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 @@ -1684,7 +1744,7 @@ Run Summary Number of steps (charged) in absorber per event = 1.268 +- 0 Number of steps (neutral) in absorber per event = 0 +- 0 - Number of secondaries per event : Gammas = 0 electrons = 0.2684 positrons = 0.00044 + Number of secondaries per event : Gammas = 0 electrons = 0.2684 positrons = 0.00068 Number of events with the primary particle transmitted = 100 % Number of events with at least 1 particle transmitted (same charge as primary) = 100 % @@ -1693,13 +1753,13 @@ 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.02051 mrad (central part only) + rms proj angle of transmit primary particle = 0.02058 mrad (central part only) computed theta0 (Highland formula) = 0.02111 mrad - central part defined as +- 0.06333 mrad Tail ratio = 1.275 % + central part defined as +- 0.06333 mrad Tail ratio = 1.361 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 55690841, 327137749 + Current couple of seeds = 633959986, 2121034842 ---------------------------------------- # /testem/det/setAbsMat Iron @@ -1710,7 +1770,8 @@ Run Summary /run/beamOn 50000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -1755,6 +1816,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -1775,12 +1843,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1826,7 +1901,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1843,7 +1918,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1873,7 +1948,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1899,7 +1974,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1925,7 +2000,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1952,7 +2027,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1979,7 +2054,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2005,7 +2080,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2072,7 +2147,7 @@ Index : 5 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 55690841, 327137749 + Current couple of seeds = 633959986, 2121034842 ---------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -2082,30 +2157,30 @@ Index : 5 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 50000 - User=16.48s Real=16.49s Sys=0s + User=15.66s Real=15.78s Sys=0s ======================== 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.181 GeV +- 15.55 MeV + Total energy deposit in absorber per event = 2.141 GeV +- 14.12 MeV - -----> Mean dE/dx = 21.81 MeV/cm (2.771 MeV*cm2/g) + -----> Mean dE/dx = 21.41 MeV/cm (2.72 MeV*cm2/g) From formulas : restricted dEdx = 11.22 MeV/cm (1.425 MeV*cm2/g) full dEdx = 21.6 MeV/cm (2.745 MeV*cm2/g) - Leakage : primary = 97.82 GeV +- 15.56 MeV secondaries = 0 eV +- 0 eV + Leakage : primary = 97.86 GeV +- 14.14 MeV secondaries = 0 eV +- 0 eV Energy balance : edep + eleak = 100 GeV - Total track length (charged) in absorber per event = 100 cm +- 11.91 um + Total track length (charged) in absorber per event = 100 cm +- 15.45 um Total track length (neutral) in absorber per event = 0 fm +- 0 fm - Number of steps (charged) in absorber per event = 47.35 +- 0.000488 + Number of steps (charged) in absorber per event = 47.32 +- 0.0005559 Number of steps (neutral) in absorber per event = 0 +- 0 - Number of secondaries per event : Gammas = 0.0484 electrons = 46.3 positrons = 1.259 + Number of secondaries per event : Gammas = 0.0492 electrons = 46.27 positrons = 1.265 Number of events with the primary particle transmitted = 100 % Number of events with at least 1 particle transmitted (same charge as primary) = 100 % @@ -2114,18 +2189,18 @@ 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.175 mrad (central part only) + rms proj angle of transmit primary particle = 1.177 mrad (central part only) computed theta0 (Highland formula) = 1.182 mrad - central part defined as +- 3.545 mrad Tail ratio = 0.565 % + central part defined as +- 3.545 mrad Tail ratio = 0.576 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 802472938, 1435645152 + Current couple of seeds = 575340167, 1846066678 ---------------------------------------- # 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.054 MB +Dynamic pools deleted: 9 / Total memory freed: 0.057 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm5/geant3/README b/examples/extended/electromagnetic/TestEm5/geant3/README deleted file mode 100644 index 0b31ca6aaa..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/README +++ /dev/null @@ -1,48 +0,0 @@ - - testem5 is the geant3 equivalent of TestEm5 - - % cd geant3 - % gmakeB to make an executable (Batch version) - % gmakeT to make an executable (inTeractive version) - - To execute: - - % cd geant3 - % $G4SYSTEM/testem5.xb (for batch) or testem5.xt (for interactive) - - The program will ask: - G3 > gives the filename of the data cards to be read: - - myMacro.dat (myMacro.dat is the equivalent of the G4 myMacro.mac) - - data cards - ---------- - Most of the data cards used in xxxx.dat are standard data cards of GEANT3, - but some of them are defined in testem5: - - KEY VARIABLE/type Short description - - FILE fileName (character) fileName of the histos - (the FILE data card should be the - first, with the format A4,A2,A25) - - ABSO MATABS (integer) mat.number of the absorber - XABSOR (real) X thickness of the absorber - YZABSO (real) YZ size of the absorber - - KILL kill (logical) do not track the secondary particles - - STMA stma (real) control STEMAX - - histograms - ---------- - The list of built-in histograms is identical to TestEm5.cc - (see G4 README or histo.F) - - One can control the binning of the histograms with the data card: - *HISTO id1 nbBins valMin valMax valUnit - *HISTO id2 nbBins valMin valMax valUnit - ... etc ........... - - valMin and ValMax are given in the desired unit, whose numerical value must - be specified in valUnit. Remember that Geant3 defaults are: GeV, cm, rad. diff --git a/examples/extended/electromagnetic/TestEm5/geant3/anthony.dat b/examples/extended/electromagnetic/TestEm5/geant3/anthony.dat deleted file mode 100644 index 454f848f67..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/anthony.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE anthony.hbook -LIST -ABSOR 22 (aluminium) 0.53 (thicknX) 10.0 (sizeYZ) 0. (field) -C ABSOR 28 (lead) 0.015 (thicknX) 10.0 (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -KINE 3 (electron) 25.0 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 20 (idh) 80 (nbins) 1.e-4 (Emin) 1. (Emax) 1. (GeV) -SWIT 0 (draw) -DEBUG 2 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/berger.dat b/examples/extended/electromagnetic/TestEm5/geant3/berger.dat deleted file mode 100644 index 2d313427ab..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/berger.dat +++ /dev/null @@ -1,19 +0,0 @@ -FILE berger.hbook -LIST -ABSOR 23 (silicon) 61.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 23 (silicon) 105.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 23 (silicon) 191.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 23 (silicon) 530.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 23 (silicon) 1.e-1 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 23 (silicon) 3.e-1 (thicknX) 1.0 (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -KINE 3 (electron) 0.001 (Ekine) 90.0 (theta) 0.0 (phi) -*HISTO 1 (idh) 55 (nbins) 0. (Emin) 1. (Emax) 1.e-3 (MeV) -SWIT 0 (draw) -DEBUG 1 1 100000 -TRIG 1000000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat b/examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat deleted file mode 100644 index 528399119b..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE bichsel.hbook -LIST -ABSOR 22 (aluminium) 5.0741e-4 (thicknX) 1. (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -KINE 14 (proton) 766.e-6 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 100 (nbins) 0. (tetmin) 9. (tetmax) 1.74533e-2 (deg) -*HISTO 13 (idh) 100 (nbins) -9. (tetmin) +9. (tetmax) 1.74533e-2 (deg) -KILL TRUE -SWIT 0 (draw) -DEBUG 1 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/gmakeB b/examples/extended/electromagnetic/TestEm5/geant3/gmakeB deleted file mode 100755 index 5bdb5622bb..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/gmakeB +++ /dev/null @@ -1,32 +0,0 @@ -# -# @(#) Script to build a Batch geant executable -# -set name=testem5 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F - -# -# Link -# -echo 'linking geant3+cernlib libraries ...' -# -hepf77 $extnam -g -o $name.xb *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xb -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm5/geant3/gmakeT b/examples/extended/electromagnetic/TestEm5/geant3/gmakeT deleted file mode 100755 index b4bed7d9d9..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/gmakeT +++ /dev/null @@ -1,31 +0,0 @@ -# -# @(#) Script to build an inTeractive geant executable -# -set name=testem5 - -set extnam=" " -if ($G4SYSTEM == AIX-AFS) set extnam=-qextname -# -mkdir $G4SYSTEM -cd $G4SYSTEM -# -# fortran compilation -# -hepf77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F -# -# Link -# -echo 'linking geant3+cernlib libraries...' -# -hepf77 $extnam -g -o $name.xt *.o \ - `cernlib geant321 pawlib graflib packlib mathlib kernlib` -# -# -chmod +x $name.xt -# -# cleanup -# -rm -f *.o -echo 'done' -exit - diff --git a/examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat b/examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat deleted file mode 100644 index beb4bf6310..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE gottsch.hbook -LIST -ABSOR 22 (aluminium) 800.e-4 (thicknX) 1. (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -KINE 14 (proton) 0.1586 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 100 (nbins) 0. (tetmin) 0.6 (tetmax) 1.74533e-2 (deg) -*HISTO 13 (idh) 100 (nbins) -0.6 (tetmin) +0.6 (tetmax) 1.74533e-2 (deg) -KILL TRUE -SWIT 0 (draw) -DEBUG 1 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/hanson.dat b/examples/extended/electromagnetic/TestEm5/geant3/hanson.dat deleted file mode 100644 index 9d88f25039..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/hanson.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE hanson.hbook -LIST -ABSOR 27 (gold) 9.658e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 27 (gold) 19.296e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -KINE 3 (electron) 0.01570 (Ekine) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 100 (nbins) 0. (tetmin) 10. (tetmax) 1.74533e-2 (deg) -C *HISTO 12 (idh) 60 (nbins) 0. (tetmin) 30. (tetmax) 1.74533e-2 (deg) -SWIT 0 (draw) -DEBUG 1 1 100000 -TRIG 1000000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc deleted file mode 100644 index 40ec15119b..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc +++ /dev/null @@ -1,6 +0,0 @@ - COMMON/GEOMAT/MATWLD,XWORLD,YZWORL,FieldW, - + MATABS,XABSOR,YZABSO,FieldA, - + XPOSAB,X1ABSO,X2ABSO, - + XVERT ,YVERT ,ZVERT - - COMMON/TRAMED/deem,stma,stmi diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc deleted file mode 100644 index dae70d0c7e..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc +++ /dev/null @@ -1,8 +0,0 @@ - CHARACTER*25 fileName - COMMON/HISTO1/fileName - - COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit - - PARAMETER (MaxHist = 50) - LOGICAL histo - COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc deleted file mode 100644 index b5a35f85f6..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc +++ /dev/null @@ -1,14 +0,0 @@ - - COMMON/ENERGY/edep,sedep,sedep2 - - COMMON/NBSTEP/stpch,sstpch,sstpch2, - + stpne,sstpne,sstpne2 - - COMMON/TRKLEN/trkch,strkch,strkch2, - + trkne,strkne,strkne2 - - logical kill - COMMON/SECOND/ngamma,nelect,nposit,kill - - COMMON/TRANSM/nbtransm(2),itransmi, - + nbreflec(2),ireflect diff --git a/examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat b/examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat deleted file mode 100644 index 8b9b4754c1..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE kulchi.hbook -LIST -ABSOR 22 (aluminium) 98.5185e-4 (thicknX) 1. (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -KINE 3 (electron) 0.00225 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 100 (nbins) 0. (tetmin) 25. (tetmax) 1.74533e-2 (deg) -*HISTO 13 (idh) 100 (nbins) -25. (tetmin) +25. (tetmax) 1.74533e-2 (deg) -SWIT 0 (draw) -DEBUG 1 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/shen1.dat b/examples/extended/electromagnetic/TestEm5/geant3/shen1.dat deleted file mode 100644 index a323253f50..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/shen1.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE shen1.hbook -LIST -ABSOR 22 (aluminium) 0.4005 (thicknX) 1.0 (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -KINE 14 (proton) 69.068 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 100 (nbins) 0. (tetmin) 0.01 (tetmax) 1.74533e-2 (deg) -KILL TRUE -SWIT 0 (draw) -DEBUG 1 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/shen2.dat b/examples/extended/electromagnetic/TestEm5/geant3/shen2.dat deleted file mode 100644 index 93436f6f89..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/shen2.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE shen2.hbook -LIST -ABSOR 22 (aluminium) 8.004e-1 (thicknX) 1. (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -KINE 14 (proton) 174.664 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 100 (nbins) 0. (tetmin) 0.004 (tetmax) 1.74533e-2 (deg) -*HISTO 13 (idh) 100 (nbins) -0.004 (tetmin) +0.004 (tetmax) 1.74533e-2 (deg) -KILL TRUE -SWIT 0 (draw) -DEBUG 1 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F deleted file mode 100644 index abe29f1568..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F +++ /dev/null @@ -1,11 +0,0 @@ - - SUBROUTINE FFUSER(ikey) -* -* The routine is called when a *key card is read -* - CHARACTER*4 keyw -* - call UHTOC(ikey,4,keyw,4) - if (keyw.eq.'HIST') call uhinit -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/grun.F b/examples/extended/electromagnetic/TestEm5/geant3/src/grun.F deleted file mode 100644 index b52820ca56..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/grun.F +++ /dev/null @@ -1,63 +0,0 @@ - - SUBROUTINE GRUN -*. -*. ****************************************************************** -*. * * -*. * Steering routine to process all the events * -*. * * -*. * ==>Called by : , main program * -*. * Author R.Brun ********* * -*. * * -*. ****************************************************************** -*. - -#include "geant321/gcbank.inc" -#include "geant321/gcunit.inc" -#include "geant321/gcflag.inc" -#include "geant321/gctime.inc" - - SAVE IFIRST - DATA IFIRST/0/ -*. -*. ------------------------------------------------------------------ -*. -* Keep starting time -* - IF(IFIRST.EQ.0)THEN - IFIRST=1 - CALL TIMEL(TIMINT) - ENDIF -* - 10 IF(IEVENT.LT.NEVENT) THEN - IEVENT=IEVENT+1 -* -* Initialises event partition -* - CALL GTRIGI -* -* Process one event (trigger) -* - CALL GTRIG -* -* Clear event partition -* - CALL GTRIGC -* - IF(IEORUN.EQ.0) THEN -* -* Check time left -* - go to 10 - IF(ITIME.LE.0)GO TO 10 - IF(MOD(IEVENT,ITIME).NE.0)GO TO 10 - CALL TIMEL(TIMNOW) - IF(TIMNOW.GT.TIMEND)GO TO 10 - WRITE(CHMAIL,10000)TIMEND - CALL GMAIL(0,2) - IEORUN = 1 - ENDIF - ENDIF -* -10000 FORMAT(5X,'***** THE JOB STOPS NOW BECAUSE THE TIME LEFT IS LESS', - +' THAN ',F8.3,' SECONDS *****') - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F deleted file mode 100644 index b605f768fd..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F +++ /dev/null @@ -1,50 +0,0 @@ - - SUBROUTINE GUKINE -* -* Generates Kinematics for primary track -* -* Data card Kine : Itype Ekine theta phi rbeam -* -* rbeam : size of the random beam extension in fraction of 0.5*calorYZ -* -#include "geant321/gcbank.inc" -#include "geant321/gcflag.inc" -#include "geant321/gconst.inc" -#include "geant321/gckine.inc" -* -#include "geomate.inc" -#include "runinfo.inc" -* - DIMENSION VERTEX(3),PLAB(3) - dimension rndm(2) -* -* random in YZ ? - if ((pkine(4).lt.0.).or.(pkine(4).gt.1.)) pkine(4) = 0. - rbeam = pkine(4)*0.5*YZABSO - call GRNDM (rndm,2) -* - VERTEX(1)=XVERT - VERTEX(2)=YVERT + (2*rndm(1)-1.)*rbeam - VERTEX(3)=ZVERT + (2*rndm(2)-1.)*rbeam -* - CALL GSVERT(VERTEX,0,0,0,0,NVERT) -* - JPA = LQ(JPART-IKINE) - XMASS = Q(JPA+7) - PMOM = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) - THETA = PKINE(2)*DEGRAD - PHI = PKINE(3)*DEGRAD -C - PLAB(1)=PMOM*SIN(THETA)*COS(PHI) - PLAB(2)=PMOM*SIN(THETA)*SIN(PHI) - PLAB(3)=PMOM*COS(THETA) -* -* store the charge of primary particle in a free location - pkine(10) = Q(JPA+8) -C - CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) -* -* *** Kinematics debug - IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F deleted file mode 100644 index 29c7548155..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F +++ /dev/null @@ -1,55 +0,0 @@ - - SUBROUTINE GUOUT -* -* called at end of event -* -#include "geant321/gcflag.inc" -* -#include "runinfo.inc" -#include "histo.inc" -* -* *** energy in absorber - if (histo(1)) call hfill (1,edep/histUnit(1),0.,1.) - sedep = sedep + edep - sedep2 = sedep2 + edep**2 -* -* *** number of steps - sstpch = sstpch + stpch - sstpch2 = sstpch2 + stpch**2 -* - sstpne = sstpne + stpne - sstpne2 = sstpne2 + stpne**2 -* -* *** track length - strkch = strkch + trkch - strkch2 = strkch2 + trkch**2 -* - strkne = strkne + trkne - strkne2 = strkne2 + trkne**2 -* -* *** transmission, reflection counters - if (itransmi.eq.1) then - nbtransm(1) = nbtransm(1) + 1 - else if (itransmi.eq.2) then - nbtransm(1) = nbtransm(1) + 1 - nbtransm(2) = nbtransm(2) + 1 - endif -* - if (ireflect.eq.1) then - nbreflec(1) = nbreflec(1) + 1 - else if (ireflect.eq.2) then - nbreflec(1) = nbreflec(1) + 1 - nbreflec(2) = nbreflec(2) + 1 - endif -* -#ifndef batch -* -* *** drawing -* - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'TestEm5',0.) - CALL GDSHOW (3) - CALL GDXYZ (0) - END IF -#endif - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F deleted file mode 100644 index 370e09de33..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F +++ /dev/null @@ -1,58 +0,0 @@ - - SUBROUTINE GUSTEP -* -#include "geant321/gcflag.inc" -#include "geant321/gckine.inc" -#include "geant321/gcking.inc" -#include "geant321/gconst.inc" -#include "geant321/gctmed.inc" -#include "geant321/gctrak.inc" -* -#include "runinfo.inc" -#include "histo.inc" -* -* -* *** Debug event and store tracks for drawing - IF (IDEBUG.NE.0) CALL GPCXYZ - IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ - IF (ISWIT(1).EQ.2) CALL GSXYZ -* -* *** collect informations in the absorber only -* - if (numed.ne.1) return -* -* energy deposit - edep = edep + destep -* -* number of steps and total track length - if (charge.ne.0.) then - stpch = stpch + 1. - trkch = trkch + step - else - stpne = stpne + 1. - trkne = trkne + step - endif -* -* manage secondaries - if (ngkine.gt.0) then - do k = 1,ngkine - energy = gkin(4,k) - id = gkin(5,k) - if (id.eq.1) then - ngamma = ngamma + 1 - if (histo(3)) call hfill(3,log10(1000*energy),0.,1.) - else if (id.eq.2) then - nposit = nposit + 1 - energy = energy - emass - if (histo(2)) call hfill(2,energy/histUnit(2),0.,1.) - else if (id.eq.3) then - nelect = nelect + 1 - energy = energy - emass - if (histo(2)) call hfill(2,energy/histUnit(2),0.,1.) - endif - enddo -* keep or kill all secondaries - if (.not.kill) call gsking(0) - endif -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F deleted file mode 100644 index 353b77de34..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F +++ /dev/null @@ -1,89 +0,0 @@ - - SUBROUTINE GUTRAK -* -* User routine to control tracking of one track -* Called by : GTREVE -* -#include "geant321/gckine.inc" -#include "geant321/gconst.inc" -#include "geant321/gctrak.inc" -* -#include "geomate.inc" -#include "runinfo.inc" -#include "histo.inc" -* - logical transmit, reflect, charged, neutral -* -* *** beginning of the track -* - charged = (charge.ne.0.) - neutral = .not.charged -* - kflag = 0 - if (charge.eq.pkine(10)) kflag = 1 - if ((itra.eq.1).and.(istak.eq.0)) kflag = 2 -* -* *** perform tracking -* - CALL GTRACK -* -* *** end of the track -* - transmit = (vect(1).ge. 0.49*xworld) - reflect = (vect(1).le.-0.49*xworld) -* - if (transmit) itransmi = max(itransmi,kflag) - if (reflect) ireflect = max(ireflect,kflag) -* -* *** histograms -* - id = 0 -* -* energy spectrum at exit -* - if (transmit.and.charged) id = 10 - if (transmit.and.neutral) id = 20 - if (reflect .and.charged) id = 30 - if (reflect .and.neutral) id = 40 - if (id.ne.0.and.histo(id)) then - call hfill (id,gekin/histUnit(id),0.,1.) - endif -* -* space angle distribution at exit -* - if (transmit.and.charged) id = 12 - if (transmit.and.neutral) id = 22 - if (reflect .and.charged) id = 32 - if (reflect .and.neutral) id = 42 - if (id.ne.0.and.histo(id)) then - unit = histUnit(id) - theta = acos(abs(vect(4))) - dteta = binWidth(id)*unit - dOmega = twopi*sin(theta)*dteta - weight = 0. - if (dOmega.gt.(1./big)) weight = 1./dOmega - call hfill (id,theta/unit,0.,weight*unit*unit) - endif -* -* projected angle distribution at exit -* - if (transmit.and.charged) id = 13 - if (transmit.and.neutral) id = 23 - if (reflect .and.charged) id = 33 - if (reflect .and.neutral) id = 43 - if (id.ne.0.and.histo(id)) then - thety = atan(vect(5)/abs(vect(4))) - thetz = atan(vect(6)/abs(vect(4))) - call hfill (id,thety/histUnit(id),0.,1.) - call hfill (id,thetz/histUnit(id),0.,1.) - endif -* -* projected position at exit -* - if (transmit.and.charged) id = 14 - if (id.ne.0.and.histo(id)) then - call hfill (id,vect(2)/histUnit(id),0.,1.) - call hfill (id,vect(3)/histUnit(id),0.,1.) - endif -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F deleted file mode 100644 index 71b3a1c155..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F +++ /dev/null @@ -1,33 +0,0 @@ - - SUBROUTINE GUTREV -* -* -* User routine to control tracking of one event -* Called by : GTRIG -* -#include "runinfo.inc" -* -* *** initialisation event by event -* -* energy deposit in absorber - edep = 0. -* -* number of steps in absorber - stpch = 0. - stpne = 0. -* -* track length in absorber - trkch = 0. - trkne = 0. -* -* transmission, reflection flag - itransmi = 0 - ireflect = 0 -* -* *** perform the tracking of the event -* - CALL GTREVE -* -* *** the 'end of event' has been done in GUOUT -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/main.F b/examples/extended/electromagnetic/TestEm5/geant3/src/main.F deleted file mode 100644 index a4a325c761..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/main.F +++ /dev/null @@ -1,64 +0,0 @@ - -#ifdef batch - - PROGRAM main - - PARAMETER (NG=200000,NH=10000) - COMMON/GCBANK/Q(NG) - COMMON/PAWC/H(NH) -C ALLOCATE MEMORY FOR ZEBRA/HBOOK -C - CALL GZEBRA(NG) - CALL HLIMIT(-NH) -C - CALL HPLINT(0) -C -C INITIALISATION -C - CALL UGINIT -C -C PROCESSING -C - CALL GRUN -C -C TERMINATION -C - CALL UGLAST -C - STOP - END - -#else - - PROGRAM main -* -* GEANT main program. To link with the MOTIF user interface -* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas -* the routine GPAW(NWGEAN,NWPAW) gives access to the basic -* graphics version. -* - PARAMETER (NWGEAN=3000000, NWPAW=1000000) - COMMON/GCBANK/GEANT(NWGEAN) - COMMON/PAWC /PAW (NWPAW) -* -* - CALL GPAW (NWGEAN,NWPAW) -* - END -* - SUBROUTINE qnext - END -* - SUBROUTINE czopen - END -* - SUBROUTINE cztcp - END -* - SUBROUTINE czclos - END -* - SUBROUTINE czputa - END - -#endif diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F deleted file mode 100644 index 161791a601..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F +++ /dev/null @@ -1,104 +0,0 @@ - - SUBROUTINE UGEOM -* -#include "geomate.inc" -* - DIMENSION AWAT(2),ZWAT(2),WWAT(2) - DIMENSION AAIR(2),ZAIR(2),WAIR(2) - DIMENSION PALL(3),PVOL(3) -C -C COMPOUND/MIXTURE PARAMETERS -C - DATA AWAT/1.01,16.00/ - DATA ZWAT/1.,8./ - DATA WWAT/2.,1./ - DATA AAIR/14.01,16.00/ - DATA ZAIR/7.,8./ - DATA WAIR/0.7,0.3/ -C -C DEFINE MATERIALS -C - CALL GSMATE(21,'BERYLLIUM',9.010,4.,1.848,35.30,0.,0,0) - CALL GSMATE(22,'ALUMINIUM',26.98,13.,2.70,8.900,0.,0,0) - CALL GSMATE(23,'SILICON',28.09,14.,2.33,9.36,45.49,0,0) - CALL GSMATE(24,'LIQUID ARGON',39.95,18.,1.4,14.,83.71,0,0) - CALL GSMATE(25,'IRON',55.85,26.,7.87,1.760,0.,0,0) - CALL GSMATE(26,'COPPER',63.54,29.,8.96,1.430,0.,0,0) - CALL GSMATE(27,'GOLD',196.967,79.,19.32,0.33,0.,0,0) - CALL GSMATE(28,'LEAD',207.190,82.,11.35,0.560,0.,0,0) - CALL GSMATE(31,'XenonGas',131.29,54.,5.858e-3,1447.8,0.,0,0) - CALL GSMATE(32,'Tungsten',183.85,74.,19.30,0.35,0.,0,0) -C - CALL GSMIXT(29,'WATER',AWAT,ZWAT,1.00,-2,WWAT) - CALL GSMIXT(30,'AIR',AAIR,ZAIR,1.205E-3,+2,WAIR) -C -C DEFINE MEDIA -C - IFIELD=0 - if (FieldW.ne.0.) IFIELD=3 - FIELDM=10*FieldW -* - TMAXFD=10. - STEMAX=1.E+10 - DEEMAX=0.20 - EPSIL=0.0001 - STMIN=0.0010 -C - CALL GSTMED(99,'WORLD',MATWLD,0,IFIELD, - * FIELDM,TMAXFD,STEMAX,DEEMAX,EPSIL,STMIN,0,0) -C - - IFIELD=0 - if (FieldA.ne.0.) IFIELD=3 - FIELDM=10*FieldA -* - DEEMAX=DEEM - STMIN =STMI - STEMAX=STMA - CALL GSTMED(1,'ABSORBER',MATABS,0,IFIELD, - * FIELDM,TMAXFD,STEMAX,DEEMAX,EPSIL,STMIN,0,0) -C -C -C DEFINE VOLUMES (WORLD+ABSORBER) -* - if(XWORLD*YZWORL.le.0.) then - XWORLD=1.5*XABSOR - YZWORL=1.2*YZABSO - endif -* - PALL(1)=0.5*XWORLD - PALL(2)=0.5*YZWORL - PALL(3)=0.5*YZWORL - CALL GSVOLU('worl','BOX ',99,PALL,3,IVOL) -C - PVOL(1)=0.5*XABSOR - PVOL(2)=0.5*YZABSO - PVOL(3)=0.5*YZABSO - CALL GSVOLU('abso','BOX ', 1,PVOL,3,IVOL) -C -C BUILD GEOMETRY -C - CALL GSPOS('abso',1,'worl',XPOSAB,0.,0.,0,'ONLY') -* - X1ABSO = XPOSAB - 0.5*XABSOR - X2ABSO = XPOSAB + 0.5*XABSOR -* -* *** Close geometry banks. (mandatory system routine) - CALL GGCLOS -* -* -* *** dessin - CALL GSATT ('*','SEEN',1) -* - DO IX = 1,3 - CALL GDOPEN (IX) - SCALE = 18./max(XWORLD,YZWORL) - PAXIS = 0. - SAXIS = 0.1*max(XWORLD,YZWORL) - CALL GDRAWC ('worl',IX,0.,10.,9.3,SCALE,SCALE) -CCC CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) - CALL GDSCAL (10., 0.3) - CALL GDCLOS - END DO -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F deleted file mode 100644 index fb679e8286..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F +++ /dev/null @@ -1,134 +0,0 @@ - - SUBROUTINE UGINIT -* -#include "geomate.inc" -#include "runinfo.inc" -#include "histo.inc" - - CHARACTER*25 filnam - CHARACTER*4 key - CHARACTER*2 spaces -C -C INITIALIZE GEANT STRUCTURES -C - CALL GINIT -* -* default values (materials,sizes,tracking parameters) -* - matabs = 23 - Xabsor = 1. - YZabso = 2. - FieldA = 0. -* - matwld = 30 - Xworld = 0. - YZworl = 0. - FieldW = 0. -* - xposab = 0. -* - xvert = -1000. - yvert = 0. - zvert = 0. -* - deem = 0.2 - stmi = 0.001 - stma = 1.e+10 - kill = .false. -* -* histograms - do ih = 1,MaxHist - histo(ih) = .false. - enddo -* -* *** Define data cards -* -* geometry - CALL FFKEY('WORLD',matwld,4,'mixed') - CALL FFKEY('ABSOR',matabs,4,'mixed') - CALL FFKEY('XPOS' ,xposab,1,'real') - CALL FFKEY('VERT' ,xvert ,3,'real') -* -* histograms - CALL FFKEY('HISTO',idhist,5,'MIXED') -* -* tracking parameters - CALL FFKEY('DEEM',deem, 1,'REAL') - CALL FFKEY('STMA',stma, 1,'REAL') - CALL FFKEY('STMI',stmi, 1,'REAL') -* - CALL FFKEY('KILL',kill, 1,'LOGICAL') -* -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'testem5.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') -* -* filename should be 1st data card ! - fileName = 'testem5.paw' - READ(5,98)key,spaces,fileName -98 FORMAT(A4,A2,A25) -* - CALL GFFGO -* - write(6,99) fileName -99 FORMAT(/,15x,'histogram file --> Name: ',A25) -C -C INITIALIZE ZEBRA STRUCTURES -C - CALL GZINIT -C -C DEFINE STANDARD PARTICLES AND MATERIALS -C - CALL GPART - CALL GMATE -* - CALL GDINIT -C -C DEFINE GEOMETRY -C - CALL UGEOM -C -C COMPUTE CROSS SECTIONS/ENERGY LOSSES -C - CALL GPHYSI -C -C PRINT MATERIALS,MEDIA,VOLUMES -C - CALL GPRINT('MATE',0) - CALL GPRINT('TMED',0) - CALL GPRINT('VOLU',0) -* -* global initialisation for the run -* -* energy - sedep = 0. - sedep2 = 0. -* -* number of steps - sstpch = 0. - sstpch2 = 0. - sstpne = 0. - sstpne2 = 0. -* -* track length - strkch = 0. - strkch2 = 0. - strkne = 0. - strkne2 = 0. -* -* number of secondaries - ngamma = 0 - nelect = 0 - nposit = 0 -* -* transmission, reflection counters - nbtransm(1) = 0 - nbtransm(2) = 0 - nbreflec(1) = 0 - nbreflec(2) = 0 -* - if (xvert.le.-1000.) xvert = -0.5*Xworld -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F deleted file mode 100644 index 1bc5fe4685..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F +++ /dev/null @@ -1,113 +0,0 @@ - - SUBROUTINE UGLAST -* -#include "geant321/gcflag.inc" -* -#include "runinfo.inc" -#include "histo.inc" -* - CHARACTER*4 unitm,unitr - DIMENSION transmit(2),reflect(2) -* - CALL GLAST -* - IF(ievent.le.0) return -* - PRINT 749 - PRINT 750,ievent -* - totevent = float(ievent) -* -* energy deposit - fmean = sedep/totevent - rms2 = sedep2/totevent-fmean**2 - rms = 0. - if (rms2.gt.0.) rms = sqrt(rms2/totevent) -* - call gevkev (fmean,Emean,unitm) - call gevkev (rms ,Erms ,unitr) - print 752, Emean,unitm,Erms,unitr -* -* track length (charged) - fmean = strkch/totevent - rms2 = strkch2/totevent-fmean**2 - rms = 0. - if (rms2.gt.0.) rms = sqrt(rms2/totevent) - print 753, fmean,rms -* -* track length (neutral) - fmean = strkne/totevent - rms2 = strkne2/totevent-fmean**2 - rms = 0. - if (rms2.gt.0.) rms = sqrt(rms2/totevent) - print 754, fmean,rms -* -* number of steps (charged) - fmean = sstpch/totevent - rms2 = sstpch2/totevent-fmean**2 - rms = 0. - if (rms2.gt.0.) rms = sqrt(rms2/totevent) - print 755, fmean,rms -* -* number of steps (neutral) - fmean = sstpne/totevent - rms2 = sstpne2/totevent-fmean**2 - rms = 0. - if (rms2.gt.0.) rms = sqrt(rms2/totevent) - print 756, fmean,rms -* -* number of secondaries - gamma = ngamma/totevent - elect = nelect/totevent - posit = nposit/totevent - print 757, gamma,elect,posit -* -* transmission & reflection coefficients - transmit(1) = 100.*nbtransm(1)/totevent - transmit(2) = 100.*nbtransm(2)/totevent - reflect (1) = 100.*nbreflec(1)/totevent - reflect (1) = 100.*nbreflec(2)/totevent - print 761, transmit(2) - print 762, transmit(1) - print 763, reflect (2) - print 764, reflect (1) -* - print 749 -* -* -* *** histograms -* - call HPLEND - call HRPUT(0,fileName,'N') -* -* *** formats -* - 749 FORMAT(/ ,80(1H=),/) - 750 FORMAT(' Number of events = ', I7) -* - 752 FORMAT(/,' Total energy deposit in absorber per event = ', - + F8.3,A4,' +- ',F6.2,A4) -* - 753 FORMAT(/,' Total track length (charged) in absorber per event = ', - + F8.4,' cm +- ',F8.4, ' cm') - 754 FORMAT( ' Total track length (neutral) in absorber per event = ', - + F8.4,' cm +- ',F8.4, ' cm') -* - 755 FORMAT(/,' Number of steps (charged) in absorber per event = ', - + F7.3,' +- ',F7.3) - 756 FORMAT( ' Number of steps (neutral) in absorber per event = ', - + F7.3,' +- ',F7.3) -* - 757 FORMAT(/,' Number of secondaries per event : ', - + 'gammas = ',F8.3, '; electrons = ',F8.3,'; positrons =',F8.3) -* - 761 FORMAT(/,' Nb of events with the primary particle transmitted = ', - + F6.2, ' %') - 762 FORMAT( ' Nb of events with at least 1 particle transmitted ', - + '(same charge as primary) = ',F6.2, ' %') - 763 FORMAT(/,' Nb of events with the primary particle reflected = ', - + F6.2, ' %') - 764 FORMAT( ' Nb of events with at least 1 particle reflected ', - + '(same charge as primary) = ',F6.2, ' %') -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F deleted file mode 100644 index 31a365ab87..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F +++ /dev/null @@ -1,52 +0,0 @@ - - SUBROUTINE UHINIT -* -* -#include "histo.inc" -* - CHARACTER*50 title(50) -* - data title / - 1 'energy deposit in absorber', - 2 'energy of charged secondaries at creation', - 3 'energy of gammas at creation (log10(ekin/MeV))', - C 'dummy','dummy','dummy','dummy','dummy','dummy', - + '(transmit, charged) : kinetic energy at exit', - 1 '(transmit, charged) : energy fluence dE(MeV)/dOmega', - 2 '(transmit, charged) : space angle dN/dOmega', - 3 '(transmit, charged) : projected angle at exit', - 4 '(transmit, charged) : projected position at exit', - 5 '(transmit, charged) : radius at exit', - C 'dummy','dummy','dummy','dummy', - + '(transmit, neutral) : kinetic energy at exit', - 1 '(transmit, neutral) : energy fluence dE(MeV)/dOmega', - 2 '(transmit, neutral) : space angle dN/dOmega', - 3 '(transmit, neutral) : projected angle at exit', - C 'dummy','dummy','dummy','dummy','dummy','dummy', - + '(reflect , charged) : kinetic energy at exit', - 1 '(reflect , charged) : energy fluence dE(MeV)/dOmega', - 2 '(reflect , charged) : space angle dN/dOmega', - 3 '(reflect , charged) : projected angle at exit', - C 'dummy','dummy','dummy','dummy','dummy','dummy', - + '(reflect , neutral) : kinetic energy at exit', - 1 '(reflect , neutral) : energy fluence dE(MeV)/dOmega', - 2 '(reflect , neutral) : space angle dN/dOmega', - 3 '(reflect , neutral) : projected angle at exit', - C 'dummy','dummy','dummy','dummy','dummy','dummy','dummy' / -* - if (histo(idhist)) call hdelet(idhist) -* - vmin = valmin - vmax = valmax - if (idhist.eq.3) then - vmin = log10(1000*valmin) - vmax = log10(1000*valmax) - endif - call hbook1(idhist,title(idhist),nbBins,vmin,vmax,0.) -* - histo (idhist) = .true. - binWidth(idhist) = (valmax-valmin)/nbBins - if (valunit.le.0.) valunit = 1. - histUnit(idhist) = valunit -* - END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/testem5.dat b/examples/extended/electromagnetic/TestEm5/geant3/testem5.dat deleted file mode 100644 index 486a132b18..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/testem5.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE testem5.hbook -LIST -ABSOR 23 (silicon) 20.5e-4 (thicknX) 0.1 (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -KINE 8 (pion) 5.0 (Ekine) 90.0 (theta) 0.0 (phi) -*HISTO 1 (idh) 100 (nbins) 0. (Emin) 50. (Emax) 1.e-6 (keV) -KILL FALSE -SWIT 0 (draw) -DEBUG 2 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/tramu.dat b/examples/extended/electromagnetic/TestEm5/geant3/tramu.dat deleted file mode 100644 index a7d1bfd263..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/tramu.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE tramu.hbook -LIST -ABSOR 25 (iron) 300. (thicknX) 300. (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*21.0e-6 (bcute/m) 2*1.3e-3 (dcute/m) 10.e-3 (ppcutm) -KINE 5 (muon) 1000. (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 10 (idh) 80 (nbins) 920. (Emin) 1000. (Emax) 1. (GeV) -KILL TRUE -SWIT 0 (draw) -DEBUG 1 1 1000 -TRIG 10000 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/vincour.dat b/examples/extended/electromagnetic/TestEm5/geant3/vincour.dat deleted file mode 100644 index f970c6be1a..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/vincour.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE vincour.hbook -LIST -ABSOR 23 (silicon) 50.0e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -C ABSOR 23 (silicon) 92.6e-4 (thicknX) 1.0 (sizeYZ) 0. (field) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -KINE 14 (proton) 0.00656 (Ekin) 90.0 (theta) 0.0 (phi) -*HISTO 12 (idh) 60 (nbins) 0. (tetmin) 6. (tetmax) 1.74533e-2 (deg) -KILL TRUE -SWIT 0 (draw) -DEBUG 1 1 10000 -TRIG 100000 -END diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh index 832f5f5406..dc9617e635 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm5/include/PhysicsList.hh /// \brief Definition of the PhysicsList class // -// $Id: PhysicsList.hh 82340 2014-06-16 14:13:44Z gcosmo $ +// $Id: PhysicsList.hh 94973 2016-01-12 10:13:56Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -62,6 +62,7 @@ private: G4String fEmName; G4VPhysicsConstructor* fEmPhysicsList; + G4VPhysicsConstructor* fHadPhysicsList; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/plotHisto.C b/examples/extended/electromagnetic/TestEm5/plotHisto.C index 3f56675a00..956142827a 100644 --- a/examples/extended/electromagnetic/TestEm5/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm5/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("athr.root"); + TFile f("athr.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("h1"); diff --git a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc index adb7c804dc..4b93385ef8 100644 --- a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm5/src/EventAction.cc /// \brief Implementation of the EventAction class // -// $Id: EventAction.cc 76464 2013-11-11 10:22:56Z gcosmo $ +// $Id: EventAction.cc 95802 2016-02-25 11:00:43Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -81,8 +81,9 @@ void EventAction::EndOfEventAction(const G4Event*) run->CountTransmit (fTransmitFlag); run->CountReflect (fReflectFlag); - - G4AnalysisManager::Instance()->FillH1(1,fEnergyDeposit); + + if (fEnergyDeposit > 0.) + G4AnalysisManager::Instance()->FillH1(1,fEnergyDeposit); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc index 4e89341131..b7538754e6 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc 85279 2014-10-27 09:19:21Z gcosmo $ +// $Id: PhysListEmStandard.cc 96400 2016-04-12 07:26:33Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,19 +58,27 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" +#include "G4BuilderType.hh" #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetMscStepLimitType(fUseSafetyPlus); + SetPhysicsType(bElectromagnetic); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -170,23 +178,6 @@ void PhysListEmStandard::ConstructProcess() } } - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(10*eV); //default 100 eV - emOptions.SetMaxEnergy(10*TeV); //default 100 TeV - emOptions.SetDEDXBinning(12*10); //default=12*7 - emOptions.SetLambdaBinning(12*10); //default=12*7 - - //multiple coulomb scattering - // - emOptions.SetMscStepLimitation(fUseSafetyPlus); //default=fUseSafety // Deexcitation // diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandardSSM.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandardSSM.cc index 21f3a6f80d..93ce990af5 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandardSSM.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandardSSM.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm5/src/PhysListEmStandardSSM.cc /// \brief Implementation of the PhysListEmStandardSSM class // -// $Id: PhysListEmStandardSSM.cc 91972 2015-08-12 13:48:40Z gcosmo $ +// $Id: PhysListEmStandardSSM.cc 96400 2016-04-12 07:26:33Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,8 +57,6 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" - #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -152,9 +150,6 @@ void PhysListEmStandardSSM::ConstructProcess() pmanager->AddDiscreteProcess(new G4CoulombScattering); } } - // scattering - G4EmProcessOptions emOptions; - emOptions.SetPolarAngleLimit(0.0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc index 4920df24d7..bbb11c7cf1 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm5/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 90970 2015-06-12 08:14:00Z gcosmo $ +// $Id: PhysicsList.cc 94973 2016-01-12 10:13:56Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,6 +50,8 @@ #include "G4EmPenelopePhysics.hh" #include "G4EmLowEPPhysics.hh" +#include "G4HadronElasticPhysics.hh" + #include "G4Decay.hh" #include "StepMax.hh" @@ -74,7 +76,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() : G4VModularPhysicsList(), - fMessenger(0),fEmPhysicsList(0) + fHadPhysicsList(nullptr) { fMessenger = new PhysicsListMessenger(this); SetVerboseLevel(1); @@ -99,23 +101,23 @@ PhysicsList::~PhysicsList() void PhysicsList::ConstructParticle() { - G4BosonConstructor pBosonConstructor; - pBosonConstructor.ConstructParticle(); + G4BosonConstructor pBosonConstructor; + pBosonConstructor.ConstructParticle(); - G4LeptonConstructor pLeptonConstructor; - pLeptonConstructor.ConstructParticle(); + G4LeptonConstructor pLeptonConstructor; + pLeptonConstructor.ConstructParticle(); - G4MesonConstructor pMesonConstructor; - pMesonConstructor.ConstructParticle(); + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); - G4BaryonConstructor pBaryonConstructor; - pBaryonConstructor.ConstructParticle(); + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); - G4IonConstructor pIonConstructor; - pIonConstructor.ConstructParticle(); + G4IonConstructor pIonConstructor; + pIonConstructor.ConstructParticle(); - G4ShortLivedConstructor pShortLivedConstructor; - pShortLivedConstructor.ConstructParticle(); + G4ShortLivedConstructor sLivedConstructor; + sLivedConstructor.ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -124,6 +126,7 @@ void PhysicsList::ConstructProcess() { AddTransportation(); fEmPhysicsList->ConstructProcess(); + if(fHadPhysicsList) { fHadPhysicsList->ConstructProcess(); } AddDecay(); AddStepMax(); } @@ -162,13 +165,13 @@ void PhysicsList::AddStepMax() theParticleIterator->reset(); while ((*theParticleIterator)()){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); - if (stepMaxProcess->IsApplicable(*particle) && !particle->IsShortLived()) - { - pmanager ->AddDiscreteProcess(stepMaxProcess); - } + if (stepMaxProcess->IsApplicable(*particle) && !particle->IsShortLived()) + { + pmanager ->AddDiscreteProcess(stepMaxProcess); + } } } @@ -242,21 +245,24 @@ void PhysicsList::AddPhysicsList(const G4String& name) delete fEmPhysicsList; fEmPhysicsList = new G4EmStandardPhysicsGS(); - } else if (name == "empenelope"){ + } else if (name == "empenelope") { fEmName = name; delete fEmPhysicsList; fEmPhysicsList = new G4EmPenelopePhysics(); - } else if (name == "emlowenergy"){ + } else if (name == "emlowenergy") { fEmName = name; delete fEmPhysicsList; fEmPhysicsList = new G4EmLowEPPhysics(); - } else if (name == "emlivermore"){ + } else if (name == "emlivermore") { fEmName = name; delete fEmPhysicsList; fEmPhysicsList = new G4EmLivermorePhysics(); + } else if (name == "had_elastic" && !fHadPhysicsList) { + fHadPhysicsList = new G4HadronElasticPhysics(); + } else { G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" diff --git a/examples/extended/electromagnetic/TestEm6/History b/examples/extended/electromagnetic/TestEm6/History index 1827faa6c7..569ce05614 100644 --- a/examples/extended/electromagnetic/TestEm6/History +++ b/examples/extended/electromagnetic/TestEm6/History @@ -1,4 +1,4 @@ -$Id: History 93739 2015-10-30 11:04:09Z gcosmo $ +$Id: History 94839 2015-12-10 16:19:10Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10-12-15 V.Ivant (testem6-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 + 28-10-15 D.Sawkey (testem6-V10-01-00) - update physics description in READMEs - add more standard EM physics builders diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out index e73aa38fc6..cab9092eff 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.out +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -192,7 +192,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Run terminated. Run Summary Number of events processed : 5 - User=0s Real=0s Sys=0s + User=0s Real=0.01s Sys=0s Number of process calls ---> GammaToMuPair : 5... write Root file : testem6_0.root - done diff --git a/examples/extended/electromagnetic/TestEm6/plotHisto.C b/examples/extended/electromagnetic/TestEm6/plotHisto.C index 0b3057e6ee..0e4d7bb14f 100644 --- a/examples/extended/electromagnetic/TestEm6/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm6/plotHisto.C @@ -3,24 +3,24 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("testem6.root"); + TFile f("testem6.root"); TCanvas* c1 = new TCanvas("c1", " "); - TH1D* hist1 = (TH1D*)f.Get("1"); + TH1D* hist1 = (TH1D*)f.Get("h1"); hist1->Draw("HIST"); - TH1D* hist2 = (TH1D*)f.Get("2"); + TH1D* hist2 = (TH1D*)f.Get("h2"); hist2->Draw("HIST"); - TH1D* hist3 = (TH1D*)f.Get("3"); + TH1D* hist3 = (TH1D*)f.Get("h3"); hist3->Draw("HIST"); - TH1D* hist4 = (TH1D*)f.Get("4"); + TH1D* hist4 = (TH1D*)f.Get("h4"); hist4->Draw("HIST"); - TH1D* hist5 = (TH1D*)f.Get("5"); + TH1D* hist5 = (TH1D*)f.Get("h5"); hist5->Draw("HIST"); - TH1D* hist6 = (TH1D*)f.Get("6"); + TH1D* hist6 = (TH1D*)f.Get("h6"); hist6->Draw("HIST"); } diff --git a/examples/extended/electromagnetic/TestEm6/plot_hist.C b/examples/extended/electromagnetic/TestEm6/plot_hist.C index 8a4b9234d7..5698f3ee54 100644 --- a/examples/extended/electromagnetic/TestEm6/plot_hist.C +++ b/examples/extended/electromagnetic/TestEm6/plot_hist.C @@ -13,25 +13,25 @@ //file open // - TFile f = TFile("testem6_0.root"); + TFile f("testem6_0.root"); //CrossSectionPerAtom // - TH1D* h7 = (TH1D*)f.Get("7"); //ee to MuMu - TH1D* h8 = (TH1D*)f.Get("8"); //ee to gammagamma - TH1D* h9 = (TH1D*)f.Get("9"); //ee to Hadrons - TH1D* h10 = (TH1D*)f.Get("10"); //ee to gammagamma(theory) - TH1D* h11 = (TH1D*)f.Get("11"); //ee to MuMu(theory) + TH1D* h7 = (TH1D*)f.Get("h7"); //ee to MuMu + TH1D* h8 = (TH1D*)f.Get("h8"); //ee to gammagamma + TH1D* h9 = (TH1D*)f.Get("h9"); //ee to Hadrons + TH1D* h10 = (TH1D*)f.Get("h10"); //ee to gammagamma(theory) + TH1D* h11 = (TH1D*)f.Get("h11"); //ee to MuMu(theory) //CrossSectionPerVolume // - TH1D* h12 = (TH1D*)f.Get("12"); //eBrem - TH1D* h13 = (TH1D*)f.Get("13"); //eIoni - TH1D* h14 = (TH1D*)f.Get("14"); //ee to MuMu - TH1D* h15 = (TH1D*)f.Get("15"); //ee to gammagamma - TH1D* h16 = (TH1D*)f.Get("16"); //ee to Hadrons + TH1D* h12 = (TH1D*)f.Get("h12"); //eBrem + TH1D* h13 = (TH1D*)f.Get("h13"); //eIoni + TH1D* h14 = (TH1D*)f.Get("h14"); //ee to MuMu + TH1D* h15 = (TH1D*)f.Get("h15"); //ee to gammagamma + TH1D* h16 = (TH1D*)f.Get("h16"); //ee to Hadrons //R ratio // - TH1D* h17 = (TH1D*)f.Get("17"); //R + TH1D* h17 = (TH1D*)f.Get("h17"); //R //c1 // diff --git a/examples/extended/electromagnetic/TestEm7/History b/examples/extended/electromagnetic/TestEm7/History index 85ddb905cf..f0087db85a 100644 --- a/examples/extended/electromagnetic/TestEm7/History +++ b/examples/extended/electromagnetic/TestEm7/History @@ -1,4 +1,4 @@ -$Id: History 93675 2015-10-28 09:59:23Z gcosmo $ +$Id: History 97596 2016-06-06 07:15:29Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +04-06-16 V.Ivant (testem7-V10-02-02) +- c2_functions - fixed nigtly problem + +20-05-16 V.Ivant (testem7-V10-02-01) +- c2_functions - fixed gcc6.1 warnings + +10-12-15 V.Ivant (testem7-V10-02-00) +- H.Burkhardt fixed root macro allowing to work both with root5 and 6 27-10-15 D.Sawkey (testem7-V10-01-01) - Add more standard EM physics lists, update README diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out index 6a3d8a522a..f7f17f027f 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.out +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -144,7 +144,8 @@ fTally 4: G4_WATER, mass = 8 mg size = 2 2 2 mm position = 5 0 0 cm /run/beamOn 10000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -189,6 +190,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -209,12 +217,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -260,7 +275,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -277,7 +292,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -307,7 +322,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -333,7 +348,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -359,7 +374,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -386,7 +401,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -413,7 +428,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -439,7 +454,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -502,28 +517,28 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=10.89s Real=10.9s Sys=0s + User=11.14s Real=11.17s Sys=0s The run consists of 10000 proton of 160 MeV through 20 cm of G4_WATER (density: 1 g/cm3 ) - Projected Range= 17.7392 cm rms= 2.69121 mm - Mean number of primary steps = 188.328 + Projected Range= 17.7448 cm rms= 1.96168 mm + Mean number of primary steps = 188.333 Total energy deposit= 160 MeV - niel energy deposit = 135.857 eV + niel energy deposit = 130.469 eV --------------------------------------------------------- Cumulated Doses : Edep Edep/Ebeam Dose - tally 1: 4.63326 GeV 0.289578 % 9.27912e-05 Gy - tally 2: 4.95016 GeV 0.309385 % 9.91379e-05 Gy - tally 3: 3.18207 GeV 0.198879 % 6.3728e-05 Gy - tally 4: 1.88568 GeV 0.117855 % 3.77649e-05 Gy + tally 1: 4.54313 GeV 0.283945 % 9.09862e-05 Gy + tally 2: 4.8886 GeV 0.305537 % 9.79049e-05 Gy + tally 3: 3.16164 GeV 0.197602 % 6.33188e-05 Gy + tally 4: 1.81934 GeV 0.113709 % 3.64362e-05 Gy --------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1955152346, 1588393546 + Current couple of seeds = 2122105768, 1898641630 ---------------------------------------- /gun/particle ion /gun/ion 6 12 6 @@ -554,34 +569,34 @@ Index : 1 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1955152346, 1588393546 + Current couple of seeds = 2122105768, 1898641630 ---------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=5.46s Real=5.47s Sys=0s + User=7.12s Real=7.12s Sys=0s The run consists of 1000 C12 of 3.5 GeV through 20 cm of G4_WATER (density: 1 g/cm3 ) - Projected Range= 16.494 cm rms= 471.926 um - Mean number of primary steps = 151.975 + Projected Range= 16.4911 cm rms= 474.028 um + Mean number of primary steps = 151.927 Total energy deposit= 3.49998 GeV - niel energy deposit = 256.861 keV + niel energy deposit = 257.578 keV --------------------------------------------------------- Cumulated Doses : Edep Edep/Ebeam Dose - tally 1: 11.6991 GeV 0.33426 % 0.0002343 Gy - tally 2: 13.694 GeV 0.391258 % 0.000274253 Gy - tally 3: 16.0189 GeV 0.457684 % 0.000320815 Gy - tally 4: 23.0881 GeV 0.65966 % 0.00046239 Gy + tally 1: 10.4588 GeV 0.298823 % 0.00020946 Gy + tally 2: 11.763 GeV 0.336087 % 0.000235581 Gy + tally 3: 14.8557 GeV 0.424448 % 0.000297518 Gy + tally 4: 21.5403 GeV 0.615438 % 0.000431393 Gy --------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1766556267, 747748478 + Current couple of seeds = 494755625, 1013901470 ---------------------------------------- /testem/det/setMat G4_Cu /testem/det/tallyNumber 0 @@ -693,7 +708,8 @@ Run Summary /run/beamOn 1000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -738,6 +754,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -758,12 +781,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -809,7 +839,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -826,7 +856,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -856,7 +886,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -882,7 +912,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -908,7 +938,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -935,7 +965,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -962,7 +992,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -988,7 +1018,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1041,24 +1071,24 @@ Index : 2 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1766556267, 747748478 + Current couple of seeds = 494755625, 1013901470 ---------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=2.51s Real=2.51s Sys=0s + User=3.23s Real=3.23s Sys=0s The run consists of 1000 kaon+ of 100 MeV through 20 cm of G4_Cu (density: 8.96 g/cm3 ) - Projected Range= 2.0763 cm rms= 1.21169 mm - Mean number of primary steps = 19.729 - Total energy deposit= 285.575 MeV + Projected Range= 2.07341 cm rms= 1.43287 mm + Mean number of primary steps = 19.737 + Total energy deposit= 284.233 MeV niel energy deposit = 0 eV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1486853749, 2111674286 + Current couple of seeds = 1898454358, 975746688 ---------------------------------------- /testem/det/setMat TechVacuum /testem/det/update @@ -1169,7 +1199,8 @@ Run Summary /run/beamOn 100 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -1214,6 +1245,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -1234,12 +1272,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1285,7 +1330,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1302,7 +1347,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1332,7 +1377,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1358,7 +1403,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1384,7 +1429,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1411,7 +1456,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1438,7 +1483,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1464,7 +1509,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1522,7 +1567,7 @@ Index : 3 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1486853749, 2111674286 + Current couple of seeds = 1898454358, 975746688 ---------------------------------------- --> Event 0 starts. Run terminated. @@ -1539,7 +1584,7 @@ Run Summary --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1576428294, 100928189 + Current couple of seeds = 781545948, 800930880 ---------------------------------------- /testem/det/setMat G4_WATER /testem/det/update @@ -1650,7 +1695,8 @@ Run Summary /run/beamOn 100 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -1695,6 +1741,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -1715,12 +1768,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1766,7 +1826,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1783,7 +1843,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1813,7 +1873,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1839,7 +1899,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1865,7 +1925,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1892,7 +1952,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1919,7 +1979,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -1945,7 +2005,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2003,7 +2063,7 @@ Index : 3 used in the geometry : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1576428294, 100928189 + Current couple of seeds = 781545948, 800930880 ---------------------------------------- --> Event 0 starts. Run terminated. @@ -2013,14 +2073,14 @@ Run Summary The run consists of 100 alpha of 100 MeV through 20 cm of G4_WATER (density: 1 g/cm3 ) - Projected Range= 6.44186 mm rms= 44.7851 um + Projected Range= 6.44842 mm rms= 44.998 um Mean number of primary steps = 36.58 Total energy deposit= 100 MeV - niel energy deposit = 11.0904 keV + niel energy deposit = 11.0503 keV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 133099189, 1546265308 + Current couple of seeds = 1455203752, 1668908729 ---------------------------------------- /testem/det/setMat G4_Si /gun/particle ion @@ -2030,7 +2090,8 @@ Run Summary /run/beamOn 10 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -2075,6 +2136,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -2095,12 +2163,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2146,7 +2221,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2163,7 +2238,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2193,7 +2268,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2219,7 +2294,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2245,7 +2320,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2272,7 +2347,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2299,7 +2374,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2325,7 +2400,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2388,24 +2463,24 @@ Index : 4 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 133099189, 1546265308 + Current couple of seeds = 1455203752, 1668908729 ---------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 10 - User=5.9s Real=5.94s Sys=0.02s + User=3.54s Real=3.59s Sys=0.02s The run consists of 10 Xe131 of 1.217 GeV through 20 cm of G4_Si (density: 2.33 g/cm3 ) - Projected Range= 85.8219 um rms= 281.584 nm - Mean number of primary steps = 29054.4 - Total energy deposit= 1.21692 GeV - niel energy deposit = 4.18873 MeV + Projected Range= 85.9315 um rms= 269.336 nm + Mean number of primary steps = 29099.5 + Total energy deposit= 1.21691 GeV + niel energy deposit = 4.27825 MeV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 215265953, 2010688246 + Current couple of seeds = 337181175, 1959593216 ---------------------------------------- /testem/det/setMat Water_1.05 /gun/particle proton @@ -2416,7 +2491,8 @@ Run Summary /run/beamOn 1000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -2461,6 +2537,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -2481,12 +2564,19 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 10 eV to 10 TeV in 240 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV msc: for proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2532,7 +2622,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for alpha SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2549,7 +2639,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for anti_proton SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2579,7 +2669,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0 ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV msc: for kaon+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2605,7 +2695,7 @@ hPairProd: for kaon+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for kaon- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2631,7 +2721,7 @@ hPairProd: for kaon- SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu+ SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2658,7 +2748,7 @@ muPairProd: for mu+ SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for mu- SubType= 10 - RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2685,7 +2775,7 @@ muPairProd: for mu- SubType= 4 muPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi+ SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2711,7 +2801,7 @@ hPairProd: for pi+ SubType= 4 hPairProd : Emin= 0 eV Emax= 10 TeV msc: for pi- SubType= 10 - RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV @@ -2781,24 +2871,24 @@ Index : 5 used in the geometry : Yes --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 215265953, 2010688246 + Current couple of seeds = 337181175, 1959593216 ---------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=1.66s Real=1.66s Sys=0s + User=1.4s Real=1.4s Sys=0s The run consists of 1000 proton of 160 MeV through 20 cm of Water_1.05 (density: 1.05 g/cm3 ) - Projected Range= 16.8858 cm rms= 1.79814 mm - Mean number of primary steps = 177.918 + Projected Range= 16.903 cm rms= 1.81402 mm + Mean number of primary steps = 178.095 Total energy deposit= 160 MeV - niel energy deposit = 100.432 eV + niel energy deposit = 112.506 eV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 834841025, 696851138 + Current couple of seeds = 1679961234, 485420330 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/electromagnetic/TestEm7/include/c2_function.hh b/examples/extended/electromagnetic/TestEm7/include/c2_function.hh index 701259a936..389a15f94d 100644 --- a/examples/extended/electromagnetic/TestEm7/include/c2_function.hh +++ b/examples/extended/electromagnetic/TestEm7/include/c2_function.hh @@ -25,23 +25,23 @@ // /** * \file electromagnetic/TestEm7/include/c2_function.hh - * \brief Provides the headers for the general c2_function algebra which supports + * \brief Provides the headers for the general c2_function algebra which * fast, flexible operations on piecewise-twice-differentiable functions * * \author Created by R. A. Weller and Marcus H. Mendenhall on 7/9/05. * \author Copyright 2005 __Vanderbilt University__. All rights reserved. * * \version c2_function.hh 490 2012-04-10 19:05:40Z marcus - * \see \ref c2_factory "Factory Functions" for information on constructing things in here + * \see \ref c2_factory "Factory Functions" for information on constructing */ // -// $Id: c2_function.hh 66587 2012-12-21 11:06:44Z ihrivnac $ +// $Id: c2_function.hh 97045 2016-05-23 09:49:44Z gcosmo $ #ifndef __has_c2_function_hh #define __has_c2_function_hh 1 -// MSVC does not automatically define numerical constants such as M_PI without this. +// MSVC does not automatically define numerical constants such as M_PI // this came from the msdn website, so it should be right... #ifdef _MSC_VER #define _USE_MATH_DEFINES @@ -59,7 +59,7 @@ #include #include #include -#include // fails under gcc-4.3 without this here, was ok in c2_function.cc before +#include // fails under gcc-4.3 without this here, was ok /// \brief the exception class for c2_function operations. class c2_exception : public std::exception { @@ -75,7 +75,7 @@ private: std::string info; }; -// put these forward references here, and with a bogus typename to make swig happy. +// put these forward references here, and with a bogus typename to make swig template class c2_composed_function_p; template class c2_sum_p; template class c2_diff_p; @@ -90,9 +90,12 @@ template class c2_ptr; \defgroup math_functions Mathemetical Functions \defgroup parametric_functions Parametric Families of Functions \defgroup interpolators Interpolating Functions - \defgroup containers Functions which are containers for, or functions of, other functions + \defgroup containers Functions which are containers for, or functions + of, other functions \defgroup factories Factory classes which reduce silly template typing - \defgroup transforms Classes which provide coordinate system transformations, wih derivatives + \defgroup transforms Classes which provide coordinate system + transformations, + \defgroup with derivatives */ /// \brief structure used to hold evaluated function data at a point. @@ -109,25 +112,31 @@ public: float_type yp; /// \brief the second derivative at \a x float_type ypp; - /// flag, filled in by c2_function::fill_fblock(), indicating the derivative is NaN of Inf + /// flag, filled in by c2_function::fill_fblock(), + /// indicating the derivative is NaN of Inf bool ypbad; - /// flag, filled in by c2_function::fill_fblock(), indicating the second derivative is NaN of Inf + /// is NaN of Inf bool yppbad; }; /** \brief the parent class for all c2_functions. \ingroup abstract_classes - c2_functions know their value, first, and second derivative at almost every point. - They can be efficiently combined with binary operators, via c2_binary_function, + c2_functions know their value, first, and second derivative at + almost every point. + They can be efficiently combined with binary operators, + via c2_binary_function, composed via c2_composed_function_, have their roots found via find_root(), and be adaptively integrated via partial_integrals() or integral(). - They also can carry information with them about how to find 'interesting' points on the function. - This information is set with set_sampling_grid() and extracted with get_sampling_grid(). + They also can carry information with them about how to find 'interesting' + points on the function. + This information is set with set_sampling_grid() and extracted with + get_sampling_grid(). Particularly important subclasses are the interpolating functions classes, - interpolating_function , lin_log_interpolating_function, log_lin_interpolating_function, + interpolating_function , lin_log_interpolating_function, + log_lin_interpolating_function, log_log_interpolating_function, and arrhenius_interpolating_function, as well as the template functions inverse_integrated_density_function(). @@ -149,26 +158,27 @@ public: public: /// \brief destructor - virtual ~c2_function() { - if(sampling_grid && !no_overwrite_grid) delete sampling_grid; - if(root_info) delete root_info; - if(owner_count) { - std::ostringstream outstr; - outstr << "attempt to delete an object with non-zero ownership in class "; - outstr << typeid(*this).name() << std::endl; - throw c2_exception(outstr.str().c_str()); - } - } + virtual ~c2_function() { + if(sampling_grid && !no_overwrite_grid) delete sampling_grid; + if(root_info) delete root_info; + if(owner_count) { + std::ostringstream outstr; + outstr << "attempt to delete an object with non-zero ownership in class"; + outstr << typeid(*this).name() << std::endl; + //throw c2_exception(outstr.str().c_str()); + } + } - /// \brief get the value and derivatives. - /// - /// There is required checking for null pointers on the derivatives, - /// and most implementations should operate faster if derivatives are not needed. - /// \param[in] x the point at which to evaluate the function - /// \param[out] yprime the first derivative (if pointer is non-null) - /// \param[out] yprime2 the second derivative (if pointer is non-null) - /// \return the value of the function - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) =0 ; // { return 0; }; + /// \brief get the value and derivatives. + /// + /// There is required checking for null pointers on the derivatives, + /// and most implementations should operate faster if derivatives are not + /// \param[in] x the point at which to evaluate the function + /// \param[out] yprime the first derivative (if pointer is non-null) + /// \param[out] yprime2 the second derivative (if pointer is non-null) + /// \return the value of the function + virtual float_type value_with_derivatives(float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) =0 ; /// \brief evaluate the function in the classic way, ignoring derivatives. /// \param x the point at which to evaluate @@ -182,1109 +192,1224 @@ public: /// \param[out] yprime the first derivative (if pointer is non-null) /// \param[out] yprime2 the second derivative (if pointer is non-null) /// \return the value of the function - inline float_type operator () (float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) + inline float_type operator () (float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) { return value_with_derivatives(x, yprime, yprime2); } - /// \brief solve f(x)==value very efficiently, with explicit knowledge of derivatives of the function - /// - /// find_root solves by iterated inverse quadratic extrapolation for a solution to f(x)=y. It - /// includes checks against bad convergence, so it should never be able to fail. Unlike typical - /// secant method or fancier Brent's method finders, this does not depend in any strong wasy on the - /// brackets, unless the finder has to resort to successive approximations to close in on a root. - /// Often, it is possible to make the brackets equal to the domain of the function, if there is - /// any clue as to where the root lies, as given by the parameter \a start. - /// \param lower_bracket the lower bound for the search - /// \param upper_bracket the upper bound for the search. Function sign must be - /// opposite to that at \a lower_bracket - /// \param start starting value for the search - /// \param value the value of the function being sought (solves f(x) = \a value) - /// \param[out] error If pointer is zero, errors raise exception. Otherwise, returns error here. - /// \param[out] final_yprime If pointer is not zero, return derivative of function at root - /// \param[out] final_yprime2 If pointer is not zero, return second derivative of function at root - /// \return the position of the root. - /// \see \ref rootfinder_subsec "Root finding sample" - float_type find_root(float_type lower_bracket, float_type upper_bracket, float_type start, - float_type value, int *error=0, - float_type *final_yprime=0, float_type *final_yprime2=0 ) const throw(c2_exception) ; // solve f(x)=value - - /// \brief for points in xgrid, adaptively return Integral[f(x),{x,xgrid[i],xgrid[i+1]}] and return in vector, along with sum - /// - /// partial_integrals uses a method with an error O(dx**10) with full information from the derivatives, - /// and falls back to lower order methods if informed of incomplete derivatives. - /// It uses exact midpoint splitting of the intervals for recursion, resulting in no recomputation of the function - /// during recursive descent at previously computed points. - /// \param xgrid points between which to evaluate definite integrals. - /// \param partials if non-NULL, a vector in which to receive the partial integrals. - /// It will automatically be sized apprpropriately, if provided, to contain \a n - 1 elements where \a n is the length of \a xgrid - /// \param abs_tol the absolute error bound for each segment - /// \param rel_tol the fractional error bound for each segment. - /// If the error is smaller than either the relative or absolute tolerance, the integration step is finished. - /// \param derivs number of derivatives to trust, which sets the order of the integrator. The order - /// is 3*\a derivs + 4. \a derivs can be 0, 1, or 2. - /// \param adapt if true, use recursive adaptation, otherwise do simple evaluation on the grid provided - /// with no error checking. - /// \param extrapolate if true, use simple Richardson extrapolation on the final 2 steps to reduce the error. - /// \return sum of partial integrals, which is the definite integral from the first value in \a xgrid to the last. - float_type partial_integrals(std::vector xgrid, std::vector *partials = 0, - float_type abs_tol=1e-12, float_type rel_tol=1e-12, int derivs=2, bool adapt=true, bool extrapolate=true) - const throw(c2_exception); + /// \brief solve f(x)==value very efficiently, with explicit knowledge + /// of derivatives of the function + /// + /// find_root solves by iterated inverse quadratic extrapolation + /// for a solution + /// to f(x)=y. It includes checks against bad convergence, so it should + /// never be + /// able to fail. Unlike typical secant method or fancier Brent's + /// method finders, + /// this does not depend in any strong wasy on the brackets, + /// unless the finder has + /// to resort to successive approximations to close in on a root. + /// Often, it is possible + /// to make the brackets equal to the domain of the function, if there is + /// any clue as to where the root lies, as given by the parameter \a start. + /// \param lower_bracket the lower bound for the search + /// \param upper_bracket the upper bound for the search. + /// Function sign must be + /// opposite to that at \a lower_bracket + /// \param start starting value for the search + /// \param value the value of the function being sought + /// (solves f(x) = \a value) + /// \param[out] error If pointer is zero, errors raise exception. + /// Otherwise, returns error here. + /// \param[out] final_yprime If pointer is not zero, + /// return derivative of function + /// at root + /// \param[out] final_yprime2 If pointer is not zero, + /// return second derivative of + /// function at root + /// \return the position of the root. + /// \see \ref rootfinder_subsec "Root finding sample" + float_type find_root(float_type lower_bracket, float_type upper_bracket, + float_type start, + float_type value, int *error=0, + float_type *final_yprime=0, + float_type *final_yprime2=0 ) const throw(c2_exception); + /// solve f(x)=value + /// partial_integrals uses a method with an error O(dx**10) with + /// full information from + /// the derivatives, and falls back to lower order methods + /// if informed of incomplete + /// derivatives. It uses exact midpoint splitting of the intervals + /// for recursion, + /// resulting in no recomputation of the function during recursive + /// descent at previously + /// computed points. + /// \param xgrid points between which to evaluate definite integrals. + /// \param partials if non-NULL, a vector in which to receive the + /// partial integrals. + /// It will automatically be sized apprpropriately, + /// if provided, to contain \a n - 1 + /// elements where \a n is the length of \a xgrid + /// \param abs_tol the absolute error bound for each segment + /// \param rel_tol the fractional error bound for each segment. + /// If the error is smaller than either the relative or absolute tolerance, + /// the integration step is finished. + /// \param derivs number of derivatives to trust, + /// which sets the order of the integrator. + /// The order is 3*\a derivs + 4. \a derivs can be 0, 1, or 2. + /// \param adapt if true, use recursive adaptation, + /// otherwise do simple evaluation on + /// the grid provided with no error checking. + /// \param extrapolate if true, use simple Richardson + /// extrapolation on the final 2 steps + /// to reduce the error. \return sum of partial integrals, + /// which is the definite integral + /// from the first value in \a xgrid to the last. + float_type partial_integrals(std::vector xgrid, + std::vector *partials = 0, + float_type abs_tol=1e-12, + float_type rel_tol=1e-12, + int derivs=2, bool adapt=true, + bool extrapolate=true) + const throw(c2_exception); - /// \brief a fully-automated integrator which uses the information provided by the get_sampling_grid() function - /// to figure out what to do. - /// - /// It returns the integral of the function over the domain requested - /// with error tolerances as specified. It is just a front-end to partial_integrals() - /// - /// \param amin lower bound of the domain for integration - /// \param amax upper bound of the domain for integration - /// \param partials if non-NULL, a vector in which to receive the partial integrals. - /// It will automatically be sized appropriately, if provided, to contain \a n - 1 elements where \a n is the length of \a xgrid - /// \param abs_tol the absolute error bound for each segment - /// \param rel_tol the fractional error bound for each segment. - /// If the error is smaller than either the relative or absolute tolerance, the integration step is finished. - /// \param derivs number of derivatives to trust, which sets the order of the integrator. The order - /// is 3*\a derivs + 4. \a derivs can be 0, 1, or 2. - /// \param adapt if true, use recursive adaptation, otherwise do simple evaluation on the grid provided - /// with no error checking. - /// \param extrapolate if true, use simple Richardson extrapolation on the final 2 steps to reduce the error. - /// \return sum of partial integrals, which is the definite integral from the first value in \a xgrid to the last. - float_type integral(float_type amin, float_type amax, std::vector *partials = 0, - float_type abs_tol=1e-12, float_type rel_tol=1e-12, int derivs=2, bool adapt=true, bool extrapolate=true) - const throw(c2_exception); + /// \brief a fully-automated integrator which uses the information + /// provided by the + /// get_sampling_grid() function to figure out what to do. + /// + /// It returns the integral of the function over the domain requested + /// with error tolerances as specified. It is just a front-end + /// to partial_integrals() + /// + /// \param amin lower bound of the domain for integration + /// \param amax upper bound of the domain for integration + /// \param partials if non-NULL, a vector in which to receive + /// the partial integrals. + /// It will automatically be sized appropriately, + /// if provided, to contain \a n - 1 + /// elements where \a n is the length of \a xgrid + /// \param abs_tol the absolute error bound for each segment + /// \param rel_tol the fractional error bound for each segment. + /// If the error is smaller than either the relative or absolute tolerance, + /// the integration + /// step is finished. + /// \param derivs number of derivatives to trust, which sets the + /// order of the integrator. + /// The order is 3*\a derivs + 4. \a derivs can be 0, 1, or 2. + /// \param adapt if true, use recursive adaptation, + /// otherwise do simple evaluation on + /// the grid provided with no error checking. + /// \param extrapolate if true, use simple Richardson + /// extrapolation on the final 2 steps + /// to reduce the error. \return sum of partial integrals, + /// which is the definite integral + /// from the first value in \a xgrid to the last. + float_type integral(float_type amin, float_type amax, + std::vector *partials = 0, + float_type abs_tol=1e-12, float_type rel_tol=1e-12, + int derivs=2, bool adapt=true, bool extrapolate=true) + const throw(c2_exception); - /// \brief create a c2_piecewise_function_p from c2_connector_function_p segments which - /// is a representation of the parent function to the specified accuracy, but maybe much cheaper to evaluate - /// - /// This method has three modes, depending on the \a derivs flag. - /// - /// If \a derivs is 2, - /// it computes a c2_piecewise_function_p representation of its parent function, which may be a much faster - /// function to use in codes if the parent function is expensive. If \a xvals and \a yvals are non-null, - /// it will also fill them in with the function values at each grid point the adaptive algorithm chooses. - /// - /// If \a derivs is 1, this does not create the connectors, - /// and returns an null pointer, but will fill in the \a xvals and \a yvals - /// vectors with values of the function at points such that the linear interpolation error between the points - /// is bounded by the tolerance values given. Because it uses derivative information from the function to manage the - /// error control, it is almost completely free of issues with missing periods of oscillatory functions, - /// even with no information provided in the sampling grid. - /// This is typically useful for sampling a function for plotting. - /// - /// If \a derivs is 0, this does something very like what it does if \a derivs = 1, but without derivatives. - /// Instead, to compute the intermediate value of the function for error control, it just uses - /// 3-point parabolic interpolation. This is useful amost exclusively for converting a non-c2_function, - /// with no derivatives, but wrapped in a c2_classic_function wrapper, into a table of values to seed an interpolating_function_p. - /// Note, however, that without derivatives, this is very susceptible to missing periods of oscillatory - /// functions, so it is important to set a sampling grid which isn't too much coarser than the typical oscillations. - /// - /// \note the \a sampling_grid of the returned function matches the \a sampling_grid of its parent. - /// \see \ref sample_function_for_plotting "Adaptive Sampling Examples" - /// \param amin lower bound of the domain for sampling - /// \param amax upper bound of the domain for sampling - /// \param abs_tol the absolute error bound for each segment - /// \param rel_tol the fractional error bound for each segment. - /// \param derivs if 0 or 1, return a useless function, but fill in the \a xvals and \a yvals vectors (if non-null). - /// Also, if 0 or 1, tolerances refer to linear interpolation, not high-order interpolation. - /// If 2, return a full piecewise collection of c2_connector_function_p segments. See discussion above. - /// \param [in,out] xvals vector of abscissas at which the function was actually sampled (if non-null) - /// \param [in,out] yvals vector of function values corresponding to \a xvals (if non-null) - /// \return a new, sampled representation, if \a derivs is 2. A null pointer if \a derivs is 0 or 1. - c2_piecewise_function_p *adaptively_sample(float_type amin, float_type amax, + /// \brief create a c2_piecewise_function_p from + /// c2_connector_function_p segments which + /// is a representation of the parent function to the specified accuracy, + /// but maybe much cheaper to evaluate + /// + /// This method has three modes, depending on the \a derivs flag. + /// + /// If \a derivs is 2, + /// it computes a c2_piecewise_function_p representation of its + /// parent function, + /// which may be a much faster + /// function to use in codes if the parent function is expensive. + /// If \a xvals + /// and \a yvals are non-null, + /// it will also fill them in with the function values at each grid point the + /// adaptive algorithm chooses. + /// + /// If \a derivs is 1, this does not create the connectors, + /// and returns an null pointer, but will fill in the \a xvals and \a yvals + /// vectors with values of the function at points such that the + /// linear interpolation + /// error between the points + /// is bounded by the tolerance values given. + /// Because it uses derivative information + /// from the function to manage the + /// error control, it is almost completely free of issues with + /// missing periods of oscillatory functions, + /// even with no information provided in the sampling grid. + /// This is typically useful for sampling a function for plotting. + /// + /// If \a derivs is 0, this does something very like what it does + /// if \a derivs = 1, + /// but without derivatives. + /// Instead, to compute the intermediate value of the function + /// for error control, + /// it just uses + /// 3-point parabolic interpolation. + /// This is useful amost exclusively for converting + /// a non-c2_function, + /// with no derivatives, but wrapped in a c2_classic_function wrapper, + /// into a table + /// of values to seed an interpolating_function_p. + /// Note, however, that without derivatives, this is very + /// susceptible to missing + /// periods of oscillatory + /// functions, so it is important to set a sampling grid + /// which isn't too much coarser + /// than the typical oscillations. + /// + /// \note the \a sampling_grid of the returned function matches the + /// \a sampling_grid of its parent. + /// \see \ref sample_function_for_plotting "Adaptive Sampling Examples" + /// \param amin lower bound of the domain for sampling + /// \param amax upper bound of the domain for sampling + /// \param abs_tol the absolute error bound for each segment + /// \param rel_tol the fractional error bound for each segment. + /// \param derivs if 0 or 1, return a useless function, + /// but fill in the \a xvals and + /// \a yvals vectors (if non-null). + /// Also, if 0 or 1, tolerances refer to linear interpolation, not high-order + /// interpolation. + /// If 2, return a full piecewise collection of + /// c2_connector_function_p segments. + /// See discussion above. + /// \param [in,out] xvals vector of abscissas at which the function + /// was actually + /// sampled (if non-null) + /// \param [in,out] yvals vector of function values corresponding to \a xvals + /// (if non-null) + /// \return a new, sampled representation, if \a derivs is 2. + /// A null pointer if \a derivs is 0 or 1. + c2_piecewise_function_p *adaptively_sample( + float_type amin, float_type amax, float_type abs_tol=1e-12, float_type rel_tol=1e-12, - int derivs=2, std::vector *xvals=0, std::vector *yvals=0) const throw(c2_exception); + int derivs=2, std::vector *xvals=0, + std::vector *yvals=0) const throw(c2_exception); - /// \brief return the lower bound of the domain for this function as set by set_domain() - inline float_type xmin() const { return fXMin; } - /// \brief return the upper bound of the domain for this function as set by set_domain() - inline float_type xmax() const { return fXMax; } - /// \brief set the domain for this function. - void set_domain(float_type amin, float_type amax) { fXMin=amin; fXMax=amax; } + inline float_type xmin() const { return fXMin; } + inline float_type xmax() const { return fXMax; } + void set_domain(float_type amin, float_type amax) { fXMin=amin; fXMax=amax; } - /// \brief this is a counter owned by the function but which can be used to monitor efficiency of algorithms. - /// - /// It is not maintained automatically in general! The root finder, integrator, and sampler do increment it. - /// \return number of evaluations logged since last reset. - size_t get_evaluations() const { return evaluations; } - /// \brief reset the counter - void reset_evaluations() const { evaluations=0; } // evaluations are 'invisible' to constant - /// \brief count evaluations - inline void increment_evaluations() const { evaluations++; } + /// and sampler do increment it. + /// \return number of evaluations logged since last reset. + size_t get_evaluations() const { return evaluations; } + /// \brief reset the counter + void reset_evaluations() const { evaluations=0; } + /// \brief count evaluations + inline void increment_evaluations() const { evaluations++; } - /// \brief check that a vector is monotonic, throw an exception if not, and return a flag if it is reversed - /// - /// \param data a vector of data points which are expected to be monotonic. - /// \param message an informative string to include in an exception if this throws c2_exception - /// \return true if in decreasing order, false if increasing - bool check_monotonicity(const std::vector &data, const char message[]) const throw(c2_exception); + /// \brief check that a vector is monotonic, throw an exception if not, + /// and return a flag if it is reversed + /// + /// \param data a vector of data points which are expected to be monotonic. + /// \param message an informative string to include in an exception if + /// this throws c2_exception + /// \return true if in decreasing order, false if increasing + bool check_monotonicity(const std::vector &data, + const char message[]) const throw(c2_exception); - /// \brief establish a grid of 'interesting' points on the function. - /// - /// The sampling grid describes a reasonable initial set of points to look at the function. - /// this should generally be set at a scale which is quite coarse, and sufficient for initializing - /// adaptive integration or possibly root bracketing. For sampling a function to build a new interpolating - /// function, one may want to refine this for accuracy. However, interpolating_functions themselves - /// return their original X grid by default, so refining the grid in this case might be a bad idea. - /// \param grid a vector of abscissas. The contents is copied into an internal vector, so the \a grid can be discarded after passingin. - virtual void set_sampling_grid(const std::vector &grid) throw(c2_exception); + /// \brief establish a grid of 'interesting' points on the function. + /// + /// The sampling grid describes a reasonable initial set of points + /// to look at the function. + /// this should generally be set at a scale which is quite coarse, + /// and sufficient for initializing + /// adaptive integration or possibly root bracketing. + /// For sampling a function to build a new + /// interpolating function, one may want to refine this for accuracy. + /// However, + /// interpolating_functions themselves return their original + /// X grid by default, so refining + /// the grid in this case might be a bad idea. + /// \param grid a vector of abscissas. + /// The contents is copied into an internal vector, + /// so the \a grid can be discarded after passingin. + virtual void set_sampling_grid(const std::vector &grid) + throw(c2_exception); - /// \brief get the sampling grid, which may be a null pointer - /// \return pointer to the sampling grid - std::vector *get_sampling_grid_pointer() const { return sampling_grid; } - - /// \brief return the grid of 'interesting' points along this function which lie in the region requested - /// - /// if a sampling grid is defined, work from there, otherwise return vector of (amin, amax) - /// \param amin the lower bound for which the function is to be sampled - /// \param amax the upper bound for which the function is to be sampled - /// \param [in,out] grid filled vector containing the samplng grid. - virtual void get_sampling_grid(float_type amin, float_type amax, std::vector &grid) const ; - - /// \brief clean up endpoints on a grid of points - /// \param[in,out] result the sampling grid with excessively closely space endpoints removed. - /// The grid is modified in place. - void preen_sampling_grid(std::vector *result) const; - /// \brief refine a grid by splitting each interval into more intervals - /// \param [in,out] grid the grid to refine in place - /// \param refinement the number of new steps for each old step - void refine_sampling_grid(std::vector &grid, size_t refinement) const; - - /// \brief create a new c2_function from this one which is normalized on the interval - /// \param amin lower bound of the domain for integration - /// \param amax upper bound of the domain for integration - /// \param norm the desired integral for the function over the region - /// \return a new c2_function with the desired \a norm. - c2_function &normalized_function(float_type amin, float_type amax, float_type norm=1.0) const throw(c2_exception); - /// \brief create a new c2_function from this one which is square-normalized on the interval - /// \param amin lower bound of the domain for integration - /// \param amax upper bound of the domain for integration - /// \param norm the desired integral for the function over the region - /// \return a new c2_function with the desired \a norm. - c2_function &square_normalized_function(float_type amin, float_type amax, float_type norm=1.0) const throw(c2_exception); - /// \brief create a new c2_function from this one which is square-normalized with the provided \a weight on the interval - /// \param amin lower bound of the domain for integration - /// \param amax upper bound of the domain for integration - /// \param weight a c2_function providing the weight - /// \param norm the desired integral for the function over the region - /// \return a new c2_function with the desired \a norm. - c2_function &square_normalized_function( - float_type amin, float_type amax, const c2_function &weight, float_type norm=1.0) - const throw(c2_exception); + /// \brief get the sampling grid, which may be a null pointer + /// \return pointer to the sampling grid + std::vector *get_sampling_grid_pointer() const { + return sampling_grid; } - /// \brief factory function to create a c2_sum_p from a regular algebraic expression. - /// \param rhs the right-hand term of the sum - /// \return a new c2_function - c2_sum_p &operator + (const c2_function &rhs) const - { return *new c2_sum_p(*this, rhs); } - /// \brief factory function to create a c2_diff_p from a regular algebraic expression. - /// \param rhs the right-hand term of the difference - /// \return a new c2_function - c2_diff_p &operator - (const c2_function &rhs) const - { return *new c2_diff_p(*this, rhs); } - /// \brief factory function to create a c2_product_p from a regular algebraic expression. - /// \param rhs the right-hand term of the product - /// \return a new c2_function - c2_product_p &operator * (const c2_function &rhs) const - { return *new c2_product_p(*this, rhs); } - /// \brief factory function to create a c2_ratio_p from a regular algebraic expression. - /// \param rhs the right-hand term of the ratio (the denominator) - /// \return a new c2_function - c2_ratio_p &operator / (const c2_function &rhs) const - { return *new c2_ratio_p(*this, rhs); } - /// \brief compose this function outside another. - /// \param inner the inner function - /// \return the composed function - /// \anchor compose_operator - c2_composed_function_p & operator ()(const c2_function &inner) const - { return *new c2_composed_function_p((*this), inner); } - - /// \brief Find out where a calculation ran into trouble, if it got a nan. - /// If the most recent computation did not return a nan, this is undefined. - /// \return \a x value of point at which something went wrong, if integrator (or otherwise) returned a nan. - float_type get_trouble_point() const { return bad_x_point; } + virtual void get_sampling_grid(float_type amin, float_type amax, + std::vector &grid) const ; - /// \brief increment our reference count. Destruction is only legal if the count is zero. - void claim_ownership() const { owner_count++; } - /// \brief decrement our reference count. Do not destroy at zero. - /// \return final owner count, to check whether object should disappear. - size_t release_ownership_for_return() const throw(c2_exception) { - if(!owner_count) { - std::ostringstream outstr; - outstr << "attempt to release ownership of an unowned function in class "; - outstr << typeid(*this).name() << std::endl; - throw c2_exception(outstr.str().c_str()); - } - owner_count--; - return owner_count; - } - /// \brief decrement our reference count. If the count reaches zero, destroy ourself. - void release_ownership() const throw(c2_exception) { - if(!release_ownership_for_return()) delete this; - } - /// \brief get the reference count, mostly for debugging - /// \return the count - size_t count_owners() const { return owner_count; } + /// The grid is modified in place. + void preen_sampling_grid(std::vector *result) const; + void refine_sampling_grid(std::vector &grid, + size_t refinement) const; + + /// \brief create a new c2_function from this one which + /// is normalized on the interval + /// \param amin lower bound of the domain for integration + /// \param amax upper bound of the domain for integration + /// \param norm the desired integral for the function over the region + /// \return a new c2_function with the desired \a norm. + c2_function &normalized_function( + float_type amin, + float_type amax, + float_type norm=1.0) const throw(c2_exception); + c2_function &square_normalized_function( + float_type amin, float_type amax, + float_type norm=1.0) + const throw(c2_exception); + /// \brief create a new c2_function from this one which is square-normalized + /// with the provided \a weight on the interval + /// \param amin lower bound of the domain for integration + /// \param amax upper bound of the domain for integration + /// \param weight a c2_function providing the weight + /// \param norm the desired integral for the function over the region + /// \return a new c2_function with the desired \a norm. + c2_function &square_normalized_function( + float_type amin, float_type amax, const c2_function &weight, + float_type norm=1.0) + const throw(c2_exception); + + /// \brief factory function to create a c2_sum_p from a regular + /// algebraic expression. + /// \param rhs the right-hand term of the sum + /// \return a new c2_function + c2_sum_p &operator + (const c2_function &rhs) const + { return *new c2_sum_p(*this, rhs); } + /// \brief factory function to create a c2_diff_p from a regular + /// algebraic expression. + /// \param rhs the right-hand term of the difference + /// \return a new c2_function + c2_diff_p &operator - (const c2_function &rhs) const + { return *new c2_diff_p(*this, rhs); } + /// \brief factory function to create a c2_product_p from a + /// regular algebraic expression. + /// \param rhs the right-hand term of the product + /// \return a new c2_function + c2_product_p &operator * + (const c2_function &rhs) const + { return *new c2_product_p(*this, rhs); } + c2_ratio_p &operator / (const c2_function &rhs) const + { return *new c2_ratio_p(*this, rhs); } + /// \brief compose this function outside another. + /// \param inner the inner function + /// \return the composed function + /// \anchor compose_operator + c2_composed_function_p & operator () + (const c2_function &inner) const + { return *new c2_composed_function_p((*this), inner); } + + /// \brief Find out where a calculation ran into trouble, if it got a nan. + /// If the most recent computation did not return a nan, this is undefined. + /// \return \a x value of point at which something went wrong, if integrator + /// (or otherwise) returned a nan. + float_type get_trouble_point() const { return bad_x_point; } + + /// \brief increment our reference count. + /// Destruction is only legal if the count is zero. + void claim_ownership() const { owner_count++; } + /// \brief decrement our reference count. Do not destroy at zero. + /// \return final owner count, to check whether object should disappear. + size_t release_ownership_for_return() const throw(c2_exception) { + if(!owner_count) { + std::ostringstream outstr; + outstr << "attempt to release ownership of an unowned function in class "; + outstr << typeid(*this).name() << std::endl; + throw c2_exception(outstr.str().c_str()); + } + owner_count--; + return owner_count; + } + void release_ownership() const throw(c2_exception) { + if(!release_ownership_for_return()) delete this; + } + /// \brief get the reference count, mostly for debugging + /// \return the count + size_t count_owners() const { return owner_count; } protected: - c2_function(const c2_function &src) : sampling_grid(0), - no_overwrite_grid(false), - fXMin(src.fXMin), fXMax(src.fXMax), root_info(0), owner_count(0) - {} // copy constructor only copies domain, and is only for internal use - c2_function() : - sampling_grid(0), no_overwrite_grid(0), - fXMin(-std::numeric_limits::max()), - fXMax(std::numeric_limits::max()), root_info(0), owner_count(0) - {} // prevent accidental naked construction (impossible any since this has pure virtual methods) + c2_function(const c2_function &src) + : sampling_grid(0), + no_overwrite_grid(false), + fXMin(src.fXMin), fXMax(src.fXMax), root_info(0), owner_count(0) + {} // copy constructor only copies domain, and is only for internal use + c2_function() : + sampling_grid(0), no_overwrite_grid(0), + fXMin(-std::numeric_limits::max()), + fXMax(std::numeric_limits::max()), root_info(0), owner_count(0) + {} + + virtual void set_sampling_grid_pointer(std::vector &grid) + { + if (sampling_grid && !no_overwrite_grid) delete sampling_grid; + sampling_grid=&grid; no_overwrite_grid=1; + } - // this should only be called very early on, by a constructor, before anyone else - // sets a sampling grid, or it will leak memory - virtual void set_sampling_grid_pointer(std::vector &grid) - { - if (sampling_grid && !no_overwrite_grid) delete sampling_grid; // grid was ours, lose it. - sampling_grid=&grid; no_overwrite_grid=1; - } + std::vector * sampling_grid; + bool no_overwrite_grid; - std::vector * sampling_grid; - bool no_overwrite_grid; - - float_type fXMin, fXMax; - mutable size_t evaluations; - /// \brief this point may be used to record where a calculation ran into trouble - mutable float_type bad_x_point; + float_type fXMin, fXMax; + mutable size_t evaluations; + /// \brief this point may be used to record where a calculation + /// ran into trouble + mutable float_type bad_x_point; public: - /// \brief fill in a c2_fblock... a shortcut for the integrator & sampler - /// \param [in,out] fb the block to fill in with information - inline void fill_fblock(c2_fblock &fb) const throw(c2_exception) - { - fb.y=value_with_derivatives(fb.x, &fb.yp, &fb.ypp); - fb.ypbad=c2_isnan(fb.yp) || !c2_isfinite(fb.yp); - fb.yppbad=c2_isnan(fb.ypp) || !c2_isfinite(fb.ypp); - increment_evaluations(); - } + /// \brief fill in a c2_fblock... a + /// shortcut for the integrator & sampler + /// \param [in,out] fb the block to fill in with information + inline void fill_fblock(c2_fblock &fb) const throw(c2_exception) + { + fb.y=value_with_derivatives(fb.x, &fb.yp, &fb.ypp); + fb.ypbad=c2_isnan(fb.yp) || !c2_isfinite(fb.yp); + fb.yppbad=c2_isnan(fb.ypp) || !c2_isfinite(fb.ypp); + increment_evaluations(); + } private: - /// \brief the data element for the internal recursion stack for the sampler and integrator - struct recur_item { - c2_fblock f1; size_t depth; - float_type previous_estimate, abs_tol, step_sum; - bool done; - size_t f0index, f2index; - }; + /// \brief the data element for the internal recursion stack for + /// the sampler and integrator + struct recur_item { + c2_fblock f1; size_t depth; + float_type previous_estimate, abs_tol, step_sum; + bool done; + size_t f0index, f2index; + }; - /// \brief structure used to pass information recursively in integrator. - /// - /// the \a abs_tol is scaled by a factor of two at each division. - /// Everything else is just passed down. - struct c2_integrate_recur { - c2_fblock *f0, *f1; - float_type abs_tol, rel_tol, eps_scale, extrap_coef, extrap2, dx_tolerance, abs_tol_min; - std::vector< recur_item > *rb_stack; - int derivs; - bool adapt, extrapolate, inited; - }; + /// \brief structure used to pass information recursively in integrator. + /// + /// the \a abs_tol is scaled by a factor of two at each division. + /// Everything else is just passed down. + struct c2_integrate_recur { + c2_fblock *f0, *f1; + float_type abs_tol, rel_tol, eps_scale, extrap_coef, extrap2, + dx_tolerance, abs_tol_min; + std::vector< recur_item > *rb_stack; + int derivs; + bool adapt, extrapolate, inited; + }; - /// \brief structure used to pass information recursively in sampler. - /// - struct c2_sample_recur { - c2_fblock *f0, *f1; - float_type abs_tol, rel_tol, dx_tolerance, abs_tol_min; - int derivs; - c2_piecewise_function_p *out; - std::vector *xvals, *yvals; - std::vector< recur_item > *rb_stack; - bool inited; - }; + /// \brief structure used to pass information recursively in sampler. + /// + struct c2_sample_recur { + c2_fblock *f0, *f1; + float_type abs_tol, rel_tol, dx_tolerance, abs_tol_min; + int derivs; + c2_piecewise_function_p *out; + std::vector *xvals, *yvals; + std::vector< recur_item > *rb_stack; + bool inited; + }; - /// \brief structure used to hold root bracketing information - /// - struct c2_root_info { - c2_fblock lower, upper; - bool inited; - }; + /// \brief structure used to hold root bracketing information + /// + struct c2_root_info { + c2_fblock lower, upper; + bool inited; + }; - /// \brief Carry out the recursive subdivision and integration. - /// - /// This passes information recursively through the \a recur block pointer - /// to allow very efficient recursion. - /// \param rb a pointer to the recur struct. - float_type integrate_step(struct c2_integrate_recur &rb) const throw(c2_exception); + /// \brief Carry out the recursive subdivision and integration. + /// + /// This passes information recursively through the \a recur block pointer + /// to allow very efficient recursion. + /// \param rb a pointer to the recur struct. + float_type integrate_step(struct c2_integrate_recur &rb) + const throw(c2_exception); - /// \brief Carry out the recursive subdivision for sampling. - /// - /// This passes information recursively through the \a recur block pointer - /// to allow very efficient recursion. - /// \param rb a pointer to the recur struct. - void sample_step(struct c2_sample_recur &rb) const throw(c2_exception); + /// \brief Carry out the recursive subdivision for sampling. + /// + /// This passes information recursively through the \a recur block pointer + /// to allow very efficient recursion. + /// \param rb a pointer to the recur struct. + void sample_step(struct c2_sample_recur &rb) const throw(c2_exception); - /// this carry a memory of the last root bracketing, - /// to avoid the necessity of evaluating the function on the brackets every time - /// if the brackets have not been changed. - /// it is declared as a pointer, since many c2_functions may never need one allocated - mutable struct c2_root_info *root_info; - - mutable size_t owner_count; + /// this carry a memory of the last root bracketing, + /// to avoid the necessity of evaluating the function on the + /// brackets every time + /// if the brackets have not been changed. + /// it is declared as a pointer, since many c2_functions may + /// never need one allocated + mutable struct c2_root_info *root_info; + + mutable size_t owner_count; }; -/// \brief a container into which any conventional c-style function can be dropped, +/// \brief a container into which any conventional c-style +/// function can be dropped, /// to create a degenerate c2_function without derivatives. /// Mostly useful for sampling into interpolating functions. /// construct a reference to this with c2_classic_function() /// \ingroup containers -/// The factory function c2_factory::classic_function() creates *new c2_classic_function_p() -template class c2_classic_function_p : public c2_function { +template class c2_classic_function_p + : public c2_function { public: - /// \brief construct the container - /// \param c_func a pointer to a conventional c-style function - c2_classic_function_p(const float_type (*c_func)(float_type)) : c2_function(), func(c_func) {} + /// \brief construct the container + /// \param c_func a pointer to a conventional c-style function + c2_classic_function_p(const float_type (*c_func)(float_type)) + : c2_function(), func(c_func) {} - /// \copydoc c2_function::value_with_derivatives - /// Uses the internal function pointer set by set_function(). - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { - if(!func) throw c2_exception("c2_classic_function called with null function"); - if(yprime) *yprime=0; - if(yprime2) *yprime2=0; - return func(x); - } - virtual ~c2_classic_function_p() { } + /// \copydoc c2_function::value_with_derivatives + /// Uses the internal function pointer set by set_function(). + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { + if(!func) + throw c2_exception("c2_classic_function called with null function"); + if(yprime) *yprime=0; + if(yprime2) *yprime2=0; + return func(x); + } + virtual ~c2_classic_function_p() { } protected: - /// \brief pointer to our function - const float_type (*func)(float_type); + /// \brief pointer to our function + const float_type (*func)(float_type); }; -/// \brief create a container for a c2_function which handles the reference counting. -/// \ingroup containers -/// It is useful as a smart container to hold a c2_function and keep the reference count correct. -/// The recommended way for a class to store a c2_function which is handed in from the outside -/// is for it to have a c2_ptr member into which the passed-in function is stored. -/// This way, when the class instance is deleted, it will automatically dereference any function +/// \brief create a container for a c2_function which handles the +/// reference counting. \ingroup containers +/// It is useful as a smart container to hold a c2_function and keep +/// the reference count correct. +/// The recommended way for a class to store a c2_function which is +/// handed in from the outside +/// is for it to have a c2_ptr member into which the passed-in +/// function is stored. +/// This way, when the class instance is deleted, +/// it will automatically dereference any function /// which it was handed. /// -/// This class contains a copy constructor and operator=, to make it fairly easy to make +/// This class contains a copy constructor and operator=, +/// to make it fairly easy to make /// a std::vector of these objects, and have it work as expected. template class c2_const_ptr { public: - /// \brief construct the container with no function - c2_const_ptr() : func(0) {} - /// \brief construct the container with a pre-defined function - /// \param f the function to store - c2_const_ptr(const c2_function &f) : func(0) - { this->set_function(&f); } - /// \brief copy constructor - /// \param src the container to copy - c2_const_ptr(const c2_const_ptr &src) : func(0) - { this->set_function(src.get_ptr()); } - /// \brief fill the container with a new function, or clear it with a null pointer - /// \param f the function to store, releasing any previously held function - void set_function(const c2_function *f) - { - if(func) func->release_ownership(); - func=f; - if(func) func->claim_ownership(); - } + /// \brief construct the container with no function + c2_const_ptr() : func(0) {} + /// \brief construct the container with a pre-defined function + /// \param f the function to store + c2_const_ptr(const c2_function &f) : func(0) + { this->set_function(&f); } + /// \brief copy constructor + /// \param src the container to copy + c2_const_ptr(const c2_const_ptr &src) : func(0) + { this->set_function(src.get_ptr()); } + void set_function(const c2_function *f) + { + if(func) func->release_ownership(); + func=f; + if(func) func->claim_ownership(); + } - /// \brief fill the container from another container - /// \param f the container to copy - const c2_const_ptr & operator =(const c2_const_ptr &f) - { this->set_function(f.get_ptr()); return f; } - /// \brief fill the container with a function - /// \param f the function - const c2_function & operator =(const c2_function &f) - { this->set_function(&f); return f; } - /// \brief release the function without destroying it, so it can be returned from a function - /// - /// This is usually the very last line of a function before the return statement, so that - /// any exceptions that happen during execution of the function will cause proper cleanup. - /// Once the function has been released from its container this way, it is an orhpaned object - /// until the caller claims it, so it could get lost if an exception happens. - void release_for_return() throw(c2_exception) - { - if(func) func->release_ownership_for_return(); - func=0; - } - /// \brief clear the function - /// - /// Any attempt to use this c2_plugin_function_p throws an exception if the saved function is cleared. - void unset_function(void) { this->set_function(0); } - /// \brief destructor - ~c2_const_ptr() { this->set_function(0); } + /// \brief fill the container from another container + /// \param f the container to copy + const c2_const_ptr & operator = + (const c2_const_ptr &f) + { this->set_function(f.get_ptr()); return f; } + /// \brief fill the container with a function + /// \param f the function + const c2_function & operator = + (const c2_function &f) + { this->set_function(&f); return f; } + /// \brief release the function without destroying it, + /// so it can be returned from a function + /// + /// This is usually the very last line of a function + /// before the return statement, so that + /// any exceptions that happen during execution of the + /// function will cause proper cleanup. + /// Once the function has been released from its container this way, + /// it is an orhpaned object + /// until the caller claims it, so it could get lost if an exception happens. + void release_for_return() throw(c2_exception) + { + if(func) func->release_ownership_for_return(); + func=0; + } + /// \brief clear the function + /// + /// Any attempt to use this c2_plugin_function_p throws an exception + /// if the saved + /// function is cleared. + void unset_function(void) { this->set_function(0); } + /// \brief destructor + ~c2_const_ptr() { this->set_function(0); } - /// \brief get a reference to our owned function - inline const c2_function &get() const throw(c2_exception) - { - if(!func) throw c2_exception("c2_ptr accessed uninitialized"); - return *func; - } - /// \brief get an unchecked pointer to our owned function - inline const c2_function *get_ptr() const { return func; } - /// \brief get a checked pointer to our owned function - inline const c2_function *operator -> () const - { return &get(); } - /// \brief check if we have a valid function - bool valid() const { return func != 0; } + /// \brief get a reference to our owned function + inline const c2_function &get() const throw(c2_exception) + { + if(!func) throw c2_exception("c2_ptr accessed uninitialized"); + return *func; + } + /// \brief get an unchecked pointer to our owned function + inline const c2_function *get_ptr() const { return func; } + /// \brief get a checked pointer to our owned function + inline const c2_function *operator -> () const + { return &get(); } + /// \brief check if we have a valid function + bool valid() const { return func != 0; } - /// \brief type coercion operator which lets us use a pointer as if it were a const c2_function - operator const c2_function& () const { return this->get(); } + /// \brief type coercion operator which lets us use a pointer as if it were + /// a const c2_function + operator const c2_function& () const { return this->get(); } - /// \brief convenience operator to make us look like a function - /// \param x the value at which to evaluate the contained function - /// \return the evaluated function - /// \note If you using this repeatedly, do const c2_function &func=ptr; - /// and use func(x). Calling this operator wastes some time, since it checks the validity of the - /// pointer every time. - float_type operator()(float_type x) const throw(c2_exception) { return get()(x); } - /// \brief convenience operator to make us look like a function - /// \param x the value at which to evaluate the contained function - /// \param yprime the derivative - /// \param yprime2 the second derivative - /// \return the evaluated function - /// \note If you using this repeatedly, do const c2_function &func=ptr; - /// and use func(x). Calling this operator wastes some time, since it checks the validity of the - /// pointer every time. - float_type operator()(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { return get().value_with_derivatives(x, yprime, yprime2); } - /// \brief factory function to create a c2_sum_p from a regular algebraic expression. - /// \param rhs the right-hand term of the sum - /// \return a new c2_function - c2_sum_p &operator + (const c2_function &rhs) const throw(c2_exception) - { return *new c2_sum_p(get(), rhs); } - /// \brief factory function to create a c2_diff_p from a regular algebraic expression. - /// \param rhs the right-hand term of the difference - /// \return a new c2_function - c2_diff_p &operator - (const c2_function &rhs) const throw(c2_exception) - { return *new c2_diff_p(get(), rhs); } - /// \brief factory function to create a c2_product_p from a regular algebraic expression. - /// \param rhs the right-hand term of the product - /// \return a new c2_function - c2_product_p &operator * (const c2_function &rhs) const throw(c2_exception) - { return *new c2_product_p(get(), rhs); } - /// \brief factory function to create a c2_ratio_p from a regular algebraic expression. - /// \param rhs the right-hand term of the ratio (the denominator) - /// \return a new c2_function - c2_ratio_p &operator / (const c2_function &rhs) const throw(c2_exception) - { return *new c2_ratio_p(get(), rhs); } - /// \brief compose this function outside another. - /// \param inner the inner function - /// \return the composed function - c2_composed_function_p & operator ()(const c2_function &inner) const throw(c2_exception) - { return *new c2_composed_function_p(get(), inner); } + /// \brief convenience operator to make us look like a function + /// \param x the value at which to evaluate the contained function + /// \return the evaluated function + + float_type operator()(float_type x) const throw(c2_exception) + { return get()(x); } + /// \brief convenience operator to make us look like a function + /// \param x the value at which to evaluate the contained function + /// \param yprime the derivative + /// \param yprime2 the second derivative + /// \return the evaluated function + /// \note If you using this repeatedly, + /// do const c2_function &func=ptr; + /// and use func(x). Calling this operator wastes some time, + /// since it checks the alidity of the pointer every time. + float_type operator()(float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { return get().value_with_derivatives(x, yprime, yprime2); } + /// \brief factory function to create a c2_sum_p from a regular + /// algebraic expression. + /// \param rhs the right-hand term of the sum + /// \return a new c2_function + c2_sum_p &operator + (const c2_function &rhs) + const throw(c2_exception) + { return *new c2_sum_p(get(), rhs); } + c2_diff_p &operator - (const c2_function &rhs) + const throw(c2_exception) + { return *new c2_diff_p(get(), rhs); } + c2_product_p &operator * (const c2_function &rhs) + const throw(c2_exception) + { return *new c2_product_p(get(), rhs); } + c2_ratio_p &operator / (const c2_function &rhs) + const throw(c2_exception) + { return *new c2_ratio_p(get(), rhs); } + /// \brief compose this function outside another. + /// \param inner the inner function + /// \return the composed function + c2_composed_function_p & + operator ()(const c2_function &inner) + const throw(c2_exception) + { return *new c2_composed_function_p(get(), inner); } protected: - const c2_function * func; + const c2_function * func; }; -/// \brief create a container for a c2_function which handles the reference counting. -/// \ingroup containers -/// -/// \see c2_const_ptr and \ref memory_management "Use of c2_ptr for memory management" template class c2_ptr : public c2_const_ptr { public: - /// \brief construct the container with no function - c2_ptr() : c2_const_ptr() {} - /// \brief construct the container with a pre-defined function - /// \param f the function to store - c2_ptr(c2_function &f) : - c2_const_ptr() { this->set_function(&f); } - /// \brief copy constructor - /// \param src the container to copy - c2_ptr(const c2_ptr &src) : - c2_const_ptr() { this->set_function(src.get_ptr()); } - /// \brief get a checked pointer to our owned function - inline c2_function &get() const throw(c2_exception) - { return *const_cast*>(&c2_const_ptr::get()); } - /// \brief get an unchecked pointer to our owned function - inline c2_function *get_ptr() const - { return const_cast*>(this->func); } - /// \brief get a checked pointer to our owned function - inline c2_function *operator -> () const - { return &get(); } - /// \brief fill the container from another container - /// \param f the container to copy - const c2_ptr & operator =(const c2_ptr &f) - { this->set_function(f.get_ptr()); return f; } - /// \brief fill the container with a function - /// \param f the function - c2_function & operator =(c2_function &f) - { this->set_function(&f); return f; } + /// \brief construct the container with no function + c2_ptr() : c2_const_ptr() {} + /// \brief construct the container with a pre-defined function + /// \param f the function to store + c2_ptr(c2_function &f) : + c2_const_ptr() { this->set_function(&f); } + /// \brief copy constructor + /// \param src the container to copy + c2_ptr(const c2_ptr &src) : + c2_const_ptr() { this->set_function(src.get_ptr()); } + /// \brief get a checked pointer to our owned function + inline c2_function &get() const throw(c2_exception) + { return *const_cast*>( + &c2_const_ptr::get()); } + /// \brief get an unchecked pointer to our owned function + inline c2_function *get_ptr() const + { return const_cast*>(this->func); } + /// \brief get a checked pointer to our owned function + inline c2_function *operator -> () const + { return &get(); } + /// \brief fill the container from another container + /// \param f the container to copy + const c2_ptr & operator =(const c2_ptr &f) + { this->set_function(f.get_ptr()); return f; } + /// \brief fill the container with a function + /// \param f the function + c2_function & operator =(c2_function &f) + { this->set_function(&f); return f; } private: - /// \brief hidden non-const-safe version of operator= - void operator =(const c2_const_ptr &) { } - /// \brief hidden non-const-safe version of operator= - void operator =(const c2_function &) { } + /// \brief hidden non-const-safe version of operator= + void operator =(const c2_const_ptr &) { } + /// \brief hidden non-const-safe version of operator= + void operator =(const c2_function &) { } }; -/// \brief create a non-generic container for a c2_function which handles the reference counting. -/// \ingroup containers -/// -/// \see c2_const_ptr and \ref memory_management "Use of c2_ptr for memory management" -/// -/// \note Overuse of this class will generate massive bloat. Use c2_ptr and c2_const_ptr if you don't _really_ need specific pointer types. -/// \see \ref memory_management "Use of c2_ptr for memory management" -template class c2_class > class c2_typed_ptr : public c2_const_ptr { +template class c2_class > +class c2_typed_ptr + : public c2_const_ptr { public: - /// \brief construct the container with no function - c2_typed_ptr() : c2_ptr() {} - /// \brief construct the container with a pre-defined function - /// \param f the function to store - c2_typed_ptr(c2_class &f) - : c2_const_ptr() { this->set_function(&f); } - /// \brief copy constructor - /// \param src the container to copy - c2_typed_ptr(const c2_typed_ptr &src) - : c2_const_ptr() { this->set_function(src.get_ptr()); } + /// \brief construct the container with no function + c2_typed_ptr() : c2_ptr() {} + /// \brief construct the container with a pre-defined function + /// \param f the function to store + c2_typed_ptr(c2_class &f) + : c2_const_ptr() { this->set_function(&f); } + /// \brief copy constructor + /// \param src the container to copy + c2_typed_ptr(const c2_typed_ptr &src) + : c2_const_ptr() { this->set_function(src.get_ptr()); } - /// \brief get a reference to our owned function - inline c2_class &get() const throw(c2_exception) - { - return *static_cast *>(const_cast*>(&c2_const_ptr::get())); - } - /// \brief get a checked pointer to our owned function - inline c2_class *operator -> () const + /// \brief get a reference to our owned function + inline c2_class &get() const throw(c2_exception) + { + return *static_cast *> + (const_cast*>(&c2_const_ptr::get())); + } + /// \brief get a checked pointer to our owned function + inline c2_class *operator -> () const { return &get(); } - /// \brief get an unchecked pointer to our owned function - inline c2_class *get_ptr() const - { return static_cast *>(const_cast*>(this->func)); } - /// \brief type coercion operator which lets us use a pointer as if it were a c2_function - operator c2_class&() const { return get(); } - /// \brief fill the container from another container - /// \param f the container to copy - void operator =(const c2_typed_ptr &f) - { this->set_function(f.get_ptr()); } - /// \brief fill the container with a function - /// \param f the function - void operator =(c2_class &f) - { this->set_function(&f); } + /// \brief get an unchecked pointer to our owned function + inline c2_class *get_ptr() const + { return static_cast *>( + const_cast*>(this->func)); } + + operator c2_class&() const { return get(); } + /// \brief fill the container from another container + /// \param f the container to copy + void operator =(const c2_typed_ptr &f) + { this->set_function(f.get_ptr()); } + /// \brief fill the container with a function + /// \param f the function + void operator =(c2_class &f) + { this->set_function(&f); } private: - /// \brief hidden downcasting version of operator= - void operator =(const c2_const_ptr &) { } - /// \brief hidden downcasting version of operator=. Use an explicit dynamic_cast&>(f) if you need to try this. - void operator =(const c2_function &) { } + void operator =(const c2_const_ptr &) { } + void operator =(const c2_function &) { } }; -/// \brief a container into which any other c2_function can be dropped, to allow expressions -/// with replacable components. -/// \ingroup containers -///It is useful for plugging different InterpolatingFunctions into a c2_function expression. -///It saves a lot of effort in other places with casting away const declarations. -/// -/// It is also useful as a wrapper for a function if it is necessary to have a copy of a function -/// which has a different domain or sampling grid than the parent function. This can be -/// be used, for example, to patch badly-behaved functions with c2_piecewise_function_p by -/// taking the parent function, creating two plugins of it with domains on each side of the -/// nasty bit, and then inserting a nice function in the hole. -/// -/// This can also be used as a fancier c2_ptr which allows direct evaluation -/// instead of having to dereference the container first. -/// -/// The factory function c2_factory::plugin_function() creates *new c2_plugin_function_p() template class c2_plugin_function_p : public c2_function { public: - /// \brief construct the container with no function - c2_plugin_function_p() : c2_function(), func() {} - /// \brief construct the container with a pre-defined function - c2_plugin_function_p(c2_function &f) : - c2_function(),func(f) { } - /// \brief fill the container with a new function, or clear it with a null pointer - /// and copy our domain - void set_function(c2_function *f) - { - func.set_function(f); - if(f) this->set_domain(f->xmin(), f->xmax()); - } - /// \copydoc c2_function::value_with_derivatives - /// Uses the internal function pointer set by set_function(). - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { - if(!func.valid()) throw c2_exception("c2_plugin_function_p called uninitialized"); - return func->value_with_derivatives(x, yprime, yprime2); - } - /// \brief destructor - virtual ~c2_plugin_function_p() { } + /// \brief construct the container with no function + c2_plugin_function_p() : c2_function(), func() {} + /// \brief construct the container with a pre-defined function + c2_plugin_function_p(c2_function &f) : + c2_function(),func(f) { } + + void set_function(c2_function *f) + { + func.set_function(f); + if(f) this->set_domain(f->xmin(), f->xmax()); + } + /// \copydoc c2_function::value_with_derivatives + /// Uses the internal function pointer set by set_function(). + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { + if(!func.valid()) + throw c2_exception("c2_plugin_function_p called uninitialized"); + return func->value_with_derivatives(x, yprime, yprime2); + } + /// \brief destructor + virtual ~c2_plugin_function_p() { } - /// \brief clear our function - void unset_function() { func.unset_function(); } + /// \brief clear our function + void unset_function() { func.unset_function(); } - virtual void get_sampling_grid(float_type amin, float_type amax, std::vector &grid) const - { - if(!func.valid()) throw c2_exception("c2_plugin_function_p called uninitialized"); - if(this->sampling_grid) c2_function::get_sampling_grid(amin, amax, grid); - else func->get_sampling_grid(amin, amax, grid); - } + virtual void get_sampling_grid(float_type amin, float_type amax, + std::vector &grid) const + { + if(!func.valid()) + throw c2_exception("c2_plugin_function_p called uninitialized"); + if(this->sampling_grid) + c2_function::get_sampling_grid(amin, amax, grid); + else func->get_sampling_grid(amin, amax, grid); + } protected: c2_ptr func; }; -/// \brief a c2_plugin_function_p which promises not to fiddle with the plugged function. -/// \ingroup containers -/// -/// The factory function c2_factory::const_plugin_function() creates *new c2_const_plugin_function_p() -template class c2_const_plugin_function_p : public c2_plugin_function_p { +template class c2_const_plugin_function_p + : public c2_plugin_function_p { public: - /// \brief construct the container with no function - c2_const_plugin_function_p() : c2_plugin_function_p() {} - /// \brief construct the container with a pre-defined function - c2_const_plugin_function_p(const c2_function &f) : - c2_plugin_function_p() { this->set_function(&f); } - /// \brief fill the container with a new function, or clear it with a null pointer - void set_function(const c2_function *f) - { c2_plugin_function_p::set_function(const_cast*>(f)); } - /// \brief destructor - virtual ~c2_const_plugin_function_p() { } + /// \brief construct the container with no function + c2_const_plugin_function_p() : c2_plugin_function_p() {} + /// \brief construct the container with a pre-defined function + c2_const_plugin_function_p(const c2_function &f) : + c2_plugin_function_p() { this->set_function(&f); } + void set_function(const c2_function *f) + { c2_plugin_function_p::set_function( + const_cast*>(f)); } + /// \brief destructor + virtual ~c2_const_plugin_function_p() { } - /// \brief get a const reference to our owned function, for direct access - const c2_function &get() const throw(c2_exception) - { return this->func.get(); } + /// \brief get a const reference to our owned function, for direct access + const c2_function &get() const throw(c2_exception) + { return this->func.get(); } }; -/// \brief Provides support for c2_function objects which are constructed from two other c2_function -/// objects. -/// \ingroup abstract_classes -template class c2_binary_function : public c2_function { +template class c2_binary_function + : public c2_function { public: - /// \brief function to manage the binary operation, used by c2_binary_function::value_with_derivatives() - /// - - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw (c2_exception) - { - if(stub) throw c2_exception("attempt to evaluate a c2_binary_function stub"); - return this->combine(*Left.get_ptr(), *Right.get_ptr(), x, yprime, yprime2); - } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw (c2_exception) + { + if(stub) + throw c2_exception("attempt to evaluate a c2_binary_function stub"); + return this->combine(*Left.get_ptr(), *Right.get_ptr(), x, yprime, yprime2); + } - /// \brief destructor releases ownership of member functions - /// - virtual ~c2_binary_function() { } + /// \brief destructor releases ownership of member functions + /// + virtual ~c2_binary_function() { } protected: - /// \brief construct the binary function - /// \param combiner pointer to the function which actualy knows how to execute the binary - /// \param left the c2_function to be used in the left side of the binary relation - /// \param right the c2_function to be used in the right side of the binary relation - c2_binary_function( - float_type (*combiner)(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2), - const c2_function &left, const c2_function &right) : - c2_function(), combine(combiner), Left(left), Right(right), stub(false) - { - this->set_domain( - (left.xmin() > right.xmin()) ? left.xmin() : right.xmin(), - (left.xmax() < right.xmax()) ? left.xmax() : right.xmax() - ); - } - - /// \brief construct a 'stub' c2_binary_function, which provides access to the combine() function - /// \note Do not evaluate a 'stub' ever. It is only used so that combine() can be called - c2_binary_function( - float_type (*combiner)(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2) - ) : c2_function(), combine(combiner), Left(), Right(), stub(true) { } + c2_binary_function( float_type (*combiner)( + const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, + float_type *yprime2), + const c2_function &left, + const c2_function &right) : + c2_function(), combine(combiner), Left(left), + Right(right), stub(false) + { + this->set_domain( + (left.xmin() > right.xmin()) ? left.xmin() : right.xmin(), + (left.xmax() < right.xmax()) ? left.xmax() : right.xmax() + ); + } + c2_binary_function(float_type (*combiner)( + const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, float_type *yprime2) + ) : c2_function(), combine(combiner), + Left(), Right(), stub(true) { } public: - float_type (* const combine)(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2); + float_type (* const combine)( + const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, float_type *yprime2); protected: - const c2_const_ptr Left, Right; - /// \brief if true, we don't own any functions, we are just a source of a combining function. - bool stub; - + const c2_const_ptr Left, Right; + bool stub; }; -/// \brief Create a very lightweight method to return a scalar multiple of another function. -/// \ingroup containers \ingroup arithmetic_functions \ingroup parametric_functions -/// -/// The factory function c2_factory::scaled_function() creates *new c2_scaled_function_p -template class c2_scaled_function_p : public c2_function { +template class c2_scaled_function_p + : public c2_function { public: - /// \brief construct the function with its scale factor. - /// - /// \param outer the function to be scaled - /// \param scale the multiplicative scale factor - c2_scaled_function_p(const c2_function &outer, float_type scale) : - c2_function(), func(outer), yscale(scale) { } + /// \brief construct the function with its scale factor. + /// + /// \param outer the function to be scaled + /// \param scale the multiplicative scale factor + c2_scaled_function_p(const c2_function &outer, + float_type scale) : + c2_function(), func(outer), yscale(scale) { } - /// \brief set a new scale factor - /// \param scale the new factor - void reset(float_type scale) { yscale=scale; } + /// \brief set a new scale factor + /// \param scale the new factor + void reset(float_type scale) { yscale=scale; } - /// \copydoc c2_function::value_with_derivatives - /// - /// provide our own value_with_derivatives which bypasses the combiner for quicker operation - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw (c2_exception) - { - float_type y=this->func->value_with_derivatives(x, yprime, yprime2); - if(yprime) (*yprime)*=yscale; - if(yprime2) (*yprime2)*=yscale; - return y*yscale; - } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw (c2_exception) + { + float_type y=this->func->value_with_derivatives(x, yprime, yprime2); + if(yprime) (*yprime)*=yscale; + if(yprime2) (*yprime2)*=yscale; + return y*yscale; + } protected: - c2_scaled_function_p() : func() {} // hide default constructor, since its use is almost always an error. - /// \brief the scaling factor for the function - const c2_const_ptr func; - float_type yscale; + c2_scaled_function_p() : func() {} + /// \brief the scaling factor for the function + const c2_const_ptr func; + float_type yscale; }; /// \brief A container into which any other c2_function can be dropped. /// \ingroup containers -/// It allows a function to be pre-evaluated at a point, and used at multiple places in an expression -/// efficiently. If it is re-evaluated at the previous point, it returns the remembered values; +/// It allows a function to be pre-evaluated at a point, +/// and used at multiple places +/// in an expression +/// efficiently. If it is re-evaluated at the previous point, +/// it returns the remembered values; /// otherwise, it re-evauates the function at the new point. /// -/// The factory function c2_factory::cached_function() creates *new c2_cached_function_p -template class c2_cached_function_p : public c2_function { +template class c2_cached_function_p + : public c2_function { public: - /// \brief construct the container - /// - /// \param f the function to be cached - c2_cached_function_p(const c2_function &f) : c2_function(), - func(f), init(false) {} - /// \copydoc c2_function::value_with_derivatives - /// - /// Checks to see if the function is being re-evaluated at the previous point, and - /// returns remembered values if so. - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { - if(!init || x != x0) { - y=this->func->value_with_derivatives(x, &yp, &ypp); - x0=x; - init=true; - } - if(yprime) *yprime=yp; - if(yprime2) *yprime2=ypp; - return y; - } + /// \brief construct the container + /// + /// \param f the function to be cached + c2_cached_function_p(const c2_function &f) + : c2_function(), + func(f), init(false) {} + /// \copydoc c2_function::value_with_derivatives + /// + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { + if(!init || x != x0) { + y=this->func->value_with_derivatives(x, &yp, &ypp); + x0=x; + init=true; + } + if(yprime) *yprime=yp; + if(yprime2) *yprime2=ypp; + return y; + } protected: - c2_cached_function_p() : func() {} // hide default constructor, since its use is almost always an error. - const c2_const_ptr func; - mutable bool init; - mutable float_type x0, y, yp, ypp; + c2_cached_function_p() : func() {} + const c2_const_ptr func; + mutable bool init; + mutable float_type x0, y, yp, ypp; }; -/// \brief Provides function composition (nesting) -/// \ingroup arithmetic_functions -/// This allows evaluation of \a f(g(x)) where \a f and \a g are c2_function objects. -/// -/// This should always be constructed using \ref compose_operator "c2_function::operator()" -template class c2_composed_function_p : public c2_binary_function { +template class c2_composed_function_p + : public c2_binary_function { public: - - /// \brief construct \a outer( \a inner (x)) - /// \note See c2_binary_function for discussion of ownership. - /// \param outer the outer function - /// \param inner the inner function - c2_composed_function_p(const c2_function &outer, const c2_function &inner) : - c2_binary_function(combine, outer, inner) { this->set_domain(inner.xmin(), inner.xmax()); } - /// \brief Create a stub just for the combiner to avoid statics. - c2_composed_function_p() : c2_binary_function(combine) {} + c2_composed_function_p(const c2_function &outer, + const c2_function &inner) : + c2_binary_function(combine, outer, inner) { + this->set_domain(inner.xmin(), inner.xmax()); } + /// \brief Create a stub just for the combiner to avoid statics. + c2_composed_function_p() : c2_binary_function(combine) {} - /// \brief execute math necessary to do composition - static float_type combine(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2) throw(c2_exception) - { - float_type y0, y1; - if(yprime || yprime2) { - float_type yp0, ypp0, yp1, ypp1; - y0=right.value_with_derivatives(x, &yp0, &ypp0); - y1=left.value_with_derivatives(y0, &yp1, &ypp1); - if(yprime) *yprime=yp1*yp0; - if(yprime2) *yprime2=ypp0*yp1+yp0*yp0*ypp1; - } else { - y0=right(x); - y1=left(y0); - } - return y1; - } + /// \brief execute math necessary to do composition + static float_type combine(const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, + float_type *yprime2) throw(c2_exception) + { + float_type y0, y1; + if(yprime || yprime2) { + float_type yp0, ypp0, yp1, ypp1; + y0=right.value_with_derivatives(x, &yp0, &ypp0); + y1=left.value_with_derivatives(y0, &yp1, &ypp1); + if(yprime) *yprime=yp1*yp0; + if(yprime2) *yprime2=ypp0*yp1+yp0*yp0*ypp1; + } else { + y0=right(x); + y1=left(y0); + } + return y1; + } }; -/// \brief create a c2_function which is the sum of two other c2_function objects. -/// \ingroup arithmetic_functions -/// This should always be constructed using c2_function::operator+() -template class c2_sum_p : public c2_binary_function { +template class c2_sum_p + : public c2_binary_function { public: - /// \brief construct \a left + \a right - /// \param left the left function - /// \param right the right function - c2_sum_p(const c2_function &left, const c2_function &right) : c2_binary_function(combine, left, right) {} - /// \brief Create a stub just for the combiner to avoid statics. - c2_sum_p() : c2_binary_function(combine) {} ; // create a stub just for the combiner to avoid statics + /// \brief construct \a left + \a right + /// \param left the left function + /// \param right the right function + c2_sum_p(const c2_function &left, + const c2_function &right) + : c2_binary_function(combine, left, right) {} + /// \brief Create a stub just for the combiner to avoid statics. + c2_sum_p() : c2_binary_function(combine) {} ; - /// \brief execute math necessary to do addition - static float_type combine(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2) throw(c2_exception) - { - float_type y0, y1; - if(yprime || yprime2) { - float_type yp0, ypp0, yp1, ypp1; - y0=left.value_with_derivatives(x, &yp0, &ypp0); - y1=right.value_with_derivatives(x, &yp1, &ypp1); - if(yprime) *yprime=yp0+yp1; - if(yprime2) *yprime2=ypp0+ypp1; - } else { - y0=left(x); - y1=right(x); - } - return y0+y1; - } + /// \brief execute math necessary to do addition + static float_type combine(const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, + float_type *yprime2) throw(c2_exception) + { + float_type y0, y1; + if(yprime || yprime2) { + float_type yp0, ypp0, yp1, ypp1; + y0=left.value_with_derivatives(x, &yp0, &ypp0); + y1=right.value_with_derivatives(x, &yp1, &ypp1); + if(yprime) *yprime=yp0+yp1; + if(yprime2) *yprime2=ypp0+ypp1; + } else { + y0=left(x); + y1=right(x); + } + return y0+y1; + } }; - -/// \brief create a c2_function which is the difference of two other c2_functions. -/// \ingroup arithmetic_functions -/// This should always be constructed using c2_function::operator-() -template class c2_diff_p : public c2_binary_function { +template class c2_diff_p + : public c2_binary_function { public: - /// \brief construct \a left - \a right - /// \param left the left function - /// \param right the right function - c2_diff_p(const c2_function &left, const c2_function &right) : c2_binary_function(combine, left, right) {} - /// \brief Create a stub just for the combiner to avoid statics. - c2_diff_p() : c2_binary_function(combine) {} ; // create a stub just for the combiner to avoid statics + /// \brief construct \a left - \a right + /// \param left the left function + /// \param right the right function + c2_diff_p(const c2_function &left, + const c2_function &right) + : c2_binary_function(combine, left, right) {} + /// \brief Create a stub just for the combiner to avoid statics. + c2_diff_p() : c2_binary_function(combine) {} ; - /// \brief execute math necessary to do subtraction - static float_type combine(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2) throw(c2_exception) - { - float_type y0, y1; - if(yprime || yprime2) { - float_type yp0, ypp0, yp1, ypp1; - y0=left.value_with_derivatives(x, &yp0, &ypp0); - y1=right.value_with_derivatives(x, &yp1, &ypp1); - if(yprime) *yprime=yp0-yp1; - if(yprime2) *yprime2=ypp0-ypp1; - } else { - y0=left(x); - y1=right(x); - } - return y0-y1; - } + /// \brief execute math necessary to do subtraction + static float_type combine(const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, + float_type *yprime2) throw(c2_exception) + { + float_type y0, y1; + if(yprime || yprime2) { + float_type yp0, ypp0, yp1, ypp1; + y0=left.value_with_derivatives(x, &yp0, &ypp0); + y1=right.value_with_derivatives(x, &yp1, &ypp1); + if(yprime) *yprime=yp0-yp1; + if(yprime2) *yprime2=ypp0-ypp1; + } else { + y0=left(x); + y1=right(x); + } + return y0-y1; + } }; /// \brief create a c2_function which is the product of two other c2_functions. /// \ingroup arithmetic_functions /// This should always be constructed using c2_function::operator*() -template class c2_product_p : public c2_binary_function { +template class c2_product_p + : public c2_binary_function { public: - /// \brief construct \a left * \a right - /// \param left the left function - /// \param right the right function - c2_product_p(const c2_function &left, const c2_function &right) : c2_binary_function(combine, left, right) {} - /// \brief Create a stub just for the combiner to avoid statics. - c2_product_p() : c2_binary_function(combine) {} ; // create a stub just for the combiner to avoid statics - - /// \brief execute math necessary to do multiplication - static float_type combine(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2) throw(c2_exception) + /// \brief construct \a left * \a right + /// \param left the left function + /// \param right the right function + c2_product_p(const c2_function &left, + const c2_function &right) + : c2_binary_function(combine, left, right) {} + /// \brief Create a stub just for the combiner to avoid statics. + c2_product_p() : c2_binary_function(combine) {} ; + + /// \brief execute math necessary to do multiplication + static float_type combine(const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, + float_type *yprime2) throw(c2_exception) { - float_type y0, y1; - if(yprime || yprime2) { - float_type yp0, ypp0, yp1, ypp1; - y0=left.value_with_derivatives(x, &yp0, &ypp0); - y1=right.value_with_derivatives(x, &yp1, &ypp1); - if(yprime) *yprime=y1*yp0+y0*yp1; - if(yprime2) *yprime2=ypp0*y1+2.0*yp0*yp1+ypp1*y0; - } else { - y0=left(x); - y1=right(x); - } - return y0*y1; - } + float_type y0, y1; + if(yprime || yprime2) { + float_type yp0, ypp0, yp1, ypp1; + y0=left.value_with_derivatives(x, &yp0, &ypp0); + y1=right.value_with_derivatives(x, &yp1, &ypp1); + if(yprime) *yprime=y1*yp0+y0*yp1; + if(yprime2) *yprime2=ypp0*y1+2.0*yp0*yp1+ypp1*y0; + } else { + y0=left(x); + y1=right(x); + } + return y0*y1; + } }; /// \brief create a c2_function which is the ratio of two other c2_functions. /// \ingroup arithmetic_functions /// This should always be constructed using c2_function::operator/() -template class c2_ratio_p : public c2_binary_function { +template class c2_ratio_p + : public c2_binary_function { public: - /// \brief construct \a left / \a right - /// \param left the left function - /// \param right the right function - c2_ratio_p(const c2_function &left, const c2_function &right) : c2_binary_function(combine, left, right) {} - /// \brief Create a stub just for the combiner to avoid statics. - c2_ratio_p() : c2_binary_function(combine) {} ; // create a stub just for the combiner to avoid statics + /// \brief construct \a left / \a right + /// \param left the left function + /// \param right the right function + c2_ratio_p(const c2_function &left, + const c2_function &right) + : c2_binary_function(combine, left, right) {} + /// \brief Create a stub just for the combiner to avoid statics. + c2_ratio_p() : c2_binary_function(combine) {} ; - /// \brief execute math necessary to do division - static float_type combine(const c2_function &left, const c2_function &right, - float_type x, float_type *yprime, float_type *yprime2) throw(c2_exception) - { - float_type y0, y1; - if(yprime || yprime2) { - float_type yp0, ypp0, yp1, ypp1; - y0=left.value_with_derivatives(x, &yp0, &ypp0); - y1=right.value_with_derivatives(x, &yp1, &ypp1); - if(yprime) *yprime=(yp0*y1-y0*yp1)/(y1*y1); // first deriv of ratio - if(yprime2) *yprime2=(y1*y1*ypp0+y0*(2*yp1*yp1-y1*ypp1)-2*y1*yp0*yp1)/(y1*y1*y1); - } else { - y0=left(x); - y1=right(x); - } - return y0/y1; - } - + /// \brief execute math necessary to do division + static float_type combine(const c2_function &left, + const c2_function &right, + float_type x, float_type *yprime, + float_type *yprime2) throw(c2_exception) + { + float_type y0, y1; + if(yprime || yprime2) { + float_type yp0, ypp0, yp1, ypp1; + y0=left.value_with_derivatives(x, &yp0, &ypp0); + y1=right.value_with_derivatives(x, &yp1, &ypp1); + if(yprime) *yprime=(yp0*y1-y0*yp1)/(y1*y1); // first deriv of ratio + if(yprime2) *yprime2=(y1*y1*ypp0+y0*(2*yp1*yp1-y1*ypp1)-2*y1*yp0*yp1) + /(y1*y1*y1); + } else { + y0=left(x); + y1=right(x); + } + return y0/y1; + } }; /// \brief a c2_function which is constant /// \ingroup parametric_functions /// /// The factory function c2_factory::constant() creates *new c2_constant_p() -template class c2_constant_p : public c2_function { +template class c2_constant_p + : public c2_function { public: - c2_constant_p(float_type x) : c2_function(), value(x) {} - void reset(float_type val) { value=val; } - virtual float_type value_with_derivatives(float_type, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { if(yprime) *yprime=0; if(yprime2) *yprime2=0; return value; } + c2_constant_p(float_type x) : c2_function(), value(x) {} + void reset(float_type val) { value=val; } + virtual float_type value_with_derivatives( + float_type, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { if(yprime) *yprime=0; if(yprime2) *yprime2=0; return value; } private: - float_type value; + float_type value; }; /// \brief a transformation of a coordinate, including an inverse /// \ingroup transforms template class c2_transformation { public: - /// \brief initialize all our function pointers - /// \param transformed true if this function is not the identity - /// \param xin input X transform - /// \param xinp input X transform derivative - /// \param xinpp input X transform second derivative - /// \param xout output X transform, which MUST be the inverse of \a xin - c2_transformation(bool transformed, - float_type (*xin)(float_type), float_type (*xinp)(float_type), float_type (*xinpp)(float_type), float_type (*xout)(float_type) - ) : - fTransformed(transformed), fHasStaticTransforms(true), - pIn(xin), pInPrime(xinp), pInDPrime(xinpp), pOut(xout) { } + /// \brief initialize all our function pointers + /// \param transformed true if this function is not the identity + /// \param xin input X transform + /// \param xinp input X transform derivative + /// \param xinpp input X transform second derivative + /// \param xout output X transform, which MUST be the inverse of \a xin + c2_transformation(bool transformed, + float_type (*xin)(float_type), + float_type (*xinp)(float_type), + float_type (*xinpp)(float_type), + float_type (*xout)(float_type) + ) : + fTransformed(transformed), fHasStaticTransforms(true), + pIn(xin), pInPrime(xinp), pInDPrime(xinpp), pOut(xout) { } - /// \brief initialize all our function pointers so that only the (overridden) virtual functions can be called without an error - /// \param transformed true if this function is nonlinear - c2_transformation(bool transformed) : - fTransformed(transformed), fHasStaticTransforms(false), - pIn(report_error), pInPrime(report_error), pInDPrime(report_error), pOut(report_error) { } - /// \brief the destructor - virtual ~c2_transformation() { } - /// \brief flag to indicate if this transform is not the identity - const bool fTransformed; - /// \brief flag to indicate if the static function pointers can be used for efficiency - const bool fHasStaticTransforms; + /// \brief initialize all our function pointers so that only the (overridden) + /// virtual functions can be called without an error + /// \param transformed true if this function is nonlinear + c2_transformation(bool transformed) : + fTransformed(transformed), fHasStaticTransforms(false), + pIn(report_error), pInPrime(report_error), pInDPrime(report_error), + pOut(report_error) { } + /// \brief the destructor + virtual ~c2_transformation() { } + /// \brief flag to indicate if this transform is not the identity + const bool fTransformed; + /// \brief flag to indicate if the static function pointers can + /// be used for efficiency + const bool fHasStaticTransforms; - /// \note the pointers to functions allow highly optimized access when static functions are available. - /// They are only used inside value_with_derivatives(), which is assumed to be the most critical routine. - /// \brief non-virtual pointer to input X transform - float_type (* const pIn)(float_type); - /// \brief non-virtual pointer to input X transform derivative - float_type (* const pInPrime)(float_type); - /// \brief non-virtual pointer to input X transform second derivative - float_type (* const pInDPrime)(float_type); - /// \brief non-virtual pointer to output X transform - float_type (* const pOut)(float_type); + /// \note the pointers to functions allow highly optimized access when static + /// functions are available. + /// They are only used inside value_with_derivatives(), + /// which is assumed to be the most critical routine. + /// \brief non-virtual pointer to input X transform + float_type (* const pIn)(float_type); + /// \brief non-virtual pointer to input X transform derivative + float_type (* const pInPrime)(float_type); + /// \brief non-virtual pointer to input X transform second derivative + float_type (* const pInDPrime)(float_type); + /// \brief non-virtual pointer to output X transform + float_type (* const pOut)(float_type); - /// \brief virtual input X transform - virtual float_type fIn(float_type x) const { return pIn(x); } - /// \brief virtual input X transform derivative - virtual float_type fInPrime(float_type x) const { return pInPrime(x); } - /// \brief virtual input X transform second derivative - virtual float_type fInDPrime(float_type x) const { return pInDPrime(x); } - /// \brief virtual output X transform - virtual float_type fOut(float_type x) const { return pOut(x); } + /// \brief virtual input X transform + virtual float_type fIn(float_type x) const { return pIn(x); } + /// \brief virtual input X transform derivative + virtual float_type fInPrime(float_type x) const { return pInPrime(x); } + /// \brief virtual input X transform second derivative + virtual float_type fInDPrime(float_type x) const { return pInDPrime(x); } + /// \brief virtual output X transform + virtual float_type fOut(float_type x) const { return pOut(x); } protected: - /// \brief utility function for unimplemented conversion - static float_type report_error(float_type x) { throw c2_exception("use of improperly constructed axis transform"); return x; } - /// \brief utility function f(x)=x useful in axis transforms - static float_type ident(float_type x) { return x; } - /// \brief utility function f(x)=1 useful in axis transforms - static float_type one(float_type) { return 1; } - /// \brief utility function f(x)=0 useful in axis transforms - static float_type zero(float_type) { return 0; } - /// \brief utility function f(x)=1/x useful in axis transforms - static float_type recip(float_type x) { return 1.0/x; } - /// \brief utility function f(x)=-1/x**2 useful in axis transforms - static float_type recip_prime(float_type x) { return -1/(x*x); } - /// \brief utility function f(x)=2/x**3 useful in axis transforms - static float_type recip_prime2(float_type x) { return 2/(x*x*x); } - + /// \brief utility function for unimplemented conversion + static float_type report_error(float_type x) { + throw c2_exception("use of improperly constructed axis transform"); + return x; } + /// \brief utility function f(x)=x useful in axis transforms + static float_type ident(float_type x) { return x; } + /// \brief utility function f(x)=1 useful in axis transforms + static float_type one(float_type) { return 1; } + /// \brief utility function f(x)=0 useful in axis transforms + static float_type zero(float_type) { return 0; } + /// \brief utility function f(x)=1/x useful in axis transforms + static float_type recip(float_type x) { return 1.0/x; } + /// \brief utility function f(x)=-1/x**2 useful in axis transforms + static float_type recip_prime(float_type x) { return -1/(x*x); } + /// \brief utility function f(x)=2/x**3 useful in axis transforms + static float_type recip_prime2(float_type x) { return 2/(x*x*x); } }; /// \brief the identity transform /// \ingroup transforms -template class c2_transformation_linear : public c2_transformation { +template class c2_transformation_linear + : public c2_transformation { public: - /// \brief constructor - c2_transformation_linear() : c2_transformation(false, this->ident, this->one, this->zero, this->ident) { } - /// \brief destructor - virtual ~c2_transformation_linear() { } + /// \brief constructor + c2_transformation_linear() : c2_transformation( + false, this->ident, + this->one, this->zero, + this->ident) { } + /// \brief destructor + virtual ~c2_transformation_linear() { } }; /// \brief log axis transform /// \ingroup transforms -template class c2_transformation_log : public c2_transformation { +template class c2_transformation_log + : public c2_transformation { public: - /// \brief constructor - c2_transformation_log() : c2_transformation(true, std::log, this->recip, this->recip_prime, std::exp) { } - /// \brief destructor - virtual ~c2_transformation_log() { } + /// \brief constructor + c2_transformation_log() : c2_transformation( + true, std::log, this->recip, + this->recip_prime, std::exp) { } + /// \brief destructor + virtual ~c2_transformation_log() { } }; /// \brief reciprocal axis transform /// \ingroup transforms -template class c2_transformation_recip : public c2_transformation { +template class c2_transformation_recip + : public c2_transformation { public: - /// \brief constructor - c2_transformation_recip() : c2_transformation(true, this->recip, this->recip_prime, this->recip_prime2, this->recip) { } - /// \brief destructor - virtual ~c2_transformation_recip() { } + /// \brief constructor + c2_transformation_recip() : c2_transformation( + true, this->recip, + this->recip_prime, + this->recip_prime2, this->recip) { } + /// \brief destructor + virtual ~c2_transformation_recip() { } }; -/// \brief a transformation of a function in and out of a coordinate space, using 2 c2_transformations +/// \brief a transformation of a function in and out of a coordinate space, +/// using 2 c2_transformations /// -/// This class is a container for two axis transforms, but also provides the critical evaluate() -/// function which converts a result in internal coordinates (with derivatives) into the external representation +/// This class is a container for two axis transforms, +/// but also provides the critical evaluate() +/// function which converts a result in internal +/// coordinates (with derivatives) into the +/// external representation /// \ingroup transforms template - class c2_function_transformation { +class c2_function_transformation { public: - /// \brief construct this from two c2_transformation instances - /// \param xx the X axis transform - /// \param yy the Y axis transform - c2_function_transformation( - const c2_transformation &xx, const c2_transformation &yy) : - isIdentity(!(xx.fTransformed || yy.fTransformed)), X(xx), Y(yy) { } - /// \brief destructor - virtual ~c2_function_transformation() { delete &X; delete &Y; } - /// \brief evaluate the transformation from internal coordinates to external coordinates - /// \param xraw the value of \a x in external cordinates at which the transform is taking place - /// \param y the value of the function in internal coordinates - /// \param yp0 the derivative in internal coordinates - /// \param ypp0 the second derivative in internal coordinates - /// \param [out] yprime pointer to the derivative, or NULL, in external coordinates - /// \param [out] yprime2 pointer to the second derivative, or NULL, in external coordinates - /// \return the value of the function in external coordinates - virtual float_type evaluate(float_type xraw, - float_type y, float_type yp0, float_type ypp0, - float_type *yprime, float_type *yprime2) const; - /// \brief flag indicating of the transform is the identity, and can be skipped for efficiency - const bool isIdentity; - /// \brief the X axis transform - const c2_transformation &X; - /// \brief the Y axis transform - const c2_transformation &Y; + /// \brief construct this from two c2_transformation instances + /// \param xx the X axis transform + /// \param yy the Y axis transform + c2_function_transformation( + const c2_transformation &xx, + const c2_transformation &yy) : + isIdentity(!(xx.fTransformed || yy.fTransformed)), X(xx), Y(yy) { } + /// \brief destructor + virtual ~c2_function_transformation() { delete &X; delete &Y; } + virtual float_type evaluate( + float_type xraw, + float_type y, float_type yp0, float_type ypp0, + float_type *yprime, float_type *yprime2) const; + const bool isIdentity; + /// \brief the X axis transform + const c2_transformation &X; + /// \brief the Y axis transform + const c2_transformation &Y; }; /// \brief a transformation of a function in and out of lin-lin space /// /// \ingroup transforms template class c2_lin_lin_function_transformation : - public c2_function_transformation { + public c2_function_transformation { public: - c2_lin_lin_function_transformation() : - c2_function_transformation( - *new c2_transformation_linear, - *new c2_transformation_linear - ) { } - virtual ~c2_lin_lin_function_transformation() { } + c2_lin_lin_function_transformation() : + c2_function_transformation( + *new c2_transformation_linear, + *new c2_transformation_linear + ) { } + virtual ~c2_lin_lin_function_transformation() { } }; /// \brief a transformation of a function in and out of log-log space @@ -1329,7 +1454,8 @@ public: virtual ~c2_log_lin_function_transformation() { } }; -/// \brief a transformation of a function in and out of Arrhenius (1/x vs. log(y)) space +/// \brief a transformation of a function in and out of Arrhenius +/// (1/x vs. log(y)) space /// /// \ingroup transforms template class c2_arrhenius_function_transformation : @@ -1348,15 +1474,24 @@ public: \ingroup interpolators This is one of the main reasons for c2_function objects to exist. - It provides support for cubic spline interpolation of data provides from tables of \a x, \a y pairs. - It supports automatic, transparent linearization of the data before storing in its tables (through + It provides support for cubic spline interpolation of data + provides from tables + of \a x, \a y pairs. + It supports automatic, transparent linearization of the data + before storing in + its tables (through subclasses such as log_lin_interpolating_function, lin_log_interpolating_function, and - log_log_interpolating_function) to permit very high accuracy representations of data which have a suitable - structure. It provides utility functions LinearInterpolatingGrid() and LogLogInterpolatingGrid() - to create grids for mapping other functions onto a arithmetic or geometric grid. + log_log_interpolating_function) to permit very high + accuracy representations of + data which have a suitable + structure. It provides utility functions + LinearInterpolatingGrid() and LogLogInterpolatingGrid() + to create grids for mapping other functions onto a arithmetic + or geometric grid. - In its simplest form, an untransformed cubic spline of a data set, using natural boundary conditions + In its simplest form, an untransformed cubic spline of a data set, + using natural boundary conditions (vanishing second derivative), is created as: \n \code c2_ptr c2p; @@ -1371,238 +1506,234 @@ public: double y=myfunc(x,&yprime, &yprime2); \endcode - The factory function c2_factory::interpolating_function() creates *new interpolating_function_p() + The factory function c2_factory::interpolating_function() + creates *new interpolating_function_p() */ -template class interpolating_function_p : public c2_function { +template class interpolating_function_p + : public c2_function { public: - /// \brief an empty linear-linear cubic-spline interpolating_function_p - /// - /// lots to say here, but see Numerical Recipes for a discussion of cubic splines. - /// - interpolating_function_p() : c2_function(), - fTransform(*new c2_lin_lin_function_transformation) { } + /// \brief an empty linear-linear cubic-spline interpolating_function_p + /// + interpolating_function_p() : c2_function(), + fTransform(*new c2_lin_lin_function_transformation) { } - /// \brief an empty cubic-spline interpolating_function_p with a specific transform - /// - interpolating_function_p(const c2_function_transformation &transform) : c2_function(), - fTransform(transform) { } + /// \brief an empty cubic-spline interpolating_function_p with a + /// specific transform + /// + interpolating_function_p(const c2_function_transformation & + transform) + : c2_function(), + fTransform(transform) { } - /// \brief do the dirty work of constructing the spline from a function. - /// \param x the list of abscissas. Must be either strictly increasing or strictly decreasing. - /// Strictly increasing is preferred, as less memory is used since a copy is not required for the sampling grid. - /// \param f the list of function values. - /// \param lowerSlopeNatural if true, set y''(first point)=0, otherwise compute it from \a lowerSope - /// \param lowerSlope derivative of the function at the lower bound, used only if \a lowerSlopeNatural is false - /// \param upperSlopeNatural if true, set y''(last point)=0, otherwise compute it from \a upperSope - /// \param upperSlope derivative of the function at the upper bound, used only if \a upperSlopeNatural is false - /// \param splined if true (default), use cubic spline, if false, use linear interpolation. - /// \return the same interpolating function, filled - interpolating_function_p & load(const std::vector &x, const std::vector &f, - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope, bool splined=true + /// \brief do the dirty work of constructing the spline from a function. + /// \param x the list of abscissas. Must be either strictly + /// increasing or strictly decreasing. + /// Strictly increasing is preferred, as less memory is used since + /// a copy is not + /// required for the sampling grid. + /// \param f the list of function values. + /// \param lowerSlopeNatural if true, set y''(first point)=0, + /// otherwise compute it + /// from \a lowerSope + /// \param lowerSlope derivative of the function at the lower bound, + /// used only + /// if \a lowerSlopeNatural is false + /// \param upperSlopeNatural if true, set y''(last point)=0, + /// otherwise compute + /// it from \a upperSope + /// \param upperSlope derivative of the function at the upper bound, + /// used only + /// if \a upperSlopeNatural is false + /// \param splined if true (default), use cubic spline, + /// if false, use linear interpolation. + /// \return the same interpolating function, filled + interpolating_function_p & load( + const std::vector &x, + const std::vector &f, + bool lowerSlopeNatural, float_type lowerSlope, + bool upperSlopeNatural, float_type upperSlope, bool splined=true ) throw(c2_exception); - /// \brief do the dirty work of constructing the spline from a function. - /// \param data std::vector of std::pairs of x,y. Will be sorted into x increasing order in place. - /// \param lowerSlopeNatural if true, set y''(first point)=0, otherwise compute it from \a lowerSope - /// \param lowerSlope derivative of the function at the lower bound, used only if \a lowerSlopeNatural is false - /// \param upperSlopeNatural if true, set y''(last point)=0, otherwise compute it from \a upperSope - /// \param upperSlope derivative of the function at the upper bound, used only if \a upperSlopeNatural is false - /// \param splined if true (default), use cubic spline, if false, use linear interpolation. - /// \return the same interpolating function, filled - interpolating_function_p & load_pairs( - std::vector > &data, - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope, bool splined=true - ) throw(c2_exception); + /// \brief do the dirty work of constructing the spline from a function. + /// \param data std::vector of std::pairs of x,y. + /// Will be sorted into x increasing order in place. + /// \param lowerSlopeNatural if true, set y''(first point)=0, + /// otherwise compute it from \a lowerSope + /// \param lowerSlope derivative of the function at the lower bound, + /// used only if \a lowerSlopeNatural is false + /// \param upperSlopeNatural if true, set y''(last point)=0, + /// otherwise compute + /// it from \a upperSope + /// \param upperSlope derivative of the function at the upper bound, + /// used only if \a upperSlopeNatural is false + /// \param splined if true (default), use cubic spline, + /// if false, use linear interpolation. + /// \return the same interpolating function, filled + interpolating_function_p & load_pairs( + std::vector > &data, + bool lowerSlopeNatural, float_type lowerSlope, + bool upperSlopeNatural, float_type upperSlope, bool splined=true + ) throw(c2_exception); - /// \brief do the dirty work of constructing the spline from a function. - /// \param func a function without any requirement of valid derivatives to sample into an interpolating function. - /// Very probably a c2_classic_function. - /// \param amin the lower bound of the region to sample - /// \param amax the upper bound of the region to sample - /// \param abs_tol the maximum absolute error permitted when linearly interpolating the points. - /// the real error will be much smaller, since this uses cubic splines at the end. - /// \param rel_tol the maximum relative error permitted when linearly interpolating the points. - /// the real error will be much smaller, since this uses cubic splines at the end. - /// \param lowerSlopeNatural if true, set y'(first point) from 3-point parabola, otherwise compute it from \a lowerSope - /// \param lowerSlope derivative of the function at the lower bound, used only if \a lowerSlopeNatural is false - /// \param upperSlopeNatural if true, set y'(last point) from 3-point parabola, otherwise compute it from \a upperSope - /// \param upperSlope derivative of the function at the upper bound, used only if \a upperSlopeNatural is false - /// \return the same interpolating function, filled - /// \note If the interpolator being filled has a log vertical axis, put the desired relative error in - /// \a abs_tol, and 0 in \a rel_tol since the absolute error on the log of a function is the relative error - /// on the function itself. - interpolating_function_p & sample_function(const c2_function &func, - float_type amin, float_type amax, float_type abs_tol, float_type rel_tol, - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope - ) throw(c2_exception); + /// \brief do the dirty work of constructing the spline from a function. + /// \param func a function without any requirement of valid derivatives + /// to sample + /// into an interpolating function. + /// Very probably a c2_classic_function. + /// \param amin the lower bound of the region to sample + /// \param amax the upper bound of the region to sample + /// \param abs_tol the maximum absolute error permitted when + /// linearly interpolating the points. + /// the real error will be much smaller, + /// since this uses cubic splines at the end. + /// \param rel_tol the maximum relative error + /// permitted when linearly interpolating the points. + /// the real error will be much smaller, + /// since this uses cubic splines at the end. + /// \param lowerSlopeNatural if true, set y'(first point) + /// from 3-point parabola, + /// otherwise compute it from \a lowerSope + /// \param lowerSlope derivative of the function at the lower bound, + /// used only if \a lowerSlopeNatural is false + /// \param upperSlopeNatural if true, + /// set y'(last point) from 3-point parabola, + /// otherwise compute it from \a upperSope + /// \param upperSlope derivative of the function at the upper bound, + /// used only + /// if \a upperSlopeNatural is false + /// \return the same interpolating function, filled + /// \note If the interpolator being filled has a log vertical axis, + /// put the desired + /// relative error in + /// \a abs_tol, and 0 in \a rel_tol since the absolute error + /// on the log of a function + /// is the relative error + /// on the function itself. + interpolating_function_p & + sample_function(const c2_function &func, + float_type amin, float_type amax, + float_type abs_tol, float_type rel_tol, + bool lowerSlopeNatural, float_type lowerSlope, + bool upperSlopeNatural, float_type upperSlope + ) throw(c2_exception); + /// \brief initialize from a grid of points and a + /// c2_function (un-normalized) to an + /// interpolator which, when evaluated with a + /// uniform random variate on [0,1] returns + /// random numbers + /// distributed as the input function. + /// \see \ref random_subsec "Arbitrary random generation" + /// inverse_integrated_density starts with a probability density + /// std::vector, + /// generates the integral, + /// and generates an interpolating_function_p of the inverse function which, + /// when evaluated using a uniform random on [0,1] returns values + /// with a density distribution equal to the input distribution + /// If the data are passed in reverse order (large X first), + /// the integral is carried out + /// from the big end. + /// \param bincenters the positions at which to sample the + /// function \a binheights + /// \param binheights a function which describes the density + /// of the random number + /// distribution to be produced. + /// \return an initialized interpolator, which + /// if evaluated randomly with a uniform variate on [0,1] produces numbers + /// distributed according to \a binheights + interpolating_function_p & load_random_generator_function( + const std::vector &bincenters, + const c2_function &binheights) + throw(c2_exception); - /// \brief initialize from a grid of points and a c2_function (un-normalized) to an - /// interpolator which, when evaluated with a uniform random variate on [0,1] returns random numbers - /// distributed as the input function. - /// \see \ref random_subsec "Arbitrary random generation" - /// inverse_integrated_density starts with a probability density std::vector, generates the integral, - /// and generates an interpolating_function_p of the inverse function which, when evaluated using a uniform random on [0,1] returns values - /// with a density distribution equal to the input distribution - /// If the data are passed in reverse order (large X first), the integral is carried out from the big end. - /// \param bincenters the positions at which to sample the function \a binheights - /// \param binheights a function which describes the density of the random number distribution to be produced. - /// \return an initialized interpolator, which - /// if evaluated randomly with a uniform variate on [0,1] produces numbers - /// distributed according to \a binheights - interpolating_function_p & load_random_generator_function( - const std::vector &bincenters, const c2_function &binheights) - throw(c2_exception); + interpolating_function_p & load_random_generator_bins( + const std::vector &bins, + const std::vector &binheights, + bool splined=true) + throw(c2_exception); + + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception); + + /// \brief destructor + virtual ~interpolating_function_p() { delete &fTransform; } + + virtual interpolating_function_p &clone() + const throw(c2_exception) + { return *new interpolating_function_p(); } + + void get_data(std::vector &xvals, + std::vector &yvals) const throw() ; + + void get_internal_data( + std::vector &xvals, + std::vector &yvals, + std::vector &y2vals) const + { xvals=X; yvals=F; y2vals=y2; } - /// \brief initialize from a grid of points and an std::vector of probability densities (un-normalized) to an - /// interpolator which, when evaluated with a uniform random variate on [0,1] returns random numbers - /// distributed as the input histogram. - /// \see \ref random_subsec "Arbitrary random generation" - /// inverse_integrated_density starts with a probability density std::vector, generates the integral, - /// and generates an interpolating_function_p of the inverse function which, when evaluated using a uniform random on [0,1] returns values - /// with a density distribution equal to the input distribution - /// If the data are passed in reverse order (large X first), the integral is carried out from the big end. - /// \param bins if \a bins .size()==\a binheights .size(), the centers of the bins. \n - /// if \a bins .size()==\a binheights .size()+1, the edges of the bins - /// \param binheights a vector which describes the density of the random number distribution to be produced. - /// Note density... the numbers in the bins are not counts, but counts/unit bin width. - /// \param splined if true (default), use cubic spline, if false, use linear interpolation. - /// This can often be used to fix ringing if there are very sharp features in the generator. - /// \return an initialized interpolator, which - /// if evaluated randomly with a uniform variate on [0,1] produces numbers - /// distributed according to \a binheights - interpolating_function_p & load_random_generator_bins( - const std::vector &bins, const std::vector &binheights, bool splined=true) - throw(c2_exception); + void set_lower_extrapolation(float_type bound); + void set_upper_extrapolation(float_type bound); - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception); - - /// \brief destructor - virtual ~interpolating_function_p() { delete &fTransform; } - - /// \brief create a new, empty interpolating function of this type (virtual constructor) - virtual interpolating_function_p &clone() const throw(c2_exception) - { return *new interpolating_function_p(); } - - /// \brief retrieve copies of the x & y tables from which this was built - /// - /// This is often useful in the creation of new interpolating functions with transformed data. - /// The vectors will have their sizes set correctly on return. - /// \param [in, out] xvals the abscissas - /// \param [in, out] yvals the ordinates - void get_data(std::vector &xvals, std::vector &yvals) const throw() ; - - /// \brief retrieve copies of the transformed x, y and y2 tables from which this was built - /// - /// The vectors will have their sizes set correctly on return. - /// \param [in, out] xvals the transformed abscissas - /// \param [in, out] yvals the transformed ordinates - /// \param [in, out] y2vals the second derivatives - void get_internal_data( - std::vector &xvals, - std::vector &yvals, - std::vector &y2vals) const - { xvals=X; yvals=F; y2vals=y2; } + interpolating_function_p & + unary_operator(const c2_function &source) const; - /// \brief enable extrapolation of the function below the tabulated data. - /// - /// This allows the interpolator to be extrapolated outside the bounds of the data, - /// using whatever derivatives it already had at the lower bound. - /// \param bound the abscissa to which the function should be extended. - void set_lower_extrapolation(float_type bound); - /// \brief enable extrapolation of the function above the tabulated data. - /// - /// This allows the interpolator to be extrapolated outside the bounds of the data, - /// using whatever derivatives it already had at the upper bound. - /// \param bound the abscissa to which the function should be extended. - void set_upper_extrapolation(float_type bound); - - // these functions correctly combine the interpolating function with another interpolating function - // preserving the X bounds and mapping functions of the host (left hand) function. - - /// \brief create a new interpolating_function_p which is the \a source - /// function applied to every point in the interpolating tables - /// - /// This carefully manages the derivative of the composed function at the two ends. - /// \param source the function to apply - /// \return a new interpolating_function_p with the same mappings for x and y - interpolating_function_p & unary_operator(const c2_function &source) const; - - /// \brief create a new interpolating_function_p which is the parent interpolating_function_p - /// combined with \a rhs using \a combiner at every point in the interpolating tables - /// - /// This carefully manages the derivative of the composed function at the two ends. - /// \param rhs the function to apply - /// \param combining_stub a function which defines which binary operation to use. - /// \return a new interpolating_function_p with the same mappings for x and y - interpolating_function_p & binary_operator(const c2_function &rhs, - const c2_binary_function *combining_stub - ) const; - /// \brief produce a newly resampled interpolating_function_p which is the specified sum. - /// \param rhs the function to add, pointwise - /// \return a new interpolating_function_p - interpolating_function_p & add_pointwise (const c2_function &rhs) const { - return binary_operator(rhs, new c2_sum_p()); } - /// \brief produce a newly resampled interpolating_function_p which is the specified difference. - /// \param rhs the function to subtract, pointwise - /// \return a new interpolating_function_p - interpolating_function_p & subtract_pointwise (const c2_function &rhs) const { + interpolating_function_p & + binary_operator(const c2_function &rhs, + const c2_binary_function *combining_stub + ) const; + interpolating_function_p & + add_pointwise (const c2_function &rhs) const { + return binary_operator(rhs, new c2_sum_p()); } + interpolating_function_p & + subtract_pointwise (const c2_function &rhs) const { return binary_operator(rhs, new c2_diff_p()); } - /// \brief produce a newly resampled interpolating_function_p which is the specified product. - /// \param rhs the function to multiply, pointwise - /// \return a new interpolating_function_p - interpolating_function_p & multiply_pointwise (const c2_function &rhs) const { + interpolating_function_p & + multiply_pointwise (const c2_function &rhs) const { return binary_operator(rhs, new c2_product_p()); } - /// \brief produce a newly resampled interpolating_function_p which is the specified ratio. - /// \param rhs the function to divide, pointwise - /// \return a new interpolating_function_p - interpolating_function_p & divide_pointwise (const c2_function &rhs) const { + interpolating_function_p & + divide_pointwise (const c2_function &rhs) const { return binary_operator(rhs, new c2_ratio_p()); } - /// \brief copy data from another interpolating function. This only makes sense if the source - /// function has the same transforms as the destination. - /// \param rhs interpolating_function_p to copy from - void clone_data(const interpolating_function_p &rhs) { - Xraw=rhs.Xraw; X=rhs.X; F=rhs.F; y2=rhs.y2; - set_sampling_grid_pointer(Xraw); - } + void clone_data(const interpolating_function_p &rhs) { + Xraw=rhs.Xraw; X=rhs.X; F=rhs.F; y2=rhs.y2; + set_sampling_grid_pointer(Xraw); + } - const c2_function_transformation &fTransform; + const c2_function_transformation &fTransform; protected: - /// \brief create the spline coefficients - void spline( - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope - ) throw(c2_exception); + /// \brief create the spline coefficients + void spline( + bool lowerSlopeNatural, float_type lowerSlope, + bool upperSlopeNatural, float_type upperSlope + ) throw(c2_exception); - // This is for sorting the data. It must be static if it's going to be a class member. - static bool comp_pair(std::pair const &i, std::pair const &j) {return i.first const &i, + std::pair const &j) + {return i.first Xraw, X, F, y2; - c2_const_ptr sampler_function; - bool xInverted; - mutable size_t lastKLow; + std::vector Xraw, X, F, y2; + c2_const_ptr sampler_function; + bool xInverted; + mutable size_t lastKLow; }; /// \brief A spline with X transformed into log space. /// \ingroup interpolators -/// Most useful for functions looking like y=log(x) or any other function with a huge X dynamic range, -/// and a slowly varying Y. /// -/// The factory function c2_factory::log_lin_interpolating_function() creates *new log_lin_interpolating_function_p() -template class log_lin_interpolating_function_p : public interpolating_function_p { +template class log_lin_interpolating_function_p + : public interpolating_function_p { public: - /// \brief an empty log-linear cubic-spline interpolating_function_p - /// - log_lin_interpolating_function_p() : interpolating_function_p(*new c2_log_lin_function_transformation) - { } - /// \brief create a new, empty interpolating function of this type (virtual constructor) - virtual interpolating_function_p &clone() const throw(c2_exception) - { return *new log_lin_interpolating_function_p(); } + /// \brief an empty log-linear cubic-spline interpolating_function_p + /// + log_lin_interpolating_function_p() : + interpolating_function_p( + *new c2_log_lin_function_transformation) + { } + virtual interpolating_function_p &clone() + const throw(c2_exception) + { return *new log_lin_interpolating_function_p(); } }; @@ -1610,33 +1741,38 @@ public: /// \ingroup interpolators /// Most useful for functions looking like y=exp(x) /// -/// The factory function c2_factory::lin_log_interpolating_function() creates *new lin_log_interpolating_function_p() -template class lin_log_interpolating_function_p : public interpolating_function_p { +template class lin_log_interpolating_function_p + : public interpolating_function_p { public: /// \brief an empty linear-log cubic-spline interpolating_function_p /// - lin_log_interpolating_function_p() : interpolating_function_p(*new c2_lin_log_function_transformation) - { } - /// \brief create a new, empty interpolating function of this type (virtual constructor) - virtual interpolating_function_p &clone() const throw(c2_exception) - { return *new lin_log_interpolating_function_p(); } + lin_log_interpolating_function_p() + : interpolating_function_p( + *new c2_lin_log_function_transformation) + { } + virtual interpolating_function_p &clone() + const throw(c2_exception) + { return *new lin_log_interpolating_function_p(); } }; /// \brief A spline with X and Y transformed into log space. /// \ingroup interpolators -/// Most useful for functions looking like y=x^n or any other function with a huge X and Y dynamic range. +/// Most useful for functions looking like y=x^n or any other +/// function with a huge X and Y dynamic range. /// -/// The factory function c2_factory::log_log_interpolating_function() creates *new log_log_interpolating_function_p() -template class log_log_interpolating_function_p : public interpolating_function_p { +template class log_log_interpolating_function_p + : public interpolating_function_p { public: /// \brief an empty log-log cubic-spline interpolating_function_p /// - log_log_interpolating_function_p() : interpolating_function_p(*new c2_log_log_function_transformation) - { } - /// \brief create a new, empty interpolating function of this type (virtual constructor) - virtual interpolating_function_p &clone() const throw(c2_exception) - { return *new log_log_interpolating_function_p(); } + log_log_interpolating_function_p() : + interpolating_function_p( + *new c2_log_log_function_transformation) + { } + virtual interpolating_function_p &clone() + const throw(c2_exception) + { return *new log_log_interpolating_function_p(); } }; @@ -1645,143 +1781,181 @@ public: /// Most useful for thermodynamic types of data where Y is roughly A*exp(-B/x). /// Typical examples are reaction rate data, and thermistor calibration data. /// -/// The factory function c2_factory::arrhenius_interpolating_function() creates *new arrhenius_interpolating_function_p() -template class arrhenius_interpolating_function_p : public interpolating_function_p { +template class arrhenius_interpolating_function_p + : public interpolating_function_p { public: /// \brief an empty arrhenius cubic-spline interpolating_function_p /// - arrhenius_interpolating_function_p() : interpolating_function_p(*new c2_arrhenius_function_transformation) - { } - /// \brief create a new, empty interpolating function of this type (virtual constructor) - virtual interpolating_function_p &clone() const throw(c2_exception) - { return *new arrhenius_interpolating_function_p(); } + arrhenius_interpolating_function_p() + : interpolating_function_p( + *new c2_arrhenius_function_transformation) + { } + virtual interpolating_function_p &clone() + const throw(c2_exception) + { return *new arrhenius_interpolating_function_p(); } }; /// \brief compute sin(x) with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::sin() creates *new c2_sin_p -template class c2_sin_p : public c2_function { +template class c2_sin_p + : public c2_function { public: - /// \brief constructor. - c2_sin_p() : c2_function() {} + /// \brief constructor. + c2_sin_p() : c2_function() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { float_type q=std::sin(x); if(yprime) *yprime=std::cos(x); if(yprime2) *yprime2=-q; return q; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { float_type q=std::sin(x); + if(yprime) *yprime=std::cos(x); + if(yprime2) *yprime2=-q; + return q; } - /// \brief return a grid dynamically, suitable for use with trig functions with period 2*pi - /// \param amin the lower bound for the grid - /// \param amax upper bound for the grid - /// \param [in, out] grid the sampling grid. - virtual void get_sampling_grid(float_type amin, float_type amax, std::vector &grid) const; + virtual void get_sampling_grid(float_type amin, float_type amax, + std::vector &grid) const; }; /// \brief compute cos(x) with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::cos() creates *new c2_cos_p -template class c2_cos_p : public c2_sin_p { +template class c2_cos_p + : public c2_sin_p { public: - /// \brief constructor. - c2_cos_p() : c2_sin_p() {} + /// \brief constructor. + c2_cos_p() : c2_sin_p() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { float_type q=std::cos(x); if(yprime) *yprime=-std::sin(x); if(yprime2) *yprime2=-q; return q; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { float_type q=std::cos(x); + if(yprime) *yprime=-std::sin(x); + if(yprime2) *yprime2=-q; + return q; } }; /// \brief compute tan(x) with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::tan() creates *new c2_tan_p -template class c2_tan_p : public c2_function { +template class c2_tan_p + : public c2_function { public: - /// \brief constructor. - c2_tan_p() : c2_function() {} + /// \brief constructor. + c2_tan_p() : c2_function() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { - float_type c=std::cos(x), ss=std::sin(x); - float_type t=ss/c; - float_type yp=1/(c*c); - if(yprime) *yprime=yp; if(yprime2) *yprime2=2*t*yp; - return t; - } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { + float_type c=std::cos(x), ss=std::sin(x); + float_type t=ss/c; + float_type yp=1/(c*c); + if(yprime) { *yprime=yp; } + if(yprime2){*yprime2=2*t*yp; } + return t; + } }; /// \brief compute log(x) with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::log() creates *new c2_log_p -template class c2_log_p : public c2_function { +template class c2_log_p + : public c2_function { public: - /// \brief constructor. - c2_log_p() : c2_function() {} + /// \brief constructor. + c2_log_p() : c2_function() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { if(yprime) *yprime=1.0/x; if(yprime2) *yprime2=-1.0/(x*x); return std::log(x); } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { if(yprime) *yprime=1.0/x; + if(yprime2) *yprime2=-1.0/(x*x); + return std::log(x); } }; /// \brief compute exp(x) with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::exp() creates *new c2_exp_p -template class c2_exp_p : public c2_function { +template class c2_exp_p + : public c2_function { public: - /// \brief constructor. - c2_exp_p() : c2_function() {} + /// \brief constructor. + c2_exp_p() : c2_function() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { float_type q=std::exp(x); if(yprime) *yprime=q; if(yprime2) *yprime2=q; return q; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { float_type q=std::exp(x); + if(yprime) *yprime=q; + if(yprime2) *yprime2=q; + return q; } }; /// \brief compute sqrt(x) with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::sqrt() creates *new c2_sqrt_p() -template class c2_sqrt_p : public c2_function { +template class c2_sqrt_p + : public c2_function { public: - /// \brief constructor. - c2_sqrt_p() : c2_function() {} + /// \brief constructor. + c2_sqrt_p() : c2_function() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { float_type q=std::sqrt(x); if(yprime) *yprime=0.5/q; if(yprime2) *yprime2=-0.25/(x*q); return q; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { float_type q=std::sqrt(x); + if(yprime) *yprime=0.5/q; + if(yprime2) *yprime2=-0.25/(x*q); + return q; } }; /// \brief compute scale/x with its derivatives. /// \ingroup parametric_functions /// /// The factory function c2_factory::recip() creates *new c2_recip_p -template class c2_recip_p : public c2_function { +template class c2_recip_p + : public c2_function { public: - /// \brief constructor. - c2_recip_p(float_type scale) : c2_function(), rscale(scale) {} + /// \brief constructor. + c2_recip_p(float_type scale) : c2_function(), rscale(scale) {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { - float_type q=1.0/x; - float_type y=rscale*q; - if(yprime) *yprime=-y*q; - if(yprime2) *yprime2=2*y*q*q; - return y; - } - /// \brief reset the scale factor - /// \param scale the new numerator - void reset(float_type scale) { rscale=scale; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { + float_type q=1.0/x; + float_type y=rscale*q; + if(yprime) *yprime=-y*q; + if(yprime2) *yprime2=2*y*q*q; + return y; + } + /// \brief reset the scale factor + /// \param scale the new numerator + void reset(float_type scale) { rscale=scale; } private: - float_type rscale; + float_type rscale; }; /// \brief compute x with its derivatives. /// \ingroup math_functions /// /// The factory function c2_factory::identity() creates *new c2_identity_p -template class c2_identity_p : public c2_function { +template class c2_identity_p + : public c2_function { public: - /// \brief constructor. - c2_identity_p() : c2_function() {} + /// \brief constructor. + c2_identity_p() : c2_function() {} - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { if(yprime) *yprime=1.0; if(yprime2) *yprime2=0; return x; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { if(yprime) *yprime=1.0; if(yprime2) *yprime2=0; return x; } }; /** @@ -1795,26 +1969,32 @@ public: The factory function c2_factory::linear() creates *new c2_linear_p */ -template class c2_linear_p : public c2_function { +template class c2_linear_p + : public c2_function { public: - /// \brief Construct the operator f=y0 + slope * (x-x0) - /// \param x0 the x offset - /// \param y0 the y-intercept i.e. f(x0) - /// \param slope the slope of the mapping - c2_linear_p(float_type x0, float_type y0, float_type slope) : - c2_function(), xint(x0), intercept(y0), m(slope) {} - /// \brief Change the slope and intercepts after construction. - /// \param x0 the x offset - /// \param y0 the y-intercept - /// \param slope the slope of the mapping - void reset(float_type x0, float_type y0, float_type slope) { xint=x0; intercept=y0; m=slope; } - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { if(yprime) *yprime=m; if(yprime2) *yprime2=0; return m*(x-xint)+intercept; } + /// \brief Construct the operator f=y0 + slope * (x-x0) + /// \param x0 the x offset + /// \param y0 the y-intercept i.e. f(x0) + /// \param slope the slope of the mapping + c2_linear_p(float_type x0, float_type y0, float_type slope) : + c2_function(), xint(x0), intercept(y0), m(slope) {} + /// \brief Change the slope and intercepts after construction. + /// \param x0 the x offset + /// \param y0 the y-intercept + /// \param slope the slope of the mapping + void reset(float_type x0, float_type y0, float_type slope) + { xint=x0; intercept=y0; m=slope; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { if(yprime) *yprime=m; + if(yprime2) *yprime2=0; + return m*(x-xint)+intercept; } private: - float_type xint, intercept, m; + float_type xint, intercept, m; protected: - c2_linear_p() {} // do not allow naked construction... it is usually an accident. + c2_linear_p() {} }; /** @@ -1826,32 +2006,41 @@ protected: \endcode produces a new c2_function F=2.0 + 3.0*(f-1.2) + 4.0*(f-1.2)^2 - note that the parameters are overdetermined, but allows the flexibility of two different representations + note that the parameters are overdetermined, + but allows the flexibility of two different representations The factory function c2_factory::quadratic() creates *new c2_quadratic_p */ -template class c2_quadratic_p : public c2_function { +template class c2_quadratic_p + : public c2_function { public: /// \brief Construct the operator /// \param x0 the center around which the powers are computed /// \param y0 the value of the function at \a x = \a x0 /// \param xcoef the scale on the (\a x - \a x0) term /// \param x2coef the scale on the (\a x - \a x0)^2 term - c2_quadratic_p(float_type x0, float_type y0, float_type xcoef, float_type x2coef) : - c2_function(), intercept(y0), center(x0), a(x2coef), b(xcoef) {} + c2_quadratic_p(float_type x0, float_type y0, + float_type xcoef, float_type x2coef) : + c2_function(), intercept(y0), center(x0), a(x2coef), b(xcoef) {} /// \brief Modify the coefficients after construction /// \param x0 the new center around which the powers are computed /// \param y0 the new value of the function at \a x = \a x0 /// \param xcoef the new scale on the (\a x - \a x0) term /// \param x2coef the new scale on the (\a x - \a x0)^2 term - void reset(float_type x0, float_type y0, float_type xcoef, float_type x2coef) { intercept=y0; center=x0; a=x2coef; b=xcoef; } - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { float_type dx=x-center; if(yprime) *yprime=2*a*dx+b; if(yprime2) *yprime2=2*a; return a*dx*dx+b*dx+intercept; } + void reset(float_type x0, float_type y0, float_type xcoef, + float_type x2coef) { intercept=y0; center=x0; a=x2coef; b=xcoef; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { float_type dx=x-center; + if(yprime) *yprime=2*a*dx+b; + if(yprime2) *yprime2=2*a; + return a*dx*dx+b*dx+intercept; } private: - float_type intercept, center, a, b; + float_type intercept, center, a, b; protected: - c2_quadratic_p() {} // do not allow naked construction... it is usually an accident. + c2_quadratic_p() {} }; /** @@ -1866,24 +2055,30 @@ protected: The factory function c2_factory::power_law() creates *new c2_power_law_p */ -template class c2_power_law_p : public c2_function { +template class c2_power_law_p + : public c2_function { public: /// \brief Construct the operator /// \param scale the multipler /// \param power the exponent - c2_power_law_p(float_type scale, float_type power) : - c2_function(), a(scale), b(power) {} + c2_power_law_p(float_type scale, float_type power) : + c2_function(), a(scale), b(power) {} /// \brief Modify the mapping after construction /// \param scale the new multipler /// \param power the new exponent - void reset(float_type scale, float_type power) { a=scale; b=power; } - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) - { float_type q=a*std::pow(x,b-2); if(yprime) *yprime=b*q*x; if(yprime2) *yprime2=b*(b-1)*q; return q*x*x; } + void reset(float_type scale, float_type power) { a=scale; b=power; } + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception) + { float_type q=a*std::pow(x,b-2); + if(yprime) *yprime=b*q*x; + if(yprime2) *yprime2=b*(b-1)*q; + return q*x*x; } private: - float_type a, b; + float_type a, b; protected: - c2_power_law_p() {} // do not allow naked construction... it is usually an accident. + c2_power_law_p() {} }; /** @@ -1902,187 +2097,236 @@ protected: \see \ref combined_inversion_hinting_sampling - The factory function c2_factory::inverse_function() creates *new c2_inverse_function_p */ -template class c2_inverse_function_p : public c2_function { +template class c2_inverse_function_p + : public c2_function { public: - /// \brief Construct the operator - /// \param source the function to be inverted - c2_inverse_function_p(const c2_function &source); - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception); + /// \brief Construct the operator + /// \param source the function to be inverted + c2_inverse_function_p(const c2_function &source); + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw(c2_exception); - /// \brief give the function a hint as to where to look for its inverse - /// \param hint the likely value of the inverse, which defaults to whatever the evaluation returned. + /// \brief give the function a hint as to where to look for its inverse + /// \param hint the likely value of the inverse, + /// which defaults to whatever the evaluation returned. void set_start_hint(float_type hint) const { start_hint=hint; } - /// \brief get the starting hint. - /// - /// This is virtual so if there is a better way, this can be easily overridden. - /// It is used in value_with_derivatives() to guess where to start the root finder. - /// \param x the abscissa for which an estimate is needed virtual float_type get_start_hint(float_type x) const - { return hinting_function.valid()? hinting_function(x) : start_hint; } + { return hinting_function.valid()? hinting_function(x) : start_hint; } - /// \brief set or unset the approximate function used to start the root finder - /// \anchor set_hinting_function_discussion - /// A hinting function is mostly useful if the evaluation of this inverse is - /// going to be carried out in very non-local order, so the root finder has to start over - /// for each step. If most evaluations are going to be made in fairly localized clusters (scanning - /// through the function, for example), the default mechanism used (which just remembers the last point) - /// is almost certainly faster. - /// - /// Typically, the hinting function is likely to be set up by creating the inverse function, - /// and then adaptively sampling an interpolating function from it, and then using the result - /// to hint it. Another way, if the parent function is already an interpolating function, is just to create - /// a version of the parent with the x & y coordinates reversed. - /// - /// \see \ref combined_inversion_hinting_sampling - /// - /// \param hint_func the function that is an approximate inverse of the parent of this inverse_function - void set_hinting_function(const c2_function *hint_func) - { hinting_function.set_function(hint_func); } - /// \brief set the hinting function from a pointer. - /// - /// See \ref set_hinting_function_discussion "discussion" - /// \param hint_func the container holding the function - void set_hinting_function(const c2_const_ptr hint_func) - { hinting_function=hint_func; } + /// \brief set or unset the approximate function used to start the root finder + /// \anchor set_hinting_function_discussion + /// A hinting function is mostly useful if the evaluation of this inverse is + /// going to be carried out in very non-local order, + /// so the root finder has to start over + /// for each step. If most evaluations are going to be made + /// in fairly localized clusters + /// (scanning through the function, for example), the default mechanism used + /// (which just remembers the last point) + /// is almost certainly faster. + /// + /// Typically, the hinting function is likely to be set up by + /// creating the inverse function, + /// and then adaptively sampling an interpolating function from it, + /// and then using the result + /// to hint it. Another way, if the parent function is already + /// an interpolating function, + /// is just to create a version of the parent with the x & y + /// coordinates reversed. + /// + /// \see \ref combined_inversion_hinting_sampling + /// + /// \param hint_func the function that is an approximate inverse + /// of the parent of + /// this inverse_function + void set_hinting_function(const c2_function *hint_func) + { hinting_function.set_function(hint_func); } + /// \brief set the hinting function from a pointer. + /// + /// See \ref set_hinting_function_discussion "discussion" + /// \param hint_func the container holding the function + void set_hinting_function(const c2_const_ptr hint_func) + { hinting_function=hint_func; } protected: - c2_inverse_function_p() {} // do not allow naked construction... it is usually an accident. - mutable float_type start_hint; - const c2_const_ptr func; - c2_const_ptr hinting_function; + c2_inverse_function_p() {} + mutable float_type start_hint; + const c2_const_ptr func; + c2_const_ptr hinting_function; }; /** \brief - An interpolating_function_p which is the cumulative integral of a histogram. - \ingroup interpolators - Note than binedges should be one element longer than binheights, since the lower & upper edges are specified. - Note that this is a malformed spline, since the second derivatives are all zero, so it has less continuity. - Also, note that the bin edges can be given in backwards order to generate the - reversed accumulation (starting at the high end) + An interpolating_function_p which is the cumulative integral of a histogram. + \ingroup interpolators + Note than binedges should be one element longer than binheights, + since the lower & upper edges are specified. + Note that this is a malformed spline, + since the second derivatives are all zero, + so it has less continuity. + Also, note that the bin edges can be given in backwards order to generate the + reversed accumulation (starting at the high end) */ -template class accumulated_histogram : public interpolating_function_p { +template class accumulated_histogram + : public interpolating_function_p { public: - /// \brief Construct the integrated histogram - /// \param binedges the edges of the bins in \a binheights. It should have one more element than \a binheights - /// \param binheights the number of counts in each bin. - /// \param normalize if true, normalize integral to 1 - /// \param inverse_function if true, drop zero channels, and return inverse function for random generation - /// \param drop_zeros eliminate null bins before integrating, so integral is strictly monotonic. - accumulated_histogram(const std::vectorbinedges, const std::vector binheights, - bool normalize=false, bool inverse_function=false, bool drop_zeros=true); + /// \brief Construct the integrated histogram + /// \param binedges the edges of the bins in \a binheights. + /// It should have one more element than \a binheights + /// \param binheights the number of counts in each bin. + /// \param normalize if true, normalize integral to 1 + /// \param inverse_function if true, drop zero channels, + /// and return inverse function for random generation + /// \param drop_zeros eliminate null bins before integrating, + /// so integral is strictly monotonic. + accumulated_histogram(const std::vectorbinedges, + const std::vector binheights, + bool normalize=false, + bool inverse_function=false, bool drop_zeros=true); }; /// \brief create a c2_function which smoothly connects two other c2_functions. /// \ingroup parametric_functions -/// This takes two points and generates a polynomial which matches two c2_function arguments -/// at those two points, with two derivatives at each point, and an arbitrary value at the center of the -/// region. It is useful for splicing together functions over rough spots (0/0, for example). +/// This takes two points and generates a polynomial +/// which matches two c2_function arguments +/// at those two points, with two derivatives at each point, +/// and an arbitrary value at the center of the +/// region. It is useful for splicing together functions +/// over rough spots (0/0, for example). /// -/// If \a auto_center is true, the value at the midpoint is computed so that the resulting polynomial is -/// of order 5. If \a auto_center is false, the value \a y1 is used at the midpoint, resulting in a +/// If \a auto_center is true, the value at the midpoint is computed so +/// that the resulting polynomial is +/// of order 5. If \a auto_center is false, the +/// value \a y1 is used at the midpoint, +/// resulting in a /// polynomial of order 6. /// -/// This is usually used in conjunction with c2_piecewise_function_p to assemble an apparently seamless +/// This is usually used in conjunction +/// with c2_piecewise_function_p to assemble an +/// apparently seamless /// function from a series of segments. -/// \see \ref piecewise_applications_subsec "Sample Applications" and \ref c2_function::adaptively_sample() "Adaptive sampling" +/// \see \ref piecewise_applications_subsec "Sample Applications" +/// and \ref c2_function::adaptively_sample() "Adaptive sampling" /// -/// The factory function c2_factory::connector_function() creates *new c2_connector_function_p -template class c2_connector_function_p : public c2_function { +template class c2_connector_function_p + : public c2_function { public: - /// \brief construct the container from two functions - /// \param x0 the point at which to match \a f1 and its derivatives - /// \param f0 the function on the left side to be connected - /// \param x2 the point at which to match \a f2 and its derivatives - /// \param f2 the function on the right side to be connected - /// \param auto_center if true, no midpoint value is specified. If false, match the value \a y1 at the midpoint - /// \param y1 the value to match at the midpoint, if \a auto_center is false - /// \return a c2_function with domain (\a x0,\a x2) which smoothly connects \a f0(x0) and \a f2(x2) - c2_connector_function_p(float_type x0, const c2_function &f0, float_type x2, const c2_function &f2, + /// \brief construct the container from two functions + /// \param x0 the point at which to match \a f1 and its derivatives + /// \param f0 the function on the left side to be connected + /// \param x2 the point at which to match \a f2 and its derivatives + /// \param f2 the function on the right side to be connected + /// \param auto_center if true, no midpoint value is specified. + /// If false, match the value \a y1 at the midpoint + /// \param y1 the value to match at the midpoint, if \a auto_center is false + /// \return a c2_function with domain (\a x0,\a x2) which smoothly + /// connects \a f0(x0) and \a f2(x2) + c2_connector_function_p(float_type x0, const c2_function &f0, + float_type x2, const c2_function &f2, bool auto_center, float_type y1); - /// \brief construct the container from numerical values - /// \param x0 the position of the left edge - /// \param y0 the function derivative on the left boundary - /// \param yp0 the function second derivative on the left boundary - /// \param ypp0 the function value on the left boundary - /// \param x2 the position of the right edge - /// \param y2 the function derivative on the right boundary - /// \param yp2 the function second derivative on the right boundary - /// \param ypp2 the function value on the right boundary - /// \param auto_center if true, no midpoint value is specified. If false, match the value \a y1 at the midpoint - /// \param y1 the value to match at the midpoint, if \a auto_center is false - /// \return a c2_function with domain (\a x0,\a x2) which smoothly connects the points described - /// \anchor c2_connector_raw_init_docs - c2_connector_function_p( + /// \brief construct the container from numerical values + /// \param x0 the position of the left edge + /// \param y0 the function derivative on the left boundary + /// \param yp0 the function second derivative on the left boundary + /// \param ypp0 the function value on the left boundary + /// \param x2 the position of the right edge + /// \param y2 the function derivative on the right boundary + /// \param yp2 the function second derivative on the right boundary + /// \param ypp2 the function value on the right boundary + /// \param auto_center if true, no midpoint value is specified. + /// If false, match the value \a y1 at the midpoint + /// \param y1 the value to match at the midpoint, if \a auto_center is false + /// \return a c2_function with domain (\a x0,\a x2) + /// which smoothly connects the points described + /// \anchor c2_connector_raw_init_docs + c2_connector_function_p( float_type x0, float_type y0, float_type yp0, float_type ypp0, float_type x2, float_type y2, float_type yp2, float_type ypp2, bool auto_center, float_type y1); - /// \brief construct the container from c2_fblock objects - /// \param fb0 the left edge - /// \param fb2 the right edge - /// \param auto_center if true, no midpoint value is specified. If false, match the value \a y1 at the midpoint - /// \param y1 the value to match at the midpoint, if \a auto_center is false - /// \return a c2_function with domain (\a fb0.x,\a fb2.x) which smoothly connects \a fb0 and \a fb2 - c2_connector_function_p( + /// \brief construct the container from c2_fblock objects + /// \param fb0 the left edge + /// \param fb2 the right edge + /// \param auto_center if true, no midpoint value is specified. + /// If false, match the value \a y1 at the midpoint + /// \param y1 the value to match at the midpoint, if \a auto_center is false + /// \return a c2_function with domain (\a fb0.x,\a fb2.x) which smoothly + /// connects \a fb0 and \a fb2 + c2_connector_function_p( const c2_fblock &fb0, const c2_fblock &fb2, bool auto_center, float_type y1); - /// \brief destructor - virtual ~c2_connector_function_p(); - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw (c2_exception); + /// \brief destructor + virtual ~c2_connector_function_p(); + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw (c2_exception); protected: /// \brief fill container numerically void init( - const c2_fblock &fb0, - const c2_fblock &fb2, - bool auto_center, float_type y1); + const c2_fblock &fb0, + const c2_fblock &fb2, + bool auto_center, float_type y1); - float_type fhinv, fy1, fa, fb, fc, fd, fe, ff; + float_type fhinv, fy1, fa, fb, fc, fd, fe, ff; }; -/// \brief create a c2_function which is a piecewise assembly of other c2_functions. +/// \brief create a c2_function which is a piecewise assembly +/// of other c2_functions. /// \ingroup containers -/// The functions must have increasing, non-overlapping domains. Any empty space +/// The functions must have increasing, non-overlapping domains. +/// Any empty space /// between functions will be filled with a linear interpolation. /// -/// \note If you want a smooth connection, instead of the default linear interpolation, -/// create a c2_connector_function_p to bridge the gap. The linear interpolation is intended +/// \note If you want a smooth connection, +/// instead of the default linear interpolation, +/// create a c2_connector_function_p to bridge the gap. +/// The linear interpolation is intended /// to be a barely intelligent bridge, and may never get used by anyone. /// -/// \note The creation of the container results in the creation of an explicit sampling grid. -/// If this is used with functions with a large domain, or which generate very dense sampling grids, -/// it could eat a lot of memory. Do not abuse this by using functions which can generate gigantic grids. +/// \note The creation of the container results in the +/// creation of an explicit sampling grid. +/// If this is used with functions with a large domain, +/// or which generate very dense sampling grids, +/// it could eat a lot of memory. Do not abuse this by using functions which +/// can generate gigantic grids. /// /// \see \ref piecewise_applications_subsec "Sample Applications" \n /// c2_plugin_function_p page \n /// c2_connector_function_p page \n /// \ref c2_function::adaptively_sample() "Adaptive sampling" /// -/// The factory function c2_factory::piecewise_function() creates *new c2_piecewise_function_p -template class c2_piecewise_function_p : public c2_function { +template class c2_piecewise_function_p + : public c2_function { public: - /// \brief construct the container - c2_piecewise_function_p(); - /// \brief destructor - virtual ~c2_piecewise_function_p(); - virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw (c2_exception); - /// \brief append a new function to the sequence - /// - /// This takes a c2_function, and appends it onto the end of the piecewise collection. - /// The domain of the function (which MUST be set) specifies the place it will be used in - /// the final function. If the domain exactly abuts the domain of the previous function, it - /// will be directly attached. If there is a gap, the gap will be filled in by linear interpolation. - /// \param func a c2_function with a defined domain to be appended to the collection - void append_function(const c2_function &func) throw (c2_exception); + /// \brief construct the container + c2_piecewise_function_p(); + /// \brief destructor + virtual ~c2_piecewise_function_p(); + virtual float_type value_with_derivatives( + float_type x, float_type *yprime, + float_type *yprime2) const throw (c2_exception); + /// \brief append a new function to the sequence + /// + /// This takes a c2_function, and appends it onto the end of + /// the piecewise collection. + /// The domain of the function (which MUST be set) + /// specifies the place it will be used in + /// the final function. If the domain exactly abuts + /// the domain of the previous function, it + /// will be directly attached. If there is a gap, the gap will be filled + /// in by linear interpolation. + /// \param func a c2_function with a defined domain to be + /// appended to the collection + void append_function(const c2_function &func) + throw (c2_exception); protected: - std::vector > functions; - mutable int lastKLow; + std::vector > functions; + mutable int lastKLow; }; #include "c2_function.icc" diff --git a/examples/extended/electromagnetic/TestEm7/include/c2_function.icc b/examples/extended/electromagnetic/TestEm7/include/c2_function.icc index a23b9a5126..4dcc6d5c8a 100644 --- a/examples/extended/electromagnetic/TestEm7/include/c2_function.icc +++ b/examples/extended/electromagnetic/TestEm7/include/c2_function.icc @@ -32,7 +32,7 @@ * \author Created by R. A. Weller and Marcus H. Mendenhall on 7/9/05. * \author Copyright 2005 __Vanderbilt University__. All rights reserved. * - * \version c2_function.cc 488 2012-04-04 11:30:21Z marcus + *\version c2_function.cc 488 2012-04-04 11:30:21Z marcus */ // $Id$ @@ -49,1491 +49,1652 @@ #include #include -template const std::string c2_function::cvs_file_vers() const +template const std::string + c2_function::cvs_file_vers() const { return "c2_function.cc 488 2012-04-04 11:30:21Z marcus "; } -// find a pre-bracketed root of a c2_function, which is a MUCH easier job than general root finding -// since the derivatives are known exactly, and smoothness is guaranteed. -// this searches for f(x)=value, to make life a little easier than always searching for f(x)=0 -template float_type c2_function::find_root(float_type lower_bracket, float_type upper_bracket, - float_type start, float_type value, int *error, - float_type *final_yprime, float_type *final_yprime2) const throw(c2_exception) +template float_type + c2_function::find_root(float_type lower_bracket, + float_type upper_bracket, + float_type start, float_type value, int *error, + float_type *final_yprime, float_type *final_yprime2) const + throw(c2_exception) { - // find f(x)=value within the brackets, using the guarantees of smoothness associated with a c2_function - // can use local f(x)=a*x**2 + b*x + c and solve quadratic to find root, then iterate - - float_type yp, yp2; // we will make unused pointers point here, to save null checks later - if (!final_yprime) final_yprime=&yp; - if (!final_yprime2) final_yprime2=&yp2; - - float_type ftol=5*(std::numeric_limits::epsilon()*std::abs(value)+std::numeric_limits::min()); - float_type xtol=5*(std::numeric_limits::epsilon()*(std::abs(upper_bracket)+std::abs(lower_bracket))+std::numeric_limits::min()); - - float_type root=start; // start looking in the middle - if(error) *error=0; // start out with error flag set to OK, if it is expected - - float_type c, b; - - if(!root_info) { - root_info=new struct c2_root_info; - root_info->inited=false; - } - // this new logic is to keep track of where we were before, and lower the number of - // function evaluations if we are searching inside the same bracket as before. - // Since this root finder has, very often, the bracket of the entire domain of the function, - // this makes a big difference, especially to c2_inverse_function - if(!root_info->inited || upper_bracket != root_info->upper.x || lower_bracket != root_info->lower.x) { - root_info->upper.x=upper_bracket; - fill_fblock(root_info->upper); - root_info->lower.x=lower_bracket; - fill_fblock(root_info->lower); - root_info->inited=true; - } - - float_type clower=root_info->lower.y-value; - if(!clower) { - *final_yprime=root_info->lower.yp; - *final_yprime2=root_info->lower.ypp; - return lower_bracket; - } - - float_type cupper=root_info->upper.y-value; - if(!cupper) { - *final_yprime=root_info->upper.yp; - *final_yprime2=root_info->upper.ypp; - return upper_bracket; - } - const float_type lower_sign = (clower < 0) ? -1 : 1; - - if(lower_sign*cupper >0) { - // argh, no sign change in here! - if(error) { *error=1; return 0.0; } - else { - std::ostringstream outstr; - outstr << "unbracketed root in find_root at xlower= " << lower_bracket << ", xupper= " << upper_bracket; - outstr << ", value= " << value << ": bailing"; - throw c2_exception(outstr.str().c_str()); - } - } - +// find f(x)=value within the brackets, using the guarantees of +// smoothness associated with a c2_function +// can use local f(x)=a*x**2 + b*x + c and solve quadratic to find root, +// then iterate + + float_type yp, yp2; + if (!final_yprime) final_yprime=&yp; + if (!final_yprime2) final_yprime2=&yp2; + + float_type ftol=5*(std::numeric_limits::epsilon() + *std::abs(value)+std::numeric_limits::min()); + float_type xtol=5*(std::numeric_limits::epsilon() + *(std::abs(upper_bracket)+std::abs(lower_bracket)) + +std::numeric_limits::min()); + + float_type root=start; // start looking in the middle + if(error) *error=0; // start out with error flag set to OK, if it is expected + + float_type c, b; + if(!root_info) { + root_info=new struct c2_root_info; + root_info->inited=false; + } +// this new logic is to keep track of where we were before, +// and lower the number of +// function evaluations if we are searching inside the same bracket as before. +// Since this root finder has, very often, the bracket of the entire +// domain of the function, +// this makes a big difference, especially to c2_inverse_function + if(!root_info->inited || upper_bracket != root_info->upper.x + || lower_bracket != root_info->lower.x) { + root_info->upper.x=upper_bracket; + fill_fblock(root_info->upper); + root_info->lower.x=lower_bracket; + fill_fblock(root_info->lower); + root_info->inited=true; + } + + float_type clower=root_info->lower.y-value; + if(!clower) { + *final_yprime=root_info->lower.yp; + *final_yprime2=root_info->lower.ypp; + return lower_bracket; + } + + float_type cupper=root_info->upper.y-value; +if(!cupper) { +*final_yprime=root_info->upper.yp; +*final_yprime2=root_info->upper.ypp; +return upper_bracket; +} +const float_type lower_sign = (clower < 0) ? -1 : 1; + +if(lower_sign*cupper >0) { +// argh, no sign change in here! +if(error) { *error=1; return 0.0; } +else { +std::ostringstream outstr; +outstr << "unbracketed root in find_root at xlower= " << lower_bracket + << ", xupper= " << upper_bracket; +outstr << ", value= " << value << ": bailing"; +throw c2_exception(outstr.str().c_str()); +} +} + float_type delta=upper_bracket-lower_bracket; // first error step - c=value_with_derivatives(root, final_yprime, final_yprime2)-value; // compute initial values + c=value_with_derivatives(root, final_yprime, final_yprime2)-value; b=*final_yprime; // make a local copy for readability increment_evaluations(); while( - std::abs(delta) > xtol && // absolute x step check - std::abs(c) > ftol && // absolute y tolerance - std::abs(c) > xtol*std::abs(b) // comparison to smallest possible Y step from derivative - ) - { - float_type a=(*final_yprime2)/2; // second derivative is 2*a - float_type disc=b*b-4*a*c; - // std::cout << std::endl << "find_root_debug a,b,c,d " << a << " " << b << " " << c << " " << disc << std::endl; - - if(disc >= 0) { - float_type q=-0.5*((b>=0)?(b+std::sqrt(disc)):(b-std::sqrt(disc))); - if(q*q > std::abs(a*c)) delta=c/q; // since x1=q/a, x2=c/q, x1/x2=q^2/ac, this picks smaller step - else delta=q/a; - root+=delta; - } - - if(disc < 0 || rootupper_bracket || - std::abs(delta) >= 0.5*(upper_bracket-lower_bracket)) { - // if we jump out of the bracket, or aren't converging well, bisect - root=0.5*(lower_bracket+upper_bracket); - delta=upper_bracket-lower_bracket; - } - c=value_with_derivatives(root, final_yprime, final_yprime2)-value; // compute initial values - if(c2_isnan(c)) { - bad_x_point=root; - return c; // return the nan if a computation failed - } - b=*final_yprime; // make a local copy for readability - increment_evaluations(); + std::abs(delta) > xtol && // absolute x step check + std::abs(c) > ftol && // absolute y tolerance + std::abs(c) > xtol*std::abs(b) + ) +{ + float_type a=(*final_yprime2)/2; // second derivative is 2*a + float_type disc=b*b-4*a*c; + // std::cout << std::endl << "find_root_debug a,b,c,d " << a + //<< " " << b << " " << c << " " << disc << std::endl; + + if(disc >= 0) { + float_type q=-0.5*((b>=0)?(b+std::sqrt(disc)):(b-std::sqrt(disc))); + if(q*q > std::abs(a*c)) delta=c/q; + // since x1=q/a, x2=c/q, x1/x2=q^2/ac, this picks smaller step + else delta=q/a; + root+=delta; + } + + if(disc < 0 || rootupper_bracket || + std::abs(delta) >= 0.5*(upper_bracket-lower_bracket)) { + // if we jump out of the bracket, or aren't converging well, bisect + root=0.5*(lower_bracket+upper_bracket); + delta=upper_bracket-lower_bracket; + } + c=value_with_derivatives(root, final_yprime, final_yprime2)-value; + // compute initial values + if(c2_isnan(c)) { + bad_x_point=root; + return c; // return the nan if a computation failed + } + b=*final_yprime; // make a local copy for readability + increment_evaluations(); - // now, close in bracket on whichever side this still brackets - if(c*lower_sign < 0.0) { - cupper=c; - upper_bracket=root; - } else { - clower=c; - lower_bracket=root; - } - // std::cout << "find_root_debug x, y, dx " << root << " " << c << " " << delta << std::endl; + // now, close in bracket on whichever side this still brackets + if(c*lower_sign < 0.0) { + cupper=c; + upper_bracket=root; + } else { + clower=c; + lower_bracket=root; + } + // std::cout << "find_root_debug x, y, dx " << root << " " + // << c << " " << delta << std::endl; } return root; } /* def partial_integrals(self, xgrid): - Return the integrals of a function between the sampling points xgrid. The sum is the definite integral. - This method uses an exact integration of the polynomial which matches the values and derivatives at the - endpoints of a segment. Its error scales as h**6, if the input functions really are smooth. - This could very well be used as a stepper for adaptive Romberg integration. - For InterpolatingFunctions, it is likely that the Simpson's rule integrator is sufficient. - #the weights come from an exact mathematica solution to the 5th order polynomial with the given values & derivatives - #yint = (y0+y1)*dx/2 + dx^2*(yp0-yp1)/10 + dx^3 * (ypp0+ypp1)/120 ) +Return the integrals of a function between the sampling points xgrid. +The sum is the definite integral. +This method uses an exact integration of the polynomial which matches +the values and derivatives at the +endpoints of a segment. Its error scales as h**6, if the input functions +really are smooth. +This could very well be used as a stepper for adaptive Romberg integration. +For InterpolatingFunctions, it is likely that the Simpson's rule integrator +is sufficient. +#the weights come from an exact mathematica solution to the 5th order +polynomial with the given values & derivatives +#yint = (y0+y1)*dx/2 + dx^2*(yp0-yp1)/10 + dx^3 * (ypp0+ypp1)/120 ) */ -// the recursive part of the integrator is agressively designed to minimize copying of data... lots of pointers -template float_type c2_function::integrate_step(c2_integrate_recur &rb) const throw(c2_exception) +// the recursive part of the integrator is agressively designed to +// minimize copying of data... lots of pointers +template float_type +c2_function::integrate_step(c2_integrate_recur &rb) const +throw(c2_exception) { - std::vector< recur_item > &rb_stack=*rb.rb_stack; // heap-based stack of data for recursion - rb_stack.clear(); +std::vector< recur_item > &rb_stack=*rb.rb_stack; +// heap-based stack of data for recursion +rb_stack.clear(); - recur_item top; - top.depth=0; top.done=false; top.f0index=0; top.f2index=0; top.step_sum=0; - - // push storage for our initial elements - rb_stack.push_back(top); - rb_stack.back().f1=*rb.f0; - rb_stack.back().done=true; // this element will never be evaluated further - - rb_stack.push_back(top); - rb_stack.back().f1=*rb.f1; - rb_stack.back().done=true; // this element will never be evaluated further - - if(!rb.inited) { - switch(rb.derivs) { - case 0: - rb.eps_scale=0.1; rb.extrap_coef=16; break; - case 1: - rb.eps_scale=0.1; rb.extrap_coef=64; break; - case 2: - rb.eps_scale=0.02; rb.extrap_coef=1024; break; - default: - throw c2_exception("derivs must be 0, 1 or 2 in partial_integrals"); - } - - rb.extrap2=1.0/(rb.extrap_coef-1.0); - rb.dx_tolerance=10.0*std::numeric_limits::epsilon(); - rb.abs_tol_min=10.0*std::numeric_limits::min(); - rb.inited=true; - } - - // now, push our first real element - top.f0index=0; // left element is stack[0] - top.f2index=1; // right element is stack[1] - top.abs_tol=rb.abs_tol; - rb_stack.push_back(top); - - while(rb_stack.size() > 2) { - recur_item &back=rb_stack.back(); - if(back.done) { - float_type sum=back.step_sum; - rb_stack.pop_back(); - rb_stack.back().step_sum+=sum; // bump our sum up to the parent - continue; - } - back.done=true; - - c2_fblock &f0=rb_stack[back.f0index].f1, &f2=rb_stack[back.f2index].f1; - c2_fblock &f1=back.f1; // will hold new middle values - size_t f1index=rb_stack.size()-1; // our current offset - float_type abs_tol=back.abs_tol; - - f1.x=0.5*(f0.x + f2.x); // center of interval - float_type dx2=0.5*(f2.x - f0.x); +recur_item top; +top.depth=0; top.done=false; top.f0index=0; top.f2index=0; top.step_sum=0; - // check for underflow on step size, which prevents us from achieving specified accuracy. - if(std::abs(dx2) < std::abs(f1.x)*rb.dx_tolerance || std::abs(dx2) < rb.abs_tol_min) { - std::ostringstream outstr; - outstr << "Step size underflow in adaptive_partial_integrals at depth=" << back.depth << ", x= " << f1.x; - throw c2_exception(outstr.str().c_str()); - } - - fill_fblock(f1); - if(c2_isnan(f1.y)) { - bad_x_point=f1.x; - return f1.y; // can't go any further if a nan has appeared - } - - bool yptrouble=f0.ypbad || f2.ypbad || f1.ypbad; - bool ypptrouble=f0.yppbad || f2.yppbad || f1.yppbad; - - // select the real derivative count based on whether we are at a point where derivatives exist - int derivs = std::min(rb.derivs, (yptrouble||ypptrouble)?(yptrouble?0:1):2); - - if(!back.depth) { // top level, total has not been initialized yet - switch(derivs) { // create estimate of next lower order for first try - case 0: - back.previous_estimate=(f0.y+f2.y)*dx2; break; - case 1: - back.previous_estimate=(f0.y+4.0*f1.y+f2.y)*dx2/3.0; break; - case 2: - back.previous_estimate=( (14*f0.y + 32*f1.y + 14*f2.y) + 2*dx2 * (f0.yp - f2.yp) ) * dx2 /30.; break; - default: - back.previous_estimate=0.0; // just to suppress missing default warnings - } - } - - float_type left, right; - - // pre-compute constants so all multiplies use a small dynamic range - // note the forced csting of the denominators to assure full precision for (e.g.) long double - // constants for 0 derivative integrator - static const float_type c0c1=5./((float_type)12.), c0c2=8./((float_type)12.), c0c3=-1./((float_type)12.); - // constants for 1 derivative integrator - static const float_type c1c1=101./((float_type)240.), c1c2=128./((float_type)240.), c1c3=11./((float_type)240.), - c1c4=13./((float_type)240.), c1c5=-40./((float_type)240.), c1c6=-3./((float_type)240.); - // constants for 2 derivative integrator - static const float_type c2c1=169./((float_type)40320.), c2c2=1024./ ((float_type)40320.), c2c3=-41./((float_type)40320.), - c2c4=2727./((float_type)40320.), c2c5=-5040./((float_type)40320.), c2c6=423./((float_type)40320.), - c2c7=17007./((float_type)40320.), c2c8=24576./((float_type)40320.), c2c9=-1263./((float_type)40320.); - - switch(derivs) { - case 2: - // use ninth-order estimates for each side, from full set of all values (!) (Thanks, Mathematica!) - left= ( ( (c2c1*f0.ypp + c2c2*f1.ypp + c2c3*f2.ypp)*dx2 + - (c2c4*f0.yp + c2c5*f1.yp + c2c6*f2.yp) )*dx2 + - (c2c7*f0.y + c2c8*f1.y + c2c9*f2.y) )* dx2; - right= ( ( (c2c1*f2.ypp + c2c2*f1.ypp + c2c3*f0.ypp)*dx2 - - (c2c4*f2.yp + c2c5*f1.yp + c2c6*f0.yp) )*dx2 + - (c2c7*f2.y + c2c8*f1.y + c2c9*f0.y) )* dx2; - // std::cout << f0.x << " " << f1.x << " " << f2.x << std::endl ; - // std::cout << f0.y << " " << f1.y << " " << f2.y << " " << left << " " << right << " " << total << std::endl ; - break; - case 1: - left= ( (c1c1*f0.y + c1c2*f1.y + c1c3*f2.y) + dx2*(c1c4*f0.yp + c1c5*f1.yp + c1c6*f2.yp) ) * dx2 ; - right= ( (c1c1*f2.y + c1c2*f1.y + c1c3*f0.y) - dx2*(c1c4*f2.yp + c1c5*f1.yp + c1c6*f0.yp) ) * dx2 ; - break; - case 0: - left= (c0c1*f0.y + c0c2*f1.y + c0c3*f2.y)*dx2; - right= (c0c1*f2.y + c0c2*f1.y + c0c3*f0.y)*dx2; - break; - default: - left=right=0.0; // suppress warnings about missing default - break; - } - - float_type lrsum=left+right; +// push storage for our initial elements +rb_stack.push_back(top); +rb_stack.back().f1=*rb.f0; +rb_stack.back().done=true; // this element will never be evaluated further - bool extrapolate=back.depth && rb.extrapolate && (derivs==rb.derivs); // only extrapolate if no trouble with derivs - float_type eps=std::abs(back.previous_estimate-lrsum)*rb.eps_scale; - if(extrapolate) eps*=rb.eps_scale; - - if(rb.adapt && eps > abs_tol && eps > std::abs(lrsum)*rb.rel_tol) { - // tolerance not met, subdivide & recur - if(abs_tol > rb.abs_tol_min) abs_tol=abs_tol*0.5; // each half has half the error budget - top.abs_tol=abs_tol; - top.depth=back.depth+1; - - // save the last things we need from back before a push happens, in case - // the push causes a reallocation and moves the whole stack. - size_t f0index=back.f0index, f2index=back.f2index; - - top.f0index=f1index; top.f2index=f2index; // insert pointers to right side data into our recursion block - top.previous_estimate=right; - rb_stack.push_back(top); +rb_stack.push_back(top); +rb_stack.back().f1=*rb.f1; +rb_stack.back().done=true; // this element will never be evaluated further - top.f0index=f0index; top.f2index=f1index; // insert pointers to left side data into our recursion block - top.previous_estimate=left; - rb_stack.push_back(top); +if(!rb.inited) { +switch(rb.derivs) { +case 0: +rb.eps_scale=0.1; rb.extrap_coef=16; break; +case 1: +rb.eps_scale=0.1; rb.extrap_coef=64; break; +case 2: +rb.eps_scale=0.02; rb.extrap_coef=1024; break; +default: +throw c2_exception("derivs must be 0, 1 or 2 in partial_integrals"); +} - } else if(extrapolate) { - // extrapolation only happens on leaf nodes, where the tolerance was met. - back.step_sum+=(rb.extrap_coef*lrsum - back.previous_estimate)*rb.extrap2; - } else { - back.step_sum+=lrsum; - } - } - return rb_stack.back().step_sum; // last element on the stack holds the sum +rb.extrap2=1.0/(rb.extrap_coef-1.0); +rb.dx_tolerance=10.0*std::numeric_limits::epsilon(); +rb.abs_tol_min=10.0*std::numeric_limits::min(); +rb.inited=true; +} + +// now, push our first real element +top.f0index=0; // left element is stack[0] +top.f2index=1; // right element is stack[1] +top.abs_tol=rb.abs_tol; +rb_stack.push_back(top); + +while(rb_stack.size() > 2) { +recur_item &back=rb_stack.back(); +if(back.done) { +float_type sum=back.step_sum; +rb_stack.pop_back(); +rb_stack.back().step_sum+=sum; // bump our sum up to the parent +continue; +} +back.done=true; + +c2_fblock &f0=rb_stack[back.f0index].f1, +&f2=rb_stack[back.f2index].f1; +c2_fblock &f1=back.f1; // will hold new middle values +size_t f1index=rb_stack.size()-1; // our current offset +float_type abs_tol=back.abs_tol; + +f1.x=0.5*(f0.x + f2.x); // center of interval +float_type dx2=0.5*(f2.x - f0.x); + +// check for underflow on step size +if(std::abs(dx2) < std::abs(f1.x)*rb.dx_tolerance +|| std::abs(dx2) < rb.abs_tol_min) { +std::ostringstream outstr; +outstr << "Step size underflow in adaptive_partial_integrals at depth=" + << back.depth << ", x= " << f1.x; +throw c2_exception(outstr.str().c_str()); +} + +fill_fblock(f1); +if(c2_isnan(f1.y)) { +bad_x_point=f1.x; +return f1.y; // can't go any further if a nan has appeared +} + +bool yptrouble=f0.ypbad || f2.ypbad || f1.ypbad; +bool ypptrouble=f0.yppbad || f2.yppbad || f1.yppbad; + +// select the real derivative count based on whether we are at +// a point where derivatives exist +int derivs = std::min(rb.derivs, (yptrouble||ypptrouble)?(yptrouble?0:1):2); + +if(!back.depth) { // top level, total has not been initialized yet +switch(derivs) { // create estimate of next lower order for first try +case 0: +back.previous_estimate=(f0.y+f2.y)*dx2; break; +case 1: +back.previous_estimate=(f0.y+4.0*f1.y+f2.y)*dx2/3.0; break; +case 2: +back.previous_estimate=( (14*f0.y + 32*f1.y + 14*f2.y) ++ 2*dx2 * (f0.yp - f2.yp) ) * dx2 /30.; break; +default: +back.previous_estimate=0.0; // just to suppress missing default warnings +} +} + +float_type left, right; + +// pre-compute constants so all multiplies use a small dynamic range +// note the forced csting of the denominators to assure full precision +// for (e.g.) long double +// constants for 0 derivative integrator +static const float_type c0c1=5./((float_type)12.), +c0c2=8./((float_type)12.), c0c3=-1./((float_type)12.); +// constants for 1 derivative integrator +static const float_type c1c1=101./((float_type)240.), +c1c2=128./((float_type)240.), c1c3=11./((float_type)240.), +c1c4=13./((float_type)240.), c1c5=-40./((float_type)240.), +c1c6=-3./((float_type)240.); +// constants for 2 derivative integrator +static const float_type c2c1=169./((float_type)40320.), +c2c2=1024./ ((float_type)40320.), c2c3=-41./((float_type)40320.), +c2c4=2727./((float_type)40320.), c2c5=-5040./((float_type)40320.), +c2c6=423./((float_type)40320.), +c2c7=17007./((float_type)40320.), c2c8=24576./((float_type)40320.), +c2c9=-1263./((float_type)40320.); + +switch(derivs) { +case 2: +// use ninth-order estimates for each side, from full set of all values (!) +left=( ( (c2c1*f0.ypp + c2c2*f1.ypp + c2c3*f2.ypp)*dx2 + +(c2c4*f0.yp + c2c5*f1.yp + c2c6*f2.yp) )*dx2 + + (c2c7*f0.y + c2c8*f1.y + c2c9*f2.y) )* dx2; +right=( ( (c2c1*f2.ypp + c2c2*f1.ypp + c2c3*f0.ypp)*dx2 - +(c2c4*f2.yp + c2c5*f1.yp + c2c6*f0.yp) )*dx2 + + (c2c7*f2.y + c2c8*f1.y + c2c9*f0.y) )* dx2; +// std::cout << f0.x << " " << f1.x << " " << f2.x << std::endl ; +// std::cout << f0.y << " " << f1.y << " " << f2.y << " " << left +// << " " << right << " " << total << std::endl ; +break; +case 1: +left= ( (c1c1*f0.y + c1c2*f1.y + c1c3*f2.y) ++ dx2*(c1c4*f0.yp + c1c5*f1.yp + c1c6*f2.yp) ) * dx2 ; +right= ( (c1c1*f2.y + c1c2*f1.y + c1c3*f0.y) +- dx2*(c1c4*f2.yp + c1c5*f1.yp + c1c6*f0.yp) ) * dx2 ; +break; +case 0: +left=(c0c1*f0.y + c0c2*f1.y + c0c3*f2.y)*dx2; +right=(c0c1*f2.y + c0c2*f1.y + c0c3*f0.y)*dx2; +break; +default: +left=right=0.0; // suppress warnings about missing default +break; +} + +float_type lrsum=left+right; + +bool extrapolate=back.depth && rb.extrapolate && (derivs==rb.derivs); +// only extrapolate if no trouble with derivs +float_type eps=std::abs(back.previous_estimate-lrsum)*rb.eps_scale; +if(extrapolate) eps*=rb.eps_scale; + +if(rb.adapt && eps > abs_tol && eps > std::abs(lrsum)*rb.rel_tol) { +// tolerance not met, subdivide & recur +if(abs_tol > rb.abs_tol_min) abs_tol=abs_tol*0.5; +// each half has half the error budget +top.abs_tol=abs_tol; +top.depth=back.depth+1; + +// save the last things we need from back before a push happens, in case +// the push causes a reallocation and moves the whole stack. +size_t f0index=back.f0index, f2index=back.f2index; + +top.f0index=f1index; top.f2index=f2index; +// insert pointers to right side data into our recursion block +top.previous_estimate=right; +rb_stack.push_back(top); + +top.f0index=f0index; top.f2index=f1index; +// insert pointers to left side data into our recursion block +top.previous_estimate=left; +rb_stack.push_back(top); + +} else if(extrapolate) { +// extrapolation only happens on leaf nodes, where the tolerance was met. +back.step_sum+=(rb.extrap_coef*lrsum - back.previous_estimate)*rb.extrap2; +} else { +back.step_sum+=lrsum; +} +} +return rb_stack.back().step_sum; // last element on the stack holds the sum } template bool c2_function::check_monotonicity( - const std::vector &data, const char message[]) const throw(c2_exception) +const std::vector &data, +const char message[]) const throw(c2_exception) { - size_t np=data.size(); - if(np < 2) return false; // one point has no direction! - - bool rev=(data[1] < data[0]); // which way do data point? - size_t i; - - if(!rev) for(i = 2; i < np && (data[i-1] < data[i]) ; i++) { } - else for(i = 2; i < np &&(data[i-1] > data[i]) ; i++) { } - - if(i != np) throw c2_exception(message); - - return rev; +size_t np=data.size(); +if(np < 2) return false; // one point has no direction! + +bool rev=(data[1] < data[0]); // which way do data point? +size_t i; + +if(!rev) for(i = 2; i < np && (data[i-1] < data[i]) ; i++) { } +else for(i = 2; i < np &&(data[i-1] > data[i]) ; i++) { } + +if(i != np) throw c2_exception(message); + +return rev; } -template void c2_function::set_sampling_grid(const std::vector &grid) throw(c2_exception) +template void +c2_function::set_sampling_grid(const std::vector &grid) + throw(c2_exception) { - bool rev=this->check_monotonicity(grid, "set_sampling_grid: sampling grid not monotonic"); - - if(!sampling_grid || no_overwrite_grid) sampling_grid=new std::vector; - (*sampling_grid)=grid; no_overwrite_grid=0; - - if(rev) std::reverse(sampling_grid->begin(), sampling_grid->end()); // make it increasing +bool rev=this->check_monotonicity(grid, +"set_sampling_grid: sampling grid not monotonic"); + +if(!sampling_grid || no_overwrite_grid) sampling_grid= +new std::vector; +(*sampling_grid)=grid; no_overwrite_grid=0; + +if(rev) std::reverse(sampling_grid->begin(), sampling_grid->end()); +// make it increasing } template void c2_function:: - get_sampling_grid(float_type amin, float_type amax, std::vector &grid) const +get_sampling_grid(float_type amin, float_type amax, +std::vector &grid) const { - std::vector *result=&grid; - result->clear(); - - if( !(sampling_grid) || !(sampling_grid->size()) || (amax <= sampling_grid->front()) || (amin >= sampling_grid->back()) ) { - // nothing is known about the function in this region, return amin and amax - result->push_back(amin); - result->push_back(amax); - } else { - std::vector &sg=*sampling_grid; // just a shortcut - int np=sg.size(); - int klo=0, khi=np-1, firstindex=0, lastindex=np-1; - - result->push_back(amin); +std::vector *result=&grid; +result->clear(); - if(amin > sg.front() ) { - // hunt through table for position bracketing starting point - while(khi-klo > 1) { - int kk=(khi+klo)/2; - if(sg[kk] > amin) khi=kk; - else klo=kk; - } - khi=klo+1; - // khi now points to first point definitively beyond our first point, or last point of array - firstindex=khi; - khi=np-1; // restart upper end of search - } - - if(amax < sg.back()) { - // hunt through table for position bracketing starting point - while(khi-klo > 1) { - int kk=(khi+klo)/2; - if(sg[kk] > amax) khi=kk; - else klo=kk; - } - khi=klo+1; - // khi now points to first point definitively beyond our last point, or last point of array - lastindex=klo; - } - - int initsize=result->size(); - result->resize(initsize+(lastindex-firstindex+2)); - std::copy(sg.begin()+firstindex, sg.begin()+lastindex+1, result->begin()+initsize); - result->back()=amax; +if( !(sampling_grid) || !(sampling_grid->size()) + || (amax <= sampling_grid->front()) || (amin >= sampling_grid->back()) ) { +// nothing is known about the function in this region, return amin and amax +result->push_back(amin); +result->push_back(amax); +} else { +std::vector &sg=*sampling_grid; // just a shortcut +int np=sg.size(); +int klo=0, khi=np-1, firstindex=0, lastindex=np-1; - // this is the unrefined sampling grid... now check for very close points on front & back and fix if needed. - preen_sampling_grid(result); - } +result->push_back(amin); + +if(amin > sg.front() ) { +// hunt through table for position bracketing starting point +while(khi-klo > 1) { +int kk=(khi+klo)/2; +if(sg[kk] > amin) khi=kk; +else klo=kk; +} +khi=klo+1; +// khi now points to first point definitively beyond our first point, +// or last point of array +firstindex=khi; +khi=np-1; // restart upper end of search } -template void c2_function::preen_sampling_grid(std::vector *result) const -{ - // this is the unrefined sampling grid... now check for very close points on front & back and fix if needed. - if(result->size() > 2) { // may be able to prune dangerously close points near the ends if there are at least 3 points - bool deleteit=false; - float_type x0=(*result)[0], x1=(*result)[1]; - float_type dx1=x1-x0; - - float_type ftol=10.0*(std::numeric_limits::epsilon()*(std::abs(x0)+std::abs(x1))+std::numeric_limits::min()); - if(dx1 < ftol) deleteit=true; - float_type dx2=(*result)[2]-x0; - if(dx1/dx2 < 0.1) deleteit=true; // endpoint is very close to internal interesting point - - if(deleteit) result->erase(result->begin()+1); // delete redundant interesting point - } - - if(result->size() > 2) { // may be able to prune dangerously close points near the ends if there are at least 3 points - bool deleteit=false; - int pos=result->size()-3; - float_type x0=(*result)[pos+1], x1=(*result)[pos+2]; - float_type dx1=x1-x0; - - float_type ftol=10.0*(std::numeric_limits::epsilon()*(std::abs(x0)+std::abs(x1))+std::numeric_limits::min()); - if(dx1 < ftol) deleteit=true; - float_type dx2=x1-(*result)[pos]; - if(dx1/dx2 < 0.1) deleteit=true; // endpoint is very close to internal interesting point - - if(deleteit) result->erase(result->end()-2); // delete redundant interesting point - } +if(amax < sg.back()) { +// hunt through table for position bracketing starting point +while(khi-klo > 1) { +int kk=(khi+klo)/2; +if(sg[kk] > amax) khi=kk; +else klo=kk; +} +khi=klo+1; +// khi now points to first point definitively beyond our last point, +// or last point of array +lastindex=klo; +} + +int initsize=result->size(); +result->resize(initsize+(lastindex-firstindex+2)); +std::copy(sg.begin()+firstindex, sg.begin()+lastindex+1, +result->begin()+initsize); +result->back()=amax; + +// this is the unrefined sampling grid... now check for very close +// points on front & back and fix if needed. +preen_sampling_grid(result); +} +} + +template void +c2_function::preen_sampling_grid(std::vector *result) +const +{ +// this is the unrefined sampling grid... +// now check for very close points on front & back and fix if needed. +if(result->size() > 2) { +// may be able to prune dangerously close points near the ends +// if there are at least 3 points +bool deleteit=false; +float_type x0=(*result)[0], x1=(*result)[1]; +float_type dx1=x1-x0; + +float_type ftol=10.0*(std::numeric_limits::epsilon() +*(std::abs(x0)+std::abs(x1))+std::numeric_limits::min()); +if(dx1 < ftol) deleteit=true; +float_type dx2=(*result)[2]-x0; +if(dx1/dx2 < 0.1) deleteit=true; +// endpoint is very close to internal interesting point + +if(deleteit) result->erase(result->begin()+1); +// delete redundant interesting point +} + +if(result->size() > 2) { +// may be able to prune dangerously close points near the ends +// if there are at least 3 points +bool deleteit=false; +int pos=result->size()-3; +float_type x0=(*result)[pos+1], x1=(*result)[pos+2]; +float_type dx1=x1-x0; + +float_type ftol=10.0*(std::numeric_limits::epsilon() +*(std::abs(x0)+std::abs(x1))+std::numeric_limits::min()); +if(dx1 < ftol) deleteit=true; +float_type dx2=x1-(*result)[pos]; +if(dx1/dx2 < 0.1) deleteit=true; +// endpoint is very close to internal interesting point + +if(deleteit) result->erase(result->end()-2); +// delete redundant interesting point +} } template void c2_function:: - refine_sampling_grid(std::vector &grid, size_t refinement) const +refine_sampling_grid(std::vector &grid, size_t refinement) const { - size_t np=grid.size(); - size_t count=(np-1)*refinement + 1; - float_type dxscale=1.0/refinement; - - std::vector result(count); - - for(size_t i=0; i<(np-1); i++) { - float_type x=grid[i]; - float_type dx=(grid[i+1]-x)*dxscale; - for(size_t j=0; j result(count); + +for(size_t i=0; i<(np-1); i++) { +float_type x=grid[i]; +float_type dx=(grid[i+1]-x)*dxscale; +for(size_t j=0; j float_type c2_function::integral(float_type amin, float_type amax, std::vector *partials, - float_type abs_tol, float_type rel_tol, int derivs, bool adapt, bool extrapolate) const throw(c2_exception) +template float_type +c2_function::integral(float_type amin, float_type amax, +std::vector *partials, + float_type abs_tol, float_type rel_tol, int derivs, +bool adapt, bool extrapolate) const throw(c2_exception) { - if(amin==amax) { - if(partials) partials->clear(); - return 0.0; - } - std::vector grid; - get_sampling_grid(amin, amax, grid); - float_type intg=partial_integrals(grid, partials, abs_tol, rel_tol, derivs, adapt, extrapolate); - return intg; +if(amin==amax) { +if(partials) partials->clear(); +return 0.0; +} +std::vector grid; +get_sampling_grid(amin, amax, grid); +float_type intg=partial_integrals(grid, partials, abs_tol, rel_tol, +derivs, adapt, extrapolate); +return intg; } -template c2_function &c2_function::normalized_function(float_type amin, float_type amax, float_type norm) - const throw(c2_exception) +template c2_function +&c2_function::normalized_function(float_type amin, +float_type amax, float_type norm) +const throw(c2_exception) { - float_type intg=integral(amin, amax); - return *new c2_scaled_function_p(*this, norm/intg); +float_type intg=integral(amin, amax); +return *new c2_scaled_function_p(*this, norm/intg); } -template c2_function &c2_function::square_normalized_function(float_type amin, float_type amax, float_type norm) - const throw(c2_exception) +template c2_function +&c2_function::square_normalized_function(float_type amin, +float_type amax, float_type norm) +const throw(c2_exception) { - c2_ptr mesquared((*new c2_quadratic_p(0., 0., 0., 1.))(*this)); - - std::vector grid; - get_sampling_grid(amin, amax, grid); - float_type intg=mesquared->partial_integrals(grid); - - return *new c2_scaled_function_p(*this, std::sqrt(norm/intg)); +c2_ptr mesquared((*new +c2_quadratic_p(0., 0., 0., 1.))(*this)); + +std::vector grid; +get_sampling_grid(amin, amax, grid); +float_type intg=mesquared->partial_integrals(grid); + +return *new c2_scaled_function_p(*this, std::sqrt(norm/intg)); } -template c2_function &c2_function::square_normalized_function( - float_type amin, float_type amax, const c2_function &weight, float_type norm) - const throw(c2_exception) +template c2_function +&c2_function::square_normalized_function( +float_type amin, float_type amax, const c2_function &weight, +float_type norm) +const throw(c2_exception) { - c2_ptr weighted((*new c2_quadratic_p(0., 0., 0., 1.))(*this) * weight); +c2_ptr weighted((*new +c2_quadratic_p(0., 0., 0., 1.))(*this) * weight); - std::vector grid; - get_sampling_grid(amin, amax, grid); - float_type intg=weighted->partial_integrals(grid); +std::vector grid; +get_sampling_grid(amin, amax, grid); +float_type intg=weighted->partial_integrals(grid); - return *new c2_scaled_function_p(*this, std::sqrt(norm/intg)); +return *new c2_scaled_function_p(*this, std::sqrt(norm/intg)); } -template float_type c2_function::partial_integrals( - std::vector xgrid, std::vector *partials, - float_type abs_tol, float_type rel_tol, int derivs, bool adapt, bool extrapolate) - const throw(c2_exception) +template float_type +c2_function::partial_integrals( +std::vector xgrid, std::vector *partials, +float_type abs_tol, float_type rel_tol, int derivs, +bool adapt, bool extrapolate) +const throw(c2_exception) { - int np=xgrid.size(); - - c2_fblock f0, f2; - struct c2_integrate_recur rb; - rb.rel_tol=rel_tol; - rb.extrapolate=extrapolate; - rb.adapt=adapt; - rb.derivs=derivs; - std::vector< recur_item > rb_stack; - rb_stack.reserve(20); // enough for most operations - rb.rb_stack=&rb_stack; - rb.inited=false; - float_type dx_inv=1.0/std::abs(xgrid.back()-xgrid.front()); - - if(partials) partials->resize(np-1); - - float_type sum=0.0; - - f2.x=xgrid[0]; - fill_fblock(f2); - if(c2_isnan(f2.y)) { - bad_x_point=f2.x; - return f2.y; // can't go any further if a nan has appeared - } - - for(int i=0; i f0, f2; +struct c2_integrate_recur rb; +rb.rel_tol=rel_tol; +rb.extrapolate=extrapolate; +rb.adapt=adapt; +rb.derivs=derivs; +std::vector< recur_item > rb_stack; +rb_stack.reserve(20); // enough for most operations +rb.rb_stack=&rb_stack; +rb.inited=false; +float_type dx_inv=1.0/std::abs(xgrid.back()-xgrid.front()); + +if(partials) partials->resize(np-1); + +float_type sum=0.0; + +f2.x=xgrid[0]; +fill_fblock(f2); +if(c2_isnan(f2.y)) { +bad_x_point=f2.x; +return f2.y; // can't go any further if a nan has appeared +} + +for(int i=0; i void c2_sin_p:: - get_sampling_grid(float_type amin, float_type amax, std::vector &grid) const +get_sampling_grid(float_type amin, float_type amax, +std::vector &grid) const { - grid.clear(); - for(; amin < amax; amin+=5.0) grid.push_back(amin); - grid.push_back(amax); - this->preen_sampling_grid(&grid); +grid.clear(); +for(; amin < amax; amin+=5.0) grid.push_back(amin); +grid.push_back(amax); +this->preen_sampling_grid(&grid); } -template float_type c2_function_transformation::evaluate( - float_type xraw, - float_type y, float_type yp0, float_type ypp0, - float_type *yprime, float_type *yprime2) const +template float_type +c2_function_transformation::evaluate( +float_type xraw, +float_type y, float_type yp0, float_type ypp0, +float_type *yprime, float_type *yprime2) const { - y=Y.fHasStaticTransforms ? Y.pOut(y) : Y.fOut(y); - - if(yprime || yprime2) { +y=Y.fHasStaticTransforms ? Y.pOut(y) : Y.fOut(y); - float_type yp, yp2; - if(X.fHasStaticTransforms && Y.fHasStaticTransforms) { - float_type fpi=1.0/Y.pInPrime(y); - float_type gp=X.pInPrime(xraw); - // from Mathematica Dt[InverseFunction[f][y[g[x]]], x] - yp=gp*yp0*fpi; // transformed derivative - yp2=(gp*gp*ypp0 + X.pInDPrime(xraw)*yp0 - Y.pInDPrime(y)*yp*yp )*fpi; - } else { - float_type fpi=1.0/Y.fInPrime(y); - float_type gp=X.fInPrime(xraw); - // from Mathematica Dt[InverseFunction[f][y[g[x]]], x] - yp=gp*yp0*fpi; // transformed derivative - yp2=(gp*gp*ypp0 + X.fInDPrime(xraw)*yp0 - Y.fInDPrime(y)*yp*yp )*fpi; - } - if(yprime) *yprime=yp; - if(yprime2) *yprime2=yp2; - } - return y; +if(yprime || yprime2) { + +float_type yp, yp2; +if(X.fHasStaticTransforms && Y.fHasStaticTransforms) { +float_type fpi=1.0/Y.pInPrime(y); +float_type gp=X.pInPrime(xraw); +// from Mathematica Dt[InverseFunction[f][y[g[x]]], x] +yp=gp*yp0*fpi; // transformed derivative +yp2=(gp*gp*ypp0 + X.pInDPrime(xraw)*yp0 - Y.pInDPrime(y)*yp*yp )*fpi; +} else { +float_type fpi=1.0/Y.fInPrime(y); +float_type gp=X.fInPrime(xraw); +// from Mathematica Dt[InverseFunction[f][y[g[x]]], x] +yp=gp*yp0*fpi; // transformed derivative +yp2=(gp*gp*ypp0 + X.fInDPrime(xraw)*yp0 - Y.fInDPrime(y)*yp*yp )*fpi; +} +if(yprime) *yprime=yp; +if(yprime2) *yprime2=yp2; +} +return y; } // The constructor -template interpolating_function_p & interpolating_function_p::load( - const std::vector &x, const std::vector &f, - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope, - bool splined - ) throw(c2_exception) +template interpolating_function_p +&interpolating_function_p::load( +const std::vector &x, const std::vector &f, +bool lowerSlopeNatural, float_type lowerSlope, +bool upperSlopeNatural, float_type upperSlope, +bool splined +) throw(c2_exception) { - c2_ptr keepme(*this); - X= x; - F= f; - - // Xraw is useful in some of the arithmetic operations between interpolating functions - Xraw=x; +c2_ptr keepme(*this); +X= x; +F= f; - this->set_domain(std::min(Xraw.front(), Xraw.back()),std::max(Xraw.front(), Xraw.back())); - - if(x.size() != f.size()) { - throw c2_exception("interpolating_function::init() -- x & y inputs are of different size"); - } - - size_t np=X.size(); // they are the same now, so lets take a short cut - - if(np < 2) { - throw c2_exception("interpolating_function::init() -- input < 2 elements "); - } - - bool xraw_rev=this->check_monotonicity(Xraw, - "interpolating_function::init() non-monotonic raw x input"); // which way does raw X point? sampling grid MUST be increasing +Xraw=x; - if(!xraw_rev) { // we can use pointer to raw X values if they are in the right order - this->set_sampling_grid_pointer(Xraw); // our intial grid of x values is certainly a good guess for 'interesting' points - } else { - this->set_sampling_grid(Xraw); // make a copy of it, and assure it is in right order - } - - if(fTransform.X.fTransformed) { // check if X scale is nonlinear, and if so, do transform - if(!lowerSlopeNatural) lowerSlope /= fTransform.X.fInPrime(X[0]); - if(!upperSlopeNatural) upperSlope /= fTransform.X.fInPrime(X[np-1]); - for(size_t i=0; icheck_monotonicity(X, - "interpolating_function::init() non-monotonic transformed x input"); - - if(splined) spline(lowerSlopeNatural, lowerSlope, upperSlopeNatural, upperSlope); - else y2.assign(np,0.0); - - lastKLow=0; - keepme.release_for_return(); - return *this; +this->set_domain(std::min(Xraw.front(), Xraw.back()), +std::max(Xraw.front(), Xraw.back())); + +if(x.size() != f.size()) { +throw c2_exception( +"interpolating_function::init() -- x & y inputs are of different size"); +} + +size_t np=X.size(); // they are the same now, so lets take a short cut + +if(np < 2) { +throw c2_exception("interpolating_function::init() -- input < 2 elements "); +} + +bool xraw_rev=this->check_monotonicity(Xraw, +"interpolating_function::init() non-monotonic raw x input"); +// which way does raw X point? sampling grid MUST be increasing + +if(!xraw_rev) { +// we can use pointer to raw X values if they are in the right order +this->set_sampling_grid_pointer(Xraw); +// our intial grid of x values is certainly a good guess for points +} else { +this->set_sampling_grid(Xraw); +// make a copy of it, and assure it is in right order +} + +if(fTransform.X.fTransformed) { +// check if X scale is nonlinear, and if so, do transform +if(!lowerSlopeNatural) lowerSlope /= fTransform.X.fInPrime(X[0]); +if(!upperSlopeNatural) upperSlope /= fTransform.X.fInPrime(X[np-1]); +for(size_t i=0; icheck_monotonicity(X, +"interpolating_function::init() non-monotonic transformed x input"); + +if(splined) spline(lowerSlopeNatural, lowerSlope, +upperSlopeNatural, upperSlope); +else y2.assign(np,0.0); + +lastKLow=0; +keepme.release_for_return(); +return *this; } // The constructor -template interpolating_function_p & interpolating_function_p::load_pairs( - std::vector > &data, - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope, - bool splined - ) throw(c2_exception) +template interpolating_function_p +&interpolating_function_p::load_pairs( +std::vector > &data, +bool lowerSlopeNatural, float_type lowerSlope, +bool upperSlopeNatural, float_type upperSlope, +bool splined +) throw(c2_exception) { - c2_ptr keepme(*this); - - size_t np=data.size(); - if(np < 2) { - throw c2_exception("interpolating_function::init() -- input < 2 elements "); - } - - // sort into ascending order - std::sort(data.begin(), data.end(), comp_pair); - - std::vector xtmp, ytmp; - xtmp.reserve(np); - ytmp.reserve(np); - for (size_t i=0; iload(xtmp, ytmp, lowerSlopeNatural, lowerSlope, upperSlopeNatural, upperSlope, splined); - - keepme.release_for_return(); - return *this; +c2_ptr keepme(*this); + +size_t np=data.size(); +if(np < 2) { +throw c2_exception("interpolating_function::init() -- input < 2 elements "); +} + +// sort into ascending order +std::sort(data.begin(), data.end(), comp_pair); + +std::vector xtmp, ytmp; +xtmp.reserve(np); +ytmp.reserve(np); +for (size_t i=0; iload(xtmp, ytmp, lowerSlopeNatural, lowerSlope, +upperSlopeNatural, upperSlope, splined); + +keepme.release_for_return(); +return *this; } template interpolating_function_p & - interpolating_function_p::load_random_generator_function( - const std::vector &bincenters, const c2_function &binheights) - throw(c2_exception) -{ - c2_ptr keepme(*this); +interpolating_function_p::load_random_generator_function( +const std::vector &bincenters, +const c2_function &binheights) +throw(c2_exception) +{ +c2_ptr keepme(*this); - std::vector integral; - c2_const_ptr keepit(binheights); // manage function... not really needed here, but always safe. - // integrate from first to last bin in original order, leaving results in integral - // ask for relative error of 1e-6 on each bin, with absolute error set to 0 (since we don't know the data scale). - float_type sum=binheights.partial_integrals(bincenters, &integral, 0.0, 1e-6); - // the integral vector now has partial integrals... it must be accumulated by summing - integral.insert(integral.begin(), 0.0); // integral from start to start is 0 - float_type scale=1.0/sum; - for(size_t i=1; iload(integral, bincenters, - false, 1.0/(scale*binheights(bincenters.front() )), - false, 1.0/(scale*binheights(bincenters.back() )) - ); // use integral as x axis in inverse function - keepme.release_for_return(); - return *this; +std::vector integral; +c2_const_ptr keepit(binheights); +// integrate from first to last bin in original order, +// leaving results in integral +// ask for relative error of 1e-6 on each bin, with absolute +// error set to 0 (since we don't know the data scale). +float_type sum=binheights.partial_integrals(bincenters, &integral, 0.0, 1e-6); +integral.insert(integral.begin(), 0.0); // integral from start to start is 0 +float_type scale=1.0/sum; +for(size_t i=1; iload(integral, bincenters, + false, 1.0/(scale*binheights(bincenters.front() )), + false, 1.0/(scale*binheights(bincenters.back() )) + ); // use integral as x axis in inverse function +keepme.release_for_return(); +return *this; } template interpolating_function_p & - interpolating_function_p::load_random_generator_bins( - const std::vector &bins, const std::vector &binheights, bool splined) - throw(c2_exception) -{ - c2_ptr keepme(*this); +interpolating_function_p::load_random_generator_bins( +const std::vector &bins, +const std::vector &binheights, bool splined) +throw(c2_exception) +{ +c2_ptr keepme(*this); - size_t np=binheights.size(); - std::vector integral(np+1), bin_edges(np+1); - - // compute the integral based on estimates of the bin edges from the given bin centers... - // except for bin 0 & final bin, the edge of a bin is halfway between then center of the - // bin and the center of the previous/next bin. - // This gives width[n] = (center[n+1]+center[n])/2 - (center[n]+center[n-1])/2 = (center[n+1]-center[n-1])/2 - // for the edges, assume a bin of width (center[1]-center[0]) or (center[np-1]-center[np-2]) - // be careful that absolute values are used in case data are reversed. +size_t np=binheights.size(); +std::vector integral(np+1), bin_edges(np+1); - if(bins.size() == binheights.size()+1) { - bin_edges=bins; // edges array was passed in - } else if (bins.size() == binheights.size()) { - bin_edges.front()=bins[0] - (bins[1]-bins[0])*0.5; // edge bin - for(size_t i=1; iload(integral, bin_edges, - false, 1.0/(scale*binheights.front()), - false, 1.0/(scale*binheights.back()), - splined); // use integral as x axis in inverse function - keepme.release_for_return(); - return *this; +// compute the integral based on estimates of the bin edges +// from the given bin centers... +// except for bin 0 & final bin, the edge of a bin is halfway +// between then center of the +// bin and the center of the previous/next bin. + +if(bins.size() == binheights.size()+1) { +bin_edges=bins; // edges array was passed in +} else if (bins.size() == binheights.size()) { +bin_edges.front()=bins[0] - (bins[1]-bins[0])*0.5; // edge bin +for(size_t i=1; iload(integral, bin_edges, + false, 1.0/(scale*binheights.front()), + false, 1.0/(scale*binheights.back()), + splined); // use integral as x axis in inverse function +keepme.release_for_return(); +return *this; } // The spline table generator -template void interpolating_function_p::spline( - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope - ) throw(c2_exception) +template void +interpolating_function_p::spline( + bool lowerSlopeNatural, float_type lowerSlope, + bool upperSlopeNatural, float_type upperSlope + ) throw(c2_exception) { // construct spline tables here. - // this code is a re-translation of the pythonlabtools spline algorithm from pythonlabtools.sourceforge.net - size_t np=X.size(); - std::vector u(np), dy(np-1), dx(np-1), dxi(np-1), dx2i(np-2), siga(np-2), dydx(np-1); - - std::transform(X.begin()+1, X.end(), X.begin(), dx.begin(), std::minus() ); // dx=X[1:] - X [:-1] - for(size_t i=0; i() ); // dy = F[i+1]-F[i] - std::transform(dx2i.begin(), dx2i.end(), dx.begin(), siga.begin(), std::multiplies()); // siga = dx[:-1]*dx2i - std::transform(dxi.begin(), dxi.end(), dy.begin(), dydx.begin(), std::multiplies()); // dydx=dy/dx - - // u[i]=(y[i+1]-y[i])/float(x[i+1]-x[i]) - (y[i]-y[i-1])/float(x[i]-x[i-1]) - std::transform(dydx.begin()+1, dydx.end(), dydx.begin(), u.begin()+1, std::minus() ); // incomplete rendering of u = dydx[1:]-dydx[:-1] - - y2.resize(np,0.0); - - if(lowerSlopeNatural) { - y2[0]=u[0]=0.0; - } else { - y2[0]= -0.5; - u[0]=(3.0*dxi[0])*(dy[0]*dxi[0] -lowerSlope); - } - - for(size_t i=1; i < np -1; i++) { // the inner loop - float_type sig=siga[i-1]; - float_type p=sig*y2[i-1]+2.0; - y2[i]=(sig-1.0)/p; - u[i]=(6.0*u[i]*dx2i[i-1] - sig*u[i-1])/p; - } - - float_type qn, un; - - if(upperSlopeNatural) { - qn=un=0.0; - } else { - qn= 0.5; - un=(3.0*dxi[dxi.size()-1])*(upperSlope- dy[dy.size()-1]*dxi[dxi.size()-1] ); - } - - y2[np-1]=(un-qn*u[np-2])/(qn*y2[np-2]+1.0); - for (size_t k=np-1; k != 0; k--) y2[k-1]=y2[k-1]*y2[k]+u[k-1]; +// this code is a re-translation of the pythonlabtools spline +// algorithm from pythonlabtools.sourceforge.net +size_t np=X.size(); +std::vector u(np), dy(np-1), dx(np-1), +dxi(np-1), dx2i(np-2), siga(np-2), dydx(np-1); + +std::transform(X.begin()+1, X.end(), X.begin(), dx.begin(), +std::minus() ); // dx=X[1:] - X [:-1] +for(size_t i=0; i() ); // dy = F[i+1]-F[i] +std::transform(dx2i.begin(), dx2i.end(), dx.begin(), siga.begin(), +std::multiplies()); // siga = dx[:-1]*dx2i +std::transform(dxi.begin(), dxi.end(), dy.begin(), dydx.begin(), +std::multiplies()); // dydx=dy/dx + +// u[i]=(y[i+1]-y[i])/float(x[i+1]-x[i]) - (y[i]-y[i-1])/float(x[i]-x[i-1]) +std::transform(dydx.begin()+1, dydx.end(), dydx.begin(), u.begin()+1, +std::minus() ); // incomplete rendering of u = dydx[1:]-dydx[:-1] + +y2.resize(np,0.0); + +if(lowerSlopeNatural) { +y2[0]=u[0]=0.0; +} else { +y2[0]= -0.5; +u[0]=(3.0*dxi[0])*(dy[0]*dxi[0] -lowerSlope); } -template interpolating_function_p &interpolating_function_p::sample_function( - const c2_function &func, - float_type amin, float_type amax, float_type abs_tol, float_type rel_tol, - bool lowerSlopeNatural, float_type lowerSlope, - bool upperSlopeNatural, float_type upperSlope +for(size_t i=1; i < np -1; i++) { // the inner loop +float_type sig=siga[i-1]; +float_type p=sig*y2[i-1]+2.0; +y2[i]=(sig-1.0)/p; +u[i]=(6.0*u[i]*dx2i[i-1] - sig*u[i-1])/p; +} + +float_type qn, un; + +if(upperSlopeNatural) { +qn=un=0.0; +} else { +qn= 0.5; +un=(3.0*dxi[dxi.size()-1])*(upperSlope- dy[dy.size()-1]*dxi[dxi.size()-1] ); +} + +y2[np-1]=(un-qn*u[np-2])/(qn*y2[np-2]+1.0); +for (size_t k=np-1; k != 0; k--) y2[k-1]=y2[k-1]*y2[k]+u[k-1]; +} + +template interpolating_function_p +&interpolating_function_p::sample_function( +const c2_function &func, +float_type amin, float_type amax, float_type abs_tol, float_type rel_tol, +bool lowerSlopeNatural, float_type lowerSlope, +bool upperSlopeNatural, float_type upperSlope ) throw(c2_exception) { - c2_ptr keepme(*this); - - const c2_transformation &XX=fTransform.X, &YY=fTransform.Y; // shortcuts - - // set up our params to look like the samplng function for now - sampler_function=func; - std::vector grid; - func.get_sampling_grid(amin, amax, grid); - size_t gsize=grid.size(); - if(XX.fTransformed) for(size_t i=0; iset_sampling_grid_pointer(grid); - - // float_type amin1=fXin(amin), amax1=fXin(amax); // bounds in transformed space - // get a list of points needed in transformed space, directly into our tables - this->adaptively_sample(grid.front(), grid.back(), 8*abs_tol, 8*rel_tol, 0, &X, &F); - // clear the sampler function now, since otherwise our value_with_derivatives is broken - sampler_function.unset_function(); - - xInverted=this->check_monotonicity(X, - "interpolating_function::init() non-monotonic transformed x input"); - - size_t np=X.size(); - - // Xraw is useful in some of the arithmetic operations between interpolating functions - if(!XX.fTransformed) Xraw=X; - else { - Xraw.resize(np); - for (size_t i=1; icheck_monotonicity(Xraw, - "interpolating_function::init() non-monotonic raw x input"); - // which way does raw X point? sampling grid MUST be increasing - - if(!xraw_rev) { // we can use pointer to raw X values if they are in the right order - this->set_sampling_grid_pointer(Xraw); - // our intial grid of x values is certainly a good guess for 'interesting' points - } else { - this->set_sampling_grid(Xraw); // make a copy of it, and assure it is in right order - } - - if(XX.fTransformed) { // check if X scale is nonlinear, and if so, do transform - if(!lowerSlopeNatural) lowerSlope /= XX.fInPrime(amin); - if(!upperSlopeNatural) upperSlope /= XX.fInPrime(amax); - } - if(YY.fTransformed) { // check if Y scale is nonlinear, and if so, do transform - if(!lowerSlopeNatural) lowerSlope *= YY.fInPrime(func(amin)); - if(!upperSlopeNatural) upperSlope *= YY.fInPrime(func(amax)); - } - // note that each of ends has 3 points with two equal gaps, since they were obtained by bisection - // so the step sizes are easy to get - // the 'natural slope' option for sampled functions has a different meaning than - // for normal splines. In this case, the derivative is adjusted to make the - // second derivative constant on the last two points at each end - // which is consistent with the error sampling technique we used to get here - if(lowerSlopeNatural) { - float_type hlower=X[1]-X[0]; - lowerSlope=0.5*(-F[2]-3*F[0]+4*F[1])/hlower; - lowerSlopeNatural=false; // it's not the usual meaning of natural any more - } - if(upperSlopeNatural) { - float_type hupper=X[np-1]-X[np-2]; - upperSlope=0.5*(F[np-3]+3*F[np-1]-4*F[np-2])/hupper; - upperSlopeNatural=false; // it's not the usual meaning of natural any more - } - this->set_domain(amin, amax); - - spline(lowerSlopeNatural, lowerSlope, upperSlopeNatural, upperSlope); - lastKLow=0; - keepme.release_for_return(); - return *this; +c2_ptr keepme(*this); + +const c2_transformation &XX=fTransform.X, &YY=fTransform.Y; + + // set up our params to look like the samplng function for now + sampler_function=func; + std::vector grid; + func.get_sampling_grid(amin, amax, grid); + size_t gsize=grid.size(); + if(XX.fTransformed) for(size_t i=0; iset_sampling_grid_pointer(grid); + +this->adaptively_sample(grid.front(), grid.back(), 8*abs_tol, +8*rel_tol, 0, &X, &F); +// clear the sampler function now, since otherwise our +// value_with_derivatives is broken + sampler_function.unset_function(); + + xInverted=this->check_monotonicity(X, + "interpolating_function::init() non-monotonic transformed x input"); + + size_t np=X.size(); + + // Xraw is useful in some of the arithmetic operations between +// interpolating functions + if(!XX.fTransformed) Xraw=X; + else { + Xraw.resize(np); + for (size_t i=1; icheck_monotonicity(Xraw, + "interpolating_function::init() non-monotonic raw x input"); + // which way does raw X point? sampling grid MUST be increasing + + if(!xraw_rev) { + this->set_sampling_grid_pointer(Xraw); + + } else { + this->set_sampling_grid(Xraw); + } + + if(XX.fTransformed) { // check if X scale is nonlinear, and if so, do transform + if(!lowerSlopeNatural) lowerSlope /= XX.fInPrime(amin); + if(!upperSlopeNatural) upperSlope /= XX.fInPrime(amax); + } + if(YY.fTransformed) { + if(!lowerSlopeNatural) lowerSlope *= YY.fInPrime(func(amin)); + if(!upperSlopeNatural) upperSlope *= YY.fInPrime(func(amax)); + } + // note that each of ends has 3 points with two equal gaps, +// since they were obtained by bisection + // so the step sizes are easy to get + // the 'natural slope' option for sampled functions has a +// different meaning than + // for normal splines. In this case, the derivative is adjusted to make the + // second derivative constant on the last two points at each end + // which is consistent with the error sampling technique we used to get here + if(lowerSlopeNatural) { + float_type hlower=X[1]-X[0]; + lowerSlope=0.5*(-F[2]-3*F[0]+4*F[1])/hlower; + lowerSlopeNatural=false; // it's not the usual meaning of natural any more + } + if(upperSlopeNatural) { + float_type hupper=X[np-1]-X[np-2]; + upperSlope=0.5*(F[np-3]+3*F[np-1]-4*F[np-2])/hupper; + upperSlopeNatural=false; // it's not the usual meaning of natural any more + } + this->set_domain(amin, amax); + + spline(lowerSlopeNatural, lowerSlope, upperSlopeNatural, upperSlope); + lastKLow=0; + keepme.release_for_return(); + return *this; } // This function is the reason for this class to exist -// it computes the interpolated function, and (if requested) its proper first and second derivatives including all coordinate transforms -template float_type interpolating_function_p::value_with_derivatives( - float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) +// it computes the interpolated function, and (if requested) its proper +// first and second derivatives including all coordinate transforms +template float_type +interpolating_function_p::value_with_derivatives( +float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception) { - if(sampler_function.valid()) { - // if this is non-null, we are sampling data for later, so just return raw function - // however, transform it into our sampling space, first. - if(yprime) *yprime=0; - if(yprime2) *yprime2=0; - sampler_function->increment_evaluations(); - return fTransform.Y.fIn(sampler_function(fTransform.X.fOut(x))); // derivatives are completely undefined - } - - if(x < this->xmin() || x > this->xmax()) { - std::ostringstream outstr; - outstr << "Interpolating function argument " << x << " out of range " << this->xmin() << " -- " << this ->xmax() << ": bailing"; - throw c2_exception(outstr.str().c_str()); +if(sampler_function.valid()) { +// if this is non-null, we are sampling data for later, +// so just return raw function +// however, transform it into our sampling space, first. +if(yprime) *yprime=0; +if(yprime2) *yprime2=0; +sampler_function->increment_evaluations(); +return fTransform.Y.fIn(sampler_function(fTransform.X.fOut(x))); +// derivatives are completely undefined +} + +if(x < this->xmin() || x > this->xmax()) { +std::ostringstream outstr; +outstr << "Interpolating function argument " << x +<< " out of range " << this->xmin() << " -- " << this ->xmax() << ": bailing"; +throw c2_exception(outstr.str().c_str()); } - - float_type xraw=x; - - if(fTransform.X.fTransformed) x=fTransform.X.fHasStaticTransforms? - fTransform.X.pIn(x) : fTransform.X.fIn(x); // save time by explicitly testing for identity function here - - int klo=0, khi=X.size()-1; - if(khi < 0) throw c2_exception("Uninitialized interpolating function being evaluated"); - - const float_type *XX=&X[lastKLow]; // make all fast checks short offsets from here - - if(!xInverted) { // select search depending on whether transformed X is increasing or decreasing - if((XX[0] <= x) && (XX[1] >= x) ) { // already bracketed - klo=lastKLow; - } else if((XX[1] <= x) && (XX[2] >= x)) { // in next bracket to the right - klo=lastKLow+1; - } else if(lastKLow > 0 && (XX[-1] <= x) && (XX[0] >= x)) { // in next bracket to the left - klo=lastKLow-1; - } else { // not bracketed, not close, start over - // search for new KLow - while(khi-klo > 1) { - int kk=(khi+klo)/2; - if(X[kk] > x) khi=kk; - else klo=kk; - } - } - } else { - if((XX[0] >= x) && (XX[1] <= x) ) { // already bracketed - klo=lastKLow; - } else if((XX[1] >= x) && (XX[2] <= x)) { // in next bracket to the right - klo=lastKLow+1; - } else if(lastKLow > 0 && (XX[-1] >= x) && (XX[0] <= x)) { // in next bracket to the left - klo=lastKLow-1; - } else { // not bracketed, not close, start over - // search for new KLow - while(khi-klo > 1) { - int kk=(khi+klo)/2; - if(X[kk] < x) khi=kk; - else klo=kk; - } - } - } - - khi=klo+1; - lastKLow=klo; - - float_type h=X[khi]-X[klo]; - - float_type a=(X[khi]-x)/h; - float_type b=1.0-a; - float_type ylo=F[klo], yhi=F[khi], y2lo=y2[klo], y2hi=y2[khi]; - float_type y=a*ylo+b*yhi+((a*a*a-a)*y2lo+(b*b*b-b)*y2hi)*(h*h)/6.0; +float_type xraw=x; - float_type yp0=0; // the derivative in interpolating table coordinates - float_type ypp0=0; // second derivative - - if(yprime || yprime2) { - yp0=(yhi-ylo)/h+((3*b*b-1)*y2hi-(3*a*a-1)*y2lo)*h/6.0; // the derivative in interpolating table coordinates - ypp0=b*y2hi+a*y2lo; // second derivative - } - - if(fTransform.isIdentity) { - if(yprime) *yprime=yp0; - if(yprime2) *yprime2=ypp0; - return y; - } else return fTransform.evaluate(xraw, y, yp0, ypp0, yprime, yprime2); +if(fTransform.X.fTransformed) x=fTransform.X.fHasStaticTransforms? +fTransform.X.pIn(x) : fTransform.X.fIn(x); +// save time by explicitly testing for identity function here + +int klo=0, khi=X.size()-1; + +if(khi < 0) throw c2_exception( +"Uninitialized interpolating function being evaluated"); + +const float_type *XX=&X[lastKLow]; +// make all fast checks short offsets from here + +if(!xInverted) { +// select search depending on whether transformed X is increasing or decreasing +if((XX[0] <= x) && (XX[1] >= x) ) { // already bracketed +klo=lastKLow; +} else if((XX[1] <= x) && (XX[2] >= x)) { // in next bracket to the right +klo=lastKLow+1; +} else if(lastKLow > 0 && (XX[-1] <= x) && (XX[0] >= x)) { +// in next bracket to the left +klo=lastKLow-1; +} else { // not bracketed, not close, start over + // search for new KLow +while(khi-klo > 1) { +int kk=(khi+klo)/2; +if(X[kk] > x) khi=kk; +else klo=kk; +} +} +} else { +if((XX[0] >= x) && (XX[1] <= x) ) { // already bracketed +klo=lastKLow; +} else if((XX[1] >= x) && (XX[2] <= x)) { // in next bracket to the right +klo=lastKLow+1; +} else if(lastKLow > 0 && (XX[-1] >= x) && (XX[0] <= x)) { +// in next bracket to the left +klo=lastKLow-1; +} else { // not bracketed, not close, start over + // search for new KLow +while(khi-klo > 1) { +int kk=(khi+klo)/2; +if(X[kk] < x) khi=kk; +else klo=kk; +} +} } -template void interpolating_function_p::set_lower_extrapolation(float_type bound) -{ - int kl = 0 ; - int kh=kl+1; - float_type xx=fTransform.X.fIn(bound); - float_type h0=X[kh]-X[kl]; - float_type h1=xx-X[kl]; - float_type yextrap=F[kl]+((F[kh]-F[kl])/h0 - h0*(y2[kl]+2.0*y2[kh])/6.0)*h1+y2[kl]*h1*h1/2.0; - - X.insert(X.begin(), xx); - F.insert(F.begin(), yextrap); - y2.insert(y2.begin(), y2.front()); // duplicate first or last element - Xraw.insert(Xraw.begin(), bound); - if (bound < this->fXMin) this->fXMin=bound; // check for reversed data - else this->fXMax=bound; - - //printf("%10.4f %10.4f %10.4f %10.4f %10.4f\n", bound, xx, h0, h1, yextrap); - //for(int i=0; i void interpolating_function_p::set_upper_extrapolation(float_type bound) -{ - int kl = X.size()-2 ; - int kh=kl+1; - float_type xx=fTransform.X.fIn(bound); - float_type h0=X[kh]-X[kl]; - float_type h1=xx-X[kl]; - float_type yextrap=F[kl]+((F[kh]-F[kl])/h0 - h0*(y2[kl]+2.0*y2[kh])/6.0)*h1+y2[kl]*h1*h1/2.0; - - X.insert(X.end(), xx); - F.insert(F.end(), yextrap); - y2.insert(y2.end(), y2.back()); // duplicate first or last element - Xraw.insert(Xraw.end(), bound); - if (bound < this->fXMin) this->fXMin=bound; // check for reversed data - else this->fXMax=bound; - //printf("%10.4f %10.4f %10.4f %10.4f %10.4f\n", bound, xx, h0, h1, yextrap); - //for(int i=0; i interpolating_function_p& - interpolating_function_p::unary_operator(const c2_function &source) const -{ - size_t np=X.size(); - std::vectoryv(np); - c2_ptr comp(source(*this)); - float_type yp0, yp1, ypp; - - for(size_t i=1; iXraw, yv, false, yp0, false, yp1); - - return copy; +if(fTransform.isIdentity) { +if(yprime) *yprime=yp0; +if(yprime2) *yprime2=ypp0; +return y; +} else return fTransform.evaluate(xraw, y, yp0, ypp0, yprime, yprime2); } template void -interpolating_function_p::get_data(std::vector &xvals, std::vector &yvals) const throw() +interpolating_function_p::set_lower_extrapolation(float_type bound) { - - xvals=Xraw; - yvals.resize(F.size()); - - for(size_t i=0; ifXMin) this->fXMin=bound; // check for reversed data +else this->fXMax=bound; + +} + +template void +interpolating_function_p::set_upper_extrapolation(float_type bound) +{ +int kl = X.size()-2 ; +int kh=kl+1; +float_type xx=fTransform.X.fIn(bound); +float_type h0=X[kh]-X[kl]; +float_type h1=xx-X[kl]; +float_type yextrap=F[kl]+((F[kh]-F[kl])/h0 +- h0*(y2[kl]+2.0*y2[kh])/6.0)*h1+y2[kl]*h1*h1/2.0; + +X.insert(X.end(), xx); +F.insert(F.end(), yextrap); +y2.insert(y2.end(), y2.back()); // duplicate first or last element +Xraw.insert(Xraw.end(), bound); +if (bound < this->fXMin) this->fXMin=bound; // check for reversed data +else this->fXMax=bound; +//printf("%10.4f %10.4f %10.4f %10.4f %10.4f\n", bound, xx, h0, h1, yextrap); + +} + +template interpolating_function_p& +interpolating_function_p::unary_operator( +const c2_function &source) const +{ +size_t np=X.size(); +std::vectoryv(np); +c2_ptr comp(source(*this)); +float_type yp0, yp1, ypp; + +for(size_t i=1; iXraw, yv, false, yp0, false, yp1); + +return copy; +} + +template void +interpolating_function_p::get_data(std::vector &xvals, +std::vector &yvals) const throw() +{ + +xvals=Xraw; +yvals.resize(F.size()); + +for(size_t i=0; i interpolating_function_p & - interpolating_function_p::binary_operator(const c2_function &rhs, - const c2_binary_function *combining_stub) const -{ - size_t np=X.size(); - std::vector yv(np); - c2_constant_p fval(0); - float_type yp0, yp1, ypp; - - c2_const_ptr stub(*combining_stub); // manage ownership - - for(size_t i=1; icombine(fval, rhs, Xraw[i], (float_type *)0, (float_type *)0); // compute rhs & combine without derivatives - } - - yv.front()=combining_stub->combine(*this, rhs, Xraw.front(), &yp0, &ypp); // get derivative at front - yv.back()= combining_stub->combine(*this, rhs, Xraw.back(), &yp1, &ypp); // get derivative at back - - interpolating_function_p ©=clone(); - copy.load(this->Xraw, yv, false, yp0, false, yp1); - - return copy; -} - -template c2_inverse_function_p::c2_inverse_function_p(const c2_function &source) - : c2_function(), func(source) +interpolating_function_p::binary_operator(const +c2_function &rhs, +const c2_binary_function *combining_stub) const { - float_type l=source.xmin(); - float_type r=source.xmax(); - start_hint=(l+r)*0.5; // guess that we start in the middle - // compute our domain assuming the function is monotonic so its values on its domain boundaries are our domain - float_type ly=source(l); - float_type ry=source(r); - if (ly > ry) { - float_type t=ly; ly=ry; ry=t; - } - this->set_domain(ly, ry); +size_t np=X.size(); +std::vector yv(np); +c2_constant_p fval(0); +float_type yp0, yp1, ypp; + +c2_const_ptr stub(*combining_stub); // manage ownership + +for(size_t i=1; icombine(fval, rhs, Xraw[i], (float_type *)0, +(float_type *)0); // compute rhs & combine without derivatives } -template float_type c2_inverse_function_p::value_with_derivatives( - float_type x, float_type *yprime, float_type *yprime2 - ) const throw(c2_exception) +yv.front()=combining_stub->combine(*this, rhs, Xraw.front(), &yp0, &ypp); +yv.back()= combining_stub->combine(*this, rhs, Xraw.back(), &yp1, &ypp); + +interpolating_function_p ©=clone(); +copy.load(this->Xraw, yv, false, yp0, false, yp1); + +return copy; +} + +template +c2_inverse_function_p::c2_inverse_function_p( +const c2_function &source) +: c2_function(), func(source) { - float_type l=this->func->xmin(); - float_type r=this->func->xmax(); - float_type yp, ypp; - float_type y=this->func->find_root(l, r, get_start_hint(x), x, 0, &yp, &ypp); - start_hint=y; - if(yprime) *yprime=1.0/yp; - if(yprime2) *yprime2=-ypp/(yp*yp*yp); - return y; +float_type l=source.xmin(); +float_type r=source.xmax(); +start_hint=(l+r)*0.5; // guess that we start in the middle + +float_type ly=source(l); +float_type ry=source(r); +if (ly > ry) { +float_type t=ly; ly=ry; ry=t; +} +this->set_domain(ly, ry); } -//accumulated_histogram starts with binned data, generates the integral, and generates a piecewise linear interpolating_function -//If drop_zeros is true, it merges empty bins together before integration -//Note that the resulting interpolating_function is guaranteed to be increasing (if drop_zeros is false) -// or stricly increasing (if drop_zeros is true) -//If inverse_function is true, it drop zeros, integrates, and returns the inverse function which is useful -// for random number generation based on the input distribution. -//If normalize is true, the big end of the integral is scaled to 1. -//If the data are passed in reverse order (large X first), the integral is carried out from the big end, -// and then the data are reversed to the result in in increasing X order. -template accumulated_histogram::accumulated_histogram( - const std::vectorbinedges, const std::vector binheights, - bool normalize, bool inverse_function, bool drop_zeros) +template float_type +c2_inverse_function_p::value_with_derivatives( +float_type x, float_type *yprime, float_type *yprime2 +) const throw(c2_exception) { - - int np=binheights.size(); - - std::vector be, bh; - if(drop_zeros || inverse_function) { //inverse functions cannot have any zero bins or they have vertical sections - if(binheights[0] || !inverse_function) { // conserve lower x bound if not an inverse function - be.push_back(binedges[0]); - bh.push_back(binheights[0]); - } - for(int i=1; i cum(np+1, 0.0); - for(int i=1; i<=np; i++) cum[i]=bh[i]*(be[i]-be[i-1])+cum[i-1]; // accumulate bins, leaving bin 0 as 0 - if(be[1] < be[0]) { // if bins passed in backwards, reverse them - std::reverse(be.begin(), be.end()); - std::reverse(cum.begin(), cum.end()); - for(unsigned int i=0; i(cum, be); // use cum as x axis in inverse function - else interpolating_function_p(be, cum); // else use lower bin edge as x axis - std::fill(this->y2.begin(), this->y2.end(), 0.0); // clear second derivatives, to we are piecewise linear +float_type l=this->func->xmin(); +float_type r=this->func->xmax(); +float_type yp, ypp; +float_type y=this->func->find_root(l, r, get_start_hint(x), x, 0, &yp, &ypp); +start_hint=y; +if(yprime) *yprime=1.0/yp; +if(yprime2) *yprime2=-ypp/(yp*yp*yp); +return y; } -template c2_piecewise_function_p::c2_piecewise_function_p() +template +accumulated_histogram::accumulated_histogram( +const std::vectorbinedges, const std::vector binheights, +bool normalize, bool inverse_function, bool drop_zeros) +{ + +int np=binheights.size(); + +std::vector be, bh; +if(drop_zeros || inverse_function) { +if(binheights[0] || !inverse_function) { +be.push_back(binedges[0]); +bh.push_back(binheights[0]); +} +for(int i=1; i cum(np+1, 0.0); +for(int i=1; i<=np; i++) cum[i]=bh[i]*(be[i]-be[i-1])+cum[i-1]; +// accumulate bins, leaving bin 0 as 0 +if(be[1] < be[0]) { // if bins passed in backwards, reverse them +std::reverse(be.begin(), be.end()); +std::reverse(cum.begin(), cum.end()); +for(unsigned int i=0; i(cum, be); +// use cum as x axis in inverse function +else interpolating_function_p(be, cum); +// else use lower bin edge as x axis +std::fill(this->y2.begin(), this->y2.end(), 0.0); +// clear second derivatives, to we are piecewise linear +} + +template +c2_piecewise_function_p::c2_piecewise_function_p() : c2_function(), lastKLow(-1) { - this->sampling_grid=new std::vector; // this always has a smapling grid +this->sampling_grid=new std::vector; } -template c2_piecewise_function_p::~c2_piecewise_function_p() +template +c2_piecewise_function_p::~c2_piecewise_function_p() { } -template float_type c2_piecewise_function_p::value_with_derivatives( - float_type x, float_type *yprime, float_type *yprime2 - ) const throw(c2_exception) +template float_type +c2_piecewise_function_p::value_with_derivatives( + float_type x, float_type *yprime, float_type *yprime2 + ) const throw(c2_exception) { - - size_t np=functions.size(); - if(!np) throw c2_exception("attempting to evaluate an empty piecewise function"); - - if(x < this->xmin() || x > this->xmax()) { - std::ostringstream outstr; - outstr << "piecewise function argument " << x << " out of range " << this->xmin() << " -- " << this->xmax(); - throw c2_exception(outstr.str().c_str()); - } - int klo=0; - - if(lastKLow >= 0 && functions[lastKLow]->xmin() <= x && functions[lastKLow]->xmax() > x) { - klo=lastKLow; - } else { - int khi=np; - while(khi-klo > 1) { - int kk=(khi+klo)/2; - if(functions[kk]->xmin() > x) khi=kk; - else klo=kk; - } - } - lastKLow=klo; - return functions[klo]->value_with_derivatives(x, yprime, yprime2); +size_t np=functions.size(); +if(!np) throw c2_exception( +"attempting to evaluate an empty piecewise function"); + +if(x < this->xmin() || x > this->xmax()) { +std::ostringstream outstr; +outstr << "piecewise function argument " << x << " out of range " +<< this->xmin() << " -- " << this->xmax(); +throw c2_exception(outstr.str().c_str()); } -template void c2_piecewise_function_p::append_function( - const c2_function &func) throw(c2_exception) -{ - c2_const_ptr keepfunc(func); // manage function before we can throw any exceptions - if(functions.size()) { // check whether there are any gaps to fill, etc. - const c2_function &tail=functions.back(); - float_type x0=tail.xmax(); - float_type x1=func.xmin(); - if(x0 < x1) { - // must insert a connector if x0 < x1 - float_type y0=tail(x0); - float_type y1=func(x1); - c2_function &connector=*new c2_linear_p(x0, y0, (y1-y0)/(x1-x0)); - connector.set_domain(x0,x1); - functions.push_back(c2_const_ptr(connector)); - this->sampling_grid->push_back(x1); - } else if(x0>x1) throw c2_exception("function domains not increasing in c2_piecewise_function"); - } - functions.push_back(keepfunc); - // extend our domain to include all known functions - this->set_domain(functions.front()->xmin(), functions.back()->xmax()); - // extend our sampling grid with the new function's grid, with the first point dropped to avoid duplicates - std::vector newgrid; - func.get_sampling_grid(func.xmin(), func.xmax(), newgrid); - this->sampling_grid->insert(this->sampling_grid->end(), newgrid.begin()+1, newgrid.end()); +int klo=0; + +if(lastKLow >= 0 && functions[lastKLow]->xmin() <= x +&& functions[lastKLow]->xmax() > x) { +klo=lastKLow; +} else { +int khi=np; +while(khi-klo > 1) { +int kk=(khi+klo)/2; +if(functions[kk]->xmin() > x) khi=kk; +else klo=kk; +} +} +lastKLow=klo; +return functions[klo]->value_with_derivatives(x, yprime, yprime2); } -template c2_connector_function_p::c2_connector_function_p( - float_type x0, const c2_function &f0, float_type x2, const c2_function &f2, - bool auto_center, float_type y1) - : c2_function() +template void +c2_piecewise_function_p::append_function( +const c2_function &func) throw(c2_exception) { - c2_const_ptr left(f0), right(f2); // make sure if these are unowned, they get deleted - c2_fblock fb0, fb2; - fb0.x=x0; - f0.fill_fblock(fb0); - fb2.x=x2; - f2.fill_fblock(fb2); - init(fb0, fb2, auto_center, y1); +c2_const_ptr keepfunc(func); +if(functions.size()) { // check whether there are any gaps to fill, etc. +const c2_function &tail=functions.back(); +float_type x0=tail.xmax(); +float_type x1=func.xmin(); +if(x0 < x1) { +// must insert a connector if x0 < x1 +float_type y0=tail(x0); +float_type y1=func(x1); +c2_function &connector= +*new c2_linear_p(x0, y0, (y1-y0)/(x1-x0)); +connector.set_domain(x0,x1); +functions.push_back(c2_const_ptr(connector)); +this->sampling_grid->push_back(x1); +} else if(x0>x1) throw c2_exception( +"function domains not increasing in c2_piecewise_function"); +} +functions.push_back(keepfunc); +// extend our domain to include all known functions +this->set_domain(functions.front()->xmin(), functions.back()->xmax()); +// extend our sampling grid with the new function's grid, +// with the first point dropped to avoid duplicates +std::vector newgrid; +func.get_sampling_grid(func.xmin(), func.xmax(), newgrid); +this->sampling_grid->insert(this->sampling_grid->end(), +newgrid.begin()+1, newgrid.end()); } -template c2_connector_function_p::c2_connector_function_p( - float_type x0, float_type y0, float_type yp0, float_type ypp0, - float_type x2, float_type y2, float_type yp2, float_type ypp2, - bool auto_center, float_type y1) - : c2_function() +template +c2_connector_function_p::c2_connector_function_p( +float_type x0, const c2_function &f0, float_type x2, +const c2_function &f2, +bool auto_center, float_type y1) +: c2_function() { - c2_fblock fb0, fb2; - fb0.x=x0; fb0.y=y0; fb0.yp=yp0; fb0.ypp=ypp0; - fb2.x=x2; fb2.y=y2; fb2.yp=yp2; fb2.ypp=ypp2; - init(fb0, fb2, auto_center, y1); +c2_const_ptr left(f0), right(f2); +c2_fblock fb0, fb2; +fb0.x=x0; +f0.fill_fblock(fb0); +fb2.x=x2; +f2.fill_fblock(fb2); +init(fb0, fb2, auto_center, y1); } -template c2_connector_function_p::c2_connector_function_p( - const c2_fblock &fb0, - const c2_fblock &fb2, - bool auto_center, float_type y1) - : c2_function() +template +c2_connector_function_p::c2_connector_function_p( +float_type x0, float_type y0, float_type yp0, float_type ypp0, +float_type x2, float_type y2, float_type yp2, float_type ypp2, +bool auto_center, float_type y1) +: c2_function() { - init(fb0, fb2, auto_center, y1); +c2_fblock fb0, fb2; +fb0.x=x0; fb0.y=y0; fb0.yp=yp0; fb0.ypp=ypp0; +fb2.x=x2; fb2.y=y2; fb2.yp=yp2; fb2.ypp=ypp2; +init(fb0, fb2, auto_center, y1); +} + +template +c2_connector_function_p::c2_connector_function_p( +const c2_fblock &fb0, +const c2_fblock &fb2, +bool auto_center, float_type y1) +: c2_function() +{ +init(fb0, fb2, auto_center, y1); } template void c2_connector_function_p::init( - const c2_fblock &fb0, - const c2_fblock &fb2, - bool auto_center, float_type y1) +const c2_fblock &fb0, +const c2_fblock &fb2, +bool auto_center, float_type y1) { - float_type dx=(fb2.x-fb0.x)/2.0; - fhinv=1.0/dx; +float_type dx=(fb2.x-fb0.x)/2.0; +fhinv=1.0/dx; - // scale derivs to put function on [-1,1] since mma solution is done this way - float_type yp0=fb0.yp*dx; - float_type yp2=fb2.yp*dx; - float_type ypp0=fb0.ypp*dx*dx; - float_type ypp2=fb2.ypp*dx*dx; - - float_type ff0=(8*(fb0.y + fb2.y) + 5*(yp0 - yp2) + ypp0 + ypp2)*0.0625; - if(auto_center) y1=ff0; // forces ff to be 0 if we are auto-centering - - // y[x_] = y1 + x (a + b x) + x [(x-1) (x+1)] (c + d x) + x (x-1)^2 (x+1)^2 (e + f x) - // y' = a + 2 b x + d x [(x+1)(x-1)] + (c + d x)(3x^2-1) + f x [(x+1)(x-1)]^2 + (e + f x)[(x+1)(x-1)](5x^2-1) - // y'' = 2 b + 6x(c + d x) + 2d(3x^2-1) + 4x(e + f x)(5x^2-3) + 2f(x^2-1)(5x^2-1) - fy1=y1; - fa=(fb2.y - fb0.y)*0.5; - fb=(fb0.y + fb2.y)*0.5 - y1; - fc=(yp2+yp0-2.*fa)*0.25; - fd=(yp2-yp0-4.*fb)*0.25; - fe=(ypp2-ypp0-12.*fc)*0.0625; - ff=(ff0 - y1); - this->set_domain(fb0.x, fb2.x); // this is where the function is valid +// scale derivs to put function on [-1,1] since mma solution is done this way +float_type yp0=fb0.yp*dx; +float_type yp2=fb2.yp*dx; +float_type ypp0=fb0.ypp*dx*dx; +float_type ypp2=fb2.ypp*dx*dx; + +float_type ff0=(8*(fb0.y + fb2.y) + 5*(yp0 - yp2) + ypp0 + ypp2)*0.0625; +if(auto_center) y1=ff0; // forces ff to be 0 if we are auto-centering + +// y[x_] = y1 + x (a + b x) + x [(x-1) (x+1)] (c + d x) +// + x (x-1)^2 (x+1)^2 (e + f x) +// y' = a + 2 b x + d x [(x+1)(x-1)] + (c + d x)(3x^2-1) +// + f x [(x+1)(x-1)]^2 + (e + f x)[(x+1)(x-1)](5x^2-1) +// y'' = 2 b + 6x(c + d x) + 2d(3x^2-1) + 4x(e + f x)(5x^2-3) +// + 2f(x^2-1)(5x^2-1) +fy1=y1; +fa=(fb2.y - fb0.y)*0.5; +fb=(fb0.y + fb2.y)*0.5 - y1; +fc=(yp2+yp0-2.*fa)*0.25; +fd=(yp2-yp0-4.*fb)*0.25; +fe=(ypp2-ypp0-12.*fc)*0.0625; +ff=(ff0 - y1); +this->set_domain(fb0.x, fb2.x); // this is where the function is valid } -template c2_connector_function_p::~c2_connector_function_p() +template +c2_connector_function_p::~c2_connector_function_p() { } -template float_type c2_connector_function_p::value_with_derivatives( - float_type x, float_type *yprime, float_type *yprime2 - ) const throw(c2_exception) +template float_type +c2_connector_function_p::value_with_derivatives( +float_type x, float_type *yprime, float_type *yprime2 +) const throw(c2_exception) { - float_type x0=this->xmin(), x2=this->xmax(); - float_type dx=(x-(x0+x2)*0.5)*fhinv; - float_type q1=(x-x0)*(x-x2)*fhinv*fhinv; // exactly vanish all bits at both ends - float_type q2=dx*q1; - - float_type r1=fa+fb*dx; - float_type r2=fc+fd*dx; - float_type r3=fe+ff*dx; - - float_type y=fy1+dx*r1+q2*r2+q1*q2*r3; - - if(yprime || yprime2) { - float_type q3=3*q1+2; - float_type q4=5*q1+4; - if(yprime) *yprime=(fa+2*fb*dx+fd*q2+r2*q3+ff*q1*q2+q1*q4*r3)*fhinv; - if(yprime2) *yprime2=2*(fb+fd*q3+3*dx*r2+ff*q1*q4+r3*(2*dx*(5*q1+2)))*fhinv*fhinv; - } - return y; +float_type x0=this->xmin(), x2=this->xmax(); +float_type dx=(x-(x0+x2)*0.5)*fhinv; +float_type q1=(x-x0)*(x-x2)*fhinv*fhinv; +float_type q2=dx*q1; + +float_type r1=fa+fb*dx; +float_type r2=fc+fd*dx; +float_type r3=fe+ff*dx; + +float_type y=fy1+dx*r1+q2*r2+q1*q2*r3; + +if(yprime || yprime2) { +float_type q3=3*q1+2; +float_type q4=5*q1+4; +if(yprime) *yprime=(fa+2*fb*dx+fd*q2+r2*q3+ff*q1*q2+q1*q4*r3)*fhinv; +if(yprime2) *yprime2=2*(fb+fd*q3+3*dx*r2+ff*q1*q4 ++r3*(2*dx*(5*q1+2)))*fhinv*fhinv; +} +return y; } -// the recursive part of the sampler is agressively designed to minimize copying of data... lots of pointers -template void c2_function::sample_step(c2_sample_recur &rb) const throw(c2_exception) +// the recursive part of the sampler is agressively designed +// to minimize copying of data... lots of pointers +template void +c2_function::sample_step(c2_sample_recur &rb) const +throw(c2_exception) { - std::vector< recur_item > &rb_stack=*rb.rb_stack; // heap-based stack of data for recursion - rb_stack.clear(); - - recur_item top; - top.depth=0; top.done=false; top.f0index=0; top.f2index=0; - - // push storage for our initial elements - rb_stack.push_back(top); - rb_stack.back().f1=*rb.f0; - rb_stack.back().done=true; +std::vector< recur_item > &rb_stack=*rb.rb_stack; +// heap-based stack of data for recursion +rb_stack.clear(); - rb_stack.push_back(top); - rb_stack.back().f1=*rb.f1; - rb_stack.back().done=true; - - if(!rb.inited) { - rb.dx_tolerance=10.0*std::numeric_limits::epsilon(); - rb.abs_tol_min=10.0*std::numeric_limits::min(); - rb.inited=true; - } +recur_item top; +top.depth=0; top.done=false; top.f0index=0; top.f2index=0; - // now, push our first real element - top.f0index=0; // left element is stack[0] - top.f2index=1; // right element is stack[1] - rb_stack.push_back(top); +// push storage for our initial elements +rb_stack.push_back(top); +rb_stack.back().f1=*rb.f0; +rb_stack.back().done=true; - while(rb_stack.size() > 2) { - recur_item &back=rb_stack.back(); - if(back.done) { - rb_stack.pop_back(); - continue; - } - back.done=true; +rb_stack.push_back(top); +rb_stack.back().f1=*rb.f1; +rb_stack.back().done=true; - c2_fblock &f0=rb_stack[back.f0index].f1, &f2=rb_stack[back.f2index].f1; - c2_fblock &f1=back.f1; // will hold new middle values - size_t f1index=rb_stack.size()-1; // our current offset +if(!rb.inited) { +rb.dx_tolerance=10.0*std::numeric_limits::epsilon(); +rb.abs_tol_min=10.0*std::numeric_limits::min(); +rb.inited=true; +} - // std::cout << "processing: " << rb_stack.size() << " " << - // (&back-&rb_stack.front()) << " " << back.depth << " " << f0.x << " " << f2.x << std::endl; +// now, push our first real element +top.f0index=0; // left element is stack[0] +top.f2index=1; // right element is stack[1] +rb_stack.push_back(top); - f1.x=0.5*(f0.x + f2.x); // center of interval - float_type dx2=0.5*(f2.x - f0.x); - - // check for underflow on step size, which prevents us from achieving specified accuracy. - if(std::abs(dx2) < std::abs(f1.x)*rb.dx_tolerance || std::abs(dx2) < rb.abs_tol_min) { - std::ostringstream outstr; - outstr << "Step size underflow in adaptive_sampling at depth=" << back.depth << ", x= " << f1.x; - throw c2_exception(outstr.str().c_str()); - } - - fill_fblock(f1); - - if(c2_isnan(f1.y) || f1.ypbad || f1.yppbad) { - // can't go any further if a nan has appeared - bad_x_point=f1.x; - throw c2_exception("NaN encountered while sampling function"); - } +while(rb_stack.size() > 2) { +recur_item &back=rb_stack.back(); +if(back.done) { +rb_stack.pop_back(); +continue; +} +back.done=true; - float_type eps; - if(rb.derivs==2) { - // this is code from connector_function to compute the value at the midpoint - // it is re-included here to avoid constructing a complete c2connector - // just to find out if we are close enough - float_type ff0=(8*(f0.y + f2.y) + 5*(f0.yp - f2.yp)*dx2 + (f0.ypp+f2.ypp)*dx2*dx2)*0.0625; - // we are converging as at least x**5 and bisecting, so real error on final step is smaller - eps=std::abs(ff0-f1.y)/32.0; - } else { - // there are two tolerances to meet... the shift in the estimate of the actual point, - // and the difference between the current points and the extremum - // build all the coefficients needed to construct the local parabola - float_type ypcenter, ypp; - if (rb.derivs==1) { - // linear extrapolation error using exact derivs - eps = (std::abs(f0.y+f0.yp*dx2-f1.y)+std::abs(f2.y-f2.yp*dx2-f1.y))*0.125; - ypcenter=2*f1.yp*dx2; // first deriv scaled so this interval is on [-1,1] - ypp=2*(f2.yp-f0.yp)*dx2*dx2; // second deriv estimate scaled so this interval is on [-1,1] - } else { - // linear interpolation error without derivs if we are at top level - // or 3-point parabolic interpolation estimates from previous level, if available - ypcenter=(f2.y-f0.y)*0.5; // derivative estimate at center - ypp=(f2.y+f0.y-2*f1.y); // second deriv estimate - if(back.depth==0) eps=std::abs((f0.y+f2.y)*0.5 - f1.y)*2; // penalize first step - else eps=std::abs(f1.y-back.previous_estimate)*0.25; - } - float_type ypleft=ypcenter-ypp; // derivative at left edge - float_type ypright=ypcenter+ypp; // derivative at right edge - float_type extremum_eps=0; - if((ypleft*ypright) <=0) // y' changes sign if we have an extremum - { - // compute position and value of the extremum this way - float_type xext=-ypcenter/ypp; - float_type yext=f1.y + xext*ypcenter + 0.5*xext*xext*ypp; - // and then find the the smallest offset of it from a point, looking in the left or right side - if(xext <=0) extremum_eps=std::min(std::abs(f0.y-yext), std::abs(f1.y-yext)); - else extremum_eps=std::min(std::abs(f2.y-yext), std::abs(f1.y-yext)); - } - eps=std::max(eps, extremum_eps); // if previous shot was really bad, keep trying - } - - if(eps < rb.abs_tol || eps < std::abs(f1.y)*rb.rel_tol) { - if(rb.out) { - // we've met the tolerance, and are building a function, append two connectors - rb.out->append_function( - *new c2_connector_function_p(f0, f1, true, 0.0) - ); - rb.out->append_function( - *new c2_connector_function_p(f1, f2, true, 0.0) - ); - } - if(rb.xvals && rb.yvals) { - rb.xvals->push_back(f0.x); - rb.xvals->push_back(f1.x); - rb.yvals->push_back(f0.y); - rb.yvals->push_back(f1.y); - // the value at f2 will get pushed in the next segment... it is not forgotten - } - } else { - top.depth=back.depth+1; // increment depth counter +c2_fblock &f0=rb_stack[back.f0index].f1, +&f2=rb_stack[back.f2index].f1; +c2_fblock &f1=back.f1; // will hold new middle values +size_t f1index=rb_stack.size()-1; // our current offset - // save the last things we need from back before a push happens, in case - // the push causes a reallocation and moves the whole stack. - size_t f0index=back.f0index, f2index=back.f2index; - float_type left=0, right=0; - if(rb.derivs==0) { - // compute three-point parabolic interpolation estimate of right-hand and left-hand midpoint - left=(6*f1.y + 3*f0.y - f2.y) * 0.125; - right=(6*f1.y + 3*f2.y - f0.y) * 0.125; - } - - top.f0index=f1index; top.f2index=f2index; // insert pointers to right side data into our recursion block - top.previous_estimate=right; - rb_stack.push_back(top); - top.f0index=f0index; top.f2index=f1index; // insert pointers to left side data into our recursion block - top.previous_estimate=left; - rb_stack.push_back(top); - } - } +f1.x=0.5*(f0.x + f2.x); // center of interval +float_type dx2=0.5*(f2.x - f0.x); + +if(std::abs(dx2) < std::abs(f1.x)*rb.dx_tolerance || std::abs(dx2) +< rb.abs_tol_min) { +std::ostringstream outstr; +outstr << "Step size underflow in adaptive_sampling at depth=" +<< back.depth << ", x= " << f1.x; +throw c2_exception(outstr.str().c_str()); +} + +fill_fblock(f1); + +if(c2_isnan(f1.y) || f1.ypbad || f1.yppbad) { +// can't go any further if a nan has appeared +bad_x_point=f1.x; +throw c2_exception("NaN encountered while sampling function"); +} + +float_type eps; +if(rb.derivs==2) { +// this is code from connector_function to compute the value at the midpoint +// it is re-included here to avoid constructing a complete c2connector +// just to find out if we are close enough +float_type ff0=(8*(f0.y + f2.y) + 5*(f0.yp - f2.yp)*dx2 ++ (f0.ypp+f2.ypp)*dx2*dx2)*0.0625; +// we are converging as at least x**5 and bisecting, +// so real error on final step is smaller +eps=std::abs(ff0-f1.y)/32.0; +} else { +// there are two tolerances to meet... the shift in the estimate +// of the actual point, +// and the difference between the current points and the extremum +// build all the coefficients needed to construct the local parabola +float_type ypcenter, ypp; +if (rb.derivs==1) { +// linear extrapolation error using exact derivs +eps = (std::abs(f0.y+f0.yp*dx2-f1.y)+std::abs(f2.y-f2.yp*dx2-f1.y))*0.125; +ypcenter=2*f1.yp*dx2; // first deriv scaled so this interval is on [-1,1] +ypp=2*(f2.yp-f0.yp)*dx2*dx2; +} else { +// linear interpolation error without derivs if we are at top level +// or 3-point parabolic interpolation estimates from previous level +ypcenter=(f2.y-f0.y)*0.5; // derivative estimate at center +ypp=(f2.y+f0.y-2*f1.y); // second deriv estimate +if(back.depth==0) eps=std::abs((f0.y+f2.y)*0.5 - f1.y)*2; +// penalize first step +else eps=std::abs(f1.y-back.previous_estimate)*0.25; +} +float_type ypleft=ypcenter-ypp; // derivative at left edge +float_type ypright=ypcenter+ypp; // derivative at right edge +float_type extremum_eps=0; +if((ypleft*ypright) <=0) // y' changes sign if we have an extremum +{ +// compute position and value of the extremum this way +float_type xext=-ypcenter/ypp; +float_type yext=f1.y + xext*ypcenter + 0.5*xext*xext*ypp; +// and then find the the smallest offset of it from a point, +// looking in the left or right side +if(xext <=0) extremum_eps=std::min(std::abs(f0.y-yext), std::abs(f1.y-yext)); +else extremum_eps=std::min(std::abs(f2.y-yext), std::abs(f1.y-yext)); +} +eps=std::max(eps, extremum_eps); // if previous shot was really bad, keep trying +} + +if(eps < rb.abs_tol || eps < std::abs(f1.y)*rb.rel_tol) { +if(rb.out) { +// we've met the tolerance, and are building a function, append two connectors +rb.out->append_function( +*new c2_connector_function_p(f0, f1, true, 0.0) +); +rb.out->append_function( +*new c2_connector_function_p(f1, f2, true, 0.0) +); +} +if(rb.xvals && rb.yvals) { +rb.xvals->push_back(f0.x); +rb.xvals->push_back(f1.x); +rb.yvals->push_back(f0.y); +rb.yvals->push_back(f1.y); +// the value at f2 will get pushed in the next segment... it is not forgotten +} +} else { +top.depth=back.depth+1; // increment depth counter + +// save the last things we need from back before a push happens, in case +// the push causes a reallocation and moves the whole stack. +size_t f0index=back.f0index, f2index=back.f2index; +float_type left=0, right=0; +if(rb.derivs==0) { +// compute three-point parabolic interpolation estimate of right-hand +// and left-hand midpoint +left=(6*f1.y + 3*f0.y - f2.y) * 0.125; +right=(6*f1.y + 3*f2.y - f0.y) * 0.125; +} + +top.f0index=f1index; top.f2index=f2index; +// insert pointers to right side data into our recursion block +top.previous_estimate=right; +rb_stack.push_back(top); + +top.f0index=f0index; top.f2index=f1index; +// insert pointers to left side data into our recursion block +top.previous_estimate=left; +rb_stack.push_back(top); +} +} } template c2_piecewise_function_p * - c2_function::adaptively_sample( - float_type amin, float_type amax, - float_type abs_tol, float_type rel_tol, - int derivs, std::vector *xvals, std::vector *yvals) const throw(c2_exception) +c2_function::adaptively_sample( +float_type amin, float_type amax, +float_type abs_tol, float_type rel_tol, +int derivs, std::vector *xvals, +std::vector *yvals) const throw(c2_exception) { - c2_fblock f0, f2; - c2_sample_recur rb; - std::vector< recur_item > rb_stack; - rb_stack.reserve(20); // enough for most operations - rb.rb_stack=&rb_stack; - rb.out=0; - if(derivs==2) rb.out=new c2_piecewise_function_p(); - c2_ptr pieces(*rb.out); // manage this function, if any, so it deletes on an exception - rb.rel_tol=rel_tol; - rb.abs_tol=abs_tol; - rb.xvals=xvals; - rb.yvals=yvals; - rb.derivs=derivs; - rb.inited=false; - - if(xvals && yvals) { - xvals->clear(); - yvals->clear(); - } - - // create xgrid as a automatic-variable copy of the sampling grid so the exception handler correctly - // disposes of it. - std::vector xgrid; - get_sampling_grid(amin, amax, xgrid); - int np=xgrid.size(); +c2_fblock f0, f2; +c2_sample_recur rb; +std::vector< recur_item > rb_stack; +rb_stack.reserve(20); // enough for most operations +rb.rb_stack=&rb_stack; +rb.out=0; +if(derivs==2) rb.out=new c2_piecewise_function_p(); +c2_ptr pieces(*rb.out); +rb.rel_tol=rel_tol; +rb.abs_tol=abs_tol; +rb.xvals=xvals; +rb.yvals=yvals; +rb.derivs=derivs; +rb.inited=false; - f2.x=xgrid[0]; - fill_fblock(f2); - if(c2_isnan(f2.y) || f2.ypbad || f2.yppbad) { - // can't go any further if a nan has appeared - bad_x_point=f2.x; - throw c2_exception("NaN encountered while sampling function"); - } - - for(int i=0; ipush_back(f2.x); - yvals->push_back(f2.y); - } - - if(rb.out) rb.out->set_sampling_grid(xgrid); // reflect old sampling grid, which still should be right - pieces.release_for_return(); // unmanage the piecewise_function so we can return it - return rb.out; +if(xvals && yvals) { +xvals->clear(); +yvals->clear(); +} + +// create xgrid as a automatic-variable copy of the sampling +// grid so the exception handler correctly +// disposes of it. +std::vector xgrid; +get_sampling_grid(amin, amax, xgrid); +int np=xgrid.size(); + +f2.x=xgrid[0]; +fill_fblock(f2); +if(c2_isnan(f2.y) || f2.ypbad || f2.yppbad) { +// can't go any further if a nan has appeared +bad_x_point=f2.x; +throw c2_exception("NaN encountered while sampling function"); +} + +for(int i=0; ipush_back(f2.x); +yvals->push_back(f2.y); +} + +if(rb.out) rb.out->set_sampling_grid(xgrid); +// reflect old sampling grid, which still should be right +pieces.release_for_return(); +// unmanage the piecewise_function so we can return it +return rb.out; } diff --git a/examples/extended/electromagnetic/TestEm7/plotHisto.C b/examples/extended/electromagnetic/TestEm7/plotHisto.C index 79c2f23a9f..11dca76acd 100644 --- a/examples/extended/electromagnetic/TestEm7/plotHisto.C +++ b/examples/extended/electromagnetic/TestEm7/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("testem7.root"); + TFile f("testem7.root"); TCanvas* c1 = new TCanvas("c1", " "); TH1D* hist1 = (TH1D*)f.Get("h1"); diff --git a/examples/extended/electromagnetic/TestEm8/History b/examples/extended/electromagnetic/TestEm8/History index d66bf0370d..13a9bd7e3f 100644 --- a/examples/extended/electromagnetic/TestEm8/History +++ b/examples/extended/electromagnetic/TestEm8/History @@ -1,4 +1,4 @@ -$Id: History 93674 2015-10-28 09:58:36Z gcosmo $ +$Id: History 95713 2016-02-22 08:08:38Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,12 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +19-02-16 V.Ivant (testem8-V10-02-00) +- TestParameters, Run, PrimaryGeneratorAction, + PrimaryGeneratorMessenger - reorganized printout of beam + particle; use energy smearing as an addition of noise, + so smeared noise should be added in units of energy + 27-10-15 D.Sawkey (testem8-V10-01-06) - spellcheck, synch README, .README diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index 5a3031b7a9..a0e6fa0d9f 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -563,7 +563,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -579,7 +579,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -699,7 +699,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -735,7 +735,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -861,44 +861,45 @@ Index : 2 used in the geometry : Yes ### Run 0 starts. ### Run 0 start analysis activation: BinsCluster= 1 BinsE= 20 Emax(keV)= 60 - WidthALICE= 0 FactorALICE= 325 + WidthALICE(keV)= 0 FactorALICE= 325 ... open Root analysis file : testem8.root - done -### PrimaryGeneratorAction::GeneratePrimaries ########## -### proton E(MeV)= 200000 Z(mm)= -12.7061 -######################################################## Run terminated. Run Summary Number of events processed : 1000 - User=0.32s Real=0.33s Sys=0s -RunAction: End of run actions are started 1 Nevt= 1000 Edep= 0.0164919 + User=0.14s Real=0.14s Sys=0s +RunAction: End of run actions are started 1 Nevt= 1000 Edep= 0.0160136 + ==================================================== + Beam Particle: proton + Ekin(MeV) = 200000 + Z(mm) = -12.7061 ================== run summary ===================== End of Run TotNbofEvents = 1000 Energy(keV) per ADC channel = 3.0769 - Mean energy deposit in absorber = 16.492 +- 0.63672 keV RMS/Emean = 1.2209 - Mean number of steps in absorber= 1.267 mean number of ion-clusters = 824.92 MeanCluster= 824.59 + Mean energy deposit in absorber = 16.014 +- 0.59917 keV RMS/Emean = 1.1832 + Mean number of steps in absorber= 1.25 mean number of ion-clusters = 801.28 MeanCluster= 800.58 - ====== Energy deposit distribution Noverflows= 0.013 ====== + ====== Energy deposit distribution Noverflows= 0.012 ====== bin nb Elow entries normalized 0 0 0 0 - 1 3 5 0.005 - 2 6 89 0.089 - 3 9 271 0.271 - 4 12 254 0.254 - 5 15 152 0.152 - 6 18 84 0.084 - 7 21 42 0.042 - 8 24 18 0.018 - 9 27 18 0.018 - 10 30 10 0.01 - 11 33 12 0.012 + 1 3 4 0.004 + 2 6 104 0.104 + 3 9 266 0.266 + 4 12 239 0.239 + 5 15 147 0.147 + 6 18 95 0.095 + 7 21 46 0.046 + 8 24 31 0.031 + 9 27 22 0.022 + 10 30 9 0.009 + 11 33 11 0.011 12 36 3 0.003 - 13 39 5 0.005 - 14 42 7 0.007 - 15 45 6 0.006 - 16 48 4 0.004 - 17 51 3 0.003 - 18 54 3 0.003 + 13 39 3 0.003 + 14 42 0 0 + 15 45 2 0.002 + 16 48 3 0.003 + 17 51 1 0.001 + 18 54 1 0.001 19 57 1 0.001 ================== run end ========================== ... write Root file : testem8.root - done diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh index ff80ec18c1..58bd593485 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh @@ -27,7 +27,7 @@ /// \brief Definition of the PhysicsListMessenger class // // -// $Id: PhysicsListMessenger.hh 92047 2015-08-14 07:23:37Z gcosmo $ +// $Id: PhysicsListMessenger.hh 95713 2016-02-22 08:08:38Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -79,7 +79,7 @@ private: G4UIcmdWithAString* fListCmd; G4UIcmdWithADoubleAndUnit* fADCCmd; G4UIcmdWithADouble* fNorCmd; - G4UIcmdWithADouble* fSmCmd; + G4UIcmdWithADoubleAndUnit* fSmCmd; }; diff --git a/examples/extended/electromagnetic/TestEm8/include/TestParameters.hh b/examples/extended/electromagnetic/TestEm8/include/TestParameters.hh index 0db6ba61ad..ffedfeda36 100644 --- a/examples/extended/electromagnetic/TestEm8/include/TestParameters.hh +++ b/examples/extended/electromagnetic/TestEm8/include/TestParameters.hh @@ -50,14 +50,10 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "globals.hh" -#include "G4DataVector.hh" -#include "G4StatDouble.hh" +#include "G4ParticleDefinition.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//class RunAction; -//class G4Step; - class TestParameters { @@ -106,9 +102,16 @@ public: // Without description G4double GetPositionZ() const; + void SetBeamEnergy(G4double val); + + G4double GetBeamEnergy() const; + + void SetBeamParticle(const G4ParticleDefinition*); + + const G4ParticleDefinition* GetBeamParticle() const; + private: - // MEMBERS static TestParameters* fManager; G4double fMaxEnergy; @@ -116,10 +119,13 @@ private: G4double fNormFactor; G4double fEnergySmear; G4double fPositionZ; + G4double fBeamEnergy; G4int fBinsE; G4int fBinsCluster; G4int fMaxCluster; + + const G4ParticleDefinition* fParticle; }; #endif diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc index 49d2851f9e..36f2a35558 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm8/src/PhysicsListMessenger.cc /// \brief Implementation of the PhysicsListMessenger class // -// $Id: PhysicsListMessenger.cc 92047 2015-08-14 07:23:37Z gcosmo $ +// $Id: PhysicsListMessenger.cc 95713 2016-02-22 08:08:38Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -105,9 +105,10 @@ PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) fNorCmd->SetRange("nfac>0."); fNorCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - fSmCmd = new G4UIcmdWithADouble("/testem/phys/setEnergySmear",this); + fSmCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setEnergySmear",this); fSmCmd->SetGuidance("Set intrinsic width of detector response"); fSmCmd->SetParameterName("sm",false,false); + fSmCmd->SetDefaultUnit("keV"); fSmCmd->SetRange("sm>0."); fSmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } diff --git a/examples/extended/electromagnetic/TestEm8/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm8/src/PrimaryGeneratorAction.cc index 6cac43d39b..0ed3a84a49 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PrimaryGeneratorAction.cc @@ -26,7 +26,7 @@ /// \file electromagnetic/TestEm8/src/PrimaryGeneratorAction.cc /// \brief Implementation of the PrimaryGeneratorAction class // -// $Id: PrimaryGeneratorAction.cc 85243 2014-10-27 08:22:42Z gcosmo $ +// $Id: PrimaryGeneratorAction.cc 95713 2016-02-22 08:08:38Z gcosmo $ // ///////////////////////////////////////////////////////////////////////// // @@ -74,14 +74,8 @@ void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { G4double z = fParam->GetPositionZ(); if(0 == anEvent->GetEventID()) { - G4cout << "### PrimaryGeneratorAction::GeneratePrimaries ##########" - << G4endl; - G4cout << "### " << fParticleGun->GetParticleDefinition()->GetParticleName() - << " E(MeV)= " << fParticleGun->GetParticleEnergy()/MeV - << " Z(mm)= " << z/mm - << G4endl; - G4cout << "########################################################" - << G4endl; + fParam->SetBeamParticle(fParticleGun->GetParticleDefinition()); + fParam->SetBeamEnergy(fParticleGun->GetParticleEnergy()); } fParticleGun->SetParticlePosition(G4ThreeVector(0.,0.,z)); fParticleGun->GeneratePrimaryVertex(anEvent); diff --git a/examples/extended/electromagnetic/TestEm8/src/Run.cc b/examples/extended/electromagnetic/TestEm8/src/Run.cc index 025038be9f..ece3b64960 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Run.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Run.cc @@ -83,7 +83,7 @@ void Run::BeginOfRun() G4int binsCluster = fParam->GetNumberBinsCluster(); G4cout << " BinsCluster= " << binsCluster << " BinsE= " << fNbins << " Emax(keV)= " << fMaxEnergy/keV << G4endl; - G4cout << " WidthALICE= " << fWidthALICE + G4cout << " WidthALICE(keV)= " << fWidthALICE/keV << " FactorALICE= " << fFactorALICE << G4endl; } @@ -111,6 +111,13 @@ void Run::EndOfRun() fFactorALICE = fParam->GetFactorALICE(); + G4cout << " ====================================================" << G4endl; + G4cout << " Beam Particle: " + << fParam->GetBeamParticle()->GetParticleName() << G4endl + << " Ekin(MeV) = " << fParam->GetBeamEnergy()/MeV + << G4endl + << " Z(mm) = " << fParam->GetPositionZ()/mm + << G4endl; G4cout << " ================== run summary =====================" << G4endl; G4int prec = G4cout.precision(5); G4cout << " End of Run TotNbofEvents = " @@ -178,9 +185,9 @@ void Run::EndOfEvent() fTotCluster += fCluster; if(fWidthALICE > 0.0) { - G4double x = G4RandGauss::shoot(1.,fWidthALICE); - if(x <= 0.0) { x = 1.0; } - fTotEdep *= x; + G4double x = G4RandGauss::shoot(0.,fWidthALICE); + fTotEdep += x; + fTotEdep = std::max(fTotEdep, 0.0); } G4int idx = G4int(fTotEdep*fNbins/fMaxEnergy); diff --git a/examples/extended/electromagnetic/TestEm8/src/TestParameters.cc b/examples/extended/electromagnetic/TestEm8/src/TestParameters.cc index d380763ae3..4cfa1fc040 100644 --- a/examples/extended/electromagnetic/TestEm8/src/TestParameters.cc +++ b/examples/extended/electromagnetic/TestEm8/src/TestParameters.cc @@ -46,7 +46,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -TestParameters* TestParameters::fManager = 0; +TestParameters* TestParameters::fManager = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -69,6 +69,9 @@ TestParameters::TestParameters() fNormFactor = 1.0; fEnergySmear = 0.0; fPositionZ = 0.0; + fBeamEnergy = 0.0; + + fParticle = nullptr; // normalisation to PAI fFactorALICE = 325; @@ -195,3 +198,31 @@ G4double TestParameters::GetPositionZ() const } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TestParameters::SetBeamEnergy(G4double val) +{ + fBeamEnergy = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double TestParameters::GetBeamEnergy() const +{ + return fBeamEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TestParameters::SetBeamParticle(const G4ParticleDefinition* ptr) +{ + fParticle = ptr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +const G4ParticleDefinition* TestParameters::GetBeamParticle() const +{ + return fParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/testALICE_TRD.mac b/examples/extended/electromagnetic/TestEm8/testALICE_TRD.mac index c35f3bb81b..e2ef0e34fc 100644 --- a/examples/extended/electromagnetic/TestEm8/testALICE_TRD.mac +++ b/examples/extended/electromagnetic/TestEm8/testALICE_TRD.mac @@ -8,13 +8,13 @@ /run/verbose 1 /tracking/verbose 0 # -/testem/setGasThick 3.7 cm +/testem/setGasThick 3.44 cm /testem/setGasRad 28. cm /testem/setGasMat Xe15CO2 /testem/setWindowMat G4_KAPTON /testem/setWindowThick 25 um #/testem/setWindowMat G4_Fe -#/testem/setWindowThick 1 mm +#/testem/setWindowThick 25 um /testem/setPairEnergy 28 eV # # select EM PhysicsList @@ -27,12 +27,12 @@ # # normalisation of energy is done for PAI model at 3 GeV/c /testem/phys/setNbinsE 100 -/testem/phys/setMaxE 0.2591 MeV -/testem/phys/setEnergyPerChannel 1.0777 keV +/testem/phys/setMaxE 0.25 MeV +/testem/phys/setEnergyPerChannel 1.0 keV /testem/phys/setNbinsCl 100 /testem/phys/setMaxCl 2500 -/testem/phys/setNormFactor 0.4106 -#/testem/phys/setEnergySmear 0.0737 +/testem/phys/setNormFactor 0.3686 +/testem/phys/setEnergySmear 1 keV # /run/initialize # @@ -42,8 +42,7 @@ # #/run/particle/dumpCutValues # -/testem/stepmax 2. mm -#/testem/stepmax 1. mm +/testem/stepmax 17.2 mm # /gun/direction 0. 0.258819 0.965926 # diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.out b/examples/extended/electromagnetic/TestEm9/TestEm9.out index b87df4f7f7..060be0e8ee 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.out +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -152,7 +152,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -166,7 +166,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -275,7 +275,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -308,7 +308,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -465,39 +465,39 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=1.83s Real=1.84s Sys=0.01s + User=1.9s Real=1.9s Sys=0s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 0 ================================================================= Number of events 100 -Average number of e- 402.5 -Average number of gamma 640.3 -Average number of e+ 48.86 -Average number of steps 2932 -Edep 1x1 = 0.8275 +- 0.002893 res= 3.496 % 100 -Edep 3x3 = 0.9582 +- 0.001307 res= 1.364 % 100 -Edep 5x5 = 0.9792 +- 0.0009431 res= 0.9631 % 100 +Average number of e- 401 +Average number of gamma 639.4 +Average number of e+ 48.26 +Average number of steps 2923 +Edep 1x1 = 0.8345 +- 0.002442 res= 2.926 % 100 +Edep 3x3 = 0.9589 +- 0.001137 res= 1.186 % 100 +Edep 5x5 = 0.9797 +- 0.0007976 res= 0.8141 % 100 =========== Ratios without trancating =========================== - E1/E9 = 0.8636 +- 0.002791 - E1/E25 = 0.8451 +- 0.002923 - E9/E25 = 0.9785 +- 0.0009045 + E1/E9 = 0.8703 +- 0.002249 + E1/E25 = 0.8518 +- 0.002306 + E9/E25 = 0.9787 +- 0.0008004 Beam Energy 1 GeV ================================================================== <<<<>>>> 100 events for Crystal Calorimeter -Edep1x1: 0.8275 delEdep1x1= -0.1725 nrms= -1.725 -Erms1x1: 0.02893 delErms1x1= -0.9711 nrms= -9.711 -Edep3x3: 0.9582 delEdep3x3= -0.04182 nrms= -0.4182 -Erms3x3: 0.01307 delErms3x3= -0.9869 nrms= -9.869 -Edep5x5: 0.9792 delEdep5x5= -0.02079 nrms= -0.2079 -Erms5x5: 0.009431 delErms5x5= -0.9906 nrms= -9.906 +Edep1x1: 0.8345 delEdep1x1= -0.1655 nrms= -1.655 +Erms1x1: 0.02442 delErms1x1= -0.9756 nrms= -9.756 +Edep3x3: 0.9589 delEdep3x3= -0.04109 nrms= -0.4109 +Erms3x3: 0.01137 delErms3x3= -0.9886 nrms= -9.886 +Edep5x5: 0.9797 delEdep5x5= -0.02026 nrms= -0.2026 +Erms5x5: 0.007976 delErms5x5= -0.992 nrms= -9.92 <<<<>>>> IS ACCEPTED Z bremsstrahlung photoeffect compton conversion 13 0 0 157 0 - 53 268 41 0 47 - 55 273 48 0 48 + 53 263 40 0 45 + 55 278 48 0 49 # /testem/det/acceptance1 0.0136 0.0001 500 /testem/det/acceptance9 0.0139 0.0001 500 @@ -575,22 +575,22 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=2.93s Real=2.93s Sys=0s + User=4.07s Real=4.1s Sys=0.01s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 1 ================================================================= Number of events 1000 -Average number of e- 73.2 -Average number of gamma 68.59 -Average number of e+ 3.986 -Average number of steps 425.5 -Edep 1x1 = 0.01472 +- 0.0005456 -Edep 3x3 = 0.0151 +- 0.0006058 -Edep 5x5 = 0.01516 +- 0.0006167 +Average number of e- 76.57 +Average number of gamma 73.45 +Average number of e+ 4.225 +Average number of steps 448.3 +Edep 1x1 = 0.01499 +- 0.0006727 +Edep 3x3 = 0.01542 +- 0.0007462 +Edep 5x5 = 0.0155 +- 0.0007589 =========== Ratios without trancating =========================== - E1/E9 = 0.9847 +- 0.0006475 - E1/E25 = 0.9819 +- 0.0007355 - E9/E25 = 0.9972 +- 0.000176 + E1/E9 = 0.9835 +- 0.0007225 + E1/E25 = 0.9807 +- 0.0008143 + E9/E25 = 0.9971 +- 0.0001764 Beam Energy 20 GeV ================================================================== @@ -739,7 +739,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -753,7 +753,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -862,7 +862,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -895,7 +895,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1052,22 +1052,22 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=1.34s Real=1.34s Sys=0s + User=1.43s Real=1.46s Sys=0s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 2 ================================================================= Number of events 100 -Average number of e- 170.8 -Average number of gamma 220.3 -Average number of e+ 47.35 -Average number of steps 1806 -Edep 1x1 = 0.8276 +- 0.00418 res= 5.051 % 100 -Edep 3x3 = 0.9548 +- 0.003349 res= 3.508 % 100 -Edep 5x5 = 0.9748 +- 0.003258 res= 3.342 % 100 +Average number of e- 170.7 +Average number of gamma 219.8 +Average number of e+ 46.76 +Average number of steps 1799 +Edep 1x1 = 0.8394 +- 0.003595 res= 4.283 % 100 +Edep 3x3 = 0.959 +- 0.00322 res= 3.358 % 100 +Edep 5x5 = 0.9785 +- 0.003065 res= 3.133 % 100 =========== Ratios without trancating =========================== - E1/E9 = 0.8668 +- 0.00324 - E1/E25 = 0.8491 +- 0.003401 - E9/E25 = 0.9795 +- 0.00106 + E1/E9 = 0.8753 +- 0.002587 + E1/E25 = 0.8579 +- 0.002728 + E9/E25 = 0.9801 +- 0.001062 Beam Energy 1 GeV ================================================================== @@ -1083,10 +1083,13 @@ Beam Energy 1 GeV # /run/beamOn 100 -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - VertexDetector +### === Deexcitation model UAtomDeexcitation is activated for 3 regions: + DefaultRegionForTheWorld 1 0 1 + VertexDetector 1 0 1 + MuonDetector 1 0 1 ### === G4UAtomicDeexcitation::InitialiseForNewRun() +### === Ignore cuts flag: 0 ### === PIXE model for hadrons: Empirical ### === PIXE model for e+-: Livermore Secondary biasing is activated for e+ and eIoni inside G4Regions: @@ -1219,7 +1222,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1233,7 +1236,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1342,7 +1345,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1375,7 +1378,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1532,22 +1535,22 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=2.22s Real=2.23s Sys=0s + User=2.03s Real=2.04s Sys=0s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 3 ================================================================= Number of events 100 -Average number of e- 170 -Average number of gamma 521.2 -Average number of e+ 47.37 -Average number of steps 2113 -Edep 1x1 = 0.8336 +- 0.003763 res= 4.515 % 100 -Edep 3x3 = 0.9555 +- 0.003074 res= 3.217 % 100 -Edep 5x5 = 0.975 +- 0.003144 res= 3.224 % 100 +Average number of e- 170.6 +Average number of gamma 518.8 +Average number of e+ 47.17 +Average number of steps 2112 +Edep 1x1 = 0.8276 +- 0.003187 res= 3.851 % 100 +Edep 3x3 = 0.9513 +- 0.003034 res= 3.19 % 100 +Edep 5x5 = 0.9751 +- 0.002977 res= 3.053 % 100 =========== Ratios without trancating =========================== - E1/E9 = 0.8724 +- 0.002979 - E1/E25 = 0.855 +- 0.003092 - E9/E25 = 0.98 +- 0.001011 + E1/E9 = 0.8704 +- 0.003206 + E1/E25 = 0.8492 +- 0.003388 + E9/E25 = 0.9757 +- 0.00127 Beam Energy 1 GeV ================================================================== @@ -1555,6 +1558,6 @@ Beam Energy 1 GeV 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.33 MB +Dynamic pools deleted: 9 / Total memory freed: 0.28 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/errorpropagation/errorprop.out b/examples/extended/errorpropagation/errorprop.out index 0d8c9ccb51..51318c91c9 100644 --- a/examples/extended/errorpropagation/errorprop.out +++ b/examples/extended/errorpropagation/errorprop.out @@ -4,13 +4,13 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* - creating G4RunManagerKernel 0xa24600 + creating G4RunManagerKernel 0x22f9590 The materials defined are : @@ -79,15 +79,15 @@ List of instantiated particles ============================================ e+ e- gamma geantino mu+ mu- pi+ pi- proton physicsList->Construct() start. G4Transportation constructor> set fShortStepOptimisation to false -0xc6b8e0G4ErrorPhysicsList:: particle process manager e+ = 0xc6e0a0 -0xc6b750G4ErrorPhysicsList:: particle process manager e- = 0xc6f690 -0xc6b490G4ErrorPhysicsList:: particle process manager gamma = 0xc6f900 -0xc6cf50G4ErrorPhysicsList:: particle process manager geantino = 0xc6fb50 -0xc6baf0G4ErrorPhysicsList:: particle process manager mu+ = 0xc6fda0 -0xc6bf80G4ErrorPhysicsList:: particle process manager mu- = 0xc6fff0 -0xc6c410G4ErrorPhysicsList:: particle process manager pi+ = 0xc70240 -0xc6c880G4ErrorPhysicsList:: particle process manager pi- = 0xc70490 -0xc6ccf0G4ErrorPhysicsList:: particle process manager proton = 0xc706e0 +0x2541ba0G4ErrorPhysicsList:: particle process manager e+ = 0x25443a0 +0x2541a10G4ErrorPhysicsList:: particle process manager e- = 0x2545990 +0x2541750G4ErrorPhysicsList:: particle process manager gamma = 0x2545c00 +0x2543250G4ErrorPhysicsList:: particle process manager geantino = 0x2545e50 +0x2541db0G4ErrorPhysicsList:: particle process manager mu+ = 0x25460a0 +0x2542250G4ErrorPhysicsList:: particle process manager mu- = 0x25462f0 +0x25426f0G4ErrorPhysicsList:: particle process manager pi+ = 0x2546540 +0x2542b70G4ErrorPhysicsList:: particle process manager pi- = 0x2546790 +0x2542ff0G4ErrorPhysicsList:: particle process manager proton = 0x25469e0 physicsList->CheckParticleList() start. physicsList->setCut() start. @@ -222,14 +222,14 @@ G4TablesForExtrapolator::ComputeProtonDEDX for e- 38 2.15e+03 33.3 0 2.23e+04 0.0336 100 2.15e+03 MUON G4ErrorStepLengthLimit 39 2.21e+03 35.1 0 2.23e+04 0.0202 60.2 2.21e+03 MUON Transportation $$$ PROPAGATION ENDED - Position: (2210,35.10111723814716,0) - Momentum: (22434.2769120288,696.1984263738834,0) + Position: (2210,35.10111723970089,0) + Momentum: (22434.27690919889,696.1984263233888,0) Error: - 9.872380226327055e-08 0 3.726670390914374e-08 2.667490573255702e-06 0 - 0 3.518686265382109e-05 0 0 0.004070045170100374 - 3.726670390914374e-08 0 3.519153658257925e-05 0.004421941181865723 0 - 2.667490573255702e-06 0 0.004421941181865723 0.6258683710401608 0 - 0 0.004070045170100374 0 0 0.5409524026833431 + 9.87238023132452e-08 0 3.726670392130902e-08 2.66749057394133e-06 0 + 0 3.5186862657043e-05 0 0 0.004070045170477413 + 3.726670392130902e-08 0 3.519153658580218e-05 0.004421941182274977 0 + 2.66749057394133e-06 0 0.004421941182274977 0.6258683710985535 0 + 0 0.004070045170477413 0 0 0.540952402733872 Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 1.99e+04 0 0 0 BEAM initStep @@ -273,14 +273,14 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 38 2.15e+03 33.3 0 2.23e+04 0.0336 100 2.15e+03 MUON G4ErrorStepLengthLimit 39 2.21e+03 35.1 0 2.23e+04 0.0202 60.2 2.21e+03 MUON Transportation $$$ PROPAGATION ENDED - Position: (2210,35.10111723814716,0) - Momentum: (22434.2769120288,696.1984263738834,0) + Position: (2210,35.10111723970089,0) + Momentum: (22434.27690919889,696.1984263233888,0) Error: - 9.872380226327055e-08 0 3.726670390914374e-08 2.667490573255702e-06 0 - 0 3.518686265382109e-05 0 0 0.004070045170100374 - 3.726670390914374e-08 0 3.519153658257925e-05 0.004421941181865723 0 - 2.667490573255702e-06 0 0.004421941181865723 0.6258683710401608 0 - 0 0.004070045170100374 0 0 0.5409524026833431 + 9.87238023132452e-08 0 3.726670392130902e-08 2.66749057394133e-06 0 + 0 3.5186862657043e-05 0 0 0.004070045170477413 + 3.726670392130902e-08 0 3.519153658580218e-05 0.004421941182274977 0 + 2.66749057394133e-06 0 0.004421941182274977 0.6258683710985535 0 + 0 0.004070045170477413 0 0 0.540952402733872 Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 1.99e+04 0 0 0 BEAM initStep @@ -324,12 +324,12 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 38 2.15e+03 33.3 0 2.23e+04 0.0336 100 2.15e+03 MUON G4ErrorStepLengthLimit 39 2.21e+03 35.1 0 2.23e+04 0.0202 60.2 2.21e+03 MUON Transportation $$$ PROPAGATION ENDED - Position: (2210,35.10111723814716,0) - Momentum: (22434.2769120288,696.1984263738834,0) + Position: (2210,35.10111723970089,0) + Momentum: (22434.27690919889,696.1984263233888,0) Error: - 9.872380226327055e-08 0 3.726670390914374e-08 2.667490573255702e-06 0 - 0 3.518686265382109e-05 0 0 0.004070045170100374 - 3.726670390914374e-08 0 3.519153658257925e-05 0.004421941181865723 0 - 2.667490573255702e-06 0 0.004421941181865723 0.6258683710401608 0 - 0 0.004070045170100374 0 0 0.5409524026833431 + 9.87238023132452e-08 0 3.726670392130902e-08 2.66749057394133e-06 0 + 0 3.5186862657043e-05 0 0 0.004070045170477413 + 3.726670392130902e-08 0 3.519153658580218e-05 0.004421941182274977 0 + 2.66749057394133e-06 0 0.004421941182274977 0.6258683710985535 0 + 0 0.004070045170477413 0 0 0.540952402733872 diff --git a/examples/extended/eventgenerator/exgps/exgps_batch.out b/examples/extended/eventgenerator/exgps/exgps_batch.out index 7da2bb8479..7fb65a9d30 100644 --- a/examples/extended/eventgenerator/exgps/exgps_batch.out +++ b/examples/extended/eventgenerator/exgps/exgps_batch.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none diff --git a/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out b/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out index 2255e9cd72..3c44aaefde 100644 --- a/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out +++ b/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -89,7 +91,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=1.33s Real=1.34s Sys=0s + User=0.71s Real=0.71s Sys=0s 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 8c1b72b538..01c2dae2be 100644 --- a/examples/extended/exoticphysics/channeling/History +++ b/examples/extended/exoticphysics/channeling/History @@ -14,6 +14,10 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +May 19, 2016 G. Cosmo (channelingExample-V10-02-00) +- Fixed compilation warning on gcc-6.1 in XLatticeManager3. + June 16, 2015 E. Bagli (channelingExample-V10-01-05) - bug fix passing arguments diff --git a/examples/extended/exoticphysics/channeling/channeling.out b/examples/extended/exoticphysics/channeling/channeling.out index b0ec66b889..12b898879f 100644 --- a/examples/extended/exoticphysics/channeling/channeling.out +++ b/examples/extended/exoticphysics/channeling/channeling.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -17,6 +17,32 @@ Using Root XLatticeManager3::registerLattice: Registering Lattice.Total number of lattices:1 G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used +### WARNING: G4EmProcessOptions class is obsolete and will be removed in the next public release + Please, try to use G4EmParameters class and/or UI interface to EM parameters +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ExExChProcessChanneling::Constructor:Geometry surface tolerance is: 1e-09 mm @@ -25,7 +51,9 @@ PhysicsList::AddChanneling: Channeling process added... ### ExExChPhysicsList::ConstructProcess is done ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 compt: for gamma SubType= 13 BuildTable= 1 Lambda table from 10 eV to 1 MeV, 20 bins per decade, spline: 1 @@ -157,9 +185,6 @@ msc: for GenericIon SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== UrbanMsc : Emin= 0 eV Emax= 10 TeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - ionIoni: for alpha SubType= 2 dE/dx and range tables from 10 eV to 10 TeV in 240 bins Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 diff --git a/examples/extended/exoticphysics/channeling/src/XCrystalPlanarMoliereTempPotential.cc b/examples/extended/exoticphysics/channeling/src/XCrystalPlanarMoliereTempPotential.cc index f222fd6e4b..5f00fd2bb5 100644 --- a/examples/extended/exoticphysics/channeling/src/XCrystalPlanarMoliereTempPotential.cc +++ b/examples/extended/exoticphysics/channeling/src/XCrystalPlanarMoliereTempPotential.cc @@ -69,9 +69,11 @@ ComputeECForSinglePlane(G4double vX, for(unsigned int i=0;i<3;i++){ G4double vTemp = 0.; vTemp += ( std::exp(-vX/ aTF * fBeta[i] ) * - (1.-CLHEP::HepStat::erfQ((vTVA / aTF * fBeta[i] - vX/ vTVA) / std::pow(2.,0.5))) ); + (1.-CLHEP::HepStat::erfQ((vTVA / aTF * fBeta[i] - vX/ vTVA) + / std::pow(2.,0.5))) ); vTemp += ( std::exp( vX/ aTF * fBeta[i] ) * - (1.-CLHEP::HepStat::erfQ((vTVA / aTF * fBeta[i] + vX/ vTVA) / std::pow(2.,0.5))) ); + (1.-CLHEP::HepStat::erfQ((vTVA / aTF * fBeta[i] + vX/ vTVA) + / std::pow(2.,0.5))) ); vValueForSinglePlane += ( vTemp * fGamma[i] * std::exp( vTau[i] ) /2.0); } diff --git a/examples/extended/exoticphysics/channeling/src/XLatticeManager3.cc b/examples/extended/exoticphysics/channeling/src/XLatticeManager3.cc index fd85fe9c9c..eeb443195e 100644 --- a/examples/extended/exoticphysics/channeling/src/XLatticeManager3.cc +++ b/examples/extended/exoticphysics/channeling/src/XLatticeManager3.cc @@ -138,8 +138,9 @@ G4ThreeVector XLatticeManager3::MapKtoVDir(G4VPhysicalVolume* Vol, for(int counter=0;counterGetVolume()==Vol) { if(counter!=0) - G4cout<<"\nLattiveManager2::MapKtoV:"; - G4cout<<"returning group velocity from lattise position: "<MapKtoVDir(polarizationState, k); } } diff --git a/examples/extended/exoticphysics/monopole/monopole.out b/examples/extended/exoticphysics/monopole/monopole.out index 64a7897b23..c3098bf058 100644 --- a/examples/extended/exoticphysics/monopole/monopole.out +++ b/examples/extended/exoticphysics/monopole/monopole.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -19,7 +19,7 @@ G4PhysListFactory::GetReferencePhysList EMoption= 0 /monopole/setup Monopole is created: m(GeV)= 100 Qel= 0 Qmag= 68.518 -/control/execute /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/exoticphysics/monopole/monopole.in +/control/execute /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/exoticphysics/monopole/monopole.in /control/verbose 1 /run/verbose 0 /testex/run/verbose 1 @@ -38,6 +38,14 @@ Monopole is created: m(GeV)= 100 Qel= 0 Qmag= 68.518 ---> The Absorber is 10 cm of G4_Si --------------------------------------------------------- +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /process/em/verbose 1 /particle/select monopole @@ -182,7 +190,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -196,7 +204,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -305,7 +313,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -338,7 +346,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -464,6 +472,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -750,7 +763,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 The run consists of 100 monopole of 100 GeV through 10 cm of G4_Si (density: 2.33 g/cm3 ) - projected Range= 7.7461 cm rms= 101.2 um + projected Range= 7.7465 cm rms= 93.547 um ### Stopping Powers E(MeV)= 0.001 dedxp= 24.465 dedxmp= 1.2659 E(MeV)= 0.0012589 dedxp= 27.276 dedxmp= 1.4204 @@ -857,8 +870,8 @@ Range table for G4_Si --------- Ranlux engine status --------- Initial seed = 9876 - float_seed_table[] = 0.0993674 0.917071 0.513817 0.697908 0.189047 0.940547 0.882616 0.441314 0.77574 0.816998 0.200629 0.940735 0.779485 0.702042 0.476098 0.0277817 0.589708 0.0454592 0.079353 0.783744 0.687957 0.706206 0.876165 0.829392 - i_lag = 23, j_lag = 9 - carry = 0, count24 = 13 + float_seed_table[] = 0.97309 0.606784 0.626569 0.0243883 0.60604 0.224822 0.610744 0.159147 0.69715 0.664785 0.468914 0.718604 0.617239 0.780638 0.629463 0.324713 0.912529 0.697981 0.276411 0.523562 0.115245 0.814283 0.437644 0.344297 + i_lag = 4, j_lag = 14 + carry = 0, count24 = 7 luxury = 3 nskip = 199 ---------------------------------------- diff --git a/examples/extended/exoticphysics/phonon/.README.txt b/examples/extended/exoticphysics/phonon/.README.txt index 53e1852dfd..65ecf13650 100644 --- a/examples/extended/exoticphysics/phonon/.README.txt +++ b/examples/extended/exoticphysics/phonon/.README.txt @@ -1,4 +1,4 @@ -//$Id: .README.txt 94710 2015-12-03 16:15:05Z gunter $ +//$Id: .README.txt 95714 2016-02-22 08:12:58Z gcosmo $ ///\file "exoticphysics/phonon/.README.txt" ///\brief Example phonon README page diff --git a/examples/extended/exoticphysics/phonon/History b/examples/extended/exoticphysics/phonon/History index 78f7d474b0..75106820b4 100644 --- a/examples/extended/exoticphysics/phonon/History +++ b/examples/extended/exoticphysics/phonon/History @@ -1,4 +1,4 @@ -$Id: History 92176 2015-08-20 13:07:22Z gcosmo $ +$Id: History 95714 2016-02-22 08:12:58Z gcosmo $ ------------------------------------------------------------------- ========================================================= diff --git a/examples/extended/exoticphysics/phonon/phonon.out b/examples/extended/exoticphysics/phonon/phonon.out index 99b5864b36..a9c79d5646 100644 --- a/examples/extended/exoticphysics/phonon/phonon.out +++ b/examples/extended/exoticphysics/phonon/phonon.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none diff --git a/examples/extended/exoticphysics/ucn/ExUCN.out b/examples/extended/exoticphysics/ucn/ExUCN.out index 2127771a2f..b6e102a894 100644 --- a/examples/extended/exoticphysics/ucn/ExUCN.out +++ b/examples/extended/exoticphysics/ucn/ExUCN.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -62,16 +62,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -82,7 +84,6 @@ Some /vis commands (optionally) take a string to specify colour. Available colours: black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -91,6 +92,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.969593203,34.08057488,0.1921720276) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -106,6 +122,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.9694516,34.07998,0.19216861) PreviousSafety = 0.00061162485 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -115,7 +132,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -124,6 +140,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.211666956,-34.24896874,0.5705202699) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -139,6 +170,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.0018978,-33.274004,0.56529239) PreviousSafety = 0.56529239 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -148,7 +180,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -157,6 +188,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.363754488,34.21659129,0.9489146646) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -172,6 +218,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.3634579,34.215245,0.94890697) PreviousSafety = 0.0013786394 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -181,7 +228,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -190,6 +236,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (6.583653715,-34.37521642,1.327263419) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -205,6 +266,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (6.3910146,-33.397039,1.3220377) PreviousSafety = 0.99695214 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -214,7 +276,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -223,6 +284,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-6.637359447,34.36488702,1.705662488) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -238,6 +314,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.6370791,34.363478,1.7056545) PreviousSafety = 0.0014363967 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -247,7 +324,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -256,6 +332,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.847222721,-34.50811479,2.084013503) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -271,6 +362,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (5.6748389,-33.526343,2.0787893) PreviousSafety = 0.99677241 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -280,7 +372,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -289,6 +380,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-5.800466253,34.51600486,2.462415786) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -304,6 +410,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-5.8002351,34.51468,2.4624083) PreviousSafety = 0.0013444245 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -313,7 +420,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -322,6 +428,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.013051742,-34.63912978,2.840770689) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -337,6 +458,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (4.8637639,-33.65361,2.8355472) PreviousSafety = 0.99674037 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -346,7 +468,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -355,6 +476,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-4.865367143,34.6601818,3.219174499) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -370,6 +506,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-4.8652057,34.659087,3.2191683) PreviousSafety = 0.0011068298 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -379,7 +516,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -388,6 +524,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (4.093854706,-34.75975192,3.59753468) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -403,6 +554,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (3.9701658,-33.770569,3.5923111) PreviousSafety = 0.99685994 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -412,7 +564,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -421,6 +572,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-3.846575839,34.78798434,3.975938211) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -436,6 +602,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-3.8464894,34.787252,3.9759341) PreviousSafety = 0.0007374598 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -445,7 +612,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -454,6 +620,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (3.104294158,-34.86206187,4.35430473) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -469,6 +650,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (3.0083163,-33.869537,4.3490802) PreviousSafety = 0.99712497 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -478,7 +660,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -487,6 +668,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-2.760689868,34.89095286,4.732706173) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -502,6 +698,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-2.7606674,34.890694,4.7327047) PreviousSafety = 0.00025938929 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -511,7 +708,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -520,6 +716,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (2.060779591,-34.93927858,5.11107968) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -535,6 +746,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (1.9941837,-33.943953,5.1058534) PreviousSafety = 0.99751926 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -544,7 +756,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -553,6 +764,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-1.626112067,34.96220473,5.489477352) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -568,6 +794,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-1.5717289,33.963997,5.4838958) PreviousSafety = 0.99965551 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -577,7 +804,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -586,6 +812,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (0.9811470894,-34.98624516,5.86785803) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -601,6 +842,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (0.94511873,-33.988845,5.8626294) PreviousSafety = 0.99801733 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -610,7 +852,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -619,6 +860,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-0.4626338694,34.99694229,6.246250492) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -634,6 +890,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-0.44134918,33.998078,6.2406721) PreviousSafety = 0.99905783 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -643,7 +900,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -652,6 +908,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-0.1157685219,-34.99980854,6.624638043) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -667,6 +938,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-0.12056427,-34.0012,6.6194065) PreviousSafety = 0.99858613 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -676,7 +948,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -685,6 +956,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (0.7090970919,34.99281614,7.003024201) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -700,6 +986,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (0.69694376,33.994396,6.9974492) PreviousSafety = 0.99846061 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -709,7 +996,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -718,6 +1004,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-1.210641894,-34.97905582,7.381417861) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -733,6 +1034,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-1.1840836,-33.980188,7.376183) PreviousSafety = 0.99918738 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -742,7 +1044,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -751,6 +1052,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (1.868184356,34.95010568,7.759797047) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -766,6 +1082,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (1.8228482,33.953199,7.7542254) PreviousSafety = 0.99790419 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -775,7 +1092,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -784,6 +1100,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-2.284206219,-34.92538335,8.138195642) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -799,6 +1130,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-2.2267249,-33.927225,8.1329575) PreviousSafety = 0.99978047 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -808,7 +1140,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -817,6 +1148,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (2.994112227,34.87169758,8.516567658) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -832,6 +1178,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (2.91643,33.877271,8.5109991) PreviousSafety = 0.99742594 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -841,7 +1188,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -850,6 +1196,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-3.317797301,-34.84239115,8.894969685) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -865,6 +1226,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-3.3177652,-34.842025,8.8949678) PreviousSafety = 0.00036769338 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -874,7 +1236,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -883,6 +1244,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (4.067341216,34.76286432,9.273334815) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -898,6 +1274,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (3.9587024,33.771716,9.2677689) PreviousSafety = 0.99705745 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -907,7 +1284,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -916,6 +1292,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-4.293847547,-34.7356139,9.651738553) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -931,6 +1322,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-4.2937521,-34.734794,9.6517342) PreviousSafety = 0.00082520628 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -940,7 +1332,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -949,6 +1340,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.069818743,34.63086684,10.03009754) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -964,6 +1370,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (4.9321233,33.643577,10.024534) PreviousSafety = 0.99682233 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -973,7 +1380,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -982,6 +1388,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-5.196292862,-34.61211552,10.40850117) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -997,6 +1418,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-5.1961269,-34.610959,10.408495) PreviousSafety = 0.0011684441 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1006,7 +1428,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1015,6 +1436,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.985367976,34.48442214,10.78685514) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1030,6 +1466,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (5.8209747,33.501318,10.781293) PreviousSafety = 0.99673469 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1039,7 +1476,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1048,6 +1484,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-6.010868451,-34.47998638,11.16525688) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1063,6 +1514,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.01064,-34.478629,11.16525) PreviousSafety = 0.0013761946 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1072,7 +1524,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1081,6 +1532,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (6.799936247,34.33308706,11.54360729) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1096,6 +1562,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (6.6116058,33.354226,11.538045) PreviousSafety = 0.99679852 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1105,7 +1572,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1114,6 +1580,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-6.725285557,-34.34778791,11.92200548) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1129,6 +1610,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.7250166,-34.346377,11.921998) PreviousSafety = 0.0014366448 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1138,7 +1620,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1147,6 +1628,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.501704527,34.18661184,12.30035399) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1162,6 +1658,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.2925405,33.21178,12.294792) PreviousSafety = 0.99700787 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1171,7 +1668,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1180,6 +1676,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.329296938,-34.22398876,12.67874724) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1195,6 +1706,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.3290203,-34.22267,12.67874) PreviousSafety = 0.0013477354 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1204,7 +1716,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1213,6 +1724,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.08107711,34.0543124,13.05709561) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1228,6 +1754,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.8544678,33.083042,13.051532) PreviousSafety = 0.9973477 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1237,7 +1764,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1246,6 +1772,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.814671774,-34.1164316,13.43548284) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1261,6 +1802,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.814426,-34.115342,13.435477) PreviousSafety = 0.0011168288 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1270,7 +1812,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1279,6 +1820,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.530583428,33.94450097,13.81383283) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1294,6 +1850,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.2901463,32.976104,13.808267) PreviousSafety = 0.99779521 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1303,7 +1860,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1312,6 +1868,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.175109154,-34.0318614,14.19221336) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1327,6 +1898,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.1749334,-34.031122,14.192209) PreviousSafety = 0.00075982919 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1336,7 +1908,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1345,6 +1916,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.844730583,33.86400362,14.57056658) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1360,6 +1946,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.5942607,32.897611,14.564999) PreviousSafety = 0.99832156 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1369,7 +1956,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1378,6 +1964,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.406122644,-33.97553682,14.94894015) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1393,6 +1994,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.406051,-33.975246,14.948939) PreviousSafety = 0.00029990955 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1402,7 +2004,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1411,6 +2012,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (9.019845757,33.81778205,15.32729804) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1426,6 +2042,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.7632673,32.852403,15.321727) PreviousSafety = 0.99889371 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1435,7 +2052,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1444,6 +2060,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.504927027,-33.95093837,15.70566482) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1459,6 +2090,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.2621242,-32.981118,15.700423) PreviousSafety = 0.99975222 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1468,7 +2100,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1477,6 +2108,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (9.053942928,33.80866926,16.0840285) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1492,6 +2138,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.7952633,32.843248,16.078454) PreviousSafety = 0.99947631 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1501,7 +2148,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1510,6 +2156,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.470352955,-33.95958069,16.46238906) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1525,6 +2186,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.2276943,-32.990317,16.45715) PreviousSafety = 0.99917688 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1534,7 +2196,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1543,6 +2204,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.946640201,33.83722254,16.84075931) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1558,6 +2234,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.9466274,33.837174,16.840759) PreviousSafety = 4.9877064e-05 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1567,7 +2244,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1576,6 +2252,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.302807518,-34.00093215,17.21911461) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1591,6 +2282,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.0640988,-33.031286,17.213879) PreviousSafety = 0.99859472 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1600,7 +2292,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1609,6 +2300,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.699143377,33.90169471,17.5974918) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1624,6 +2330,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.6990056,33.901163,17.597489) PreviousSafety = 0.00054936449 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1633,7 +2340,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1642,6 +2348,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.004288777,-34.07244284,17.97584314) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1657,6 +2378,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.7732756,-33.101501,17.97061) PreviousSafety = 0.99804154 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1666,7 +2388,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1675,6 +2396,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.314298259,33.99812413,18.35422721) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1690,6 +2426,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.3140673,33.997193,18.354222) PreviousSafety = 0.00095924897 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1699,7 +2436,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1708,6 +2444,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.578450323,-34.16968087,18.73257614) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1723,6 +2474,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.3587732,-33.19661,18.727346) PreviousSafety = 0.99755176 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1732,7 +2484,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1741,6 +2492,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.796701671,34.12054283,19.1109666) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1756,6 +2522,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.7964173,34.119322,19.11096) PreviousSafety = 0.0012533889 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1765,7 +2532,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1774,6 +2540,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.030703636,-34.28657473,19.48931481) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1789,6 +2570,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.8258528,-33.310675,19.484088) PreviousSafety = 0.99715651 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1798,7 +2580,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1807,6 +2588,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.152851147,34.26130062,19.86771078) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1822,6 +2618,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.1525555,34.25992,19.867703) PreviousSafety = 0.0014121994 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1831,7 +2628,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1840,6 +2636,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-6.368336109,-34.4157565,20.24606005) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1855,6 +2666,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.1816035,-33.436504,20.240835) PreviousSafety = 0.99688173 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1864,7 +2676,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1873,6 +2684,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (6.391302015,34.41149893,20.62446027) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1888,6 +2714,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (6.3910338,34.4101,20.624452) PreviousSafety = 0.0014240639 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1897,7 +2724,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1906,6 +2732,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-5.600615591,-34.54899572,21.00281232) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1921,6 +2762,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-5.4350447,-33.566077,20.997588) PreviousSafety = 0.99674641 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1930,7 +2772,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1939,6 +2780,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.522794341,34.56152113,21.38121526) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1954,6 +2810,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (5.5225831,34.560252,21.381208) PreviousSafety = 0.0012864223 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1963,7 +2820,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -1972,6 +2828,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-4.738849067,-34.67770623,21.75957165) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -1987,6 +2858,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-4.5971824,-33.69104,21.754348) PreviousSafety = 0.99676103 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -1996,7 +2868,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2005,6 +2876,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (4.56031015,34.70163644,22.13797557) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2020,6 +2906,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (4.560172,34.70064,22.13797) PreviousSafety = 0.0010063863 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2029,7 +2916,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2038,6 +2924,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-3.796364063,-34.79349968,22.5163376) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2053,6 +2954,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-3.6809899,-33.803244,22.511114) PreviousSafety = 0.99692646 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2062,7 +2964,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2071,6 +2972,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (3.519025008,34.82264296,22.89474068) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2086,6 +3002,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (3.5189601,34.822046,22.894737) PreviousSafety = 0.00060073075 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2095,7 +3012,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2104,6 +3020,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-2.788387386,-34.88875028,23.2731093) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2119,6 +3050,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-2.7012873,-33.895297,23.267884) PreviousSafety = 0.99723342 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2128,7 +3060,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2137,6 +3068,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (2.416127932,34.91650506,23.65150976) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2152,6 +3098,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (2.4161206,34.91641,23.651509) PreviousSafety = 9.514483e-05 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2161,7 +3108,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2170,6 +3116,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-1.731806731,-34.95712868,24.02988547) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2185,6 +3146,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-1.6745068,-33.96108,24.024659) PreviousSafety = 0.99766272 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2194,7 +3156,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2203,6 +3164,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (1.270499185,34.97693285,24.40828168) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2218,6 +3194,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (1.2262211,33.978407,24.402701) PreviousSafety = 0.99947412 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2227,7 +3204,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2236,6 +3212,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-0.6448153402,-34.99405968,24.78666453) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2251,6 +3242,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-0.61834444,-33.996191,24.781435) PreviousSafety = 0.99818636 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2260,7 +3252,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2269,6 +3260,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (0.1022547066,34.99985063,25.16505515) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2284,6 +3290,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (0.091243115,34.001005,25.159478) PreviousSafety = 0.99887223 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2293,7 +3300,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2302,6 +3308,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (0.4535441513,-34.99706127,25.54344468) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2317,6 +3338,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (0.44868636,-33.99827,25.538212) PreviousSafety = 0.99876939 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2326,7 +3348,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2335,6 +3356,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-1.067814433,34.98370724,25.92182874) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2350,6 +3386,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-1.0454032,33.985642,25.916255) PreviousSafety = 0.99828333 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2359,7 +3396,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2368,6 +3404,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (1.543905126,-34.96593138,26.30022406) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2383,6 +3434,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (1.5077669,-33.96718,26.294988) PreviousSafety = 0.99937249 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2392,7 +3444,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2401,6 +3452,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-2.218862176,34.92959563,26.67860104) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2416,6 +3482,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-2.1634644,33.933356,26.67303) PreviousSafety = 0.99774717 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2425,7 +3492,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2434,6 +3500,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (2.607129514,-34.90276315,27.05700087) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2449,6 +3530,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (2.5403109,-33.905013,27.051762) PreviousSafety = 0.99995495 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2458,7 +3540,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2467,6 +3548,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-3.330612528,34.84116847,27.43537071) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2482,6 +3578,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-3.2432387,33.847674,27.429803) PreviousSafety = 0.99729964 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2491,7 +3588,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2500,6 +3596,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (3.62484103,-34.81178719,27.81377346) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2515,6 +3626,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (3.6247911,-34.811271,27.813771) PreviousSafety = 0.00051890644 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2524,7 +3636,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2533,6 +3644,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-4.383933781,34.72435924,28.1921366) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2548,6 +3674,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-4.2661353,33.734347,28.186571) PreviousSafety = 0.99697006 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2557,7 +3684,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2566,6 +3692,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (4.579895774,-34.69905697,28.5705405) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2581,6 +3722,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (4.5797787,-34.69812,28.570536) PreviousSafety = 0.00094407217 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2590,7 +3732,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2599,6 +3740,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-5.361314956,34.58693831,28.94889781) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2614,6 +3770,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-5.2151386,33.600913,28.943334) PreviousSafety = 0.99677925 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2623,7 +3780,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2632,6 +3788,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.456756849,-34.57200898,29.32730104) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2647,6 +3818,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (5.4565701,-34.570776,29.327295) PreviousSafety = 0.0012474905 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2656,7 +3828,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2665,6 +3836,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-6.247212493,34.43794907,29.70565375) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2680,6 +3866,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.075147,33.456156,29.700091) PreviousSafety = 0.99673823 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2689,7 +3876,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2698,6 +3884,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (6.241753628,-34.43893889,30.08405456) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2713,6 +3914,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (6.2415098,-34.437549,30.084047) PreviousSafety = 0.0014107557 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2722,7 +3924,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2731,6 +3932,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.028254893,34.28707677,30.46240421) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2746,6 +3962,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-6.8331727,33.30949,30.456842) PreviousSafety = 0.99684788 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2755,7 +3972,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2764,6 +3980,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (6.923222773,-34.308439,30.84080101) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2779,6 +4010,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (6.9229476,-34.307041,30.840794) PreviousSafety = 0.0014250505 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2788,7 +4020,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2797,6 +4028,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.69331261,34.144003,31.21914929) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2812,6 +4058,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.4784109,33.170327,31.213587) PreviousSafety = 0.99709935 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2821,7 +4068,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2830,6 +4076,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.491543169,-34.18884001,31.59754079) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2845,6 +4106,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.4912717,-34.187578,31.597534) PreviousSafety = 0.0012912763 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2854,7 +4116,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2863,6 +4124,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.233456886,34.01779222,31.97588947) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2878,6 +4154,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.0022001,33.047489,31.970325) PreviousSafety = 0.99747503 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2887,7 +4164,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2896,6 +4172,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.939088587,-34.08769386,32.3542747) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2911,6 +4202,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.9388603,-34.0867,32.354269) PreviousSafety = 0.001019537 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2920,7 +4212,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2929,6 +4220,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.641842155,33.91634656,32.73262551) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2944,6 +4250,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.3979078,32.948665,32.727059) PreviousSafety = 0.99795009 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2953,7 +4260,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2962,6 +4268,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.260128789,-34.01132565,33.11100391) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -2977,6 +4298,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.2599818,-34.010715,33.111001) PreviousSafety = 0.00062812186 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -2986,7 +4308,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -2995,6 +4316,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.913551417,33.84595398,33.48935843) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3010,6 +4346,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.6607793,32.879983,33.48379) PreviousSafety = 0.99849419 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3019,7 +4356,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3028,6 +4364,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.450711639,-33.96447369,33.86772988) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3043,6 +4394,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.4506775,-33.964336,33.867729) PreviousSafety = 0.00014214055 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3052,7 +4404,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3061,6 +4412,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-9.045442809,33.81094445,34.24608944) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3076,6 +4442,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.7877875,32.845666,34.240518) PreviousSafety = 0.99907338 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3085,7 +4452,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3094,6 +4460,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.508556008,-33.95002908,34.62445422) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3109,6 +4490,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.2653892,-32.980479,34.619213) PreviousSafety = 0.99957817 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3118,7 +4500,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3127,6 +4508,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-9.036029442,33.8134614,35.00281986) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3142,6 +4538,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.7775149,32.847814,34.997245) PreviousSafety = 0.99965199 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3151,7 +4548,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3160,6 +4556,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.432978999,-33.96888084,35.38117869) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3175,6 +4586,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (8.1911303,-32.9996,35.375941) PreviousSafety = 0.99899691 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3184,7 +4596,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3193,6 +4604,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.885416123,33.85335109,35.75955105) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3208,6 +4634,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.8853622,33.853147,35.75955) PreviousSafety = 0.00021120239 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3217,7 +4644,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3226,6 +4652,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (8.224872904,-34.01986869,36.13790499) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3241,6 +4682,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.9881343,-33.049919,36.13267) PreviousSafety = 0.99841987 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3250,7 +4692,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3259,6 +4700,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.595304345,33.92817035,36.51628431) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3274,6 +4730,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.595134,33.927506,36.51628) PreviousSafety = 0.00068625717 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3283,7 +4740,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3292,6 +4748,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (7.886735841,-34.09984454,36.89463474) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3307,6 +4778,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (7.6588254,-33.128332,36.889403) PreviousSafety = 0.99788263 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3316,7 +4788,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3325,6 +4796,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-8.169064166,34.03331295,37.27302085) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3340,6 +4826,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-8.1688123,34.03228,37.273015) PreviousSafety = 0.0010630658 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3349,7 +4836,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3358,6 +4844,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (34.02024884,8.223300375,70.84675265) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3373,6 +4874,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (33.474024,8.5794673,70.412074) PreviousSafety = 0.44399389 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3382,7 +4884,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3391,6 +4892,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (11.23797958,-33.14676176,101.4923365) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3406,6 +4922,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (11.358142,-32.920969,101.3307) PreviousSafety = 0.17475641 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3415,7 +4932,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3424,6 +4940,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-31.65257689,-14.93701363,131.2879763) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3439,6 +4970,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-31.408006,-15.033092,131.11808) PreviousSafety = 0.17965091 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3448,7 +4980,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3457,6 +4988,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-16.18336154,31.0338333,163.6246407) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3472,6 +5018,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-16.264036,30.802448,163.456) PreviousSafety = 0.1674054 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3481,7 +5028,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3490,6 +5036,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (31.13293366,15.99188674,197.4421378) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3505,6 +5066,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (31.070045,16.014225,197.39719) PreviousSafety = 0.045699629 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3514,7 +5076,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3523,6 +5084,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (18.34185269,-29.80899931,228.5211552) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3538,6 +5114,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (18.520747,-29.148094,228.08649) PreviousSafety = 0.46553237 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3547,7 +5124,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3556,6 +5132,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-27.45538028,-21.70718991,258.1972497) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3571,6 +5162,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-27.309612,-21.72866,258.10279) PreviousSafety = 0.10086593 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3580,7 +5172,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3589,6 +5180,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-23.17966469,26.22409474,290.0302013) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3604,6 +5210,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-23.232691,25.648661,289.63542) PreviousSafety = 0.39347312 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3613,7 +5220,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3622,6 +5228,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (26.44793649,22.92393193,323.9583431) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3637,6 +5258,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (26.27051,22.942054,323.83704) PreviousSafety = 0.12196216 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3646,7 +5268,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3655,6 +5276,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (24.54342672,-24.9523587,355.5163631) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3670,6 +5306,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (24.555609,-24.636382,355.3145) PreviousSafety = 0.21596265 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3679,7 +5316,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3688,6 +5324,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-21.88608901,-27.31298424,385.1666414) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3703,6 +5354,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-21.763882,-27.303203,385.0886) PreviousSafety = 0.083936698 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3712,7 +5364,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3721,6 +5372,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-28.76652079,19.93708308,416.5049074) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3736,6 +5402,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-28.752241,19.842165,416.43987) PreviousSafety = 0.065734901 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3745,7 +5412,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3754,6 +5420,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (20.18571732,28.59260073,450.4006943) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3769,6 +5450,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (20.041899,28.572365,450.30111) PreviousSafety = 0.099315771 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3778,7 +5460,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3787,6 +5468,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (29.52942376,-18.78864371,482.4607968) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3802,6 +5498,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (29.376562,-17.988301,481.9363) PreviousSafety = 0.55350023 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3811,7 +5508,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3820,6 +5516,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-15.23778059,-31.50888831,512.1791319) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3835,6 +5546,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-15.057491,-31.452193,512.05945) PreviousSafety = 0.12926024 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3844,7 +5556,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3853,6 +5564,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-32.66351018,12.57358751,543.0563124) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3868,6 +5594,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-32.483185,12.13239,542.73679) PreviousSafety = 0.32504936 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3877,7 +5604,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3886,6 +5612,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (12.67616604,32.62383813,576.7794688) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3901,6 +5642,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (11.939479,32.325744,576.23153) PreviousSafety = 0.53980696 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3910,7 +5652,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3919,6 +5660,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (33.02477269,-11.59156542,609.3380385) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3934,6 +5690,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (32.833503,-11.160822,609.032) PreviousSafety = 0.32143462 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3943,7 +5700,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3952,6 +5708,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-7.838699233,-34.11091899,639.2174638) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -3967,6 +5738,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-7.539569,-33.936093,638.99874) PreviousSafety = 0.23646314 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -3976,7 +5748,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -3985,6 +5756,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-34.69970284,4.574999782,669.6877501) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4000,6 +5786,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-34.652307,4.5092693,669.63399) PreviousSafety = 0.055531179 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4009,7 +5796,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4018,6 +5804,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (4.35735646,34.72770428,703.1135328) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4033,6 +5834,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (3.9558588,34.435161,702.76992) PreviousSafety = 0.33836228 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4042,7 +5844,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4051,6 +5852,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (34.80348904,-3.703667204,736.1369258) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4066,6 +5882,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (34.743513,-3.6246496,736.07187) PreviousSafety = 0.067926197 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4075,7 +5892,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4084,6 +5900,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-31.36070742,15.54046428,684.4712686) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4099,6 +5930,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-31.247415,15.513492,684.55974) PreviousSafety = 0.11347875 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4108,7 +5940,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4117,6 +5948,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (19.33496636,-29.17463069,634.7069666) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4132,6 +5978,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (18.769879,-28.640772,635.26167) PreviousSafety = 0.75672039 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4141,7 +5988,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4150,6 +5996,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-5.696953857,34.53324075,583.626012) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4165,6 +6026,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-5.5707244,34.229083,583.8836) PreviousSafety = 0.32056645 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4174,7 +6036,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4183,6 +6044,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-9.998202854,-33.54155542,532.8839035) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4198,6 +6074,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-9.9971142,-33.523471,532.89675) PreviousSafety = 0.01764131 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4207,7 +6084,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4216,6 +6092,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (25.01916969,24.47531712,482.834495) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4231,6 +6122,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (24.910148,24.304868,482.99032) PreviousSafety = 0.1970972 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4240,7 +6132,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4249,6 +6140,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-32.16831044,-13.79129449,431.2848503) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4264,6 +6170,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-31.517811,-13.317243,431.87122) PreviousSafety = 0.7841945 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4273,7 +6180,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4282,6 +6188,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (34.66702598,-4.816358534,381.8137084) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4297,6 +6218,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (34.141508,-4.8620537,382.20269) PreviousSafety = 0.51402981 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4306,7 +6228,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4315,6 +6236,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-30.82775881,16.57254618,330.1564495) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4330,6 +6266,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-30.723961,16.544182,330.23832) PreviousSafety = 0.10484635 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4339,7 +6276,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4348,6 +6284,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (18.40618005,-29.76932206,280.3655392) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4363,6 +6314,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (17.842089,-29.201929,280.93601) PreviousSafety = 0.77876708 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4372,7 +6324,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4381,6 +6332,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-4.490492159,34.71074013,229.3183204) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4396,6 +6362,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-4.3860279,34.432025,229.55122) PreviousSafety = 0.28974794 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4405,7 +6372,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4414,6 +6380,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-11.05039233,-33.20977009,178.53819) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4429,6 +6410,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-11.04547,-33.156266,178.5763) PreviousSafety = 0.052319625 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4438,7 +6420,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4447,6 +6428,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (25.83298763,23.61475704,128.5226213) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4462,6 +6458,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (25.734418,23.471629,128.65629) PreviousSafety = 0.1693006 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4471,7 +6468,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4480,6 +6476,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-32.58993931,-12.76306608,76.95658908) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4495,6 +6506,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-32.578695,-12.755393,76.966514) PreviousSafety = 0.013268233 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4504,7 +6516,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4513,6 +6524,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (34.49508794,-5.92358909,27.48997702) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4528,6 +6554,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (33.971768,-5.9522671,27.875858) PreviousSafety = 0.51071855 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4537,7 +6564,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4546,6 +6572,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-30.25900404,17.58956152,-24.15794239) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4561,6 +6602,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-30.16557,17.560672,-24.08342) PreviousSafety = 0.095288961 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4570,7 +6612,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4579,6 +6620,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (17.45830297,-30.33492471,-73.97645871) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4594,6 +6650,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (17.451974,-30.328136,-73.969851) PreviousSafety = 0.0090403868 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4603,7 +6660,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4612,6 +6668,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-3.276944327,34.84625713,-124.989236) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4627,6 +6698,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-3.1924877,34.594574,-124.78146) PreviousSafety = 0.25843251 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4636,7 +6708,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4645,6 +6716,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-12.09246323,-32.84466978,-175.8070863) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4660,6 +6746,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-12.081484,-32.756155,-175.7438) PreviousSafety = 0.086851242 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4669,7 +6756,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4678,6 +6764,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (26.61618404,22.72836877,-225.7895152) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4693,6 +6794,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (26.529393,22.611088,-225.67745) PreviousSafety = 0.14214565 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4702,7 +6804,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4711,6 +6812,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-32.9793583,-11.72015044,-277.3709811) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4726,6 +6842,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-32.954361,-11.704237,-277.34934) PreviousSafety = 0.028882599 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4735,7 +6852,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4744,6 +6860,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (34.28790354,-7.024220313,-326.8342872) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4759,6 +6890,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (33.766344,-7.0361056,-326.45077) PreviousSafety = 0.5083671 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4768,7 +6900,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4777,6 +6908,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-29.65478549,18.59015055,-378.4719192) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4792,6 +6938,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-29.572527,18.561691,-378.40549) PreviousSafety = 0.084806767 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4801,7 +6948,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4810,6 +6956,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (16.49228169,-30.87077331,-428.3190075) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4825,6 +6986,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (16.470144,-30.845483,-428.29509) PreviousSafety = 0.032737661 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4834,7 +6996,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4843,6 +7004,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-2.057990241,34.93944299,-479.296676) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4858,6 +7034,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-1.9916657,34.71626,-479.11441) PreviousSafety = 0.22665627 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4867,7 +7044,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4876,6 +7052,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-13.12330421,-32.44655431,-530.1518887) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4891,6 +7082,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-13.104079,-32.323599,-530.06353) PreviousSafety = 0.12118187 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4900,7 +7092,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4909,6 +7100,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (27.36793793,21.81733195,-580.1019195) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4924,6 +7130,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (27.294125,21.724364,-580.01086) PreviousSafety = 0.11565934 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4933,7 +7140,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4942,6 +7148,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-33.33601575,-10.66349165,-631.697866) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4957,6 +7178,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-33.297568,-10.640709,-631.66519) PreviousSafety = 0.043560017 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4966,7 +7188,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -4975,6 +7196,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (34.04572075,-8.117197723,-681.1590913) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -4990,6 +7226,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (33.52547,-8.1124365,-680.7772) PreviousSafety = 0.50697489 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -4999,7 +7236,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5008,6 +7244,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-29.0154527,19.57303004,-732.7854792) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5023,6 +7274,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-28.945119,19.54604,-732.7279) PreviousSafety = 0.073397467 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5032,7 +7284,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5041,6 +7292,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (15.50901253,-31.37627337,-782.6620852) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5056,6 +7322,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (15.471671,-31.330809,-782.62025) PreviousSafety = 0.057300954 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5065,7 +7332,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5074,6 +7340,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-0.8352509312,34.99003224,-833.6040174) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5089,6 +7370,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-0.7850745,34.796687,-833.44763) PreviousSafety = 0.19445738 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5098,7 +7380,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5107,6 +7388,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-14.14186686,-32.01573991,-884.4961845) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5122,6 +7418,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-14.112249,-31.859067,-884.38291) PreviousSafety = 0.15526282 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5131,7 +7428,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5140,6 +7436,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (28.08750895,20.8828121,-934.4145995) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5155,6 +7466,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (28.027743,20.812565,-934.34395) PreviousSafety = 0.089869475 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5164,7 +7476,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5173,6 +7484,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-33.65939056,-9.594030817,-986.0240751) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5188,6 +7514,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-33.607886,-9.5656985,-985.98103) PreviousSafety = 0.057295872 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5197,7 +7524,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5206,6 +7532,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (33.76881433,-9.201476997,-1035.48445) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5221,6 +7562,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (33.249412,-9.1801367,-1035.1035) PreviousSafety = 0.50654695 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5230,7 +7572,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5239,6 +7580,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-28.34141767,20.53689471,-1087.09863) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5254,6 +7610,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-28.283685,20.512497,-1087.0507) PreviousSafety = 0.061062379 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5263,7 +7620,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5272,6 +7628,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (14.50944102,-31.85084177,-1137.00567) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5287,6 +7658,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (14.457625,-31.78355,-1136.9453) PreviousSafety = 0.082712994 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5296,7 +7668,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5305,6 +7676,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (0.3896040241,34.99783149,-1187.911282) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5320,6 +7706,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (0.42571601,34.835522,-1187.7811) PreviousSafety = 0.16187632 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5329,7 +7716,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5338,6 +7724,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-15.14708561,-31.55258781,-1238.839945) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5353,6 +7754,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-15.104983,-31.363069,-1238.7019) PreviousSafety = 0.18904517 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5362,7 +7764,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5371,6 +7772,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (28.77418796,19.92601584,-1288.727566) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5386,6 +7802,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (28.729405,19.876853,-1288.6767) PreviousSafety = 0.06480297 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5395,7 +7812,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5404,6 +7820,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-33.94897619,-8.512756071,-1340.349621) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5419,6 +7850,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-33.884896,-8.4801365,-1340.2969) PreviousSafety = 0.070086007 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5428,7 +7860,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5437,6 +7868,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (33.45749433,-10.275995,-1389.810379) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5452,6 +7898,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (32.938473,-10.238064,-1389.4295) PreviousSafety = 0.50708803 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5461,7 +7908,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5470,6 +7916,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-27.63316492,21.48041425,-1441.411381) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5485,6 +7946,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-27.588632,21.459809,-1441.3738) PreviousSafety = 0.047803641 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5494,7 +7956,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5503,6 +7964,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (13.49456108,-32.29391307,-1491.349741) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5518,6 +7994,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (13.429124,-32.203163,-1491.2703) PreviousSafety = 0.10895374 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5527,7 +8004,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5536,6 +8012,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (1.614863517,34.96272609,-1542.218495) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5551,6 +8042,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (1.6390842,34.832501,-1542.1148) PreviousSafety = 0.1289558 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5560,7 +8052,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5569,6 +8060,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-16.13788295,-31.05750689,-1593.183147) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5584,6 +8090,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-16.081267,-30.83616,-1593.0206) PreviousSafety = 0.22248 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5593,7 +8100,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5602,6 +8108,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (29.42730253,18.94818898,-1643.040835) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5617,6 +8138,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (29.398304,18.91844,-1643.0091) PreviousSafety = 0.040485708 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5626,7 +8148,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5635,6 +8156,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-34.20428615,-7.420701359,-1694.674521) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5650,6 +8186,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-34.128195,-7.3849953,-1694.6128) PreviousSafety = 0.081926781 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5659,7 +8196,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5668,6 +8204,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (33.11210949,-11.33967393,-1744.1369) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5683,6 +8234,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (32.593004,-11.285061,-1743.7555) PreviousSafety = 0.50860246 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5692,7 +8244,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5701,6 +8252,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-26.89125532,22.40224068,-1795.723747) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5716,6 +8282,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-26.860435,22.386702,-1795.6972) PreviousSafety = 0.033624373 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5725,7 +8292,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5734,6 +8300,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (12.46541341,-32.70494563,-1845.694276) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5749,6 +8330,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (12.387336,-32.589145,-1845.5951) PreviousSafety = 0.13600026 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5758,7 +8340,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5767,6 +8348,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (2.838782768,34.88468593,-1896.525684) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5782,6 +8378,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (2.8533637,34.787435,-1896.4487) PreviousSafety = 0.095740534 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5791,7 +8388,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5800,6 +8396,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-17.11317495,-30.53095549,-1947.525771) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5815,6 +8426,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-17.040094,-30.278939,-1947.339) PreviousSafety = 0.25551878 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5824,7 +8436,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5833,6 +8444,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (30.04622208,17.95061387,-1997.354421) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5848,6 +8474,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (30.033675,17.938582,-1997.3412) PreviousSafety = 0.016942399 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5857,7 +8484,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5866,6 +8492,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-34.4248593,-6.318944729,-2048.998793) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5881,6 +8522,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-34.3374,-6.2812858,-2048.9287) PreviousSafety = 0.092815119 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5890,7 +8532,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5899,6 +8540,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (32.73305008,-12.39142575,-2098.464032) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5914,6 +8570,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (32.2134,-12.319962,-2098.0813) PreviousSafety = 0.51109404 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5923,7 +8580,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5932,6 +8588,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-26.11632918,23.30101608,-2150.035743) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5947,6 +8618,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-26.099644,23.291886,-2150.0211) PreviousSafety = 0.018528842 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5956,7 +8628,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5965,6 +8636,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (11.42308331,-33.08342739,-2200.039254) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -5980,6 +8666,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (11.333469,-32.94103,-2199.9199) PreviousSafety = 0.16382672 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -5989,7 +8676,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -5998,6 +8684,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (4.059591762,34.76377015,-2250.832881) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6013,6 +8714,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (4.0668508,34.700219,-2250.7828) PreviousSafety = 0.062277107 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6022,7 +8724,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6031,6 +8732,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-18.07187679,-29.97344274,-2301.867799) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6046,6 +8762,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-17.980465,-29.692052,-2301.657) PreviousSafety = 0.28811365 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6055,7 +8772,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6064,6 +8780,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (30.63036517,16.93460155,-2351.668349) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6079,6 +8810,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (30.042635,16.40689,-2351.0674) PreviousSafety = 0.76922505 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6088,7 +8820,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6097,6 +8828,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-34.61026706,-5.208590411,-2403.322462) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6112,6 +8858,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-34.512156,-5.1700409,-2403.2448) PreviousSafety = 0.10274711 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6121,7 +8868,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6130,6 +8876,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (32.32073997,-13.43018123,-2452.791799) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6145,6 +8906,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (31.800103,-13.34162,-2452.407) PreviousSafety = 0.51456316 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6154,7 +8916,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6163,6 +8924,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-25.3090812,24.17540918,-2504.347387) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6178,6 +8954,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-25.306855,24.174091,-2504.3454) PreviousSafety = 0.0025205538 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6187,7 +8964,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6196,6 +8972,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (10.36865285,-33.42889526,-2554.38465) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6211,6 +9002,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (10.268731,-33.258412,-2554.2445) PreviousSafety = 0.1924028 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6220,7 +9012,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6229,6 +9020,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (5.275566762,34.60012132,-2605.140114) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6244,6 +9050,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (5.2778745,34.570828,-2605.1171) PreviousSafety = 0.02861 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6253,7 +9060,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6262,6 +9068,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-19.01296492,-29.38549243,-2656.209216) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6277,6 +9098,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-18.90145,-29.07615,-2655.9747) PreviousSafety = 0.32021748 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6286,7 +9108,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6295,6 +9116,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (31.17923991,15.90141499,-2705.982633) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6310,6 +9146,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (30.591018,15.407924,-2705.3993) PreviousSafety = 0.74778138 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6319,7 +9156,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6328,6 +9164,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-34.76012594,-4.090677785,-2757.645545) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6343,6 +9194,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-34.652154,-4.0522248,-2757.5609) PreviousSafety = 0.11171725 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6352,7 +9204,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6361,6 +9212,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (31.87559425,-14.45498155,-2807.120214) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6376,6 +9242,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (31.353553,-14.348999,-2806.7326) PreviousSafety = 0.51900459 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6385,7 +9252,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6394,6 +9260,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (-24.47018624,25.024188,-2858.658695) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6409,6 +9290,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (-23.815447,24.605029,-2858.0598) PreviousSafety = 0.75700142 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6418,7 +9300,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6427,6 +9308,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (9.303125951,-33.74095208,-2908.730442) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6442,6 +9338,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (9.194244,-33.540958,-2908.569) PreviousSafety = 0.22170196 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] @@ -6451,7 +9348,6 @@ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- -History depth=1 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 @@ -6460,6 +9356,21 @@ History depth=1 - but |normal| = 0 - and |normal|^2 = 0 which differs from 1.0 by -1 n = (0,0,0) + Global point: (6.485094339,34.39394644,-2959.447419) + Volume: Guide + Solid: SolidGuide, Type: G4Tubs +----------------------------------------------------------- + *** Dump for solid - SolidGuide *** + =================================================== + Solid type: G4Tubs + Parameters: + inner radius : 35 mm + outer radius : 37 mm + half length Z: 3000 mm + starting phi : 0 degrees + delta phi : 360 degrees +----------------------------------------------------------- + ============================================================ State of Navigator: The current state of G4Navigator is: @@ -6475,6 +9386,7 @@ The current state of G4Navigator is: PreviousSftOrigin = (6.5190755,33.612104,-2958.8358) PreviousSafety = 0.76154395 Current History: +History depth=1 Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[Guide] Type=[N] diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index a5a279758e..4e9a419868 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -232,16 +232,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -353,7 +355,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -380,7 +382,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -452,7 +454,7 @@ Step# X Y Z Direction x dir y dir Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0s Sys=0s + User=0s Real=0s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. ========= Table of registered couples ============================== @@ -634,7 +636,7 @@ WARNING: Scene "none" not found. Run terminated. Run Summary Number of events processed : 100 - User=0s Real=0s Sys=0s + User=0.01s Real=0s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 39fc56796e..d38c3a0dbf 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -230,16 +230,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -347,7 +349,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -374,7 +376,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -4592,7 +4594,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Run terminated. Run Summary Number of events processed : 100 - User=0.04s Real=0.06s Sys=0.01s + User=0.04s Real=0.04s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/field/field03/History b/examples/extended/field/field03/History index 227ddf7635..6b838b370f 100644 --- a/examples/extended/field/field03/History +++ b/examples/extended/field/field03/History @@ -1,4 +1,4 @@ -$Id: History 92498 2015-09-02 07:24:12Z gcosmo $ +$Id: History 96980 2016-05-19 09:41:22Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 19, 2016 - G.Cosmo - fieldex03-V10-02-00 +- Fixed compilation warnings on gcc-6.1 in F03FieldMessenger. + September 01, 2015 - I. Hrivnacova - fieldex03-V10-01-00 - Removed F03EventActionMessenger class, now obsolete, and replaced /event/printModulo commands in macros with /run/printProgress diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 6cf013a530..5dd0265738 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -209,7 +209,7 @@ G4ClassicalRK4 (default) is called The minimal step is equal to 0.25 mm F03PhysicsList::SetCuts:CutLength : 1 mm -total time(SetCuts)=0.01 s +total time(SetCuts)=0 s Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -237,16 +237,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -257,11 +259,8 @@ Some /vis commands (optionally) take a string to specify colour. Available colours: black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow -Set field value to (33000,0,0) Gauss -Set field value to (33000,0,0) Gauss G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm -Set field value to (33000,0,0) Gauss phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -357,7 +356,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -384,7 +383,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -462,7 +461,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0.01s Sys=0s + User=0s Real=0s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. ========= Table of registered couples ============================== @@ -484,7 +483,7 @@ WARNING: Scene "none" not found. Run terminated. Run Summary Number of events processed : 100 - User=0.02s Real=0.01s Sys=0s + User=0.01s Real=0.01s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Set field value to (0,0,1000) Gauss @@ -506,7 +505,7 @@ WARNING: Scene "none" not found. Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0s Sys=0s + User=0s Real=0.01s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/field/field03/src/F03FieldMessenger.cc b/examples/extended/field/field03/src/F03FieldMessenger.cc index 4d3c3e3910..dae711572e 100644 --- a/examples/extended/field/field03/src/F03FieldMessenger.cc +++ b/examples/extended/field/field03/src/F03FieldMessenger.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the F03FieldMessenger class // // -// $Id: F03FieldMessenger.cc 76602 2013-11-13 08:33:35Z gcosmo $ +// $Id: F03FieldMessenger.cc 96980 2016-05-19 09:41:22Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -103,10 +103,12 @@ void F03FieldMessenger::SetNewValue( G4UIcommand* command, G4String newValue) if( command == fUpdateCmd ) fEMfieldSetup->UpdateField(); if( command == fMagFieldCmd ) + { fEMfieldSetup->SetFieldValue(fMagFieldCmd->GetNewDoubleValue(newValue)); // Check the value G4cout << "Set field value to " << fEMfieldSetup->GetConstantFieldValue() / gauss << " Gauss " << G4endl; + } if( command == fMinStepCmd ) fEMfieldSetup->SetMinStep(fMinStepCmd->GetNewDoubleValue(newValue)); } diff --git a/examples/extended/field/field04/History b/examples/extended/field/field04/History index c5aa3f74a4..30847bf6fb 100644 --- a/examples/extended/field/field04/History +++ b/examples/extended/field/field04/History @@ -15,16 +15,19 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -May 14, 2015 P.Gumplinger - (fieldex04-V10-01-00 & fieldex04-V10-01-01) -- remove obsolete /event/drawTrack and /event/printModulo +May 19, 2016 G.Cosmo - (fieldex04-V10-02-00) +- Fixed compilation warning on gcc-6.1 in F04GlobalField. + +May 14, 2015 P.Gumplinger - (fieldex04-V10-01-01, 00) +- Removed obsolete /event/drawTrack and /event/printModulo. November 5, 2014 A.Dotti - (fieldex04-V10-00-11) -- Bug fixing for shared process +- Bug fixing for shared process. October 28, 2014 A. Dotti - (fieldex04-V10-00-10) - Proting to new optical phsyics processes API (no statics), requires: xrays-V10-00-06, op-V10-00-09, - phys-ctor-em-V10-00-18 + phys-ctor-em-V10-00-18. February 28, 2014 G. Cosmo - (fieldex04-V10-00-09) - Corrected mismatch for delete/new of fFp pointer array in Clear()... diff --git a/examples/extended/field/field04/field04.out b/examples/extended/field/field04/field04.out index 591c4a16b4..21bbb1e8bc 100644 --- a/examples/extended/field/field04/field04.out +++ b/examples/extended/field/field04/field04.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -47,16 +47,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -121,10 +123,9 @@ G4NistElementBuilder: Build Element Z= 1 Aeff= 1.00794 with natural isoto G4Material: Mean excitation energy is changed for G4_Galactic Iold= 19.2eV Inew= 21.8 eV G4NistMaterialBuilder::FindOrBuildMaterial G4_AIR G4NistMaterialBuilder::FindOrBuildMaterial G4_BERYLLIUM_OXIDE -G4NistMaterialBuilder: BuildMaterial #115 +G4NistMaterialBuilder: BuildMaterial #116 New material nComponents= 2 G4NistElementBuilder: Build Element Z= 4 Aeff= 9.01218 with natural isotope composition -G4Material: Mean excitation energy is changed for G4_BERYLLIUM_OXIDE Iold= 83.15eV Inew= 93.2 eV G4NistMaterialBuilder::FindOrBuildMaterial Scintillator G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out New material Scintillator is prepeared nMaterials= 317 nComponents= 816 nCurrent= 2 @@ -230,6 +231,14 @@ G4NistMaterialBuilder::FindOrBuildMaterial G4_W G4ClassicalRK4 (default) is called Accuracy Parameters: MinStep=0.01 DeltaChord=3 DeltaOneStep=0.01 DeltaIntersection=0.1 EpsMin=2.5e-07 EpsMax=0.05 +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 F04ExtraPhysics:: Add Extra Physics Processes F04PhysicsList::SetCuts:CutLength : 1 mm @@ -385,7 +394,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -399,7 +408,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -508,7 +517,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -541,7 +550,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -669,6 +678,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1004,7 +1018,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.94243(mm),1.575879(mm),78.423048(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.642187(mm),-0.45157653(mm),78.652316(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1013,7 +1027,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.397115(mm),-2.9428533(mm),78.871856(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.572855(mm),-1.2149503(mm),79.369849(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1022,7 +1036,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.377204(mm),0.23753614(mm),78.522713(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.290163(mm),1.8867536(mm),78.714388(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1031,7 +1045,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.365343(mm),2.0646306(mm),79.230112(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.838319(mm),2.5559118(mm),78.970387(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1040,7 +1054,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.647249(mm),-2.6607267(mm),78.475097(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.40898(mm),1.2531255(mm),79.046091(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1049,7 +1063,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.892432(mm),-1.00995(mm),79.137172(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.764207(mm),-2.1829614(mm),79.159782(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1058,40 +1072,438 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.195756(mm),1.7788366(mm),78.37838(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.417109(mm),3.3251544(mm),78.692004(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.962498(mm),3.5690955(mm),78.948491(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.340524(mm),3.3966348(mm),78.529181(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.01181(mm),-2.5911139(mm),78.410815(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.119579(mm),0.17304385(mm),78.391812(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.877157(mm),2.570495(mm),78.787212(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.495555(mm),-2.0341053(mm),78.501845(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.938465(mm),-1.5977401(mm),78.423748(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.687809(mm),2.9955808(mm),79.173253(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.928214(mm),0.13626934(mm),78.778209(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.575647(mm),-0.97786754(mm),78.664049(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.765912(mm),-0.21693865(mm),79.159481(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.6844(mm),-0.98833048(mm),78.292219(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.908096(mm),0.36988111(mm),78.429102(mm),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 = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.27 mm 102 um 2.58 cm 27 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.4995325 mm 400.88481 um 2.5783212 cm 23.142349 MeV 3.8909485 MeV 831.3334 um 831.3334 um Target hIoni - 2 -1.8464224 mm 543.93944 um 2.573928 cm 19.371826 MeV 3.7705234 MeV 676.33081 um 1.5076642 mm Target hIoni - 3 -1.3376867 mm 690.98228 um 2.5661396 cm 16.052811 MeV 3.3190152 MeV 540.76995 um 2.0484341 mm Target hIoni - 4 -926.31967 um 813.22452 um 2.5667372 cm 13.049117 MeV 3.0036933 MeV 434.16241 um 2.4825966 mm Target hIoni - 5 -603.36177 um 894.08485 um 2.5581312 cm 10.060274 MeV 2.9888436 MeV 348.53556 um 2.8311321 mm Target hIoni - 6 -551.0628 um 906.82703 um 2.5560551 cm 9.4274239 MeV 632.84993 keV 57.871741 um 2.8890039 mm Target Transportation - 7 4.8873604 cm -1.9857263 cm -16.115932 cm 9.4274364 MeV7.4978234e-17 eV 48.253596 cm 48.542497 cm CaptureMgnt Decay -Track (trackID 4, parentID 1) is processed with stopping code 2 + 0 -1.57 cm 370 um 7.74 cm 32.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.5328362 cm -178.88483 um 7.8242603 cm 27.523775 MeV 5.1735198 MeV 1.0820962 mm 1.0820962 mm Target hIoni + 2 -1.5139655 cm -363.29125 um 7.8564599 cm 25.271599 MeV 2.2521763 MeV 417.9616 um 1.5000578 mm Target Transportation + 3 -2.565579 cm -7.4847755 cm 2 m 25.271646 MeV1.6874875e-16 eV 2.3451833 m 2.3466833 m CaptureMgnt Transportation + 4 -4.2733839 cm -9.3805524 cm 2.0364618 m 25.254783 MeV 15.834805 keV 4.4503139 cm 2.3911865 m World hIoni + 5 -4.4377358 cm -9.5639823 cm 2.0400076 m 25.25271 MeV 641.25648 eV 4.3172442 mm 2.3955037 m World hIoni + 6 -4.814814 cm -9.9847672 cm 2.0481339 m 25.24594 MeV 4.7902362 keV 9.8975254 mm 2.4054012 m World hIoni + 7 -5.6461215 cm -10.915355 cm 2.0661259 m 25.234813 MeV 9.9384428 keV 2.1895668 cm 2.4272969 m World hIoni + 8 -6.0097278 cm -11.32275 cm 2.0740004 m 25.229358 MeV 3.0353185 keV 9.5825464 mm 2.4368794 m World hIoni + 9 -6.8559227 cm -12.268244 cm 2.0923281 m 25.219454 MeV 6.9557128 keV 2.2291425 cm 2.4591709 m World hIoni + 10 -6.9739002 cm -12.400036 cm 2.0948893 m 25.215532 MeV 845.20083 eV 3.1126225 mm 2.4622835 m World hIoni + 11 -7.4007092 cm -12.875961 cm 2.1041385 m 25.206353 MeV 5.8350754 keV 1.1243468 cm 2.473527 m World hIoni + 12 -7.8081424 cm -13.330254 cm 2.1129875 m 25.200433 MeV 4.1776972 keV 1.0749062 cm 2.484276 m World hIoni + 13 -8.3453619 cm -13.926453 cm 2.1246059 m 25.186877 MeV 5.3476794 keV 1.4120693 cm 2.4983967 m World hIoni + 14 -8.696091 cm -14.313806 cm 2.1321917 m 25.182086 MeV 3.5328484 keV 9.211362 mm 2.5076081 m World hIoni + 15 -9.0663612 cm -14.721711 cm 2.1401923 m 25.175638 MeV 5.1661232 keV 9.7138509 mm 2.5173219 m World hIoni + 16 -9.7841667 cm -15.511905 cm 2.1557491 m 25.167054 MeV 6.7448394 keV 1.8867422 cm 2.5361893 m World hIoni + 17 -10.865349 cm -16.707026 cm 2.1791724 m 25.154897 MeV 12.156562 keV 2.8432064 cm 2.5646214 m World hIoni + 18 -11.401452 cm -17.302536 cm 2.1907665 m 25.149929 MeV 4.9681205 keV 1.4093554 cm 2.578715 m World hIoni + 19 -11.879809 cm -17.845177 cm 2.2012188 m 25.145487 MeV 4.4418988 keV 1.2711339 cm 2.5914263 m World hIoni + 20 -12.322927 cm -18.347899 cm 2.2109086 m 25.140087 MeV 3.5460496 keV 1.1781419 cm 2.6032077 m World hIoni + 21 -12.688437 cm -18.764424 cm 2.2189052 m 25.133791 MeV 2.9263931 keV 9.7290431 mm 2.6129368 m World hIoni + 22 -13.156955 cm -19.299658 cm 2.229158 m 25.127993 MeV 4.6890085 keV 1.2478692 cm 2.6254155 m World hIoni + 23 -13.329989 cm -19.495788 cm 2.2329318 m 25.126457 MeV 1.5358996 keV 4.5915895 mm 2.630007 m World hIoni + 24 -14.059288 cm -20.3217 cm 2.2488187 m 25.118337 MeV 5.947998 keV 1.9333796 cm 2.6493408 m World hIoni + 25 -14.102029 cm -20.369936 cm 2.2497481 m 25.116601 MeV 672.89504 eV 1.1309391 mm 2.6504718 m World hIoni + 26 -15.007346 cm -21.390505 cm 2.2694268 m 25.107875 MeV 7.6665002 keV 2.3945178 cm 2.674417 m World hIoni + 27 -15.087173 cm -21.481206 cm 2.2711683 m 25.106082 MeV 337.08187 eV 2.119541 mm 2.6765365 m World hIoni + 28 -16.232385 cm -22.784857 cm 2.2961454 m 25.095129 MeV 8.6952111 keV 3.041321 cm 2.7069497 m World hIoni + 29 -18.141613 cm -24.959658 cm 2.3378251 m 25.074262 MeV 19.593866 keV 5.0741456 cm 2.7576912 m World hIoni + 30 -18.682234 cm -25.575776 cm 2.3496172 m 25.062114 MeV 5.1095332 keV 1.4361157 cm 2.7720523 m World hIoni + 31 -21.241644 cm -28.478487 cm 2.4051401 m 25.033799 MeV 23.3582 keV 6.7679063 cm 2.8397314 m World hIoni + 32 -21.426058 cm -28.690358 cm 2.4091618 m 25.029304 MeV 2.7325253 keV 4.905502 mm 2.8446369 m World hIoni + 33 -23.601925 cm -31.190278 cm 2.4565758 m 25.009027 MeV 18.732348 keV 5.7848965 cm 2.9024859 m World hIoni + 34 -25.508579 cm -33.332901 cm 2.4976423 m 24.986613 MeV 20.588659 keV 5.0090838 cm 2.9525767 m World hIoni + 35 -25.848275 cm -33.713927 cm 2.504946 m 24.983833 MeV 2.7800881 keV 8.9107511 mm 2.9614874 m World hIoni + 36 -26.513144 cm -34.455694 cm 2.5192061 m 24.977152 MeV 4.7182501 keV 1.7394766 cm 2.9788822 m World hIoni + 37 -27.068185 cm -35.073399 cm 2.5311002 m 24.973165 MeV 3.9863983 keV 1.4506324 cm 2.9933885 m World hIoni + 38 -28.635786 cm -36.811024 cm 2.5646083 m 24.960047 MeV 11.741489 keV 4.0871386 cm 3.0342599 m World hIoni + 39 -30.55077 cm -38.932639 cm 2.6055666 m 24.940765 MeV 17.809034 keV 4.9944348 cm 3.0842043 m World hIoni + 40 -30.648068 cm -39.041098 cm 2.607672 m 24.938715 MeV 747.55772 eV 2.5603804 mm 3.0867646 m World hIoni + 41 -30.913053 cm -39.336619 cm 2.6134168 m 24.936086 MeV 1.3810354 keV 6.982693 mm 3.0937473 m World hIoni + 42 -30.982791 cm -39.414315 cm 2.6149223 m 24.934347 MeV 519.6332 eV 1.8320471 mm 3.0955794 m World hIoni + 43 -31.144659 cm -39.594072 cm 2.6184111 m 24.931161 MeV 2.0681102 keV 4.2454129 mm 3.0998248 m World hIoni + 44 -36.372163 cm -45.390798 cm 2.730854 m 24.878526 MeV 51.631699 keV 13.688172 cm 3.2367065 m World hIoni + 45 -36.720301 cm -45.779841 cm 2.7383701 m 24.873714 MeV 3.5968938 keV 9.1513162 mm 3.2458578 m World hIoni + 46 -38.084753 cm -47.30802 cm 2.7678546 m 24.861041 MeV 12.673117 keV 3.5903348 cm 3.2817612 m World hIoni + 47 -38.886619 cm -48.211229 cm 2.7852539 m 24.851737 MeV 8.1877296 keV 2.1180469 cm 3.3029417 m World hIoni + 48 -39.428299 cm -48.819854 cm 2.7969706 m 24.846289 MeV 4.1757247 keV 1.4271121 cm 3.3172128 m World hIoni + 49 -40.562133 cm -50.096255 cm 2.8215691 m 24.834157 MeV 10.92753 keV 2.9942748 cm 3.3471555 m World hIoni + 50 -41.585996 cm -51.251785 cm 2.8437223 m 24.82456 MeV 9.596245 keV 2.7002233 cm 3.3741578 m World hIoni + 51 -41.745691 cm -51.433716 cm 2.8472046 m 24.821443 MeV 2.0691238 keV 4.2410997 mm 3.3783989 m World hIoni + 52 -41.902885 cm -51.612814 cm 2.8506335 m 24.818829 MeV 607.44801 eV 4.1755657 mm 3.3825744 m World hIoni + 53 -43.83918 cm -53.821051 cm 2.8928857 m 24.799514 MeV 18.243816 keV 5.1456974 cm 3.4340314 m World hIoni + 54 -44.308194 cm -54.347048 cm 2.9030349 m 24.795339 MeV 4.1748575 keV 1.2356003 cm 3.4463874 m World hIoni + 55 -44.478411 cm -54.536843 cm 2.9067081 m 24.794804 MeV 534.44844 eV 4.4712342 mm 3.4508586 m World hIoni + 56 -44.883763 cm -54.988634 cm 2.9154516 m 24.787924 MeV 4.049403 keV 1.0643859 cm 3.4615025 m World hIoni + 57 -45.039548 cm -55.162578 cm 2.9188353 m 24.784513 MeV 644.47844 eV 4.1111935 mm 3.4656137 m World hIoni + 58 -45.952583 cm -56.183029 cm 2.9386518 m 24.768114 MeV 7.9630234 keV 2.4087202 cm 3.4897009 m World hIoni + 59 -46.593243 cm -56.896265 cm 2.9525804 m 24.762757 MeV 5.3570672 keV 1.69092 cm 3.5066101 m World hIoni + 60 -46.707517 cm -57.024043 cm 2.955069 m 24.753635 MeV 1.2114363 keV 3.0218528 mm 3.5096319 m World hIoni + 61 -51.468528 cm -62.32875 cm 3.0584993 m 24.707026 MeV 44.923328 keV 12.561362 cm 3.6352456 m World hIoni + 62 -52.680009 cm -63.602029 cm 3.0839668 m 24.695119 MeV 9.9651633 keV 3.094563 cm 3.6661912 m World hIoni + 63 -53.562289 cm -64.508206 cm 3.1021999 m 24.68167 MeV 7.1347153 keV 2.2190215 cm 3.6883814 m World hIoni + 64 -53.770841 cm -64.723084 cm 3.1065461 m 24.676843 MeV 2.4335734 keV 5.2778572 mm 3.6936593 m World hIoni + 65 -55.94848 cm -66.966227 cm 3.1519931 m 24.614329 MeV 15.312678 keV 5.5161843 cm 3.7488211 m World hIoni + 66 -56.870956 cm -67.905016 cm 3.171392 m 24.606066 MeV 8.2625223 keV 2.3442407 cm 3.7722635 m World hIoni + 67 -56.891855 cm -67.926302 cm 3.1718316 m 24.604314 MeV 298.10685 eV 531.30987 um 3.7727948 m World hIoni + 68 -57.514078 cm -68.559267 cm 3.1849061 m 24.595107 MeV 6.1430004 keV 1.58026 cm 3.7885974 m World hIoni + 69 -57.55661 cm -68.60262 cm 3.1858039 m 24.592573 MeV 290.61794 eV 1.0838891 mm 3.7896813 m World hIoni + 70 -58.774468 cm -69.842761 cm 3.2115319 m 24.578595 MeV 12.388826 keV 3.104913 cm 3.8207304 m World hIoni + 71 -59.271763 cm -70.351805 cm 3.2220728 m 24.574834 MeV 3.7613733 keV 1.2718231 cm 3.8334487 m World hIoni + 72 -59.787781 cm -70.882232 cm 3.2330933 m 24.562287 MeV 3.9226171 keV 1.3274607 cm 3.8467233 m World hIoni + 73 -61.276863 cm -72.409526 cm 3.2648937 m 24.547399 MeV 12.842765 keV 3.8291892 cm 3.8850152 m World hIoni + 74 -61.306086 cm -72.439327 cm 3.2655186 m 24.546127 MeV 156.53604 eV 751.45233 um 3.8857666 m World hIoni + 75 -62.675312 cm -73.833786 cm 3.294765 m 24.499606 MeV 16.30861 keV 3.51751 cm 3.9209417 m World hIoni + 76 -63.246538 cm -74.410287 cm 3.3067844 m 24.495398 MeV 4.2071601 keV 1.4502831 cm 3.9354445 m World hIoni + 77 -63.650296 cm -74.81641 cm 3.315294 m 24.43229 MeV 4.7661433 keV 1.0257134 cm 3.9457017 m World hIoni + 78 -63.739957 cm -74.90633 cm 3.3171762 m 24.422761 MeV 978.04255 eV 2.2704746 mm 3.9479722 m World hIoni + 79 -64.07609 cm -75.242265 cm 3.324214 m 24.417849 MeV 2.2788936 keV 8.4919942 mm 3.9564642 m World hIoni + 80 -67.125633 cm -78.291697 cm 3.388153 m 24.385965 MeV 28.78645 keV 7.7124093 cm 4.0335882 m World hIoni + 81 -67.875703 cm -79.032785 cm 3.4037596 m 24.375554 MeV 8.9436214 keV 1.8834784 cm 4.052423 m World hIoni + 82 -69.654605 cm -80.791759 cm 3.4409291 m 24.355289 MeV 17.35216 keV 4.4804322 cm 4.0972274 m World hIoni + 83 -70.240203 cm -81.373387 cm 3.4531704 m 24.346924 MeV 6.0934391 keV 1.4763914 cm 4.1119913 m World hIoni + 84 -71.365467 cm -82.488599 cm 3.4766772 m 24.330619 MeV 10.105721 keV 2.834717 cm 4.1403384 m World hIoni + 85 -71.570118 cm -82.693284 cm 3.4809984 m 24.327531 MeV 3.0880922 keV 5.2010431 mm 4.1455395 m World hIoni + 86 -72.528258 cm -83.651367 cm 3.5012219 m 24.320317 MeV 5.3838939 keV 2.4343047 cm 4.1698825 m World hIoni + 87 -72.928066 cm -84.04954 cm 3.5096654 m 24.316308 MeV 4.0090694 keV 1.015545 cm 4.180038 m World hIoni + 88 -74.091924 cm -85.204982 cm 3.5341323 m 24.302997 MeV 9.2695432 keV 2.9454867 cm 4.2094928 m World hIoni + 89 -74.358721 cm -85.47196 cm 3.539761 m 24.300806 MeV 1.0432178 keV 6.777088 mm 4.2162699 m World hIoni + 90 -75.116764 cm -86.231769 cm 3.5557836 m 24.281985 MeV 7.5212728 keV 1.9285129 cm 4.2355551 m World hIoni + 91 -77.617189 cm -88.738381 cm 3.6087155 m 24.25797 MeV 24.014924 keV 6.3681602 cm 4.2992367 m World Decay +Track (trackID 3, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 11, Parent ID = 4 +* G4Track Information: Particle = mu+, Track ID = 99, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.89 cm -1.99 cm -16.1 cm 17.4 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep - 1 2.1149254 cm -2.9095501 cm -1.3195654 m 17.436408 MeV2.9710275e-15 eV 38.630927 m 38.630927 m CaptureMgnt Transportation -Track (trackID 11, parentID 4) is processed with stopping code 2 + 0 -77.6 cm -88.7 cm 3.61 m 23.2 MeV 0 eV 0 fm 0 fm World initStep + 1 -79.378763 cm -89.055241 cm 3.6271866 m 23.229529 MeV 5.6806272 keV 2.5720362 cm 2.5720362 cm World muIoni + 2 -83.20685 cm -89.754374 cm 3.6673979 m 23.210379 MeV 17.242838 keV 5.5957812 cm 8.1678174 cm World muIoni + 3 -89.278295 cm -90.835449 cm 3.7316606 m 23.179492 MeV 27.806589 keV 8.9066825 cm 17.0745 cm World muIoni + 4 -97.104614 cm -92.227315 cm 3.8139691 m 23.147684 MeV 30.557693 keV 11.442797 cm 28.517297 cm World muIoni + 5 -98.148733 cm -92.418606 cm 3.824918 m 23.141401 MeV 5.1736753 keV 1.5249793 cm 30.042276 cm World muIoni + 6 -99.326836 cm -92.63311 cm 3.8372768 m 23.133229 MeV 5.8606034 keV 1.720854 cm 31.76313 cm World muIoni + 7 -99.752345 cm -92.712678 cm 3.8417604 m 23.118969 MeV 1.5858418 keV 6.2322917 mm 32.386359 cm World muIoni + 8 -1.0791599 m -94.233151 cm 3.9280796 m 23.079129 MeV 39.839366 keV 11.977876 cm 44.364235 cm World muIoni + 9 -1.0997457 m -94.637539 cm 3.9501493 m 23.039719 MeV 7.9696715 keV 3.0450017 cm 47.409237 cm World muIoni + 10 -1.1115489 m -94.867004 cm 3.9628089 m 23.033314 MeV 6.4046144 keV 1.7459837 cm 49.15522 cm World muIoni + 11 -1.1242046 m -95.125811 cm 3.9764238 m 23.026135 MeV 5.6137202 keV 1.8767871 cm 51.032007 cm World muIoni + 12 -1.1796027 m -96.26398 cm 4.0359176 m 22.993165 MeV 26.054369 keV 8.2085827 cm 59.24059 cm World muIoni + 13 -1.1869094 m -96.408058 cm 4.0437339 m 22.989431 MeV 2.2981596 keV 1.0796244 cm 60.320214 cm World muIoni + 14 -1.1962958 m -96.591821 cm 4.0537846 m 22.984226 MeV 3.2196467 keV 1.3874307 cm 61.707645 cm World muIoni + 15 -1.1982789 m -96.630817 cm 4.0559141 m 22.980112 MeV 1.1333821 keV 2.9359768 mm 62.001243 cm World muIoni + 16 -1.2088106 m -96.839424 cm 4.067229 m 22.971885 MeV 6.4927163 keV 1.5597899 cm 63.561033 cm World muIoni + 17 -1.2094968 m -96.853086 cm 4.0679689 m 22.971627 MeV 258.23321 eV 1.0183523 mm 63.662868 cm World muIoni + 18 -1.2269414 m -97.200409 cm 4.0867811 m 22.962312 MeV 7.9636172 keV 2.5889707 cm 66.251839 cm World muIoni + 19 -1.2610841 m -97.877372 cm 4.1236183 m 22.943517 MeV 17.140679 keV 5.0680891 cm 71.319928 cm World muIoni + 20 -1.2954062 m -98.558973 cm 4.1604834 m 22.925953 MeV 15.182113 keV 5.0828297 cm 76.402757 cm World muIoni + 21 -1.3722625 m -1.0004742 m 4.2430431 m 22.883371 MeV 37.661847 keV 11.377495 cm 87.780253 cm World muIoni + 22 -1.392204 m -1.0042782 m 4.2643929 m 22.873336 MeV 10.034907 keV 2.9461067 cm 90.726359 cm World muIoni + 23 -1.4067821 m -1.0070225 m 4.2800329 m 22.856668 MeV 8.5196554 keV 2.1556036 cm 92.881963 cm World muIoni + 24 -1.4479484 m -1.0145675 m 4.3241311 m 22.839113 MeV 15.387513 keV 6.0796941 cm 98.961657 cm World muIoni + 25 -1.4499663 m -1.014934 m 4.3263035 m 22.829772 MeV 2.2784086 keV 2.9875485 mm 99.260412 cm World muIoni + 26 -1.4505176 m -1.0150339 m 4.3268981 m 22.829317 MeV 454.98443 eV 817.06778 um 99.342119 cm World muIoni + 27 -1.4505488 m -1.0150395 m 4.3269317 m 22.820476 MeV 0 eV 46.143982 um 99.346733 cm World muIoni + 28 -1.4608599 m -1.0168995 m 4.3380239 m 22.812009 MeV 6.3044951 keV 1.5258334 cm 1.0087257 m World muIoni + 29 -1.5000186 m -1.0239555 m 4.3797704 m 22.795312 MeV 16.697934 keV 5.767134 cm 1.066397 m World muIoni + 30 -1.5170903 m -1.0269689 m 4.3979777 m 22.785925 MeV 7.753761 keV 2.5140234 cm 1.0915372 m World muIoni + 31 -1.5373592 m -1.0306421 m 4.419491 m 22.773793 MeV 8.4917308 keV 2.9785015 cm 1.1213223 m World muIoni + 32 -1.5547878 m -1.0338104 m 4.4379759 m 22.764746 MeV 6.6635431 keV 2.5602501 cm 1.1469248 m World muIoni + 33 -1.561055 m -1.0349506 m 4.4445975 m 22.760267 MeV 2.7537545 keV 9.188204 mm 1.156113 m World muIoni + 34 -1.5679337 m -1.0362011 m 4.4518731 m 22.756595 MeV 2.6543582 keV 1.0090374 cm 1.1662033 m World muIoni + 35 -1.6179555 m -1.0451914 m 4.5048839 m 22.706574 MeV 30.590019 keV 7.3438399 cm 1.2396417 m World muIoni + 36 -1.6457211 m -1.0503261 m 4.5344078 m 22.692728 MeV 11.510884 keV 4.0852983 cm 1.2804947 m World muIoni + 37 -1.6679033 m -1.0543363 m 4.557913 m 22.675912 MeV 12.223105 keV 3.2567327 cm 1.313062 m World muIoni + 38 -1.6710561 m -1.0549299 m 4.5612619 m 22.672862 MeV 1.3599617 keV 4.6375847 mm 1.3176996 m World muIoni + 39 -1.7272426 m -1.0655504 m 4.6209478 m 22.638751 MeV 29.666346 keV 8.2657141 cm 1.4003568 m World muIoni + 40 -1.7286846 m -1.0658233 m 4.6224698 m 22.635151 MeV 1.076541 keV 2.1143492 mm 1.4024711 m World muIoni + 41 -1.7714003 m -1.0739477 m 4.6675872 m 22.615124 MeV 17.100354 keV 6.2659813 cm 1.4651309 m World muIoni + 42 -1.7777209 m -1.0751227 m 4.6742304 m 22.593013 MeV 5.5350339 keV 9.2445729 mm 1.4743755 m World muIoni + 43 -1.7842485 m -1.0763173 m 4.6811224 m 22.587226 MeV 2.6224695 keV 9.5674649 mm 1.483943 m World muIoni + 44 -1.8046518 m -1.0800451 m 4.7026619 m 22.578322 MeV 8.9037006 keV 2.9902272 cm 1.5138452 m World muIoni + 45 -1.8088982 m -1.0808355 m 4.7071515 m 22.574904 MeV 1.1210522 keV 6.230009 mm 1.5200752 m World muIoni + 46 -1.8761911 m -1.0933708 m 4.7782324 m 22.5448 MeV 28.980661 keV 9.8681764 cm 1.618757 m World muIoni + 47 -1.8872124 m -1.0953487 m 4.7898503 m 22.528767 MeV 3.6760866 keV 1.6135629 cm 1.6348926 m World muIoni + 48 -1.9071403 m -1.0989279 m 4.8108851 m 22.516454 MeV 8.641765 keV 2.9195863 cm 1.6640885 m World muIoni + 49 -1.932759 m -1.1034694 m 4.8380184 m 22.501792 MeV 13.285075 keV 3.759206 cm 1.7016806 m World muIoni + 50 -1.9331688 m -1.1035419 m 4.8384519 m 22.500061 MeV 84.851937 eV 600.99388 um 1.7022816 m World muIoni + 51 -1.9494227 m -1.1064323 m 4.8556448 m 22.488901 MeV 8.8617309 keV 2.3835706 cm 1.7261173 m World muIoni + 52 -1.9556633 m -1.107544 m 4.8622376 m 22.487574 MeV 1.3278333 keV 9.145797 mm 1.7352631 m World muIoni + 53 -1.9760582 m -1.1111792 m 4.8837841 m 22.474769 MeV 9.7486298 keV 2.9890175 cm 1.7651532 m World muIoni + 54 -1.9823537 m -1.1122993 m 4.8904546 m 22.462174 MeV 2.1437299 keV 9.2403096 mm 1.7743935 m World muIoni + 55 -1.9890191 m -1.1134764 m 4.8975482 m 22.453699 MeV 4.9792106 keV 9.8047196 mm 1.7841983 m World muIoni + 56 -2.0145993 m -1.1179727 m 4.9247714 m 22.44168 MeV 10.315597 keV 3.7625378 cm 1.8218236 m World muIoni + 57 -2.0314854 m -1.1209444 m 4.9428277 m 22.43349 MeV 7.1493011 keV 2.4899903 cm 1.8467235 m World muIoni + 58 -2.031545 m -1.1209547 m 4.9428911 m 22.429597 MeV 24.905211 eV 87.58275 um 1.8468111 m World muIoni + 59 -2.0393874 m -1.1222968 m 4.9512402 m 22.425226 MeV 2.6957299 keV 1.1533161 cm 1.8583443 m World muIoni + 60 -2.0560031 m -1.1251111 m 4.9688602 m 22.412545 MeV 11.129824 keV 2.4381641 cm 1.8827259 m World muIoni + 61 -2.0943856 m -1.1314886 m 5.0095623 m 22.394513 MeV 16.684388 keV 5.6307861 cm 1.9390338 m World muIoni + 62 -2.119454 m -1.1356824 m 5.0362211 m 22.380388 MeV 12.621356 keV 3.6833588 cm 1.9758674 m World muIoni + 63 -2.1503761 m -1.1408186 m 5.0691704 m 22.363428 MeV 13.703389 keV 4.5477732 cm 2.0213451 m World muIoni + 64 -2.1555228 m -1.1417028 m 5.0746836 m 22.357758 MeV 3.7545253 keV 7.5938176 mm 2.0289389 m World muIoni + 65 -2.1566426 m -1.1418939 m 5.0758893 m 22.354339 MeV 93.437118 eV 1.6565787 mm 2.0305955 m World muIoni + 66 -2.1731283 m -1.1447167 m 5.0937044 m 22.337127 MeV 8.7723955 keV 2.4436159 cm 2.0550317 m World muIoni + 67 -2.1742873 m -1.1449229 m 5.0949524 m 22.333571 MeV 947.29143 eV 1.7156285 mm 2.0567473 m World muIoni + 68 -2.1851122 m -1.1468582 m 5.1066176 m 22.327498 MeV 4.1922258 keV 1.6031181 cm 2.0727785 m World muIoni + 69 -2.2203694 m -1.1531337 m 5.1446852 m 22.309874 MeV 17.624204 keV 5.226488 cm 2.1250434 m World muIoni + 70 -2.2631836 m -1.1608043 m 5.190745 m 22.288202 MeV 20.457298 keV 6.3351688 cm 2.188395 m World muIoni + 71 -2.2731644 m -1.1625051 m 5.2013724 m 22.282918 MeV 5.28403 keV 1.4678202 cm 2.2030732 m World muIoni + 72 -2.2862092 m -1.1647263 m 5.2152564 m 22.274668 MeV 6.3734196 keV 1.9179873 cm 2.2222531 m World muIoni + 73 -2.3057637 m -1.1680755 m 5.2359579 m 22.264362 MeV 8.6287319 keV 2.8673151 cm 2.2509263 m World muIoni + 74 -2.3496245 m -1.1757549 m 5.2822438 m 22.238447 MeV 20.99851 keV 6.4227479 cm 2.3151538 m World muIoni + 75 -2.3588059 m -1.1773057 m 5.291932 m 22.231594 MeV 4.2654312 keV 1.3437429 cm 2.3285912 m World muIoni + 76 -2.3840008 m -1.1815156 m 5.3185895 m 22.218702 MeV 11.151638 keV 3.6920626 cm 2.3655118 m World muIoni + 77 -2.3855871 m -1.1817749 m 5.3202703 m 22.216237 MeV 710.55872 eV 2.3256379 mm 2.3678374 m World muIoni + 78 -2.3905064 m -1.18257 m 5.3254824 m 22.208987 MeV 3.0609199 keV 7.2109345 mm 2.3750484 m World muIoni + 79 -2.4239272 m -1.1879306 m 5.3609119 m 22.192692 MeV 16.294188 keV 4.8999534 cm 2.4240479 m World muIoni + 80 -2.4262531 m -1.188316 m 5.3633843 m 22.191433 MeV 1.2597913 keV 3.4163487 mm 2.4274643 m World muIoni + 81 -2.4445255 m -1.1913478 m 5.3828243 m 22.179408 MeV 9.2059901 keV 2.6851209 cm 2.4543155 m World muIoni + 82 -2.4652104 m -1.1948203 m 5.4047145 m 22.167008 MeV 11.399046 keV 3.0316836 cm 2.4846323 m World muIoni + 83 -2.5024957 m -1.2013816 m 5.4441998 m 22.099385 MeV 16.374136 keV 5.4702372 cm 2.5393347 m World muIoni + 84 -2.5029435 m -1.2014599 m 5.4446761 m 22.098322 MeV 47.477124 eV 658.42485 um 2.5399931 m World muIoni + 85 -2.5208436 m -1.2046003 m 5.4637133 m 22.089986 MeV 8.3359919 keV 2.6319009 cm 2.5663121 m World muIoni + 86 -2.5235208 m -1.2050682 m 5.4665801 m 22.086305 MeV 1.4141778 keV 3.9504166 mm 2.5702625 m World muIoni + 87 -2.5626637 m -1.2118767 m 5.5084039 m 22.067119 MeV 15.594203 keV 5.7686896 cm 2.6279494 m World muIoni + 88 -2.5652905 m -1.2123341 m 5.5112124 m 22.06431 MeV 1.7810784 keV 3.8725431 mm 2.631822 m World muIoni + 89 -2.5675293 m -1.2127237 m 5.5136036 m 22.062077 MeV 1.2161992 keV 3.2988181 mm 2.6351208 m World muIoni + 90 -2.5884839 m -1.2163865 m 5.5359717 m 22.048964 MeV 11.486187 keV 3.0868107 cm 2.6659889 m World muIoni + 91 -2.5972203 m -1.2179429 m 5.5452847 m 22.04243 MeV 3.380598 keV 1.2863972 cm 2.6788529 m World muIoni + 92 -2.6123636 m -1.2206549 m 5.5613644 m 22.031878 MeV 6.6399137 keV 2.2253823 cm 2.7011067 m World muIoni + 93 -2.6170552 m -1.2215324 m 5.5663582 m 22.026257 MeV 3.1814587 keV 6.9078859 mm 2.7080146 m World muIoni + 94 -2.6802193 m -1.2335024 m 5.6333501 m 21.99423 MeV 30.617618 keV 9.2849461 cm 2.800864 m World muIoni + 95 -2.6859343 m -1.2346324 m 5.6393748 m 21.990648 MeV 2.4672051 keV 8.38057 mm 2.8092446 m World muIoni + 96 -2.7029652 m -1.237958 m 5.6572355 m 21.98186 MeV 7.7892464 keV 2.4902209 cm 2.8341468 m World muIoni + 97 -2.7066641 m -1.238684 m 5.6610828 m 21.977754 MeV 1.4843658 keV 5.386133 mm 2.8395329 m World muIoni + 98 -2.7083856 m -1.239024 m 5.6628762 m 21.970263 MeV 1.280496 keV 2.5090738 mm 2.842042 m World muIoni + 99 -2.7384341 m -1.2449997 m 5.6941623 m 21.957176 MeV 11.541932 keV 4.3788747 cm 2.8858308 m World muIoni + 100 -2.7442874 m -1.2461859 m 5.7002327 m 21.9537 MeV 3.4757978 keV 8.5157998 mm 2.8943466 m World muIoni + 101 -2.8338395 m -1.2643652 m 5.7931372 m 21.912374 MeV 41.32697 keV 13.031366 cm 3.0246602 m World muIoni + 102 -2.9180365 m -1.2811484 m 5.878707 m 21.871593 MeV 37.953077 keV 12.121587 cm 3.1458761 m World muIoni + 103 -2.950258 m -1.2878013 m 5.9115896 m 21.854208 MeV 14.692744 keV 4.6516354 cm 3.1923924 m World muIoni + 104 -2.9785099 m -1.2938052 m 5.9403124 m 21.841605 MeV 10.981877 keV 4.0733547 cm 3.233126 m World muIoni + 105 -2.9835001 m -1.2948394 m 5.9454408 m 21.83942 MeV 2.1853244 keV 7.229963 mm 3.240356 m World muIoni + 106 -3.1506368 m -1.3292655 m 6.1173283 m 21.757085 MeV 81.25925 keV 24.2214 cm 3.48257 m World muIoni + 107 -3.1729436 m -1.3334796 m 6.1404357 m 21.743773 MeV 9.1738685 keV 3.2393007 cm 3.514963 m World muIoni + 108 -3.2048795 m -1.3395612 m 6.1738099 m 21.705582 MeV 16.795142 keV 4.6591206 cm 3.5615542 m World muIoni + 109 -3.2181696 m -1.3420385 m 6.1876388 m 21.699025 MeV 5.4082585 keV 1.9339132 cm 3.5808933 m World muIoni + 110 -3.2474228 m -1.347469 m 6.2180607 m 21.683366 MeV 14.42252 keV 4.2552873 cm 3.6234462 m World muIoni + 111 -3.2625133 m -1.3502081 m 6.2336769 m 21.634689 MeV 5.8131077 keV 2.1888168 cm 3.6453343 m World muIoni + 112 -3.2760116 m -1.3527478 m 6.247706 m 21.624104 MeV 6.9436661 keV 1.9633363 cm 3.6649677 m World muIoni + 113 -3.2827987 m -1.3540218 m 6.2547522 m 21.611661 MeV 3.7523425 keV 9.8660205 mm 3.6748337 m World muIoni + 114 -3.3139563 m -1.3599683 m 6.2871123 m 21.59952 MeV 9.2997719 keV 4.5313779 cm 3.7201475 m World muIoni + 115 -3.3147289 m -1.3601181 m 6.2879105 m 21.592962 MeV 308.59423 eV 1.1209704 mm 3.7212685 m World muIoni + 116 -3.320046 m -1.3611602 m 6.2934017 m 21.578231 MeV 2.9772369 keV 7.7143166 mm 3.7289828 m World muIoni + 117 -3.3200466 m -1.3611603 m 6.2934023 m 21.57823 MeV0.27121459 eV 849.77346 nm 3.7289836 m World muIoni + 118 -3.3214802 m -1.3614411 m 6.2948866 m 21.576457 MeV 589.98116 eV 2.0826548 mm 3.7310663 m World muIoni + 119 -3.3387226 m -1.3647959 m 6.312754 m 21.566505 MeV 8.4753053 keV 2.5055874 cm 3.7561222 m World muIoni + 120 -3.3638872 m -1.3696981 m 6.3386168 m 21.55313 MeV 12.230001 keV 3.6416796 cm 3.792539 m World muIoni + 121 -3.3763561 m -1.3721014 m 6.3514909 m 21.539643 MeV 9.4135859 keV 1.8082924 cm 3.8106219 m World muIoni + 122 -3.3983566 m -1.3763478 m 6.3742305 m 21.526327 MeV 11.802383 keV 3.1924099 cm 3.842546 m World muIoni + 123 -3.4086149 m -1.3783666 m 6.3848564 m 21.520361 MeV 3.9345159 keV 1.4907003 cm 3.857453 m World muIoni + 124 -3.4088951 m -1.3784211 m 6.3851461 m 21.520361 MeV 0 eV 406.67687 um 3.8578597 m World muIoni + 125 -3.4152415 m -1.3796563 m 6.3917068 m 21.515195 MeV 3.3429318 keV 9.2111519 mm 3.8670708 m World muIoni + 126 -3.4571618 m -1.387786 m 6.4348872 m 21.490562 MeV 20.00273 keV 6.0728789 cm 3.9277996 m World muIoni + 127 -3.4594877 m -1.3882466 m 6.4372756 m 21.488134 MeV 1.3961146 keV 3.3654898 mm 3.9311651 m World muIoni + 128 -3.4918452 m -1.3946522 m 6.4704858 m 21.475302 MeV 12.831999 keV 4.6807786 cm 3.9779729 m World muIoni + 129 -3.4935117 m -1.3949802 m 6.4722056 m 21.473389 MeV 1.9124783 keV 2.4170995 mm 3.98039 m World muIoni + 130 -3.5042324 m -1.3970686 m 6.4832558 m 21.46778 MeV 4.3287409 keV 1.5537172 cm 3.9959272 m World muIoni + 131 -3.5476878 m -1.4055652 m 6.5281487 m 21.397287 MeV 20.074477 keV 6.3055344 cm 4.0589825 m World muIoni + 132 -3.5735261 m -1.4106343 m 6.5551103 m 21.384351 MeV 11.609096 keV 3.7686199 cm 4.0966687 m World muIoni + 133 -3.6021639 m -1.4162608 m 6.5848448 m 21.365828 MeV 17.058486 keV 4.1664468 cm 4.1383332 m World muIoni + 134 -3.6109273 m -1.4179664 m 6.5939521 m 21.353615 MeV 4.9537715 keV 1.2753424 cm 4.1510866 m World muIoni + 135 -3.6152692 m -1.4188312 m 6.5984583 m 21.351376 MeV 2.2390315 keV 6.3171385 mm 4.1574037 m World muIoni + 136 -3.6240018 m -1.4205529 m 6.6075408 m 21.343407 MeV 4.7056182 keV 1.2716663 cm 4.1701204 m World muIoni + 137 -3.6380965 m -1.4233333 m 6.6222811 m 21.336117 MeV 7.2900643 keV 2.0583228 cm 4.1907036 m World muIoni + 138 -3.653916 m -1.4264847 m 6.6388616 m 21.328317 MeV 7.7998811 keV 2.3132287 cm 4.2138359 m World muIoni + 139 -3.6671447 m -1.4291645 m 6.6527429 m 21.319004 MeV 6.9288362 keV 1.9361634 cm 4.2331975 m World muIoni + 140 -3.7151495 m -1.4389543 m 6.7029935 m 21.298185 MeV 20.819471 keV 7.0181719 cm 4.3033793 m World muIoni + 141 -3.7515317 m -1.4465208 m 6.7412362 m 21.280445 MeV 16.489784 keV 5.3323945 cm 4.3567032 m World muIoni + 142 -3.7839296 m -1.4534282 m 6.7754831 m 21.265842 MeV 13.279307 keV 4.7646601 cm 4.4043498 m World muIoni + 143 -3.8060625 m -1.4581786 m 6.7988615 m 21.253463 MeV 11.10756 keV 3.2542075 cm 4.4368919 m World muIoni + 144 -3.80674 m -1.4583254 m 6.7995761 m 21.252064 MeV 177.71927 eV 995.62779 um 4.4378875 m World muIoni + 145 -3.8363784 m -1.4647676 m 6.8308289 m 21.232323 MeV 16.629411 keV 4.3550974 cm 4.4814385 m World muIoni + 146 -3.8544788 m -1.4687186 m 6.8498144 m 21.223757 MeV 6.6971176 keV 2.6527086 cm 4.5079656 m World muIoni + 147 -3.8570953 m -1.4692893 m 6.8525717 m 21.214555 MeV 694.72524 eV 3.8437429 mm 4.5118093 m World muIoni + 148 -3.8645688 m -1.4709198 m 6.8604617 m 21.209403 MeV 3.7487098 keV 1.0989253 cm 4.5227986 m World muIoni + 149 -3.8831147 m -1.4749453 m 6.8799157 m 21.201747 MeV 7.6563547 keV 2.7177511 cm 4.5499761 m World muIoni + 150 -3.9105586 m -1.4809354 m 6.9086722 m 21.189092 MeV 11.48627 keV 4.0199459 cm 4.5901755 m World muIoni + 151 -3.9331275 m -1.4858712 m 6.9321131 m 21.176031 MeV 11.458215 keV 3.2911945 cm 4.6230875 m World muIoni + 152 -3.9659654 m -1.4929486 m 6.9661265 m 21.158705 MeV 16.049675 keV 4.7805228 cm 4.6708927 m World muIoni + 153 -3.966447 m -1.4930522 m 6.9666251 m 21.155589 MeV 166.30864 eV 700.91066 um 4.6715936 m World muIoni + 154 -3.9710517 m -1.4940379 m 6.9713942 m 21.151307 MeV 2.2673655 keV 6.7022396 mm 4.6782959 m World muIoni + 155 -3.9725616 m -1.4943598 m 6.9729572 m 21.141438 MeV 147.86028 eV 2.1968441 mm 4.6804927 m World muIoni + 156 -3.9831722 m -1.4966179 m 6.9839784 m 21.131751 MeV 5.1019269 keV 1.5464606 cm 4.6959573 m World muIoni + 157 -4.0059318 m -1.5014756 m 7.0077702 m 21.118345 MeV 11.740967 keV 3.3281396 cm 4.7292387 m World muIoni + 158 -4.0143944 m -1.5032464 m 7.0165404 m 21.112462 MeV 4.5976165 keV 1.2315344 cm 4.7415541 m World muIoni + 159 -4.0386625 m -1.5083496 m 7.0416896 m 21.098229 MeV 11.759243 keV 3.5319534 cm 4.7768736 m World muIoni + 160 -4.0532975 m -1.5114735 m 7.0568999 m 21.088081 MeV 6.8167166 keV 2.133764 cm 4.7982112 m World muIoni + 161 -4.0720728 m -1.5154967 m 7.0763595 m 21.078879 MeV 9.2020993 keV 2.733824 cm 4.8255495 m World muIoni + 162 -4.0931935 m -1.5200802 m 7.098354 m 21.069155 MeV 9.723972 keV 3.0835947 cm 4.8563854 m World muIoni + 163 -4.0988588 m -1.5212893 m 7.1042802 m 21.066864 MeV 2.2916586 keV 8.2871319 mm 4.8646725 m World muIoni + 164 -4.1083772 m -1.5233258 m 7.1142337 m 21.059678 MeV 4.8649946 keV 1.3921962 cm 4.8785945 m World muIoni + 165 -4.1104238 m -1.5237656 m 7.1163751 m 21.013763 MeV 781.65159 eV 2.9945472 mm 4.8815891 m World muIoni + 166 -4.1360264 m -1.529209 m 7.1430162 m 20.994362 MeV 13.496345 keV 3.7348083 cm 4.9189371 m World muIoni + 167 -4.138949 m -1.5298458 m 7.1460666 m 20.990472 MeV 1.8134526 keV 4.272253 mm 4.9232094 m World muIoni + 168 -4.1400454 m -1.5300865 m 7.1472099 m 20.990181 MeV 290.30432 eV 1.6022526 mm 4.9248116 m World muIoni + 169 -4.2034895 m -1.5440091 m 7.213388 m 20.960165 MeV 27.712128 keV 9.2729015 cm 5.0175407 m World muIoni + 170 -4.2300502 m -1.5500163 m 7.2412853 m 20.945386 MeV 13.593637 keV 3.8984991 cm 5.0565256 m World muIoni + 171 -4.2406048 m -1.5523495 m 7.2523278 m 20.934048 MeV 4.3565169 keV 1.5452461 cm 5.0719781 m World muIoni + 172 -4.2445765 m -1.5532424 m 7.256498 m 20.927501 MeV 2.3462166 keV 5.8277021 mm 5.0778058 m World muIoni + 173 -4.2558845 m -1.5557826 m 7.2683971 m 20.921267 MeV 5.041529 keV 1.6610582 cm 5.0944164 m World muIoni + 174 -4.2673453 m -1.5583508 m 7.2804711 m 20.917438 MeV 3.8295375 keV 1.6844301 cm 5.1112607 m World muIoni + 175 -4.3003428 m -1.5657048 m 7.3151198 m 20.900469 MeV 15.922569 keV 4.8409305 cm 5.15967 m World muIoni + 176 -4.3148194 m -1.5689788 m 7.3303257 m 20.89391 MeV 5.2102592 keV 2.1248854 cm 5.1809189 m World muIoni + 177 -4.3394558 m -1.5745922 m 7.3562147 m 20.878087 MeV 14.006599 keV 3.61761 cm 5.217095 m World muIoni + 178 -4.3457948 m -1.5760261 m 7.3628078 m 20.874939 MeV 3.1479619 keV 9.2578638 mm 5.2263528 m World muIoni + 179 -4.3676528 m -1.5810027 m 7.3855645 m 20.861796 MeV 12.10426 keV 3.1943836 cm 5.2582967 m World muIoni + 180 -4.4042349 m -1.5893565 m 7.4234605 m 20.844092 MeV 16.568153 keV 5.3330699 cm 5.3116274 m World muIoni + 181 -4.4494073 m -1.5997615 m 7.4703641 m 20.822857 MeV 21.234929 keV 6.5945491 cm 5.3775728 m World muIoni + 182 -4.4506258 m -1.6000338 m 7.4716285 m 20.820847 MeV 413.67256 eV 1.7769778 mm 5.3793498 m World muIoni + 183 -4.4646157 m -1.6031573 m 7.4861451 m 20.811153 MeV 7.9910115 keV 2.0401103 cm 5.3997509 m World muIoni + 184 -4.4754945 m -1.6056012 m 7.4975022 m 20.804454 MeV 5.4535695 keV 1.5915554 cm 5.4156665 m World muIoni + 185 -4.4806377 m -1.6067523 m 7.5028826 m 20.798164 MeV 3.6873366 keV 7.5316518 mm 5.4231981 m World muIoni + 186 -4.5050292 m -1.6122276 m 7.5284866 m 20.785723 MeV 12.440918 keV 3.5784101 cm 5.4589822 m World muIoni + 187 -4.5135576 m -1.614079 m 7.5374417 m 20.779666 MeV 4.7559539 keV 1.2504177 cm 5.4714864 m World muIoni + 188 -4.5220357 m -1.6159371 m 7.5463038 m 20.764959 MeV 4.1438273 keV 1.2404345 cm 5.4838908 m World muIoni + 189 -4.5624405 m -1.6248521 m 7.5885714 m 20.741008 MeV 18.398857 keV 5.914905 cm 5.5430398 m World muIoni + 190 -4.5649591 m -1.6254148 m 7.5911987 m 20.73786 MeV 1.2804124 keV 3.682714 mm 5.5467225 m World muIoni + 191 -4.587078 m -1.6303985 m 7.6142775 m 20.727248 MeV 10.612443 keV 3.2353083 cm 5.5790756 m World muIoni + 192 -4.5974482 m -1.6327761 m 7.6250773 m 20.720188 MeV 5.0831728 keV 1.516015 cm 5.5942357 m World muIoni + 193 -4.601448 m -1.6336969 m 7.6292493 m 20.717168 MeV 1.9445082 keV 5.8524343 mm 5.6000882 m World muIoni + 194 -4.608161 m -1.6352395 m 7.6362431 m 20.714424 MeV 2.7439875 keV 9.8162016 mm 5.6099044 m World muIoni + 195 -4.6452339 m -1.6437484 m 7.674856 m 20.695077 MeV 19.347369 keV 5.4201288 cm 5.6641057 m World muIoni + 196 -4.6596343 m -1.6470229 m 7.6897294 m 20.688354 MeV 6.7223853 keV 2.0959858 cm 5.6850655 m World muIoni + 197 -4.6603872 m -1.647193 m 7.6905078 m 20.688008 MeV 346.56597 eV 1.0962461 mm 5.6861618 m World muIoni + 198 -4.7164456 m -1.6598616 m 7.7484747 m 20.65868 MeV 29.328103 keV 8.1628971 cm 5.7677907 m OutOfWorld Transportation +Track (trackID 99, parentID 3) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.392587847092(mm),-3.0765041948509(mm),78.520000410492(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.468025812423(mm),3.583416862995(mm),79.03567960396(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1100,7 +1512,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.798654(mm),3.0636294(mm),78.801054(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.654528(mm),1.1668594(mm),78.826467(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1109,7 +1521,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.274409(mm),-3.6369217(mm),79.06982(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.781777(mm),-0.73586454(mm),78.80403(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1118,7 +1530,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.478294(mm),0.73595299(mm),78.681215(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.084435(mm),0.85446004(mm),78.221682(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1127,7 +1539,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.236501(mm),-0.29665244(mm),78.371196(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.410624(mm),1.1113033(mm),79.222128(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1136,7 +1548,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.48724(mm),0.72579996(mm),78.855965(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.474875(mm),2.5105492(mm),78.858145(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1145,7 +1557,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.283458(mm),-2.5195146(mm),78.362916(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.103064(mm),-1.474113(mm),79.276359(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1154,7 +1566,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.518102(mm),-2.1573007(mm),78.850523(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.270736(mm),3.3947147(mm),78.89414(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1163,7 +1575,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.077747(mm),-2.3867467(mm),78.751842(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.634109(mm),-2.6253394(mm),79.182722(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1172,7 +1584,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.681068(mm),1.7951367(mm),79.350768(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.624068(mm),0.76891723(mm),79.008165(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1181,7 +1593,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.146022(mm),-2.2574749(mm),79.268785(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.132102(mm),-2.6292649(mm),78.742258(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1190,7 +1602,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.736197(mm),-0.75019497(mm),78.283086(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.44641(mm),1.1069381(mm),78.686837(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1199,7 +1611,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.731789(mm),1.6086723(mm),79.341825(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.533487(mm),2.8421094(mm),78.318829(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1208,7 +1620,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.488069(mm),2.3479745(mm),78.855819(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.136893(mm),1.5598081(mm),79.270394(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1217,7 +1629,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.604737(mm),-0.33407256(mm),79.011574(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.944472(mm),2.332964(mm),78.599015(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1226,7 +1638,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.971586(mm),-0.46772747(mm),78.946888(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.3905(mm),1.5906198(mm),79.225676(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1235,7 +1647,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.619193(mm),1.4140188(mm),78.656371(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.97093(mm),1.2095441(mm),78.947004(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1244,7 +1656,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.167023(mm),-2.7306241(mm),78.736101(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.927359(mm),-3.1986682(mm),78.602033(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1253,7 +1665,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.465324(mm),2.9084962(mm),78.330848(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.137861(mm),-1.8506318(mm),78.741243(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1262,7 +1674,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.6934(mm),3.0706868(mm),78.643286(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.779523(mm),-0.5125298(mm),78.980754(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1271,7 +1683,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.428067(mm),-2.9200786(mm),79.219052(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.963299(mm),-0.69785034(mm),78.94835(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1280,7 +1692,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.441083(mm),-1.4039695(mm),78.335122(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.957585(mm),0.0095791822(mm),78.949357(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1289,7 +1701,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.324531(mm),0.069668888(mm),79.237309(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.230867(mm),-1.3736992(mm),78.724843(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1298,7 +1710,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.944628(mm),2.2497901(mm),78.246334(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.736558(mm),-1.6728959(mm),79.340984(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1307,7 +1719,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.432776(mm),-0.76596213(mm),78.16026(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.519597(mm),3.174815(mm),79.202913(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1316,7 +1728,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.245997(mm),2.7827536(mm),78.545848(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.412509(mm),2.9898563(mm),79.221796(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1325,7 +1737,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.731633(mm),-1.2449554(mm),79.165525(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.582513(mm),1.1675748(mm),79.191819(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1334,7 +1746,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.059039(mm),2.7641414(mm),78.402487(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.508307(mm),2.6921607(mm),78.675923(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1343,7 +1755,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.611614(mm),-0.29657258(mm),79.010361(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.84125(mm),-1.8156586(mm),78.793543(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1352,7 +1764,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.272486(mm),0.98612752(mm),79.246486(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.719541(mm),-0.74729311(mm),78.815004(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1361,7 +1773,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.487639(mm),1.9759846(mm),79.208548(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.199168(mm),-3.7440636(mm),78.554105(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1370,7 +1782,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.244812(mm),0.55902651(mm),78.36973(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.783592(mm),3.4162428(mm),78.451056(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1379,7 +1791,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.453726(mm),0.92766763(mm),79.390855(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.098335(mm),1.9790749(mm),79.277193(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1388,7 +1800,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.050365(mm),-2.3279625(mm),78.580343(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.441166(mm),-1.8980395(mm),78.511435(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1397,7 +1809,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.416499(mm),-1.1096888(mm),78.339457(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.611822(mm),3.1452126(mm),78.481343(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1406,7 +1818,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.817743(mm),3.2007416(mm),78.445034(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.761347(mm),-0.31112264(mm),79.336613(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1415,7 +1827,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.238821(mm),2.7407996(mm),78.899768(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.808115(mm),-1.4827407(mm),78.799386(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1424,7 +1836,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.197394(mm),0.64776894(mm),79.259726(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.027189(mm),-0.82571281(mm),79.113411(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1433,7 +1845,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.530178(mm),-0.27969522(mm),78.319413(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.370367(mm),1.7693704(mm),79.0529(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1442,7 +1854,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.32963(mm),-2.1623191(mm),78.707429(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.372766(mm),-3.7480386(mm),78.87615(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1451,7 +1863,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.010515(mm),0.7514781(mm),78.234716(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.200408(mm),-1.8103104(mm),78.906541(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1460,7 +1872,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.497469(mm),-3.00221(mm),78.677834(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.747059(mm),-2.5206825(mm),78.457498(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1469,7 +1881,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.60283(mm),-1.275138(mm),79.188237(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.895351(mm),-2.4806738(mm),78.784004(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1478,7 +1890,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.069462(mm),2.7869849(mm),78.92963(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.811503(mm),0.25098353(mm),78.798788(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1487,7 +1899,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.200929(mm),1.3130188(mm),78.730122(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.225195(mm),-2.2748931(mm),79.254824(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1496,7 +1908,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.680464(mm),1.9170036(mm),78.46924(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.651664(mm),2.9914377(mm),78.826972(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1505,7 +1917,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.642032(mm),-0.32359808(mm),79.004998(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.599246(mm),0.72366879(mm),78.307234(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1514,7 +1926,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.832399(mm),1.323389(mm),78.44245(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.879446(mm),-1.0124424(mm),78.786808(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1523,7 +1935,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.046892(mm),-1.0142127(mm),79.109937(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.804055(mm),-0.36517905(mm),78.800102(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1532,7 +1944,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.691642(mm),-0.099842418(mm),78.99625(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.89928(mm),-1.9498661(mm),79.135965(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1541,7 +1953,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.540127(mm),2.6886298(mm),78.493985(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.273042(mm),-1.9555437(mm),78.364753(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1550,7 +1962,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.597881(mm),-0.31815145(mm),78.131148(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.651327(mm),3.4178353(mm),78.827032(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1559,7 +1971,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.972397(mm),0.2140384(mm),79.123072(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.881445(mm),1.3555646(mm),78.433802(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1568,7 +1980,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.50679(mm),2.8437901(mm),78.852517(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.203553(mm),1.610703(mm),78.729659(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1577,7 +1989,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.527617(mm),-0.95232205(mm),79.377826(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.205131(mm),0.23202357(mm),78.905708(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1586,7 +1998,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.189622(mm),-1.8123702(mm),79.08477(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.790575(mm),2.0731095(mm),78.802479(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1595,7 +2007,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.243058(mm),-0.22220814(mm),79.428001(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.790032(mm),3.5284805(mm),78.626247(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1604,7 +2016,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.596042(mm),-1.6148861(mm),79.013107(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.435033(mm),-3.2230059(mm),78.86517(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1613,7 +2025,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.467504(mm),0.85844807(mm),78.859445(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.215518(mm),0.48122155(mm),79.080204(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1622,7 +2034,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.765344(mm),-1.5470197(mm),79.335908(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.735592(mm),-0.47150654(mm),78.812174(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1631,7 +2043,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.962107(mm),-1.5591453(mm),78.772233(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.988812(mm),0.18211431(mm),78.943851(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1640,7 +2052,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.96106(mm),3.623852(mm),78.948744(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.584382(mm),0.052397418(mm),79.015163(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1649,7 +2061,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.776949(mm),-1.0469957(mm),78.628554(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.702103(mm),1.3697037(mm),78.818079(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1658,7 +2070,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.607013(mm),-0.42774068(mm),78.482192(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.795984(mm),-1.4795355(mm),78.272544(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1667,7 +2079,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.075917(mm),-0.89314236(mm),78.399511(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.230905(mm),-0.80762152(mm),78.54851(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1676,7 +2088,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.497114(mm),1.8882243(mm),78.854224(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.246427(mm),1.7508557(mm),79.074753(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1685,7 +2097,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.383138(mm),-2.0814144(mm),79.050648(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.524879(mm),2.3578476(mm),79.201982(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1694,46 +2106,16 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.146101(mm),0.64746484(mm),78.916117(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.080731(mm),-0.087361296(mm),79.10397(mm),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.18 cm 644 um 7.11 cm 29.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.1592953 cm 1.4529601 mm 7.0709582 cm 25.520471 MeV 4.1657666 MeV 945.23604 um 945.23604 um Target hIoni - 2 -1.1610939 cm 2.1207475 mm 7.0342059 cm 21.535024 MeV 3.9854473 MeV 769.31528 um 1.7145513 mm Target hIoni - 3 -1.1501817 cm 2.5255011 mm 6.9897855 cm 17.555582 MeV 3.9794413 MeV 616.72116 um 2.3312725 mm Target hIoni - 4 -1.1445773 cm 2.8648789 mm 6.9569255 cm 14.452404 MeV 3.1031788 MeV 480.90339 um 2.8121759 mm Target hIoni - 5 -1.1445219 cm 3.1475373 mm 6.9311622 cm 11.617819 MeV 2.8345845 MeV 387.23847 um 3.1994143 mm Target hIoni - 6 -1.1416712 cm 3.3935323 mm 6.9130587 cm 8.6614791 MeV 2.9563399 MeV 311.36004 um 3.5107744 mm Target hIoni - 7 -1.1330717 cm 3.5362334 mm 6.8963054 cm 5.7789993 MeV 2.8824798 MeV 241.01143 um 3.7517858 mm Target hIoni - 8 -1.1228022 cm 3.6322751 mm 6.8866713 cm 2.9186215 MeV 2.8603778 MeV 175.78279 um 3.9275686 mm Target hIoni - 9 -1.1203754 cm 3.6614045 mm 6.8817945 cm 257.97539 keV 2.6606461 MeV 76.523854 um 4.0040925 mm Target hIoni - 10 -1.1204049 cm 3.661706 mm 6.8816926 cm 0 eV 257.97539 keV 1.8841739 um 4.0059766 mm Target hIoni - 11 -1.1204049 cm 3.661706 mm 6.8816926 cm 0 eV 0 eV 0 fm 4.0059766 mm Target Scintillation -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.12 cm 3.66 mm 6.88 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.1202992 cm 3.7228536 mm 6.8708335 cm 277.11043 keV 3.8427022 MeV 164.73767 um 164.73767 um Target muIoni - 2 -1.1203528 cm 3.7232952 mm 6.8707148 cm 0 eV 277.11043 keV 2.3271112 um 167.06478 um Target muIoni - 3 -1.1203528 cm 3.7232952 mm 6.8707148 cm 0 eV 0 eV 0 fm 167.06478 um Target Scintillation -Track (trackID 14, parentID 4) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.457799(mm),-1.9130261(mm),79.21381(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.364014(mm),-1.6821903(mm),78.172385(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1742,502 +2124,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.351825(mm),3.7088099(mm),78.703515(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.005031(mm),-0.40124652(mm),78.235683(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.390943(mm),1.1703345(mm),78.343964(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.090179(mm),3.0408785(mm),78.925977(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.099416(mm),-3.7538601(mm),78.571695(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.149728(mm),0.97204132(mm),79.444458(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.195466(mm),2.6322541(mm),79.260066(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.044393(mm),1.4658101(mm),78.93405(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.094461(mm),-2.996374(mm),79.101549(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.181834(mm),0.2218823(mm),78.204508(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.754809(mm),-2.405955(mm),79.337766(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.256577(mm),-0.0072250045(mm),79.425618(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.043028(mm),0.69728963(mm),78.757964(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.397738(mm),1.1315594(mm),78.695419(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.953603(mm),-1.0297174(mm),78.421078(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.030116(mm),2.9811891(mm),78.407587(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.324234(mm),1.7435067(mm),78.884707(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.237238(mm),0.91765122(mm),78.547393(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.01299(mm),0.78839674(mm),78.939588(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.122317(mm),0.73310022(mm),79.449291(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.129192(mm),2.10486(mm),78.919098(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.253052(mm),-1.9646589(mm),78.19195(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.690194(mm),-2.1402849(mm),79.172832(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.946675(mm),-2.2581585(mm),78.245973(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.699901(mm),1.5485522(mm),78.289486(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.707403(mm),2.5560792(mm),78.993471(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.19784(mm),2.0795922(mm),79.259648(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.262436(mm),-0.3939181(mm),78.895604(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.177295(mm),-2.048887(mm),79.26327(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.390769(mm),0.62384353(mm),78.343994(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.56541(mm),-0.9192716(mm),79.194835(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.691278(mm),-0.037847244(mm),78.819987(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.74311(mm),1.7996726(mm),78.281867(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.287942(mm),-2.2998471(mm),78.891106(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.731373(mm),-2.258028(mm),78.989244(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.804314(mm),0.36988926(mm),78.623729(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.750908(mm),0.51406863(mm),79.338454(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.191653(mm),-0.31808947(mm),79.260738(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.028422(mm),-2.3882674(mm),78.936867(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.794665(mm),1.5906962(mm),78.272776(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.275877(mm),-1.4112304(mm),79.422215(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.186784(mm),0.35495003(mm),78.908943(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.374743(mm),1.4456488(mm),79.228455(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.744339(mm),1.7990262(mm),78.457977(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.547126(mm),3.0322188(mm),78.845405(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.679317(mm),-0.017757614(mm),79.17475(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.916906(mm),0.48198265(mm),78.95653(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.77422(mm),-2.9171397(mm),78.981689(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.515744(mm),-0.32528711(mm),79.203593(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.780019(mm),2.5229632(mm),78.980667(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.646308(mm),2.0056126(mm),79.180571(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.443553(mm),3.3317706(mm),78.687341(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.980186(mm),-1.4296931(mm),78.945372(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.154465(mm),-0.23946012(mm),78.914642(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.924889(mm),2.6968543(mm),79.131449(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.63828(mm),-0.52776844(mm),79.181986(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.339064(mm),1.8219633(mm),78.176784(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2264,7 +2151,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.837761(mm),-1.0840889(mm),78.794158(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.7096(mm),-3.1276033(mm),78.816756(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2273,7 +2160,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.131227(mm),1.4820707(mm),78.213431(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.522892(mm),0.74737305(mm),78.497024(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2282,864 +2169,258 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.527965(mm),-2.9611307(mm),79.025111(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.157515(mm),-3.0435261(mm),78.914104(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.532184(mm),-2.787106(mm),79.200694(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.308689(mm),1.3150472(mm),78.711121(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.226547(mm),2.1554189(mm),78.549278(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.608832(mm),-0.086268568(mm),78.834525(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.677914(mm),0.14299378(mm),78.46969(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.502823(mm),1.4231914(mm),78.324236(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.283491(mm),-1.680278(mm),78.715564(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.110083(mm),1.3682127(mm),78.746141(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.17924(mm),-3.0719668(mm),78.557619(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.606132(mm),-2.857304(mm),78.835001(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.455124(mm),1.1110936(mm),78.508974(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.962492(mm),-0.1516773(mm),78.419511(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.360547(mm),-2.1984699(mm),78.701977(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.967303(mm),-2.5963539(mm),78.418663(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.189807(mm),-3.7056918(mm),78.90841(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.254623(mm),-1.3748973(mm),79.073308(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.516038(mm),1.710764(mm),79.379868(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.070786(mm),1.4838046(mm),78.576743(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.857184(mm),-3.3357219(mm),78.96706(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.379564(mm),0.31058666(mm),78.169643(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.953054(mm),-2.432382(mm),78.950156(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.649711(mm),-2.4965971(mm),78.474663(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.094099(mm),-3.1830079(mm),79.101613(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.745443(mm),1.7256447(mm),79.339417(mm),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 = 3, Parent ID = 1 +* G4Track Information: Particle = pi+, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.49 mm -3.01 mm 5.59 cm 63.6 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.7376417 mm -3.4954902 mm 5.5080969 cm 60.36254 MeV 3.2503377 MeV 1.2302352 mm 1.2302352 mm Target Transportation - 2 -2.7225668 cm -10.956263 cm -2 m 60.362816 MeV1.3915027e-16 eV 3.3158865 m 3.3171168 m CaptureMgnt Transportation - 3 -2.6020506 cm -11.584971 cm -2.0050539 m 60.360215 MeV 1.3568862 keV 8.1560964 mm 3.3252728 m World hIoni - 4 -2.5350194 cm -11.934527 cm -2.0078662 m 60.356333 MeV 1.4733912 keV 4.5361928 mm 3.329809 m World hIoni - 5 -1.1356321 cm -19.218095 cm -2.066513 m 60.309071 MeV 21.23858 keV 9.4553342 cm 3.4243624 m World hIoni - 6 7.8625565 mm -29.272904 cm -2.1475775 m 60.277019 MeV 25.582104 keV 13.057867 cm 3.5549411 m World hIoni - 7 1.8572813 cm -34.854617 cm -2.1925925 m 60.261645 MeV 13.739542 keV 7.2502518 cm 3.6274436 m World hIoni - 8 2.2834782 cm -37.084669 cm -2.2105289 m 60.241224 MeV 7.9248861 keV 2.8934324 cm 3.6563779 m World hIoni - 9 2.7215532 cm -39.362 cm -2.2289047 m 60.23149 MeV 7.9121953 keV 2.9588582 cm 3.6859665 m World hIoni - 10 2.9392425 cm -40.495225 cm -2.2380398 m 60.227423 MeV 4.0673056 keV 1.4717657 cm 3.7006841 m World hIoni - 11 3.3148851 cm -42.44617 cm -2.2537622 m 60.220032 MeV 6.2519278 keV 2.5336175 cm 3.7260203 m World hIoni - 12 4.7930852 cm -50.05496 cm -2.3151287 m 60.197952 MeV 20.762221 keV 9.8862289 cm 3.8248826 m World hIoni - 13 4.9856282 cm -51.045629 cm -2.323115 m 60.195067 MeV 1.6668328 keV 1.2869715 cm 3.8377523 m World hIoni - 14 5.2248436 cm -52.277135 cm -2.3330454 m 60.191081 MeV 2.6410419 keV 1.5999908 cm 3.8537522 m World hIoni - 15 6.8814743 cm -60.756734 cm -2.4013888 m 60.166602 MeV 21.046605 keV 11.01619 cm 3.9639141 m World hIoni - 16 7.1586898 cm -62.165551 cm -2.4127212 m 60.15841 MeV 2.6064235 keV 1.8291678 cm 3.9822058 m World hIoni - 17 7.2788852 cm -62.777847 cm -2.4176459 m 60.156133 MeV 1.1024091 keV 7.9491226 mm 3.9901549 m World hIoni - 18 8.4420079 cm -68.695957 cm -2.4652606 m 60.130028 MeV 17.826907 keV 7.6843047 cm 4.066998 m World hIoni - 19 9.5682223 cm -74.387877 cm -2.511087 m 60.110888 MeV 16.588092 keV 7.3937124 cm 4.1409351 m World hIoni - 20 10.110078 cm -77.13298 cm -2.5331775 m 60.102626 MeV 6.683843 keV 3.5649821 cm 4.1765849 m World hIoni - 21 10.370133 cm -78.454541 cm -2.5438135 m 60.097441 MeV 3.3847309 keV 1.7162206 cm 4.1937471 m World hIoni - 22 11.304242 cm -83.194799 cm -2.5820922 m 60.077165 MeV 15.789773 keV 6.1640275 cm 4.2553874 m World hIoni - 23 11.697404 cm -85.2077 cm -2.5983281 m 59.628645 MeV 4.7478787 keV 2.6157973 cm 4.2815454 m World hIoni - 24 12.257197 cm -88.020089 cm -2.62094 m 59.61947 MeV 8.1152227 keV 3.651833 cm 4.3180637 m World hIoni - 25 12.979473 cm -91.637973 cm -2.6500836 m 59.589816 MeV 11.45668 keV 4.7015199 cm 4.3650789 m World hIoni - 26 14.57231 cm -99.689041 cm -2.7146859 m 59.564679 MeV 23.34037 keV 10.444692 cm 4.4695258 m World hIoni - 27 16.837409 cm -1.1108355 m -2.8062549 m 59.532226 MeV 30.057454 keV 14.7924 cm 4.6174498 m World hIoni - 28 16.944692 cm -1.1162159 m -2.8105773 m 59.527241 MeV 969.3113 eV 6.984487 mm 4.6244343 m World hIoni - 29 17.112201 cm -1.1245765 m -2.8172905 m 59.522927 MeV 2.511675 keV 1.0852264 cm 4.6352866 m World hIoni - 30 17.29538 cm -1.1337469 m -2.8246602 m 59.519566 MeV 1.8794314 keV 1.1906549 cm 4.6471931 m World hIoni - 31 17.547688 cm -1.1464034 m -2.8348222 m 59.51547 MeV 3.0078666 keV 1.6426138 cm 4.6636193 m World hIoni - 32 18.869411 cm -1.2126599 m -2.8880279 m 59.500747 MeV 13.371278 keV 8.5996957 cm 4.7496162 m World hIoni - 33 18.97758 cm -1.2180017 m -2.8923065 m 59.496065 MeV 499.39591 eV 6.929034 mm 4.7565452 m World hIoni - 34 19.018243 cm -1.2200154 m -2.8939196 m 59.489837 MeV 1.5715363 keV 2.6119928 mm 4.7591572 m World hIoni - 35 20.141003 cm -1.2755682 m -2.9383701 m 59.474416 MeV 15.420731 keV 7.2027905 cm 4.8311851 m World hIoni - 36 20.564343 cm -1.2967624 m -2.9554062 m 59.467761 MeV 4.4672244 keV 2.7519924 cm 4.8587051 m World hIoni - 37 21.392484 cm -1.3380725 m -2.9886402 m 59.455868 MeV 10.766925 keV 5.3662073 cm 4.9123671 m World hIoni - 38 21.596231 cm -1.3482392 m -2.9968054 m 59.451595 MeV 2.9011997 keV 1.3197862 cm 4.925565 m World hIoni - 39 21.71467 cm -1.3541569 m -3.001543 m 59.445768 MeV 1.0884182 keV 7.6724044 mm 4.9332374 m World hIoni - 40 22.200686 cm -1.3785299 m -3.0210338 m 59.438735 MeV 5.5311907 keV 3.1584124 cm 4.9648215 m World hIoni - 41 23.941415 cm -1.4660189 m -3.0910199 m 59.415917 MeV 21.712026 keV 11.338177 cm 5.0782033 m World hIoni - 42 25.179307 cm -1.5289921 m -3.1414576 m 59.395214 MeV 19.125777 keV 8.1626231 cm 5.1598295 m World hIoni - 43 26.32624 cm -1.5873417 m -3.1881042 m 59.37714 MeV 15.352532 keV 7.5578642 cm 5.2354082 m World hIoni - 44 27.428155 cm -1.6425008 m -3.2322357 m 59.363746 MeV 12.376784 keV 7.1495014 cm 5.3069032 m World hIoni - 45 27.844003 cm -1.6632835 m -3.2488673 m 59.35711 MeV 4.53946 keV 2.6941205 cm 5.3338444 m World hIoni - 46 28.046476 cm -1.6733711 m -3.2569487 m 59.354633 MeV 2.4767753 keV 1.308314 cm 5.3469275 m World hIoni - 47 28.569521 cm -1.699484 m -3.2778575 m 59.347714 MeV 5.7183187 keV 3.385876 cm 5.3807863 m World hIoni - 48 28.608992 cm -1.7014518 m -3.279429 m 59.346138 MeV 254.58524 eV 2.5490641 mm 5.3833354 m World hIoni - 49 28.916798 cm -1.7168091 m -3.2916981 m 59.337274 MeV 3.2152264 keV 1.9896055 cm 5.4032314 m World hIoni - 50 29.225674 cm -1.7322924 m -3.3040824 m 59.329939 MeV 5.5310383 keV 2.0065942 cm 5.4232974 m World hIoni - 51 30.063201 cm -1.7744284 m -3.3378168 m 59.31459 MeV 13.464438 keV 5.4622378 cm 5.4779197 m World hIoni - 52 32.467677 cm -1.8962773 m -3.4354854 m 59.092211 MeV 35.042265 keV 15.80018 cm 5.6359215 m World hIoni - 53 32.948515 cm -1.9200548 m -3.4545726 m 59.082323 MeV 8.8635349 keV 3.0867629 cm 5.6667892 m World hIoni - 54 33.602505 cm -1.9524181 m -3.4805241 m 59.071435 MeV 8.4382656 keV 4.1995618 cm 5.7087848 m World hIoni - 55 33.754377 cm -1.9599011 m -3.4865552 m 59.06649 MeV 3.7604748 keV 9.7301814 mm 5.718515 m World hIoni - 56 35.013755 cm -2.0221483 m -3.5367608 m 59.041089 MeV 19.921864 keV 8.095634 cm 5.7994713 m World hIoni - 57 35.62486 cm -2.0523367 m -3.5610971 m 59.0336 MeV 6.0389276 keV 3.9254845 cm 5.8387261 m World hIoni - 58 36.365374 cm -2.0887 m -3.5904821 m 59.023203 MeV 9.2354517 keV 4.7335026 cm 5.8860612 m World hIoni - 59 36.557149 cm -2.0980962 m -3.5980712 m 59.02003 MeV 1.5132561 keV 1.2229533 cm 5.8982907 m World hIoni - 60 37.643971 cm -2.1514458 m -3.6412471 m 59.004063 MeV 13.206673 keV 6.9487096 cm 5.9677778 m World hIoni - 61 38.096794 cm -2.1736862 m -3.6592377 m 58.99733 MeV 6.7334196 keV 2.8962111 cm 5.9967399 m World hIoni - 62 38.42838 cm -2.1899976 m -3.6724046 m 58.992799 MeV 3.1363584 keV 2.1223183 cm 6.0179631 m World hIoni - 63 38.620556 cm -2.1994731 m -3.6800547 m 58.986513 MeV 3.1461177 keV 1.2328926 cm 6.030292 m World hIoni - 64 39.155312 cm -2.2258794 m -3.7013365 m 58.978145 MeV 6.441913 keV 3.4333716 cm 6.0646257 m World hIoni - 65 39.845385 cm -2.2598158 m -3.7286581 m 58.967969 MeV 8.2844699 keV 4.411086 cm 6.1087366 m World hIoni - 66 40.576236 cm -2.2957993 m -3.7575996 m 58.957899 MeV 8.9966783 keV 4.6753067 cm 6.1554897 m World hIoni - 67 40.717633 cm -2.302761 m -3.7632123 m 58.93442 MeV 1.3994831 keV 9.0535349 mm 6.1645432 m World hIoni - 68 40.745427 cm -2.3041216 m -3.7643109 m 58.927586 MeV 312.56143 eV 1.770694 mm 6.1663139 m World hIoni - 69 42.07109 cm -2.3694411 m -3.817309 m 58.156481 MeV 20.451676 keV 8.5154103 cm 6.251468 m World hIoni - 70 42.377305 cm -2.3847388 m -3.8297766 m 58.127852 MeV 3.2122437 keV 1.9970924 cm 6.2714389 m World hIoni - 71 42.865736 cm -2.4091313 m -3.849696 m 58.123216 MeV 2.9989687 keV 3.1868997 cm 6.3033079 m World hIoni - 72 45.316558 cm -2.530431 m -3.9488035 m 58.089722 MeV 32.403798 keV 15.854551 cm 6.4618534 m World hIoni - 73 45.956124 cm -2.5619103 m -3.9745656 m 58.077882 MeV 9.1435821 keV 4.1176901 cm 6.5030303 m World hIoni - 74 46.010737 cm -2.564602 m -3.9767688 m 58.076761 MeV 1.1212224 keV 3.5209888 mm 6.5065513 m World hIoni - 75 48.875885 cm -2.7058098 m -4.0923653 m 58.030627 MeV 38.068629 keV 18.472488 cm 6.6912762 m World hIoni - 76 49.196677 cm -2.7216301 m -4.1054519 m 58.023833 MeV 5.5488577 keV 2.0780579 cm 6.7120568 m World hIoni - 77 49.515472 cm -2.738 m -4.1189557 m 58.018165 MeV 4.5116497 keV 2.1459403 cm 6.7335162 m World hIoni - 78 49.561509 cm -2.7404513 m -4.1209673 m 58.011265 MeV 1.722503 keV 3.2042996 mm 6.7367205 m World hIoni - 79 49.623807 cm -2.7437751 m -4.1236967 m 58.009459 MeV 503.18721 eV 4.3456787 mm 6.7410662 m World hIoni - 80 51.305888 cm -2.833412 m -4.1973428 m 57.985947 MeV 22.179518 keV 11.722421 cm 6.8582904 m World hIoni - 81 51.662005 cm -2.8521911 m -4.2127579 m 57.980511 MeV 4.3352759 keV 2.455518 cm 6.8828456 m World hIoni - 82 52.987436 cm -2.9225501 m -4.2704919 m 57.959824 MeV 19.100797 keV 9.1974534 cm 6.9748201 m World hIoni - 83 53.821418 cm -2.9662882 m -4.3064047 m 57.81706 MeV 13.307654 keV 5.7204103 cm 7.0320242 m World hIoni - 84 54.296053 cm -2.9916211 m -4.3273121 m 57.792746 MeV 5.0144936 keV 3.3187342 cm 7.0652115 m World hIoni - 85 54.540942 cm -3.0046361 m -4.3380798 m 57.789352 MeV 3.394401 keV 1.706845 cm 7.08228 m World hIoni - 86 54.626289 cm -3.0091694 m -4.3418293 m 57.787556 MeV 736.65873 eV 5.9445719 mm 7.0882246 m World hIoni - 87 56.024993 cm -3.0834481 m -4.4032655 m 57.768965 MeV 17.344222 keV 9.7403238 cm 7.1856278 m World hIoni - 88 56.209379 cm -3.0933021 m -4.4114021 m 57.763872 MeV 3.5623019 keV 1.291146 cm 7.1985393 m World hIoni - 89 56.559429 cm -3.1119003 m -4.4267797 m 57.754842 MeV 4.5963376 keV 2.438474 cm 7.222924 m World hIoni - 90 56.842679 cm -3.1268751 m -4.4391707 m 57.693756 MeV 3.8316881 keV 1.9641949 cm 7.2425659 m World hIoni - 91 56.946327 cm -3.1323763 m -4.4437401 m 57.689583 MeV 1.9416321 keV 7.2260937 mm 7.249792 m World hIoni - 92 56.990616 cm -3.1347344 m -4.4456986 m 57.687192 MeV 715.76105 eV 3.0971808 mm 7.2528892 m World hIoni - 93 57.139867 cm -3.1426696 m -4.4522905 m 57.682978 MeV 2.9019946 keV 1.0423434 cm 7.2633127 m World hIoni - 94 57.855606 cm -3.1806983 m -4.4839593 m 57.670393 MeV 12.585116 keV 5.00033 cm 7.313316 m World hIoni - 95 58.440896 cm -3.2118625 m -4.5098363 m 57.65153 MeV 10.402062 keV 4.092773 cm 7.3542437 m World hIoni - 96 59.129324 cm -3.2488235 m -4.5405266 m 57.635694 MeV 9.8013731 keV 4.8532541 cm 7.4027762 m World hIoni - 97 59.471342 cm -3.2672722 m -4.5558501 m 57.630096 MeV 3.7198125 keV 2.4225244 cm 7.4270015 m World hIoni - 98 59.754373 cm -3.2826219 m -4.5686034 m 57.624458 MeV 4.1021115 keV 2.0156194 cm 7.4471577 m World hIoni - 99 61.426681 cm -3.3731859 m -4.6439432 m 57.596786 MeV 26.459733 keV 11.898579 cm 7.5661434 m World hIoni - 100 62.260284 cm -3.4181974 m -4.6813018 m 57.585257 MeV 11.528845 keV 5.9086353 cm 7.6252298 m World hIoni - 101 63.295947 cm -3.4738077 m -4.7274311 m 57.557604 MeV 15.504872 keV 7.2990998 cm 7.6982208 m World hIoni - 102 64.04897 cm -3.5144652 m -4.761234 m 57.544251 MeV 10.600177 keV 5.3407639 cm 7.7516284 m World hIoni - 103 65.882593 cm -3.6138395 m -4.8438453 m 57.514383 MeV 27.652048 keV 13.052259 cm 7.882151 m World hIoni - 104 66.867244 cm -3.6682857 m -4.8891415 m 57.496248 MeV 16.323312 keV 7.1505877 cm 7.9536569 m World hIoni - 105 68.294184 cm -3.7472108 m -4.9551737 m 57.476588 MeV 18.484112 keV 10.388974 cm 8.0575466 m World hIoni - 106 68.372812 cm -3.7515603 m -4.9588164 m 57.473927 MeV 1.5319486 keV 5.7276352 mm 8.0632743 m World hIoni - 107 68.887869 cm -3.7803895 m -4.9829675 m 57.465156 MeV 7.0595751 keV 3.795952 cm 8.1012338 m World hIoni - 108 68.981099 cm -3.7856296 m -4.9873593 m 57.463032 MeV 2.1242573 keV 6.9004706 mm 8.1081343 m World hIoni - 109 69.31549 cm -3.8043952 m -5.0030897 m 57.45023 MeV 7.8807146 keV 2.4713793 cm 8.1328481 m World hIoni - 110 72.696953 cm -3.9946675 m -5.1628252 m 57.395102 MeV 48.83479 keV 25.072622 cm 8.3835743 m World hIoni - 111 73.457411 cm -4.0380095 m -5.1994895 m 57.383951 MeV 9.9118311 keV 5.7276876 cm 8.4408512 m World hIoni - 112 73.906992 cm -4.0640798 m -5.2213654 m 57.376692 MeV 7.2590851 keV 3.4328227 cm 8.4751794 m World hIoni - 113 74.506205 cm -4.0992086 m -5.2508759 m 57.367682 MeV 9.0100687 keV 4.6268897 cm 8.5214483 m World hIoni - 114 74.745313 cm -4.1132309 m -5.2626751 m 57.351046 MeV 4.5492483 keV 1.8481438 cm 8.5399297 m World hIoni - 115 74.895434 cm -4.1219174 m -5.2699939 m 57.34552 MeV 3.6416152 keV 1.1457479 cm 8.5513872 m World hIoni - 116 75.185943 cm -4.1387374 m -5.2841725 m 57.339725 MeV 4.3122093 keV 2.218978 cm 8.573577 m World hIoni - 117 76.88728 cm -4.2373858 m -5.3673097 m 57.308956 MeV 29.663839 keV 13.012608 cm 8.703703 m World hIoni - 118 77.298319 cm -4.2613245 m -5.3875111 m 57.301288 MeV 5.4644981 keV 3.159202 cm 8.7352951 m World hIoni - 119 79.073615 cm -4.3643618 m -5.4743317 m 57.267912 MeV 30.280933 keV 13.590364 cm 8.8711987 m World hIoni - 120 79.078237 cm -4.3646215 m -5.4745473 m 57.263036 MeV 36.396566 eV 340.75494 um 8.8715395 m World hIoni - 121 81.842765 cm -4.5203071 m -5.6036646 m 57.219219 MeV 42.647443 keV 20.414151 cm 9.075681 m World hIoni - 122 83.071961 cm -4.5883924 m -5.6599435 m 57.190849 MeV 19.219166 keV 8.9185436 cm 9.1648664 m World hIoni - 123 83.983926 cm -4.6392623 m -5.7020187 m 57.174017 MeV 14.055677 keV 6.6642618 cm 9.231509 m World hIoni - 124 84.099803 cm -4.6457435 m -5.7073914 m 57.171167 MeV 609.31447 eV 8.4978942 mm 9.2400069 m World hIoni - 125 84.194288 cm -4.6510316 m -5.7117785 m 57.168242 MeV 1.4619395 keV 6.9356492 mm 9.2469426 m World hIoni - 126 84.401893 cm -4.6626377 m -5.7214057 m 57.163602 MeV 2.3819753 keV 1.5221534 cm 9.2621641 m World hIoni - 127 84.414856 cm -4.6633562 m -5.7220021 m 57.160608 MeV 163.30414 eV 942.71816 um 9.2631068 m World hIoni - 128 85.089177 cm -4.7006509 m -5.7529445 m 57.149842 MeV 9.3457271 keV 4.8926505 cm 9.3120333 m World hIoni - 129 85.61107 cm -4.7294418 m -5.7769537 m 57.132081 MeV 7.4434074 keV 3.7849655 cm 9.349883 m World hIoni - 130 86.668555 cm -4.7878509 m -5.8257077 m 57.113787 MeV 16.262386 keV 7.681414 cm 9.4266971 m World hIoni - 131 87.56287 cm -4.838308 m -5.8676996 m 57.098102 MeV 14.652668 keV 6.6251279 cm 9.4929484 m World hIoni - 132 87.644373 cm -4.8428694 m -5.8714997 m 57.095989 MeV 1.0492757 keV 5.9925974 mm 9.498941 m World hIoni - 133 87.974403 cm -4.8613655 m -5.8869052 m 57.087629 MeV 6.1144057 keV 2.4296603 cm 9.5232376 m World hIoni - 134 88.410069 cm -4.8860183 m -5.9074572 m 56.999286 MeV 6.7700854 keV 3.2390216 cm 9.5556278 m World hIoni - 135 89.001902 cm -4.920149 m -5.9359804 m 56.990679 MeV 8.6069555 keV 4.4872129 cm 9.6004999 m OutOfWorld Transportation -Track (trackID 3, parentID 1) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.147037983695(mm),-1.2558161191263(mm),78.915951437935(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.458413(mm),-0.46480583(mm),79.390029(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.35845(mm),-0.27238038(mm),79.055001(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.125086(mm),-0.085565633(mm),78.743495(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.026749(mm),-2.3544305(mm),78.584508(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.035276(mm),3.2806603(mm),79.111985(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.554793(mm),1.6749784(mm),78.491399(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.468275(mm),-0.77089707(mm),79.38829(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.976038(mm),-2.735566(mm),78.593449(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.94644(mm),-2.8040904(mm),78.422341(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.718294(mm),-2.9392491(mm),78.991551(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.870591(mm),-0.7280853(mm),78.78837(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.483039(mm),-0.86069538(mm),79.209359(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.342399(mm),-2.9782124(mm),79.234158(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.814418(mm),-0.59846371(mm),78.974601(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.474349(mm),0.23446644(mm),79.387219(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.046413(mm),-2.1950087(mm),78.404713(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.765047(mm),0.22642209(mm),78.630653(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.131068(mm),3.2925098(mm),78.918767(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.764332(mm),1.9048842(mm),78.630779(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.376258(mm),-1.9228635(mm),78.52288(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.137057(mm),-1.8470058(mm),78.565057(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.177326(mm),0.33811442(mm),78.38163(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.826692(mm),0.9425592(mm),78.267129(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.207633(mm),2.5344854(mm),78.72894(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.364644(mm),-0.16994359(mm),79.053909(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.033405(mm),1.7687435(mm),78.407007(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.79074(mm),-2.2635168(mm),78.626122(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.701133(mm),1.6513966(mm),78.994577(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.208181(mm),-2.5304837(mm),78.376189(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.48294(mm),3.0150805(mm),78.680396(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.348525(mm),-0.47330834(mm),79.233078(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.121058(mm),2.8448255(mm),78.567878(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.090459(mm),0.18313454(mm),79.102255(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.394709(mm),-2.9763265(mm),79.048607(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.931805(mm),-1.2372351(mm),78.424922(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.901997(mm),0.49756846(mm),78.959159(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.878054(mm),-1.026052(mm),79.139708(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.651427(mm),0.93050023(mm),78.827014(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.748396(mm),1.4834944(mm),78.809916(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.51591(mm),-3.495805(mm),79.027236(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.533825(mm),-0.56428285(mm),78.671423(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.301816(mm),0.15316653(mm),78.183352(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.829124(mm),-2.1266722(mm),79.148335(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.387381(mm),1.2583421(mm),78.168265(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.01151(mm),0.60146814(mm),79.46883(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.979508(mm),0.90509059(mm),78.240184(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.752681(mm),-2.6864066(mm),78.456506(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.442631(mm),-1.0505459(mm),78.86383(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.635226(mm),0.14811118(mm),79.006198(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.401892(mm),-3.0991319(mm),79.047341(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.260031(mm),-1.086594(mm),78.896028(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.958453(mm),0.45342213(mm),78.420223(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.171976(mm),-1.7131919(mm),78.382573(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.973706(mm),-1.5851146(mm),78.241207(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.851805(mm),0.21667007(mm),79.144336(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.697926(mm),-2.1709876(mm),78.642488(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.808807(mm),2.8492373(mm),78.44661(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.875174(mm),2.2824986(mm),78.963888(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.960477(mm),-2.4387954(mm),78.596193(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.158876(mm),2.5431435(mm),78.737537(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.699441(mm),1.5153594(mm),79.347529(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.58242(mm),-0.94521056(mm),79.015509(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.274287(mm),-2.8469816(mm),78.717187(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.14602(mm),1.8769766(mm),78.210823(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.376286(mm),0.27317653(mm),78.875529(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.71049(mm),-2.9323624(mm),78.640273(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.72569(mm),2.8634377(mm),78.990246(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.807144(mm),0.64469258(mm),78.270576(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.06607(mm),0.64526843(mm),78.930228(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.305607(mm),2.7384074(mm),78.711664(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.645(mm),-3.0567897(mm),79.004474(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.000776(mm),-3.3706878(mm),78.41276(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.924726(mm),-1.2037493(mm),79.131478(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.779661(mm),1.6249387(mm),79.333384(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 + 0 -6.45 mm 1.67 mm 5.4 cm 9.11 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.5039162 mm 1.8020155 mm 5.4228322 cm 6.3100295 MeV 2.7979921 MeV 251.18007 um 251.18007 um Target hIoni + 2 -6.4465365 mm 1.8633305 mm 5.439096 cm 3.5379082 MeV 2.7721212 MeV 188.23711 um 439.41718 um Target hIoni + 3 -6.4593086 mm 1.9028564 mm 5.4467298 cm 511.42641 keV 3.0264818 MeV 105.35891 um 544.77609 um Target hIoni + 4 -6.4623124 mm 1.9038162 mm 5.4469095 cm 41.002517 keV 470.42389 keV 4.9658725 um 549.74196 um Target hIoni + 5 -6.4623526 mm 1.9038446 mm 5.4469134 cm 0 eV 41.002517 keV 226.78317 nm 549.96875 um Target hIoni + 6 -6.4623526 mm 1.9038446 mm 5.4469134 cm 0 eV 0 eV 0 fm 549.96875 um Target Scintillation +Track (trackID 7, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = pi+, Track ID = 5, Parent ID = 1 +* G4Track Information: Particle = mu+, Track ID = 24, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.46 mm 1.56 mm 5.37 cm 24.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.9815833 mm 1.5658638 mm 5.4219287 cm 20.147367 MeV 3.9790766 MeV 714.12722 um 714.12722 um Target hIoni - 2 -7.3218389 mm 1.4671242 mm 5.4655243 cm 17.617125 MeV 2.530242 MeV 567.4269 um 1.2815541 mm Target hIoni - 3 -7.6328766 mm 1.3675755 mm 5.5003825 cm 14.291801 MeV 3.3253242 MeV 482.87209 um 1.7644262 mm Target hIoni - 4 -7.9241644 mm 1.2432799 mm 5.5210052 cm 11.782559 MeV 2.5092417 MeV 382.69358 um 2.1471198 mm Target hIoni - 5 -8.1421517 mm 1.1779067 mm 5.5421895 cm 9.3103781 MeV 2.4721811 MeV 315.52447 um 2.4626442 mm Target hIoni - 6 -8.3088387 mm 1.0805247 mm 5.5582565 cm 6.4764862 MeV 2.8338919 MeV 255.83236 um 2.7184766 mm Target hIoni - 7 -8.4196631 mm 954.45293 um 5.5664733 cm 3.8527475 MeV 2.6237387 MeV 192.04551 um 2.9105221 mm Target hIoni - 8 -8.4253034 mm 907.20116 um 5.5735878 cm 603.33028 keV 3.2494172 MeV 118.6392 um 3.0291613 mm Target hIoni - 9 -8.4246114 mm 908.52532 um 5.5740278 cm 50.607352 keV 552.72293 keV 6.3265952 um 3.0354879 mm Target hIoni - 10 -8.4245872 mm 908.53542 um 5.5740363 cm 0 eV 50.607352 keV 273.97882 nm 3.0357619 mm Target hIoni - 11 -8.4245872 mm 908.53542 um 5.5740363 cm 0 eV 0 eV 0 fm 3.0357619 mm Target Scintillation -Track (trackID 5, parentID 1) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 22, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.42 mm 909 um 5.57 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.3929468 mm 994.13164 um 5.5649737 cm 337.55862 keV 3.782254 MeV 164.73767 um 164.73767 um Target muIoni - 2 -8.3916083 mm 994.94316 um 5.5648593 cm 0 eV 337.55862 keV 3.0802521 um 167.81792 um Target muIoni - 3 -8.3916083 mm 994.94316 um 5.5648593 cm 0 eV 0 eV 0 fm 167.81792 um Target Scintillation -Track (trackID 22, parentID 5) is processed with stopping code 2 + 0 -6.46 mm 1.9 mm 5.45 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.4846884 mm 1.9016844 mm 5.4343769 cm 1.508658 MeV 2.6111546 MeV 143.92583 um 143.92583 um Target muIoni + 2 -6.4963078 mm 1.9067231 mm 5.4325564 cm 141.50923 keV 1.3671488 MeV 30.775591 um 174.70142 um Target muIoni + 3 -6.4964208 mm 1.9070447 mm 5.432527 cm 0 eV 141.50923 keV 945.83569 nm 175.64726 um Target muIoni + 4 -6.4964208 mm 1.9070447 mm 5.432527 cm 0 eV 0 eV 0 fm 175.64726 um Target Scintillation +Track (trackID 24, parentID 7) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.920547(mm),-0.69246547(mm),78.25058(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.182393(mm),-0.82781647(mm),78.557063(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3148,7 +2429,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.065926(mm),-1.3620806(mm),78.401273(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.938326(mm),0.67168605(mm),79.12908(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3157,7 +2438,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.595051(mm),-0.64021112(mm),78.836955(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.052072(mm),0.91787727(mm),79.28535(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3166,7 +2447,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.099863(mm),0.80629878(mm),79.100597(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.593621(mm),-0.17437339(mm),79.366188(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3175,7 +2456,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.993942(mm),0.22140591(mm),79.2956(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.046146(mm),-0.56288573(mm),79.462722(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3184,7 +2465,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.74924(mm),0.53910391(mm),78.457113(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.691481(mm),1.9009257(mm),79.348932(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3193,7 +2474,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.631343(mm),-1.095575(mm),78.125247(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.645742(mm),-2.314764(mm),79.18067(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3202,7 +2483,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.40447(mm),2.4565598(mm),79.046886(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.663531(mm),-2.0671158(mm),78.472226(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3211,7 +2492,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.937093(mm),2.1862884(mm),78.423989(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.083295(mm),-1.0529483(mm),78.750864(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3220,7 +2501,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.543411(mm),0.21026101(mm),78.140752(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.341987(mm),1.2841094(mm),78.352596(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3229,7 +2510,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.679786(mm),-1.3219122(mm),78.998341(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.071122(mm),0.59478638(mm),78.576684(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3238,7 +2519,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.50453(mm),-0.12820525(mm),79.20557(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.077855(mm),-2.6016744(mm),79.280804(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3247,7 +2528,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.80845(mm),-0.72613718(mm),79.328308(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.242138(mm),1.8045639(mm),78.899183(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3256,7 +2537,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.208705(mm),-0.54203414(mm),78.376097(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.277067(mm),-1.5091775(mm),79.245678(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3265,7 +2546,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.495011(mm),0.13281586(mm),78.678267(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.715441(mm),-2.4956865(mm),78.463073(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3274,7 +2555,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.180196(mm),-1.0579294(mm),78.381124(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.343227(mm),-0.65664458(mm),78.881358(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3283,7 +2564,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.026086(mm),-0.6660539(mm),79.113606(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.352131(mm),-3.0253851(mm),78.350807(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3292,7 +2573,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.960589(mm),-1.4189093(mm),78.7725(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.735799(mm),-1.4422479(mm),78.63581(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3301,7 +2582,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.757633(mm),-1.0210695(mm),79.337268(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.714815(mm),2.5776841(mm),79.168491(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3310,7 +2591,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.839291(mm),-2.9292426(mm),78.441235(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.67849(mm),-3.4127834(mm),78.998569(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3319,7 +2600,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.076842(mm),2.2870232(mm),78.223021(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.818652(mm),-0.87026135(mm),79.326509(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3328,7 +2609,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.545361(mm),0.35128752(mm),78.845716(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.85185(mm),3.693969(mm),78.791674(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3337,7 +2618,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.169536(mm),-0.84945035(mm),78.55933(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.015636(mm),-0.74290484(mm),79.115448(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3346,7 +2627,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.916801(mm),-0.61922876(mm),78.603894(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.365133(mm),3.5731271(mm),79.053822(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3355,7 +2636,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.056184(mm),2.1327536(mm),78.579318(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.707577(mm),-3.3709494(mm),78.640786(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3364,7 +2645,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.93344(mm),2.3593605(mm),78.777288(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.907665(mm),-2.102109(mm),79.310813(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3373,7 +2654,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.639428(mm),3.9023681(mm),78.82913(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.582914(mm),1.1819962(mm),79.191749(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3382,7 +2663,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.385422(mm),1.5204755(mm),79.226572(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.284701(mm),-0.24247142(mm),78.891678(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3391,7 +2672,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.659539(mm),-0.048245197(mm),78.47293(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.716143(mm),1.0561736(mm),78.639276(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3400,7 +2681,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.34875(mm),-3.4194272(mm),78.880384(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.866117(mm),-0.59928673(mm),78.612831(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3409,7 +2690,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.32925(mm),-1.9451955(mm),78.178515(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.222014(mm),1.3042584(mm),78.37375(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3418,7 +2699,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.739725(mm),-2.6123454(mm),78.458791(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.30635(mm),-3.2338031(mm),78.535206(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3427,7 +2708,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.571557(mm),1.4965465(mm),79.193751(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.224335(mm),-0.92511716(mm),79.078649(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3436,7 +2717,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.766505(mm),-0.36881461(mm),79.159377(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.498287(mm),-0.48874053(mm),78.148709(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3445,7 +2726,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.744709(mm),0.090693982(mm),78.634239(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.718191(mm),-1.584334(mm),78.815242(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3454,7 +2735,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.105041(mm),-3.3009378(mm),78.923357(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.991613(mm),3.2916759(mm),78.414376(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3463,7 +2744,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.995473(mm),3.6595591(mm),78.766349(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.216696(mm),-2.4946658(mm),78.727342(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3472,7 +2753,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.015715(mm),-3.5341038(mm),78.939107(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.023843(mm),0.078166303(mm),79.466655(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3481,7 +2762,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.328808(mm),0.43399033(mm),78.354919(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.137898(mm),-1.7247685(mm),78.917563(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3490,7 +2771,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.714488(mm),-3.2997287(mm),78.463241(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.747914(mm),-2.8510699(mm),78.986328(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3499,7 +2780,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.293161(mm),0.72057361(mm),78.184878(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.272057(mm),-0.66171399(mm),78.364926(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3508,7 +2789,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.918705(mm),-2.4611475(mm),78.779886(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.369099(mm),0.79985804(mm),79.053123(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3517,7 +2798,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.108908(mm),-1.4051288(mm),78.570021(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.644078(mm),2.5103695(mm),79.004637(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3526,7 +2807,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.731301(mm),0.86437343(mm),78.460276(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.974844(mm),3.8202993(mm),78.59366(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3535,7 +2816,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.101513(mm),2.1392223(mm),78.571325(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.390432(mm),3.5911626(mm),78.520381(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3544,7 +2825,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.828568(mm),1.5656854(mm),79.32476(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.616889(mm),2.2182969(mm),79.362085(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3553,7 +2834,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.704148(mm),1.4852526(mm),79.170372(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.400328(mm),-2.5068172(mm),78.518636(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3562,7 +2843,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.120884(mm),-0.064921161(mm),79.449544(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.833014(mm),-3.2101193(mm),78.618668(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3571,7 +2852,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.976169(mm),0.33917686(mm),78.240772(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.044518(mm),-2.9885936(mm),78.405047(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3580,7 +2861,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.488656(mm),-3.6552344(mm),78.855715(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.503569(mm),2.01489(mm),78.500432(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3589,7 +2870,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.566347(mm),-1.084951(mm),78.665689(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.745787(mm),0.35744711(mm),78.810376(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3598,7 +2879,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.022579(mm),-0.563423(mm),78.937897(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.291481(mm),0.42610007(mm),78.714155(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3607,7 +2888,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.37576(mm),1.2101063(mm),79.051948(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.065349(mm),0.40603796(mm),78.930355(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3616,7 +2897,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.805666(mm),-2.2807951(mm),78.623491(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.087577(mm),1.8600312(mm),79.27909(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3625,7 +2906,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.684535(mm),2.6225788(mm),78.468522(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.738798(mm),-0.83227196(mm),78.282627(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3634,7 +2915,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.216736(mm),0.38075602(mm),78.198354(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.363925(mm),-0.82007041(mm),78.701381(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3643,7 +2924,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.765487(mm),0.43658308(mm),78.277921(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.562911(mm),-1.9464615(mm),79.371603(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3652,7 +2933,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.562974(mm),0.83782393(mm),78.842611(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.713853(mm),2.4321533(mm),78.63968(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3661,7 +2942,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.558104(mm),1.3073211(mm),79.019796(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.588478(mm),2.1711439(mm),78.838114(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3670,7 +2951,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.31504(mm),-2.197538(mm),79.062655(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.385105(mm),2.5114984(mm),78.873974(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3679,7 +2960,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.592718(mm),2.0967828(mm),78.661039(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.818136(mm),0.81870824(mm),79.3266(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3688,7 +2969,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.576507(mm),1.0532763(mm),78.48757(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.541167(mm),-1.0714136(mm),79.022783(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3697,7 +2978,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.842761(mm),-0.56277907(mm),78.793277(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.871649(mm),3.7056338(mm),78.788183(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3706,7 +2987,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.233112(mm),1.0260066(mm),79.429755(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.132795(mm),-1.1508605(mm),78.742136(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3715,7 +2996,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.498829(mm),-0.98552512(mm),78.853921(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.876947(mm),-2.4526734(mm),79.31623(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3724,7 +3005,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.779215(mm),-2.8698298(mm),78.451828(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.480968(mm),-2.6708914(mm),78.680744(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3733,7 +3014,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.83006(mm),1.3912552(mm),78.971843(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.588101(mm),2.0726011(mm),79.190834(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3742,7 +3023,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.029451(mm),-3.8855392(mm),78.760358(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.466876(mm),1.3624431(mm),78.506901(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3751,7 +3032,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-9.9902245(mm),0.0095085743(mm),79.472583(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.314115(mm),2.8455636(mm),78.710164(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3760,7 +3041,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.719009(mm),-1.0267966(mm),78.638771(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.168331(mm),-3.8079917(mm),78.912197(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3769,7 +3050,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.134942(mm),-0.78108252(mm),78.56543(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.838134(mm),-2.2674255(mm),78.617766(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3778,7 +3059,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.224578(mm),1.7702499(mm),78.373298(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.336546(mm),-1.518029(mm),78.882536(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3787,7 +3068,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.485028(mm),-2.3655478(mm),78.680028(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.397445(mm),-0.17438823(mm),78.871798(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3796,7 +3077,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.996761(mm),-0.38848825(mm),78.942449(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.779913(mm),0.55597323(mm),78.275378(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3805,7 +3086,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.512923(mm),-3.1778202(mm),79.027763(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.006431(mm),1.1131586(mm),78.940744(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3814,7 +3095,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.414285(mm),3.9332758(mm),78.692502(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.974148(mm),2.256733(mm),78.77011(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3823,7 +3104,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.566157(mm),-0.74585187(mm),78.489396(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.979509(mm),-0.76030873(mm),78.41651(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3832,7 +3113,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.688826(mm),2.7401964(mm),78.996746(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.84168(mm),-0.61152417(mm),78.440813(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3841,7 +3122,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.694018(mm),-0.17981743(mm),78.995831(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.104133(mm),-3.0446871(mm),78.74719(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3850,7 +3131,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.196629(mm),-2.2066253(mm),79.083534(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.7761(mm),-0.30070161(mm),78.981358(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3859,7 +3140,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.134022(mm),0.98934495(mm),79.094574(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.18797(mm),-3.0459916(mm),78.732407(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3868,7 +3149,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.049624(mm),-1.9792497(mm),78.22782(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.616713(mm),0.59627991(mm),79.362116(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3877,7 +3158,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.953647(mm),2.1899899(mm),78.421071(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.933304(mm),-3.1307079(mm),78.424658(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3886,7 +3167,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.907437(mm),-1.1863804(mm),79.134527(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.207522(mm),-0.67705803(mm),78.376305(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3895,7 +3176,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.444886(mm),1.9610317(mm),78.863433(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.247898(mm),0.98088694(mm),78.898167(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3904,7 +3185,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.204204(mm),-3.8659952(mm),78.729544(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.132343(mm),0.48926782(mm),78.565889(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3913,7 +3194,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.335198(mm),-0.20662363(mm),79.059101(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.568448(mm),-2.0621088(mm),78.841645(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3922,7 +3203,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.037832(mm),2.2765695(mm),78.406226(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.538977(mm),2.6076488(mm),78.494188(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3931,7 +3212,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.777809(mm),-1.2627283(mm),78.628403(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.473544(mm),-2.2215854(mm),78.682053(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3940,7 +3221,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.380894(mm),1.3234619(mm),78.874716(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.206172(mm),-2.8906598(mm),79.081852(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3949,7 +3230,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.190621(mm),-3.3395385(mm),78.908267(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.485131(mm),-0.44630394(mm),79.385317(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3958,7 +3239,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.190873(mm),-0.068032168(mm),78.555568(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.801751(mm),0.50139394(mm),78.271527(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3967,7 +3248,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.438099(mm),-0.33445334(mm),79.39361(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.041798(mm),0.98340319(mm),79.287162(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3976,7 +3257,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.492756(mm),0.30874021(mm),78.149684(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.828536(mm),0.90712373(mm),78.266804(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3985,7 +3266,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.321588(mm),-1.3634754(mm),79.237827(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.825139(mm),3.4977067(mm),78.796384(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3994,7 +3275,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.037561(mm),-1.1908713(mm),79.111582(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.570999(mm),-3.159933(mm),79.017523(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4003,7 +3284,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.525922(mm),-2.5145236(mm),78.320163(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.102919(mm),-1.5826951(mm),78.39475(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4012,7 +3293,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.054814(mm),1.519198(mm),79.284867(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.122841(mm),0.96022053(mm),78.743891(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4021,7 +3302,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.165556(mm),-2.6194761(mm),78.383705(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.095354(mm),0.00869789(mm),78.748738(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4030,7 +3311,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.889425(mm),-2.7587983(mm),79.137702(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.388761(mm),2.8966404(mm),78.344348(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4039,7 +3320,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.577177(mm),3.0559795(mm),79.016433(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.969937(mm),-3.443675(mm),78.947179(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4048,7 +3329,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.715488(mm),-0.010849669(mm),78.11041(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.209768(mm),-2.7469154(mm),79.081217(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4057,7 +3338,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.681071(mm),1.3928492(mm),78.64546(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.191109(mm),-1.8469149(mm),79.260834(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4066,7 +3347,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.509288(mm),-0.93396623(mm),78.67575(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.252584(mm),-1.537774(mm),78.721014(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4075,7 +3356,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.888624(mm),1.8176025(mm),78.256209(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.646783(mm),3.8874467(mm),78.651506(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4084,7 +3365,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.034741(mm),-1.3824718(mm),79.112079(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.881758(mm),2.1806858(mm),78.610074(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4093,7 +3374,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.879512(mm),1.9481237(mm),79.315777(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.551819(mm),2.7185584(mm),79.020905(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4102,7 +3383,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.70458(mm),-3.647519(mm),78.817642(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.777931(mm),1.2147061(mm),79.333689(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4111,7 +3392,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.032904(mm),2.3999475(mm),78.583422(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.591752(mm),1.5534183(mm),78.484882(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4120,7 +3401,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.068367(mm),-2.0758287(mm),78.753496(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.151872(mm),0.90288449(mm),78.562445(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4129,7 +3410,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.984264(mm),3.0111605(mm),78.591999(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.821689(mm),-2.924441(mm),78.973319(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4138,7 +3419,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.988353(mm),0.97724072(mm),79.120259(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.695592(mm),-1.9942979(mm),78.290246(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4147,7 +3428,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.212225(mm),-0.98938904(mm),79.257111(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.182815(mm),-1.4534926(mm),78.380662(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4156,7 +3437,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.358916(mm),-3.6690132(mm),78.525938(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.087881(mm),1.6656301(mm),79.102709(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4165,7 +3446,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.063384(mm),3.6192227(mm),78.930702(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.819995(mm),0.094276231(mm),78.26831(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4174,7 +3455,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.556897(mm),-0.57843018(mm),78.667355(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.91459(mm),0.13325537(mm),79.309592(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4183,196 +3464,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.234073(mm),1.8089057(mm),78.724278(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.408612(mm),-2.6923878(mm),78.693502(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.789589(mm),3.2536635(mm),78.449998(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.668551(mm),1.8441341(mm),78.471341(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.77624(mm),-0.26856826(mm),78.276025(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.617196(mm),2.1294489(mm),79.009377(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.901775(mm),2.3445054(mm),78.25389(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.910656(mm),0.46066403(mm),78.252324(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.132711(mm),0.93544122(mm),79.271132(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.182452(mm),0.025873095(mm),79.438688(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.318769(mm),-1.3427281(mm),79.238325(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.614613(mm),-1.1744308(mm),78.657178(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.690663(mm),2.5999401(mm),79.17275(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.927687(mm),1.2708019(mm),78.778302(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.291215(mm),-1.5468771(mm),79.066856(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.245673(mm),-3.7665782(mm),78.722232(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.708326(mm),-0.97951781(mm),79.345962(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.020428(mm),2.0216269(mm),78.232968(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.405779(mm),-2.2531138(mm),78.341347(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.374563(mm),-0.51190104(mm),78.523179(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.260519(mm),1.2577842(mm),79.424923(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.714722(mm),1.8957117(mm),78.463199(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.878233(mm),-1.3128449(mm),78.434368(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4382,40 +3474,33 @@ Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.46 cm 1.89 mm 7.22 cm 37.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.4263388 cm 2.2012604 mm 7.3372019 cm 32.115907 MeV 5.1492954 MeV 1.3040496 mm 1.3040496 mm Target hIoni - 2 -1.3921842 cm 2.3335366 mm 7.4352229 cm 27.868652 MeV 4.2472545 MeV 1.0550639 mm 2.3591135 mm Target hIoni - 3 -1.3592553 cm 2.4210779 mm 7.5140805 cm 23.582621 MeV 4.2860313 MeV 866.5025 um 3.225616 mm Target hIoni - 4 -1.3311083 cm 2.4324408 mm 7.5767092 cm 20.011142 MeV 3.5714793 MeV 693.11995 um 3.918736 mm Target hIoni - 5 -1.3243367 cm 2.3743791 mm 7.6316968 cm 16.537353 MeV 3.4737887 MeV 562.69786 um 4.4814338 mm Target hIoni - 6 -1.3171473 cm 2.3659972 mm 7.6754937 cm 13.523807 MeV 3.0135461 MeV 448.9521 um 4.9303859 mm Target hIoni - 7 -1.3106413 cm 2.3725094 mm 7.7105566 cm 10.58457 MeV 2.9392365 MeV 361.37345 um 5.2917594 mm Target hIoni - 8 -1.3121374 cm 2.3753529 mm 7.7386432 cm 7.5383536 MeV 3.0462168 MeV 285.88153 um 5.5776409 mm Target hIoni - 9 -1.3133163 cm 2.3432829 mm 7.7594586 cm 4.7803854 MeV 2.7579683 MeV 215.85429 um 5.7934952 mm Target hIoni - 10 -1.3165772 cm 2.3553449 mm 7.7734788 cm 1.5653643 MeV 3.2150211 MeV 149.96525 um 5.9434604 mm Target hIoni - 11 -1.3165467 cm 2.3442572 mm 7.774951 cm 215.31483 keV 1.3500495 MeV 27.590787 um 5.9710512 mm Target hIoni - 12 -1.3165163 cm 2.3434198 mm 7.7749601 cm 68.581399 keV 146.73343 keV 1.4764798 um 5.9725277 mm Target hIoni - 13 -1.3165031 cm 2.3433542 mm 7.7749619 cm 0 eV 68.581399 keV 372.74109 nm 5.9729005 mm Target hIoni - 14 -1.3165031 cm 2.3433542 mm 7.7749619 cm 0 eV 0 eV 0 fm 5.9729005 mm Target Scintillation + 0 -1.34 cm -1.33 mm 6.43 cm 14 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3330049 cm -1.6782234 mm 6.4418233 cm 11.060632 MeV 2.937419 MeV 374.4582 um 374.4582 um Target hIoni + 2 -1.3236704 cm -1.9507367 mm 6.4464058 cm 7.9075859 MeV 3.1530464 MeV 297.48639 um 671.94459 um Target hIoni + 3 -1.3209889 cm -2.1683004 mm 6.4460688 cm 5.0557955 MeV 2.8517904 MeV 224.08246 um 896.02705 um Target hIoni + 4 -1.3223132 cm -2.3162218 mm 6.4493312 cm 1.8438819 MeV 3.2119136 MeV 157.54482 um 1.0535719 mm Target hIoni + 5 -1.3220354 cm -2.3454674 mm 6.4495821 cm 141.33951 keV 1.7025424 MeV 35.853042 um 1.0894249 mm Target hIoni + 6 -1.322028 cm -2.3459166 mm 6.4495798 cm 0 eV 141.33951 keV 862.91174 nm 1.0902878 mm Target hIoni + 7 -1.322028 cm -2.3459166 mm 6.4495798 cm 0 eV 0 eV 0 fm 1.0902878 mm Target Scintillation Track (trackID 4, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 22, Parent ID = 4 +* G4Track Information: Particle = mu+, Track ID = 26, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.32 cm 2.34 mm 7.77 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.3278261 cm 2.3421364 mm 7.7761797 cm 237.01053 keV 3.8828021 MeV 164.73767 um 164.73767 um Target muIoni - 2 -1.3278735 cm 2.3415981 mm 7.7762683 cm 31.036603 keV 205.97392 keV 1.8717131 um 166.60938 um Target muIoni - 3 -1.3278767 cm 2.3416058 mm 7.776266 cm 0 eV 31.036603 keV 171.64988 nm 166.78103 um Target muIoni - 4 -1.3278767 cm 2.3416058 mm 7.776266 cm 0 eV 0 eV 0 fm 166.78103 um Target Scintillation -Track (trackID 22, parentID 4) is processed with stopping code 2 + 0 -1.32 cm -2.35 mm 6.45 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3161354 cm -2.4211512 mm 6.4436575 cm 1.3813573 MeV 2.7384554 MeV 143.92583 um 143.92583 um Target muIoni + 2 -1.3156946 cm -2.4255262 mm 6.4416724 cm 89.828904 keV 1.2915284 MeV 26.669261 um 170.59509 um Target muIoni + 3 -1.3156803 cm -2.4255822 mm 6.4416537 cm 0 eV 89.828904 keV 535.87861 nm 171.13097 um Target muIoni + 4 -1.3156803 cm -2.4255822 mm 6.4416537 cm 0 eV 0 eV 0 fm 171.13097 um Target Scintillation +Track (trackID 26, parentID 4) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.275774(mm),2.9573725(mm),79.245906(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.441663(mm),-0.81197179(mm),78.33502(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4424,7 +3509,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.43795(mm),0.64824594(mm),79.21731(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.989426(mm),-1.7015159(mm),79.296397(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4433,7 +3518,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.579461(mm),-2.7355411(mm),79.016031(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.125615(mm),1.0867642(mm),78.919729(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4442,7 +3527,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.34306(mm),2.6944184(mm),78.70506(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.792916(mm),1.5605811(mm),78.449412(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4451,7 +3536,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.733025(mm),-0.91180184(mm),79.16528(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.151586(mm),2.3128476(mm),78.915149(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4460,7 +3545,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.768069(mm),3.2793536(mm),78.982774(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.020868(mm),0.44092465(mm),78.232891(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4469,7 +3554,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.740277(mm),-1.4666528(mm),79.164001(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.585956(mm),-3.1496988(mm),79.014885(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4478,7 +3563,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.917511(mm),2.2272475(mm),79.13275(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.642921(mm),-2.6063421(mm),78.652187(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4487,7 +3572,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.22933(mm),-1.2565027(mm),78.901441(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.049759(mm),-2.1388001(mm),78.227796(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4496,7 +3581,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.092418(mm),-0.82355082(mm),78.572929(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.244033(mm),3.3895354(mm),79.075176(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4505,7 +3590,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.236832(mm),-0.42776852(mm),78.547464(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.730148(mm),0.30652374(mm),79.165787(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4514,7 +3599,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.816502(mm),1.5127991(mm),78.974234(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.406186(mm),2.1212214(mm),78.69393(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4523,7 +3608,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.689994(mm),0.72165141(mm),78.114906(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.145455(mm),-1.0433671(mm),79.445211(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4532,7 +3617,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.989726(mm),-2.5712089(mm),79.120017(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.516961(mm),-3.691126(mm),79.027051(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4541,7 +3626,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.486425(mm),1.4294417(mm),79.032435(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.425389(mm),-2.6725035(mm),79.043198(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4550,7 +3635,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.260695(mm),3.1286151(mm),78.543257(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.994833(mm),-1.2980203(mm),78.766462(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4559,7 +3644,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.513131(mm),1.0648923(mm),79.38038(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.391929(mm),0.76753865(mm),79.049098(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4568,7 +3653,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.209235(mm),1.2839528(mm),78.55233(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.287864(mm),-0.43841522(mm),78.362139(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4577,7 +3662,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.651515(mm),0.3056323(mm),78.121691(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.682779(mm),-2.6386869(mm),78.645159(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4586,7 +3671,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.820896(mm),-3.1381016(mm),78.973459(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.916545(mm),-1.450712(mm),78.251286(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4595,7 +3680,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.285572(mm),-1.9225362(mm),78.53887(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.603428(mm),-0.73395563(mm),78.835478(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4604,7 +3689,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.997174(mm),0.096842999(mm),79.118704(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.73261(mm),-2.5760468(mm),79.165353(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4613,7 +3698,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.405217(mm),-1.2197087(mm),78.16512(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.928501(mm),2.7030066(mm),79.130812(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4622,7 +3707,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.99718(mm),-2.51065(mm),79.118702(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.931754(mm),0.73967479(mm),79.306566(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4631,7 +3716,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.849374(mm),-1.6628884(mm),78.26313(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.426574(mm),-1.0339895(mm),78.866662(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4640,7 +3725,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.386117(mm),-0.68547821(mm),78.344814(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.623788(mm),2.205342(mm),79.008215(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4649,7 +3734,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.754622(mm),-1.6776689(mm),78.985145(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.00729(mm),3.2277975(mm),78.764266(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4658,7 +3743,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.149729(mm),3.0484209(mm),78.915477(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.865304(mm),-3.1411968(mm),78.789302(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4667,7 +3752,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.459619(mm),1.8202448(mm),78.684508(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.999367(mm),2.8153705(mm),78.589336(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4676,7 +3761,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.436088(mm),2.4728135(mm),78.688657(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.714294(mm),-0.15617366(mm),78.992256(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4685,7 +3770,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.61553(mm),-3.4653057(mm),78.833344(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.474506(mm),1.1872409(mm),79.210864(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4694,7 +3779,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.517162(mm),1.5312874(mm),79.027015(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.43665(mm),-1.7961517(mm),78.335904(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4703,7 +3788,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.493948(mm),-0.85862914(mm),79.031109(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.840352(mm),2.2440742(mm),78.26472(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4712,1496 +3797,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.611157(mm),-2.1056873(mm),78.481461(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.137641(mm),-2.1013792(mm),79.093935(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.20514(mm),1.3164117(mm),78.72938(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.27715(mm),-0.27946961(mm),78.716682(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.612406(mm),2.0328438(mm),79.186548(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.574714(mm),-1.3196854(mm),78.840541(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.176936(mm),2.0624148(mm),79.087007(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.422987(mm),2.6252429(mm),78.867294(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.859226(mm),2.378335(mm),78.790373(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.650567(mm),-1.1437752(mm),79.17982(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.057427(mm),1.4881189(mm),78.226444(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.605206(mm),-2.0073845(mm),78.48251(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.256734(mm),1.0226134(mm),79.072936(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.694071(mm),-2.3463114(mm),78.995822(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.175206(mm),-1.6313022(mm),79.087312(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.069906(mm),1.5811323(mm),78.753225(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.287906(mm),1.8397677(mm),78.714786(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.596424(mm),-3.0306048(mm),79.189367(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.171196(mm),-1.8648352(mm),78.382711(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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 (-17.339162(mm),1.0836444(mm),78.176767(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.053691(mm),-1.1890476(mm),79.108738(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.373702(mm),-2.220557(mm),78.347004(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.296072(mm),1.6704512(mm),78.360692(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.087453(mm),-1.5120719(mm),78.397477(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.048827(mm),0.82648853(mm),78.227961(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.829285(mm),-0.58681409(mm),78.619326(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.188356(mm),-1.2336535(mm),78.203358(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.924389(mm),-1.0612435(mm),78.95521(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.807736(mm),-1.2234621(mm),78.446799(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.465252(mm),0.98768928(mm),78.154534(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.901048(mm),-2.481117(mm),78.430345(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.318087(mm),-0.86162906(mm),78.885791(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.402412(mm),2.3168715(mm),79.047249(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.27729(mm),-2.8269488(mm),78.716658(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.617039(mm),-0.10669137(mm),79.009404(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.914889(mm),0.63330622(mm),78.956886(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.011285(mm),0.82320296(mm),78.410907(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.316393(mm),-1.2917343(mm),78.88609(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.758854(mm),-2.0201054(mm),78.808072(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.418913(mm),-0.45747301(mm),79.396993(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.692595(mm),0.3889417(mm),78.819755(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.384628(mm),1.7060611(mm),78.874058(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.713748(mm),2.7128429(mm),78.816025(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.742804(mm),-2.3615774(mm),79.339883(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.256401(mm),0.031629262(mm),79.072995(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.382958(mm),-0.95389872(mm),78.698025(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.755204(mm),-3.0680587(mm),79.161369(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.887516(mm),1.8713175(mm),78.961712(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.636576(mm),-1.2172014(mm),79.358614(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.259237(mm),3.9723038(mm),78.719841(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.706292(mm),-3.6155587(mm),78.81734(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.651066(mm),-0.92373255(mm),78.474424(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.29416(mm),1.4427718(mm),79.242664(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.421195(mm),-1.4043(mm),78.162302(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.441896(mm),-1.5713561(mm),79.040287(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.031516(mm),-1.0306077(mm),79.288975(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.005078(mm),-0.043737593(mm),78.588329(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.363128(mm),0.016658149(mm),78.701522(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.775401(mm),2.505756(mm),79.157808(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.273976(mm),-0.86213387(mm),78.717242(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.461368(mm),1.443565(mm),78.860527(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.593909(mm),1.8485221(mm),78.660829(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.953327(mm),2.5109335(mm),78.597454(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.960175(mm),-2.5157719(mm),79.125227(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.675667(mm),0.20142767(mm),78.999067(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.869265(mm),-2.0320646(mm),78.96493(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.901641(mm),-1.6733439(mm),78.782895(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.321493(mm),-0.24301564(mm),78.708863(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.242873(mm),1.5129486(mm),78.722726(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.740468(mm),-0.49819901(mm),78.987641(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.639385(mm),-0.7185185(mm),78.300156(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.044688(mm),1.7505831(mm),79.110325(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.530419(mm),1.1823324(mm),79.377332(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.216183(mm),2.8251476(mm),78.551105(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.005081(mm),0.5869907(mm),78.940982(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.213715(mm),1.5327171(mm),78.198887(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.04075(mm),0.50034044(mm),78.229385(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.646563(mm),-1.5390356(mm),78.298891(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.221143(mm),-2.3995593(mm),78.726558(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.366341(mm),0.41928598(mm),78.877282(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.55474(mm),1.3305323(mm),78.315082(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.10309(mm),0.22820778(mm),78.747374(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.617799(mm),-0.80472471(mm),78.127636(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.06497(mm),1.9584828(mm),79.106749(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.802379(mm),2.650184(mm),78.271416(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.763447(mm),-2.3997347(mm),79.159916(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.940198(mm),0.074381363(mm),79.12875(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.295027(mm),0.19162369(mm),79.418838(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.178385(mm),1.9370884(mm),78.910424(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.168155(mm),1.910031(mm),78.20692(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.928534(mm),3.1614764(mm),78.601826(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.421916(mm),0.61556219(mm),79.396464(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.495501(mm),-0.72824591(mm),79.207162(mm),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 -8.81 mm -314 um 6.39 cm 22.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -9.4509935 mm -333.91986 um 6.3697197 cm 19.442021 MeV 3.3641706 MeV 663.64436 um 663.64436 um Target hIoni - 2 -9.9741052 mm -378.45838 um 6.3581369 cm 15.969659 MeV 3.4723616 MeV 543.15608 um 1.2068004 mm Target hIoni - 3 -1.0366987 cm -442.84779 um 6.3427876 cm 12.60518 MeV 3.3644788 MeV 431.65148 um 1.6384519 mm Target hIoni - 4 -1.0681848 cm -425.39898 um 6.332365 cm 9.6737873 MeV 2.9313932 MeV 336.76142 um 1.9752133 mm Target hIoni - 5 -1.0936983 cm -422.94824 um 6.3275653 cm 6.9726139 MeV 2.7011734 MeV 264.26456 um 2.2394779 mm Target hIoni - 6 -1.0986802 cm -414.01233 um 6.3261723 cm 6.3439829 MeV 628.63104 keV 52.794857 um 2.2922728 mm Target CoulombScat - 7 -1.115966 cm -392.27652 um 6.3203072 cm 3.3195392 MeV 3.0244437 MeV 189.01684 um 2.4812896 mm Target hIoni - 8 -1.1220591 cm -346.22357 um 6.3209804 cm 445.90181 keV 2.8736374 MeV 94.976333 um 2.5762659 mm Target hIoni - 9 -1.1222457 cm -344.75336 um 6.3211497 cm 25.776139 keV 420.12567 keV 4.0719639 um 2.5803379 mm Target hIoni - 10 -1.1222477 cm -344.74333 um 6.321148 cm 0 eV 25.776139 keV 158.55698 nm 2.5804965 mm Target hIoni - 11 -1.1222477 cm -344.74333 um 6.321148 cm 0 eV 0 eV 0 fm 2.5804965 mm Target Scintillation -Track (trackID 4, parentID 1) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 17, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.12 cm -345 um 6.32 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.1334772 cm -315.4252 um 6.3217836 cm 306.22447 keV 3.8135882 MeV 164.73767 um 164.73767 um Target muIoni - 2 -1.1336354 cm -315.69488 um 6.3218543 cm 8.5201685 keV 297.7043 keV 2.6799485 um 167.41762 um Target muIoni - 3 -1.1336357 cm -315.69324 um 6.3218545 cm 0 eV 8.5201685 keV 71.758416 nm 167.48937 um Target muIoni - 4 -1.1336357 cm -315.69324 um 6.3218545 cm 0 eV 0 eV 0 fm 167.48937 um Target Scintillation -Track (trackID 17, parentID 4) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.472034(mm),2.4270257(mm),78.682319(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.87263(mm),2.2435312(mm),78.611683(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.231359(mm),0.11055559(mm),78.901083(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.101687(mm),-3.1163915(mm),79.100275(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.754503(mm),3.1132666(mm),79.161493(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.154432(mm),2.9241528(mm),79.090975(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.631092(mm),1.3083149(mm),78.477946(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.680089(mm),-3.8737521(mm),78.645633(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.737238(mm),2.3644838(mm),78.282902(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.42464(mm),1.2678634(mm),78.338022(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.732212(mm),2.0935501(mm),79.165423(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.134946(mm),2.1572745(mm),78.212776(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.521938(mm),-1.3717405(mm),79.026173(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.940699(mm),-1.5131583(mm),78.776008(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.180932(mm),-0.81267793(mm),78.733648(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.369358(mm),2.902345(mm),79.229404(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.156548(mm),-3.448371(mm),79.090602(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.558786(mm),-2.0835561(mm),79.37233(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.310109(mm),3.3695841(mm),78.534544(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.398013(mm),-3.3922263(mm),79.048025(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.370026(mm),1.1828131(mm),78.876633(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.774403(mm),-0.86476791(mm),78.80533(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.296881(mm),0.96362371(mm),79.065857(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.461467(mm),-1.5461536(mm),78.155201(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.57189(mm),-3.0803503(mm),79.017366(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.822558(mm),-1.1964322(mm),78.620512(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.587023(mm),1.913509(mm),78.83837(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.899655(mm),2.1290791(mm),79.135899(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.066666(mm),3.4322643(mm),78.930123(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.588956(mm),-1.1059083(mm),78.485375(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.602252(mm),-0.69981668(mm),78.659358(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.640588(mm),1.2811479(mm),79.005252(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.963828(mm),0.012365376(mm),78.948256(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.547408(mm),3.0398504(mm),79.021682(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.330502(mm),1.3126103(mm),78.178294(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.944669(mm),-2.2202384(mm),78.775308(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.738698(mm),-2.3435291(mm),78.987953(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.683209(mm),0.81850428(mm),79.350391(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.096625(mm),3.2896799(mm),78.924841(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.815672(mm),1.0011239(mm),78.97438(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.494745(mm),-0.66154766(mm),79.383622(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.555574(mm),3.7614772(mm),78.667589(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.777741(mm),0.25412509(mm),78.628415(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.488545(mm),2.7266904(mm),79.032061(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.206612(mm),2.6421233(mm),78.376466(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.128593(mm),-2.9794599(mm),78.919204(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.903982(mm),-1.0041971(mm),78.429828(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.621743(mm),-2.4336104(mm),78.479594(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.829729(mm),-2.3192805(mm),78.795575(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.028268(mm),-2.2158347(mm),78.760567(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.206627(mm),-3.333416(mm),78.729117(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.22137(mm),-3.2363673(mm),79.079172(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.825196(mm),2.3666617(mm),78.972701(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.581756(mm),-3.4682483(mm),79.015626(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.985405(mm),-1.5758187(mm),78.768125(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.105839(mm),-1.9192474(mm),78.570562(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.127583(mm),-1.194205(mm),79.095709(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.169486(mm),0.72603989(mm),79.08832(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.38521(mm),3.5758827(mm),78.873955(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.400832(mm),-2.2153266(mm),78.518547(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.647494(mm),-2.4725096(mm),79.004034(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.24823(mm),-1.6967364(mm),78.545455(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.21275(mm),-2.45721(mm),79.257019(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.323242(mm),-1.2535829(mm),78.179574(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.726663(mm),0.74676116(mm),78.813748(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.297128(mm),-0.90200245(mm),79.24214(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.274461(mm),-0.36211409(mm),79.06981(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.687374(mm),-2.7027125(mm),79.17333(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.779149(mm),-2.5350806(mm),78.451839(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.593195(mm),0.22259429(mm),78.837282(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6211,86 +3807,177 @@ Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.42 cm -2.54 mm 6.97 cm 123 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.6023784 cm 1.9176658 mm 7.0660092 cm 111.90807 MeV 10.793838 MeV 4.9085134 mm 4.9085134 mm Target Transportation - 2 37.449986 cm 37.368831 cm 2 m 111.90809 MeV3.0926701e-16 eV 9.5527356 m 9.5576441 m CaptureMgnt Transportation - 3 40.668237 cm 34.955467 cm 2.0082953 m 111.78919 MeV 7.1137251 keV 4.1072604 cm 9.5987167 m World hIoni - 4 43.967729 cm 32.478931 cm 2.0167614 m 111.77911 MeV 5.1230935 keV 4.2114891 cm 9.6408316 m World hIoni - 5 50.528665 cm 27.560894 cm 2.0335595 m 111.76393 MeV 14.007782 keV 8.3698721 cm 9.7245304 m World hIoni - 6 51.603768 cm 26.754606 cm 2.036295 m 111.75897 MeV 3.3756955 keV 1.3714136 cm 9.7382445 m World hIoni - 7 53.226174 cm 25.537912 cm 2.0404344 m 111.75477 MeV 2.7902891 keV 2.069757 cm 9.7589421 m World hIoni - 8 67.57636 cm 14.768087 cm 2.0770225 m 111.72062 MeV 32.270836 keV 18.311317 cm 9.9420552 m World hIoni - 9 69.120507 cm 13.604151 cm 2.080963 m 111.7152 MeV 2.9237138 keV 1.9734267 cm 9.9617895 m World hIoni - 10 70.781146 cm 12.351522 cm 2.0851986 m 111.71096 MeV 2.1845706 keV 2.1227835 cm 9.9830173 m World hIoni - 11 70.875935 cm 12.280056 cm 2.0854404 m 111.70922 MeV 87.90108 eV 1.2114883 mm 9.9842288 m World hIoni - 12 74.649005 cm 9.4355581 cm 2.0950731 m 111.69872 MeV 7.7113952 keV 4.8223567 cm 10.032452 m World hIoni - 13 85.532544 cm 1.2377316 cm 2.1227027 m 111.67479 MeV 21.613806 keV 13.902873 cm 10.171481 m World hIoni - 14 90.67455 cm -2.649585 cm 2.1358054 m 111.66534 MeV 8.4293185 keV 6.5778634 cm 10.23726 m World hIoni - 15 92.236455 cm -3.8319387 cm 2.1398012 m 111.65947 MeV 4.7380446 keV 1.9992939 cm 10.257253 m World hIoni - 16 92.676346 cm -4.1648689 cm 2.1409303 m 111.64705 MeV 501.94558 eV 5.6311253 mm 10.262884 m World hIoni - 17 99.031493 cm -8.9730316 cm 2.1572887 m 111.62652 MeV 13.906519 keV 8.1352517 cm 10.344236 m World hIoni - 18 99.802757 cm -9.5580275 cm 2.159279 m 111.55562 MeV 1.5345033 keV 9.8827279 mm 10.354119 m World hIoni - 19 1.0701287 m -15.014594 cm 2.1779354 m 111.53842 MeV 15.692335 keV 9.2325794 cm 10.446445 m World hIoni - 20 1.23645 m -27.586761 cm 2.2209754 m 111.5012 MeV 35.830372 keV 21.288787 cm 10.659333 m World hIoni - 21 1.2367082 m -27.606242 cm 2.2210417 m 111.5011 MeV 92.064882 eV 330.14875 um 10.659663 m World hIoni - 22 1.2644529 m -29.699932 cm 2.2281674 m 111.46529 MeV 5.8749967 keV 3.5480899 cm 10.695144 m World hIoni - 23 1.3212667 m -33.976364 cm 2.2427034 m 111.45136 MeV 12.042607 keV 7.2580281 cm 10.767724 m World hIoni - 24 1.3409287 m -35.455084 cm 2.2477368 m 111.44706 MeV 2.6029133 keV 2.5111585 cm 10.792836 m World hIoni - 25 1.3417255 m -35.514984 cm 2.2479406 m 111.44581 MeV 118.32727 eV 1.0174854 mm 10.793853 m World hIoni - 26 1.4308436 m -42.216321 cm 2.2707303 m 111.42747 MeV 16.901365 keV 11.380778 cm 10.907661 m World hIoni - 27 1.4753241 m -45.558976 cm 2.2821451 m 111.41739 MeV 7.658576 keV 5.6799171 cm 10.96446 m World hIoni - 28 1.4760778 m -45.615539 cm 2.2823378 m 111.41578 MeV 172.18102 eV 961.80584 um 10.965422 m World hIoni - 29 1.5233095 m -49.158863 cm 2.2944261 m 111.40438 MeV 9.7403106 keV 6.0270032 cm 11.025692 m World hIoni - 30 1.6290908 m -57.101684 cm 2.3216692 m 111.38061 MeV 22.42648 keV 13.505828 cm 11.16075 m World hIoni - 31 1.6840571 m -61.221519 cm 2.3358085 m 111.36732 MeV 11.605696 keV 7.0132113 cm 11.230882 m World hIoni - 32 1.7539533 m -66.455527 cm 2.3537041 m 111.20217 MeV 13.482184 keV 8.9135978 cm 11.320018 m World hIoni - 33 1.7673376 m -67.459515 cm 2.3571599 m 111.19768 MeV 1.6709902 keV 1.7084577 cm 11.337103 m World hIoni - 34 1.8116233 m -70.777112 cm 2.3685738 m 111.18628 MeV 9.0917108 keV 5.6499053 cm 11.393602 m World hIoni - 35 1.8472322 m -73.447656 cm 2.3777318 m 111.17771 MeV 7.4161791 keV 4.5442744 cm 11.439045 m World hIoni - 36 1.9479663 m -80.989858 cm 2.4035618 m 111.15254 MeV 23.767572 keV 12.846417 cm 11.567509 m World hIoni - 37 2.0173269 m -86.210089 cm 2.4213768 m 111.14077 MeV 11.769076 keV 8.8619166 cm 11.656128 m World hIoni - 38 2.0333778 m -87.420578 cm 2.4255077 m 111.13379 MeV 4.3125191 keV 2.0523748 cm 11.676652 m World hIoni - 39 2.0512134 m -88.766821 cm 2.4300856 m 111.12766 MeV 3.3071086 keV 2.2810158 cm 11.699462 m World hIoni - 40 2.0980488 m -92.30605 cm 2.44212 m 111.11217 MeV 13.370505 keV 5.992496 cm 11.759387 m World hIoni - 41 2.1636239 m -97.250311 cm 2.4589558 m 111.0971 MeV 12.781112 keV 8.3833788 cm 11.843221 m World hIoni - 42 2.2027701 m -1.0019782 m 2.4690157 m 111.08896 MeV 8.1390976 keV 5.0024154 cm 11.893245 m World hIoni - 43 2.2296212 m -1.0222129 m 2.475913 m 111.08217 MeV 5.268303 keV 3.4321912 cm 11.927567 m World hIoni - 44 2.2459456 m -1.0345203 m 2.4800934 m 111.07674 MeV 4.2986025 keV 2.0867051 cm 11.948434 m World hIoni - 45 2.3195116 m -1.0899863 m 2.4989258 m 111.06057 MeV 13.245001 keV 9.4037775 cm 12.042472 m World hIoni - 46 2.3578515 m -1.118847 m 2.5087291 m 111.04734 MeV 8.6089472 keV 4.8979511 cm 12.091451 m World hIoni - 47 2.3729086 m -1.1302057 m 2.5125964 m 111.04163 MeV 2.4009671 keV 1.9253338 cm 12.110704 m World hIoni - 48 2.4248331 m -1.1693254 m 2.5259095 m 111.03075 MeV 8.1164634 keV 6.6360754 cm 12.177065 m World hIoni - 49 2.6236695 m -1.3192123 m 2.5766314 m 110.99012 MeV 39.161366 keV 25.411584 cm 12.431181 m World hIoni - 50 2.6857517 m -1.3661452 m 2.592231 m 110.97903 MeV 9.5966282 keV 7.9374085 cm 12.510555 m World hIoni - 51 2.8239064 m -1.47071 m 2.6271495 m 110.95185 MeV 26.176753 keV 17.674803 cm 12.687303 m World hIoni - 52 2.8661624 m -1.5027879 m 2.6378823 m 110.94096 MeV 9.7770958 keV 5.4127184 cm 12.74143 m World hIoni - 53 3.0296775 m -1.6269468 m 2.6794471 m 110.90759 MeV 31.546392 keV 20.947628 cm 12.950907 m World hIoni - 54 3.0531038 m -1.644776 m 2.6853906 m 110.9015 MeV 4.4215762 keV 3.003332 cm 12.98094 m World hIoni - 55 3.0972843 m -1.6783611 m 2.6966236 m 110.88953 MeV 9.3850494 keV 5.6622013 cm 13.037562 m World hIoni - 56 3.1373075 m -1.7087571 m 2.7067857 m 110.88032 MeV 7.5201355 keV 5.1274276 cm 13.088836 m World hIoni - 57 3.1752899 m -1.7375876 m 2.7164109 m 110.87064 MeV 8.2806035 keV 4.8646704 cm 13.137483 m World hIoni - 58 3.2068399 m -1.7615681 m 2.724411 m 110.86124 MeV 8.0339773 keV 4.0428599 cm 13.177911 m World hIoni - 59 3.2856677 m -1.821442 m 2.7442815 m 110.84418 MeV 16.061231 keV 10.096306 cm 13.278875 m World hIoni - 60 3.3464885 m -1.8675768 m 2.7595555 m 110.76077 MeV 10.96593 keV 7.7851687 cm 13.356726 m World hIoni - 61 3.4498909 m -1.9457967 m 2.7853565 m 110.74165 MeV 17.651194 keV 13.219726 cm 13.488923 m World hIoni - 62 3.4910639 m -1.9770178 m 2.7956521 m 110.73396 MeV 6.0800297 keV 5.2687525 cm 13.541611 m World hIoni - 63 3.5286516 m -2.005511 m 2.8050537 m 110.72388 MeV 7.9570202 keV 4.8094629 cm 13.589706 m World hIoni - 64 3.5634782 m -2.0319271 m 2.8137548 m 110.71574 MeV 6.9745775 keV 4.4569132 cm 13.634275 m World hIoni - 65 3.9093475 m -2.294356 m 2.8998974 m 110.64661 MeV 67.294308 keV 44.262381 cm 14.076899 m World hIoni - 66 3.9417969 m -2.3190158 m 2.9079868 m 110.63822 MeV 6.4649991 keV 4.1551367 cm 14.11845 m World hIoni - 67 4.0772536 m -2.4220819 m 2.9415926 m 110.60731 MeV 29.816473 keV 17.349501 cm 14.291945 m World hIoni - 68 4.1646489 m -2.4887231 m 2.9631717 m 110.5846 MeV 20.076266 keV 11.200288 cm 14.403948 m World hIoni - 69 4.2181155 m -2.5295679 m 2.976461 m 110.57352 MeV 11.077215 keV 6.8582705 cm 14.472531 m World hIoni - 70 4.245459 m -2.5504535 m 2.9832593 m 110.567 MeV 5.4027293 keV 3.5072668 cm 14.507603 m World hIoni - 71 4.262364 m -2.5633561 m 2.9874633 m 110.55894 MeV 5.4917441 keV 2.1677906 cm 14.529281 m World hIoni - 72 4.2833377 m -2.5793445 m 2.992666 m 110.55303 MeV 5.916846 keV 2.6881074 cm 14.556162 m OutOfWorld Transportation + 0 -1.49 mm -1.99 mm 2.48 cm 36.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1448511 mm -2.4259052 mm 2.4808003 cm 33.934419 MeV 2.2054087 MeV 554.8039 um 554.8039 um Target Transportation + 2 -11.059455 cm 3.9540344 cm -38.441713 cm 33.934436 MeV1.7940533e-16 eV 3.0506285 m 3.0511833 m CaptureMgnt Decay Track (trackID 2, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 22, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -11.1 cm 3.95 cm -38.4 cm 32 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep + 1 -20.29432 cm -1.4272931 cm 2 m 32.010592 MeV1.0756282e-15 eV 21.009815 m 21.009815 m CaptureMgnt Transportation + 2 -20.136817 cm -1.0324051 cm 2.0004839 m 32.008936 MeV 168.23187 eV 4.2788447 mm 21.014094 m World muIoni + 3 -15.944691 cm 9.4674132 cm 2.013378 m 31.966374 MeV 27.301821 keV 11.379096 cm 21.127885 m World muIoni + 4 -13.689741 cm 15.088931 cm 2.0200866 m 31.943944 MeV 13.911852 keV 6.0939703 cm 21.188825 m World muIoni + 5 -13.656205 cm 15.172907 cm 2.0201852 m 31.936038 MeV 313.4744 eV 909.60475 um 21.189735 m World muIoni + 6 -12.462391 cm 18.154448 cm 2.0237004 m 31.929337 MeV 6.7007805 keV 3.2308462 cm 21.222043 m World muIoni + 7 -10.465664 cm 23.121263 cm 2.0295087 m 31.914097 MeV 14.145055 keV 5.3845742 cm 21.275889 m World muIoni + 8 -5.4433926 cm 35.665902 cm 2.0435624 m 31.878657 MeV 32.905122 keV 13.585588 cm 21.411745 m World muIoni + 9 -1.9104525 cm 44.611252 cm 2.0535793 m 31.851368 MeV 26.124614 keV 9.6697989 cm 21.508443 m World muIoni + 10 -1.2801483 cm 46.221109 cm 2.0553395 m 31.846247 MeV 3.6359332 keV 1.7377882 cm 21.525821 m World muIoni + 11 -8.4093046 mm 47.344036 cm 2.0565826 m 31.841363 MeV 3.3329208 keV 1.2121604 cm 21.537942 m World muIoni + 12 5.9530757 cm 64.702078 cm 2.0759129 m 31.784812 MeV 43.603093 keV 18.74039 cm 21.725346 m World muIoni + 13 7.1246336 cm 67.712907 cm 2.0790664 m 31.775483 MeV 8.1266734 keV 3.2460907 cm 21.757807 m World muIoni + 14 7.8360056 cm 69.540884 cm 2.0809831 m 31.769765 MeV 4.7248337 keV 1.970861 cm 21.777516 m World muIoni + 15 9.6369699 cm 74.171032 cm 2.0858258 m 31.758254 MeV 10.099643 keV 4.9916276 cm 21.827432 m World muIoni + 16 10.389336 cm 76.109106 cm 2.087843 m 31.753685 MeV 3.2542243 keV 2.0887505 cm 21.848319 m World muIoni + 17 11.161187 cm 78.097698 cm 2.0899478 m 31.745366 MeV 4.5017806 keV 2.1434928 cm 21.869754 m World muIoni + 18 13.326196 cm 83.678678 cm 2.095811 m 31.725874 MeV 14.047823 keV 6.0148587 cm 21.929903 m World muIoni + 19 13.568156 cm 84.301977 cm 2.0964719 m 31.722521 MeV 1.8216314 keV 6.7187333 mm 21.936622 m World muIoni + 20 15.190328 cm 88.465549 cm 2.10098 m 31.711274 MeV 11.247262 keV 4.4911091 cm 21.981533 m World muIoni + 21 16.139022 cm 90.904133 cm 2.1035901 m 31.70359 MeV 6.1478699 keV 2.6296107 cm 22.007829 m World muIoni + 22 16.172075 cm 90.988746 cm 2.1036822 m 31.701307 MeV 451.14443 eV 913.04927 um 22.008742 m World muIoni + 23 17.92917 cm 95.490656 cm 2.1085581 m 31.686955 MeV 12.967249 keV 4.8572014 cm 22.057314 m World muIoni + 24 18.826572 cm 97.789074 cm 2.1110682 m 31.677978 MeV 7.8311904 keV 2.480135 cm 22.082115 m World muIoni + 25 19.512764 cm 99.540933 cm 2.1129455 m 31.6674 MeV 8.0188866 keV 1.8907977 cm 22.101023 m World muIoni + 26 20.10107 cm 1.0104562 m 2.1145607 m 31.646422 MeV 3.52208 keV 1.6236623 cm 22.11726 m World muIoni + 27 22.392728 cm 1.068918 m 2.1208035 m 31.628173 MeV 16.407685 keV 6.3102663 cm 22.180362 m World muIoni + 28 24.096042 cm 1.1123068 m 2.1254122 m 31.61437 MeV 12.594243 keV 4.6839751 cm 22.227202 m World muIoni + 29 25.296651 cm 1.1428393 m 2.1286262 m 31.603251 MeV 9.8812533 keV 3.2965323 cm 22.260168 m World muIoni + 30 28.118072 cm 1.2143927 m 2.1360939 m 31.571416 MeV 20.111276 keV 7.7276902 cm 22.337444 m World muIoni + 31 28.253624 cm 1.2178977 m 2.1364706 m 31.567803 MeV 1.5730413 keV 3.7768327 mm 22.341221 m World muIoni + 32 32.139832 cm 1.3182638 m 2.1472407 m 31.538828 MeV 27.491074 keV 10.816524 cm 22.449386 m World muIoni + 33 32.747568 cm 1.3339558 m 2.148949 m 31.532273 MeV 5.4142456 keV 1.6914182 cm 22.466301 m World muIoni + 34 37.767781 cm 1.463145 m 2.1632732 m 31.497991 MeV 32.340573 keV 13.933952 cm 22.60564 m World muIoni + 35 37.98287 cm 1.4687414 m 2.1639094 m 31.496449 MeV 1.5428937 keV 6.0292461 mm 22.611669 m World muIoni + 36 39.724672 cm 1.5141161 m 2.1690681 m 31.482583 MeV 12.505767 keV 4.887604 cm 22.660545 m World muIoni + 37 39.896473 cm 1.5185624 m 2.1695592 m 31.481978 MeV 604.72564 eV 4.7918826 mm 22.665337 m World muIoni + 38 44.147945 cm 1.6287107 m 2.18176 m 31.447986 MeV 28.17795 keV 11.869767 cm 22.784035 m World muIoni + 39 45.146129 cm 1.6544685 m 2.1846072 m 31.434914 MeV 6.5755213 keV 2.7770754 cm 22.811806 m World muIoni + 40 45.536506 cm 1.6645877 m 2.1857149 m 31.419087 MeV 3.0603143 keV 1.0902466 cm 22.822708 m World muIoni + 41 45.770901 cm 1.6706901 m 2.1863608 m 31.41588 MeV 819.63266 eV 6.568917 mm 22.829277 m World muIoni + 42 46.114114 cm 1.6796299 m 2.1873039 m 31.410192 MeV 1.8940887 keV 9.6223146 mm 22.838899 m World muIoni + 43 48.687088 cm 1.7469036 m 2.1945196 m 31.391329 MeV 16.914129 keV 7.2386953 cm 22.911286 m World muIoni + 44 49.442795 cm 1.7666611 m 2.1965609 m 31.38373 MeV 3.3606716 keV 2.1251684 cm 22.932538 m World muIoni + 45 51.220652 cm 1.8132913 m 2.2014715 m 31.369495 MeV 13.182755 keV 5.0145572 cm 22.982684 m World muIoni + 46 51.408216 cm 1.8182047 m 2.2019948 m 31.365646 MeV 1.4236452 keV 5.285191 mm 22.987969 m World muIoni + 47 51.915425 cm 1.8314754 m 2.2034093 m 31.356224 MeV 3.3203086 keV 1.4277196 cm 23.002246 m World muIoni + 48 52.144916 cm 1.8374537 m 2.2040502 m 31.352704 MeV 1.8661195 keV 6.4356646 mm 23.008682 m World muIoni + 49 52.487187 cm 1.8463749 m 2.2050028 m 31.348198 MeV 2.6090939 keV 9.6025956 mm 23.018284 m World muIoni + 50 57.185441 cm 1.9687328 m 2.2180998 m 31.311327 MeV 31.440434 keV 13.172141 cm 23.150006 m World muIoni + 51 58.043967 cm 1.9908361 m 2.2204205 m 31.304066 MeV 4.796567 keV 2.3825407 cm 23.173831 m World muIoni + 52 59.765325 cm 2.0354706 m 2.2251054 m 31.290525 MeV 13.541076 keV 4.8067644 cm 23.221899 m World muIoni + 53 59.956507 cm 2.0404905 m 2.2256388 m 31.288548 MeV 926.81683 eV 5.398119 mm 23.227297 m World muIoni + 54 60.045967 cm 2.0428428 m 2.2258886 m 31.288174 MeV 373.79404 eV 2.5290155 mm 23.229826 m World muIoni + 55 60.597031 cm 2.0573103 m 2.2274255 m 31.282957 MeV 2.9184119 keV 1.5557596 cm 23.245384 m World muIoni + 56 61.670373 cm 2.0854239 m 2.2303832 m 31.27332 MeV 6.9161859 keV 3.0237832 cm 23.275621 m World muIoni + 57 61.843884 cm 2.089939 m 2.2308538 m 31.272152 MeV 1.1682143 keV 4.8599248 mm 23.280481 m World muIoni + 58 62.495603 cm 2.1069052 m 2.2326207 m 31.268239 MeV 2.9000838 keV 1.8260557 cm 23.298742 m World muIoni + 59 63.916853 cm 2.1439467 m 2.2364854 m 31.258547 MeV 8.6598179 keV 3.9862352 cm 23.338604 m World muIoni + 60 65.148379 cm 2.1759823 m 2.239757 m 31.24679 MeV 10.509114 keV 3.4476753 cm 23.373081 m World muIoni + 61 66.408456 cm 2.2088544 m 2.243027 m 31.235018 MeV 8.3635602 keV 3.5356069 cm 23.408437 m World muIoni + 62 68.329908 cm 2.2590436 m 2.2480689 m 31.218353 MeV 15.648234 keV 5.3977637 cm 23.462415 m World muIoni + 63 68.656191 cm 2.2675742 m 2.248936 m 31.213704 MeV 2.8134521 keV 9.1743698 mm 23.471589 m World muIoni + 64 68.74168 cm 2.2698125 m 2.2491621 m 31.212021 MeV 587.94645 eV 2.4066723 mm 23.473996 m World muIoni + 65 71.323401 cm 2.3374541 m 2.2559845 m 31.190047 MeV 18.334081 keV 7.2722017 cm 23.546718 m World muIoni + 66 71.488185 cm 2.3417925 m 2.2564375 m 31.187327 MeV 750.34576 eV 4.6628709 mm 23.551381 m World muIoni + 67 74.002175 cm 2.4080553 m 2.2633283 m 31.16952 MeV 15.724316 keV 7.1205889 cm 23.622586 m World muIoni + 68 74.420057 cm 2.4191369 m 2.2644672 m 31.166498 MeV 1.6480763 keV 1.1898005 cm 23.634484 m World muIoni + 69 75.614592 cm 2.4507719 m 2.2676796 m 31.157138 MeV 8.1605237 keV 3.3967432 cm 23.668452 m World muIoni + 70 77.833085 cm 2.5094567 m 2.273662 m 31.141467 MeV 15.670189 keV 6.3022814 cm 23.731475 m World muIoni + 71 78.1851 cm 2.5187043 m 2.2745705 m 31.136371 MeV 2.2463942 keV 9.9365837 mm 23.741411 m World muIoni + 72 80.549494 cm 2.5808487 m 2.2807129 m 31.115282 MeV 20.036987 keV 6.6773574 cm 23.808185 m World muIoni + 73 81.311489 cm 2.6009542 m 2.282645 m 31.108391 MeV 6.8912116 keV 2.1587682 cm 23.829773 m World muIoni + 74 81.382973 cm 2.6028378 m 2.2828273 m 31.105907 MeV 656.01945 eV 2.0229589 mm 23.831796 m World muIoni + 75 84.538862 cm 2.6859762 m 2.2908328 m 31.078845 MeV 24.07994 keV 8.9286579 cm 23.921082 m World muIoni + 76 84.925433 cm 2.6961457 m 2.291823 m 31.076224 MeV 1.1413454 keV 1.0924427 cm 23.932007 m World muIoni + 77 85.180763 cm 2.7028998 m 2.2924893 m 31.069482 MeV 1.2273313 keV 7.2512845 mm 23.939258 m World muIoni + 78 86.225203 cm 2.7304586 m 2.2952262 m 31.058961 MeV 8.5527776 keV 2.9598394 cm 23.968856 m World muIoni + 79 86.498838 cm 2.7376519 m 2.2959454 m 31.054096 MeV 1.6371096 keV 7.7297332 mm 23.976586 m World muIoni + 80 87.861467 cm 2.77341 m 2.2995136 m 31.044142 MeV 8.5733438 keV 3.8432428 cm 24.015018 m World muIoni + 81 88.044887 cm 2.7782105 m 2.2999883 m 31.041544 MeV 1.1978027 keV 5.1609385 mm 24.020179 m World muIoni + 82 88.387111 cm 2.7871523 m 2.3008741 m 31.036176 MeV 2.900963 keV 9.6151825 mm 24.029794 m World muIoni + 83 92.023661 cm 2.8824791 m 2.3103296 m 31.007681 MeV 27.370612 keV 10.246527 cm 24.13226 m World muIoni + 84 92.117267 cm 2.8849058 m 2.3105841 m 30.980541 MeV 845.35481 eV 2.6134263 mm 24.134873 m World muIoni + 85 94.530753 cm 2.9477958 m 2.3171318 m 30.95954 MeV 17.970913 keV 6.7679708 cm 24.202553 m World muIoni + 86 95.904741 cm 2.9838949 m 2.321084 m 30.94379 MeV 10.898312 keV 3.8827181 cm 24.24138 m World muIoni + 87 96.234795 cm 2.9925705 m 2.3220333 m 30.940786 MeV 1.219356 keV 9.3306238 mm 24.250711 m World muIoni + 88 96.319313 cm 2.9948054 m 2.3222812 m 30.939627 MeV 1.1583937 keV 2.40225 mm 24.253113 m World muIoni + 89 96.408005 cm 2.9971508 m 2.3225412 m 30.933539 MeV 484.11382 eV 2.5209553 mm 24.255634 m World muIoni + 90 98.297252 cm 3.0470152 m 2.3281035 m 30.917239 MeV 14.568046 keV 5.3612748 cm 24.309247 m World muIoni + 91 99.151135 cm 3.0694304 m 2.3305988 m 30.911456 MeV 5.7834461 keV 2.4116031 cm 24.333363 m World muIoni + 92 99.922797 cm 3.0896787 m 2.3328552 m 30.903791 MeV 5.5502613 keV 2.1786004 cm 24.355149 m World muIoni + 93 1.008251 m 3.1132577 m 2.3354511 m 30.891611 MeV 7.8705512 keV 2.5379587 cm 24.380528 m World muIoni + 94 1.0151825 m 3.1312599 m 2.3375067 m 30.885911 MeV 4.6364798 keV 1.939986 cm 24.399928 m World muIoni + 95 1.0181038 m 3.1388587 m 2.3383736 m 30.822084 MeV 2.9016773 keV 8.186974 mm 24.408115 m World muIoni + 96 1.0196454 m 3.1428894 m 2.3388478 m 30.818253 MeV 325.00287 eV 4.3414034 mm 24.412457 m World muIoni + 97 1.0339421 m 3.1802371 m 2.3432177 m 30.806764 MeV 8.1528841 keV 4.0228682 cm 24.452685 m World muIoni + 98 1.036636 m 3.1872281 m 2.3440105 m 30.804451 MeV 1.2851193 keV 7.5339876 mm 24.460219 m World muIoni + 99 1.0381189 m 3.1910699 m 2.344445 m 30.801671 MeV 795.26319 eV 4.1408632 mm 24.46436 m World muIoni + 100 1.0526362 m 3.228619 m 2.3486982 m 30.786965 MeV 12.288048 keV 4.0481889 cm 24.504842 m World muIoni + 101 1.078239 m 3.2951901 m 2.3562777 m 30.76608 MeV 18.640842 keV 7.1726467 cm 24.576568 m World muIoni + 102 1.0850632 m 3.3128291 m 2.3582751 m 30.739661 MeV 4.8009732 keV 1.9018269 cm 24.595587 m World muIoni + 103 1.0979376 m 3.3457843 m 2.3620188 m 30.729856 MeV 8.3486541 keV 3.5578278 cm 24.631165 m World muIoni + 104 1.0982245 m 3.3465234 m 2.3621016 m 30.728684 MeV 130.46087 eV 797.11592 um 24.631962 m World muIoni + 105 1.1032198 m 3.3593838 m 2.3635373 m 30.723006 MeV 4.5099479 keV 1.3871064 cm 24.645833 m World muIoni + 106 1.1081963 m 3.3722144 m 2.3649626 m 30.715768 MeV 4.9337871 keV 1.3835433 cm 24.659669 m World muIoni + 107 1.1167534 m 3.3942677 m 2.3674031 m 30.708026 MeV 6.514474 keV 2.3780843 cm 24.683449 m World muIoni + 108 1.1210071 m 3.4053319 m 2.3686435 m 30.70186 MeV 4.8207186 keV 1.1918456 cm 24.695368 m World muIoni + 109 1.1342835 m 3.4397871 m 2.3725649 m 30.689553 MeV 11.012633 keV 3.7132309 cm 24.7325 m World muIoni + 110 1.1397193 m 3.4538758 m 2.3741875 m 30.685082 MeV 3.465132 keV 1.5187839 cm 24.747688 m World muIoni + 111 1.1733318 m 3.5410026 m 2.3841103 m 30.658085 MeV 25.250811 keV 9.3911796 cm 24.8416 m World muIoni + 112 1.1796515 m 3.5573684 m 2.3859452 m 30.651887 MeV 4.6795032 keV 1.7639255 cm 24.859239 m World muIoni + 113 1.1954678 m 3.5981525 m 2.3905008 m 30.639394 MeV 11.279002 keV 4.398019 cm 24.903219 m World muIoni + 114 1.2157747 m 3.6504736 m 2.3962412 m 30.622126 MeV 12.312734 keV 5.6416639 cm 24.959636 m World muIoni + 115 1.2280702 m 3.6818892 m 2.3997532 m 30.611702 MeV 9.2785244 keV 3.3918358 cm 24.993554 m World muIoni + 116 1.2359841 m 3.7022086 m 2.402007 m 30.60633 MeV 5.372283 keV 2.1922283 cm 25.015477 m World muIoni + 117 1.3040859 m 3.876748 m 2.4216397 m 30.561312 MeV 45.017917 keV 18.838229 cm 25.203859 m World muIoni + 118 1.3188044 m 3.9146653 m 2.4256881 m 30.550851 MeV 10.461266 keV 4.087497 cm 25.244734 m World muIoni + 119 1.3211942 m 3.9208325 m 2.4263488 m 30.5473 MeV 1.4418238 keV 6.6469895 mm 25.251381 m World muIoni + 120 1.3291179 m 3.9412297 m 2.4285673 m 30.520579 MeV 6.2407485 keV 2.1994379 cm 25.273375 m World muIoni + 121 1.3509562 m 3.9975802 m 2.434757 m 30.502053 MeV 17.181486 keV 6.0750488 cm 25.334126 m World muIoni + 122 1.3517449 m 3.999597 m 2.4349774 m 30.500219 MeV 602.42648 eV 2.1767261 mm 25.336302 m World muIoni + 123 1.3524571 m 4.0014197 m 2.4351761 m 30.499001 MeV 1.2181684 keV 1.9669013 mm 25.338269 m World muIoni + 124 1.3718827 m 4.0511278 m 2.4405964 m 30.484713 MeV 11.955291 keV 5.3643689 cm 25.391913 m World muIoni + 125 1.3812948 m 4.0748442 m 2.4431139 m 30.472818 MeV 6.8978075 keV 2.563966 cm 25.417553 m World muIoni + 126 1.3849839 m 4.0841378 m 2.4440721 m 30.468619 MeV 2.6988398 keV 1.0044909 cm 25.427598 m World muIoni + 127 1.3963319 m 4.1127292 m 2.4470356 m 30.461335 MeV 6.2495702 keV 3.090353 cm 25.458501 m World muIoni + 128 1.4057043 m 4.1362588 m 2.449502 m 30.436513 MeV 8.7625307 keV 2.5447363 cm 25.483948 m World muIoni + 129 1.4090328 m 4.144586 m 2.4504116 m 30.406887 MeV 2.6737585 keV 9.0137961 mm 25.492962 m World muIoni + 130 1.4246078 m 4.1833744 m 2.4546678 m 30.391746 MeV 10.74397 keV 4.2014714 cm 25.534977 m World muIoni + 131 1.4392754 m 4.2198548 m 2.4587537 m 30.380678 MeV 8.0236178 keV 3.953049 cm 25.574507 m World muIoni + 132 1.4399129 m 4.2214413 m 2.4589257 m 30.379348 MeV 131.66155 eV 1.7184768 mm 25.576226 m World muIoni + 133 1.4436615 m 4.2307629 m 2.4599329 m 30.371879 MeV 2.9377172 keV 1.0097441 cm 25.586323 m World muIoni + 134 1.4450649 m 4.234248 m 2.4603084 m 30.371233 MeV 646.616 eV 3.7757501 mm 25.590099 m World muIoni + 135 1.4783157 m 4.3168132 m 2.4692207 m 30.346393 MeV 23.675426 keV 8.9454574 cm 25.679554 m World muIoni + 136 1.4884545 m 4.3421131 m 2.4718913 m 30.336435 MeV 6.1903076 keV 2.7386355 cm 25.70694 m World muIoni + 137 1.4964206 m 4.3620512 m 2.4740014 m 30.324728 MeV 5.9413867 keV 2.1574059 cm 25.728514 m World muIoni + 138 1.4976548 m 4.3651282 m 2.4743284 m 30.322749 MeV 823.14701 eV 3.3314058 mm 25.731845 m World muIoni + 139 1.5013681 m 4.3743758 m 2.4753088 m 30.318071 MeV 4.6783019 keV 1.0013313 cm 25.741859 m World muIoni + 140 1.5023997 m 4.3769394 m 2.4755832 m 30.314831 MeV 920.25157 eV 2.7770072 mm 25.744636 m World muIoni + 141 1.5099808 m 4.3957554 m 2.4775898 m 30.309406 MeV 4.2631133 keV 2.0384807 cm 25.765021 m World muIoni + 142 1.5111131 m 4.3985537 m 2.4778881 m 30.304931 MeV 1.573881 keV 3.0334597 mm 25.768054 m World muIoni + 143 1.5210188 m 4.4229683 m 2.4804904 m 30.29173 MeV 8.8489972 keV 2.6475798 cm 25.79453 m World muIoni + 144 1.5328558 m 4.4523039 m 2.4835881 m 30.281296 MeV 8.6375852 keV 3.1785011 cm 25.826315 m World muIoni + 145 1.5438117 m 4.4792789 m 2.486375 m 30.273192 MeV 6.9566402 keV 2.9248108 cm 25.855563 m World muIoni + 146 1.5643965 m 4.5300123 m 2.4922349 m 30.254366 MeV 16.083778 keV 5.5063977 cm 25.910627 m World muIoni + 147 1.5800644 m 4.5685786 m 2.496637 m 30.243133 MeV 10.159831 keV 4.1859626 cm 25.952487 m World muIoni + 148 1.5981511 m 4.6127705 m 2.5017981 m 30.174815 MeV 10.704858 keV 4.802815 cm 26.000515 m World muIoni + 149 1.6012805 m 4.6204661 m 2.5026975 m 30.171153 MeV 2.164689 keV 8.3560576 mm 26.008871 m World muIoni + 150 1.6081149 m 4.6372882 m 2.5046441 m 30.166122 MeV 5.0312872 keV 1.8261463 cm 26.027132 m World muIoni + 151 1.6087424 m 4.6388317 m 2.5048227 m 30.162683 MeV 435.91259 eV 1.6757687 mm 26.028808 m World muIoni + 152 1.6230201 m 4.6736654 m 2.5088924 m 30.15115 MeV 9.8774737 keV 3.7865727 cm 26.066674 m World muIoni + 153 1.6430499 m 4.7223285 m 2.5146033 m 30.14032 MeV 10.829418 keV 5.2933199 cm 26.119607 m OutOfWorld Transportation +Track (trackID 22, parentID 2) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.118359386044(mm),1.0738407750476(mm),78.744681267761(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.571862662067(mm),3.4128151771465(mm),79.017370365776(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6299,7 +3986,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.239504(mm),2.9601639(mm),78.899647(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.57536(mm),-0.79281565(mm),79.369408(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6308,7 +3995,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.548712(mm),3.3166867(mm),78.668798(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.19427(mm),1.0349607(mm),78.378642(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6317,7 +4004,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.651277(mm),2.3372808(mm),78.474387(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.522631(mm),-0.15854145(mm),79.202378(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6326,7 +4013,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.598357(mm),-0.30841966(mm),78.836372(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.457636(mm),0.92545305(mm),79.390166(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6335,7 +4022,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.395779(mm),-0.39977227(mm),79.224746(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.924297(mm),-2.1310025(mm),78.7789(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6344,7 +4031,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.387132(mm),-0.84764059(mm),78.520962(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.819827(mm),1.9193652(mm),78.444667(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6353,7 +4040,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.414742(mm),2.4670033(mm),78.692421(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.575465(mm),-1.8461128(mm),78.487754(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6362,7 +4049,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.844303(mm),2.8498873(mm),78.616678(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.967414(mm),-1.7265633(mm),78.418643(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6371,7 +4058,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.624054(mm),-1.8619294(mm),79.360822(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.443385(mm),0.29065595(mm),78.334717(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6380,7 +4067,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.282529(mm),1.346195(mm),78.186753(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.334009(mm),0.057074411(mm),78.53033(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6389,7 +4076,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.976077(mm),0.11727561(mm),78.593443(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.385586(mm),-0.17309991(mm),79.226543(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6398,7 +4085,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.878187(mm),3.0723575(mm),78.78703(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.089853(mm),1.2310129(mm),78.573381(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6407,7 +4094,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.136557(mm),1.3780447(mm),78.388819(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.666859(mm),2.7349256(mm),79.00062(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6416,7 +4103,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.761986(mm),1.9947427(mm),78.983846(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.071225(mm),-1.9860794(mm),78.929319(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6425,7 +4112,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.35488(mm),-2.1570727(mm),78.526649(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.574101(mm),2.2903445(mm),78.664322(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6434,7 +4121,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.049238(mm),2.0900716(mm),79.28585(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.686356(mm),3.1291848(mm),78.468201(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6443,7 +4130,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.262918(mm),0.51019574(mm),79.4245(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.895131(mm),-1.539364(mm),78.960369(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6452,7 +4139,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.212536(mm),-0.99624183(mm),78.375422(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.944568(mm),1.4676154(mm),78.775325(mm),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,7 +4148,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.272998(mm),-2.8738454(mm),78.893741(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.200328(mm),-0.62845395(mm),79.082882(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6470,7 +4157,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.905217(mm),1.7724088(mm),78.605937(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.888866(mm),0.61614609(mm),78.961474(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6479,7 +4166,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.285696(mm),-2.8823393(mm),78.362521(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.311586(mm),-2.9660834(mm),78.357956(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6488,7 +4175,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.391174(mm),0.60468613(mm),78.696577(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.892103(mm),-0.3466485(mm),78.784576(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6497,7 +4184,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.2946(mm),0.92725829(mm),79.418913(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.339959(mm),1.175762(mm),78.705607(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6506,7 +4193,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.281485(mm),2.552693(mm),78.715918(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.646709(mm),1.0786874(mm),78.827846(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6515,7 +4202,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.722778(mm),0.41351872(mm),79.167087(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.561398(mm),0.4787459(mm),79.195543(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6524,7 +4211,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.84438(mm),-1.11537(mm),78.440337(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.835794(mm),3.5199842(mm),78.794505(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6533,7 +4220,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.952406(mm),-2.1981866(mm),79.302924(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.862763(mm),1.4885093(mm),78.78975(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6542,7 +4229,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.554325(mm),-3.3295974(mm),78.491482(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.181632(mm),-3.1752875(mm),78.909852(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6551,7 +4238,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.593411(mm),1.6301477(mm),78.308263(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.681113(mm),0.7244752(mm),79.174434(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6560,7 +4247,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.683118(mm),0.18935004(mm),78.468772(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.593108(mm),-3.507488(mm),78.484643(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6569,7 +4256,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.526799(mm),-3.6533875(mm),78.672662(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.250536(mm),0.99302353(mm),79.074029(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6578,7 +4265,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.094356(mm),2.6732215(mm),79.277895(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.665491(mm),-1.4179398(mm),78.295553(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6587,7 +4274,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.437485(mm),-2.6504501(mm),78.688411(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.209716(mm),-2.1354178(mm),78.9049(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6596,7 +4283,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.16828(mm),-0.73546839(mm),78.912206(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.12003(mm),-0.64431426(mm),79.449695(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6605,7 +4292,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.4434(mm),-3.5518499(mm),78.511041(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.571794(mm),1.4035808(mm),78.488402(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6614,7 +4301,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.487213(mm),0.31035816(mm),79.208623(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.889962(mm),0.73344721(mm),79.313935(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6623,7 +4310,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.93795(mm),1.262255(mm),78.952819(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.23138(mm),-2.5507098(mm),78.724753(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6632,7 +4319,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.075567(mm),-1.3941756(mm),78.223246(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.322233(mm),1.9939365(mm),78.708733(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6641,7 +4328,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.537348(mm),2.7664714(mm),78.847129(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.251591(mm),0.50149668(mm),79.073843(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6650,7 +4337,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.279114(mm),-2.3205847(mm),78.540009(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.972214(mm),1.6314017(mm),78.594124(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6659,7 +4346,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.459704(mm),1.9607314(mm),79.213474(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.470138(mm),1.2825247(mm),79.387961(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6668,7 +4355,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.519964(mm),-0.81481299(mm),79.202848(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.459241(mm),2.4484674(mm),78.684575(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6677,7 +4364,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.070333(mm),2.6087927(mm),78.929477(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.177681(mm),1.5296805(mm),78.381567(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6686,7 +4373,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.955255(mm),-2.2563265(mm),78.420787(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.989945(mm),0.86315831(mm),78.238343(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6695,7 +4382,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.538508(mm),-2.3656361(mm),78.494271(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.884302(mm),-2.4381989(mm),79.138606(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6704,7 +4391,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.359504(mm),-0.030380737(mm),79.054815(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.102203(mm),2.6374463(mm),79.100184(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6713,7 +4400,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.445481(mm),2.9446313(mm),78.334347(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.739967(mm),2.560206(mm),78.458748(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6722,7 +4409,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.340885(mm),0.56201737(mm),78.35279(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.110748(mm),-2.0082931(mm),78.92235(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6731,7 +4418,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.918417(mm),-0.73906718(mm),78.250956(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.391166(mm),2.841162(mm),79.225559(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6740,7 +4427,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.353153(mm),0.94249175(mm),79.408589(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.726644(mm),3.0309852(mm),78.461097(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6749,7 +4436,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.432656(mm),-0.41725504(mm),78.512935(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.690135(mm),-0.42668276(mm),78.996516(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6758,7 +4445,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.750686(mm),1.5604876(mm),78.809512(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.969209(mm),-1.298035(mm),78.242(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6767,7 +4454,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.746686(mm),0.52034306(mm),78.63389(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.348256(mm),-1.9372163(mm),79.056798(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6776,7 +4463,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.419898(mm),0.81660542(mm),78.515185(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.107236(mm),-0.80271343(mm),78.570316(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6785,7 +4472,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.484492(mm),-2.953285(mm),78.856449(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.813917(mm),3.8432439(mm),78.97469(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6794,7 +4481,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.465585(mm),1.5360123(mm),78.683456(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.876084(mm),0.2402477(mm),78.434747(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6803,7 +4490,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.920587(mm),2.9119912(mm),78.4269(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.475172(mm),-2.0647396(mm),78.505439(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6812,7 +4499,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.928425(mm),1.5723379(mm),78.601845(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.088224(mm),-1.7747277(mm),78.397341(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6821,7 +4508,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.337478(mm),3.2095053(mm),78.706045(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.63613(mm),3.1321291(mm),79.006038(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6830,7 +4517,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.804004(mm),1.0748312(mm),78.27113(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.503074(mm),3.5625659(mm),78.676846(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6839,7 +4526,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.825902(mm),2.4486389(mm),78.796249(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.358603(mm),-1.9499812(mm),79.231301(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6848,7 +4535,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.715664(mm),2.0976885(mm),78.463033(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.147973(mm),-3.1898869(mm),78.915787(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6857,7 +4544,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.491825(mm),-1.7564457(mm),78.326175(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.082152(mm),2.9366758(mm),78.398412(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6866,7 +4553,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.629559(mm),0.93300918(mm),79.359851(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.47809(mm),2.1090846(mm),78.681251(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6875,7 +4562,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.091209(mm),-1.3664951(mm),78.220488(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.140213(mm),1.8075435(mm),78.388174(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6884,7 +4571,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.828572(mm),-0.38129137(mm),78.795779(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.430001(mm),-3.1150088(mm),79.042384(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6893,7 +4580,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.620774(mm),-0.97689539(mm),78.479765(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.507956(mm),2.5521193(mm),78.323331(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6902,7 +4589,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.159411(mm),-3.0097394(mm),79.090097(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.68382(mm),1.3871508(mm),79.173956(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6911,7 +4598,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.228935(mm),1.2572123(mm),78.901511(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.119247(mm),1.0735618(mm),78.391871(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6920,7 +4607,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.319588(mm),-1.5623736(mm),78.885526(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.891163(mm),1.8936832(mm),78.432088(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6929,7 +4616,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.298564(mm),2.0978859(mm),79.06556(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.415615(mm),-2.9676878(mm),78.51594(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6938,7 +4625,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.982652(mm),2.088032(mm),79.297591(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.121684(mm),-0.5444581(mm),78.744095(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6947,7 +4634,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.950677(mm),1.3599204(mm),78.597921(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.422871(mm),1.4877853(mm),78.514661(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6956,7 +4643,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.102459(mm),-2.5185661(mm),79.100139(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.129983(mm),-0.51343509(mm),79.095286(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6965,7 +4652,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.05115(mm),-0.72636617(mm),79.46184(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.538537(mm),-3.5152744(mm),78.494266(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6974,7 +4661,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.104383(mm),1.7275356(mm),78.923473(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.938735(mm),0.5157063(mm),78.952681(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6983,7 +4670,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.384498(mm),0.59992407(mm),79.403062(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.448455(mm),2.4536055(mm),78.333822(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6992,7 +4679,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.934103(mm),-0.88200009(mm),78.424517(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.783766(mm),-1.0141911(mm),78.627352(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7001,7 +4688,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.537713(mm),0.48384863(mm),78.494411(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.272601(mm),0.96784051(mm),78.893811(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7010,7 +4697,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.628619(mm),-2.913753(mm),78.478382(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.541205(mm),0.40718405(mm),79.37543(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7019,7 +4706,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.480593(mm),0.50792041(mm),79.033464(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.809048(mm),-2.1471241(mm),78.622894(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7028,7 +4715,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.587429(mm),-1.7091012(mm),78.661972(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.976559(mm),1.435886(mm),79.122338(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7037,7 +4724,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.095488(mm),-2.6318916(mm),78.748714(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.256648(mm),-2.9424511(mm),78.896624(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7046,7 +4733,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.912622(mm),-0.299958(mm),78.428304(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.863938(mm),-2.7585902(mm),78.613216(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7055,7 +4742,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.626798(mm),3.3839158(mm),78.65503(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.363806(mm),0.11878031(mm),78.348749(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7064,7 +4751,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.754423(mm),0.9028134(mm),78.632526(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.566621(mm),0.33564486(mm),79.370949(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7073,7 +4760,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.999145(mm),1.5502666(mm),79.118356(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.259809(mm),0.67802164(mm),78.190759(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7082,7 +4769,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.521104(mm),-0.76615762(mm),78.144686(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.427015(mm),1.9236626(mm),78.690257(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7091,7 +4778,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.617188(mm),3.2403577(mm),78.833051(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.073948(mm),2.1804392(mm),78.399858(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7100,7 +4787,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.203897(mm),-2.657698(mm),78.729599(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.750211(mm),2.6274242(mm),78.809596(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7109,7 +4796,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.482256(mm),3.1776356(mm),78.680517(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.590091(mm),-2.5606813(mm),78.661502(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7118,7 +4805,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.428228(mm),2.1175971(mm),79.042697(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.360107(mm),0.19182735(mm),79.054709(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7127,1060 +4814,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.789062(mm),-2.8509218(mm),78.626418(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.867743(mm),0.45273973(mm),78.788872(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.577267(mm),2.6684514(mm),78.31111(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.16852(mm),-2.8919491(mm),79.088491(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.513788(mm),2.9110003(mm),78.851284(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.672829(mm),-2.682769(mm),78.294259(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.587379(mm),-3.2214551(mm),78.838307(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.28883(mm),0.46304543(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 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.501198(mm),0.2466486(mm),78.677177(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.340182(mm),2.4701694(mm),78.705568(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.556397(mm),3.3823294(mm),78.491116(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.500569(mm),2.2156301(mm),78.677287(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.346837(mm),-2.6115375(mm),78.704394(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.440978(mm),1.7112332(mm),79.216776(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.25196(mm),-2.5763173(mm),79.250105(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.659874(mm),-1.1135331(mm),79.354506(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.606417(mm),3.2280712(mm),78.482297(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.27415(mm),2.5951269(mm),78.364557(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.121027(mm),-2.2088825(mm),78.744211(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.870569(mm),-3.1623069(mm),78.435719(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.180657(mm),-0.22104704(mm),78.55737(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.206479(mm),-1.1144723(mm),78.90547(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.159286(mm),-0.00071994058(mm),78.561138(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.965847(mm),-1.7109954(mm),78.9479(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.017432(mm),0.85600716(mm),79.115131(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.303111(mm),2.1096587(mm),78.888432(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.293858(mm),-3.5616624(mm),78.537409(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.605732(mm),-1.6465877(mm),79.011398(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.150422(mm),-1.201232(mm),78.915355(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.338563(mm),0.10609598(mm),79.411161(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.058695(mm),-2.4808639(mm),78.755202(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.018331(mm),1.3645958(mm),78.938646(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.304669(mm),-3.2339814(mm),79.064484(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.005407(mm),1.759416(mm),78.235617(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.26989(mm),2.7363734(mm),78.541635(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.393191(mm),0.42416524(mm),78.343567(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.469426(mm),2.6275465(mm),78.859106(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.607871(mm),1.0465039(mm),78.658367(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.900538(mm),-1.1360462(mm),78.783089(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.668615(mm),-1.4011344e-05(mm),79.352964(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.114656(mm),2.29406(mm),78.39268(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.789191(mm),-0.042614527(mm),78.097415(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.475445(mm),3.699727(mm),79.034371(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.994142(mm),-0.31692019(mm),78.766584(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.929497(mm),-0.038247077(mm),78.95431(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.487275(mm),1.3273233(mm),78.503304(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.224932(mm),-3.1995572(mm),78.72589(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.163729(mm),1.9569271(mm),79.089335(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.622517(mm),-0.21346747(mm),78.832112(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.396135(mm),-3.259693(mm),78.519375(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.838152(mm),0.054017467(mm),78.617762(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.402065(mm),2.6446964(mm),79.223637(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.654867(mm),-2.1842257(mm),78.297427(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.675311(mm),0.51561963(mm),78.470149(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.421414(mm),-1.1041248(mm),78.691245(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.14057(mm),-2.1030775(mm),78.564438(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.516406(mm),-0.73098139(mm),78.321841(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.022159(mm),1.0712004(mm),79.290625(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.180618(mm),0.21937821(mm),78.91003(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.983869(mm),-2.6302204(mm),78.592069(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.396113(mm),-1.9298671(mm),78.343052(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.443001(mm),-2.6728201(mm),78.687438(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.506421(mm),-0.72575558(mm),79.381563(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.962255(mm),2.3445385(mm),78.243226(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.376395(mm),3.4774988(mm),78.87551(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.134597(mm),3.1233455(mm),79.094472(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.156845(mm),-0.59138043(mm),79.443203(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.445917(mm),-1.8000885(mm),79.039578(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.138813(mm),2.9525116(mm),78.564748(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.463643(mm),-0.35852243(mm),79.212779(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.115758(mm),-2.0851407(mm),79.097794(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.095462(mm),2.3566166(mm),78.748719(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.457858(mm),3.3372561(mm),78.861145(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.61325(mm),-1.1728896(mm),79.362727(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.646446(mm),-3.8491989(mm),78.827892(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.637755(mm),1.9431763(mm),79.182079(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.510344(mm),0.35279568(mm),79.380872(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.544322(mm),-1.1460841(mm),78.669573(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.733249(mm),0.80884719(mm),78.459933(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.302226(mm),0.74213186(mm),78.888588(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.418772(mm),1.3791816(mm),78.868037(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.228632(mm),1.2970413(mm),78.54891(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.021983(mm),0.84309029(mm),79.114329(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.572165(mm),-2.8528357(mm),79.017317(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.192667(mm),-1.5414045(mm),79.26056(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.089753(mm),-1.1037939(mm),79.278706(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.119473(mm),1.4261429(mm),78.920812(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.236268(mm),2.1238944(mm),78.723891(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.451455(mm),-0.045069932(mm),78.862275(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.327225(mm),0.06157353(mm),78.531526(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.50973(mm),2.9871947(mm),78.851999(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.941039(mm),1.6329948(mm),78.423294(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.947854(mm),0.5077392(mm),78.774746(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.274088(mm),1.5537369(mm),78.188241(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.685207(mm),1.8704618(mm),79.173712(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.477537(mm),-1.9701459(mm),79.386656(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.524028(mm),1.7221666(mm),78.673151(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.837621(mm),0.16365385(mm),79.146837(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.292645(mm),-2.8825397(mm),78.890277(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.619407(mm),-1.9104043(mm),79.361641(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.719231(mm),3.2117838(mm),78.638731(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.932529(mm),-3.6967837(mm),78.601121(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.360455(mm),-0.94168867(mm),78.349339(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.980289(mm),0.39441339(mm),78.945354(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.027289(mm),-1.716701(mm),78.584412(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.794529(mm),-0.4013521(mm),78.978108(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.743599(mm),0.40522714(mm),78.105454(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.996591(mm),-0.13632252(mm),78.413498(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.431707(mm),-1.8168243(mm),79.394738(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.513174(mm),-3.56118(mm),79.027719(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.994246(mm),1.025544(mm),79.11922(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.221095(mm),-1.9902565(mm),78.197585(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.234276(mm),-2.4076361(mm),78.900569(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.205788(mm),-2.1570072(mm),78.200284(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.141251(mm),-0.99109331(mm),79.093299(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.071659(mm),-0.98425097(mm),78.223935(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.417625(mm),0.71629862(mm),79.044567(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.256312(mm),-0.85950153(mm),78.191375(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.131517(mm),3.0893868(mm),78.918688(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8190,14 +4824,11 @@ Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.59 cm -863 um 7.04 cm 37.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.5661924 cm 275.06127 um 7.1079276 cm 32.500789 MeV 5.3153291 MeV 1.331916 mm 1.331916 mm Target hIoni - 2 -1.5356176 cm 1.2272064 mm 7.1443086 cm 27.251938 MeV 5.2488509 MeV 1.0729276 mm 2.4048436 mm Target hIoni - 3 -1.5062268 cm 1.9505187 mm 7.1733971 cm 23.219211 MeV 4.0327269 MeV 840.47554 um 3.2453191 mm Target hIoni - 4 -1.4898101 cm 2.5695419 mm 7.1905513 cm 19.337596 MeV 3.8816153 MeV 679.24768 um 3.9245668 mm Target hIoni - 5 -1.4867676 cm 3.1027675 mm 7.1908491 cm 15.962515 MeV 3.3750805 MeV 539.60829 um 4.4641751 mm Target hIoni - 6 -1.483635 cm 3.3893223 mm 7.1907976 cm 13.948892 MeV 2.0136237 MeV 290.43655 um 4.7546116 mm Target Transportation - 7 14.205614 cm 1.9810515 mm -26.2131 cm 13.948906 MeV2.5623912e-16 eV 2.2696346 m 2.2743893 m CaptureMgnt Decay + 0 -1.08 cm 3.08 mm 6.59 cm 68.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.0860861 cm -50.591959 um 6.5676502 cm 60.050957 MeV 8.1560141 MeV 3.1588432 mm 3.1588432 mm Target hIoni + 2 -1.0838032 cm -2.635018 mm 6.5373462 cm 51.95571 MeV 8.0952461 MeV 2.6208798 mm 5.779723 mm Target hIoni + 3 -1.0766313 cm -3.9355015 mm 6.5178742 cm 47.542377 MeV 4.4133338 MeV 1.3227547 mm 7.1024776 mm Target Transportation + 4 -10.067004 cm 10.87665 cm -40.75622 cm 47.5424 MeV8.4598429e-17 eV 1.7705192 m 1.7776216 m CaptureMgnt Decay Track (trackID 3, parentID 1) is processed with stopping code 2 ********************************************************************************************************* @@ -8205,15 +4836,15 @@ Track (trackID 3, parentID 1) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 14.2 cm 1.98 mm -26.2 cm 14.2 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep - 1 16.312502 cm -5.8461901 cm 36.43936 cm 14.226678 MeV3.771008e-15 eV 42.12917 m 42.12917 m CaptureMgnt Transportation + 0 -10.1 cm 10.9 cm -40.8 cm 40.2 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep + 1 -5.0974375 cm -5.8574313 cm 1.265034 m 40.173347 MeV2.5215437e-15 eV 56.118332 m 56.118332 m CaptureMgnt Transportation Track (trackID 19, parentID 3) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.47688002038(mm),3.1110428332836(mm),78.857791387496(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.962139883444(mm),-0.31075958754044(mm),78.419573019566(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8222,7 +4853,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.151918(mm),-0.33205045(mm),78.38611(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.519702(mm),2.0648334(mm),78.850241(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8231,7 +4862,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.415891(mm),-0.92680697(mm),79.044872(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.245028(mm),-0.30220075(mm),78.546019(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8240,7 +4871,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.76434(mm),0.62598893(mm),79.159758(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.655565(mm),-1.5562668(mm),79.178938(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8249,7 +4880,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.983546(mm),-0.30497031(mm),79.121107(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.884352(mm),-0.29025503(mm),78.96227(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8258,7 +4889,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.487765(mm),-3.7753218(mm),78.679545(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.862052(mm),2.5357529(mm),78.260894(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8267,7 +4898,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.160143(mm),-3.0714408(mm),78.737314(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.636962(mm),2.8641532(mm),78.476911(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8276,7 +4907,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.247966(mm),-0.96671782(mm),78.898155(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.603448(mm),1.8282455(mm),78.306493(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8285,7 +4916,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.640275(mm),-0.76944614(mm),78.123673(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.113819(mm),0.71714586(mm),79.274463(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8294,7 +4925,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.352473(mm),-2.2414385(mm),78.350747(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.023534(mm),-1.9174362(mm),78.232421(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8303,7 +4934,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.217486(mm),1.3654119(mm),78.550876(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.540855(mm),-0.79985675(mm),79.375492(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8312,7 +4943,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.924612(mm),0.019375628(mm),79.307825(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.090275(mm),3.509815(mm),78.573306(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8321,7 +4952,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.157504(mm),-0.60531853(mm),78.385125(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.417381(mm),-0.16047934(mm),78.868283(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8330,7 +4961,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.13431(mm),-2.388432(mm),79.27085(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.91491(mm),2.4574973(mm),78.427901(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8339,7 +4970,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.132351(mm),-0.026935865(mm),78.213233(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.024319(mm),1.4674891(mm),79.290244(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8348,7 +4979,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.69133(mm),-1.1731016(mm),78.819978(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.513395(mm),2.5861417(mm),79.02768(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8357,7 +4988,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.831403(mm),1.7211941(mm),78.618952(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.814338(mm),2.5357122(mm),78.269307(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8366,7 +4997,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.081939(mm),0.067455988(mm),78.222122(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.240824(mm),0.91512717(mm),79.252068(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8375,7 +5006,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.158427(mm),0.63144712(mm),78.208635(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.850361(mm),-0.22011129(mm),79.320917(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8384,7 +5015,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.677626(mm),3.7685469(mm),78.998721(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.440057(mm),-0.89859606(mm),78.687957(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8393,7 +5024,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.751158(mm),0.58706296(mm),79.33841(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.53419(mm),-1.0224723(mm),78.671359(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8402,7 +5033,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.354243(mm),-1.3409881(mm),79.055743(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.019543(mm),-1.4127985(mm),79.114759(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8411,7 +5042,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.946594(mm),-1.0958052(mm),78.598641(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.983445(mm),-0.40078513(mm),78.592143(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8420,7 +5051,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.29378(mm),-3.1537029(mm),78.890077(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.251062(mm),-2.7399279(mm),78.721282(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8429,7 +5060,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.950925(mm),0.3727337(mm),79.303185(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.269749(mm),-1.9571149(mm),78.717987(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8438,7 +5069,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.483827(mm),-1.2135392(mm),78.151259(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.33421(mm),-0.27909986(mm),78.882948(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8447,7 +5078,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.189869(mm),2.039313(mm),79.084726(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.921642(mm),-2.7216282(mm),78.426714(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8456,7 +5087,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.190586(mm),-3.630274(mm),78.908273(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.751055(mm),-0.35245478(mm),79.338428(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8465,7 +5096,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.199322(mm),3.2335935(mm),78.554078(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.848005(mm),-3.6902165(mm),78.616025(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8474,7 +5105,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.599778(mm),-1.1925062(mm),79.012448(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.078357(mm),-1.0111651(mm),78.575408(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8483,7 +5114,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.922237(mm),1.5833488(mm),79.131917(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.36649(mm),-3.8195792(mm),78.700929(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8492,7 +5123,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.130866(mm),2.0057501(mm),79.271457(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.353546(mm),-1.3720386(mm),78.174231(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8501,7 +5132,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.650426(mm),0.0098735553(mm),78.827191(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.29413(mm),0.46096358(mm),79.242669(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8510,7 +5141,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.600531(mm),-1.991154(mm),78.835988(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.131218(mm),-3.8885752(mm),78.918741(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8519,7 +5150,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.14653(mm),3.7277622(mm),78.916041(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.179382(mm),-0.82745463(mm),78.20494(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8528,7 +5159,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.785204(mm),1.8345979(mm),78.979753(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.409705(mm),-2.8617153(mm),79.045963(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8537,7 +5168,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.581692(mm),-1.9681323(mm),78.662983(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.897953(mm),2.0479526(mm),78.607218(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8546,7 +5177,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.90641(mm),-1.0619855(mm),79.134708(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.800457(mm),2.3529443(mm),79.15339(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8555,7 +5186,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.75353(mm),-2.0515494(mm),78.985337(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.565027(mm),-1.1888225(mm),79.194903(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8564,7 +5195,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.811206(mm),-2.234635(mm),78.622514(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.109311(mm),-2.1812742(mm),78.922604(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8573,7 +5204,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.481178(mm),-1.2405516(mm),78.328053(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.711476(mm),-1.4173075(mm),78.640099(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8582,7 +5213,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.173985(mm),-0.49006873(mm),78.9112(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.915731(mm),-2.0721449(mm),79.133064(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8591,7 +5222,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.962296(mm),1.537175(mm),78.243219(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-9.9774275(mm),0.35948815(mm),79.474839(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8600,7 +5231,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.395666(mm),-0.2934341(mm),78.872112(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.231771(mm),0.96020274(mm),79.077338(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8609,7 +5240,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.797311(mm),0.2886258(mm),79.153945(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.35861(mm),0.35552595(mm),78.525992(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8618,7 +5249,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.562168(mm),-2.623632(mm),78.666426(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.496956(mm),0.88259218(mm),79.030578(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8627,7 +5258,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.230509(mm),0.56736822(mm),78.724906(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.078775(mm),2.6390852(mm),78.399007(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8636,7 +5267,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.661597(mm),0.045109211(mm),78.119913(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.834007(mm),1.5854449(mm),79.323801(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8645,7 +5276,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.620469(mm),-2.3324744(mm),78.656146(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.175444(mm),3.091941(mm),79.08727(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8654,7 +5285,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.915428(mm),-0.29399022(mm),78.251483(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.549873(mm),0.89553697(mm),79.373902(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8663,7 +5294,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.858889(mm),0.20064852(mm),78.261452(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.642275(mm),-3.5007669(mm),78.828628(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8672,7 +5303,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.09099(mm),3.012522(mm),78.925834(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.226521(mm),-0.55969201(mm),79.430917(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8681,7 +5312,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.161926(mm),1.6804152(mm),78.913326(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.641289(mm),0.52304314(mm),78.652475(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8690,7 +5321,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.610153(mm),0.6752581(mm),79.363273(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.262703(mm),3.5733678(mm),79.071884(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8699,7 +5330,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.252112(mm),-2.8343241(mm),78.721097(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.406676(mm),0.57809565(mm),79.399151(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8708,7 +5339,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.889201(mm),-1.2470704(mm),78.961415(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.708128(mm),0.60842359(mm),78.464362(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8717,7 +5348,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.794995(mm),0.50487854(mm),79.33068(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.65987(mm),2.8505289(mm),78.472871(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8726,7 +5357,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.514099(mm),-2.0144349(mm),78.322248(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.350717(mm),-0.35892714(mm),79.056364(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8735,7 +5366,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.132831(mm),-1.0293649(mm),79.447437(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.681809(mm),0.031715659(mm),78.292676(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8744,7 +5375,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.808152(mm),0.33859715(mm),78.623052(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.449784(mm),-0.23041107(mm),78.333588(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8753,7 +5384,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.926882(mm),-0.91240637(mm),79.131098(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.175903(mm),0.54988693(mm),78.381881(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8762,7 +5393,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.222883(mm),-1.1391592(mm),78.373597(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.074164(mm),0.57711285(mm),78.752474(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8771,7 +5402,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.033171(mm),-2.0198904(mm),78.230721(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.749887(mm),1.6613615(mm),78.633326(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8780,7 +5411,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.76429(mm),1.931132(mm),79.159767(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.636299(mm),-0.73367203(mm),78.477028(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8789,7 +5420,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.464308(mm),0.56677455(mm),78.1547(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.833323(mm),3.029801(mm),78.442287(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8798,7 +5429,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.722106(mm),-2.6894819(mm),78.638224(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.364677(mm),2.7705917(mm),78.524922(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8807,7 +5438,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.718055(mm),-1.8335006(mm),78.462612(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.859835(mm),-3.2644978(mm),79.14292(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8816,7 +5447,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.456648(mm),-3.246913(mm),78.861359(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.805242(mm),-1.626651(mm),78.270911(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8825,7 +5456,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.09891(mm),2.9961037(mm),78.395457(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.506182(mm),-1.3558561(mm),79.028952(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8834,7 +5465,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.567205(mm),1.3474204(mm),79.370846(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.272318(mm),-2.8066881(mm),78.717534(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8843,7 +5474,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.267701(mm),-3.1420469(mm),78.365694(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.597757(mm),2.3269126(mm),79.012804(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8852,7 +5483,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.75654(mm),2.115308(mm),78.632153(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.486944(mm),1.0042469(mm),78.327036(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8861,7 +5492,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.957344(mm),-2.4285777(mm),79.125727(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.537001(mm),2.6647197(mm),78.318209(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8870,7 +5501,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.177661(mm),2.2911305(mm),78.381571(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.463659(mm),-0.96389522(mm),78.860123(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8879,7 +5510,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.808393(mm),2.2236448(mm),78.62301(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.994692(mm),0.3298146(mm),78.413833(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8888,7 +5519,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.305157(mm),2.8978818(mm),79.064398(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.011292(mm),2.0288208(mm),79.116214(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8897,7 +5528,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.061871(mm),2.4636887(mm),79.107296(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.043749(mm),-1.2766976(mm),78.58151(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8906,7 +5537,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.399049(mm),-1.032941(mm),78.166207(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.197812(mm),0.961864(mm),78.378018(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8915,7 +5546,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.13405(mm),-0.52385482(mm),78.565588(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.856017(mm),-0.14382962(mm),78.438285(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8924,7 +5555,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.42369(mm),2.0770833(mm),78.514516(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.158628(mm),0.27555608(mm),78.737581(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8933,7 +5564,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.415624(mm),-0.37550841(mm),78.163285(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.044259(mm),-1.1768365(mm),79.286728(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8942,7 +5573,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.349098(mm),-1.3463922(mm),78.703996(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.120861(mm),-1.1901846(mm),78.74424(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8951,7 +5582,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.555824(mm),0.53908708(mm),79.372852(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.820174(mm),3.4126052(mm),78.620932(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8960,7 +5591,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.754447(mm),-0.55761689(mm),78.456195(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.772845(mm),1.588135(mm),78.629278(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8969,7 +5600,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.942789(mm),-2.2658456(mm),78.246658(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.533016(mm),-2.9582173(mm),78.318912(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8978,7 +5609,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.187196(mm),1.0544852(mm),79.261524(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.031383(mm),3.3621156(mm),78.760018(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8987,7 +5618,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.564469(mm),3.8998193(mm),78.66602(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.420924(mm),-2.1513819(mm),78.338677(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8996,7 +5627,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.982542(mm),-1.140829(mm),79.29761(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.353434(mm),2.7320238(mm),78.879558(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9005,7 +5636,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.122119(mm),-2.5220155(mm),78.744018(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.173512(mm),-3.2181223(mm),78.911283(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9014,7 +5645,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.669508(mm),-1.4372479(mm),79.352807(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.678441(mm),-2.8985264(mm),78.998578(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9023,7 +5654,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.002896(mm),2.2451491(mm),78.412387(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.870384(mm),-0.11545624(mm),78.612079(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9032,7 +5663,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.951799(mm),-1.8446832(mm),78.597723(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.780842(mm),-3.4605503(mm),78.451541(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9041,7 +5672,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.293211(mm),-0.46956937(mm),78.537523(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.567826(mm),-1.9021285(mm),78.312774(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9050,7 +5681,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.248166(mm),-0.78946849(mm),78.369139(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.351206(mm),-0.70689295(mm),79.408932(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9059,7 +5690,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.006057(mm),-1.1126793(mm),78.235502(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.599815(mm),-1.7530698(mm),78.659788(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9068,7 +5699,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.396335(mm),0.67744437(mm),79.400975(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.100868(mm),2.9324837(mm),78.395112(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9077,7 +5708,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.632359(mm),0.50026971(mm),79.006703(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.52043(mm),-0.50491942(mm),78.144804(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9086,7 +5717,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.506678(mm),3.0719648(mm),78.67621(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.424201(mm),-0.54463972(mm),79.396061(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9095,7 +5726,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.16547(mm),-2.0659942(mm),79.265355(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.888353(mm),-0.90482652(mm),78.256257(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9104,7 +5735,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.89333(mm),0.15099277(mm),78.960687(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.498494(mm),-1.6010402(mm),79.382961(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9113,7 +5744,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.429972(mm),-1.6690559(mm),78.866062(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.41584(mm),3.4444722(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 @@ -9122,7 +5753,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.395269(mm),-1.8840378(mm),79.048509(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.787926(mm),-0.82645842(mm),79.1556(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9131,7 +5762,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.845426(mm),-3.6176727(mm),78.969134(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.762793(mm),0.63760042(mm),78.807377(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9140,7 +5771,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.778081(mm),-2.6919291(mm),78.628355(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.225265(mm),-2.5661963(mm),78.725831(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9149,7 +5780,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.434586(mm),0.34141065(mm),79.39423(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.499553(mm),-1.2863203(mm),79.030121(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9158,7 +5789,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.984089(mm),0.90618153(mm),78.415703(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.900452(mm),1.5567608(mm),78.43045(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9167,7 +5798,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.728148(mm),-0.81608997(mm),78.989813(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.326717(mm),3.5814709(mm),78.531615(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9176,7 +5807,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.002254(mm),0.3514534(mm),79.117808(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.594164(mm),-2.8574054(mm),78.30813(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9185,7 +5816,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.782374(mm),0.2156767(mm),78.274944(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.773885(mm),-3.6663196(mm),78.629094(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9194,7 +5825,3614 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.719302(mm),-2.519229(mm),78.286065(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.491785(mm),-0.53299862(mm),78.855163(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.227859(mm),-2.9166049(mm),78.9017(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.772711(mm),3.1815512(mm),78.981955(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.788666(mm),2.3191711(mm),78.626488(mm),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 = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 cm 2.32 mm 7.23 cm 26.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3497834 cm 2.1788518 mm 7.1561715 cm 22.267855 MeV 4.2750806 MeV 810.9928 um 810.9928 um Target hIoni + 2 -1.3215017 cm 1.9610847 mm 7.1046048 cm 18.45237 MeV 3.8154851 MeV 643.5687 um 1.4545615 mm Target hIoni + 3 -1.2886441 cm 1.721898 mm 7.0746866 cm 15.391818 MeV 3.0605524 MeV 510.00886 um 1.9645704 mm Target hIoni + 4 -1.2664685 cm 1.5681903 mm 7.0438783 cm 12.417708 MeV 2.9741097 MeV 414.42263 um 2.378993 mm Target hIoni + 5 -1.2492014 cm 1.4522148 mm 7.0186174 cm 9.3790589 MeV 3.0386493 MeV 331.85584 um 2.7108488 mm Target hIoni + 6 -1.2345423 cm 1.3830498 mm 6.9992236 cm 6.5421716 MeV 2.8368873 MeV 257.41818 um 2.968267 mm Target hIoni + 7 -1.2265761 cm 1.3482199 mm 6.9825097 cm 3.5387738 MeV 3.0033979 MeV 193.53931 um 3.1618063 mm Target hIoni + 8 -1.2214606 cm 1.3212771 mm 6.9766452 cm 473.0969 keV 3.0656769 MeV 105.39828 um 3.2672046 mm Target hIoni + 9 -1.2212698 cm 1.3194386 mm 6.9767683 cm 7.3841052 keV 465.7128 keV 4.4351573 um 3.2716398 mm Target hIoni + 10 -1.2212697 cm 1.3194374 mm 6.9767686 cm 0 eV 7.3841052 keV 74.997231 nm 3.2717148 mm Target hIoni + 11 -1.2212697 cm 1.3194374 mm 6.9767686 cm 0 eV 0 eV 0 fm 3.2717148 mm Target Scintillation +Track (trackID 3, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 15, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.22 cm 1.32 mm 6.98 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.2117379 cm 1.403004 mm 6.9785744 cm 1.2952562 MeV 2.8245565 MeV 143.92583 um 143.92583 um Target muIoni + 2 -1.2104501 cm 1.4101088 mm 6.9778238 cm 131.29145 keV 1.1639648 MeV 24.060171 um 167.986 um Target muIoni + 3 -1.2104442 cm 1.4101174 mm 6.9777844 cm 57.889986 keV 73.401461 keV 862.03097 nm 168.84804 um Target muIoni + 4 -1.2104353 cm 1.4101314 mm 6.9777919 cm 0 eV 57.889986 keV 318.09142 nm 169.16613 um Target muIoni + 5 -1.2104353 cm 1.4101314 mm 6.9777919 cm 0 eV 0 eV 0 fm 169.16613 um Target Scintillation +Track (trackID 15, parentID 3) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.095463(mm),-2.2210071(mm),78.396065(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.08236(mm),-0.66449197(mm),79.456337(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.150186(mm),-3.2678201(mm),78.739069(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.995985(mm),2.0262334(mm),78.237278(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.576406(mm),-1.2415854(mm),78.487588(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.423709(mm),0.62708858(mm),79.219821(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.718838(mm),0.42648487(mm),78.638801(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.998457(mm),-0.61092831(mm),78.413169(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.836633(mm),-3.1204947(mm),79.147011(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.738534(mm),3.4630979(mm),78.987982(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.927607(mm),2.8055482(mm),78.425662(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.233201(mm),-1.3681547(mm),78.371778(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.74901(mm),-0.91248842(mm),78.457153(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.356718(mm),1.2827642(mm),78.349998(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.377503(mm),-3.3447313(mm),78.52266(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.06477(mm),-1.9642362(mm),78.22515(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.080831(mm),-2.4296402(mm),79.280279(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.99207(mm),1.9671216(mm),78.76695(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.293427(mm),3.4162894(mm),79.066466(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.572491(mm),0.91011471(mm),78.488279(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.414013(mm),-2.8222942(mm),79.045204(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.074024(mm),0.25821861(mm),78.223518(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.294547(mm),0.30895411(mm),78.713615(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.52805(mm),-0.077863232(mm),78.319788(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.202991(mm),-3.0695632(mm),79.082412(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.098125(mm),-1.3869465(mm),79.27723(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.639793(mm),0.6867855(mm),79.005392(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.601661(mm),-0.083637087(mm),79.012116(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.327839(mm),0.75509734(mm),79.060398(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.604333(mm),-1.4520988(mm),79.011645(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.398769(mm),0.65820552(mm),78.342584(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.468762(mm),0.61079563(mm),78.330242(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.79888(mm),1.2178557(mm),78.977341(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.233367(mm),-1.4848703(mm),78.900729(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.14653(mm),3.2977367(mm),78.563387(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.988579(mm),1.3356104(mm),78.414911(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.085647(mm),-0.78758991(mm),78.926776(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.280957(mm),1.992506(mm),78.539684(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.643048(mm),-0.81388508(mm),78.652164(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.002609(mm),-0.40358822(mm),78.588764(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.646422(mm),0.18005974(mm),79.18055(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.502369(mm),2.6411185(mm),78.324316(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.796124(mm),2.5948258(mm),79.154154(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.235065(mm),-1.1174418(mm),78.724103(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.07101(mm),3.2904882(mm),78.75303(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.713238(mm),1.8336955(mm),78.463461(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.933069(mm),2.7968401(mm),78.424699(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.110326(mm),-1.6514081(mm),78.746098(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.648762(mm),-3.0030177(mm),79.003811(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.063005(mm),2.3337962(mm),78.401788(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.580969(mm),2.5536595(mm),78.663111(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.945519(mm),0.43936758(mm),78.598831(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.855281(mm),0.90705221(mm),79.143723(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.784652(mm),-1.5668635(mm),78.97985(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.843359(mm),3.85313(mm),78.616844(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.336444(mm),2.3436487(mm),79.235208(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.433984(mm),1.6876667(mm),78.160047(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.50357(mm),-3.0020475(mm),79.205739(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.822174(mm),1.1582808(mm),78.973234(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-9.9953257(mm),-0.46399346(mm),79.471683(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.967115(mm),3.0629536(mm),78.77135(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.815436(mm),-1.3498864(mm),78.621768(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.17345(mm),-1.4261144(mm),78.205986(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.358295(mm),0.94776425(mm),78.34972(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.822977(mm),1.5865368(mm),79.149419(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.493293(mm),-0.6841474(mm),78.502243(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.654559(mm),-0.036697476(mm),78.473808(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.349017(mm),-0.96893476(mm),79.409318(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.001715(mm),-0.73507701(mm),79.117903(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.748078(mm),0.6925926(mm),78.104664(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.450183(mm),2.4006745(mm),78.509845(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.751311(mm),-1.1174593(mm),78.280421(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.842892(mm),-1.0536541(mm),78.793254(mm),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 = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 cm -1.06 mm 7.14 cm 69 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.5498349 cm 114.82629 um 7.1611888 cm 59.304241 MeV 9.6747536 MeV 3.2112162 mm 3.2112162 mm Target hIoni + 2 -1.6659487 cm 528.77497 um 7.1647722 cm 55.749056 MeV 3.5551845 MeV 1.2372505 mm 4.4484667 mm Target Transportation + 3 -9.5149937 mm -2.221034 mm 7.3119977 cm 55.749073 MeV4.9784314e-17 eV 1.1378268 m 1.1422753 m CaptureMgnt Transportation + 4 -1.170392 cm -1.4150488 mm 7.3122995 cm 48.215461 MeV 7.5336116 MeV 2.34954 mm 1.1446248 m Target hIoni + 5 -1.3373481 cm -543.89051 um 7.3171208 cm 39.287043 MeV 8.9284182 MeV 1.8978633 mm 1.1465227 m Target hIoni + 6 -1.4635528 cm 53.959657 um 7.3175796 cm 33.136861 MeV 6.1501813 MeV 1.4074214 mm 1.1479301 m Target hIoni + 7 -1.565013 cm 462.47359 um 7.3174436 cm 28.515984 MeV 4.6208777 MeV 1.1027224 mm 1.1490328 m Target hIoni + 8 -1.6436573 cm 855.2319 um 7.3059391 cm 24.506977 MeV 4.0090066 MeV 894.19914 um 1.149927 m Target hIoni + 9 -1.6800774 cm 1.0661985 mm 7.3080224 cm 22.238576 MeV 2.2684013 MeV 423.5391 um 1.1503505 m Target Transportation + 10 15.184948 cm 10.782743 cm 12.118909 cm 22.238595 MeV3.4049903e-17 eV 43.147789 cm 1.5818284 m CaptureMgnt Decay +Track (trackID 3, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 19, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 15.2 cm 10.8 cm 12.1 cm 35.6 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep + 1 -8.4963405 cm 6.5172317 cm 2 m 35.594781 MeV3.6044196e-16 eV 7.4947009 m 7.4947009 m CaptureMgnt Transportation + 2 -8.6860996 cm 9.4554869 cm 2.0076246 m 35.586628 MeV 5.1350923 keV 3.0414977 cm 7.5251158 m World muIoni + 3 -8.7029092 cm 9.7173828 cm 2.0083035 m 35.58304 MeV 1.6850063 keV 2.71075 mm 7.5278266 m World muIoni + 4 -9.0370794 cm 14.915257 cm 2.0217985 m 35.567655 MeV 14.148643 keV 5.3805948 cm 7.5816325 m World muIoni + 5 -9.5116179 cm 22.453154 cm 2.0413735 m 35.545804 MeV 20.65457 keV 7.8023812 cm 7.6596563 m World muIoni + 6 -9.6184917 cm 24.169532 cm 2.0458679 m 35.541927 MeV 2.7754205 keV 1.7774641 cm 7.677431 m World muIoni + 7 -9.6888437 cm 25.321902 cm 2.0488732 m 35.534956 MeV 3.0602978 keV 1.1929894 cm 7.6893609 m World muIoni + 8 -9.762095 cm 26.52808 cm 2.0520239 m 35.530346 MeV 3.5434697 keV 1.2487981 cm 7.7018489 m World muIoni + 9 -9.7813933 cm 26.847261 cm 2.0528538 m 35.507746 MeV 836.27545 eV 3.3035978 mm 7.7051525 m World muIoni + 10 -9.8964462 cm 28.806391 cm 2.0579346 m 35.502146 MeV 4.2215869 keV 2.0272085 cm 7.7254245 m World muIoni + 11 -10.455072 cm 38.430378 cm 2.0830832 m 35.4774 MeV 24.745881 keV 9.9628458 cm 7.825053 m World muIoni + 12 -10.777317 cm 43.791704 cm 2.0969318 m 35.464742 MeV 11.535046 keV 5.5466743 cm 7.8805197 m World muIoni + 13 -10.887033 cm 45.493351 cm 2.1013455 m 35.45884 MeV 3.8718115 keV 1.7613772 cm 7.8981335 m World muIoni + 14 -11.111854 cm 49.020782 cm 2.1104883 m 35.446229 MeV 7.9854641 keV 3.6509255 cm 7.9346428 m World muIoni + 15 -11.327854 cm 52.419751 cm 2.1193113 m 35.432497 MeV 8.0231523 keV 3.518256 cm 7.9698253 m World muIoni + 16 -11.459986 cm 54.469027 cm 2.1246262 m 35.421253 MeV 4.7048187 keV 2.1211961 cm 7.9910373 m World muIoni + 17 -11.630943 cm 57.19573 cm 2.1316509 m 35.415875 MeV 5.3774393 keV 2.8209233 cm 8.0192465 m World muIoni + 18 -11.913581 cm 61.731583 cm 2.1432649 m 35.404218 MeV 10.553584 keV 4.6907089 cm 8.0661536 m World muIoni + 19 -12.17062 cm 65.751147 cm 2.1535262 m 35.391918 MeV 8.031802 keV 4.1564366 cm 8.107718 m World muIoni + 20 -12.326417 cm 68.195126 cm 2.1597514 m 35.379576 MeV 7.9909977 keV 2.5268241 cm 8.1329862 m World muIoni + 21 -12.331983 cm 68.284119 cm 2.1599782 m 35.377175 MeV 220.81185 eV 920.06209 um 8.1339063 m World muIoni + 22 -13.153881 cm 81.49797 cm 2.1936157 m 35.343174 MeV 32.341699 keV 13.660082 cm 8.2705071 m World muIoni + 23 -13.460654 cm 86.930296 cm 2.2075877 m 35.327842 MeV 13.063246 keV 5.617522 cm 8.3266823 m World muIoni + 24 -13.519509 cm 87.912457 cm 2.2101261 m 35.324691 MeV 1.904941 keV 1.016137 cm 8.3368437 m World muIoni + 25 -13.606406 cm 89.340636 cm 2.2138029 m 35.318008 MeV 4.0348135 keV 1.4773092 cm 8.3516168 m World muIoni + 26 -13.853035 cm 93.480354 cm 2.2243775 m 35.306298 MeV 10.276287 keV 4.2797619 cm 8.3944144 m World muIoni + 27 -13.954559 cm 95.147019 cm 2.2286804 m 35.301665 MeV 2.7861004 keV 1.7243047 cm 8.4116574 m World muIoni + 28 -13.962446 cm 95.275278 cm 2.2290109 m 35.29056 MeV 137.75577 eV 1.3268161 mm 8.4129843 m World muIoni + 29 -13.984165 cm 95.626186 cm 2.2299111 m 35.288661 MeV 624.4866 eV 3.6292415 mm 8.4166135 m World muIoni + 30 -14.194857 cm 99.029397 cm 2.2386582 m 35.279269 MeV 8.3036287 keV 3.5201384 cm 8.4518149 m World muIoni + 31 -14.277688 cm 1.0037375 m 2.2421059 m 35.271849 MeV 3.7730913 keV 1.390326 cm 8.4657181 m World muIoni + 32 -14.47309 cm 1.0360737 m 2.2503604 m 35.264406 MeV 5.8557125 keV 3.3430353 cm 8.4991485 m World muIoni + 33 -14.53417 cm 1.0461275 m 2.2529218 m 35.260407 MeV 2.0818918 keV 1.0392854 cm 8.5095414 m World muIoni + 34 -14.630755 cm 1.0621707 m 2.2570164 m 35.252436 MeV 3.7219384 keV 1.6585652 cm 8.526127 m World muIoni + 35 -14.817752 cm 1.0939345 m 2.26517 m 35.226742 MeV 6.662322 keV 3.2846883 cm 8.5589739 m World muIoni + 36 -15.045787 cm 1.1318632 m 2.2748977 m 35.215861 MeV 9.6523469 keV 3.9222722 cm 8.5981966 m World muIoni + 37 -15.64933 cm 1.2356977 m 2.3015941 m 35.187583 MeV 26.083549 keV 10.738159 cm 8.7055782 m World muIoni + 38 -15.766865 cm 1.2556826 m 2.3067751 m 35.177482 MeV 4.6656522 keV 2.0679005 cm 8.7262572 m World muIoni + 39 -15.904044 cm 1.2799569 m 2.3130475 m 35.172794 MeV 3.5985351 keV 2.5109134 cm 8.7513663 m World muIoni + 40 -16.366977 cm 1.3596071 m 2.3335046 m 35.154422 MeV 17.161028 keV 8.2365673 cm 8.833732 m World muIoni + 41 -16.630007 cm 1.4029536 m 2.3447143 m 35.143958 MeV 10.463651 keV 4.4849727 cm 8.8785817 m World muIoni + 42 -16.882759 cm 1.4443515 m 2.3553412 m 35.133666 MeV 10.291721 keV 4.2814846 cm 8.9213966 m World muIoni + 43 -17.019239 cm 1.4661679 m 2.360981 m 35.129459 MeV 4.2070576 keV 2.257492 cm 8.9439715 m World muIoni + 44 -17.067211 cm 1.4738757 m 2.3629719 m 35.128477 MeV 982.78206 eV 7.9751996 mm 8.9519467 m World muIoni + 45 -17.090236 cm 1.4775621 m 2.3639245 m 35.124701 MeV 1.2730215 keV 3.8144979 mm 8.9557612 m World muIoni + 46 -17.229769 cm 1.4996953 m 2.3696373 m 35.117009 MeV 6.2646347 keV 2.2901034 cm 8.9786622 m World muIoni + 47 -17.495825 cm 1.5399441 m 2.3800608 m 35.104641 MeV 11.041533 keV 4.1661737 cm 9.020324 m World muIoni + 48 -17.676962 cm 1.5675715 m 2.3871939 m 35.098027 MeV 5.1691612 keV 2.859088 cm 9.0489149 m World muIoni + 49 -17.732705 cm 1.5760744 m 2.3893717 m 35.09567 MeV 2.3562484 keV 8.7950152 mm 9.0577099 m World muIoni + 50 -17.746957 cm 1.5782593 m 2.3899307 m 35.078351 MeV 1.0126496 keV 2.2598231 mm 9.0599697 m World muIoni + 51 -17.754294 cm 1.5793677 m 2.3902135 m 35.073007 MeV 133.85611 eV 1.1462512 mm 9.0611159 m World muIoni + 52 -17.770568 cm 1.5818866 m 2.3908558 m 35.071302 MeV 705.5778 eV 2.6045566 mm 9.0637205 m World muIoni + 53 -17.827341 cm 1.5907202 m 2.3931095 m 35.067341 MeV 2.8585846 keV 9.1342405 mm 9.0728547 m World muIoni + 54 -18.216994 cm 1.6515552 m 2.4086664 m 35.050899 MeV 16.441873 keV 6.2913484 cm 9.1357682 m World muIoni + 55 -18.336164 cm 1.6699766 m 2.4133769 m 35.042809 MeV 6.3539586 keV 1.9051442 cm 9.1548197 m World muIoni + 56 -18.539703 cm 1.7016978 m 2.4214957 m 35.036343 MeV 6.46643 keV 3.2806969 cm 9.1876266 m World muIoni + 57 -18.543445 cm 1.7022787 m 2.4216459 m 35.034648 MeV 271.04724 eV 601.19626 um 9.1882278 m World muIoni + 58 -18.662932 cm 1.7209516 m 2.4264752 m 35.031696 MeV 2.9514489 keV 1.9324197 cm 9.207552 m World muIoni + 59 -18.790914 cm 1.7402522 m 2.4314544 m 35.026538 MeV 3.7619127 keV 1.997361 cm 9.2275256 m World muIoni + 60 -18.9236 cm 1.7601961 m 2.4365935 m 35.020212 MeV 5.3114259 keV 2.0638043 cm 9.2481637 m World muIoni + 61 -19.79942 cm 1.8907664 m 2.4704298 m 34.988888 MeV 31.323916 keV 13.516797 cm 9.3833316 m World muIoni + 62 -20.034072 cm 1.9246612 m 2.479229 m 34.978109 MeV 8.7994909 keV 3.5096882 cm 9.4184285 m World muIoni + 63 -20.544459 cm 1.9964316 m 2.4979058 m 34.962338 MeV 14.493212 keV 7.4336333 cm 9.4927649 m World muIoni + 64 -20.746734 cm 2.0240714 m 2.5049673 m 34.953098 MeV 7.4704642 keV 2.8599193 cm 9.5213641 m World muIoni + 65 -20.836117 cm 2.0361546 m 2.5080463 m 34.948801 MeV 3.2954712 keV 1.2501318 cm 9.5338654 m World muIoni + 66 -20.868594 cm 2.0405622 m 2.5091692 m 34.947086 MeV 434.27304 eV 4.5599502 mm 9.5384253 m World muIoni + 67 -21.219634 cm 2.0880221 m 2.5212746 m 34.932476 MeV 12.17593 keV 4.9105159 cm 9.5875305 m World muIoni + 68 -21.312499 cm 2.1002408 m 2.5244139 m 34.922277 MeV 3.6201806 keV 1.2649659 cm 9.6001801 m World muIoni + 69 -21.546988 cm 2.1312735 m 2.5323603 m 34.912659 MeV 7.6546708 keV 3.2119752 cm 9.6322999 m World muIoni + 70 -22.103451 cm 2.2081656 m 2.5519614 m 34.890156 MeV 20.154131 keV 7.9546157 cm 9.7118461 m World muIoni + 71 -23.111142 cm 2.3479827 m 2.587006 m 34.852264 MeV 36.488532 keV 14.449461 cm 9.8563407 m World muIoni + 72 -23.513289 cm 2.410691 m 2.6029529 m 34.832534 MeV 18.484938 keV 6.4829182 cm 9.9211698 m World muIoni + 73 -23.741553 cm 2.4467481 m 2.6121218 m 34.811235 MeV 7.9801365 keV 3.7274588 cm 9.9584444 m World muIoni + 74 -23.798583 cm 2.4558029 m 2.6144195 m 34.808582 MeV 1.5711012 keV 9.3591534 mm 9.9678036 m World muIoni + 75 -24.274328 cm 2.5309966 m 2.6335415 m 34.788061 MeV 16.053485 keV 7.7732923 cm 10.045537 m World muIoni + 76 -24.449266 cm 2.5578898 m 2.6403961 m 34.774513 MeV 10.469759 keV 2.7808081 cm 10.073345 m World muIoni + 77 -24.496434 cm 2.5649845 m 2.6422196 m 34.769904 MeV 2.1042645 keV 7.3405404 mm 10.080685 m World muIoni + 78 -24.735453 cm 2.6007988 m 2.6514263 m 34.759545 MeV 10.358754 keV 3.7055955 cm 10.117741 m World muIoni + 79 -24.899659 cm 2.6262512 m 2.6579492 m 34.750421 MeV 9.1234531 keV 2.6326167 cm 10.144067 m World muIoni + 80 -24.993118 cm 2.6405883 m 2.6616361 m 34.745235 MeV 2.8967111 keV 1.4833082 cm 10.1589 m World muIoni + 81 -25.363754 cm 2.699051 m 2.6767066 m 34.730343 MeV 13.766173 keV 6.0487588 cm 10.219388 m World muIoni + 82 -25.383234 cm 2.7020762 m 2.6774815 m 34.726881 MeV 392.02452 eV 3.1289672 mm 10.222517 m World muIoni + 83 -25.733419 cm 2.7561916 m 2.6913269 m 34.712753 MeV 12.188745 keV 5.5968245 cm 10.278485 m World muIoni + 84 -25.815405 cm 2.7685042 m 2.6944741 m 34.700223 MeV 2.776316 keV 1.2734936 cm 10.29122 m World muIoni + 85 -25.87928 cm 2.7779964 m 2.6968894 m 34.698884 MeV 1.3392001 keV 9.8154891 mm 10.301036 m World muIoni + 86 -25.970044 cm 2.7915723 m 2.700358 m 34.685078 MeV 4.480163 keV 1.4041349 cm 10.315077 m World muIoni + 87 -26.421999 cm 2.8604752 m 2.7180676 m 34.663646 MeV 18.978518 keV 7.1285982 cm 10.386363 m World muIoni + 88 -26.45467 cm 2.8654608 m 2.7193497 m 34.656478 MeV 1.1838162 keV 5.1580866 mm 10.391521 m World muIoni + 89 -26.906798 cm 2.9346686 m 2.7371961 m 34.637446 MeV 17.574966 keV 7.1614793 cm 10.463136 m World muIoni + 90 -26.934008 cm 2.9388496 m 2.7382833 m 34.633019 MeV 796.33259 eV 4.3286191 mm 10.467464 m World muIoni + 91 -27.001872 cm 2.9493146 m 2.7409969 m 34.629833 MeV 2.1305352 keV 1.0832379 cm 10.478297 m World muIoni + 92 -27.092143 cm 2.9630837 m 2.74457 m 34.62117 MeV 4.5593022 keV 1.425385 cm 10.492551 m World muIoni + 93 -27.641469 cm 3.0487874 m 2.7668485 m 34.598256 MeV 21.810592 keV 8.8722403 cm 10.581273 m World muIoni + 94 -28.114644 cm 3.126503 m 2.7868223 m 34.577659 MeV 19.141628 keV 8.0380877 cm 10.661654 m World muIoni + 95 -28.18866 cm 3.1389419 m 2.7900217 m 34.568039 MeV 5.5083644 keV 1.2865155 cm 10.674519 m World muIoni + 96 -28.275577 cm 3.1534915 m 2.7937557 m 34.560679 MeV 6.0596763 keV 1.5046241 cm 10.689565 m World muIoni + 97 -28.518164 cm 3.1942609 m 2.8041253 m 34.549429 MeV 7.4774729 keV 4.2137359 cm 10.731703 m World muIoni + 98 -28.834012 cm 3.2490526 m 2.8181033 m 34.534537 MeV 13.649025 keV 5.6634828 cm 10.788337 m World muIoni + 99 -29.20711 cm 3.3120326 m 2.8340459 m 34.516324 MeV 16.655092 keV 6.5073644 cm 10.853411 m World muIoni + 100 -29.313389 cm 3.3309988 m 2.838855 m 34.512277 MeV 2.9868274 keV 1.9595286 cm 10.873006 m World muIoni + 101 -29.51014 cm 3.365018 m 2.8475947 m 34.503751 MeV 6.9007073 keV 3.5179001 cm 10.908185 m World muIoni + 102 -30.037983 cm 3.4548809 m 2.8707636 m 34.481025 MeV 21.552312 keV 9.2951866 cm 11.001137 m World muIoni + 103 -30.296508 cm 3.499372 m 2.8823174 m 34.471599 MeV 8.108089 keV 4.6039566 cm 11.047177 m World muIoni + 104 -30.423429 cm 3.5215871 m 2.8881959 m 34.467642 MeV 3.9574509 keV 2.3014764 cm 11.070192 m World muIoni + 105 -30.428117 cm 3.5223959 m 2.8884111 m 34.466286 MeV 139.57664 eV 838.21588 um 11.07103 m World muIoni + 106 -30.456331 cm 3.5272385 m 2.8896979 m 34.463142 MeV 1.5469188 keV 5.0185579 mm 11.076048 m World muIoni + 107 -30.522204 cm 3.5384837 m 2.8926805 m 34.455514 MeV 1.6580405 keV 1.1652695 cm 11.087701 m World muIoni + 108 -30.77657 cm 3.5810026 m 2.9039444 m 34.437408 MeV 11.244527 keV 4.4059108 cm 11.13176 m World muIoni + 109 -31.355058 cm 3.6806507 m 2.9306043 m 34.411151 MeV 26.256514 keV 10.331524 cm 11.235075 m World muIoni + 110 -31.437177 cm 3.6952383 m 2.9344955 m 34.404074 MeV 4.6068733 keV 1.5119942 cm 11.250195 m World muIoni + 111 -31.449698 cm 3.697491 m 2.9350961 m 34.403295 MeV 779.35976 eV 2.3347989 mm 11.25253 m World muIoni + 112 -31.627942 cm 3.7296525 m 2.9436763 m 34.393184 MeV 7.9570659 keV 3.3334033 cm 11.285864 m World muIoni + 113 -31.909911 cm 3.781897 m 2.9575783 m 34.381027 MeV 12.156101 keV 5.4136066 cm 11.34 m World muIoni + 114 -32.178903 cm 3.8306047 m 2.9705706 m 34.368553 MeV 11.165092 keV 5.0482499 cm 11.390483 m World muIoni + 115 -33.22279 cm 4.0163228 m 3.0203372 m 34.327785 MeV 39.044343 keV 19.255496 cm 11.583038 m World muIoni + 116 -33.279653 cm 4.0272516 m 3.0233633 m 34.324246 MeV 2.1142703 keV 1.1354324 cm 11.594392 m World muIoni + 117 -33.329078 cm 4.0367883 m 3.0259895 m 34.322278 MeV 1.9683409 keV 9.9040123 mm 11.604296 m World muIoni + 118 -33.488414 cm 4.0686149 m 3.0347215 m 34.314301 MeV 6.6292155 keV 3.3041262 cm 11.637337 m World muIoni + 119 -33.575647 cm 4.0872937 m 3.0398382 m 34.304903 MeV 5.3740199 keV 1.9386577 cm 11.656724 m World muIoni + 120 -33.873238 cm 4.1503067 m 3.0571264 m 34.274846 MeV 11.39015 keV 6.5409393 cm 11.722133 m World muIoni + 121 -34.179891 cm 4.2230274 m 3.0772585 m 34.226618 MeV 15.80884 keV 7.5518445 cm 11.797652 m World muIoni + 122 -34.39179 cm 4.2752888 m 3.0915298 m 34.207165 MeV 12.059153 keV 5.4216493 cm 11.851868 m World muIoni + 123 -34.39397 cm 4.2758137 m 3.0916758 m 34.207099 MeV 66.651237 eV 545.22134 um 11.852413 m World muIoni + 124 -34.414267 cm 4.2806767 m 3.0930266 m 34.204504 MeV 1.5715583 keV 5.051268 mm 11.857465 m World muIoni + 125 -34.683012 cm 4.344998 m 3.1108049 m 34.187729 MeV 13.371696 keV 6.6787245 cm 11.924252 m World muIoni + 126 -34.798854 cm 4.3745661 m 3.118946 m 34.18213 MeV 4.3682238 keV 3.0690284 cm 11.954942 m World muIoni + 127 -34.965481 cm 4.4188944 m 3.1311645 m 34.165518 MeV 11.800444 keV 4.6011621 cm 12.000954 m World muIoni + 128 -35.065216 cm 4.457123 m 3.1418739 m 34.154994 MeV 6.9683958 keV 3.9712946 cm 12.040667 m World muIoni + 129 -35.06811 cm 4.4582789 m 3.142201 m 34.153528 MeV 171.42321 eV 1.2016698 mm 12.041868 m World muIoni + 130 -35.40061 cm 4.588931 m 3.1791958 m 34.121189 MeV 30.586194 keV 13.583012 cm 12.177699 m World muIoni + 131 -35.596369 cm 4.6641107 m 3.200248 m 34.104296 MeV 16.892385 keV 7.8096379 cm 12.255795 m World muIoni + 132 -35.632801 cm 4.6782186 m 3.2041974 m 34.096198 MeV 3.0509073 keV 1.465479 cm 12.27045 m World muIoni + 133 -35.762049 cm 4.7251996 m 3.2174037 m 34.007641 MeV 13.754433 keV 4.8818978 cm 12.319269 m World muIoni + 134 -36.031677 cm 4.8133217 m 3.2420925 m 33.984092 MeV 22.056228 keV 9.1555296 cm 12.410824 m World muIoni + 135 -36.127571 cm 4.8419528 m 3.2500264 m 33.974302 MeV 7.0723429 keV 2.9725484 cm 12.44055 m World muIoni + 136 -36.334064 cm 4.900618 m 3.2661831 m 33.959144 MeV 10.483297 keV 6.088453 cm 12.501434 m World muIoni + 137 -36.449455 cm 4.931614 m 3.2747979 m 33.947252 MeV 6.559012 keV 3.2191648 cm 12.533626 m World muIoni + 138 -36.496346 cm 4.9442427 m 3.2782897 m 33.941905 MeV 3.7882854 keV 1.3110938 cm 12.546737 m World muIoni + 139 -36.573771 cm 4.9652565 m 3.2840796 m 33.936046 MeV 3.6223015 keV 2.1810633 cm 12.568547 m World muIoni + 140 -36.651076 cm 4.9865489 m 3.2899412 m 33.929371 MeV 6.675033 keV 2.2097968 cm 12.590645 m OutOfWorld Transportation +Track (trackID 19, parentID 3) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.549724826542(mm),-0.88372765488995(mm),79.021273863473(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.158258(mm),0.73058336(mm),78.737646(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.885538(mm),3.1435711(mm),78.785734(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.04157(mm),-2.6926935(mm),79.287202(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.134897(mm),0.89908109(mm),78.212784(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.039925(mm),1.0239158(mm),78.405857(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.935987(mm),2.3858718(mm),78.424184(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.937265(mm),2.4874381(mm),78.247632(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.551246(mm),-1.9695898(mm),79.021006(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.976752(mm),2.0262016(mm),79.122304(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.443908(mm),1.3087123(mm),78.158297(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.666527(mm),1.7119663(mm),79.353333(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.650759(mm),2.4235146(mm),78.474478(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.704782(mm),1.1640384(mm),79.17026(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.666665(mm),-0.26129057(mm),79.176981(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.937657(mm),-1.793891(mm),78.776544(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.089237(mm),-0.77644905(mm),79.455124(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.333817(mm),1.9239593(mm),78.354036(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.310024(mm),0.28202135(mm),78.358232(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.132896(mm),-0.36008643(mm),78.213137(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.700222(mm),-2.863113(mm),79.171064(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.67259(mm),-2.9077102(mm),78.470628(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.852819(mm),1.164052(mm),78.615176(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.082292(mm),-3.6140627(mm),78.574714(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.269447(mm),1.4746296(mm),78.18906(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.739031(mm),-3.3281917(mm),78.458913(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.159695(mm),-0.54808021(mm),78.91372(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.416524(mm),2.9267528(mm),79.221088(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.663645(mm),2.9790148(mm),79.001187(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.137408(mm),0.7878354(mm),79.270303(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.625319(mm),-3.4179128(mm),78.655291(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.938684(mm),-0.71837413(mm),78.600036(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.554141(mm),-0.060776521(mm),78.13886(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.962468(mm),0.37906443(mm),78.595842(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.396069(mm),1.7842741(mm),78.872041(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.923366(mm),2.3693079(mm),78.602737(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.086974(mm),-2.983993(mm),78.926542(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.604529(mm),-1.3761732(mm),78.306302(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.558041(mm),-0.1010964(mm),79.019807(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.338422(mm),0.58698576(mm),78.705878(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.314743(mm),2.0257847(mm),78.533727(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.824034(mm),2.7040387(mm),78.620252(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.286857(mm),0.39818888(mm),78.891298(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.221677(mm),2.2203165(mm),78.90279(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.524215(mm),-1.6789935(mm),79.025772(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.754353(mm),-3.3331156(mm),78.632538(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.241154(mm),-0.4972415(mm),78.194048(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.057353(mm),0.71327938(mm),79.284419(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.043357(mm),0.28493705(mm),78.581579(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.579407(mm),2.890714(mm),78.310732(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.974008(mm),-2.7094764(mm),78.946461(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.959925(mm),-2.330074(mm),79.125272(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.413264(mm),3.3267111(mm),78.692682(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.028613(mm),0.85291114(mm),79.289487(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.549283(mm),3.1505264(mm),78.668698(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.58594(mm),2.1999406(mm),79.191215(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.335069(mm),-0.8484415(mm),78.530143(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.403567(mm),1.646168(mm),79.399699(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.629383(mm),-0.095241628(mm),78.125593(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.553914(mm),3.176041(mm),79.020535(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.0462(mm),1.333682(mm),79.286386(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.754362(mm),-1.133936(mm),78.632537(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.674625(mm),-1.4945102(mm),78.822924(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.64133(mm),-0.024841502(mm),78.299813(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.682328(mm),3.1268116(mm),79.174219(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.113102(mm),-0.88140097(mm),79.450916(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.795771(mm),1.6901302(mm),79.330543(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.814491(mm),0.01792911(mm),78.445607(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.083131(mm),-2.071387(mm),79.103547(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.524782(mm),0.61104001(mm),78.849345(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.035367(mm),-2.4657804(mm),78.759315(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.589966(mm),-0.89246181(mm),78.837851(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.324217(mm),0.15486411(mm),78.708383(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.613159(mm),-3.6138658(mm),79.010089(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.940741(mm),1.8647242(mm),78.952327(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.419739(mm),0.93489381(mm),79.396848(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.733615(mm),-1.8186399(mm),78.988849(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.481089(mm),-2.3461098(mm),79.033376(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.953774(mm),-1.5043707(mm),78.950029(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.659409(mm),-0.77533509(mm),79.17826(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.846962(mm),-1.7548101(mm),78.439882(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.568425(mm),0.76879599(mm),79.017977(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.818378(mm),-1.4311086(mm),79.326557(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.763163(mm),-0.62868865(mm),78.630985(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.995918(mm),-1.5085846(mm),78.942598(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.295858(mm),0.00019402798(mm),79.066037(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.943518(mm),0.077925794(mm),78.422857(mm),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.55 cm 77.5 um 7.58 cm 195 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.5872042 cm -188.05109 um 7.4961588 cm 0 eV 1.9841372 MeV 966.42165 um 966.42165 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 (-12.018075(mm),2.6089499(mm),79.115018(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.977928(mm),2.1948467(mm),78.240462(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.270506(mm),-0.22531382(mm),79.423162(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.623085(mm),2.8385889(mm),78.832011(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.325805(mm),-0.52397673(mm),78.708103(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.956109(mm),-1.7560196(mm),78.244309(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.698498(mm),-0.80213693(mm),78.995041(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.325169(mm),-1.7280796(mm),78.179234(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.136132(mm),1.0210495(mm),78.565221(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.412736(mm),-0.74728159(mm),79.045429(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.296769(mm),0.33440896(mm),78.88955(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.987473(mm),0.95404946(mm),79.296741(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.930047(mm),0.85213266(mm),78.601559(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.561334(mm),-2.1844204(mm),79.195554(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.877464(mm),-2.3016611(mm),78.787158(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.663309(mm),3.5204634(mm),78.648592(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.034873(mm),-0.33560244(mm),79.112056(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.530985(mm),3.615213(mm),79.024578(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.630971(mm),2.5821591(mm),78.830621(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.956087(mm),-1.9456041(mm),78.949621(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.333111(mm),-3.5248441(mm),79.059469(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.886764(mm),-1.2844003(mm),78.785518(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.941703(mm),-0.4777009(mm),78.599504(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.916343(mm),-0.93938936(mm),78.251321(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.3311(mm),-3.2122811(mm),78.707169(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.338664(mm),1.2406928(mm),78.705836(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.890678(mm),1.2336634(mm),79.313809(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.055901(mm),-1.5241799(mm),78.40304(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.159911(mm),1.3689202(mm),78.208374(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.402464(mm),1.4273577(mm),79.399894(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.438254(mm),-1.8721821(mm),78.688275(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.263772(mm),3.2821451(mm),79.071695(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.353616(mm),-1.1819958(mm),78.350545(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.538789(mm),-0.20161846(mm),78.317894(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.797551(mm),-0.71590097(mm),79.330229(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.804061(mm),0.020030457(mm),78.447447(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.631981(mm),1.077006(mm),78.301462(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.809073(mm),-0.92066899(mm),78.62289(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.103967(mm),0.25803711(mm),79.452527(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.597206(mm),1.2645543(mm),78.483921(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.17822(mm),-1.8004814(mm),78.734126(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.301205(mm),1.4172463(mm),78.359787(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.66179(mm),-2.1781471(mm),79.001514(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.765133(mm),-0.91001598(mm),78.983292(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.32029(mm),2.951476(mm),79.061729(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.744372(mm),2.961097(mm),79.163279(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.814588(mm),2.0386041(mm),78.44559(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.193227(mm),0.25915737(mm),78.73148(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.797168(mm),-2.2133069(mm),78.272335(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.735313(mm),2.5133638(mm),78.283242(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.514379(mm),1.0501706(mm),78.674852(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.646119(mm),-0.30666659(mm),78.651623(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.860654(mm),-2.5974431(mm),78.790122(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.745816(mm),3.0745889(mm),78.457717(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.614279(mm),1.2816122(mm),79.009891(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.947902(mm),2.0491638(mm),78.245757(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.959954(mm),-0.90408856(mm),79.125266(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.584773(mm),-2.0530017(mm),78.486113(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.835965(mm),-0.47294806(mm),78.265494(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.578678(mm),-2.127581(mm),79.016169(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.041901(mm),-1.9992583(mm),78.758163(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.792045(mm),3.8334974(mm),78.625892(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.116954(mm),1.9877952(mm),78.392275(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.22783(mm),-1.6341837(mm),78.372725(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.937692(mm),1.9775207(mm),79.305519(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.685141(mm),-3.8636794(mm),78.821069(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.876531(mm),1.1327576(mm),78.610995(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.014175(mm),1.0920695(mm),78.586725(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.003145(mm),0.7255065(mm),79.117651(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.936689(mm),-3.0484598(mm),78.776715(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.4805(mm),-1.631991(mm),78.857153(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.951967(mm),-1.2110815(mm),78.24504(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.21038(mm),-0.70637906(mm),78.728456(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.488267(mm),-0.49926209(mm),78.50313(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.712431(mm),3.2141611(mm),78.992584(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.989701(mm),2.70571(mm),78.767367(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.939051(mm),2.0497722(mm),79.305279(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.478545(mm),-2.3982284(mm),78.328517(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.528126(mm),-1.2249611(mm),79.201409(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.586776(mm),-1.3544341(mm),78.838414(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.013273(mm),0.60138492(mm),79.115865(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.589877(mm),0.78632749(mm),79.014194(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.730501(mm),3.5059935(mm),78.636744(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.723558(mm),-1.9638751(mm),79.166949(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.312961(mm),-2.1299625(mm),78.886695(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.736669(mm),-0.98603627(mm),78.283003(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.83445(mm),3.3464177(mm),79.147396(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.944426(mm),1.2476065(mm),78.951677(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.447174(mm),1.3466176(mm),79.039356(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.077425(mm),-1.4459436(mm),78.751899(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.678667(mm),2.4245409(mm),78.469557(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.88546(mm),2.8727463(mm),78.962075(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.112773(mm),0.051947112(mm),78.745666(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.340192(mm),-1.294061(mm),79.05822(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.75233(mm),-2.3105338(mm),78.456568(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.015948(mm),2.8354968(mm),79.115393(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.32911(mm),-1.0571254(mm),78.531193(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.989071(mm),-0.11834353(mm),78.238497(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.103376(mm),-3.0120758(mm),78.570996(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.91888(mm),-3.7618733(mm),78.603528(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.735521(mm),-3.6709835(mm),78.812186(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.718541(mm),2.5946816(mm),78.638853(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.147855(mm),0.089684842(mm),78.563153(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.147455(mm),2.7702928(mm),78.739551(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.867425(mm),-2.4356896(mm),78.436274(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.546493(mm),-2.8505754(mm),78.316536(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.152124(mm),0.56596958(mm),78.738728(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.999484(mm),-1.6476104(mm),78.589315(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.516463(mm),-0.49183191(mm),78.674485(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.642297(mm),0.38115812(mm),78.123316(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.666908(mm),1.2238325(mm),78.47163(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.322746(mm),0.81219088(mm),78.884969(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.235642(mm),2.1369888(mm),78.547674(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.141375(mm),-0.61688394(mm),78.564296(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.973124(mm),0.23955362(mm),78.593963(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.620914(mm),-1.0950748(mm),78.832394(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.591188(mm),0.031523141(mm),78.837636(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.391163(mm),3.3426401(mm),79.049233(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.322383(mm),-2.4201428(mm),78.356052(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.552735(mm),0.11695453(mm),78.491762(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.886344(mm),0.33129115(mm),78.256611(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.921138(mm),1.7176647(mm),78.779457(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.69261(mm),-0.70832218(mm),79.172406(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.574932(mm),-3.3267487(mm),78.487848(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.703519(mm),3.0474703(mm),78.817829(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.347634(mm),-2.2158502(mm),79.056908(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.513861(mm),1.7565115(mm),78.851271(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.434352(mm),-1.228622(mm),79.217944(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.284761(mm),2.5030574(mm),78.71534(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.762239(mm),2.5995174(mm),79.160129(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.091139(mm),-3.2769942(mm),78.925808(mm),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 = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.54 mm -3.3 mm 5.88 cm 88.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.9736558 mm -2.7608817 mm 5.4515991 cm 75.196236 MeV 13.574619 MeV 4.6248077 mm 4.6248077 mm Target hIoni + 2 -6.3023009 mm -1.9071048 mm 5.142494 cm 64.732595 MeV 10.46364 MeV 3.6411142 mm 8.2659219 mm Target hIoni + 3 -4.9158309 mm -1.5378958 mm 4.9143572 cm 56.996307 MeV 7.7362884 MeV 2.7125903 mm 1.0978512 cm Target Transportation + 4 2.3966897 cm -3.9897265 cm -2 m 56.996485 MeV1.0186567e-16 eV 2.3557836 m 2.3667621 m CaptureMgnt Transportation + 5 4.3402878 cm -3.4620704 cm -2.0355086 m 56.98415 MeV 12.336959 keV 4.0822351 cm 2.4075845 m World hIoni + 6 7.9321152 cm -2.4677194 cm -2.1009674 m 56.966912 MeV 15.38567 keV 7.532531 cm 2.4829098 m World hIoni + 7 9.8964119 cm -1.9079717 cm -2.1368227 m 56.955335 MeV 11.57737 keV 4.1264724 cm 2.5241745 m World hIoni + 8 12.953733 cm -1.0315613 cm -2.1926456 m 56.938514 MeV 13.772269 keV 6.4247484 cm 2.588422 m World hIoni + 9 19.210549 cm 7.8436727 mm -2.3070355 m 56.910659 MeV 26.559061 keV 13.164207 cm 2.720064 m World hIoni + 10 25.616143 cm 2.6658541 cm -2.4236175 m 56.880508 MeV 30.151335 keV 13.434507 cm 2.8544091 m World hIoni + 11 42.055424 cm 7.4743478 cm -2.7237257 m 56.811935 MeV 68.572548 keV 34.554778 cm 3.1999569 m World hIoni + 12 43.279114 cm 7.8456888 cm -2.7459103 m 56.806777 MeV 4.159882 keV 2.560642 cm 3.2255633 m World hIoni + 13 44.869701 cm 8.3287185 cm -2.7747898 m 56.799552 MeV 7.2254326 keV 3.3322002 cm 3.2588853 m World hIoni + 14 50.165188 cm 9.9191178 cm -2.8712297 m 56.774537 MeV 23.710852 keV 11.116579 cm 3.3700511 m World hIoni + 15 50.424156 cm 9.9977591 cm -2.8759848 m 56.770832 MeV 1.2645279 keV 5.4713975 mm 3.3755225 m World hIoni + 16 52.091016 cm 10.505893 cm -2.9065924 m 56.757892 MeV 6.8606026 keV 3.5220526 cm 3.410743 m World hIoni + 17 58.912912 cm 12.601265 cm -3.0316139 m 56.723557 MeV 34.335499 keV 14.395604 cm 3.5546991 m World hIoni + 18 61.771587 cm 13.472445 cm -3.0839768 m 56.706769 MeV 14.267992 keV 6.0290763 cm 3.6149898 m World hIoni + 19 63.744429 cm 14.072201 cm -3.1199951 m 56.697259 MeV 7.9629582 keV 4.1503017 cm 3.6564929 m World hIoni + 20 66.483042 cm 14.905923 cm -3.1700819 m 56.684349 MeV 11.724849 keV 5.7690616 cm 3.7141835 m World hIoni + 21 73.77026 cm 17.138802 cm -3.3033928 m 56.63457 MeV 36.446864 keV 15.356047 cm 3.8677439 m World hIoni + 22 75.728244 cm 17.754031 cm -3.3393759 m 56.625281 MeV 9.2895864 keV 4.1424713 cm 3.9091687 m World hIoni + 23 76.43045 cm 17.974929 cm -3.3523002 m 56.62026 MeV 2.9811696 keV 1.4873614 cm 3.9240423 m World hIoni + 24 78.278495 cm 18.556839 cm -3.3863231 m 56.611459 MeV 7.324182 keV 3.9152941 cm 3.9631952 m World hIoni + 25 79.438493 cm 18.921452 cm -3.4076725 m 56.602002 MeV 7.3137972 keV 2.4569289 cm 3.9877645 m World hIoni + 26 80.546994 cm 19.264741 cm -3.4280493 m 56.58044 MeV 3.7235464 keV 2.3449411 cm 4.0112139 m World hIoni + 27 80.68061 cm 19.3064 cm -3.4305036 m 56.579858 MeV 582.24068 eV 2.8254001 mm 4.0140393 m World hIoni + 28 81.529854 cm 19.571393 cm -3.4461045 m 56.573107 MeV 3.8841438 keV 1.7959098 cm 4.0319984 m World hIoni + 29 84.43555 cm 20.479993 cm -3.499316 m 56.557229 MeV 13.199424 keV 6.130525 cm 4.0933037 m World hIoni + 30 85.821888 cm 20.917774 cm -3.5247115 m 56.541662 MeV 4.9154022 keV 2.9262488 cm 4.1225661 m World hIoni + 31 86.378752 cm 21.092407 cm -3.5349222 m 56.538346 MeV 2.0097332 keV 1.1760838 cm 4.134327 m World hIoni + 32 86.555264 cm 21.147869 cm -3.5381646 m 56.528964 MeV 626.63745 eV 3.7331406 mm 4.1380601 m World hIoni + 33 91.021174 cm 22.550661 cm -3.6203391 m 56.506286 MeV 21.495246 keV 9.4572089 cm 4.2326322 m World hIoni + 34 91.248679 cm 22.621428 cm -3.6245195 m 56.504012 MeV 1.0515768 keV 4.8116881 mm 4.2374439 m World hIoni + 35 97.133752 cm 24.453088 cm -3.7326584 m 56.476717 MeV 25.421785 keV 12.447084 cm 4.3619147 m World hIoni + 36 1.0464948 m 26.770483 cm -3.8712264 m 56.445259 MeV 31.458001 keV 15.933251 cm 4.5212473 m World Decay +Track (trackID 3, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 38, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.05 m 26.8 cm -3.87 m 29.7 MeV 0 eV 0 fm 0 fm World initStep + 1 1.056369 m 27.281351 cm -3.882734 m 29.671237 MeV 4.2001274 keV 1.6000754 cm 1.6000754 cm World muIoni + 2 1.0669796 m 27.827385 cm -3.8951113 m 29.666115 MeV 3.4931884 keV 1.7192919 cm 3.3193673 cm World muIoni + 3 1.0915976 m 29.093997 cm -3.9237783 m 29.653707 MeV 10.671278 keV 3.9853235 cm 7.3046907 cm World muIoni + 4 1.1482904 m 32.032947 cm -3.9897314 m 29.627781 MeV 24.739111 keV 9.1802477 cm 16.484938 cm World muIoni + 5 1.1626437 m 32.788625 cm -4.0065551 m 29.621839 MeV 5.9422195 keV 2.337004 cm 18.821942 cm World muIoni + 6 1.1678289 m 33.06091 cm -4.0126418 m 29.615533 MeV 2.1400362 keV 8.4468012 mm 19.666623 cm World muIoni + 7 1.1690086 m 33.123104 cm -4.0140277 m 29.61397 MeV 553.71069 eV 1.9233512 mm 19.858958 cm World muIoni + 8 1.1753127 m 33.456135 cm -4.0214378 m 29.60612 MeV 1.810382 keV 1.0283085 cm 20.887266 cm World muIoni + 9 1.2130075 m 35.458713 cm -4.0657242 m 29.593605 MeV 12.514971 keV 6.1508025 cm 27.038069 cm World muIoni + 10 1.297019 m 39.966007 cm -4.1641993 m 29.553928 MeV 38.600765 keV 13.706593 cm 40.744661 cm World muIoni + 11 1.29895 m 40.071496 cm -4.1664866 m 29.541257 MeV 533.14492 eV 3.1738684 mm 41.062048 cm World muIoni + 12 1.3022185 m 40.249215 cm -4.1703551 m 29.536434 MeV 2.2771193 keV 5.367202 mm 41.598768 cm World muIoni + 13 1.3267347 m 41.584483 cm -4.1993722 m 29.526612 MeV 8.6643487 keV 4.0265806 cm 45.625349 cm World muIoni + 14 1.328191 m 41.664692 cm -4.2011095 m 29.52529 MeV 1.3214208 keV 2.4046434 mm 45.865813 cm World muIoni + 15 1.3367245 m 42.134768 cm -4.2112926 m 29.517375 MeV 4.4438861 keV 1.4093015 cm 47.275115 cm World muIoni + 16 1.368761 m 43.887527 cm -4.2493591 m 29.496772 MeV 14.995212 keV 5.2750574 cm 52.550172 cm World muIoni + 17 1.3703469 m 43.974211 cm -4.2512406 m 29.49437 MeV 985.2441 eV 2.6089103 mm 52.811063 cm World muIoni + 18 1.4128771 m 46.301493 cm -4.3017493 m 29.477242 MeV 15.2217 keV 7.001143 cm 59.812206 cm World muIoni + 19 1.4288563 m 47.172704 cm -4.3207108 m 29.461628 MeV 4.0225594 keV 2.6282596 cm 62.440466 cm World muIoni + 20 1.4388397 m 47.71688 cm -4.3325875 m 29.456472 MeV 3.9584761 keV 1.6441984 cm 64.084664 cm World muIoni + 21 1.4544026 m 48.564857 cm -4.3511477 m 29.447008 MeV 7.4213221 keV 2.5663067 cm 66.650971 cm World muIoni + 22 1.4740129 m 49.643188 cm -4.3746687 m 29.4349 MeV 10.771306 keV 3.2466681 cm 69.897639 cm World muIoni + 23 1.475941 m 49.749195 cm -4.3769846 m 29.425041 MeV 1.0493983 keV 3.1944587 mm 70.217085 cm World muIoni + 24 1.5134111 m 51.807906 cm -4.421916 m 29.408503 MeV 15.054166 keV 6.2021646 cm 76.41925 cm World muIoni + 25 1.5214276 m 52.247502 cm -4.4315411 m 29.406314 MeV 2.1892135 keV 1.3275207 cm 77.74677 cm World muIoni + 26 1.5217069 m 52.262823 cm -4.4318773 m 29.404687 MeV 164.83454 eV 463.20211 um 77.793091 cm World muIoni + 27 1.5358205 m 53.037085 cm -4.4488558 m 29.397327 MeV 5.7559715 keV 2.3396836 cm 80.132774 cm World muIoni + 28 1.5598612 m 54.352974 cm -4.4778105 m 29.379332 MeV 7.4081817 keV 3.9868366 cm 84.119611 cm World muIoni + 29 1.5946673 m 56.254854 cm -4.5197146 m 29.361725 MeV 15.547552 keV 5.7698824 cm 89.889493 cm World muIoni + 30 1.5978024 m 56.427857 cm -4.5235025 m 29.358062 MeV 1.5869984 keV 5.2124331 mm 90.410737 cm World muIoni + 31 1.6572225 m 59.707245 cm -4.5951672 m 29.329395 MeV 25.85091 keV 9.8702127 cm 1.0028095 m World muIoni + 32 1.6857247 m 61.29482 cm -4.6296651 m 29.31521 MeV 13.04262 keV 4.7481922 cm 1.0502914 m World muIoni + 33 1.7049296 m 62.366178 cm -4.6528647 m 29.302425 MeV 9.9249357 keV 3.1966083 cm 1.0822575 m World muIoni + 34 1.7987587 m 67.583512 cm -4.7662898 m 29.257697 MeV 44.728242 keV 15.617799 cm 1.2384355 m World muIoni + 35 1.8051657 m 67.942304 cm -4.7740257 m 29.25305 MeV 2.6541237 keV 1.0666141 cm 1.2491016 m World muIoni + 36 1.8082699 m 68.115393 cm -4.7777738 m 29.227795 MeV 1.0768508 keV 5.1652876 mm 1.2542669 m World muIoni + 37 1.8211697 m 68.837556 cm -4.7933968 m 29.220899 MeV 6.8963189 keV 2.1509037 cm 1.275776 m World muIoni + 38 1.8464913 m 70.262078 cm -4.8240262 m 29.207017 MeV 11.856752 keV 4.2216968 cm 1.3179929 m World muIoni + 39 1.8544068 m 70.702399 cm -4.8335798 m 29.199255 MeV 2.5107705 keV 1.316489 cm 1.3311578 m World muIoni + 40 1.859908 m 71.009164 cm -4.8402216 m 29.197032 MeV 2.222743 keV 9.1535557 mm 1.3403114 m World muIoni + 41 1.8697557 m 71.558677 cm -4.852105 m 29.188596 MeV 4.3023154 keV 1.6382625 cm 1.356694 m World muIoni + 42 1.8973861 m 73.106518 cm -4.8855609 m 29.176336 MeV 11.174326 keV 4.6068645 cm 1.4027626 m World muIoni + 43 1.9057851 m 73.574902 cm -4.8956422 m 29.174406 MeV 1.9297061 keV 1.393251 cm 1.4166951 m World muIoni + 44 1.9312131 m 74.999191 cm -4.9262629 m 29.159381 MeV 13.492916 keV 4.22738 cm 1.4589689 m World muIoni + 45 1.9521801 m 76.181955 cm -4.951709 m 29.138561 MeV 9.1565888 keV 3.5028758 cm 1.4939977 m World muIoni + 46 1.9708381 m 77.243629 cm -4.9744656 m 29.128377 MeV 8.628227 keV 3.1284243 cm 1.5252819 m World muIoni + 47 1.9826779 m 77.917601 cm -4.9889517 m 29.115192 MeV 4.2276567 keV 1.9885954 cm 1.5451679 m World muIoni + 48 1.9969781 m 78.730493 cm -5.0064368 m 29.083084 MeV 6.8373778 keV 2.4006417 cm 1.5691743 m World muIoni + 49 2.0254602 m 80.360682 cm -5.0413168 m 29.069838 MeV 10.571457 keV 4.7891538 cm 1.6170659 m World muIoni + 50 2.0616198 m 82.425005 cm -5.085604 m 29.050204 MeV 18.462931 keV 6.078684 cm 1.6778527 m World muIoni + 51 2.0831423 m 83.656438 cm -5.1120855 m 29.041114 MeV 9.0907374 keV 3.6278539 cm 1.7141312 m World muIoni + 52 2.0857425 m 83.803681 cm -5.1152585 m 29.03878 MeV 922.15921 eV 4.3586168 mm 1.7184898 m World muIoni + 53 2.1146786 m 85.444332 cm -5.1505931 m 29.026068 MeV 11.35281 keV 4.8528477 cm 1.7670183 m World muIoni + 54 2.1281277 m 86.208153 cm -5.1670154 m 29.016623 MeV 7.8750297 keV 2.2559056 cm 1.7895774 m World muIoni + 55 2.1421826 m 87.005783 cm -5.1842105 m 29.00979 MeV 5.5908145 keV 2.3597413 cm 1.8131748 m World muIoni + 56 2.146422 m 87.246378 cm -5.1894373 m 29.008847 MeV 943.20447 eV 7.1470902 mm 1.8203219 m World muIoni + 57 2.1544368 m 87.70255 cm -5.1993252 m 29.00281 MeV 6.0365909 keV 1.3520945 cm 1.8338428 m World muIoni + 58 2.181033 m 89.219083 cm -5.2321486 m 28.98946 MeV 11.944143 keV 4.4885735 cm 1.8787286 m World muIoni + 59 2.1935428 m 89.938341 cm -5.2475732 m 28.984296 MeV 3.7536994 keV 2.1122134 cm 1.8998507 m World muIoni + 60 2.211624 m 90.97812 cm -5.2697873 m 28.944611 MeV 8.000028 keV 3.0471516 cm 1.9303222 m World muIoni + 61 2.2343132 m 92.291286 cm -5.2978285 m 28.932548 MeV 11.041136 keV 3.8386938 cm 1.9687092 m World muIoni + 62 2.2702179 m 94.370134 cm -5.3423172 m 28.906532 MeV 14.452591 keV 6.0832325 cm 2.0295415 m World muIoni + 63 2.2708155 m 94.404207 cm -5.3430573 m 28.906391 MeV 141.19799 eV 1.0103764 mm 2.0305519 m World muIoni + 64 2.3115567 m 96.725699 cm -5.3935041 m 28.884541 MeV 20.591578 keV 6.8874451 cm 2.0994263 m World muIoni + 65 2.3267976 m 97.580771 cm -5.4121189 m 28.876594 MeV 6.9533162 keV 2.5532616 cm 2.1249589 m World muIoni + 66 2.3314584 m 97.842511 cm -5.4177856 m 28.872221 MeV 2.4321919 keV 7.7900063 mm 2.1327489 m World muIoni + 67 2.3352622 m 98.055696 cm -5.4224007 m 28.866477 MeV 738.65595 eV 6.3493018 mm 2.1390982 m World muIoni + 68 2.3465836 m 98.690338 cm -5.4361226 m 28.859081 MeV 4.0649279 keV 1.8887558 cm 2.1579858 m World muIoni + 69 2.3471847 m 98.724053 cm -5.4368491 m 28.857653 MeV 268.67399 eV 1.0013778 mm 2.1589872 m World muIoni + 70 2.3974307 m 1.0154294 m -5.4975282 m 28.831954 MeV 24.62185 keV 8.3673667 cm 2.2426608 m World muIoni + 71 2.415557 m 1.0255726 m -5.5194437 m 28.824479 MeV 6.4382443 keV 3.0195056 cm 2.2728559 m World muIoni + 72 2.4407933 m 1.0397172 m -5.5499164 m 28.802684 MeV 9.9853516 keV 4.2018203 cm 2.3148741 m World muIoni + 73 2.4409425 m 1.0397998 m -5.5500968 m 28.801153 MeV 54.708929 eV 248.23296 um 2.3151223 m World muIoni + 74 2.4442822 m 1.0416464 m -5.5541346 m 28.795189 MeV 1.377914 keV 5.5558639 mm 2.3206782 m World muIoni + 75 2.4788448 m 1.0607949 m -5.5960013 m 28.777488 MeV 14.985023 keV 5.7567956 cm 2.3782461 m World muIoni + 76 2.484335 m 1.0638824 m -5.6027004 m 28.774706 MeV 1.1465873 keV 9.19531 mm 2.3874415 m World muIoni + 77 2.4948083 m 1.0697819 m -5.6154587 m 28.769645 MeV 3.0122558 keV 1.752912 cm 2.4049706 m World muIoni + 78 2.5005774 m 1.0730298 m -5.6224737 m 28.765442 MeV 3.1096505 keV 9.6457661 mm 2.4146163 m World muIoni + 79 2.5082907 m 1.0773547 m -5.6318662 m 28.758644 MeV 2.9355338 keV 1.2900393 cm 2.4275167 m World muIoni + 80 2.5437202 m 1.0971607 m -5.6750509 m 28.741065 MeV 17.579491 keV 5.9265984 cm 2.4867827 m World muIoni + 81 2.5703523 m 1.111935 m -5.7073656 m 28.727981 MeV 11.003861 keV 4.4404957 cm 2.5311877 m World muIoni + 82 2.5752247 m 1.1146481 m -5.7132701 m 28.725121 MeV 2.8601561 keV 8.1218545 mm 2.5393095 m World muIoni + 83 2.6035314 m 1.1304388 m -5.7475885 m 28.710041 MeV 13.537692 keV 4.720563 cm 2.5865152 m World muIoni + 84 2.6559812 m 1.1597302 m -5.8112621 m 28.684786 MeV 23.809242 keV 8.7540656 cm 2.6740558 m World muIoni + 85 2.6736761 m 1.1696176 m -5.8327912 m 28.67608 MeV 8.7060202 keV 2.9569742 cm 2.7036256 m World muIoni + 86 2.6775888 m 1.1718091 m -5.837571 m 28.672012 MeV 1.022633 keV 6.5542546 mm 2.7101798 m World muIoni + 87 2.7229164 m 1.197193 m -5.8930103 m 28.650848 MeV 21.164329 keV 7.5976968 cm 2.7861568 m World muIoni + 88 2.7284529 m 1.2002696 m -5.899784 m 28.645692 MeV 3.1673321 keV 9.2736439 mm 2.7954304 m World muIoni + 89 2.7754481 m 1.2263954 m -5.9573008 m 28.618821 MeV 19.202331 keV 7.873586 cm 2.8741663 m World muIoni + 90 2.7936712 m 1.2364696 m -5.9794285 m 28.609957 MeV 7.3643713 keV 3.038431 cm 2.9045506 m World muIoni + 91 2.8221238 m 1.2521556 m -6.013962 m 28.592957 MeV 15.316457 keV 4.7414904 cm 2.9519655 m World muIoni + 92 2.8386167 m 1.2611798 m -6.0336982 m 28.584349 MeV 8.6082119 keV 2.7257489 cm 2.979223 m World muIoni + 93 2.8721498 m 1.2795282 m -6.073693 m 28.560036 MeV 13.385891 keV 5.532392 cm 3.0345469 m World muIoni + 94 2.8985046 m 1.2937714 m -6.1048713 m 28.549201 MeV 9.5606246 keV 4.3238129 cm 3.077785 m World muIoni + 95 2.9151502 m 1.3027394 m -6.1245785 m 28.539945 MeV 8.0816378 keV 2.7310789 cm 3.1050958 m World muIoni + 96 2.9205776 m 1.3056723 m -6.1310083 m 28.520506 MeV 2.5155307 keV 8.910607 mm 3.1140064 m World muIoni + 97 2.9290999 m 1.3102856 m -6.1410778 m 28.517099 MeV 3.4068426 keV 1.3975287 cm 3.1279817 m World muIoni + 98 2.9526002 m 1.3230724 m -6.1688863 m 28.506292 MeV 8.8065678 keV 3.8588613 cm 3.1665703 m World muIoni + 99 2.9671031 m 1.3309724 m -6.1860295 m 28.499554 MeV 5.6819353 keV 2.3804104 cm 3.1903744 m World muIoni + 100 2.9767142 m 1.3361738 m -6.1974124 m 28.492506 MeV 5.9706468 keV 1.5779699 cm 3.2061541 m World muIoni + 101 2.9817011 m 1.3388725 m -6.2033148 m 28.487385 MeV 3.7533055 keV 8.1847369 mm 3.2143389 m World muIoni + 102 2.9957847 m 1.3465163 m -6.2199829 m 28.478661 MeV 7.4388388 keV 2.3121535 cm 3.2374604 m World muIoni + 103 3.0058825 m 1.3519883 m -6.2319919 m 28.470244 MeV 3.1162967 keV 1.6617014 cm 3.2540774 m World muIoni + 104 3.0063254 m 1.3522303 m -6.2325191 m 28.463938 MeV 917.23898 eV 729.82107 um 3.2548072 m World muIoni + 105 3.0207549 m 1.3601081 m -6.2497196 m 28.458153 MeV 5.785274 keV 2.3793454 cm 3.2786007 m World muIoni + 106 3.0509206 m 1.3765783 m -6.2855742 m 28.442781 MeV 14.008645 keV 4.9666897 cm 3.3282676 m World muIoni + 107 3.0529028 m 1.3776665 m -6.2879395 m 28.441189 MeV 1.5920113 keV 3.2722581 mm 3.3315399 m World muIoni + 108 3.056362 m 1.379567 m -6.2920661 m 28.438662 MeV 1.2375785 keV 5.7101857 mm 3.33725 m World muIoni + 109 3.0670013 m 1.3854114 m -6.3047469 m 28.434376 MeV 4.2858934 keV 1.7554425 cm 3.3548045 m World muIoni + 110 3.1652827 m 1.4392512 m -6.4218672 m 28.386563 MeV 46.065075 keV 16.209733 cm 3.5169018 m World muIoni + 111 3.2245675 m 1.4715471 m -6.4924465 m 28.357661 MeV 25.111676 keV 9.7668973 cm 3.6145708 m World muIoni + 112 3.2777129 m 1.4999013 m -6.5550092 m 28.327613 MeV 22.494168 keV 8.6847858 cm 3.7014186 m World muIoni + 113 3.2834714 m 1.5029597 m -6.5617522 m 28.323157 MeV 2.3140064 keV 9.3799031 mm 3.7107985 m World muIoni + 114 3.3199323 m 1.522288 m -6.6044405 m 28.301085 MeV 14.645416 keV 5.9374165 cm 3.7701727 m World muIoni + 115 3.3276222 m 1.5263639 m -6.6133788 m 28.295539 MeV 3.9808303 keV 1.2475594 cm 3.7826483 m World muIoni + 116 3.3426625 m 1.5343394 m -6.6308457 m 28.289244 MeV 6.2947131 keV 2.439084 cm 3.8070391 m World muIoni + 117 3.3508227 m 1.5386596 m -6.6403285 m 28.282153 MeV 5.3002232 keV 1.3235393 cm 3.8202745 m World muIoni + 118 3.3613517 m 1.5442215 m -6.6525507 m 28.274425 MeV 4.6556281 keV 1.7063956 cm 3.8373385 m World muIoni + 119 3.3643154 m 1.5457776 m -6.6560145 m 28.273609 MeV 815.65606 eV 4.8169206 mm 3.8421554 m World muIoni + 120 3.3865562 m 1.5574492 m -6.6820275 m 28.262658 MeV 9.6770922 keV 3.6160117 cm 3.8783155 m World muIoni + 121 3.3923397 m 1.5605017 m -6.6888066 m 28.259287 MeV 1.9923917 keV 9.4193552 mm 3.8877349 m World muIoni + 122 3.396851 m 1.5628733 m -6.694082 m 28.25525 MeV 2.3752501 keV 7.3352747 mm 3.8950701 m World muIoni + 123 3.4066052 m 1.5679946 m -6.7054988 m 28.250607 MeV 3.1959122 keV 1.586559 cm 3.9109357 m World muIoni + 124 3.4280511 m 1.5792572 m -6.7305869 m 28.236558 MeV 12.935072 keV 3.4873793 cm 3.9458095 m World muIoni + 125 3.4283713 m 1.5794276 m -6.7309622 m 28.234558 MeV 621.57903 eV 522.01272 um 3.9463315 m World muIoni + 126 3.4298079 m 1.580192 m -6.7326446 m 28.232889 MeV 404.19976 eV 2.3406385 mm 3.9486722 m World muIoni + 127 3.4539583 m 1.5930572 m -6.7609413 m 28.221113 MeV 9.7724261 keV 3.9363171 cm 3.9880353 m World muIoni + 128 3.4577609 m 1.5950812 m -6.7653806 m 28.214413 MeV 2.182898 keV 6.1858164 mm 3.9942212 m World muIoni + 129 3.5075401 m 1.6216233 m -6.8236549 m 28.193891 MeV 19.467015 keV 8.110733 cm 4.0753285 m World muIoni + 130 3.5336458 m 1.6356317 m -6.8542676 m 28.177095 MeV 14.374073 keV 4.2601409 cm 4.1179299 m World muIoni + 131 3.5382732 m 1.6381552 m -6.8597473 m 28.175942 MeV 1.1526808 keV 7.6031805 mm 4.1255331 m World muIoni + 132 3.5429217 m 1.6406879 m -6.8652541 m 28.173299 MeV 1.5133724 keV 7.6386736 mm 4.1331718 m World muIoni + 133 3.5436804 m 1.6411015 m -6.8661526 m 28.163598 MeV 184.93997 eV 1.2464905 mm 4.1344182 m World muIoni + 134 3.558827 m 1.6494041 m -6.8841451 m 28.155336 MeV 6.7266403 keV 2.4941701 cm 4.15936 m World muIoni + 135 3.5756341 m 1.6587356 m -6.9040557 m 27.878714 MeV 8.0836363 keV 2.7676506 cm 4.1870365 m World muIoni + 136 3.5921705 m 1.6678509 m -6.9234097 m 27.868333 MeV 9.0764585 keV 2.7039245 cm 4.2140757 m World muIoni + 137 3.628735 m 1.6880623 m -6.9662214 m 27.84656 MeV 17.397925 keV 5.981906 cm 4.2738948 m World muIoni + 138 3.6465635 m 1.6978124 m -6.9870219 m 27.839538 MeV 7.0221533 keV 2.907891 cm 4.3029737 m World muIoni + 139 3.6729651 m 1.7122379 m -7.0177055 m 27.827162 MeV 12.375269 keV 4.2972495 cm 4.3459462 m World muIoni + 140 3.697351 m 1.7256221 m -7.0460274 m 27.815971 MeV 9.0884355 keV 3.9698369 cm 4.3856445 m World muIoni + 141 3.7265116 m 1.741837 m -7.0801259 m 27.805158 MeV 9.3786218 keV 4.7707252 cm 4.4333518 m World muIoni + 142 3.7352663 m 1.7466824 m -7.0903559 m 27.797636 MeV 5.5763129 keV 1.4309985 cm 4.4476618 m World muIoni + 143 3.7670346 m 1.7642935 m -7.1273922 m 27.780371 MeV 13.482048 keV 5.187561 cm 4.4995374 m World muIoni + 144 3.786752 m 1.7751612 m -7.1505014 m 27.770675 MeV 7.2557099 keV 3.2263296 cm 4.5318007 m World muIoni + 145 3.8089805 m 1.7874486 m -7.1766308 m 27.754687 MeV 10.271065 keV 3.6439516 cm 4.5682402 m World muIoni + 146 3.8470394 m 1.8087804 m -7.2212219 m 27.73846 MeV 15.045813 keV 6.2385175 cm 4.6306254 m World muIoni + 147 3.8480379 m 1.8093404 m -7.2223922 m 27.736981 MeV 228.73276 eV 1.637107 mm 4.6322625 m World muIoni + 148 3.848918 m 1.8098343 m -7.2234247 m 27.735445 MeV 422.02089 eV 1.4438483 mm 4.6337063 m World muIoni + 149 3.8509672 m 1.8109866 m -7.225831 m 27.733389 MeV 317.81096 eV 3.3641439 mm 4.6370705 m World muIoni + 150 3.8642509 m 1.8184768 m -7.2414358 m 27.726853 MeV 5.363759 keV 2.1819082 cm 4.6588896 m World muIoni + 151 3.8880958 m 1.8319432 m -7.26937 m 27.716103 MeV 8.6887712 keV 3.9118292 cm 4.6980078 m World muIoni + 152 3.9007127 m 1.8390975 m -7.2841625 m 27.699517 MeV 7.9312992 keV 2.071686 cm 4.7187247 m World muIoni + 153 3.950685 m 1.8672866 m -7.3427813 m 27.675802 MeV 23.714665 keV 8.2024817 cm 4.8007495 m World muIoni + 154 3.9716596 m 1.8789444 m -7.3673307 m 27.66516 MeV 9.2069667 keV 3.4329576 cm 4.8350791 m World muIoni + 155 3.9962139 m 1.8924527 m -7.3961327 m 27.655104 MeV 8.685147 keV 4.0186563 cm 4.8752657 m World muIoni + 156 4.0016777 m 1.8954351 m -7.4025435 m 27.650371 MeV 3.3530111 keV 8.9357149 mm 4.8842014 m World muIoni + 157 4.0300551 m 1.910921 m -7.4358291 m 27.63574 MeV 11.948658 keV 4.640068 cm 4.9306021 m World muIoni + 158 4.0495098 m 1.9213902 m -7.4584587 m 27.628078 MeV 6.4482166 keV 3.1625914 cm 4.962228 m World muIoni + 159 4.0499215 m 1.9216096 m -7.458937 m 27.625754 MeV 139.5929 eV 668.1512 um 4.9628961 m World muIoni + 160 4.1133041 m 1.9554527 m -7.5326039 m 27.597439 MeV 27.268143 keV 10.290592 cm 5.065802 m World muIoni + 161 4.1669527 m 1.9844779 m -7.5957433 m 27.567982 MeV 25.502129 keV 8.77911 cm 5.1535931 m World muIoni + 162 4.2029263 m 2.0035429 m -7.6379791 m 27.553885 MeV 14.097201 keV 5.8663918 cm 5.2122571 m World muIoni + 163 4.2522127 m 2.0295109 m -7.6960892 m 27.530995 MeV 21.603316 keV 8.0500465 cm 5.2927575 m World muIoni + 164 4.2523553 m 2.0295875 m -7.6962574 m 27.529013 MeV 369.98161 eV 233.43181 um 5.292991 m World muIoni + 165 4.2529457 m 2.0299043 m -7.696954 m 27.527812 MeV 101.24782 eV 966.48526 um 5.2939574 m World muIoni + 166 4.2604293 m 2.0338777 m -7.7057547 m 27.520801 MeV 2.7943181 keV 1.2216585 cm 5.306174 m World muIoni + 167 4.2681821 m 2.0379692 m -7.7148796 m 27.514748 MeV 2.8912016 keV 1.2653486 cm 5.3188275 m World muIoni + 168 4.307145 m 2.0584488 m -7.7605624 m 27.497355 MeV 17.392911 keV 6.3438675 cm 5.3822662 m World muIoni + 169 4.3072738 m 2.0585172 m -7.7607128 m 27.497244 MeV 111.26049 eV 209.46062 um 5.3824757 m World muIoni + 170 4.315531 m 2.0629048 m -7.7703498 m 27.492357 MeV 3.8439208 keV 1.3427708 cm 5.3959034 m World muIoni + 171 4.3297037 m 2.0703924 m -7.7868222 m 27.487066 MeV 4.002237 keV 2.2984192 cm 5.4188876 m World muIoni + 172 4.3801407 m 2.097203 m -7.8455355 m 27.468107 MeV 17.594082 keV 8.19146 cm 5.5008022 m World muIoni + 173 4.4661321 m 2.1431948 m -7.9452749 m 27.42888 MeV 37.635082 keV 13.94919 cm 5.640294 m World muIoni + 174 4.4925134 m 2.1573728 m -7.9757339 m 27.415401 MeV 11.772762 keV 4.2717117 cm 5.6830112 m World muIoni + 175 4.5068954 m 2.1651544 m -7.9924727 m 27.408387 MeV 7.0139574 keV 2.3400498 cm 5.7064117 m OutOfWorld Transportation +Track (trackID 38, parentID 3) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.454658042264(mm),3.7842048490061(mm),78.861709721802(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.392562(mm),-1.4004067(mm),79.40164(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.692154(mm),-0.41517122(mm),78.99616(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.412617(mm),-1.1212947(mm),78.163815(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.318131(mm),-1.3523667(mm),78.885783(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.767198(mm),-1.9804862(mm),78.453946(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.590708(mm),2.2080441(mm),79.014047(mm),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 = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.15 cm 2.21 mm 7.26 cm 61.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.0901732 cm 3.5833992 mm 7.2062593 cm 56.936727 MeV 4.8263998 MeV 1.5708876 mm 1.5708876 mm Target Transportation + 2 17.379368 cm -12.611298 cm -2 m 56.936807 MeV1.910486e-16 eV 4.4158112 m 4.4173821 m CaptureMgnt Transportation + 3 16.007858 cm -13.048107 cm -2.0076485 m 56.93049 MeV 4.0078547 keV 1.6299787 cm 4.4336819 m World hIoni + 4 14.813848 cm -13.427984 cm -2.014314 m 56.920579 MeV 4.643499 keV 1.4192466 cm 4.4478743 m World hIoni + 5 2.3324044 cm -17.397869 cm -2.0842176 m 56.890488 MeV 29.054954 keV 14.846292 cm 4.5963372 m World hIoni + 6 1.5230874 cm -17.653309 cm -2.0887634 m 56.886453 MeV 1.3714079 keV 9.6274885 mm 4.6059647 m World hIoni + 7 -1.3275499 cm -18.553112 cm -2.1047857 m 56.872935 MeV 8.5607648 keV 3.3915997 cm 4.6398807 m World hIoni + 8 -3.95926 cm -19.384758 cm -2.1195676 m 56.861175 MeV 4.1328199 keV 3.1309078 cm 4.6711898 m World hIoni + 9 -11.434935 cm -21.734072 cm -2.1614881 m 56.839155 MeV 20.314543 keV 8.8869816 cm 4.7600596 m World hIoni + 10 -12.114305 cm -21.949711 cm -2.1652992 m 56.835445 MeV 1.99301 keV 8.0826076 mm 4.7681422 m World hIoni + 11 -17.777706 cm -23.74767 cm -2.1970448 m 56.817575 MeV 13.70867 keV 6.7368181 cm 4.8355104 m World hIoni + 12 -18.599032 cm -24.007403 cm -2.2015969 m 56.767004 MeV 1.9574713 keV 9.7429807 mm 4.8452534 m World hIoni + 13 -21.369208 cm -24.864372 cm -2.216772 m 56.759224 MeV 6.3390283 keV 3.272783 cm 4.8779812 m World hIoni + 14 -26.861308 cm -26.549444 cm -2.2468656 m 56.744055 MeV 13.260774 keV 6.4852852 cm 4.9428341 m World hIoni + 15 -32.248159 cm -28.206243 cm -2.2764804 m 56.726202 MeV 16.286823 keV 6.3666011 cm 5.0065001 m World hIoni + 16 -40.131787 cm -30.629355 cm -2.319771 m 56.701069 MeV 23.945741 keV 9.3147208 cm 5.0996473 m World hIoni + 17 -52.784116 cm -34.541465 cm -2.3894099 m 56.6738 MeV 27.268691 keV 14.962708 cm 5.2492744 m World hIoni + 18 -53.692266 cm -34.821044 cm -2.3943984 m 56.670288 MeV 2.1937809 keV 1.0731963 cm 5.2600063 m World hIoni + 19 -55.233636 cm -35.295261 cm -2.402867 m 56.662563 MeV 3.577559 keV 1.821504 cm 5.2782214 m World hIoni + 20 -56.547784 cm -35.698856 cm -2.4100808 m 56.656715 MeV 3.555504 keV 1.5525033 cm 5.2937464 m World hIoni + 21 -60.999688 cm -37.067152 cm -2.4345447 m 56.643321 MeV 11.89441 keV 5.2608493 cm 5.3463549 m World hIoni + 22 -62.806267 cm -37.621641 cm -2.4444963 m 56.637705 MeV 4.3834581 keV 2.1357759 cm 5.3677127 m World hIoni + 23 -62.897687 cm -37.649729 cm -2.4450005 m 56.631546 MeV 80.291589 eV 1.0811251 mm 5.3687938 m World hIoni + 24 -63.242073 cm -37.755793 cm -2.4469003 m 56.630254 MeV 1.2922874 keV 4.0736178 mm 5.3728674 m World hIoni + 25 -64.212325 cm -38.054616 cm -2.4522514 m 56.623098 MeV 1.4901919 keV 1.147617 cm 5.3843436 m World hIoni + 26 -68.168107 cm -39.272863 cm -2.4740239 m 56.611701 MeV 11.397649 keV 4.6768368 cm 5.4311119 m World hIoni + 27 -80.014887 cm -42.937561 cm -2.5395085 m 56.580302 MeV 30.31166 keV 14.023523 cm 5.5713472 m World hIoni + 28 -86.318862 cm -44.880676 cm -2.574319 m 56.559504 MeV 18.516482 keV 7.4587954 cm 5.6459351 m World hIoni + 29 -86.519579 cm -44.942918 cm -2.5754264 m 56.559316 MeV 188.01255 eV 2.3753737 mm 5.6483105 m World hIoni + 30 -91.088544 cm -46.355447 cm -2.6005982 m 56.546102 MeV 12.14281 keV 5.404345 cm 5.7023539 m World hIoni + 31 -96.229343 cm -47.952437 cm -2.6289058 m 56.531783 MeV 13.256693 keV 6.0820559 cm 5.7631745 m World hIoni + 32 -99.463754 cm -48.963713 cm -2.6467811 m 56.522181 MeV 7.9832798 keV 3.831367 cm 5.8014882 m World hIoni + 33 -99.517382 cm -48.980523 cm -2.6470777 m 56.512277 MeV 92.50508 eV 635.49286 um 5.8021237 m World hIoni + 34 -1.0225586 m -49.836904 cm -2.662206 m 56.503873 MeV 7.3085099 keV 3.2436618 cm 5.8345603 m World hIoni + 35 -1.1032204 m -52.36354 cm -2.7067791 m 56.481743 MeV 21.109164 keV 9.5558824 cm 5.9301191 m World hIoni + 36 -1.1595085 m -54.131322 cm -2.7379696 m 56.470527 MeV 9.8254483 keV 6.673609 cm 5.9968552 m World hIoni + 37 -1.2052522 m -55.573442 cm -2.763263 m 56.458599 MeV 11.927404 keV 5.4223838 cm 6.051079 m World hIoni + 38 -1.231406 m -56.395867 cm -2.7777248 m 56.452529 MeV 6.0701295 keV 3.0996798 cm 6.0820758 m World hIoni + 39 -1.2980383 m -58.480428 cm -2.8146287 m 56.435581 MeV 14.86706 keV 7.89703 cm 6.1610461 m World hIoni + 40 -1.3371047 m -59.694952 cm -2.8364354 m 56.423162 MeV 11.079716 keV 4.6359742 cm 6.2074059 m World hIoni + 41 -1.3708747 m -60.747092 cm -2.8552973 m 56.415036 MeV 6.7429229 keV 4.0086006 cm 6.2474919 m World hIoni + 42 -1.3826839 m -61.114607 cm -2.8618958 m 56.4101 MeV 2.1080908 keV 1.4017956 cm 6.2615098 m World hIoni + 43 -1.3871762 m -61.253987 cm -2.8644076 m 56.398552 MeV 2.1328116 keV 5.3322745 mm 6.2668421 m World hIoni + 44 -1.4707577 m -63.852371 cm -2.9111717 m 56.377491 MeV 19.982742 keV 9.9236705 cm 6.3660788 m World hIoni + 45 -1.5828613 m -67.332876 cm -2.9740877 m 56.338806 MeV 29.181759 keV 13.31807 cm 6.4992595 m World hIoni + 46 -1.5870262 m -67.460471 cm -2.976417 m 56.331264 MeV 940.21055 eV 4.9395736 mm 6.5041991 m World hIoni + 47 -1.5938784 m -67.670866 cm -2.9802529 m 56.327167 MeV 1.2147456 keV 8.1298137 mm 6.5123289 m World hIoni + 48 -1.5980849 m -67.800212 cm -2.9826096 m 56.324008 MeV 1.8480871 keV 4.9921637 mm 6.5173211 m World hIoni + 49 -1.6291863 m -68.757415 cm -3.0000319 m 56.306645 MeV 8.9046739 keV 3.6911527 cm 6.5542326 m World hIoni + 50 -1.6528614 m -69.486427 cm -3.0132675 m 56.275582 MeV 8.4456236 keV 2.8086262 cm 6.5823189 m World hIoni + 51 -1.7043522 m -71.063147 cm -3.0420193 m 56.260319 MeV 13.889919 keV 6.1045698 cm 6.6433646 m World hIoni + 52 -1.7113986 m -71.278615 cm -3.0459415 m 56.257253 MeV 2.0018813 keV 8.3473718 mm 6.6517119 m World hIoni + 53 -1.7527695 m -72.543078 cm -3.0689665 m 56.247609 MeV 8.0950909 keV 4.9005983 cm 6.7007179 m World hIoni + 54 -1.7640273 m -72.888278 cm -3.0752352 m 56.246438 MeV 1.1715283 keV 1.3339827 cm 6.7140577 m World hIoni + 55 -1.8609234 m -75.857299 cm -3.1291336 m 56.221124 MeV 24.06186 keV 11.47843 cm 6.828842 m World hIoni + 56 -1.900457 m -77.063272 cm -3.1509842 m 56.210399 MeV 9.2313066 keV 4.6752484 cm 6.8755945 m World hIoni + 57 -2.0290369 m -80.993243 cm -3.2220455 m 56.178079 MeV 30.752617 keV 15.207584 cm 7.0276704 m World hIoni + 58 -2.0723398 m -82.32711 cm -3.2460234 m 56.161184 MeV 15.770709 keV 5.126408 cm 7.0789344 m World hIoni + 59 -2.0746782 m -82.398911 cm -3.2473197 m 56.157895 MeV 495.57579 eV 2.7683748 mm 7.0817028 m World hIoni + 60 -2.1005949 m -83.194677 cm -3.2616695 m 56.150707 MeV 6.0320497 keV 3.0674383 cm 7.1123772 m World hIoni + 61 -2.1110348 m -83.514648 cm -3.2674508 m 56.146461 MeV 2.2341975 keV 1.2355289 cm 7.1247325 m World hIoni + 62 -2.1739725 m -85.446611 cm -3.3022133 m 56.130413 MeV 16.047919 keV 7.44503 cm 7.1991828 m World hIoni + 63 -2.1836616 m -85.745146 cm -3.3075942 m 56.127932 MeV 2.4809757 keV 1.1477998 cm 7.2106608 m World hIoni + 64 -2.2016715 m -86.299186 cm -3.3175982 m 56.111204 MeV 3.91375 keV 2.1333909 cm 7.2319947 m World hIoni + 65 -2.2326999 m -87.25012 cm -3.3348501 m 56.103653 MeV 7.5509609 keV 3.6753436 cm 7.2687481 m World hIoni + 66 -2.2760038 m -88.570549 cm -3.3589006 m 55.459994 MeV 10.625495 keV 5.1264056 cm 7.3200122 m World hIoni + 67 -2.4023886 m -92.483721 cm -3.4288642 m 55.42683 MeV 33.164037 keV 14.966435 cm 7.4696765 m World hIoni + 68 -2.4757205 m -94.753956 cm -3.4694263 m 55.409198 MeV 16.629088 keV 8.6823229 cm 7.5564998 m World hIoni + 69 -2.504721 m -95.662823 cm -3.4854482 m 55.403419 MeV 5.7791014 keV 3.4355987 cm 7.5908558 m World hIoni + 70 -2.5686543 m -97.660913 cm -3.5207282 m 55.387883 MeV 14.467076 keV 7.5705909 cm 7.6665617 m World hIoni + 71 -2.5738476 m -97.822972 cm -3.5235926 m 55.386426 MeV 428.28837 eV 6.148315 mm 7.67271 m World hIoni + 72 -2.5901753 m -98.333218 cm -3.5326003 m 55.375342 MeV 4.0644573 keV 1.9333107 cm 7.6920431 m World hIoni + 73 -2.6018769 m -98.699551 cm -3.5390371 m 55.369192 MeV 2.3753927 keV 1.3848459 cm 7.7058916 m World hIoni + 74 -2.6230793 m -99.361125 cm -3.5507032 m 55.362883 MeV 5.1242368 keV 2.5087963 cm 7.7309795 m World hIoni + 75 -2.6562882 m -1.0038973 m -3.569035 m 55.353031 MeV 8.1136991 keV 3.9302549 cm 7.7702821 m World hIoni + 76 -2.6824125 m -1.0119407 m -3.5834811 m 55.34416 MeV 6.6352124 keV 3.0917091 cm 7.8011992 m World hIoni + 77 -2.7371581 m -1.0288144 m -3.6138073 m 55.329102 MeV 13.918699 keV 6.481891 cm 7.8660181 m World hIoni + 78 -2.7454194 m -1.0313602 m -3.6183741 m 55.327019 MeV 920.30877 eV 9.776751 mm 7.8757948 m World hIoni + 79 -2.8013334 m -1.0485782 m -3.6492751 m 55.310061 MeV 15.875698 keV 6.616428 cm 7.9419591 m World hIoni + 80 -2.8265689 m -1.0563798 m -3.6631846 m 55.302068 MeV 6.9084513 keV 2.9852481 cm 7.9718116 m World hIoni + 81 -2.8372961 m -1.0596902 m -3.6690912 m 55.289891 MeV 4.0524734 keV 1.2685473 cm 7.9844971 m World hIoni + 82 -2.8727709 m -1.0706534 m -3.6886327 m 55.267693 MeV 9.6222616 keV 4.1958554 cm 8.0264556 m World hIoni + 83 -2.9103505 m -1.0822638 m -3.7092669 m 55.254141 MeV 10.885812 keV 4.4416331 cm 8.0708719 m World hIoni + 84 -2.9305042 m -1.0884989 m -3.7203245 m 55.246457 MeV 4.7834771 keV 2.3818503 cm 8.0946904 m World hIoni + 85 -2.9385174 m -1.0909657 m -3.7247237 m 55.241368 MeV 1.3170502 keV 9.4682762 mm 8.1041587 m World hIoni + 86 -2.9573648 m -1.0968393 m -3.7350881 m 55.229983 MeV 6.5872246 keV 2.2296858 cm 8.1264556 m World hIoni + 87 -2.9835533 m -1.1050373 m -3.7495029 m 55.222589 MeV 5.4996839 keV 3.0997175 cm 8.1574527 m World hIoni + 88 -3.0150019 m -1.1148493 m -3.7668218 m 55.216903 MeV 5.6858455 keV 3.7218745 cm 8.1946715 m World hIoni + 89 -3.0399953 m -1.1226564 m -3.7805743 m 55.210399 MeV 4.4483011 keV 2.9576291 cm 8.2242478 m World hIoni + 90 -3.0518965 m -1.1263615 m -3.7871223 m 55.202233 MeV 5.9787233 keV 1.4079824 cm 8.2383276 m World hIoni + 91 -3.0716865 m -1.1325429 m -3.7980375 m 55.196645 MeV 4.4827913 keV 2.3430646 cm 8.2617583 m World hIoni + 92 -3.1152712 m -1.1462078 m -3.8221007 m 55.179734 MeV 14.10753 keV 5.1627559 cm 8.3133858 m World hIoni + 93 -3.1811015 m -1.1669783 m -3.8583449 m 55.159155 MeV 18.032143 keV 7.796593 cm 8.3913517 m World hIoni + 94 -3.2953523 m -1.2033937 m -3.9210033 m 55.128587 MeV 28.560352 keV 13.529775 cm 8.5266495 m World hIoni + 95 -3.2964549 m -1.2037462 m -3.9216056 m 55.127364 MeV 82.175543 eV 1.3048928 mm 8.5279544 m World hIoni + 96 -3.2999871 m -1.2048755 m -3.9235344 m 55.102111 MeV 603.32065 eV 4.1799257 mm 8.5321343 m World hIoni + 97 -3.3002747 m -1.2049672 m -3.9236917 m 55.10096 MeV 38.109846 eV 340.4178 um 8.5324747 m World hIoni + 98 -3.4078577 m -1.2392216 m -3.9825396 m 55.073202 MeV 26.454992 keV 12.732088 cm 8.6597956 m World hIoni + 99 -3.4380229 m -1.2489204 m -3.9990206 m 55.0622 MeV 11.002543 keV 3.5715888 cm 8.6955115 m World hIoni + 100 -3.5579992 m -1.2872637 m -4.0643908 m 55.030539 MeV 30.540569 keV 14.190797 cm 8.8374195 m World hIoni + 101 -3.5628483 m -1.2887991 m -4.0670251 m 55.027464 MeV 1.5500387 keV 5.7280273 mm 8.8431475 m World hIoni + 102 -3.6006088 m -1.3007646 m -4.0875204 m 55.003113 MeV 9.5260041 keV 4.4599274 cm 8.8877468 m World hIoni + 103 -3.6133512 m -1.3047797 m -4.0944466 m 54.996817 MeV 4.2962112 keV 1.50486 cm 8.9027954 m World hIoni + 104 -3.6660899 m -1.3214439 m -4.1231282 m 54.98285 MeV 12.376941 keV 6.2303368 cm 8.9650987 m World hIoni + 105 -3.7232796 m -1.3395293 m -4.1541963 m 54.957968 MeV 14.937113 keV 6.7549823 cm 9.0326486 m World hIoni + 106 -3.7292461 m -1.3414185 m -4.157436 m 54.956363 MeV 440.69215 eV 7.0472565 mm 9.0396958 m World hIoni + 107 -3.7867765 m -1.3596529 m -4.1886778 m 54.940267 MeV 14.436299 keV 6.795804 cm 9.1076539 m World hIoni + 108 -3.8114653 m -1.3674986 m -4.2021056 m 54.933818 MeV 5.3939786 keV 2.9178699 cm 9.1368326 m World hIoni + 109 -3.8337905 m -1.3745444 m -4.214248 m 54.921553 MeV 5.2729722 keV 2.6372315 cm 9.1632049 m World hIoni + 110 -3.8856518 m -1.3908771 m -4.2422928 m 54.9081 MeV 11.330445 keV 6.1178939 cm 9.2243838 m World hIoni + 111 -3.8893693 m -1.3920477 m -4.2442978 m 54.905001 MeV 1.4926317 keV 4.3829624 mm 9.2287668 m World hIoni + 112 -3.9138914 m -1.3997609 m -4.2575278 m 54.879973 MeV 5.8952269 keV 2.891119 cm 9.257678 m World hIoni + 113 -3.9919891 m -1.4240006 m -4.2995224 m 54.8603 MeV 19.673409 keV 9.1925992 cm 9.349604 m World hIoni + 114 -4.0028302 m -1.4273573 m -4.3053569 m 54.855486 MeV 2.0587734 keV 1.2760795 cm 9.3623647 m World hIoni + 115 -4.009602 m -1.4294512 m -4.3090067 m 54.852242 MeV 2.182229 keV 7.9726889 mm 9.3703374 m World hIoni + 116 -4.0669011 m -1.4471698 m -4.3398916 m 54.829655 MeV 13.694374 keV 6.7461202 cm 9.4377986 m World hIoni + 117 -4.1500813 m -1.4732241 m -4.3849057 m 54.809967 MeV 18.38981 keV 9.8102368 cm 9.535901 m World hIoni + 118 -4.262217 m -1.5080194 m -4.4456879 m 54.781475 MeV 27.444725 keV 13.221066 cm 9.6681117 m World hIoni + 119 -4.4058669 m -1.551692 m -4.5231883 m 54.740771 MeV 39.610055 keV 16.896484 cm 9.8370765 m World hIoni + 120 -4.414632 m -1.5543614 m -4.527909 m 54.73061 MeV 2.6253708 keV 1.0307164 cm 9.8473837 m World hIoni + 121 -4.6183419 m -1.6165065 m -4.6376006 m 54.679657 MeV 49.693517 keV 23.956715 cm 10.086951 m World hIoni + 122 -4.6658814 m -1.6307566 m -4.6632735 m 54.667711 MeV 9.6702776 keV 5.5876414 cm 10.142827 m World hIoni + 123 -4.7208856 m -1.6471912 m -4.692866 m 54.65497 MeV 12.741454 keV 6.4585441 cm 10.207413 m OutOfWorld Transportation +Track (trackID 3, parentID 1) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.970645955358(mm),1.7849564091674(mm),78.418073169587(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.55739(mm),2.7208361(mm),78.314614(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.860703(mm),-3.7124177(mm),78.790113(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.846765(mm),1.8373188(mm),78.968898(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.404857(mm),-2.1327634(mm),78.517837(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.806926(mm),-2.9077576(mm),78.975922(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.1133(mm),-3.0630253(mm),78.9219(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.221178(mm),0.11266653(mm),79.431859(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.104729(mm),-2.1167803(mm),78.218104(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.100644(mm),-1.9010343(mm),79.100459(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.730974(mm),-0.20908926(mm),78.284007(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.130712(mm),0.40812011(mm),78.91883(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.817961(mm),-3.3720022(mm),78.444996(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.147002(mm),-0.18226616(mm),79.444939(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.900883(mm),-1.2070626(mm),79.312009(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.710485(mm),-2.2257023(mm),78.992928(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.58898(mm),-1.2524029(mm),78.661698(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.273441(mm),-3.6248663(mm),78.717336(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.727223(mm),1.4203179(mm),78.637322(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.556374(mm),1.846255(mm),79.372755(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.733868(mm),-2.5343485(mm),78.636151(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.515231(mm),2.6856941(mm),79.203683(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.763339(mm),3.4354851(mm),78.630954(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.467335(mm),-1.0287401(mm),79.212128(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.458966(mm),1.2278688(mm),78.508296(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.024966(mm),1.1415756(mm),79.29013(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.800541(mm),2.0968022(mm),78.624394(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.322839(mm),-0.98399951(mm),78.179645(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.366084(mm),-1.4446721(mm),78.17202(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.653755(mm),-2.4541942(mm),78.47395(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.101849(mm),-0.85022453(mm),79.276573(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.645111(mm),2.2922587(mm),78.651801(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.865616(mm),-0.95612138(mm),78.965574(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.020945(mm),2.5143041(mm),78.409204(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.008935(mm),-0.42053767(mm),78.587649(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.864691(mm),2.2760237(mm),78.78941(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.889671(mm),1.2016868(mm),78.256024(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9212,7 +9450,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.676672(mm),-0.14415348(mm),78.117255(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.928581(mm),0.36462274(mm),78.954471(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9221,7 +9459,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.347299(mm),0.58910491(mm),78.88064(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.777246(mm),2.2825255(mm),78.452175(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9230,7 +9468,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.830171(mm),-1.2637188(mm),78.442843(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.276055(mm),-3.138099(mm),78.540548(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9239,7 +9477,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.849735(mm),-2.0692239(mm),78.263066(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.667006(mm),1.8791631(mm),79.000594(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9248,7 +9486,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.563982(mm),1.4948528(mm),78.842433(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.926728(mm),0.44904275(mm),78.778471(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9257,7 +9495,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.483144(mm),3.0021465(mm),78.327706(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.870494(mm),0.98885368(mm),79.141041(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9266,7 +9504,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.08267(mm),-2.097727(mm),78.750974(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.150315(mm),-0.7461279(mm),79.444355(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9275,7 +9513,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.692014(mm),2.378492(mm),79.172511(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.389252(mm),-0.63259983(mm),79.402224(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9284,7 +9522,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.250167(mm),0.32851556(mm),78.897767(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.631517(mm),-2.4542793(mm),78.830525(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9293,7 +9531,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.159899(mm),0.22714249(mm),78.737357(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.316838(mm),0.068254641(mm),78.533357(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9302,7 +9540,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.279983(mm),1.0829412(mm),78.89251(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.307285(mm),-2.8109422(mm),79.240349(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9311,7 +9549,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.929764(mm),-0.80480663(mm),78.601609(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.029542(mm),-0.39216175(mm),79.289323(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9320,7 +9558,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.438103(mm),1.9775547(mm),79.217283(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.243614(mm),2.4714097(mm),78.546269(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9329,7 +9567,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.50467(mm),-3.7699414(mm),78.852891(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.000371(mm),1.5143716(mm),79.294467(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9338,7 +9576,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.103298(mm),0.098219995(mm),78.57101(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.722622(mm),-0.72832671(mm),78.28548(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9347,7 +9585,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.010913(mm),1.1900778(mm),78.5873(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.976352(mm),3.3000513(mm),78.769721(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9356,7 +9594,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.525998(mm),1.5001694(mm),78.143823(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.022158(mm),-3.4198069(mm),78.761644(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9365,7 +9603,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.719703(mm),-1.6615042(mm),78.462321(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.149862(mm),-0.79364506(mm),78.386473(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9374,7 +9612,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.920464(mm),-2.1762537(mm),78.955902(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.40556(mm),-1.6049932(mm),78.870367(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9383,223 +9621,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.790239(mm),1.3672503(mm),79.331519(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.784413(mm),-1.6793626(mm),78.450911(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.622748(mm),0.34411002(mm),79.361052(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.295944(mm),-0.43255833(mm),79.066022(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.703288(mm),0.170233(mm),78.288889(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.987256(mm),0.35715798(mm),78.238817(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.247464(mm),1.7356214(mm),78.192936(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.602163(mm),0.30122499(mm),78.835701(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.693215(mm),-0.48051769(mm),78.290665(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.511331(mm),-1.8968673(mm),78.67539(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.066129(mm),-2.4117515(mm),78.930218(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.844995(mm),0.57366914(mm),78.792883(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.774401(mm),0.87995411(mm),78.80533(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.322913(mm),2.6972447(mm),79.237594(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.401612(mm),-1.1382593(mm),78.165755(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.033192(mm),0.50573268(mm),79.465007(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.071947(mm),-0.28553305(mm),79.105519(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.417639(mm),1.5432772(mm),78.162929(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.905987(mm),0.55519889(mm),78.958455(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.907696(mm),1.5107665(mm),78.781827(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.697851(mm),2.3179789(mm),78.818828(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.773949(mm),0.78936546(mm),78.80541(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.913372(mm),0.69518868(mm),78.780826(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.062178(mm),0.17566065(mm),78.578261(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an 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.444664(mm),2.8023039(mm),78.687145(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.292334(mm),-2.5707309(mm),78.361351(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9644,7 +9666,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.133937(mm),2.3635732(mm),78.918262(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.922702(mm),-3.1494222(mm),79.131835(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9653,7 +9675,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.381753(mm),0.063769872(mm),79.403546(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.498804(mm),1.015449(mm),79.382907(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9662,7 +9684,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.775381(mm),1.2186257(mm),78.805158(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.098427(mm),2.4447166(mm),79.277177(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9671,7 +9693,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.546158(mm),2.1881082(mm),78.669249(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.1583(mm),0.23604128(mm),79.26662(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9680,7 +9702,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.114525(mm),1.3661047(mm),78.392703(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.823333(mm),-1.8526009(mm),78.796702(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9689,7 +9711,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.140964(mm),0.73208503(mm),78.564369(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.135087(mm),-2.0599414(mm),79.094386(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9698,7 +9720,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.561984(mm),3.0329333(mm),79.019112(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.829269(mm),-3.4718383(mm),78.971983(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9707,7 +9729,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.220932(mm),-1.5912491(mm),79.255576(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.188201(mm),1.3452766(mm),78.908693(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9716,7 +9738,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.382346(mm),0.92692955(mm),78.169152(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.011664(mm),-1.5949236(mm),78.587168(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9725,7 +9747,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.051988(mm),0.17640255(mm),79.461692(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.906782(mm),-1.2495261(mm),78.605661(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9734,7 +9756,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.408953(mm),1.9897941(mm),78.517115(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.692923(mm),-0.22956553(mm),78.290716(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9743,7 +9765,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.435031(mm),0.18581629(mm),79.217824(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.219721(mm),-1.7698307(mm),78.550481(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9752,7 +9774,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.38428(mm),0.68817702(mm),79.226773(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.704812(mm),-1.8268296(mm),78.993928(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9761,7 +9783,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.290437(mm),0.83429805(mm),78.361685(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.56084(mm),-1.4391816(mm),78.842987(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9770,7 +9792,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.161834(mm),-0.14555968(mm),79.265996(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.244065(mm),-1.1728156(mm),79.251497(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9779,7 +9801,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.203571(mm),-1.2238301(mm),78.553329(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.627004(mm),1.0429151(mm),78.302339(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9788,7 +9810,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.434321(mm),-1.1370418(mm),79.041623(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.863844(mm),0.32668102(mm),78.436905(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9797,7 +9819,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.64859(mm),-1.6751346(mm),79.003841(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.214828(mm),-0.94636448(mm),79.432979(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9806,7 +9828,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.261863(mm),1.0050798(mm),79.072032(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.027688(mm),3.5825414(mm),78.584342(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9815,7 +9837,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.132143(mm),-2.8376946(mm),78.565924(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.043286(mm),-2.7511779(mm),79.2869(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9824,7 +9846,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.891801(mm),-3.2151488(mm),79.137284(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.550756(mm),-0.74511497(mm),79.021092(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9833,7 +9855,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.450358(mm),0.14650806(mm),78.862468(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.178641(mm),2.9371531(mm),78.734052(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9842,7 +9864,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.694643(mm),1.7018808(mm),78.819394(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.477236(mm),-1.7780489(mm),79.034056(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9851,7 +9873,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.109715(mm),0.13482312(mm),79.451513(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.589117(mm),2.6763252(mm),78.838001(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9860,7 +9882,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.188696(mm),-1.1851495(mm),79.437587(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.967751(mm),-0.9175024(mm),79.123892(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9869,7 +9891,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.465877(mm),-1.8153492(mm),79.212385(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.413562(mm),-2.9512515(mm),78.692629(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9878,7 +9900,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.931092(mm),-1.1195915(mm),79.130356(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.010222(mm),2.8078905(mm),79.116403(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9887,7 +9909,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.430811(mm),-3.9564988(mm),78.689588(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.960959(mm),-0.96469886(mm),78.772435(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9896,7 +9918,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.598184(mm),-0.7825985(mm),79.365383(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.930375(mm),-2.5519819(mm),78.954155(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9905,7 +9927,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.364066(mm),0.44068132(mm),78.701357(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.668426(mm),1.5563163(mm),78.295036(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9914,7 +9936,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.817424(mm),2.0885377(mm),78.44509(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.670498(mm),0.36755422(mm),78.823651(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9923,7 +9945,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.973719(mm),-2.2338517(mm),78.770185(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.905918(mm),-3.2730443(mm),78.78214(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9932,7 +9954,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.30357(mm),1.6977117(mm),78.712024(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.795948(mm),-3.8078811(mm),78.801531(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9941,7 +9963,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.123881(mm),1.8723523(mm),79.096362(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.001034(mm),1.1470856(mm),78.236388(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9950,7 +9972,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.462227(mm),-2.6961371(mm),78.507721(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.650333(mm),-0.55690007(mm),78.65088(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9959,7 +9981,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.294216(mm),-0.51672132(mm),79.418981(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.81989(mm),-1.2565982(mm),78.620982(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9968,7 +9990,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.24098(mm),1.3543213(mm),78.546733(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.93182(mm),0.37913388(mm),79.130227(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9977,7 +9999,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.652383(mm),-0.85754654(mm),78.826845(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.510187(mm),0.64727786(mm),78.322938(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9986,7 +10008,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.66821(mm),0.9316734(mm),79.000382(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.920736(mm),0.49083847(mm),78.779528(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9995,7 +10017,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.853018(mm),1.7436416(mm),79.320449(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.461583(mm),1.6280165(mm),78.155181(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10004,7 +10026,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.077414(mm),-1.9744364(mm),79.280882(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.863466(mm),-0.49586347(mm),79.318607(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10013,7 +10035,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.821299(mm),-2.4687942(mm),78.620734(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.57731(mm),-1.0796782(mm),79.01641(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10022,7 +10044,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.464475(mm),0.34747172(mm),78.330998(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.639503(mm),-0.012579529(mm),78.829117(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10031,7 +10053,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.607375(mm),1.4217995(mm),79.187436(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.036083(mm),0.19481844(mm),78.759189(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10040,7 +10062,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.239015(mm),-2.490539(mm),78.899733(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.877415(mm),1.7530745(mm),78.434512(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10049,7 +10071,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.884934(mm),-1.2945302(mm),78.25686(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.136429(mm),0.88639507(mm),78.212514(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10058,7 +10080,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.134471(mm),-0.46541413(mm),78.389186(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.918315(mm),-1.0690858(mm),78.427301(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10067,7 +10089,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.316422(mm),-1.9439974(mm),78.886084(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.414955(mm),-0.58488294(mm),78.33973(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10076,7 +10098,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.987934(mm),-1.1937105(mm),78.944006(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.35642(mm),-3.2995517(mm),79.055359(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10085,7 +10107,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.94346(mm),-2.4366588(mm),78.775521(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.04304(mm),-3.5569665(mm),78.757962(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10094,7 +10116,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.870313(mm),-0.75264209(mm),78.964745(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.668256(mm),-0.64211936(mm),78.118739(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10103,7 +10125,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.748331(mm),1.1873236(mm),78.986254(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.721951(mm),-1.0744413(mm),79.34356(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10112,7 +10134,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.707679(mm),3.2250724(mm),78.993422(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.795426(mm),-3.0954131(mm),78.97795(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10121,7 +10143,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.491027(mm),0.80111802(mm),78.67897(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.017459(mm),0.91823402(mm),78.233492(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10130,7 +10152,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.190287(mm),2.7525059(mm),78.731998(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.329029(mm),1.368163(mm),79.412842(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10139,7 +10161,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.980585(mm),-2.6697472(mm),79.121629(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.842204(mm),1.8334817(mm),79.146029(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10148,16 +10170,181 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.80681(mm),0.46994586(mm),79.328597(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.946458(mm),-1.2279578(mm),78.422338(mm),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 = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 cm -1.23 mm 7.28 cm 56.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.4527295 cm 781.51989 um 7.1633548 cm 48.705985 MeV 7.4704997 MeV 2.3760839 mm 2.3760839 mm Target hIoni + 2 -1.4315432 cm 2.3377302 mm 7.0543029 cm 40.726459 MeV 7.9795262 MeV 1.9262915 mm 4.3023754 mm Target hIoni + 3 -1.3835911 cm 3.6352462 mm 7.0041433 cm 33.274217 MeV 7.4522419 MeV 1.4828306 mm 5.785206 mm Target hIoni + 4 -1.380901 cm 3.7292273 mm 6.998373 cm 32.850943 MeV 423.27395 keV 113.59247 um 5.8987985 mm Target Transportation + 5 15.327235 cm -1.6678757 cm -2 m 32.852143 MeV2.2142488e-16 eV 3.6858158 m 3.6917146 m CaptureMgnt Transportation + 6 15.481445 cm -2.9871534 cm -2.0090154 m 32.846306 MeV 4.4925201 keV 1.605321 cm 3.7077678 m World hIoni + 7 15.769377 cm -5.4447106 cm -2.0257795 m 32.835035 MeV 11.270608 keV 2.9887878 cm 3.7376557 m World hIoni + 8 15.880811 cm -6.3965017 cm -2.0322851 m 32.830373 MeV 3.4745799 keV 1.1582536 cm 3.7492382 m World hIoni + 9 15.888085 cm -6.4585927 cm -2.0327099 m 32.828187 MeV 391.78394 eV 755.83023 um 3.7499941 m World hIoni + 10 16.125892 cm -8.4797064 cm -2.0465411 m 32.815328 MeV 6.6734548 keV 2.460586 cm 3.7745999 m World hIoni + 11 16.898414 cm -15.095578 cm -2.0919295 m 32.779378 MeV 22.137881 keV 8.0602702 cm 3.8552026 m World hIoni + 12 17.312762 cm -18.641223 cm -2.1159912 m 32.764579 MeV 13.426158 keV 4.3049942 cm 3.8982526 m World hIoni + 13 17.338356 cm -18.858091 cm -2.1174791 m 32.761817 MeV 644.66367 eV 2.6424451 mm 3.900895 m World hIoni + 14 17.895185 cm -23.591598 cm -2.1499817 m 32.74552 MeV 13.722023 keV 5.7689245 cm 3.9585843 m World hIoni + 15 19.353142 cm -35.946891 cm -2.2346398 m 32.705862 MeV 38.336909 keV 15.048302 cm 4.1090673 m World hIoni + 16 19.509131 cm -37.276585 cm -2.2436958 m 32.701169 MeV 3.4661839 keV 1.6163325 cm 4.1252306 m World hIoni + 17 19.653277 cm -38.506217 cm -2.2520658 m 32.69288 MeV 3.6136395 keV 1.4944338 cm 4.140175 m World hIoni + 18 20.020275 cm -41.662994 cm -2.2736382 m 32.677529 MeV 14.017846 keV 3.8410518 cm 4.1785855 m World hIoni + 19 20.116419 cm -42.49473 cm -2.2793349 m 32.674315 MeV 2.0391498 keV 1.0126919 cm 4.1887124 m World hIoni + 20 20.330818 cm -44.372364 cm -2.2922247 m 32.665262 MeV 7.6586931 keV 2.287572 cm 4.2115881 m World hIoni + 21 20.441823 cm -45.267613 cm -2.2983697 m 32.659766 MeV 3.9015758 keV 1.0915143 cm 4.2225033 m World hIoni + 22 20.66547 cm -47.073704 cm -2.3107979 m 32.651775 MeV 6.5489518 keV 2.203764 cm 4.2445409 m World hIoni + 23 20.73366 cm -47.62433 cm -2.3145931 m 32.647556 MeV 2.5793767 keV 6.7221924 mm 4.2512631 m World hIoni + 24 21.353009 cm -52.622686 cm -2.3490523 m 32.624982 MeV 21.577705 keV 6.1025965 cm 4.3122891 m World hIoni + 25 21.456323 cm -53.438556 cm -2.3547081 m 32.62137 MeV 3.6117579 keV 9.9809479 mm 4.32227 m World hIoni + 26 21.494079 cm -53.736285 cm -2.3567713 m 32.615689 MeV 950.14385 eV 3.6419487 mm 4.3259119 m World hIoni + 27 21.674134 cm -55.157203 cm -2.3666362 m 32.610588 MeV 3.9999564 keV 1.739133 cm 4.3433033 m World hIoni + 28 22.73442 cm -63.348174 cm -2.4233521 m 32.583338 MeV 25.911967 keV 10.019172 cm 4.443495 m World hIoni + 29 23.24884 cm -67.37012 cm -2.4513548 m 32.561772 MeV 14.10895 keV 4.9277075 cm 4.4927721 m World hIoni + 30 23.266733 cm -67.512667 cm -2.4523522 m 32.540837 MeV 317.6326 eV 1.748915 mm 4.494521 m World hIoni + 31 23.637762 cm -70.498991 cm -2.4732753 m 32.529157 MeV 10.109164 keV 3.6651848 cm 4.5311728 m World hIoni + 32 23.826364 cm -71.974008 cm -2.4836647 m 32.517024 MeV 5.4649442 keV 1.814017 cm 4.549313 m World hIoni + 33 25.158122 cm -82.36174 cm -2.5568909 m 32.467939 MeV 39.334641 keV 12.778922 cm 4.6771022 m World hIoni + 34 25.458682 cm -84.624293 cm -2.572965 m 32.456568 MeV 8.3714013 keV 2.7916426 cm 4.7050187 m World hIoni + 35 25.94585 cm -88.27662 cm -2.5989751 m 32.442312 MeV 14.256818 keV 4.5102223 cm 4.7501209 m World hIoni + 36 25.983228 cm -88.555343 cm -2.6009596 m 32.441355 MeV 956.96309 eV 3.4419106 mm 4.7535628 m World hIoni + 37 26.095762 cm -89.394112 cm -2.6069356 m 32.40432 MeV 4.7959563 keV 1.0360123 cm 4.7639229 m World hIoni + 38 26.18305 cm -90.052705 cm -2.6116438 m 32.391746 MeV 1.194827 keV 8.1427051 mm 4.7720656 m World hIoni + 39 26.324076 cm -91.114818 cm -2.6192203 m 32.388605 MeV 2.0782357 keV 1.3122543 cm 4.7851882 m World hIoni + 40 26.716122 cm -94.038935 cm -2.6400971 m 32.36629 MeV 13.507726 keV 3.6142181 cm 4.8213303 m World hIoni + 41 27.517446 cm -99.748357 cm -2.6809822 m 32.340073 MeV 21.636395 keV 7.0679413 cm 4.8920098 m World hIoni + 42 27.695146 cm -1.0102463 m -2.6901162 m 32.333118 MeV 4.2397616 keV 1.579481 cm 4.9078046 m World hIoni + 43 28.08569 cm -1.0384282 m -2.7102455 m 32.32273 MeV 8.9291618 keV 3.4851976 cm 4.9426565 m World hIoni + 44 28.349435 cm -1.0577144 m -2.7240167 m 32.312628 MeV 8.2931484 keV 2.3844517 cm 4.9665011 m World hIoni + 45 28.478115 cm -1.0671367 m -2.7307629 m 32.307155 MeV 3.7352431 keV 1.1659607 cm 4.9781607 m World hIoni + 46 28.493773 cm -1.0682916 m -2.7315903 m 32.305508 MeV 620.07806 eV 1.4292891 mm 4.97959 m World hIoni + 47 28.511073 cm -1.0695678 m -2.7325043 m 32.268163 MeV 423.09583 eV 1.579225 mm 4.9811692 m World hIoni + 48 28.570002 cm -1.0738695 m -2.7355942 m 32.265051 MeV 1.3929989 keV 5.3291501 mm 4.9864983 m World hIoni + 49 28.670707 cm -1.081245 m -2.74089 m 32.263225 MeV 1.825656 keV 9.135496 mm 4.9956338 m World Decay +Track (trackID 3, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 49, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 28.7 cm -1.08 m -2.74 m 46 MeV 0 eV 0 fm 0 fm World initStep + 1 29.12285 cm -1.1812201 m -2.7905968 m 46.010898 MeV 27.686493 keV 11.174203 cm 11.174203 cm World muIoni + 2 29.338776 cm -1.2301523 m -2.8150473 m 45.997233 MeV 9.6005448 keV 5.4743571 cm 16.64856 cm World muIoni + 3 29.518159 cm -1.2703672 m -2.835249 m 45.982675 MeV 13.207279 keV 4.5039675 cm 21.152528 cm World muIoni + 4 29.808877 cm -1.3348949 m -2.8675498 m 45.968245 MeV 12.516023 keV 7.22193 cm 28.374458 cm World muIoni + 5 30.017127 cm -1.3780326 m -2.8891332 m 45.959169 MeV 7.0248786 keV 4.8280839 cm 33.202542 cm World muIoni + 6 30.307917 cm -1.4383085 m -2.9193761 m 45.943975 MeV 12.673532 keV 6.7500247 cm 39.952566 cm World muIoni + 7 30.588795 cm -1.4977849 m -2.9492583 m 45.928599 MeV 14.261754 keV 6.6620536 cm 46.61462 cm World muIoni + 8 30.617373 cm -1.5036242 m -2.9521707 m 45.926168 MeV 2.4307862 keV 6.5315826 mm 47.267778 cm World muIoni + 9 30.637209 cm -1.5076757 m -2.9541915 m 45.924611 MeV 441.27142 eV 4.5317728 mm 47.720955 cm World muIoni + 10 31.007769 cm -1.5787274 m -2.9899333 m 45.905205 MeV 16.677468 keV 7.962147 cm 55.683102 cm World muIoni + 11 31.270959 cm -1.6293813 m -3.0154509 m 45.892948 MeV 10.158884 keV 5.6779407 cm 61.361043 cm World muIoni + 12 31.278732 cm -1.6308978 m -3.0162168 m 45.888161 MeV 148.96237 eV 1.7006887 mm 61.531112 cm World muIoni + 13 31.498596 cm -1.6737171 m -3.037877 m 45.875762 MeV 8.9339741 keV 4.8036424 cm 66.334754 cm World muIoni + 14 31.557772 cm -1.6854051 m -3.0437984 m 45.872956 MeV 1.6274473 keV 1.3115665 cm 67.646321 cm World muIoni + 15 31.747418 cm -1.7223687 m -3.0625253 m 45.864965 MeV 7.9916924 keV 4.1480212 cm 71.794342 cm World muIoni + 16 32.544058 cm -1.8736997 m -3.1392934 m 45.82742 MeV 33.622114 keV 16.987667 cm 88.782009 cm World muIoni + 17 32.56033 cm -1.8770546 m -3.1410075 m 45.825837 MeV 183.07902 eV 3.7709155 mm 89.1591 cm World muIoni + 18 32.656389 cm -1.8967581 m -3.1510816 m 45.819343 MeV 5.4144521 keV 2.2150343 cm 91.374135 cm World muIoni + 19 33.993923 cm -2.1666836 m -3.2888298 m 45.75149 MeV 63.171161 keV 30.333889 cm 1.2170802 m World muIoni + 20 34.192229 cm -2.2056829 m -3.3085836 m 45.742011 MeV 8.46138 keV 4.3761786 cm 1.260842 m World muIoni + 21 34.20962 cm -2.2090852 m -3.3103106 m 45.738016 MeV 800.65054 eV 3.8194985 mm 1.2646615 m World muIoni + 22 34.231927 cm -2.2134935 m -3.3125495 m 45.737434 MeV 582.43859 eV 4.9492614 mm 1.2696108 m World muIoni + 23 34.402471 cm -2.2472455 m -3.3296895 m 45.727308 MeV 7.990732 keV 3.7893116 cm 1.3075039 m World muIoni + 24 34.503749 cm -2.2673389 m -3.3398949 m 45.700267 MeV 4.3180104 keV 2.2559309 cm 1.3300632 m World muIoni + 25 34.509351 cm -2.2684396 m -3.3404525 m 45.699028 MeV 143.40529 eV 1.2351026 mm 1.3312983 m World muIoni + 26 34.637742 cm -2.2934652 m -3.3531253 m 45.692172 MeV 5.5047485 keV 2.8080769 cm 1.3593791 m World muIoni + 27 35.191852 cm -2.4022281 m -3.408268 m 45.667959 MeV 23.19482 keV 12.206912 cm 1.4814482 m World muIoni + 28 35.219352 cm -2.4074796 m -3.4108988 m 45.643338 MeV 1.4332605 keV 5.8800447 mm 1.4873282 m World muIoni + 29 35.450225 cm -2.4504697 m -3.4323881 m 45.631432 MeV 10.440869 keV 4.8117303 cm 1.5354455 m World muIoni + 30 35.501715 cm -2.4600202 m -3.4371685 m 45.629926 MeV 1.5055772 keV 1.0692492 cm 1.546138 m World muIoni + 31 35.66653 cm -2.4909863 m -3.4526851 m 45.621878 MeV 5.6541247 keV 3.4675347 cm 1.5808134 m World muIoni + 32 35.709986 cm -2.4993142 m -3.4568523 m 45.617213 MeV 3.4589212 keV 9.3224601 mm 1.5901358 m World muIoni + 33 36.355607 cm -2.6230098 m -3.518655 m 45.577826 MeV 31.103633 keV 13.842681 cm 1.7285627 m World muIoni + 34 36.46527 cm -2.6439783 m -3.5291975 m 45.573326 MeV 3.4805062 keV 2.3495199 cm 1.7520579 m World muIoni + 35 36.582083 cm -2.6661059 m -3.540302 m 45.564278 MeV 9.0476387 keV 2.4785231 cm 1.7768431 m World muIoni + 36 36.594531 cm -2.6684796 m -3.5414931 m 45.561595 MeV 569.12976 eV 2.6586533 mm 1.7795017 m World muIoni + 37 37.178426 cm -2.7803836 m -3.5976801 m 45.530537 MeV 29.027714 keV 12.535413 cm 1.9048559 m World muIoni + 38 37.485565 cm -2.8365485 m -3.6258673 m 45.519646 MeV 9.873423 keV 6.2916264 cm 1.9677721 m World muIoni + 39 37.569603 cm -2.8520766 m -3.6336454 m 45.51608 MeV 2.4986078 keV 1.7387563 cm 1.9851597 m World muIoni + 40 37.828696 cm -2.8998425 m -3.6575049 m 45.50399 MeV 12.090756 keV 5.3456251 cm 2.038616 m World muIoni + 41 38.29035 cm -2.9839839 m -3.6995982 m 45.485114 MeV 16.913055 keV 9.4196444 cm 2.1328124 m World muIoni + 42 38.374348 cm -2.9996536 m -3.7074271 m 45.478477 MeV 2.4645755 keV 1.7536694 cm 2.1503491 m World muIoni + 43 38.382615 cm -3.0011894 m -3.708196 m 45.476708 MeV 768.81522 eV 1.7195637 mm 2.1520687 m World muIoni + 44 38.555672 cm -3.0335394 m -3.7243971 m 45.472784 MeV 3.9240739 keV 3.6221404 cm 2.1882901 m World muIoni + 45 38.691268 cm -3.0591013 m -3.737202 m 45.465875 MeV 5.8076419 keV 2.8621967 cm 2.216912 m World muIoni + 46 39.392792 cm -3.1915851 m -3.8035867 m 45.424987 MeV 32.001049 keV 14.835171 cm 2.3652637 m World muIoni + 47 39.778899 cm -3.2652306 m -3.8408128 m 45.40899 MeV 15.006305 keV 8.2609823 cm 2.4478736 m World muIoni + 48 39.818345 cm -3.2724213 m -3.8444408 m 45.393363 MeV 3.1262128 keV 8.0637755 mm 2.4559373 m World muIoni + 49 40.032058 cm -3.3116656 m -3.8643054 m 45.383897 MeV 8.3094128 keV 4.4037315 cm 2.4999746 m World muIoni + 50 40.299169 cm -3.3600497 m -3.888775 m 45.372229 MeV 11.667068 keV 5.4285489 cm 2.5542601 m World muIoni + 51 40.588758 cm -3.4147041 m -3.9162336 m 45.357144 MeV 11.84389 keV 6.1232993 cm 2.6154931 m World muIoni + 52 40.704169 cm -3.4358796 m -3.9268381 m 45.348254 MeV 7.8476783 keV 2.3710502 cm 2.6392036 m World muIoni + 53 40.947489 cm -3.4801001 m -3.9488828 m 45.334987 MeV 10.534695 keV 4.9470717 cm 2.6886743 m World muIoni + 54 41.791378 cm -3.6313833 m -4.0241031 m 45.295297 MeV 36.717157 keV 16.916294 cm 2.8578373 m World muIoni + 55 41.794467 cm -3.6318984 m -4.0243594 m 45.292184 MeV 41.806115 eV 576.18795 um 2.8584135 m World muIoni + 56 41.951832 cm -3.6580825 m -4.0374053 m 45.284642 MeV 6.3113405 keV 2.9296418 cm 2.8877099 m World muIoni + 57 41.980047 cm -3.6628069 m -4.0397662 m 45.276781 MeV 1.4454926 keV 5.2890416 mm 2.8929989 m World muIoni + 58 42.503587 cm -3.7504376 m -4.0836249 m 45.253542 MeV 19.545254 keV 9.8133393 cm 2.9911323 m World muIoni + 59 42.658791 cm -3.7775562 m -4.0970953 m 45.245354 MeV 8.188331 keV 3.0319618 cm 3.021452 m World muIoni + 60 42.76224 cm -3.7951486 m -4.1058739 m 45.236907 MeV 3.4937549 keV 1.9688283 cm 3.0411402 m World muIoni + 61 42.763916 cm -3.7954364 m -4.1060171 m 45.234882 MeV 77.823825 eV 321.83474 um 3.0414621 m World muIoni + 62 43.482374 cm -3.9180311 m -4.167075 m 45.186065 MeV 28.212714 keV 13.71468 cm 3.1786089 m World muIoni + 63 43.50256 cm -3.9215246 m -4.1687941 m 45.181132 MeV 849.73299 eV 3.8988633 mm 3.1825077 m World muIoni + 64 43.554675 cm -3.9305909 m -4.1732473 m 45.176597 MeV 2.2673766 keV 1.0114359 cm 3.1926221 m World muIoni + 65 43.557915 cm -3.9311479 m -4.1735209 m 45.17646 MeV 136.53786 eV 621.38945 um 3.1932435 m World muIoni + 66 43.921145 cm -3.9934928 m -4.204151 m 45.155579 MeV 15.925413 keV 6.955784 cm 3.2628013 m World muIoni + 67 43.950882 cm -3.9984316 m -4.2065742 m 45.154749 MeV 829.62641 eV 5.509301 mm 3.2683106 m World muIoni + 68 44.041739 cm -4.0135025 m -4.2139664 m 45.146933 MeV 3.0081737 keV 1.681081 cm 3.2851214 m World muIoni + 69 44.051696 cm -4.0151755 m -4.2147863 m 45.146607 MeV 326.15365 eV 1.8657549 mm 3.2869872 m World muIoni + 70 44.262335 cm -4.0506487 m -4.2321741 m 45.137144 MeV 8.0725051 keV 3.9561627 cm 3.3265488 m World muIoni + 71 44.387885 cm -4.0712229 m -4.2422405 m 45.132977 MeV 2.9878866 keV 2.2939168 cm 3.349488 m World muIoni + 72 44.450918 cm -4.0815087 m -4.2472742 m 45.126207 MeV 2.5717071 keV 1.1468839 cm 3.3609568 m World muIoni + 73 44.476547 cm -4.0857676 m -4.2493568 m 45.122673 MeV 825.81261 eV 4.7476927 mm 3.3657045 m World muIoni + 74 44.64837 cm -4.1141681 m -4.2632326 m 45.100573 MeV 5.167547 keV 3.1655628 cm 3.3973601 m World muIoni + 75 44.948208 cm -4.1642883 m -4.2878105 m 45.089549 MeV 11.024449 keV 5.5902668 cm 3.4532628 m World muIoni + 76 44.986919 cm -4.1708019 m -4.2909972 m 45.086929 MeV 1.5259084 keV 7.2616962 mm 3.4605245 m World muIoni + 77 45.615946 cm -4.2753622 m -4.3420391 m 45.063316 MeV 22.118482 keV 11.652398 cm 3.5770485 m World muIoni + 78 46.012825 cm -4.3483137 m -4.3770926 m 45.048809 MeV 14.506543 keV 8.1033525 cm 3.658082 m World muIoni + 79 46.054423 cm -4.3561277 m -4.3808648 m 45.042954 MeV 2.1535895 keV 8.6868755 mm 3.6667689 m World muIoni + 80 46.059822 cm -4.3571589 m -4.3813632 m 45.042368 MeV 585.20477 eV 1.1465639 mm 3.6679155 m World muIoni + 81 46.093171 cm -4.3635051 m -4.3844303 m 45.031602 MeV 2.5444688 keV 7.0564179 mm 3.6749719 m World muIoni + 82 46.108811 cm -4.3665275 m -4.3858918 m 45.028399 MeV 464.88737 eV 3.3608345 mm 3.6783327 m World muIoni + 83 46.118666 cm -4.3684271 m -4.3868115 m 45.026339 MeV 201.47374 eV 2.1127874 mm 3.6804455 m World muIoni + 84 46.128534 cm -4.3703203 m -4.3877278 m 45.024646 MeV 517.80075 eV 2.1056637 mm 3.6825512 m World muIoni + 85 46.492701 cm -4.4397858 m -4.4213336 m 45.011081 MeV 12.317066 keV 7.7253389 cm 3.7598045 m World muIoni + 86 46.65797 cm -4.469008 m -4.4354146 m 44.994665 MeV 5.4961121 keV 3.2479845 cm 3.7922844 m World muIoni + 87 47.124026 cm -4.5528845 m -4.475974 m 44.97452 MeV 19.120852 keV 9.3284981 cm 3.8855694 m World muIoni + 88 47.344553 cm -4.593784 m -4.4959849 m 44.930833 MeV 9.2294462 keV 4.558593 cm 3.9311553 m World muIoni + 89 47.6185 cm -4.6476939 m -4.5222448 m 44.917662 MeV 10.765026 keV 6.0028076 cm 3.9911834 m World muIoni + 90 47.810748 cm -4.6862416 m -4.5410088 m 44.907565 MeV 10.097036 keV 4.2915124 cm 4.0340985 m World muIoni + 91 47.830039 cm -4.6899167 m -4.5428 m 44.905198 MeV 556.07159 eV 4.0929133 mm 4.0381914 m World muIoni + 92 47.879212 cm -4.6992352 m -4.5473446 m 44.902518 MeV 1.5939782 keV 1.0379356 cm 4.0485708 m World muIoni + 93 47.900667 cm -4.7033024 m -4.5493277 m 44.882687 MeV 579.68372 eV 4.5299627 mm 4.0531007 m World muIoni + 94 48.192515 cm -4.7600713 m -4.577019 m 44.866822 MeV 14.067428 keV 6.3230034 cm 4.1163308 m World muIoni + 95 48.547676 cm -4.8290778 m -4.6105438 m 44.851453 MeV 15.369014 keV 7.6801361 cm 4.1931321 m World muIoni + 96 49.146522 cm -4.953081 m -4.671213 m 44.801964 MeV 28.3894 keV 13.817925 cm 4.3313114 m World muIoni + 97 49.178031 cm -4.9593303 m -4.6742637 m 44.801406 MeV 558.8018 eV 6.9613351 mm 4.3382727 m World muIoni + 98 49.211409 cm -4.965949 m -4.6774949 m 44.799976 MeV 1.4292949 keV 7.3728869 mm 4.3456456 m World muIoni + 99 49.242247 cm -4.9720762 m -4.6804883 m 44.796467 MeV 1.0044037 keV 6.8262881 mm 4.3524719 m World muIoni + 100 49.260501 cm -4.9756749 m -4.6822455 m 44.79569 MeV 777.2057 eV 4.0089108 mm 4.3564808 m OutOfWorld Transportation +Track (trackID 49, parentID 3) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.666811(mm),-2.2937633(mm),79.176955(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.973930816347(mm),-1.6534949482768(mm),78.593820940676(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10166,7 +10353,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.710761(mm),-2.3779805(mm),78.463898(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.855813(mm),-2.8016706(mm),78.614648(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10175,7 +10362,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.389899(mm),3.1632247(mm),78.696802(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.732233(mm),-3.3879619(mm),78.812766(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10184,7 +10371,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.764199(mm),0.88657101(mm),79.33611(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.562759(mm),1.1772235(mm),78.666322(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10193,7 +10380,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.044191(mm),-0.38272231(mm),79.28674(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.132358(mm),-0.70884324(mm),79.271194(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10202,7 +10389,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.354796(mm),-2.7929355(mm),78.702991(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.770536(mm),-3.7076223(mm),78.806012(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10211,7 +10398,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.886242(mm),-1.5581357(mm),78.432956(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.125306(mm),0.19959388(mm),78.390802(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10220,7 +10407,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.272375(mm),-1.4849056(mm),79.070178(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.049441(mm),-1.2098085(mm),79.109487(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10229,7 +10416,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.549629(mm),-0.68271992(mm),78.315983(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.312156(mm),-2.3838157(mm),78.357856(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10238,7 +10425,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.246705(mm),-2.3743908(mm),78.369397(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.799691(mm),1.9207987(mm),78.448217(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10247,7 +10434,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.756638(mm),3.1599519(mm),78.455809(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.78677(mm),0.78122513(mm),78.803149(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10256,7 +10443,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.694176(mm),3.7363106(mm),78.995803(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.05344(mm),-1.7268447(mm),78.932455(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10265,7 +10452,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.805247(mm),-2.4733289(mm),78.447238(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.240534(mm),-1.1692647(mm),78.723139(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10274,7 +10461,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.370759(mm),-0.13192276(mm),79.229157(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.16972(mm),-3.8889366(mm),78.911952(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10283,7 +10470,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.384554(mm),0.9269914(mm),78.34509(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.561368(mm),2.2646995(mm),79.195548(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10292,7 +10479,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.648341(mm),3.5654903(mm),78.827558(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.624606(mm),-2.8089812(mm),78.831743(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10301,7 +10488,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.433413(mm),3.037841(mm),78.512802(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.286089(mm),0.4551511(mm),78.362452(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10310,7 +10497,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.185256(mm),2.4225019(mm),78.732886(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.04696(mm),-1.8994082(mm),78.757271(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10319,7 +10506,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.582608(mm),3.1532106(mm),79.191803(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.55922(mm),0.81385463(mm),78.490619(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10328,7 +10515,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.364822(mm),1.2701833(mm),78.348569(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.992367(mm),-2.7698494(mm),78.766897(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10337,7 +10524,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.229429(mm),2.8207749(mm),79.077751(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.644976(mm),2.0062469(mm),78.475497(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10346,7 +10533,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.697953(mm),-1.5010612(mm),78.466156(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.785293(mm),0.50278288(mm),78.627083(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10355,7 +10542,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.794494(mm),0.76294389(mm),79.154441(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.487682(mm),-1.9358509(mm),78.67956(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10364,7 +10551,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.313447(mm),0.39833538(mm),79.062936(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.45732(mm),2.2473661(mm),78.86124(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10373,7 +10560,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.898736(mm),-2.3634545(mm),78.60708(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.24152(mm),2.7435313(mm),78.370311(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10382,7 +10569,718 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.84009(mm),-3.3956695(mm),79.146402(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.025411(mm),2.3247479(mm),78.76107(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.646758(mm),-2.3887013(mm),78.475183(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.998926(mm),1.8641586(mm),78.942068(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.202276(mm),2.6038444(mm),78.553558(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.144409(mm),1.9601821(mm),78.211107(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.344738(mm),1.2931456(mm),78.352111(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.883834(mm),3.3411251(mm),79.138688(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.089403(mm),-1.7315892(mm),79.278768(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.130193(mm),1.0578102(mm),79.447903(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.338695(mm),3.6195799(mm),78.882157(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.377415(mm),3.06657(mm),78.522676(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.780444(mm),1.5421367(mm),78.627938(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.892242(mm),2.8680313(mm),78.431898(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.649535(mm),-1.3736403(mm),78.827348(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.663025(mm),-2.492306(mm),78.824969(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.377439(mm),-2.3477693(mm),79.22798(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.343563(mm),3.6338447(mm),78.881299(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.042385(mm),3.9858453(mm),78.758078(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.777689(mm),-1.8344347(mm),78.628424(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.708241(mm),-1.0881335(mm),78.464342(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.844803(mm),2.1600302(mm),78.440263(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.890925(mm),-2.2341527(mm),79.313765(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.718748(mm),3.7986533(mm),78.638816(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.150644(mm),0.30002653(mm),78.386335(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.789675(mm),1.8549541(mm),79.331618(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.206638(mm),-0.67104138(mm),79.258096(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.83202(mm),2.6617444(mm),78.26619(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.983993(mm),-1.0751612(mm),78.592047(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.006602(mm),-2.0914308(mm),79.117041(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.638254(mm),3.1125908(mm),79.181991(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.955033(mm),-1.0456534(mm),78.77348(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.045359(mm),-3.2256859(mm),78.404899(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.871802(mm),2.2699577(mm),78.435502(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.381697(mm),3.197365(mm),78.698248(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.699977(mm),3.364218(mm),78.99478(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.899766(mm),0.74753431(mm),79.135879(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.722031(mm),-0.28140479(mm),78.990892(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.279378(mm),-1.3486085(mm),79.24527(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.945654(mm),0.84977067(mm),78.775134(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.368007(mm),1.1510273(mm),78.524335(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.736177(mm),0.0066583477(mm),79.164724(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.550466(mm),1.2798766(mm),78.492162(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.530738(mm),-0.59982548(mm),78.319314(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.141283(mm),-1.6248034(mm),78.916966(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.493391(mm),3.0219853(mm),78.85488(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.753963(mm),-3.2729294(mm),78.808934(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.745534(mm),-2.7494573(mm),78.986747(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.077072(mm),3.227109(mm),78.575634(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.225946(mm),-1.3077466(mm),78.19673(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.617358(mm),-2.5246063(mm),79.185675(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.482871(mm),2.0132101(mm),78.680408(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.672657(mm),-1.6974505(mm),78.646944(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.831346(mm),-2.2063793(mm),79.32427(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.869943(mm),2.3204535(mm),79.141138(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.693847(mm),1.782728(mm),78.995861(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.290789(mm),2.0211489(mm),78.185296(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.237052(mm),-0.7097148(mm),79.429061(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.370965(mm),-3.0895049(mm),79.052794(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.202852(mm),0.39049467(mm),78.377129(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.524729(mm),-1.8576198(mm),78.673027(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.114998(mm),1.0624336(mm),79.450582(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.446893(mm),1.910993(mm),78.863079(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.568284(mm),-1.7961425(mm),79.018001(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.729632(mm),-3.8618113(mm),78.813224(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.433959(mm),-3.7873033(mm),78.689033(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.049905(mm),-0.64125852(mm),79.285733(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.934778(mm),3.6278(mm),78.953379(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.120267(mm),0.36068154(mm),78.920672(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.237467(mm),0.41534569(mm),78.194698(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.195316(mm),2.3894882(mm),79.260093(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.806773(mm),1.868504(mm),79.152276(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.223999(mm),-0.77492004(mm),79.255035(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.847624(mm),-1.2284806(mm),79.145073(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.892645(mm),-2.2205201(mm),79.313462(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.309922(mm),-1.4411755(mm),78.181923(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.135366(mm),1.3170746(mm),78.212702(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.200677(mm),-3.0320283(mm),78.730166(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.906094(mm),3.0287045(mm),78.958436(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.292304(mm),2.4806119(mm),78.361356(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an 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.655867(mm),-0.67668954(mm),78.29725(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10412,12 +11310,12 @@ G4NistMaterialBuilder::FindOrBuildMaterial G4_W --------- Ranecu engine status --------- Initial seed (index) = 159 - Current couple of seeds = 1014004504, 2110101392 + Current couple of seeds = 1519043256, 444489651 ---------------------------------------- ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.570831(mm),1.098795(mm),78.488571(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.005116(mm),-3.3766898(mm),78.588322(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10426,7 +11324,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.317862(mm),-1.8452643(mm),78.885831(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.611179(mm),-0.67375561(mm),78.657784(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10435,7 +11333,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.864508(mm),-3.3819159(mm),78.789442(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.399159(mm),-1.3154803(mm),78.518842(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10444,7 +11342,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.287952(mm),-0.74354809(mm),79.243758(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.596915(mm),2.1454865(mm),78.836626(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10453,7 +11351,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.023635(mm),1.4634589(mm),78.937711(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.284748(mm),-3.3030221(mm),78.539015(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10462,7 +11360,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.090006(mm),-1.5355645(mm),78.397027(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.848987(mm),1.5934613(mm),78.263198(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10471,7 +11369,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.213337(mm),-3.7890583(mm),78.904261(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.117361(mm),-1.4487282(mm),78.392203(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10480,7 +11378,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.516123(mm),-1.7167665(mm),78.850872(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.149807(mm),1.1726695(mm),78.562809(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10489,7 +11387,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.391159(mm),-1.3945912(mm),78.520252(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.343866(mm),1.9105457(mm),78.704918(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10498,7 +11396,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.339441(mm),-2.0158807(mm),78.882026(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.719801(mm),0.55953272(mm),78.285977(mm),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/src/F04GlobalField.cc b/examples/extended/field/field04/src/F04GlobalField.cc index 2a44147dab..5a6896b0d9 100644 --- a/examples/extended/field/field04/src/F04GlobalField.cc +++ b/examples/extended/field/field04/src/F04GlobalField.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: F04GlobalField.cc 79449 2014-02-28 14:32:58Z gcosmo $ +// $Id: F04GlobalField.cc 96981 2016-05-19 09:42:40Z gcosmo $ // /// \file field/field04/src/F04GlobalField.cc /// \brief Implementation of the F04GlobalField class @@ -299,7 +299,8 @@ void F04GlobalField::Clear() } } - if (fFp) delete [] fFp; fFirst = true; + if (fFp) { delete [] fFp; } + fFirst = true; fNfp = 0; fFp = NULL; } diff --git a/examples/extended/field/field05/field05.out b/examples/extended/field/field05/field05.out index c7a1fc9c89..0e5f29f4ef 100644 --- a/examples/extended/field/field05/field05.out +++ b/examples/extended/field/field05/field05.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -50,16 +50,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none diff --git a/examples/extended/field/field06/field06.out b/examples/extended/field/field06/field06.out index 1d8e5492cf..b18cc7597b 100644 --- a/examples/extended/field/field06/field06.out +++ b/examples/extended/field/field06/field06.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -62,16 +62,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -2299,7 +2301,7 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 1 - User=0.03s Real=0.03s Sys=0s + User=0.04s Real=0.05s Sys=0.01s # Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index 744eb167fd..4d1e141b62 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -1,5 +1,5 @@ argc 4 -Geometry data file: /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/g3tog4/clGeometry/data/testmodel.dat +Geometry data file: /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/g3tog4/clGeometry/data/testmodel.dat evaluating -m ############################################ @@ -7,17 +7,17 @@ evaluating -m ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -Instantiated G3toG4DetectorConstruction using call list file "/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/g3tog4/clGeometry/data/testmodel.dat" +Instantiated G3toG4DetectorConstruction using call list file "/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/g3tog4/clGeometry/data/testmodel.dat" <<< Geant4 Physics List simulation engine: FTFP_BERT 2.0 Instantiated unit rotation matrix irot=0 -Reading the call List file /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/g3tog4/clGeometry/data/testmodel.dat... +Reading the call List file /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/g3tog4/clGeometry/data/testmodel.dat... G4ggclos: setting top-level VolTableEntry Dump of VTD - 26 entries: Instantiated 26 volume table entries @@ -62,6 +62,14 @@ Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visib line segments per circle: not forced. time range: (-1.79769e+308,1.79769e+308) G4AttValue pointer is zero, G4AttDef pointer is zero +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -90,16 +98,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -226,7 +236,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -240,7 +250,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -349,7 +359,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -382,7 +392,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -508,6 +518,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -905,7 +920,7 @@ WARNING: Scene "none" not found. Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0s Sys=0s + User=0.01s Real=0s Sys=0s WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Region -- -- appears in world volume diff --git a/examples/extended/geometry/transforms/batch.out b/examples/extended/geometry/transforms/batch.out index b33d929d80..2c80fd4b68 100644 --- a/examples/extended/geometry/transforms/batch.out +++ b/examples/extended/geometry/transforms/batch.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -89,7 +89,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0s Sys=0s + User=0s Real=0.01s Sys=0s G4 kernel has come to Quit state. UserDetectorConstruction deleted. UserPhysicsList deleted. diff --git a/examples/extended/hadronic/.README.txt b/examples/extended/hadronic/.README.txt index d473e3e728..bb6b809de1 100644 --- a/examples/extended/hadronic/.README.txt +++ b/examples/extended/hadronic/.README.txt @@ -49,6 +49,12 @@ the concrete physics list at the run time. This example demonstrates survey of energy deposition and particle's flux from a hadronic cascade. +\link ExampleHadr07 Hadr07 \endlink + +Survey energy deposition and particle's flux from an hadronic cascade. +Use PhysicsConstructor objects rather than predefined G4 PhysicsLists. +Show how to plot a depth dose profile in a rectangular box. + \link ExampleFissionFragment FissionFragment \endlink This example demonstrates the Fission Fragment model as used within the diff --git a/examples/extended/hadronic/CMakeLists.txt b/examples/extended/hadronic/CMakeLists.txt index abcd7e78b0..3b674e4264 100644 --- a/examples/extended/hadronic/CMakeLists.txt +++ b/examples/extended/hadronic/CMakeLists.txt @@ -9,4 +9,5 @@ add_subdirectory(Hadr03) add_subdirectory(Hadr04) add_subdirectory(Hadr05) add_subdirectory(Hadr06) +add_subdirectory(Hadr07) add_subdirectory(FissionFragment) diff --git a/examples/extended/hadronic/FissionFragment/FissionFragment.out b/examples/extended/hadronic/FissionFragment/FissionFragment.out index bfb5bb3d98..69f53b06e6 100644 --- a/examples/extended/hadronic/FissionFragment/FissionFragment.out +++ b/examples/extended/hadronic/FissionFragment/FissionFragment.out @@ -1,11 +1,11 @@ -#### Starting: /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/examples/extended/hadronic/FissionFragment/FissionFragment #### +#### Starting: /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/examples/extended/hadronic/FissionFragment/FissionFragment #### ############################################ !!! WARNING - FPE detection is activated !!! ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -326,18 +326,26 @@ Checking overlaps for volume Plate@Location X:10.00 Y:-6.60 ... OK! Checking overlaps for volume Plate@Location X:-10.00 Y:6.60 ... OK! Checking overlaps for volume Plate@Location X:-10.00 Y:-6.60 ... OK! 312 plates were added to the subcritical assembly -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -365,16 +373,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -501,7 +511,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -515,7 +525,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -624,7 +634,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -657,7 +667,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -681,27 +691,27 @@ CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 10 TeV -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -Activate Fission Fragments Production for the target isotope of Z = 92, A = 235 -As the result, delayed neutrons are omitted and they should be taken care by RadioaActiveDecay. -Activate Fission Fragments Production for the target isotope of Z = 92, A = 238 -As the result, delayed neutrons are omitted and they should be taken care by RadioaActiveDecay. +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +Fission fragment production is now activated in HP package for Z = 92, A = 235 +As currently modeled this option precludes production of delayed neutrons from fission fragments. +Fission fragment production is now activated in HP package for Z = 92, A = 238 +As currently modeled this option precludes production of delayed neutrons from fission fragments. msc: for pi+ SubType= 10 RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 @@ -782,6 +792,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1006,7 +1021,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 Model: QGSP: 12 GeV ---> 100 TeV Model: FTFP: 9.5 GeV ---> 25 GeV Model: Binary Cascade: 19.9 MeV ---> 9.9 GeV - Model: ParticleHPInelastic: 0 eV ---> 20 MeV + Model: NeutronHPInelastic: 0 eV ---> 20 MeV Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV diff --git a/examples/extended/hadronic/FissionFragment/History b/examples/extended/hadronic/FissionFragment/History index 3a98089510..cd8ab8f6c5 100644 --- a/examples/extended/hadronic/FissionFragment/History +++ b/examples/extended/hadronic/FissionFragment/History @@ -15,7 +15,7 @@ track of all tags. ---------------------------------------------------------- 26-10-15 T. Koi (exExtHadFissFrag-V10-01-01) -- Fix Waring message in prvious tag +- Fix compiler waring message in previous tag 25-10-15 T. Koi (exExtHadFissFrag-V10-01-00) - Limit number of worker threads of one diff --git a/examples/extended/hadronic/Hadr00/hadr00.out b/examples/extended/hadronic/Hadr00/hadr00.out index b249b5bb49..8c459a2ca5 100644 --- a/examples/extended/hadronic/Hadr00/hadr00.out +++ b/examples/extended/hadronic/Hadr00/hadr00.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -48,6 +48,14 @@ G4PhysListFactory::GetReferencePhysList EMoption= 0 +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /process/em/workerVerbose 0 /gun/particle proton @@ -170,7 +178,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -184,7 +192,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -293,7 +301,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -326,7 +334,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -452,6 +460,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -748,7 +761,7 @@ EventAction: Event # 0 started Run terminated. Run Summary Number of events processed : 10 - User=0.02s Real=0.02s Sys=0s + User=0.02s Real=0.03s Sys=0s RunAction: End of run actions are started HistoManager: End of run actions are started ### Fill Cross Sections for proton off Al @@ -1556,9 +1569,10 @@ HistoManager: End of run actions are started 798 9.661e+06 0.2809 0.4955 0.7764 799 9.886e+06 0.2818 0.4959 0.7777 ------------------------------------------------------------- +### proton 5 GeV on G4_Al xs/X0= 4.09201 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.034 MB +Dynamic pools deleted: 11 / Total memory freed: 0.045 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr00/si.in b/examples/extended/hadronic/Hadr00/si.in new file mode 100644 index 0000000000..b21d449ae8 --- /dev/null +++ b/examples/extended/hadronic/Hadr00/si.in @@ -0,0 +1,32 @@ +#================================================ +# Macro file for hadr00 +# 06.06.2008 V.Ivanchneko +#================================================ +/control/cout/ignoreThreadsExcept 0 +/control/verbose 1 +/run/verbose 1 +/tracking/verbose 0 +# +/testhadr/TargetMat G4_Si +/testhadr/TargetRadius 2 cm +/testhadr/TargetLength 50 cm +/run/printProgress 10 +/run/setCut 1 km +# +/run/initialize +/process/em/workerVerbose 0 +# +/gun/particle proton +/gun/energy 5. GeV +/testhadr/particle neutron +/testhadr/particle pi+ +/testhadr/particle pi- +/testhadr/particle kaon+ +/testhadr/particle kaon- +/testhadr/particle anti_proton +/testhadr/particle kaon0L +/testhadr/particle neutron +/testhadr/particle anti_sigma0 +/testhadr/verbose 0 +/run/beamOn 1 +# diff --git a/examples/extended/hadronic/Hadr00/src/HistoManager.cc b/examples/extended/hadronic/Hadr00/src/HistoManager.cc index 60d757d5ed..19561f8f75 100644 --- a/examples/extended/hadronic/Hadr00/src/HistoManager.cc +++ b/examples/extended/hadronic/Hadr00/src/HistoManager.cc @@ -26,7 +26,7 @@ /// \file hadronic/Hadr00/src/HistoManager.cc /// \brief Implementation of the HistoManager class // -// $Id: HistoManager.cc 81073 2014-05-20 10:23:13Z gcosmo $ +// $Id: HistoManager.cc 96284 2016-04-04 07:19:26Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -248,6 +248,16 @@ void HistoManager::EndOfRun() fAnalysisManager->Write(); fAnalysisManager->CloseFile(); + G4bool extra = true; + if(fTargetMaterial && extra) { + G4double E= 5*GeV; + G4double cross = + store->GetInelasticCrossSectionPerVolume(particle,E,fTargetMaterial); + if(cross <= 0.0) { cross = 1.e-100; } + G4cout << "### " << particle->GetParticleName() << " " << E/GeV + << " GeV on " << fTargetMaterial->GetName() + << " xs/X0= " << 1.0/(cross*fTargetMaterial->GetRadlen()) << G4endl; + } delete fAnalysisManager; } diff --git a/examples/extended/hadronic/Hadr01/hadr01.out b/examples/extended/hadronic/Hadr01/hadr01.out index 0d0ac9022f..383a3d3efb 100644 --- a/examples/extended/hadronic/Hadr01/hadr01.out +++ b/examples/extended/hadronic/Hadr01/hadr01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -51,6 +51,14 @@ userDetector->Construct() start. World is registered to the default region. physicsList->Construct() start. +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 physicsList->CheckParticleList() start. physicsList->setCut() start. @@ -98,6 +106,11 @@ PhysicsList::SetCuts:CutLength : 700 um --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -415,7 +428,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics 100.00 10k 1 197 200 0.00 Check ### Run 0 starts. ### Run 0 start -RunAction::BeginOfRunAction: User=1.11s Real=1.14s Sys=0.01s +RunAction::BeginOfRunAction: User=0.84s Real=0.85s Sys=0s NuclearData: User=0s Real=0s Sys=0s EventAction: Event # 0 started EventAction: Event # 10 started @@ -430,33 +443,33 @@ EventAction: Event # 90 started Run terminated. Run Summary Number of events processed : 100 - User=0.22s Real=0.22s Sys=0.01s + User=0.24s Real=0.24s Sys=0.01s 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) 72.47 RMS(MeV) 63.83 -Average number of steps 226.9 -Average number of gamma 2.2 -Average number of e- 4.29 -Average number of e+ 0.06 -Average number of neutrons 1.6 -Average number of protons 1.56 +Average energy deposit (MeV) 66.75 RMS(MeV) 60.21 +Average number of steps 207.9 +Average number of gamma 1.64 +Average number of e- 3.57 +Average number of e+ 0.02 +Average number of neutrons 1.57 +Average number of protons 1.23 Average number of antiprotons 0 -Average number of pi+ & pi- 0.43 -Average number of pi0 0.2 +Average number of pi+ & pi- 0.3 +Average number of pi0 0.12 Average number of kaons 0 Average number of muons 0 -Average number of deuterons+tritons 0.13 -Average number of He3+alpha 0.21 -Average number of ions 0.6 -Average number of forward neutrons 0.23 -Average number of reflected neutrons 1.3 -Average number of leaked neutrons 0 -Average number of proton leak 0.63 -Average number of pion leak 0.4 +Average number of deuterons+tritons 0.14 +Average number of He3+alpha 0.19 +Average number of ions 0.57 +Average number of forward neutrons 0.15 +Average number of reflected neutrons 1.24 +Average number of leaked neutrons 0.06 +Average number of proton leak 0.46 +Average number of pion leak 0.27 ======================================================== # @@ -473,18 +486,18 @@ Total navigation history collections cleaned: 14 ================== Deleting memory pools =================== Pool ID '20G4NavigationLevelRep', size : 0.0192 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.00673 MB +Pool ID '17G4DynamicParticle', size : 0.00577 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.0135 MB +Pool ID '7G4Track', size : 0.0115 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.00192 MB +Pool ID '17G4ReactionProduct', size : 0.000961 MB Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.05 MB +Dynamic pools deleted: 12 / Total memory freed: 0.046 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/hadronic/Hadr02/hadr02.out b/examples/extended/hadronic/Hadr02/hadr02.out index cfba190967..74a011b7f8 100644 --- a/examples/extended/hadronic/Hadr02/hadr02.out +++ b/examples/extended/hadronic/Hadr02/hadr02.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -46,6 +46,14 @@ G4PhysListFactory::GetReferencePhysList EMoption= 0 +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /run/setCut 1 km /gun/particle ion @@ -170,7 +178,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -184,7 +192,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -293,7 +301,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -326,7 +334,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -453,6 +461,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -756,33 +769,33 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.31s Real=0.4s Sys=0s + User=0.27s Real=0.27s Sys=0s 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.416 RMS(GeV) 4.161 -Average number of steps 54.52 -Average number of gamma 1.36 +Average energy deposit (GeV) 6.065 RMS(GeV) 4.132 +Average number of steps 51.7 +Average number of gamma 1.41 Average number of e- 0 Average number of e+ 0 -Average number of neutrons 9.41 -Average number of protons 9.04 +Average number of neutrons 9.36 +Average number of protons 9.41 Average number of antiprotons 0 -Average number of pi+ & pi- 9.1 -Average number of pi0 4.59 -Average number of kaons 0.43 +Average number of pi+ & pi- 7.94 +Average number of pi0 4.16 +Average number of kaons 0.32 Average number of muons 0 -Average number of deuterons+tritons 1.34 -Average number of He3+alpha 1.52 -Average number of ions 1.13 +Average number of deuterons+tritons 1.38 +Average number of He3+alpha 1.41 +Average number of ions 1.1 ======================================================== 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.092 MB +Dynamic pools deleted: 12 / Total memory freed: 0.082 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr03/hadr03.out b/examples/extended/hadronic/Hadr03/hadr03.out index 313e66dab1..8bdfc9cb43 100644 --- a/examples/extended/hadronic/Hadr03/hadr03.out +++ b/examples/extended/hadronic/Hadr03/hadr03.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -29,9 +29,23 @@ Command is ignored. ---> Isotope: Mo98 Z = 42 N = 98 A = 97.91 g/mole abundance: 100.000 % ElmMassFraction: 100.00 % ElmAbundance 100.00 % -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon # /process/list Transportation, hadElastic, neutronInelastic, nCapture @@ -51,8 +65,18 @@ anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonIne /run/printProgress 1000 # /run/beamOn 10000 -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) @@ -74,6 +98,11 @@ anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonIne --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -248,7 +277,7 @@ anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonIne Process: neutronInelastic Model: FTFP: 4 GeV ---> 100 TeV Model: BertiniCascade: 19.9 MeV ---> 5 GeV - Model: ParticleHPInelastic: 0 eV ---> 20 MeV + Model: NeutronHPInelastic: 0 eV ---> 20 MeV Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV @@ -360,17 +389,17 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.74s Real=0.74s Sys=0s + User=0.57s Real=0.57s Sys=0s The run is 10000 proton of 10 MeV through 10 m of Molybdenum98 (density: 10.28 g/cm3 ) Process calls frequency: - hadElastic= 7762 protonInelastic= 2238 + hadElastic= 7778 protonInelastic= 2222 - MeanFreePath: 4.9657 cm +- 4.8895 cm massic: 51.047 g/cm2 - CrossSection: 0.20138 cm^-1 massic: 1.959 mm2/g - crossSection per atom: 3.1848 barn + MeanFreePath: 4.879 cm +- 4.826 cm massic: 50.156 g/cm2 + CrossSection: 0.20496 cm^-1 massic: 1.9938 mm2/g + crossSection per atom: 3.2414 barn Verification: crossSections from G4HadronicProcessStore: hadElastic= 1.5534 mm2/g 2.5254 barn @@ -379,28 +408,29 @@ Run Summary List of nuclear reactions: - proton + Mo98 --> 2 neutron + Tc97: 53 Q = -9.8014 MeV - proton + Mo98 --> N gamma + 2 neutron + Tc97: 14 Q = -9.7664 MeV - proton + Mo98 --> N gamma + neutron + Tc98: 2127 Q = -2.51 MeV - proton + Mo98 --> N gamma + proton + Mo98: 44 Q = -37.209 keV - proton + Mo98 --> proton + Mo98: 7762 Q = 1.9482e-06 eV + proton + Mo98 --> 2 neutron + Tc97: 52 Q = -9.8003 MeV + proton + Mo98 --> N gamma + 2 neutron + Tc97: 13 Q = -9.776 MeV + proton + Mo98 --> N gamma + neutron + Tc98: 2105 Q = -2.5083 MeV + proton + Mo98 --> N gamma + proton + Mo98: 51 Q = -38.688 keV + proton + Mo98 --> neutron + Tc98: 1 Q = -2.5104 MeV + proton + Mo98 --> proton + Mo98: 7778 Q = 2.0145e-06 eV Number of gamma: N = 1 --> 7 List of generated particles: - Mo98: 7806 Emean = 33.161 keV ( 2.7008 eV --> 404.12 keV) - Tc97: 67 Emean = 102.46 keV ( 79.882 keV --> 124.92 keV) - Tc98: 2127 Emean = 115.73 keV ( 7.5529 keV --> 332.32 keV) - gamma: 7253 Emean = 1.725 MeV ( 31.891 keV --> 7.1655 MeV) - neutron: 2261 Emean = 1.4639 MeV ( 179.47 eV --> 7.2278 MeV) - proton: 44 Emean = 6.9182 MeV ( 4.7551 MeV --> 8.8353 MeV) + Mo98: 7829 Emean = 31.935 keV ( 1.5854 eV --> 405.17 keV) + Tc97: 65 Emean = 102.83 keV ( 80.313 keV --> 126.93 keV) + Tc98: 2106 Emean = 117.22 keV ( 6.0882 keV --> 325.11 keV) + gamma: 7157 Emean = 1.7283 MeV ( 19.57 keV --> 7.2386 MeV) + neutron: 2236 Emean = 1.4842 MeV ( 365.28 eV --> 7.3166 MeV) + proton: 51 Emean = 6.9165 MeV ( 4.3099 MeV --> 8.9024 MeV) - Momentum balance: Pmean = 0.0095094 eV ( 9.5064e-08 eV --> 0.85149 eV ) + Momentum balance: Pmean = 0.0093125 eV ( 1.8505e-07 eV --> 1.0055 eV ) --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 74829529, 1372306762 + Current couple of seeds = 355294789, 37494480 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/hadronic/Hadr03/src/DetectorConstruction.cc b/examples/extended/hadronic/Hadr03/src/DetectorConstruction.cc index f80301868f..d389a32cc9 100644 --- a/examples/extended/hadronic/Hadr03/src/DetectorConstruction.cc +++ b/examples/extended/hadronic/Hadr03/src/DetectorConstruction.cc @@ -26,7 +26,7 @@ /// \file hadronic/Hadr03/src/DetectorConstruction.cc /// \brief Implementation of the DetectorConstruction class // -// $Id: DetectorConstruction.cc 78398 2013-12-16 16:39:55Z gcosmo $ +// $Id: DetectorConstruction.cc 96284 2016-04-04 07:19:26Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -83,6 +83,14 @@ void DetectorConstruction::DefineMaterials() // define a Material from isotopes // MaterialWithSingleIsotope("Molybdenum98", "Mo98", 10.28*g/cm3, 42, 98); + + //NE213 + G4Element* H = new G4Element("Hydrogen" ,"H" , 1., 1.01*g/mole); + G4Element* C = new G4Element("Hydrogen" ,"C" , 6., 12.00*g/mole); + G4Material* ne213 = + new G4Material("NE213", 0.874*g/cm3, 2); + ne213->AddElement(H, 9.2*perCent); + ne213->AddElement(C, 90.8*perCent); // or use G4-NIST materials data base // diff --git a/examples/extended/hadronic/Hadr03/src/PhysicsList.cc b/examples/extended/hadronic/Hadr03/src/PhysicsList.cc index bfa0e0a955..f577cd5977 100644 --- a/examples/extended/hadronic/Hadr03/src/PhysicsList.cc +++ b/examples/extended/hadronic/Hadr03/src/PhysicsList.cc @@ -26,7 +26,7 @@ /// \file hadronic/Hadr03/src/PhysicsList.cc /// \brief Implementation of the PhysicsList class // -// $Id: PhysicsList.cc 86125 2014-11-07 11:07:29Z gcosmo $ +// $Id: PhysicsList.cc 96284 2016-04-04 07:19:26Z gcosmo $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,7 +76,7 @@ PhysicsList::PhysicsList() // RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); ////RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); - ////RegisterPhysics( new G4HadronInelasticQBBC(verb)); + ////RegisterPhysics( new G4HadronInelasticQBBC(verb)); ////RegisterPhysics( new G4HadronPhysicsINCLXX(verb)); // Ion Elastic scattering diff --git a/examples/extended/hadronic/Hadr04/hadr04.out b/examples/extended/hadronic/Hadr04/hadr04.out index 177b9c5036..8fcc63c73a 100644 --- a/examples/extended/hadronic/Hadr04/hadr04.out +++ b/examples/extended/hadronic/Hadr04/hadr04.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,15 +37,15 @@ userDetector->Construct() start. Water_ts is registered to the default region. physicsList->Construct() start. -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic physicsList->CheckParticleList() start. physicsList->setCut() start. # @@ -59,19 +59,19 @@ physicsList->setCut() start. /run/printProgress 100 # /run/beamOn 1000 -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon Neutron HP Thermal Scattering Data: Following material-element pairs and/or elements are registered. Element TS_H_of_Water, internal thermal scattering id 0 Element TS_C_of_Graphite, internal thermal scattering id 1 -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon Neutron HP Thermal Scattering: Following material-element pairs or elements are registered. Element TS_H_of_Water, internal thermal scattering id 0 @@ -112,10 +112,10 @@ Element TS_C_of_Graphite, internal thermal scattering id 1 Cr_sctns: GheishaFissionXS: 0 meV ---> 100 TeV ================================================================ -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon Region -- -- appears in world volume This region is in the mass world. @@ -165,7 +165,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000 - User=54.51s Real=54.63s Sys=0.01s + User=33.3s Real=34.09s Sys=0s The run is 1000 neutron of 2 MeV through 50 cm of Water_ts (density: 1 g/cm3 ) @@ -175,7 +175,7 @@ Run Summary Parcours of incident neutron: nb of collisions E>1*eV= 16.515 E<1*eV= 202.85 total= 219.37 track length E>1*eV= 19.682 cm E<1*eV= 76.005 cm total= 95.687 cm - time of flight E>1*eV= 751.79 ns E<1*eV= 208.32 mus total= 209.07 mus + time of flight E>1*eV= 751.79 ns E<1*eV= 208.32 us total= 209.07 us List of generated particles: O16: 3028 Emean = 40.932 keV ( 0.73669 meV --> 447.06 keV) diff --git a/examples/extended/hadronic/Hadr05/hadr05.out b/examples/extended/hadronic/Hadr05/hadr05.out index 2ac8f35ed6..5cdb050bcb 100644 --- a/examples/extended/hadronic/Hadr05/hadr05.out +++ b/examples/extended/hadronic/Hadr05/hadr05.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -44,6 +44,14 @@ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= /process/em/workerVerbose 0 /run/setCut 1 km /gun/particle proton @@ -88,6 +96,11 @@ --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -384,7 +397,7 @@ EventAction: Event # 0 started Run terminated. Run Summary Number of events processed : 10 - User=0.02s Real=0.02s Sys=0s + User=0.03s Real=0.02s Sys=0s RunAction: End of run actions are started HistoManager: End of run actions are started ### Fill Cross Sections for proton off Al @@ -1195,6 +1208,6 @@ HistoManager: End of run actions are started 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.034 MB +Dynamic pools deleted: 11 / Total memory freed: 0.045 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr06/History b/examples/extended/hadronic/Hadr06/History index 55fc8c1970..7eae584889 100644 --- a/examples/extended/hadronic/Hadr06/History +++ b/examples/extended/hadronic/Hadr06/History @@ -13,6 +13,13 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +13-04-16 mma (exhadr06-V10-02-01) +- EmStandardPhysics: use G4EmParameters + +14-02-16 mma (exhadr06-V10-02-00) +- PhysicsList : add G4StoppingPhysics +- materials : add NE213 02-11-15 A. Ribon (exhadr06-V10-01-00) - Migrated to ParticleHP diff --git a/examples/extended/hadronic/Hadr06/hadr06.out b/examples/extended/hadronic/Hadr06/hadr06.out index 49a91b824f..da68960b32 100644 --- a/examples/extended/hadronic/Hadr06/hadr06.out +++ b/examples/extended/hadronic/Hadr06/hadr06.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -29,15 +29,23 @@ ---> Isotope: Li7 Z = 3 N = 7 A = 7.02 g/mole abundance: 100.000 % ElmMassFraction: 100.00 % ElmAbundance 100.00 % -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon # /process/list Transportation, hadElastic, neutronInelastic, nCapture @@ -48,11 +56,12 @@ NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use xi0Inelastic, anti_xi0Inelastic, omega-Inelastic,anti_omega-Inelastic anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonInelastic anti_He3Inelastic,anti_alphaInelastic, dInelastic, tInelastic - He3Inelastic, alphaInelastic, ionInelastic, photonNuclear - msc, hIoni, ionIoni, nuclearStopping - eIoni, eBrem, annihil, phot - compt, conv, muIoni, muBrems - muPairProd, Decay, RadioactiveDecay + He3Inelastic, alphaInelastic, ionInelastic,hFritiofCaptureAtRest +hBertiniCaptureAtRest,muMinusCaptureAtRest, photonNuclear, msc + hIoni, ionIoni, nuclearStopping, eIoni + eBrem, annihil, phot, compt + conv, muIoni, muBrems, muPairProd + Decay, RadioactiveDecay # /gun/particle neutron /gun/energy 14.1 MeV @@ -61,10 +70,15 @@ anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonIne # /run/beamOn 10000 +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 + phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PhotoElectric : Emin= 0 meV Emax= 10 TeV AngularGenSauterGavrila + PhotoElectric : Emin= 0 meV Emax= 10 TeV AngularGenSauterGavrila FluoActive compt: for gamma SubType= 13 BuildTable= 1 Lambda table from 100 eV to 1 MeV, 7 bins per decade, spline: 1 @@ -151,9 +165,6 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 meV Emax= 10 TeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -263,18 +274,18 @@ muPairProd: for mu- SubType= 4 Sampling table 17x1001 from 1 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 meV Emax= 10 TeV -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon msc: for pi+ SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 @@ -317,6 +328,11 @@ hIoni: for pi- SubType= 2 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 meV/n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -350,6 +366,8 @@ hIoni: for pi- SubType= 2 Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_alpha @@ -364,6 +382,8 @@ hIoni: for pi- SubType= 2 Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_deuteron @@ -378,6 +398,8 @@ hIoni: for pi- SubType= 2 Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_neutron @@ -404,6 +426,8 @@ hIoni: for pi- SubType= 2 Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_triton @@ -418,6 +442,8 @@ hIoni: for pi- SubType= 2 Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for deuteron @@ -447,11 +473,9 @@ hIoni: for pi- SubType= 2 Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV Process: kaon+Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 4 GeV ---> 25 GeV + Model: FTFP: 4 GeV ---> 100 TeV Model: BertiniCascade: 0 meV ---> 5 GeV Cr_sctns: Glauber-Gribov: 0 meV ---> 2.88022e+295 J - Cr_sctns: ChipsKaonPlusInelasticXS: 0 meV ---> 100 TeV Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV --------------------------------------------------- @@ -462,13 +486,13 @@ hIoni: for pi- SubType= 2 Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV Process: kaon-Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 4 GeV ---> 25 GeV + Model: FTFP: 4 GeV ---> 100 TeV Model: BertiniCascade: 0 meV ---> 5 GeV Cr_sctns: Glauber-Gribov: 0 meV ---> 2.88022e+295 J - Cr_sctns: ChipsKaonMinusInelasticXS: 0 meV ---> 100 TeV Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hBertiniCaptureAtRest + --------------------------------------------------- Hadronic Processes for lambda @@ -482,6 +506,11 @@ hIoni: for pi- SubType= 2 Cr_sctns: ChipsHyperonInelasticXS: 0 meV ---> 100 TeV Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muMinusCaptureAtRest + --------------------------------------------------- Hadronic Processes for neutron @@ -493,13 +522,11 @@ hIoni: for pi- SubType= 2 Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV Process: neutronInelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 9.5 GeV ---> 25 GeV - Model: Binary Cascade: 19.9 MeV ---> 9.9 GeV - Model: ParticleHPInelastic: 0 meV ---> 20 MeV + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 19.9 MeV ---> 5 GeV + Model: NeutronHPInelastic: 0 meV ---> 20 MeV Cr_sctns: NeutronHPInelasticXS: 0 meV ---> 20 MeV Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV - Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV Process: nCapture @@ -526,15 +553,11 @@ hIoni: for pi- SubType= 2 Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV Process: pi+Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 4 GeV ---> 25 GeV + Model: FTFP: 4 GeV ---> 100 TeV Model: BertiniCascade: 0 meV ---> 5 GeV Cr_sctns: G4CrossSectionPairGG: 0 meV ---> 100 TeV G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections below 91 GeV, Glauber-Gribov above - Cr_sctns: G4CrossSectionPairGG: 0 meV ---> 100 TeV - G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections - below 91 GeV, Glauber-Gribov above Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV --------------------------------------------------- @@ -547,17 +570,15 @@ hIoni: for pi- SubType= 2 Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV Process: pi-Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 4 GeV ---> 25 GeV + Model: FTFP: 4 GeV ---> 100 TeV Model: BertiniCascade: 0 meV ---> 5 GeV Cr_sctns: G4CrossSectionPairGG: 0 meV ---> 100 TeV G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections below 91 GeV, Glauber-Gribov above - Cr_sctns: G4CrossSectionPairGG: 0 meV ---> 100 TeV - G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections - below 91 GeV, Glauber-Gribov above Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + Process: hBertiniCaptureAtRest + --------------------------------------------------- Hadronic Processes for proton @@ -567,10 +588,8 @@ hIoni: for pi- SubType= 2 Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV Process: protonInelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 9.5 GeV ---> 25 GeV - Model: Binary Cascade: 0 meV ---> 9.9 GeV - Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 0 meV ---> 5 GeV Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV @@ -626,51 +645,50 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=24.16s Real=24.2s Sys=0.01s + User=21.6s Real=21.8s Sys=0s The run is 10000 neutron of 14.1 MeV through 30 cm of Li7 (density: 1.85 g/cm3 ) Process calls frequency : - Decay= 1 RadioactiveDecay= 195090 Transportation= 72621 - annihil= 199 compt= 402689 conv= 200 - dInelastic= 3 eIoni= 412366 hIoni= 437 - hadElastic= 178634 ionIoni= 195424 msc= 191 - nCapture= 23 neutronInelastic= 16538 phot= 20741 - + Decay= 1 RadioactiveDecay= 196072 Transportation= 72583 + annihil= 204 compt= 399547 conv= 205 + dInelastic= 1 eIoni= 409266 hIoni= 451 + hadElastic= 179786 ionIoni= 196407 msc= 162 + nCapture= 27 neutronInelastic= 16391 phot= 20672 + photonNuclear= 1 List of generated particles: - Be8[3030.000]: 23 Emean = 6.8723 keV ( 1.8627 keV --> 11.342 keV) - He6: 155 Emean = 2.2463 MeV ( 131.78 keV --> 4.9216 MeV) - Li6: 717 Emean = 1.5968 MeV ( 13.714 eV --> 6.8449 MeV) - Li7: 194172 Emean = 332.37 keV ( 0.25375 meV --> 6.174 MeV) - Li8: 23 Emean = 2.7535 keV ( 109.78 eV --> 53.755 keV) - alpha: 334 Emean = 1.2643 MeV ( 17.42 keV --> 10.357 MeV) - anti_nu_e: 178 Emean = 2.4838 MeV ( 297.05 keV --> 11.187 MeV) - deuteron: 437 Emean = 4.3081 MeV ( 66.088 keV --> 33.643 MeV) - e+: 200 Emean = 1.4048 MeV ( 51.32 keV --> 4.1664 MeV) - e-: 412293 Emean = 86.626 keV ( 100.01 eV --> 11.047 MeV) - gamma: 46278 Emean = 1.2082 MeV ( 1.0006 keV --> 5.8831 MeV) - neutron: 17232 Emean = 3.3852 MeV ( 3.076 keV --> 13.627 MeV) - proton: 2 Emean = 1.9719 MeV ( 778.85 keV --> 3.165 MeV) - triton: 1 Emean = 5.5858 MeV ( 5.5858 MeV --> 5.5858 MeV) + Be8[3030.000]: 27 Emean = 7.6855 keV ( 1.8618 keV --> 12.098 keV) + He6: 146 Emean = 2.3309 MeV ( 47.457 keV --> 4.7953 MeV) + Li6: 715 Emean = 1.6441 MeV ( 49.233 eV --> 7.7216 MeV) + Li7: 195157 Emean = 331.87 keV ( 1.1278 meV --> 6.2215 MeV) + Li8: 27 Emean = 2.361 keV ( 166.79 eV --> 49.874 keV) + alpha: 362 Emean = 1.1856 MeV ( 60.966 keV --> 8.1038 MeV) + anti_nu_e: 173 Emean = 2.6587 MeV ( 151.54 keV --> 10.08 MeV) + deuteron: 451 Emean = 4.3438 MeV ( 14.835 keV --> 20.123 MeV) + e+: 205 Emean = 1.424 MeV ( 24.313 keV --> 4.0591 MeV) + e-: 409208 Emean = 87.188 keV ( 100.01 eV --> 11.338 MeV) + gamma: 46156 Emean = 1.2006 MeV ( 1 keV --> 5.8829 MeV) + neutron: 17120 Emean = 3.3592 MeV ( 10.299 keV --> 13.636 MeV) + triton: 1 Emean = 972 keV ( 972 keV --> 972 keV) - Mean energy deposit per event = 10.415 MeV rms = 3.4374 MeV - Mean energy flow per event = 3.12 MeV rms = 3.2429 MeV + Mean energy deposit per event = 10.445 MeV rms = 3.4166 MeV + Mean energy flow per event = 3.0803 MeV rms = 3.2135 MeV - List of particles leaving the absorber : - anti_nu_e: 178 Emean = 2.4838 MeV ( 297.05 keV --> 11.187 MeV) Eflow/event = 44.212 keV - e+: 1 Emean = 1.7901 MeV ( 1.7901 MeV --> 1.7901 MeV) Eflow/event = 179.01 eV - e-: 119 Emean = 1.3915 MeV ( 26.187 keV --> 4.4227 MeV) Eflow/event = 16.559 keV - gamma: 25337 Emean = 793.68 keV ( 4.8133 keV --> 5.883 MeV) Eflow/event = 2.011 MeV - neutron: 10671 Emean = 982.17 keV ( 2.8689 meV --> 14.1 MeV) Eflow/event = 1.0481 MeV + List of particles emerging from the absorber : + anti_nu_e: 173 Emean = 2.6587 MeV ( 151.54 keV --> 10.08 MeV) Eflow/event = 45.996 keV + e+: 1 Emean = 570.66 keV ( 570.66 keV --> 570.66 keV) Eflow/event = 57.066 eV + e-: 132 Emean = 1.3894 MeV ( 70.91 keV --> 4.5435 MeV) Eflow/event = 18.341 keV + gamma: 25278 Emean = 776.64 keV ( 2.2915 keV --> 5.8828 MeV) Eflow/event = 1.9632 MeV + neutron: 10702 Emean = 983.64 keV ( 3.6853 meV --> 14.1 MeV) Eflow/event = 1.0527 MeV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1207042837, 391649359 + Current couple of seeds = 1185525939, 1893436758 ---------------------------------------- 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.093 MB +Dynamic pools deleted: 11 / Total memory freed: 0.092 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr06/plot2.C b/examples/extended/hadronic/Hadr06/plot2.C index e08edd5b50..1c00163732 100644 --- a/examples/extended/hadronic/Hadr06/plot2.C +++ b/examples/extended/hadronic/Hadr06/plot2.C @@ -9,8 +9,8 @@ c1->cd(); c1->Update(); - TFile fa = TFile("Li7.root"); - TFile fb = TFile("Li6.root"); + TFile fa("Li7.root"); + TFile fb("Li6.root"); TH1D* ha1 = (TH1D*)fa.Get("6"); ha1->SetStats(kFALSE); diff --git a/examples/extended/hadronic/Hadr06/plotHisto.C b/examples/extended/hadronic/Hadr06/plotHisto.C index 37f5514038..1bbf484b3b 100644 --- a/examples/extended/hadronic/Hadr06/plotHisto.C +++ b/examples/extended/hadronic/Hadr06/plotHisto.C @@ -3,7 +3,7 @@ // Draw histos filled by Geant4 simulation // - TFile f = TFile("essai.root"); + TFile f("essai.root"); TCanvas* c1 = new TCanvas("c1", " "); ///TH1D* hist1 = (TH1D*)f.Get("1"); diff --git a/examples/extended/hadronic/Hadr06/src/DetectorConstruction.cc b/examples/extended/hadronic/Hadr06/src/DetectorConstruction.cc index d263b78b00..93aa7dceda 100644 --- a/examples/extended/hadronic/Hadr06/src/DetectorConstruction.cc +++ b/examples/extended/hadronic/Hadr06/src/DetectorConstruction.cc @@ -103,6 +103,12 @@ void DetectorConstruction::DefineMaterials() new G4Material("graphite", 2.27*g/cm3, ncomponents=1, kStateSolid, 293*kelvin, 1*atmosphere); graphite->AddElement(elC, natoms=1); + + //NE213 + G4Material* ne213 = + new G4Material("NE213", 0.874*g/cm3, ncomponents=2); + ne213->AddElement(H, 9.2*perCent); + ne213->AddElement(elC, 90.8*perCent); // example of vacuum fWorldMat = new G4Material("Galactic", 1, 1.01*g/mole, universe_mean_density, diff --git a/examples/extended/hadronic/Hadr06/src/EmStandardPhysics.cc b/examples/extended/hadronic/Hadr06/src/EmStandardPhysics.cc index b2458b090f..c26f908fc8 100644 --- a/examples/extended/hadronic/Hadr06/src/EmStandardPhysics.cc +++ b/examples/extended/hadronic/Hadr06/src/EmStandardPhysics.cc @@ -30,6 +30,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "EmStandardPhysics.hh" + +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" #include "G4PhysicsListHelper.hh" @@ -59,19 +61,20 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" -#include "G4MscStepLimitType.hh" - -#include "G4LossTableManager.hh" -#include "G4UAtomicDeexcitation.hh" - #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... EmStandardPhysics::EmStandardPhysics(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + SetPhysicsType(bElectromagnetic); + + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetStepFunction(1., 1*mm); //default= 0.1, 100*um + param->SetStepFunctionMuHad(1., 1*mm); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -93,7 +96,7 @@ void EmStandardPhysics::ConstructProcess() if (particleName == "gamma") { - ph->RegisterProcess(new G4PhotoElectricEffect, particle); + ph->RegisterProcess(new G4PhotoElectricEffect, particle); ph->RegisterProcess(new G4ComptonScattering, particle); ph->RegisterProcess(new G4GammaConversion, particle); @@ -101,14 +104,14 @@ void EmStandardPhysics::ConstructProcess() ph->RegisterProcess(new G4eMultipleScattering(), particle); ph->RegisterProcess(new G4eIonisation, particle); - ph->RegisterProcess(new G4eBremsstrahlung(), particle); + ph->RegisterProcess(new G4eBremsstrahlung(), particle); } else if (particleName == "e+") { ph->RegisterProcess(new G4eMultipleScattering(), particle); ph->RegisterProcess(new G4eIonisation, particle); ph->RegisterProcess(new G4eBremsstrahlung(), particle); - ph->RegisterProcess(new G4eplusAnnihilation(), particle); + ph->RegisterProcess(new G4eplusAnnihilation(), particle); } else if (particleName == "mu+" || particleName == "mu-" ) { @@ -128,13 +131,13 @@ void EmStandardPhysics::ConstructProcess() } else if( particleName == "alpha" || particleName == "He3" ) { - ph->RegisterProcess(new G4hMultipleScattering(), particle); + ph->RegisterProcess(new G4hMultipleScattering(), particle); ph->RegisterProcess(new G4ionIonisation, particle); - ph->RegisterProcess(new G4NuclearStopping(), particle); + ph->RegisterProcess(new G4NuclearStopping(), particle); } else if( particleName == "GenericIon" ) { - ph->RegisterProcess(new G4hMultipleScattering(), particle); + ph->RegisterProcess(new G4hMultipleScattering(), particle); G4ionIonisation* ionIoni = new G4ionIonisation(); ionIoni->SetEmModel(new G4IonParametrisedLossModel()); ph->RegisterProcess(ionIoni, particle); @@ -149,17 +152,6 @@ void EmStandardPhysics::ConstructProcess() ph->RegisterProcess(new G4hIonisation(), particle); } } - - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //ionisation - // - emOptions.SetStepFunction(1., 1*mm); //default= 0.1, 100*um } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr06/src/PhysicsList.cc b/examples/extended/hadronic/Hadr06/src/PhysicsList.cc index c14dcab7b3..a1dcb79489 100644 --- a/examples/extended/hadronic/Hadr06/src/PhysicsList.cc +++ b/examples/extended/hadronic/Hadr06/src/PhysicsList.cc @@ -42,6 +42,7 @@ #include "G4HadronPhysicsINCLXX.hh" #include "G4IonPhysics.hh" #include "G4IonINCLXXPhysics.hh" +#include "G4StoppingPhysics.hh" #include "GammaPhysics.hh" #include "EmStandardPhysics.hh" @@ -66,15 +67,18 @@ PhysicsList::PhysicsList() RegisterPhysics( new HadronElasticPhysicsHP(verb) ); // Hadron Inelastic Physics - ////RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); - RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); + RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); + ////RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); ////RegisterPhysics( new G4HadronInelasticQBBC(verb)); ////RegisterPhysics( new G4HadronPhysicsINCLXX(verb)); // Ion Physics RegisterPhysics( new G4IonPhysics(verb)); ////RegisterPhysics( new G4IonINCLXXPhysics(verb)); - + + // stopping Particles + RegisterPhysics( new G4StoppingPhysics(verb)); + // Gamma-Nuclear Physics RegisterPhysics( new GammaPhysics("gamma")); diff --git a/examples/extended/hadronic/Hadr06/src/Run.cc b/examples/extended/hadronic/Hadr06/src/Run.cc index 5953c13479..b77ace3c46 100644 --- a/examples/extended/hadronic/Hadr06/src/Run.cc +++ b/examples/extended/hadronic/Hadr06/src/Run.cc @@ -299,7 +299,7 @@ void Run::EndOfRun() //particles flux // - G4cout << "\n List of particles leaving the absorber :" << G4endl; + G4cout << "\n List of particles emerging from the absorber :" << G4endl; std::map::iterator itn; for (itn = fParticleDataMap2.begin(); itn != fParticleDataMap2.end(); itn++) { diff --git a/examples/extended/hadronic/Hadr07/.README.txt b/examples/extended/hadronic/Hadr07/.README.txt new file mode 100644 index 0000000000..a00a0a02be --- /dev/null +++ b/examples/extended/hadronic/Hadr07/.README.txt @@ -0,0 +1,159 @@ +//$Id$ + +///\file "hadronic/Hadr07/.README.txt" +///\brief Example Hadr07 README page + +/*! \page ExampleHadr07 Example Hadr07 + + Survey energy deposition and particle's flux from an hadronic cascade. + Use PhysicsConstructor objects rather than predefined G4 PhysicsLists. + How to plot a depth dose profile in a rectangular box. + +\section Hadr07_s1 MATERIALS AND GEOMETRY DEFINITION + + The geometry consists of a stack of one or several blocks of homogenous + material, called absorbers. + + A minimum of 4 parameters define the geometry : + - the number of absorbers (NbOfAbsor) + - the material of each absorber, + - the thickness of each absorber, + - the tranverse dimension of the stack (sizeYZ) + + In addition a transverse uniform magnetic field can be applied. + eg: /globalField/setValue 0 0 5 tesla + + The absorber is surrounded by a World volume (vacuum) + + A function, and its associated UI command, allows to build a material + directly from a single isotope. + + The default geometry is built in DetectorConstruction, but the above parameters + can be changed interactively via commands defined in DetectorMessenger. + + To be identified by the ThermalScattering module, the elements composing a + material must have a specific name (see G4ParticleHPThermalScatteringNames.cc) + Examples of such materials are build in Hadr06/src/DetectorConstruction. + +\section Hadr07_s2 PHYSICS LIST + + "Full" set of physics processes are registered, but via PhysicsConstructor + objects rather than complete pre-defined G4 physics lists. This alternative + way gives more freedom to register physics. + + PhysicsConstructors are either predefined G4 PhysicsConstructors or 'local'. + They include : HadronElastic (including neutronHP), HadronInelastic, + IonsInelastic, GammaNuclear physics, RadioactiveDecay and electomagnetic. + (see geant4/source/physics_lists/constructors) + + Several hadronic physics options are controlled by environment variables. + To trigger them, an envHadronic.csh has been added in this example. + One must select the options wished, and do +\verbatim + source envHadronic.csh (or sh) +\endverbatim + +\section Hadr07_s3 AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle starting at the + left face of the box. 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 G4ParticleGun class (see the macros provided with + this example). + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + + A RUN is a set of events. + +\section Hadr07_s4 PHYSICS + + The program computes the energy deposited in each absorber, + and the flux of particles emerging in the world. + Processes invoked and particles generated are listed. + +\section Hadr07_s5 HISTOGRAMS + + The test has several built-in 1D histograms, which are managed by + G4AnalysisManager and its Messenger. The histos can be individually + activated with the command : +\verbatim + /analysis/h1/set id nbBins valMin valMax unit +\endverbatim + where unit is the desired unit for the histo (MeV or keV, etc..) + (see the macros xxxx.mac). + + 1 "total energy deposited in absorber 1 + 2 "total energy deposited in absorber 2 + ........................................... + 9 "total energy deposited in absorber 9 + 10 "Edep (MeV/mm) profile along absorbers" + + One can control the name of the histograms file with the command: +\verbatim + /analysis/setFileName name (default Hadr07) +\endverbatim + + It is possible to choose the format of the histogram file : root (default), + xml, csv, by using namespace in HistoManager.hh + + It is also possible to print selected histograms on an ascii file: +\verbatim + /analysis/h1/setAscii id +\endverbatim + All selected histos will be written on a file name.ascii (default Hadr07) + +\section Hadr07_s6 TRACKING and STEP MAX + + Hadr07 computes the distribution of energy deposited along the trajectory of + the incident particle : the so-called longitudinal energy profile, + or depth dose distribution (histogram 10). + The energy deposited (edep) is randomly distribued along the step (see + SteppingAction). + + In order to control the accuracy of the deposition, the maximum step size + of charged particles is computed automatically from the binning of + histogram 10. + + As an example, this limitation is implemented as a 'full' process : + see StepMax class and its Messenger. The 'StepMax process' is registered + in the Physics List, via a physicsConstructor object (a builder). + + StepMax is evaluated in the StepMax process. + A boolean UI command allows to deactivate this mechanism. + Another UI command allows to define directly a stepMax value. + +\section Hadr07_s7 VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the commands + /vis/... in the macro vis.mac. To get visualisation: +\verbatim + > /control/execute vis.mac +\endverbatim + + The tracks are drawn at the end of event, and erased at the end of run. + gamma green + neutron yellow + negative particles (e-, ...) red + positive particles (e+, ions, ...) blue + +\section Hadr07_s8 HOW TO START ? + + Execute Hadr07 in 'batch' mode from macro files : +\verbatim + % Hadr07 run1.mac +\endverbatim + + Execute Hadr07 in 'interactive mode' with visualization : +\verbatim + % Hadr07 + Idle> control/execute vis.mac + .... + Idle> type your commands + .... + Idle> exit +\endverbatim + +*/ diff --git a/examples/extended/hadronic/Hadr07/CMakeLists.txt b/examples/extended/hadronic/Hadr07/CMakeLists.txt new file mode 100644 index 0000000000..0798ddf1e0 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/CMakeLists.txt @@ -0,0 +1,58 @@ +#---------------------------------------------------------------------------- +# Setup the project +cmake_minimum_required(VERSION 2.6 FATAL_ERROR) +project(Hadr07) + +#---------------------------------------------------------------------------- +# 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 + ${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(Hadr07 Hadr07.cc ${sources} ${headers}) +target_link_libraries(Hadr07 ${Geant4_LIBRARIES}) + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory, i.e. the directory in which we +# build Hadr07. This is so that we can run the executable directly because it +# relies on these scripts being in the current working directory. +# +set(Hadr07_SCRIPTS + hadr07.in Na22.mac multiLayers.mac proton.mac vis.mac water.mac plotHisto.C plot2.C + ) + +foreach(_script ${Hadr07_SCRIPTS}) + configure_file( + ${PROJECT_SOURCE_DIR}/${_script} + ${PROJECT_BINARY_DIR}/${_script} + COPYONLY + ) +endforeach() + +#---------------------------------------------------------------------------- +# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX +# +install(TARGETS Hadr07 DESTINATION bin) + diff --git a/examples/extended/hadronic/Hadr07/GNUmakefile b/examples/extended/hadronic/Hadr07/GNUmakefile new file mode 100644 index 0000000000..a305d33f99 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/GNUmakefile @@ -0,0 +1,20 @@ +# $Id: GNUmakefile 78560 2014-01-07 10:06:52Z gcosmo $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := Hadr07 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/architecture.gmk + +include $(G4INSTALL)/config/binmake.gmk + diff --git a/examples/extended/hadronic/Hadr07/Hadr07.cc b/examples/extended/hadronic/Hadr07/Hadr07.cc new file mode 100644 index 0000000000..65b97b017f --- /dev/null +++ b/examples/extended/hadronic/Hadr07/Hadr07.cc @@ -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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm11/TestEm11.cc +/// \brief Main program of the electromagnetic/TestEm11 example +// +// $Id: TestEm11.cc 94269 2015-11-10 07:55:24Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4MULTITHREADED +#include "G4MTRunManager.hh" +#else +#include "G4RunManager.hh" +#endif + +#include "G4UImanager.hh" +#include "Randomize.hh" + +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "ActionInitialization.hh" +#include "SteppingVerbose.hh" + +#ifdef G4VIS_USE + #include "G4VisExecutive.hh" +#endif + +#ifdef G4UI_USE +#include "G4UIExecutive.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //choose the Random engine + G4Random::setTheEngine(new CLHEP::RanecuEngine); + + // Construct the default run manager +#ifdef G4MULTITHREADED + G4MTRunManager* runManager = new G4MTRunManager; + G4int nThreads = G4Threading::G4GetNumberOfCores(); + if (argc==3) nThreads = G4UIcommand::ConvertToInt(argv[2]); + runManager->SetNumberOfThreads(nThreads); +#else + //my Verbose output class + G4VSteppingVerbose::SetInstance(new SteppingVerbose); + G4RunManager* runManager = new G4RunManager; +#endif + //set mandatory initialization classes + DetectorConstruction* det = new DetectorConstruction; + runManager->SetUserInitialization(det); + + PhysicsList* phys = new PhysicsList; + runManager->SetUserInitialization(phys); + + runManager->SetUserInitialization(new ActionInitialization(det)); + + //get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (argc!=1) // batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + else //define visualization and UI terminal for interactive mode + { +#ifdef G4VIS_USE + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); +#endif + +#ifdef G4UI_USE + G4UIExecutive * ui = new G4UIExecutive(argc,argv); + ui->SessionStart(); + delete ui; +#endif + +#ifdef G4VIS_USE + delete visManager; +#endif + } + + //job termination + // + delete runManager; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/History b/examples/extended/hadronic/Hadr07/History new file mode 100644 index 0000000000..e3e8db3aaf --- /dev/null +++ b/examples/extended/hadronic/Hadr07/History @@ -0,0 +1,22 @@ +$Id: History 95740 2016-02-23 09:34:37Z gcosmo $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Hadr07 History file + ------------------- +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +13-04-16 mma (exhadr07-V10-02-01) +- EmStandardPhysics: use G4EmParameters + +01-04-16 michel maire (exhadr07-V10-02-00) +- created, from TestEm11 and Hadr06 diff --git a/examples/extended/hadronic/Hadr07/Na22.mac b/examples/extended/hadronic/Hadr07/Na22.mac new file mode 100644 index 0000000000..37e6df6360 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/Na22.mac @@ -0,0 +1,28 @@ +# $Id: radioactive.mac 74917 2013-10-24 10:44:43Z ihrivnac $ +# +# +/control/verbose 2 +/run/verbose 2 +# +/testhadr/det/setNbOfAbsor 4 +/testhadr/det/setAbsor 1 G4_PLEXIGLASS 5 mm +/testhadr/det/setAbsor 2 G4_Al 0.5 mm +/testhadr/det/setAbsor 3 G4_AIR 2 mm +/testhadr/det/setAbsor 4 G4_SODIUM_IODIDE 5 cm +/testhadr/det/setSizeYZ 5 cm +# +/run/initialize +# +/testhadr/gun/setDefault +/gun/particle ion +/gun/ion 11 22 +/gun/energy 0 eV +/gun/position -26.25 0 0 mm +# +/analysis/setFileName rdecay +/analysis/h1/set 4 100 0. 3. MeV #edep in absor 4 +/analysis/h1/setAscii 4 +# +/run/printProgress 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/hadronic/Hadr07/README b/examples/extended/hadronic/Hadr07/README new file mode 100644 index 0000000000..9795aadb8e --- /dev/null +++ b/examples/extended/hadronic/Hadr07/README @@ -0,0 +1,147 @@ +$Id: README 69174 2013-04-21 20:38:15Z maire $ + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Hadr07 + ------ + + Survey energy deposition and particle's flux from an hadronic cascade. + Use PhysicsConstructor objects rather than predefined G4 PhysicsLists. + Show how to plot a depth dose profile in a rectangular box. + + + 1- MATERIALS AND GEOMETRY DEFINITION + + The geometry consists of a stack of one or several blocks of homogenous + material, called absorbers. + + A minimum of 4 parameters define the geometry : + - the number of absorbers (NbOfAbsor) + - the material of each absorber, + - the thickness of each absorber, + - the tranverse dimension of the stack (sizeYZ) + + In addition a transverse uniform magnetic field can be applied. + eg: /globalField/setValue 0 0 5 tesla + + The absorber is surrounded by a World volume (vacuum) + + A function, and its associated UI command, allows to build a material + directly from a single isotope. + + The default geometry is built in DetectorConstruction, but the above parameters + can be changed interactively via commands defined in DetectorMessenger. + + To be identified by the ThermalScattering module, the elements composing a + material must have a specific name (see G4ParticleHPThermalScatteringNames.cc) + Examples of such materials are build in Hadr06/src/DetectorConstruction. + + 2- PHYSICS LIST + + "Full" set of physics processes are registered, but via PhysicsConstructor + objects rather than complete pre-defined G4 physics lists. This alternative + way gives more freedom to register physics. + + PhysicsConstructors are either predefined G4 PhysicsConstructors or 'local'. + They include : HadronElastic (including neutronHP), HadronInelastic, + IonsInelastic, GammaNuclear physics, RadioactiveDecay and electomagnetic. + (see geant4/source/physics_lists/constructors) + + Several hadronic physics options are controlled by environment variables. + To trigger them, an envHadronic.csh has been added in this example. + One must select the options wished, and do + source envHadronic.csh (or sh) + + 3- AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle starting at the + left face of the box. 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 G4ParticleGun class (see the macros provided with + this example). + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + + A RUN is a set of events. + + 4- PHYSICS + + The program computes the energy deposited in each absorber, + and the flux of particles emerging in the world. + Processes invoked and particles generated are listed. + + 5- HISTOGRAMS + + The test has several built-in 1D histograms, which are managed by + G4AnalysisManager and its Messenger. The histos can be individually + activated with the command : + /analysis/h1/set id nbBins valMin valMax unit + where unit is the desired unit for the histo (MeV or keV, etc..) + (see the macros xxxx.mac). + + 1 "total energy deposited in absorber 1 + 2 "total energy deposited in absorber 2 + ........................................... + 9 "total energy deposited in absorber 9 + 10 "Edep (MeV/mm) profile along absorbers" + + One can control the name of the histograms file with the command: + /analysis/setFileName name (default Hadr07) + + It is possible to choose the format of the histogram file : root (default), + xml, csv, by using namespace in HistoManager.hh + + It is also possible to print selected histograms on an ascii file: + /analysis/h1/setAscii id + All selected histos will be written on a file name.ascii (default Hadr07) + + 6- TRACKING and STEP MAX + + Hadr07 computes the distribution of energy deposited along the trajectory of + the incident particle : the so-called longitudinal energy profile, + or depth dose distribution (histogram 10). + The energy deposited (edep) is randomly distribued along the step (see + SteppingAction). + + In order to control the accuracy of the deposition, the maximum step size + of charged particles is computed automatically from the binning of + histogram 10. + + As an example, this limitation is implemented as a 'full' process : + see StepMax class and its Messenger. The 'StepMax process' is registered + in the Physics List, via a physicsConstructor object (a builder). + + StepMax is evaluated in the StepMax process. + A boolean UI command allows to deactivate this mechanism. + Another UI command allows to define directly a stepMax value. + + + 7- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the commands + /vis/... in the macro vis.mac. To get visualisation: + > /control/execute vis.mac + + The tracks are drawn at the end of event, and erased at the end of run. + gamma green + neutron yellow + negative particles (e-, ...) red + positive particles (e+, ions, ...) blue + + 8- HOW TO START ? + + Execute Hadr07 in 'batch' mode from macro files : + % Hadr07 run1.mac + + Execute Hadr07 in 'interactive mode' with visualization : + % Hadr07 + Idle> control/execute vis.mac + .... + Idle> type your commands + .... + Idle> exit diff --git a/examples/extended/hadronic/Hadr07/envHadronic.csh b/examples/extended/hadronic/Hadr07/envHadronic.csh new file mode 100755 index 0000000000..90dfb1ce18 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/envHadronic.csh @@ -0,0 +1,22 @@ +# +# for neutronHP +# +unsetenv G4NEUTRONHP_SKIP_MISSING_ISOTOPES +unsetenv G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE +unsetenv G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION +unsetenv G4NEUTRONHP_NELECT_DOPPLER +unsetenv G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS + +#### setenv G4NEUTRONHP_SKIP_MISSING_ISOTOPES 1 +#### setenv G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE 1 +#### setenv G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION 1 +#### setenv G4NEUTRONHP_NELECT_DOPPLER 1 +#### setenv G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS 1 +# +# for Bertini cascade +# +unsetenv G4CASCADE_USE_PRECOMPOUND +#### setenv G4CASCADE_USE_PRECOMPOUND 1 + +env |grep G4NEUTRONHP +env |grep G4CASCADE diff --git a/examples/extended/hadronic/Hadr07/envHadronic.sh b/examples/extended/hadronic/Hadr07/envHadronic.sh new file mode 100755 index 0000000000..09bb55ad5b --- /dev/null +++ b/examples/extended/hadronic/Hadr07/envHadronic.sh @@ -0,0 +1,32 @@ +# +# for neutronHP +# +unset G4NEUTRONHP_SKIP_MISSING_ISOTOPES +unset G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE +unset G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION +unset G4NEUTRONHP_NELECT_DOPPLER +unset G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS + +#### G4NEUTRONHP_SKIP_MISSING_ISOTOPES=1 +#### export G4NEUTRONHP_SKIP_MISSING_ISOTOPES + +#### G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE=1 +#### export G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE + +#### G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION=1 +#### export G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION + +#### G4NEUTRONHP_NELECT_DOPPLER=1 +#### export G4NEUTRONHP_NELECT_DOPPLER + +#### G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS=1 +#### export G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS +# +# for Bertini cascade +# +unset G4CASCADE_USE_PRECOMPOUND +#### G4CASCADE_USE_PRECOMPOUND=1 +#### export G4CASCADE_USE_PRECOMPOUND + +env |grep G4NEUTRONHP +env |grep G4CASCADE diff --git a/examples/extended/hadronic/Hadr07/hadr07.in b/examples/extended/hadronic/Hadr07/hadr07.in new file mode 100644 index 0000000000..2222e4f007 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/hadr07.in @@ -0,0 +1,24 @@ +# $Id$ +# +# Macro file for "Hadr07.cc" +# +/control/verbose 2 +/run/verbose 1 +# +/testhadr/det/setIsotopeMat Li7 3 7 1.85 g/cm3 +# +/testhadr/det/setNbOfAbsor 1 +/testhadr/det/setAbsor 1 Li7 30 cm +/testhadr/det/setSizeYZ 30 cm +# +/run/initialize +# +/process/list +# +/testhadr/gun/setDefault +/gun/particle neutron +/gun/energy 14.1 MeV +# +/run/printProgress 1000 +# +/run/beamOn 10000 diff --git a/examples/extended/hadronic/Hadr07/include/ActionInitialization.hh b/examples/extended/hadronic/Hadr07/include/ActionInitialization.hh new file mode 100644 index 0000000000..9bfd7962d3 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/ActionInitialization.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: ActionInitialization.hh 68058 2013-03-13 14:47:43Z gcosmo $ +// +/// \file ActionInitialization.hh +/// \brief Definition of the ActionInitialization class + +#ifndef ActionInitialization_h +#define ActionInitialization_h 1 + +#include "G4VUserActionInitialization.hh" + +class DetectorConstruction; +class G4VSteppingVerbose; + +/// Action initialization class. +/// + +class ActionInitialization : public G4VUserActionInitialization +{ + public: + ActionInitialization(DetectorConstruction* detector); + virtual ~ActionInitialization(); + + virtual void BuildForMaster() const; + virtual void Build() const; + + virtual G4VSteppingVerbose* InitializeSteppingVerbose() const; + + private: + DetectorConstruction* fDetector; +}; + +#endif + + diff --git a/examples/extended/hadronic/Hadr07/include/DetectorConstruction.hh b/examples/extended/hadronic/Hadr07/include/DetectorConstruction.hh new file mode 100644 index 0000000000..c47d9357e9 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/DetectorConstruction.hh @@ -0,0 +1,118 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/DetectorConstruction.hh +/// \brief Definition of the DetectorConstruction class +// +// $Id: DetectorConstruction.hh 78560 2014-01-07 10:06:52Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" +#include "G4Cache.hh" + +class G4Box; +class G4LogicalVolume; +class G4VPhysicalVolume; +class G4Material; +class DetectorMessenger; + +const G4int MaxAbsor = 10; // 0 + 9 + +class G4GlobalMagFieldMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + + DetectorConstruction(); + ~DetectorConstruction(); + +public: + + G4Material* + MaterialWithSingleIsotope(G4String, G4String, G4double, G4int, G4int); + + void SetNbOfAbsor (G4int); + void SetAbsorMaterial (G4int,const G4String&); + void SetAbsorThickness(G4int,G4double); + + void SetAbsorSizeYZ (G4double); + + virtual G4VPhysicalVolume* Construct(); + virtual void ConstructSDandField(); + +public: + + G4int GetNbOfAbsor() {return fNbOfAbsor;} + G4Material* GetAbsorMaterial (G4int i) {return fAbsorMaterial[i];}; + G4double GetAbsorThickness(G4int i) {return fAbsorThickness[i];}; + G4double GetXfront (G4int i) {return fXfront[i];}; + + G4double GetAbsorSizeX() {return fAbsorSizeX;}; + G4double GetAbsorSizeYZ() {return fAbsorSizeYZ;}; + + G4double GetWorldSizeX() {return fWorldSizeX;}; + G4double GetWorldSizeYZ() {return fWorldSizeYZ;}; + + void PrintParameters(); + +private: + + G4int fNbOfAbsor; + G4Material* fAbsorMaterial [MaxAbsor]; + G4double fAbsorThickness[MaxAbsor]; + G4double fXfront[MaxAbsor]; + + G4double fAbsorSizeX; + G4double fAbsorSizeYZ; + + G4double fWorldSizeX; + G4double fWorldSizeYZ; + G4Material* fDefaultMaterial; + + G4VPhysicalVolume* fPhysiWorld; + + DetectorMessenger* fDetectorMessenger; + G4Cache fFieldMessenger; + +private: + + void DefineMaterials(); + void ComputeParameters(); + G4VPhysicalVolume* ConstructVolumes(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/hadronic/Hadr07/include/DetectorMessenger.hh b/examples/extended/hadronic/Hadr07/include/DetectorMessenger.hh new file mode 100644 index 0000000000..c5d4b24463 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/DetectorMessenger.hh @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/DetectorMessenger.hh +/// \brief Definition of the DetectorMessenger class +// +// $Id: DetectorMessenger.hh 77288 2013-11-22 10:52:58Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class DetectorConstruction; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorMessenger: public G4UImessenger +{ + public: + + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); + + virtual void SetNewValue(G4UIcommand*, G4String); + + private: + + DetectorConstruction* fDetector; + + G4UIdirectory* fTestemDir; + G4UIdirectory* fDetDir; + G4UIcmdWithAnInteger* fNbAbsorCmd; + G4UIcommand* fAbsorCmd; + G4UIcmdWithADoubleAndUnit* fSizeYZCmd; + G4UIcommand* fIsotopeCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/runAndEvent/RE01/include/RE01UnknownDecayPhysics.hh b/examples/extended/hadronic/Hadr07/include/EmStandardPhysics.hh similarity index 70% rename from examples/extended/runAndEvent/RE01/include/RE01UnknownDecayPhysics.hh rename to examples/extended/hadronic/Hadr07/include/EmStandardPhysics.hh index 5f64bbed4a..df241f321d 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01UnknownDecayPhysics.hh +++ b/examples/extended/hadronic/Hadr07/include/EmStandardPhysics.hh @@ -23,37 +23,46 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file runAndEvent/RE01/include/RE01UnknownDecayPhysics.hh -/// \brief Definition of the RE01UnknownDecayPhysics class +/// \file electromagnetic/TestEm1/include/EmStandardPhysics.hh +/// \brief Definition of the EmStandardPhysics class // -// $Id: RE01UnknownDecayPhysics.hh 66379 2012-12-18 09:46:33Z gcosmo $ +// $Id: EmStandardPhysics.hh 66586 2012-12-21 10:48:39Z ihrivnac $ // -// -#ifndef RE01UnknownDecayPhysics_h -#define RE01UnknownDecayPhysics_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef EmStandardPhysics_h +#define EmStandardPhysics_h 1 #include "G4VPhysicsConstructor.hh" -#include "G4Decay.hh" -#include "G4UnknownDecay.hh" +#include "globals.hh" -class RE01UnknownDecayPhysics : public G4VPhysicsConstructor +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EmStandardPhysics : public G4VPhysicsConstructor { public: - RE01UnknownDecayPhysics(const G4String& name = "decay"); - virtual ~RE01UnknownDecayPhysics(); - - // This method will be invoked in the Construct() method. - // each particle type will be instantiated - virtual void ConstructParticle(); + EmStandardPhysics(const G4String& name = "standard"); + ~EmStandardPhysics(); + public: + // This method is dummy for physics + virtual void ConstructParticle() {}; + // This method will be invoked in the Construct() method. // each physics process will be instantiated and // registered to the process manager of each particle type virtual void ConstructProcess(); - - protected: - G4Decay fDecayProcess; - G4UnknownDecay fUnknownDecay; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif + + + + + + + + diff --git a/examples/extended/hadronic/Hadr07/include/EventAction.hh b/examples/extended/hadronic/Hadr07/include/EventAction.hh new file mode 100644 index 0000000000..efd0ed0743 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/EventAction.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/EventAction.hh +/// \brief Definition of the EventAction class +// +// $Id: EventAction.hh 95740 2016-02-23 09:34:37Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef EventAction_h +#define EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" +#include "DetectorConstruction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventAction : public G4UserEventAction +{ + public: + EventAction(DetectorConstruction*); + ~EventAction(); + + public: + virtual void BeginOfEventAction(const G4Event*); + virtual void EndOfEventAction(const G4Event*); + + void AddEdep(G4int k, G4double edep) { fEdepAbsor[k] += edep; } + + private: + DetectorConstruction* fDetector; + + G4double fEdepAbsor[MaxAbsor]; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringProcess.hh b/examples/extended/hadronic/Hadr07/include/GammaPhysics.hh old mode 100755 new mode 100644 similarity index 72% rename from examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringProcess.hh rename to examples/extended/hadronic/Hadr07/include/GammaPhysics.hh index 74939badfb..da2c378e9b --- a/examples/extended/electromagnetic/TestEm11/include/G4DiscreteScatteringProcess.hh +++ b/examples/extended/hadronic/Hadr07/include/GammaPhysics.hh @@ -23,38 +23,34 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -#ifndef G4DiscreteScatteringProcess_HH -#define G4DiscreteScatteringProcess_HH - -#include "G4VEmProcess.hh" +/// \file hadronic/Hadr03/include/GammaPhysics.hh +/// \brief Definition of the GammaPhysics class +// +// $Id: GammaPhysics.hh 66587 2012-12-21 11:06:44Z ihrivnac $ +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4DiscreteScatteringProcess : public G4VEmProcess{ - -public: - - G4DiscreteScatteringProcess(G4int iNumAngles=1); - - virtual ~G4DiscreteScatteringProcess(); - - virtual void InitialiseProcess(const G4ParticleDefinition*); - - virtual bool IsApplicable(const G4ParticleDefinition& p); - // This will need to check whether the particle is something - // our particle works for. Right now, protons. - - virtual void PrintInfo(); - -private: - - bool fIsInitialised; - G4int fNumAngles; +#ifndef GammaPhysics_h +#define GammaPhysics_h 1 + +#include "globals.hh" +#include "G4VPhysicsConstructor.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class GammaPhysics : public G4VPhysicsConstructor +{ + public: + GammaPhysics(const G4String& name="gamma"); + ~GammaPhysics(); + + public: + virtual void ConstructParticle() { }; + virtual void ConstructProcess(); }; - - +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - diff --git a/examples/extended/hadronic/Hadr07/include/HadronElasticPhysicsHP.hh b/examples/extended/hadronic/Hadr07/include/HadronElasticPhysicsHP.hh new file mode 100644 index 0000000000..2c169f79a8 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/HadronElasticPhysicsHP.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 hadronic/Hadr06/include/HadronElasticPhysicsHP.hh +/// \brief Definition of the HadronElasticPhysicsHP class +// +// $Id: HadronElasticPhysicsHP.hh 71037 2013-06-10 09:20:54Z gcosmo $ +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef HadronElasticPhysicsHP_h +#define HadronElasticPhysicsHP_h 1 + +#include "globals.hh" +#include "G4HadronElasticPhysics.hh" + +class NeutronHPMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HadronElasticPhysicsHP : public G4HadronElasticPhysics +{ + public: + HadronElasticPhysicsHP(G4int ver = 1); + ~HadronElasticPhysicsHP(); + + public: + virtual void ConstructProcess(); + + public: + void SetThermalPhysics(G4bool flag) {fThermal = flag;}; + + private: + G4bool fThermal; + NeutronHPMessenger* fNeutronMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/hadronic/Hadr07/include/HistoManager.hh b/examples/extended/hadronic/Hadr07/include/HistoManager.hh new file mode 100644 index 0000000000..ec18d41349 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/HistoManager.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm5/include/HistoManager.hh +/// \brief Definition of the HistoManager class +// +// +// $Id: HistoManager.hh 78560 2014-01-07 10:06:52Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef HistoManager_h +#define HistoManager_h 1 + +#include "globals.hh" + +#include "g4root.hh" +//#include "g4xml.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoManager +{ + public: + HistoManager(); + ~HistoManager(); + + private: + void Book(); + G4String fFileName; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/hadronic/Hadr07/include/NeutronHPMessenger.hh b/examples/extended/hadronic/Hadr07/include/NeutronHPMessenger.hh new file mode 100644 index 0000000000..dca0d796ca --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/NeutronHPMessenger.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm12/include/NeutronHPMessenger.hh +/// \brief Definition of the NeutronHPMessenger class +// +// $Id: NeutronHPMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef NeutronHPMessenger_h +#define NeutronHPMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class HadronElasticPhysicsHP; +class G4UIdirectory; +class G4UIcmdWithABool; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class NeutronHPMessenger: public G4UImessenger +{ + public: + NeutronHPMessenger(HadronElasticPhysicsHP*); + ~NeutronHPMessenger(); + + virtual void SetNewValue(G4UIcommand*, G4String); + + private: + HadronElasticPhysicsHP* fNeutronPhysics; + + G4UIdirectory* fPhysDir; + G4UIcmdWithABool* fThermalCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandardMP.hh b/examples/extended/hadronic/Hadr07/include/PhysListEmStandard.hh old mode 100755 new mode 100644 similarity index 84% rename from examples/extended/electromagnetic/TestEm11/include/PhysListEmStandardMP.hh rename to examples/extended/hadronic/Hadr07/include/PhysListEmStandard.hh index db2d6e245f..a5ec89b714 --- a/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandardMP.hh +++ b/examples/extended/hadronic/Hadr07/include/PhysListEmStandard.hh @@ -23,28 +23,28 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm11/include/PhysListEmStandardMP.hh -/// \brief Definition of the PhysListEmStandardMP class +/// \file electromagnetic/TestEm11/include/PhysListEmStandard.hh +/// \brief Definition of the PhysListEmStandard class // // -// $Id: PhysListEmStandardMP.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: PhysListEmStandard.hh 66241 2012-12-13 18:34:42Z gunter $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef PhysListEmStandardMP_h -#define PhysListEmStandardMP_h 1 +#ifndef PhysListEmStandard_h +#define PhysListEmStandard_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class PhysListEmStandardMP : public G4VPhysicsConstructor +class PhysListEmStandard : public G4VPhysicsConstructor { public: - PhysListEmStandardMP(G4int iNumAngles); - ~PhysListEmStandardMP(); + PhysListEmStandard(const G4String& name = "standard"); + ~PhysListEmStandard(); public: // This method is dummy for physics @@ -54,10 +54,6 @@ class PhysListEmStandardMP : public G4VPhysicsConstructor // each physics process will be instantiated and // registered to the process manager of each particle type virtual void ConstructProcess(); - - private: - G4int fNumAngles; - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh b/examples/extended/hadronic/Hadr07/include/PhysicsList.hh similarity index 78% rename from examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh rename to examples/extended/hadronic/Hadr07/include/PhysicsList.hh index 127be826c5..23315e6c03 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh +++ b/examples/extended/hadronic/Hadr07/include/PhysicsList.hh @@ -23,23 +23,30 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file runAndEvent/RE01/include/RE01PhysicsList.hh -/// \brief Definition of the RE01PhysicsList class +/// \file hadronic/Hadr03/include/PhysicsList.hh +/// \brief Definition of the PhysicsList class // -// $Id: RE01PhysicsList.hh 66379 2012-12-18 09:46:33Z gcosmo $ +// $Id: PhysicsList.hh 66587 2012-12-21 11:06:44Z ihrivnac $ // -// -#ifndef RE01PhysicsList_h -#define RE01PhysicsList_h 1 + +#ifndef PhysicsList_h +#define PhysicsList_h 1 #include "G4VModularPhysicsList.hh" +#include "globals.hh" -class RE01PhysicsList: public G4VModularPhysicsList +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsList: public G4VModularPhysicsList { public: - RE01PhysicsList(); - virtual ~RE01PhysicsList(); - + PhysicsList(); + ~PhysicsList(); + +public: virtual void SetCuts(); }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/examples/extended/hadronic/Hadr07/include/PrimaryGeneratorAction.hh b/examples/extended/hadronic/Hadr07/include/PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..bb099ef00d --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/PrimaryGeneratorAction.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh +/// \brief Definition of the PrimaryGeneratorAction class +// +// $Id: PrimaryGeneratorAction.hh 95740 2016-02-23 09:34:37Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4ParticleGun.hh" +#include "globals.hh" + +class G4Event; +class DetectorConstruction; +class PrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); + + public: + void SetDefaultKinematic(); + void SetRndmBeam(G4double val) {fRndmBeam = val;} + virtual void GeneratePrimaries(G4Event*); + + G4ParticleGun* GetParticleGun() {return fParticleGun;} + + private: + G4ParticleGun* fParticleGun; + DetectorConstruction* fDetector; + G4double fRndmBeam; + PrimaryGeneratorMessenger* fGunMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/hadronic/Hadr07/include/PrimaryGeneratorMessenger.hh b/examples/extended/hadronic/Hadr07/include/PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..2b88c66ae3 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/PrimaryGeneratorMessenger.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh +/// \brief Definition of the PrimaryGeneratorMessenger class +// +// $Id: PrimaryGeneratorMessenger.hh 96158 2016-03-21 11:08:26Z maire $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); + + virtual void SetNewValue(G4UIcommand*, G4String); + + private: + PrimaryGeneratorAction* fAction; + G4UIdirectory* fGunDir; + G4UIcmdWithoutParameter* fDefaultCmd; + G4UIcmdWithADoubleAndUnit* fRndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh b/examples/extended/hadronic/Hadr07/include/Run.hh similarity index 55% rename from examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh rename to examples/extended/hadronic/Hadr07/include/Run.hh index 86e4baf122..1c98fa3779 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh +++ b/examples/extended/hadronic/Hadr07/include/Run.hh @@ -23,66 +23,73 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10EventAction.hh -/// \brief Definition of the Em10EventAction class +/// \file electromagnetic/TestEm11/include/Run.hh +/// \brief Definition of the Run class // +// $Id: Run.hh 71375 2013-06-14 07:39:33Z maire $ // -// $Id: Em10EventAction.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +#ifndef Run_h +#define Run_h 1 -#ifndef Em10EventAction_h -#define Em10EventAction_h 1 +#include "DetectorConstruction.hh" -#include "G4UserEventAction.hh" +#include "G4Run.hh" +#include "G4VProcess.hh" #include "globals.hh" +#include -class Em10RunAction; -class Em10EventActionMessenger; +class DetectorConstruction; +class G4ParticleDefinition; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em10EventAction : public G4UserEventAction +class Run : public G4Run { public: - Em10EventAction(Em10RunAction* Em10RA); - ~Em10EventAction(); + Run(DetectorConstruction* detector); + ~Run(); public: - void BeginOfEventAction(const G4Event*); - void EndOfEventAction(const G4Event*); - G4int GetEventno(); - void setEventVerbose(G4int level); + void SetPrimary(G4ParticleDefinition* particle, G4double energy); + void CountProcesses(const G4VProcess* process); + void ParticleCount(G4int, G4String, G4double); + void AddEdep (G4int i, G4double e); + void AddTotEdep (G4double e); + void AddTrackStatus (G4int i); + + virtual void Merge(const G4Run*); + void EndOfRun(); - void CountStepsCharged() ; - void CountStepsNeutral() ; - void AddCharged() ; - void AddNeutral() ; - void AddE(); - void AddP(); - void SetTr(); - void SetRef(); - - void SetDrawFlag(G4String val) {drawFlag = val;}; - void SetPrintModulo(G4int val) {printModulo = val;}; - +private: + struct ParticleData { + ParticleData() + : fCount(0), fEmean(0.), fEmin(0.), fEmax(0.) {} + ParticleData(G4int count, G4double ekin, G4double emin, G4double emax) + : fCount(count), fEmean(ekin), fEmin(emin), fEmax(emax) {} + G4int fCount; + G4double fEmean; + G4double fEmin; + G4double fEmax; + }; + private: - G4int calorimeterCollID; - Em10EventActionMessenger* eventMessenger; - Em10RunAction* runaction; - G4int verboselevel; - G4double nstep,nstepCharged,nstepNeutral; - G4double Nch,Nne; - G4double NE,NP; - G4double Transmitted,Reflected ; + DetectorConstruction* fDetector; + G4ParticleDefinition* fParticle; + G4double fEkin; + + G4int fStatus[3]; - G4String drawFlag; - G4int printModulo; + G4double fEdeposit[MaxAbsor], fEmin[MaxAbsor], fEmax[MaxAbsor]; + G4double fTotEdep[3]; + + std::map fProcCounter; + std::map fParticleDataMap[MaxAbsor]; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif - diff --git a/examples/extended/hadronic/Hadr07/include/RunAction.hh b/examples/extended/hadronic/Hadr07/include/RunAction.hh new file mode 100644 index 0000000000..15ad8d5d90 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/RunAction.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm11/include/RunAction.hh +/// \brief Definition of the RunAction class +// +// $Id: RunAction.hh 78560 2014-01-07 10:06:52Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef RunAction_h +#define RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" +#include "DetectorConstruction.hh" + +class Run; +class PrimaryGeneratorAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class RunAction : public G4UserRunAction +{ + public: + RunAction(DetectorConstruction*, PrimaryGeneratorAction*); + ~RunAction(); + + public: + virtual void BeginOfRunAction(const G4Run*); + virtual void EndOfRunAction(const G4Run*); + virtual G4Run* GenerateRun(); + + private: + DetectorConstruction* fDetector; + PrimaryGeneratorAction* fPrimary; + Run* fRun; + HistoManager* fHistoManager; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/hadronic/Hadr07/include/StepMaxBuilder.hh b/examples/extended/hadronic/Hadr07/include/StepMaxBuilder.hh new file mode 100644 index 0000000000..ec09374f1a --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/StepMaxBuilder.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 hadronic/Hadr03/include/StepMaxBuilder.hh +/// \brief Definition of the StepMaxBuilder class +// +// $Id: StepMaxBuilder.hh 66587 2012-12-21 11:06:44Z ihrivnac $ +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StepMaxBuilder_h +#define StepMaxBuilder_h 1 + +#include "globals.hh" +#include "G4VPhysicsConstructor.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StepMaxBuilder : public G4VPhysicsConstructor +{ + public: + StepMaxBuilder(const G4String& name="UserStepMax"); + ~StepMaxBuilder(); + + public: + virtual void ConstructParticle() { }; + virtual void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh b/examples/extended/hadronic/Hadr07/include/StepMaxMessenger.hh similarity index 70% rename from examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh rename to examples/extended/hadronic/Hadr07/include/StepMaxMessenger.hh index 6eab33ab05..df99b8e6af 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh +++ b/examples/extended/hadronic/Hadr07/include/StepMaxMessenger.hh @@ -23,44 +23,40 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh -/// \brief Definition of the Em10PrimaryGeneratorMessenger class +/// \file electromagnetic/TestEm11/include/StepMaxMessenger.hh +/// \brief Definition of the StepMaxMessenger class // +// $Id: StepMaxMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ // -// $Id: Em10PrimaryGeneratorMessenger.hh 66241 2012-12-13 18:34:42Z gunter $ -// -// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +#ifndef StepMaxMessenger_h +#define StepMaxMessenger_h 1 -#ifndef Em10PrimaryGeneratorMessenger_h -#define Em10PrimaryGeneratorMessenger_h 1 - -#include "G4UImessenger.hh" #include "globals.hh" +#include "G4UImessenger.hh" -class Em10PrimaryGeneratorAction; -class G4UIcmdWithAString; +class StepMaxProcess; +class G4UIcmdWithABool; class G4UIcmdWithADoubleAndUnit; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em10PrimaryGeneratorMessenger: public G4UImessenger +class StepMaxMessenger: public G4UImessenger { public: - Em10PrimaryGeneratorMessenger(Em10PrimaryGeneratorAction*); - ~Em10PrimaryGeneratorMessenger(); + StepMaxMessenger(StepMaxProcess*); + ~StepMaxMessenger(); - void SetNewValue(G4UIcommand*, G4String); + virtual void SetNewValue(G4UIcommand*, G4String); private: - Em10PrimaryGeneratorAction* Em10Action; - G4UIcmdWithAString* RndmCmd; - G4UIcmdWithADoubleAndUnit* setxvertexCmd; - G4UIcmdWithADoubleAndUnit* setyvertexCmd; - G4UIcmdWithADoubleAndUnit* setzvertexCmd; + StepMaxProcess* fStepMax; + G4UIcmdWithADoubleAndUnit* fStepMax1Cmd; + G4UIcmdWithABool* fStepMax2Cmd; }; -#endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#endif diff --git a/examples/extended/hadronic/Hadr07/include/StepMaxProcess.hh b/examples/extended/hadronic/Hadr07/include/StepMaxProcess.hh new file mode 100644 index 0000000000..4a32294c57 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/StepMaxProcess.hh @@ -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 electromagnetic/TestEm11/include/StepMaxProcess.hh +/// \brief Definition of the StepMaxProcess class +// +// $Id: StepMaxProcess.hh 66241 2012-12-13 18:34:42Z gunter $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StepMaxProcess_h +#define StepMaxProcess_h 1 + +#include "globals.hh" +#include "G4VDiscreteProcess.hh" +#include "G4ParticleDefinition.hh" +#include "G4Step.hh" + +class StepMaxMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StepMaxProcess : public G4VDiscreteProcess +{ + public: + + StepMaxProcess(const G4String& processName = "UserMaxStep", + G4ProcessType type = fUserDefined); + ~StepMaxProcess(); + + virtual G4bool IsApplicable(const G4ParticleDefinition&); + + void SetMaxStep1(G4double); + void ApplyMaxStep2(G4bool); + + virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + + virtual G4double GetMeanFreePath(const G4Track&,G4double,G4ForceCondition*) + {return DBL_MAX;}; + + private: + + G4double fMaxStep1; + G4double fMaxStep2; + G4bool fApplyMaxStep2; + + StepMaxMessenger* fMess; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/hadronic/Hadr07/include/SteppingAction.hh b/examples/extended/hadronic/Hadr07/include/SteppingAction.hh new file mode 100644 index 0000000000..4f16cbcff8 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/SteppingAction.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/SteppingAction.hh +/// \brief Definition of the SteppingAction class +// +// $Id: SteppingAction.hh 74997 2013-10-25 10:52:13Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +class DetectorConstruction; +class RunAction; +class EventAction; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingAction : public G4UserSteppingAction +{ + public: + SteppingAction(DetectorConstruction*,EventAction*); + ~SteppingAction(); + + virtual void UserSteppingAction(const G4Step*); + + private: + DetectorConstruction* fDetector; + EventAction* fEventAction; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/Hadr07/include/SteppingVerbose.hh b/examples/extended/hadronic/Hadr07/include/SteppingVerbose.hh new file mode 100644 index 0000000000..38ab9106b8 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/SteppingVerbose.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 radioactivedecay/rdecay01/include/SteppingVerbose.hh +/// \brief Definition of the SteppingVerbose class +// +// +// $Id: SteppingVerbose.hh 71390 2013-06-14 13:21:31Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingVerbose : public G4SteppingVerbose { + +public: + + SteppingVerbose(); + ~SteppingVerbose(); + + virtual void TrackingStarted(); + virtual void StepInfo(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/Hadr07/include/TrackingAction.hh b/examples/extended/hadronic/Hadr07/include/TrackingAction.hh new file mode 100644 index 0000000000..c7e31aa613 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/include/TrackingAction.hh @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/include/TrackingAction.hh +/// \brief Definition of the TrackingAction class +// +// $Id: TrackingAction.hh 74997 2013-10-25 10:52:13Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "G4UserTrackingAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + + public: + TrackingAction(); + ~TrackingAction() {}; + + virtual void PreUserTrackingAction(const G4Track*); + virtual void PostUserTrackingAction(const G4Track*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/Hadr07/multiLayers.mac b/examples/extended/hadronic/Hadr07/multiLayers.mac new file mode 100644 index 0000000000..b642121f90 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/multiLayers.mac @@ -0,0 +1,27 @@ +# $Id: multiLayers.mac 74997 2013-10-25 10:52:13Z gcosmo $ +# +# multiLayers +# +/control/verbose 2 +/run/verbose 2 +# +/testhadr/det/setNbOfAbsor 5 +/testhadr/det/setAbsor 1 Water 13 cm +/testhadr/det/setAbsor 2 G4_AIR 1 cm +/testhadr/det/setAbsor 3 Water 1 cm +/testhadr/det/setAbsor 4 G4_B-100_BONE 3 cm +/testhadr/det/setAbsor 5 Water 12 cm +/testhadr/det/setSizeYZ 30 cm +# +/run/initialize +# +/testhadr/gun/setDefault +/gun/particle gamma +/gun/energy 6 MeV +# +/analysis/setFileName bone +/analysis/h1/set 10 300 0. 300. mm #edep profile +# +/run/printProgress 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/hadronic/Hadr07/plot2.C b/examples/extended/hadronic/Hadr07/plot2.C new file mode 100644 index 0000000000..b2033928c7 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/plot2.C @@ -0,0 +1,28 @@ +{ + gROOT->Reset(); + + // Draw histos filled by Geant4 simulation + // + TCanvas* c1 = new TCanvas("c1", " "); + + c1->SetLogy(0); + c1->cd(); + c1->Update(); + + TFile fa("water_opt3.root"); + TFile fb("water_100um.root"); + + TH1D* ha1 = (TH1D*)fa.Get("10"); + ha1->SetStats(kFALSE); + ha1->SetLineColor(kBlue); + ha1->Draw("HIST"); + TH1D* hb1 = (TH1D*)fb.Get("10"); + hb1->SetLineColor(kRed); + hb1->Draw("HIST SAME"); + + // Print the histograms legend + TLegend *le = new TLegend(0.6,0.6,0.8,0.8); + le->AddEntry(ha1,"opt3","l"); + le->AddEntry(hb1,"100um","l"); + le->Draw(); +} diff --git a/examples/extended/hadronic/Hadr07/plotHisto.C b/examples/extended/hadronic/Hadr07/plotHisto.C new file mode 100644 index 0000000000..103d231b6f --- /dev/null +++ b/examples/extended/hadronic/Hadr07/plotHisto.C @@ -0,0 +1,24 @@ +{ + gROOT->Reset(); + + // Draw histos filled by Geant4 simulation + // + TFile f("bone.root"); + TCanvas* c1 = new TCanvas("c1", " "); + c1->SetLogy(0); + c1->cd(); + c1->Update(); + + TH1D* hist1 = (TH1D*)f.Get("10"); + hist1->Draw("HIST"); +/* + TH1D* hist3 = (TH1D*)f.Get("3"); + hist3->Draw("HIST"); + + TH1D* hist4 = (TH1D*)f.Get("4"); + hist4->Draw("HIST"); + + TH1D* hist5 = (TH1D*)f.Get("5"); + hist5->Draw("HIST"); +*/ +} diff --git a/examples/extended/hadronic/Hadr07/proton.mac b/examples/extended/hadronic/Hadr07/proton.mac new file mode 100644 index 0000000000..0766b8fe4d --- /dev/null +++ b/examples/extended/hadronic/Hadr07/proton.mac @@ -0,0 +1,29 @@ +# $Id: multiLayers.mac 74917 2013-10-24 10:44:43Z ihrivnac $ +# +# multiLayers +# +/control/verbose 2 +/run/verbose 2 +# +/testhadr/det/setNbOfAbsor 4 +/testhadr/det/setAbsor 1 Water 1 cm +/testhadr/det/setAbsor 2 Water 1 cm +/testhadr/det/setAbsor 3 Water 1 cm +/testhadr/det/setAbsor 4 Water 1 cm +/testhadr/det/setSizeYZ 4 cm +# +/run/setCut 1 km +# +/run/initialize +/process/list +# +/testhadr/gun/setDefault +/gun/particle proton +/gun/energy 1 GeV +# +###/analysis/setFileName proton +###/analysis/h1/set 10 100 0. 40. mm #edep profile +# +###/control/execute vis.mac +/tracking/verbose 1 +/run/beamOn diff --git a/examples/extended/hadronic/Hadr07/src/ActionInitialization.cc b/examples/extended/hadronic/Hadr07/src/ActionInitialization.cc new file mode 100644 index 0000000000..d9fd65ae84 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/ActionInitialization.cc @@ -0,0 +1,83 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: ActionInitialization.cc 68058 2013-03-13 14:47:43Z gcosmo $ +// +/// \file ActionInitialization.cc +/// \brief Implementation of the ActionInitialization class + +#include "ActionInitialization.hh" +#include "PrimaryGeneratorAction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "TrackingAction.hh" +#include "SteppingAction.hh" +#include "SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ActionInitialization::ActionInitialization(DetectorConstruction* detector) + : G4VUserActionInitialization(), + fDetector(detector) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ActionInitialization::~ActionInitialization() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ActionInitialization::BuildForMaster() const +{ + RunAction* runAction = new RunAction(fDetector, 0); + SetUserAction(runAction); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ActionInitialization::Build() const +{ + PrimaryGeneratorAction* kinematics = new PrimaryGeneratorAction(fDetector); + SetUserAction(kinematics); + + SetUserAction(new RunAction(fDetector, kinematics)); + + EventAction* eventAction = new EventAction(fDetector); + SetUserAction(eventAction); + + SetUserAction(new TrackingAction()); + + SetUserAction(new SteppingAction(fDetector, eventAction)); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VSteppingVerbose* ActionInitialization::InitializeSteppingVerbose() const +{ + return new SteppingVerbose(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/DetectorConstruction.cc b/examples/extended/hadronic/Hadr07/src/DetectorConstruction.cc new file mode 100644 index 0000000000..d3ec4a6a8f --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/DetectorConstruction.cc @@ -0,0 +1,335 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/DetectorConstruction.cc +/// \brief Implementation of the DetectorConstruction class +// +// $Id: DetectorConstruction.cc 77288 2013-11-22 10:52:58Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" + +#include "G4NistManager.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 "G4UImanager.hh" +#include "G4UnitsTable.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4GlobalMagFieldMessenger.hh" +#include "G4AutoDelete.hh" +#include "G4RunManager.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::DetectorConstruction() +:G4VUserDetectorConstruction(),fDefaultMaterial(0),fPhysiWorld(0), + fDetectorMessenger(0) +{ + // default parameter values of the absorbers + fNbOfAbsor = 1; + fAbsorThickness[0] = 0*mm; //dummy, for initialization + fAbsorThickness[1] = 1*mm; + fAbsorSizeYZ = 1*mm; + + ComputeParameters(); + + // materials + DefineMaterials(); + SetAbsorMaterial(1,"G4_Si"); + + // 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 ConstructVolumes(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::DefineMaterials() +{ + G4NistManager* man = G4NistManager::Instance(); + + man->FindOrBuildMaterial("G4_AIR"); + + G4Element* H = man->FindOrBuildElement("H"); + G4Element* O = man->FindOrBuildElement("O"); + + G4Material* H2O = + new G4Material("Water", 1.000*g/cm3, 2); + H2O->AddElement(H, 2); + H2O->AddElement(O, 1); + H2O->GetIonisation()->SetMeanExcitationEnergy(78.0*eV); + + // example of vacuum + G4double density = universe_mean_density; //from PhysicalConstants.h + G4double pressure = 3.e-18*pascal; + G4double temperature = 2.73*kelvin; + G4Material* Galactic = + new G4Material("Galactic", 1., 1.008*g/mole, density, + kStateGas,temperature,pressure); + + fDefaultMaterial = Galactic; + + // G4cout << *(G4Material::GetMaterialTable()) << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4Material* DetectorConstruction::MaterialWithSingleIsotope( G4String name, + G4String symbol, G4double density, G4int Z, G4int A) +{ + // define a material from an isotope + // + G4int ncomponents; + G4double abundance, massfraction; + + G4Isotope* isotope = new G4Isotope(symbol, Z, A); + + G4Element* element = new G4Element(name, symbol, ncomponents=1); + element->AddIsotope(isotope, abundance= 100.*perCent); + + G4Material* material = new G4Material(name, density, ncomponents=1); + material->AddElement(element, massfraction=100.*perCent); + + return material; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::ComputeParameters() +{ + // Compute total thickness of absorbers + fAbsorSizeX = 0.; + for (G4int iAbs=1; iAbs<=fNbOfAbsor; iAbs++) { + fAbsorSizeX += fAbsorThickness[iAbs]; + } + fWorldSizeX = 1.2*fAbsorSizeX; + fWorldSizeYZ = 1.2*fAbsorSizeYZ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() +{ + // complete the Calor parameters definition + ComputeParameters(); + + // Cleanup old geometry + G4GeometryManager::GetInstance()->OpenGeometry(); + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); + + // + // World + // + G4Box* solidWorld = + new G4Box("World", //name + fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //size + + G4LogicalVolume* logicWorld = + new G4LogicalVolume(solidWorld, //solid + fDefaultMaterial, //material + "World"); //name + + fPhysiWorld = + new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + logicWorld, //logical volume + "World", //name + 0, //mother volume + false, //no boolean operation + 0); //copy number + + // + // Absorbers + // + fXfront[0] = -0.5*fAbsorSizeX; + // + for (G4int k=1; k<=fNbOfAbsor; k++) { + G4Material* material = fAbsorMaterial[k]; + G4String matname = material->GetName(); + + G4Box* solidAbsor = + new G4Box(matname,fAbsorThickness[k]/2,fAbsorSizeYZ/2,fAbsorSizeYZ/2); + + G4LogicalVolume* logicAbsor = + new G4LogicalVolume(solidAbsor, // solid + material, // material + matname); // name + + fXfront[k] = fXfront[k-1] + fAbsorThickness[k-1]; + G4double xcenter = fXfront[k]+0.5*fAbsorThickness[k]; + G4ThreeVector position = G4ThreeVector(xcenter,0.,0.); + + new G4PVPlacement(0, //no rotation + position, //position + logicAbsor, //logical volume + matname, //name + logicWorld, //mother + false, //no boulean operat + k); //copy number + } + + + PrintParameters(); + + //always return the physical World + // + return fPhysiWorld; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::PrintParameters() +{ + G4cout << "\n-------------------------------------------------------------" + << "\n ---> The Absorber is " << fNbOfAbsor << " 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"); + } + G4cout << "\n-------------------------------------------------------------\n" + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetNbOfAbsor(G4int ival) +{ + // set the number of Absorbers + // + if (ival < 1 || ival > (MaxAbsor-1)) + { G4cout << "\n ---> warning from SetfNbOfAbsor: " + << ival << " must be at least 1 and and most " << MaxAbsor-1 + << ". Command refused" << G4endl; + return; + } + fNbOfAbsor = ival; + G4RunManager::GetRunManager()->ReinitializeGeometry(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorMaterial(G4int iabs,const G4String& material) +{ + // search the material by its name + // + if (iabs > fNbOfAbsor || iabs <= 0) + { G4cout << "\n --->warning from SetfAbsorMaterial: absor number " + << iabs << " out of range. Command refused" << G4endl; + return; + } + + G4Material* pttoMaterial = + G4NistManager::Instance()->FindOrBuildMaterial(material); + if (pttoMaterial) { + fAbsorMaterial[iabs] = pttoMaterial; + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorThickness(G4int iabs,G4double val) +{ + // change Absorber thickness + // + if (iabs > fNbOfAbsor || iabs <= 0) + { G4cout << "\n --->warning from SetfAbsorThickness: absor number " + << iabs << " out of range. Command refused" << G4endl; + return; + } + if (val <= DBL_MIN) + { G4cout << "\n --->warning from SetfAbsorThickness: thickness " + << val << " out of range. Command refused" << G4endl; + return; + } + fAbsorThickness[iabs] = val; + G4RunManager::GetRunManager()->ReinitializeGeometry(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorSizeYZ(G4double val) +{ + // change the transverse size + // + if (val <= DBL_MIN) + { G4cout << "\n --->warning from SetfAbsorSizeYZ: thickness " + << val << " out of range. Command refused" << G4endl; + return; + } + fAbsorSizeYZ = val; + G4RunManager::GetRunManager()->ReinitializeGeometry(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::ConstructSDandField() +{ + if ( fFieldMessenger.Get() == 0 ) { + // Create global magnetic field messenger. + // Uniform magnetic field is then created automatically if + // the field value is not zero. + G4ThreeVector fieldValue = G4ThreeVector(); + G4GlobalMagFieldMessenger* msg = + new G4GlobalMagFieldMessenger(fieldValue); + //msg->SetVerboseLevel(1); + G4AutoDelete::Register(msg); + fFieldMessenger.Put( msg ); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/hadronic/Hadr07/src/DetectorMessenger.cc b/examples/extended/hadronic/Hadr07/src/DetectorMessenger.cc new file mode 100644 index 0000000000..057f2fcb3b --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/DetectorMessenger.cc @@ -0,0 +1,184 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/DetectorMessenger.cc +/// \brief Implementation of the DetectorMessenger class +// +// $Id: DetectorMessenger.cc 77288 2013-11-22 10:52:58Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorMessenger.hh" + +#include + +#include "DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:G4UImessenger(),fDetector(Det), + fTestemDir(0), + fDetDir(0), + fNbAbsorCmd(0), + fAbsorCmd(0), + fSizeYZCmd(0), + fIsotopeCmd(0) +{ + fTestemDir = new G4UIdirectory("/testhadr/"); + fTestemDir->SetGuidance(" detector control."); + + fDetDir = new G4UIdirectory("/testhadr/det/"); + fDetDir->SetGuidance("detector construction commands"); + + fNbAbsorCmd = new G4UIcmdWithAnInteger("/testhadr/det/setNbOfAbsor",this); + fNbAbsorCmd->SetGuidance("Set number of Absorbers."); + fNbAbsorCmd->SetParameterName("NbAbsor",false); + fNbAbsorCmd->SetRange("NbAbsor>0"); + fNbAbsorCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fNbAbsorCmd->SetToBeBroadcasted(false); + + fAbsorCmd = new G4UIcommand("/testhadr/det/setAbsor",this); + fAbsorCmd->SetGuidance("Set the absor nb, the material, the thickness."); + fAbsorCmd->SetGuidance(" absor number : from 1 to NbOfAbsor"); + fAbsorCmd->SetGuidance(" material name"); + fAbsorCmd->SetGuidance(" thickness (with unit) : t>0."); + // + G4UIparameter* AbsNbPrm = new G4UIparameter("AbsorNb",'i',false); + AbsNbPrm->SetGuidance("absor number : from 1 to NbOfAbsor"); + AbsNbPrm->SetParameterRange("AbsorNb>0"); + fAbsorCmd->SetParameter(AbsNbPrm); + // + G4UIparameter* MatPrm = new G4UIparameter("material",'s',false); + MatPrm->SetGuidance("material name"); + fAbsorCmd->SetParameter(MatPrm); + // + G4UIparameter* ThickPrm = new G4UIparameter("thickness",'d',false); + ThickPrm->SetGuidance("thickness of absorber"); + ThickPrm->SetParameterRange("thickness>0."); + fAbsorCmd->SetParameter(ThickPrm); + // + G4UIparameter* unitPrm = new G4UIparameter("unit",'s',false); + unitPrm->SetGuidance("unit of thickness"); + G4String unitList = G4UIcommand::UnitsList(G4UIcommand::CategoryOf("mm")); + unitPrm->SetParameterCandidates(unitList); + fAbsorCmd->SetParameter(unitPrm); + // + fAbsorCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fAbsorCmd->SetToBeBroadcasted(false); + + fSizeYZCmd = new G4UIcmdWithADoubleAndUnit("/testhadr/det/setSizeYZ",this); + fSizeYZCmd->SetGuidance("Set sizeYZ of the absorber"); + fSizeYZCmd->SetParameterName("SizeYZ",false); + fSizeYZCmd->SetRange("SizeYZ>0."); + fSizeYZCmd->SetUnitCategory("Length"); + fSizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fSizeYZCmd->SetToBeBroadcasted(false); + + fIsotopeCmd = new G4UIcommand("/testhadr/det/setIsotopeMat",this); + fIsotopeCmd->SetGuidance("Build and select a material with single isotope"); + fIsotopeCmd->SetGuidance(" symbol of isotope, Z, A, density of material"); + // + G4UIparameter* symbPrm = new G4UIparameter("isotope",'s',false); + symbPrm->SetGuidance("isotope symbol"); + fIsotopeCmd->SetParameter(symbPrm); + // + G4UIparameter* ZPrm = new G4UIparameter("Z",'i',false); + ZPrm->SetGuidance("Z"); + ZPrm->SetParameterRange("Z>0"); + fIsotopeCmd->SetParameter(ZPrm); + // + G4UIparameter* APrm = new G4UIparameter("A",'i',false); + APrm->SetGuidance("A"); + APrm->SetParameterRange("A>0"); + fIsotopeCmd->SetParameter(APrm); + // + G4UIparameter* densityPrm = new G4UIparameter("density",'d',false); + densityPrm->SetGuidance("density of material"); + densityPrm->SetParameterRange("density>0."); + fIsotopeCmd->SetParameter(densityPrm); + // + G4UIparameter* unitPrm1 = new G4UIparameter("unit",'s',false); + unitPrm1->SetGuidance("unit of density"); + G4String unitList1 = G4UIcommand::UnitsList(G4UIcommand::CategoryOf("g/cm3")); + unitPrm1->SetParameterCandidates(unitList1); + fIsotopeCmd->SetParameter(unitPrm1); + // + fIsotopeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::~DetectorMessenger() +{ + delete fNbAbsorCmd; + delete fAbsorCmd; + delete fSizeYZCmd; + delete fIsotopeCmd; + delete fDetDir; + delete fTestemDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == fNbAbsorCmd ) + { fDetector->SetNbOfAbsor(fNbAbsorCmd->GetNewIntValue(newValue));} + + if (command == fAbsorCmd) + { + G4int num; G4double tick; + G4String unt, mat; + std::istringstream is(newValue); + is >> num >> mat >> tick >> unt; + G4String material=mat; + tick *= G4UIcommand::ValueOf(unt); + fDetector->SetAbsorMaterial (num,material); + fDetector->SetAbsorThickness(num,tick); + } + + if( command == fSizeYZCmd ) + { fDetector->SetAbsorSizeYZ(fSizeYZCmd->GetNewDoubleValue(newValue));} + + if (command == fIsotopeCmd) + { + G4int Z; G4int A; G4double dens; + G4String name, unt; + std::istringstream is(newValue); + is >> name >> Z >> A >> dens >> unt; + dens *= G4UIcommand::ValueOf(unt); + fDetector->MaterialWithSingleIsotope (name,name,dens,Z,A); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/EmStandardPhysics.cc b/examples/extended/hadronic/Hadr07/src/EmStandardPhysics.cc new file mode 100644 index 0000000000..0561c5fc18 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/EmStandardPhysics.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. * +// ******************************************************************** +// +// $Id: EmStandardPhysics.cc 71570 2013-06-18 10:14:44Z gcosmo $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EmStandardPhysics.hh" + +#include "G4BuilderType.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4PhysicsListHelper.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" +#include "G4RayleighScattering.hh" +#include "G4KleinNishinaModel.hh" + +#include "G4eMultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuMultipleScattering.hh" +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hMultipleScattering.hh" +#include "G4hIonisation.hh" +#include "G4hBremsstrahlung.hh" +#include "G4hPairProduction.hh" + +#include "G4ionIonisation.hh" +#include "G4IonParametrisedLossModel.hh" +#include "G4NuclearStopping.hh" + +#include "G4SystemOfUnits.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EmStandardPhysics::EmStandardPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ + SetPhysicsType(bElectromagnetic); + + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetStepFunction(1., 1*mm); //default= 0.1, 100*um + param->SetStepFunctionMuHad(1., 1*mm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EmStandardPhysics::~EmStandardPhysics() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EmStandardPhysics::ConstructProcess() +{ + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + + // Add standard EM Processes + // + aParticleIterator->reset(); + while( (*aParticleIterator)() ){ + G4ParticleDefinition* particle = aParticleIterator->value(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + + ph->RegisterProcess(new G4PhotoElectricEffect, particle); + ph->RegisterProcess(new G4ComptonScattering, particle); + ph->RegisterProcess(new G4GammaConversion, particle); + + } else if (particleName == "e-") { + + ph->RegisterProcess(new G4eMultipleScattering(), particle); + ph->RegisterProcess(new G4eIonisation, particle); + ph->RegisterProcess(new G4eBremsstrahlung(), particle); + + } else if (particleName == "e+") { + + ph->RegisterProcess(new G4eMultipleScattering(), particle); + ph->RegisterProcess(new G4eIonisation, particle); + ph->RegisterProcess(new G4eBremsstrahlung(), particle); + ph->RegisterProcess(new G4eplusAnnihilation(), particle); + + } else if (particleName == "mu+" || + particleName == "mu-" ) { + + ph->RegisterProcess(new G4MuMultipleScattering(), particle); + ph->RegisterProcess(new G4MuIonisation, particle); + ph->RegisterProcess(new G4MuBremsstrahlung(), particle); + ph->RegisterProcess(new G4MuPairProduction(), particle); + + } else if( particleName == "proton" || + particleName == "pi-" || + particleName == "pi+" ) { + + ph->RegisterProcess(new G4hMultipleScattering(), particle); + ph->RegisterProcess(new G4hIonisation, particle); + + } else if( particleName == "alpha" || + particleName == "He3" ) { + + ph->RegisterProcess(new G4hMultipleScattering(), particle); + ph->RegisterProcess(new G4ionIonisation, particle); + ph->RegisterProcess(new G4NuclearStopping(), particle); + + } else if( particleName == "GenericIon" ) { + + ph->RegisterProcess(new G4hMultipleScattering(), particle); + G4ionIonisation* ionIoni = new G4ionIonisation(); + ionIoni->SetEmModel(new G4IonParametrisedLossModel()); + ph->RegisterProcess(ionIoni, particle); + ph->RegisterProcess(new G4NuclearStopping(), particle); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + + //all others charged particles except geantino + ph->RegisterProcess(new G4hMultipleScattering(), particle); + ph->RegisterProcess(new G4hIonisation(), particle); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/hadronic/Hadr07/src/EventAction.cc b/examples/extended/hadronic/Hadr07/src/EventAction.cc new file mode 100644 index 0000000000..0b562b4582 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/EventAction.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/EventAction.cc +/// \brief Implementation of the EventAction class +// +// $Id: EventAction.cc 95740 2016-02-23 09:34:37Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventAction.hh" + +#include "Run.hh" +#include "HistoManager.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4RunManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::EventAction(DetectorConstruction* det) +:G4UserEventAction(), fDetector(det) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::~EventAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::BeginOfEventAction(const G4Event*) +{ + //energy deposited per event + for (G4int k=0; k( + G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + + //plot energy deposited per event + // + G4double TotalEdep(0.); + for (G4int k=1; k<=fDetector->GetNbOfAbsor(); k++) { + if (fEdepAbsor[k] > 0.) { + run->AddEdep(k,fEdepAbsor[k]); + G4AnalysisManager::Instance()->FillH1(k, fEdepAbsor[k]); + TotalEdep += fEdepAbsor[k]; + } + } + + if (TotalEdep > 0.) { + run->AddTotEdep(TotalEdep); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/hadronic/Hadr07/src/GammaPhysics.cc b/examples/extended/hadronic/Hadr07/src/GammaPhysics.cc new file mode 100644 index 0000000000..504ca744f4 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/GammaPhysics.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 hadronic/Hadr03/src/GammaPhysics.cc +/// \brief Implementation of the GammaPhysics class +// +// $Id: GammaPhysics.cc 66587 2012-12-21 11:06:44Z ihrivnac $ +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "GammaPhysics.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +// Processes + +#include "G4PhotoNuclearProcess.hh" +#include "G4CascadeInterface.hh" + +#include "G4SystemOfUnits.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +GammaPhysics::GammaPhysics(const G4String& name) +: G4VPhysicsConstructor(name) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +GammaPhysics::~GammaPhysics() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void GammaPhysics::ConstructProcess() +{ + G4ProcessManager* pManager = G4Gamma::Gamma()->GetProcessManager(); + // + G4PhotoNuclearProcess* process = new G4PhotoNuclearProcess(); + // + G4CascadeInterface* bertini = new G4CascadeInterface(); + bertini->SetMaxEnergy(10*GeV); + process->RegisterMe(bertini); + // + pManager->AddDiscreteProcess(process); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/HadronElasticPhysicsHP.cc b/examples/extended/hadronic/Hadr07/src/HadronElasticPhysicsHP.cc new file mode 100644 index 0000000000..f3ea2b4fa7 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/HadronElasticPhysicsHP.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 hadronic/Hadr06/include/HadronElasticPhysicsHP.hh +/// \brief Definition of the HadronElasticPhysicsHP class +// +// $Id:HadronElasticPhysicsHP.cc 71037 2013-06-10 09:20:54Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// +// HP models for neutron < 20 MeV + +#include "HadronElasticPhysicsHP.hh" + +#include "NeutronHPMessenger.hh" + +#include "G4HadronicProcess.hh" +#include "G4ParticleHPElastic.hh" +#include "G4ParticleHPElasticData.hh" +#include "G4ParticleHPThermalScattering.hh" +#include "G4ParticleHPThermalScatteringData.hh" + +#include "G4SystemOfUnits.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HadronElasticPhysicsHP::HadronElasticPhysicsHP(G4int ver) +: G4HadronElasticPhysics(ver), + fThermal(false), fNeutronMessenger(0) +{ + fNeutronMessenger = new NeutronHPMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HadronElasticPhysicsHP::~HadronElasticPhysicsHP() +{ + delete fNeutronMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HadronElasticPhysicsHP::ConstructProcess() +{ + G4HadronElasticPhysics::ConstructProcess(); + GetNeutronModel()->SetMinEnergy(19.5*MeV); + + G4HadronicProcess* process = GetNeutronProcess(); + G4ParticleHPElastic* model1 = new G4ParticleHPElastic(); + process->RegisterMe(model1); + process->AddDataSet(new G4ParticleHPElasticData()); + + if (fThermal) { + G4ParticleHPThermalScattering* model2 = new G4ParticleHPThermalScattering(); + process->RegisterMe(model2); + process->AddDataSet(new G4ParticleHPThermalScatteringData()); + model1->SetMinEnergy(4*eV); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/HistoManager.cc b/examples/extended/hadronic/Hadr07/src/HistoManager.cc new file mode 100644 index 0000000000..f2da5b1cc2 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/HistoManager.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 electromagnetic/TestEm5/src/HistoManager.cc +/// \brief Implementation of the HistoManager class +// +// +// $Id: HistoManager.cc 95740 2016-02-23 09:34:37Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "HistoManager.hh" +#include "DetectorConstruction.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoManager::HistoManager() + : fFileName("Hadr07") +{ + Book(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoManager::~HistoManager() +{ + delete G4AnalysisManager::Instance(); +} + +//....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(); + analysisManager->SetFileName(fFileName); + analysisManager->SetVerboseLevel(1); + analysisManager->SetActivation(true); + + // Define histograms start values + const G4int kMaxHisto = 11; + const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", + "10","11","12","13","14","15","16","17","18","19", + "20","21","22"}; + + const G4String title[] = + { "dummy", //0 + "total Energy deposited in absorber 1", //1 + "total Energy deposited in absorber 2", //2 + "total Energy deposited in absorber 3", //3 + "total Energy deposited in absorber 4", //4 + "total Energy deposited in absorber 5", //5 + "total Energy deposited in absorber 6", //6 + "total Energy deposited in absorber 7", //7 + "total Energy deposited in absorber 8", //8 + "total Energy deposited in absorber 9", //9 + "Edep (MeV/mm) along absorbers" //10 + }; + + // Default values (to be reset via /analysis/h1/set command) + G4int nbins = 100; + G4double vmin = 0.; + G4double vmax = 100.; + + // Create all histograms as inactivated + // as we have not yet set nbins, vmin, vmax + for (G4int k=0; kCreateH1(id[k], title[k], nbins, vmin, vmax); + analysisManager->SetH1Activation(ih, false); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/NeutronHPMessenger.cc b/examples/extended/hadronic/Hadr07/src/NeutronHPMessenger.cc new file mode 100644 index 0000000000..079753c4a7 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/NeutronHPMessenger.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm12/src/NeutronHPMessenger.cc +/// \brief Implementation of the NeutronHPMessenger class +// +// $Id: NeutronHPMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "NeutronHPMessenger.hh" + +#include "HadronElasticPhysicsHP.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcmdWithABool.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +NeutronHPMessenger::NeutronHPMessenger(HadronElasticPhysicsHP* phys) +:G4UImessenger(),fNeutronPhysics(phys), + fPhysDir(0), fThermalCmd(0) +{ + fPhysDir = new G4UIdirectory("/testhadr/phys/"); + fPhysDir->SetGuidance("physics list commands"); + + fThermalCmd = new G4UIcmdWithABool("/testhadr/phys/thermalScattering",this); + fThermalCmd->SetGuidance("set thermal scattering model"); + fThermalCmd->SetParameterName("thermal",false); + fThermalCmd->AvailableForStates(G4State_PreInit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +NeutronHPMessenger::~NeutronHPMessenger() +{ + delete fThermalCmd; + delete fPhysDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void NeutronHPMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if (command == fThermalCmd) + {fNeutronPhysics->SetThermalPhysics(fThermalCmd->GetNewBoolValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandardMP.cc b/examples/extended/hadronic/Hadr07/src/PhysListEmStandard.cc old mode 100755 new mode 100644 similarity index 92% rename from examples/extended/electromagnetic/TestEm11/src/PhysListEmStandardMP.cc rename to examples/extended/hadronic/Hadr07/src/PhysListEmStandard.cc index c4cec7e9f0..6386f16f07 --- a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandardMP.cc +++ b/examples/extended/hadronic/Hadr07/src/PhysListEmStandard.cc @@ -23,12 +23,12 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: PhysListEmStandardMP.cc 85273 2014-10-27 09:10:59Z gcosmo $ +// $Id: PhysListEmStandard.cc 94269 2015-11-10 07:55:24Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "PhysListEmStandardMP.hh" +#include "PhysListEmStandard.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" #include "G4PhysicsListHelper.hh" @@ -69,12 +69,10 @@ #include "G4SystemOfUnits.hh" -#include "G4DiscreteScatteringProcess.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysListEmStandardMP::PhysListEmStandardMP(G4int iNumAngles) - : G4VPhysicsConstructor("G4EmStandardMP"), fNumAngles(iNumAngles) +PhysListEmStandard::PhysListEmStandard(const G4String& name) + : G4VPhysicsConstructor(name) { G4EmParameters* param = G4EmParameters::Instance(); param->SetDefaults(); @@ -85,12 +83,12 @@ PhysListEmStandardMP::PhysListEmStandardMP(G4int iNumAngles) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysListEmStandardMP::~PhysListEmStandardMP() +PhysListEmStandard::~PhysListEmStandard() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PhysListEmStandardMP::ConstructProcess() +void PhysListEmStandard::ConstructProcess() { G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); @@ -111,11 +109,8 @@ void PhysListEmStandardMP::ConstructProcess() ////ph->RegisterProcess(new G4RayleighScattering, particle); } else if (particleName == "e-") { - - ph->RegisterProcess(new G4DiscreteScatteringProcess(fNumAngles), - particle); - - // ph->RegisterProcess(new G4eMultipleScattering(), particle); + + ph->RegisterProcess(new G4eMultipleScattering(), particle); // G4eIonisation* eIoni = new G4eIonisation(); eIoni->SetStepFunction(0.1, 100*um); @@ -183,7 +178,7 @@ void PhysListEmStandardMP::ConstructProcess() ph->RegisterProcess(new G4hIonisation(), particle); } } - + // Deexcitation // G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); diff --git a/examples/extended/hadronic/Hadr07/src/PhysicsList.cc b/examples/extended/hadronic/Hadr07/src/PhysicsList.cc new file mode 100644 index 0000000000..c1472302c9 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/PhysicsList.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. * +// ******************************************************************** +// +/// \file hadronic/Hadr03/src/PhysicsList.cc +/// \brief Implementation of the PhysicsList class +// +// $Id: PhysicsList.cc 70268 2013-05-28 14:17:50Z maire $ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" + +#include "G4SystemOfUnits.hh" +#include "G4UnitsTable.hh" + +#include "HadronElasticPhysicsHP.hh" +#include "G4HadronPhysicsFTFP_BERT_HP.hh" +#include "G4HadronPhysicsQGSP_BIC_HP.hh" +#include "G4HadronInelasticQBBC.hh" +#include "G4HadronPhysicsINCLXX.hh" +#include "G4IonPhysics.hh" +#include "G4IonINCLXXPhysics.hh" +#include "G4StoppingPhysics.hh" +#include "GammaPhysics.hh" + +#include "EmStandardPhysics.hh" +#include "G4EmStandardPhysics_option3.hh" +#include "G4DecayPhysics.hh" +#include "G4RadioactiveDecayPhysics.hh" +#include "StepMaxBuilder.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList() +:G4VModularPhysicsList() +{ + G4int verb = 1; + SetVerboseLevel(verb); + + //add new units + // + new G4UnitDefinition( "millielectronVolt", "meV", "Energy", 1.e-3*eV); + new G4UnitDefinition( "mm2/g", "mm2/g", "Surface/Mass", mm2/g); + new G4UnitDefinition( "um2/mg", "um2/mg","Surface/Mass", um*um/mg); + + // Hadron Elastic scattering + RegisterPhysics( new HadronElasticPhysicsHP(verb) ); + + // Hadron Inelastic Physics + RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); + ////RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); + ////RegisterPhysics( new G4HadronInelasticQBBC(verb)); + ////RegisterPhysics( new G4HadronPhysicsINCLXX(verb)); + + // Ion Physics + RegisterPhysics( new G4IonPhysics(verb)); + ////RegisterPhysics( new G4IonINCLXXPhysics(verb)); + + // stopping Particles + ////RegisterPhysics( new G4StoppingPhysics(verb)); + + // Gamma-Nuclear Physics + RegisterPhysics( new GammaPhysics("gamma")); + + // EM physics + RegisterPhysics(new EmStandardPhysics()); + ////egisterPhysics(new G4EmStandardPhysics_option3()); + + // Decay + RegisterPhysics(new G4DecayPhysics()); + + // Radioactive decay + RegisterPhysics(new G4RadioactiveDecayPhysics()); + + // Step Max + RegisterPhysics(new StepMaxBuilder()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCuts() +{ + SetCutValue(0*mm, "proton"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/PrimaryGeneratorAction.cc b/examples/extended/hadronic/Hadr07/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..833d3d6257 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/PrimaryGeneratorAction.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 electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc +/// \brief Implementation of the PrimaryGeneratorAction class +// +// $Id: PrimaryGeneratorAction.cc 95740 2016-02-23 09:34:37Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorAction.hh" + +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4SystemOfUnits.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) +:G4VUserPrimaryGeneratorAction(), + fDetector(det),fRndmBeam(0.), fGunMessenger(0) +{ + fParticleGun = new G4ParticleGun(1); + SetDefaultKinematic(); + + //create a messenger for this class + fGunMessenger = new PrimaryGeneratorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::~PrimaryGeneratorAction() +{ + delete fParticleGun; + delete fGunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::SetDefaultKinematic() +{ + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("e-"); + fParticleGun->SetParticleDefinition(particle); + fParticleGun->SetParticleEnergy(500*keV); + fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + G4double position = -0.45*(fDetector->GetWorldSizeX()); + fParticleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + + //randomize the beam, if requested. + // + if (fRndmBeam > 0.) + { + G4ThreeVector oldPosition = fParticleGun->GetParticlePosition(); + if (fRndmBeam > fDetector->GetAbsorSizeYZ()) + fRndmBeam = fDetector->GetAbsorSizeYZ(); + G4double rbeam = 0.5*fRndmBeam; + G4double x0 = oldPosition.x(); + G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; + G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; + fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + fParticleGun->GeneratePrimaryVertex(anEvent); + fParticleGun->SetParticlePosition(oldPosition); + } + + else fParticleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/hadronic/Hadr07/src/PrimaryGeneratorMessenger.cc b/examples/extended/hadronic/Hadr07/src/PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..7dcdbd522f --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/PrimaryGeneratorMessenger.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc +/// \brief Implementation of the PrimaryGeneratorMessenger class +// +// $Id: PrimaryGeneratorMessenger.cc 96158 2016-03-21 11:08:26Z maire $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorMessenger.hh" + +#include "PrimaryGeneratorAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:G4UImessenger(),fAction(Gun),fGunDir(0),fDefaultCmd(0),fRndmCmd(0) +{ + fGunDir = new G4UIdirectory("/testhadr/gun/"); + fGunDir->SetGuidance("gun control"); + + fDefaultCmd = new G4UIcmdWithoutParameter("/testhadr/gun/setDefault",this); + fDefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator"); + fDefaultCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + fRndmCmd = new G4UIcmdWithADoubleAndUnit("/testhadr/gun/rndm",this); + fRndmCmd->SetGuidance("random lateral extension on the beam"); + fRndmCmd->SetParameterName("rBeam",false); + fRndmCmd->SetRange("rBeam>=0."); + fRndmCmd->SetUnitCategory("Length"); + fRndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() +{ + delete fDefaultCmd; + delete fRndmCmd; + delete fGunDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if (command == fDefaultCmd) + {fAction->SetDefaultKinematic();} + + if (command == fRndmCmd) + {fAction->SetRndmBeam(fRndmCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/hadronic/Hadr07/src/Run.cc b/examples/extended/hadronic/Hadr07/src/Run.cc new file mode 100644 index 0000000000..7ec43feacc --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/Run.cc @@ -0,0 +1,354 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/Run.cc +/// \brief Implementation of the Run class +// +// $Id: Run.cc 71376 2013-06-14 07:44:50Z maire $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Run.hh" +#include "DetectorConstruction.hh" + +#include "EventAction.hh" +#include "HistoManager.hh" +#include "PrimaryGeneratorAction.hh" + +#include "G4Material.hh" +#include "G4Event.hh" +#include "G4SystemOfUnits.hh" +#include "G4UnitsTable.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Run::Run(DetectorConstruction* detector) +: G4Run(), + fDetector(detector), + fParticle(0), fEkin(0.) +{ + for (G4int i=0; i<3; ++i) { fStatus[i] = 0; fTotEdep[i] = 0.; } + fTotEdep[1] = joule; + for (G4int i=0; iGetProcessName(); + std::map::iterator it = fProcCounter.find(procName); + if ( it == fProcCounter.end()) { + fProcCounter[procName] = 1; + } + else { + fProcCounter[procName]++; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::ParticleCount(G4int k, G4String name, G4double Ekin) +{ + std::map::iterator it = fParticleDataMap[k].find(name); + if ( it == fParticleDataMap[k].end()) { + (fParticleDataMap[k])[name] = ParticleData(1, Ekin, Ekin, Ekin); + } + else { + ParticleData& data = it->second; + data.fCount++; + data.fEmean += Ekin; + //update min max + G4double emin = data.fEmin; + if (Ekin < emin) data.fEmin = Ekin; + G4double emax = data.fEmax; + if (Ekin > emax) data.fEmax = Ekin; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::AddEdep (G4int i, G4double e) +{ + if (e > 0.) { + fEdeposit[i] += e; + if (e < fEmin[i]) fEmin[i] = e; + if (e > fEmax[i]) fEmax[i] = e; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::AddTotEdep (G4double e) +{ + if (e > 0.) { + fTotEdep[0] += e; + if (e < fTotEdep[1]) fTotEdep[1] = e; + if (e > fTotEdep[2]) fTotEdep[2] = e; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::AddTrackStatus (G4int i) +{ + fStatus[i]++ ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::Merge(const G4Run* run) +{ + const Run* localRun = static_cast(run); + + // pass information about primary particle + fParticle = localRun->fParticle; + fEkin = localRun->fEkin; + + // Edep in absorbers + // + G4int nbOfAbsor = fDetector->GetNbOfAbsor(); + for (G4int i=1; i<=nbOfAbsor; ++i) { + fEdeposit[i] += localRun->fEdeposit[i]; + // min, max + G4double min,max; + min = localRun->fEmin[i]; max = localRun->fEmax[i]; + if (fEmin[i] > min) fEmin[i] = min; + if (fEmax[i] < max) fEmax[i] = max; + } + + for (G4int i=0; i<3; ++i) fStatus[i] += localRun->fStatus[i]; + + // total Edep + fTotEdep[0] += localRun->fTotEdep[0]; + G4double min,max; + min = localRun->fTotEdep[1]; max = localRun->fTotEdep[2]; + if (fTotEdep[1] > min) fTotEdep[1] = min; + if (fTotEdep[2] < max) fTotEdep[2] = max; + + //map: processes count + std::map::const_iterator itp; + for ( itp = localRun->fProcCounter.begin(); + itp != localRun->fProcCounter.end(); ++itp ) { + + G4String procName = itp->first; + G4int localCount = itp->second; + if ( fProcCounter.find(procName) == fProcCounter.end()) { + fProcCounter[procName] = localCount; + } + else { + fProcCounter[procName] += localCount; + } + } + + //map: created particles in absorbers count + for (G4int k=0; k<=nbOfAbsor; ++k) { + std::map::const_iterator itc; + for (itc = localRun->fParticleDataMap[k].begin(); + itc != localRun->fParticleDataMap[k].end(); ++itc) { + + G4String name = itc->first; + const ParticleData& localData = itc->second; + if ( fParticleDataMap[k].find(name) == fParticleDataMap[k].end()) { + (fParticleDataMap[k])[name] + = ParticleData(localData.fCount, + localData.fEmean, + localData.fEmin, + localData.fEmax); + } + else { + ParticleData& data = (fParticleDataMap[k])[name]; + data.fCount += localData.fCount; + data.fEmean += localData.fEmean; + G4double emin = localData.fEmin; + if (emin < data.fEmin) data.fEmin = emin; + G4double emax = localData.fEmax; + if (emax > data.fEmax) data.fEmax = emax; + } + } + } + + G4Run::Merge(run); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::EndOfRun() +{ + G4int prec = 5, wid = prec + 2; + G4int dfprec = G4cout.precision(prec); + + //run conditions + // + G4String partName = fParticle->GetParticleName(); + G4int nbOfAbsor = fDetector->GetNbOfAbsor(); + + G4cout << "\n ======================== run summary =====================\n"; + G4cout + << "\n The run is " << numberOfEvent << " "<< partName << " of " + << G4BestUnit(fEkin,"Energy") + << " through " << nbOfAbsor << " absorbers: \n"; + for (G4int i=1; i<= nbOfAbsor; i++) { + G4Material* material = fDetector->GetAbsorMaterial(i); + G4double thickness = fDetector->GetAbsorThickness(i); + G4double density = material->GetDensity(); + G4cout << std::setw(5) << i + << std::setw(10) << G4BestUnit(thickness,"Length") << " of " + << material->GetName() << " (density: " + << G4BestUnit(density,"Volumic Mass") << ")" << G4endl; + } + + if (numberOfEvent == 0) { G4cout.precision(dfprec); return;} + + G4cout.precision(3); + + //frequency of processes + // + G4cout << "\n Process calls frequency :" << G4endl; + G4int index = 0; + std::map::iterator it; + for (it = fProcCounter.begin(); it != fProcCounter.end(); it++) { + G4String procName = it->first; + G4int count = it->second; + G4String space = " "; if (++index%3 == 0) space = "\n"; + G4cout << " " << std::setw(20) << procName << "="<< std::setw(7) << count + << space; + } + G4cout << G4endl; + + //Edep in absorbers + // + for (G4int i=1; i<= nbOfAbsor; i++) { + fEdeposit[i] /= numberOfEvent; + + G4cout + << "\n Edep in absorber " << i << " = " + << G4BestUnit(fEdeposit[i],"Energy") + << "\t(" << G4BestUnit(fEmin[i], "Energy") + << "-->" << G4BestUnit(fEmax[i], "Energy") + << ")"; + } + G4cout << G4endl; + + if (nbOfAbsor > 1) { + fTotEdep[0] /= numberOfEvent; + G4cout + << "\n Edep in all absorbers = " << G4BestUnit(fTotEdep[0],"Energy") + << "\t(" << G4BestUnit(fTotEdep[1], "Energy") + << "-->" << G4BestUnit(fTotEdep[2], "Energy") + << ")" << G4endl; + } + + //particles count in absorbers + // + for (G4int k=1; k<= nbOfAbsor; k++) { + G4cout << "\n List of generated particles in absorber " << k << ":" << G4endl; + + std::map::iterator itc; + for (itc = fParticleDataMap[k].begin(); + itc != fParticleDataMap[k].end(); itc++) { + G4String name = itc->first; + ParticleData data = itc->second; + G4int count = data.fCount; + G4double eMean = data.fEmean/count; + G4double eMin = data.fEmin; + G4double eMax = data.fEmax; + + G4cout << " " << std::setw(13) << name << ": " << std::setw(7) << count + << " Emean = " << std::setw(wid) << G4BestUnit(eMean, "Energy") + << "\t( " << G4BestUnit(eMin, "Energy") + << " --> " << G4BestUnit(eMax, "Energy") + << ")" << G4endl; + } + } + //particles emerging from absorbers + // + G4cout << "\n List of particles emerging from absorbers :" << G4endl; + + std::map::iterator itc; + for (itc = fParticleDataMap[0].begin(); + itc != fParticleDataMap[0].end(); itc++) { + G4String name = itc->first; + ParticleData data = itc->second; + G4int count = data.fCount; + G4double eMean = data.fEmean/count; + G4double eMin = data.fEmin; + G4double eMax = data.fEmax; + + G4cout << " " << std::setw(13) << name << ": " << std::setw(7) << count + << " Emean = " << std::setw(wid) << G4BestUnit(eMean, "Energy") + << "\t( " << G4BestUnit(eMin, "Energy") + << " --> " << G4BestUnit(eMax, "Energy") + << ")" << G4endl; + } + + //transmission coefficients + // + G4double dNofEvents = double(numberOfEvent); + G4double absorbed = 100.*fStatus[0]/dNofEvents; + G4double transmit = 100.*fStatus[1]/dNofEvents; + G4double reflected = 100.*fStatus[2]/dNofEvents; + + G4cout.precision(2); + G4cout + << "\n Nb of events with primary absorbed = " << absorbed << " %," + << " transmit = " << transmit << " %," + << " reflected = " << reflected << " %" << G4endl; + + // normalize histograms of longitudinal energy profile + // + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + G4int ih = 10; + G4double binWidth = analysisManager->GetH1Width(ih) + *analysisManager->GetH1Unit(ih); + G4double fac = (1./(numberOfEvent*binWidth))*(mm/MeV); + analysisManager->ScaleH1(ih,fac); + + //remove all contents in fProcCounter, fCount + fProcCounter.clear(); + for (G4int k=0; k<= nbOfAbsor; k++) fParticleDataMap[k].clear(); + + // reset default formats + G4cout.precision(dfprec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/RunAction.cc b/examples/extended/hadronic/Hadr07/src/RunAction.cc new file mode 100644 index 0000000000..b22f8a4b4f --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/RunAction.cc @@ -0,0 +1,109 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/RunAction.cc +/// \brief Implementation of the RunAction class +// +// $Id: RunAction.cc 93562 2015-10-26 14:44:24Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "RunAction.hh" +#include "PrimaryGeneratorAction.hh" +#include "HistoManager.hh" +#include "Run.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" + +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* kin) +:G4UserRunAction(), fDetector(det), fPrimary(kin), fRun(0), fHistoManager(0) +{ + // Book predefined histograms + fHistoManager = new HistoManager(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::~RunAction() +{ + delete fHistoManager; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4Run* RunAction::GenerateRun() +{ + fRun = new Run(fDetector); + return fRun; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run*) +{ + // save Rndm status + ////G4RunManager::GetRunManager()->SetRandomNumberStore(true); + if (isMaster) G4Random::showEngineStatus(); + + // keep run condition + if ( fPrimary ) { + G4ParticleDefinition* particle + = fPrimary->GetParticleGun()->GetParticleDefinition(); + G4double energy = fPrimary->GetParticleGun()->GetParticleEnergy(); + fRun->SetPrimary(particle, energy); + } + + //histograms + // + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + if ( analysisManager->IsActive() ) { + analysisManager->OpenFile(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::EndOfRunAction(const G4Run*) +{ + if (isMaster) fRun->EndOfRun(); + + // save histograms + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + if ( analysisManager->IsActive() ) { + analysisManager->Write(); + analysisManager->CloseFile(); + } + + // show Rndm status + if (isMaster) G4Random::showEngineStatus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/runAndEvent/RE01/src/RE01UnknownDecayPhysics.cc b/examples/extended/hadronic/Hadr07/src/StepMaxBuilder.cc similarity index 72% rename from examples/extended/runAndEvent/RE01/src/RE01UnknownDecayPhysics.cc rename to examples/extended/hadronic/Hadr07/src/StepMaxBuilder.cc index 915afd3f1f..7526cba285 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01UnknownDecayPhysics.cc +++ b/examples/extended/hadronic/Hadr07/src/StepMaxBuilder.cc @@ -23,42 +23,47 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file runAndEvent/RE01/src/RE01UnknownDecayPhysics.cc -/// \brief Implementation of the RE01UnknownDecayPhysics class +/// \file hadronic/Hadr03/src/StepMaxBuilder.cc +/// \brief Implementation of the StepMaxBuilder class // -// $Id: RE01UnknownDecayPhysics.cc 68761 2013-04-05 12:35:00Z gcosmo $ +// $Id: StepMaxBuilder.cc 66587 2012-12-21 11:06:44Z ihrivnac $ // -#include "RE01UnknownDecayPhysics.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RE01UnknownDecayPhysics::RE01UnknownDecayPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RE01UnknownDecayPhysics::~RE01UnknownDecayPhysics() -{;} +#include "StepMaxBuilder.hh" +#include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4UnknownParticle.hh" + +// Processes + +#include "StepMaxProcess.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void RE01UnknownDecayPhysics::ConstructParticle() -{ - G4UnknownParticle::UnknownParticleDefinition(); -} + +StepMaxBuilder::StepMaxBuilder(const G4String& name) +: G4VPhysicsConstructor(name) +{ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void RE01UnknownDecayPhysics::ConstructProcess() + +StepMaxBuilder::~StepMaxBuilder() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMaxBuilder::ConstructProcess() { - // Add Decay Process + // Step limitation seen as a process + StepMaxProcess* process = new StepMaxProcess(); + aParticleIterator->reset(); - while( (*aParticleIterator)() ){ + while ((*aParticleIterator)()){ G4ParticleDefinition* particle = aParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); - if(particle->GetParticleName()=="unknown") { - pmanager ->AddProcess(&fUnknownDecay); - pmanager ->SetProcessOrdering(&fUnknownDecay, idxPostStep); - } + if (process->IsApplicable(*particle)) pmanager->AddDiscreteProcess(process); } } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/StepMaxMessenger.cc b/examples/extended/hadronic/Hadr07/src/StepMaxMessenger.cc new file mode 100644 index 0000000000..3e15e083e5 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/StepMaxMessenger.cc @@ -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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm11/src/StepMaxMessenger.cc +/// \brief Implementation of the StepMaxMessenger class +// +// $Id: StepMaxMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMaxMessenger.hh" + +#include "StepMaxProcess.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxMessenger::StepMaxMessenger(StepMaxProcess* stepM) +:G4UImessenger(),fStepMax(stepM), + fStepMax1Cmd(0), + fStepMax2Cmd(0) +{ + fStepMax1Cmd = new G4UIcmdWithADoubleAndUnit("/testhadr/stepMax",this); + fStepMax1Cmd->SetGuidance("Set max allowed step length"); + fStepMax1Cmd->SetParameterName("mxStep1",false); + fStepMax1Cmd->SetRange("mxStep1>0."); + fStepMax1Cmd->SetUnitCategory("Length"); + + fStepMax2Cmd = new G4UIcmdWithABool("/testhadr/applyAutomaticStepMax",this); + fStepMax2Cmd->SetGuidance("apply StepMax computed from histograms"); + fStepMax2Cmd->SetParameterName("mxStep2",true); + fStepMax2Cmd->SetDefaultValue(true); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxMessenger::~StepMaxMessenger() +{ + delete fStepMax1Cmd; + delete fStepMax2Cmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if (command == fStepMax1Cmd) + { fStepMax->SetMaxStep1(fStepMax1Cmd->GetNewDoubleValue(newValue));} + + if (command == fStepMax2Cmd) + { fStepMax->ApplyMaxStep2(fStepMax2Cmd->GetNewBoolValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/StepMaxProcess.cc b/examples/extended/hadronic/Hadr07/src/StepMaxProcess.cc new file mode 100644 index 0000000000..38ecb40fe2 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/StepMaxProcess.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 electromagnetic/TestEm11/src/StepMaxProcess.cc +/// \brief Implementation of the StepMaxProcess class +// +// $Id: StepMaxProcess.cc 67268 2013-02-13 11:38:40Z ihrivnac $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMaxProcess.hh" +#include "StepMaxMessenger.hh" +#include "HistoManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxProcess::StepMaxProcess(const G4String& processName, G4ProcessType type) + : G4VDiscreteProcess(processName,type),fMess(0) +{ + fMaxStep1 = fMaxStep2 = DBL_MAX; + fApplyMaxStep2 = true; + fMess = new StepMaxMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxProcess::~StepMaxProcess() { delete fMess; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool StepMaxProcess::IsApplicable(const G4ParticleDefinition& particle) +{ + return (particle.GetPDGCharge() != 0. && !particle.IsShortLived()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMaxProcess::SetMaxStep1(G4double step) {fMaxStep1 = step;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMaxProcess::ApplyMaxStep2(G4bool value) {fApplyMaxStep2 = value;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double StepMaxProcess::PostStepGetPhysicalInteractionLength( const G4Track&, + G4double, + G4ForceCondition* condition) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + if (fApplyMaxStep2) { + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + G4int ih = 10; + if (analysisManager->GetH1Activation(ih)) + fMaxStep2 = analysisManager->GetH1Width(ih)*analysisManager->GetH1Unit(ih); + return fMaxStep2; + } + else return fMaxStep1; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* StepMaxProcess::PostStepDoIt(const G4Track& aTrack, + const G4Step&) +{ + // do nothing + aParticleChange.Initialize(aTrack); + return &aParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/SteppingAction.cc b/examples/extended/hadronic/Hadr07/src/SteppingAction.cc new file mode 100644 index 0000000000..a3d7cffc9b --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/SteppingAction.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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm11/src/SteppingAction.cc +/// \brief Implementation of the SteppingAction class +// +// $Id: SteppingAction.cc 95740 2016-02-23 09:34:37Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingAction.hh" +#include "DetectorConstruction.hh" +#include "EventAction.hh" +#include "Run.hh" +#include "HistoManager.hh" + +#include "G4SteppingManager.hh" +#include "G4RunManager.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* event) +:G4UserSteppingAction(),fDetector(det), fEventAction(event) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingAction::UserSteppingAction(const G4Step* step) +{ + // count processes + // + const G4StepPoint* endPoint = step->GetPostStepPoint(); + const G4VProcess* process = endPoint->GetProcessDefinedStep(); + Run* run = static_cast( + G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + run->CountProcesses(process); + + G4double edep = step->GetTotalEnergyDeposit(); + if (edep <= 0.) return; + + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + + //longitudinal profile of deposited energy + //randomize point of energy deposition + // + G4StepPoint* prePoint = step->GetPreStepPoint(); + G4StepPoint* postPoint = step->GetPostStepPoint(); + G4ThreeVector P1 = prePoint ->GetPosition(); + G4ThreeVector P2 = postPoint->GetPosition(); + G4ThreeVector point = P1 + G4UniformRand()*(P2 - P1); + G4double x = point.x(); + G4double xshifted = x + 0.5*fDetector->GetAbsorSizeX(); + analysisManager->FillH1(10, xshifted, edep); + + //total energy deposit in absorbers + // + G4int iabs = prePoint->GetTouchableHandle()->GetCopyNumber(0); + if (iabs > 0) fEventAction->AddEdep(iabs, edep); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/hadronic/Hadr07/src/SteppingVerbose.cc b/examples/extended/hadronic/Hadr07/src/SteppingVerbose.cc new file mode 100644 index 0000000000..082e1f6316 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/SteppingVerbose.cc @@ -0,0 +1,161 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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 radioactivedecay/rdecay01/src/SteppingVerbose.cc +/// \brief Implementation of the SteppingVerbose class +// +// +// $Id: SteppingVerbose.cc 71390 2013-06-14 13:21:31Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4ParticleTypes.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::SteppingVerbose() + : G4SteppingVerbose() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::~SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingVerbose::TrackingStarted() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + //Step zero + // + if( verboseLevel > 0 ){ + G4cout << std::setw( 5) << "Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << std::setw(10) << fTrack->GetVolume()->GetName() + << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << std::setw( 5) << "#Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + } + + G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << std::setw(10) << fTrack->GetVolume()->GetName(); + + const G4VProcess* process + = fStep->GetPostStepPoint()->GetProcessDefinedStep(); + G4String procName = " UserLimit"; + if (process) procName = process->GetProcessName(); + if (fStepStatus == fWorldBoundary) procName = "OutOfWorld"; + G4cout << " " << std::setw(10) << procName; + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << "\n :----- List of secondaries ----------------" + << G4endl; + G4cout.precision(4); + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " " + << std::setw(13) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() + << ": energy =" + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << " time =" + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(),"Time"); + G4cout << G4endl; + } + + G4cout << " :------------------------------------------\n" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr07/src/TrackingAction.cc b/examples/extended/hadronic/Hadr07/src/TrackingAction.cc new file mode 100644 index 0000000000..84ede6d854 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/src/TrackingAction.cc @@ -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. * +// ******************************************************************** +// +/// \file electromagnetic/TestEm11/src/TrackingAction.cc +/// \brief Implementation of the TrackingAction class +// +// $Id: TrackingAction.cc 74997 2013-10-25 10:52:13Z gcosmo $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" + +#include "Run.hh" +#include "HistoManager.hh" + +#include "G4Track.hh" +#include "G4StepStatus.hh" +#include "G4RunManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction() +:G4UserTrackingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction(const G4Track* track) +{ + //count secondary particles + if (track->GetTrackID() == 1) return; + G4int iabs = track->GetTouchableHandle()->GetCopyNumber(); + G4String name = track->GetDefinition()->GetParticleName(); + G4double energy = track->GetKineticEnergy(); + Run* run = static_cast( + G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + if(iabs > 0) run->ParticleCount(iabs,name,energy); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction(const G4Track* track) +{ + // get Run + Run* run + = static_cast( + G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + + // where are we ? + G4StepStatus status = track->GetStep()->GetPostStepPoint()->GetStepStatus(); + + //status of primary particle : absorbed, transmited, reflected ? + if (track->GetTrackID() == 1) { + G4int flag = 0; + if (status == fWorldBoundary) { + if (track->GetMomentumDirection().x() > 0.) flag = 1; + else flag = 2; + } + run->AddTrackStatus(flag); + } + + // keep only emerging particles + if (status != fWorldBoundary) return; + + // count particles + const G4ParticleDefinition* particle = track->GetParticleDefinition(); + G4String name = particle->GetParticleName(); + G4double energy = track->GetKineticEnergy(); + run->ParticleCount(0,name,energy); + + ////G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/hadronic/Hadr07/vis.mac b/examples/extended/hadronic/Hadr07/vis.mac new file mode 100644 index 0000000000..2c6325599e --- /dev/null +++ b/examples/extended/hadronic/Hadr07/vis.mac @@ -0,0 +1,83 @@ +# +# Macro file for the initialization phase of "TestEm6.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/run/verbose 2 +# +/run/initialize +# +# 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 1.4 +# +# 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 false +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 1 +# (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- red +/vis/modeling/trajectories/drawByParticleID-0/set gamma green +/vis/modeling/trajectories/drawByParticleID-0/set neutron yellow +/vis/modeling/trajectories/drawByParticleID-0/set alpha blue +/vis/modeling/trajectories/drawByParticleID-0/set GenericIon 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/hadronic/Hadr07/water.mac b/examples/extended/hadronic/Hadr07/water.mac new file mode 100644 index 0000000000..103516e145 --- /dev/null +++ b/examples/extended/hadronic/Hadr07/water.mac @@ -0,0 +1,24 @@ +# $Id: water.mac 82462 2014-06-23 10:45:28Z gcosmo $ +# +# +/control/verbose 2 +/run/verbose 2 +# +/testhadr/det/setNbOfAbsor 1 +/testhadr/det/setAbsor 1 Water 3 cm +/testhadr/det/setSizeYZ 3 cm +# +/run/initialize +# +/run/setCut 100 um +# +/testhadr/gun/setDefault +/gun/particle e- +/gun/energy 4 MeV +# +/analysis/setFileName water +/analysis/h1/set 10 120 0. 24. mm #edep profile +# +/run/printProgress 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/hadronic/History b/examples/extended/hadronic/History index cb79e8f613..04cb05ebbf 100644 --- a/examples/extended/hadronic/History +++ b/examples/extended/hadronic/History @@ -14,6 +14,9 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +03-04-16 M. Maire (exHadronic-V10-02-00) +- Added newly created example Hadr07 27-06-14 I. Hrivnacova (exHadronic-V10-00-00) - Updated documentation: diff --git a/examples/extended/hadronic/README b/examples/extended/hadronic/README index ab267439b9..f7444620a7 100644 --- a/examples/extended/hadronic/README +++ b/examples/extended/hadronic/README @@ -47,7 +47,7 @@ Hadr05 ------ This example demonstrates the usage of G4GenericPhysicsList to build -the concrente physics list at the run time. +the concrete physics list at the run time. Hadr06 ------ @@ -55,6 +55,13 @@ Hadr06 This example demonstrates survey of energy deposition and particle's flux from a hadronic cascade. +Hadr07 +------ + +Survey energy deposition and particle's flux from an hadronic cascade. +Use PhysicsConstructor objects rather than predefined G4 PhysicsLists. +Show how to plot a depth dose profile in a rectangular box. + FissionFragment --------------- This example demonstrates the Fission Fragment model as used within the diff --git a/examples/extended/medical/DICOM/run.out b/examples/extended/medical/DICOM/run.out index 2c4f6bd756..5d9c9d4526 100644 --- a/examples/extended/medical/DICOM/run.out +++ b/examples/extended/medical/DICOM/run.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -128,16 +128,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -330,56 +332,47 @@ EV: 99 Run terminated. Run Summary Number of events processed : 100 - User=0.02s Real=0.03s Sys=0s + User=0.02s Real=0.02s Sys=0s --------------------End of Global Run----------------------- The run was 200 events LOCAL TOTAL DOSE : 0 Gy - TOTAL DOSE : 1.11642e-06 Gy + TOTAL DOSE : 9.49138e-07 Gy ###### EndOfRunAction ###### ============================================================= Number of event processed : 200 ============================================================= opened file dicom.out for dose output Voxel | DoseDeposit | - 8002 8.48299e-11 Gy - 8003 2.23508e-08 Gy - 8127 1.00446e-08 Gy - 8130 1.10366e-07 Gy - 8131 1.00286e-07 Gy - 8254 8.46714e-11 Gy - 8255 1.83198e-08 Gy - 8256 6.01932e-09 Gy - 8257 4.61277e-09 Gy - 8258 8.0558e-08 Gy - 8259 7.9113e-08 Gy - 24002 1.45868e-09 Gy - 24130 2.58639e-09 Gy - 24258 1.57292e-09 Gy - 24508 1.93428e-08 Gy - 24509 1.06297e-10 Gy - 24514 7.50494e-08 Gy - 24515 9.30203e-08 Gy - 24637 2.48446e-08 Gy - 24638 2.11817e-08 Gy - 24642 5.36576e-08 Gy - 24643 7.58565e-08 Gy - 40642 2.9554e-10 Gy - 40770 4.64633e-09 Gy - 40898 7.78397e-08 Gy - 40899 8.49878e-08 Gy - 41026 6.61027e-08 Gy - 41027 7.62014e-08 Gy - 41154 1.38578e-09 Gy - 41282 2.41042e-09 Gy - 41410 2.03699e-09 Gy + 6704 3.1263e-09 Gy + 6832 1.90159e-08 Gy + 7880 4.581e-10 Gy + 8130 5.72291e-08 Gy + 8131 5.56063e-08 Gy + 8258 9.45108e-08 Gy + 8259 6.95383e-08 Gy + 22959 4.9022e-09 Gy + 23087 2.79564e-09 Gy + 23088 1.91126e-10 Gy + 24514 5.95054e-08 Gy + 24515 6.14964e-08 Gy + 24642 8.52529e-08 Gy + 24643 8.6592e-08 Gy + 39343 3.26774e-09 Gy + 40898 6.03096e-08 Gy + 40899 9.5625e-08 Gy + 41026 8.29401e-08 Gy + 41027 1.04105e-07 Gy + 41028 2.21913e-09 Gy + 41029 1.29736e-10 Gy + 41401 3.21576e-10 Gy ============================================= closed file dicom.out for dose output Finished : End of Run Action 0 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.036 MB +Dynamic pools deleted: 11 / Total memory freed: 0.032 MB ============================================================ RunManagerKernel is deleted. Good bye :) Graphics systems deleted. diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.out b/examples/extended/medical/GammaTherapy/GammaTherapy.out index 8c97104483..e18eaf76b9 100644 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.out +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -154,6 +154,8 @@ Phantom R= 200 dz= 150 Absorber R= 200 dz= 2.5 posZ= -77.5 ### PhysicsList Construte Processes +### WARNING: G4EmProcessOptions class is obsolete and will be removed in the next public release + Please, try to use G4EmParameters class and/or UI interface to EM parameters # /run/setCut 0.1 mm # @@ -215,21 +217,21 @@ Index : 5 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=6.83s Real=6.84s Sys=0s + User=5.89s Real=5.92s Sys=0s RunAction: End of run actions are started Histo: End of run actions are started ======================================================== Number of events 10000 -Average number of e- 33.29 -Average number of gamma 19.55 -Average number of e+ 0.767 -Average number of steps in the phantom 11.71 -Average number of e- steps in the target 18 -Average number of g produced in the target 18.71 -Average number of e- produced in the target 20.91 -Average number of g produced in the phantom 0.4939 -Average number of e- produced in the phantom 6.009 -Total fGamma fluence in front of the phantom 8.114 MeV +Average number of e- 33.21 +Average number of gamma 19.56 +Average number of e+ 0.7602 +Average number of steps in the phantom 11.68 +Average number of e- steps in the target 18.07 +Average number of g produced in the target 18.73 +Average number of e- produced in the target 20.94 +Average number of g produced in the phantom 0.4883 +Average number of e- produced in the phantom 5.98 +Total fGamma fluence in front of the phantom 8.093 MeV ======================================================== @@ -237,6 +239,6 @@ Total fGamma fluence in front of the phantom 8.114 MeV 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.069 MB +Dynamic pools deleted: 10 / Total memory freed: 0.076 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/medical/dna/chem1/.settings/.svn/entries b/examples/extended/medical/dna/chem1/.settings/.svn/entries index 22bc840c11..9ab64fe531 100644 --- a/examples/extended/medical/dna/chem1/.settings/.svn/entries +++ b/examples/extended/medical/dna/chem1/.settings/.svn/entries @@ -1,8 +1,8 @@ 10 dir -94738 -svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-02_branch/examples/extended/medical/dna/chem1/.settings +97991 +svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-03-beta-01_branch/examples/extended/medical/dna/chem1/.settings svn+ssh://svn.cern.ch/reps/geant4 diff --git a/examples/extended/medical/dna/chem1/chem1.out b/examples/extended/medical/dna/chem1/chem1.out index c8c98d815e..5e432371d0 100644 --- a/examples/extended/medical/dna/chem1/chem1.out +++ b/examples/extended/medical/dna/chem1/chem1.out @@ -4,14 +4,12 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -*** WARNING : the G4DNAChampionElasticModel class is not activated below 7.4 eV ! -*** NOTE: if you are using G4EmDNAChemistry, do not worry, this is the expected behavior Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -39,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -61,7 +61,8 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -90,6 +91,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -115,10 +120,6 @@ e-_G4DNAAttachment: for e- SubType= 55 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV -e-_G4DNAElectronSolvatation: for e- SubType= 58 BuildTable= 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNASancheSolvatationModel : Emin= 0 eV Emax= 8.22 eV - msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== diff --git a/examples/extended/medical/dna/chem2/chem2.out b/examples/extended/medical/dna/chem2/chem2.out index 47515b399f..65985fe61f 100644 --- a/examples/extended/medical/dna/chem2/chem2.out +++ b/examples/extended/medical/dna/chem2/chem2.out @@ -4,14 +4,12 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -*** WARNING : the G4DNAChampionElasticModel class is not activated below 7.4 eV ! -*** NOTE: if you are using G4EmDNAChemistry, do not worry, this is the expected behavior Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -39,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -61,7 +61,8 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -90,6 +91,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -115,10 +120,6 @@ e-_G4DNAAttachment: for e- SubType= 55 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV -e-_G4DNAElectronSolvatation: for e- SubType= 58 BuildTable= 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNASancheSolvatationModel : Emin= 0 eV Emax= 8.22 eV - msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -203,259 +204,235 @@ H^0 + H^0 -> H_2^0 1.2e+10 0.226528 ---------------------------------------------------------------------------------------------------------------------------- DNAMolecularStepByStepModel will be used *** G4Scheduler starts processing -At time : 1 ps Reaction : e_aq^1 (-193) + OH^0 (-990) -> OH^-1 (-1200) -At time : 1 ps Reaction : OH^-1 (-608) + H3O^1 (-903) -> No product -At time : 1 ps Reaction : OH^0 (-754) + OH^0 (-870) -> H2O2^0 (-1201) -At time : 1 ps Reaction : e_aq^1 (-550) + OH^0 (-632) -> OH^-1 (-1202) -At time : 1 ps Reaction : OH^-1 (-1202) + H3O^1 (-631) -> No product -At time : 1 ps Reaction : OH^-1 (-1200) + H3O^1 (-989) -> No product -At time : 1.4 ps Reaction : OH^0 (-1112) + OH^0 (-1113) -> H2O2^0 (-1203) -At time : 1.5 ps Reaction : OH^0 (-1067) + OH^0 (-1068) -> H2O2^0 (-1204) -At time : 1.7 ps Reaction : OH^0 (-1078) + OH^0 (-850) -> H2O2^0 (-1205) -At time : 1.7 ps Reaction : OH^0 (-860) + OH^0 (-946) -> H2O2^0 (-1206) -At time : 8.57333 ps Reaction : OH^0 (-1057) + H^0 (-1058) -> No product -At time : 9.40271 ps Reaction : OH^0 (-1187) + OH^0 (-884) -> H2O2^0 (-1207) -At time : 10.8782 ps Reaction : OH^0 (-1084) + e_aq^1 (-446) -> OH^-1 (-1208) -At time : 22.0782 ps Reaction : e_aq^1 (-168) + H3O^1 (-1181) -> H^0 (-1209) -At time : 33.0782 ps Reaction : e_aq^1 (-365) + e_aq^1 (-363) -> OH^-1 (-1210) + OH^-1 (-1211) + H_2^0 (-1212) -At time : 34.0782 ps Reaction : OH^0 (-1168) + OH^0 (-744) -> H2O2^0 (-1213) -At time : 38.0782 ps Reaction : e_aq^1 (-332) + H3O^1 (-799) -> H^0 (-1214) -At time : 40.0782 ps Reaction : H3O^1 (-849) + OH^-1 (-1208) -> No product -At time : 40.0782 ps Reaction : OH^0 (-1087) + e_aq^1 (-417) -> OH^-1 (-1215) -At time : 45.0782 ps Reaction : H3O^1 (-671) + OH^-1 (-1215) -> No product -At time : 47.0782 ps Reaction : OH^0 (-1124) + OH^0 (-758) -> H2O2^0 (-1216) -At time : 51.0782 ps Reaction : OH^0 (-1164) + OH^0 (-1177) -> H2O2^0 (-1217) -At time : 53.0782 ps Reaction : OH^0 (-1096) + H^0 (-1197) -> No product -At time : 58.0782 ps Reaction : e_aq^1 (-394) + H3O^1 (-679) -> H^0 (-1218) -At time : 69.131 ps Reaction : OH^0 (-892) + OH^0 (-1013) -> H2O2^0 (-1219) -At time : 72.131 ps Reaction : H^0 (-1150) + OH^0 (-1149) -> No product -At time : 83.131 ps Reaction : OH^0 (-664) + OH^0 (-674) -> H2O2^0 (-1220) -At time : 87.131 ps Reaction : OH^0 (-1153) + H^0 (-1154) -> No product -At time : 97.131 ps Reaction : e_aq^1 (-216) + H3O^1 (-773) -> H^0 (-1221) -At time : 116.131 ps Reaction : OH^0 (-648) + OH^0 (-836) -> H2O2^0 (-1222) -At time : 116.131 ps Reaction : e_aq^1 (-412) + OH^0 (-668) -> OH^-1 (-1223) -At time : 131.131 ps Reaction : e_aq^1 (-312) + OH^0 (-796) -> OH^-1 (-1224) -At time : 140.131 ps Reaction : OH^-1 (-1224) + H3O^1 (-703) -> No product -At time : 143.131 ps Reaction : OH^0 (-1189) + OH^0 (-1007) -> H2O2^0 (-1225) -At time : 146.131 ps Reaction : OH^-1 (-1223) + H3O^1 (-667) -> No product -At time : 146.131 ps Reaction : OH^0 (-1050) + OH^0 (-1051) -> H2O2^0 (-1226) -At time : 164.131 ps Reaction : OH^0 (-1076) + OH^0 (-1077) -> H2O2^0 (-1227) -At time : 182.131 ps Reaction : e_aq^1 (-434) + OH^0 (-852) -> OH^-1 (-1228) -At time : 182.131 ps Reaction : OH^-1 (-1228) + H3O^1 (-851) -> No product -At time : 203.131 ps Reaction : OH^0 (-1190) + OH^0 (-834) -> H2O2^0 (-1229) -At time : 209.131 ps Reaction : e_aq^1 (-272) + OH^0 (-716) -> OH^-1 (-1230) -At time : 209.131 ps Reaction : e_aq^1 (-390) + OH^0 (-670) -> OH^-1 (-1231) -At time : 218.131 ps Reaction : OH^0 (-1060) + OH^0 (-1061) -> H2O2^0 (-1232) -At time : 221.131 ps Reaction : OH^0 (-702) + H^0 (-1214) -> No product -At time : 227.131 ps Reaction : e_aq^1 (-364) + H3O^1 (-967) -> H^0 (-1233) -At time : 236.131 ps Reaction : H^0 (-1125) + OH^0 (-766) -> No product -At time : 239.131 ps Reaction : OH^0 (-1166) + OH^0 (-746) -> H2O2^0 (-1234) -At time : 239.131 ps Reaction : e_aq^1 (-210) + OH^0 (-734) -> OH^-1 (-1235) -At time : 245.131 ps Reaction : e_aq^1 (-420) + OH^0 (-676) -> OH^-1 (-1236) -At time : 260.131 ps Reaction : H3O^1 (-663) + OH^-1 (-1236) -> No product -At time : 260.131 ps Reaction : e_aq^1 (-163) + OH^0 (-752) -> OH^-1 (-1237) -At time : 275.131 ps Reaction : OH^0 (-736) + OH^0 (-950) -> H2O2^0 (-1238) -At time : 293.131 ps Reaction : e_aq^1 (-250) + H3O^1 (-1130) -> H^0 (-1239) -At time : 293.131 ps Reaction : H^0 (-1088) + OH^0 (-672) -> No product -At time : 314.131 ps Reaction : OH^0 (-1110) + OH^0 (-1131) -> H2O2^0 (-1240) -At time : 323.131 ps Reaction : OH^0 (-622) + OH^0 (-828) -> H2O2^0 (-1241) -At time : 326.131 ps Reaction : e_aq^1 (-586) + OH^0 (-826) -> OH^-1 (-1242) -At time : 332.131 ps Reaction : OH^-1 (-1230) + H3O^1 (-991) -> No product -At time : 344.131 ps Reaction : e_aq^1 (-143) + e_aq^1 (-191) -> OH^-1 (-1243) + OH^-1 (-1244) + H_2^0 (-1245) -At time : 353.131 ps Reaction : OH^0 (-1089) + e_aq^1 (-410) -> OH^-1 (-1246) -At time : 389.131 ps Reaction : e_aq^1 (-489) + OH^0 (-816) -> OH^-1 (-1247) -At time : 416.131 ps Reaction : e_aq^1 (-529) + e_aq^1 (-549) -> OH^-1 (-1248) + OH^-1 (-1249) + H_2^0 (-1250) -At time : 422.131 ps Reaction : H^0 (-1221) + OH^0 (-774) -> No product -At time : 422.131 ps Reaction : e_aq^1 (-454) + H3O^1 (-909) -> H^0 (-1251) -At time : 428.131 ps Reaction : e_aq^1 (-280) + OH^0 (-720) -> OH^-1 (-1252) -At time : 449.131 ps Reaction : OH^0 (-724) + OH^0 (-864) -> H2O2^0 (-1253) -At time : 503.131 ps Reaction : OH^-1 (-1237) + H3O^1 (-1038) -> No product -At time : 503.131 ps Reaction : OH^0 (-762) + OH^0 (-988) -> H2O2^0 (-1254) -At time : 506.131 ps Reaction : OH^0 (-1071) + OH^0 (-940) -> H2O2^0 (-1255) -At time : 509.131 ps Reaction : OH^0 (-970) + OH^0 (-1002) -> H2O2^0 (-1256) -At time : 515.131 ps Reaction : e_aq^1 (-169) + OH^0 (-1182) -> OH^-1 (-1257) -At time : 524.131 ps Reaction : OH^0 (-656) + OH^0 (-972) -> H2O2^0 (-1258) -At time : 548.131 ps Reaction : OH^-1 (-602) + H3O^1 (-637) -> No product -At time : 563.326 ps Reaction : e_aq^1 (-244) + H3O^1 (-723) -> H^0 (-1259) -At time : 569.326 ps Reaction : OH^0 (-968) + H^0 (-1053) -> No product -At time : 569.326 ps Reaction : e_aq^1 (-186) + H3O^1 (-951) -> H^0 (-1260) -At time : 620.326 ps Reaction : OH^0 (-690) + OH^0 (-694) -> H2O2^0 (-1261) -At time : 629.326 ps Reaction : e_aq^1 (-165) + H2O2^0 (-1234) -> OH^-1 (-1262) + OH^0 (-1263) -At time : 632.326 ps Reaction : H3O^1 (-1122) + OH^-1 (-1257) -> No product -At time : 635.326 ps Reaction : OH^0 (-1123) + H^0 (-1156) -> No product -At time : 662.326 ps Reaction : H^0 (-1167) + e_aq^1 (-155) -> OH^-1 (-1264) + H_2^0 (-1265) -At time : 665.326 ps Reaction : e_aq^1 (-245) + H3O^1 (-725) -> H^0 (-1266) -At time : 698.326 ps Reaction : e_aq^1 (-568) + OH^0 (-984) -> OH^-1 (-1267) -At time : 704.326 ps Reaction : H^0 (-1079) + OH^0 (-910) -> No product -At time : 728.326 ps Reaction : H3O^1 (-1183) + OH^-1 (-1244) -> No product -At time : 740.326 ps Reaction : OH^0 (-1146) + OH^0 (-1145) -> H2O2^0 (-1268) -At time : 764.326 ps Reaction : e_aq^1 (-443) + OH^0 (-660) -> OH^-1 (-1269) -At time : 770.326 ps Reaction : e_aq^1 (-262) + H3O^1 (-891) -> H^0 (-1270) -At time : 776.326 ps Reaction : OH^0 (-1158) + e_aq^1 (-195) -> OH^-1 (-1271) -At time : 806.326 ps Reaction : H3O^1 (-1120) + OH^-1 (-1262) -> No product -At time : 815.326 ps Reaction : OH^-1 (-1231) + H3O^1 (-1044) -> No product -At time : 830.326 ps Reaction : OH^0 (-1141) + OH^0 (-636) -> H2O2^0 (-1272) -At time : 875.753 ps Reaction : OH^0 (-966) + OH^0 (-1010) -> H2O2^0 (-1273) -At time : 929.753 ps Reaction : OH^0 (-1142) + OH^0 (-912) -> H2O2^0 (-1274) -At time : 935.753 ps Reaction : H3O^1 (-621) + OH^-1 (-1242) -> No product -At time : 1.04175 ns Reaction : OH^0 (-764) + OH^0 (-770) -> H2O2^0 (-1275) -At time : 1.10175 ns Reaction : OH^0 (-1159) + OH^0 (-742) -> H2O2^0 (-1276) -At time : 1.16175 ns Reaction : e_aq^1 (-414) + H2O2^0 (-1220) -> OH^-1 (-1277) + OH^0 (-1278) -At time : 1.17175 ns Reaction : e_aq^1 (-588) + e_aq^1 (-587) -> OH^-1 (-1279) + OH^-1 (-1280) + H_2^0 (-1281) -At time : 1.19175 ns Reaction : OH^0 (-728) + OH^0 (-778) -> H2O2^0 (-1282) -At time : 1.21175 ns Reaction : e_aq^1 (-162) + OH^0 (-948) -> OH^-1 (-1283) -At time : 1.25175 ns Reaction : H3O^1 (-645) + OH^-1 (-1248) -> No product -At time : 1.26175 ns Reaction : H^0 (-1106) + OH^0 (-862) -> No product -At time : 1.26175 ns Reaction : e_aq^1 (-448) + H3O^1 (-911) -> H^0 (-1284) -At time : 1.29175 ns Reaction : OH^0 (-1114) + OH^0 (-1116) -> H2O2^0 (-1285) -At time : 1.34175 ns Reaction : OH^-1 (-1249) + H3O^1 (-1008) -> No product -At time : 1.44175 ns Reaction : e_aq^1 (-333) + OH^0 (-1098) -> OH^-1 (-1286) -At time : 1.53175 ns Reaction : e_aq^1 (-393) + H3O^1 (-669) -> H^0 (-1287) -At time : 1.64175 ns Reaction : OH^0 (-790) + OH^0 (-794) -> H2O2^0 (-1288) -At time : 1.95175 ns Reaction : e_aq^1 (-322) + OH^0 (-1046) -> OH^-1 (-1289) -At time : 1.95175 ns Reaction : e_aq^1 (-304) + H3O^1 (-791) -> H^0 (-1290) -At time : 2.01175 ns Reaction : H2O2^0 (-1207) + e_aq^1 (-224) -> OH^-1 (-1291) + OH^0 (-1292) -At time : 2.04175 ns Reaction : e_aq^1 (-133) + H2O2^0 (-1254) -> OH^-1 (-1293) + OH^0 (-1294) -At time : 2.04175 ns Reaction : OH^-1 (-1293) + H3O^1 (-753) -> No product -At time : 2.07175 ns Reaction : e_aq^1 (-273) + OH^0 (-856) -> OH^-1 (-1295) -At time : 2.14175 ns Reaction : e_aq^1 (-142) + OH^0 (-868) -> OH^-1 (-1296) -At time : 2.25175 ns Reaction : e_aq^1 (-275) + H3O^1 (-945) -> H^0 (-1297) -At time : 2.26175 ns Reaction : OH^-1 (-1264) + H3O^1 (-763) -> No product -At time : 2.36175 ns Reaction : e_aq^1 (-370) + H3O^1 (-689) -> H^0 (-1298) -At time : 2.66559 ns Reaction : H^0 (-1199) + OH^0 (-1062) -> No product -At time : 2.66559 ns Reaction : e_aq^1 (-383) + OH^0 (-1174) -> OH^-1 (-1299) -At time : 2.76559 ns Reaction : e_aq^1 (-252) + H3O^1 (-1109) -> H^0 (-1300) -At time : 2.95637 ns Reaction : e_aq^1 (-153) + e_aq^1 (-152) -> OH^-1 (-1301) + OH^-1 (-1302) + H_2^0 (-1303) -At time : 3.23637 ns Reaction : OH^0 (-904) + OH^0 (-906) -> H2O2^0 (-1304) -At time : 3.24637 ns Reaction : e_aq^1 (-302) + H3O^1 (-789) -> H^0 (-1305) -At time : 3.26637 ns Reaction : H3O^1 (-747) + OH^-1 (-1296) -> No product -At time : 3.30637 ns Reaction : e_aq^1 (-201) + OH^0 (-1263) -> OH^-1 (-1306) -At time : 3.44637 ns Reaction : H3O^1 (-1136) + OH^-1 (-605) -> No product -At time : 3.50637 ns Reaction : OH^-1 (-1252) + H3O^1 (-955) -> No product -At time : 3.55637 ns Reaction : H3O^1 (-757) + OH^-1 (-1306) -> No product -At time : 3.63637 ns Reaction : OH^-1 (-1279) + H3O^1 (-827) -> No product -At time : 4.1973 ns Reaction : e_aq^1 (-121) + OH^0 (-872) -> OH^-1 (-1307) -At time : 4.1973 ns Reaction : OH^-1 (-1307) + H3O^1 (-871) -> No product -At time : 4.35731 ns Reaction : e_aq^1 (-477) + OH^0 (-842) -> OH^-1 (-1308) -At time : 4.38731 ns Reaction : e_aq^1 (-334) + OH^0 (-798) -> OH^-1 (-1309) -At time : 4.57731 ns Reaction : e_aq^1 (-556) + H3O^1 (-1020) -> H^0 (-1310) -At time : 4.66731 ns Reaction : e_aq^1 (-591) + OH^0 (-936) -> OH^-1 (-1311) -At time : 4.69731 ns Reaction : e_aq^1 (-558) + e_aq^1 (-542) -> OH^-1 (-1312) + OH^-1 (-1313) + H_2^0 (-1314) -At time : 4.9014 ns Reaction : e_aq^1 (-138) + OH^0 (-1127) -> OH^-1 (-1315) -At time : 4.9314 ns Reaction : H3O^1 (-1162) + OH^-1 (-1315) -> No product -At time : 4.9414 ns Reaction : H3O^1 (-617) + OH^-1 (-1311) -> No product -At time : 4.9914 ns Reaction : OH^0 (-848) + OH^0 (-986) -> H2O2^0 (-1316) -At time : 5.0014 ns Reaction : OH^0 (-1278) + OH^0 (-684) -> H2O2^0 (-1317) -At time : 5.0514 ns Reaction : e_aq^1 (-555) + H^0 (-1310) -> OH^-1 (-1318) + H_2^0 (-1319) -At time : 5.1014 ns Reaction : e_aq^1 (-217) + OH^0 (-756) -> OH^-1 (-1320) -At time : 5.1214 ns Reaction : H3O^1 (-1176) + e_aq^1 (-145) -> H^0 (-1321) -At time : 5.2114 ns Reaction : OH^-1 (-1246) + H3O^1 (-1026) -> No product -At time : 5.2214 ns Reaction : H3O^1 (-755) + OH^-1 (-1320) -> No product -At time : 5.6714 ns Reaction : H3O^1 (-737) + OH^-1 (-1271) -> No product -At time : 5.99919 ns Reaction : OH^-1 (-1295) + H3O^1 (-887) -> No product -At time : 6.38107 ns Reaction : OH^-1 (-1269) + H3O^1 (-661) -> No product -At time : 6.55107 ns Reaction : OH^0 (-1152) + OH^0 (-998) -> H2O2^0 (-1322) -At time : 6.85726 ns Reaction : H^0 (-1090) + OH^0 (-678) -> No product -At time : 7.51297 ns Reaction : OH^-1 (-1301) + H3O^1 (-759) -> No product -At time : 7.91487 ns Reaction : OH^0 (-1105) + OH^0 (-726) -> H2O2^0 (-1323) -At time : 8.22972 ns Reaction : OH^0 (-730) + OH^0 (-886) -> H2O2^0 (-1324) -At time : 8.49082 ns Reaction : e_aq^1 (-562) + OH^0 (-628) -> OH^-1 (-1325) -At time : 8.75353 ns Reaction : OH^0 (-1147) + OH^0 (-996) -> H2O2^0 (-1326) -At time : 8.81074 ns Reaction : e_aq^1 (-255) + OH^0 (-776) -> OH^-1 (-1327) -At time : 9.05573 ns Reaction : H3O^1 (-665) + OH^-1 (-1277) -> No product -At time : 9.6437 ns Reaction : H3O^1 (-627) + OH^-1 (-1325) -> No product -At time : 10.5094 ns Reaction : e_aq^1 (-174) + H3O^1 (-949) -> H^0 (-1328) -At time : 10.6416 ns Reaction : H3O^1 (-947) + OH^-1 (-1243) -> No product -At time : 11.0416 ns Reaction : e_aq^1 (-451) + e_aq^1 (-439) -> OH^-1 (-1329) + OH^-1 (-1330) + H_2^0 (-1331) -At time : 11.1416 ns Reaction : OH^0 (-698) + OH^0 (-800) -> H2O2^0 (-1332) -At time : 11.6416 ns Reaction : e_aq^1 (-300) + OH^0 (-898) -> OH^-1 (-1333) -At time : 11.9416 ns Reaction : e_aq^1 (-288) + OH^0 (-858) -> OH^-1 (-1334) -At time : 11.9416 ns Reaction : e_aq^1 (-172) + H3O^1 (-751) -> H^0 (-1335) -At time : 12.4416 ns Reaction : e_aq^1 (-265) + OH^0 (-718) -> OH^-1 (-1336) -At time : 12.8416 ns Reaction : H^0 (-1266) + e_aq^1 (-249) -> OH^-1 (-1337) + H_2^0 (-1338) -At time : 13.0416 ns Reaction : OH^0 (-1118) + OH^0 (-882) -> H2O2^0 (-1339) -At time : 13.2416 ns Reaction : H3O^1 (-765) + OH^-1 (-1283) -> No product -At time : 13.9416 ns Reaction : e_aq^1 (-258) + H3O^1 (-1014) -> H^0 (-1340) -At time : 14.2416 ns Reaction : e_aq^1 (-409) + H3O^1 (-969) -> H^0 (-1341) -At time : 14.3416 ns Reaction : OH^0 (-1132) + e_aq^1 (-276) -> OH^-1 (-1342) -At time : 15.2416 ns Reaction : OH^0 (-1196) + e_aq^1 (-352) -> OH^-1 (-1343) -At time : 15.2416 ns Reaction : e_aq^1 (-491) + OH^0 (-928) -> OH^-1 (-1344) -At time : 15.4416 ns Reaction : OH^-1 (-1330) + H3O^1 (-971) -> No product -At time : 16.2416 ns Reaction : OH^-1 (-1235) + H3O^1 (-987) -> No product -At time : 16.6416 ns Reaction : e_aq^1 (-524) + H^0 (-1063) -> OH^-1 (-1345) + H_2^0 (-1346) -At time : 16.8416 ns Reaction : H^0 (-1300) + OH^0 (-1016) -> No product -At time : 17.0416 ns Reaction : e_aq^1 (-535) + H2O2^0 (-1222) -> OH^-1 (-1347) + OH^0 (-1348) -At time : 17.7416 ns Reaction : e_aq^1 (-337) + H3O^1 (-993) -> H^0 (-1349) -At time : 18.1416 ns Reaction : H^0 (-1097) + e_aq^1 (-336) -> OH^-1 (-1350) + H_2^0 (-1351) -At time : 18.4416 ns Reaction : e_aq^1 (-305) + e_aq^1 (-299) -> OH^-1 (-1352) + OH^-1 (-1353) + H_2^0 (-1354) -At time : 19.3416 ns Reaction : e_aq^1 (-422) + H3O^1 (-1023) -> H^0 (-1355) -At time : 19.4416 ns Reaction : e_aq^1 (-290) + OH^0 (-784) -> OH^-1 (-1356) -At time : 24.9416 ns Reaction : H3O^1 (-823) + OH^-1 (-1345) -> No product -At time : 25.1416 ns Reaction : e_aq^1 (-406) + H^0 (-1251) -> OH^-1 (-1357) + H_2^0 (-1358) -At time : 25.7416 ns Reaction : H3O^1 (-697) + OH^-1 (-1309) -> No product -At time : 26.1416 ns Reaction : e_aq^1 (-214) + H3O^1 (-733) -> H^0 (-1359) -At time : 29.1416 ns Reaction : H^0 (-1133) + OH^0 (-956) -> No product -At time : 29.3416 ns Reaction : e_aq^1 (-213) + H2O2^0 (-1201) -> OH^-1 (-1360) + OH^0 (-1361) -At time : 30.0416 ns Reaction : OH^-1 (-1352) + H3O^1 (-707) -> No product -At time : 30.9416 ns Reaction : e_aq^1 (-482) + H3O^1 (-809) -> H^0 (-1362) -At time : 33.2416 ns Reaction : e_aq^1 (-309) + H3O^1 (-705) -> H^0 (-1363) -At time : 33.9416 ns Reaction : OH^0 (-634) + OH^0 (-652) -> H2O2^0 (-1364) -At time : 34.2416 ns Reaction : e_aq^1 (-256) + OH^0 (-958) -> OH^-1 (-1365) -At time : 36.4416 ns Reaction : e_aq^1 (-590) + OH^0 (-624) -> OH^-1 (-1366) -At time : 36.5416 ns Reaction : H^0 (-1335) + H^0 (-1209) -> H_2^0 (-1367) -At time : 36.8416 ns Reaction : e_aq^1 (-600) + OH^0 (-616) -> OH^-1 (-1368) -At time : 36.9416 ns Reaction : OH^0 (-612) + OH^0 (-954) -> H2O2^0 (-1369) -At time : 40.7416 ns Reaction : e_aq^1 (-199) + H^0 (-1260) -> OH^-1 (-1370) + H_2^0 (-1371) -At time : 42.2416 ns Reaction : e_aq^1 (-154) + H3O^1 (-865) -> H^0 (-1372) -At time : 43.9531 ns Reaction : e_aq^1 (-229) + OH^0 (-1292) -> OH^-1 (-1373) -At time : 44.0531 ns Reaction : e_aq^1 (-469) + H3O^1 (-1003) -> H^0 (-1374) -At time : 49.3685 ns Reaction : OH^0 (-1128) + e_aq^1 (-246) -> OH^-1 (-1375) -At time : 51.416 ns Reaction : e_aq^1 (-357) + H3O^1 (-901) -> H^0 (-1376) -At time : 58.8926 ns Reaction : H3O^1 (-767) + OH^-1 (-1375) -> No product -At time : 59.8926 ns Reaction : e_aq^1 (-442) + OH^0 (-1043) -> OH^-1 (-1377) -At time : 65.2772 ns Reaction : H^0 (-1372) + OH^0 (-760) -> No product -At time : 72.8372 ns Reaction : OH^-1 (-1337) + H3O^1 (-719) -> No product -At time : 75.9154 ns Reaction : H3O^1 (-721) + OH^-1 (-1373) -> No product -At time : 80.8282 ns Reaction : H3O^1 (-913) + OH^-1 (-1329) -> No product -At time : 88.5848 ns Reaction : OH^0 (-1155) + H^0 (-1328) -> No product -At time : 92.6241 ns Reaction : OH^-1 (-1336) + H3O^1 (-889) -> No product -At time : 93.4915 ns Reaction : H^0 (-1297) + OH^0 (-960) -> No product -At time : 96.1435 ns Reaction : OH^0 (-688) + OH^0 (-1006) -> H2O2^0 (-1378) -At time : 102.497 ns Reaction : e_aq^1 (-307) + OH^0 (-1040) -> OH^-1 (-1379) -At time : 128.171 ns Reaction : H3O^1 (-1172) + OH^-1 (-1211) -> No product -At time : 131.689 ns Reaction : OH^-1 (-1353) + H3O^1 (-711) -> No product -At time : 138.98 ns Reaction : e_aq^1 (-573) + H3O^1 (-837) -> H^0 (-1380) -At time : 139.757 ns Reaction : H3O^1 (-649) + OH^-1 (-1312) -> No product -At time : 140.257 ns Reaction : OH^-1 (-1343) + H3O^1 (-897) -> No product -At time : 152.986 ns Reaction : OH^0 (-1083) + OH^0 (-682) -> H2O2^0 (-1381) -At time : 174.791 ns Reaction : H^0 (-1259) + OH^0 (-944) -> No product -At time : 176.205 ns Reaction : e_aq^1 (-373) + H3O^1 (-653) -> H^0 (-1382) -At time : 179.032 ns Reaction : OH^-1 (-611) + H3O^1 (-1011) -> No product -At time : 181.154 ns Reaction : e_aq^1 (-554) + H2O2^0 (-1364) -> OH^-1 (-1383) + OH^0 (-1384) -At time : 181.154 ns Reaction : e_aq^1 (-139) + H2O2^0 (-1238) -> OH^-1 (-1385) + OH^0 (-1386) -At time : 194.542 ns Reaction : OH^0 (-888) + OH^0 (-952) -> H2O2^0 (-1387) -At time : 197.539 ns Reaction : H^0 (-1165) + OH^0 (-1386) -> No product -At time : 250.699 ns Reaction : e_aq^1 (-423) + H3O^1 (-673) -> H^0 (-1388) -At time : 256.358 ns Reaction : e_aq^1 (-292) + OH^0 (-1101) -> OH^-1 (-1389) -At time : 264.29 ns Reaction : OH^-1 (-1379) + H3O^1 (-963) -> No product -At time : 266.355 ns Reaction : OH^0 (-1137) + e_aq^1 (-464) -> OH^-1 (-1390) -At time : 278.951 ns Reaction : e_aq^1 (-380) + OH^0 (-1022) -> OH^-1 (-1391) -At time : 302.326 ns Reaction : H3O^1 (-793) + OH^-1 (-1333) -> No product -At time : 322.009 ns Reaction : OH^0 (-1348) + OH^0 (-638) -> H2O2^0 (-1392) -At time : 349.568 ns Reaction : OH^0 (-1186) + e_aq^1 (-177) -> OH^-1 (-1393) -At time : 361.003 ns Reaction : H3O^1 (-775) + OH^-1 (-1291) -> No product -At time : 389.753 ns Reaction : e_aq^1 (-225) + H3O^1 (-713) -> H^0 (-1394) -At time : 528.649 ns Reaction : H3O^1 (-749) + OH^-1 (-1370) -> No product -At time : 530.545 ns Reaction : OH^0 (-824) + OH^0 (-830) -> H2O2^0 (-1395) -At time : 551.525 ns Reaction : e_aq^1 (-459) + OH^0 (-1031) -> OH^-1 (-1396) -At time : 551.525 ns Reaction : OH^0 (-708) + OH^0 (-896) -> H2O2^0 (-1397) -At time : 654.284 ns Reaction : OH^0 (-1121) + H^0 (-1233) -> No product -At time : 663.459 ns Reaction : H^0 (-1143) + OH^0 (-920) -> No product -At time : 664.615 ns Reaction : e_aq^1 (-132) + e_aq^1 (-146) -> OH^-1 (-1398) + OH^-1 (-1399) + H_2^0 (-1400) -At time : 676.635 ns Reaction : e_aq^1 (-360) + H2O2^0 (-1378) -> OH^-1 (-1401) + OH^0 (-1402) -At time : 765.782 ns Reaction : OH^0 (-1179) + e_aq^1 (-264) -> OH^-1 (-1403) -At time : 916.652 ns Reaction : OH^0 (-662) + OH^0 (-686) -> H2O2^0 (-1404) -*** G4Scheduler ends at time : 1 mus +At time : 1 ps Reaction : OH^0 (-1073) + e_aq^1 (-175) -> OH^-1 (-1106) +At time : 1 ps Reaction : OH^0 (-992) + OH^0 (-588) -> H2O2^0 (-1107) +At time : 3.88811 ps Reaction : OH^0 (-1017) + OH^0 (-1101) -> H2O2^0 (-1108) +At time : 4.18811 ps Reaction : H^0 (-972) + OH^0 (-572) -> No product +At time : 4.68811 ps Reaction : OH^0 (-999) + OH^0 (-998) -> H2O2^0 (-1109) +At time : 4.68811 ps Reaction : e_aq^1 (-418) + OH^0 (-590) -> OH^-1 (-1110) +At time : 4.68811 ps Reaction : OH^-1 (-1110) + H3O^1 (-589) -> No product +At time : 6.91308 ps Reaction : OH^0 (-598) + OH^0 (-656) -> H2O2^0 (-1111) +At time : 16.1934 ps Reaction : OH^0 (-990) + OH^0 (-989) -> H2O2^0 (-1112) +At time : 16.1934 ps Reaction : e_aq^1 (-495) + OH^0 (-736) -> OH^-1 (-1113) +At time : 16.1934 ps Reaction : OH^-1 (-1113) + H3O^1 (-735) -> No product +At time : 18.1934 ps Reaction : OH^0 (-950) + OH^0 (-953) -> H2O2^0 (-1114) +At time : 26.1934 ps Reaction : OH^0 (-1104) + OH^0 (-762) -> H2O2^0 (-1115) +At time : 27.1934 ps Reaction : H^0 (-1078) + OH^0 (-848) -> No product +At time : 56.1934 ps Reaction : H^0 (-1040) + OH^0 (-786) -> No product +At time : 56.1934 ps Reaction : H^0 (-987) + OH^0 (-732) -> No product +At time : 77.1934 ps Reaction : e_aq^1 (-490) + OH^0 (-738) -> OH^-1 (-1116) +At time : 79.1934 ps Reaction : OH^0 (-986) + OH^0 (-730) -> H2O2^0 (-1117) +At time : 80.1934 ps Reaction : OH^-1 (-1116) + H3O^1 (-737) -> No product +At time : 98.1934 ps Reaction : OH^-1 (-560) + H3O^1 (-936) -> No product +At time : 107.193 ps Reaction : OH^0 (-672) + OH^0 (-959) -> H2O2^0 (-1118) +At time : 107.193 ps Reaction : OH^0 (-744) + OH^0 (-910) -> H2O2^0 (-1119) +At time : 134.193 ps Reaction : H^0 (-1024) + OH^0 (-1023) -> No product +At time : 137.193 ps Reaction : H^0 (-1067) + e_aq^1 (-234) -> OH^-1 (-1120) + H_2^0 (-1121) +At time : 152.193 ps Reaction : e_aq^1 (-349) + OH^0 (-780) -> OH^-1 (-1122) +At time : 155.193 ps Reaction : OH^0 (-668) + OH^0 (-852) -> H2O2^0 (-1123) +At time : 158.193 ps Reaction : OH^0 (-1059) + OH^0 (-814) -> H2O2^0 (-1124) +At time : 191.193 ps Reaction : H^0 (-1005) + OH^0 (-898) -> No product +At time : 194.193 ps Reaction : OH^-1 (-1120) + H3O^1 (-819) -> No product +At time : 203.193 ps Reaction : OH^0 (-754) + OH^0 (-800) -> H2O2^0 (-1125) +At time : 206.193 ps Reaction : e_aq^1 (-417) + OH^0 (-756) -> OH^-1 (-1126) +At time : 212.193 ps Reaction : H3O^1 (-1006) + OH^-1 (-563) -> No product +At time : 215.193 ps Reaction : OH^0 (-973) + OH^0 (-1053) -> H2O2^0 (-1127) +At time : 254.193 ps Reaction : e_aq^1 (-416) + OH^0 (-792) -> OH^-1 (-1128) +At time : 269.193 ps Reaction : OH^-1 (-1126) + H3O^1 (-948) -> No product +At time : 320.193 ps Reaction : OH^0 (-1079) + H^0 (-1082) -> No product +At time : 338.193 ps Reaction : e_aq^1 (-99) + OH^0 (-969) -> OH^-1 (-1129) +At time : 347.193 ps Reaction : OH^0 (-796) + OH^0 (-932) -> H2O2^0 (-1130) +At time : 371.193 ps Reaction : OH^-1 (-1129) + H3O^1 (-855) -> No product +At time : 392.193 ps Reaction : e_aq^1 (-156) + H3O^1 (-875) -> H^0 (-1131) +At time : 410.193 ps Reaction : e_aq^1 (-525) + H3O^1 (-617) -> H^0 (-1132) +At time : 419.193 ps Reaction : OH^0 (-967) + H^0 (-968) -> No product +At time : 422.193 ps Reaction : e_aq^1 (-129) + OH^0 (-854) -> OH^-1 (-1133) +At time : 422.193 ps Reaction : H3O^1 (-853) + OH^-1 (-1133) -> No product +At time : 428.193 ps Reaction : e_aq^1 (-108) + OH^0 (-1012) -> OH^-1 (-1134) +At time : 428.193 ps Reaction : e_aq^1 (-167) + OH^0 (-842) -> OH^-1 (-1135) +At time : 428.193 ps Reaction : H3O^1 (-839) + OH^-1 (-1135) -> No product +At time : 464.193 ps Reaction : e_aq^1 (-133) + H^0 (-1009) -> OH^-1 (-1136) + H_2^0 (-1137) +At time : 473.193 ps Reaction : OH^-1 (-1128) + H3O^1 (-633) -> No product +At time : 506.193 ps Reaction : OH^0 (-1011) + OH^0 (-872) -> H2O2^0 (-1138) +At time : 521.193 ps Reaction : OH^0 (-716) + H^0 (-1132) -> No product +At time : 569.193 ps Reaction : e_aq^1 (-408) + OH^0 (-947) -> OH^-1 (-1139) +At time : 587.193 ps Reaction : OH^0 (-1033) + e_aq^1 (-376) -> OH^-1 (-1140) +At time : 599.193 ps Reaction : e_aq^1 (-395) + OH^0 (-760) -> OH^-1 (-1141) +At time : 645.826 ps Reaction : H3O^1 (-1031) + OH^-1 (-1141) -> No product +At time : 681.826 ps Reaction : OH^0 (-971) + OH^0 (-636) -> H2O2^0 (-1142) +At time : 684.826 ps Reaction : H^0 (-996) + OH^0 (-993) -> No product +At time : 717.826 ps Reaction : H^0 (-1088) + OH^0 (-1008) -> No product +At time : 720.826 ps Reaction : e_aq^1 (-338) + e_aq^1 (-375) -> OH^-1 (-1143) + OH^-1 (-1144) + H_2^0 (-1145) +At time : 741.826 ps Reaction : e_aq^1 (-421) + H3O^1 (-797) -> H^0 (-1146) +At time : 771.826 ps Reaction : e_aq^1 (-149) + OH^0 (-670) -> OH^-1 (-1147) +At time : 816.826 ps Reaction : e_aq^1 (-479) + OH^0 (-626) -> OH^-1 (-1148) +At time : 829.747 ps Reaction : H3O^1 (-869) + OH^-1 (-1134) -> No product +At time : 899.116 ps Reaction : H^0 (-1063) + e_aq^1 (-266) -> OH^-1 (-1149) + H_2^0 (-1150) +At time : 926.116 ps Reaction : OH^0 (-1090) + e_aq^1 (-112) -> OH^-1 (-1151) +At time : 926.116 ps Reaction : OH^-1 (-1151) + H3O^1 (-659) -> No product +At time : 962.116 ps Reaction : OH^0 (-1069) + OH^0 (-1095) -> H2O2^0 (-1152) +At time : 977.534 ps Reaction : OH^0 (-574) + OH^0 (-866) -> H2O2^0 (-1153) +At time : 999.497 ps Reaction : OH^0 (-561) + OH^0 (-770) -> H2O2^0 (-1154) +At time : 1.0325 ns Reaction : H3O^1 (-753) + OH^-1 (-1139) -> No product +At time : 1.0625 ns Reaction : e_aq^1 (-271) + H3O^1 (-809) -> H^0 (-1155) +At time : 1.1125 ns Reaction : e_aq^1 (-103) + OH^0 (-658) -> OH^-1 (-1156) +At time : 1.1725 ns Reaction : OH^0 (-914) + OH^0 (-965) -> H2O2^0 (-1157) +At time : 1.2025 ns Reaction : H3O^1 (-765) + OH^-1 (-1140) -> No product +At time : 1.2825 ns Reaction : e_aq^1 (-387) + OH^0 (-642) -> OH^-1 (-1158) +At time : 1.3025 ns Reaction : e_aq^1 (-240) + OH^0 (-682) -> OH^-1 (-1159) +At time : 1.3225 ns Reaction : e_aq^1 (-512) + H3O^1 (-942) -> H^0 (-1160) +At time : 1.4625 ns Reaction : OH^-1 (-1156) + H3O^1 (-865) -> No product +At time : 1.4625 ns Reaction : e_aq^1 (-213) + OH^0 (-820) -> OH^-1 (-1161) +At time : 1.4725 ns Reaction : OH^0 (-1043) + H^0 (-1044) -> No product +At time : 1.4825 ns Reaction : OH^0 (-1084) + e_aq^1 (-100) -> OH^-1 (-1162) +At time : 1.4825 ns Reaction : e_aq^1 (-212) + H3O^1 (-647) -> H^0 (-1163) +At time : 1.5125 ns Reaction : H3O^1 (-763) + OH^-1 (-1158) -> No product +At time : 1.5125 ns Reaction : H3O^1 (-657) + OH^-1 (-1136) -> No product +At time : 1.5925 ns Reaction : e_aq^1 (-192) + OH^0 (-958) -> OH^-1 (-1164) +At time : 1.64285 ns Reaction : H^0 (-1146) + OH^0 (-568) -> No product +At time : 1.80285 ns Reaction : e_aq^1 (-520) + H2O2^0 (-1109) -> OH^-1 (-1165) + OH^0 (-1166) +At time : 1.88285 ns Reaction : OH^0 (-1075) + H^0 (-1080) -> No product +At time : 1.92285 ns Reaction : e_aq^1 (-303) + H^0 (-1051) -> OH^-1 (-1167) + H_2^0 (-1168) +At time : 1.95285 ns Reaction : e_aq^1 (-152) + H3O^1 (-873) -> H^0 (-1169) +At time : 2.03285 ns Reaction : OH^-1 (-1165) + H3O^1 (-739) -> No product +At time : 2.07285 ns Reaction : e_aq^1 (-251) + H3O^1 (-811) -> H^0 (-1170) +At time : 2.09285 ns Reaction : H3O^1 (-679) + OH^-1 (-1161) -> No product +At time : 2.35285 ns Reaction : OH^0 (-664) + OH^0 (-666) -> H2O2^0 (-1171) +At time : 2.36285 ns Reaction : e_aq^1 (-191) + OH^0 (-832) -> OH^-1 (-1172) +At time : 2.42285 ns Reaction : e_aq^1 (-422) + H3O^1 (-749) -> H^0 (-1173) +At time : 3.00112 ns Reaction : OH^-1 (-1167) + H3O^1 (-687) -> No product +At time : 3.42353 ns Reaction : H^0 (-974) + e_aq^1 (-269) -> OH^-1 (-1174) + H_2^0 (-1175) +At time : 3.62986 ns Reaction : e_aq^1 (-231) + OH^0 (-578) -> OH^-1 (-1176) +At time : 3.78014 ns Reaction : H^0 (-1092) + OH^0 (-880) -> No product +At time : 3.90375 ns Reaction : H3O^1 (-1041) + e_aq^1 (-337) -> H^0 (-1177) +At time : 4.06464 ns Reaction : e_aq^1 (-410) + H^0 (-1028) -> OH^-1 (-1178) + H_2^0 (-1179) +At time : 4.12464 ns Reaction : e_aq^1 (-186) + OH^0 (-886) -> OH^-1 (-1180) +At time : 4.13464 ns Reaction : e_aq^1 (-509) + OH^0 (-941) -> OH^-1 (-1181) +At time : 4.13464 ns Reaction : H3O^1 (-741) + OH^-1 (-1181) -> No product +At time : 4.23464 ns Reaction : e_aq^1 (-232) + OH^0 (-828) -> OH^-1 (-1182) +At time : 4.64255 ns Reaction : e_aq^1 (-132) + OH^0 (-856) -> OH^-1 (-1183) +At time : 5.09628 ns Reaction : e_aq^1 (-339) + H3O^1 (-777) -> H^0 (-1184) +At time : 5.14628 ns Reaction : H^0 (-1034) + OH^0 (-1049) -> No product +At time : 5.18628 ns Reaction : OH^0 (-981) + e_aq^1 (-288) -> OH^-1 (-1185) +At time : 5.28628 ns Reaction : e_aq^1 (-214) + H3O^1 (-681) -> H^0 (-1186) +At time : 5.37628 ns Reaction : e_aq^1 (-367) + OH^0 (-1046) -> OH^-1 (-1187) +At time : 5.47707 ns Reaction : OH^-1 (-1147) + H3O^1 (-879) -> No product +At time : 6.0551 ns Reaction : e_aq^1 (-224) + H3O^1 (-823) -> H^0 (-1188) +At time : 6.0951 ns Reaction : OH^-1 (-1178) + H3O^1 (-579) -> No product +At time : 6.30682 ns Reaction : OH^0 (-652) + OH^0 (-858) -> H2O2^0 (-1189) +At time : 6.54051 ns Reaction : OH^-1 (-1122) + H3O^1 (-783) -> No product +At time : 6.58051 ns Reaction : OH^0 (-1042) + e_aq^1 (-352) -> OH^-1 (-1190) +At time : 6.61051 ns Reaction : OH^0 (-977) + e_aq^1 (-243) -> OH^-1 (-1191) +At time : 6.90051 ns Reaction : OH^0 (-580) + OH^0 (-748) -> H2O2^0 (-1192) +At time : 6.94051 ns Reaction : e_aq^1 (-409) + OH^0 (-555) -> OH^-1 (-1193) +At time : 7.14864 ns Reaction : e_aq^1 (-351) + H3O^1 (-789) -> H^0 (-1194) +At time : 7.59494 ns Reaction : e_aq^1 (-402) + H3O^1 (-595) -> H^0 (-1195) +At time : 7.73627 ns Reaction : e_aq^1 (-157) + OH^0 (-860) -> OH^-1 (-1196) +At time : 8.81862 ns Reaction : e_aq^1 (-113) + H3O^1 (-841) -> H^0 (-1197) +At time : 9.43428 ns Reaction : OH^-1 (-557) + H3O^1 (-637) -> No product +At time : 9.7931 ns Reaction : e_aq^1 (-95) + OH^0 (-662) -> OH^-1 (-1198) +At time : 9.8731 ns Reaction : e_aq^1 (-514) + OH^0 (-630) -> OH^-1 (-1199) +At time : 9.93486 ns Reaction : e_aq^1 (-407) + OH^0 (-1029) -> OH^-1 (-1200) +At time : 10.106 ns Reaction : e_aq^1 (-542) + OH^0 (-582) -> OH^-1 (-1201) +At time : 10.206 ns Reaction : OH^-1 (-1185) + H3O^1 (-813) -> No product +At time : 10.306 ns Reaction : e_aq^1 (-294) + H3O^1 (-901) -> H^0 (-1202) +At time : 10.406 ns Reaction : e_aq^1 (-96) + OH^0 (-938) -> OH^-1 (-1203) +At time : 11.006 ns Reaction : OH^0 (-1105) + e_aq^1 (-358) -> OH^-1 (-1204) +At time : 11.406 ns Reaction : H3O^1 (-573) + OH^-1 (-1203) -> No product +At time : 11.706 ns Reaction : OH^0 (-1002) + e_aq^1 (-284) -> OH^-1 (-1205) +At time : 11.806 ns Reaction : e_aq^1 (-360) + OH^0 (-776) -> OH^-1 (-1206) +At time : 12.506 ns Reaction : e_aq^1 (-229) + H3O^1 (-649) -> H^0 (-1207) +At time : 12.606 ns Reaction : OH^0 (-638) + OH^0 (-766) -> H2O2^0 (-1208) +At time : 12.906 ns Reaction : OH^0 (-616) + OH^0 (-724) -> H2O2^0 (-1209) +At time : 13.506 ns Reaction : OH^-1 (-1199) + H3O^1 (-729) -> No product +At time : 14.806 ns Reaction : e_aq^1 (-172) + OH^0 (-870) -> OH^-1 (-1210) +At time : 14.806 ns Reaction : e_aq^1 (-488) + H3O^1 (-623) -> H^0 (-1211) +At time : 15.506 ns Reaction : OH^0 (-1166) + OH^0 (-726) -> H2O2^0 (-1212) +At time : 15.606 ns Reaction : OH^0 (-1066) + OH^0 (-818) -> H2O2^0 (-1213) +At time : 15.906 ns Reaction : OH^0 (-1071) + e_aq^1 (-203) -> OH^-1 (-1214) +At time : 17.106 ns Reaction : e_aq^1 (-265) + OH^0 (-1062) -> OH^-1 (-1215) +At time : 17.206 ns Reaction : OH^-1 (-1206) + H3O^1 (-635) -> No product +At time : 18.606 ns Reaction : OH^-1 (-1162) + H3O^1 (-667) -> No product +At time : 19.606 ns Reaction : e_aq^1 (-434) + OH^0 (-906) -> OH^-1 (-1216) +At time : 19.806 ns Reaction : H3O^1 (-1056) + OH^-1 (-1174) -> No product +At time : 20.006 ns Reaction : OH^0 (-728) + OH^0 (-734) -> H2O2^0 (-1217) +At time : 20.306 ns Reaction : e_aq^1 (-357) + OH^0 (-778) -> OH^-1 (-1218) +At time : 20.806 ns Reaction : OH^-1 (-1218) + H3O^1 (-767) -> No product +At time : 21.506 ns Reaction : OH^-1 (-1215) + H3O^1 (-683) -> No product +At time : 23.5252 ns Reaction : OH^-1 (-1180) + H3O^1 (-885) -> No product +At time : 23.6252 ns Reaction : OH^0 (-1038) + e_aq^1 (-377) -> OH^-1 (-1219) +At time : 23.8252 ns Reaction : H^0 (-1016) + e_aq^1 (-444) -> OH^-1 (-1220) + H_2^0 (-1221) +At time : 26.5252 ns Reaction : OH^0 (-984) + e_aq^1 (-500) -> OH^-1 (-1222) +At time : 26.6252 ns Reaction : e_aq^1 (-295) + OH^0 (-902) -> OH^-1 (-1223) +At time : 26.7252 ns Reaction : H^0 (-1074) + e_aq^1 (-115) -> OH^-1 (-1224) + H_2^0 (-1225) +At time : 26.8252 ns Reaction : OH^-1 (-1222) + H3O^1 (-585) -> No product +At time : 27.6592 ns Reaction : e_aq^1 (-342) + H^0 (-1184) -> OH^-1 (-1226) + H_2^0 (-1227) +At time : 27.9592 ns Reaction : OH^0 (-1087) + OH^0 (-838) -> H2O2^0 (-1228) +At time : 28.6592 ns Reaction : OH^0 (-1081) + e_aq^1 (-140) -> OH^-1 (-1229) +At time : 28.9592 ns Reaction : OH^-1 (-1200) + H3O^1 (-769) -> No product +At time : 30.1592 ns Reaction : OH^0 (-1035) + OH^0 (-784) -> H2O2^0 (-1230) +At time : 31.1592 ns Reaction : e_aq^1 (-136) + OH^0 (-660) -> OH^-1 (-1231) +At time : 32.0592 ns Reaction : e_aq^1 (-452) + H^0 (-1099) -> OH^-1 (-1232) + H_2^0 (-1233) +At time : 34.5592 ns Reaction : e_aq^1 (-536) + H3O^1 (-581) -> H^0 (-1234) +At time : 35.3592 ns Reaction : OH^0 (-1077) + e_aq^1 (-97) -> OH^-1 (-1235) +At time : 35.4592 ns Reaction : H^0 (-994) + OH^0 (-632) -> No product +At time : 37.1592 ns Reaction : e_aq^1 (-181) + H3O^1 (-849) -> H^0 (-1236) +At time : 37.4592 ns Reaction : OH^0 (-558) + OH^0 (-790) -> H2O2^0 (-1237) +At time : 38.7592 ns Reaction : OH^0 (-640) + H^0 (-1177) -> No product +At time : 41.1592 ns Reaction : OH^0 (-604) + H^0 (-1207) -> No product +At time : 41.2592 ns Reaction : OH^0 (-1004) + OH^0 (-896) -> H2O2^0 (-1238) +At time : 44.9592 ns Reaction : OH^0 (-1060) + OH^0 (-564) -> H2O2^0 (-1239) +At time : 46.4712 ns Reaction : OH^0 (-1000) + H^0 (-1036) -> No product +At time : 48.2077 ns Reaction : OH^0 (-976) + OH^0 (-816) -> H2O2^0 (-1240) +At time : 49.3077 ns Reaction : e_aq^1 (-340) + H3O^1 (-761) -> H^0 (-1241) +At time : 50.2077 ns Reaction : OH^0 (-844) + H^0 (-1197) -> No product +At time : 54.6077 ns Reaction : OH^0 (-692) + OH^0 (-794) -> H2O2^0 (-1242) +At time : 57.2077 ns Reaction : H3O^1 (-1025) + OH^-1 (-1148) -> No product +At time : 57.2077 ns Reaction : e_aq^1 (-187) + OH^0 (-888) -> OH^-1 (-1243) +At time : 68.683 ns Reaction : e_aq^1 (-241) + e_aq^1 (-253) -> OH^-1 (-1244) + OH^-1 (-1245) + H_2^0 (-1246) +At time : 77.9238 ns Reaction : H3O^1 (-605) + OH^-1 (-1149) -> No product +At time : 81.0683 ns Reaction : H3O^1 (-1089) + OH^-1 (-1224) -> No product +At time : 82.1387 ns Reaction : e_aq^1 (-426) + H3O^1 (-933) -> H^0 (-1247) +At time : 84.1818 ns Reaction : e_aq^1 (-189) + OH^0 (-850) -> OH^-1 (-1248) +At time : 85.0312 ns Reaction : e_aq^1 (-159) + e_aq^1 (-183) -> OH^-1 (-1249) + OH^-1 (-1250) + H_2^0 (-1251) +At time : 86.4229 ns Reaction : e_aq^1 (-260) + H2O2^0 (-1239) -> OH^-1 (-1252) + OH^0 (-1253) +At time : 90.1365 ns Reaction : H^0 (-1030) + H^0 (-1001) -> H_2^0 (-1254) +At time : 103.426 ns Reaction : OH^-1 (-1176) + H3O^1 (-601) -> No product +At time : 114.557 ns Reaction : H^0 (-1236) + OH^0 (-836) -> No product +At time : 117.403 ns Reaction : e_aq^1 (-292) + H3O^1 (-643) -> H^0 (-1255) +At time : 120.301 ns Reaction : e_aq^1 (-122) + H3O^1 (-881) -> H^0 (-1256) +At time : 124.201 ns Reaction : OH^-1 (-1183) + H3O^1 (-833) -> No product +At time : 145.442 ns Reaction : e_aq^1 (-204) + e_aq^1 (-207) -> OH^-1 (-1257) + OH^-1 (-1258) + H_2^0 (-1259) +At time : 154.708 ns Reaction : e_aq^1 (-273) + H3O^1 (-1058) -> H^0 (-1260) +At time : 164.917 ns Reaction : e_aq^1 (-160) + H3O^1 (-883) -> H^0 (-1261) +At time : 165.217 ns Reaction : H3O^1 (-815) + OH^-1 (-1204) -> No product +At time : 198.014 ns Reaction : OH^0 (-1091) + e_aq^1 (-102) -> OH^-1 (-1262) +At time : 200.99 ns Reaction : OH^-1 (-1106) + H3O^1 (-891) -> No product +At time : 201.09 ns Reaction : OH^0 (-1032) + e_aq^1 (-304) -> OH^-1 (-1263) +At time : 215.594 ns Reaction : e_aq^1 (-134) + OH^0 (-868) -> OH^-1 (-1264) +At time : 233.149 ns Reaction : e_aq^1 (-170) + OH^0 (-846) -> OH^-1 (-1265) +At time : 237.379 ns Reaction : e_aq^1 (-524) + H3O^1 (-727) -> H^0 (-1266) +At time : 268.714 ns Reaction : e_aq^1 (-236) + H2O2^0 (-1238) -> OH^-1 (-1267) + OH^0 (-1268) +At time : 271.263 ns Reaction : OH^0 (-620) + OH^0 (-622) -> H2O2^0 (-1269) +At time : 276.783 ns Reaction : e_aq^1 (-163) + OH^0 (-878) -> OH^-1 (-1270) +At time : 278.626 ns Reaction : OH^0 (-826) + H^0 (-1188) -> No product +At time : 291.901 ns Reaction : e_aq^1 (-369) + H^0 (-1170) -> OH^-1 (-1271) + H_2^0 (-1272) +At time : 296.704 ns Reaction : OH^-1 (-1252) + H3O^1 (-867) -> No product +At time : 328.063 ns Reaction : H3O^1 (-645) + OH^-1 (-1249) -> No product +At time : 348.185 ns Reaction : e_aq^1 (-499) + H3O^1 (-945) -> H^0 (-1273) +At time : 369.498 ns Reaction : e_aq^1 (-391) + OH^0 (-752) -> OH^-1 (-1274) +At time : 406.507 ns Reaction : e_aq^1 (-480) + H3O^1 (-629) -> H^0 (-1275) +At time : 423.694 ns Reaction : e_aq^1 (-261) + OH^0 (-646) -> OH^-1 (-1276) +At time : 506.877 ns Reaction : e_aq^1 (-281) + H3O^1 (-567) -> H^0 (-1277) +At time : 519.233 ns Reaction : H3O^1 (-817) + OH^-1 (-1164) -> No product +At time : 520.725 ns Reaction : H^0 (-979) + e_aq^1 (-290) -> OH^-1 (-1278) + H_2^0 (-1279) +At time : 574.063 ns Reaction : OH^0 (-824) + e_aq^1 (-940) -> OH^-1 (-1280) +At time : 592.071 ns Reaction : e_aq^1 (-522) + OH^0 (-740) -> OH^-1 (-1281) +At time : 598.055 ns Reaction : e_aq^1 (-142) + OH^0 (-606) -> OH^-1 (-1282) +At time : 830.967 ns Reaction : e_aq^1 (-199) + OH^0 (-602) -> OH^-1 (-1283) +At time : 851.501 ns Reaction : H^0 (-1020) + e_aq^1 (-489) -> OH^-1 (-1284) + H_2^0 (-1285) +At time : 858.103 ns Reaction : e_aq^1 (-184) + H3O^1 (-847) -> H^0 (-1286) +*** G4Scheduler ends at time : 1 us ___________________________________ Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/medical/dna/chem3/chem3.out b/examples/extended/medical/dna/chem3/chem3.out index f989e8a523..a8dca880b2 100644 --- a/examples/extended/medical/dna/chem3/chem3.out +++ b/examples/extended/medical/dna/chem3/chem3.out @@ -4,14 +4,12 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -*** WARNING : the G4DNAChampionElasticModel class is not activated below 7.4 eV ! -*** NOTE: if you are using G4EmDNAChemistry, do not worry, this is the expected behavior Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -39,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -61,7 +61,8 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -90,6 +91,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -115,10 +120,6 @@ e-_G4DNAAttachment: for e- SubType= 55 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV -e-_G4DNAElectronSolvatation: for e- SubType= 58 BuildTable= 0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNASancheSolvatationModel : Emin= 0 eV Emax= 8.22 eV - msc: for e+ SubType= 10 RangeFactor= 0.04, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -204,64 +205,54 @@ H^0 + H^0 -> H_2^0 1.2e+10 0.226528 ---------------------------------------------------------------------------------------------------------------------------- DNAMolecularStepByStepModel will be used *** G4Scheduler starts processing -At time : 9.43012 ps Reaction : OH^-1 (-114) + H3O^1 (-162) -> No product -At time : 25.6094 ps Reaction : e_aq^1 (-77) + H3O^1 (-126) -> H^0 (-224) -At time : 37.126 ps Reaction : H^0 (-216) + OH^0 (-201) -> No product -At time : 57.4829 ps Reaction : e_aq^1 (-102) + OH^0 (-121) -> OH^-1 (-225) -At time : 135.023 ps Reaction : OH^-1 (-225) + H3O^1 (-120) -> No product -At time : 138.023 ps Reaction : H^0 (-212) + OH^0 (-181) -> No product -At time : 138.023 ps Reaction : e_aq^1 (-47) + OH^0 (-135) -> OH^-1 (-226) -At time : 150.023 ps Reaction : OH^-1 (-226) + H3O^1 (-168) -> No product -At time : 168.023 ps Reaction : e_aq^1 (-52) + OH^0 (-218) -> OH^-1 (-227) -At time : 174.023 ps Reaction : e_aq^1 (-76) + OH^0 (-193) -> OH^-1 (-228) -At time : 208.15 ps Reaction : OH^0 (-131) + OH^0 (-133) -> H2O2^0 (-229) -At time : 247.279 ps Reaction : OH^0 (-185) + OH^0 (-190) -> H2O2^0 (-230) -At time : 250.279 ps Reaction : OH^-1 (-227) + H3O^1 (-170) -> No product -At time : 318.66 ps Reaction : OH^0 (-211) + H^0 (-210) -> No product -At time : 360.66 ps Reaction : OH^0 (-199) + OH^0 (-127) -> H2O2^0 (-231) -At time : 372.66 ps Reaction : OH^-1 (-228) + H3O^1 (-128) -> No product -At time : 550.224 ps Reaction : e_aq^1 (-90) + OH^0 (-145) -> OH^-1 (-232) -At time : 610.224 ps Reaction : OH^0 (-219) + e_aq^1 (-46) -> OH^-1 (-233) -At time : 665.118 ps Reaction : OH^-1 (-233) + H3O^1 (-146) -> No product -At time : 754.808 ps Reaction : OH^-1 (-232) + H3O^1 (-164) -> No product -At time : 788.372 ps Reaction : e_aq^1 (-31) + OH^0 (-141) -> OH^-1 (-234) -At time : 852.968 ps Reaction : OH^0 (-153) + OH^0 (-179) -> H2O2^0 (-235) -At time : 1.02138 ns Reaction : H3O^1 (-140) + OH^-1 (-234) -> No product -At time : 1.07258 ns Reaction : e_aq^1 (-111) + H3O^1 (-118) -> H^0 (-236) -At time : 1.21484 ns Reaction : e_aq^1 (-91) + OH^0 (-129) -> OH^-1 (-237) -At time : 1.22484 ns Reaction : OH^0 (-207) + e_aq^1 (-59) -> OH^-1 (-238) -At time : 1.24484 ns Reaction : OH^0 (-163) + OH^0 (-175) -> H2O2^0 (-239) -At time : 1.24484 ns Reaction : e_aq^1 (-56) + H3O^1 (-132) -> H^0 (-240) -At time : 1.26484 ns Reaction : H^0 (-206) + OH^0 (-147) -> No product -At time : 1.36984 ns Reaction : e_aq^1 (-58) + OH^0 (-209) -> OH^-1 (-241) -At time : 1.63515 ns Reaction : e_aq^1 (-95) + H2O2^0 (-230) -> OH^-1 (-242) + OH^0 (-243) -At time : 1.75515 ns Reaction : H^0 (-240) + OH^0 (-115) -> No product -At time : 1.81625 ns Reaction : OH^0 (-223) + OH^0 (-167) -> H2O2^0 (-244) -At time : 2.42175 ns Reaction : e_aq^1 (-37) + e_aq^1 (-42) -> OH^-1 (-245) + OH^-1 (-246) + H_2^0 (-247) -At time : 2.87292 ns Reaction : OH^0 (-143) + OH^0 (-165) -> H2O2^0 (-248) -At time : 2.88292 ns Reaction : OH^-1 (-241) + H3O^1 (-182) -> No product -At time : 3.08799 ns Reaction : OH^-1 (-238) + H3O^1 (-166) -> No product -At time : 3.50787 ns Reaction : e_aq^1 (-68) + H2O2^0 (-229) -> OH^-1 (-249) + OH^0 (-250) -At time : 4.20635 ns Reaction : OH^-1 (-242) + H3O^1 (-160) -> No product -At time : 4.65167 ns Reaction : OH^0 (-119) + OH^0 (-159) -> H2O2^0 (-251) -At time : 5.56376 ns Reaction : e_aq^1 (-40) + OH^0 (-161) -> OH^-1 (-252) -At time : 7.58881 ns Reaction : OH^0 (-125) + OH^0 (-187) -> H2O2^0 (-253) -At time : 7.75056 ns Reaction : H2O2^0 (-248) + e_aq^1 (-89) -> OH^-1 (-254) + OH^0 (-255) -At time : 7.78056 ns Reaction : e_aq^1 (-112) + H2O2^0 (-251) -> OH^-1 (-256) + OH^0 (-257) -At time : 7.85056 ns Reaction : e_aq^1 (-55) + OH^0 (-183) -> OH^-1 (-258) -At time : 8.00056 ns Reaction : OH^-1 (-237) + H3O^1 (-174) -> No product -At time : 8.78496 ns Reaction : OH^-1 (-249) + H3O^1 (-184) -> No product -At time : 9.78819 ns Reaction : OH^-1 (-252) + H3O^1 (-186) -> No product -At time : 10.1165 ns Reaction : e_aq^1 (-103) + H^0 (-202) -> OH^-1 (-259) + H_2^0 (-260) -At time : 11.1165 ns Reaction : H3O^1 (-220) + OH^-1 (-254) -> No product -At time : 11.1165 ns Reaction : e_aq^1 (-69) + H3O^1 (-194) -> H^0 (-261) -At time : 13.4179 ns Reaction : OH^-1 (-256) + H3O^1 (-116) -> No product -At time : 13.9179 ns Reaction : OH^-1 (-258) + H3O^1 (-172) -> No product -At time : 19.2074 ns Reaction : OH^0 (-221) + e_aq^1 (-53) -> OH^-1 (-262) -At time : 21.4331 ns Reaction : OH^0 (-243) + H^0 (-208) -> No product -At time : 26.1514 ns Reaction : H3O^1 (-124) + OH^-1 (-262) -> No product -At time : 67.3931 ns Reaction : H3O^1 (-138) + OH^-1 (-259) -> No product -*** G4Scheduler ends at time : 100 ns +At time : 1 ps Reaction : e_aq^1 (-89) + OH^0 (-212) -> OH^-1 (-224) +At time : 1 ps Reaction : OH^0 (-210) + e_aq^1 (-94) -> OH^-1 (-225) +At time : 1 ps Reaction : OH^-1 (-224) + H3O^1 (-186) -> No product +At time : 1.9 ps Reaction : e_aq^1 (-64) + OH^0 (-195) -> OH^-1 (-226) +At time : 39.8996 ps Reaction : OH^0 (-181) + H^0 (-200) -> No product +At time : 42.8996 ps Reaction : e_aq^1 (-56) + OH^0 (-123) -> OH^-1 (-227) +At time : 43.8996 ps Reaction : H3O^1 (-164) + OH^-1 (-227) -> No product +At time : 47.8996 ps Reaction : OH^-1 (-115) + H3O^1 (-140) -> No product +At time : 90.1752 ps Reaction : e_aq^1 (-60) + OH^0 (-196) -> OH^-1 (-228) +At time : 107.637 ps Reaction : OH^0 (-125) + OH^0 (-159) -> H2O2^0 (-229) +At time : 156.124 ps Reaction : OH^0 (-137) + OH^0 (-155) -> H2O2^0 (-230) +At time : 435.85 ps Reaction : OH^0 (-206) + e_aq^1 (-78) -> OH^-1 (-231) +At time : 438.85 ps Reaction : e_aq^1 (-65) + H2O2^0 (-229) -> OH^-1 (-232) + OH^0 (-233) +At time : 470.371 ps Reaction : H^0 (-207) + OH^0 (-113) -> No product +At time : 473.371 ps Reaction : OH^-1 (-232) + H3O^1 (-144) -> No product +At time : 610.74 ps Reaction : OH^0 (-139) + OH^0 (-169) -> H2O2^0 (-234) +At time : 616.74 ps Reaction : H3O^1 (-148) + OH^-1 (-226) -> No product +At time : 616.74 ps Reaction : e_aq^1 (-86) + OH^0 (-147) -> OH^-1 (-235) +At time : 639.588 ps Reaction : e_aq^1 (-62) + H3O^1 (-160) -> H^0 (-236) +At time : 680.859 ps Reaction : OH^0 (-149) + OH^0 (-190) -> H2O2^0 (-237) +At time : 725.1 ps Reaction : OH^-1 (-112) + H3O^1 (-124) -> No product +At time : 875.795 ps Reaction : OH^-1 (-228) + H3O^1 (-197) -> No product +At time : 1.18259 ns Reaction : e_aq^1 (-100) + OH^0 (-135) -> OH^-1 (-238) +At time : 2.17798 ns Reaction : OH^-1 (-118) + H3O^1 (-128) -> No product +At time : 3.01452 ns Reaction : OH^0 (-209) + e_aq^1 (-108) -> OH^-1 (-239) +At time : 3.65843 ns Reaction : e_aq^1 (-63) + H2O2^0 (-230) -> OH^-1 (-240) + OH^0 (-241) +At time : 3.67843 ns Reaction : e_aq^1 (-55) + OH^0 (-127) -> OH^-1 (-242) +At time : 3.8277 ns Reaction : H3O^1 (-156) + OH^-1 (-238) -> No product +At time : 4.16219 ns Reaction : H3O^1 (-158) + OH^-1 (-242) -> No product +At time : 5.20463 ns Reaction : H3O^1 (-214) + OH^-1 (-240) -> No product +At time : 6.17718 ns Reaction : OH^0 (-143) + OH^0 (-175) -> H2O2^0 (-243) +At time : 7.3527 ns Reaction : OH^-1 (-231) + H3O^1 (-168) -> No product +At time : 8.33291 ns Reaction : e_aq^1 (-36) + OH^0 (-219) -> OH^-1 (-244) +At time : 8.38291 ns Reaction : OH^0 (-223) + e_aq^1 (-31) -> OH^-1 (-245) +At time : 9.07602 ns Reaction : H^0 (-211) + OH^0 (-179) -> No product +At time : 9.2602 ns Reaction : H3O^1 (-130) + OH^-1 (-235) -> No product +At time : 10.6283 ns Reaction : e_aq^1 (-42) + OH^0 (-121) -> OH^-1 (-246) +At time : 12.9638 ns Reaction : e_aq^1 (-87) + H3O^1 (-122) -> H^0 (-247) +At time : 14.1638 ns Reaction : OH^0 (-157) + OH^0 (-177) -> H2O2^0 (-248) +At time : 14.5638 ns Reaction : OH^0 (-216) + OH^0 (-167) -> H2O2^0 (-249) +At time : 16.9767 ns Reaction : e_aq^1 (-91) + H2O2^0 (-237) -> OH^-1 (-250) + OH^0 (-251) +At time : 17.9062 ns Reaction : H3O^1 (-166) + OH^-1 (-244) -> No product +At time : 18.0062 ns Reaction : e_aq^1 (-76) + e_aq^1 (-81) -> OH^-1 (-252) + OH^-1 (-253) + H_2^0 (-254) +At time : 19.8231 ns Reaction : e_aq^1 (-37) + H2O2^0 (-234) -> OH^-1 (-255) + OH^0 (-256) +At time : 29.514 ns Reaction : H^0 (-217) + OH^0 (-173) -> No product +At time : 33.2912 ns Reaction : e_aq^1 (-45) + e_aq^1 (-40) -> OH^-1 (-257) + OH^-1 (-258) + H_2^0 (-259) +At time : 38.9553 ns Reaction : OH^-1 (-258) + H3O^1 (-134) -> No product +*** G4Scheduler ends at time : 100 ns ___________________________________ Seed used :9876 Graphics systems deleted. diff --git a/examples/extended/medical/dna/clustering/GNUmakefile b/examples/extended/medical/dna/clustering/GNUmakefile new file mode 100644 index 0000000000..9b99751f2c --- /dev/null +++ b/examples/extended/medical/dna/clustering/GNUmakefile @@ -0,0 +1,19 @@ +# $Id: GNUmakefile 97836 2016-06-15 09:44:26Z gcosmo $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := clustering +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/architecture.gmk + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/medical/dna/clustering/History b/examples/extended/medical/dna/clustering/History index 5c1a535ed4..04c7c53878 100644 --- a/examples/extended/medical/dna/clustering/History +++ b/examples/extended/medical/dna/clustering/History @@ -14,6 +14,9 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - + +15-06-16 Gunter Folger ( clustering-V10-02-00) +- add GNUmakefile and reference output (clustering.out) + 22-10-15 SI (clustering-V10-01-00) - created diff --git a/examples/extended/medical/dna/clustering/clustering.out b/examples/extended/medical/dna/clustering/clustering.out index a47434c1d9..b1d1f1e2b4 100644 --- a/examples/extended/medical/dna/clustering/clustering.out +++ b/examples/extended/medical/dna/clustering/clustering.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -59,7 +61,8 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -88,6 +91,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== diff --git a/examples/extended/medical/dna/dnaphysics/History b/examples/extended/medical/dna/dnaphysics/History index 46192fbefc..a486e71e03 100644 --- a/examples/extended/medical/dna/dnaphysics/History +++ b/examples/extended/medical/dna/dnaphysics/History @@ -5,6 +5,19 @@ Package History file -------------------- +03 June 2016 - tag dnaphysics-V10-02-02 - M. Karamitros +- SteppingAction: add label for solvation +- dnaphysics.cc: second arg is nb of threads + +02 June 2016 - tag dnaphysics-V10-02-01 - V. Ivanchenko +- DetectorConstructor, DetectorMessenger - ensure that geometry + is created once, material may be changed for next runs +- /run/initialise moved from the code to macro +- DNA physics configuration is moved from the code to macro + +28 May 2016 - tag dnaphysics-V10-02-00 - S. Incerti +- added flagProcess value for electron capture + 13 November 2015 - tag dnaphysics-V10-01-04 - V. Ivanchenko - use G4EmModelActivator to define DNA physics diff --git a/examples/extended/medical/dna/dnaphysics/dnaphysics.cc b/examples/extended/medical/dna/dnaphysics/dnaphysics.cc index 40bfedc894..fcd6b5472c 100755 --- a/examples/extended/medical/dna/dnaphysics/dnaphysics.cc +++ b/examples/extended/medical/dna/dnaphysics/dnaphysics.cc @@ -70,7 +70,8 @@ int main(int argc,char** argv) #ifdef G4MULTITHREADED G4MTRunManager* runManager = new G4MTRunManager; - runManager->SetNumberOfThreads(2); + if(argc==3) runManager->SetNumberOfThreads(atoi(argv[2])); + else runManager->SetNumberOfThreads(2); #else G4RunManager* runManager = new G4RunManager; #endif @@ -83,10 +84,6 @@ int main(int argc,char** argv) runManager->SetUserInitialization(new ActionInitialization()); - // Initialize G4 kernel - - runManager->Initialize(); - #ifdef G4VIS_USE G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); diff --git a/examples/extended/medical/dna/dnaphysics/dnaphysics.in b/examples/extended/medical/dna/dnaphysics/dnaphysics.in index 38d00558c4..e0954b8bf6 100755 --- a/examples/extended/medical/dna/dnaphysics/dnaphysics.in +++ b/examples/extended/medical/dna/dnaphysics/dnaphysics.in @@ -1,11 +1,18 @@ /tracking/verbose 0 /run/verbose 2 +/control/verbose 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 +/process/em/auger true +/process/em/deexcitationIgnoreCut true +/process/em/AddDNARegion World Opt0 + +/run/initialize + /gun/particle e- #/gun/particle proton #/gun/particle hydrogen @@ -16,7 +23,4 @@ #/gun/ion 14 28 /gun/energy 1 keV -/process/em/auger true -/process/em/deexcitationIgnoreCut true - /run/beamOn 100 diff --git a/examples/extended/medical/dna/dnaphysics/dnaphysics.out b/examples/extended/medical/dna/dnaphysics/dnaphysics.out index de0531dd52..132718566b 100644 --- a/examples/extended/medical/dna/dnaphysics/dnaphysics.out +++ b/examples/extended/medical/dna/dnaphysics/dnaphysics.out @@ -4,31 +4,12 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* - -***** Table : Nb of materials = 1 ***** - - Material: G4_WATER H_2O density: 1.000 g/cm3 RadL: 36.083 cm Nucl.Int.Length: 75.375 cm - Imean: 78.000 eV - - ---> 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: 11.19 % ElmAbundance 66.67 % - - ---> Element: O (O) Z = 8.0 N = 16 A = 15.999 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: 88.81 % ElmAbundance 33.33 % - - - Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -56,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -76,9 +59,64 @@ Some /vis commands (optionally) take a string to specify colour. Available colours: black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow +# 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 +/run/geometryModified +/process/em/auger true +/run/physicsModified +/process/em/deexcitationIgnoreCut true +/run/physicsModified +/process/em/AddDNARegion World Opt0 +/run/initialize +userDetector->Construct() start. + +***** Table : Nb of materials = 1 ***** + + Material: G4_WATER H_2O density: 1.000 g/cm3 RadL: 36.083 cm Nucl.Int.Length: 75.375 cm + Imean: 78.000 eV + + ---> 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: 11.19 % ElmAbundance 66.67 % + + ---> Element: O (O) Z = 8.0 N = 16 A = 15.999 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: 88.81 % ElmAbundance 33.33 % + + + +World is registered to the default region. +physicsList->Construct() start. +physicsList->CheckParticleList() start. +physicsList->setCut() start. +/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 1 keV +/run/beamOn 100 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 1 + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : + issued by : *** WARNING: the G4DNAScreenedRutherfordElasticModel class is not validated below 9 eV + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -107,15 +145,14 @@ Rayl: for gamma SubType= 11 BuildTable= 1 msc: for e- SubType= 10 RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 1 MeV Emax= 100 MeV Table with 140 bins Emin= 1 MeV Emax= 10 TeV - UrbanMsc : Emin= 100 MeV Emax= 10 TeV Table with 140 bins Emin= 1 MeV Emax= 10 TeV + UrbanMsc : Emin= 1 MeV Emax= 100 MeV Table with 40 bins Emin= 1 MeV Emax= 100 MeV + WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV eIoni: for e- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 220 bins Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 1 MeV Emax= 1 MeV deltaVI MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI eBrem: for e- SubType= 3 @@ -126,6 +163,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 @@ -135,37 +179,35 @@ CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAScreenedRutherfordElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNAScreenedRutherfordElasticModel : Emin= 0 eV Emax= 11 eV -DNAScreenedRutherfordElasticModel : Emin= 11 eV Emax= 1 MeV +DNAScreenedRutherfordElasticModel : Emin= 0 eV Emax= 7.4 eV +DNAChampionElasticModel : Emin= 7.4 eV Emax= 1 MeV DummyModel : Emin= 1 MeV Emax= 10 TeV e-_G4DNAExcitation: for e- SubType= 52 BuildTable= 0 Total cross sections computed from DNABornExcitationModel ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNABornExcitationModel : Emin= 0 eV Emax= 100 eV -DNABornExcitationModel : Emin= 100 eV Emax= 1 MeV +DNAEmfietzoglouExcitationModel : Emin= 0 eV Emax= 10 keV +DNABornExcitationModel : Emin= 10 keV Emax= 1 MeV DummyModel : Emin= 1 MeV Emax= 10 TeV e-_G4DNAVibExcitation: for e- SubType= 54 BuildTable= 0 Total cross sections computed from DNASancheExcitationModel ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNASancheExcitationModel : Emin= 0 eV Emax= 11 eV -DNASancheExcitationModel : Emin= 11 eV Emax= 100 eV +DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV DummyModel : Emin= 100 eV Emax= 10 TeV e-_G4DNAIonisation: for e- SubType= 53 BuildTable= 0 Total cross sections computed from DNABornIonisationModel ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNABornIonisationModel : Emin= 0 eV Emax= 100 eV deltaBorn FluoActive -DNABornIonisationModel : Emin= 100 eV Emax= 1 MeV deltaBorn FluoActive +DNAEmfietzoglouIonisationModel : Emin= 0 eV Emax= 10 keV deltaBorn FluoActive +DNABornIonisationModel : Emin= 10 keV Emax= 1 MeV deltaBorn FluoActive DummyModel : Emin= 1 MeV Emax= 10 TeV e-_G4DNAAttachment: for e- SubType= 55 BuildTable= 0 Total cross sections computed from DNAMeltonAttachmentModel ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNAMeltonAttachmentModel : Emin= 0 eV Emax= 11 eV -DNAMeltonAttachmentModel : Emin= 11 eV Emax= 13 eV - DummyModel : Emin= 100 eV Emax= 10 TeV +DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV + DummyModel : Emin= 13 eV Emax= 10 TeV msc: for e+ SubType= 10 RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5 @@ -189,6 +231,13 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -209,7 +258,6 @@ hIoni: for proton SubType= 2 Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 2 MeV deltaVI BetheBloch : Emin= 100 MeV Emax= 10 TeV deltaVI hBrems: for proton SubType= 3 @@ -239,24 +287,23 @@ nuclearStopping: for proton SubType= 8 BuildTable= 0 proton_G4DNAElastic: for proton SubType= 51 BuildTable= 0 Total cross sections computed from DNAIonElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DNAIonElasticModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 10 TeV + DummyModel : Emin= 0 eV Emax= 10 TeV proton_G4DNAExcitation: for proton SubType= 52 BuildTable= 0 Total cross sections computed from DNAMillerGreenExcitationModel and DNABornExcitationModel models ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 100 eV DNAMillerGreenExcitationModel : Emin= 100 eV Emax= 500 keV - DummyModel : Emin= 500 keV Emax= 500 keV DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV + DummyModel : Emin= 100 MeV Emax= 10 TeV proton_G4DNAIonisation: for proton SubType= 53 BuildTable= 0 Total cross sections computed from DNARuddIonisationModel and DNABornIonisationModel models ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNARuddIonisationModel : Emin= 0 eV Emax= 100 eV deltaRudd FluoActive DNARuddIonisationModel : Emin= 100 eV Emax= 500 keV deltaRudd FluoActive - DummyModel : Emin= 500 keV Emax= 500 keV DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn FluoActive + DummyModel : Emin= 100 MeV Emax= 10 TeV proton_G4DNAChargeDecrease: for proton SubType= 56 BuildTable= 0 Total cross sections computed from DNADingfelderChargeDecreaseModel model @@ -274,8 +321,7 @@ ionIoni: for GenericIon SubType= 2 Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BraggIon : Emin= 0 eV Emax= 2 MeV deltaVI - BetheBloch : Emin= 1 TeV Emax= 10 TeV deltaVI + BetheBloch : Emin= 1 GeV Emax= 10 TeV deltaVI nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -284,9 +330,8 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 GenericIon_G4DNAIonisation: for GenericIon SubType= 53 BuildTable= 0 Total cross sections computed from DNARuddIonisationExtendedModel ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 100 eV deltaRudd FluoActive -DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 1 TeV deltaRudd FluoActive - DummyModel : Emin= 1 TeV Emax= 10 TeV +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 1 GeV deltaRudd FluoActive + DummyModel : Emin= 1 GeV Emax= 10 TeV msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 @@ -298,7 +343,6 @@ ionIoni: for alpha SubType= 2 Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BraggIon : Emin= 0 eV Emax= 2 MeV deltaVI BetheBloch : Emin= 100 MeV Emax= 10 TeV deltaVI nuclearStopping: for alpha SubType= 8 BuildTable= 0 @@ -308,14 +352,13 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0 alpha_G4DNAElastic: for alpha SubType= 51 BuildTable= 0 Total cross sections computed from DNAIonElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DNAIonElasticModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 10 TeV + DummyModel : Emin= 0 eV Emax= 10 TeV alpha_G4DNAExcitation: for alpha SubType= 52 BuildTable= 0 Total cross sections computed from DNAMillerGreenExcitationModel ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DummyModel : Emin= 0 eV Emax= 1 keV -DNAMillerGreenExcitationModel : Emin= 1 keV Emax= 100 MeV +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 100 MeV + DummyModel : Emin= 100 MeV Emax= 10 TeV alpha_G4DNAIonisation: for alpha SubType= 53 BuildTable= 0 Total cross sections computed from DNARuddIonisationModel @@ -326,8 +369,8 @@ DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 100 MeV delt alpha_G4DNAChargeDecrease: for alpha SubType= 56 BuildTable= 0 Total cross sections computed from DNADingfelderChargeDecreaseModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DummyModel : Emin= 0 eV Emax= 1 keV -DNADingfelderChargeDecreaseModel : Emin= 1 keV Emax= 400 MeV +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 400 MeV + DummyModel : Emin= 400 MeV Emax= 10 TeV msc: for anti_proton SubType= 10 RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 @@ -596,13 +639,13 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 0 kByte Total CPU time elapsed for geometry optimisation: 0 seconds ### Run 0 starts. -##### Create analysis manager 0x21e73c0 +##### Create analysis manager 0x12441a0 Using Root analysis manager ... open Root analysis file : dna.root - done Run terminated. Run Summary Number of events processed : 100 - User=5.96s Real=6.3s Sys=0.12s + User=7.75s Real=8.03s Sys=0.23s ... write Root file : dna.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh b/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh index c2de6bfbaf..2a3b9629b5 100755 --- a/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh +++ b/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh @@ -45,6 +45,8 @@ class G4Region; class DetectorMessenger; +class G4LogicalVolume; +class G4PVPlacement; class DetectorConstruction : public G4VUserDetectorConstruction { @@ -56,7 +58,6 @@ public: virtual G4VPhysicalVolume* Construct(); void SetMaterial(G4String); - void UpdateGeometry(); private: G4Material* fpWaterMaterial; @@ -65,6 +66,7 @@ private: G4VPhysicalVolume* ConstructDetector(); DetectorMessenger* fDetectorMessenger; - + G4LogicalVolume* fLogicWorld; + G4PVPlacement* fPhysiWorld; }; #endif diff --git a/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh b/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh index ceb0aecd5b..afa3ec98b7 100644 --- a/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh +++ b/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh @@ -58,7 +58,6 @@ class DetectorMessenger: public G4UImessenger private: DetectorConstruction* fpDetector; G4UIcmdWithAString* fpMaterCmd; - G4UIcmdWithoutParameter* fpUpdateCmd; }; #endif diff --git a/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc b/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc index 0c2c6886a0..6771fecee7 100755 --- a/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc +++ b/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc @@ -45,7 +45,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DetectorConstruction::DetectorConstruction() : - G4VUserDetectorConstruction(), fpWaterMaterial(0) + G4VUserDetectorConstruction(), fpWaterMaterial(nullptr), + fLogicWorld(nullptr),fPhysiWorld(nullptr) { // create commands for interactive definition of the detector fDetectorMessenger = new DetectorMessenger(this); @@ -63,6 +64,7 @@ DetectorConstruction::~DetectorConstruction() G4VPhysicalVolume* DetectorConstruction::Construct() { + if(fPhysiWorld) { return fPhysiWorld; } DefineMaterials(); return ConstructDetector(); } @@ -98,11 +100,7 @@ void DetectorConstruction::DefineMaterials() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4VPhysicalVolume* DetectorConstruction::ConstructDetector() { - - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - // WORLD VOLUME - G4double worldSizeX = 100 * micrometer; G4double worldSizeY = worldSizeX; G4double worldSizeZ = worldSizeX; @@ -110,22 +108,22 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDetector() G4Box* solidWorld = new G4Box("World", //its name worldSizeX / 2, worldSizeY / 2, worldSizeZ / 2); //its size - G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, //its solid + fLogicWorld = new G4LogicalVolume(solidWorld, //its solid fpWaterMaterial, //its material "World"); //its name - G4PVPlacement* physiWorld = new G4PVPlacement(0, //no rotation + fPhysiWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) "World", //its name - logicWorld, //its logical volume + fLogicWorld, //its logical volume 0, //its mother volume false, //no boolean operation 0); //copy number - // Visualization attributes - G4VisAttributes* worldVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 1.0)); //White + // Visualization attributes - white + G4VisAttributes* worldVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 1.0)); worldVisAtt->SetVisibility(true); - logicWorld->SetVisAttributes(worldVisAtt); + fLogicWorld->SetVisAttributes(worldVisAtt); G4VisAttributes* worldVisAtt1 = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0)); worldVisAtt1->SetVisibility(true); @@ -135,7 +133,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDetector() // //logicWorld->SetUserLimits(new G4UserLimits(DBL_MAX,DBL_MAX,DBL_MAX,20*eV)); - return physiWorld; + return fPhysiWorld; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -149,17 +147,11 @@ void DetectorConstruction::SetMaterial(G4String materialChoice) if (pttoMaterial) { fpWaterMaterial = pttoMaterial; - G4LogicalVolume* logicWorld = - G4LogicalVolumeStore::GetInstance()->GetVolume("World"); - logicWorld->SetMaterial(fpWaterMaterial); + if(fLogicWorld) { + fLogicWorld->SetMaterial(fpWaterMaterial); + } G4RunManager::GetRunManager()->GeometryHasBeenModified(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::UpdateGeometry() -{ - G4RunManager::GetRunManager()->GeometryHasBeenModified(); - G4RunManager::GetRunManager()->DefineWorldVolume(ConstructDetector()); -} diff --git a/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc b/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc index 48ad4e9e80..7e1a9d8801 100644 --- a/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc +++ b/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc @@ -52,12 +52,6 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) : fpMaterCmd->SetGuidance("Select material of the world."); fpMaterCmd->SetParameterName("choice", false); fpMaterCmd->AvailableForStates(G4State_PreInit, G4State_Idle); - - fpUpdateCmd = new G4UIcmdWithoutParameter("/dna/det/update", this); - fpUpdateCmd->SetGuidance("Update geometry."); - fpUpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); - fpUpdateCmd->SetGuidance("if you changed geometrical value(s)."); - fpUpdateCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,7 +59,6 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) : DetectorMessenger::~DetectorMessenger() { delete fpMaterCmd; - delete fpUpdateCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,8 +66,6 @@ DetectorMessenger::~DetectorMessenger() void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == fpMaterCmd) fpDetector->SetMaterial(newValue); - else if (command == fpUpdateCmd) fpDetector->UpdateGeometry(); - } //....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 d3ed71bf02..dc530e1662 100755 --- a/examples/extended/medical/dna/dnaphysics/src/PhysicsList.cc +++ b/examples/extended/medical/dna/dnaphysics/src/PhysicsList.cc @@ -38,7 +38,7 @@ #include "G4SystemOfUnits.hh" #include "G4EmDNAPhysics.hh" #include "G4EmStandardPhysics_option4.hh" -#include "G4EmParameters.hh" +#include "G4DecayPhysics.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,7 @@ PhysicsList::PhysicsList() SetVerboseLevel(1); // RegisterPhysics(new G4EmDNAPhysics()); RegisterPhysics(new G4EmStandardPhysics_option4()); - G4EmParameters::Instance()->AddDNA("World","Opt0"); + RegisterPhysics(new G4DecayPhysics()); G4ProductionCutsTable::GetProductionCutsTable()-> SetEnergyRange(100*eV, 1*GeV); } diff --git a/examples/extended/medical/dna/dnaphysics/src/SteppingAction.cc b/examples/extended/medical/dna/dnaphysics/src/SteppingAction.cc index f702167112..fabc6d8bef 100755 --- a/examples/extended/medical/dna/dnaphysics/src/SteppingAction.cc +++ b/examples/extended/medical/dna/dnaphysics/src/SteppingAction.cc @@ -122,7 +122,8 @@ void SteppingAction::UserSteppingAction(const G4Step* step) else if (particleName == "helium") flagParticle = 6; // Processes - if (processName=="e-_G4DNAElastic") flagProcess =11; + if (processName=="Capture"||processName=="e-_G4DNAElectronSolvation") flagProcess =1; + else if (processName=="e-_G4DNAElastic") flagProcess =11; else if (processName=="e-_G4DNAExcitation") flagProcess =12; else if (processName=="e-_G4DNAIonisation") flagProcess =13; else if (processName=="e-_G4DNAAttachment") flagProcess =14; diff --git a/examples/extended/medical/dna/microdosimetry/History b/examples/extended/medical/dna/microdosimetry/History index fdeae37e18..b654e3b6ac 100644 --- a/examples/extended/medical/dna/microdosimetry/History +++ b/examples/extended/medical/dna/microdosimetry/History @@ -9,6 +9,13 @@ $Id: History 73136 2013-08-19 14:28:09Z sincerti $ Package History file -------------------- +04 June 2016 - V.Ivanchenko - microdosimetry-V10-02-01 +- Fix PhysicsList + +31 May 2016 - M. Karamitros - microdosimetry-V10-02-00 +- Increase cuts of G4ElectronCapture to 7.4 eV to remain compatible + with the energy validity of the Champion's elastic model + 17 Sep 2015 - S. Incerti - microdosimetry-V10-01-00 - Applied coding guidelines diff --git a/examples/extended/medical/dna/microdosimetry/microdosimetry.out b/examples/extended/medical/dna/microdosimetry/microdosimetry.out index 2630aa4c8b..1dd76e0c5c 100644 --- a/examples/extended/medical/dna/microdosimetry/microdosimetry.out +++ b/examples/extended/medical/dna/microdosimetry/microdosimetry.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -38,16 +38,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -123,7 +125,6 @@ hIoni: for proton SubType= 2 BraggIonGas : Emin= 0 eV Emax= 2 MeV BetheBlochGasIon : Emin= 2 MeV Emax= 10 TeV ===== EM models for the G4Region Target ====== - BraggIonGas : Emin= 9.9 MeV Emax= 2 MeV BetheBlochGasIon : Emin= 9.9 MeV Emax= 10 TeV proton_G4DNAExcitation: for proton SubType= 52 BuildTable= 0 @@ -155,7 +156,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIonGas : Emin= 0 eV Emax= 2 MeV @@ -169,12 +170,11 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIonGas : Emin= 0 eV Emax= 7.9452 MeV BetheBlochGasIon : Emin= 7.9452 MeV Emax= 10 TeV ===== EM models for the G4Region Target ====== - BraggIonGas : Emin= 9.9 MeV Emax= 2 MeV BetheBlochGasIon : Emin= 9.9 MeV Emax= 10 TeV alpha_G4DNAExcitation: for alpha SubType= 52 BuildTable= 0 @@ -243,12 +243,12 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 2 - User=76.97s Real=77.09s Sys=0.01s + User=45.57s Real=45.8s Sys=0.02s Number and type of particles created outside region "Target" : -N e- : 4918 +N e- : 5034 _______________________ Number and type of particles created in region "Target" : -N e- : 45467 +N e- : 44907 Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -260,9 +260,9 @@ UserPrimaryGenerator deleted. RunManager is deleting RunManagerKernel. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 8 +Total navigation history collections cleaned: 7 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.00961 MB +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 diff --git a/examples/extended/medical/dna/microdosimetry/src/PhysicsList.cc b/examples/extended/medical/dna/microdosimetry/src/PhysicsList.cc index 5595dd53d2..a1a320fcdf 100755 --- a/examples/extended/medical/dna/microdosimetry/src/PhysicsList.cc +++ b/examples/extended/medical/dna/microdosimetry/src/PhysicsList.cc @@ -62,6 +62,8 @@ #include "G4DNAVibExcitation.hh" #include "G4DNASancheExcitationModel.hh" +#include "G4DNAElectronSolvation.hh" + // #include "G4LossTableManager.hh" @@ -177,7 +179,8 @@ void PhysicsList::ConstructEM() // STANDARD msc is active in the world G4eMultipleScattering* msc = new G4eMultipleScattering(); - pmanager->AddProcess(msc, -1, 1, 1); + msc->AddEmModel(1,new G4UrbanMscModel()); + pmanager->AddProcess(msc, -1, 1, -1); // STANDARD ionisation is active in the world G4eIonisation* eion = new G4eIonisation(); @@ -213,14 +216,16 @@ void PhysicsList::ConstructEM() // THE FOLLOWING PROCESS WILL KILL ALL ELECTRONS BELOW A // SELECTED ENERY THRESHOLD // Capture of low-energy e- - G4ElectronCapture* ecap = new G4ElectronCapture("Target", 5.1*eV); + G4ElectronCapture* ecap = new G4ElectronCapture("Target", 7.4*eV); pmanager->AddDiscreteProcess(ecap); - + // 7.4 eV is compatible with the validity range of the Champion's model + } else if ( particleName == "proton" ) { // STANDARD msc is active in the world G4hMultipleScattering* msc = new G4hMultipleScattering(); - pmanager->AddProcess(msc, -1, 1, 1); + msc->AddEmModel(1,new G4UrbanMscModel()); + pmanager->AddProcess(msc, -1, 1, -1); // STANDARD ionisation is active in the world G4hIonisation* hion = new G4hIonisation(); @@ -260,7 +265,9 @@ void PhysicsList::ConstructEM() { // THIS IS NEEDED FOR STANDARD ALPHA G4ionIonisation PROCESS // STANDARD msc is active in the world - pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); + G4hMultipleScattering* msc = new G4hMultipleScattering(); + msc->AddEmModel(1, new G4UrbanMscModel()); + pmanager->AddProcess(msc, -1, 1, -1); // STANDARD ionisation is active in the world G4ionIonisation* hion = new G4ionIonisation(); @@ -272,7 +279,8 @@ void PhysicsList::ConstructEM() // STANDARD msc is active in the world G4hMultipleScattering* msc = new G4hMultipleScattering(); - pmanager->AddProcess(msc, -1, 1, 1); + msc->AddEmModel(1, new G4UrbanMscModel()); + pmanager->AddProcess(msc, -1, 1, -1); // STANDARD ionisation is active in the world G4ionIonisation* hion = new G4ionIonisation(); @@ -345,7 +353,7 @@ void PhysicsList::ConstructEM() // ---> STANDARD EM processes are inactivated below 1 MeV mod = new G4UrbanMscModel(); - mod->SetActivationLowEnergyLimit(1*MeV); + mod->SetActivationLowEnergyLimit(1.*MeV); em_config->SetExtraEmModel("e-","msc",mod,"Target"); mod = new G4MollerBhabhaModel(); @@ -362,24 +370,26 @@ void PhysicsList::ConstructEM() mod = new G4DNAChampionElasticModel(); em_config->SetExtraEmModel("e-","e-_G4DNAElastic", - mod,"Target",0.0,1*MeV); + mod,"Target",7.4*eV,1.*MeV); mod = new G4DNABornIonisationModel(); em_config->SetExtraEmModel("e-","e-_G4DNAIonisation", - mod,"Target",11*eV,1*MeV); + mod,"Target",11.*eV,1.*MeV); + // Note: valid from 11 eV to 0.999.. MeV then switch to std models at + // higher energies ; same for other models mod = new G4DNABornExcitationModel(); em_config->SetExtraEmModel("e-","e-_G4DNAExcitation", - mod,"Target",9*eV,1*MeV); + mod,"Target",9.*eV,1.*MeV); mod = new G4DNAMeltonAttachmentModel(); em_config->SetExtraEmModel("e-","e-_G4DNAAttachment", - mod,"Target",4*eV,13*eV); + mod,"Target",4.*eV,13.*eV); mod = new G4DNASancheExcitationModel(); em_config->SetExtraEmModel("e-","e-_G4DNAVibExcitation", - mod,"Target",2*eV,100*eV); - + mod,"Target",2.*eV,100.*eV); + // *** proton // ---> STANDARD EM processes inactivated below standEnergyLimit diff --git a/examples/extended/medical/dna/microyz/microyz.out b/examples/extended/medical/dna/microyz/microyz.out index 00009510da..07ba2732f6 100644 --- a/examples/extended/medical/dna/microyz/microyz.out +++ b/examples/extended/medical/dna/microyz/microyz.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -81,7 +83,8 @@ Command is ignored. Computed tolerance = 2e-06 nm ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -110,6 +113,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -196,12 +203,12 @@ alpha_G4DNAChargeDecrease: for alpha SubType= 56 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 400 MeV ### Run 0 starts. -##### Create analysis manager 0x21f72c0 +##### Create analysis manager 0x207a680 Using Root analysis manager ... open Root analysis file : yz.root - done --> Event 0 starts. >>> Event: 0 - 34322 hits stored in this event + 34228 hits stored in this event ... write Root file : yz.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/medical/dna/pdb4dna/pdb4dna.out b/examples/extended/medical/dna/pdb4dna/pdb4dna.out index eb80a67560..9acd00fda2 100644 --- a/examples/extended/medical/dna/pdb4dna/pdb4dna.out +++ b/examples/extended/medical/dna/pdb4dna/pdb4dna.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -92,7 +94,8 @@ G4Material WARNING: duplicate name of material Galactic This PDB file is DNA. ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -121,6 +124,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== diff --git a/examples/extended/medical/dna/range/History b/examples/extended/medical/dna/range/History index 42ba971139..6c0a5ecd22 100644 --- a/examples/extended/medical/dna/range/History +++ b/examples/extended/medical/dna/range/History @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +14-03-16 SI (range-V10-02-00) +- changed physics constructor selection + 22-10-15 SI (range-V10-01-02) - updated plot.C to ROOT 6 diff --git a/examples/extended/medical/dna/range/README b/examples/extended/medical/dna/range/README index ca7c2fbb8b..4b353891df 100644 --- a/examples/extended/medical/dna/range/README +++ b/examples/extended/medical/dna/range/README @@ -68,7 +68,7 @@ as protons, hydrogen, alpha particles and their charge states, is specific. ---->4. PHYSICS -You can select Geant4-DNA physics in range.in. +You can select Geant4-DNA physics constructor in range.in. A tracking cut can be applied if requested. diff --git a/examples/extended/medical/dna/range/histo.in b/examples/extended/medical/dna/range/histo.in index 03d07eacbf..693bcde07b 100644 --- a/examples/extended/medical/dna/range/histo.in +++ b/examples/extended/medical/dna/range/histo.in @@ -6,8 +6,8 @@ # /range/det/setTrackingCut 10 eV # -# Register physics constructor -/range/phys/addPhysics G4EmDNAPhysics +# Register physics constructors +/range/phys/addPhysics dna # /run/initialize # diff --git a/examples/extended/medical/dna/range/include/PhysicsList.hh b/examples/extended/medical/dna/range/include/PhysicsList.hh index b880274d1f..a5962d9658 100644 --- a/examples/extended/medical/dna/range/include/PhysicsList.hh +++ b/examples/extended/medical/dna/range/include/PhysicsList.hh @@ -52,12 +52,17 @@ public: PhysicsList(); ~PhysicsList(); - void RegisterConstructor(const G4String& name); + virtual void ConstructParticle(); + + void AddPhysicsList(const G4String& name); + virtual void ConstructProcess(); + void AddTrackingCut(); private: G4String fEmName; + G4VPhysicsConstructor* fEmPhysicsList; PhysicsListMessenger* fMessenger; }; diff --git a/examples/extended/medical/dna/range/range.in b/examples/extended/medical/dna/range/range.in index 7f64d9e8e3..3ce3140096 100644 --- a/examples/extended/medical/dna/range/range.in +++ b/examples/extended/medical/dna/range/range.in @@ -6,8 +6,9 @@ # /range/det/setTrackingCut 10 eV # -# Register physics constructor -/range/phys/addPhysics G4EmDNAPhysics +# Register physics constructors +/range/phys/addPhysics dna +#/range/phys/addPhysics dna_opt4 # /run/initialize # diff --git a/examples/extended/medical/dna/range/range.out b/examples/extended/medical/dna/range/range.out index 2019258c55..f225e1ac2e 100644 --- a/examples/extended/medical/dna/range/range.out +++ b/examples/extended/medical/dna/range/range.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -12,7 +12,7 @@ *** /run/numberOfThreads command is issued in sequential mode. Command is ignored. -PhysicsList::RegisterConstructor: +PhysicsList::AddPhysicsList: --------------------------------------------------------- ---> The tracking cut to all particles is set to 10 eV @@ -36,7 +36,8 @@ PhysicsList::RegisterConstructor: --------------------------------------------------------- ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -65,6 +66,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -155,302 +160,302 @@ DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 400 MeV 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 ) - Track length of primary track = 28.439 nm +- 17.842 nm - Projected range = 4.120 Ang +- 2.896 nm - Penetration = 4.219 nm +- 2.476 nm + Track length of primary track = 28.547 nm +- 17.737 nm + Projected range = 4.021 Ang +- 2.856 nm + Penetration = 4.282 nm +- 2.492 nm ======================= run summary ==================== The run is 1000 e- of 14.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 21.777 nm +- 23.395 nm - Projected range = 4.541 Ang +- 2.412 nm - Penetration = 3.408 nm +- 2.694 nm + Track length of primary track = 23.093 nm +- 24.589 nm + Projected range = 4.353 Ang +- 2.609 nm + Penetration = 3.542 nm +- 2.787 nm ======================= run summary ==================== The run is 1000 e- of 16.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 11.628 nm +- 15.660 nm - Projected range = 5.227 Ang +- 1.791 nm - Penetration = 2.464 nm +- 1.957 nm + Track length of primary track = 11.190 nm +- 14.686 nm + Projected range = 4.218 Ang +- 1.846 nm + Penetration = 2.498 nm +- 2.076 nm ======================= run summary ==================== The run is 1000 e- of 18.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 7.486 nm +- 7.459 nm - Projected range = 4.267 Ang +- 1.583 nm - Penetration = 2.062 nm +- 1.554 nm + Track length of primary track = 7.363 nm +- 8.828 nm + Projected range = 4.252 Ang +- 1.536 nm + Penetration = 1.980 nm +- 1.528 nm ======================= run summary ==================== 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 ) - Track length of primary track = 6.367 nm +- 7.560 nm - Projected range = 5.221 Ang +- 1.350 nm - Penetration = 1.876 nm +- 1.397 nm + Track length of primary track = 6.500 nm +- 7.901 nm + Projected range = 5.043 Ang +- 1.393 nm + Penetration = 1.906 nm +- 1.478 nm ======================= run summary ==================== The run is 1000 e- of 25.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 13.456 nm +- 16.714 nm - Projected range = 5.308 Ang +- 2.038 nm - Penetration = 2.673 nm +- 2.270 nm + Track length of primary track = 13.552 nm +- 16.673 nm + Projected range = 5.685 Ang +- 2.131 nm + Penetration = 2.718 nm +- 2.292 nm ======================= run summary ==================== 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 ) - Track length of primary track = 17.656 nm +- 19.272 nm - Projected range = 5.553 Ang +- 2.204 nm - Penetration = 3.167 nm +- 2.264 nm + Track length of primary track = 17.592 nm +- 18.608 nm + Projected range = 5.155 Ang +- 2.357 nm + Penetration = 3.207 nm +- 2.270 nm ======================= run summary ==================== The run is 1000 e- of 35.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 14.943 nm +- 16.918 nm - Projected range = 6.873 Ang +- 2.253 nm - Penetration = 3.044 nm +- 2.137 nm + Track length of primary track = 15.917 nm +- 17.279 nm + Projected range = 5.306 Ang +- 2.253 nm + Penetration = 3.031 nm +- 2.132 nm ======================= run summary ==================== 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 ) - Track length of primary track = 12.960 nm +- 14.599 nm - Projected range = 6.515 Ang +- 2.060 nm - Penetration = 2.809 nm +- 1.873 nm + Track length of primary track = 12.726 nm +- 14.176 nm + Projected range = 6.972 Ang +- 1.966 nm + Penetration = 2.831 nm +- 1.935 nm ======================= run summary ==================== The run is 1000 e- of 45.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 14.642 nm +- 17.123 nm - Projected range = 8.131 Ang +- 2.277 nm - Penetration = 3.142 nm +- 2.288 nm + Track length of primary track = 13.324 nm +- 15.430 nm + Projected range = 8.399 Ang +- 2.154 nm + Penetration = 2.991 nm +- 2.060 nm ======================= run summary ==================== 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 ) - Track length of primary track = 15.703 nm +- 16.446 nm - Projected range = 8.225 Ang +- 2.407 nm - Penetration = 3.243 nm +- 2.126 nm + Track length of primary track = 15.386 nm +- 16.437 nm + Projected range = 8.455 Ang +- 2.164 nm + Penetration = 3.213 nm +- 2.167 nm ======================= run summary ==================== 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 ) - Track length of primary track = 16.351 nm +- 18.017 nm - Projected range = 9.162 Ang +- 2.469 nm - Penetration = 3.434 nm +- 2.264 nm + Track length of primary track = 15.786 nm +- 16.035 nm + Projected range = 8.845 Ang +- 2.356 nm + Penetration = 3.411 nm +- 2.091 nm ======================= run summary ==================== 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 ) - Track length of primary track = 16.295 nm +- 16.491 nm - Projected range = 1.068 nm +- 2.418 nm - Penetration = 3.508 nm +- 2.279 nm + Track length of primary track = 15.643 nm +- 15.090 nm + Projected range = 9.918 Ang +- 2.409 nm + Penetration = 3.388 nm +- 2.031 nm ======================= run summary ==================== 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 ) - Track length of primary track = 16.754 nm +- 16.567 nm - Projected range = 1.004 nm +- 2.674 nm - Penetration = 3.711 nm +- 2.191 nm + Track length of primary track = 17.016 nm +- 17.532 nm + Projected range = 1.127 nm +- 2.558 nm + Penetration = 3.567 nm +- 2.045 nm ======================= run summary ==================== 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 ) - Track length of primary track = 17.302 nm +- 16.738 nm - Projected range = 1.198 nm +- 2.698 nm - Penetration = 3.815 nm +- 2.200 nm + Track length of primary track = 17.140 nm +- 15.634 nm + Projected range = 1.377 nm +- 2.685 nm + Penetration = 3.857 nm +- 2.291 nm ======================= run summary ==================== 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 ) - Track length of primary track = 16.552 nm +- 15.746 nm - Projected range = 1.475 nm +- 2.587 nm - Penetration = 3.829 nm +- 2.113 nm + Track length of primary track = 17.632 nm +- 16.629 nm + Projected range = 1.482 nm +- 2.784 nm + Penetration = 4.026 nm +- 2.312 nm ======================= run summary ==================== The run is 1000 e- of 150.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 20.088 nm +- 17.400 nm - Projected range = 2.107 nm +- 3.164 nm - Penetration = 4.882 nm +- 2.540 nm + Track length of primary track = 19.380 nm +- 15.273 nm + Projected range = 2.008 nm +- 3.289 nm + Penetration = 4.859 nm +- 2.603 nm ======================= run summary ==================== 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 ) - Track length of primary track = 22.439 nm +- 17.220 nm - Projected range = 3.100 nm +- 3.786 nm - Penetration = 5.934 nm +- 2.925 nm + Track length of primary track = 22.027 nm +- 17.046 nm + Projected range = 3.155 nm +- 3.654 nm + Penetration = 5.918 nm +- 2.821 nm ======================= run summary ==================== The run is 1000 e- of 250.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 23.910 nm +- 16.851 nm - Projected range = 3.799 nm +- 4.298 nm - Penetration = 7.069 nm +- 3.189 nm + Track length of primary track = 24.423 nm +- 17.554 nm + Projected range = 3.711 nm +- 4.415 nm + Penetration = 7.102 nm +- 3.461 nm ======================= run summary ==================== 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 ) - Track length of primary track = 26.956 nm +- 17.206 nm - Projected range = 4.549 nm +- 4.948 nm - Penetration = 8.370 nm +- 3.735 nm + Track length of primary track = 27.805 nm +- 17.770 nm + Projected range = 4.540 nm +- 5.169 nm + Penetration = 8.329 nm +- 3.840 nm ======================= run summary ==================== The run is 1000 e- of 350.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 29.921 nm +- 17.382 nm - Projected range = 5.330 nm +- 6.006 nm - Penetration = 9.735 nm +- 4.505 nm + Track length of primary track = 29.628 nm +- 16.949 nm + Projected range = 5.897 nm +- 5.621 nm + Penetration = 9.781 nm +- 4.278 nm ======================= run summary ==================== 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 ) - Track length of primary track = 33.242 nm +- 17.795 nm - Projected range = 7.261 nm +- 6.655 nm - Penetration = 11.761 nm +- 5.054 nm + Track length of primary track = 33.085 nm +- 17.697 nm + Projected range = 7.033 nm +- 6.681 nm + Penetration = 11.388 nm +- 5.055 nm ======================= run summary ==================== The run is 1000 e- of 450.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 36.485 nm +- 18.517 nm - Projected range = 8.083 nm +- 7.596 nm - Penetration = 13.333 nm +- 5.769 nm + Track length of primary track = 35.863 nm +- 18.032 nm + Projected range = 8.272 nm +- 7.574 nm + Penetration = 13.530 nm +- 5.711 nm ======================= run summary ==================== 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 ) - Track length of primary track = 39.518 nm +- 18.055 nm - Projected range = 9.719 nm +- 7.953 nm - Penetration = 15.256 nm +- 6.217 nm + Track length of primary track = 39.223 nm +- 18.239 nm + Projected range = 9.958 nm +- 8.715 nm + Penetration = 15.658 nm +- 6.687 nm ======================= run summary ==================== 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 ) - Track length of primary track = 45.964 nm +- 19.661 nm - Projected range = 12.764 nm +- 10.367 nm - Penetration = 19.616 nm +- 7.910 nm + Track length of primary track = 46.360 nm +- 19.867 nm + Projected range = 12.494 nm +- 10.246 nm + Penetration = 19.423 nm +- 8.201 nm ======================= run summary ==================== 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 ) - Track length of primary track = 54.609 nm +- 20.687 nm - Projected range = 16.018 nm +- 12.630 nm - Penetration = 24.439 nm +- 10.133 nm + Track length of primary track = 54.491 nm +- 21.624 nm + Projected range = 15.847 nm +- 12.717 nm + Penetration = 24.199 nm +- 9.585 nm ======================= run summary ==================== 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 ) - Track length of primary track = 63.556 nm +- 22.754 nm - Projected range = 18.794 nm +- 14.975 nm - Penetration = 29.271 nm +- 11.094 nm + Track length of primary track = 63.072 nm +- 21.717 nm + Projected range = 19.763 nm +- 15.072 nm + Penetration = 29.645 nm +- 11.847 nm ======================= run summary ==================== 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 ) - Track length of primary track = 71.992 nm +- 23.243 nm - Projected range = 22.621 nm +- 17.611 nm - Penetration = 34.880 nm +- 13.325 nm + Track length of primary track = 72.614 nm +- 24.830 nm + Projected range = 22.933 nm +- 17.477 nm + Penetration = 35.445 nm +- 13.535 nm ======================= run summary ==================== 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 ) - Track length of primary track = 80.299 nm +- 25.381 nm - Projected range = 26.003 nm +- 20.108 nm - Penetration = 39.981 nm +- 15.075 nm + Track length of primary track = 79.813 nm +- 24.176 nm + Projected range = 27.463 nm +- 20.120 nm + Penetration = 40.623 nm +- 15.501 nm ======================= run summary ==================== The run is 1000 e- of 2.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 204.837 nm +- 51.619 nm - Projected range = 84.529 nm +- 57.966 nm - Penetration = 121.320 nm +- 42.865 nm + Track length of primary track = 203.304 nm +- 54.812 nm + Projected range = 83.195 nm +- 56.894 nm + Penetration = 120.642 nm +- 42.572 nm ======================= run summary ==================== The run is 1000 e- of 3.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 380.939 nm +- 93.554 nm - Projected range = 160.522 nm +- 103.623 nm - Penetration = 233.172 nm +- 80.859 nm + Track length of primary track = 378.904 nm +- 95.343 nm + Projected range = 160.664 nm +- 105.314 nm + Penetration = 231.372 nm +- 80.831 nm ======================= run summary ==================== The run is 1000 e- of 4.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 590.367 nm +- 142.883 nm - Projected range = 269.306 nm +- 160.944 nm - Penetration = 379.579 nm +- 123.849 nm + Track length of primary track = 602.276 nm +- 144.353 nm + Projected range = 257.411 nm +- 172.656 nm + Penetration = 380.732 nm +- 127.490 nm ======================= run summary ==================== The run is 1000 e- of 5.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 849.109 nm +- 206.397 nm - Projected range = 399.784 nm +- 231.737 nm - Penetration = 558.877 nm +- 179.483 nm + Track length of primary track = 852.369 nm +- 199.058 nm + Projected range = 415.865 nm +- 224.812 nm + Penetration = 565.576 nm +- 170.946 nm ======================= run summary ==================== The run is 1000 e- of 6.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 1.162 um +- 257.968 nm - Projected range = 565.858 nm +- 311.274 nm - Penetration = 777.130 nm +- 237.448 nm + Track length of primary track = 1.158 um +- 260.845 nm + Projected range = 558.889 nm +- 309.374 nm + Penetration = 766.982 nm +- 241.536 nm ======================= run summary ==================== The run is 1000 e- of 7.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 1.495 um +- 320.473 nm - Projected range = 742.071 nm +- 392.116 nm - Penetration = 1.006 um +- 299.214 nm + Track length of primary track = 1.509 um +- 339.425 nm + Projected range = 712.308 nm +- 419.759 nm + Penetration = 1.002 um +- 298.420 nm ======================= run summary ==================== The run is 1000 e- of 8.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 1.879 um +- 403.474 nm - Projected range = 928.698 nm +- 507.817 nm - Penetration = 1.278 um +- 369.969 nm + Track length of primary track = 1.886 um +- 398.439 nm + Projected range = 940.921 nm +- 497.066 nm + Penetration = 1.292 um +- 377.044 nm ======================= run summary ==================== The run is 1000 e- of 9.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 2.275 um +- 490.133 nm - Projected range = 1.158 um +- 608.412 nm - Penetration = 1.570 um +- 454.295 nm + Track length of primary track = 2.297 um +- 490.928 nm + Projected range = 1.161 um +- 627.456 nm + Penetration = 1.578 um +- 456.248 nm ======================= run summary ==================== The run is 1000 e- of 10.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Track length of primary track = 2.735 um +- 610.520 nm - Projected range = 1.311 um +- 790.330 nm - Penetration = 1.858 um +- 558.174 nm + Track length of primary track = 2.713 um +- 619.404 nm + Projected range = 1.359 um +- 722.279 nm + Penetration = 1.857 um +- 555.149 nm diff --git a/examples/extended/medical/dna/range/src/PhysicsList.cc b/examples/extended/medical/dna/range/src/PhysicsList.cc index c76d196048..5ac83fab45 100644 --- a/examples/extended/medical/dna/range/src/PhysicsList.cc +++ b/examples/extended/medical/dna/range/src/PhysicsList.cc @@ -35,9 +35,7 @@ #include "PhysicsListMessenger.hh" #include "G4EmDNAPhysics.hh" -#include "G4EmDNAPhysics_option1.hh" -#include "G4EmDNAPhysics_option2.hh" -#include "G4EmDNAPhysics_option5.hh" +#include "G4EmDNAPhysics_option4.hh" #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" @@ -53,19 +51,19 @@ #include "G4IonConstructor.hh" #include "G4ShortLivedConstructor.hh" #include "G4DNAGenericIonsManager.hh" -#include "G4ProcessManager.hh" -#include "G4EmProcessOptions.hh" -#include "G4PhysicsConstructorRegistry.hh" -#include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() : - G4VModularPhysicsList(), fMessenger(0) + G4VModularPhysicsList(), + fEmPhysicsList(0), fMessenger(0) { fMessenger = new PhysicsListMessenger(this); SetVerboseLevel(1); + + // EM physics + fEmPhysicsList = new G4EmDNAPhysics(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,47 +71,85 @@ PhysicsList::PhysicsList() : PhysicsList::~PhysicsList() { delete fMessenger; + delete fEmPhysicsList; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructParticle() +{ + G4BosonConstructor pBosonConstructor; + pBosonConstructor.ConstructParticle(); + + G4LeptonConstructor pLeptonConstructor; + pLeptonConstructor.ConstructParticle(); + + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4IonConstructor pIonConstructor; + pIonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); + + G4DNAGenericIonsManager* genericIonsManager; + genericIonsManager=G4DNAGenericIonsManager::Instance(); + genericIonsManager->GetIon("alpha++"); + genericIonsManager->GetIon("alpha+"); + genericIonsManager->GetIon("helium"); + genericIonsManager->GetIon("hydrogen"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void PhysicsList::ConstructProcess() { - // physics constructors + // transportation // - if(G4VModularPhysicsList::GetPhysics(0) == 0) return; - - G4VModularPhysicsList::ConstructProcess(); - + AddTransportation(); + + // electromagnetic physics list + // + fEmPhysicsList->ConstructProcess(); + // tracking cut // AddTrackingCut(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PhysicsList::RegisterConstructor(const G4String& name) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddPhysicsList(const G4String& name) { - if (verboseLevel > -1) - { - G4cout << "PhysicsList::RegisterConstructor: <" << name << ">" << G4endl; + if (verboseLevel>-1) { + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; } if (name == fEmName) return; - fEmName = name; + if (name == "dna") { + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics(); + + } else if (name == "dna_opt4") { + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option4(); + + } else { - G4VPhysicsConstructor* physics = G4PhysicsConstructorRegistry::Instance()-> - GetPhysicsConstructor(name); - - RegisterPhysics(physics); - - if(physics) - { - physics->ConstructParticle(); + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; } - - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/range/src/PhysicsListMessenger.cc b/examples/extended/medical/dna/range/src/PhysicsListMessenger.cc index 6190cc8636..81e26d0035 100644 --- a/examples/extended/medical/dna/range/src/PhysicsListMessenger.cc +++ b/examples/extended/medical/dna/range/src/PhysicsListMessenger.cc @@ -67,7 +67,7 @@ PhysicsListMessenger::~PhysicsListMessenger() void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == fListCmd ) - { fPhysicsList->RegisterConstructor(newValue);} + { fPhysicsList->AddPhysicsList(newValue);} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/svalue/svalue.out b/examples/extended/medical/dna/svalue/svalue.out index 322309b463..6692688b14 100644 --- a/examples/extended/medical/dna/svalue/svalue.out +++ b/examples/extended/medical/dna/svalue/svalue.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -36,7 +36,8 @@ PhysicsList::AddPhysicsList: --------------------------------------------------------- ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -65,6 +66,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -155,283 +160,283 @@ DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 400 MeV The run is 1000 e- of 100.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 87.999 eV +- 26.164 eV + Total Energy deposited = 87.363 eV +- 26.856 eV - S value = 420.734 Gy/Bq.s +- 125.094 Gy/Bq.s + S value = 417.695 Gy/Bq.s +- 128.404 Gy/Bq.s - Track length of primary track = 10.948 nm +- 9.573 nm - Projected range = 1.012 nm +- 9.082 nm + Track length of primary track = 10.727 nm +- 9.510 nm + Projected range = 1.234 nm +- 9.073 nm - Nb of steps of primary track = 34.68 +- 36.22 + Nb of steps of primary track = 34.28 +- 36.20 - Step size = 3.679 Ang +- 1.519 Ang + Step size = 3.688 Ang +- 1.880 Ang ======================== run summary ===================== The run is 1000 e- of 200.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 163.685 eV +- 63.887 eV + Total Energy deposited = 161.276 eV +- 64.439 eV - S value = 782.604 Gy/Bq.s +- 305.452 Gy/Bq.s + S value = 771.083 Gy/Bq.s +- 308.092 Gy/Bq.s - Track length of primary track = 13.125 nm +- 10.150 nm - Projected range = 2.665 nm +- 9.257 nm + Track length of primary track = 13.160 nm +- 10.036 nm + Projected range = 2.898 nm +- 9.273 nm - Nb of steps of primary track = 34.42 +- 36.35 + Nb of steps of primary track = 33.97 +- 34.30 - Step size = 5.009 Ang +- 3.905 Ang + Step size = 4.904 Ang +- 2.625 Ang ======================== run summary ===================== The run is 1000 e- of 300.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 217.831 eV +- 111.449 eV + Total Energy deposited = 216.575 eV +- 113.014 eV - S value = 1041.481 Gy/Bq.s +- 532.853 Gy/Bq.s + S value = 1035.474 Gy/Bq.s +- 540.334 Gy/Bq.s - Track length of primary track = 15.900 nm +- 12.258 nm - Projected range = 4.046 nm +- 9.148 nm + Track length of primary track = 15.421 nm +- 10.947 nm + Projected range = 3.890 nm +- 9.006 nm - Nb of steps of primary track = 35.58 +- 39.94 + Nb of steps of primary track = 33.16 +- 34.58 - Step size = 6.389 Ang +- 3.912 Ang + Step size = 6.545 Ang +- 4.256 Ang ======================== run summary ===================== The run is 1000 e- of 400.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 262.701 eV +- 155.359 eV + Total Energy deposited = 254.470 eV +- 158.824 eV - S value = 1256.010 Gy/Bq.s +- 742.794 Gy/Bq.s + S value = 1216.657 Gy/Bq.s +- 759.362 Gy/Bq.s - Track length of primary track = 17.342 nm +- 12.272 nm - Projected range = 5.088 nm +- 9.225 nm + Track length of primary track = 16.907 nm +- 12.668 nm + Projected range = 5.659 nm +- 8.719 nm - Nb of steps of primary track = 31.80 +- 33.23 + Nb of steps of primary track = 30.43 +- 35.66 - Step size = 7.763 Ang +- 4.730 Ang + Step size = 8.382 Ang +- 5.444 Ang ======================== run summary ===================== The run is 1000 e- of 500.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 279.295 eV +- 198.766 eV + Total Energy deposited = 277.679 eV +- 198.645 eV - S value = 1335.348 Gy/Bq.s +- 950.330 Gy/Bq.s + S value = 1327.625 Gy/Bq.s +- 949.748 Gy/Bq.s - Track length of primary track = 19.213 nm +- 14.083 nm - Projected range = 6.833 nm +- 9.161 nm + Track length of primary track = 18.818 nm +- 14.212 nm + Projected range = 6.675 nm +- 8.774 nm - Nb of steps of primary track = 29.04 +- 33.39 + Nb of steps of primary track = 28.26 +- 34.94 - Step size = 1.007 nm +- 6.046 Ang + Step size = 1.028 nm +- 6.364 Ang ======================== run summary ===================== The run is 1000 e- of 600.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 274.676 eV +- 229.881 eV + Total Energy deposited = 270.094 eV +- 232.297 eV - S value = 1313.267 Gy/Bq.s +- 1099.096 Gy/Bq.s + S value = 1291.356 Gy/Bq.s +- 1110.646 Gy/Bq.s - Track length of primary track = 19.553 nm +- 15.345 nm - Projected range = 8.206 nm +- 8.645 nm + Track length of primary track = 19.117 nm +- 15.942 nm + Projected range = 8.154 nm +- 8.405 nm - Nb of steps of primary track = 24.47 +- 31.11 + Nb of steps of primary track = 24.87 +- 36.22 - Step size = 1.249 nm +- 8.149 Ang + Step size = 1.231 nm +- 7.142 Ang ======================== run summary ===================== The run is 1000 e- of 700.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 259.970 eV +- 247.094 eV + Total Energy deposited = 254.711 eV +- 239.318 eV - S value = 1242.952 Gy/Bq.s +- 1181.391 Gy/Bq.s + S value = 1217.811 Gy/Bq.s +- 1144.215 Gy/Bq.s - Track length of primary track = 18.726 nm +- 14.949 nm - Projected range = 9.037 nm +- 8.431 nm + Track length of primary track = 18.578 nm +- 14.560 nm + Projected range = 9.267 nm +- 8.570 nm - Nb of steps of primary track = 19.44 +- 26.74 + Nb of steps of primary track = 18.38 +- 26.55 - Step size = 1.492 nm +- 9.370 Ang + Step size = 1.466 nm +- 8.301 Ang ======================== run summary ===================== The run is 1000 e- of 800.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 236.213 eV +- 247.342 eV + Total Energy deposited = 232.309 eV +- 234.787 eV - S value = 1129.366 Gy/Bq.s +- 1182.578 Gy/Bq.s + S value = 1110.703 Gy/Bq.s +- 1122.548 Gy/Bq.s - Track length of primary track = 17.932 nm +- 14.162 nm - Projected range = 10.522 nm +- 8.035 nm + Track length of primary track = 18.235 nm +- 13.885 nm + Projected range = 10.324 nm +- 8.350 nm - Nb of steps of primary track = 14.89 +- 21.04 + Nb of steps of primary track = 15.03 +- 21.49 - Step size = 1.735 nm +- 1.131 nm + Step size = 1.655 nm +- 9.126 Ang ======================== run summary ===================== The run is 1000 e- of 900.00 eV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 192.207 eV +- 225.061 eV + Total Energy deposited = 215.733 eV +- 241.834 eV - S value = 918.969 Gy/Bq.s +- 1076.049 Gy/Bq.s + S value = 1031.450 Gy/Bq.s +- 1156.242 Gy/Bq.s - Track length of primary track = 16.834 nm +- 13.796 nm - Projected range = 11.357 nm +- 7.542 nm + Track length of primary track = 17.965 nm +- 14.562 nm + Projected range = 11.323 nm +- 7.626 nm - Nb of steps of primary track = 11.54 +- 17.70 + Nb of steps of primary track = 12.72 +- 17.18 - Step size = 1.987 nm +- 1.229 nm + Step size = 1.873 nm +- 1.084 nm ======================== run summary ===================== The run is 1000 e- of 1.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 175.082 eV +- 213.684 eV + Total Energy deposited = 203.039 eV +- 242.793 eV - S value = 837.092 Gy/Bq.s +- 1021.653 Gy/Bq.s + S value = 970.760 Gy/Bq.s +- 1160.829 Gy/Bq.s - Track length of primary track = 16.526 nm +- 13.188 nm - Projected range = 11.998 nm +- 7.197 nm + Track length of primary track = 18.110 nm +- 14.181 nm + Projected range = 11.849 nm +- 6.997 nm - Nb of steps of primary track = 10.13 +- 17.07 + Nb of steps of primary track = 11.68 +- 18.61 - Step size = 2.089 nm +- 1.185 nm + Step size = 2.091 nm +- 1.107 nm ======================== run summary ===================== The run is 1000 e- of 2.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 91.626 eV +- 128.655 eV + Total Energy deposited = 103.990 eV +- 142.686 eV - S value = 438.075 Gy/Bq.s +- 615.116 Gy/Bq.s + S value = 497.192 Gy/Bq.s +- 682.203 Gy/Bq.s - Track length of primary track = 15.760 nm +- 10.879 nm - Projected range = 14.238 nm +- 4.777 nm + Track length of primary track = 15.864 nm +- 10.575 nm + Projected range = 14.112 nm +- 5.131 nm - Nb of steps of primary track = 4.76 +- 3.30 + Nb of steps of primary track = 4.86 +- 3.38 - Step size = 3.600 nm +- 2.179 nm + Step size = 3.581 nm +- 2.231 nm ======================== run summary ===================== The run is 1000 e- of 3.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 67.932 eV +- 105.782 eV + Total Energy deposited = 67.625 eV +- 110.592 eV - S value = 324.793 Gy/Bq.s +- 505.760 Gy/Bq.s + S value = 323.326 Gy/Bq.s +- 528.758 Gy/Bq.s - Track length of primary track = 14.980 nm +- 9.853 nm - Projected range = 14.521 nm +- 4.431 nm + Track length of primary track = 15.298 nm +- 9.982 nm + Projected range = 14.573 nm +- 4.547 nm - Nb of steps of primary track = 3.66 +- 2.48 + Nb of steps of primary track = 3.60 +- 2.41 - Step size = 4.606 nm +- 3.284 nm + Step size = 4.721 nm +- 3.238 nm ======================== run summary ===================== The run is 1000 e- of 4.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 47.937 eV +- 82.565 eV + Total Energy deposited = 50.945 eV +- 89.389 eV - S value = 229.193 Gy/Bq.s +- 394.755 Gy/Bq.s + S value = 243.575 Gy/Bq.s +- 427.383 Gy/Bq.s - Track length of primary track = 14.996 nm +- 9.815 nm - Projected range = 14.656 nm +- 4.310 nm + Track length of primary track = 15.465 nm +- 10.191 nm + Projected range = 14.861 nm +- 4.028 nm - Nb of steps of primary track = 2.93 +- 1.96 + Nb of steps of primary track = 3.07 +- 2.01 - Step size = 5.714 nm +- 3.870 nm + Step size = 5.566 nm +- 3.757 nm ======================== run summary ===================== The run is 1000 e- of 5.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 44.567 eV +- 92.198 eV + Total Energy deposited = 49.646 eV +- 98.200 eV - S value = 213.081 Gy/Bq.s +- 440.811 Gy/Bq.s + S value = 237.362 Gy/Bq.s +- 469.509 Gy/Bq.s - Track length of primary track = 15.443 nm +- 9.912 nm - Projected range = 14.952 nm +- 3.960 nm + Track length of primary track = 15.825 nm +- 10.126 nm + Projected range = 15.011 nm +- 4.048 nm - Nb of steps of primary track = 2.69 +- 1.73 + Nb of steps of primary track = 2.75 +- 1.76 - Step size = 6.366 nm +- 4.562 nm + Step size = 6.386 nm +- 4.608 nm ======================== run summary ===================== The run is 1000 e- of 6.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 37.517 eV +- 75.192 eV + Total Energy deposited = 39.729 eV +- 92.569 eV - S value = 179.375 Gy/Bq.s +- 359.503 Gy/Bq.s + S value = 189.952 Gy/Bq.s +- 442.587 Gy/Bq.s - Track length of primary track = 15.246 nm +- 9.725 nm - Projected range = 15.019 nm +- 3.840 nm + Track length of primary track = 15.245 nm +- 9.871 nm + Projected range = 14.810 nm +- 4.021 nm - Nb of steps of primary track = 2.43 +- 1.50 + Nb of steps of primary track = 2.45 +- 1.55 - Step size = 7.001 nm +- 5.079 nm + Step size = 6.861 nm +- 4.731 nm ======================== run summary ===================== The run is 1000 e- of 7.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 32.498 eV +- 63.272 eV + Total Energy deposited = 32.831 eV +- 71.998 eV - S value = 155.376 Gy/Bq.s +- 302.514 Gy/Bq.s + S value = 156.969 Gy/Bq.s +- 344.234 Gy/Bq.s - Track length of primary track = 14.818 nm +- 9.942 nm - Projected range = 14.752 nm +- 4.146 nm + Track length of primary track = 15.100 nm +- 9.796 nm + Projected range = 14.865 nm +- 4.029 nm - Nb of steps of primary track = 2.21 +- 1.45 + Nb of steps of primary track = 2.22 +- 1.39 - Step size = 7.473 nm +- 5.497 nm + Step size = 7.661 nm +- 5.637 nm ======================== run summary ===================== The run is 1000 e- of 8.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 29.550 eV +- 68.570 eV + Total Energy deposited = 28.072 eV +- 60.526 eV - S value = 141.282 Gy/Bq.s +- 327.841 Gy/Bq.s + S value = 134.214 Gy/Bq.s +- 289.381 Gy/Bq.s - Track length of primary track = 14.971 nm +- 9.664 nm - Projected range = 14.915 nm +- 3.903 nm + Track length of primary track = 15.047 nm +- 9.658 nm + Projected range = 15.029 nm +- 3.877 nm - Nb of steps of primary track = 2.11 +- 1.26 + Nb of steps of primary track = 2.09 +- 1.27 - Step size = 7.878 nm +- 5.616 nm + Step size = 7.930 nm +- 5.515 nm ======================== run summary ===================== The run is 1000 e- of 9.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 30.323 eV +- 75.736 eV + Total Energy deposited = 28.615 eV +- 70.473 eV - S value = 144.979 Gy/Bq.s +- 362.105 Gy/Bq.s + S value = 136.813 Gy/Bq.s +- 336.940 Gy/Bq.s - Track length of primary track = 14.925 nm +- 9.954 nm - Projected range = 14.845 nm +- 4.204 nm + Track length of primary track = 15.087 nm +- 9.554 nm + Projected range = 15.030 nm +- 3.938 nm - Nb of steps of primary track = 1.99 +- 1.19 + Nb of steps of primary track = 2.00 +- 1.18 - Step size = 8.238 nm +- 6.025 nm + Step size = 8.424 nm +- 5.991 nm ======================== run summary ===================== The run is 1000 e- of 10.00 keV through a sphere of radius 20.00 nm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 24.614 eV +- 72.949 eV + Total Energy deposited = 25.880 eV +- 73.835 eV - S value = 117.685 Gy/Bq.s +- 348.779 Gy/Bq.s + S value = 123.734 Gy/Bq.s +- 353.015 Gy/Bq.s - Track length of primary track = 15.511 nm +- 10.059 nm - Projected range = 15.013 nm +- 3.909 nm + Track length of primary track = 15.081 nm +- 10.084 nm + Projected range = 14.867 nm +- 4.026 nm Nb of steps of primary track = 1.88 +- 1.10 - Step size = 9.181 nm +- 6.843 nm + Step size = 8.887 nm +- 6.808 nm diff --git a/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out b/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out index 718a9faac0..a75a7071c8 100644 --- a/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out +++ b/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -84,16 +84,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -106,7 +108,8 @@ Available colours: ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -135,6 +138,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== diff --git a/examples/extended/medical/dna/wvalue/History b/examples/extended/medical/dna/wvalue/History index b666e9c646..68ad802620 100644 --- a/examples/extended/medical/dna/wvalue/History +++ b/examples/extended/medical/dna/wvalue/History @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +14-03-16 SI (wvalue-V10-02-00) +- changed physics constructor selection + 22-10-15 SI (wvalue-V10-01-03) - upgraded plot.C to ROOT 6 diff --git a/examples/extended/medical/dna/wvalue/README b/examples/extended/medical/dna/wvalue/README index 2a7112eca1..d624671822 100644 --- a/examples/extended/medical/dna/wvalue/README +++ b/examples/extended/medical/dna/wvalue/README @@ -66,7 +66,7 @@ The wvalue.in macro allows a full control of the simulation. ---->4. PHYSICS -You can select Geant4-DNA physics in wvalue.in. +You can select Geant4-DNA physics constructor in wvalue.in. A tracking cut can be applied if requested. diff --git a/examples/extended/medical/dna/wvalue/histo.in b/examples/extended/medical/dna/wvalue/histo.in index 007d8e9177..6531bac88e 100644 --- a/examples/extended/medical/dna/wvalue/histo.in +++ b/examples/extended/medical/dna/wvalue/histo.in @@ -7,9 +7,8 @@ /w/det/setTrackingCut 7.4 eV # # Register physics constructor -/w/phys/addPhysics G4EmDNAPhysics -#/w/phys/addPhysics G4EmDNAPhysics_option4 - +/w/phys/addPhysics dna +#/w/phys/addPhysics dna_opt4 # /run/initialize # diff --git a/examples/extended/medical/dna/wvalue/include/PhysicsList.hh b/examples/extended/medical/dna/wvalue/include/PhysicsList.hh index eceea02658..bb06f7e3b4 100644 --- a/examples/extended/medical/dna/wvalue/include/PhysicsList.hh +++ b/examples/extended/medical/dna/wvalue/include/PhysicsList.hh @@ -52,12 +52,16 @@ public: PhysicsList(); ~PhysicsList(); - void RegisterConstructor(const G4String& name); + virtual void ConstructParticle(); + + void AddPhysicsList(const G4String& name); virtual void ConstructProcess(); + void AddTrackingCut(); private: G4String fEmName; + G4VPhysicsConstructor* fEmPhysicsList; PhysicsListMessenger* fMessenger; }; diff --git a/examples/extended/medical/dna/wvalue/src/PhysicsList.cc b/examples/extended/medical/dna/wvalue/src/PhysicsList.cc index c56767f63a..a30d76f954 100644 --- a/examples/extended/medical/dna/wvalue/src/PhysicsList.cc +++ b/examples/extended/medical/dna/wvalue/src/PhysicsList.cc @@ -35,8 +35,7 @@ #include "PhysicsListMessenger.hh" #include "G4EmDNAPhysics.hh" -#include "G4EmDNAPhysics_option1.hh" -#include "G4EmDNAPhysics_option2.hh" +#include "G4EmDNAPhysics_option4.hh" #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" @@ -52,19 +51,20 @@ #include "G4IonConstructor.hh" #include "G4ShortLivedConstructor.hh" #include "G4DNAGenericIonsManager.hh" -#include "G4ProcessManager.hh" -#include "G4EmProcessOptions.hh" -#include "G4PhysicsConstructorRegistry.hh" -#include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() : - G4VModularPhysicsList(), fMessenger(0) + G4VModularPhysicsList(), + fEmPhysicsList(0), fMessenger(0) { fMessenger = new PhysicsListMessenger(this); SetVerboseLevel(1); + + // EM physics + fEmPhysicsList = new G4EmDNAPhysics(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -72,47 +72,83 @@ PhysicsList::PhysicsList() : PhysicsList::~PhysicsList() { delete fMessenger; + delete fEmPhysicsList; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructParticle() +{ + G4BosonConstructor pBosonConstructor; + pBosonConstructor.ConstructParticle(); + + G4LeptonConstructor pLeptonConstructor; + pLeptonConstructor.ConstructParticle(); + + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4IonConstructor pIonConstructor; + pIonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); + + G4DNAGenericIonsManager* genericIonsManager; + genericIonsManager=G4DNAGenericIonsManager::Instance(); + genericIonsManager->GetIon("alpha++"); + genericIonsManager->GetIon("alpha+"); + genericIonsManager->GetIon("helium"); + genericIonsManager->GetIon("hydrogen"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void PhysicsList::ConstructProcess() { - // physics constructors + // transportation // - if(G4VModularPhysicsList::GetPhysics(0) == 0) return; - - G4VModularPhysicsList::ConstructProcess(); - + AddTransportation(); + + // electromagnetic physics list + // + fEmPhysicsList->ConstructProcess(); + // tracking cut // AddTrackingCut(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PhysicsList::RegisterConstructor(const G4String& name) +void PhysicsList::AddPhysicsList(const G4String& name) { - if (verboseLevel > -1) - { - G4cout << "PhysicsList::RegisterConstructor: <" << name << ">" << G4endl; + if (verboseLevel>-1) { + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; } if (name == fEmName) return; - fEmName = name; + if (name == "dna") { + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics(); + + } else if (name == "dna_opt4") { + fEmName = name; + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option4(); + + } else { - G4VPhysicsConstructor* physics = G4PhysicsConstructorRegistry::Instance()-> - GetPhysicsConstructor(name); - - RegisterPhysics(physics); - - if(physics) - { - physics->ConstructParticle(); + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; } - - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/wvalue/src/PhysicsListMessenger.cc b/examples/extended/medical/dna/wvalue/src/PhysicsListMessenger.cc index 944ce315eb..752bd151af 100644 --- a/examples/extended/medical/dna/wvalue/src/PhysicsListMessenger.cc +++ b/examples/extended/medical/dna/wvalue/src/PhysicsListMessenger.cc @@ -67,7 +67,7 @@ PhysicsListMessenger::~PhysicsListMessenger() void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == fListCmd ) - { fPhysicsList->RegisterConstructor(newValue);} + { fPhysicsList->AddPhysicsList(newValue);} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/wvalue/wvalue.in b/examples/extended/medical/dna/wvalue/wvalue.in index b807ef0973..d9c507a916 100644 --- a/examples/extended/medical/dna/wvalue/wvalue.in +++ b/examples/extended/medical/dna/wvalue/wvalue.in @@ -7,8 +7,8 @@ /w/det/setTrackingCut 7.4 eV # # Register physics constructor -/w/phys/addPhysics G4EmDNAPhysics -#/w/phys/addPhysics G4EmDNAPhysics_option4 +/w/phys/addPhysics dna +#/w/phys/addPhysics dna_opt4 # /run/initialize diff --git a/examples/extended/medical/dna/wvalue/wvalue.out b/examples/extended/medical/dna/wvalue/wvalue.out index df2a80d407..bcc1f3318f 100644 --- a/examples/extended/medical/dna/wvalue/wvalue.out +++ b/examples/extended/medical/dna/wvalue/wvalue.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -12,7 +12,7 @@ *** /run/numberOfThreads command is issued in sequential mode. Command is ignored. -PhysicsList::RegisterConstructor: +PhysicsList::AddPhysicsList: --------------------------------------------------------- ---> The tracking cut is set to 7.4 eV @@ -36,7 +36,8 @@ PhysicsList::RegisterConstructor: --------------------------------------------------------- ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -65,6 +66,10 @@ Rayl: for gamma SubType= 11 BuildTable= 1 LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator LivermoreRayleigh : Emin= 1 GeV Emax= 10 TeV CullenGenerator +e-_G4DNAElectronSolvation: for e- SubType= 58 BuildTable= 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel : Emin= 0 eV Emax= 7.4 eV + e-_G4DNAElastic: for e- SubType= 51 BuildTable= 0 Total cross sections computed from DNAChampionElasticModel model ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -155,338 +160,338 @@ DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 400 MeV 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.161 +- 0.368 + Nb of ionisations = 0.152 +- 0.359 - w = 74.534 eV +- 170.147 eV + w = 78.947 eV +- 186.472 eV Total Energy deposited = 12.000 eV +- 0.000 eV - Track length of primary track = 46.043 nm +- 29.334 nm - Projected range = 4.770 Ang +- 3.419 nm + Track length of primary track = 44.605 nm +- 29.938 nm + Projected range = 3.644 Ang +- 3.536 nm - Nb of steps of primary track = 209.71 +- 135.07 + Nb of steps of primary track = 203.62 +- 138.52 - Step size = 2.211 Ang +- 34450.850 fm + Step size = 2.215 Ang +- 35262.685 fm ======================== run summary ===================== 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.617 +- 0.486 + Nb of ionisations = 0.607 +- 0.488 - w = 24.311 eV +- 19.154 eV + w = 24.712 eV +- 19.884 eV Total Energy deposited = 15.000 eV +- 0.000 eV - Track length of primary track = 16.675 nm +- 23.749 nm - Projected range = 4.393 Ang +- 2.126 nm + Track length of primary track = 16.322 nm +- 22.082 nm + Projected range = 5.387 Ang +- 2.001 nm - Nb of steps of primary track = 68.84 +- 101.68 + Nb of steps of primary track = 66.92 +- 93.32 - Step size = 2.343 Ang +- 66582.271 fm + Step size = 2.402 Ang +- 59010.542 fm ======================== run summary ===================== 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.818 +- 0.386 + Nb of ionisations = 0.816 +- 0.387 - w = 24.450 eV +- 11.533 eV + w = 24.510 eV +- 11.639 eV Total Energy deposited = 20.000 eV +- 0.000 eV - Track length of primary track = 11.412 nm +- 13.859 nm - Projected range = 4.636 Ang +- 1.813 nm + Track length of primary track = 12.269 nm +- 14.137 nm + Projected range = 3.653 Ang +- 1.968 nm - Nb of steps of primary track = 49.27 +- 63.95 + Nb of steps of primary track = 53.02 +- 64.88 - Step size = 2.463 Ang +- 80549.912 fm + Step size = 2.413 Ang +- 75637.160 fm ======================== run summary ===================== 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 = 1.320 +- 0.508 + Nb of ionisations = 1.313 +- 0.507 - w = 22.727 eV +- 8.739 eV + w = 22.848 eV +- 8.822 eV Total Energy deposited = 30.000 eV +- 0.000 eV - Track length of primary track = 28.002 nm +- 26.634 nm - Projected range = 6.437 Ang +- 2.952 nm + Track length of primary track = 26.601 nm +- 25.281 nm + Projected range = 7.243 Ang +- 2.721 nm - Nb of steps of primary track = 121.79 +- 120.30 + Nb of steps of primary track = 115.32 +- 115.36 - Step size = 2.472 Ang +- 53252.206 fm + Step size = 2.498 Ang +- 54601.494 fm ======================== run summary ===================== 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.863 +- 0.490 + Nb of ionisations = 1.886 +- 0.503 - w = 21.471 eV +- 5.649 eV + w = 21.209 eV +- 5.656 eV Total Energy deposited = 40.000 eV +- 0.000 eV - Track length of primary track = 20.707 nm +- 23.030 nm - Projected range = 7.996 Ang +- 2.620 nm + Track length of primary track = 20.742 nm +- 22.514 nm + Projected range = 6.949 Ang +- 2.492 nm - Nb of steps of primary track = 87.34 +- 103.94 + Nb of steps of primary track = 87.14 +- 101.25 - Step size = 2.601 Ang +- 64967.820 fm + Step size = 2.614 Ang +- 69223.391 fm ======================== run summary ===================== 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 = 2.399 +- 0.578 + Nb of ionisations = 2.402 +- 0.590 - w = 20.842 eV +- 5.019 eV + w = 20.816 eV +- 5.115 eV Total Energy deposited = 50.000 eV +- 0.000 eV - Track length of primary track = 23.321 nm +- 23.316 nm - Projected range = 8.266 Ang +- 2.699 nm + Track length of primary track = 25.432 nm +- 24.475 nm + Projected range = 7.832 Ang +- 2.781 nm - Nb of steps of primary track = 98.85 +- 106.34 + Nb of steps of primary track = 108.17 +- 110.80 - Step size = 2.641 Ang +- 68048.990 fm + Step size = 2.636 Ang +- 68942.847 fm ======================== run summary ===================== 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.956 +- 0.623 + Nb of ionisations = 2.948 +- 0.637 - w = 20.298 eV +- 4.278 eV + w = 20.353 eV +- 4.395 eV Total Energy deposited = 60.000 eV +- 0.000 eV - Track length of primary track = 26.099 nm +- 25.873 nm - Projected range = 7.866 Ang +- 2.877 nm + Track length of primary track = 23.558 nm +- 23.296 nm + Projected range = 1.041 nm +- 2.836 nm - Nb of steps of primary track = 109.53 +- 117.50 + Nb of steps of primary track = 97.75 +- 106.38 - Step size = 2.710 Ang +- 71205.828 fm + Step size = 2.727 Ang +- 68303.987 fm ======================== run summary ===================== 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 = 3.471 +- 0.664 + Nb of ionisations = 3.465 +- 0.680 - w = 20.167 eV +- 3.859 eV + w = 20.202 eV +- 3.966 eV Total Energy deposited = 70.000 eV +- 0.000 eV - Track length of primary track = 25.810 nm +- 24.384 nm - Projected range = 1.101 nm +- 2.923 nm + Track length of primary track = 24.914 nm +- 23.052 nm + Projected range = 1.174 nm +- 2.981 nm - Nb of steps of primary track = 106.56 +- 109.49 + Nb of steps of primary track = 103.19 +- 104.14 - Step size = 2.721 Ang +- 71569.363 fm + Step size = 2.706 Ang +- 69057.267 fm ======================== run summary ===================== 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.966 +- 0.733 + Nb of ionisations = 4.030 +- 0.718 - w = 20.171 eV +- 3.727 eV + w = 19.851 eV +- 3.535 eV Total Energy deposited = 80.000 eV +- 0.000 eV - Track length of primary track = 25.443 nm +- 23.674 nm - Projected range = 1.213 nm +- 2.934 nm + Track length of primary track = 25.194 nm +- 23.570 nm + Projected range = 1.311 nm +- 3.011 nm - Nb of steps of primary track = 103.67 +- 107.71 + Nb of steps of primary track = 102.85 +- 106.63 - Step size = 2.807 Ang +- 75601.554 fm + Step size = 2.786 Ang +- 70285.960 fm ======================== run summary ===================== 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 = 4.515 +- 0.754 + Nb of ionisations = 4.559 +- 0.781 - w = 19.934 eV +- 3.327 eV + w = 19.741 eV +- 3.383 eV Total Energy deposited = 90.000 eV +- 0.000 eV - Track length of primary track = 26.066 nm +- 23.970 nm - Projected range = 1.374 nm +- 3.080 nm + Track length of primary track = 26.559 nm +- 26.022 nm + Projected range = 1.279 nm +- 3.097 nm - Nb of steps of primary track = 105.44 +- 107.84 + Nb of steps of primary track = 107.81 +- 117.21 - Step size = 2.833 Ang +- 71721.212 fm + Step size = 2.837 Ang +- 81053.652 fm ======================== run summary ===================== 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 = 5.033 +- 0.820 + Nb of ionisations = 5.044 +- 0.809 - w = 19.869 eV +- 3.236 eV + w = 19.826 eV +- 3.179 eV Total Energy deposited = 100.000 eV +- 0.000 eV - Track length of primary track = 26.630 nm +- 25.387 nm - Projected range = 1.413 nm +- 3.191 nm + Track length of primary track = 25.238 nm +- 23.829 nm + Projected range = 1.504 nm +- 3.131 nm - Nb of steps of primary track = 106.54 +- 113.65 + Nb of steps of primary track = 100.18 +- 106.85 - Step size = 2.921 Ang +- 83158.452 fm + Step size = 2.964 Ang +- 87332.859 fm ======================== run summary ===================== 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 = 10.193 +- 1.154 + Nb of ionisations = 10.263 +- 1.146 - w = 19.621 eV +- 2.221 eV + w = 19.487 eV +- 2.176 eV Total Energy deposited = 200.000 eV +- 0.000 eV - Track length of primary track = 31.873 nm +- 24.977 nm - Projected range = 2.819 nm +- 4.227 nm + Track length of primary track = 30.334 nm +- 24.780 nm + Projected range = 3.006 nm +- 3.988 nm - Nb of steps of primary track = 116.91 +- 112.58 + Nb of steps of primary track = 108.69 +- 111.73 - Step size = 3.346 Ang +- 1.101 Ang + Step size = 3.449 Ang +- 1.127 Ang ======================== run summary ===================== 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 = 15.467 +- 1.417 + Nb of ionisations = 15.424 +- 1.440 - w = 19.396 eV +- 1.777 eV + w = 19.450 eV +- 1.815 eV Total Energy deposited = 300.000 eV +- 0.000 eV - Track length of primary track = 34.934 nm +- 24.380 nm - Projected range = 4.821 nm +- 5.250 nm + Track length of primary track = 37.023 nm +- 25.040 nm + Projected range = 4.800 nm +- 5.404 nm - Nb of steps of primary track = 112.41 +- 108.56 + Nb of steps of primary track = 120.68 +- 110.81 - Step size = 3.983 Ang +- 1.476 Ang + Step size = 3.850 Ang +- 1.395 Ang ======================== run summary ===================== 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 = 20.503 +- 1.694 + Nb of ionisations = 20.561 +- 1.644 - w = 19.509 eV +- 1.612 eV + w = 19.454 eV +- 1.556 eV Total Energy deposited = 400.000 eV +- 0.000 eV - Track length of primary track = 42.965 nm +- 25.821 nm - Projected range = 7.288 nm +- 6.758 nm + Track length of primary track = 40.663 nm +- 24.030 nm + Projected range = 6.746 nm +- 6.642 nm - Nb of steps of primary track = 125.87 +- 113.82 + Nb of steps of primary track = 116.18 +- 104.10 - Step size = 4.451 Ang +- 1.751 Ang + Step size = 4.467 Ang +- 1.666 Ang ======================== run summary ===================== 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 = 25.813 +- 1.806 + Nb of ionisations = 25.634 +- 1.841 - w = 19.370 eV +- 1.355 eV + w = 19.505 eV +- 1.401 eV Total Energy deposited = 500.000 eV +- 0.000 eV - Track length of primary track = 48.376 nm +- 25.243 nm - Projected range = 9.758 nm +- 8.561 nm + Track length of primary track = 48.060 nm +- 25.633 nm + Projected range = 9.328 nm +- 8.356 nm - Nb of steps of primary track = 126.10 +- 106.28 + Nb of steps of primary track = 125.25 +- 108.74 - Step size = 4.926 Ang +- 1.950 Ang + Step size = 4.976 Ang +- 1.946 Ang ======================== run summary ===================== 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 = 30.862 +- 1.997 + Nb of ionisations = 30.826 +- 1.979 - w = 19.441 eV +- 1.258 eV + w = 19.464 eV +- 1.250 eV Total Energy deposited = 600.000 eV +- 0.000 eV - Track length of primary track = 56.098 nm +- 26.835 nm - Projected range = 12.497 nm +- 10.844 nm + Track length of primary track = 54.688 nm +- 25.128 nm + Projected range = 12.357 nm +- 10.733 nm - Nb of steps of primary track = 132.89 +- 112.70 + Nb of steps of primary track = 124.85 +- 104.53 - Step size = 5.554 Ang +- 2.308 Ang + Step size = 5.703 Ang +- 2.331 Ang ======================== run summary ===================== 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 = 35.929 +- 2.286 + Nb of ionisations = 35.884 +- 2.538 - w = 19.483 eV +- 1.240 eV + w = 19.507 eV +- 1.380 eV Total Energy deposited = 700.000 eV +- 0.000 eV - Track length of primary track = 62.791 nm +- 27.351 nm - Projected range = 15.673 nm +- 12.794 nm + Track length of primary track = 63.072 nm +- 26.855 nm + Projected range = 14.492 nm +- 12.813 nm - Nb of steps of primary track = 132.43 +- 109.03 + Nb of steps of primary track = 135.57 +- 109.56 - Step size = 6.106 Ang +- 2.415 Ang + Step size = 6.097 Ang +- 2.526 Ang ======================== run summary ===================== 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 = 41.065 +- 2.420 + Nb of ionisations = 41.105 +- 2.319 - w = 19.481 eV +- 1.148 eV + w = 19.462 eV +- 1.098 eV Total Energy deposited = 800.000 eV +- 0.000 eV - Track length of primary track = 72.225 nm +- 29.517 nm - Projected range = 18.825 nm +- 15.636 nm + Track length of primary track = 71.050 nm +- 29.162 nm + Projected range = 18.932 nm +- 14.629 nm - Nb of steps of primary track = 143.32 +- 117.72 + Nb of steps of primary track = 137.97 +- 111.10 - Step size = 6.647 Ang +- 2.774 Ang + Step size = 6.647 Ang +- 2.732 Ang ======================== run summary ===================== 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 = 46.209 +- 2.920 + Nb of ionisations = 46.085 +- 2.854 - w = 19.477 eV +- 1.231 eV + w = 19.529 eV +- 1.209 eV Total Energy deposited = 900.000 eV +- 0.000 eV - Track length of primary track = 80.784 nm +- 30.980 nm - Projected range = 23.465 nm +- 17.020 nm + Track length of primary track = 79.455 nm +- 29.719 nm + Projected range = 22.429 nm +- 17.923 nm - Nb of steps of primary track = 146.03 +- 120.90 + Nb of steps of primary track = 140.62 +- 111.00 - Step size = 7.379 Ang +- 3.184 Ang + Step size = 7.421 Ang +- 3.128 Ang ======================== run summary ===================== 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 = 51.129 +- 2.967 + Nb of ionisations = 51.280 +- 3.022 - w = 19.558 eV +- 1.135 eV + w = 19.501 eV +- 1.149 eV Total Energy deposited = 1.000 keV +- 0.000 eV - Track length of primary track = 90.371 nm +- 29.522 nm - Projected range = 27.569 nm +- 20.078 nm + Track length of primary track = 90.862 nm +- 30.953 nm + Projected range = 27.644 nm +- 20.033 nm - Nb of steps of primary track = 147.38 +- 107.04 + Nb of steps of primary track = 150.07 +- 112.28 - Step size = 7.881 Ang +- 3.301 Ang + Step size = 7.868 Ang +- 3.321 Ang diff --git a/examples/extended/medical/electronScattering/History b/examples/extended/medical/electronScattering/History index a3269e8271..493f1e6317 100644 --- a/examples/extended/medical/electronScattering/History +++ b/examples/extended/medical/electronScattering/History @@ -1,4 +1,4 @@ -$Id: History 88035 2015-01-26 10:22:08Z gcosmo $ +$Id: History 96459 2016-04-15 12:28:01Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,12 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +15-04-16 mma (electronScattering-V10-02-01) +- PhysListEmStandard_WVI, SS: add SetMscThetaLimit() + +14-04-16 mma (electronScattering-V10-02-00) +- PhysListEmStandard: use G4EmParameters 23-01-15 Laszlo Urban (electonScattering-V10-01-00) - plot 6 filling is corrected, the distance from scattering foil to detector diff --git a/examples/extended/medical/electronScattering/electronScattering.out b/examples/extended/medical/electronScattering/electronScattering.out index 87f46725b6..72b1eb7183 100644 --- a/examples/extended/medical/electronScattering/electronScattering.out +++ b/examples/extended/medical/electronScattering/electronScattering.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -288,7 +288,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 100000 - User=18.1s Real=18.15s Sys=0s + User=9.42s Real=9.59s Sys=0.01s ======================== run summary ====================== @@ -297,7 +297,7 @@ Run Summary --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2089207074, 2091696732 + Current couple of seeds = 2059786096, 2037104680 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. @@ -308,19 +308,19 @@ UserPrimaryGenerator deleted. RunManager is deleting RunManagerKernel. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 10 +Total navigation history collections cleaned: 11 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0135 MB +Pool ID '20G4NavigationLevelRep', size : 0.0154 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.00288 MB -Pool ID '7G4Track', size : 0.00577 MB +Pool ID '7G4Track', size : 0.00481 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.028 MB +Dynamic pools deleted: 9 / Total memory freed: 0.029 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/medical/electronScattering/src/PhysListEmStandard.cc b/examples/extended/medical/electronScattering/src/PhysListEmStandard.cc index daf64f28b7..6c3ab53db3 100644 --- a/examples/extended/medical/electronScattering/src/PhysListEmStandard.cc +++ b/examples/extended/medical/electronScattering/src/PhysListEmStandard.cc @@ -26,12 +26,14 @@ /// \file medical/electronScattering/src/PhysListEmStandard.cc /// \brief Implementation of the PhysListEmStandard class // -// $Id: PhysListEmStandard.cc 86064 2014-11-07 08:49:32Z gcosmo $ +// $Id: PhysListEmStandard.cc 96444 2016-04-14 14:20:15Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandard.hh" + +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" #include "G4PhysicsListHelper.hh" @@ -61,7 +63,6 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" #include "G4MscStepLimitType.hh" #include "G4LossTableManager.hh" @@ -73,7 +74,16 @@ PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + SetPhysicsType(bElectromagnetic); + + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMinEnergy(10*eV); + param->SetMaxEnergy(10*TeV); + param->SetNumberOfBinsPerDecade(10); + param->SetMscStepLimitType(fUseDistanceToBoundary); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -95,8 +105,8 @@ void PhysListEmStandard::ConstructProcess() if (particleName == "gamma") { - ////ph->RegisterProcess(new G4RayleighScattering, particle); - ph->RegisterProcess(new G4PhotoElectricEffect, particle); + ////ph->RegisterProcess(new G4RayleighScattering, particle); + ph->RegisterProcess(new G4PhotoElectricEffect, particle); G4ComptonScattering* cs = new G4ComptonScattering; cs->SetEmModel(new G4KleinNishinaModel()); ph->RegisterProcess(cs, particle); @@ -104,15 +114,15 @@ void PhysListEmStandard::ConstructProcess() } else if (particleName == "e-") { - ph->RegisterProcess(new G4eMultipleScattering(), particle); + ph->RegisterProcess(new G4eMultipleScattering(), particle); G4eIonisation* eIoni = new G4eIonisation(); eIoni->SetStepFunction(0.1, 100*um); ph->RegisterProcess(eIoni, particle); - ph->RegisterProcess(new G4eBremsstrahlung(), particle); + ph->RegisterProcess(new G4eBremsstrahlung(), particle); } else if (particleName == "e+") { - ph->RegisterProcess(new G4eMultipleScattering(), particle); + ph->RegisterProcess(new G4eMultipleScattering(), particle); G4eIonisation* eIoni = new G4eIonisation(); eIoni->SetStepFunction(0.1, 100*um); ph->RegisterProcess(eIoni, particle); @@ -133,30 +143,30 @@ void PhysListEmStandard::ConstructProcess() particleName == "pi-" || particleName == "pi+" ) { - ph->RegisterProcess(new G4hMultipleScattering(), particle); + 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); + ph->RegisterProcess(new G4hPairProduction(), particle); } else if( particleName == "alpha" || particleName == "He3" ) { - ph->RegisterProcess(new G4hMultipleScattering(), particle); + ph->RegisterProcess(new G4hMultipleScattering(), particle); G4ionIonisation* ionIoni = new G4ionIonisation(); ionIoni->SetStepFunction(0.1, 1*um); ph->RegisterProcess(ionIoni, particle); - ph->RegisterProcess(new G4NuclearStopping(), particle); + ph->RegisterProcess(new G4NuclearStopping(), particle); } else if( particleName == "GenericIon" ) { - ph->RegisterProcess(new G4hMultipleScattering(), particle); + 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); + ph->RegisterProcess(new G4NuclearStopping(), particle); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && @@ -168,24 +178,6 @@ void PhysListEmStandard::ConstructProcess() } } - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //physics tables - // - emOptions.SetMinEnergy(10*eV); //default 100 eV - emOptions.SetMaxEnergy(10*TeV); //default 100 TeV - emOptions.SetDEDXBinning(12*10); //default=12*7 - emOptions.SetLambdaBinning(12*10); //default=12*7 - - //multiple coulomb scattering - // - emOptions.SetMscStepLimitation(fUseDistanceToBoundary); //default fUseSafety - // Deexcitation // G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); diff --git a/examples/extended/medical/electronScattering/src/PhysListEmStandardSS.cc b/examples/extended/medical/electronScattering/src/PhysListEmStandardSS.cc index a0770fe4d4..716791df74 100644 --- a/examples/extended/medical/electronScattering/src/PhysListEmStandardSS.cc +++ b/examples/extended/medical/electronScattering/src/PhysListEmStandardSS.cc @@ -26,13 +26,14 @@ /// \file medical/electronScattering/src/PhysListEmStandardSS.cc /// \brief Implementation of the PhysListEmStandardSS class // -// $Id: PhysListEmStandardSS.cc 86064 2014-11-07 08:49:32Z gcosmo $ +// $Id: PhysListEmStandardSS.cc 96459 2016-04-15 12:28:01Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandardSS.hh" +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -52,13 +53,18 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4EmProcessOptions.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListEmStandardSS::PhysListEmStandardSS(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + SetPhysicsType(bElectromagnetic); + + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMscThetaLimit(0.0); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -124,9 +130,6 @@ void PhysListEmStandardSS::ConstructProcess() pmanager->AddProcess(new G4hIonisation, -1, 1, 1); } } - - G4EmProcessOptions emOptions; - emOptions.SetPolarAngleLimit(0.0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/electronScattering/src/PhysListEmStandardWVI.cc b/examples/extended/medical/electronScattering/src/PhysListEmStandardWVI.cc index d390fefefc..32dc55acb6 100644 --- a/examples/extended/medical/electronScattering/src/PhysListEmStandardWVI.cc +++ b/examples/extended/medical/electronScattering/src/PhysListEmStandardWVI.cc @@ -26,12 +26,14 @@ /// \file medical/electronScattering/src/PhysListEmStandardWVI.cc /// \brief Implementation of the PhysListEmStandardWVI class // -// $Id: PhysListEmStandardWVI.cc 86064 2014-11-07 08:49:32Z gcosmo $ +// $Id: PhysListEmStandardWVI.cc 96459 2016-04-15 12:28:01Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysListEmStandardWVI.hh" + +#include "G4BuilderType.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -60,14 +62,17 @@ #include "G4IonParametrisedLossModel.hh" #include "G4NuclearStopping.hh" -#include "G4EmProcessOptions.hh" -#include "G4MscStepLimitType.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListEmStandardWVI::PhysListEmStandardWVI(const G4String& name) : G4VPhysicsConstructor(name) -{} +{ + SetPhysicsType(bElectromagnetic); + + G4EmParameters* param = G4EmParameters::Instance(); + param->SetDefaults(); + param->SetMscThetaLimit(0.2); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -159,17 +164,6 @@ void PhysListEmStandardWVI::ConstructProcess() pmanager->AddProcess(new G4hIonisation, -1, 2, 2); } } - - // Em options - // - // Main options and setting parameters are shown here. - // Several of them have default values. - // - G4EmProcessOptions emOptions; - - //multiple coulomb scattering - // - emOptions.SetPolarAngleLimit(0.2); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/electronScattering2/electronScattering2.out b/examples/extended/medical/electronScattering2/electronScattering2.out index 3e6695ed4a..fc1bbc0c62 100644 --- a/examples/extended/medical/electronScattering2/electronScattering2.out +++ b/examples/extended/medical/electronScattering2/electronScattering2.out @@ -1,5 +1,5 @@ Starting run with -Macro File : /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/medical/electronScattering2/electronScattering2.in +Macro File : /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/medical/electronScattering2/electronScattering2.in Starting Seed : 1 Output File : output.csv @@ -8,14 +8,12 @@ Output File : output.csv ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -### NIST DataBase for Materials is used -### NIST DataBase for Elements is used ***** Table : Nb of materials = 11 ***** @@ -112,7 +110,7 @@ Output File : output.csv Material: G4_C density: 2.180 g/cm3 RadL: 19.586 cm Nucl.Int.Length: 36.768 cm - Imean: 81.000 eV + Imean: 78.000 eV ---> Element: C (C) Z = 6.0 N = 12 A = 12.011 g/mole ---> Isotope: C12 Z = 6 N = 12 A = 12.00 g/mole abundance: 98.930 % @@ -165,8 +163,10 @@ G4SDManager::AddNewCollection : the collection is registe G4SDManager::AddNewCollection : the collection is registered at 2 G4SDManager::AddNewCollection : the collection is registered at 3 G4SDManager::AddNewCollection : the collection is registered at 4 -New sensitive detector is registored at / -New sensitive detector is registored at / +New sensitive detector is registered at / +New sensitive detector is registered at / +New sensitive detector is registered at / +New sensitive detector is registered at / G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used phot: for gamma SubType= 12 BuildTable= 0 @@ -284,7 +284,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -298,7 +298,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -407,7 +407,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -440,7 +440,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -532,236 +532,236 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --> Event 0 starts. Number of Events Processed:20000 Radius cell flux e cell flux population e population - 0 1.2733 1.2733 2 2 - 1 2.1225 2.1225 10 10 - 2 2.4195 2.4195 19 19 - 3 2.2739 2.001 25 22 - 4 1.2358 1.2358 16 16 - 5 2.1682 2.1104 37 36 - 6 1.5183 1.3224 31 27 - 7 1.6557 1.4859 39 35 - 8 1.9851 1.8727 53 50 - 9 1.4817 1.4482 44 43 - 10 1.5768 1.4555 52 48 - 11 1.5226 1.4673 55 53 - 12 1.9661 1.8387 77 72 - 13 1.6099 1.5391 67 64 - 14 1.7788 1.6252 81 74 - 15 1.5818 1.5201 77 74 - 16 1.5051 1.3893 78 72 - 17 2.2646 2.1373 94 87 - 18 2.0006 1.9317 113 109 - 19 2.2099 2.0957 114 107 - 20 1.8709 1.7155 119 109 - 21 1.6738 1.5849 113 107 - 22 1.6135 1.5144 114 107 - 23 1.4395 1.3989 104 101 - 24 1.7235 1.6715 131 127 - 25 1.6269 1.5145 128 119 - 26 1.7184 1.6823 143 140 - 27 1.7628 1.7049 139 134 - 28 1.5677 1.4558 140 130 - 29 1.3726 1.3402 124 121 - 30 1.7564 1.6833 165 158 - 31 1.6009 1.5099 153 144 - 32 1.5602 1.472 156 147 - 33 1.2742 1.2172 134 128 - 34 1.6793 1.6516 178 175 - 35 1.3828 1.311 153 145 - 36 1.5364 1.4578 177 168 - 37 1.3754 1.2905 154 144 - 38 1.3404 1.2825 162 155 - 39 1.5643 1.4837 191 181 - 40 1.4137 1.3587 176 169 - 41 1.4781 1.4474 182 178 - 42 1.5311 1.4712 204 196 - 43 1.252 1.1861 169 160 - 44 1.3313 1.2955 187 182 - 45 1.2889 1.1769 185 169 - 46 1.2256 1.1914 178 173 - 47 1.3149 1.2478 196 186 - 48 1.1267 1.0479 164 152 - 49 1.4005 1.3619 209 203 - 50 1.2785 1.2595 190 187 - 51 1.349 1.2685 218 205 - 52 1.2655 1.2048 208 198 - 53 1.1995 1.1578 201 194 - 54 1.1448 1.1039 191 184 - 55 1.3269 1.2867 217 210 - 56 1.2741 1.1894 210 195 - 57 1.039 1.0058 185 179 - 58 1.0533 1.0313 192 188 - 59 1.0238 0.98631 192 185 - 60 1.0893 1.0577 206 200 - 61 0.99079 0.95969 189 183 - 62 1.1256 1.1001 220 215 - 63 1.0371 0.98189 206 195 - 64 0.84648 0.802 168 159 - 65 0.96481 0.92586 195 187 - 66 0.98454 0.96536 194 190 - 67 0.96691 0.94801 205 201 - 68 0.98131 0.92079 199 186 - 69 0.88246 0.84117 192 183 - 70 0.95708 0.92089 211 203 - 71 0.884 0.86169 197 192 - 72 0.80887 0.78686 184 179 - 73 0.82349 0.8018 189 184 - 74 0.78787 0.76218 184 178 - 75 0.75898 0.75475 174 173 - 76 0.78885 0.76383 187 181 - 77 0.77414 0.75767 185 181 - 78 0.66461 0.64429 160 155 - 79 0.70951 0.68543 174 168 - 80 0.64458 0.59299 154 145 - 81 0.71793 0.70226 180 176 - 82 0.80134 0.78974 206 203 - 83 0.63776 0.62248 166 162 - 84 0.64799 0.614 171 162 - 85 0.67594 0.64608 164 156 - 86 0.57735 0.53673 156 145 - 87 0.59823 0.57635 162 156 - 88 0.66322 0.65239 183 180 - 89 0.55659 0.53875 156 151 - 90 0.57528 0.55411 159 153 - 91 0.49953 0.49255 143 141 - 92 0.47603 0.45186 132 125 - 93 0.52614 0.51247 154 150 - 94 0.50748 0.50072 150 148 - 95 0.49521 0.46297 142 136 - 96 0.47246 0.45921 141 137 - 97 0.46419 0.45436 140 137 - 98 0.40873 0.38603 126 119 - 99 0.45063 0.42815 141 134 - 100 0.44109 0.42838 129 125 - 101 0.425 0.41241 135 131 - 102 0.42393 0.4177 136 134 - 103 0.38744 0.37201 112 107 - 104 0.43728 0.40975 132 123 - 105 0.30608 0.29699 101 98 - 106 0.29126 0.27022 97 90 - 107 0.34431 0.33836 115 113 - 108 0.32124 0.30061 109 102 - 109 0.32396 0.3152 110 107 - 110 0.29238 0.2837 101 98 - 111 0.29274 0.28125 100 96 - 112 0.29577 0.27587 104 97 - 113 0.31021 0.3074 111 110 - 114 0.32407 0.31848 116 114 - 115 0.2715 0.26597 98 96 - 116 0.26808 0.2516 97 91 - 117 0.29195 0.28651 107 105 - 118 0.25992 0.25451 97 95 - 119 0.28519 0.27716 106 103 - 120 0.20954 0.20689 68 67 - 121 0.35005 0.33952 101 97 - 122 0.2169 0.21168 83 81 - 123 0.23336 0.21775 90 84 - 124 0.23171 0.22374 90 87 - 125 0.22515 0.22005 87 85 - 126 0.20866 0.19854 79 75 - 127 0.13196 0.12187 52 48 - 128 0.21017 0.19272 84 77 - 129 0.18336 0.18088 74 73 - 130 0.17287 0.16551 70 67 - 131 0.19187 0.18026 77 74 - 132 0.1524 0.14273 63 59 - 133 0.18988 0.18748 79 78 - 134 0.14689 0.13975 61 58 - 135 0.12412 0.11703 52 49 - 136 0.11979 0.11508 51 49 - 137 0.14338 0.13173 61 56 - 138 0.1514 0.14214 65 61 - 139 0.15932 0.15421 67 65 - 140 0.12781 0.12553 56 55 - 141 0.13374 0.12695 59 56 - 142 0.11262 0.11262 50 50 - 143 0.11181 0.10734 50 48 - 144 0.15558 0.14695 67 65 - 145 0.11044 0.10383 50 47 - 146 0.13146 0.13146 42 42 - 147 0.11554 0.11554 50 50 - 148 0.15429 0.14564 57 53 - 149 0.084328 0.08218 40 39 - 150 0.089535 0.087402 41 40 - 151 0.10613 0.10401 50 49 - 152 0.09806 0.093852 43 41 - 153 0.11777 0.10182 51 48 - 154 0.082552 0.080445 40 39 - 155 0.090249 0.090249 42 42 - 156 0.098827 0.096774 48 47 - 157 0.061423 0.059383 29 28 - 158 0.10496 0.10293 51 50 - 159 0.076574 0.066502 38 33 - 160 0.060078 0.056073 30 28 - 161 0.079588 0.07362 40 37 - 162 0.06527 0.061315 33 31 - 163 0.051242 0.04731 26 24 - 164 0.054368 0.050459 26 24 - 165 0.072507 0.072507 35 35 - 166 0.062724 0.058861 30 28 - 167 0.044413 0.044413 23 23 - 168 0.05347 0.05347 28 28 - 169 0.068738 0.061877 34 32 - 170 0.084274 0.084274 39 39 - 171 0.058538 0.05291 31 28 - 172 0.042151 0.042151 22 22 - 173 0.042276 0.03154 20 17 - 174 0.038755 0.038755 21 21 - 175 0.055025 0.051356 30 28 - 176 0.050858 0.049033 28 27 - 177 0.049795 0.047981 27 26 - 178 0.034263 0.032459 19 18 - 179 0.025729 0.022141 14 12 - 180 0.044645 0.035037 24 19 - 181 0.022966 0.02119 13 12 - 182 0.045577 0.043813 24 23 - 183 0.05703 0.055275 31 30 - 184 0.030634 0.028887 16 15 - 185 0.031267 0.027791 18 16 - 186 0.044959 0.043237 26 25 - 187 0.048515 0.029942 21 16 - 188 0.025229 0.021679 11 10 - 189 0.02655 0.024848 15 14 - 190 0.027295 0.02345 14 12 - 191 0.043478 0.039277 25 23 - 192 0.027016 0.023235 15 13 - 193 0.037462 0.031989 20 18 - 194 0.025223 0.021904 14 12 - 195 0.028248 0.026593 16 15 - 196 0.036024 0.030473 21 18 - 197 0.041727 0.039984 24 23 - 198 0.045413 0.039005 25 22 - 199 0.039851 0.03442 24 21 - 200 0.029318 0.025843 18 16 - 201 0.048108 0.033737 28 20 - 202 0.05937 0.039635 35 25 - 203 0.016116 0.0099396 9 6 - 204 0.016743 0.011741 9 6 - 205 0.019362 0.012375 11 7 - 206 0.016838 0.0087684 10 5 - 207 0.032886 0.021171 15 8 - 208 0.019068 0.0065921 11 4 - 209 0.021447 0.013442 11 6 - 210 0.024532 0.011462 14 6 - 211 0.026343 0.0062446 15 3 - 212 0.015385 0.0059597 9 3 - 213 0.01481 0.0041778 9 2 - 214 0.020379 0.014316 13 9 - 215 0.019049 0.0085751 11 5 - 216 0.027344 0.014707 15 7 - 217 0.022563 0.0071799 14 4 - 218 0.024893 0.013663 15 8 - 219 0.037896 0.011236 22 6 - 220 0.018396 0.011821 10 6 - 221 0.03184 0.0069049 18 4 - 222 0.017594 0.008769 10 5 - 223 0.010811 0.0061421 6 3 - 224 0.0254 0.010093 14 5 - 225 0.02771 0.013392 17 8 - 226 0.019559 0.011746 11 6 - 227 0.020757 0.014555 11 7 - 228 0.024084 0.01433 13 7 - 229 0.031016 0.015478 15 7 - 230 0.012948 0.0045113 7 2 - 231 0.012248 0.0049365 7 3 - 232 0.014361 0.0086671 8 4 + 0 2.5478 2.5478 4 4 + 1 1.698 1.698 8 8 + 2 1.7827 1.6554 14 13 + 3 2.2741 2.1831 25 24 + 4 1.6271 1.5563 23 22 + 5 2.0258 1.968 35 34 + 6 2.1276 2.0296 44 42 + 7 1.8068 1.7644 43 42 + 8 1.311 1.311 35 35 + 9 2.1113 2.0443 63 61 + 10 1.4932 1.3719 48 44 + 11 2.0781 2.0504 75 74 + 12 1.6058 1.5039 63 59 + 13 1.5638 1.3751 65 57 + 14 1.7134 1.6256 78 74 + 15 1.6227 1.5611 79 76 + 16 1.5437 1.5052 80 78 + 17 1.4191 1.2918 78 71 + 18 1.8447 1.7242 105 98 + 19 1.5389 1.4736 93 89 + 20 1.7446 1.5893 108 98 + 21 1.5759 1.4861 101 95 + 22 1.5856 1.529 112 108 + 23 1.5854 1.4635 117 108 + 24 1.6939 1.6289 130 125 + 25 1.5832 1.5328 123 119 + 26 1.3939 1.3219 116 110 + 27 1.6961 1.6382 140 135 + 28 1.5776 1.5441 141 138 + 29 1.5663 1.5124 143 138 + 30 1.4859 1.4024 142 134 + 31 1.5605 1.51 153 148 + 32 1.5487 1.5193 150 147 + 33 1.3094 1.2429 130 123 + 34 1.3145 1.2406 140 132 + 35 1.4337 1.353 159 150 + 36 1.5023 1.4151 172 162 + 37 1.4563 1.4223 167 163 + 38 1.5683 1.5269 189 184 + 39 1.522 1.4897 175 171 + 40 1.3861 1.3389 173 167 + 41 1.1593 1.1209 151 146 + 42 1.2893 1.2368 172 165 + 43 1.2965 1.2452 177 170 + 44 1.2886 1.217 178 168 + 45 1.4567 1.4217 190 185 + 46 1.3019 1.254 190 183 + 47 1.3494 1.336 194 192 + 48 1.4545 1.4085 220 213 + 49 1.3411 1.2639 208 196 + 50 1.3349 1.2907 210 203 + 51 1.0989 1.0494 177 169 + 52 1.3185 1.2942 210 206 + 53 1.0253 1.0015 172 168 + 54 1.1339 1.0813 193 184 + 55 1.1201 1.0857 194 188 + 56 1.2598 1.2315 215 210 + 57 1.1649 1.0928 210 197 + 58 1.1037 1.0492 191 181 + 59 1.0659 1.007 198 187 + 60 1.0965 1.028 206 193 + 61 1.1434 1.1227 207 203 + 62 0.99527 0.95957 192 185 + 63 0.89436 0.88432 178 176 + 64 0.98106 0.93658 198 189 + 65 1.045 0.99635 214 204 + 66 0.90881 0.87525 186 179 + 67 0.94897 0.90646 201 192 + 68 0.92257 0.86207 199 186 + 69 0.84472 0.8172 184 178 + 70 0.93564 0.90849 203 197 + 71 0.86887 0.83319 191 183 + 72 0.83549 0.81349 187 182 + 73 0.766 0.73128 176 168 + 74 0.87787 0.85647 205 200 + 75 0.86719 0.83762 197 190 + 76 0.68681 0.67013 165 161 + 77 0.7199 0.70343 165 161 + 78 0.70955 0.68111 170 163 + 79 0.66492 0.6609 165 164 + 80 0.73451 0.73055 184 183 + 81 0.74996 0.72643 189 183 + 82 0.63626 0.59317 159 153 + 83 0.65418 0.63121 170 164 + 84 0.5863 0.58253 154 153 + 85 0.62661 0.60795 168 163 + 86 0.58271 0.55688 155 148 + 87 0.58864 0.5704 161 156 + 88 0.59671 0.58589 153 150 + 89 0.59739 0.58669 167 164 + 90 0.47499 0.45382 134 128 + 91 0.67295 0.6555 176 171 + 92 0.54617 0.53926 158 156 + 93 0.49532 0.47825 145 140 + 94 0.4705 0.44684 138 131 + 95 0.51499 0.50161 153 149 + 96 0.47761 0.47099 142 140 + 97 0.49867 0.48229 152 147 + 98 0.39578 0.38605 122 119 + 99 0.44386 0.41818 136 128 + 100 0.41352 0.38809 129 121 + 101 0.45336 0.43447 144 138 + 102 0.38777 0.38154 124 122 + 103 0.39204 0.37351 127 121 + 104 0.34885 0.33336 113 108 + 105 0.40883 0.39368 132 127 + 106 0.36134 0.33315 120 111 + 107 0.35226 0.34037 118 114 + 108 0.35057 0.33289 118 112 + 109 0.34224 0.32763 116 111 + 110 0.29535 0.2722 102 94 + 111 0.29597 0.28163 102 97 + 112 0.33523 0.30965 116 107 + 113 0.25826 0.24698 91 87 + 114 0.27945 0.27387 100 98 + 115 0.25801 0.25524 89 88 + 116 0.25986 0.24338 93 87 + 117 0.2864 0.27551 105 101 + 118 0.22145 0.20254 82 75 + 119 0.26085 0.25281 98 95 + 120 0.28797 0.27734 107 103 + 121 0.29515 0.28721 112 109 + 122 0.25123 0.24601 96 94 + 123 0.21153 0.20635 80 78 + 124 0.18799 0.16999 73 66 + 125 0.17682 0.17427 69 68 + 126 0.21776 0.20764 86 82 + 127 0.16857 0.16103 67 64 + 128 0.22771 0.22522 91 90 + 129 0.20493 0.19751 82 79 + 130 0.16593 0.14688 61 57 + 131 0.19526 0.18308 77 72 + 132 0.23254 0.18645 81 77 + 133 0.20542 0.19342 82 77 + 134 0.16792 0.15601 68 63 + 135 0.19203 0.18494 82 79 + 136 0.16206 0.15971 69 68 + 137 0.14997 0.14298 64 61 + 138 0.11866 0.11403 45 43 + 139 0.15269 0.15269 61 61 + 140 0.1189 0.11434 52 50 + 141 0.12508 0.12281 52 51 + 142 0.10875 0.090057 48 40 + 143 0.098436 0.093967 44 42 + 144 0.11329 0.11329 51 51 + 145 0.11248 0.10586 51 48 + 146 0.12647 0.12209 55 53 + 147 0.11204 0.10985 51 50 + 148 0.12646 0.11349 56 50 + 149 0.10192 0.095482 46 43 + 150 0.086691 0.078162 40 36 + 151 0.097491 0.095373 46 45 + 152 0.075821 0.071597 36 34 + 153 0.077364 0.073185 37 35 + 154 0.097782 0.09153 48 45 + 155 0.090113 0.076883 38 36 + 156 0.077677 0.077677 38 38 + 157 0.090844 0.086765 43 41 + 158 0.074998 0.072971 37 36 + 159 0.090662 0.086634 45 43 + 160 0.080131 0.076127 40 38 + 161 0.059723 0.057734 30 29 + 162 0.093569 0.087636 38 35 + 163 0.070813 0.070813 36 36 + 164 0.095992 0.092084 48 46 + 165 0.075764 0.071879 39 37 + 166 0.054721 0.050274 27 26 + 167 0.069097 0.065258 36 34 + 168 0.064923 0.061104 34 32 + 169 0.075743 0.065014 38 34 + 170 0.0624 0.0624 33 33 + 171 0.054424 0.052548 29 28 + 172 0.055257 0.053392 29 28 + 173 0.063559 0.063559 33 33 + 174 0.055612 0.053768 27 26 + 175 0.047699 0.044031 26 24 + 176 0.049858 0.049858 27 27 + 177 0.045373 0.04356 25 24 + 178 0.13075 0.12714 35 33 + 179 0.019744 0.019744 11 11 + 180 0.047805 0.04231 24 22 + 181 0.041557 0.041557 23 23 + 182 0.028352 0.021291 16 12 + 183 0.052317 0.048555 29 28 + 184 0.025927 0.023622 14 13 + 185 0.029974 0.028236 17 16 + 186 0.036314 0.034586 21 20 + 187 0.041257 0.041257 23 23 + 188 0.034221 0.03251 20 19 + 189 0.044238 0.040829 23 21 + 190 0.03403 0.031325 18 17 + 191 0.027986 0.027986 16 16 + 192 0.031593 0.027536 18 16 + 193 0.026968 0.026968 16 16 + 194 0.026744 0.026744 14 14 + 195 0.033457 0.031805 20 19 + 196 0.036734 0.031699 16 14 + 197 0.033299 0.029413 17 15 + 198 0.031474 0.027409 16 14 + 199 0.036296 0.025155 21 15 + 200 0.04299 0.031566 25 19 + 201 0.040569 0.035293 24 21 + 202 0.03246 0.025742 15 11 + 203 0.014555 0.0081087 9 5 + 204 0.073448 0.059212 17 9 + 205 0.03224 0.016268 19 9 + 206 0.022081 0.008298 13 5 + 207 0.029545 0.022623 9 5 + 208 0.027103 0.0074767 17 5 + 209 0.030696 0.016671 15 6 + 210 0.017394 0.0050078 11 3 + 211 0.021114 0.011663 13 7 + 212 0.031454 0.014793 18 8 + 213 0.021562 0.015676 12 9 + 214 0.023979 0.018307 13 10 + 215 0.025543 0.013789 14 7 + 216 0.021981 0.01746 8 5 + 217 0.034675 0.010179 14 5 + 218 0.026517 0.0059601 15 3 + 219 0.027831 0.013623 17 8 + 220 0.027461 0.0096493 16 5 + 221 0.013401 0.0056429 8 3 + 222 0.0095971 0.0063727 6 4 + 223 0.024795 0.011152 14 6 + 224 0.01596 0.0079613 10 5 + 225 0.0072432 0.0029199 5 2 + 226 0.018091 0.006358 11 4 + 227 0.018248 0.010574 10 5 + 228 0.017665 0.0070984 12 5 + 229 0.0064129 0.0028307 4 2 + 230 0.013981 0.0060928 8 3 + 231 0.014054 0.0045326 9 3 + 232 0.020728 0.0053309 10 3 diff --git a/examples/extended/medical/fanoCavity/fanoCavity.out b/examples/extended/medical/fanoCavity/fanoCavity.out index 058ee08f7a..9780d7e3df 100644 --- a/examples/extended/medical/fanoCavity/fanoCavity.out +++ b/examples/extended/medical/fanoCavity/fanoCavity.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -224,17 +224,17 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics --> Event 0 starts. --> Event 1000 starts. - ---> NbofEvents= 1000 NbOfelectr= 70472 Tkin= 587.785 keV (0.000 %) NbOfelec in cav= 4652 Dose/EnFluence= 29.050 cm2/g (0.000 %) + ---> NbofEvents= 1000 NbOfelectr= 70295 Tkin= 588.367 keV (0.000 %) NbOfelec in cav= 5019 Dose/EnFluence= 29.646 cm2/g (0.000 %) --> Event 2000 starts. - ---> NbofEvents= 2000 NbOfelectr= 140719 Tkin= 587.710 keV (-0.013 %) NbOfelec in cav= 9611 Dose/EnFluence= 30.464 cm2/g (4.867 %) + ---> NbofEvents= 2000 NbOfelectr= 140704 Tkin= 588.145 keV (-0.038 %) NbOfelec in cav= 9622 Dose/EnFluence= 29.767 cm2/g (0.406 %) --> Event 3000 starts. - ---> NbofEvents= 3000 NbOfelectr= 211189 Tkin= 588.622 keV (0.155 %) NbOfelec in cav= 14332 Dose/EnFluence= 30.227 cm2/g (-0.779 %) + ---> NbofEvents= 3000 NbOfelectr= 211164 Tkin= 588.732 keV (0.100 %) NbOfelec in cav= 14297 Dose/EnFluence= 30.015 cm2/g (0.833 %) Run terminated. Run Summary Number of events processed : 4000 - User=41.36s Real=41.45s Sys=0s + User=31.69s Real=31.78s Sys=0.01s ======================== run summary ====================== @@ -244,32 +244,32 @@ Run Summary ============================================================ - Process calls frequency ---> compt= 281779 Transportation= 78059 msc= 2609099 eIoni= 1716243 + Process calls frequency ---> compt= 281534 Transportation= 77539 msc= 2521426 eIoni= 1723284 Gamma crossSections in wall material : compt= 63.447 cm2/g --> total= 63.447 cm2/g - Mean energy of secondary e- = 588.9356 keV +- 0.1028 % (--> range in wall material = 2.2252 mm ) - Mass_energy_transfer coef: 29.8930 cm2/g + Mean energy of secondary e- = 588.6114 keV +- 0.1029 % (--> range in wall material = 2.2236 mm ) + Mass_energy_transfer coef: 29.8765 cm2/g - StoppingPower in wall = 1.9635 MeV*cm2/g - in cavity = 1.9635 MeV*cm2/g + StoppingPower in wall = 1.9637 MeV*cm2/g + in cavity = 1.9637 MeV*cm2/g Charged particle flow in cavity : - Enter --> nbParticles = 19141 Energy = 9.7496 GeV - Exit --> nbParticles = 19152 Energy = 9.7542 GeV + Enter --> nbParticles = 19134 Energy = 9.7143 GeV + Exit --> nbParticles = 19142 Energy = 9.7144 GeV - Total edep in cavity = 13.3744 MeV +- 2.7020 % Total charged trackLength = 52.7634 m (mean value = 2.7566 mm ) - Total dose in cavity = 21.2861 MeV/mg - Dose/EnergyFluence = 30.0925 cm2/g + Total edep in cavity = 12.9783 MeV +- 2.6974 % Total charged trackLength = 53.0812 m (mean value = 2.7742 mm ) + Total dose in cavity = 20.6557 MeV/mg + Dose/EnergyFluence = 29.2013 cm2/g - (Dose/EnergyFluence)/Mass_energy_transfer = 1.00667 +- 0.02722 + (Dose/EnergyFluence)/Mass_energy_transfer = 0.97740 +- 0.02638 - StepSize of ch. tracks in wall = 109.1259 um +- 70.6037 um (nbSteps/track = 15.4331) - StepSize of ch. tracks in cavity = 1.1198 mm +- 1.1572 mm (nbSteps/track = 2.4616) + StepSize of ch. tracks in wall = 110.9149 um +- 70.2670 um (nbSteps/track = 15.1726) + StepSize of ch. tracks in cavity = 1.2318 mm +- 1.1712 mm (nbSteps/track = 2.2522) --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 486460350, 1502766847 + Current couple of seeds = 1144389596, 231616987 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/medical/fanoCavity2/fanoCavity2.out b/examples/extended/medical/fanoCavity2/fanoCavity2.out index dee89b7658..a12cb79ddc 100644 --- a/examples/extended/medical/fanoCavity2/fanoCavity2.out +++ b/examples/extended/medical/fanoCavity2/fanoCavity2.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -105,16 +105,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -270,44 +272,44 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics --> Event 0 starts. --> Event 10000 starts. ---->evntNb= 10000 Nwall= 10000 Ncav= 1 Ic/Iw= 0.52690 Ne-_cav= 2880 doseCavity/Ebeam= 1.03240 (100*(ratio-1) = 3.24017 %) +--->evntNb= 10000 Nwall= 10000 Ncav= 1 Ic/Iw= 0.52690 Ne-_cav= 2925 doseCavity/Ebeam= 1.14452 (100*(ratio-1) = 14.45166 %) --> Event 20000 starts. ---->evntNb= 20000 Nwall= 19998 Ncav= 3 Ic/Iw= 0.79043 Ne-_cav= 5660 doseCavity/Ebeam= 1.07096 (100*(ratio-1) = 7.09638 %) +--->evntNb= 20000 Nwall= 19997 Ncav= 4 Ic/Iw= 1.05396 Ne-_cav= 5752 doseCavity/Ebeam= 1.11478 (100*(ratio-1) = 11.47813 %) --> Event 30000 starts. ---->evntNb= 30000 Nwall= 29996 Ncav= 5 Ic/Iw= 0.87828 Ne-_cav= 8333 doseCavity/Ebeam= 1.04386 (100*(ratio-1) = 4.38576 %) +--->evntNb= 30000 Nwall= 29996 Ncav= 5 Ic/Iw= 0.87828 Ne-_cav= 8563 doseCavity/Ebeam= 1.14826 (100*(ratio-1) = 14.82635 %) Run terminated. Run Summary Number of events processed : 40000 - User=8.72s Real=8.73s Sys=0s + User=9.33s Real=9.39s Sys=0.02s - Process calls frequency ---> msc= 619203 eIoni= 602443 Transportation= 22350 + Process calls frequency ---> msc= 607654 eIoni= 602184 Transportation= 22901 Charged particle flow in cavity : - Enter --> nbParticles = 11177 Energy = 7.132 GeV - Exit --> nbParticles = 11173 Energy = 7.130 GeV + Enter --> nbParticles = 11452 Energy = 7.282 GeV + Exit --> nbParticles = 11449 Energy = 7.280 GeV - beamFluence in wall = 39994 in cavity = 6 Icav/Iwall = 0.79047 energyFluence = 37.95067 MeV*cm2/mg + beamFluence in wall = 39993 in cavity = 7 Icav/Iwall = 0.92224 energyFluence = 37.95067 MeV*cm2/mg - Total edep in cavity = 7.97796 MeV +- 3.51836 % - Total dose in cavity = 39.88982 MeV*cm2/mg +- 3.51836 % + Total edep in cavity = 8.59124 MeV +- 4.32354 % + Total dose in cavity = 42.95621 MeV*cm2/mg +- 4.32354 % - DoseCavity/EnergyFluence = 1.05110 +- 0.03698 + DoseCavity/EnergyFluence = 1.13190 +- 0.04894 - Total charged trackLength in cavity = 35.0103 m (mean value = 3.1323 mm ) + Total charged trackLength in cavity = 36.5026 m (mean value = 3.1874 mm ) - StepSize of ch. tracks in wall = 144.9505 um +- 128.8491 um (nbSteps/track = 30.4326) - StepSize of ch. tracks in cavity = 1.3027 mm +- 1.5571 mm (nbSteps/track = 2.4046) + StepSize of ch. tracks in wall = 146.2519 um +- 127.9811 um (nbSteps/track = 30.1808) + StepSize of ch. tracks in cavity = 1.4194 mm +- 2.0130 mm (nbSteps/track = 2.2456) --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 317599981, 1509512472 + Current couple of seeds = 643435522, 1008375888 ---------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 317599981, 1509512472 + Current couple of seeds = 643435522, 1008375888 ---------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/optical/LXe/LXe.out b/examples/extended/optical/LXe/LXe.out index 2343d585ad..ceaab371ae 100644 --- a/examples/extended/optical/LXe/LXe.out +++ b/examples/extended/optical/LXe/LXe.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -59,6 +61,14 @@ Available colours: Construction /LXeDet/pmtSD Construction /LXeDet/scintSD +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -129,7 +139,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -156,7 +166,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -238,7 +248,7 @@ Unacounted for photons in this event : 0 Run terminated. Run Summary Number of events processed : 1 - User=0.44s Real=0.45s Sys=0s + User=0.18s Real=0.18s Sys=0s ========= Table of registered couples ============================== @@ -286,7 +296,7 @@ Unacounted for photons in this event : 0 Run terminated. Run Summary Number of events processed : 1 - User=0.33s Real=0.34s Sys=0s + User=0.16s Real=0.16s Sys=0s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/optical/OpNovice/OpNovice.out b/examples/extended/optical/OpNovice/OpNovice.out index 286652987b..071b153174 100644 --- a/examples/extended/optical/OpNovice/OpNovice.out +++ b/examples/extended/optical/OpNovice/OpNovice.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -310,16 +310,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -486,7 +488,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -513,7 +515,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -578,8 +580,8 @@ Index : 1 used in the geometry : Yes ### Run 0 start. ### G4EmSaturation::FindBirksCoefficient Birks coefficient for Water 0.126 mm/MeV -Number of Scintillation photons produced in this event : 68 -Number of Cerenkov photons produced in this event : 27 +Number of Scintillation photons produced in this event : 71 +Number of Cerenkov photons produced in this event : 25 number of event = 1 User=0.01s Real=0.01s Sys=0s # Graphics systems deleted. diff --git a/examples/extended/optical/wls/wls.out b/examples/extended/optical/wls/wls.out index c7f87d956c..15ba966dab 100644 --- a/examples/extended/optical/wls/wls.out +++ b/examples/extended/optical/wls/wls.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -47,16 +47,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -67,20 +69,18 @@ Some /vis commands (optionally) take a string to specify colour. Available colours: black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow -### NIST DataBase for Materials is used G4NistMaterialBuilder::FindOrBuildMaterial G4_Galactic G4NistMaterialBuilder: BuildMaterial #286 New material nComponents= 1 G4NistElementBuilder: Build Element Z= 1 Aeff= 1.00794 with natural isotope composition G4Material: Mean excitation energy is changed for G4_Galactic Iold= 19.2eV Inew= 21.8 eV G4NistMaterialBuilder::FindOrBuildMaterial G4_AIR -G4NistMaterialBuilder: BuildMaterial #103 +G4NistMaterialBuilder: BuildMaterial #104 New material nComponents= 4 G4NistElementBuilder: Build Element Z= 6 Aeff= 12.0107 with natural isotope composition G4NistElementBuilder: Build Element Z= 7 Aeff= 14.0068 with natural isotope composition G4NistElementBuilder: Build Element Z= 8 Aeff= 15.9994 with natural isotope composition G4NistElementBuilder: Build Element Z= 18 Aeff= 39.9477 with natural isotope composition -G4Material: Mean excitation energy is changed for G4_AIR Iold= 85.6689eV Inew= 85.7 eV G4NistMaterialBuilder::FindOrBuildMaterial PMMA G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out New material PMMA is prepeared nMaterials= 317 nComponents= 816 nCurrent= 3 @@ -107,31 +107,43 @@ New material Silicone is prepeared nMaterials= 321 nComponents= 825 nCurrent= 2 G4NistMaterialBuilder: BuildMaterial #320 New material nComponents= 2 G4NistMaterialBuilder::FindOrBuildMaterial G4_Al -G4NistMaterialBuilder: BuildMaterial #12 +G4NistMaterialBuilder: BuildMaterial #13 New material nComponents= 1 G4NistElementBuilder: Build Element Z= 13 Aeff= 26.9815 with natural isotope composition -G4Material: Mean excitation energy is changed for G4_Al Iold= 166eV Inew= 166 eV G4NistMaterialBuilder::FindOrBuildMaterial TiO2 G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out New material TiO2 is prepeared nMaterials= 322 nComponents= 827 nCurrent= 2 G4NistMaterialBuilder: BuildMaterial #321 New material nComponents= 2 G4NistElementBuilder: Build Element Z= 22 Aeff= 47.8667 with natural isotope composition -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen WLSExtraPhysics:: Add Extra Physics Processes WLSOpticalPhysics:: Add Optical Physics Processes +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 + phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -247,15 +259,12 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 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= 10 TeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -264,7 +273,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -373,7 +382,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -406,7 +415,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -430,23 +439,23 @@ CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 10 TeV -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen msc: for pi+ SubType= 10 RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 @@ -527,6 +536,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -751,7 +765,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 Model: QGSP: 12 GeV ---> 100 TeV Model: FTFP: 9.5 GeV ---> 25 GeV Model: BertiniCascade: 19.9 MeV ---> 9.9 GeV - Model: ParticleHPInelastic: 0 eV ---> 20 MeV + Model: NeutronHPInelastic: 0 eV ---> 20 MeV Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV diff --git a/examples/extended/parallel/TBB/.README.txt b/examples/extended/parallel/TBB/.README.txt index 4de5466b8e..c05fb6b9f7 100644 --- a/examples/extended/parallel/TBB/.README.txt +++ b/examples/extended/parallel/TBB/.README.txt @@ -17,7 +17,8 @@ task-based parallelism. It should not be considered a feature-complete exam and it present some limitations (no merging of output, no correct clean-up of heap). -It will be substantially improved in 2014. If you have interest in TBB please +It will be substantially improved in the future. +If you have interest in TBB please refer to Geant4 Multi-threading user-forum (reachable from Geant4 website) where updates on TBB will be communicated or contact example author at: adotti@slac.stanford.edu. diff --git a/examples/extended/parallel/TBB/B2b/exampleB2b.cc b/examples/extended/parallel/TBB/B2b/exampleB2b.cc index f926f8bc68..5102a812bb 100644 --- a/examples/extended/parallel/TBB/B2b/exampleB2b.cc +++ b/examples/extended/parallel/TBB/B2b/exampleB2b.cc @@ -33,7 +33,7 @@ //G4-TBB interfaces #include "tbbUserWorkerInitialization.hh" -#include "tbbMasterRunManager.hh" +#include "SimpleTbbMasterRunManager.hh" #include "G4Threading.hh" #include "G4UImanager.hh" @@ -68,10 +68,10 @@ G4ThreadFunReturnType startWork(G4ThreadFunArgType arg) //We assume at least one /run/beamOn was executed, thus the tasklist is now filled, //lets start TBB try { - std::cout<<"Now spawn work and waiting"<(0); } @@ -83,14 +83,14 @@ int main(int argc,char** argv) // Choose the Random engine G4Random::setTheEngine(new CLHEP::RanecuEngine); - - - //=== TBB engine initialization - tbb::task_scheduler_init init( G4Threading::G4GetNumberOfCores() ); - tbb::task_list tasks; + unsigned int numCoresAvailable= G4Threading::G4GetNumberOfCores(); + unsigned int numberOfCoresToUse= (numCoresAvailable > 1 ) ? 2 : 1 ; + //=== TBB engine initialization + tbb::task_scheduler_init init( numberOfCoresToUse ); + tbb::task_list tasks; - tbbMasterRunManager* runManager = new tbbMasterRunManager; + SimpleTbbMasterRunManager* runManager = new SimpleTbbMasterRunManager; //Set TBB specific data to run-manager, 1 event per tbb::task (e.g. Nevents == N tasks) //Note that a /run/beamOn command will just create tasks and add them to tasks @@ -117,14 +117,6 @@ int main(int argc,char** argv) runManager->Initialize(); -#ifdef G4VIS_USE - // Initialize visualization - G4VisManager* visManager = new G4VisExecutive; - // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance. - // G4VisManager* visManager = new G4VisExecutive("Quiet"); - visManager->Initialize(); -#endif - // Get the pointer to the User Interface manager G4UImanager* UImanager = G4UImanager::GetUIpointer(); @@ -136,17 +128,18 @@ int main(int argc,char** argv) } else { // interactive mode : define UI session -#ifdef G4UI_USE +#if 1 + G4int nEvents= 50; + runManager->BeamOn(nEvents); +#else + #ifdef G4UI_USE G4UIExecutive* ui = new G4UIExecutive(argc, argv); -#ifdef G4VIS_USE - UImanager->ApplyCommand("/control/execute init_vis.mac"); -#else - UImanager->ApplyCommand("/control/execute init.mac"); -#endif + UImanager->ApplyCommand("/control/execute init.mac"); if (ui->IsGUI()) UImanager->ApplyCommand("/control/execute gui.mac"); ui->SessionStart(); delete ui; + #endif #endif } //END-G4 @@ -156,10 +149,6 @@ int main(int argc,char** argv) //Wait for work to be finised G4THREADJOIN(aThread); -#ifdef G4VIS_USE - delete visManager; -#endif - delete runManager; return 0; diff --git a/examples/extended/parallel/TBB/B2b/include/tbbMasterRunManager.hh b/examples/extended/parallel/TBB/B2b/include/SimpleTbbMasterRunManager.hh similarity index 85% rename from examples/extended/parallel/TBB/B2b/include/tbbMasterRunManager.hh rename to examples/extended/parallel/TBB/B2b/include/SimpleTbbMasterRunManager.hh index 4da4dd8e43..8210776650 100644 --- a/examples/extended/parallel/TBB/B2b/include/tbbMasterRunManager.hh +++ b/examples/extended/parallel/TBB/B2b/include/SimpleTbbMasterRunManager.hh @@ -39,20 +39,20 @@ // History: // Nov 4th, 2013 A. Dotti - First Implementation -#ifndef TBBMASTERRUNMANAGER_HH -#define TBBMASTERRUNMANAGER_HH +#ifndef SIMPLETBBMASTERRUNMANAGER_HH +#define SIMPLETBBMASTERRUNMANAGER_HH #include "G4MTRunManager.hh" #include -class tbbMasterRunManager : public G4MTRunManager { +class SimpleTbbMasterRunManager : public G4MTRunManager { public: - tbbMasterRunManager(); - //Default construct, tasklist is the tbb::task_list - //where the created tasks will be added to - //nEvents is the number of events each tbb::task is - //responsible for - virtual ~tbbMasterRunManager(); + SimpleTbbMasterRunManager(); // G4RunManagerKernel* existingRMK=0); + // Default constructor, + // tasklist is the tbb::task_list to which the created tasks will be added. + // nEvents is the number of events for which each tbb::task is responsible + // + virtual ~SimpleTbbMasterRunManager(); virtual void RunTermination(); void SetTaskList( tbb::task_list* tl ) { theTasks = tl; } //Set a reference to the output task list where new tasks will @@ -72,7 +72,8 @@ protected: virtual void WaitForEndEventLoopWorkers() {} virtual void ThisWorkerReady() {} virtual void ThisWorkerEndEventLoop() {} - virtual WorkerActionRequest ThisWorkerWaitForNextAction() { return UNDEFINED; } + virtual WorkerActionRequest ThisWorkerWaitForNextAction() + { return WorkerActionRequest::UNDEFINED; } virtual void NewActionRequest( WorkerActionRequest /*newRequest*/ ) {} private: tbb::task_list* theTasks; diff --git a/examples/extended/parallel/TBB/B2b/include/tbbTask.hh b/examples/extended/parallel/TBB/B2b/include/tbbTask.hh index 3d9447ab0d..5f276c08af 100644 --- a/examples/extended/parallel/TBB/B2b/include/tbbTask.hh +++ b/examples/extended/parallel/TBB/B2b/include/tbbTask.hh @@ -37,12 +37,13 @@ public: tbbTask(G4int anId, tbb::concurrent_queue* output=0 , G4int nEvts = 1 ); virtual ~tbbTask(); tbb::task* execute(); + + unsigned int GetSlotId(); // private: - G4int nEvents; - G4int thisID; - tbb::concurrent_queue* output; - G4bool beamOnCondition; + G4int m_nEvents; + G4int m_taskID; + tbb::concurrent_queue* m_output; + G4bool m_beamOnCondition; }; - -#endif //TBBTASK_HH +#endif //TBBTASK_HH \ No newline at end of file diff --git a/examples/extended/parallel/TBB/B2b/include/tbbWorkerRunManager.hh b/examples/extended/parallel/TBB/B2b/include/tbbWorkerRunManager.hh index 92b8eb3608..b08bbced48 100644 --- a/examples/extended/parallel/TBB/B2b/include/tbbWorkerRunManager.hh +++ b/examples/extended/parallel/TBB/B2b/include/tbbWorkerRunManager.hh @@ -29,7 +29,7 @@ // This class implements the worker model run manager for TBB based // application. // It is instantiated by tbbUserWorkerInitialization and used by -// tbbMasterRunManager. +// SimpleTbbMasterRunManager. // See G4WorkerRunManager for documentation of methods relative to // base class. Only class specific methods are documented here. // @@ -38,6 +38,7 @@ // // History: // Oct 31st, 2013 A. Dotti - First Implementation +// May 12th, 2014 J. Apostolakis - Additional methods/functionality #ifndef TBBWORKERRUNMANAGER_HH #define TBBWORKERRUNMANAGER_HH diff --git a/examples/extended/parallel/TBB/B2b/src/tbbMasterRunManager.cc b/examples/extended/parallel/TBB/B2b/src/SimpleTbbMasterRunManager.cc similarity index 87% rename from examples/extended/parallel/TBB/B2b/src/tbbMasterRunManager.cc rename to examples/extended/parallel/TBB/B2b/src/SimpleTbbMasterRunManager.cc index 34da68113e..5a0a694c0b 100644 --- a/examples/extended/parallel/TBB/B2b/src/tbbMasterRunManager.cc +++ b/examples/extended/parallel/TBB/B2b/src/SimpleTbbMasterRunManager.cc @@ -29,7 +29,7 @@ // This class implements the worker model run manager for TBB based // application. // It is instantiated by tbbUserWorkerInitialization and used by -// tbbMasterRunManager. +// SimpleTbbMasterRunManager. // See G4WorkerRunManager for documentation of methods relative to // base class. Only class specific methods are documented here. // @@ -39,26 +39,26 @@ // History: // Oct 31st, 2013 A. Dotti - First Implementation -#include "tbbMasterRunManager.hh" +#include "SimpleTbbMasterRunManager.hh" #include "tbbTask.hh" -tbbMasterRunManager::tbbMasterRunManager() : +SimpleTbbMasterRunManager::SimpleTbbMasterRunManager() : G4MTRunManager(), theTasks(static_cast(0)), nEvtsPerTask(1) { } -tbbMasterRunManager::~tbbMasterRunManager() +SimpleTbbMasterRunManager::~SimpleTbbMasterRunManager() { } -void tbbMasterRunManager::TerminateWorkers() +void SimpleTbbMasterRunManager::TerminateWorkers() { //For TBB based example this should be empty } -void tbbMasterRunManager::CreateAndStartWorkers() +void SimpleTbbMasterRunManager::CreateAndStartWorkers() { //Instead of pthread based workers, create tbbTask G4int ntasks = numberOfEventToBeProcessed/nEvtsPerTask; @@ -71,14 +71,14 @@ void tbbMasterRunManager::CreateAndStartWorkers() } } -void tbbMasterRunManager::CreateTask(G4int id,G4int evts) +void SimpleTbbMasterRunManager::CreateTask(G4int id,G4int evts) { tbbTask& task = * new(tbb::task::allocate_root()) tbbTask( id , NULL , evts ); //Add output for merging theTasks->push_back( task ); } -void tbbMasterRunManager::RunTermination() +void SimpleTbbMasterRunManager::RunTermination() { // Reduce results .... G4MTRunManager::RunTermination(); diff --git a/examples/extended/parallel/TBB/B2b/src/tbbTask.cc b/examples/extended/parallel/TBB/B2b/src/tbbTask.cc index a5aba6e5b9..bdf90c80a8 100644 --- a/examples/extended/parallel/TBB/B2b/src/tbbTask.cc +++ b/examples/extended/parallel/TBB/B2b/src/tbbTask.cc @@ -42,10 +42,10 @@ tbbTask::tbbTask(G4int anId, tbb::concurrent_queue* out, G4int nevts) -: nEvents(nevts), - thisID(anId), - output(out), - beamOnCondition(false) +: m_nEvents(nevts), + m_taskID(anId), + m_output(out), + m_beamOnCondition(false) { } @@ -177,20 +177,20 @@ tbb::task* tbbTask::execute() G4int numSelect = masterRM->GetNumberOfSelectEvents(); if ( macroFile == "" || macroFile == " " ) { - localRM->BeamOn(nEvents,0,numSelect); + localRM->BeamOn(m_nEvents,0,numSelect); } else { - localRM->BeamOn(nEvents,macroFile,numSelect); + localRM->BeamOn(m_nEvents,macroFile,numSelect); } //======= NEW TBB SPECIFIC =========== //Step-5: Initialize and start run //==================================== // bla-bla-bla-bla // This is basically BeamOn - beamOnCondition = localRM->ConfirmBeamOnCondition(); - if (beamOnCondition) { - localRM->SetNumberOfEventsToBeProcessed( nEvents ); + m_beamOnCondition = localRM->ConfirmBeamOnCondition(); + if (m_beamOnCondition) { + localRM->SetNumberOfEventsToBeProcessed( m_nEvents ); localRM->ConstructScoringWorlds(); localRM->RunInitialization(); //Register this G4Run in output @@ -198,12 +198,12 @@ tbb::task* tbbTask::execute() //G4Run or derived class. We let the kernel know this is the object //where the output is accumulated for the tbb::tasks that run on //this thread. - if ( output ) {} + if ( m_output ) {} } } assert(localRM!=0); - if ( beamOnCondition ) { - localRM->DoEventLoop( nEvents ); + if ( m_beamOnCondition ) { + localRM->DoEventLoop( m_nEvents ); //localRM->RunTermination(); //<<<< How to call this??? ANDREA TBB } diff --git a/examples/extended/parallel/TBB/CMakeLists.txt b/examples/extended/parallel/TBB/CMakeLists.txt index 29119bbd27..e2ea677c92 100644 --- a/examples/extended/parallel/TBB/CMakeLists.txt +++ b/examples/extended/parallel/TBB/CMakeLists.txt @@ -3,6 +3,10 @@ cmake_minimum_required(VERSION 2.6 FATAL_ERROR) -add_subdirectory(B2b) +if(GEANT4_BUILD_MULTITHREADED) + add_subdirectory(B2b) -add_custom_target(tbb DEPENDS B2bTBB) + add_custom_target(g4tbb DEPENDS exampleB2bTBB) +else() + message("-- G4 Examples: tbb examples require multithreaded build, disable") +endif() diff --git a/examples/extended/parallel/TBB/History b/examples/extended/parallel/TBB/History index 33fc754e36..7b95a11682 100644 --- a/examples/extended/parallel/TBB/History +++ b/examples/extended/parallel/TBB/History @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +23rd Fev 2016 A. Dotti (tbbex-V10-02-01) +- Removing example "granular" that is not yet ready. Use + previous tag to develop it. + +22nd Feb 2016 A. Dotti (tbbex-V10-02-00) +- Compatibility porting to run-V10-02-07 tag + 10th November 2013 I. Hrivnacova (tbbex-V09-06-02) - Added README files (and moved previous README in DevelopmentStatus.txt) - Fixed CMake build diff --git a/examples/extended/parallel/TBB/README b/examples/extended/parallel/TBB/README index 84830dba67..408869a95a 100644 --- a/examples/extended/parallel/TBB/README +++ b/examples/extended/parallel/TBB/README @@ -13,7 +13,8 @@ task-based parallelism. It should not be considered a feature-complete example and it present some limitations (no merging of output, no correct clean-up of heap). -It will be substantially improved in 2014. If you have interest in TBB please +It will be substantially improved in the future. +If you have interest in TBB please refer to Geant4 Multi-threading user-forum (reachable from Geant4 website) where updates on TBB will be communicated or contact example author at: adotti@slac.stanford.edu. diff --git a/examples/extended/parallel/ThreadsafeScorers/GNUmakefile b/examples/extended/parallel/ThreadsafeScorers/GNUmakefile index c3fbd0a412..1ceee31b24 100644 --- a/examples/extended/parallel/ThreadsafeScorers/GNUmakefile +++ b/examples/extended/parallel/ThreadsafeScorers/GNUmakefile @@ -4,7 +4,6 @@ name := ts_scorers G4TARGET := $(name) G4EXLIB := true -G4WORKDIR:=. ifndef G4INSTALL G4INSTALL = ../../.. @@ -16,5 +15,5 @@ all: lib bin include $(G4INSTALL)/config/binmake.gmk visclean: - rm -f g4*.prim g4*.eps g4*.wrl - rm -f .DAWN_* + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* diff --git a/examples/extended/parallel/ThreadsafeScorers/History b/examples/extended/parallel/ThreadsafeScorers/History index 771ebe6073..b7a4c98768 100644 --- a/examples/extended/parallel/ThreadsafeScorers/History +++ b/examples/extended/parallel/ThreadsafeScorers/History @@ -14,6 +14,13 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +15/06/16 Gunter Folger (ThreadsafeScorers-V10-02-02) +- Correct GNUmakefile, remove setting of WORKDIR=. + +15/06/16 Gunter Folger (ThreadsafeScorers-V10-02-01) +- Correct GNUmakefile,i.e. replace spaces by tab + 17/11/15 J. Madsen - Removed preprocessor checks for C++11 - Removed _HAS_ATOMICS_ preprocessor definition/conditions diff --git a/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out b/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out index 00f2cca902..e5021f8aff 100644 --- a/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out +++ b/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -135,12 +135,20 @@ Checking overlaps for volume Target_1_4_4 ... OK! Checking overlaps for volume Target_2_4_4 ... OK! Checking overlaps for volume Target_3_4_4 ... OK! Checking overlaps for volume Target_4_4_4 ... OK! -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -168,16 +176,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -197,7 +207,9 @@ Available colours: /run/beamOn 10000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 154 bins @@ -245,6 +257,13 @@ eBrem: for e- SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1 Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 @@ -273,6 +292,13 @@ eBrem: for e+ SubType= 3 eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS +ePairProd: for e+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 220 bins + Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1 + Sampling table 21x1001 from 0.1 GeV to 10 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + annihil: for e+, integral: 1 SubType= 5 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 10 TeV @@ -335,9 +361,6 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -520,13 +543,13 @@ CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1 180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 10 TeV -/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen -NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen -NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen -NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen msc: for pi+ SubType= 10 RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180 @@ -612,6 +635,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -776,7 +804,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 Model: QGSP: 12 GeV ---> 100 TeV Model: FTFP: 9.5 GeV ---> 25 GeV Model: BertiniCascade: 19.9 MeV ---> 9.9 GeV - Model: ParticleHPInelastic: 0 eV ---> 20 MeV + Model: NeutronHPInelastic: 0 eV ---> 20 MeV Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV @@ -1007,524 +1035,524 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=105.86s Real=111.71s Sys=0.65s + User=66.48s Real=67.24s Sys=0.47s ###### EndOfTSRunAction ###### ============================================================ opened file mfd_tl_EnergyDeposit.out for output ============================================================ - 0 670.223331 keV - 2 475.013749 keV - 3 743.453040 keV - 4 713.192314 keV - 5 127.687425 keV - 6 233.452919 keV - 7 10.326920 keV - 8 596.649094 keV - 9 412.055277 keV - 10 104.888836 keV - 11 2604.416107 keV - 12 22.790327 keV - 13 559.522361 keV - 14 576.747526 keV - 15 1828.898730 keV - 16 484.551181 keV - 17 168.060885 keV - 18 1671.188447 keV - 19 46.921210 keV - 20 3.104307 keV - 21 1187.502551 keV - 22 30.855690 keV - 23 85.548855 keV - 24 51.006143 keV - 25 2225.201142 keV - 26 1009.630394 keV - 27 2394.804927 keV - 28 6515.559609 keV - 29 1246.486372 keV - 30 1267.530178 keV - 31 6133.822222 keV - 32 4751.947640 keV - 33 958.134139 keV - 34 3029.512181 keV - 35 393.154959 keV - 36 2746.579029 keV - 37 4613.164231 keV - 38 5803.317277 keV - 39 696.787563 keV - 40 1324.285363 keV - 41 4940.894149 keV - 42 4304.387049 keV - 43 6111.258339 keV - 44 891.756649 keV - 45 4060.209222 keV - 46 377.969963 keV - 47 3723.043598 keV - 48 3282.049009 keV - 49 989.269770 keV - 50 2628.350850 keV - 51 6104.241816 keV - 52 8364.768741 keV - 53 11289.696047 keV - 54 5168.361034 keV - 55 7873.498722 keV - 56 19478.022618 keV - 57 8962.510328 keV - 58 15774.260277 keV - 59 4515.988203 keV - 60 2112.479262 keV - 61 13273.279528 keV - 62 14778.476415 keV - 63 16208.921447 keV - 64 7626.547551 keV - 65 9695.813441 keV - 66 18345.110314 keV - 67 19108.791314 keV - 68 12953.099563 keV - 69 5048.988065 keV - 70 4188.391852 keV - 71 4318.937491 keV - 72 7748.011731 keV - 73 8772.674971 keV - 74 7598.924770 keV - 75 31279.850061 keV - 76 26471.385845 keV - 77 35173.918249 keV - 78 35656.951712 keV - 79 26400.568897 keV - 80 25551.677006 keV - 81 353113.888628 keV - 82 290300.605612 keV - 83 354601.906927 keV - 84 34160.967960 keV - 85 31317.768362 keV - 86 308126.042778 keV - 87 275377.149833 keV - 88 297994.973781 keV - 89 25246.491432 keV - 90 41437.315034 keV - 91 342331.126940 keV - 92 290673.826590 keV - 93 348396.404306 keV - 94 23679.119893 keV - 95 20057.663731 keV - 96 24501.817591 keV - 97 31836.259811 keV - 98 34183.683234 keV - 99 22491.028759 keV - 100 326657.959246 keV - 101 381609.748952 keV - 102 332213.118753 keV - 103 367327.968528 keV - 104 336363.806935 keV - 105 370305.375119 keV - 106 403263.403869 keV - 107 413126.459309 keV - 108 390821.335900 keV - 109 350209.929934 keV - 110 364782.217987 keV - 111 433530.333102 keV - 112 384839.277664 keV - 113 378203.255602 keV - 114 331327.858436 keV - 115 326682.730163 keV - 116 392376.906386 keV - 117 401783.657215 keV - 118 372085.694633 keV - 119 360120.933347 keV - 120 343013.433985 keV - 121 348446.535331 keV - 122 330690.182100 keV - 123 315711.225028 keV - 124 319923.104801 keV + 0 378.726423 keV + 1 182.113828 keV + 2 91.855243 keV + 3 1738.088101 keV + 4 29.509791 keV + 5 317.878320 keV + 6 588.260717 keV + 7 173.872823 keV + 8 1922.899168 keV + 9 476.185016 keV + 10 1192.642995 keV + 11 2208.236423 keV + 12 637.555497 keV + 13 2304.901783 keV + 14 102.068024 keV + 15 876.154399 keV + 16 231.910653 keV + 17 3059.076567 keV + 18 184.109496 keV + 19 455.475414 keV + 20 139.416741 keV + 21 2857.101317 keV + 22 3.627981 keV + 24 416.767545 keV + 25 2554.798156 keV + 26 1986.521150 keV + 27 3504.976593 keV + 28 2642.944812 keV + 29 915.849131 keV + 30 4349.858421 keV + 31 4945.383058 keV + 32 1331.257843 keV + 33 2657.823501 keV + 34 2180.730963 keV + 35 3943.900053 keV + 36 5406.614866 keV + 37 5256.925007 keV + 38 2787.210882 keV + 39 1599.266573 keV + 40 3793.481430 keV + 41 9303.577646 keV + 42 6255.942660 keV + 43 8547.056622 keV + 44 523.361227 keV + 45 2290.941302 keV + 46 1028.565583 keV + 47 218.027201 keV + 48 3678.513030 keV + 49 1226.425889 keV + 50 2645.238408 keV + 51 11136.302982 keV + 52 5199.428565 keV + 53 11867.219743 keV + 54 2127.645076 keV + 55 6641.442650 keV + 56 14852.111285 keV + 57 25287.985610 keV + 58 13753.701070 keV + 59 5986.665777 keV + 60 3958.381014 keV + 61 16327.868030 keV + 62 24944.275545 keV + 63 17949.000037 keV + 64 3608.377834 keV + 65 3253.093993 keV + 66 17619.078371 keV + 67 9615.578395 keV + 68 17494.177120 keV + 69 6352.938898 keV + 70 5467.889000 keV + 71 3786.312363 keV + 72 6441.046944 keV + 73 3663.871571 keV + 74 6813.250045 keV + 75 21030.645630 keV + 76 45541.249355 keV + 77 26558.014099 keV + 78 32627.273048 keV + 79 23717.253726 keV + 80 28838.876225 keV + 81 364891.555133 keV + 82 322076.175708 keV + 83 332120.124765 keV + 84 29226.907934 keV + 85 34239.869390 keV + 86 291668.120324 keV + 87 258787.969858 keV + 88 324403.288681 keV + 89 27580.806278 keV + 90 27387.908214 keV + 91 360194.295529 keV + 92 320146.279200 keV + 93 366230.501342 keV + 94 26826.561321 keV + 95 20184.069502 keV + 96 29691.560351 keV + 97 26903.589481 keV + 98 34790.354386 keV + 99 19908.308718 keV + 100 336209.249724 keV + 101 324030.733317 keV + 102 345996.862684 keV + 103 366343.853324 keV + 104 313450.641500 keV + 105 355350.644979 keV + 106 396198.280568 keV + 107 385956.302862 keV + 108 432561.438510 keV + 109 380138.019562 keV + 110 350892.416227 keV + 111 384920.721356 keV + 112 399097.638108 keV + 113 363179.462184 keV + 114 373647.565392 keV + 115 339528.845363 keV + 116 373550.933446 keV + 117 382235.155810 keV + 118 401447.254977 keV + 119 355212.311282 keV + 120 354737.288041 keV + 121 354215.218471 keV + 122 341958.906632 keV + 123 354223.523786 keV + 124 353983.341914 keV ============================================================ closed file mfd_tl_EnergyDeposit.out for output ============================================================ opened file mfd_tg_EnergyDeposit.out for output ============================================================ - 0 670.223331 keV - 2 475.013749 keV - 3 743.453040 keV - 4 713.192314 keV - 5 127.687425 keV - 6 233.452919 keV - 7 10.326920 keV - 8 596.649094 keV - 9 412.055277 keV - 10 104.888836 keV - 11 2604.416107 keV - 12 22.790327 keV - 13 559.522361 keV - 14 576.747526 keV - 15 1828.898730 keV - 16 484.551181 keV - 17 168.060885 keV - 18 1671.188447 keV - 19 46.921210 keV - 20 3.104307 keV - 21 1187.502551 keV - 22 30.855690 keV - 23 85.548855 keV - 24 51.006143 keV - 25 2225.201142 keV - 26 1009.630394 keV - 27 2394.804927 keV - 28 6515.559609 keV - 29 1246.486372 keV - 30 1267.530178 keV - 31 6133.822222 keV - 32 4751.947640 keV - 33 958.134139 keV - 34 3029.512181 keV - 35 393.154959 keV - 36 2746.579029 keV - 37 4613.164231 keV - 38 5803.317277 keV - 39 696.787563 keV - 40 1324.285363 keV - 41 4940.894149 keV - 42 4304.387049 keV - 43 6111.258339 keV - 44 891.756649 keV - 45 4060.209222 keV - 46 377.969963 keV - 47 3723.043598 keV - 48 3282.049009 keV - 49 989.269770 keV - 50 2628.350850 keV - 51 6104.241816 keV - 52 8364.768741 keV - 53 11289.696047 keV - 54 5168.361034 keV - 55 7873.498722 keV - 56 19478.022618 keV - 57 8962.510328 keV - 58 15774.260277 keV - 59 4515.988203 keV - 60 2112.479262 keV - 61 13273.279528 keV - 62 14778.476415 keV - 63 16208.921447 keV - 64 7626.547551 keV - 65 9695.813441 keV - 66 18345.110314 keV - 67 19108.791314 keV - 68 12953.099563 keV - 69 5048.988065 keV - 70 4188.391852 keV - 71 4318.937491 keV - 72 7748.011731 keV - 73 8772.674971 keV - 74 7598.924770 keV - 75 31279.850061 keV - 76 26471.385845 keV - 77 35173.918249 keV - 78 35656.951712 keV - 79 26400.568897 keV - 80 25551.677006 keV - 81 353113.888628 keV - 82 290300.605612 keV - 83 354601.906927 keV - 84 34160.967960 keV - 85 31317.768362 keV - 86 308126.042778 keV - 87 275377.149833 keV - 88 297994.973781 keV - 89 25246.491432 keV - 90 41437.315034 keV - 91 342331.126940 keV - 92 290673.826590 keV - 93 348396.404306 keV - 94 23679.119893 keV - 95 20057.663731 keV - 96 24501.817591 keV - 97 31836.259811 keV - 98 34183.683234 keV - 99 22491.028759 keV - 100 326657.959246 keV - 101 381609.748952 keV - 102 332213.118753 keV - 103 367327.968528 keV - 104 336363.806935 keV - 105 370305.375119 keV - 106 403263.403869 keV - 107 413126.459309 keV - 108 390821.335900 keV - 109 350209.929934 keV - 110 364782.217987 keV - 111 433530.333102 keV - 112 384839.277664 keV - 113 378203.255602 keV - 114 331327.858436 keV - 115 326682.730163 keV - 116 392376.906386 keV - 117 401783.657215 keV - 118 372085.694633 keV - 119 360120.933347 keV - 120 343013.433985 keV - 121 348446.535331 keV - 122 330690.182100 keV - 123 315711.225028 keV - 124 319923.104801 keV + 0 378.726423 keV + 1 182.113828 keV + 2 91.855243 keV + 3 1738.088101 keV + 4 29.509791 keV + 5 317.878320 keV + 6 588.260717 keV + 7 173.872823 keV + 8 1922.899168 keV + 9 476.185016 keV + 10 1192.642995 keV + 11 2208.236423 keV + 12 637.555497 keV + 13 2304.901783 keV + 14 102.068024 keV + 15 876.154399 keV + 16 231.910653 keV + 17 3059.076567 keV + 18 184.109496 keV + 19 455.475414 keV + 20 139.416741 keV + 21 2857.101317 keV + 22 3.627981 keV + 24 416.767545 keV + 25 2554.798156 keV + 26 1986.521150 keV + 27 3504.976593 keV + 28 2642.944812 keV + 29 915.849131 keV + 30 4349.858421 keV + 31 4945.383058 keV + 32 1331.257843 keV + 33 2657.823501 keV + 34 2180.730963 keV + 35 3943.900053 keV + 36 5406.614866 keV + 37 5256.925007 keV + 38 2787.210882 keV + 39 1599.266573 keV + 40 3793.481430 keV + 41 9303.577646 keV + 42 6255.942660 keV + 43 8547.056622 keV + 44 523.361227 keV + 45 2290.941302 keV + 46 1028.565583 keV + 47 218.027201 keV + 48 3678.513030 keV + 49 1226.425889 keV + 50 2645.238408 keV + 51 11136.302982 keV + 52 5199.428565 keV + 53 11867.219743 keV + 54 2127.645076 keV + 55 6641.442650 keV + 56 14852.111285 keV + 57 25287.985610 keV + 58 13753.701070 keV + 59 5986.665777 keV + 60 3958.381014 keV + 61 16327.868030 keV + 62 24944.275545 keV + 63 17949.000037 keV + 64 3608.377834 keV + 65 3253.093993 keV + 66 17619.078371 keV + 67 9615.578395 keV + 68 17494.177120 keV + 69 6352.938898 keV + 70 5467.889000 keV + 71 3786.312363 keV + 72 6441.046944 keV + 73 3663.871571 keV + 74 6813.250045 keV + 75 21030.645630 keV + 76 45541.249355 keV + 77 26558.014099 keV + 78 32627.273048 keV + 79 23717.253726 keV + 80 28838.876225 keV + 81 364891.555133 keV + 82 322076.175708 keV + 83 332120.124765 keV + 84 29226.907934 keV + 85 34239.869390 keV + 86 291668.120324 keV + 87 258787.969858 keV + 88 324403.288681 keV + 89 27580.806278 keV + 90 27387.908214 keV + 91 360194.295529 keV + 92 320146.279200 keV + 93 366230.501342 keV + 94 26826.561321 keV + 95 20184.069502 keV + 96 29691.560351 keV + 97 26903.589481 keV + 98 34790.354386 keV + 99 19908.308718 keV + 100 336209.249724 keV + 101 324030.733317 keV + 102 345996.862684 keV + 103 366343.853324 keV + 104 313450.641500 keV + 105 355350.644979 keV + 106 396198.280568 keV + 107 385956.302862 keV + 108 432561.438510 keV + 109 380138.019562 keV + 110 350892.416227 keV + 111 384920.721356 keV + 112 399097.638108 keV + 113 363179.462184 keV + 114 373647.565392 keV + 115 339528.845363 keV + 116 373550.933446 keV + 117 382235.155810 keV + 118 401447.254977 keV + 119 355212.311282 keV + 120 354737.288041 keV + 121 354215.218471 keV + 122 341958.906632 keV + 123 354223.523786 keV + 124 353983.341914 keV ============================================================ closed file mfd_tg_EnergyDeposit.out for output ============================================================ opened file mfd_tl_NumberOfSteps.out for output ============================================================ - 0 22.000000 steps - 1 3.000000 steps + 0 19.000000 steps + 1 23.000000 steps 2 23.000000 steps - 3 67.000000 steps - 4 50.000000 steps - 5 13.000000 steps - 6 40.000000 steps - 7 13.000000 steps - 8 42.000000 steps - 9 42.000000 steps - 10 29.000000 steps - 11 104.000000 steps - 12 26.000000 steps - 13 69.000000 steps - 14 36.000000 steps - 15 44.000000 steps - 16 46.000000 steps - 17 25.000000 steps - 18 39.000000 steps - 19 9.000000 steps - 20 8.000000 steps - 21 47.000000 steps - 22 12.000000 steps - 23 17.000000 steps - 24 8.000000 steps - 25 91.000000 steps - 26 54.000000 steps - 27 201.000000 steps - 28 175.000000 steps - 29 188.000000 steps - 30 74.000000 steps - 31 156.000000 steps - 32 233.000000 steps - 33 156.000000 steps - 34 87.000000 steps - 35 45.000000 steps - 36 161.000000 steps - 37 278.000000 steps - 38 223.000000 steps - 39 155.000000 steps - 40 42.000000 steps - 41 209.000000 steps - 42 172.000000 steps - 43 224.000000 steps - 44 114.000000 steps - 45 75.000000 steps - 46 35.000000 steps - 47 63.000000 steps - 48 139.000000 steps - 49 48.000000 steps - 50 352.000000 steps - 51 350.000000 steps - 52 262.000000 steps - 53 622.000000 steps - 54 410.000000 steps - 55 462.000000 steps - 56 500.000000 steps - 57 475.000000 steps - 58 585.000000 steps - 59 369.000000 steps - 60 311.000000 steps - 61 557.000000 steps - 62 669.000000 steps - 63 595.000000 steps - 64 502.000000 steps - 65 384.000000 steps - 66 582.000000 steps - 67 858.000000 steps - 68 539.000000 steps - 69 369.000000 steps - 70 103.000000 steps - 71 298.000000 steps - 72 574.000000 steps - 73 367.000000 steps - 74 399.000000 steps - 75 2754.000000 steps - 76 2744.000000 steps - 77 3062.000000 steps - 78 3467.000000 steps - 79 3282.000000 steps - 80 3598.000000 steps - 81 2712.000000 steps - 82 2651.000000 steps - 83 2507.000000 steps - 84 3838.000000 steps - 85 3598.000000 steps - 86 2976.000000 steps - 87 2969.000000 steps - 88 2896.000000 steps - 89 3295.000000 steps - 90 3866.000000 steps - 91 2737.000000 steps - 92 3081.000000 steps - 93 2404.000000 steps - 94 3610.000000 steps - 95 2453.000000 steps - 96 2918.000000 steps - 97 3134.000000 steps - 98 3043.000000 steps - 99 2690.000000 steps - 100 14152.000000 steps - 101 17517.000000 steps - 102 16496.000000 steps - 103 17798.000000 steps - 104 14269.000000 steps - 105 18539.000000 steps - 106 23826.000000 steps - 107 22663.000000 steps - 108 21082.000000 steps - 109 16520.000000 steps - 110 19251.000000 steps - 111 24086.000000 steps - 112 22262.000000 steps - 113 21595.000000 steps - 114 18330.000000 steps - 115 16488.000000 steps - 116 21568.000000 steps - 117 22503.000000 steps - 118 19665.000000 steps - 119 16882.000000 steps - 120 14498.000000 steps - 121 18150.000000 steps - 122 17959.000000 steps - 123 15368.000000 steps - 124 13966.000000 steps + 3 85.000000 steps + 4 11.000000 steps + 5 48.000000 steps + 6 106.000000 steps + 7 28.000000 steps + 8 50.000000 steps + 9 21.000000 steps + 10 78.000000 steps + 11 65.000000 steps + 12 46.000000 steps + 13 64.000000 steps + 14 17.000000 steps + 15 32.000000 steps + 16 17.000000 steps + 17 90.000000 steps + 18 17.000000 steps + 19 23.000000 steps + 20 23.000000 steps + 21 66.000000 steps + 22 11.000000 steps + 23 5.000000 steps + 24 16.000000 steps + 25 44.000000 steps + 26 81.000000 steps + 27 147.000000 steps + 28 98.000000 steps + 29 58.000000 steps + 30 135.000000 steps + 31 188.000000 steps + 32 144.000000 steps + 33 166.000000 steps + 34 67.000000 steps + 35 190.000000 steps + 36 293.000000 steps + 37 314.000000 steps + 38 221.000000 steps + 39 97.000000 steps + 40 105.000000 steps + 41 315.000000 steps + 42 233.000000 steps + 43 161.000000 steps + 44 50.000000 steps + 45 57.000000 steps + 46 73.000000 steps + 47 27.000000 steps + 48 90.000000 steps + 49 53.000000 steps + 50 236.000000 steps + 51 457.000000 steps + 52 275.000000 steps + 53 511.000000 steps + 54 401.000000 steps + 55 444.000000 steps + 56 544.000000 steps + 57 784.000000 steps + 58 506.000000 steps + 59 253.000000 steps + 60 411.000000 steps + 61 601.000000 steps + 62 829.000000 steps + 63 592.000000 steps + 64 403.000000 steps + 65 311.000000 steps + 66 574.000000 steps + 67 712.000000 steps + 68 574.000000 steps + 69 398.000000 steps + 70 323.000000 steps + 71 331.000000 steps + 72 424.000000 steps + 73 479.000000 steps + 74 302.000000 steps + 75 2882.000000 steps + 76 3396.000000 steps + 77 3383.000000 steps + 78 3322.000000 steps + 79 2285.000000 steps + 80 2899.000000 steps + 81 2954.000000 steps + 82 3173.000000 steps + 83 2647.000000 steps + 84 3264.000000 steps + 85 3620.000000 steps + 86 2731.000000 steps + 87 3015.000000 steps + 88 2975.000000 steps + 89 3281.000000 steps + 90 2988.000000 steps + 91 2841.000000 steps + 92 2722.000000 steps + 93 2860.000000 steps + 94 3540.000000 steps + 95 3000.000000 steps + 96 3076.000000 steps + 97 2802.000000 steps + 98 3080.000000 steps + 99 2923.000000 steps + 100 14424.000000 steps + 101 17602.000000 steps + 102 18481.000000 steps + 103 18643.000000 steps + 104 13974.000000 steps + 105 18025.000000 steps + 106 23546.000000 steps + 107 20789.000000 steps + 108 23010.000000 steps + 109 19279.000000 steps + 110 17682.000000 steps + 111 22997.000000 steps + 112 22628.000000 steps + 113 23609.000000 steps + 114 18175.000000 steps + 115 17084.000000 steps + 116 21237.000000 steps + 117 21187.000000 steps + 118 22002.000000 steps + 119 18564.000000 steps + 120 13679.000000 steps + 121 18812.000000 steps + 122 17528.000000 steps + 123 18327.000000 steps + 124 15936.000000 steps ============================================================ closed file mfd_tl_NumberOfSteps.out for output ============================================================ opened file mfd_tg_NumberOfSteps.out for output ============================================================ - 0 22.000000 steps - 1 3.000000 steps + 0 19.000000 steps + 1 23.000000 steps 2 23.000000 steps - 3 67.000000 steps - 4 50.000000 steps - 5 13.000000 steps - 6 40.000000 steps - 7 13.000000 steps - 8 42.000000 steps - 9 42.000000 steps - 10 29.000000 steps - 11 104.000000 steps - 12 26.000000 steps - 13 69.000000 steps - 14 36.000000 steps - 15 44.000000 steps - 16 46.000000 steps - 17 25.000000 steps - 18 39.000000 steps - 19 9.000000 steps - 20 8.000000 steps - 21 47.000000 steps - 22 12.000000 steps - 23 17.000000 steps - 24 8.000000 steps - 25 91.000000 steps - 26 54.000000 steps - 27 201.000000 steps - 28 175.000000 steps - 29 188.000000 steps - 30 74.000000 steps - 31 156.000000 steps - 32 233.000000 steps - 33 156.000000 steps - 34 87.000000 steps - 35 45.000000 steps - 36 161.000000 steps - 37 278.000000 steps - 38 223.000000 steps - 39 155.000000 steps - 40 42.000000 steps - 41 209.000000 steps - 42 172.000000 steps - 43 224.000000 steps - 44 114.000000 steps - 45 75.000000 steps - 46 35.000000 steps - 47 63.000000 steps - 48 139.000000 steps - 49 48.000000 steps - 50 352.000000 steps - 51 350.000000 steps - 52 262.000000 steps - 53 622.000000 steps - 54 410.000000 steps - 55 462.000000 steps - 56 500.000000 steps - 57 475.000000 steps - 58 585.000000 steps - 59 369.000000 steps - 60 311.000000 steps - 61 557.000000 steps - 62 669.000000 steps - 63 595.000000 steps - 64 502.000000 steps - 65 384.000000 steps - 66 582.000000 steps - 67 858.000000 steps - 68 539.000000 steps - 69 369.000000 steps - 70 103.000000 steps - 71 298.000000 steps - 72 574.000000 steps - 73 367.000000 steps - 74 399.000000 steps - 75 2754.000000 steps - 76 2744.000000 steps - 77 3062.000000 steps - 78 3467.000000 steps - 79 3282.000000 steps - 80 3598.000000 steps - 81 2712.000000 steps - 82 2651.000000 steps - 83 2507.000000 steps - 84 3838.000000 steps - 85 3598.000000 steps - 86 2976.000000 steps - 87 2969.000000 steps - 88 2896.000000 steps - 89 3295.000000 steps - 90 3866.000000 steps - 91 2737.000000 steps - 92 3081.000000 steps - 93 2404.000000 steps - 94 3610.000000 steps - 95 2453.000000 steps - 96 2918.000000 steps - 97 3134.000000 steps - 98 3043.000000 steps - 99 2690.000000 steps - 100 14152.000000 steps - 101 17517.000000 steps - 102 16496.000000 steps - 103 17798.000000 steps - 104 14269.000000 steps - 105 18539.000000 steps - 106 23826.000000 steps - 107 22663.000000 steps - 108 21082.000000 steps - 109 16520.000000 steps - 110 19251.000000 steps - 111 24086.000000 steps - 112 22262.000000 steps - 113 21595.000000 steps - 114 18330.000000 steps - 115 16488.000000 steps - 116 21568.000000 steps - 117 22503.000000 steps - 118 19665.000000 steps - 119 16882.000000 steps - 120 14498.000000 steps - 121 18150.000000 steps - 122 17959.000000 steps - 123 15368.000000 steps - 124 13966.000000 steps + 3 85.000000 steps + 4 11.000000 steps + 5 48.000000 steps + 6 106.000000 steps + 7 28.000000 steps + 8 50.000000 steps + 9 21.000000 steps + 10 78.000000 steps + 11 65.000000 steps + 12 46.000000 steps + 13 64.000000 steps + 14 17.000000 steps + 15 32.000000 steps + 16 17.000000 steps + 17 90.000000 steps + 18 17.000000 steps + 19 23.000000 steps + 20 23.000000 steps + 21 66.000000 steps + 22 11.000000 steps + 23 5.000000 steps + 24 16.000000 steps + 25 44.000000 steps + 26 81.000000 steps + 27 147.000000 steps + 28 98.000000 steps + 29 58.000000 steps + 30 135.000000 steps + 31 188.000000 steps + 32 144.000000 steps + 33 166.000000 steps + 34 67.000000 steps + 35 190.000000 steps + 36 293.000000 steps + 37 314.000000 steps + 38 221.000000 steps + 39 97.000000 steps + 40 105.000000 steps + 41 315.000000 steps + 42 233.000000 steps + 43 161.000000 steps + 44 50.000000 steps + 45 57.000000 steps + 46 73.000000 steps + 47 27.000000 steps + 48 90.000000 steps + 49 53.000000 steps + 50 236.000000 steps + 51 457.000000 steps + 52 275.000000 steps + 53 511.000000 steps + 54 401.000000 steps + 55 444.000000 steps + 56 544.000000 steps + 57 784.000000 steps + 58 506.000000 steps + 59 253.000000 steps + 60 411.000000 steps + 61 601.000000 steps + 62 829.000000 steps + 63 592.000000 steps + 64 403.000000 steps + 65 311.000000 steps + 66 574.000000 steps + 67 712.000000 steps + 68 574.000000 steps + 69 398.000000 steps + 70 323.000000 steps + 71 331.000000 steps + 72 424.000000 steps + 73 479.000000 steps + 74 302.000000 steps + 75 2882.000000 steps + 76 3396.000000 steps + 77 3383.000000 steps + 78 3322.000000 steps + 79 2285.000000 steps + 80 2899.000000 steps + 81 2954.000000 steps + 82 3173.000000 steps + 83 2647.000000 steps + 84 3264.000000 steps + 85 3620.000000 steps + 86 2731.000000 steps + 87 3015.000000 steps + 88 2975.000000 steps + 89 3281.000000 steps + 90 2988.000000 steps + 91 2841.000000 steps + 92 2722.000000 steps + 93 2860.000000 steps + 94 3540.000000 steps + 95 3000.000000 steps + 96 3076.000000 steps + 97 2802.000000 steps + 98 3080.000000 steps + 99 2923.000000 steps + 100 14424.000000 steps + 101 17602.000000 steps + 102 18481.000000 steps + 103 18643.000000 steps + 104 13974.000000 steps + 105 18025.000000 steps + 106 23546.000000 steps + 107 20789.000000 steps + 108 23010.000000 steps + 109 19279.000000 steps + 110 17682.000000 steps + 111 22997.000000 steps + 112 22628.000000 steps + 113 23609.000000 steps + 114 18175.000000 steps + 115 17084.000000 steps + 116 21237.000000 steps + 117 21187.000000 steps + 118 22002.000000 steps + 119 18564.000000 steps + 120 13679.000000 steps + 121 18812.000000 steps + 122 17528.000000 steps + 123 18327.000000 steps + 124 15936.000000 steps ============================================================ closed file mfd_tg_NumberOfSteps.out for output ============================================================ @@ -1537,6 +1565,6 @@ Visualization Manager deleting... 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.059 MB +Dynamic pools deleted: 13 / Total memory freed: 0.058 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/parameterisations/Par01/examplePar01.out b/examples/extended/parameterisations/Par01/examplePar01.out index c8561b8cc7..735ee8612d 100644 --- a/examples/extended/parameterisations/Par01/examplePar01.out +++ b/examples/extended/parameterisations/Par01/examplePar01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -49,16 +49,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -212,7 +214,7 @@ msc: for kaon- SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -239,7 +241,7 @@ muPairProd: for mu+ SubType= 4 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -295,73 +297,48 @@ msc: for pi- SubType= 10 Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 1e+03 0 0 0 WorldPhysical initStep - 1 -0.0177 55.4 92.3 1e+03 0.0208 108 108 WorldPhysical eIoni - 2 -0.0202 60 100 1e+03 0.00242 8.96 117 DriftChamberPhysical CoupledTransportation - 3 -0.0928 176 293 1e+03 0.00679 225 342 DriftChamberPhysical eIoni - 4 -0.185 316 527 1e+03 0.00881 272 614 DriftChamberPhysical eIoni - 5 -0.358 528 880 1e+03 0.0148 413 1.03e+03 DriftChamberPhysical eIoni - 6 -0.367 540 900 1e+03 0.000413 22.8 1.05e+03 WorldPhysical CoupledTransportation - 7 -0.385 560 934 1e+03 0.00674 39.2 1.09e+03 WorldPhysical eIoni - 8 -0.431 600 1e+03 1e+03 0.0171 77.4 1.17e+03 Crystal CoupledTransportation + 1 -0.0195 55.4 92.3 1e+03 0.0211 108 108 WorldPhysical eIoni + 2 -0.0219 60 100 1e+03 0.00363 8.95 117 DriftChamberPhysical CoupledTransportation + 3 -0.263 459 765 1e+03 0.027 776 893 DriftChamberPhysical eIoni + 4 -0.309 540 900 1e+03 0.00604 157 1.05e+03 WorldPhysical CoupledTransportation + 5 -0.347 585 976 1e+03 0.0161 88.4 1.14e+03 WorldPhysical eIoni + 6 -0.359 600 1e+03 1e+03 0.00588 28.3 1.17e+03 Crystal CoupledTransportation WARNING: G4VisManager::IsValidView(): Attempt to draw when no graphics system has been instantiated. Use "/vis/open" or "/vis/sceneHandler/create". Alternatively, to avoid this message, suppress instantiation of vis manager (G4VisExecutive), possibly by setting G4VIS_NONE, and ensure drawing code is executed only if G4VVisManager::GetConcreteInstance() is non-zero. - 9 -0.431 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.385 560 934 0.00101 0 0 0 WorldPhysical initStep - 1 -0.362 560 934 0 0.00101 0.0577 0.0577 WorldPhysical 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.358 528 880 0.0211 0 0 0 DriftChamberPhysical initStep - 1 2.24 518 890 0.0182 0.00295 14.6 14.6 DriftChamberPhysical eIoni - 2 4.87 511 899 0.0151 0.00308 11.4 26 DriftChamberPhysical eIoni - 3 4.88 510 900 0.0148 0.000263 1.92 28 WorldPhysical CoupledTransportation - 4 4.95 510 900 0.0138 0.00102 0.385 28.3 WorldPhysical msc - 5 5.06 510 901 0.0129 0.000922 0.402 28.7 WorldPhysical msc - 6 5.18 510 901 0.0125 0.000424 0.402 29.1 WorldPhysical msc - 7 5.33 509 901 0.0117 0.000709 0.515 29.7 WorldPhysical msc - 8 5.3 509 902 0.0106 0.00117 0.687 30.3 WorldPhysical msc - 9 4.88 508 902 0.00858 0.002 0.94 31.3 WorldPhysical msc - 10 4.53 508 903 0.00124 0.00734 1.61 32.9 WorldPhysical eIoni - 11 4.54 508 903 0 0.00124 0.0779 33 WorldPhysical eIoni + 7 -0.359 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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 -0.185 316 527 0.00247 0 0 0 DriftChamberPhysical initStep - 1 0.554 317 526 0 0.00247 1.24 1.24 DriftChamberPhysical eIoni + 0 -0.347 585 976 0.0211 0 0 0 WorldPhysical initStep + 1 -0.0706 583 978 0.018 0.00311 3.62 3.62 WorldPhysical eIoni + 2 0.99 583 976 0.0117 0.00629 3.07 6.69 WorldPhysical eIoni + 3 1.99 583 975 0.00843 0.00329 2.09 8.78 WorldPhysical eIoni + 4 2.66 583 975 0.00237 0.00606 1.58 10.4 WorldPhysical eIoni + 5 2.68 582 975 0 0.00237 0.212 10.6 WorldPhysical 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 -0.0928 176 293 0.00626 0 0 0 DriftChamberPhysical initStep - 1 2.36 177 293 0.00479 0.00148 2.86 2.86 DriftChamberPhysical eIoni - 2 4.18 177 292 0.00116 0.00363 2.25 5.11 DriftChamberPhysical eIoni - 3 4.45 178 292 0 0.00116 0.377 5.49 DriftChamberPhysical eIoni + 0 -0.263 459 765 0.00372 0 0 0 DriftChamberPhysical initStep + 1 0.545 461 765 0.0028 0.000922 1.84 1.84 DriftChamberPhysical eIoni + 2 0.051 462 765 0 0.0028 1.43 3.27 DriftChamberPhysical 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.0177 55.4 92.3 0.00152 0 0 0 WorldPhysical initStep - 1 0.00606 55.4 92.3 0 0.00152 0.106 0.106 WorldPhysical eIoni + 0 -0.0195 55.4 92.3 0.00201 0 0 0 WorldPhysical initStep + 1 0.0459 55.4 92.3 0 0.00201 0.163 0.163 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -369,88 +346,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 0 0 0 1e+03 0 0 0 WorldPhysical initStep - 1 3.41e-05 1.49 2.48 1e+03 0.000599 2.89 2.89 WorldPhysical eIoni - 2 -0.000125 6.09 10.2 1e+03 0.00169 8.96 11.8 WorldPhysical eIoni - 3 0.00202 24.5 40.8 1e+03 0.00865 35.8 47.6 WorldPhysical eIoni - 4 0.0149 50.9 84.9 1e+03 0.0119 51.4 99 WorldPhysical eIoni - 5 0.0164 53.8 89.6 1e+03 0.00132 5.47 105 WorldPhysical eIoni - 6 0.0192 60 100 1e+03 0.00387 12.1 117 DriftChamberPhysical CoupledTransportation - 7 0.159 305 509 1e+03 0.0121 476 593 DriftChamberPhysical eIoni - 8 0.24 540 900 1e+03 0.0124 456 1.05e+03 WorldPhysical CoupledTransportation - 9 0.246 555 925 1e+03 0.00637 29 1.08e+03 WorldPhysical eIoni - 10 0.271 600 1e+03 1e+03 0.0198 87.6 1.17e+03 Crystal CoupledTransportation - 11 0.271 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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 0.246 555 925 0.001 0 0 0 WorldPhysical initStep - 1 0.233 555 925 0 0.001 0.0572 0.0572 WorldPhysical eIoni + 1 -0.000108 1.83 3.05 1e+03 0.000318 3.56 3.56 WorldPhysical eIoni + 2 -0.00102 10.8 17.9 1e+03 0.00304 17.4 20.9 WorldPhysical eIoni + 3 0.0013 23.6 39.3 1e+03 0.00568 24.9 45.8 WorldPhysical eIoni + 4 0.00389 60 100 1e+03 0.0133 70.8 117 DriftChamberPhysical CoupledTransportation + 5 0.00456 138 230 1e+03 0.00533 151 268 DriftChamberPhysical eIoni + 6 -0.0195 400 666 1e+03 0.0156 509 776 DriftChamberPhysical eIoni + 7 -0.0353 540 900 1e+03 0.00984 273 1.05e+03 WorldPhysical CoupledTransportation + 8 -0.0378 564 940 1e+03 0.00714 46.4 1.1e+03 WorldPhysical eIoni + 9 -0.037 600 1e+03 1e+03 0.0129 70.2 1.17e+03 Crystal CoupledTransportation + 10 -0.037 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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 0.159 305 509 0.01 0 0 0 DriftChamberPhysical initStep - 1 4.56 306 508 0.00898 0.00104 4.82 4.82 DriftChamberPhysical eIoni - 2 3.11 310 509 0.00665 0.00234 4.21 9.03 DriftChamberPhysical eIoni - 3 3.59 312 510 0.00531 0.00134 3.03 12.1 DriftChamberPhysical eIoni - 4 3.73 314 511 0.00409 0.00122 2.46 14.5 DriftChamberPhysical eIoni - 5 3.59 315 511 0.00245 0.000407 0.558 15.1 DriftChamberPhysical eIoni - 6 3.59 316 511 0 0.00245 1.24 16.3 DriftChamberPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.59 315 511 0.00123 0 0 0 DriftChamberPhysical initStep - 1 3.49 315 512 0 0.00123 0.414 0.414 DriftChamberPhysical eIoni + 0 -0.0378 564 940 0.00335 0 0 0 WorldPhysical initStep + 1 -0.201 564 940 0.00113 0.00222 0.301 0.301 WorldPhysical eIoni + 2 -0.21 564 940 0 0.00113 0.0684 0.369 WorldPhysical 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.0164 53.8 89.6 0.00421 0 0 0 WorldPhysical initStep - 1 0.024 53.6 89.8 0 0.00421 0.565 0.565 WorldPhysical eIoni + 0 -0.0195 400 666 0.00161 0 0 0 DriftChamberPhysical initStep + 1 0.25 399 666 0 0.00161 0.636 0.636 DriftChamberPhysical 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.0149 50.9 84.9 0.00189 0 0 0 WorldPhysical initStep - 1 -0.0401 51 84.9 0 0.00189 0.148 0.148 WorldPhysical eIoni + 0 0.00456 138 230 0.00214 0 0 0 DriftChamberPhysical initStep + 1 0.759 138 230 0 0.00214 1.02 1.02 DriftChamberPhysical 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 0.00202 24.5 40.8 0.012 0 0 0 WorldPhysical initStep - 1 -1 25.4 40.5 0.00852 0.00345 2.13 2.13 WorldPhysical eIoni - 2 -1.38 26 40.9 0.00255 0.00597 1.6 3.73 WorldPhysical eIoni - 3 -1.42 26 40.9 0 0.00255 0.24 3.97 WorldPhysical eIoni + 0 0.0013 23.6 39.3 0.00227 0 0 0 WorldPhysical initStep + 1 0.0864 23.5 39.3 0 0.00227 0.198 0.198 WorldPhysical 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 -0.000125 6.09 10.2 0.00111 0 0 0 WorldPhysical initStep - 1 0.0218 6.11 10.1 0 0.00111 0.0665 0.0665 WorldPhysical eIoni + 0 -0.00102 10.8 17.9 0.00273 0 0 0 WorldPhysical initStep + 1 -0.0936 10.8 17.9 0 0.00273 0.268 0.268 WorldPhysical 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 3.41e-05 1.49 2.48 0.00191 0 0 0 WorldPhysical initStep - 1 0.00324 1.54 2.44 0 0.00191 0.151 0.151 WorldPhysical eIoni + 0 -0.000108 1.83 3.05 0.0021 0 0 0 WorldPhysical initStep + 1 -0.0734 1.85 3.05 0 0.0021 0.175 0.175 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -458,39 +412,313 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0.00474 30.7 51.1 1e+03 0.0111 59.6 59.6 WorldPhysical eIoni - 2 0.00893 60 100 1e+03 0.0112 57 117 DriftChamberPhysical CoupledTransportation - 3 0.0691 540 900 1e+03 0.0273 933 1.05e+03 WorldPhysical CoupledTransportation - 4 0.0979 590 983 1e+03 0.0171 97 1.15e+03 WorldPhysical eIoni - 5 0.101 600 1e+03 1e+03 0.00461 19.6 1.17e+03 Crystal CoupledTransportation - 6 0.101 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + 1 -0.00135 9.13 15.2 1e+03 0.00627 17.7 17.7 WorldPhysical eIoni + 2 0.00511 52.3 87.2 1e+03 0.0158 84 102 WorldPhysical eIoni + 3 0.00586 60 100 1e+03 0.00359 14.9 117 DriftChamberPhysical CoupledTransportation + 4 0.0406 540 900 1e+03 0.0252 933 1.05e+03 WorldPhysical CoupledTransportation + 5 0.0544 600 1e+03 1e+03 0.0225 117 1.17e+03 Crystal CoupledTransportation + 6 0.0544 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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.0979 590 983 0.0228 0 0 0 WorldPhysical initStep - 1 2.47 592 983 0.0167 0.00617 3.96 3.96 WorldPhysical eIoni - 2 3.64 591 981 0.0127 0.00393 2.84 6.8 WorldPhysical eIoni - 3 4.14 589 981 0.00824 0.00293 2.01 8.81 WorldPhysical eIoni - 4 4.74 589 981 0 0.00824 1.55 10.4 WorldPhysical eIoni + 0 0.00511 52.3 87.2 0.00405 0 0 0 WorldPhysical initStep + 1 -0.0478 52.5 87.1 0 0.00405 0.529 0.529 WorldPhysical 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.00135 9.13 15.2 0.00134 0 0 0 WorldPhysical initStep + 1 0.026 9.15 15.2 0 0.00134 0.0874 0.0874 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 2.29e-05 0.994 1.66 1e+03 0.00022 1.93 1.93 WorldPhysical eIoni + 2 4.5e-05 22.4 37.4 1e+03 0.00775 41.7 43.6 WorldPhysical eIoni + 3 -0.00118 27.1 45.2 1e+03 0.00124 9.13 52.7 WorldPhysical eIoni + 4 -0.00597 60 100 1e+03 0.0135 63.9 117 DriftChamberPhysical CoupledTransportation + 5 -0.1 540 900 1e+03 0.0312 933 1.05e+03 WorldPhysical CoupledTransportation + 6 -0.115 555 925 1e+03 0.00457 28.7 1.08e+03 WorldPhysical eIoni + 7 -0.156 600 1e+03 1e+03 0.019 88 1.17e+03 Crystal CoupledTransportation + 8 -0.156 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.115 555 925 0.00422 0 0 0 WorldPhysical initStep + 1 0.031 555 925 0 0.00422 0.568 0.568 WorldPhysical 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 -0.00118 27.1 45.2 0.00131 0 0 0 WorldPhysical initStep + 1 -0.0272 27.2 45.2 0 0.00131 0.0843 0.0843 WorldPhysical 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.5e-05 22.4 37.4 0.00101 0 0 0 WorldPhysical initStep + 1 0.0176 22.4 37.4 0 0.00101 0.0577 0.0577 WorldPhysical 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.29e-05 0.994 1.66 0.00328 0 0 0 WorldPhysical initStep + 1 0.16 1.02 1.65 0 0.00328 0.367 0.367 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 0.00293 15 25.1 1e+03 0.0042 29.2 29.2 WorldPhysical eIoni + 2 0.00736 60 100 1e+03 0.0182 87.4 117 DriftChamberPhysical CoupledTransportation + 3 0.0112 207 346 1e+03 0.00882 286 403 DriftChamberPhysical eIoni + 4 0.027 292 487 1e+03 0.00429 165 568 DriftChamberPhysical eIoni + 5 0.118 540 900 1e+03 0.0132 482 1.05e+03 WorldPhysical CoupledTransportation + 6 0.127 560 935 1e+03 0.0104 40.3 1.09e+03 WorldPhysical eIoni + 7 0.136 600 1e+03 1e+03 0.0108 76.3 1.17e+03 Crystal CoupledTransportation + 8 0.136 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.127 560 935 0.00255 0 0 0 WorldPhysical initStep + 1 0.215 560 935 0 0.00255 0.24 0.24 WorldPhysical 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 0.027 292 487 0.0111 0 0 0 DriftChamberPhysical initStep + 1 -3.96 295 485 0.00943 0.00164 5.49 5.49 DriftChamberPhysical eIoni + 2 -6.08 297 483 0.00754 0.0019 4.47 9.96 DriftChamberPhysical eIoni + 3 -8.48 299 482 0.00582 0.00171 3.45 13.4 DriftChamberPhysical eIoni + 4 -9.5 301 480 0.00476 0.00106 2.67 16.1 DriftChamberPhysical eIoni + 5 -9.91 302 478 0.00369 0.00107 2.24 18.3 DriftChamberPhysical eIoni + 6 -10.2 302 477 0.00272 0.000967 1.83 20.2 DriftChamberPhysical eIoni + 7 -10.2 302 476 0.00169 0.00103 1.39 21.5 DriftChamberPhysical eIoni + 8 -10.2 302 475 0 0.00169 0.691 22.2 DriftChamberPhysical 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 0.0112 207 346 0.00569 0 0 0 DriftChamberPhysical initStep + 1 -2.31 207 346 0.00367 0.00202 2.62 2.62 DriftChamberPhysical eIoni + 2 -3.73 206 346 0.002 0.00167 1.82 4.43 DriftChamberPhysical eIoni + 3 -4.31 206 347 0 0.002 0.908 5.34 DriftChamberPhysical 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.00293 15 25.1 0.00882 0 0 0 WorldPhysical initStep + 1 0.91 15.1 25.1 0.00324 0.00558 1.65 1.65 WorldPhysical eIoni + 2 0.839 15.2 25 0 0.00324 0.36 2.01 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 -0.00659 13.6 45.3 1e+03 0.00834 47.3 47.3 WorldPhysical eIoni + 2 -0.0491 30 100 1e+03 0.0106 57.1 104 DriftChamberPhysical CoupledTransportation + 3 -0.468 191 638 1e+03 0.0162 562 666 DriftChamberPhysical eIoni + 4 -0.67 270 900 1e+03 0.00858 274 940 WorldPhysical CoupledTransportation + 5 -0.749 300 1e+03 1e+03 0.0171 104 1.04e+03 Crystal CoupledTransportation + 6 -0.749 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.468 191 638 0.00141 0 0 0 DriftChamberPhysical initStep + 1 -0.516 192 638 0 0.00141 0.516 0.516 DriftChamberPhysical 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.00659 13.6 45.3 0.00303 0 0 0 WorldPhysical initStep + 1 0.0519 13.5 45.3 0 0.00303 0.321 0.321 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 0 30 100 1e+03 0.022 104 104 DriftChamberPhysical CoupledTransportation + 2 -0.0996 270 900 1e+03 0.0242 835 940 WorldPhysical CoupledTransportation + 3 -0.108 290 966 1e+03 0.0123 69.3 1.01e+03 WorldPhysical eIoni + 4 -0.109 292 972 1e+03 0.00111 6.35 1.02e+03 WorldPhysical eIoni + 5 -0.115 298 994 1e+03 0.00409 22.5 1.04e+03 WorldPhysical eIoni + 6 -0.117 300 1e+03 1e+03 0.00126 6.29 1.04e+03 Crystal CoupledTransportation + 7 -0.117 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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 -0.115 298 994 0.00122 0 0 0 WorldPhysical initStep + 1 -0.0854 298 994 0 0.00122 0.0765 0.0765 WorldPhysical 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 -0.109 292 972 0.00132 0 0 0 WorldPhysical initStep + 1 -0.144 292 972 0 0.00132 0.0854 0.0854 WorldPhysical 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 290 966 0.00173 0 0 0 WorldPhysical initStep + 1 -0.063 290 966 0 0.00173 0.129 0.129 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 0 30 100 1e+03 0.019 104 104 DriftChamberPhysical CoupledTransportation + 2 0.00434 36 120 1e+03 0.000622 21 125 DriftChamberPhysical eIoni + 3 0.0109 47.1 157 1e+03 0.00162 38.5 164 DriftChamberPhysical eIoni + 4 0.0575 150 501 1e+03 0.0103 359 523 DriftChamberPhysical eIoni + 5 0.119 270 900 1e+03 0.0123 417 940 WorldPhysical CoupledTransportation + 6 0.13 282 939 1e+03 0.00574 40.6 980 WorldPhysical eIoni + 7 0.147 300 1e+03 1e+03 0.0159 63.8 1.04e+03 Crystal CoupledTransportation + 8 0.147 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.13 282 939 0.00131 0 0 0 WorldPhysical initStep + 1 0.164 282 939 0 0.00131 0.0849 0.0849 WorldPhysical 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 0.0575 150 501 0.00112 0 0 0 DriftChamberPhysical initStep + 1 0.126 151 501 0 0.00112 0.355 0.355 DriftChamberPhysical 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 0.0109 47.1 157 0.00153 0 0 0 DriftChamberPhysical initStep + 1 -0.173 47.5 157 0 0.00153 0.586 0.586 DriftChamberPhysical 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.00434 36 120 0.00131 0 0 0 DriftChamberPhysical initStep + 1 0.302 35.9 120 0 0.00131 0.46 0.46 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 0.000843 29.1 96.9 1e+03 0.0208 101 101 WorldPhysical eIoni + 2 0.000404 30 100 1e+03 0.000463 3.19 104 DriftChamberPhysical CoupledTransportation + 3 -0.0849 208 693 1e+03 0.0206 619 724 DriftChamberPhysical eIoni + 4 -0.117 270 900 1e+03 0.00667 216 940 WorldPhysical CoupledTransportation + 5 -0.14 300 1e+03 1e+03 0.0203 104 1.04e+03 Crystal CoupledTransportation + 6 -0.14 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.0849 208 693 0.00197 0 0 0 DriftChamberPhysical initStep + 1 0.0885 209 693 0 0.00197 0.892 0.892 DriftChamberPhysical 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.000843 29.1 96.9 0.00556 0 0 0 WorldPhysical initStep + 1 0.266 28.8 97.1 0 0.00556 0.925 0.925 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 0 30 100 1e+03 0.0235 104 104 DriftChamberPhysical CoupledTransportation + 2 -0.201 270 900 1e+03 0.0246 835 940 WorldPhysical CoupledTransportation + 3 -0.201 270 901 1e+03 0.000125 1.29 941 WorldPhysical eIoni + 4 -0.215 285 950 1e+03 0.00883 50.9 992 WorldPhysical eIoni + 5 -0.225 300 1e+03 1e+03 0.0114 52.2 1.04e+03 Crystal CoupledTransportation + 6 -0.225 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.215 285 950 0.00238 0 0 0 WorldPhysical initStep + 1 -0.218 285 950 0.00125 2.79e-05 0.0128 0.0128 WorldPhysical eIoni + 2 -0.202 285 950 0 0.00125 0.0789 0.0917 WorldPhysical 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 4.14 589 981 0.00156 0 0 0 WorldPhysical initStep - 1 4.12 589 981 0 0.00156 0.11 0.11 WorldPhysical eIoni + 0 -0.218 285 950 0.0011 0 0 0 WorldPhysical initStep + 1 -0.236 285 950 0 0.0011 0.0655 0.0655 WorldPhysical 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.00474 30.7 51.1 0.00161 0 0 0 WorldPhysical initStep - 1 0.0348 30.7 51.1 0 0.00161 0.116 0.116 WorldPhysical eIoni + 0 -0.201 270 901 0.00469 0 0 0 WorldPhysical initStep + 1 -0.14 270 901 0 0.00469 0.685 0.685 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -498,41 +726,46 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0.00473 30.1 50.2 1e+03 0.0132 58.5 58.5 WorldPhysical eIoni - 2 0.00851 60 100 1e+03 0.0106 58.1 117 DriftChamberPhysical CoupledTransportation - 3 -0.0435 540 900 1e+03 0.0236 933 1.05e+03 WorldPhysical CoupledTransportation - 4 -0.0457 566 942 1e+03 0.00726 48.7 1.1e+03 WorldPhysical eIoni - 5 -0.0561 601 1e+03 1e+03 0.00811 67.9 1.17e+03 Crystal CoupledTransportation - 6 -0.0561 601 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + 1 -0.000143 -2.41 8.04 1e+03 0.00212 8.39 8.39 WorldPhysical eIoni + 2 -0.00334 -30 100 1e+03 0.0156 96 104 DriftChamberPhysical CoupledTransportation + 3 0.0797 -270 900 1e+03 0.0252 835 940 WorldPhysical CoupledTransportation + 4 0.0652 -280 934 1e+03 0.00837 35.1 975 WorldPhysical eIoni + 5 0.0576 -287 957 1e+03 0.00371 24.7 1e+03 WorldPhysical eIoni + 6 0.0452 -300 998 1e+03 0.00898 42.3 1.04e+03 WorldPhysical eIoni + 7 0.0453 -300 1e+03 1e+03 0.000277 2.32 1.04e+03 Crystal CoupledTransportation + 8 0.0453 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.0452 -300 998 0.00466 0 0 0 WorldPhysical initStep + 1 -0.0624 -300 998 0 0.00466 0.676 0.676 WorldPhysical 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 0.0576 -287 957 0.00468 0 0 0 WorldPhysical initStep + 1 0.174 -287 957 0 0.00468 0.682 0.682 WorldPhysical 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 -0.0457 566 942 0.00171 0 0 0 WorldPhysical initStep - 1 -0.00551 566 942 0 0.00171 0.126 0.126 WorldPhysical eIoni + 0 0.0652 -280 934 0.00102 0 0 0 WorldPhysical initStep + 1 0.0888 -280 934 0 0.00102 0.0589 0.0589 WorldPhysical 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.00473 30.1 50.2 0.0328 0 0 0 WorldPhysical initStep - 1 -0.954 26.3 53.5 0.0282 0.00464 6.27 6.27 WorldPhysical eIoni - 2 2.15 25.3 56.2 0.0231 0.00508 5.12 11.4 WorldPhysical eIoni - 3 3.85 27.2 57.4 0.0168 0.00496 3.38 14.8 WorldPhysical eIoni - 4 5.77 27.7 58.1 0.0125 0.00424 2.86 17.6 WorldPhysical eIoni - 5 6.36 27 59.3 0.00596 0.00659 2.21 19.8 WorldPhysical eIoni - 6 6.39 27 58.8 0 0.00596 1.05 20.9 WorldPhysical 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 3.85 27.2 57.4 0.00134 0 0 0 WorldPhysical initStep - 1 3.83 27.2 57.4 0 0.00134 0.0874 0.0874 WorldPhysical eIoni + 0 -0.000143 -2.41 8.04 0.00278 0 0 0 WorldPhysical initStep + 1 0.0149 -2.3 8.08 0 0.00278 0.278 0.278 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -540,57 +773,88 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 -6.4e-06 0.527 0.878 1e+03 0.000449 1.02 1.02 WorldPhysical eIoni - 2 0.0059 37.9 63.2 1e+03 0.0178 72.7 73.7 WorldPhysical eIoni - 3 0.00623 60 100 1e+03 0.00866 42.9 117 DriftChamberPhysical CoupledTransportation - 4 -0.00328 141 235 1e+03 0.00365 157 274 DriftChamberPhysical eIoni - 5 -0.01 245 409 1e+03 0.00738 203 477 DriftChamberPhysical eIoni - 6 -0.00361 340 567 1e+03 0.00593 185 662 DriftChamberPhysical eIoni - 7 0.0179 540 900 1e+03 0.0103 388 1.05e+03 WorldPhysical CoupledTransportation - 8 0.0172 600 1e+03 1e+03 0.0206 117 1.17e+03 Crystal CoupledTransportation - 9 0.0172 600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + 1 0 -30 100 1e+03 0.0214 104 104 DriftChamberPhysical CoupledTransportation + 2 0.176 -208 695 1e+03 0.0188 621 725 DriftChamberPhysical eIoni + 3 0.247 -270 900 1e+03 0.00605 214 940 WorldPhysical CoupledTransportation + 4 0.259 -284 948 1e+03 0.00741 50 990 WorldPhysical eIoni + 5 0.274 -300 1e+03 1e+03 0.0094 54.4 1.04e+03 Crystal CoupledTransportation + 6 0.274 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.259 -284 948 0.00112 0 0 0 WorldPhysical initStep + 1 0.278 -284 948 0 0.00112 0.0669 0.0669 WorldPhysical 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.176 -208 695 0.00628 0 0 0 DriftChamberPhysical initStep + 1 0.488 -206 696 0.0044 0.00189 2.87 2.87 DriftChamberPhysical eIoni + 2 0.421 -204 696 0.00324 0.00115 2.1 4.97 DriftChamberPhysical eIoni + 3 0.605 -203 696 0 0.00324 1.64 6.61 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 -0.000203 -11.1 37.1 1e+03 0.00595 38.8 38.8 WorldPhysical eIoni + 2 -0.00433 -30 100 1e+03 0.0129 65.6 104 DriftChamberPhysical CoupledTransportation + 3 -0.0156 -47.5 158 1e+03 0.00131 61 165 DriftChamberPhysical eIoni + 4 -0.0521 -89.9 300 1e+03 0.00436 147 313 DriftChamberPhysical eIoni + 5 -0.107 -150 498 1e+03 0.00565 208 520 DriftChamberPhysical eIoni + 6 -0.188 -240 800 1e+03 0.00922 315 835 DriftChamberPhysical eIoni + 7 -0.221 -270 900 1e+03 0.00283 105 940 WorldPhysical CoupledTransportation + 8 -0.256 -300 1e+03 1e+03 0.0206 104 1.04e+03 Crystal CoupledTransportation + 9 -0.256 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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.00361 340 567 0.00136 0 0 0 DriftChamberPhysical initStep - 1 -0.263 341 567 0 0.00136 0.487 0.487 DriftChamberPhysical eIoni + 0 -0.188 -240 800 0.00613 0 0 0 DriftChamberPhysical initStep + 1 2.07 -241 800 0.00464 0.0015 2.8 2.8 DriftChamberPhysical eIoni + 2 3.86 -242 800 0.00316 0.00148 2.2 5 DriftChamberPhysical eIoni + 3 4.62 -243 800 0 0.00316 1.6 6.6 DriftChamberPhysical 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.01 245 409 0.00152 0 0 0 DriftChamberPhysical initStep - 1 -0.432 245 409 0 0.00152 0.582 0.582 DriftChamberPhysical eIoni + 0 -0.107 -150 498 0.00222 0 0 0 DriftChamberPhysical initStep + 1 -0.0326 -149 499 0 0.00222 1.08 1.08 DriftChamberPhysical 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 -0.00328 141 235 0.00442 0 0 0 DriftChamberPhysical initStep - 1 1.7 142 235 0.00288 0.00154 2.11 2.11 DriftChamberPhysical eIoni - 2 2.39 142 236 0.00113 0.00175 1.47 3.58 DriftChamberPhysical eIoni - 3 2.28 142 236 0 0.00113 0.363 3.95 DriftChamberPhysical eIoni + 0 -0.0521 -89.9 300 0.00126 0 0 0 DriftChamberPhysical initStep + 1 -0.0352 -90.2 299 0 0.00126 0.427 0.427 DriftChamberPhysical 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 0.0059 37.9 63.2 0.00382 0 0 0 WorldPhysical initStep - 1 0.146 38.1 63.1 0 0.00382 0.477 0.477 WorldPhysical eIoni + 0 -0.0156 -47.5 158 0.00145 0 0 0 DriftChamberPhysical initStep + 1 0.371 -47.6 158 0 0.00145 0.538 0.538 DriftChamberPhysical 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 -6.4e-06 0.527 0.878 0.00223 0 0 0 WorldPhysical initStep - 1 0.0837 0.535 0.877 0 0.00223 0.192 0.192 WorldPhysical eIoni + 0 -0.000203 -11.1 37.1 0.00359 0 0 0 WorldPhysical initStep + 1 0.189 -11.1 37.2 0 0.00359 0.429 0.429 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -598,28 +862,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 0 0 1e+03 0 0 0 WorldPhysical initStep - 1 0.00984 23.8 79.2 1e+03 0.0186 82.7 82.7 WorldPhysical eIoni - 2 0.0161 30 100 1e+03 0.0068 21.7 104 DriftChamberPhysical CoupledTransportation - 3 0.115 187 622 1e+03 0.0168 545 650 DriftChamberPhysical eIoni - 4 0.165 270 900 1e+03 0.00979 290 940 WorldPhysical CoupledTransportation - 5 0.174 300 1e+03 1e+03 0.0191 104 1.04e+03 Crystal CoupledTransportation - 6 0.174 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.115 187 622 0.001 0 0 0 DriftChamberPhysical initStep - 1 0.298 187 622 0 0.001 0.3 0.3 DriftChamberPhysical eIoni + 1 0 -30 100 1e+03 0.0218 104 104 DriftChamberPhysical CoupledTransportation + 2 0.235 -224 746 1e+03 0.0175 674 779 DriftChamberPhysical eIoni + 3 0.267 -270 900 1e+03 0.00406 161 940 WorldPhysical CoupledTransportation + 4 0.291 -300 1e+03 1e+03 0.0187 104 1.04e+03 Crystal CoupledTransportation + 5 0.291 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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.00984 23.8 79.2 0.00332 0 0 0 WorldPhysical initStep - 1 0.0246 23.6 79.3 0 0.00332 0.376 0.376 WorldPhysical eIoni + 0 0.235 -224 746 0.0042 0 0 0 DriftChamberPhysical initStep + 1 1.57 -223 746 0.00305 0.00115 2.03 2.03 DriftChamberPhysical eIoni + 2 2.55 -222 747 0 0.00305 1.55 3.58 DriftChamberPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -627,145 +883,55 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 -0.000738 14.2 47.4 1e+03 0.0115 49.5 49.5 WorldPhysical eIoni - 2 -0.000959 30 100 1e+03 0.00931 54.9 104 DriftChamberPhysical CoupledTransportation - 3 -0.125 202 673 1e+03 0.0163 598 703 DriftChamberPhysical eIoni - 4 -0.167 260 867 1e+03 0.00655 202 905 DriftChamberPhysical eIoni - 5 -0.172 270 900 1e+03 0.000565 34.8 940 WorldPhysical CoupledTransportation - 6 -0.184 300 1e+03 1e+03 0.0209 104 1.04e+03 Crystal CoupledTransportation - 7 -0.184 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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 -0.167 260 867 0.00395 0 0 0 DriftChamberPhysical initStep - 1 -0.828 259 867 0.00278 0.00117 1.93 1.93 DriftChamberPhysical eIoni - 2 -1.13 258 868 0.00126 0.00152 1.42 3.35 DriftChamberPhysical eIoni - 3 -1.06 258 868 0 0.00126 0.428 3.78 DriftChamberPhysical 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 -0.125 202 673 0.00174 0 0 0 DriftChamberPhysical initStep - 1 -0.0186 202 673 0 0.00174 0.722 0.722 DriftChamberPhysical 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.000738 14.2 47.4 0.00179 0 0 0 WorldPhysical initStep - 1 -0.00902 14.2 47.4 0 0.00179 0.136 0.136 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 30 100 1e+03 0.0201 104 104 DriftChamberPhysical CoupledTransportation - 2 0.0558 94.2 314 1e+03 0.00722 224 328 DriftChamberPhysical eIoni - 3 0.163 270 900 1e+03 0.0186 612 940 WorldPhysical CoupledTransportation - 4 0.172 300 1e+03 1e+03 0.0175 104 1.04e+03 Crystal CoupledTransportation - 5 0.172 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.0558 94.2 314 0.00465 0 0 0 DriftChamberPhysical initStep - 1 2.02 94.3 314 0.00254 0.00211 2.2 2.2 DriftChamberPhysical eIoni - 2 2.92 93.9 314 0 0.00254 1.29 3.49 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 30 100 1e+03 0.0231 104 104 DriftChamberPhysical CoupledTransportation - 2 -0.141 270 900 1e+03 0.0271 835 940 WorldPhysical CoupledTransportation - 3 -0.149 290 968 1e+03 0.0129 70.6 1.01e+03 WorldPhysical eIoni - 4 -0.153 300 1e+03 1e+03 0.00704 33.8 1.04e+03 Crystal CoupledTransportation - 5 -0.153 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.149 290 968 0.00228 0 0 0 WorldPhysical initStep - 1 -0.126 290 968 0 0.00228 0.2 0.2 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 30 100 1e+03 0.0215 104 104 DriftChamberPhysical CoupledTransportation - 2 0.00966 112 373 1e+03 0.00875 285 390 DriftChamberPhysical eIoni - 3 0.0133 140 468 1e+03 0.00253 98.5 488 DriftChamberPhysical eIoni - 4 0.0402 222 740 1e+03 0.00928 284 772 DriftChamberPhysical eIoni - 5 0.0572 270 900 1e+03 0.00707 167 940 WorldPhysical CoupledTransportation - 6 0.0573 271 902 1e+03 0.000947 1.82 941 WorldPhysical eIoni - 7 0.0584 276 920 1e+03 0.00477 19.4 961 WorldPhysical eIoni - 8 0.0586 289 963 1e+03 0.00498 44.4 1.01e+03 WorldPhysical eIoni - 9 0.0526 300 1e+03 1e+03 0.0118 38.8 1.04e+03 Crystal CoupledTransportation - 10 0.0526 300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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 0.0586 289 963 0.00319 0 0 0 WorldPhysical initStep - 1 0.139 289 963 0 0.00319 0.35 0.35 WorldPhysical eIoni + 1 -0.00381 -14 46.8 1e+03 0.00817 48.8 48.8 WorldPhysical eIoni + 2 -0.00438 -17.4 58 1e+03 0.0037 11.8 60.6 WorldPhysical eIoni + 3 -0.0078 -21.7 72.2 1e+03 0.00389 14.8 75.4 WorldPhysical eIoni + 4 -0.0123 -30 100 1e+03 0.00488 29 104 DriftChamberPhysical CoupledTransportation + 5 -0.0161 -43.6 146 1e+03 0.000643 47.5 152 DriftChamberPhysical eIoni + 6 -0.0175 -64.6 215 1e+03 0.0031 73 225 DriftChamberPhysical eIoni + 7 -0.0095 -270 900 1e+03 0.0222 715 940 WorldPhysical CoupledTransportation + 8 0.000407 -300 1e+03 1e+03 0.018 104 1.04e+03 Crystal CoupledTransportation + 9 0.000407 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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.0584 276 920 0.00111 0 0 0 WorldPhysical initStep - 1 0.0808 276 920 0 0.00111 0.066 0.066 WorldPhysical eIoni + 0 -0.0175 -64.6 215 0.00141 0 0 0 DriftChamberPhysical initStep + 1 -0.377 -64.7 215 0 0.00141 0.514 0.514 DriftChamberPhysical 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.0573 271 902 0.00104 0 0 0 WorldPhysical initStep - 1 0.0556 270 902 0 0.00104 0.06 0.06 WorldPhysical eIoni + 0 -0.0161 -43.6 146 0.00126 0 0 0 DriftChamberPhysical initStep + 1 -0.299 -43.8 145 0 0.00126 0.428 0.428 DriftChamberPhysical 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 0.0402 222 740 0.00121 0 0 0 DriftChamberPhysical initStep - 1 0.175 222 740 0 0.00121 0.401 0.401 DriftChamberPhysical eIoni + 0 -0.0078 -21.7 72.2 0.00441 0 0 0 WorldPhysical initStep + 1 -0.211 -21.9 72.2 0 0.00441 0.615 0.615 WorldPhysical 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 0.0133 140 468 0.00153 0 0 0 DriftChamberPhysical initStep - 1 -0.134 141 467 0 0.00153 0.584 0.584 DriftChamberPhysical eIoni + 0 -0.00438 -17.4 58 0.00139 0 0 0 WorldPhysical initStep + 1 0.0289 -17.4 58 0 0.00139 0.0919 0.0919 WorldPhysical 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.00966 112 373 0.00104 0 0 0 DriftChamberPhysical initStep - 1 -0.147 112 373 0 0.00104 0.317 0.317 DriftChamberPhysical eIoni + 0 -0.00381 -14 46.8 0.00121 0 0 0 WorldPhysical initStep + 1 -0.0345 -14 46.8 0 0.00121 0.0752 0.0752 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -773,66 +939,30 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.0185 104 104 DriftChamberPhysical CoupledTransportation - 2 0.0941 -209 696 1e+03 0.0184 622 726 DriftChamberPhysical eIoni - 3 0.132 -270 900 1e+03 0.00699 213 940 WorldPhysical CoupledTransportation - 4 0.146 -300 1e+03 1e+03 0.0226 104 1.04e+03 Crystal CoupledTransportation - 5 0.146 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.0941 -209 696 0.00113 0 0 0 DriftChamberPhysical initStep - 1 0.112 -208 696 0 0.00113 0.362 0.362 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 -0.00531 -17 56.6 1e+03 0.00911 59 59 WorldPhysical eIoni - 2 -0.0233 -30 100 1e+03 0.00964 45.4 104 DriftChamberPhysical CoupledTransportation - 3 -0.437 -238 793 1e+03 0.0226 724 828 DriftChamberPhysical eIoni - 4 -0.5 -270 900 1e+03 0.00245 111 940 WorldPhysical CoupledTransportation - 5 -0.501 -270 901 1e+03 0.000355 1.12 941 WorldPhysical eIoni - 6 -0.533 -296 987 1e+03 0.0209 90.1 1.03e+03 WorldPhysical eIoni - 7 -0.54 -300 1e+03 1e+03 0.00196 13.2 1.04e+03 Crystal CoupledTransportation - 8 -0.54 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.533 -296 987 0.00193 0 0 0 WorldPhysical initStep - 1 -0.502 -296 987 0 0.00193 0.152 0.152 WorldPhysical 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 -0.501 -270 901 0.00112 0 0 0 WorldPhysical initStep - 1 -0.523 -270 901 0 0.00112 0.0674 0.0674 WorldPhysical eIoni + 1 -0.000486 -6.92 11.5 1e+03 0.00196 13.4 13.4 WorldPhysical eIoni + 2 -0.0013 -60 100 1e+03 0.0166 103 117 DriftChamberPhysical CoupledTransportation + 3 -0.00666 -86.4 144 1e+03 0.0018 51.3 168 DriftChamberPhysical eIoni + 4 -0.104 -540 900 1e+03 0.0264 882 1.05e+03 WorldPhysical CoupledTransportation + 5 -0.113 -600 1e+03 1e+03 0.0216 117 1.17e+03 Crystal CoupledTransportation + 6 -0.113 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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.437 -238 793 0.00204 0 0 0 DriftChamberPhysical initStep - 1 -0.186 -239 793 0 0.00204 0.943 0.943 DriftChamberPhysical eIoni + 0 -0.00666 -86.4 144 0.0044 0 0 0 DriftChamberPhysical initStep + 1 -0.543 -84.9 145 0.00304 0.00136 2.1 2.1 DriftChamberPhysical eIoni + 2 -0.463 -83.7 146 0.00104 0.00201 1.55 3.65 DriftChamberPhysical eIoni + 3 -0.343 -83.8 145 0 0.00104 0.316 3.97 DriftChamberPhysical 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.00531 -17 56.6 0.0027 0 0 0 WorldPhysical initStep - 1 0.0386 -16.9 56.6 0 0.0027 0.264 0.264 WorldPhysical eIoni + 0 -0.000486 -6.92 11.5 0.00294 0 0 0 WorldPhysical initStep + 1 0.0516 -6.82 11.6 0 0.00294 0.305 0.305 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -840,926 +970,498 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.023 104 104 DriftChamberPhysical CoupledTransportation - 2 -0.114 -270 900 1e+03 0.0244 835 940 WorldPhysical CoupledTransportation - 3 -0.126 -288 959 1e+03 0.0109 62 1e+03 WorldPhysical eIoni - 4 -0.136 -300 1e+03 1e+03 0.00734 42.4 1.04e+03 Crystal CoupledTransportation - 5 -0.136 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.126 -288 959 0.00103 0 0 0 WorldPhysical initStep - 1 -0.106 -288 959 0 0.00103 0.0591 0.0591 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.0211 104 104 DriftChamberPhysical CoupledTransportation - 2 0.00967 -270 900 1e+03 0.0243 835 940 WorldPhysical CoupledTransportation - 3 0.00343 -281 934 1e+03 0.00788 35.8 975 WorldPhysical eIoni - 4 -0.00847 -300 1e+03 1e+03 0.0104 68.7 1.04e+03 Crystal CoupledTransportation - 5 -0.00847 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.00343 -281 934 0.00131 0 0 0 WorldPhysical initStep - 1 0.0372 -281 934 0 0.00131 0.0845 0.0845 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.0206 104 104 DriftChamberPhysical CoupledTransportation - 2 0.0097 -256 854 1e+03 0.0217 787 892 DriftChamberPhysical eIoni - 3 0.0163 -270 900 1e+03 0.00118 47.9 940 WorldPhysical CoupledTransportation - 4 0.0182 -288 960 1e+03 0.0117 62.7 1e+03 WorldPhysical eIoni - 5 0.0236 -297 991 1e+03 0.00642 32.6 1.03e+03 WorldPhysical eIoni - 6 0.0267 -300 1e+03 1e+03 0.00134 9.08 1.04e+03 Crystal CoupledTransportation - 7 0.0267 -300 1e+03 0 1e+03 0 1.04e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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 0.0236 -297 991 0.0287 0 0 0 WorldPhysical initStep - 1 -2.88 -299 992 0.0229 0.0032 3.44 3.44 WorldPhysical eIoni - 2 -3.9 -302 992 0.0177 0.00521 3.98 7.42 WorldPhysical eIoni - 3 -2.56 -305 993 0.0152 0.0025 3.02 10.4 WorldPhysical eIoni - 4 -1.2 -303 993 0.0104 0.00482 2.61 13 WorldPhysical eIoni - 5 -1.12 -303 994 0.00541 0.00499 1.89 14.9 WorldPhysical eIoni - 6 -0.772 -303 994 0.00126 0.00415 0.717 15.7 WorldPhysical eIoni - 7 -0.748 -303 994 0 0.00126 0.0798 15.7 WorldPhysical eIoni - -********************************************************************************************************* -* 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 -2.88 -299 992 0.0026 0 0 0 WorldPhysical initStep - 1 -2.95 -299 992 0 0.0026 0.247 0.247 WorldPhysical 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 0.0182 -288 960 0.00103 0 0 0 WorldPhysical initStep - 1 0.0319 -288 960 0 0.00103 0.0597 0.0597 WorldPhysical 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.0097 -256 854 0.00163 0 0 0 DriftChamberPhysical initStep - 1 -0.368 -256 854 0 0.00163 0.65 0.65 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 -0.00682 -58.9 98.2 1e+03 0.0193 115 115 WorldPhysical eIoni - 2 -0.00677 -60 100 1e+03 0.000308 2.06 117 DriftChamberPhysical CoupledTransportation - 3 0.0202 -540 900 1e+03 0.0269 933 1.05e+03 WorldPhysical CoupledTransportation - 4 0.074 -600 1e+03 1e+03 0.0222 117 1.17e+03 Crystal CoupledTransportation - 5 0.074 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.00682 -58.9 98.2 0.00152 0 0 0 WorldPhysical initStep - 1 -0.0461 -58.9 98.2 0 0.00152 0.106 0.106 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 -0.0114 -40 66.7 1e+03 0.0148 77.7 77.7 WorldPhysical eIoni - 2 -0.0187 -60 100 1e+03 0.00714 38.9 117 DriftChamberPhysical CoupledTransportation - 3 -0.0225 -73.3 122 1e+03 0.000962 25.7 142 DriftChamberPhysical eIoni - 4 -0.195 -488 814 1e+03 0.0254 807 949 DriftChamberPhysical eIoni - 5 -0.207 -540 900 1e+03 0.00248 100 1.05e+03 WorldPhysical CoupledTransportation - 6 -0.215 -572 953 1e+03 0.0126 62.4 1.11e+03 WorldPhysical eIoni - 7 -0.226 -599 999 1e+03 0.00971 52.5 1.16e+03 WorldPhysical eIoni - 8 -0.226 -600 1e+03 1e+03 0.000426 1.75 1.17e+03 Crystal CoupledTransportation - 9 -0.226 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + 1 -0.00398 -23.4 39 1e+03 0.00989 45.4 45.4 WorldPhysical eIoni + 2 -7.22e-05 -35.6 59.4 1e+03 0.00613 23.8 69.2 WorldPhysical eIoni + 3 0.000164 -38.7 64.5 1e+03 0.00129 6.03 75.2 WorldPhysical eIoni + 4 0.00165 -58.8 98 1e+03 0.00682 39 114 WorldPhysical eIoni + 5 0.002 -60 100 1e+03 0.00026 2.33 117 DriftChamberPhysical CoupledTransportation + 6 0.133 -540 900 1e+03 0.0289 933 1.05e+03 WorldPhysical CoupledTransportation + 7 0.145 -567 945 1e+03 0.0117 51.9 1.1e+03 WorldPhysical eIoni + 8 0.172 -600 1e+03 1e+03 0.0115 64.7 1.17e+03 Crystal CoupledTransportation + 9 0.172 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* * 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.226 -599 999 0.0111 0 0 0 WorldPhysical initStep - 1 -0.742 -598 999 0.00864 0.00242 1.02 1.02 WorldPhysical msc - 2 -0.811 -598 998 0.0059 0.00274 0.873 1.9 WorldPhysical msc - 3 -0.776 -598 998 0 0.0059 1.03 2.92 WorldPhysical eIoni + 0 0.145 -567 945 0.0296 0 0 0 WorldPhysical initStep + 1 -3.86 -568 944 0.021 0.00642 5.15 5.15 WorldPhysical eIoni + 2 -4.55 -568 944 0.0194 0.000531 0.793 5.94 WorldPhysical eIoni + 3 -6.68 -570 944 0.0143 0.00517 3.31 9.26 WorldPhysical eIoni + 4 -7.83 -569 945 0.0108 0.00344 2.46 11.7 WorldPhysical eIoni + 5 -7.8 -569 946 0.00516 0.00438 1.32 13 WorldPhysical eIoni + 6 -7.75 -568 946 0 0.00516 0.811 13.8 WorldPhysical 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 -7.8 -569 946 0.00128 0 0 0 WorldPhysical initStep + 1 -7.8 -569 946 0 0.00128 0.0818 0.0818 WorldPhysical eIoni + +********************************************************************************************************* +* 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 -4.55 -568 944 0.001 0 0 0 WorldPhysical initStep + 1 -4.55 -568 944 0 0.001 0.0574 0.0574 WorldPhysical 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 -3.86 -568 944 0.00217 0 0 0 WorldPhysical initStep + 1 -3.84 -568 944 0 0.00217 0.184 0.184 WorldPhysical 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.215 -572 953 0.00164 0 0 0 WorldPhysical initStep - 1 -0.166 -572 953 0 0.00164 0.119 0.119 WorldPhysical eIoni + 0 0.00165 -58.8 98 0.0145 0 0 0 WorldPhysical initStep + 1 -1.13 -59.3 97.8 0.0133 0.00124 1.31 1.31 WorldPhysical msc + 2 -2.3 -59.6 97.1 0.0111 0.00217 1.47 2.78 WorldPhysical msc + 3 -3.07 -60 97.1 0.00752 0.000916 0.878 3.66 WorldPhysical eIoni + 4 -3.63 -60.4 97.3 0 0.00752 1.42 5.08 WorldPhysical 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.07 -60 97.1 0.00268 0 0 0 WorldPhysical initStep + 1 -3.13 -59.9 97.1 0 0.00268 0.26 0.26 WorldPhysical 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 -0.195 -488 814 0.00618 0 0 0 DriftChamberPhysical initStep - 1 -2.46 -490 814 0.00395 0.00222 2.82 2.82 DriftChamberPhysical eIoni - 2 -1.38 -489 815 0.00263 0.00132 1.93 4.75 DriftChamberPhysical eIoni - 3 -0.966 -488 815 0 0.00263 1.34 6.09 DriftChamberPhysical 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 -0.0225 -73.3 122 0.0108 0 0 0 DriftChamberPhysical initStep - 1 4.19 -75.9 121 0.00931 0.00148 5.31 5.31 DriftChamberPhysical eIoni - 2 5.24 -78.6 118 0.00779 0.00152 4.4 9.71 DriftChamberPhysical eIoni - 3 5.5 -79.7 118 0.00486 0.000968 1.23 10.9 DriftChamberPhysical eIoni - 4 5.54 -79.7 118 0.00329 0 0.0557 11 DriftChamberPhysical eIoni - 5 5.94 -81 117 0.00185 0.00144 1.66 12.7 DriftChamberPhysical eIoni - 6 5.71 -81.5 117 0 0.00185 0.801 13.5 DriftChamberPhysical 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 5.54 -79.7 118 0.00157 0 0 0 DriftChamberPhysical initStep - 1 5.85 -79.5 117 0 0.00157 0.612 0.612 DriftChamberPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.5 -79.7 118 0.00196 0 0 0 DriftChamberPhysical initStep - 1 5.1 -80.2 118 0 0.00196 0.884 0.884 DriftChamberPhysical 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.0114 -40 66.7 0.00222 0 0 0 WorldPhysical initStep - 1 0.021 -40.1 66.6 0 0.00222 0.191 0.191 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0.000673 -12.2 20.3 1e+03 0.00457 23.7 23.7 WorldPhysical eIoni - 2 0.00146 -19.2 31.9 1e+03 0.00334 13.6 37.2 WorldPhysical eIoni - 3 0.00248 -60 100 1e+03 0.0149 79.4 117 DriftChamberPhysical CoupledTransportation - 4 0.0446 -280 468 1e+03 0.0126 429 545 DriftChamberPhysical eIoni - 5 0.0572 -378 631 1e+03 0.00478 190 736 DriftChamberPhysical eIoni - 6 0.104 -540 900 1e+03 0.0105 314 1.05e+03 WorldPhysical CoupledTransportation - 7 0.114 -562 937 1e+03 0.00804 43.7 1.09e+03 WorldPhysical eIoni - 8 0.132 -600 1e+03 1e+03 0.0145 72.9 1.17e+03 Crystal CoupledTransportation - 9 0.132 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.114 -562 937 0.00143 0 0 0 WorldPhysical initStep - 1 0.0753 -562 938 0 0.00143 0.0969 0.0969 WorldPhysical 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.0572 -378 631 0.00197 0 0 0 DriftChamberPhysical initStep - 1 -0.124 -379 631 0 0.00197 0.893 0.893 DriftChamberPhysical 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 0.0446 -280 468 0.002 0 0 0 DriftChamberPhysical initStep - 1 0.585 -281 467 0 0.002 0.914 0.914 DriftChamberPhysical 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 0.00146 -19.2 31.9 0.00104 0 0 0 WorldPhysical initStep - 1 -0.00756 -19.1 31.9 0 0.00104 0.0604 0.0604 WorldPhysical 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.000673 -12.2 20.3 0.00109 0 0 0 WorldPhysical initStep - 1 0.0134 -12.1 20.3 0 0.00109 0.0646 0.0646 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 -60 100 1e+03 0.0223 117 117 DriftChamberPhysical CoupledTransportation - 2 0.128 -354 590 1e+03 0.0174 571 688 DriftChamberPhysical eIoni - 3 0.197 -540 900 1e+03 0.009 362 1.05e+03 WorldPhysical CoupledTransportation - 4 0.203 -557 928 1e+03 0.00616 33.1 1.08e+03 WorldPhysical eIoni - 5 0.217 -600 1e+03 1e+03 0.0155 83.5 1.17e+03 Crystal CoupledTransportation - 6 0.217 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.203 -557 928 0.00165 0 0 0 WorldPhysical initStep - 1 0.18 -557 928 0 0.00165 0.12 0.12 WorldPhysical 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.128 -354 590 0.0024 0 0 0 DriftChamberPhysical initStep - 1 0.692 -355 590 0 0.0024 1.2 1.2 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 -60 100 1e+03 0.0242 117 117 DriftChamberPhysical CoupledTransportation - 2 0.159 -409 681 1e+03 0.0215 677 794 DriftChamberPhysical eIoni - 3 0.219 -540 900 1e+03 0.00668 256 1.05e+03 WorldPhysical CoupledTransportation - 4 0.246 -600 1e+03 1e+03 0.0181 117 1.17e+03 Crystal CoupledTransportation - 5 0.246 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom - -********************************************************************************************************* -* 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.159 -409 681 0.00123 0 0 0 DriftChamberPhysical initStep - 1 0.455 -409 681 0 0.00123 0.412 0.412 DriftChamberPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 60 100 1e+03 0.0178 117 117 DriftChamberPhysical CoupledTransportation - 2 0.0907 343 572 1e+03 0.0144 551 667 DriftChamberPhysical hIoni - 3 0.0958 369 616 1e+03 0.00116 50.8 718 DriftChamberPhysical hIoni - 4 0.126 540 900 1e+03 0.00764 332 1.05e+03 WorldPhysical CoupledTransportation - 5 0.129 558 931 1e+03 0.0047 36.2 1.09e+03 WorldPhysical hIoni - 6 0.13 570 950 1e+03 0.00439 22.2 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 7 0.13 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 0.129 558 931 0.00293 0 0 0 WorldPhysical initStep - 1 0.221 558 931 0 0.00293 0.303 0.303 WorldPhysical 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 0.0958 369 616 0.00102 0 0 0 DriftChamberPhysical initStep - 1 0.292 369 616 0 0.00102 0.311 0.311 DriftChamberPhysical 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.0907 343 572 0.00106 0 0 0 DriftChamberPhysical initStep - 1 0.267 343 572 0 0.00106 0.328 0.328 DriftChamberPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 41.7 69.5 1e+03 0.0108 81.1 81.1 WorldPhysical hIoni - 2 0.0026 58.2 97.1 1e+03 0.00352 32.1 113 WorldPhysical hIoni - 3 0.00315 60 100 1e+03 0.000254 3.43 117 DriftChamberPhysical CoupledTransportation - 4 0.0169 109 181 1e+03 0.0018 94.5 211 DriftChamberPhysical hIoni - 5 0.157 540 900 1e+03 0.0184 839 1.05e+03 WorldPhysical CoupledTransportation - 6 0.165 570 950 1e+03 0.0117 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 7 0.165 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 0.0169 109 181 0.00167 0 0 0 DriftChamberPhysical initStep - 1 -0.253 108 181 0 0.00167 0.676 0.676 DriftChamberPhysical 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 0.0026 58.2 97.1 0.00121 0 0 0 WorldPhysical initStep - 1 0.016 58.3 97 0 0.00121 0.0754 0.0754 WorldPhysical 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 41.7 69.5 0.00535 0 0 0 WorldPhysical initStep - 1 -0.341 41.9 69.5 0 0.00535 0.864 0.864 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 45.9 76.4 1e+03 0.0118 89.1 89.1 WorldPhysical hIoni - 2 -0.0015 48.2 80.3 1e+03 0.00089 4.49 93.6 WorldPhysical hIoni - 3 -0.0108 60 100 1e+03 0.00492 23 117 DriftChamberPhysical CoupledTransportation - 4 -0.0901 169 281 1e+03 0.00563 211 328 DriftChamberPhysical hIoni - 5 -0.153 529 881 1e+03 0.0138 699 1.03e+03 DriftChamberPhysical hIoni - 6 -0.153 540 900 1e+03 0.000309 22.5 1.05e+03 WorldPhysical CoupledTransportation - 7 -0.155 570 950 1e+03 0.00899 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 8 -0.155 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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.153 529 881 0.00747 0 0 0 DriftChamberPhysical initStep - 1 0.212 526 883 0.00524 0.00222 3.42 3.42 DriftChamberPhysical eIoni - 2 0.752 524 884 0.0031 0.00214 2.43 5.85 DriftChamberPhysical eIoni - 3 1.31 524 885 0.00115 0.00195 1.58 7.43 DriftChamberPhysical eIoni - 4 1.38 524 885 0 0.00115 0.372 7.8 DriftChamberPhysical 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 -0.0901 169 281 0.166 0 0 0 DriftChamberPhysical initStep - 1 -344 96.3 465 0.148 0.0149 403 403 DriftChamberPhysical eIoni - 2 -435 -12.8 490 0.14 0.00584 145 548 DriftChamberPhysical eIoni - 3 -611 -283 570 0.125 0.0143 335 883 DriftChamberPhysical eIoni - 4 -818 -520 635 0.112 0.0134 328 1.21e+03 DriftChamberPhysical eIoni - 5 -855 -580 656 0.106 0.00379 73.5 1.28e+03 DriftChamberPhysical eIoni - 6 -896 -690 692 0.0997 0.0067 124 1.41e+03 DriftChamberPhysical eIoni - 7 -948 -893 742 0.0887 0.011 222 1.63e+03 DriftChamberPhysical eIoni - 8 -1.02e+03 -1.06e+03 748 0.0804 0.00829 180 1.81e+03 DriftChamberPhysical eIoni - 9 -1.07e+03 -1.19e+03 705 0.0703 0.0101 152 1.96e+03 DriftChamberPhysical eIoni - 10 -1.08e+03 -1.25e+03 679 0.066 0.00429 66.7 2.03e+03 WorldPhysical CoupledTransportation - 11 -1.08e+03 -1.27e+03 681 0.0586 0.0074 18.3 2.05e+03 WorldPhysical eIoni - 12 -1.08e+03 -1.28e+03 690 0.0486 0.00847 13.3 2.06e+03 WorldPhysical eIoni - 13 -1.08e+03 -1.28e+03 695 0.0232 0.00436 8.53 2.07e+03 WorldPhysical eIoni - 14 -1.08e+03 -1.28e+03 696 0.0218 0.00144 1.5 2.07e+03 WorldPhysical eIoni - 15 -1.07e+03 -1.28e+03 698 0.0185 0.00334 3.75 2.07e+03 WorldPhysical eIoni - 16 -1.07e+03 -1.28e+03 697 0.0135 0.00378 2.99 2.08e+03 WorldPhysical eIoni - 17 -1.07e+03 -1.28e+03 696 0.00836 0.00517 2.35 2.08e+03 WorldPhysical eIoni - 18 -1.07e+03 -1.28e+03 697 0.00184 0.00652 1.57 2.08e+03 WorldPhysical eIoni - 19 -1.07e+03 -1.28e+03 696 0 0.00184 0.142 2.08e+03 WorldPhysical 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 -1.07e+03 -1.28e+03 697 0.00115 0 0 0 WorldPhysical initStep - 1 -1.07e+03 -1.28e+03 697 0 0.00115 0.0701 0.0701 WorldPhysical eIoni + 0 0.000164 -38.7 64.5 0.0153 0 0 0 WorldPhysical initStep + 1 -1.35 -37.7 65.4 0.0113 0.00395 2.62 2.62 WorldPhysical eIoni + 2 -2.52 -37.1 65.3 0.00759 0.00372 2.03 4.65 WorldPhysical eIoni + 3 -2.21 -37.1 65.9 0.00316 0.00283 0.886 5.53 WorldPhysical eIoni + 4 -2.34 -37 65.9 0 0.00316 0.344 5.88 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.08e+03 -1.28e+03 695 0.021 0 0 0 WorldPhysical initStep - 1 -1.08e+03 -1.28e+03 696 0.016 0.00493 3.6 3.6 WorldPhysical eIoni - 2 -1.08e+03 -1.28e+03 696 0.011 0.000742 0.988 4.58 WorldPhysical eIoni - 3 -1.08e+03 -1.28e+03 696 0.0068 0.00305 1.17 5.75 WorldPhysical eIoni - 4 -1.08e+03 -1.28e+03 696 0.00339 0.00094 0.301 6.06 WorldPhysical eIoni - 5 -1.08e+03 -1.28e+03 696 0 0.00339 0.389 6.44 WorldPhysical 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 -1.08e+03 -1.28e+03 696 0.00247 0 0 0 WorldPhysical initStep - 1 -1.08e+03 -1.28e+03 696 0 0.00247 0.228 0.228 WorldPhysical 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 -1.08e+03 -1.28e+03 696 0.00115 0 0 0 WorldPhysical initStep - 1 -1.08e+03 -1.28e+03 696 0 0.00115 0.0694 0.0694 WorldPhysical 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 -1.08e+03 -1.28e+03 696 0.00431 0 0 0 WorldPhysical initStep - 1 -1.08e+03 -1.28e+03 695 0 0.00431 0.589 0.589 WorldPhysical 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 -1.08e+03 -1.28e+03 690 0.00158 0 0 0 WorldPhysical initStep - 1 -1.08e+03 -1.28e+03 690 0 0.00158 0.112 0.112 WorldPhysical 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 -855 -580 656 0.00142 0 0 0 DriftChamberPhysical initStep - 1 -855 -580 656 0 0.00142 0.52 0.52 DriftChamberPhysical 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 -611 -283 570 0.00104 0 0 0 DriftChamberPhysical initStep - 1 -611 -283 570 0 0.00104 0.319 0.319 DriftChamberPhysical eIoni - -********************************************************************************************************* -* 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 -435 -12.8 490 0.0013 0 0 0 DriftChamberPhysical initStep - 1 -435 -12.7 490 0 0.0013 0.453 0.453 DriftChamberPhysical 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 -344 96.3 465 0.0032 0 0 0 DriftChamberPhysical initStep - 1 -344 96.3 464 0.00256 0.000641 1.62 1.62 DriftChamberPhysical eIoni - 2 -343 96.8 463 0 0.00256 1.3 2.92 DriftChamberPhysical eIoni + 0 -2.21 -37.1 65.9 0.00161 0 0 0 WorldPhysical initStep + 1 -2.21 -37.1 65.8 0 0.00161 0.115 0.115 WorldPhysical 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 -0.0015 48.2 80.3 0.0156 0 0 0 WorldPhysical initStep - 1 1.82 48.8 80.1 0.0102 0.0054 2.67 2.67 WorldPhysical eIoni - 2 2.06 49.5 81 0.00555 0.00463 1.86 4.53 WorldPhysical eIoni - 3 2.43 49.6 81 0 0.00555 0.921 5.45 WorldPhysical 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 45.9 76.4 0.00101 0 0 0 WorldPhysical initStep - 1 -0.0109 45.8 76.4 0 0.00101 0.058 0.058 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 9.12 15.2 1e+03 0.00207 17.7 17.7 WorldPhysical hIoni - 2 -0.000967 60 100 1e+03 0.0128 98.9 117 DriftChamberPhysical CoupledTransportation - 3 -0.026 321 535 1e+03 0.0119 508 624 DriftChamberPhysical hIoni - 4 -0.0892 540 900 1e+03 0.0108 425 1.05e+03 WorldPhysical CoupledTransportation - 5 -0.0995 570 950 1e+03 0.00992 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 6 -0.0995 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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.026 321 535 0.00637 0 0 0 DriftChamberPhysical initStep - 1 1.85 323 535 0.00453 0.00184 2.9 2.9 DriftChamberPhysical eIoni - 2 2.88 324 534 0.00398 0.000545 2.15 5.06 DriftChamberPhysical eIoni - 3 3.29 326 533 0.00248 0.0015 1.94 7 DriftChamberPhysical eIoni - 4 4.09 326 532 0.00114 0.00135 1.26 8.25 DriftChamberPhysical eIoni - 5 4.19 326 532 0 0.00114 0.366 8.62 DriftChamberPhysical 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 9.12 15.2 0.00864 0 0 0 WorldPhysical initStep - 1 0.102 9.91 14.8 0.0033 0.00533 1.62 1.62 WorldPhysical eIoni - 2 0.218 9.79 14.8 0 0.0033 0.371 1.99 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 7.82 13 1e+03 0.00242 15.2 15.2 WorldPhysical hIoni - 2 -0.000244 11.3 18.8 1e+03 0.000579 6.76 22 WorldPhysical hIoni - 3 -0.00332 42 70.1 1e+03 0.00995 59.7 81.7 WorldPhysical hIoni - 4 -0.00322 60 100 1e+03 0.00609 34.9 117 DriftChamberPhysical CoupledTransportation - 5 0.0092 173 289 1e+03 0.00618 220 337 DriftChamberPhysical hIoni - 6 0.0127 256 427 1e+03 0.00222 161 498 DriftChamberPhysical hIoni - 7 0.0351 540 900 1e+03 0.0119 551 1.05e+03 WorldPhysical CoupledTransportation - 8 0.0361 549 915 1e+03 0.00173 17.6 1.07e+03 WorldPhysical hIoni - 9 0.0364 570 950 1e+03 0.00474 40.8 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 10 0.0364 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 0.0361 549 915 0.00123 0 0 0 WorldPhysical initStep - 1 0.0676 549 915 0 0.00123 0.0772 0.0772 WorldPhysical 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.0127 256 427 0.00113 0 0 0 DriftChamberPhysical initStep - 1 0.00833 257 427 0 0.00113 0.36 0.36 DriftChamberPhysical 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.0092 173 289 0.00126 0 0 0 DriftChamberPhysical initStep - 1 0.269 174 289 0 0.00126 0.429 0.429 DriftChamberPhysical 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 -0.00332 42 70.1 0.00113 0 0 0 WorldPhysical initStep - 1 -0.028 42.1 70 0 0.00113 0.0679 0.0679 WorldPhysical 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 -0.000244 11.3 18.8 0.00382 0 0 0 WorldPhysical initStep - 1 0.00392 11.3 18.8 0.00191 6.09e-05 0.00788 0.00788 WorldPhysical eIoni - 2 0.0302 11.2 18.8 0 0.00191 0.15 0.158 WorldPhysical 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.00392 11.3 18.8 0.00185 0 0 0 WorldPhysical initStep - 1 0.0427 11.3 18.9 0 0.00185 0.143 0.143 WorldPhysical 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 7.82 13 0.00279 0 0 0 WorldPhysical initStep - 1 0.089 7.75 13.1 0 0.00279 0.279 0.279 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 9.9 33 999 0.00567 34.4 34.4 WorldPhysical hIoni - 2 -0.031 26.4 87.9 999 0.00712 57.4 91.8 WorldPhysical hIoni - 3 -0.0383 30 100 999 0.00243 12.6 104 DriftChamberPhysical CoupledTransportation - 4 -0.263 141 470 999 0.00644 386 490 DriftChamberPhysical hIoni - 5 -0.52 271 900 999 0.0103 449 940 WorldPhysical CoupledTransportation - 6 -0.551 283 941 999 0.0051 42.6 982 WorldPhysical hIoni - 7 -0.558 286 950 999 0.00215 9.61 992 WorldPhysical G4FSMP_parallelGeom - 8 -0.558 286 950 0 999 0 992 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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.551 283 941 0.00199 0 0 0 WorldPhysical initStep - 1 -0.486 283 941 0 0.00199 0.161 0.161 WorldPhysical 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 -0.263 141 470 0.0015 0 0 0 DriftChamberPhysical initStep - 1 -0.231 141 470 0 0.0015 0.569 0.569 DriftChamberPhysical 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 -0.031 26.4 87.9 0.00167 0 0 0 WorldPhysical initStep - 1 -0.0499 26.4 88 0 0.00167 0.122 0.122 WorldPhysical 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 9.9 33 0.863 0 0 0 WorldPhysical initStep - 1 41.5 -16.3 100 0.85 0.0139 83.9 83.9 DriftChamberPhysical CoupledTransportation - 2 249 -201 536 0.835 0.00938 518 602 DriftChamberPhysical eIoni - 3 322 -276 726 0.829 0.00375 217 818 DriftChamberPhysical eIoni - 4 361 -315 820 0.825 0.00225 109 927 DriftChamberPhysical eIoni - 5 393 -349 900 0.824 0.00167 92.5 1.02e+03 WorldPhysical CoupledTransportation - 6 399 -355 915 0.811 0.00251 17.7 1.04e+03 WorldPhysical eIoni - 7 423 -386 1e+03 0.797 0.0139 94.5 1.13e+03 Crystal CoupledTransportation - 8 423 -386 1e+03 0.759 0.0376 0.0585 1.13e+03 Crystal msc - 9 423 -386 1e+03 0.743 0.0166 0.0505 1.13e+03 Crystal msc - 10 423 -386 1e+03 0.676 0.0665 0.0591 1.13e+03 Crystal msc - 11 423 -386 1e+03 0.654 0.0228 0.0868 1.13e+03 Crystal msc - 12 423 -386 1e+03 0.602 0.0515 0.128 1.13e+03 Crystal msc - 13 423 -386 1e+03 0.518 0.0845 0.153 1.13e+03 Crystal msc - 14 423 -386 1e+03 0.454 0.0639 0.155 1.13e+03 Crystal msc - 15 423 -386 1e+03 0.319 0.134 0.158 1.13e+03 Crystal msc - 16 423 -386 1e+03 0 0.319 0.368 1.13e+03 Crystal 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 399 -355 915 0.0101 0 0 0 WorldPhysical initStep - 1 400 -355 915 0.00486 0.00295 1.01 1.01 WorldPhysical eIoni - 2 400 -355 915 0 0.00486 0.729 1.74 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 400 -355 915 0.00232 0 0 0 WorldPhysical initStep - 1 400 -355 915 0 0.00232 0.205 0.205 WorldPhysical 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 361 -315 820 0.00168 0 0 0 DriftChamberPhysical initStep - 1 362 -315 819 0 0.00168 0.685 0.685 DriftChamberPhysical 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 322 -276 726 0.0018 0 0 0 DriftChamberPhysical initStep - 1 322 -276 727 0 0.0018 0.766 0.766 DriftChamberPhysical 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 249 -201 536 0.00543 0 0 0 DriftChamberPhysical initStep - 1 251 -200 536 0.00336 0.00206 2.51 2.51 DriftChamberPhysical eIoni - 2 253 -199 536 0.00194 0.00142 1.69 4.2 DriftChamberPhysical eIoni - 3 253 -199 536 0 0.00194 0.867 5.07 DriftChamberPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 4.2 14 1e+03 0.00172 14.6 14.6 WorldPhysical hIoni - 2 -0.0014 30 100 1e+03 0.0125 89.8 104 DriftChamberPhysical CoupledTransportation - 3 0.00105 270 900 1e+03 0.0173 835 940 WorldPhysical CoupledTransportation - 4 0.00273 276 921 1e+03 0.00219 22.1 962 WorldPhysical hIoni - 5 0.00413 285 950 1e+03 0.00492 30.1 992 WorldPhysical G4FSMP_parallelGeom - 6 0.00413 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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.00273 276 921 0.00271 0 0 0 WorldPhysical initStep - 1 0.0846 276 921 0 0.00271 0.266 0.266 WorldPhysical 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 4.2 14 0.00108 0 0 0 WorldPhysical initStep - 1 -0.012 4.22 14 0 0.00108 0.0639 0.0639 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 30 100 1e+03 0.0146 104 104 DriftChamberPhysical CoupledTransportation - 2 0.086 270 900 1e+03 0.0162 835 940 WorldPhysical CoupledTransportation - 3 0.086 270 902 1e+03 0.000173 1.66 941 WorldPhysical hIoni - 4 0.0859 273 909 1e+03 0.00108 8.12 949 WorldPhysical hIoni - 5 0.0942 285 950 1e+03 0.00779 42.4 992 WorldPhysical G4FSMP_parallelGeom - 6 0.0942 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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.0859 273 909 0.121 0 0 0 WorldPhysical initStep - 1 -16.4 263 926 0.112 0.00764 25.4 25.4 WorldPhysical eIoni - 2 -18.2 262 927 0.11 0.00049 2.51 28 WorldPhysical eIoni - 3 -32.8 253 939 0.1 0.00881 22.9 50.8 WorldPhysical eIoni - 4 -40.9 252 954 0.0935 0.00652 17.8 68.6 WorldPhysical eIoni - 5 -52.3 261 957 0.0667 0.00416 15.4 84 WorldPhysical eIoni - 6 -54.9 272 952 0.0549 0.00532 13.3 97.3 WorldPhysical eIoni - 7 -62.4 278 949 0.0406 0.00707 10.7 108 WorldPhysical eIoni - 8 -63.5 279 950 0.033 0.000663 1.36 109 WorldPhysical eIoni - 9 -63.7 279 950 0.0314 8.81e-05 0.167 110 WorldPhysical eIoni - 10 -64.6 279 950 0.0277 0.00128 1 111 WorldPhysical eIoni - 11 -68.6 279 951 0.0224 0.00526 5 116 WorldPhysical eIoni - 12 -69.3 280 951 0.0194 0.00195 1.11 117 WorldPhysical eIoni - 13 -71.5 281 951 0.0155 0.00388 3.31 120 WorldPhysical eIoni - 14 -72.7 282 950 0.0121 0.00344 2.66 123 WorldPhysical eIoni - 15 -73.4 280 950 0.00765 0.00443 2.14 125 WorldPhysical eIoni - 16 -73.9 280 950 0.00392 0.00373 1.44 126 WorldPhysical eIoni - 17 -73.8 280 950 0 0.00392 0.499 127 WorldPhysical 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 -69.3 280 951 0.00105 0 0 0 WorldPhysical initStep - 1 -69.3 280 951 0 0.00105 0.0613 0.0613 WorldPhysical eIoni + 0 -7.22e-05 -35.6 59.4 0.0131 0 0 0 WorldPhysical initStep + 1 0.949 -35.8 59.3 0.0108 0.0013 1.17 1.17 WorldPhysical eIoni + 2 2.02 -36.3 59 0.00693 0.00389 1.96 3.13 WorldPhysical eIoni + 3 1.89 -36.2 59.6 0.00179 0.00515 1.29 4.42 WorldPhysical eIoni + 4 1.83 -36.2 59.6 0 0.00179 0.135 4.55 WorldPhysical eIoni ********************************************************************************************************* * 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 -64.6 279 950 0.00242 0 0 0 WorldPhysical initStep - 1 -64.6 279 950 0 0.00242 0.221 0.221 WorldPhysical eIoni + 0 0.949 -35.8 59.3 0.000997 0 0 0 WorldPhysical initStep + 1 0.94 -35.8 59.3 0 0.000997 0.0568 0.0568 WorldPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 3 +* 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 -63.7 279 950 0.00157 0 0 0 WorldPhysical initStep - 1 -63.7 279 950 0 0.00157 0.111 0.111 WorldPhysical eIoni + 0 -0.00398 -23.4 39 0.00285 0 0 0 WorldPhysical initStep + 1 -0.104 -23.4 38.9 0 0.00285 0.288 0.288 WorldPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 3 +* 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 -63.5 279 950 0.00694 0 0 0 WorldPhysical initStep - 1 -63.4 279 950 0.00102 0.00592 1.29 1.29 WorldPhysical eIoni - 2 -63.4 279 950 0 0.00102 0.0586 1.35 WorldPhysical eIoni + 0 0 0 0 1e+03 0 0 0 WorldPhysical initStep + 1 0 -60 100 1e+03 0.023 117 117 DriftChamberPhysical CoupledTransportation + 2 0.0125 -214 357 1e+03 0.01 299 416 DriftChamberPhysical eIoni + 3 0.114 -538 897 1e+03 0.0184 630 1.05e+03 DriftChamberPhysical eIoni + 4 0.115 -540 900 1e+03 8.32e-05 3.15 1.05e+03 WorldPhysical CoupledTransportation + 5 0.118 -548 914 1e+03 0.00206 15.8 1.07e+03 WorldPhysical eIoni + 6 0.135 -600 1e+03 1e+03 0.0199 101 1.17e+03 Crystal CoupledTransportation + 7 0.135 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 +* 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 -62.4 278 949 0.00726 0 0 0 WorldPhysical initStep - 1 -62.7 278 949 0.00457 0.00138 0.573 0.573 WorldPhysical eIoni - 2 -62.8 278 948 0 0.00457 0.655 1.23 WorldPhysical eIoni + 0 0.118 -548 914 0.00121 0 0 0 WorldPhysical initStep + 1 0.116 -548 913 0 0.00121 0.075 0.075 WorldPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 9 +* 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 -62.7 278 949 0.00131 0 0 0 WorldPhysical initStep - 1 -62.6 278 949 0 0.00131 0.0845 0.0845 WorldPhysical eIoni + 0 0.114 -538 897 0.00662 0 0 0 DriftChamberPhysical initStep + 1 -2.68 -538 898 0.00551 0.00111 3.02 3.02 DriftChamberPhysical eIoni + 2 -4.95 -539 898 0.00414 0.00137 2.54 5.56 DriftChamberPhysical eIoni + 3 -6.77 -539 899 0.00241 0.00173 2 7.56 DriftChamberPhysical eIoni + 4 -7.87 -539 898 0 0.00241 1.21 8.77 DriftChamberPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +* 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 -54.9 272 952 0.00642 0 0 0 WorldPhysical initStep - 1 -54.4 273 952 0 0.00642 1.17 1.17 WorldPhysical eIoni + 0 0.0125 -214 357 0.00294 0 0 0 DriftChamberPhysical initStep + 1 -1.18 -214 357 0 0.00294 1.5 1.5 DriftChamberPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 -0.00101 -14.1 23.5 1e+03 0.00669 27.4 27.4 WorldPhysical eIoni + 2 0.00312 -60 100 1e+03 0.0195 89.2 117 DriftChamberPhysical CoupledTransportation + 3 -0.0165 -408 679 1e+03 0.0215 676 792 DriftChamberPhysical eIoni + 4 -0.0296 -540 900 1e+03 0.00734 257 1.05e+03 WorldPhysical CoupledTransportation + 5 -0.0344 -600 1e+03 1e+03 0.0232 117 1.17e+03 Crystal CoupledTransportation + 6 -0.0344 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.0165 -408 679 0.00213 0 0 0 DriftChamberPhysical initStep + 1 0.309 -407 680 0 0.00213 1.02 1.02 DriftChamberPhysical 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.00101 -14.1 23.5 0.00267 0 0 0 WorldPhysical initStep + 1 -0.0228 -14 23.6 0 0.00267 0.258 0.258 WorldPhysical 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 0 1e+03 0 0 0 WorldPhysical initStep + 1 0 -60 100 1e+03 0.0281 117 117 DriftChamberPhysical CoupledTransportation + 2 0.0292 -184 307 1e+03 0.00577 242 358 DriftChamberPhysical eIoni + 3 0.25 -540 900 1e+03 0.0198 691 1.05e+03 WorldPhysical CoupledTransportation + 4 0.279 -600 1e+03 1e+03 0.0218 117 1.17e+03 Crystal CoupledTransportation + 5 0.279 -600 1e+03 0 1e+03 0 1.17e+03 Crystal G4FSMP_massGeom + +********************************************************************************************************* +* 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.0292 -184 307 0.00499 0 0 0 DriftChamberPhysical initStep + 1 -1.19 -183 308 0.00442 0.000566 2.33 2.33 DriftChamberPhysical eIoni + 2 -1.9 -181 309 0.00283 0.00159 2.11 4.44 DriftChamberPhysical eIoni + 3 -1.99 -181 308 0.00144 0.00139 1.44 5.89 DriftChamberPhysical eIoni + 4 -2.25 -181 308 0 0.00144 0.532 6.42 DriftChamberPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 12.5 20.8 1e+03 0.00333 24.2 24.2 WorldPhysical hIoni + 2 -0.00832 60 100 1e+03 0.0134 92.4 117 DriftChamberPhysical CoupledTransportation + 3 0.00908 445 742 1e+03 0.0156 748 865 DriftChamberPhysical hIoni + 4 0.0175 501 835 1e+03 0.00204 109 974 DriftChamberPhysical hIoni + 5 0.0247 540 900 1e+03 0.00132 75.3 1.05e+03 WorldPhysical CoupledTransportation + 6 0.0313 570 950 1e+03 0.0101 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 7 0.0313 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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 0.0175 501 835 0.00125 0 0 0 DriftChamberPhysical initStep + 1 -0.287 501 835 0 0.00125 0.423 0.423 DriftChamberPhysical 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 0.00908 445 742 0.00129 0 0 0 DriftChamberPhysical initStep + 1 0.0537 445 742 0 0.00129 0.444 0.444 DriftChamberPhysical 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.5 20.8 0.00193 0 0 0 WorldPhysical initStep + 1 -0.0576 12.4 20.8 0 0.00193 0.153 0.153 WorldPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 5.91 9.85 1e+03 0.00222 11.5 11.5 WorldPhysical hIoni + 2 0.00144 48.5 80.9 1e+03 0.0117 82.9 94.3 WorldPhysical hIoni + 3 0.00496 60 100 1e+03 0.00269 22.3 117 DriftChamberPhysical CoupledTransportation + 4 0.0162 164 273 1e+03 0.00446 202 319 DriftChamberPhysical hIoni + 5 0.0405 279 465 1e+03 0.00455 224 543 DriftChamberPhysical hIoni + 6 0.0435 540 900 1e+03 0.0147 507 1.05e+03 WorldPhysical CoupledTransportation + 7 0.0437 541 901 1e+03 0.00031 1.5 1.05e+03 WorldPhysical hIoni + 8 0.0494 570 950 1e+03 0.00724 56.8 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 9 0.0494 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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.0437 541 901 0.00137 0 0 0 WorldPhysical initStep + 1 0.0236 540 901 0 0.00137 0.0904 0.0904 WorldPhysical 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.0405 279 465 0.00161 0 0 0 DriftChamberPhysical initStep + 1 0.436 279 465 0 0.00161 0.636 0.636 DriftChamberPhysical 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 0.0162 164 273 0.00449 0 0 0 DriftChamberPhysical initStep + 1 -0.278 163 274 0.00192 0.00257 1.18 1.18 DriftChamberPhysical eIoni + 2 -0.525 163 274 0 0.00192 0.852 2.03 DriftChamberPhysical 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 0.00144 48.5 80.9 0.00583 0 0 0 WorldPhysical initStep + 1 0.0873 48.2 81.1 0.00302 0.00164 0.666 0.666 WorldPhysical eIoni + 2 0.123 48.1 81.1 0 0.00302 0.319 0.985 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -52.3 261 957 0.0227 0 0 0 WorldPhysical initStep - 1 -52.6 263 960 0.0187 0.00396 3.92 3.92 WorldPhysical eIoni - 2 -52.5 264 960 0.0159 0.00129 0.661 4.58 WorldPhysical eIoni - 3 -52.5 266 959 0.0109 0.00501 2.73 7.31 WorldPhysical eIoni - 4 -51.8 266 958 0.00608 0.00485 1.97 9.28 WorldPhysical eIoni - 5 -51.7 266 958 0.00428 0.000746 0.149 9.43 WorldPhysical eIoni - 6 -51.6 266 958 0 0.00428 0.582 10 WorldPhysical eIoni + 0 0.0873 48.2 81.1 0.00116 0 0 0 WorldPhysical initStep + 1 0.102 48.2 81.2 0 0.00116 0.0709 0.0709 WorldPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 7 +* 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 -51.7 266 958 0.00106 0 0 0 WorldPhysical initStep - 1 -51.7 266 958 0 0.00106 0.0617 0.0617 WorldPhysical eIoni + 0 0 5.91 9.85 0.00157 0 0 0 WorldPhysical initStep + 1 0.0462 5.92 9.85 0 0.00157 0.111 0.111 WorldPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 +* G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -52.5 264 960 0.00146 0 0 0 WorldPhysical initStep - 1 -52.5 264 960 0 0.00146 0.0999 0.0999 WorldPhysical eIoni + 0 0 0 0 1e+03 0 0 0 WorldPhysical initStep + 1 0 18.9 31.4 1e+03 0.00571 36.7 36.7 WorldPhysical hIoni + 2 -0.000298 25.3 42.2 1e+03 0.00173 12.6 49.3 WorldPhysical hIoni + 3 0.00774 59.3 98.9 1e+03 0.0107 66.1 115 WorldPhysical hIoni + 4 0.00794 60 100 1e+03 8.1e-05 1.31 117 DriftChamberPhysical CoupledTransportation + 5 0.153 540 900 1e+03 0.019 933 1.05e+03 WorldPhysical CoupledTransportation + 6 0.158 566 942 1e+03 0.00867 49.5 1.1e+03 WorldPhysical hIoni + 7 0.158 570 950 1e+03 0.00157 8.83 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 8 0.158 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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.158 566 942 0.00121 0 0 0 WorldPhysical initStep + 1 0.188 566 942 0 0.00121 0.0752 0.0752 WorldPhysical 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 0.00774 59.3 98.9 0.00173 0 0 0 WorldPhysical initStep + 1 -0.0457 59.3 98.9 0 0.00173 0.129 0.129 WorldPhysical 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 -0.000298 25.3 42.2 0.00407 0 0 0 WorldPhysical initStep + 1 -0.226 25.3 42.3 0 0.00407 0.533 0.533 WorldPhysical 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 18.9 31.4 0.00163 0 0 0 WorldPhysical initStep + 1 -0.00637 18.8 31.5 0 0.00163 0.118 0.118 WorldPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 60 100 1e+03 0.0151 117 117 DriftChamberPhysical CoupledTransportation + 2 0.0215 199 332 1e+03 0.00508 270 387 DriftChamberPhysical hIoni + 3 0.046 379 632 1e+03 0.00698 350 737 DriftChamberPhysical hIoni + 4 0.0797 540 900 1e+03 0.00931 313 1.05e+03 WorldPhysical CoupledTransportation + 5 0.0808 548 912 1e+03 0.00169 14.3 1.06e+03 WorldPhysical hIoni + 6 0.0822 570 950 1e+03 0.00684 44 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 7 0.0822 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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 0.0808 548 912 0.00416 0 0 0 WorldPhysical initStep + 1 0.244 547 912 0 0.00416 0.554 0.554 WorldPhysical 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 0.046 379 632 0.00184 0 0 0 DriftChamberPhysical initStep + 1 -0.163 380 632 0 0.00184 0.794 0.794 DriftChamberPhysical 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.0215 199 332 0.00509 0 0 0 DriftChamberPhysical initStep + 1 1.07 201 331 0.00388 0.00122 2.37 2.37 DriftChamberPhysical eIoni + 2 2.35 202 331 0.00174 0.00213 1.9 4.27 DriftChamberPhysical eIoni + 3 2.09 202 331 0 0.00174 0.726 5 DriftChamberPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 60 100 1e+03 0.0165 117 117 DriftChamberPhysical CoupledTransportation + 2 -0.00784 113 188 1e+03 0.00208 103 219 DriftChamberPhysical hIoni + 3 -0.0783 436 727 1e+03 0.015 628 847 DriftChamberPhysical hIoni + 4 -0.0863 466 777 1e+03 0.000772 58.7 906 DriftChamberPhysical hIoni + 5 -0.0934 540 900 1e+03 0.00252 144 1.05e+03 WorldPhysical CoupledTransportation + 6 -0.0962 554 923 1e+03 0.00411 26.8 1.08e+03 WorldPhysical hIoni + 7 -0.0959 570 950 1e+03 0.0056 31.5 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 8 -0.0959 570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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.0962 554 923 0.00159 0 0 0 WorldPhysical initStep + 1 -0.0598 554 923 0 0.00159 0.113 0.113 WorldPhysical 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 -0.0863 466 777 0.00176 0 0 0 DriftChamberPhysical initStep + 1 -0.571 466 777 0 0.00176 0.737 0.737 DriftChamberPhysical 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 -0.0783 436 727 0.00834 0 0 0 DriftChamberPhysical initStep + 1 1.3 437 726 0.00616 0.000837 2.02 2.02 DriftChamberPhysical eIoni + 2 3.54 438 725 0.00316 0.00301 2.82 4.84 DriftChamberPhysical eIoni + 3 4.61 438 724 0 0.00316 1.6 6.44 DriftChamberPhysical eIoni ********************************************************************************************************* * 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 -32.8 253 939 0.00148 0 0 0 WorldPhysical initStep - 1 -32.9 253 939 0 0.00148 0.102 0.102 WorldPhysical eIoni + 0 1.3 437 726 0.00134 0 0 0 DriftChamberPhysical initStep + 1 1.15 438 726 0 0.00134 0.474 0.474 DriftChamberPhysical eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +* 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.2 262 927 0.00104 0 0 0 WorldPhysical initStep - 1 -18.2 262 927 0 0.00104 0.0605 0.0605 WorldPhysical eIoni + 0 -0.00784 113 188 0.00379 0 0 0 DriftChamberPhysical initStep + 1 1.58 113 188 0.00243 0.00136 1.87 1.87 DriftChamberPhysical eIoni + 2 2.41 112 188 0 0.00243 1.22 3.09 DriftChamberPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 30 100 1e+03 0.0166 104 104 DriftChamberPhysical CoupledTransportation + 2 0.00348 44 147 1e+03 0.00114 48.6 153 DriftChamberPhysical hIoni + 3 0.0705 270 900 1e+03 0.0193 787 940 WorldPhysical CoupledTransportation + 4 0.073 280 932 1e+03 0.00613 33.5 973 WorldPhysical hIoni + 5 0.0725 285 950 1e+03 0.00143 18.7 992 WorldPhysical G4FSMP_parallelGeom + 6 0.0725 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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.073 280 932 0.0104 0 0 0 WorldPhysical initStep + 1 0.863 281 932 0.00572 0.00463 1.89 1.89 WorldPhysical eIoni + 2 0.779 281 932 0.00373 0.000871 0.263 2.15 WorldPhysical eIoni + 3 0.864 281 932 0 0.00373 0.459 2.61 WorldPhysical 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 -16.4 263 926 0.00139 0 0 0 WorldPhysical initStep - 1 -16.4 263 926 0 0.00139 0.0923 0.0923 WorldPhysical eIoni + 0 0.779 281 932 0.00111 0 0 0 WorldPhysical initStep + 1 0.771 281 932 0 0.00111 0.0667 0.0667 WorldPhysical 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.086 270 902 0.00177 0 0 0 WorldPhysical initStep - 1 0.094 270 902 0 0.00177 0.133 0.133 WorldPhysical eIoni + 0 0.00348 44 147 0.00167 0 0 0 DriftChamberPhysical initStep + 1 0.0292 43.5 147 0 0.00167 0.678 0.678 DriftChamberPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -1767,28 +1469,42 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 0.972 3.24 1e+03 0.001 3.38 3.38 WorldPhysical hIoni - 2 0.00165 30 100 1e+03 0.015 101 104 DriftChamberPhysical CoupledTransportation - 3 -0.118 270 900 1e+03 0.0172 835 940 WorldPhysical CoupledTransportation - 4 -0.122 283 942 1e+03 0.00493 43.7 983 WorldPhysical hIoni - 5 -0.122 285 950 1e+03 0.00116 8.47 992 WorldPhysical G4FSMP_parallelGeom - 6 -0.122 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + 1 0 8.08 26.9 1e+03 0.00423 28.1 28.1 WorldPhysical hIoni + 2 0.00039 30 100 1e+03 0.00924 76.3 104 DriftChamberPhysical CoupledTransportation + 3 -0.00221 129 429 1e+03 0.00707 343 447 DriftChamberPhysical hIoni + 4 0.029 270 900 1e+03 0.00901 492 940 WorldPhysical CoupledTransportation + 5 0.0305 285 950 1e+03 0.00638 52.2 992 WorldPhysical G4FSMP_parallelGeom + 6 0.0305 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.122 283 942 0.00162 0 0 0 WorldPhysical initStep - 1 -0.128 283 942 0 0.00162 0.117 0.117 WorldPhysical eIoni + 0 -0.00221 129 429 0.014 0 0 0 DriftChamberPhysical initStep + 1 0.841 122 431 0.0123 0.00165 7.63 7.63 DriftChamberPhysical eIoni + 2 3.42 117 433 0.0104 0.00194 6.37 14 DriftChamberPhysical eIoni + 3 4.73 113 435 0.00892 0.00148 5.05 19.1 DriftChamberPhysical eIoni + 4 4.78 109 436 0.00498 0.000952 3.42 22.5 DriftChamberPhysical eIoni + 5 3.77 108 436 0.00348 0.0015 2.33 24.8 DriftChamberPhysical eIoni + 6 2.98 106 436 0.00252 0.000962 1.74 26.6 DriftChamberPhysical eIoni + 7 2.99 106 435 0 0.00252 1.28 27.8 DriftChamberPhysical 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 4.78 109 436 0.003 0 0 0 DriftChamberPhysical initStep + 1 5.66 109 437 0 0.003 1.53 1.53 DriftChamberPhysical 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 0.972 3.24 0.00198 0 0 0 WorldPhysical initStep - 1 0.016 0.909 3.26 0 0.00198 0.159 0.159 WorldPhysical eIoni + 0 0 8.08 26.9 0.00158 0 0 0 WorldPhysical initStep + 1 -0.0476 8.08 26.9 0 0.00158 0.113 0.113 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -1796,33 +1512,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 0 0 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 30 100 1e+03 0.0125 104 104 DriftChamberPhysical CoupledTransportation - 2 0.213 248 825 1e+03 0.0162 757 861 DriftChamberPhysical hIoni - 3 0.236 270 900 1e+03 0.00306 78.6 940 WorldPhysical CoupledTransportation - 4 0.248 283 942 1e+03 0.00649 44 984 WorldPhysical hIoni - 5 0.25 285 950 1e+03 0.000777 8.24 992 WorldPhysical G4FSMP_parallelGeom - 6 0.25 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + 1 0 30 100 1e+03 0.0144 104 104 DriftChamberPhysical CoupledTransportation + 2 -0.192 254 845 1e+03 0.0162 778 882 DriftChamberPhysical hIoni + 3 -0.204 270 900 1e+03 0.000889 57.2 940 WorldPhysical CoupledTransportation + 4 -0.213 281 937 1e+03 0.00601 39 979 WorldPhysical hIoni + 5 -0.216 285 950 1e+03 0.00244 13.2 992 WorldPhysical G4FSMP_parallelGeom + 6 -0.216 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.248 283 942 0.00166 0 0 0 WorldPhysical initStep - 1 0.297 283 942 0 0.00166 0.121 0.121 WorldPhysical eIoni + 0 -0.213 281 937 0.00103 0 0 0 WorldPhysical initStep + 1 -0.218 281 937 0 0.00103 0.0596 0.0596 WorldPhysical 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.213 248 825 0.00884 0 0 0 DriftChamberPhysical initStep - 1 -2.21 251 824 0.00758 0.00126 4.13 4.13 DriftChamberPhysical eIoni - 2 -4.69 252 823 0.00577 0.00182 3.47 7.6 DriftChamberPhysical eIoni - 3 -6.02 253 821 0.00472 0.00104 2.65 10.3 DriftChamberPhysical eIoni - 4 -5.42 254 819 0.00336 0.00136 2.23 12.5 DriftChamberPhysical eIoni - 5 -5.72 254 818 0.00169 0.00168 1.69 14.2 DriftChamberPhysical eIoni - 6 -5.91 254 818 0 0.00169 0.688 14.9 DriftChamberPhysical eIoni + 0 -0.192 254 845 0.00101 0 0 0 DriftChamberPhysical initStep + 1 -0.00719 254 845 0 0.00101 0.305 0.305 DriftChamberPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -1830,46 +1541,107 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.0144 104 104 DriftChamberPhysical CoupledTransportation - 2 -0.0384 -167 558 1e+03 0.00963 478 582 DriftChamberPhysical hIoni - 3 -0.0424 -205 682 1e+03 0.00297 129 712 DriftChamberPhysical hIoni - 4 -0.0537 -270 900 1e+03 0.00481 228 940 WorldPhysical CoupledTransportation - 5 -0.0541 -278 927 1e+03 0.00355 28 968 WorldPhysical hIoni - 6 -0.0528 -284 945 1e+03 0.00245 19.4 987 WorldPhysical hIoni - 7 -0.0528 -285 950 1e+03 0.0004 4.82 992 WorldPhysical G4FSMP_parallelGeom - 8 -0.0528 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + 1 0 30 100 1e+03 0.0135 104 104 DriftChamberPhysical CoupledTransportation + 2 0.00855 93.7 312 1e+03 0.00341 222 326 DriftChamberPhysical hIoni + 3 0.0174 209 696 1e+03 0.00905 400 726 DriftChamberPhysical hIoni + 4 -0.0016 270 900 1e+03 0.00501 213 940 WorldPhysical CoupledTransportation + 5 -0.00651 285 950 1e+03 0.00563 52.2 992 WorldPhysical G4FSMP_parallelGeom + 6 -0.00651 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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.0174 209 696 0.00517 0 0 0 DriftChamberPhysical initStep + 1 1.02 211 695 0.00382 0.00135 2.41 2.41 DriftChamberPhysical eIoni + 2 2 212 695 0.00198 0.00184 1.88 4.29 DriftChamberPhysical eIoni + 3 2.22 213 695 0 0.00198 0.897 5.18 DriftChamberPhysical 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.00855 93.7 312 0.00134 0 0 0 DriftChamberPhysical initStep + 1 0.0607 93.4 312 0 0.00134 0.473 0.473 DriftChamberPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 4.41 14.7 1e+03 0.00307 15.3 15.3 WorldPhysical hIoni + 2 0.00167 30 100 1e+03 0.00971 89.1 104 DriftChamberPhysical CoupledTransportation + 3 -0.0453 270 900 1e+03 0.0183 835 940 WorldPhysical CoupledTransportation + 4 -0.0524 285 950 1e+03 0.0059 52.2 992 WorldPhysical G4FSMP_parallelGeom + 5 -0.0524 285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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 4.41 14.7 0.00226 0 0 0 WorldPhysical initStep + 1 0.0115 4.49 14.7 0 0.00226 0.197 0.197 WorldPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 -22.3 74.2 1e+03 0.0123 77.4 77.4 WorldPhysical hIoni + 2 0.00335 -28.4 94.6 1e+03 0.00328 21.3 98.7 WorldPhysical hIoni + 3 0.00506 -30 100 1e+03 0.000717 5.69 104 DriftChamberPhysical CoupledTransportation + 4 0.0985 -126 421 1e+03 0.00759 335 440 DriftChamberPhysical hIoni + 5 0.196 -270 900 1e+03 0.0121 500 940 WorldPhysical CoupledTransportation + 6 0.197 -277 922 1e+03 0.00266 22.8 962 WorldPhysical hIoni + 7 0.203 -285 950 1e+03 0.00463 29.4 992 WorldPhysical G4FSMP_parallelGeom + 8 0.203 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.0528 -284 945 0.00262 0 0 0 WorldPhysical initStep - 1 0.0434 -284 945 0 0.00262 0.251 0.251 WorldPhysical eIoni + 0 0.197 -277 922 0.00145 0 0 0 WorldPhysical initStep + 1 0.237 -277 922 0 0.00145 0.0988 0.0988 WorldPhysical 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 -0.0541 -278 927 0.00573 0 0 0 WorldPhysical initStep - 1 -0.42 -278 927 0 0.00573 0.976 0.976 WorldPhysical eIoni + 0 0.0985 -126 421 0.00145 0 0 0 DriftChamberPhysical initStep + 1 0.434 -126 421 0 0.00145 0.538 0.538 DriftChamberPhysical 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 -0.0424 -205 682 0.00114 0 0 0 DriftChamberPhysical initStep - 1 0.204 -205 682 0 0.00114 0.368 0.368 DriftChamberPhysical eIoni + 0 0.00335 -28.4 94.6 0.00941 0 0 0 WorldPhysical initStep + 1 -0.625 -28 94.8 0.00684 0.00126 1.06 1.06 WorldPhysical eIoni + 2 -1.13 -27.8 94.5 0.0019 0.00494 1.27 2.33 WorldPhysical eIoni + 3 -1.11 -27.7 94.6 0 0.0019 0.15 2.48 WorldPhysical eIoni + +********************************************************************************************************* +* 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.625 -28 94.8 0.00131 0 0 0 WorldPhysical initStep + 1 -0.617 -27.9 94.8 0 0.00131 0.0842 0.0842 WorldPhysical 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.0384 -167 558 0.00103 0 0 0 DriftChamberPhysical initStep - 1 -0.0516 -167 558 0 0.00103 0.314 0.314 DriftChamberPhysical eIoni + 0 0 -22.3 74.2 0.00334 0 0 0 WorldPhysical initStep + 1 -0.167 -22.2 74.2 0 0.00334 0.379 0.379 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -1877,19 +1649,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 0 0 0 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.0152 104 104 DriftChamberPhysical CoupledTransportation - 2 0.0279 -75.9 253 1e+03 0.00294 160 264 DriftChamberPhysical hIoni - 3 0.175 -270 900 1e+03 0.0134 675 940 WorldPhysical CoupledTransportation - 4 0.186 -285 950 1e+03 0.0073 52.2 992 WorldPhysical G4FSMP_parallelGeom - 5 0.186 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + 1 0 -5.24 17.5 1e+03 0.003 18.2 18.2 WorldPhysical hIoni + 2 -0.00716 -30 100 1e+03 0.0095 86.2 104 DriftChamberPhysical CoupledTransportation + 3 -0.158 -270 900 1e+03 0.0176 835 940 WorldPhysical CoupledTransportation + 4 -0.174 -285 950 1e+03 0.00673 52.2 992 WorldPhysical G4FSMP_parallelGeom + 5 -0.174 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.0279 -75.9 253 0.00122 0 0 0 DriftChamberPhysical initStep - 1 -0.172 -75.7 253 0 0.00122 0.408 0.408 DriftChamberPhysical eIoni + 0 0 -5.24 17.5 0.00141 0 0 0 WorldPhysical initStep + 1 0.0304 -5.21 17.5 0 0.00141 0.0942 0.0942 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -1897,112 +1669,55 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -12.7 42.3 1e+03 0.00557 44.2 44.2 WorldPhysical hIoni - 2 -0.00241 -30 100 1e+03 0.0105 60.2 104 DriftChamberPhysical CoupledTransportation - 3 -1.25 -270 900 1e+03 0.0148 835 940 WorldPhysical CoupledTransportation - 4 -1.27 -273 910 1e+03 0.0026 10.4 950 WorldPhysical hIoni - 5 -1.3 -280 932 1e+03 0.00358 22.8 973 WorldPhysical hIoni - 6 -1.34 -285 950 1e+03 0.0029 19 992 WorldPhysical G4FSMP_parallelGeom - 7 -1.34 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 -1.3 -280 932 0.00251 0 0 0 WorldPhysical initStep - 1 -1.38 -280 932 0 0.00251 0.234 0.234 WorldPhysical 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 -1.27 -273 910 0.00193 0 0 0 WorldPhysical initStep - 1 -1.22 -273 910 0 0.00193 0.153 0.153 WorldPhysical 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.7 42.3 0.00138 0 0 0 WorldPhysical initStep - 1 0.0095 -12.7 42.3 0 0.00138 0.0915 0.0915 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -10.3 34.4 1e+03 0.00423 35.9 35.9 WorldPhysical hIoni - 2 0.0107 -30 100 1e+03 0.012 68.5 104 DriftChamberPhysical CoupledTransportation - 3 0.0597 -74.5 248 1e+03 0.00359 155 259 DriftChamberPhysical hIoni - 4 0.135 -160 534 1e+03 0.00537 298 558 DriftChamberPhysical hIoni - 5 0.17 -192 641 1e+03 0.00304 112 670 DriftChamberPhysical hIoni - 6 0.192 -211 703 1e+03 0.000851 64.3 734 DriftChamberPhysical hIoni - 7 0.257 -270 900 1e+03 0.00412 206 940 WorldPhysical CoupledTransportation - 8 0.257 -271 903 1e+03 0.000388 3.39 943 WorldPhysical hIoni - 9 0.258 -272 905 1e+03 8.64e-05 1.87 945 WorldPhysical hIoni - 10 0.268 -285 950 1e+03 0.0047 46.9 992 WorldPhysical G4FSMP_parallelGeom - 11 0.268 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 0.258 -272 905 0.00164 0 0 0 WorldPhysical initStep - 1 0.275 -272 905 0 0.00164 0.119 0.119 WorldPhysical 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 0.257 -271 903 0.00137 0 0 0 WorldPhysical initStep - 1 0.24 -271 903 0 0.00137 0.0901 0.0901 WorldPhysical eIoni + 1 0 -6.76 22.5 1e+03 0.00322 23.5 23.5 WorldPhysical hIoni + 2 0.000705 -30 100 1e+03 0.0112 80.9 104 DriftChamberPhysical CoupledTransportation + 3 0.117 -89.5 298 1e+03 0.00516 207 312 DriftChamberPhysical hIoni + 4 0.139 -101 337 1e+03 0.000558 39.9 351 DriftChamberPhysical hIoni + 5 0.448 -270 900 1e+03 0.018 588 940 WorldPhysical CoupledTransportation + 6 0.455 -274 912 1e+03 0.00248 12.9 952 WorldPhysical hIoni + 7 0.456 -274 914 1e+03 0.000128 2 954 WorldPhysical hIoni + 8 0.481 -285 950 1e+03 0.00371 37.3 992 WorldPhysical G4FSMP_parallelGeom + 9 0.481 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.192 -211 703 0.00154 0 0 0 DriftChamberPhysical initStep - 1 0.339 -211 703 0 0.00154 0.593 0.593 DriftChamberPhysical eIoni + 0 0.456 -274 914 0.00339 0 0 0 WorldPhysical initStep + 1 0.304 -274 914 0 0.00339 0.389 0.389 WorldPhysical 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.17 -192 641 0.00106 0 0 0 DriftChamberPhysical initStep - 1 -0.0221 -192 641 0 0.00106 0.327 0.327 DriftChamberPhysical eIoni + 0 0.455 -274 912 0.00365 0 0 0 WorldPhysical initStep + 1 0.343 -274 912 0 0.00365 0.442 0.442 WorldPhysical 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 0.135 -160 534 0.00247 0 0 0 DriftChamberPhysical initStep - 1 0.0114 -161 534 0.00225 0.000218 0.369 0.369 DriftChamberPhysical eIoni - 2 -0.419 -161 534 0 0.00225 1.1 1.47 DriftChamberPhysical eIoni + 0 0.139 -101 337 0.00103 0 0 0 DriftChamberPhysical initStep + 1 0.341 -101 337 0 0.00103 0.311 0.311 DriftChamberPhysical 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 0.0597 -74.5 248 0.00178 0 0 0 DriftChamberPhysical initStep - 1 0.592 -74.7 248 0 0.00178 0.752 0.752 DriftChamberPhysical eIoni + 0 0.117 -89.5 298 0.00152 0 0 0 DriftChamberPhysical initStep + 1 0.541 -89.5 298 0 0.00152 0.583 0.583 DriftChamberPhysical 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 -10.3 34.4 0.00138 0 0 0 WorldPhysical initStep - 1 0.00574 -10.4 34.4 0 0.00138 0.0919 0.0919 WorldPhysical eIoni + 0 0 -6.76 22.5 0.00131 0 0 0 WorldPhysical initStep + 1 0.00445 -6.8 22.5 0 0.00131 0.0848 0.0848 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -2010,56 +1725,37 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -30 100 1e+03 0.0122 104 104 DriftChamberPhysical CoupledTransportation - 2 -0.0667 -133 443 1e+03 0.00728 358 463 DriftChamberPhysical hIoni - 3 -0.205 -270 900 1e+03 0.00833 477 940 WorldPhysical CoupledTransportation - 4 -0.215 -285 950 1e+03 0.00695 52.2 992 WorldPhysical G4FSMP_parallelGeom - 5 -0.215 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + 1 0 -6.86 22.9 1e+03 0.00337 23.9 23.9 WorldPhysical hIoni + 2 -0.000419 -8.88 29.6 1e+03 0.00095 7.03 30.9 WorldPhysical hIoni + 3 -0.00268 -30 100 1e+03 0.00779 73.5 104 DriftChamberPhysical CoupledTransportation + 4 -0.0482 -186 620 1e+03 0.0114 543 647 DriftChamberPhysical hIoni + 5 -0.0955 -270 900 1e+03 0.00547 293 940 WorldPhysical CoupledTransportation + 6 -0.1 -285 950 1e+03 0.00685 52.2 992 WorldPhysical G4FSMP_parallelGeom + 7 -0.1 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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 -0.0482 -186 620 0.00114 0 0 0 DriftChamberPhysical initStep + 1 0.178 -186 620 0 0.00114 0.368 0.368 DriftChamberPhysical 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 -0.000419 -8.88 29.6 0.00137 0 0 0 WorldPhysical initStep + 1 0.0129 -8.92 29.6 0 0.00137 0.0901 0.0901 WorldPhysical 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.0667 -133 443 0.0329 0 0 0 DriftChamberPhysical initStep - 1 4.65 -143 442 0.0312 0.000672 10.9 10.9 DriftChamberPhysical eIoni - 2 19.2 -165 436 0.0249 0.00625 28.4 39.3 DriftChamberPhysical eIoni - 3 30.4 -179 434 0.0227 0.00226 19.3 58.6 DriftChamberPhysical eIoni - 4 41 -186 434 0.0191 0.00235 12.8 71.4 DriftChamberPhysical eIoni - 5 47.7 -196 435 0.0173 0.0018 12.4 83.8 DriftChamberPhysical eIoni - 6 51.8 -205 434 0.015 0.00232 10.6 94.4 DriftChamberPhysical eIoni - 7 53 -213 432 0.0117 0.00328 8.5 103 DriftChamberPhysical eIoni - 8 53.5 -218 430 0.0108 0.000954 5.95 109 DriftChamberPhysical eIoni - 9 52.3 -222 428 0.00957 0.00123 5.31 114 DriftChamberPhysical eIoni - 10 52.5 -226 426 0.00549 0.00113 4.07 118 DriftChamberPhysical eIoni - 11 50.6 -226 425 0.00444 0.00105 2.53 121 DriftChamberPhysical eIoni - 12 48.9 -226 425 0.00222 0.00222 2.12 123 DriftChamberPhysical eIoni - 13 48.1 -226 424 0 0.00222 1.08 124 DriftChamberPhysical eIoni - -********************************************************************************************************* -* 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 52.5 -226 426 0.00294 0 0 0 DriftChamberPhysical initStep - 1 52.7 -227 426 0.00116 0.00178 1.5 1.5 DriftChamberPhysical eIoni - 2 53 -227 426 0 0.00116 0.379 1.88 DriftChamberPhysical 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 41 -186 434 0.00117 0 0 0 DriftChamberPhysical initStep - 1 41.2 -186 434 0 0.00117 0.383 0.383 DriftChamberPhysical 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 4.65 -143 442 0.00104 0 0 0 DriftChamberPhysical initStep - 1 4.6 -143 443 0 0.00104 0.32 0.32 DriftChamberPhysical eIoni + 0 0 -6.86 22.9 0.00132 0 0 0 WorldPhysical initStep + 1 -0.0302 -6.84 22.9 0 0.00132 0.0859 0.0859 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -2067,74 +1763,134 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -11.6 19.3 1e+03 0.00293 22.5 22.5 WorldPhysical hIoni - 2 -0.000999 -19.5 32.5 1e+03 0.00124 15.4 37.9 WorldPhysical hIoni - 3 -0.00749 -38 63.4 1e+03 0.00531 36 73.9 WorldPhysical hIoni - 4 -0.0103 -46.7 77.8 1e+03 0.00426 16.8 90.7 WorldPhysical hIoni - 5 -0.0135 -60 100 1e+03 0.00577 25.9 117 DriftChamberPhysical CoupledTransportation - 6 -0.0153 -80.1 134 1e+03 0.000921 39.1 156 DriftChamberPhysical hIoni - 7 0.00351 -540 900 1e+03 0.015 894 1.05e+03 WorldPhysical CoupledTransportation - 8 0.0101 -570 950 1e+03 0.00923 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 9 0.0101 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 1 0 -30 100 1e+03 0.0187 104 104 DriftChamberPhysical CoupledTransportation + 2 0.136 -270 900 1e+03 0.0172 835 940 WorldPhysical CoupledTransportation + 3 0.146 -285 950 1e+03 0.00822 52.2 992 WorldPhysical G4FSMP_parallelGeom + 4 0.146 -285 950 0 1e+03 0 992 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 -30.1 50.2 1e+03 0.00811 58.6 58.6 WorldPhysical hIoni + 2 0.00864 -60 100 1e+03 0.00812 58.1 117 DriftChamberPhysical CoupledTransportation + 3 0.0554 -266 443 1e+03 0.00811 400 517 DriftChamberPhysical hIoni + 4 0.0907 -442 737 1e+03 0.00899 343 860 DriftChamberPhysical hIoni + 5 0.0919 -448 747 1e+03 0.000181 10.8 871 DriftChamberPhysical hIoni + 6 0.124 -540 900 1e+03 0.00495 179 1.05e+03 WorldPhysical CoupledTransportation + 7 0.137 -570 950 1e+03 0.0115 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 8 0.137 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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.0919 -448 747 0.00974 0 0 0 DriftChamberPhysical initStep + 1 -3.74 -450 746 0.00831 0.00143 4.65 4.65 DriftChamberPhysical eIoni + 2 -6.67 -452 745 0.00607 0.00223 3.84 8.49 DriftChamberPhysical eIoni + 3 -9.05 -453 744 0.00526 0.000812 2.78 11.3 DriftChamberPhysical eIoni + 4 -10.8 -454 744 0.00418 0.00108 2.44 13.7 DriftChamberPhysical eIoni + 5 -11.5 -455 743 0.00219 0.00199 2.02 15.7 DriftChamberPhysical eIoni + 6 -11.7 -455 742 0 0.00219 1.06 16.8 DriftChamberPhysical 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 0.0907 -442 737 0.0013 0 0 0 DriftChamberPhysical initStep + 1 0.34 -443 737 0 0.0013 0.454 0.454 DriftChamberPhysical 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 0.0554 -266 443 0.00127 0 0 0 DriftChamberPhysical initStep + 1 -0.26 -266 443 0 0.00127 0.436 0.436 DriftChamberPhysical 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 -30.1 50.2 0.00222 0 0 0 WorldPhysical initStep + 1 -0.0712 -30.2 50.2 0 0.00222 0.192 0.192 WorldPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 -45.5 75.8 1e+03 0.0127 88.4 88.4 WorldPhysical hIoni + 2 0.000704 -49.4 82.3 1e+03 0.000601 7.47 95.9 WorldPhysical hIoni + 3 0.00299 -59.3 98.9 1e+03 0.00285 19.4 115 WorldPhysical hIoni + 4 0.00297 -60 100 1e+03 0.000231 1.34 117 DriftChamberPhysical CoupledTransportation + 5 -0.0106 -321 535 1e+03 0.0114 508 624 DriftChamberPhysical hIoni + 6 -0.0126 -351 585 1e+03 0.000709 58.3 682 DriftChamberPhysical hIoni + 7 -0.00983 -479 798 1e+03 0.00442 248 930 DriftChamberPhysical hIoni + 8 -0.0125 -540 900 1e+03 0.00249 119 1.05e+03 WorldPhysical CoupledTransportation + 9 -0.0139 -570 950 1e+03 0.00742 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 10 -0.0139 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.0153 -80.1 134 0.00234 0 0 0 DriftChamberPhysical initStep - 1 -0.891 -80.2 134 0 0.00234 1.17 1.17 DriftChamberPhysical eIoni + 0 -0.00983 -479 798 0.02 0 0 0 DriftChamberPhysical initStep + 1 1.03 -490 793 0.0172 0.00287 13.4 13.4 DriftChamberPhysical eIoni + 2 2.25 -500 789 0.0144 0.00277 10.4 23.8 DriftChamberPhysical eIoni + 3 4.86 -506 787 0.0126 0.00181 7.96 31.8 DriftChamberPhysical eIoni + 4 9.64 -510 787 0.0105 0.00212 6.54 38.3 DriftChamberPhysical eIoni + 5 13.4 -513 786 0.00882 0.00164 5.09 43.4 DriftChamberPhysical eIoni + 6 14.1 -517 787 0.00807 0.000745 4.12 47.5 DriftChamberPhysical eIoni + 7 16.2 -520 787 0.00682 0.00125 3.72 51.2 DriftChamberPhysical eIoni + 8 17.1 -522 787 0.0041 0.00272 3.11 54.3 DriftChamberPhysical eIoni + 9 17.5 -524 787 0.00333 0.000777 1.99 56.3 DriftChamberPhysical eIoni + 10 17.9 -525 786 0.00146 0.00187 1.67 58 DriftChamberPhysical eIoni + 11 17.5 -525 786 0 0.00146 0.542 58.5 DriftChamberPhysical 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.0103 -46.7 77.8 0.0011 0 0 0 WorldPhysical initStep - 1 -0.0214 -46.7 77.8 0 0.0011 0.0655 0.0655 WorldPhysical eIoni + 0 -0.0126 -351 585 0.00462 0 0 0 DriftChamberPhysical initStep + 1 -1.43 -350 586 0.00337 0.00125 2.19 2.19 DriftChamberPhysical eIoni + 2 -2.47 -350 587 0.00101 0.00236 1.69 3.88 DriftChamberPhysical eIoni + 3 -2.51 -350 587 0 0.00101 0.303 4.19 DriftChamberPhysical 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 -0.00749 -38 63.4 0.0079 0 0 0 WorldPhysical initStep - 1 0.0978 -37.9 63.5 0.00444 0.000314 0.214 0.214 WorldPhysical eIoni - 2 0.308 -38 63.6 0.00262 0.00182 0.454 0.667 WorldPhysical eIoni - 3 0.284 -37.9 63.5 0 0.00262 0.251 0.918 WorldPhysical eIoni - -********************************************************************************************************* -* 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.0978 -37.9 63.5 0.00315 0 0 0 WorldPhysical initStep - 1 0.106 -37.9 63.5 0.00202 2.16e-05 0.0229 0.0229 WorldPhysical eIoni - 2 0.079 -37.8 63.5 0 0.00202 0.165 0.188 WorldPhysical eIoni - -********************************************************************************************************* -* 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.106 -37.9 63.5 0.0011 0 0 0 WorldPhysical initStep - 1 0.127 -37.9 63.5 0 0.0011 0.0657 0.0657 WorldPhysical eIoni + 0 -0.0106 -321 535 0.00464 0 0 0 DriftChamberPhysical initStep + 1 1.15 -323 535 0.00289 0.00175 2.2 2.2 DriftChamberPhysical eIoni + 2 1.63 -324 534 0.00142 0.00147 1.48 3.67 DriftChamberPhysical eIoni + 3 1.51 -323 534 0 0.00142 0.519 4.19 DriftChamberPhysical 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 -0.000999 -19.5 32.5 0.00132 0 0 0 WorldPhysical initStep - 1 0.00607 -19.5 32.4 0 0.00132 0.0854 0.0854 WorldPhysical eIoni + 0 0.00299 -59.3 98.9 0.00678 0 0 0 WorldPhysical initStep + 1 0.283 -58.9 98.9 0.00388 0.0029 0.655 0.655 WorldPhysical msc + 2 0.423 -58.7 98.9 0 0.00388 0.49 1.15 WorldPhysical 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 -11.6 19.3 0.00131 0 0 0 WorldPhysical initStep - 1 0.0327 -11.6 19.3 0 0.00131 0.0848 0.0848 WorldPhysical eIoni + 0 0 -45.5 75.8 0.00168 0 0 0 WorldPhysical initStep + 1 0.0487 -45.5 75.9 0 0.00168 0.123 0.123 WorldPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -2142,178 +1898,81 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -17.1 28.4 1e+03 0.00545 33.2 33.2 WorldPhysical hIoni - 2 -0.00963 -35.7 59.5 1e+03 0.00506 36.2 69.4 WorldPhysical hIoni - 3 -0.0154 -60 100 1e+03 0.00602 47.2 117 DriftChamberPhysical CoupledTransportation - 4 -0.041 -540 900 1e+03 0.0184 933 1.05e+03 WorldPhysical CoupledTransportation - 5 -0.0401 -563 937 1e+03 0.00589 43.5 1.09e+03 WorldPhysical hIoni - 6 -0.0403 -570 950 1e+03 0.00392 14.9 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 7 -0.0403 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 -0.0401 -563 937 0.00252 0 0 0 WorldPhysical initStep - 1 -0.143 -563 937 0 0.00252 0.235 0.235 WorldPhysical 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 -0.00963 -35.7 59.5 0.00453 0 0 0 WorldPhysical initStep - 1 -0.181 -35.6 59.6 0.0031 0.000332 0.254 0.254 WorldPhysical eIoni - 2 -0.24 -35.6 59.5 0 0.0031 0.333 0.586 WorldPhysical eIoni - -********************************************************************************************************* -* 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 -0.181 -35.6 59.6 0.0011 0 0 0 WorldPhysical initStep - 1 -0.205 -35.7 59.6 0 0.0011 0.0653 0.0653 WorldPhysical 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 -17.1 28.4 0.00163 0 0 0 WorldPhysical initStep - 1 0.0348 -17 28.5 0 0.00163 0.118 0.118 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -8.71 14.5 1e+03 0.00124 16.9 16.9 WorldPhysical hIoni - 2 -0.000147 -10.2 16.9 1e+03 0.000361 2.83 19.8 WorldPhysical hIoni - 3 -0.00571 -60 100 1e+03 0.015 96.9 117 DriftChamberPhysical CoupledTransportation - 4 -0.0112 -325 542 1e+03 0.00979 515 632 DriftChamberPhysical hIoni - 5 -0.0117 -364 607 1e+03 0.000813 76.3 708 DriftChamberPhysical hIoni - 6 -0.0337 -540 900 1e+03 0.00681 342 1.05e+03 WorldPhysical CoupledTransportation - 7 -0.0366 -570 950 1e+03 0.00735 58.3 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 8 -0.0366 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 1 0 -60 100 1e+03 0.0178 117 117 DriftChamberPhysical CoupledTransportation + 2 -0.00751 -163 272 1e+03 0.00557 201 317 DriftChamberPhysical hIoni + 3 -0.0476 -371 619 1e+03 0.00653 404 722 DriftChamberPhysical hIoni + 4 -0.0387 -473 788 1e+03 0.00481 198 919 DriftChamberPhysical hIoni + 5 -0.0352 -540 900 1e+03 0.00382 130 1.05e+03 WorldPhysical CoupledTransportation + 6 -0.0349 -555 924 1e+03 0.00447 28.4 1.08e+03 WorldPhysical hIoni + 7 -0.032 -570 950 1e+03 0.00406 30 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 8 -0.032 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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.0117 -364 607 0.00143 0 0 0 DriftChamberPhysical initStep - 1 0.356 -364 607 0 0.00143 0.524 0.524 DriftChamberPhysical eIoni + 0 -0.0349 -555 924 0.00303 0 0 0 WorldPhysical initStep + 1 0.0416 -555 924 0.00129 0.00056 0.0932 0.0932 WorldPhysical eIoni + 2 0.0745 -555 924 0 0.00129 0.083 0.176 WorldPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0416 -555 924 0.00117 0 0 0 WorldPhysical initStep + 1 0.0507 -555 924 0 0.00117 0.0719 0.0719 WorldPhysical 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 -0.0112 -325 542 0.00102 0 0 0 DriftChamberPhysical initStep - 1 -0.0896 -325 542 0 0.00102 0.308 0.308 DriftChamberPhysical eIoni + 0 -0.0387 -473 788 0.00216 0 0 0 DriftChamberPhysical initStep + 1 0.598 -473 788 0 0.00216 1.03 1.03 DriftChamberPhysical 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 -0.000147 -10.2 16.9 0.00124 0 0 0 WorldPhysical initStep - 1 0.0242 -10.1 17 0 0.00124 0.0782 0.0782 WorldPhysical 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 -8.71 14.5 0.00173 0 0 0 WorldPhysical initStep - 1 0.0305 -8.67 14.5 0 0.00173 0.129 0.129 WorldPhysical eIoni - -********************************************************************************************************* -* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -9.14 15.2 1e+03 0.00279 17.8 17.8 WorldPhysical hIoni - 2 -0.00533 -60 100 1e+03 0.0121 98.9 117 DriftChamberPhysical CoupledTransportation - 3 -0.0345 -165 275 1e+03 0.00427 204 321 DriftChamberPhysical hIoni - 4 -0.0419 -237 395 1e+03 0.00176 139 460 DriftChamberPhysical hIoni - 5 -0.0298 -353 588 1e+03 0.00393 226 686 DriftChamberPhysical hIoni - 6 0.0121 -540 900 1e+03 0.00831 364 1.05e+03 WorldPhysical CoupledTransportation - 7 0.017 -563 937 1e+03 0.00503 43.3 1.09e+03 WorldPhysical hIoni - 8 0.0174 -570 950 1e+03 0.00213 15.1 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 9 0.0174 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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.017 -563 937 0.00187 0 0 0 WorldPhysical initStep - 1 0.0685 -563 937 0 0.00187 0.145 0.145 WorldPhysical 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.0298 -353 588 0.00298 0 0 0 DriftChamberPhysical initStep - 1 -1.16 -353 588 0 0.00298 1.52 1.52 DriftChamberPhysical 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 -0.0419 -237 395 0.00733 0 0 0 DriftChamberPhysical initStep - 1 -2.49 -235 396 0.00634 0.000988 3.35 3.35 DriftChamberPhysical eIoni - 2 -4.8 -234 396 0.00534 0.001 2.89 6.24 DriftChamberPhysical eIoni - 3 -6.88 -234 397 0.004 0.00134 2.47 8.71 DriftChamberPhysical eIoni - 4 -8.55 -234 397 0.00261 0.00139 1.95 10.7 DriftChamberPhysical eIoni - 5 -8.94 -233 397 0 0.00261 1.33 12 DriftChamberPhysical 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 -0.0345 -165 275 0.0226 0 0 0 DriftChamberPhysical initStep - 1 -13 -159 282 0.0197 0.00287 16.3 16.3 DriftChamberPhysical eIoni - 2 -21.6 -167 277 0.0173 0.00237 13 29.4 DriftChamberPhysical eIoni - 3 -23.1 -169 276 0.0149 0.00058 2.94 32.3 DriftChamberPhysical eIoni - 4 -27 -174 270 0.0114 0.0035 8.39 40.7 DriftChamberPhysical eIoni - 5 -26.9 -177 266 0.0106 0.000806 5.71 46.4 DriftChamberPhysical eIoni - 6 -26.2 -179 262 0.00861 0.00198 5.17 51.6 DriftChamberPhysical eIoni - 7 -25.4 -181 259 0.00684 0.00177 4.01 55.6 DriftChamberPhysical eIoni - 8 -23.9 -182 256 0.00521 0.00163 3.12 58.7 DriftChamberPhysical eIoni - 9 -22.7 -183 255 0.00225 0.00163 2.2 60.9 DriftChamberPhysical eIoni - 10 -22.5 -183 254 0 0.00225 1.1 62 DriftChamberPhysical 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 -22.7 -183 255 0.00134 0 0 0 DriftChamberPhysical initStep - 1 -22.4 -183 255 0 0.00134 0.471 0.471 DriftChamberPhysical eIoni + 0 -0.0476 -371 619 0.0462 0 0 0 DriftChamberPhysical initStep + 1 -2.83 -367 623 0.0454 0.000811 6.9 6.9 DriftChamberPhysical eIoni + 2 -27.5 -324 646 0.0399 0.00546 55 61.9 DriftChamberPhysical eIoni + 3 -45.9 -301 649 0.0314 0.00536 30.1 92 DriftChamberPhysical eIoni + 4 -59.9 -279 659 0.0278 0.00352 28.7 121 DriftChamberPhysical eIoni + 5 -75.4 -264 665 0.0245 0.00336 23.3 144 DriftChamberPhysical eIoni + 6 -87 -253 672 0.0213 0.00323 18.7 163 DriftChamberPhysical eIoni + 7 -88.7 -240 666 0.018 0.00325 14.8 177 DriftChamberPhysical eIoni + 8 -90.4 -231 661 0.0165 0.00155 11.3 189 DriftChamberPhysical eIoni + 9 -91.5 -224 655 0.0153 0.00116 9.78 199 DriftChamberPhysical eIoni + 10 -91.8 -219 648 0.0135 0.00175 8.74 207 DriftChamberPhysical eIoni + 11 -89.9 -217 641 0.0108 0.00278 7.28 215 DriftChamberPhysical eIoni + 12 -90.3 -215 637 0.00982 0.000943 5.29 220 DriftChamberPhysical eIoni + 13 -91.1 -213 633 0.00845 0.00138 4.7 225 DriftChamberPhysical eIoni + 14 -90.6 -212 629 0.00707 0.00138 3.92 228 DriftChamberPhysical eIoni + 15 -90.6 -212 626 0.00615 0.000916 3.22 232 DriftChamberPhysical eIoni + 16 -88.4 -214 627 0.00517 0.000982 2.81 234 DriftChamberPhysical eIoni + 17 -86.3 -214 627 0.00445 0.000717 2.4 237 DriftChamberPhysical eIoni + 18 -84.9 -214 628 0.00317 0.00128 2.12 239 DriftChamberPhysical eIoni + 19 -84.2 -215 629 0 0.00317 1.61 241 DriftChamberPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -23.1 -169 276 0.00187 0 0 0 DriftChamberPhysical initStep - 1 -22.9 -169 276 0 0.00187 0.813 0.813 DriftChamberPhysical eIoni + 0 -45.9 -301 649 0.00321 0 0 0 DriftChamberPhysical initStep + 1 -46.4 -301 648 0 0.00321 1.62 1.62 DriftChamberPhysical 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 -9.14 15.2 0.00224 0 0 0 WorldPhysical initStep - 1 0.0849 -9.14 15.2 0 0.00224 0.194 0.194 WorldPhysical eIoni + 0 -0.00751 -163 272 0.00111 0 0 0 DriftChamberPhysical initStep + 1 0.187 -163 272 0 0.00111 0.354 0.354 DriftChamberPhysical eIoni ********************************************************************************************************* * G4Track Information: Particle = pi-, Track ID = 1, Parent ID = 0 @@ -2321,39 +1980,56 @@ 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 1e+03 0 0 0 WorldPhysical initStep - 1 0 -22.7 37.8 1e+03 0.00864 44.1 44.1 WorldPhysical hIoni - 2 -0.000939 -28.7 47.8 1e+03 0.000963 11.7 55.8 WorldPhysical hIoni - 3 -0.0101 -60 100 1e+03 0.00892 60.8 117 DriftChamberPhysical CoupledTransportation - 4 -0.161 -540 900 1e+03 0.0192 933 1.05e+03 WorldPhysical CoupledTransportation - 5 -0.162 -551 918 1e+03 0.00285 20.8 1.07e+03 WorldPhysical hIoni - 6 -0.165 -570 950 1e+03 0.00533 37.5 1.11e+03 WorldPhysical G4FSMP_parallelGeom - 7 -0.165 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom - -********************************************************************************************************* -* 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 -0.162 -551 918 0.00101 0 0 0 WorldPhysical initStep - 1 -0.142 -551 918 0 0.00101 0.0583 0.0583 WorldPhysical 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 -0.000939 -28.7 47.8 0.0206 0 0 0 WorldPhysical initStep - 1 1.48 -30.9 47 0.015 0.00559 3.52 3.52 WorldPhysical eIoni - 2 2.82 -30.7 45.7 0.0113 0.00365 2.58 6.1 WorldPhysical eIoni - 3 3.19 -30.7 44.5 0.00552 0.0058 2.03 8.13 WorldPhysical eIoni - 4 3.51 -30.5 44.4 0 0.00552 0.914 9.04 WorldPhysical eIoni + 1 0 -60 100 1e+03 0.0175 117 117 DriftChamberPhysical CoupledTransportation + 2 -0.0943 -540 900 1e+03 0.02 933 1.05e+03 WorldPhysical CoupledTransportation + 3 -0.0944 -546 910 1e+03 0.00228 11.3 1.06e+03 WorldPhysical hIoni + 4 -0.091 -570 950 1e+03 0.00613 47 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 5 -0.091 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom ********************************************************************************************************* * 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 -22.7 37.8 0.00125 0 0 0 WorldPhysical initStep - 1 0.0226 -22.7 37.8 0 0.00125 0.0791 0.0791 WorldPhysical eIoni + 0 -0.0944 -546 910 0.00347 0 0 0 WorldPhysical initStep + 1 -0.0596 -546 910 0 0.00347 0.404 0.404 WorldPhysical eIoni + +********************************************************************************************************* +* G4Track Information: Particle = pi-, 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 1e+03 0 0 0 WorldPhysical initStep + 1 0 -60 100 1e+03 0.0182 117 117 DriftChamberPhysical CoupledTransportation + 2 0.044 -221 369 1e+03 0.00612 314 430 DriftChamberPhysical hIoni + 3 0.0914 -364 607 1e+03 0.00744 278 708 DriftChamberPhysical hIoni + 4 0.154 -540 900 1e+03 0.00716 341 1.05e+03 WorldPhysical CoupledTransportation + 5 0.166 -569 948 1e+03 0.00532 56.2 1.11e+03 WorldPhysical hIoni + 6 0.167 -570 950 1e+03 9.37e-05 2.07 1.11e+03 WorldPhysical G4FSMP_parallelGeom + 7 0.167 -570 950 0 1e+03 0 1.11e+03 WorldPhysical G4FSMP_parallelGeom + +********************************************************************************************************* +* 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 0.166 -569 948 0.00111 0 0 0 WorldPhysical initStep + 1 0.145 -569 948 0 0.00111 0.0659 0.0659 WorldPhysical 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 0.0914 -364 607 0.00135 0 0 0 DriftChamberPhysical initStep + 1 0.013 -364 608 0 0.00135 0.479 0.479 DriftChamberPhysical 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.044 -221 369 0.00102 0 0 0 DriftChamberPhysical initStep + 1 -0.16 -221 369 0 0.00102 0.31 0.31 DriftChamberPhysical eIoni Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/parameterisations/Par02/History b/examples/extended/parameterisations/Par02/History index 0e1ba35f72..042bb3d582 100644 --- a/examples/extended/parameterisations/Par02/History +++ b/examples/extended/parameterisations/Par02/History @@ -15,6 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +04-Mar-2016 A. Ribon (expar02-V10-02-00) +- Added magnetic field, and corrected the way to create a G4FieldTrack + object in Par02FastSimModelTracker. + 14-Oct-2015 J. Apostolakis (expar02-V10-01-07) - Simplified code to set Primary Particle Information (Par02FastSimModelHCal) diff --git a/examples/extended/parameterisations/Par02/examplePar02.in b/examples/extended/parameterisations/Par02/examplePar02.in index c97c0a6c98..f65d06748c 100644 --- a/examples/extended/parameterisations/Par02/examplePar02.in +++ b/examples/extended/parameterisations/Par02/examplePar02.in @@ -2,6 +2,9 @@ # #/tracking/verbose 1 # +/globalField/setValue 0 0 1 tesla +/globalField/verbose 1 +# ###/gun/particle mu- ###/gun/energy 100 GeV ###/run/beamOn 1000 diff --git a/examples/extended/parameterisations/Par02/examplePar02.out b/examples/extended/parameterisations/Par02/examplePar02.out index 93b58ef329..8ab000368f 100644 --- a/examples/extended/parameterisations/Par02/examplePar02.out +++ b/examples/extended/parameterisations/Par02/examplePar02.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -22,6 +22,43 @@ G4GDML: Reading setup... G4GDML: Reading 'Par02FullDetector.gdml' done! Stripping off GDML names of materials, solids and volumes ... Geometry loaded from file .......Par02FullDetector.gdml + +tracker !!! + +hcal !!! + +hcal !!! + +hcal !!! + +hcal !!! + +hcal !!! + +ecal !!! + +ecal !!! + +ecal !!! + +ecal !!! + +ecal !!! +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. +Warning : Region does not have specific production cuts, +even though it appears in the current tracking world. +Default cuts are used for this region. Warning : Region does not have specific production cuts, even though it appears in the current tracking world. Default cuts are used for this region. @@ -43,21 +80,6 @@ Default cuts are used for this region. Warning : Region does not have specific production cuts, even though it appears in the current tracking world. Default cuts are used for this region. -Warning : Region does not have specific production cuts, -even though it appears in the current tracking world. -Default cuts are used for this region. -Warning : Region does not have specific production cuts, -even though it appears in the current tracking world. -Default cuts are used for this region. -Warning : Region does not have specific production cuts, -even though it appears in the current tracking world. -Default cuts are used for this region. -Warning : Region does not have specific production cuts, -even though it appears in the current tracking world. -Default cuts are used for this region. -Warning : Region does not have specific production cuts, -even though it appears in the current tracking world. -Default cuts are used for this region. Instantiating Visualization Manager....... Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -86,16 +108,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -106,7 +130,1008 @@ Some /vis commands (optionally) take a string to specify colour. Available colours: black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow +Magnetic field is active, fieldValue = (0 0 1 T ). ... open Root analysis file : DefaultOutput.root - done + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ + ________Tracker model triggered _________ ... write Root file : DefaultOutput.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/parameterisations/Par02/include/Par02DetectorConstruction.hh b/examples/extended/parameterisations/Par02/include/Par02DetectorConstruction.hh index 76ef46ffa9..b0f78bf526 100644 --- a/examples/extended/parameterisations/Par02/include/Par02DetectorConstruction.hh +++ b/examples/extended/parameterisations/Par02/include/Par02DetectorConstruction.hh @@ -38,6 +38,8 @@ #include "G4LogicalVolume.hh" #include "G4VUserDetectorConstruction.hh" #include "globals.hh" +#include "tls.hh" +#include "G4GlobalMagFieldMessenger.hh" /// Construction of detector geometry. /// @@ -72,6 +74,9 @@ class Par02DetectorConstruction : public G4VUserDetectorConstruction { /// A vector of the muon detector regions std::vector< G4Region* > fMuonList; + + /// Messenger of the magnetic field + G4GlobalMagFieldMessenger* fMagFieldMessenger; }; #endif diff --git a/examples/extended/parameterisations/Par02/src/Par02DetectorConstruction.cc b/examples/extended/parameterisations/Par02/src/Par02DetectorConstruction.cc index 718d612358..aa4a8f960f 100644 --- a/examples/extended/parameterisations/Par02/src/Par02DetectorConstruction.cc +++ b/examples/extended/parameterisations/Par02/src/Par02DetectorConstruction.cc @@ -34,6 +34,8 @@ #include "G4RegionStore.hh" #include "G4GDMLParser.hh" #include "G4AutoDelete.hh" +#include "G4GlobalMagFieldMessenger.hh" +#include "G4AutoDelete.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -63,12 +65,15 @@ G4VPhysicalVolume* Par02DetectorConstruction::Construct() { if ( ( myvol->GetName() ).find( "Tracker" ) != std::string::npos ) { fTrackerList.push_back( new G4Region( myvol->GetName() ) ); fTrackerList.back()->AddRootLogicalVolume( myvol ); + G4cout << G4endl << "tracker !!!" << G4endl; } else if ( ( myvol->GetName() ).find( "HCal" ) != std::string::npos ) { fHCalList.push_back( new G4Region( myvol->GetName() ) ); fHCalList.back()->AddRootLogicalVolume( myvol ); + G4cout << G4endl << "hcal !!!" << G4endl; } else if ( ( myvol->GetName() ).find( "ECal" ) != std::string::npos ) { fECalList.push_back( new G4Region( myvol->GetName() ) ); fECalList.back()->AddRootLogicalVolume( myvol ); + G4cout << G4endl << "ecal !!!" << G4endl; } else if ( ( myvol->GetName() ).find( "Muon" ) != std::string::npos ) { fMuonList.push_back( new G4Region( myvol->GetName() ) ); fMuonList.back()->AddRootLogicalVolume( myvol ); @@ -117,7 +122,7 @@ void Par02DetectorConstruction::ConstructSDandField() { // to all the corresponding Geant4 regions Par02FastSimModelTracker* fastSimModelTracker = new Par02FastSimModelTracker( "fastSimModelTracker", fTrackerList[ iterTracker ], - Par02DetectorParametrisation::eCMS ); + Par02DetectorParametrisation::eCMS ); // Register the fast simulation model for deleting G4AutoDelete::Register(fastSimModelTracker); @@ -127,7 +132,7 @@ void Par02DetectorConstruction::ConstructSDandField() { // to all the corresponding Geant4 regions Par02FastSimModelEMCal* fastSimModelEMCal = new Par02FastSimModelEMCal( "fastSimModelEMCal", fECalList[ iterECal ], - Par02DetectorParametrisation::eCMS ); + Par02DetectorParametrisation::eCMS ); // Register the fast simulation model for deleting G4AutoDelete::Register(fastSimModelEMCal); @@ -137,15 +142,20 @@ void Par02DetectorConstruction::ConstructSDandField() { // to all the corresponding Geant4 regions Par02FastSimModelHCal* fastSimModelHCal = new Par02FastSimModelHCal( "fastSimModelHCal", fHCalList[ iterHCal ], - Par02DetectorParametrisation::eCMS ); + Par02DetectorParametrisation::eCMS ); // Register the fast simulation model for deleting - G4AutoDelete::Register(fastSimModelHCal); + G4AutoDelete::Register( fastSimModelHCal ); } // Currently we don't have a fast muon simulation model to be bound // to all the corresponding Geant4 regions. // But it could be added in future, in a similar way as done above for // the tracker subdetector and the electromagnetic and hadronic calorimeters. + + // Add global magnetic field + G4ThreeVector fieldValue = G4ThreeVector(); + fMagFieldMessenger = new G4GlobalMagFieldMessenger( fieldValue ); + fMagFieldMessenger->SetVerboseLevel(1); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parameterisations/Par02/src/Par02FastSimModelTracker.cc b/examples/extended/parameterisations/Par02/src/Par02FastSimModelTracker.cc index f310fd3481..099d599b4e 100644 --- a/examples/extended/parameterisations/Par02/src/Par02FastSimModelTracker.cc +++ b/examples/extended/parameterisations/Par02/src/Par02FastSimModelTracker.cc @@ -91,22 +91,16 @@ G4bool Par02FastSimModelTracker::ModelTrigger( const G4FastTrack& /*aFastTrack*/ void Par02FastSimModelTracker::DoIt( const G4FastTrack& aFastTrack, G4FastStep& aFastStep ) { - //G4cout << " ________Tracker model triggered _________" << G4endl; + + G4cout << " ________Tracker model triggered _________" << G4endl; // Calculate the final position (at the outer boundary of the tracking detector) // of the particle with the momentum at the entrance of the tracking detector. - G4ThreeVector spin = aFastTrack.GetPrimaryTrack()->GetPolarization() ; - G4FieldTrack theFieldTrack = - G4FieldTrack( aFastTrack.GetPrimaryTrack()->GetPosition(), - aFastTrack.GetPrimaryTrack()->GetMomentumDirection(), - 0.0, - aFastTrack.GetPrimaryTrack()->GetKineticEnergy(), - aFastTrack.GetPrimaryTrack()->GetDynamicParticle()-> - GetDefinition()->GetPDGMass(), - 0.0, // UNUSED: aFastTrack.GetPrimaryTrack().GetVelocity(), - aFastTrack.GetPrimaryTrack()->GetGlobalTime(), // Lab. - aFastTrack.GetPrimaryTrack()->GetProperTime(), // Part. - &spin ); + + G4Track track = * aFastTrack.GetPrimaryTrack(); + G4FieldTrack aFieldTrack( '0' ); + G4FieldTrackUpdator::Update( &aFieldTrack, &track ); + G4double retSafety = -1.0; ELimited retStepLimited; G4FieldTrack endTrack( 'a' ); @@ -114,14 +108,15 @@ void Par02FastSimModelTracker::DoIt( const G4FastTrack& aFastTrack, // to particle momentum. G4PathFinder* fPathFinder = G4PathFinder::GetInstance(); /*G4double lengthAlongCurve = */ - fPathFinder->ComputeStep( theFieldTrack, + fPathFinder->ComputeStep( aFieldTrack, currentMinimumStep, 0, aFastTrack.GetPrimaryTrack()->GetCurrentStepNumber(), retSafety, retStepLimited, endTrack, - aFastTrack.GetPrimaryTrack()->GetVolume() ) ; + aFastTrack.GetPrimaryTrack()->GetVolume() ); + // Place the particle at the tracking detector exit // (at the place it would reach without the change of its momentum). aFastStep.ProposePrimaryTrackFinalPosition( endTrack.GetPosition() ); diff --git a/examples/extended/parameterisations/gflash/test.out b/examples/extended/parameterisations/gflash/test.out index e5a69896a2..334a2cd686 100644 --- a/examples/extended/parameterisations/gflash/test.out +++ b/examples/extended/parameterisations/gflash/test.out @@ -9,7 +9,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -49,16 +49,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -109,6 +111,14 @@ Creating shower parameterization models - GFlashHomoShowerParameterisation::Constructor - /********************************************/ end shower parameterization. +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 FastSimulationManagerProcess constructed Warning : Region does not have specific production cuts, @@ -230,7 +240,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -244,7 +254,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -353,7 +363,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -386,7 +396,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -512,6 +522,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -788,9 +803,9 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 ****************************************** -Internal Real Elapsed Time is: 0.03 +Internal Real Elapsed Time is: 0.02 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.02 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 0 ----- 11918 hits are stored in ExGflashHitsCollection @@ -802,9 +817,9 @@ Internal GetUserElapsed Time: 0.02 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0.01 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.02 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 1 ----- 11927 hits are stored in ExGflashHitsCollection @@ -816,9 +831,9 @@ Internal GetUserElapsed Time: 0.02 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0.01 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.02 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 2 ----- 11980 hits are stored in ExGflashHitsCollection @@ -830,9 +845,9 @@ Internal GetUserElapsed Time: 0.02 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.02 +Internal GetUserElapsed Time: 0 ****************************************** ------ ExGflashEventAction::End of event nr. 3 ----- 11976 hits are stored in ExGflashHitsCollection @@ -844,9 +859,9 @@ Internal GetUserElapsed Time: 0.02 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0.01 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.01 +Internal GetUserElapsed Time: 0 ****************************************** ------ ExGflashEventAction::End of event nr. 4 ----- 11925 hits are stored in ExGflashHitsCollection @@ -858,7 +873,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0.01 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -886,9 +901,9 @@ Internal GetUserElapsed Time: 0.02 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.02 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 7 ----- 11976 hits are stored in ExGflashHitsCollection @@ -900,7 +915,7 @@ Internal GetUserElapsed Time: 0.02 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -914,9 +929,9 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.02 +Internal Real Elapsed Time is: 0.01 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.01 +Internal GetUserElapsed Time: 0 ****************************************** ------ ExGflashEventAction::End of event nr. 9 ----- 11961 hits are stored in ExGflashHitsCollection @@ -926,10 +941,10 @@ Internal GetUserElapsed Time: 0.01 number of event = 10 Graphics systems deleted. Visualization Manager deleting... -Internal Real Elapsed Time /event is: 0.0233333 +Internal Real Elapsed Time /event is: 0.01 ****************************************** -Total Real Elapsed Time is: 1.64 +Total Real Elapsed Time is: 1.07 Total System Elapsed Time: 0.03 -Total GetUserElapsed Time: 1.6 +Total GetUserElapsed Time: 1.02 ****************************************** diff --git a/examples/extended/persistency/P03/batch.out b/examples/extended/persistency/P03/batch.out index 1891c6ae37..c1dc707bff 100644 --- a/examples/extended/persistency/P03/batch.out +++ b/examples/extended/persistency/P03/batch.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none diff --git a/examples/extended/persistency/gdml/G01/CMakeLists.txt b/examples/extended/persistency/gdml/G01/CMakeLists.txt index bbed3d7cf6..218110abda 100644 --- a/examples/extended/persistency/gdml/G01/CMakeLists.txt +++ b/examples/extended/persistency/gdml/G01/CMakeLists.txt @@ -40,7 +40,7 @@ target_link_libraries(load_gdml ${Geant4_LIBRARIES} ) # relies on these scripts being in the current working directory. # set(G01_SCRIPTS - assembly.gdml auxiliary.gdml axes.gdml divisionvol.gdml entity.gdml g01.in g01.out loop.gdml matricesandloops.gdml opticalsurfaces.gdml parameterized.gdml pTube.gdml replicated.gdml scale.gdml solids.gdml tess.gdml vis.mac + assembly.gdml auxiliary.gdml axes.gdml divisionvol.gdml entity.gdml g01.in g01.out loop.gdml materials.xml mat_nist.gdml matricesandloops.gdml multiUnion.gdml opticalsurfaces.gdml parameterized.gdml pTube.gdml replicated.gdml scale.gdml scaledTube.gdml solids.gdml tess.gdml vis.mac ) foreach(_script ${G01_SCRIPTS}) diff --git a/examples/extended/persistency/gdml/G01/History b/examples/extended/persistency/gdml/G01/History index 5f605cebb9..2be40a7338 100644 --- a/examples/extended/persistency/gdml/G01/History +++ b/examples/extended/persistency/gdml/G01/History @@ -1,4 +1,4 @@ -$Id: History 89264 2015-03-30 08:18:11Z gcosmo $ +$Id: History 96272 2016-04-01 12:44:19Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +March 31st, 2016 Gabriele Cosmo G01-V10-02-01 +- Added missing gdml files to CMake installation script. + +March 30th, 2016 Gabriele Cosmo G01-V10-02-00 +- Added test case for scaled solids: scaledTube.gdml. + March 30th, 2014 Gabriele Cosmo G01-V10-01-01 - Activate flag in parser for enabling export of geometrical regions. diff --git a/examples/extended/persistency/gdml/G01/g01.out b/examples/extended/persistency/gdml/G01/g01.out index 6ebdac6f57..9f4aaa3f71 100644 --- a/examples/extended/persistency/gdml/G01/g01.out +++ b/examples/extended/persistency/gdml/G01/g01.out @@ -1,13 +1,13 @@ Usage: load_gdml -G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G01/solids.gdml'... +G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/persistency/gdml/G01/solids.gdml'... G4GDML: Reading definitions... G4GDML: Reading materials... G4GDML: Reading solids... G4GDML: Reading structure... G4GDML: Reading setup... -G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G01/solids.gdml' done! +G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/persistency/gdml/G01/solids.gdml' done! Stripping off GDML names of materials, solids and volumes ... ############################################ @@ -15,7 +15,7 @@ Stripping off GDML names of materials, solids and volumes ... ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -23,6 +23,14 @@ Stripping off GDML names of materials, solids and volumes ... <<< Geant4 Physics List simulation engine: FTFP_BERT 2.0 +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 @@ -156,7 +164,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -170,7 +178,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -279,7 +287,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -312,7 +320,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -438,6 +446,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1454,7 +1467,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.01s Real=0s Sys=0.01s + User=0.01s Real=0.01s Sys=0s /tracking/verbose 0 /gun/direction 0.3 0.2 1 /run/beamOn 20 @@ -1494,7 +1507,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20 - User=0s Real=0.01s Sys=0s + User=0s Real=0s Sys=0s /gun/direction 0.3 -0.2 1 /run/beamOn 20 @@ -1533,7 +1546,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20 - User=0.01s Real=0s Sys=0s + User=0s Real=0.01s Sys=0s /gun/direction -0.3 0.2 0.6 /run/beamOn 20 @@ -1572,7 +1585,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20 - User=0s Real=0s Sys=0s + User=0.01s Real=0s Sys=0s G4 kernel has come to Quit state. UserDetectorConstruction deleted. UserPhysicsList deleted. diff --git a/examples/extended/persistency/gdml/G01/scaledTube.gdml b/examples/extended/persistency/gdml/G01/scaledTube.gdml new file mode 100644 index 0000000000..c3553406f0 --- /dev/null +++ b/examples/extended/persistency/gdml/G01/scaledTube.gdml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/persistency/gdml/G02/src/G02DetectorConstruction.cc b/examples/extended/persistency/gdml/G02/src/G02DetectorConstruction.cc index 2ddf3d3c74..f8d5583b30 100644 --- a/examples/extended/persistency/gdml/G02/src/G02DetectorConstruction.cc +++ b/examples/extended/persistency/gdml/G02/src/G02DetectorConstruction.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the G02DetectorConstruction class // // -// $Id: G02DetectorConstruction.cc 68025 2013-03-13 13:43:46Z gcosmo $ +// $Id: G02DetectorConstruction.cc 97979 2016-06-30 09:36:20Z gcosmo $ // // Class G02DetectorConstruction implementation // diff --git a/examples/extended/persistency/gdml/G04/g04.out b/examples/extended/persistency/gdml/G04/g04.out index d193605f6c..e672e45348 100644 --- a/examples/extended/persistency/gdml/G04/g04.out +++ b/examples/extended/persistency/gdml/G04/g04.out @@ -1,13 +1,13 @@ Usage: gdml_det -G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml'... +G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml'... G4GDML: Reading definitions... G4GDML: Reading materials... G4GDML: Reading solids... G4GDML: Reading structure... G4GDML: Reading setup... -G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml' done! +G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/10-02-ref-06_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml' done! Stripping off GDML names of materials, solids and volumes ... ############################################ @@ -15,7 +15,7 @@ Stripping off GDML names of materials, solids and volumes ... ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -34,6 +34,14 @@ Volume Boxvol has the following list of auxiliary information: Attaching sensitive detector Tracker to volume Boxvol +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -62,16 +70,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -200,7 +210,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -214,7 +224,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -323,7 +333,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -356,7 +366,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -482,6 +492,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1006,7 +1021,7 @@ Processing hits .... Run terminated. Run Summary Number of events processed : 20 - User=0.01s Real=0s Sys=0s + User=0s Real=0s Sys=0s /gun/direction 0 0 -1 /run/beamOn 20 diff --git a/examples/extended/polarisation/Pol01/History b/examples/extended/polarisation/Pol01/History index 07c2b96134..32e1420ba6 100644 --- a/examples/extended/polarisation/Pol01/History +++ b/examples/extended/polarisation/Pol01/History @@ -1,4 +1,4 @@ -$Id: History 86443 2014-11-12 09:40:56Z gcosmo $ +$Id: History 96116 2016-03-16 18:56:02Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +14-03-16 D.Sawkey (expol01-V10-02-00) +- PhysicsList.cc - move to current method of ConstructParticle + 12-11-14 V.Ivanchenko (expol01-V10-00-02) - RunAction - fixed compillation at gcc 4.1 diff --git a/examples/extended/polarisation/Pol01/pol01.out b/examples/extended/polarisation/Pol01/pol01.out index 3816875192..901c6db5dc 100644 --- a/examples/extended/polarisation/Pol01/pol01.out +++ b/examples/extended/polarisation/Pol01/pol01.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -124,14 +124,14 @@ Region -- -- is not associated to any world. Index : 0 used in the geometry : Yes Material : G4_Galactic Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton -1 MeV + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes Material : G4_Fe Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 6.28375 keV e- 235.116 keV e+ 228.88 keV proton -1 MeV + Energy thresholds : gamma 6.28375 keV e- 235.116 keV e+ 228.88 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -149,38 +149,38 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=1.78s Real=1.79s Sys=0s + User=0.14s Real=0.15s Sys=0s The run consists of 10000 gamma of 10 MeV through 1.75 mm of G4_Fe (density: 7.874 g/cm3 ) Process calls frequency ---> - Transportation = 57532 - pol-compt = 11819 - msc = 46504 - pol-eBrem = 10451 - pol-phot = 4857 - pol-eIoni = 16845 - pol-conv = 62 - pol-annihil = 32 + Transportation = 31258 + pol-compt = 288 + pol-eBrem = 344 + msc = 1912 + pol-phot = 159 + pol-eIoni = 674 + pol-conv = 228 + pol-annihil = 83 Gamma: -Mean Number per Event :1.5441 -Mean Energy :2.2701 MeV +- 2.6731 MeV -Mean Polarization :-0.42845 +- 0.4935 +Mean Number per Event :1.0118 +Mean Energy :9.5325 MeV +- 2.0054 MeV +Mean Polarization :-0.95974 +- 0.20421 Electron: -Mean Number per Event :0.8294 -Mean Energy :4.8634 MeV +- 2.3614 MeV -Mean Polarization :-0.82222 +- 0.25063 +Mean Number per Event :0.0359 +Mean Energy :5.2324 MeV +- 2.5034 MeV +Mean Polarization :-0.73265 +- 0.28916 Positron: -Mean Number per Event :0.0031 -Mean Energy :3.2484 MeV +- 1.8025 MeV -Mean Polarization :-0.70748 +- 0.27491 +Mean Number per Event :0.0152 +Mean Energy :4.2212 MeV +- 2.0464 MeV +Mean Polarization :-0.62236 +- 0.30062 ... write Root file : pol01.root - done --------- Ranlux engine status --------- Initial seed = 9876 - float_seed_table[] = 0.175692 0.385647 0.861036 0.507748 0.269676 0.314197 0.610989 0.106925 0.553456 0.136075 0.80907 0.772456 0.556632 0.525917 0.667838 0.656322 0.0480373 0.802785 0.581367 0.841234 0.00786269 0.865653 0.343942 0.702005 - i_lag = 17, j_lag = 3 - carry = 5.96046e-08, count24 = 10 + float_seed_table[] = 0.231637 0.0340691 0.470641 0.149545 0.520636 0.787609 0.381197 0.600592 0.0749142 0.791613 0.521982 0.171886 0.112185 0.43382 0.388659 0.034739 0.510846 0.801344 0.309089 0.876676 0.270264 0.805324 0.747375 0.835086 + i_lag = 5, j_lag = 15 + carry = 0, count24 = 14 luxury = 3 nskip = 199 ---------------------------------------- # @@ -200,11 +200,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.00192 MB -Pool ID '7G4Track', size : 0.00385 MB +Pool ID '7G4Track', size : 0.00288 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.019 MB +Dynamic pools deleted: 9 / Total memory freed: 0.018 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/polarisation/Pol01/src/PhysicsList.cc b/examples/extended/polarisation/Pol01/src/PhysicsList.cc index 970e5b56d3..067589f0fc 100644 --- a/examples/extended/polarisation/Pol01/src/PhysicsList.cc +++ b/examples/extended/polarisation/Pol01/src/PhysicsList.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysicsList class // // -// $Id: PhysicsList.cc 86418 2014-11-11 10:39:38Z gcosmo $ +// $Id: PhysicsList.cc 96116 2016-03-16 18:56:02Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -67,21 +67,36 @@ PhysicsList::~PhysicsList() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Bosons -#include "G4Gamma.hh" - -// leptons -#include "G4Electron.hh" -#include "G4Positron.hh" - +#include "G4BosonConstructor.hh" +#include "G4LeptonConstructor.hh" +#include "G4MesonConstructor.hh" +#include "G4BosonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" +#include "G4ShortLivedConstructor.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void PhysicsList::ConstructParticle() { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); + G4BosonConstructor pBosonConstructor; + pBosonConstructor.ConstructParticle(); + + G4LeptonConstructor pLeptonConstructor; + pLeptonConstructor.ConstructParticle(); + + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4IonConstructor pIonConstructor; + pIonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/.README.txt b/examples/extended/radioactivedecay/rdecay01/.README.txt index 013440f8d3..6ad19a75d1 100644 --- a/examples/extended/radioactivedecay/rdecay01/.README.txt +++ b/examples/extended/radioactivedecay/rdecay01/.README.txt @@ -41,6 +41,14 @@ allows to limit to single decay or full decay chain (default). Total time of life of decay chain is plotted. Activity is computed. + The command + \verbatim + /rdecay01/timeWindow + \endverbatim + allows to survey activity of each nuclide in a specified + time window [t1,t2] : population at t1 and t2, nb of decays within [t1,t2], mean activity. + See timeWindow.mac + Few macros are given in example. Debug.mac is to be run in interactive mode. \section rdecay01_s5 User data files diff --git a/examples/extended/radioactivedecay/rdecay01/CMakeLists.txt b/examples/extended/radioactivedecay/rdecay01/CMakeLists.txt index 9a563aad45..1a78d42d30 100644 --- a/examples/extended/radioactivedecay/rdecay01/CMakeLists.txt +++ b/examples/extended/radioactivedecay/rdecay01/CMakeLists.txt @@ -40,7 +40,8 @@ target_link_libraries(rdecay01 ${Geant4_LIBRARIES} ) # relies on these scripts being in the current working directory. # set(rdecay01_SCRIPTS - alpha.mac Cf238.mac Co60.mac debug.mac electronicCapture.mac fullChain.mac No252.mac rdecay01.in singleDecay.mac vis.mac + alpha.mac Cf238.mac Co60.mac debug.mac electronicCapture.mac fullChain.mac No252.mac rdecay01.in + singleDecay.mac timeWindow.mac vis.mac ) foreach(_script ${rdecay01_SCRIPTS}) diff --git a/examples/extended/radioactivedecay/rdecay01/History b/examples/extended/radioactivedecay/rdecay01/History index 80e6b5661d..5f831bc88a 100644 --- a/examples/extended/radioactivedecay/rdecay01/History +++ b/examples/extended/radioactivedecay/rdecay01/History @@ -1,4 +1,4 @@ -$Id: History 94458 2015-11-18 14:36:25Z gcosmo $ +$Id: History 97882 2016-06-16 16:11:41Z gcosmo $ ----------------------------------------------------- ========================================================= @@ -14,6 +14,37 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +16-06-16 V.Ivanchenko (rdecay01-V10-02-07) +- PhysicsList::ConstructProcess - return back initialisation of + atomic de-excitation + +15-06-16 dwright (rdecay01-V10-02-06) +- initialize atomic deexcitation in PhysicsList::ConstructProcess + instead of in G4RadioactiveDecay to avoid overwriting initializtion in EM + +09-06-16 mma (rdecay01-V10-02-05) +- world size = 2 cm +- gun direction : along x + +16-05-16 mma (rdecay01-V10-02-04) +- complete printing of activity of each nuclide. + +11-05-16 mma (rdecay01-V10-02-03) +- survey activity of each nuclide in a given time window. + Classes modified : Run, TrackingAction, TrackingMessenger. Added timWindow.mac + +31-01-16 mma (rdecay01-V10-02-02) +- Run::EndOfRun() : improve printout + +08-12-15 dwright (rdecay01-V10-02-01) +- PhysicsList : SetLevelTolerance (1*eV) : needed to fix crash in system testing + There appears to already be a level Ni60[1332.510] stored somewhere instead of + Ni60[1332.514]. Setting the tolerance to 1 eV gets the right level. + +06-12-15 mma (rdecay01-V10-02-00) +- PhysicsList : SetLevelTolerance (10*eV) +- update references : it1.mac it2.mac 18-11-15 mma (rdecay01-V10-01-06) - PhysicsList : add LevelTolerance (100*eV), HalfLife(0.1*ps) diff --git a/examples/extended/radioactivedecay/rdecay01/README b/examples/extended/radioactivedecay/rdecay01/README index 83cb076e85..d6a9beea8b 100644 --- a/examples/extended/radioactivedecay/rdecay01/README +++ b/examples/extended/radioactivedecay/rdecay01/README @@ -1,4 +1,4 @@ -$Id: README 87827 2015-01-14 17:17:27Z gcosmo $ +$Id: README 96904 2016-05-17 09:12:14Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -44,6 +44,10 @@ $Id: README 87827 2015-01-14 17:17:27Z gcosmo $ Total time of life of decay chain is plotted. Activity is computed. + The command /rdecay01/timeWindow allows to survey activity of each nuclide in a specified + time window [t1,t2] : population at t1 and t2, nb of decays within [t1,t2], mean activity. + See timeWindow.mac + Few macros are given in example. Debug.mac is to be run in interactive mode. 4-a User data files diff --git a/examples/extended/radioactivedecay/rdecay01/include/Run.hh b/examples/extended/radioactivedecay/rdecay01/include/Run.hh index 042bc5fc84..3d842ad7f0 100644 --- a/examples/extended/radioactivedecay/rdecay01/include/Run.hh +++ b/examples/extended/radioactivedecay/rdecay01/include/Run.hh @@ -55,10 +55,13 @@ class Run : public G4Run void EventTiming(G4double); void PrimaryTiming(G4double); void EvisEvent(G4double); + + void SetTimeWindow(G4double , G4double); + void CountInTimeWindow(G4String, G4bool,G4bool,G4bool); void SetPrimary(G4ParticleDefinition* particle, G4double energy); void EndOfRun(); - + virtual void Merge(const G4Run*); private: @@ -84,6 +87,20 @@ class Run : public G4Run G4double fEventTime[3]; G4double fPrimaryTime; G4double fEvisEvent[3]; + +private: + struct ActivityData { + ActivityData() + : fNlife_t1(0), fNlife_t2(0), fNdecay_t1t2(0) {} + ActivityData(G4int n1, G4int n2, G4int nd) + : fNlife_t1(n1), fNlife_t2(n2), fNdecay_t1t2(nd) {} + G4int fNlife_t1; + G4int fNlife_t2; + G4int fNdecay_t1t2; + }; + + std::map fActivityMap; + G4double fTimeWindow1, fTimeWindow2; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/include/TrackingAction.hh b/examples/extended/radioactivedecay/rdecay01/include/TrackingAction.hh index 1384efad25..6e0e4f490b 100644 --- a/examples/extended/radioactivedecay/rdecay01/include/TrackingAction.hh +++ b/examples/extended/radioactivedecay/rdecay01/include/TrackingAction.hh @@ -27,7 +27,7 @@ /// \brief Definition of the TrackingAction class // // -// $Id: TrackingAction.hh 78307 2013-12-11 10:55:57Z gcosmo $ +// $Id: TrackingAction.hh 96835 2016-05-12 09:20:14Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,6 +53,7 @@ class TrackingAction : public G4UserTrackingAction { virtual void PostUserTrackingAction(const G4Track*); void SetFullChain(G4bool flag) { fFullChain = flag;}; + void SetTimeWindow(G4double , G4double); private: EventAction* fEvent; @@ -60,6 +61,9 @@ class TrackingAction : public G4UserTrackingAction { G4double fCharge, fMass; G4bool fFullChain; + + G4double fTime_birth, fTime_end; + G4double fTimeWindow1, fTimeWindow2; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/include/TrackingMessenger.hh b/examples/extended/radioactivedecay/rdecay01/include/TrackingMessenger.hh index e2c0cad950..34fcc7c02f 100644 --- a/examples/extended/radioactivedecay/rdecay01/include/TrackingMessenger.hh +++ b/examples/extended/radioactivedecay/rdecay01/include/TrackingMessenger.hh @@ -26,7 +26,7 @@ /// \file radioactivedecay/rdecay01/include/TrackingMessenger.hh /// \brief Definition of the TrackingMessenger class // -// $Id: TrackingMessenger.hh 68017 2013-03-13 13:29:53Z gcosmo $ +// $Id: TrackingMessenger.hh 96835 2016-05-12 09:20:14Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,6 +39,7 @@ class TrackingAction; class G4UIcmdWithABool; +class G4UIcommand; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,6 +54,7 @@ class TrackingMessenger: public G4UImessenger private: TrackingAction* fTrackingAction; G4UIcmdWithABool* fTrackingCmd; + G4UIcommand* fTimeWindowCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/plotHisto.C b/examples/extended/radioactivedecay/rdecay01/plotHisto.C index bf8fda45e4..3e79301304 100644 --- a/examples/extended/radioactivedecay/rdecay01/plotHisto.C +++ b/examples/extended/radioactivedecay/rdecay01/plotHisto.C @@ -3,8 +3,8 @@ // Draw histos filled by Geant4 simulation // - ////TFile f = TFile("run1.root"); - TFile f = TFile("Ni60.root"); + ////TFile f("run1.root"); + TFile f("Ni60.root"); TCanvas* c1 = new TCanvas("c1", " "); c1->SetLogy(1); diff --git a/examples/extended/radioactivedecay/rdecay01/rdecay01.out b/examples/extended/radioactivedecay/rdecay01/rdecay01.out index 0474fd2c36..e0a653c164 100644 --- a/examples/extended/radioactivedecay/rdecay01/rdecay01.out +++ b/examples/extended/radioactivedecay/rdecay01/rdecay01.out @@ -4,12 +4,16 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* + +### === Deexcitation model UAtomDeexcitation is activated for 1 region: +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -37,16 +41,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -67,9 +73,6 @@ Available colours: /tracking/verbose 2 /run/beamOn 1 -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes @@ -93,7 +96,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 1 0 fm 0 fm 0 fm 0 eV 0 eV 0 fm 0 fm World RadioactiveDecay :----- List of secondaries ---------------- - Ni60[2505.800]: energy = 1.818 eV time = 9.982 y + 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 :------------------------------------------ @@ -105,7 +108,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 0 fm 129 keV 0 eV 0 fm 0 fm World initStep - 1 -217 um -35.7 um 1 mm 129 keV 0 eV 1.02 mm 1.02 mm World OutOfWorld + 1 -2.17 mm -357 um 1 cm 129 keV 0 eV 1.02 cm 1.02 cm World OutOfWorld ********************************************************************************************************* * G4Track Information: Particle = anti_nu_e, Track ID = 3, Parent ID = 1 @@ -113,20 +116,20 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 0 fm 188 keV 0 eV 0 fm 0 fm World initStep - 1 -227 um -1 mm 53.9 um 188 keV 0 eV 1.03 mm 1.03 mm World OutOfWorld + 1 -2.27 mm -1 cm 539 um 188 keV 0 eV 1.03 cm 1.03 cm World OutOfWorld ********************************************************************************************************* -* G4Track Information: Particle = Ni60[2505.800], Track ID = 2, Parent ID = 1 +* 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.82 eV 0 eV 0 fm 0 fm World initStep - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0s Sys=0s + User=0.01s Real=0s Sys=0s ======================== run summary ====================== The run was 1 Co60 of 0 eV @@ -134,20 +137,21 @@ Run Summary Nb of generated particles: - Ni60[2505.800]: 1 Emean = 1.818 eV ( 1.818 eV --> 1.818 eV ) - anti_nu_e: 1 Emean = 188.1 keV ( 188.1 keV --> 188.1 keV) - e-: 1 Emean = 128.9 keV ( 128.9 keV --> 128.9 keV) + Ni60[2505.753]: 1 Emean = 1.818 eV ( 1.818 eV --> 1.818 eV ) + anti_nu_e: 1 Emean = 188.1 keV ( 188.1 keV --> 188.1 keV) + e-: 1 Emean = 128.9 keV ( 128.9 keV --> 128.9 keV) - Ekin Total (Q): mean = 317.1 keV ( 317.1 keV --> 317.1 keV) + Ekin Total (Q single decay): mean = 317.1 keV ( 317.1 keV --> 317.1 keV) - Momentum balance (excluding gamma desexcitation): mean = 0.3366 eV ( 0.3366 eV --> 0.3366 eV ) + Momentum balance (excluding gamma desexcitation): mean = 0.5648 eV ( 0.5648 eV --> 0.5648 eV ) - Total time of life : mean = 9.982 y half-life = 6.919 y ( 9.982 y --> 9.982 y ) + Total time of life (full chain): mean = 9.982 y half-life = 6.919 y ( 9.982 y --> 9.982 y ) - Total visible energy : mean = 128.9 keV ( 128.9 keV --> 128.9 keV) + Total visible energy (full chain) : mean = 128.9 keV ( 128.9 keV --> 128.9 keV) Activity of Co60 = 3.188e+13 Bq/g (861.7 Ci/g) + # /tracking/verbose 0 /run/printProgress 10000 @@ -167,39 +171,39 @@ Index : 0 used in the geometry : Yes ### Run 1 starts. --> Event 0 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 10000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 20000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 30000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 40000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 50000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 60000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 70000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 80000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] --> Event 90000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] + End of event. Decay chain: Co60 ---> Ni60[2505.753] Run terminated. Run Summary Number of events processed : 100000 - User=2.14s Real=2.14s Sys=0s + User=1.96s Real=1.97s Sys=0s ======================== run summary ====================== The run was 100000 Co60 of 0 eV @@ -207,21 +211,22 @@ Run Summary Nb of generated particles: - Ni60[1332.500]: 118 Emean = 17.74 eV ( 0.3673 eV --> 32.55 eV ) - Ni60[2505.800]: 99882 Emean = 1.469 eV ( 0.0008295 eV --> 3.757 eV ) - anti_nu_e: 100000 Emean = 223 keV ( 3.89 keV --> 1.482 MeV) - e-: 100000 Emean = 95.49 keV ( 2.058 eV --> 1.358 MeV) + Ni60[1332.514]: 118 Emean = 17.74 eV ( 0.3673 eV --> 32.55 eV ) + Ni60[2505.753]: 99882 Emean = 1.469 eV ( 0.0008367 eV --> 3.757 eV ) + anti_nu_e: 100000 Emean = 223 keV ( 3.89 keV --> 1.482 MeV) + e-: 100000 Emean = 95.49 keV ( 2.058 eV --> 1.358 MeV) - Ekin Total (Q): mean = 318.4 keV ( 317.1 keV --> 1.49 MeV) + Ekin Total (Q single decay): mean = 318.4 keV ( 317.1 keV --> 1.49 MeV) - Momentum balance (excluding gamma desexcitation): mean = 0.4295 eV ( 1.739e-06 eV --> 27.1 eV ) + Momentum balance (excluding gamma desexcitation): mean = 0.3661 eV ( 6.902e-06 eV --> 15.57 eV ) - Total time of life : mean = 7.607 y half-life = 5.273 y ( 15.92 min --> 94.63 y ) + Total time of life (full chain): mean = 7.607 y half-life = 5.273 y ( 15.92 min --> 94.63 y ) - Total visible energy : mean = 95.49 keV ( 2.953 eV --> 1.358 MeV) + Total visible energy (full chain) : mean = 95.49 keV ( 2.953 eV --> 1.358 MeV) Activity of Co60 = 4.184e+13 Bq/g (1131 Ci/g) + # /rdecay01/fullChain true # @@ -240,39 +245,39 @@ Index : 0 used in the geometry : Yes ### Run 2 starts. --> Event 0 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 10000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 20000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 30000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 40000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 50000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 60000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 70000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 80000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 --> Event 90000 starts. - End of event. Decay chain: Co60 ---> Ni60[2505.800] ---> Ni60[1332.500] ---> Ni60 + End of event. Decay chain: Co60 ---> Ni60[2505.753] ---> Ni60[1332.514] ---> Ni60 Run terminated. Run Summary Number of events processed : 100000 - User=5.87s Real=7.26s Sys=0s + User=7.86s Real=7.92s Sys=0s ======================== run summary ====================== The run was 100000 Co60 of 0 eV @@ -280,24 +285,25 @@ Run Summary Nb of generated particles: - Ni60: 100000 Emean = 29.75 eV ( 0.001623 eV --> 92.29 eV ) - Ni60[1332.500]: 99999 Emean = 13.82 eV ( 0.108 eV --> 40.25 eV ) - Ni60[2158.600]: 8 Emean = 2.528 eV ( 0.6633 eV --> 5.752 eV ) - Ni60[2505.800]: 99868 Emean = 1.47 eV ( 0.001884 eV --> 3.791 eV ) - anti_nu_e: 100000 Emean = 222.7 keV ( 1.032 keV --> 1.485 MeV) - e-: 100035 Emean = 96.27 keV ( 5.686 eV --> 1.436 MeV) - gamma: 199840 Emean = 1.253 MeV ( 347.2 keV --> 2.159 MeV) + Ni60: 100000 Emean = 29.74 eV ( 0.001615 eV --> 92.29 eV ) + Ni60[1332.514]: 99999 Emean = 13.82 eV ( 0.108 eV --> 40.25 eV ) + Ni60[2158.632]: 8 Emean = 2.528 eV ( 0.6632 eV --> 5.752 eV ) + Ni60[2505.753]: 99868 Emean = 1.47 eV ( 0.001892 eV --> 3.791 eV ) + anti_nu_e: 100000 Emean = 222.7 keV ( 1.032 keV --> 1.485 MeV) + e-: 100035 Emean = 96.27 keV ( 5.686 eV --> 1.436 MeV) + gamma: 199840 Emean = 1.253 MeV ( 347.1 keV --> 2.159 MeV) - Ekin Total (Q): mean = 941.3 keV ( 317.1 keV --> 2.159 MeV) + Ekin Total (Q single decay): mean = 941.3 keV ( 317.1 keV --> 2.159 MeV) - Momentum balance (excluding gamma desexcitation): mean = 834.9 keV ( 1.733e-05 eV --> 2.159 MeV) + Momentum balance (excluding gamma desexcitation): mean = 834.9 keV ( 2.478e-06 eV --> 2.159 MeV) - Total time of life : mean = 7.602 y half-life = 5.269 y ( 1.164 h --> 101.5 y ) + Total time of life (full chain): mean = 7.602 y half-life = 5.269 y ( 1.164 h --> 101.5 y ) - Total visible energy : mean = 2.6 MeV ( 1.338 MeV --> 2.822 MeV) + Total visible energy (full chain) : mean = 2.6 MeV ( 1.338 MeV --> 2.822 MeV) Activity of Co60 = 4.187e+13 Bq/g (1132 Ci/g) + Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/radioactivedecay/rdecay01/references/it1.mac b/examples/extended/radioactivedecay/rdecay01/references/it1.mac index 275de8f998..b98a65e20a 100644 --- a/examples/extended/radioactivedecay/rdecay01/references/it1.mac +++ b/examples/extended/radioactivedecay/rdecay01/references/it1.mac @@ -2,7 +2,7 @@ /run/verbose 1 # /gun/particle ion -/gun/ion 28 60 0 2505.8 +/gun/ion 28 60 0 2505.753 # /rdecay01/fullChain true # diff --git a/examples/extended/radioactivedecay/rdecay01/references/it2.mac b/examples/extended/radioactivedecay/rdecay01/references/it2.mac index 9694a8c397..031123531f 100644 --- a/examples/extended/radioactivedecay/rdecay01/references/it2.mac +++ b/examples/extended/radioactivedecay/rdecay01/references/it2.mac @@ -2,7 +2,7 @@ /run/verbose 1 # /gun/particle ion -/gun/ion 54 131 0 341.14 +/gun/ion 54 131 0 341.144 # /rdecay01/fullChain true # diff --git a/examples/extended/radioactivedecay/rdecay01/src/DetectorConstruction.cc b/examples/extended/radioactivedecay/rdecay01/src/DetectorConstruction.cc index 1130187ebc..7e06dd84a0 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/DetectorConstruction.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/DetectorConstruction.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the DetectorConstruction class // // -// $Id: DetectorConstruction.cc 78307 2013-12-11 10:55:57Z gcosmo $ +// $Id: DetectorConstruction.cc 97768 2016-06-09 15:11:02Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,7 +45,7 @@ DetectorConstruction::DetectorConstruction() : G4VUserDetectorConstruction() { - fWorldSize = 2*mm; + fWorldSize = 20*mm; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/src/HistoManager.cc b/examples/extended/radioactivedecay/rdecay01/src/HistoManager.cc index e16447866c..0908e6f729 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/HistoManager.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/HistoManager.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: HistoManager.cc 87827 2015-01-14 17:17:27Z gcosmo $ +// $Id: HistoManager.cc 95226 2016-02-01 09:18:26Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -69,7 +69,7 @@ void HistoManager::Book() "energy spectrum (%): gamma", //3 "energy spectrum (%): alpha", //4 "energy spectrum (%): ions", //5 - "total kinetic energy (Q)", //6 + "total kinetic energy per single decay (Q)",//6 "momentum balance", //7 "total time of life of decay chain", //8 "total visible energy in decay chain" //9 diff --git a/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc b/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc index b9f6a79efd..892f52dbb1 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PhysicsList class // // -// $Id: PhysicsList.cc 94458 2015-11-18 14:36:25Z gcosmo $ +// $Id: PhysicsList.cc 97882 2016-06-16 16:11:41Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,6 +40,8 @@ #include "G4RadioactiveDecay.hh" #include "G4SystemOfUnits.hh" #include "G4NuclideTable.hh" +#include "G4LossTableManager.hh" +#include "G4UAtomicDeexcitation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -101,9 +103,22 @@ void PhysicsList::ConstructProcess() G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); ph->RegisterProcess(radioactiveDecay, G4GenericIon::GenericIon()); - - G4NuclideTable::GetInstance()->SetLevelTolerance(100*eV); - G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.0001*ns); + + // Need to initialize atomic deexcitation outside of radioactive decay + G4LossTableManager* theManager = G4LossTableManager::Instance(); + G4VAtomDeexcitation* p = theManager->AtomDeexcitation(); + if (!p) { + G4UAtomicDeexcitation* atomDeex = new G4UAtomicDeexcitation(); + theManager->SetAtomDeexcitation(atomDeex); + atomDeex->SetFluo(true); + atomDeex->SetAuger(true); + atomDeex->InitialiseAtomicDeexcitation(); + } + // + // mandatory for G4NuclideTable + // + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); + G4NuclideTable::GetInstance()->SetLevelTolerance(1.0*eV); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/src/PrimaryGeneratorAction.cc b/examples/extended/radioactivedecay/rdecay01/src/PrimaryGeneratorAction.cc index 5b8712832a..5cc2a832ce 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/PrimaryGeneratorAction.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/PrimaryGeneratorAction.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the PrimaryGeneratorAction class // // -// $Id: PrimaryGeneratorAction.cc 78307 2013-12-11 10:55:57Z gcosmo $ +// $Id: PrimaryGeneratorAction.cc 97768 2016-06-09 15:11:02Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,7 +52,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction() fParticleGun->SetParticleEnergy(0*eV); fParticleGun->SetParticlePosition(G4ThreeVector(0.,0.,0.)); - fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); + fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/src/Run.cc b/examples/extended/radioactivedecay/rdecay01/src/Run.cc index 4ab78fdd59..d029974a13 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/Run.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/Run.cc @@ -44,7 +44,8 @@ Run::Run() : G4Run(), fParticle(0), fEkin(0.), - fDecayCount(0), fTimeCount(0), fPrimaryTime(0.) + fDecayCount(0), fTimeCount(0), fPrimaryTime(0.), + fTimeWindow1(0.), fTimeWindow2(0.) { fEkinTot[0] = fPbalance[0] = fEventTime[0] = fEvisEvent[0] = 0. ; fEkinTot[1] = fPbalance[1] = fEventTime[1] = fEvisEvent[1] = DBL_MAX; @@ -85,6 +86,35 @@ void Run::ParticleCount(G4String name, G4double Ekin) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void Run::SetTimeWindow(G4double t1, G4double t2) +{ + fTimeWindow1 = t1; + fTimeWindow2 = t2; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::CountInTimeWindow(G4String name, G4bool life1, + G4bool life2, G4bool decay) +{ + std::map::iterator it = fActivityMap.find(name); + if ( it == fActivityMap.end()) { + G4int n1(0), n2(0), nd(0); + if(life1) n1 = 1; + if(life2) n2 = 1; + if(decay) nd = 1; + fActivityMap[name] = ActivityData(n1, n2, nd); + } + else { + ActivityData& data = it->second; + if(life1) data.fNlife_t1++; + if(life2) data.fNlife_t2++; + if(decay) data.fNdecay_t1t2++; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + void Run::Balance(G4double Ekin, G4double Pbal) { fDecayCount++; @@ -192,7 +222,30 @@ void Run::Merge(const G4Run* run) if (emax > data.fEmax) data.fEmax = emax; } } - + + //activity + fTimeWindow1 = localRun->fTimeWindow1; + fTimeWindow2 = localRun->fTimeWindow2; + + std::map::const_iterator ita; + for (ita = localRun->fActivityMap.begin(); + ita != localRun->fActivityMap.end(); ++ita) { + + G4String name = ita->first; + const ActivityData& localData = ita->second; + if ( fActivityMap.find(name) == fActivityMap.end()) { + fActivityMap[name] + = ActivityData(localData.fNlife_t1, + localData.fNlife_t2, + localData.fNdecay_t1t2); + } else { + ActivityData& data = fActivityMap[name]; + data.fNlife_t1 += localData.fNlife_t1; + data.fNlife_t2 += localData.fNlife_t2; + data.fNdecay_t1t2 += localData.fNdecay_t1t2; + } + } + G4Run::Merge(run); } @@ -226,7 +279,7 @@ void Run::EndOfRun() G4double eMin = data.fEmin; G4double eMax = data.fEmax; - G4cout << " " << std::setw(13) << name << ": " << std::setw(7) << count + G4cout << " " << std::setw(15) << name << ": " << std::setw(7) << count << " Emean = " << std::setw(wid) << G4BestUnit(eMean, "Energy") << "\t( " << G4BestUnit(eMin, "Energy") << " --> " << G4BestUnit(eMax, "Energy") @@ -240,7 +293,7 @@ void Run::EndOfRun() G4double Ebmean = fEkinTot[0]/fDecayCount; G4double Pbmean = fPbalance[0]/fDecayCount; - G4cout << "\n Ekin Total (Q): mean = " + G4cout << "\n Ekin Total (Q single decay): mean = " << std::setw(wid) << G4BestUnit(Ebmean, "Energy") << "\t( " << G4BestUnit(fEkinTot[1], "Energy") << " --> " << G4BestUnit(fEkinTot[2], "Energy") @@ -259,7 +312,7 @@ void Run::EndOfRun() G4double Tmean = fEventTime[0]/fTimeCount; G4double halfLife = Tmean*std::log(2.); - G4cout << "\n Total time of life : mean = " + G4cout << "\n Total time of life (full chain): mean = " << std::setw(wid) << G4BestUnit(Tmean, "Time") << " half-life = " << std::setw(wid) << G4BestUnit(halfLife, "Time") @@ -273,7 +326,7 @@ void Run::EndOfRun() if (fTimeCount > 0) { G4double Evmean = fEvisEvent[0]/fTimeCount; - G4cout << "\n Total visible energy : mean = " + G4cout << "\n Total visible energy (full chain) : mean = " << std::setw(wid) << G4BestUnit(Evmean, "Energy") << " ( " << G4BestUnit(fEvisEvent[1], "Energy") << " --> " << G4BestUnit(fEvisEvent[2], "Energy") @@ -294,7 +347,35 @@ void Run::EndOfRun() << " Bq/g (" << Activity_perUnitOfMass*g/curie << " Ci/g) \n" << G4endl; - + + + //activities in time window + // + if (fTimeWindow2 > 0.) { + G4double dt = fTimeWindow2 - fTimeWindow1; + G4cout << " Activities in time window [t1, t2] = [" + << G4BestUnit(fTimeWindow1, "Time") << ", " + << G4BestUnit(fTimeWindow2, "Time") << "] (delta time = " + << G4BestUnit(dt, "Time") << ") : \n" << G4endl; + + std::map::iterator ita; + for (ita = fActivityMap.begin(); ita != fActivityMap.end(); ita++) { + G4String name = ita->first; + ActivityData data = ita->second; + G4int n1 = data.fNlife_t1; + G4int n2 = data.fNlife_t2; + G4int ndecay = data.fNdecay_t1t2; + G4double actv = ndecay/dt; + + G4cout << " " << std::setw(15) << name << ": " + << " n(t1) = " << std::setw(7) << n1 + << "\tn(t2) = " << std::setw(7) << n2 + << "\t decays = " << std::setw(7) << ndecay + << " ---> = " << G4BestUnit(actv, "Activity") << "\n"; + } + } + G4cout << G4endl; + //normalize histograms // G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); @@ -307,7 +388,8 @@ void Run::EndOfRun() // remove all contents in fParticleDataMap // - fParticleDataMap.clear(); + fParticleDataMap.clear(); + fActivityMap.clear(); // restore default precision // diff --git a/examples/extended/radioactivedecay/rdecay01/src/TrackingAction.cc b/examples/extended/radioactivedecay/rdecay01/src/TrackingAction.cc index 9dc78b861e..2ef5b3a6b1 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/TrackingAction.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/TrackingAction.cc @@ -27,7 +27,7 @@ /// \brief Implementation of the TrackingAction class // // -// $Id: TrackingAction.cc 87827 2015-01-14 17:17:27Z gcosmo $ +// $Id: TrackingAction.cc 96835 2016-05-12 09:20:14Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,6 +43,9 @@ #include "G4ParticleTypes.hh" #include "G4RunManager.hh" +#include "G4SystemOfUnits.hh" +#include "G4UnitsTable.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... TrackingAction::TrackingAction(EventAction* EA) @@ -52,6 +55,8 @@ TrackingAction::TrackingAction(EventAction* EA) { fTrackMessenger = new TrackingMessenger(this); + + fTimeWindow1 = fTimeWindow2 = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -63,6 +68,14 @@ TrackingAction::~TrackingAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void TrackingAction::SetTimeWindow(G4double t1, G4double dt) +{ + fTimeWindow1 = t1; + fTimeWindow2 = fTimeWindow1 + dt; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + void TrackingAction::PreUserTrackingAction(const G4Track* track) { Run* run @@ -105,6 +118,8 @@ void TrackingAction::PreUserTrackingAction(const G4Track* track) G4Track* tr = (G4Track*) track; if (fFullChain) tr->SetTrackStatus(fStopButAlive); else if (ID>1) tr->SetTrackStatus(fStopAndKill); + // + fTime_birth = track->GetGlobalTime(); } //example of saving random number seed of this fEvent, under condition @@ -130,7 +145,8 @@ void TrackingAction::PostUserTrackingAction(const G4Track* track) // G4double time = track->GetGlobalTime(); G4int ID = track->GetTrackID(); - if (ID == 1) run->PrimaryTiming(time); //time of life of primary ion + if (ID == 1) run->PrimaryTiming(time); //time of life of primary ion + fTime_end = time; //energy and momentum balance (from secondaries) // @@ -166,7 +182,19 @@ void TrackingAction::PostUserTrackingAction(const G4Track* track) if (!nbtrk) { run->EventTiming(time); //total time of life analysis->FillH1(8,time); + fTime_end = DBL_MAX; } + + //count activity in time window + // + run->SetTimeWindow(fTimeWindow1, fTimeWindow2); + + G4String name = track->GetDefinition()->GetParticleName(); + G4bool life1(false), life2(false), decay(false); + if ((fTime_birth <= fTimeWindow1)&&(fTime_end > fTimeWindow1)) life1 = true; + if ((fTime_birth <= fTimeWindow2)&&(fTime_end > fTimeWindow2)) life2 = true; + if ((fTime_end > fTimeWindow1)&&(fTime_end < fTimeWindow2)) decay = true; + if (life1||life2||decay) run->CountInTimeWindow(name,life1,life2,decay); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/src/TrackingMessenger.cc b/examples/extended/radioactivedecay/rdecay01/src/TrackingMessenger.cc index 04514d425d..466c670e3c 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/TrackingMessenger.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/TrackingMessenger.cc @@ -26,7 +26,7 @@ /// \file radioactivedecay/rdecay01/src/TrackingMessenger.cc /// \brief Implementation of the TrackingMessenger class // -// $Id: TrackingMessenger.cc 68030 2013-03-13 13:51:27Z gcosmo $ +// $Id: TrackingMessenger.cc 96835 2016-05-12 09:20:14Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,17 +35,46 @@ #include "TrackingAction.hh" #include "G4UIcmdWithABool.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... TrackingMessenger::TrackingMessenger(TrackingAction* trackA) :G4UImessenger(), - fTrackingAction(trackA),fTrackingCmd(0) + fTrackingAction(trackA),fTrackingCmd(0),fTimeWindowCmd(0) { fTrackingCmd = new G4UIcmdWithABool("/rdecay01/fullChain",this); fTrackingCmd->SetGuidance("allow full decay chain"); fTrackingCmd->SetParameterName("flag",true); fTrackingCmd->SetDefaultValue(true); + + fTimeWindowCmd = new G4UIcommand("/rdecay01/timeWindow",this); + fTimeWindowCmd->SetGuidance("set time window to survey activity per nuclide"); + fTimeWindowCmd->SetGuidance(" t1, delta_t"); + // + G4UIparameter* t1Prm = new G4UIparameter("t1",'d',false); + t1Prm->SetGuidance("time_1"); + t1Prm->SetParameterRange("t1>0."); + fTimeWindowCmd->SetParameter(t1Prm); + // + G4UIparameter* unit1Prm = new G4UIparameter("unit1",'s',false); + unit1Prm->SetGuidance("unit of t1"); + G4String unitList = G4UIcommand::UnitsList(G4UIcommand::CategoryOf("second")); + unit1Prm->SetParameterCandidates(unitList); + fTimeWindowCmd->SetParameter(unit1Prm); + // + G4UIparameter* dtPrm = new G4UIparameter("dt",'d',false); + dtPrm->SetGuidance("delta_t"); + dtPrm->SetParameterRange("dt>0."); + fTimeWindowCmd->SetParameter(dtPrm); + // + G4UIparameter* unit2Prm = new G4UIparameter("unit2",'s',false); + unit2Prm->SetGuidance("unit of dt"); + unit2Prm->SetParameterCandidates(unitList); + fTimeWindowCmd->SetParameter(unit2Prm); + // + fTimeWindowCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,6 +82,7 @@ TrackingMessenger::TrackingMessenger(TrackingAction* trackA) TrackingMessenger::~TrackingMessenger() { delete fTrackingCmd; + delete fTimeWindowCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -60,7 +90,18 @@ TrackingMessenger::~TrackingMessenger() void TrackingMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == fTrackingCmd) - { fTrackingAction->SetFullChain(fTrackingCmd->GetNewBoolValue(newValue));} + { fTrackingAction->SetFullChain(fTrackingCmd->GetNewBoolValue(newValue));} + + if (command == fTimeWindowCmd) + { + G4double t1; G4double dt; + G4String unt1, unt2; + std::istringstream is(newValue); + is >> t1 >> unt1 >> dt >> unt2; + t1 *= G4UIcommand::ValueOf(unt1); + dt *= G4UIcommand::ValueOf(unt2); + fTrackingAction->SetTimeWindow (t1, dt); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/timeWindow.mac b/examples/extended/radioactivedecay/rdecay01/timeWindow.mac new file mode 100644 index 0000000000..18290896c9 --- /dev/null +++ b/examples/extended/radioactivedecay/rdecay01/timeWindow.mac @@ -0,0 +1,20 @@ +/control/verbose 2 +/run/verbose 1 +# +/gun/particle ion +/gun/ion 83 211 +# +/rdecay01/fullChain true +# +/tracking/verbose 2 +/run/beamOn 1 +/tracking/verbose 0 +# +/rdecay01/timeWindow 4 min 2 min +# +/analysis/setFileName time +/analysis/h1/set 8 100 0. 50. min #time of life +# +/run/printProgress 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/radioactivedecay/rdecay02/.README.txt b/examples/extended/radioactivedecay/rdecay02/.README.txt index 8bf8f96dd6..5e73e485bb 100644 --- a/examples/extended/radioactivedecay/rdecay02/.README.txt +++ b/examples/extended/radioactivedecay/rdecay02/.README.txt @@ -43,9 +43,7 @@ /grdm/noVolumes /grdm/selectVolume Target - - Hadronic processes: - Hadronic processes are not registered by default. - To register them, uncomment physics constructors in PhysicsList.cc + - Hadronic processes \section rdecay02_s3 EVENT: THE PRIMARY GENERATOR diff --git a/examples/extended/radioactivedecay/rdecay02/History b/examples/extended/radioactivedecay/rdecay02/History index 3140fe298e..5ef3941c49 100644 --- a/examples/extended/radioactivedecay/rdecay02/History +++ b/examples/extended/radioactivedecay/rdecay02/History @@ -1,4 +1,4 @@ -$Id: History 92227 2015-08-24 10:43:08Z gcosmo $ +$Id: History 95739 2016-02-23 09:33:55Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +22-02-2016 mma (rdecay02-V10-02-00) +- PhysicsList : register hadronic processes + 24-08-2015 mma (rdecay02-V10-01-03) - update Readme diff --git a/examples/extended/radioactivedecay/rdecay02/README b/examples/extended/radioactivedecay/rdecay02/README index d79f93a8b8..c5f8fc4f71 100644 --- a/examples/extended/radioactivedecay/rdecay02/README +++ b/examples/extended/radioactivedecay/rdecay02/README @@ -41,9 +41,7 @@ /grdm/noVolumes /grdm/selectVolume Target - - Hadronic processes: - Hadronic processes are not registered by default. - To register them, uncomment physics constructors in PhysicsList.cc + - Hadronic processes 3. AN EVENT: THE PRIMARY GENERATOR diff --git a/examples/extended/radioactivedecay/rdecay02/rdecay02.out b/examples/extended/radioactivedecay/rdecay02/rdecay02.out index 95cfba4a60..e133870837 100644 --- a/examples/extended/radioactivedecay/rdecay02/rdecay02.out +++ b/examples/extended/radioactivedecay/rdecay02/rdecay02.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -43,12 +43,37 @@ Command is ignored. ---> Isotope: Ge76 Z = 32 N = 76 A = 75.92 g/mole abundance: 7.610 % ElmMassFraction: 100.00 % ElmAbundance 100.00 % +### WARNING: G4EmProcessOptions class is obsolete and will be removed in the next public release + Please, try to use G4EmParameters class and/or UI interface to EM parameters +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen # /process/list Transportation, msc, hIoni, ionIoni nuclearStopping, eIoni, eBrem, annihil phot, compt, conv, muIoni muBrems, muPairProd, Decay, RadioactiveDecay + hadElastic, neutronInelastic, nCapture, nFission + protonInelastic, pi+Inelastic, pi-Inelastic, kaon+Inelastic + kaon-Inelastic, kaon0LInelastic, kaon0SInelastic, lambdaInelastic +anti-lambdaInelastic, sigma-Inelastic,anti_sigma-Inelastic, sigma+Inelastic +anti_sigma+Inelastic, xi-Inelastic, anti_xi-Inelastic, xi0Inelastic + anti_xi0Inelastic, omega-Inelastic,anti_omega-Inelastic,anti_protonInelastic +anti_neutronInelastic,anti_deuteronInelastic,anti_tritonInelastic, anti_He3Inelastic +anti_alphaInelastic, ionElastic, dInelastic, tInelastic + He3Inelastic, alphaInelastic, ionInelastic, photonNuclear # /gun/particle ion @@ -63,7 +88,9 @@ Set file name: rdecay02 /run/beamOn 10000 ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld + DefaultRegionForTheWorld 1 1 0 +### === Auger cascade flag: 0 +### === Ignore cuts flag: 0 phot: for gamma SubType= 12 BuildTable= 0 LambdaPrime table from 200 keV to 10 TeV in 54 bins @@ -134,7 +161,7 @@ msc: for proton SubType= 10 hIoni: for proton SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 meV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV @@ -147,7 +174,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ParamICRU73 : Emin= 0 meV Emax= 10 TeV deltaVI @@ -155,9 +182,6 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU49NucStopping : Emin= 0 meV Emax= 10 TeV -### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld - msc: for alpha SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -166,7 +190,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 meV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -183,7 +207,7 @@ msc: for anti_proton SubType= 10 hIoni: for anti_proton SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 meV Emax= 2 MeV BetheBloch : Emin= 2 MeV Emax= 10 TeV @@ -196,7 +220,7 @@ msc: for kaon+ SubType= 10 hIoni: for kaon+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 meV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV @@ -209,7 +233,7 @@ msc: for kaon- SubType= 10 hIoni: for kaon- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 meV Emax= 1.05231 MeV BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV @@ -222,7 +246,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 meV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -249,7 +273,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 meV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -267,6 +291,13 @@ muPairProd: for mu- SubType= 4 Sampling table 17x1001 from 1 GeV to 10 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 meV Emax= 10 TeV +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen +NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen +/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Inelastic +NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc48/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/10-02-ref-06_branch/build/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen msc: for pi+ SubType= 10 RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 @@ -276,7 +307,7 @@ msc: for pi+ SubType= 10 hIoni: for pi+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 meV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV @@ -289,11 +320,292 @@ msc: for pi- SubType= 10 hIoni: for pi- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 1, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 meV Emax= 297.505 keV BetheBloch : Emin= 297.505 keV Emax= 10 TeV +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionElastic + Model: NNDiffuseElastic: 0 meV/n ---> 1 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 meV/n ---> 4 GeV/n + Model: FTFP: 2 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 meV/n ---> 4 GeV/n + Model: FTFP: 2 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 meV/n ---> 4 GeV/n + Model: FTFP: 2 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: anti_He3Inelastic + Model: FTFP: 0 meV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: anti_alphaInelastic + Model: FTFP: 0 meV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: anti_deuteronInelastic + Model: FTFP: 0 meV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: anti_neutronInelastic + Model: FTFP: 0 meV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: anti_protonInelastic + Model: FTFP: 0 meV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: anti_tritonInelastic + Model: FTFP: 0 meV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 meV/n ---> 4 GeV/n + Model: FTFP: 2 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: BertiniCascade: 0 meV ---> 10 GeV + Cr_sctns: PhotoNuclearXS: 0 meV ---> 100 TeV + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: kaon+Inelastic + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 0 meV ---> 5 GeV + Cr_sctns: Glauber-Gribov: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: kaon-Inelastic + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 0 meV ---> 5 GeV + Cr_sctns: Glauber-Gribov: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: lambdaInelastic + Model: BertiniCascade: 0 meV ---> 6 GeV + Model: FTFP: 2 GeV ---> 100 TeV + Cr_sctns: ChipsHyperonInelasticXS: 0 meV ---> 100 TeV + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 19.5 MeV ---> 100 TeV + Model: NeutronHPElastic: 0 meV ---> 20 MeV + Cr_sctns: NeutronHPElasticXS: 0 meV ---> 20 MeV + Cr_sctns: G4NeutronElasticXS: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: neutronInelastic + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 19.9 MeV ---> 5 GeV + Model: NeutronHPInelastic: 0 meV ---> 20 MeV + Cr_sctns: NeutronHPInelasticXS: 0 meV ---> 20 MeV + Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + + Process: nCapture + Model: NeutronHPCapture: 0 meV ---> 20 MeV + Model: nRadCapture: 19.9 MeV ---> 100 TeV + Cr_sctns: NeutronHPCaptureXS: 0 meV ---> 20 MeV + Cr_sctns: G4NeutronCaptureXS: 0 meV ---> 100 TeV + Cr_sctns: NeutronHPCaptureXS: 0 meV ---> 20 MeV + Cr_sctns: GheishaCaptureXS: 0 meV ---> 100 TeV + + Process: nFission + Model: NeutronHPFission: 0 meV ---> 20 MeV + Model: G4LFission: 19.9 MeV ---> 2.88022e+295 J + Cr_sctns: NeutronHPFissionXS: 0 meV ---> 20 MeV + Cr_sctns: GheishaFissionXS: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 1.0001 GeV + Model: hElasticGlauber: 1 GeV ---> 100 TeV + Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: pi+Inelastic + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 0 meV ---> 5 GeV + Cr_sctns: G4CrossSectionPairGG: 0 meV ---> 100 TeV + G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections + below 91 GeV, Glauber-Gribov above + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticLHEP: 0 meV ---> 1.0001 GeV + Model: hElasticGlauber: 1 GeV ---> 100 TeV + Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: pi-Inelastic + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 0 meV ---> 5 GeV + Cr_sctns: G4CrossSectionPairGG: 0 meV ---> 100 TeV + G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections + below 91 GeV, Glauber-Gribov above + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 meV ---> 100 TeV + Cr_sctns: ChipsProtonElasticXS: 0 meV ---> 100 TeV + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: protonInelastic + Model: FTFP: 4 GeV ---> 100 TeV + Model: BertiniCascade: 0 meV ---> 5 GeV + Cr_sctns: Barashenkov-Glauber: 0 meV ---> 100 TeV + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n + Cr_sctns: GheishaElastic: 0 meV ---> 100 TeV + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 meV/n ---> 4 GeV/n + Model: FTFP: 2 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 meV ---> 2.88022e+295 J + Cr_sctns: GheishaInelastic: 0 meV ---> 100 TeV + +================================================================ + ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes @@ -339,54 +651,55 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=2.3s Real=2.32s Sys=0s + User=2.36s Real=2.36s Sys=0s The run is 10000 Ne24 of 0 meV 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 = 803.16 keV rms = 419.92 keV - Mean energy deposit in detector, in time window = 17.252 keV rms = 104.32 keV + Mean energy deposit in target, in time window = 873.96 keV rms = 453.52 keV + Mean energy deposit in detector, in time window = 170.8 keV rms = 216.06 keV Process calls frequency in target : - RadioactiveDecay= 60773 Transportation= 50167 annihil= 141 - compt= 4168 conv= 151 eIoni= 25884 - ionIoni= 50773 msc= 3645 phot= 1568 + RadioactiveDecay= 60728 Transportation= 50203 annihil= 159 + compt= 4180 conv= 168 eIoni= 25893 + ionIoni= 19990 msc= 4007 phot= 1531 Process calls frequency in detector: - Transportation= 45873 annihil= 343 compt= 22407 - conv= 340 eIoni= 27259 msc= 6720 - phot= 4182 + Transportation= 45881 annihil= 333 compt= 22727 + conv= 328 eIoni= 27692 msc= 7681 + phot= 4342 List of generated particles in target: - Mg24: 10000 Emean = 42.045 eV ( 41.932 eV --> 795.34 eV ) - Mg24[1368.672]: 9998 Emean = 169.94 eV ( 113.29 eV --> 457.32 eV ) - Mg24[4122.889]: 9987 Emean = 39.221 eV ( 132.61 meV --> 74.935 eV ) - Mg24[5235.120]: 7 Emean = 2.099 eV ( 325.33 meV --> 6.156 eV ) - Na24: 9998 Emean = 4.9944 eV ( 4.9901 eV --> 15.742 eV ) - Na24[1346.621]: 780 Emean = 26.856 eV ( 346.58 meV --> 52.203 eV ) - Na24[472.207]: 10000 Emean = 68.218 eV ( 47.792 meV --> 133.75 eV ) - Na24[563.199]: 3 Emean = 13.735 eV ( 13.735 eV --> 13.735 eV ) - anti_nu_e: 20000 Emean = 984.22 keV ( 39.349 keV --> 2.8613 MeV) - e+: 151 Emean = 827.17 keV ( 39.922 keV --> 1.6151 MeV) - e-: 25898 Emean = 636.56 keV ( 72.464 eV --> 4.3551 MeV) - gamma: 31051 Emean = 1.5061 MeV ( 90.991 keV --> 3.8661 MeV) + Mg24: 10000 Emean = 42.383 eV ( 41.932 eV --> 801.13 eV ) + Mg24[1368.672]: 9988 Emean = 169.95 eV ( 169.78 eV --> 442.27 eV ) + Mg24[4122.889]: 9978 Emean = 38.951 eV ( 2.7467 meV --> 74.904 eV ) + Mg24[4238.240]: 2 Emean = 22.241 eV ( 22.241 eV --> 22.241 eV ) + Mg24[5235.120]: 9 Emean = 2.2069 eV ( 363.54 meV --> 4.9664 eV ) + Na24: 9990 Emean = 4.9933 eV ( 4.9901 eV --> 15.742 eV ) + Na24[1346.621]: 755 Emean = 26.658 eV ( 316.07 meV --> 52.699 eV ) + Na24[472.207]: 10000 Emean = 68.311 eV ( 124.34 meV --> 133.33 eV ) + Na24[563.199]: 6 Emean = 13.735 eV ( 13.735 eV --> 13.735 eV ) + anti_nu_e: 20000 Emean = 984.4 keV ( 39.274 keV --> 4.8264 MeV) + e+: 168 Emean = 808.64 keV ( 7.3504 keV --> 1.686 MeV) + e-: 25887 Emean = 638.86 keV ( 72.947 eV --> 3.5894 MeV) + gamma: 31043 Emean = 1.5053 MeV ( 90.991 keV --> 4.2378 MeV) List of generated particles in detector: - e+: 340 Emean = 818.69 keV ( 19.771 keV --> 1.6818 MeV) - e-: 26916 Emean = 377.71 keV ( 104.65 eV --> 3.5808 MeV) - gamma: 686 Emean = 512.85 keV ( 359.97 keV --> 1.1745 MeV) + e+: 328 Emean = 849.96 keV ( 6.0663 keV --> 1.6762 MeV) + e-: 27383 Emean = 371.98 keV ( 104.22 eV --> 3.5685 MeV) + gamma: 666 Emean = 514.83 keV ( 319.64 keV --> 1.4992 MeV) ... write Root file : rdecay02.root - done --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 341124367, 1211203432 + Current couple of seeds = 735561446, 2144484255 ---------------------------------------- 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.026 MB +Dynamic pools deleted: 10 / Total memory freed: 0.028 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/radioactivedecay/rdecay02/src/PhysicsList.cc b/examples/extended/radioactivedecay/rdecay02/src/PhysicsList.cc index 79afbfdf0c..7f55c69cac 100644 --- a/examples/extended/radioactivedecay/rdecay02/src/PhysicsList.cc +++ b/examples/extended/radioactivedecay/rdecay02/src/PhysicsList.cc @@ -91,23 +91,23 @@ PhysicsList::PhysicsList() RegisterPhysics(new G4RadioactiveDecayPhysics()); // Hadron Elastic scattering - ////RegisterPhysics( new G4HadronElasticPhysicsHP(verb) ); + RegisterPhysics( new G4HadronElasticPhysicsHP(verb) ); // Hadron Inelastic physics - ////RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); + RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); ////RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); ////RegisterPhysics( new G4HadronInelasticQBBC(verb)); ////RegisterPhysics( new G4HadronPhysicsINCLXX(verb)); // Ion Elastic scattering - ///RegisterPhysics( new G4IonElasticPhysics(verb)); + RegisterPhysics( new G4IonElasticPhysics(verb)); // Ion Inelastic physics - ////RegisterPhysics( new G4IonPhysics(verb)); + RegisterPhysics( new G4IonPhysics(verb)); ////RegisterPhysics( new G4IonINCLXXPhysics(verb)); // Gamma-Nuclear Physics - ////RegisterPhysics( new GammaPhysics("gamma")); + RegisterPhysics( new GammaPhysics("gamma")); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/runAndEvent/History b/examples/extended/runAndEvent/History index 6a8c1cf67e..ec45ffbfe1 100644 --- a/examples/extended/runAndEvent/History +++ b/examples/extended/runAndEvent/History @@ -1,4 +1,4 @@ -$Id: History 68026 2013-03-13 13:45:22Z gcosmo $ +$Id: History 97383 2016-06-02 09:56:35Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -16,7 +16,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -Feb 15, 2013 I. Hrivnacova (exRunAndEvent-V09-06-01) +Jun. 01, 2016 M. Asai (exRunAndEvent-V10-02-00) +- README is updated + +Feb. 15, 2013 I. Hrivnacova (exRunAndEvent-V09-06-01) - Applied coding guidelines (data members names and initialization) - Fixed GNUmakefile (in RE05, RE06) diff --git a/examples/extended/runAndEvent/RE01/History b/examples/extended/runAndEvent/RE01/History index 54b49fff6d..0445b30203 100644 --- a/examples/extended/runAndEvent/RE01/History +++ b/examples/extended/runAndEvent/RE01/History @@ -1,4 +1,4 @@ -$Id: History 90679 2015-06-08 07:58:19Z gcosmo $ +$Id: History 97671 2016-06-07 08:25:00Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 06, 2016 M. Asai (exampleRE01-V10-02-01) +- Add protection against a track sticks on the calorimeter inner + boundary. + +Jun 01, 2016 M. Asai (exampleRE01-V10-02-00) +- Remove the obsolete use of readout geometry. +- Use G4UnknownDecayPhysics constructor and remove hard-coded + physics RE01PhysicsList. + Jun 06, 2015 M. Asai (exampleRE01-V10-01-00) - Reduce print out. diff --git a/examples/extended/runAndEvent/RE01/RE01.cc b/examples/extended/runAndEvent/RE01/RE01.cc index a264ebab23..22eb4e2005 100644 --- a/examples/extended/runAndEvent/RE01/RE01.cc +++ b/examples/extended/runAndEvent/RE01/RE01.cc @@ -48,9 +48,10 @@ #include "G4UImanager.hh" #include "RE01DetectorConstruction.hh" -#include "RE01PhysicsList.hh" +#include "RE01CalorimeterROGeometry.hh" #include "QGSP_BERT.hh" - +#include "G4UnknownDecayPhysics.hh" +#include "G4ParallelWorldPhysics.hh" #include "RE01ActionInitialization.hh" @@ -77,11 +78,21 @@ int main(int argc,char** argv) visManager->Initialize(); #endif - runManager->SetUserInitialization(new RE01DetectorConstruction); - runManager->SetUserInitialization(new RE01PhysicsList); - //runManager->SetUserInitialization(new QGSP_BERT); + G4String parallelWorldName = "ReadoutWorld"; + G4VUserDetectorConstruction* detector + = new RE01DetectorConstruction(); + detector->RegisterParallelWorld( + new RE01CalorimeterROGeometry(parallelWorldName)); + runManager->SetUserInitialization(detector); + + G4VModularPhysicsList* physicsList = new QGSP_BERT; + physicsList->RegisterPhysics(new G4UnknownDecayPhysics); + physicsList->RegisterPhysics( + new G4ParallelWorldPhysics(parallelWorldName)); + runManager->SetUserInitialization(physicsList); - runManager->SetUserInitialization(new RE01ActionInitialization); + runManager->SetUserInitialization( + new RE01ActionInitialization); runManager->Initialize(); diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh index 5b21adb9a8..a8e54be500 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh @@ -26,23 +26,23 @@ /// \file runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh /// \brief Definition of the RE01CalorimeterROGeometry class // -// $Id: RE01CalorimeterROGeometry.hh 66379 2012-12-18 09:46:33Z gcosmo $ +// $Id: RE01CalorimeterROGeometry.hh 97383 2016-06-02 09:56:35Z gcosmo $ // #ifndef RE01CalorimeterROGeometry_h #define RE01CalorimeterROGeometry_h 1 -#include "G4VReadOutGeometry.hh" +#include "G4VUserParallelWorld.hh" -class RE01CalorimeterROGeometry : public G4VReadOutGeometry +class RE01CalorimeterROGeometry : public G4VUserParallelWorld { public: - RE01CalorimeterROGeometry(); - RE01CalorimeterROGeometry(G4String); + RE01CalorimeterROGeometry(G4String&); virtual ~RE01CalorimeterROGeometry(); protected: - virtual G4VPhysicalVolume* Build(); + virtual void Construct(); + virtual void ConstructSD(); private: #include "RE01DetectorParameterDef.hh" diff --git a/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh b/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh index a72fd93e50..a92227675c 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh @@ -26,7 +26,7 @@ /// \file runAndEvent/RE01/include/RE01DetectorConstruction.hh /// \brief Definition of the RE01DetectorConstruction class // -// $Id: RE01DetectorConstruction.hh 75295 2013-10-30 09:32:52Z gcosmo $ +// $Id: RE01DetectorConstruction.hh 97383 2016-06-02 09:56:35Z gcosmo $ // #ifndef RE01DetectorConstruction_h @@ -37,7 +37,6 @@ class G4VPhysicalVolume; class G4LogicalVolume; -class G4VReadOutGeometry; class RE01DetectorConstruction : public G4VUserDetectorConstruction { @@ -54,7 +53,6 @@ private: G4LogicalVolume * fTrackerLayer_log; G4LogicalVolume * fCalorimeter_log; - G4VReadOutGeometry * fCalorimeterRO; }; #endif diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh index 9944133765..8127371c1c 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh @@ -27,7 +27,7 @@ /// \brief Definition of the RE01TrackInformation class // // -// $Id: RE01TrackInformation.hh 75295 2013-10-30 09:32:52Z gcosmo $ +// $Id: RE01TrackInformation.hh 97671 2016-06-07 08:25:00Z gcosmo $ // #ifndef RE01TrackInformation_h @@ -60,6 +60,8 @@ public: inline G4int GetTrackingStatus() const {return fTrackingStatus;} inline void SetTrackingStatus(G4int i) {fTrackingStatus = i;} inline G4int GetSourceTrackID() const {return fSourceTrackID;} + inline void SetSuspendedStepID(G4int i) {fSuspendedStepID = i;} + inline G4int GetSuspendedStepID() const {return fSuspendedStepID;} private: // Information of the primary track at the primary vertex @@ -75,7 +77,7 @@ private: // to calorimeter // = 0 : track which or ancester of which has reached to // calorimeter - // = 2 : track or its ancester had once reached to calorimeter + // = 2 : track or its ancester had reached to calorimeter // and then escaped from it // Information of the track which reached to the calorimeter boundary at the // boundary surface. @@ -86,11 +88,11 @@ private: G4ThreeVector fSourceMomentum; G4double fSourceEnergy; G4double fSourceTime; - + G4int fSuspendedStepID; }; -extern G4ThreadLocal G4Allocator * aTrackInformationAllocator; -//extern G4Allocator aTrackInformationAllocator; +extern G4ThreadLocal + G4Allocator * aTrackInformationAllocator; inline void* RE01TrackInformation::operator new(size_t) { diff --git a/examples/extended/runAndEvent/RE01/sample.in b/examples/extended/runAndEvent/RE01/sample.in index ce07880ac0..a45b695b35 100644 --- a/examples/extended/runAndEvent/RE01/sample.in +++ b/examples/extended/runAndEvent/RE01/sample.in @@ -1,6 +1,7 @@ /control/verbose 1 # /mydet/generator PYTHIA +##/mydet/generator particleGun # /run/beamOn 1 # diff --git a/examples/extended/runAndEvent/RE01/sample.out b/examples/extended/runAndEvent/RE01/sample.out index f5ec06d17a..2120c19038 100644 --- a/examples/extended/runAndEvent/RE01/sample.out +++ b/examples/extended/runAndEvent/RE01/sample.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -37,16 +37,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -57,9 +59,18 @@ Some /vis commands (optionally) take a string to specify colour. Available colours: black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow -<<< Geant4 Physics List simulation engine: QGSP_BERT 3.4 +<<< Geant4 Physics List simulation engine: QGSP_BERT 4.0 I'm World. + G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Warning : Region does not have specific production cuts, even though it appears in the current tracking world. @@ -185,7 +196,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -199,7 +210,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -308,7 +319,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -341,7 +352,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -469,6 +480,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -757,14 +773,5026 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 Tracks in tracking region have been processed. -- Stage 0 over. +Source track ID 1995 (e+,0.020371338441058[GeV]) at (-499.83064825107,13.012419794755,-1580.5061268837) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[2,23] 0.020882337351058 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.020882337351058 (GeV) + +Source track ID 7175 (e+,1.3460041810855[GeV]) at (143.91597898274,478.84046507521,-281.22743191337) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[8,9] 1.259144152419 [GeV] +Cell[9,7] 0.00018500484721442 [GeV] +Cell[8,10] 0.055209724044284 [GeV] +Cell[8,8] 0.0058254517007762 [GeV] +Cell[7,9] 0.0065604010443245 [GeV] +Cell[6,24] 0.0010118050426047 [GeV] +Cell[9,40] 0.00040736775004051 [GeV] +Cell[8,11] 0.0012402020545565 [GeV] +Cell[11,39] 0.0016310207673456 [GeV] +Cell[5,35] 0.0010250795263739 [GeV] +Cell[7,7] 0.0028579466492059 [GeV] +Cell[11,40] 0.0017012253394161 [GeV] +Cell[7,8] 0.00051099891 [GeV] +Cell[7,11] 0.00040167780124827 [GeV] +Cell[7,10] 0.0060057006042582 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 1.3437177585007 (GeV) + +Source track ID 3232 (e+,0.70255041142024[GeV]) at (-80.573254406634,-493.46524768653,-434.97863789324) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 0.68869324190352 [GeV] +Cell[7,35] 0.0076362480037259 [GeV] +Cell[8,47] 0.0018521108790501 [GeV] +Cell[9,10] 0.0011385301978738 [GeV] +Cell[7,33] 0.00089058624442256 [GeV] +Cell[8,34] 0.0023371594739012 [GeV] +Cell[9,31] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.70305887561249 (GeV) + +Source track ID 7089 (e+,71.544469823807[GeV]) at (140.81700804293,479.76095114738,-280.92347038454) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[8,9] 65.204032019016 [GeV] +Cell[9,7] 0.0049839725447255 [GeV] +Cell[8,10] 4.6277051433899 [GeV] +Cell[8,8] 0.41195535548881 [GeV] +Cell[7,9] 0.45122437138428 [GeV] +Cell[8,11] 0.11725068088794 [GeV] +Cell[5,35] 0.0015022048374036 [GeV] +Cell[7,7] 0.0076062084758976 [GeV] +Cell[11,40] 0.00045574650853293 [GeV] +Cell[7,8] 0.066135074426589 [GeV] +Cell[7,11] 0.041928931445848 [GeV] +Cell[7,10] 0.24739104221816 [GeV] +Cell[7,35] 0.0012348099362772 [GeV] +Cell[9,10] 0.0075813170004123 [GeV] +Cell[7,33] 0.00021272127970207 [GeV] +Cell[9,31] 0.0017403350605574 [GeV] +Cell[14,1] 0.00050529501088499 [GeV] +Cell[8,7] 0.019534069508827 [GeV] +Cell[9,9] 0.01408067165311 [GeV] +Cell[8,5] 0.0023499093700999 [GeV] +Cell[8,22] 0.00098466106790685 [GeV] +Cell[7,29] 0.0047822763540763 [GeV] +Cell[7,30] 0.0025847991104101 [GeV] +Cell[10,46] 0.00061597284601016 [GeV] +Cell[8,12] 0.002776755200084 [GeV] +Cell[5,23] 0.00097991075427472 [GeV] +Cell[6,22] 0.002534987213514 [GeV] +Cell[9,8] 0.0048403662646821 [GeV] +Cell[7,44] 0.0024273884455172 [GeV] +Cell[8,6] 0.0013067672457156 [GeV] +Cell[9,34] 0.00091105412011106 [GeV] +Cell[7,37] 0.00068643825845669 [GeV] +Cell[10,33] 0.0018741766331263 [GeV] +Cell[4,40] 0.0016777641694484 [GeV] +Cell[9,11] 0.0085992992098533 [GeV] +Cell[9,47] 0.00046923802713154 [GeV] +Cell[8,30] 0.0020209256398313 [GeV] +Cell[6,20] 0.00043286999355915 [GeV] +Cell[6,43] 0.0032895934126612 [GeV] +Cell[13,38] 0.0015323620860918 [GeV] +Cell[8,13] 0.007581223629819 [GeV] +Cell[17,18] 0.00053966159565372 [GeV] +Cell[10,19] 0.001617152570371 [GeV] +Cell[10,18] 1.7868398453762e-05 [GeV] +Cell[12,29] 0.0014061450660677 [GeV] +Cell[9,12] 0.0011158086456682 [GeV] +Cell[6,44] 0.0021897520232712 [GeV] +Cell[7,38] 0.00051099891 [GeV] +Cell[10,34] 0.001711201990878 [GeV] +Cell[10,12] 0.00026489380805879 [GeV] +Cell[10,11] 0.00024610510194121 [GeV] +Cell[7,12] 0.0036894323272025 [GeV] +Cell[7,6] 0.0052544422130802 [GeV] +Cell[13,34] 0.0011563311271965 [GeV] +Cell[7,39] 0.00045114880399318 [GeV] +Cell[6,37] 0.0014599627990746 [GeV] +Cell[7,27] 0.00056456086121899 [GeV] +Cell[1,15] 0.0010440416564478 [GeV] +Cell[6,30] 0.0002236425426952 [GeV] +Cell[5,10] 0.00033534021183253 [GeV] +Cell[9,37] 0.001271466034523 [GeV] +Cell[10,1] 0.00029958242335534 [GeV] +Cell[17,29] 0.0012079654353479 [GeV] +Cell[13,29] 0.00084856587492476 [GeV] +Cell[6,33] 0.00060106170381912 [GeV] +Cell[13,32] 0.0015847254332138 [GeV] +Cell[13,37] 0.00070359891435151 [GeV] +Cell[6,9] 0.002367599379365 [GeV] +Cell[8,17] 0.0004257907554292 [GeV] +Cell[7,41] 0.00014155405151579 [GeV] +Cell[6,5] 0.00025263373579363 [GeV] +Cell[6,6] 0.00045843365309525 [GeV] +Cell[9,4] 0.00059382097946056 [GeV] +Cell[2,34] 0.0046767036904078 [GeV] +Cell[7,40] 0.00063311906449662 [GeV] +Cell[7,47] 0.003331099241033 [GeV] +Cell[4,38] 0.0060167318245311 [GeV] +Cell[1,4] 0.00051099891 [GeV] +Cell[8,31] 0.00056409463340605 [GeV] +Cell[11,1] 0.0001442160030459 [GeV] +Cell[8,16] 0.00014112453155831 [GeV] +Cell[0,46] 0.00045003531160675 [GeV] +Cell[6,10] 0.00024247520436171 [GeV] +Cell[11,21] 0.00066169502226129 [GeV] +Cell[5,24] 0.0028128762159634 [GeV] +Cell[10,3] 0.00051903530428341 [GeV] +Cell[7,25] 0.0010661098008507 [GeV] +Cell[8,42] 0.00052504900580541 [GeV] +Cell[3,31] 0.0030473310561949 [GeV] +Cell[7,13] 0.0010657645588326 [GeV] +Cell[6,13] 0.0012461215581435 [GeV] +Cell[6,12] 0.0018515950525135 [GeV] +Cell[9,16] 0.0022786896684216 [GeV] +Cell[6,11] 0.0021229071663322 [GeV] +Cell[5,36] 0.00062667571440973 [GeV] +Cell[6,16] 0.00030345432812888 [GeV] +Cell[15,39] 0.000103555308419 [GeV] +Cell[5,26] 0.0043645069335127 [GeV] +Cell[16,26] 0.0001614090720014 [GeV] +Cell[14,31] 0.0036066883067657 [GeV] +Cell[3,26] 0.0017198948767343 [GeV] +Cell[10,2] 0.00027164507200825 [GeV] +Cell[7,14] 0.0016298722122905 [GeV] +Cell[1,38] 0.0012937143160391 [GeV] +Cell[8,46] 0.0014179275669818 [GeV] +Cell[12,26] 0.00012193546601994 [GeV] +Cell[4,35] 0.00051099891 [GeV] +Cell[9,29] 1.7486136348452e-06 [GeV] +Cell[8,21] 1.7252908728551e-06 [GeV] +Cell[2,27] 1.0616796789691e-06 [GeV] +Cell[3,27] 0.0001050433200528 [GeV] +Cell[5,42] 5.5960207479075e-05 [GeV] +Cell[5,21] 0.0010685823328579 [GeV] +Cell[5,20] 3.7904556054855e-05 [GeV] +Cell[5,22] 0.0012812202434872 [GeV] +Cell[4,22] 4.610687319655e-06 [GeV] +Cell[10,35] 4.8005118151195e-07 [GeV] +Cell[9,32] 7.527046254836e-07 [GeV] +Cell[7,46] 7.7707911259495e-07 [GeV] +Cell[7,45] 1.6853613778949e-06 [GeV] +Cell[4,32] 7.4607197893783e-07 [GeV] +Cell[3,10] 4.1377640334076e-05 [GeV] +Cell[3,9] 7.2517312560194e-08 [GeV] +Cell[9,43] 8.7606676756423e-05 [GeV] +Cell[9,42] 2.44045922841e-07 [GeV] +Cell[9,26] 0.0027090610934687 [GeV] +Cell[9,27] 0.00038359459480807 [GeV] +Cell[9,28] 6.2078470364213e-11 [GeV] +Cell[8,26] 2.9196285140642e-09 [GeV] +Cell[16,6] 5.2501272875816e-08 [GeV] +Cell[18,37] 6.4097786889761e-08 [GeV] +Cell[19,37] 1.6737505718538e-06 [GeV] +Cell[10,20] 1.1702999618137e-05 [GeV] +Cell[13,28] 9.2220003134571e-06 [GeV] +Cell[11,41] 1.0621260298649e-05 [GeV] +Cell[7,0] 0.00035240041764496 [GeV] +Cell[7,1] 1.6357149299324e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 137 cells : 71.373100400987 (GeV) + +Source track ID 4084 (e+,0.33434897485094[GeV]) at (-155.09060256694,475.33872658918,-141.18616417297) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,11] 0.00022785625026378 [GeV] +Cell[8,13] 0.0052305319255633 [GeV] +Cell[9,14] 0.28466581483648 [GeV] +Cell[9,13] 0.044736769678635 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.33486097269094 (GeV) + +Source track ID 6806 (e+,0.48431420130748[GeV]) at (-408.01183147801,-289.00924790386,428.92180339376) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,19] 0.00049181104341814 [GeV] +Cell[12,29] 0.022003192220632 [GeV] +Cell[11,41] 0.0025411484782962 [GeV] +Cell[12,28] 0.45625686232759 [GeV] +Cell[11,16] 0.00065342301084731 [GeV] +Cell[11,28] 0.00058882300784321 [GeV] +Cell[11,0] 0.0001995040873112 [GeV] +Cell[13,24] 0.0011347618794439 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.48386952605539 (GeV) + +Source track ID 4338 (e+,0.072410137982699[GeV]) at (-312.26178191577,-390.50298277323,1484.0125648095) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[17,30] 0.025340429193217 [GeV] +Cell[17,31] 0.042608204938808 [GeV] +Cell[14,13] 0.00051099891 [GeV] +Cell[17,32] 0.0044615038506739 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.072921136892699 (GeV) + +Source track ID 5388 (e+,0.047476624437982[GeV]) at (-423.86832622798,265.20867636767,-1347.3568802832) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[3,19] 0.046733424755772 [GeV] +Cell[3,20] 0.0012541985922098 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.047987623347982 (GeV) + +Source track ID 207 (gamma,0.46372847760985[GeV]) at (-465.99474821524,181.24264022525,-913.38295488351) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,38] 0.0003442002252486 [GeV] +Cell[6,37] 0.0012346139579175 [GeV] +Cell[5,21] 0.41325421667783 [GeV] +Cell[5,20] 0.024144537180283 [GeV] +Cell[5,22] 0.00035090677895235 [GeV] +Cell[7,46] 0.00092112188288619 [GeV] +Cell[6,28] 0.0008129796860181 [GeV] +Cell[1,5] 0.0012161570644704 [GeV] +Cell[7,28] 0.002053790763289 [GeV] +Cell[4,19] 0.00072405885033012 [GeV] +Cell[4,20] 0.0068598718258138 [GeV] +Cell[8,1] 0.0018532958313768 [GeV] +Cell[3,40] 0.00060097530610213 [GeV] +Cell[4,30] 0.0021865919140438 [GeV] +Cell[4,7] 0.0021679932328883 [GeV] +Cell[3,43] 0.00064673538811552 [GeV] +Cell[4,21] 0.002860580460186 [GeV] +Cell[1,17] 0.00017934329114286 [GeV] +Cell[4,39] 0.00051099891 [GeV] +Cell[5,19] 0.00047057915108048 [GeV] +### Total energy deposition in calorimeter by a source track in 20 cells : 0.46339354837797 (GeV) + +Source track ID 7178 (gamma,0.008329658293816[GeV]) at (134.01808145708,481.70442580753,-280.71938747562) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[8,10] 0.008329658293816 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.008329658293816 (GeV) + +Source track ID 206 (gamma,0.028595474656773[GeV]) at (328.18596981951,377.21872860931,-300.64106966224) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[8,6] 0.027556413869379 [GeV] +Cell[7,25] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.028067412779379 (GeV) + +Source track ID 7166 (gamma,0.12355863866175[GeV]) at (140.39142138121,479.88566221816,-280.92755237191) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[8,9] 0.10785812101724 [GeV] +Cell[8,10] 0.010357103354281 [GeV] +Cell[8,8] 0.00075735111072918 [GeV] +Cell[7,44] 0.0012685383721966 [GeV] +Cell[10,19] 0.00012887539087223 [GeV] +Cell[6,36] 0.00046211256110788 [GeV] +Cell[8,3] 0.00010576867167557 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.1209378704781 (GeV) + +Source track ID 204 (gamma,0.21067608644927[GeV]) at (-247.62061570689,-434.37775113021,-1046.3393917554) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[3,31] 0.00024482603896461 [GeV] +Cell[4,32] 0.1972102476764 [GeV] +Cell[1,22] 0.0024892852626808 [GeV] +Cell[4,31] 0.0099561153679158 [GeV] +Cell[0,6] 0.00077561210330792 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.21067608644927 (GeV) + +Source track ID 7053 (gamma,0.18586941759822[GeV]) at (-308.57133112814,-393.42563923289,1178.6007064175) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[15,30] 0.030177428849237 [GeV] +Cell[15,31] 0.0069595325967231 [GeV] +Cell[16,30] 0.11754352255187 [GeV] +Cell[16,31] 0.027416149747003 [GeV] +Cell[15,15] 0.0010422620200701 [GeV] +Cell[15,43] 0.0015489554651217 [GeV] +Cell[17,8] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.18519885014002 (GeV) + +Source track ID 203 (gamma,1.2213291054873[GeV]) at (-495.81010450948,64.593655000338,-1525.287087725) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[2,23] 0.7185139075218 [GeV] +Cell[1,22] 0.043698751607859 [GeV] +Cell[0,6] 0.0042033588301667 [GeV] +Cell[2,22] 0.36285334136994 [GeV] +Cell[1,23] 0.047875478505541 [GeV] +Cell[2,16] 0.00050069707203973 [GeV] +Cell[0,31] 0.00051099891 [GeV] +Cell[1,13] 0.0095311048030981 [GeV] +Cell[4,47] 0.00051099891 [GeV] +Cell[3,36] 0.00051099891 [GeV] +Cell[0,10] 0.00046552037329348 [GeV] +Cell[0,5] 0.0010935593987536 [GeV] +Cell[0,12] 0.00051099891 [GeV] +Cell[4,5] 0.00047046443111258 [GeV] +Cell[3,38] 0.00029377522288475 [GeV] +Cell[3,39] 0.00088319891637637 [GeV] +Cell[0,32] 0.00081873077155822 [GeV] +Cell[2,38] 0.00051099891 [GeV] +Cell[0,22] 0.005470492014918 [GeV] +Cell[1,24] 0.0021856851873016 [GeV] +Cell[2,24] 0.0015970928321426 [GeV] +Cell[0,19] 0.00019985163319213 [GeV] +Cell[5,47] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 23 cells : 1.203721003952 (GeV) + +Source track ID 7054 (gamma,0.79108390679382[GeV]) at (-463.39575265971,-187.78811575002,658.34954488287) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,26] 0.68401041280698 [GeV] +Cell[14,18] 0.00085989441758847 [GeV] +Cell[14,12] 0.00048291224895931 [GeV] +Cell[12,20] 0.00096211935452333 [GeV] +Cell[13,27] 0.08843788244298 [GeV] +Cell[15,4] 0.00024353521388857 [GeV] +Cell[15,14] 0.0001882245261985 [GeV] +Cell[16,7] 0.00062939602605904 [GeV] +Cell[11,14] 0.00052012601094918 [GeV] +Cell[10,14] 0.001448115887253 [GeV] +Cell[14,2] 0.0036960151264644 [GeV] +Cell[14,40] 0.00050315840364564 [GeV] +Cell[14,39] 0.001579428939067 [GeV] +Cell[14,27] 0.0013922191194078 [GeV] +Cell[10,41] 0.0017034015277295 [GeV] +Cell[14,3] 0.00051099891 [GeV] +Cell[13,1] 0.0010761223690208 [GeV] +### Total energy deposition in calorimeter by a source track in 17 cells : 0.78824396333071 (GeV) + +Source track ID 202 (gamma,0.06726801612498[GeV]) at (-461.11395318619,-193.32336169486,-562.35106918498) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,27] 0.04038542543884 [GeV] +Cell[7,25] 0.00093491359213774 [GeV] +Cell[7,26] 0.020681475752695 [GeV] +Cell[6,25] 0.0052662013413071 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.06726801612498 (GeV) + +Source track ID 6807 (gamma,0.012193487693599[GeV]) at (-406.77435973288,-290.74837964106,428.84508401688) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[12,28] 0.011682488783599 [GeV] +Cell[12,35] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.012193487693599 (GeV) + +Source track ID 299 (gamma,0.17556583448629[GeV]) at (-370.26449649485,336.01220608099,-37.728310159088) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[10,18] 0.0010619026318796 [GeV] +Cell[9,18] 0.16781162464909 [GeV] +Cell[9,17] 0.0061534048672545 [GeV] +Cell[9,19] 0.00043480217296678 [GeV] +Cell[10,17] 0.00010410016510325 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.17556583448629 (GeV) + +Source track ID 6720 (gamma,0.23519569097121[GeV]) at (-263.7058584825,-424.80492017161,329.32741491027) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,31] 0.20976561886066 [GeV] +Cell[11,32] 0.02090998718776 [GeV] +Cell[11,30] 0.003763332083973 [GeV] +Cell[12,31] 0.00030646744189386 [GeV] +Cell[13,0] 0.000450285396918 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.23519569097121 (GeV) + +Source track ID 298 (gamma,0.41164872010706[GeV]) at (-456.42209078155,204.15404734316,168.67820723429) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[10,19] 0.0015995893110776 [GeV] +Cell[11,21] 0.025610497430675 [GeV] +Cell[10,20] 0.35705709170908 [GeV] +Cell[10,21] 0.02025281004636 [GeV] +Cell[11,20] 0.0054193665478432 [GeV] +Cell[3,35] 0.0011638504588345 [GeV] +Cell[11,22] 0.00040515628371789 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.41150836178758 (GeV) + +Source track ID 6665 (gamma,0.0035050502589105[GeV]) at (-216.88571573014,-450.51147189858,187.99541714944) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,32] 0.003098589530994 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.003098589530994 (GeV) + +Source track ID 297 (gamma,0.41324573943274[GeV]) at (303.44001238969,-397.39672731534,976.47730315274) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,14] 0.00574420838866 [GeV] +Cell[15,43] 0.001415709332956 [GeV] +Cell[14,12] 0.00036153862867533 [GeV] +Cell[14,40] 0.17338033249134 [GeV] +Cell[17,17] 0.0065652200449936 [GeV] +Cell[17,16] 0.00091620741440844 [GeV] +Cell[16,16] 0.00052335043786513 [GeV] +Cell[15,40] 0.08888625974219 [GeV] +Cell[15,41] 0.062710191733677 [GeV] +Cell[14,41] 0.062471684870898 [GeV] +Cell[13,5] 0.0058430094119859 [GeV] +Cell[16,13] 0.00051099891 [GeV] +Cell[7,3] 0.00033006837940486 [GeV] +Cell[17,5] 0.0015515883084549 [GeV] +Cell[11,4] 0.0013927625652825 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.41260313066079 (GeV) + +Source track ID 6667 (gamma,0.0068554550141048[GeV]) at (-499.98659008862,3.6619300314634,341.84164346676) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,23] 0.0068554550141048 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0068554550141048 (GeV) + +Source track ID 523 (gamma,0.23940053141976[GeV]) at (-378.30991215902,-326.92753074991,1067.9855794264) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[15,30] 0.0010541156696204 [GeV] +Cell[16,7] 0.00091758729770816 [GeV] +Cell[15,29] 0.22323828278081 [GeV] +Cell[15,28] 0.0035227899615631 [GeV] +Cell[14,11] 0.0042199344602155 [GeV] +Cell[19,38] 0.0006536653819306 [GeV] +Cell[12,23] 0.00039138224992345 [GeV] +Cell[17,43] 0.0007100848981283 [GeV] +Cell[16,2] 0.00034178918780089 [GeV] +### Total energy deposition in calorimeter by a source track in 9 cells : 0.2350496318877 (GeV) + +Source track ID 6668 (gamma,9.6694153233724e-05[GeV]) at (-471.6101589273,-166.08388843161,44.058906529546) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,26] 9.6694153233724e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 9.6694153233724e-05 (GeV) + +Source track ID 858 (gamma,0.2516262100988[GeV]) at (499.02634662506,-31.188224926209,957.00761827252) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[13,24] 0.00029419059156171 [GeV] +Cell[14,47] 0.22912984008071 [GeV] +Cell[15,47] 0.0072626531765209 [GeV] +Cell[18,39] 0.0020493842543176 [GeV] +Cell[13,23] 0.0026712330307576 [GeV] +Cell[15,5] 0.0040967366350174 [GeV] +Cell[15,1] 0.0034630011572882 [GeV] +Cell[17,42] 0.00051099891 [GeV] +Cell[14,0] 0.0016371733526253 [GeV] +Cell[13,6] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.2516262100988 (GeV) + +Source track ID 6670 (gamma,0.0028887427270644[GeV]) at (481.3540615339,135.2710887249,356.37698921392) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,2] 0.0028887427270644 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0028887427270644 (GeV) + +Source track ID 928 (gamma,0.053266099197347[GeV]) at (183.99446167946,464.91508694737,-1027.4556904506) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[2,22] 0.00040226843030236 [GeV] +Cell[4,9] 0.052502757466742 [GeV] +Cell[4,8] 0.00036107330030338 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.053266099197347 (GeV) + +Source track ID 6674 (gamma,0.00011122683342725[GeV]) at (-214.73313211161,-451.5414510026,223.7611216368) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,32] 0.00011122683342725 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00011122683342725 (GeV) + +Source track ID 927 (gamma,0.59980090891317[GeV]) at (255.70125305912,-429.67065199289,-1133.3038195912) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[4,40] 0.41518863481839 [GeV] +Cell[3,40] 0.083309034870382 [GeV] +Cell[4,39] 0.028766721428497 [GeV] +Cell[3,39] 0.024679798982476 [GeV] +Cell[1,24] 0.0015838058547973 [GeV] +Cell[7,16] 0.00051099891 [GeV] +Cell[15,6] 0.0023282435673217 [GeV] +Cell[2,1] 0.00061169259136651 [GeV] +Cell[2,0] 0.0026888195356321 [GeV] +Cell[1,14] 0.00051099891 [GeV] +Cell[7,19] 0.00046589386537668 [GeV] +Cell[7,18] 0.00052084759547328 [GeV] +Cell[3,41] 0.00080024438559805 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.56196573531531 (GeV) + +Source track ID 6678 (gamma,0.0013961375449215[GeV]) at (-121.36055050857,-485.04805615553,288.06572821803) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,34] 0.0013961375449215 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0013961375449215 (GeV) + +Source track ID 926 (gamma,0.02130681471934[GeV]) at (476.42904069872,151.70817110129,-84.417697622126) +Original primary track ID 43 (unknown,52.984237098069[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 6682 (gamma,0.0019793560590379[GeV]) at (499.46373093323,-23.15127387972,374.88611343648) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,0] 0.00085802891969417 [GeV] +Cell[11,47] 0.0011213271393438 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.0019793560590379 (GeV) + +Source track ID 925 (gamma,0.39597382458922[GeV]) at (-372.59429785701,-333.4268873448,-1802.3852075327) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,6] 0.00069306149247432 [GeV] +Cell[3,19] 0.00089376078478173 [GeV] +Cell[0,10] 0.01015377722849 [GeV] +Cell[1,24] 0.00051099891 [GeV] +Cell[9,17] 0.00021899669387687 [GeV] +Cell[0,29] 0.31766324979199 [GeV] +Cell[3,45] 0.0011392663647195 [GeV] +Cell[0,33] 0.00038619137891457 [GeV] +Cell[0,28] 0.00064858031427702 [GeV] +Cell[0,0] 0.0021775647063988 [GeV] +Cell[1,43] 0.00049041387479136 [GeV] +Cell[0,44] 0.00041804926154571 [GeV] +Cell[0,43] 6.632918111282e-05 [GeV] +Cell[1,29] 0.0021197439892052 [GeV] +Cell[3,42] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.33809098288258 (GeV) + +Source track ID 6687 (gamma,0.0017162056381763[GeV]) at (335.0473909899,371.13777198078,1044.69522024) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[15,6] 0.0017162056381763 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0017162056381763 (GeV) + +Source track ID 924 (gamma,0.19239638056034[GeV]) at (-414.65187768795,279.39903423215,-1130.2071623946) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,33] 0.001030921042461 [GeV] +Cell[3,19] 0.0065478937494048 [GeV] +Cell[4,19] 0.17486148936195 [GeV] +Cell[4,7] 0.00061452673540305 [GeV] +Cell[3,18] 0.0012012310718808 [GeV] +Cell[2,35] 0.00072381500703356 [GeV] +Cell[1,2] 0.0011770151030413 [GeV] +Cell[4,45] 0.0045289429162032 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.19068583498738 (GeV) + +Source track ID 6688 (gamma,0.00030606793474423[GeV]) at (177.41812482039,-467.46423284056,809.30365097628) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[14,38] 0.00030484947445018 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00030484947445018 (GeV) + +Source track ID 978 (gamma,0.77353931528222[GeV]) at (193.22390285793,-461.15563898141,-1884.317016907) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[0,39] 0.57531739410284 [GeV] +Cell[0,38] 0.16748079190294 [GeV] +Cell[1,27] 0.00060034580584159 [GeV] +Cell[0,23] 0.00073051008557387 [GeV] +Cell[1,0] 0.0011123793986502 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.74524142129585 (GeV) + +Source track ID 6689 (gamma,0.00033612635970381[GeV]) at (-135.03042250874,481.42162913304,-269.5351558092) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[8,14] 0.00033612635970381 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00033612635970381 (GeV) + +Source track ID 977 (gamma,0.025785962614609[GeV]) at (-499.85155951578,12.182711095717,-421.85989028255) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,23] 0.021846765760906 [GeV] +Cell[7,24] 0.00051099891 [GeV] +Cell[6,38] 0.0034281979437033 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.025785962614609 (GeV) + +Source track ID 6630 (gamma,0.136782797126[GeV]) at (-378.97232984536,-326.15942913179,68.392677118453) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[9,29] 0.0005855411579907 [GeV] +Cell[10,29] 0.12476347298025 [GeV] +Cell[10,30] 0.009447015783231 [GeV] +Cell[10,28] 0.0019867672045374 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.136782797126 (GeV) + +Source track ID 1041 (gamma,0.16498092085606[GeV]) at (-167.27757736181,471.18808570672,-1116.9836308725) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,13] 0.00022488934837685 [GeV] +Cell[5,42] 0.00073091511071222 [GeV] +Cell[1,5] 0.0024120445117486 [GeV] +Cell[4,14] 0.14191083616112 [GeV] +Cell[0,47] 0.0013329586635617 [GeV] +Cell[3,3] 0.0003900368710669 [GeV] +Cell[4,2] 0.00098645847126553 [GeV] +Cell[5,5] 0.0029992747537935 [GeV] +Cell[4,28] 0.0012381771654065 [GeV] +Cell[3,28] 0.0012601031425832 [GeV] +Cell[4,24] 0.0010474964949879 [GeV] +Cell[2,44] 0.0012883440467221 [GeV] +Cell[4,13] 0.0014400594365668 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.15726159417792 (GeV) + +Source track ID 6592 (gamma,0.0001557137706387[GeV]) at (72.043860595961,494.78245942073,513.0389681197) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[12,10] 0.0001557137706387 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0001557137706387 (GeV) + +Source track ID 1501 (gamma,0.33413532464401[GeV]) at (245.8933673121,435.35784351717,97.500310757389) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[14,47] 0.00026541083973013 [GeV] +Cell[10,8] 0.31207432644858 [GeV] +Cell[10,7] 0.018677793173947 [GeV] +Cell[10,9] 0.0020285906514051 [GeV] +Cell[12,0] 7.2048340584524e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.33311816945425 (GeV) + +Source track ID 6593 (gamma,0.00012458758699722[GeV]) at (497.5677413241,-49.257921125823,174.67437428141) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,47] 0.00012458758699722 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00012458758699722 (GeV) + +Source track ID 1500 (gamma,0.23818895051853[GeV]) at (-24.111052240173,-499.41831880686,-17.911064377671) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[10,35] 0.012497218574516 [GeV] +Cell[9,35] 0.22286887841727 [GeV] +Cell[9,36] 0.0020630314877342 [GeV] +Cell[11,6] 0.00075982203901341 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.23818895051853 (GeV) + +Source track ID 6539 (gamma,0.032559394638405[GeV]) at (-498.62850803388,-37.008255510199,-1796.9972757266) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[1,24] 0.001635677960782 [GeV] +Cell[0,24] 0.028699169187988 [GeV] +Cell[1,6] 0.0022245474896355 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.032559394638405 (GeV) + +Source track ID 1828 (gamma,5.7473909027103e-05[GeV]) at (124.66394503733,-484.20956290405,109.1535477304) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,37] 5.7473909027103e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 5.7473909027103e-05 (GeV) + +Source track ID 6510 (gamma,1.9015972345342[GeV]) at (-363.22356463328,343.6111786527,-955.17208670115) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[5,35] 0.00029372210260326 [GeV] +Cell[6,9] 0.00042102469277778 [GeV] +Cell[5,21] 8.749215038491e-05 [GeV] +Cell[5,20] 0.00015879891495717 [GeV] +Cell[3,19] 0.0020019865765803 [GeV] +Cell[4,19] 0.0015526586822732 [GeV] +Cell[4,20] 0.00067675742540229 [GeV] +Cell[4,39] 0.00048145982490065 [GeV] +Cell[3,45] 0.00038246689692784 [GeV] +Cell[5,18] 0.88077494542433 [GeV] +Cell[4,18] 0.85738906046486 [GeV] +Cell[4,17] 0.12230646598394 [GeV] +Cell[5,33] 0.0016896471529454 [GeV] +Cell[4,41] 0.0015854444546627 [GeV] +Cell[5,11] 0.00061082157975948 [GeV] +Cell[5,17] 0.0047719695932974 [GeV] +Cell[5,16] 0.00026948325982542 [GeV] +Cell[5,4] 0.00094392884220104 [GeV] +Cell[6,4] 0.00051099891 [GeV] +Cell[6,8] 0.00051099891 [GeV] +Cell[5,39] 0.00051099891 [GeV] +Cell[1,46] 0.00075233880066296 [GeV] +Cell[3,34] 0.0016480958250026 [GeV] +Cell[2,45] 0.0022180853015255 [GeV] +Cell[4,16] 0.0015771849893458 [GeV] +Cell[6,47] 0.00051099891 [GeV] +Cell[10,0] 8.958143917883e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 27 cells : 1.8847274160183 (GeV) + +Source track ID 1826 (gamma,0.00058221974111444[GeV]) at (-388.74360408147,-314.44937634816,-63.498413097645) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[9,29] 0.00058221974111444 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00058221974111444 (GeV) + +Source track ID 6428 (gamma,0.3844820986824[GeV]) at (-413.63611652275,280.90062852899,-1134.9853398604) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[5,35] 0.00051099891 [GeV] +Cell[4,40] 0.00043796550241246 [GeV] +Cell[3,19] 0.035616231868648 [GeV] +Cell[3,20] 0.0029475308681393 [GeV] +Cell[4,19] 0.33737926237 [GeV] +Cell[4,20] 0.0011335982835624 [GeV] +Cell[3,35] 0.00048078777851541 [GeV] +Cell[4,18] 0.00075020143297077 [GeV] +Cell[4,17] 0.00066735321775022 [GeV] +Cell[2,36] 0.00039849186604513 [GeV] +Cell[2,37] 0.001168596026612 [GeV] +Cell[1,35] 0.00086641638360378 [GeV] +Cell[3,11] 0.00094908402862198 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.38330651853688 (GeV) + +Source track ID 1819 (gamma,0.0092079851698453[GeV]) at (34.375637273772,-498.81691587397,42.435724647831) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,36] 0.0092079851698453 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0092079851698453 (GeV) + +Source track ID 5604 (gamma,0.072295605026062[GeV]) at (342.49547344912,364.2757892955,-119.69498822911) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[8,7] 0.006497034063013 [GeV] +Cell[10,7] 0.00023428986757071 [GeV] +Cell[9,6] 0.058197528188198 [GeV] +Cell[9,5] 0.0035302186109422 [GeV] +Cell[7,21] 0.00041298973734411 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.068872060467068 (GeV) + +Source track ID 1815 (gamma,0.0054557673617344[GeV]) at (45.890288099125,-497.8896277873,102.31770654202) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,36] 0.0054557673617344 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0054557673617344 (GeV) + +Source track ID 5608 (gamma,0.17038281265325[GeV]) at (489.89453075191,100.01674229532,337.47083505944) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[11,1] 0.15653144097231 [GeV] +Cell[11,2] 0.013340372770938 [GeV] +Cell[9,22] 0.00043844431587986 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.17031025805913 (GeV) + +Source track ID 1814 (gamma,0.001760490153007[GeV]) at (43.487958947485,-498.10520718678,92.708862046444) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,36] 0.001760490153007 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.001760490153007 (GeV) + +Source track ID 5609 (gamma,0.24612511083258[GeV]) at (492.71804756209,-85.02308866771,431.96219523281) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[13,37] 8.4688201486238e-05 [GeV] +Cell[11,47] 0.00072567400351584 [GeV] +Cell[12,46] 0.220175447041 [GeV] +Cell[12,47] 0.020332432906688 [GeV] +Cell[12,45] 0.00025059493927258 [GeV] +Cell[11,43] 0.00023464936288599 [GeV] +Cell[12,25] 0.0012055364216888 [GeV] +Cell[13,36] 0.0004709435502766 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.24347996642681 (GeV) + +Source track ID 1813 (gamma,0.0001001606699851[GeV]) at (328.11724383397,-377.2785102531,235.77490050504) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[11,41] 0.0001001606699851 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0001001606699851 (GeV) + +Source track ID 5586 (gamma,0.23378010273678[GeV]) at (499.39194037069,24.651366956043,861.27116185885) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[14,47] 0.0031804375439821 [GeV] +Cell[14,0] 0.22841976085921 [GeV] +Cell[14,21] 0.0017387071292963 [GeV] +Cell[15,32] 0.00044119720429405 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.23378010273678 (GeV) + +Source track ID 1812 (gamma,0.0010362746563159[GeV]) at (-398.99361620876,301.33717697068,160.77548778237) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,19] 0.0010362746563159 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0010362746563159 (GeV) + +Source track ID 5587 (gamma,0.24889356279397[GeV]) at (220.29244047185,-448.85547860192,830.38548187241) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[15,43] 0.00083952799270017 [GeV] +Cell[14,40] 0.00051720711436959 [GeV] +Cell[14,39] 0.2405120627279 [GeV] +Cell[19,1] 0.0026632203671521 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.24453201820212 (GeV) + +Source track ID 1807 (gamma,0.00029623015630272[GeV]) at (268.91757534675,-421.52501428696,108.58749452346) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,40] 0.00029623015630272 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00029623015630272 (GeV) + +Source track ID 5597 (gamma,0.0013709189551302[GeV]) at (393.29070234967,-308.74329700465,312.59819707182) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[11,42] 0.0013709189551302 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0013709189551302 (GeV) + +Source track ID 1804 (gamma,4.6518471559286e-05[GeV]) at (63.561932728286,-495.94342490635,77.142769200132) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,36] 4.6518471559286e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 4.6518471559286e-05 (GeV) + +Source track ID 5598 (gamma,0.0010349673546678[GeV]) at (-499.8788576929,11.005799909021,192.60873826818) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[10,23] 0.0010349673546678 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0010349673546678 (GeV) + +Source track ID 1731 (gamma,0.12620965025075[GeV]) at (-487.28250296518,-112.05249798194,703.88980967862) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[13,24] 0.00048422871237584 [GeV] +Cell[13,26] 0.0046442289635312 [GeV] +Cell[13,25] 0.1145173583628 [GeV] +Cell[14,25] 0.0065638342120463 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.12620965025075 (GeV) + +Source track ID 5599 (gamma,7.1973334415651e-05[GeV]) at (-224.56713849696,-446.73213484961,-17.973779148667) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[9,32] 7.1973334415651e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 7.1973334415651e-05 (GeV) + +Source track ID 1859 (gamma,7.6068954474243e-05[GeV]) at (-151.07729931603,-476.62946785881,140.71216872023) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,33] 7.6068954474243e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 7.6068954474243e-05 (GeV) + +Source track ID 5565 (gamma,1.5351207931195[GeV]) at (395.55062644821,-305.84260971361,318.34457721366) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[8,26] 0.00046416098527226 [GeV] +Cell[11,41] 0.0090384644488462 [GeV] +Cell[10,21] 0.00010576286213854 [GeV] +Cell[17,17] 0.00098531556663618 [GeV] +Cell[10,8] 0.00051099891 [GeV] +Cell[11,43] 0.249527080452 [GeV] +Cell[11,42] 1.2263122104918 [GeV] +Cell[12,42] 0.037794289760895 [GeV] +Cell[11,3] 0.0010066619833689 [GeV] +Cell[12,43] 0.0056375938226104 [GeV] +Cell[11,44] 0.001152990272378 [GeV] +Cell[15,11] 0.00011878883167133 [GeV] +Cell[10,44] 0.0012062573282567 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 1.5338605757159 (GeV) + +Source track ID 1858 (gamma,0.00049897750060102[GeV]) at (-427.0297593237,260.08764801878,810.92921867246) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[14,19] 0.00049897750060102 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00049897750060102 (GeV) + +Source track ID 5566 (gamma,0.1244455075516[GeV]) at (447.26697575485,-223.50000536714,557.85468697838) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[12,44] 0.11834517206165 [GeV] +Cell[13,44] 0.0037127784861592 [GeV] +Cell[17,2] 0.001423767140208 [GeV] +Cell[11,25] 0.00045279095358771 [GeV] +Cell[11,24] 0.00049240189605576 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.12442691053766 (GeV) + +Source track ID 1856 (gamma,0.0012959415426783[GeV]) at (387.9695763506,315.40388048713,494.65265918935) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[12,5] 0.0012959415426783 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0012959415426783 (GeV) + +Source track ID 5531 (gamma,0.0010570023820934[GeV]) at (46.537946099449,-497.82950853967,97.465618169272) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[10,36] 0.0010570023820934 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0010570023820934 (GeV) + +Source track ID 1855 (gamma,0.0001320054264561[GeV]) at (-423.46371644071,265.85424739549,579.61664015982) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[12,19] 0.0001320054264561 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0001320054264561 (GeV) + +Source track ID 5533 (gamma,0.0003104147755112[GeV]) at (54.071540738465,-497.06766992248,157.28856543053) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[10,36] 0.0003104147755112 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0003104147755112 (GeV) + +Source track ID 1853 (gamma,0.0015344613297624[GeV]) at (-197.14310743469,-459.49384673899,159.92813923543) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,32] 0.0015344613297624 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0015344613297624 (GeV) + +Source track ID 4428 (gamma,0.0078294284258695[GeV]) at (-498.23976456639,41.918218054022,494.09160611509) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[13,0] 0.00010815637363078 [GeV] +Cell[12,23] 0.0072040736667362 [GeV] +Cell[13,16] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.0078232289503669 (GeV) + +Source track ID 1852 (gamma,9.2732868699218e-05[GeV]) at (496.4287682701,59.652980091775,764.70275395184) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[13,0] 9.2732868699218e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 9.2732868699218e-05 (GeV) + +Source track ID 4328 (gamma,0.89164369738079[GeV]) at (-456.12361604645,204.8200353596,886.89513719048) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[14,18] 0.00054357223479827 [GeV] +Cell[13,27] 0.00045127314805994 [GeV] +Cell[19,38] 0.0019402777205102 [GeV] +Cell[14,21] 0.040257082755619 [GeV] +Cell[14,19] 0.0060947506960674 [GeV] +Cell[14,20] 0.7305687644767 [GeV] +Cell[15,27] 0.00053091665397022 [GeV] +Cell[16,0] 0.00013550090668276 [GeV] +Cell[15,20] 0.093621610017181 [GeV] +Cell[15,18] 0.0017779291059844 [GeV] +Cell[15,19] 0.0012212823939313 [GeV] +Cell[15,21] 0.0043753986201389 [GeV] +Cell[18,10] 0.0016450168668263 [GeV] +Cell[15,22] 0.0034577617474539 [GeV] +Cell[15,33] 0.00051099891 [GeV] +Cell[17,4] 0.0024462108558585 [GeV] +### Total energy deposition in calorimeter by a source track in 16 cells : 0.88957834710978 (GeV) + +Source track ID 1850 (gamma,0.0024855506406361[GeV]) at (-62.76676881191,496.04468824181,435.54566135421) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[12,12] 0.0024855506406361 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0024855506406361 (GeV) + +Source track ID 4265 (gamma,0.062293140479318[GeV]) at (-277.09238037677,416.1968437376,226.70076216601) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[11,16] 0.060359135402503 [GeV] +Cell[11,17] 0.0014230061668144 [GeV] +Cell[10,43] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.062293140479318 (GeV) + +Source track ID 1849 (gamma,0.00022864472157208[GeV]) at (-106.69762611377,-488.48297471016,99.679642564634) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,34] 0.00022864472157208 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00022864472157208 (GeV) + +Source track ID 4266 (gamma,0.18169391742921[GeV]) at (418.45377669614,273.67213370882,279.34344183266) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[6,13] 2.5691013433971e-07 [GeV] +Cell[7,26] 3.1587650300935e-07 [GeV] +Cell[11,4] 0.15966276616415 [GeV] +Cell[1,29] 8.197823310411e-06 [GeV] +Cell[11,3] 0.0011358869745865 [GeV] +Cell[11,5] 0.0067409943487521 [GeV] +Cell[5,13] 4.7438568435609e-07 [GeV] +Cell[4,1] 2.4969995138235e-07 [GeV] +Cell[1,30] 1.4151632384142e-05 [GeV] +Cell[2,29] 9.0474053649814e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.16756338428951 (GeV) + +Source track ID 1848 (gamma,0.019337772687545[GeV]) at (34.248539018658,-498.82565849712,144.94006350449) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[10,36] 0.019337772687545 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.019337772687545 (GeV) + +Source track ID 4236 (gamma,0.43032370642417[GeV]) at (-193.66745707253,460.96953920087,1404.1020591749) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[17,16] 0.0012756263023409 [GeV] +Cell[15,22] 0.00051099891 [GeV] +Cell[17,15] 0.3357175904667 [GeV] +Cell[19,43] 0.0039371060050676 [GeV] +Cell[17,34] 0.00074400030569563 [GeV] +Cell[17,33] 0.0006646364298203 [GeV] +Cell[17,14] 0.069457478200553 [GeV] +Cell[19,26] 0.0012109154279719 [GeV] +Cell[17,35] 0.00069532887851666 [GeV] +Cell[16,22] 0.00038687221017997 [GeV] +Cell[17,23] 0.00070775585560033 [GeV] +Cell[18,42] 0.0003169766387945 [GeV] +Cell[19,31] 0.00051099891 [GeV] +Cell[18,45] 0.00048614514163811 [GeV] +Cell[17,39] 0.00051099891 [GeV] +Cell[15,23] 0.00062128796981471 [GeV] +Cell[14,36] 0.0001690411323089 [GeV] +Cell[13,41] 4.4718714756669e-05 [GeV] +Cell[16,14] 0.0041575156554454 [GeV] +Cell[15,26] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 20 cells : 0.4226369909752 (GeV) + +Source track ID 1934 (gamma,0.75885122891297[GeV]) at (497.51078044385,-49.829944231887,326.48051562711) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[11,0] 0.0073622614326267 [GeV] +Cell[13,23] 0.00087367906172256 [GeV] +Cell[11,47] 0.66820519027688 [GeV] +Cell[12,0] 0.00093176862139972 [GeV] +Cell[12,46] 0.0092116226722285 [GeV] +Cell[12,47] 0.051932509299814 [GeV] +Cell[12,43] 0.00086439808625074 [GeV] +Cell[12,44] 0.0021751406237188 [GeV] +Cell[13,44] 0.00056041287431032 [GeV] +Cell[11,46] 0.016234313893261 [GeV] +Cell[11,45] 0.00049993207076114 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.75885122891297 (GeV) + +Source track ID 4237 (gamma,0.84468519705162[GeV]) at (143.95468715,478.82882959106,1448.6318388921) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[17,18] 0.00051099891 [GeV] +Cell[17,8] 0.0025111139489201 [GeV] +Cell[14,25] 0.0015961331685731 [GeV] +Cell[16,0] 0.0033222137366592 [GeV] +Cell[19,43] 0.0014421471054851 [GeV] +Cell[17,9] 0.77804428646106 [GeV] +Cell[18,26] 0.00029148915081328 [GeV] +Cell[17,10] 0.016445384680631 [GeV] +Cell[13,47] 0.00021547975293248 [GeV] +Cell[18,28] 0.00055200449238085 [GeV] +Cell[17,24] 0.00025658706995757 [GeV] +Cell[19,20] 0.00051099891 [GeV] +Cell[16,34] 0.0011343615282485 [GeV] +Cell[15,45] 0.00051099891 [GeV] +Cell[16,18] 0.00051099891 [GeV] +Cell[16,41] 0.0003538112453033 [GeV] +Cell[16,42] 0.0001571876646967 [GeV] +Cell[16,10] 0.0006881533105746 [GeV] +Cell[16,9] 0.00074379418761342 [GeV] +Cell[13,35] 0.00051099891 [GeV] +Cell[16,29] 0.0010402914262053 [GeV] +### Total energy deposition in calorimeter by a source track in 21 cells : 0.81134943348006 (GeV) + +Source track ID 1933 (gamma,0.0001982094759837[GeV]) at (-499.64232516408,18.908910720271,-7.7746500856307) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[9,23] 0.0001982094759837 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0001982094759837 (GeV) + +Source track ID 4151 (gamma,0.21259862372436[GeV]) at (298.67434001105,-400.9908211156,-1192.0285789074) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[4,40] 0.018468725209405 [GeV] +Cell[1,4] 0.0008928398364692 [GeV] +Cell[6,13] 0.00034602519046579 [GeV] +Cell[3,40] 0.15737424235415 [GeV] +Cell[1,24] 0.0016601938539775 [GeV] +Cell[3,41] 0.0074956018742346 [GeV] +Cell[7,5] 0.00051099891 [GeV] +Cell[3,24] 0.0029473939656049 [GeV] +Cell[1,25] 0.011673932606191 [GeV] +Cell[0,25] 0.0025453041366941 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.2039152579372 (GeV) + +Source track ID 2012 (gamma,0.00042617624247919[GeV]) at (350.83919130047,356.24691135171,-663.07383868103) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[6,6] 0.00042617624247919 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00042617624247919 (GeV) + +Source track ID 4102 (gamma,0.0087064711073638[GeV]) at (-195.88991955704,460.02949841932,-133.4405514295) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,14] 0.00061419271082821 [GeV] +Cell[9,15] 0.0080922783965356 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.0087064711073638 (GeV) + +Source track ID 2011 (gamma,0.0010103429123759[GeV]) at (405.74100296163,292.18870360726,-574.87063282287) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[7,4] 0.0010103429123759 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0010103429123759 (GeV) + +Source track ID 4106 (gamma,0.53051937575115[GeV]) at (475.84610224893,-153.52682819137,-782.17055780088) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[5,10] 0.005457251886453 [GeV] +Cell[6,33] 0.00043404397222779 [GeV] +Cell[10,3] 0.00024702740136191 [GeV] +Cell[7,25] 0.00068987145303114 [GeV] +Cell[7,13] 0.0020262693827495 [GeV] +Cell[6,16] 0.00053558624636418 [GeV] +Cell[1,22] 0.00055302389586916 [GeV] +Cell[5,47] 0.0012693037791451 [GeV] +Cell[4,45] 0.0022806045089267 [GeV] +Cell[5,16] 0.00051099891 [GeV] +Cell[2,45] 0.00051099891 [GeV] +Cell[11,44] 0.00052921132012717 [GeV] +Cell[12,19] 0.00051099891 [GeV] +Cell[11,17] 0.00062229782818368 [GeV] +Cell[6,45] 0.3126606126259 [GeV] +Cell[3,17] 0.00022095806055935 [GeV] +Cell[1,16] 0.01061740695829 [GeV] +Cell[0,16] 0.00061103950722593 [GeV] +Cell[5,45] 0.15040828943679 [GeV] +Cell[5,44] 0.0062062687866069 [GeV] +Cell[6,46] 0.0027796144814974 [GeV] +Cell[0,37] 0.0012366545953761 [GeV] +Cell[5,15] 0.0012731557716344 [GeV] +Cell[1,47] 0.00030103177492213 [GeV] +Cell[6,34] 0.0015143876778177 [GeV] +Cell[5,46] 0.0097085770417404 [GeV] +Cell[5,43] 0.00051099891 [GeV] +Cell[7,17] 0.00051099891 [GeV] +Cell[9,39] 0.00023405671202517 [GeV] +Cell[3,13] 0.00051099891 [GeV] +Cell[1,19] 0.0013692519489223 [GeV] +### Total energy deposition in calorimeter by a source track in 31 cells : 0.51685179051375 (GeV) + +Source track ID 2010 (gamma,0.0010439008735184[GeV]) at (464.30956698445,185.51718520587,-507.53135102979) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[7,3] 0.0010439008735184 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0010439008735184 (GeV) + +Source track ID 4107 (gamma,0.17927399228015[GeV]) at (168.15424169666,-470.87594013649,-1264.523472726) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[3,38] 0.17548702029796 [GeV] +Cell[3,39] 0.001122719694161 [GeV] +Cell[1,19] 0.00058294442973851 [GeV] +Cell[1,11] 0.00048597873117716 [GeV] +Cell[0,7] 0.00078443274269213 [GeV] +Cell[3,37] 0.00029989747442036 [GeV] +Cell[3,23] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.17927399228015 (GeV) + +Source track ID 2007 (gamma,0.0010181915438045[GeV]) at (483.64040042046,126.85410155424,-465.45273858954) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[7,2] 0.0010181915438045 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0010181915438045 (GeV) + +Source track ID 4086 (gamma,0.14815181584447[GeV]) at (-470.45468731791,169.32922718956,-336.66128865576) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[4,40] 0.00028016684603045 [GeV] +Cell[6,9] 0.00012456076359741 [GeV] +Cell[8,21] 0.063748965343182 [GeV] +Cell[9,36] 0.0023090292560152 [GeV] +Cell[7,21] 0.081480984117009 [GeV] +Cell[8,20] 0.0002081095186343 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.14815181584447 (GeV) + +Source track ID 2006 (gamma,0.00031673261162247[GeV]) at (499.49364831337,-22.496561839585,-193.14368611662) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[9,47] 0.00031673261162247 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00031673261162247 (GeV) + +Source track ID 4090 (gamma,0.0022317689517459[GeV]) at (-493.80037275506,78.493260009791,-133.07061435877) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,22] 0.0017207700417459 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0017207700417459 (GeV) + +Source track ID 2005 (gamma,0.00016886054804189[GeV]) at (-367.13618642643,339.42748948231,-1345.8470070922) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[3,18] 0.00016886054804189 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00016886054804189 (GeV) + +Source track ID 4091 (gamma,0.0038650263626391[GeV]) at (-496.58897116422,58.304319891967,-134.55076476449) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,23] 0.0038650263626391 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0038650263626391 (GeV) + +Source track ID 2003 (gamma,0.0014316593084525[GeV]) at (496.88632008357,55.713417717899,-440.44903290415) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[7,0] 0.0014316593084525 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0014316593084525 (GeV) + +Source track ID 4092 (gamma,0.06129587861467[GeV]) at (-496.77599140049,56.68874992498,-134.14612853817) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,22] 0.0025070443426607 [GeV] +Cell[9,23] 0.058162770920309 [GeV] +Cell[8,23] 0.00062606335170068 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.06129587861467 (GeV) + +Source track ID 1998 (gamma,0.00040151611408799[GeV]) at (389.18881009208,313.89818428769,-318.70386615588) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[8,5] 0.00040151611408799 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00040151611408799 (GeV) + +Source track ID 4095 (gamma,0.046623940184808[GeV]) at (-499.45775122887,23.279921335802,-137.25043936453) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,32] 0.0016397325757861 [GeV] +Cell[9,23] 0.039365976585554 [GeV] +Cell[8,24] 0.0019454068866291 [GeV] +Cell[9,24] 0.0036728241368397 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.046623940184808 (GeV) + +Source track ID 1996 (gamma,0.022505076039386[GeV]) at (496.67985764727,-57.524942481357,-215.34670214771) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[8,47] 0.019260286066069 [GeV] +Cell[9,8] 0.00083991162249956 [GeV] +Cell[7,38] 0.0012704392665065 [GeV] +Cell[10,8] 0.00070493632044795 [GeV] +Cell[11,26] 0.0004152917112069 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.02249086498673 (GeV) + +Source track ID 4096 (gamma,9.8262579626998e-05[GeV]) at (-499.43809788495,23.697813845579,-137.09137963759) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,23] 9.8262579626998e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 9.8262579626998e-05 (GeV) + +Source track ID 1946 (gamma,0.67224858404432[GeV]) at (444.05232249931,-229.82065808576,-518.95901743423) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[7,44] 0.62636197231271 [GeV] +Cell[6,43] 0.0077965986644749 [GeV] +Cell[6,44] 0.014613249237945 [GeV] +Cell[7,45] 0.0045832532339076 [GeV] +Cell[1,13] 0.0014308086938659 [GeV] +Cell[4,28] 0.00051099891 [GeV] +Cell[6,45] 0.00024805206262423 [GeV] +Cell[2,14] 0.0019192325967828 [GeV] +Cell[7,43] 0.014273419422005 [GeV] +Cell[4,15] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.67224858404432 (GeV) + +Source track ID 4098 (gamma,0.00039632929902757[GeV]) at (-499.82047873226,13.397351971834,-137.86401766643) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[9,23] 0.00039632929902757 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00039632929902757 (GeV) + +Source track ID 2074 (gamma,0.17435926984906[GeV]) at (-435.6188631654,245.43065426814,445.72698985412) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[12,20] 0.16108651695186 [GeV] +Cell[12,25] 0.0012318875594817 [GeV] +Cell[12,19] 0.011516212925365 [GeV] +Cell[12,30] 0.00052465241234574 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.17435926984906 (GeV) + +Source track ID 3930 (gamma,0.15251351239083[GeV]) at (-487.09323690572,-112.87239946376,-730.31343219385) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[5,26] 0.0087210499283532 [GeV] +Cell[6,25] 0.13573541165714 [GeV] +Cell[4,13] 0.0010421895500131 [GeV] +Cell[6,23] 0.0023743489097896 [GeV] +Cell[5,25] 0.0046405123455307 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.15251351239083 (GeV) + +Source track ID 3024 (gamma,1.1635719616337[GeV]) at (-189.42309945955,-462.72982332149,253.06735301186) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,39] 0.00051994991021396 [GeV] +Cell[17,18] 0.00051099891 [GeV] +Cell[10,34] 0.0012788317738645 [GeV] +Cell[11,31] 0.0003194811914121 [GeV] +Cell[11,32] 0.17890416010156 [GeV] +Cell[11,30] 1.2181384504082e-05 [GeV] +Cell[10,32] 0.0045810217580555 [GeV] +Cell[11,34] 0.0047525156773874 [GeV] +Cell[10,36] 0.00095683931606853 [GeV] +Cell[19,43] 0.00055558272115532 [GeV] +Cell[11,33] 0.95566204883177 [GeV] +Cell[11,29] 0.00021308708388871 [GeV] +Cell[10,45] 0.00013605676074953 [GeV] +Cell[15,25] 0.001641460649967 [GeV] +Cell[17,13] 0.00050223734742813 [GeV] +Cell[12,33] 0.00090388460798281 [GeV] +Cell[17,44] 0.00051099891 [GeV] +Cell[10,31] 0.000323822622011 [GeV] +Cell[11,19] 0.00043090580542503 [GeV] +Cell[11,36] 0.0025371760048124 [GeV] +### Total energy deposition in calorimeter by a source track in 20 cells : 1.1552532413683 (GeV) + +Source track ID 3931 (gamma,0.13352323164713[GeV]) at (-462.29599614858,-190.4794265662,2.9650695239414) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,26] 0.016168255149298 [GeV] +Cell[9,27] 0.028725365086693 [GeV] +Cell[9,28] 0.0017575559696757 [GeV] +Cell[10,26] 0.073245289129918 [GeV] +Cell[10,27] 0.013626766311543 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.13352323164713 (GeV) + +Source track ID 3023 (gamma,1.004682788758[GeV]) at (-131.64955835558,-482.35712266409,294.93686673644) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[10,20] 0.0016865381860841 [GeV] +Cell[11,31] 0.00049418695793537 [GeV] +Cell[11,32] 0.002013398674633 [GeV] +Cell[11,34] 0.31667022962899 [GeV] +Cell[15,18] 0.00066137768670857 [GeV] +Cell[11,33] 0.66316771342903 [GeV] +Cell[12,33] 0.0038944923365661 [GeV] +Cell[13,30] 0.0004386984587448 [GeV] +Cell[11,35] 0.01158523741266 [GeV] +Cell[12,32] 0.00031368155390183 [GeV] +Cell[11,37] 0.00051099891 [GeV] +Cell[12,2] 0.0020582981805832 [GeV] +Cell[12,34] 0.0011879373422055 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 1.004682788758 (GeV) + +Source track ID 3915 (gamma,0.37778731993224[GeV]) at (315.89620572695,-387.56881609247,149.20557499539) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[11,39] 0.00022736902387735 [GeV] +Cell[11,40] 0.00036013466359076 [GeV] +Cell[11,41] 0.0099029047267424 [GeV] +Cell[10,41] 0.34229547287783 [GeV] +Cell[10,32] 0.0012959168013421 [GeV] +Cell[10,40] 0.012498894766932 [GeV] +Cell[10,42] 0.010101126194481 [GeV] +Cell[10,39] 0.0002181255523684 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.37689994460717 (GeV) + +Source track ID 3104 (gamma,0.0027084835174675[GeV]) at (488.71346093518,-105.63689270685,460.07467282888) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[12,46] 0.0027084835174675 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0027084835174675 (GeV) + +Source track ID 3916 (gamma,0.13885684299554[GeV]) at (475.10692356795,-155.79926565232,345.33262383113) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,16] 0.00039551027182984 [GeV] +Cell[12,45] 0.00022286855502421 [GeV] +Cell[12,44] 0.0016878237237489 [GeV] +Cell[11,46] 0.001738657719872 [GeV] +Cell[11,45] 0.13481198272507 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.13885684299554 (GeV) + +Source track ID 3103 (gamma,0.0085741832998207[GeV]) at (-431.85703696719,-251.99107052021,798.04487840494) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[14,27] 0.0085741832998207 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0085741832998207 (GeV) + +Source track ID 3834 (gamma,0.1484777566564[GeV]) at (-237.22758360346,440.13983411828,-159.00519398257) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,16] 0.0042445729778045 [GeV] +Cell[9,15] 0.14243455289198 [GeV] +Cell[8,15] 0.0017986307866194 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.1484777566564 (GeV) + +Source track ID 3096 (gamma,0.084546215102731[GeV]) at (498.14914488983,-42.98173385906,282.1233457979) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,47] 0.084035216192731 [GeV] +Cell[12,27] 0.00015647835635502 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.084191694549086 (GeV) + +Source track ID 3835 (gamma,0.20137908385321[GeV]) at (152.32664499916,476.23165919886,-66.015732350056) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,10] 0.011810048711784 [GeV] +Cell[9,9] 0.18732261579602 [GeV] +Cell[9,8] 0.00051099891 [GeV] +Cell[10,8] 0.00034717868122166 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.19999084209903 (GeV) + +Source track ID 3095 (gamma,0.0006024157628674[GeV]) at (498.09344919961,-43.622423871595,282.20440243126) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,47] 0.0006024157628674 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0006024157628674 (GeV) + +Source track ID 3811 (gamma,0.094503470007519[GeV]) at (318.07142313936,385.785652639,-1059.6704615649) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,22] 0.0012201483443526 [GeV] +Cell[4,7] 0.0028823179029484 [GeV] +Cell[4,5] 0.00041443219474171 [GeV] +Cell[6,25] 0.0013150587135567 [GeV] +Cell[4,6] 0.08727775284317 [GeV] +Cell[6,26] 0.00088276109874877 [GeV] +Cell[2,18] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.094503470007518 (GeV) + +Source track ID 3094 (gamma,0.0002815724330666[GeV]) at (497.90239800182,-45.751525264645,282.59893592383) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,47] 0.0002815724330666 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0002815724330666 (GeV) + +Source track ID 3706 (gamma,1.5112205487345[GeV]) at (-499.81457410766,13.615855080683,-1633.57843579) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[2,34] 0.0013349052989791 [GeV] +Cell[7,0] 0.0010418216139778 [GeV] +Cell[1,22] 0.00039792804908143 [GeV] +Cell[0,6] 0.00052605619224969 [GeV] +Cell[1,23] 1.4196986804467 [GeV] +Cell[0,12] 0.0010759216785603 [GeV] +Cell[1,24] 0.039308825186235 [GeV] +Cell[3,45] 0.00039660538227039 [GeV] +Cell[1,43] 0.0015079011348085 [GeV] +Cell[0,23] 0.0054984899611407 [GeV] +Cell[0,24] 0.0021047514033815 [GeV] +Cell[0,16] 0.00051099891 [GeV] +Cell[5,43] 0.0010515278094518 [GeV] +Cell[0,7] 0.00099194572982503 [GeV] +Cell[0,3] 0.0012850764429871 [GeV] +Cell[0,13] 0.00092579506503271 [GeV] +Cell[0,42] 0.0045130049125856 [GeV] +Cell[2,39] 0.0017157029615337 [GeV] +Cell[0,2] 0.00039117955568998 [GeV] +Cell[2,12] 0.0014303755119336 [GeV] +Cell[2,17] 0.00051099891 [GeV] +Cell[0,4] 0.00051099891 [GeV] +Cell[1,37] 0.00025782603263336 [GeV] +Cell[2,47] 0.001115869684104 [GeV] +Cell[1,1] 0.00043919908266136 [GeV] +Cell[5,9] 0.00051099891 [GeV] +Cell[5,34] 0.00041149810380307 [GeV] +Cell[4,37] 0.00010092480248431 [GeV] +Cell[1,21] 1.6519761402378e-08 [GeV] +Cell[1,32] 0.00037116238741196 [GeV] +### Total energy deposition in calorimeter by a source track in 30 cells : 1.4899369865893 (GeV) + +Source track ID 3093 (gamma,0.0022780461095291[GeV]) at (497.8699492825,-46.103292739702,281.71531526127) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,47] 0.0022780461095291 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0022780461095291 (GeV) + +Source track ID 3707 (gamma,2.1679106429724[GeV]) at (-488.39603955858,-107.09485768933,-1544.0567375342) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,11] 2.4985200832361e-07 [GeV] +Cell[8,12] 0.00091997904195148 [GeV] +Cell[6,43] 0.00051099891 [GeV] +Cell[8,13] 0.00071740562593595 [GeV] +Cell[7,12] 0.00043626987749099 [GeV] +Cell[2,34] 0.00051099891 [GeV] +Cell[0,46] 0.0013094519615653 [GeV] +Cell[3,43] 0.00051099891 [GeV] +Cell[1,23] 0.0017668802341018 [GeV] +Cell[2,38] 0.00051099891 [GeV] +Cell[1,24] 0.0037159195331249 [GeV] +Cell[2,24] 0.0062966084407247 [GeV] +Cell[8,14] 1.0226313170278e-05 [GeV] +Cell[2,44] 0.0004464908238177 [GeV] +Cell[6,47] 0.00072964872909349 [GeV] +Cell[2,37] 0.00040706503511069 [GeV] +Cell[1,25] 0.19498086572651 [GeV] +Cell[1,47] 0.00051099891 [GeV] +Cell[0,7] 0.00097289733739964 [GeV] +Cell[2,18] 0.00073078561742976 [GeV] +Cell[0,3] 0.00086022806281193 [GeV] +Cell[0,2] 0.0019321626269051 [GeV] +Cell[1,37] 0.0015737946244571 [GeV] +Cell[1,1] 0.00107651316087 [GeV] +Cell[1,21] 0.0014427247512282 [GeV] +Cell[2,25] 1.8841049155679 [GeV] +Cell[3,4] 6.9424784253727e-05 [GeV] +Cell[0,41] 0.0017861713336558 [GeV] +Cell[3,0] 0.0011011960664801 [GeV] +Cell[1,26] 0.0016335230756082 [GeV] +Cell[5,0] 0.00031871484226935 [GeV] +Cell[0,8] 0.0029676810261263 [GeV] +Cell[2,26] 0.008394579317898 [GeV] +Cell[0,14] 0.0073201596058376 [GeV] +Cell[2,2] 0.001768775783431 [GeV] +Cell[2,32] 0.00051099891 [GeV] +Cell[6,0] 0.0003651152146045 [GeV] +Cell[1,36] 0.0013337667962047 [GeV] +Cell[3,14] 0.0014259290892981 [GeV] +Cell[1,39] 0.00039201180322282 [GeV] +Cell[2,41] 0.0013367767251766 [GeV] +Cell[2,40] 8.9393337710062e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 42 cells : 2.1378002952054 (GeV) + +Source track ID 3040 (gamma,0.31054837923301[GeV]) at (447.3331217598,223.36758533107,253.26070462598) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,4] 0.0070242271915812 [GeV] +Cell[11,2] 0.0021173776875227 [GeV] +Cell[11,3] 0.29625036310991 [GeV] +Cell[7,31] 0.0051564112439965 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.31054837923301 (GeV) + +Source track ID 3233 (gamma,0.044613845966866[GeV]) at (-73.608554305298,-494.552101131,-435.86055062947) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 0.039524376988367 [GeV] +Cell[7,35] 0.0050894689784989 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.044613845966866 (GeV) + +Source track ID 3123 (gamma,0.00022683796292872[GeV]) at (479.87059784587,140.44290413917,-118.89190281466) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[9,2] 0.00022683796292872 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00022683796292872 (GeV) + +Source track ID 3234 (gamma,0.066772937008583[GeV]) at (-78.777355874176,-493.75512979763,-435.18383111443) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 0.063935503900329 [GeV] +Cell[7,35] 0.00034848936945778 [GeV] +Cell[8,1] 0.0024889437387962 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.066772937008583 (GeV) + +Source track ID 3122 (gamma,0.00051099891[GeV]) at (441.92983117566,-233.87608752725,485.57778278793) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[12,44] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) + +Source track ID 3235 (gamma,0.0038073112116046[GeV]) at (-78.847109811782,-493.74399568433,-435.20426673051) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 0.0038073112116046 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0038073112116046 (GeV) + +Source track ID 3208 (gamma,2.1921548366006[GeV]) at (-105.19675765377,-488.80839004577,-488.29269094177) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 2.0836405175532 [GeV] +Cell[7,35] 0.013108933875045 [GeV] +Cell[7,33] 0.040374196762507 [GeV] +Cell[8,34] 0.0022076787874837 [GeV] +Cell[6,30] 0.0011296182321124 [GeV] +Cell[6,33] 0.0047940414932778 [GeV] +Cell[7,40] 0.00027276673361722 [GeV] +Cell[4,47] 0.00049926807890209 [GeV] +Cell[7,16] 0.0032962031707069 [GeV] +Cell[8,14] 0.00041695805266673 [GeV] +Cell[5,5] 0.00027667103537202 [GeV] +Cell[6,8] 0.00051099891 [GeV] +Cell[9,23] 0.0014601121296234 [GeV] +Cell[6,34] 0.026695795709425 [GeV] +Cell[6,35] 0.004233821050051 [GeV] +Cell[8,33] 0.0019316603003997 [GeV] +Cell[7,36] 0.00076991615334298 [GeV] +Cell[5,1] 0.0011632397047239 [GeV] +Cell[6,31] 0.00085075299992268 [GeV] +Cell[7,32] 0.00068084312907852 [GeV] +Cell[8,0] 0.00051099891 [GeV] +Cell[7,22] 0.00049429043528809 [GeV] +Cell[9,46] 0.00040198649070658 [GeV] +Cell[9,45] 0.00010901241929342 [GeV] +### Total energy deposition in calorimeter by a source track in 24 cells : 2.1898302821168 (GeV) + +Source track ID 3236 (gamma,0.00060535572572773[GeV]) at (-78.780502757242,-493.75462771028,-435.02854636375) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 0.00060535572572773 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00060535572572773 (GeV) + +Source track ID 3206 (gamma,0.17932025858732[GeV]) at (-255.57095684981,429.74816580746,-559.80030168359) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,10] 0.00051099891 [GeV] +Cell[6,16] 0.0013769779028246 [GeV] +Cell[7,16] 0.14791363113351 [GeV] +Cell[5,13] 0.0011678428818968 [GeV] +Cell[7,15] 0.014264777958132 [GeV] +Cell[6,15] 0.01408602980096 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.17932025858732 (GeV) + +Source track ID 3205 (gamma,0.076632669216442[GeV]) at (-300.43599711772,399.67263058143,200.63475098843) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,1] 0.0020599870157318 [GeV] +Cell[11,16] 0.053969203994872 [GeV] +Cell[10,17] 0.0011327046607437 [GeV] +Cell[11,17] 0.016721523438299 [GeV] +Cell[10,16] 0.002238251196796 [GeV] +Cell[12,1] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.076632669216442 (GeV) + +Source track ID 1368 (e-,0.0014696205529856[GeV]) at (-334.48581377065,371.64396993115,-1796.5723084762) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[1,17] 0.00063824780015968 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00063824780015968 (GeV) + +Source track ID 7174 (e-,0.54454541230463[GeV]) at (131.95345735128,482.27407673754,-280.90013881636) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[8,9] 0.27079105589701 [GeV] +Cell[8,10] 0.26130494190392 [GeV] +Cell[8,8] 0.0031740961945248 [GeV] +Cell[8,11] 0.0011541100764434 [GeV] +Cell[7,10] 0.0063262721075279 [GeV] +Cell[12,45] 0.00032199872415154 [GeV] +Cell[10,45] 0.000477879152503 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.54355035405607 (GeV) + +Source track ID 1602 (e-,0.00053093431112229[GeV]) at (-91.165060163278,-491.61868537051,1125.5904251733) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[15,34] 1.9935401122286e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 1.9935401122286e-05 (GeV) + +Source track ID 6805 (e-,0.18645077480782[GeV]) at (-402.92160842942,-296.06448193029,428.97942626155) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[12,29] 0.0498560016929 [GeV] +Cell[13,34] 0.00047997693615241 [GeV] +Cell[12,28] 0.12284349768758 [GeV] +Cell[11,28] 0.00063153765682349 [GeV] +Cell[14,13] 0.00051099891 [GeV] +Cell[12,30] 0.0013443721801426 [GeV] +Cell[13,33] 0.0059707201091547 [GeV] +Cell[12,24] 0.00016274001853596 [GeV] +Cell[17,40] 0.00078185784394592 [GeV] +Cell[13,4] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.18309270194523 (GeV) + +Source track ID 1942 (e-,0.012867463459944[GeV]) at (-109.99232964227,-487.75166572741,-1229.1286384897) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[4,18] 0.0010939921721187 [GeV] +Cell[3,34] 0.011262472377826 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.012356464549944 (GeV) + +Source track ID 6663 (e-,0.31523439628797[GeV]) at (-119.71140009956,-485.45770226272,181.12293537831) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,33] 0.000633417749075 [GeV] +Cell[10,34] 0.079985204777698 [GeV] +Cell[10,35] 0.0022840905728908 [GeV] +Cell[11,34] 0.23111015727489 [GeV] +Cell[11,35] 0.00071052700342251 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.31472339737797 (GeV) + +Source track ID 1994 (e-,0.039537809799763[GeV]) at (-84.186173803583,492.86173328867,-1517.4224627412) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[4,7] 0.001840735354327 [GeV] +Cell[0,3] 0.0028229431192831 [GeV] +Cell[2,12] 0.002541240096461 [GeV] +Cell[2,13] 0.031298422311311 [GeV] +Cell[0,1] 0.00052347000838008 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.039026810889763 (GeV) + +Source track ID 4622 (e-,0.0017399119071598[GeV]) at (369.37955207312,336.98478676382,-1601.2573349036) +Original primary track ID 20 (unknown,113.70725878408[GeV]) +Cell[1,5] 0.0012289129971598 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0012289129971598 (GeV) + +Source track ID 3088 (e-,0.041646275521753[GeV]) at (493.72375472039,-78.973755291255,1055.0197133985) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[15,47] 0.010963833864532 [GeV] +Cell[15,46] 0.030171442747221 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.041135276611753 (GeV) + +Source track ID 4337 (e-,0.11074131425681[GeV]) at (-499.7388776484,16.157170752372,507.94635373637) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[13,28] 0.0011353863101083 [GeV] +Cell[15,31] 0.0012008716936762 [GeV] +Cell[13,26] 0.0044970411015216 [GeV] +Cell[13,27] 0.00018579464478073 [GeV] +Cell[14,2] 0.00032918102573802 [GeV] +Cell[10,21] 0.00041140904942118 [GeV] +Cell[15,40] 0.0004701334596991 [GeV] +Cell[12,23] 0.080146518557006 [GeV] +Cell[12,45] 0.00051099891 [GeV] +Cell[17,35] 0.0027180227778611 [GeV] +Cell[12,24] 0.01077504013089 [GeV] +Cell[16,37] 0.00083899999384519 [GeV] +Cell[18,35] 0.0047006027294709 [GeV] +Cell[9,30] 0.00013664054026139 [GeV] +### Total energy deposition in calorimeter by a source track in 14 cells : 0.10805664092428 (GeV) + +Source track ID 3231 (e-,0.7000970705571[GeV]) at (-64.830704283369,-495.77916432836,-435.91473567815) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,34] 0.18221375126571 [GeV] +Cell[7,35] 0.50198558318772 [GeV] +Cell[6,10] 0.00051099891 [GeV] +Cell[6,34] 0.00054028598069156 [GeV] +Cell[6,35] 0.00021680369616749 [GeV] +Cell[7,36] 0.014118648606813 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.6995860716471 (GeV) + +Source track ID 4085 (e-,0.39773878114444[GeV]) at (-499.89644456867,10.17569199615,-138.23749593162) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[8,8] 0.00025056870108509 [GeV] +Cell[10,8] 0.00057578498624491 [GeV] +Cell[10,7] 8.4792257465324e-05 [GeV] +Cell[16,34] 2.9587443797254e-06 [GeV] +Cell[9,23] 0.19332853953171 [GeV] +Cell[8,24] 0.0024789234809372 [GeV] +Cell[9,24] 0.18792983851408 [GeV] +Cell[17,37] 5.9641024563462e-08 [GeV] +Cell[12,3] 1.0803830809891e-07 [GeV] +Cell[13,2] 3.0375085771084e-09 [GeV] +Cell[16,33] 1.6599409832452e-08 [GeV] +Cell[9,25] 0.0048476317756757 [GeV] +### Total energy deposition in calorimeter by a source track in 12 cells : 0.38949922530782 (GeV) + +Source track ID 3691 (e-,0.00060591587023819[GeV]) at (-3.0154177465767,499.99090717313,-1542.8560017495) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[2,12] 9.4916960238195e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 9.4916960238195e-05 (GeV) + +Source track ID 3564 (neutron,7.3741998938947[GeV]) at (-413.0762339184,-281.72331279429,-1776.1644807987) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,22] 0.00038497710623153 [GeV] +Cell[6,20] 0.00022012763539794 [GeV] +Cell[6,44] 8.2385885179974e-06 [GeV] +Cell[6,37] 1.4313193387352e-06 [GeV] +Cell[1,15] 3.5288621147629e-06 [GeV] +Cell[2,34] 2.1820309011673e-05 [GeV] +Cell[7,47] 0.00014525833009588 [GeV] +Cell[4,38] 0.0007346048598497 [GeV] +Cell[1,4] 9.9688201735262e-06 [GeV] +Cell[0,46] 0.0074310864651069 [GeV] +Cell[5,24] 9.9791152055332e-05 [GeV] +Cell[8,42] 0.0017921984921997 [GeV] +Cell[7,13] 0.00040790115007803 [GeV] +Cell[6,13] 0.0015445045441204 [GeV] +Cell[6,12] 8.8701303411653e-08 [GeV] +Cell[5,36] 3.3853625354823e-06 [GeV] +Cell[3,26] 2.3632310330868e-11 [GeV] +Cell[7,14] 1.1336463416228e-05 [GeV] +Cell[1,38] 0.00020106972926055 [GeV] +Cell[3,27] 1.0317307896912e-10 [GeV] +Cell[5,20] 7.7388226636685e-06 [GeV] +Cell[7,46] 4.201487172395e-09 [GeV] +Cell[3,10] 1.0525400284678e-10 [GeV] +Cell[3,9] 0.0015355385714563 [GeV] +Cell[3,40] 0.003035916205857 [GeV] +Cell[4,30] 0.00042500744636857 [GeV] +Cell[3,43] 0.0048087928730563 [GeV] +Cell[1,17] 0.003429340548591 [GeV] +Cell[4,39] 0.0053274789062948 [GeV] +Cell[6,36] 0.00095151753155528 [GeV] +Cell[1,22] 2.3164338927018e-09 [GeV] +Cell[4,31] 8.2865514059449e-08 [GeV] +Cell[2,22] 5.1513779908419e-12 [GeV] +Cell[1,23] 0.0066274393147577 [GeV] +Cell[2,16] 0.00061987964793786 [GeV] +Cell[0,31] 0.0083371476162442 [GeV] +Cell[1,13] 1.487575368742e-06 [GeV] +Cell[3,36] 0.0028129584888989 [GeV] +Cell[3,38] 0.0029612754325904 [GeV] +Cell[3,39] 0.0049412094581225 [GeV] +Cell[0,32] 7.2594738638145e-05 [GeV] +Cell[2,38] 4.6480059390888e-06 [GeV] +Cell[1,24] 0.00058331268149935 [GeV] +Cell[2,24] 3.8695782632203e-05 [GeV] +Cell[0,19] 1.7776178894565e-05 [GeV] +Cell[4,9] 5.9503690863494e-12 [GeV] +Cell[1,14] 9.2054260682971e-05 [GeV] +Cell[3,41] 0.0048991440668473 [GeV] +Cell[11,47] 0.00070812809017718 [GeV] +Cell[0,29] 0.090632411730314 [GeV] +Cell[3,45] 0.00030093098926761 [GeV] +Cell[0,33] 0.012796597412769 [GeV] +Cell[0,28] 1.547690621479 [GeV] +Cell[0,0] 0.00065757816802943 [GeV] +Cell[0,44] 3.3935204555746e-06 [GeV] +Cell[0,43] 0.011297886802045 [GeV] +Cell[1,29] 0.0056253736012425 [GeV] +Cell[3,42] 0.00055901380404809 [GeV] +Cell[3,18] 2.5070603564359e-05 [GeV] +Cell[2,35] 1.6625025309622e-06 [GeV] +Cell[1,27] 0.038371775196514 [GeV] +Cell[0,23] 0.0030908559184278 [GeV] +Cell[7,23] 7.7490707864513e-05 [GeV] +Cell[6,38] 0.00085328458912352 [GeV] +Cell[0,47] 0.0030456717045992 [GeV] +Cell[4,28] 2.208577689089e-08 [GeV] +Cell[3,28] 0.0039712874397867 [GeV] +Cell[2,44] 0.0010305101384381 [GeV] +Cell[12,0] 0.00068232471285973 [GeV] +Cell[0,24] 0.0017622074098524 [GeV] +Cell[1,6] 4.8528805746173e-07 [GeV] +Cell[4,18] 8.8130211885527e-05 [GeV] +Cell[4,17] 0.002275387284931 [GeV] +Cell[5,17] 0.006659180427223 [GeV] +Cell[5,16] 0.0014495104171198 [GeV] +Cell[5,39] 0.00014013984084409 [GeV] +Cell[2,45] 0.00013301314504054 [GeV] +Cell[4,16] 0.00052128463457382 [GeV] +Cell[2,37] 1.5002485335572e-05 [GeV] +Cell[1,35] 2.7514690355019e-06 [GeV] +Cell[12,47] 1.1274532880634e-08 [GeV] +Cell[15,11] 4.3900519784074e-05 [GeV] +Cell[1,30] 0.0010424635489081 [GeV] +Cell[2,29] 0.0043674220215592 [GeV] +Cell[11,46] 1.1010361256467e-06 [GeV] +Cell[16,10] 0.00093980773598992 [GeV] +Cell[7,5] 2.5106596876867e-07 [GeV] +Cell[1,25] 0.0014582242407168 [GeV] +Cell[0,25] 0.0050615790698424 [GeV] +Cell[7,4] 7.3955510742962e-08 [GeV] +Cell[6,45] 3.830433706753e-08 [GeV] +Cell[3,17] 0.00042915897917646 [GeV] +Cell[0,16] 0.0017974479663517 [GeV] +Cell[0,37] 0.00018294363097266 [GeV] +Cell[3,13] 0.0011063162772672 [GeV] +Cell[1,19] 0.04676544669588 [GeV] +Cell[3,37] 0.0076549625086492 [GeV] +Cell[8,23] 3.0780163435338e-05 [GeV] +Cell[2,14] 0.00033275312044225 [GeV] +Cell[7,43] 1.8341967370361e-07 [GeV] +Cell[4,15] 6.5188899461646e-06 [GeV] +Cell[2,18] 0.0080410029311013 [GeV] +Cell[0,42] 0.001630193924895 [GeV] +Cell[2,39] 0.0046647520356483 [GeV] +Cell[2,12] 6.7682566292092e-05 [GeV] +Cell[2,17] 0.0028956459316316 [GeV] +Cell[1,21] 2.6663212665881e-05 [GeV] +Cell[1,32] 0.0042469310405755 [GeV] +Cell[2,25] 9.8733909225302e-05 [GeV] +Cell[0,41] 1.9217046542508e-08 [GeV] +Cell[3,0] 5.221985076787e-06 [GeV] +Cell[1,26] 0.0041911470882171 [GeV] +Cell[2,26] 2.953576370146e-08 [GeV] +Cell[1,39] 0.0044446173470538 [GeV] +Cell[2,40] 1.5462948183995e-05 [GeV] +Cell[6,15] 4.0958639015116e-06 [GeV] +Cell[2,13] 0.0018531370660507 [GeV] +Cell[1,7] 3.793273906922e-06 [GeV] +Cell[2,11] 0.00012120945444599 [GeV] +Cell[2,10] 2.1453573196482e-05 [GeV] +Cell[1,10] 1.3453174517508e-07 [GeV] +Cell[0,18] 0.00052699246509849 [GeV] +Cell[2,42] 1.8595443223603e-05 [GeV] +Cell[3,1] 5.2083643677179e-06 [GeV] +Cell[6,21] 5.1534126978368e-06 [GeV] +Cell[4,42] 6.7962271921601e-05 [GeV] +Cell[4,43] 0.0011076230881841 [GeV] +Cell[1,34] 0.002216001925484 [GeV] +Cell[0,34] 0.0035746330720317 [GeV] +Cell[0,35] 0.0012759496348721 [GeV] +Cell[1,28] 0.03499295860207 [GeV] +Cell[1,31] 0.00024430964776741 [GeV] +Cell[1,41] 5.3413766528706e-05 [GeV] +Cell[1,40] 0.0002780529168499 [GeV] +Cell[0,27] 0.146940115522 [GeV] +Cell[2,19] 0.00029569965602559 [GeV] +Cell[0,30] 0.013373519118063 [GeV] +Cell[2,28] 0.00015141515380913 [GeV] +Cell[2,6] 7.3748536067342e-06 [GeV] +Cell[2,5] 5.9676173055777e-05 [GeV] +Cell[6,39] 5.3413884888869e-06 [GeV] +Cell[5,38] 0.0002476906824395 [GeV] +Cell[0,26] 0.018744951807795 [GeV] +Cell[0,45] 5.129411641974e-06 [GeV] +Cell[3,47] 5.5737027878649e-05 [GeV] +Cell[1,33] 0.0018105839993148 [GeV] +Cell[4,10] 2.277587327626e-10 [GeV] +Cell[1,12] 0.00044211329639132 [GeV] +Cell[7,42] 1.5385631412528e-06 [GeV] +Cell[1,20] 2.7827389419599e-07 [GeV] +Cell[2,21] 1.6411259423307e-05 [GeV] +Cell[1,18] 0.0069901017394787 [GeV] +Cell[2,20] 2.1550798526732e-05 [GeV] +Cell[2,33] 7.1618732181378e-06 [GeV] +Cell[6,14] 2.0384552044561e-08 [GeV] +Cell[3,29] 0.021810401891321 [GeV] +Cell[3,30] 0.0028779839229771 [GeV] +Cell[2,30] 0.00068379050200247 [GeV] +Cell[4,29] 0.00222450083877 [GeV] +Cell[2,43] 0.000138500607962 [GeV] +Cell[0,9] 0.00017268858848511 [GeV] +Cell[3,21] 0.0049269641661062 [GeV] +Cell[3,22] 1.7603386004339e-07 [GeV] +Cell[6,32] 0.00053733571128798 [GeV] +Cell[5,32] 0.0016857186714494 [GeV] +Cell[2,31] 2.510002980614e-05 [GeV] +Cell[0,20] 4.9379629490431e-06 [GeV] +Cell[3,12] 0.0057790683169728 [GeV] +Cell[15,10] 0.0013706139687471 [GeV] +Cell[8,43] 0.0024638575168627 [GeV] +Cell[8,44] 2.1180696093666e-05 [GeV] +Cell[0,40] 1.4542312184176e-06 [GeV] +Cell[3,16] 0.0006703463538056 [GeV] +Cell[3,15] 0.0023605129545826 [GeV] +Cell[8,2] 0.00031620217846821 [GeV] +### Total energy deposition in calorimeter by a source track in 175 cells : 2.18418925831 (GeV) + +Source track ID 6594 (neutron,0.9396154345474[GeV]) at (453.98707847947,209.51308449278,301.15554391613) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,3] 1.8896512046922e-06 [GeV] +Cell[16,19] 1.7967983148992e-07 [GeV] +Cell[16,20] 4.7425280043512e-05 [GeV] +Cell[17,45] 1.0363728506491e-08 [GeV] +Cell[18,16] 9.3929411377758e-09 [GeV] +Cell[18,15] 2.2278400138021e-09 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 4.9516595589353e-05 (GeV) + +Source track ID 4989 (neutron,1.4783692592721[GeV]) at (458.5309876774,199.3723484829,-606.56000985403) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[8,9] 8.8699605565807e-06 [GeV] +Cell[7,9] 7.5309537464818e-08 [GeV] +Cell[7,7] 0.0055214056601638 [GeV] +Cell[7,8] 0.00097633051190599 [GeV] +Cell[8,5] 1.8530222337176e-07 [GeV] +Cell[8,6] 0.0010237652086444 [GeV] +Cell[7,37] 9.6010223388816e-05 [GeV] +Cell[7,6] 0.012045987196889 [GeV] +Cell[7,39] 3.7757541314932e-05 [GeV] +Cell[6,30] 0.00031587568255134 [GeV] +Cell[6,5] 0.0012991618184766 [GeV] +Cell[7,13] 1.3349155604374e-05 [GeV] +Cell[6,13] 2.9274544562213e-05 [GeV] +Cell[1,38] 0.010389174660423 [GeV] +Cell[9,26] 0.0010525901077801 [GeV] +Cell[9,27] 0.0020628795698653 [GeV] +Cell[4,20] 4.4533058832599e-05 [GeV] +Cell[4,21] 7.2564716901979e-11 [GeV] +Cell[1,13] 0.0020236893559555 [GeV] +Cell[4,5] 0.0022244651324221 [GeV] +Cell[2,38] 0.0020108803474279 [GeV] +Cell[3,35] 0.0014662284153585 [GeV] +Cell[7,3] 0.0009633863643985 [GeV] +Cell[0,39] 9.1271835553925e-06 [GeV] +Cell[0,38] 1.9356072097139e-05 [GeV] +Cell[4,2] 5.7195441222575e-06 [GeV] +Cell[5,4] 0.00093633048679271 [GeV] +Cell[6,4] 0.0031688119317173 [GeV] +Cell[2,37] 0.0019134235031047 [GeV] +Cell[1,35] 1.2337667612883e-08 [GeV] +Cell[7,5] 0.0088548484265236 [GeV] +Cell[7,4] 0.00027821076954694 [GeV] +Cell[7,2] 0.0016428328126879 [GeV] +Cell[1,37] 0.0087870397312695 [GeV] +Cell[5,0] 0.0019441348550331 [GeV] +Cell[6,0] 0.0018572945956906 [GeV] +Cell[1,36] 6.1004186717355e-06 [GeV] +Cell[1,39] 0.00087819997455267 [GeV] +Cell[5,1] 0.0056329992890404 [GeV] +Cell[6,31] 0.00036539528283151 [GeV] +Cell[9,25] 5.7704746723175e-09 [GeV] +Cell[6,32] 2.8949301963621e-08 [GeV] +Cell[5,32] 4.3228737922618e-11 [GeV] +Cell[6,3] 0.03253245378654 [GeV] +Cell[6,2] 0.0068507100500899 [GeV] +Cell[6,1] 0.0020198261494833 [GeV] +Cell[5,2] 0.0077618141259782 [GeV] +Cell[5,31] 2.1515555818041e-07 [GeV] +Cell[8,4] 7.9637376654773e-06 [GeV] +Cell[5,3] 0.016765240840677 [GeV] +Cell[4,3] 0.05077756576547 [GeV] +Cell[4,4] 0.0018390865828302 [GeV] +### Total energy deposition in calorimeter by a source track in 52 cells : 0.19846062337305 (GeV) + +Source track ID 6586 (neutron,1.0106925651995[GeV]) at (-492.57620073705,85.841053508551,280.33097407622) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,21] 0.031420911673518 [GeV] +Cell[12,20] 1.4296728011686e-05 [GeV] +Cell[14,3] 3.3448630711064e-07 [GeV] +Cell[11,20] 1.9297521021144e-09 [GeV] +Cell[11,22] 0.00064069108658661 [GeV] +Cell[12,23] 0.00096813375743251 [GeV] +Cell[13,6] 6.2110519502312e-07 [GeV] +Cell[12,19] 0.00015631644025734 [GeV] +Cell[11,19] 0.00024230159634612 [GeV] +Cell[13,4] 4.3057033326477e-06 [GeV] +Cell[17,45] 4.2759172793012e-06 [GeV] +Cell[11,18] 4.2064094741363e-06 [GeV] +Cell[12,13] 3.9151380187832e-06 [GeV] +Cell[12,9] 0.00011458963744258 [GeV] +Cell[13,9] 8.5465075512616e-05 [GeV] +Cell[13,8] 2.4714390747249e-09 [GeV] +Cell[11,9] 1.711868666689e-05 [GeV] +Cell[11,8] 9.3561720859725e-10 [GeV] +Cell[12,22] 0.006025158104854 [GeV] +Cell[12,21] 1.697414991213e-05 [GeV] +Cell[13,21] 0.00090907914768485 [GeV] +Cell[13,20] 9.5191889918169e-06 [GeV] +Cell[13,22] 5.9066077096759e-07 [GeV] +### Total energy deposition in calorimeter by a source track in 23 cells : 0.040638810030404 (GeV) + +Source track ID 6585 (neutron,1.0896482979616[GeV]) at (-313.78512182022,-389.27997292986,16.093078684263) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[8,34] 6.0106700586516e-05 [GeV] +Cell[9,31] 0.0024899074589035 [GeV] +Cell[9,34] 0.0033943151042278 [GeV] +Cell[9,37] 0.0031924983003935 [GeV] +Cell[8,31] 3.6284877569415e-07 [GeV] +Cell[10,35] 2.9103830456734e-14 [GeV] +Cell[9,32] 0.051813928305694 [GeV] +Cell[9,35] 0.0018972268098574 [GeV] +Cell[9,36] 0.00839115244203 [GeV] +Cell[9,30] 0.0022230605209045 [GeV] +Cell[8,35] 2.8426281915017e-09 [GeV] +Cell[8,36] 0.0015322750229408 [GeV] +Cell[8,37] 0.004725067990379 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.07971990434735 (GeV) + +Source track ID 209 (pi+,1.0810871086487[GeV]) at (389.77507829697,-313.16990330903,505.43484818353) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[14,40] 0.012639852039471 [GeV] +Cell[14,39] 4.3678228007593e-07 [GeV] +Cell[15,40] 1.2374691630157e-07 [GeV] +Cell[14,41] 0.0089241910119134 [GeV] +Cell[12,42] 0.11528084215316 [GeV] +Cell[13,41] 0.0020976983309432 [GeV] +Cell[13,42] 0.23372912057254 [GeV] +Cell[14,42] 0.48597814280782 [GeV] +Cell[13,40] 0.0017883484545308 [GeV] +Cell[13,43] 2.1789562993035e-08 [GeV] +Cell[14,43] 0.0034117119340989 [GeV] +Cell[14,44] 1.0614440725476e-08 [GeV] +Cell[15,42] 1.7277766460211e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.86385051751544 (GeV) + +Source track ID 7057 (mu+,97.449383889498[GeV]) at (421.38221699742,269.14127739598,1659.0223440882) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[18,4] 0.19142662893884 [GeV] +Cell[19,4] 0.20254180610933 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.39396843504817 (GeV) + +Source track ID 256 (mu-,0.17371209157001[GeV]) at (467.48176149073,-177.37193316172,-1309.1350208799) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[3,45] 0.080910857819842 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.080910857819842 (GeV) + +Source track ID 7058 (mu-,49.168671692751[GeV]) at (-250.0497148713,-432.98399519241,234.26702230411) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[13,32] 0.67786499392041 [GeV] +Cell[14,31] 0.07035480167603 [GeV] +Cell[15,31] 0.038979590018821 [GeV] +Cell[16,31] 0.023101335001574 [GeV] +Cell[11,31] 0.027384812175119 [GeV] +Cell[11,32] 0.37135542443576 [GeV] +Cell[12,31] 0.0018509022504538 [GeV] +Cell[15,32] 0.79912563483164 [GeV] +Cell[12,32] 0.47364394302064 [GeV] +Cell[14,32] 0.53309835740794 [GeV] +Cell[16,32] 0.57631207759212 [GeV] +Cell[13,31] 0.032919025671965 [GeV] +### Total energy deposition in calorimeter by a source track in 12 cells : 3.6259908980025 (GeV) + +Source track ID 6545 (proton,1.6979004749038[GeV]) at (-499.99491129371,2.2558103628721,255.52985095035) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,37] 3.5229651060718e-06 [GeV] +Cell[11,21] 0.00037731917042879 [GeV] +Cell[11,20] 1.028926497122e-05 [GeV] +Cell[11,22] 0.0076645398221326 [GeV] +Cell[11,23] 0.49372044192149 [GeV] +Cell[12,23] 0.0035262621436794 [GeV] +Cell[10,26] 7.7767401432993e-07 [GeV] +Cell[12,25] 0.00010105741982375 [GeV] +Cell[13,36] 1.1356023605913e-09 [GeV] +Cell[10,23] 0.0022779925132716 [GeV] +Cell[11,25] 0.0019474784377526 [GeV] +Cell[11,24] 0.050119037391718 [GeV] +Cell[9,23] 3.0113283212359e-06 [GeV] +Cell[9,24] 5.439535016194e-08 [GeV] +Cell[11,26] 0.00016540073245801 [GeV] +Cell[12,24] 4.5558988449557e-07 [GeV] +Cell[12,22] 0.0010183886627826 [GeV] +Cell[10,25] 0.0022818196115325 [GeV] +Cell[10,24] 0.0037438796046001 [GeV] +Cell[10,22] 0.0066278372186499 [GeV] +### Total energy deposition in calorimeter by a source track in 20 cells : 0.57358956700357 (GeV) + +Source track ID 930 (pi+,0.23574796333184[GeV]) at (62.699870226264,496.05314863794,-1606.3079874386) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[7,30] 2.1950352950171e-06 [GeV] +Cell[8,30] 1.5004993583716e-06 [GeV] +Cell[6,37] 0.00011180970031228 [GeV] +Cell[6,30] 0.00017024103385711 [GeV] +Cell[8,31] 2.5795840303999e-07 [GeV] +Cell[3,19] 0.00034547095734035 [GeV] +Cell[6,28] 0.00090588679783476 [GeV] +Cell[5,19] 3.0722000917649e-07 [GeV] +Cell[6,36] 2.5507149730402e-06 [GeV] +Cell[1,13] 9.5780560482012e-05 [GeV] +Cell[3,36] 0.00056335348904724 [GeV] +Cell[0,10] 0.00011181248608489 [GeV] +Cell[4,5] 2.5626679416746e-08 [GeV] +Cell[3,35] 0.0004913332648732 [GeV] +Cell[1,14] 3.8239591049205e-11 [GeV] +Cell[6,38] 0.00028054431787598 [GeV] +Cell[4,2] 6.0594981187023e-06 [GeV] +Cell[5,18] 2.3489410523325e-09 [GeV] +Cell[5,39] 4.157723384958e-05 [GeV] +Cell[4,1] 0.00100369955871 [GeV] +Cell[1,16] 0.0023010664088154 [GeV] +Cell[1,11] 0.04959850062181 [GeV] +Cell[3,37] 1.2891730278056e-05 [GeV] +Cell[0,42] 9.4768455564918e-06 [GeV] +Cell[2,12] 0.010376629031723 [GeV] +Cell[1,37] 0.0008058397745023 [GeV] +Cell[3,4] 9.1520712401644e-05 [GeV] +Cell[5,0] 3.3255872402151e-05 [GeV] +Cell[7,31] 1.1613965380889e-05 [GeV] +Cell[5,1] 0.000362582122616 [GeV] +Cell[2,13] 0.0013597983971017 [GeV] +Cell[2,11] 0.0032709559464146 [GeV] +Cell[2,10] 0.00026990878485537 [GeV] +Cell[1,10] 0.10915842078166 [GeV] +Cell[2,42] 0.0011851626874256 [GeV] +Cell[3,1] 6.6907266365092e-05 [GeV] +Cell[2,19] 6.9069017172296e-10 [GeV] +Cell[1,12] 0.00043032172473261 [GeV] +Cell[6,14] 0.00025723671703042 [GeV] +Cell[2,43] 5.6606368161738e-09 [GeV] +Cell[0,9] 0.00043043217891909 [GeV] +Cell[3,44] 0.0010411635686227 [GeV] +Cell[6,29] 0.00043130118236621 [GeV] +Cell[1,9] 0.00015485428472039 [GeV] +Cell[1,8] 1.2411748059094e-05 [GeV] +Cell[4,0] 2.6063159253681e-05 [GeV] +Cell[2,9] 1.207229809097e-08 [GeV] +Cell[5,40] 3.9854273836681e-09 [GeV] +Cell[4,11] 1.0433432180434e-07 [GeV] +Cell[5,41] 0.00097765850576663 [GeV] +### Total energy deposition in calorimeter by a source track in 50 cells : 0.18681050910244 (GeV) + +Source track ID 6546 (anti_proton,1.0352952744242[GeV]) at (-267.93848481506,-422.14804080442,-346.96164658166) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[9,7] 4.3426561664091e-05 [GeV] +Cell[7,7] 0.001072042772711 [GeV] +Cell[7,34] 2.2122985275928e-05 [GeV] +Cell[7,35] 6.549590582722e-06 [GeV] +Cell[7,33] 1.5943198406603e-05 [GeV] +Cell[8,34] 0.056182540010258 [GeV] +Cell[9,31] 0.00013274140595877 [GeV] +Cell[7,29] 0.069113833818696 [GeV] +Cell[7,30] 0.010862536973563 [GeV] +Cell[6,22] 1.1522258573677e-05 [GeV] +Cell[9,8] 7.3811668244161e-09 [GeV] +Cell[7,37] 4.5280231684956e-05 [GeV] +Cell[8,30] 0.0022227426470812 [GeV] +Cell[12,29] 0.0011592613099609 [GeV] +Cell[9,12] 2.9528178682085e-05 [GeV] +Cell[10,12] 8.4989500464872e-08 [GeV] +Cell[10,11] 7.7167540172582e-05 [GeV] +Cell[6,37] 0.0046548494149291 [GeV] +Cell[7,27] 0.00097587781114646 [GeV] +Cell[6,30] 4.7238219428891e-07 [GeV] +Cell[17,29] 1.7989773333511e-06 [GeV] +Cell[13,29] 0.00070406411491456 [GeV] +Cell[6,9] 0.00038054465201459 [GeV] +Cell[8,17] 1.1238768138355e-09 [GeV] +Cell[9,4] 3.3889468380949e-05 [GeV] +Cell[8,31] 0.46940432086371 [GeV] +Cell[8,16] 0.00041986575106205 [GeV] +Cell[7,25] 2.9455920627015e-06 [GeV] +Cell[7,14] 3.4459671489913e-06 [GeV] +Cell[12,26] 1.6264894634332e-07 [GeV] +Cell[8,21] 2.2107909899205e-06 [GeV] +Cell[9,32] 0.13288154568488 [GeV] +Cell[3,10] 0.00015752018571573 [GeV] +Cell[3,9] 6.2552817518053e-05 [GeV] +Cell[8,26] 0.00048941428850662 [GeV] +Cell[13,28] 0.076232777023127 [GeV] +Cell[7,0] 0.0012154595007614 [GeV] +Cell[7,1] 2.2571442741537e-09 [GeV] +Cell[9,14] 0.001981326896021 [GeV] +Cell[9,13] 1.6397312137997e-05 [GeV] +Cell[12,28] 0.15154107776503 [GeV] +Cell[11,28] 1.6024700926209e-09 [GeV] +Cell[17,30] 1.9399296368647e-05 [GeV] +Cell[17,31] 0.00033531810146587 [GeV] +Cell[17,32] 9.580352838384e-06 [GeV] +Cell[7,28] 0.0077000641046366 [GeV] +Cell[6,36] 0.0028113984620048 [GeV] +Cell[15,43] 4.1322784381919e-06 [GeV] +Cell[13,26] 0.0094807199874043 [GeV] +Cell[13,27] 0.0087174598340493 [GeV] +Cell[13,1] 0.0053821583591167 [GeV] +Cell[7,26] 0.00088912365598662 [GeV] +Cell[9,18] 0.0011941197750567 [GeV] +Cell[9,17] 0.00047482637474798 [GeV] +Cell[9,19] 5.6915154564194e-06 [GeV] +Cell[10,17] 2.3683306835665e-09 [GeV] +Cell[13,0] 0.00027133725496662 [GeV] +Cell[10,26] 8.3383785067781e-09 [GeV] +Cell[7,16] 0.0025806151433298 [GeV] +Cell[6,38] 0.0006320950808838 [GeV] +Cell[10,8] 1.0998027310052e-06 [GeV] +Cell[10,47] 0.00011520810148371 [GeV] +Cell[5,33] 5.147872705129e-05 [GeV] +Cell[6,4] 7.7460479332331e-05 [GeV] +Cell[3,11] 6.2590647139587e-06 [GeV] +Cell[9,6] 0.0046371864909735 [GeV] +Cell[9,5] 0.00075043725409637 [GeV] +Cell[12,25] 4.258433416453e-07 [GeV] +Cell[11,25] 7.2982642299962e-05 [GeV] +Cell[11,24] 0.00044886892035834 [GeV] +Cell[15,33] 3.0985161720309e-06 [GeV] +Cell[11,17] 2.8163975451889e-06 [GeV] +Cell[17,34] 1.6285114406287e-05 [GeV] +Cell[17,33] 0.0001495557927916 [GeV] +Cell[17,14] 5.6729824864306e-06 [GeV] +Cell[14,36] 1.9772739789914e-05 [GeV] +Cell[16,34] 8.0665671225688e-07 [GeV] +Cell[16,29] 8.2446486753724e-06 [GeV] +Cell[9,15] 0.0054409323467756 [GeV] +Cell[5,46] 2.9051277670078e-06 [GeV] +Cell[7,17] 2.1689072018489e-06 [GeV] +Cell[3,23] 0.00045579844397082 [GeV] +Cell[9,24] 0.0014333046577939 [GeV] +Cell[11,26] 0.0066278836754967 [GeV] +Cell[7,43] 0.0023765478912475 [GeV] +Cell[12,30] 8.2593419938348e-07 [GeV] +Cell[6,23] 1.1625914485194e-05 [GeV] +Cell[11,29] 1.4202280453901e-09 [GeV] +Cell[10,31] 4.6484186023008e-05 [GeV] +Cell[10,27] 1.1348485077178e-07 [GeV] +Cell[13,30] 4.7825140484292e-05 [GeV] +Cell[8,15] 8.185961869458e-07 [GeV] +Cell[12,27] 0.00064245701786317 [GeV] +Cell[2,12] 0.0038541153030606 [GeV] +Cell[6,0] 3.5641126032715e-09 [GeV] +Cell[7,31] 0.21079926849477 [GeV] +Cell[6,35] 0.0013933004370192 [GeV] +Cell[8,33] 1.5987461665645e-10 [GeV] +Cell[7,36] 0.00083097375914758 [GeV] +Cell[6,31] 9.1954813267421e-06 [GeV] +Cell[7,32] 0.0014475464909052 [GeV] +Cell[7,15] 0.007150619823206 [GeV] +Cell[12,1] 0.00023314367336161 [GeV] +Cell[16,37] 9.1165588855802e-10 [GeV] +Cell[9,30] 4.254503125685e-05 [GeV] +Cell[13,2] 4.0235589549411e-06 [GeV] +Cell[9,25] 1.4206942476903e-05 [GeV] +Cell[2,10] 0.00097387277566304 [GeV] +Cell[6,39] 0.00047415435468815 [GeV] +Cell[3,22] 6.205561460979e-05 [GeV] +Cell[15,10] 9.4857566873543e-06 [GeV] +Cell[6,3] 9.7601162269711e-07 [GeV] +Cell[6,1] 1.9534491354989e-07 [GeV] +Cell[11,18] 2.2054882720113e-10 [GeV] +Cell[8,35] 0.0010647230064375 [GeV] +Cell[13,31] 1.0679899564593e-05 [GeV] +Cell[8,32] 0.10545720367947 [GeV] +Cell[4,26] 0.0004309895419925 [GeV] +Cell[18,33] 5.1032787404893e-05 [GeV] +Cell[18,32] 1.7261923057958e-06 [GeV] +Cell[18,34] 7.6345874723302e-05 [GeV] +Cell[14,30] 0.0012004651778127 [GeV] +Cell[14,17] 1.9687542226166e-07 [GeV] +Cell[16,28] 3.9139831994817e-07 [GeV] +Cell[16,35] 2.4637755586809e-09 [GeV] +Cell[15,38] 1.1914967816438e-06 [GeV] +Cell[15,37] 3.7136487662792e-11 [GeV] +Cell[8,27] 2.8619622462429e-06 [GeV] +Cell[12,15] 5.1997254777234e-06 [GeV] +Cell[12,17] 0.00089851900538736 [GeV] +Cell[8,25] 5.3425799251272e-09 [GeV] +Cell[8,29] 2.2393406325477e-05 [GeV] +Cell[8,28] 0.00089183421779308 [GeV] +Cell[8,41] 4.5152846723795e-09 [GeV] +Cell[0,11] 4.4019346241839e-06 [GeV] +Cell[13,17] 4.5113881590851e-05 [GeV] +Cell[13,18] 2.0513636949318e-06 [GeV] +Cell[10,13] 0.0011530155601165 [GeV] +Cell[10,15] 1.8264399259351e-05 [GeV] +Cell[15,9] 1.2480567675084e-05 [GeV] +Cell[14,29] 0.0010735920526984 [GeV] +### Total energy deposition in calorimeter by a source track in 141 cells : 1.3858496300247 (GeV) + +Source track ID 1354 (pi-,1.7948508490232[GeV]) at (442.05457994033,-233.64021133739,-1862.8611885893) +Original primary track ID 43 (unknown,52.984237098069[GeV]) +Cell[0,44] 0.18150465751965 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.18150465751965 (GeV) + +Source track ID 6550 (pi-,0.89511070812256[GeV]) at (-158.24757113212,-474.29706538285,414.19677073226) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,18] 8.381754992115e-08 [GeV] +Cell[13,34] 0.011421969949685 [GeV] +Cell[13,32] 0.0047138461328547 [GeV] +Cell[9,16] 7.3378866247367e-05 [GeV] +Cell[5,21] 0.00049881813782156 [GeV] +Cell[5,20] 5.5301207321463e-06 [GeV] +Cell[18,37] 3.0951002827351e-10 [GeV] +Cell[5,19] 1.9274599617347e-07 [GeV] +Cell[15,15] 7.0279929786921e-10 [GeV] +Cell[13,26] 5.6426407626304e-05 [GeV] +Cell[13,27] 2.0343577489257e-10 [GeV] +Cell[14,39] 7.6780359108852e-08 [GeV] +Cell[14,27] 3.4749805968204e-07 [GeV] +Cell[12,35] 0.0034830613085136 [GeV] +Cell[9,18] 0.00061314729688479 [GeV] +Cell[9,17] 0.00042503046535705 [GeV] +Cell[11,32] 2.1693033348924e-05 [GeV] +Cell[12,31] 0.0073973511473679 [GeV] +Cell[13,5] 9.3960308004171e-07 [GeV] +Cell[14,47] 0.0021191422205452 [GeV] +Cell[14,0] 1.1643336620182e-08 [GeV] +Cell[8,14] 1.0962053857497e-05 [GeV] +Cell[13,25] 0.00034895209900253 [GeV] +Cell[14,25] 0.00032438652050359 [GeV] +Cell[15,33] 0.0017136143240682 [GeV] +Cell[16,34] 0.00011515107480977 [GeV] +Cell[15,45] 0.0014416616162896 [GeV] +Cell[13,35] 0.0013619959642915 [GeV] +Cell[9,15] 1.8320340313949e-07 [GeV] +Cell[15,25] 2.1950108930469e-10 [GeV] +Cell[12,33] 0.16642724618347 [GeV] +Cell[11,36] 5.7114215512911e-05 [GeV] +Cell[11,35] 3.6445943549893e-05 [GeV] +Cell[12,32] 0.0095502335258778 [GeV] +Cell[12,34] 0.2677636590329 [GeV] +Cell[8,15] 0.00030792122607647 [GeV] +Cell[15,34] 6.3430408553131e-06 [GeV] +Cell[13,33] 0.012203412765845 [GeV] +Cell[15,46] 2.4706082116381e-06 [GeV] +Cell[17,37] 0.0026366664507176 [GeV] +Cell[12,9] 0.00075520014254282 [GeV] +Cell[11,9] 0.00087387455266935 [GeV] +Cell[14,43] 0.00027992004460975 [GeV] +Cell[14,44] 0.0072444611413365 [GeV] +Cell[16,35] 5.6037129252218e-07 [GeV] +Cell[12,17] 0.00067545776527087 [GeV] +Cell[12,36] 0.0030627107975079 [GeV] +Cell[14,33] 3.0280833557867e-05 [GeV] +Cell[11,12] 0.00037214906471092 [GeV] +Cell[11,11] 3.1659892460084e-05 [GeV] +Cell[11,10] 0.0057210738919196 [GeV] +Cell[15,17] 0.00055681940483169 [GeV] +Cell[15,16] 3.0875477818881e-08 [GeV] +Cell[17,19] 0.0006144767652022 [GeV] +Cell[14,45] 0.01419207906975 [GeV] +Cell[14,46] 0.029939126855697 [GeV] +Cell[17,38] 0.00015064595814238 [GeV] +Cell[14,26] 0.008595938256217 [GeV] +Cell[18,8] 2.1302190143615e-06 [GeV] +Cell[15,35] 5.0927767084659e-06 [GeV] +Cell[15,8] 5.6191016046796e-06 [GeV] +Cell[18,38] 8.7788000201499e-05 [GeV] +Cell[12,18] 0.0011762417739205 [GeV] +Cell[18,12] 0.00075626365479861 [GeV] +Cell[14,37] 0.00058565814493251 [GeV] +### Total energy deposition in calorimeter by a source track in 65 cells : 0.57085472781424 (GeV) + +Source track ID 1584 (pi-,0.65410363385132[GeV]) at (-89.374790265929,-491.94730090216,1127.5324544491) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[15,39] 5.5675001811323e-05 [GeV] +Cell[16,6] 0.0021748937211744 [GeV] +Cell[17,30] 1.0651419870555e-09 [GeV] +Cell[15,15] 0.00014903273121172 [GeV] +Cell[14,18] 9.076320566237e-10 [GeV] +Cell[12,20] 0.0012485567486422 [GeV] +Cell[15,14] 0.00051472768001008 [GeV] +Cell[16,7] 1.1328919960079e-06 [GeV] +Cell[14,40] 0.00021004799874254 [GeV] +Cell[14,39] 7.2009119321592e-06 [GeV] +Cell[15,40] 0.0020465485462292 [GeV] +Cell[15,41] 1.753649773309e-05 [GeV] +Cell[14,41] 3.7138521616725e-05 [GeV] +Cell[11,23] 0.0021304303487778 [GeV] +Cell[15,29] 6.6969732870348e-11 [GeV] +Cell[15,28] 0.00019875066697773 [GeV] +Cell[15,6] 2.183852950111e-05 [GeV] +Cell[11,24] 3.0686546147081e-06 [GeV] +Cell[12,19] 0.00059769401170524 [GeV] +Cell[15,27] 0.00033749823205812 [GeV] +Cell[15,20] 0.0010517279866544 [GeV] +Cell[15,21] 0.00031003495773643 [GeV] +Cell[15,33] 0.024357796345622 [GeV] +Cell[12,12] 5.2646006224677e-08 [GeV] +Cell[16,22] 1.6700854175724e-06 [GeV] +Cell[17,23] 4.5607121137436e-09 [GeV] +Cell[15,23] 1.0245781973936e-05 [GeV] +Cell[17,24] 2.0196256855343e-08 [GeV] +Cell[16,34] 0.006783732034469 [GeV] +Cell[16,18] 5.2503712276348e-05 [GeV] +Cell[16,41] 0.0035498347445152 [GeV] +Cell[16,29] 4.3691137107089e-06 [GeV] +Cell[13,30] 1.0001634509536e-05 [GeV] +Cell[15,34] 0.31015660881893 [GeV] +Cell[16,37] 2.619344741106e-13 [GeV] +Cell[16,20] 4.9887091910932e-05 [GeV] +Cell[12,13] 2.995629064344e-07 [GeV] +Cell[11,8] 0.00020058169310903 [GeV] +Cell[12,21] 4.0958267106816e-07 [GeV] +Cell[14,44] 3.1365282836759e-07 [GeV] +Cell[13,31] 0.00012962852085866 [GeV] +Cell[16,35] 2.3921974286395e-05 [GeV] +Cell[15,38] 2.7619852931821e-05 [GeV] +Cell[15,37] 0.002475089517311 [GeV] +Cell[14,45] 2.7939677238464e-12 [GeV] +Cell[15,35] 0.0072376333649173 [GeV] +Cell[15,8] 2.5256169624299e-07 [GeV] +Cell[14,15] 0.00058115311089318 [GeV] +Cell[15,36] 0.0108579732803 [GeV] +Cell[15,7] 0.0021198232566785 [GeV] +Cell[16,17] 0.00025159036434411 [GeV] +Cell[18,13] 3.0965943296906e-06 [GeV] +Cell[19,12] 9.0942404326711e-05 [GeV] +Cell[16,24] 1.6649189550662e-05 [GeV] +Cell[19,18] 0.0039567212922553 [GeV] +Cell[19,17] 0.0014969595445438 [GeV] +Cell[17,47] 2.6967953890562e-06 [GeV] +Cell[16,23] 1.8939629507031e-06 [GeV] +Cell[19,15] 2.261142508587e-05 [GeV] +Cell[19,14] 0.0013097595638034 [GeV] +Cell[16,40] 0.00020861958592695 [GeV] +Cell[14,22] 0.0011913802553928 [GeV] +Cell[14,23] 1.2377105595078e-06 [GeV] +Cell[16,21] 0.024005296555304 [GeV] +Cell[17,21] 4.9791458674008e-05 [GeV] +Cell[17,20] 0.00017844636788868 [GeV] +Cell[16,8] 4.295582357372e-08 [GeV] +Cell[15,13] 1.4574403845472e-05 [GeV] +Cell[16,36] 0.0010323025493934 [GeV] +Cell[12,8] 2.7563692128751e-10 [GeV] +Cell[18,46] 4.6534125955077e-05 [GeV] +Cell[18,47] 4.6931130462326e-05 [GeV] +Cell[18,18] 0.0037225933262473 [GeV] +Cell[18,19] 0.015432898438032 [GeV] +Cell[18,14] 0.00092037576199099 [GeV] +Cell[16,5] 0.00030587371101501 [GeV] +### Total energy deposition in calorimeter by a source track in 76 cells : 0.43405478312835 (GeV) + +Source track ID 6513 (pi+,0.77702598078764[GeV]) at (-481.51157315587,134.70933492879,-1804.4188528151) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[0,21] 0.19391005576395 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.19391005576395 (GeV) + +Source track ID 1509 (pi+,0.88659387627058[GeV]) at (5.9076279949099,499.96509871337,750.36227207191) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[17,8] 1.1494272008576e-06 [GeV] +Cell[14,12] 0.00088982067129956 [GeV] +Cell[16,7] 1.9835128852037e-05 [GeV] +Cell[14,11] 0.19434933316989 [GeV] +Cell[15,11] 0.0001803719572755 [GeV] +Cell[17,9] 6.3442712416872e-10 [GeV] +Cell[17,10] 1.684308779204e-08 [GeV] +Cell[16,10] 0.0029045427143147 [GeV] +Cell[16,9] 0.2587559410202 [GeV] +Cell[15,10] 0.19150370296376 [GeV] +Cell[15,9] 0.0025522579561958 [GeV] +Cell[15,8] 3.2247335184366e-09 [GeV] +Cell[15,7] 0.00021982721034294 [GeV] +Cell[16,8] 2.4728053874696e-05 [GeV] +Cell[13,11] 0.076321851859567 [GeV] +Cell[14,10] 0.0033909757762245 [GeV] +Cell[16,11] 0.020418499674402 [GeV] +### Total energy deposition in calorimeter by a source track in 17 cells : 0.75153285828564 (GeV) + +Source track ID 6482 (pi-,4.4332571837022[GeV]) at (-407.28862291421,290.0275463549,-1898.8282108723) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[0,19] 0.1783530799285 [GeV] +Cell[2,39] 0.0004223587634976 [GeV] +Cell[0,18] 1.6260997578593e-07 [GeV] +Cell[0,17] 0.00030323218989964 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.17907883349188 (GeV) + +Source track ID 1907 (mu+,0.26747310690041[GeV]) at (190.54276654369,-462.26989315537,1150.1198155679) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[15,38] 0.16937448810951 [GeV] +Cell[15,37] 0.035800151400977 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.20517463951049 (GeV) + +Source track ID 6432 (pi+,1.2125285394111[GeV]) at (-409.57335578429,286.79202609487,-1957.9877070198) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[0,19] 0.062287361135051 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.062287361135051 (GeV) + +Source track ID 1936 (kaon-,1.1697884214287[GeV]) at (476.68803018493,-150.89241822706,-11.632822920008) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[9,31] 1.9177644003321e-07 [GeV] +Cell[10,46] 0.26560551021953 [GeV] +Cell[9,47] 0.0030201212586881 [GeV] +Cell[8,30] 2.0661765086857e-05 [GeV] +Cell[10,19] 4.5334397441366e-08 [GeV] +Cell[7,38] 1.9010395335499e-06 [GeV] +Cell[7,39] 1.5181481721811e-06 [GeV] +Cell[13,29] 0.0070602446353355 [GeV] +Cell[13,32] 0.0019674430741149 [GeV] +Cell[7,41] 1.9113590824418e-06 [GeV] +Cell[9,4] 0.00078354777887137 [GeV] +Cell[8,31] 1.5431390122558e-06 [GeV] +Cell[8,16] 0.0037073612312141 [GeV] +Cell[11,21] 3.8064923137426e-07 [GeV] +Cell[10,3] 2.3698358389083e-05 [GeV] +Cell[8,42] 0.013593676609331 [GeV] +Cell[10,2] 2.3338747007074e-05 [GeV] +Cell[3,9] 0.00010876413624419 [GeV] +Cell[9,43] 0.0028525411344109 [GeV] +Cell[9,42] 5.3857478526425e-05 [GeV] +Cell[9,26] 0.00015119035430303 [GeV] +Cell[9,27] 0.00057053198981077 [GeV] +Cell[9,28] 0.0012084231311211 [GeV] +Cell[8,26] 3.0493610596977e-05 [GeV] +Cell[16,6] 1.6631759353913e-07 [GeV] +Cell[10,20] 1.3887054592487e-08 [GeV] +Cell[13,28] 0.0012788935462678 [GeV] +Cell[11,0] 4.4550651193731e-07 [GeV] +Cell[4,7] 2.8738443234033e-09 [GeV] +Cell[1,24] 1.2807780993171e-05 [GeV] +Cell[10,41] 0.00034628075716512 [GeV] +Cell[12,35] 6.2227627495304e-11 [GeV] +Cell[11,20] 9.1875300859101e-07 [GeV] +Cell[10,32] 0.00023869152558314 [GeV] +Cell[14,41] 2.2486970762088e-05 [GeV] +Cell[16,13] 0.0021288801823572 [GeV] +Cell[13,6] 3.4062101622112e-07 [GeV] +Cell[4,9] 2.7711365936852e-05 [GeV] +Cell[4,8] 5.3701131875528e-05 [GeV] +Cell[2,0] 1.4262156116729e-07 [GeV] +Cell[11,47] 0.00060464264927339 [GeV] +Cell[0,28] 0.00050263855691276 [GeV] +Cell[0,0] 2.0368629108134e-06 [GeV] +Cell[1,43] 0.00095801976227744 [GeV] +Cell[8,14] 0.00051022382370666 [GeV] +Cell[10,28] 1.2257611058885e-05 [GeV] +Cell[0,47] 5.2356458313625e-06 [GeV] +Cell[12,10] 0.00057894233172247 [GeV] +Cell[10,8] 0.00040501845929748 [GeV] +Cell[10,9] 0.00075916424782996 [GeV] +Cell[12,0] 1.8209880317954e-07 [GeV] +Cell[10,47] 0.0015576326239002 [GeV] +Cell[10,0] 0.0013283979517905 [GeV] +Cell[9,6] 1.4874902717565e-08 [GeV] +Cell[9,5] 8.7502252784702e-05 [GeV] +Cell[12,46] 0.00018766413743867 [GeV] +Cell[12,47] 0.0034320097198395 [GeV] +Cell[12,45] 9.9393627606332e-06 [GeV] +Cell[11,43] 3.0980465817265e-07 [GeV] +Cell[10,40] 0.00011227483595189 [GeV] +Cell[11,3] 0.0013815072483346 [GeV] +Cell[10,44] 0.0085364318351318 [GeV] +Cell[12,19] 3.299498229353e-06 [GeV] +Cell[10,43] 0.0031866620928745 [GeV] +Cell[11,46] 0.013256285003173 [GeV] +Cell[11,45] 0.0010204127952146 [GeV] +Cell[7,4] 1.3462802706158e-05 [GeV] +Cell[12,30] 2.0440338237677e-05 [GeV] +Cell[11,29] 0.0056739059137633 [GeV] +Cell[10,45] 0.066700627275917 [GeV] +Cell[10,31] 0.0018261273214615 [GeV] +Cell[11,19] 9.8257754075348e-08 [GeV] +Cell[13,30] 0.0014875994422342 [GeV] +Cell[2,47] 9.3245395280519e-05 [GeV] +Cell[3,0] 2.1916468654126e-08 [GeV] +Cell[7,36] 1.6922545037232e-06 [GeV] +Cell[6,31] 1.03566160833e-05 [GeV] +Cell[9,46] 0.063396566700975 [GeV] +Cell[9,45] 0.088270855026245 [GeV] +Cell[9,30] 2.3149506239406e-07 [GeV] +Cell[0,27] 0.00014435382545128 [GeV] +Cell[8,43] 0.00038679487076354 [GeV] +Cell[8,44] 0.00081517195790221 [GeV] +Cell[8,4] 6.5248189514705e-05 [GeV] +Cell[11,18] 1.9266735762358e-09 [GeV] +Cell[12,13] 0.00072278405447469 [GeV] +Cell[12,21] 1.0170936002396e-07 [GeV] +Cell[13,20] 1.5610814443789e-07 [GeV] +Cell[14,42] 2.3535219952464e-07 [GeV] +Cell[13,31] 2.4468668852933e-06 [GeV] +Cell[8,27] 7.9394221171469e-06 [GeV] +Cell[12,15] 0.00038162039709482 [GeV] +Cell[8,28] 1.5845441375859e-06 [GeV] +Cell[8,41] 0.0058620014908774 [GeV] +Cell[12,36] 0.00052379622045987 [GeV] +Cell[15,17] 1.8730649026111e-07 [GeV] +Cell[15,16] 0.00053187127483443 [GeV] +Cell[15,13] 0.00026865688786019 [GeV] +Cell[16,5] 0.00026335653025103 [GeV] +Cell[9,44] 0.1182759884172 [GeV] +Cell[10,5] 3.115832885328e-05 [GeV] +Cell[10,4] 2.2587249986827e-07 [GeV] +Cell[10,6] 3.1038756497992e-06 [GeV] +Cell[1,44] 2.7363209343662e-05 [GeV] +Cell[9,33] 8.6362462025136e-07 [GeV] +Cell[9,0] 5.9789312028897e-05 [GeV] +Cell[13,19] 4.3176544014614e-06 [GeV] +Cell[12,4] 0.0028481888061338 [GeV] +Cell[3,8] 0.00018214146273806 [GeV] +Cell[12,14] 3.3869775589665e-05 [GeV] +Cell[11,15] 4.0813190594235e-08 [GeV] +Cell[9,41] 0.0010104950893246 [GeV] +Cell[13,7] 9.9005782976747e-07 [GeV] +Cell[8,40] 0.0013572865354936 [GeV] +Cell[8,45] 4.6647032197711e-05 [GeV] +Cell[12,37] 1.9936685246648e-05 [GeV] +Cell[12,6] 0.00065314338942517 [GeV] +Cell[11,38] 1.3316963537363e-05 [GeV] +Cell[14,4] 0.0016482977722204 [GeV] +Cell[10,38] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 120 cells : 0.70754079022852 (GeV) + +Source track ID 6433 (anti_proton,5.3584634526743[GeV]) at (-483.16648034598,128.64739511579,-1698.2081013069) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[2,23] 0.00060946711021018 [GeV] +Cell[8,22] 0.00011523647047602 [GeV] +Cell[6,43] 1.1858793906868e-05 [GeV] +Cell[5,10] 2.7675650781021e-06 [GeV] +Cell[9,37] 0.00032190336050905 [GeV] +Cell[7,41] 0.00063554990125897 [GeV] +Cell[3,31] 0.00030714359698652 [GeV] +Cell[6,13] 0.00014611349561153 [GeV] +Cell[6,12] 7.8462942457918e-05 [GeV] +Cell[6,11] 0.0012762116073125 [GeV] +Cell[4,35] 9.7713792060517e-05 [GeV] +Cell[9,32] 1.0834390536729e-08 [GeV] +Cell[7,46] 0.00059600971410077 [GeV] +Cell[7,45] 0.00089329184492135 [GeV] +Cell[4,32] 0.0029136690213715 [GeV] +Cell[1,5] 2.0803459687158e-05 [GeV] +Cell[1,17] 0.0061881559792586 [GeV] +Cell[1,22] 0.1586048139188 [GeV] +Cell[4,31] 0.002432613483634 [GeV] +Cell[2,22] 7.1706380884734e-05 [GeV] +Cell[1,23] 0.026697501480109 [GeV] +Cell[2,16] 5.0723150488921e-06 [GeV] +Cell[1,13] 0.0056778817645267 [GeV] +Cell[0,5] 0.0023493380176331 [GeV] +Cell[4,5] 5.1775714382529e-09 [GeV] +Cell[0,22] 1.5780270720229 [GeV] +Cell[1,24] 0.0076956465074119 [GeV] +Cell[2,24] 0.00043154746845482 [GeV] +Cell[0,19] 0.0048238045893693 [GeV] +Cell[3,35] 4.6013724801014e-05 [GeV] +Cell[1,14] 3.3507911721244e-06 [GeV] +Cell[3,45] 1.07625965029e-10 [GeV] +Cell[0,33] 2.887840442213e-06 [GeV] +Cell[0,28] 1.5871104551479e-08 [GeV] +Cell[0,44] 0.0004746221651269 [GeV] +Cell[0,43] 8.3400470884953e-10 [GeV] +Cell[1,29] 0.0016853068229349 [GeV] +Cell[1,2] 0.00041621801519932 [GeV] +Cell[1,27] 0.0041931913852378 [GeV] +Cell[0,23] 0.060732282934538 [GeV] +Cell[0,47] 0.00036286814935067 [GeV] +Cell[3,3] 0.0050802723364016 [GeV] +Cell[4,2] 1.0635064061717e-05 [GeV] +Cell[9,36] 0.0017666249186216 [GeV] +Cell[0,24] 0.037529135829892 [GeV] +Cell[1,6] 5.4508943576366e-06 [GeV] +Cell[5,33] 2.8707619640045e-07 [GeV] +Cell[5,11] 0.0011647865519252 [GeV] +Cell[1,46] 0.0021101042223499 [GeV] +Cell[3,34] 0.0035220658822037 [GeV] +Cell[1,35] 5.5540818721056e-08 [GeV] +Cell[5,13] 0.0010798611131387 [GeV] +Cell[2,29] 0.0017239203778081 [GeV] +Cell[1,25] 1.2752051475218e-08 [GeV] +Cell[0,25] 0.00018419596210015 [GeV] +Cell[0,16] 0.0026412986864739 [GeV] +Cell[0,37] 0.00068387648151322 [GeV] +Cell[1,47] 0.00013988223141132 [GeV] +Cell[1,19] 0.0074152290007383 [GeV] +Cell[0,7] 4.1225448367186e-06 [GeV] +Cell[8,23] 0.0001785151623335 [GeV] +Cell[2,14] 1.2349347900908e-06 [GeV] +Cell[4,6] 8.4427883848548e-09 [GeV] +Cell[2,18] 0.001497183592914 [GeV] +Cell[0,3] 1.4201642508851e-05 [GeV] +Cell[0,2] 0.0023019031830878 [GeV] +Cell[2,12] 0.00029353216568029 [GeV] +Cell[2,17] 0.00096340787633361 [GeV] +Cell[0,4] 0.00026191529860853 [GeV] +Cell[5,34] 3.1388631763434e-05 [GeV] +Cell[1,21] 0.007465392086351 [GeV] +Cell[2,25] 0.0016828433844288 [GeV] +Cell[0,41] 0.0015141131405118 [GeV] +Cell[1,26] 0.0005381597495201 [GeV] +Cell[2,41] 0.0018708619416578 [GeV] +Cell[2,13] 0.0055915049251521 [GeV] +Cell[0,1] 0.00041460165559306 [GeV] +Cell[2,11] 0.00011696303044914 [GeV] +Cell[2,10] 0.00094604916095827 [GeV] +Cell[1,10] 4.2071359466831e-05 [GeV] +Cell[0,18] 2.1606691589113e-05 [GeV] +Cell[2,42] 1.2022011333102e-09 [GeV] +Cell[2,19] 0.008977672876301 [GeV] +Cell[2,28] 3.7485463632038e-05 [GeV] +Cell[2,6] 0.0018222707556048 [GeV] +Cell[2,5] 0.0047610899469083 [GeV] +Cell[0,26] 5.2942518959753e-07 [GeV] +Cell[0,45] 5.3386705531011e-07 [GeV] +Cell[3,47] 1.1788985900921e-05 [GeV] +Cell[1,12] 0.0016046830806986 [GeV] +Cell[7,42] 2.6501052138883e-07 [GeV] +Cell[1,20] 0.023476532371748 [GeV] +Cell[1,18] 0.044119418432431 [GeV] +Cell[2,20] 0.0088584364541681 [GeV] +Cell[3,30] 0.00014952190439999 [GeV] +Cell[2,30] 0.00035123694541395 [GeV] +Cell[2,43] 3.0155896092765e-06 [GeV] +Cell[0,20] 0.014951577814001 [GeV] +Cell[0,40] 0.0012719166613726 [GeV] +Cell[4,3] 0.0015114744919405 [GeV] +Cell[1,9] 0.000344110252213 [GeV] +Cell[2,9] 0.0010954922980618 [GeV] +Cell[8,32] 5.793699529022e-10 [GeV] +Cell[0,21] 0.28004686234089 [GeV] +Cell[0,17] 0.0052227624206711 [GeV] +Cell[9,33] 3.5426620570433e-08 [GeV] +Cell[9,41] 1.7454502920486e-05 [GeV] +Cell[6,42] 3.7792518181959e-05 [GeV] +Cell[6,41] 0.0004807868683298 [GeV] +Cell[2,8] 0.011507211183701 [GeV] +Cell[2,7] 0.0032279608466539 [GeV] +Cell[3,7] 1.8231099284094e-07 [GeV] +Cell[1,3] 0.00049993388554765 [GeV] +Cell[1,42] 0.00031208652009946 [GeV] +Cell[5,12] 0.0040566874044115 [GeV] +Cell[4,12] 2.8833125043093e-08 [GeV] +Cell[5,37] 0.00032979496977942 [GeV] +Cell[3,2] 1.9598777403189e-06 [GeV] +Cell[3,32] 0.015661516511557 [GeV] +Cell[3,33] 0.0020780856348547 [GeV] +Cell[4,34] 0.0020085202701018 [GeV] +Cell[3,25] 6.8013564157354e-07 [GeV] +Cell[3,46] 1.1770681744565e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 123 cells : 2.3985979807196 (GeV) + +Source track ID 1504 (pi+,0.27580024223936[GeV]) at (281.47248094636,413.24719293651,24.223481072927) +Original primary track ID 41 (unknown,2.6699951779791[GeV]) +Cell[8,9] 0.0013244717830929 [GeV] +Cell[8,10] 0.00017008206057744 [GeV] +Cell[7,9] 0.0035725430375834 [GeV] +Cell[6,24] 2.7647474780679e-09 [GeV] +Cell[9,10] 2.4372390995268e-05 [GeV] +Cell[9,31] 0.0010706249880532 [GeV] +Cell[9,9] 0.00034577884502539 [GeV] +Cell[7,29] 0.0027777437806656 [GeV] +Cell[8,12] 0.00020172223016311 [GeV] +Cell[9,8] 0.00027471833869572 [GeV] +Cell[10,33] 5.4119340493344e-06 [GeV] +Cell[8,13] 4.7594312491128e-11 [GeV] +Cell[12,29] 1.4722580804573e-05 [GeV] +Cell[7,38] 2.7792917389888e-06 [GeV] +Cell[10,34] 1.8876074755099e-05 [GeV] +Cell[7,6] 1.2428328091119e-09 [GeV] +Cell[6,37] 0.00026741419839323 [GeV] +Cell[7,27] 0.056873523567369 [GeV] +Cell[6,6] 1.685748430873e-07 [GeV] +Cell[9,43] 0.0012579980848286 [GeV] +Cell[9,42] 7.6646053884247e-05 [GeV] +Cell[6,28] 1.0444806481246e-05 [GeV] +Cell[7,28] 0.0048865221179211 [GeV] +Cell[14,3] 0.00027147672518367 [GeV] +Cell[7,26] 6.2150125449989e-06 [GeV] +Cell[13,0] 2.0878963582277e-05 [GeV] +Cell[10,21] 1.9916855096881e-05 [GeV] +Cell[11,20] 3.8617776810952e-06 [GeV] +Cell[11,34] 0.00059191302531076 [GeV] +Cell[6,38] 3.7960855916026e-06 [GeV] +Cell[4,2] 0.0012133526681883 [GeV] +Cell[4,28] 8.9770750264506e-09 [GeV] +Cell[10,8] 0.0014377752264118 [GeV] +Cell[10,7] 0.030844125315983 [GeV] +Cell[10,9] 0.0001054872016631 [GeV] +Cell[11,6] 0.0004567983754888 [GeV] +Cell[12,25] 0.0013619002686547 [GeV] +Cell[13,36] 4.3927866499871e-09 [GeV] +Cell[11,5] 0.00051022619096796 [GeV] +Cell[4,1] 6.8864233039449e-05 [GeV] +Cell[9,23] 0.0011512490515195 [GeV] +Cell[7,5] 7.0367719899878e-09 [GeV] +Cell[8,24] 4.5003391960563e-08 [GeV] +Cell[9,24] 0.00035978306147615 [GeV] +Cell[6,23] 1.3560209423304e-05 [GeV] +Cell[11,33] 1.0990157345077e-05 [GeV] +Cell[11,35] 4.0165699419958e-07 [GeV] +Cell[12,2] 0.0010750042058052 [GeV] +Cell[5,0] 1.2003312599518e-07 [GeV] +Cell[5,1] 0.00011924637056541 [GeV] +Cell[12,3] 2.3415398341058e-06 [GeV] +Cell[4,29] 0.00087071710015641 [GeV] +Cell[13,9] 3.8720318116248e-09 [GeV] +Cell[10,24] 1.4632332633482e-05 [GeV] +Cell[10,22] 0.00026520298302785 [GeV] +Cell[4,0] 5.7134426242555e-08 [GeV] +Cell[8,29] 0.00067337854787934 [GeV] +Cell[8,28] 0.0032808719795752 [GeV] +Cell[15,35] 0.00062484595024174 [GeV] +Cell[15,36] 0.0014129506766038 [GeV] +Cell[9,44] 1.1689297680277e-06 [GeV] +Cell[10,6] 0.0025140208114495 [GeV] +Cell[9,0] 3.3481546438452e-08 [GeV] +Cell[12,4] 0.0022258864894937 [GeV] +Cell[9,41] 1.8629525584402e-09 [GeV] +Cell[13,10] 1.5256810002029e-09 [GeV] +Cell[19,35] 0.0033465859711087 [GeV] +Cell[6,27] 8.2302420050837e-06 [GeV] +Cell[9,1] 1.3933493745299e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 69 cells : 0.12807844180092 (GeV) + +Source track ID 6266 (proton,2.1150613089947[GeV]) at (-61.560440496771,496.19584053662,-1600.2155170038) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[1,15] 5.4755500968895e-09 [GeV] +Cell[7,40] 5.932566622505e-06 [GeV] +Cell[5,26] 7.9777391009657e-06 [GeV] +Cell[1,13] 0.036407587736776 [GeV] +Cell[0,10] 0.0016359031205073 [GeV] +Cell[0,12] 0.011910757259864 [GeV] +Cell[1,14] 0.0019234499083383 [GeV] +Cell[0,29] 0.00030797661656936 [GeV] +Cell[0,28] 3.8566575211007e-05 [GeV] +Cell[1,43] 0.0010294618932671 [GeV] +Cell[0,43] 4.1756680873732e-05 [GeV] +Cell[2,35] 1.0654788411557e-05 [GeV] +Cell[2,36] 3.4379624650342e-05 [GeV] +Cell[2,37] 3.0532455036791e-07 [GeV] +Cell[1,16] 6.8700899191754e-10 [GeV] +Cell[1,11] 0.024076754982266 [GeV] +Cell[3,37] 3.1175021227682e-05 [GeV] +Cell[5,25] 0.00048895544614902 [GeV] +Cell[0,13] 0.014261354280465 [GeV] +Cell[2,39] 2.8352456894936e-05 [GeV] +Cell[0,8] 0.0042531080833084 [GeV] +Cell[0,14] 0.010240537041422 [GeV] +Cell[2,41] 1.9770232029259e-10 [GeV] +Cell[2,40] 5.4577648256782e-08 [GeV] +Cell[2,13] 0.00016153719915314 [GeV] +Cell[1,10] 0.00062506264895433 [GeV] +Cell[1,41] 2.8629120947699e-08 [GeV] +Cell[1,40] 7.5565185397863e-10 [GeV] +Cell[0,30] 0.00098303541908899 [GeV] +Cell[1,12] 0.46910734611847 [GeV] +Cell[2,43] 1.0193500207833e-06 [GeV] +Cell[0,9] 0.00042379321052293 [GeV] +Cell[6,2] 1.435868916451e-05 [GeV] +Cell[1,8] 6.9943743028489e-09 [GeV] +Cell[4,26] 1.0568111378234e-05 [GeV] +Cell[0,11] 0.0010774847199073 [GeV] +Cell[4,27] 2.0308696519351e-05 [GeV] +Cell[5,27] 1.9600747691584e-12 [GeV] +Cell[0,15] 0.010677216789481 [GeV] +### Total energy deposition in calorimeter by a source track in 39 cells : 0.58983677541815 (GeV) + +Source track ID 3026 (pi+,0.58335461378896[GeV]) at (-499.12353176378,29.592229379521,859.39903141271) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,7] 0.00025827768151198 [GeV] +Cell[13,32] 0.0016480913837089 [GeV] +Cell[12,26] 2.6931273572814e-05 [GeV] +Cell[9,29] 0.0019745117177763 [GeV] +Cell[9,28] 0.00050413998426685 [GeV] +Cell[13,24] 6.7590601109259e-05 [GeV] +Cell[15,15] 9.45197564306e-09 [GeV] +Cell[15,43] 2.3789804778062e-05 [GeV] +Cell[13,26] 0.0025027241951312 [GeV] +Cell[15,14] 9.8146155161203e-06 [GeV] +Cell[16,7] 5.9399456949905e-07 [GeV] +Cell[14,40] 0.0010295829972761 [GeV] +Cell[12,35] 0.00034106711330787 [GeV] +Cell[14,41] 0.0013373733660394 [GeV] +Cell[16,13] 0.00045894148001889 [GeV] +Cell[13,23] 4.169554184773e-05 [GeV] +Cell[12,10] 0.00097275973891696 [GeV] +Cell[10,9] 1.6933531358518e-05 [GeV] +Cell[12,45] 0.0012332014403493 [GeV] +Cell[14,21] 0.0035144970665439 [GeV] +Cell[14,25] 0.027826225540487 [GeV] +Cell[12,43] 1.937192666901e-08 [GeV] +Cell[14,19] 1.9929033878725e-05 [GeV] +Cell[12,44] 0.0002987900984765 [GeV] +Cell[14,20] 0.00057377958099914 [GeV] +Cell[15,22] 0.00040469617058613 [GeV] +Cell[13,41] 2.4614997179015e-05 [GeV] +Cell[11,45] 0.0016886058243006 [GeV] +Cell[13,47] 0.00037097928628199 [GeV] +Cell[16,42] 0.0012368899575386 [GeV] +Cell[15,25] 9.930620154023e-06 [GeV] +Cell[12,32] 4.7153885185253e-05 [GeV] +Cell[12,27] 0.0019715612719596 [GeV] +Cell[12,13] 0.0004170253629203 [GeV] +Cell[12,9] 0.00056489556967241 [GeV] +Cell[13,21] 0.00063312365144031 [GeV] +Cell[13,22] 0.0018313858076764 [GeV] +Cell[13,40] 2.1929760259809e-05 [GeV] +Cell[19,4] 0.0015764055818173 [GeV] +Cell[14,26] 0.00086599494742387 [GeV] +Cell[18,8] 0.0026021894146507 [GeV] +Cell[15,36] 6.5229827654548e-05 [GeV] +Cell[14,22] 0.0038817565755702 [GeV] +Cell[14,23] 0.32429554475767 [GeV] +Cell[16,8] 0.0054658857113297 [GeV] +Cell[15,13] 5.3624482055056e-05 [GeV] +Cell[14,24] 0.0035581954365814 [GeV] +Cell[9,3] 0.00308069852931 [GeV] +Cell[15,44] 0.0003798265268415 [GeV] +Cell[16,43] 7.7584836169876e-05 [GeV] +Cell[12,11] 3.1477815937251e-06 [GeV] +Cell[19,6] 0.00019064600211095 [GeV] +Cell[14,35] 0.003100850120803 [GeV] +Cell[19,46] 3.2293857133482e-05 [GeV] +Cell[19,45] 0.0014424440685671 [GeV] +Cell[10,10] 0.00074883258218108 [GeV] +Cell[17,7] 2.5704979867442e-05 [GeV] +Cell[18,7] 6.7853079599445e-10 [GeV] +Cell[19,8] 0.00050712174378054 [GeV] +Cell[19,7] 0.002946884849822 [GeV] +### Total energy deposition in calorimeter by a source track in 60 cells : 0.40880492606196 (GeV) + +Source track ID 5638 (pi+,0.78151039480668[GeV]) at (-497.53371137574,49.600464157882,-1144.1228915256) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[8,8] 1.444629280013e-05 [GeV] +Cell[7,7] 0.001325044368907 [GeV] +Cell[7,8] 6.3077235312335e-05 [GeV] +Cell[7,11] 0.0010155073072051 [GeV] +Cell[8,47] 0.0011297225706739 [GeV] +Cell[8,7] 0.00015610349890267 [GeV] +Cell[7,30] 3.4988061311196e-06 [GeV] +Cell[7,44] 3.614330556502e-06 [GeV] +Cell[6,43] 1.9119983929045e-05 [GeV] +Cell[6,44] 0.00095334550383543 [GeV] +Cell[7,39] 5.0060495157595e-05 [GeV] +Cell[6,37] 2.1422607824206e-07 [GeV] +Cell[7,41] 0.0002466590673373 [GeV] +Cell[7,40] 0.00068382091296064 [GeV] +Cell[7,47] 2.5633689947426e-06 [GeV] +Cell[3,31] 1.4649773116048e-05 [GeV] +Cell[7,13] 7.4235129868612e-06 [GeV] +Cell[6,12] 9.661268471973e-06 [GeV] +Cell[8,46] 7.6558649197978e-10 [GeV] +Cell[2,27] 4.269111668691e-07 [GeV] +Cell[5,42] 0.0027936120781051 [GeV] +Cell[5,21] 7.1811662055552e-06 [GeV] +Cell[5,22] 0.00056804109934819 [GeV] +Cell[4,22] 0.032623655325392 [GeV] +Cell[7,46] 1.5992554835975e-09 [GeV] +Cell[4,32] 1.7057546356227e-06 [GeV] +Cell[3,10] 0.00020555873788919 [GeV] +Cell[3,9] 0.0010860955548516 [GeV] +Cell[7,0] 0.00018320238611182 [GeV] +Cell[3,19] 8.9627629314577e-05 [GeV] +Cell[3,20] 0.0077699195974467 [GeV] +Cell[4,19] 0.00052354957905175 [GeV] +Cell[4,20] 0.00010938294107996 [GeV] +Cell[4,30] 1.05357489374e-05 [GeV] +Cell[4,7] 0.014339054028144 [GeV] +Cell[4,21] 0.0024220184238603 [GeV] +Cell[5,19] 2.6843842933886e-06 [GeV] +Cell[3,36] 5.7808544284967e-05 [GeV] +Cell[3,38] 0.0031146274775337 [GeV] +Cell[3,39] 0.00012093931890752 [GeV] +Cell[2,24] 0.0059469203064718 [GeV] +Cell[3,35] 3.1526262182524e-07 [GeV] +Cell[11,4] 3.6479015305986e-06 [GeV] +Cell[4,9] 0.0034901922152639 [GeV] +Cell[4,8] 6.8113067932472e-05 [GeV] +Cell[2,0] 7.4585875950106e-08 [GeV] +Cell[0,0] 8.4124444692861e-06 [GeV] +Cell[3,18] 1.0771723430025e-07 [GeV] +Cell[1,2] 6.0103862133474e-06 [GeV] +Cell[4,45] 5.3784045157954e-06 [GeV] +Cell[1,27] 7.3431790772588e-05 [GeV] +Cell[1,0] 0.00036004057642458 [GeV] +Cell[4,24] 0.012401810183777 [GeV] +Cell[2,44] 7.8270445477528e-06 [GeV] +Cell[4,13] 0.0023316001811667 [GeV] +Cell[10,8] 0.00027002216644939 [GeV] +Cell[4,18] 2.9330026522189e-05 [GeV] +Cell[4,17] 2.1109861864716e-05 [GeV] +Cell[5,16] 2.3222767806146e-05 [GeV] +Cell[5,4] 0.00051099891 [GeV] +Cell[6,4] 5.0176243530586e-06 [GeV] +Cell[5,39] 1.8199110083515e-05 [GeV] +Cell[4,16] 4.4539211785377e-08 [GeV] +Cell[2,37] 0.00012613663553645 [GeV] +Cell[1,35] 2.5248554197788e-07 [GeV] +Cell[3,11] 0.0082924326957776 [GeV] +Cell[11,3] 1.5613957300502e-05 [GeV] +Cell[2,29] 0.0011896927529268 [GeV] +Cell[3,24] 0.0085718421252616 [GeV] +Cell[5,44] 0.00060264859175129 [GeV] +Cell[1,47] 0.00044609010088004 [GeV] +Cell[5,43] 5.5760664126865e-06 [GeV] +Cell[3,37] 0.00022267048746357 [GeV] +Cell[3,23] 0.0086272721707124 [GeV] +Cell[7,43] 0.0021675162936436 [GeV] +Cell[2,12] 2.324749072136e-05 [GeV] +Cell[0,4] 1.6130998847075e-07 [GeV] +Cell[2,47] 2.2626855275121e-07 [GeV] +Cell[4,37] 0.00027880302558776 [GeV] +Cell[2,25] 3.6463655140778e-05 [GeV] +Cell[0,41] 8.265559154097e-06 [GeV] +Cell[1,26] 0.0016541705889849 [GeV] +Cell[2,26] 0.061245418336942 [GeV] +Cell[7,31] 5.7217638980092e-06 [GeV] +Cell[7,36] 7.8591634519398e-07 [GeV] +Cell[8,0] 5.2290085250206e-08 [GeV] +Cell[9,45] 9.4812447725758e-05 [GeV] +Cell[7,15] 0.00058815352853299 [GeV] +Cell[2,11] 7.7638832875323e-05 [GeV] +Cell[2,42] 8.5687497630715e-10 [GeV] +Cell[1,34] 8.8621752331619e-07 [GeV] +Cell[2,19] 3.6515277489571e-05 [GeV] +Cell[1,33] 0.00011508852914005 [GeV] +Cell[4,10] 0.0017413085288751 [GeV] +Cell[7,42] 0.001044474277395 [GeV] +Cell[2,20] 0.0010954148186579 [GeV] +Cell[2,30] 0.00011177694928676 [GeV] +Cell[4,29] 4.3429808865767e-06 [GeV] +Cell[2,43] 8.8638092211113e-06 [GeV] +Cell[3,21] 0.0014410033846266 [GeV] +Cell[3,22] 0.012089150111934 [GeV] +Cell[8,44] 3.1668459996581e-09 [GeV] +Cell[8,4] 0.0013423469650901 [GeV] +Cell[5,3] 0.0020070635973978 [GeV] +Cell[11,9] 9.5488363353979e-07 [GeV] +Cell[11,8] 1.7762619798987e-06 [GeV] +Cell[6,29] 5.2515502320603e-06 [GeV] +Cell[5,41] 0.0011018115580094 [GeV] +Cell[3,8] 1.6184840477308e-05 [GeV] +Cell[8,45] 5.043693818152e-10 [GeV] +Cell[6,41] 2.8256129121473e-07 [GeV] +Cell[1,3] 1.6045529628173e-07 [GeV] +Cell[1,42] 1.270673237741e-09 [GeV] +Cell[3,33] 4.0707105072215e-06 [GeV] +Cell[3,25] 0.0013803461309018 [GeV] +Cell[10,10] 2.4190146359615e-07 [GeV] +Cell[4,23] 0.24993931349473 [GeV] +Cell[4,44] 0.00028028318587792 [GeV] +Cell[16,12] 1.1864033236634e-05 [GeV] +Cell[18,3] 0.00058213437597999 [GeV] +Cell[11,7] 4.4709246139973e-08 [GeV] +Cell[2,3] 0.00073863021391753 [GeV] +Cell[6,40] 5.5845543771284e-05 [GeV] +Cell[4,36] 5.82864407329e-06 [GeV] +Cell[8,39] 0.002841279943812 [GeV] +Cell[4,25] 0.0024103373672003 [GeV] +Cell[12,38] 4.8636714927852e-06 [GeV] +Cell[12,39] 0.00013370111266147 [GeV] +Cell[5,8] 0.00011880402988754 [GeV] +### Total energy deposition in calorimeter by a source track in 129 cells : 0.47226390645358 (GeV) + +Source track ID 2088 (pi-,0.22753850565429[GeV]) at (46.140599516316,497.86649322512,-1287.6477304673) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[3,10] 0.00051894381567147 [GeV] +Cell[7,3] 5.8976399290373e-05 [GeV] +Cell[0,29] 1.0146491113119e-06 [GeV] +Cell[0,28] 0.0021312602808435 [GeV] +Cell[1,29] 2.233713588339e-06 [GeV] +Cell[4,45] 8.1653661254677e-10 [GeV] +Cell[4,24] 4.3673822365236e-06 [GeV] +Cell[6,4] 2.7722436755084e-07 [GeV] +Cell[3,11] 0.0824547944863 [GeV] +Cell[1,30] 9.3536509666592e-08 [GeV] +Cell[2,29] 6.280300567596e-09 [GeV] +Cell[7,4] 2.0501645716422e-06 [GeV] +Cell[2,12] 1.8321085406114e-06 [GeV] +Cell[3,4] 1.670391074731e-05 [GeV] +Cell[2,40] 3.4953496651724e-08 [GeV] +Cell[2,11] 0.00045337989531276 [GeV] +Cell[2,10] 0.00012305344444849 [GeV] +Cell[1,28] 0.0020451653010759 [GeV] +Cell[0,27] 0.00027530779829692 [GeV] +Cell[2,6] 0.00059755958911262 [GeV] +Cell[0,26] 8.5118043056355e-05 [GeV] +Cell[4,10] 0.0012974127553492 [GeV] +Cell[3,12] 0.0017270736254262 [GeV] +Cell[1,9] 1.7655899474676e-06 [GeV] +Cell[2,7] 5.052214760326e-09 [GeV] +Cell[4,44] 1.3780217465523e-05 [GeV] +Cell[3,5] 0.00026229899091788 [GeV] +Cell[3,6] 0.00031248826881711 [GeV] +### Total energy deposition in calorimeter by a source track in 28 cells : 0.092386998293554 (GeV) + +Source track ID 5641 (pi+,0.50625345301524[GeV]) at (490.70667616304,95.952894531728,-1102.6935825765) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[10,46] 0.0015770073439 [GeV] +Cell[4,40] 6.0639300791081e-06 [GeV] +Cell[3,43] 0.00014526088747675 [GeV] +Cell[4,39] 0.0016772556105513 [GeV] +Cell[4,47] 0.0010181900428838 [GeV] +Cell[4,5] 0.00068813307655375 [GeV] +Cell[11,20] 6.6211214289069e-12 [GeV] +Cell[3,42] 4.2725350390128e-05 [GeV] +Cell[4,45] 3.6456347754665e-07 [GeV] +Cell[3,3] 0.0015512599535217 [GeV] +Cell[4,2] 0.0003232793028568 [GeV] +Cell[10,47] 1.4952209312469e-07 [GeV] +Cell[5,17] 3.2087144511024e-05 [GeV] +Cell[1,35] 0.00051099891 [GeV] +Cell[12,19] 3.208575071767e-08 [GeV] +Cell[4,1] 0.21783745337376 [GeV] +Cell[1,11] 0.0011392551237972 [GeV] +Cell[11,19] 1.1236223838296e-06 [GeV] +Cell[11,37] 2.2944084157643e-05 [GeV] +Cell[10,39] 7.9182939371094e-06 [GeV] +Cell[1,32] 0.0021037052200998 [GeV] +Cell[3,4] 0.02448783992524 [GeV] +Cell[3,0] 0.0069518823753021 [GeV] +Cell[5,0] 8.9266509788217e-05 [GeV] +Cell[2,32] 4.9993113498203e-07 [GeV] +Cell[1,39] 0.00015880112309321 [GeV] +Cell[5,1] 1.3862066339243e-08 [GeV] +Cell[9,30] 4.4633429002715e-05 [GeV] +Cell[3,1] 0.00012107176498046 [GeV] +Cell[1,34] 8.1761914088929e-08 [GeV] +Cell[1,31] 0.00023615082737433 [GeV] +Cell[0,30] 7.1545207756571e-06 [GeV] +Cell[2,5] 1.4287361409515e-09 [GeV] +Cell[3,47] 0.001700683161931 [GeV] +Cell[1,33] 0.00041701004270869 [GeV] +Cell[2,21] 0.0014876057256748 [GeV] +Cell[2,20] 0.0014815684290758 [GeV] +Cell[3,22] 2.6573076827844e-05 [GeV] +Cell[2,31] 8.478719115783e-05 [GeV] +Cell[4,3] 2.4563632905483e-11 [GeV] +Cell[4,4] 0.0054504665912503 [GeV] +Cell[3,44] 0.0002629886590961 [GeV] +Cell[4,0] 0.0022713904707557 [GeV] +Cell[0,11] 0.00029959109022957 [GeV] +Cell[11,12] 6.8727511394059e-05 [GeV] +Cell[9,0] 2.8096374007873e-06 [GeV] +Cell[11,38] 0.00064202224191547 [GeV] +Cell[10,38] 4.4352495169733e-06 [GeV] +Cell[9,1] 0.0011344911622376 [GeV] +Cell[2,3] 1.0071288212202e-05 [GeV] +Cell[3,5] 0.01065546847056 [GeV] +Cell[3,6] 0.00028914860662735 [GeV] +Cell[6,18] 0.0015081948617986 [GeV] +Cell[6,19] 1.738642626151e-06 [GeV] +Cell[4,46] 0.00098642698687217 [GeV] +Cell[9,20] 6.4873911207542e-05 [GeV] +Cell[2,4] 0.00056945779849866 [GeV] +### Total energy deposition in calorimeter by a source track in 57 cells : 0.29020313574035 (GeV) + +Source track ID 3210 (pi+,1.1826875869601[GeV]) at (-498.97618715281,31.980691900719,-1753.475030887) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[2,23] 3.5877933669326e-08 [GeV] +Cell[8,9] 6.1765091959387e-07 [GeV] +Cell[8,8] 2.3581721523897e-05 [GeV] +Cell[8,5] 8.8782864622772e-08 [GeV] +Cell[4,40] 1.7212005332112e-08 [GeV] +Cell[1,15] 9.2370928212404e-05 [GeV] +Cell[4,35] 0.0056745425392689 [GeV] +Cell[2,27] 0.00054123077147665 [GeV] +Cell[3,10] 0.00017953940320558 [GeV] +Cell[3,9] 0.0010596014657264 [GeV] +Cell[4,7] 7.3622758724014e-05 [GeV] +Cell[3,43] 0.0033736532128733 [GeV] +Cell[1,17] 5.1202661852585e-06 [GeV] +Cell[1,22] 0.0011671363213562 [GeV] +Cell[4,31] 0.0013263946500595 [GeV] +Cell[2,22] 2.8123089825272e-05 [GeV] +Cell[1,23] 0.063923304722536 [GeV] +Cell[2,16] 0.00034799578376783 [GeV] +Cell[0,12] 1.2871493807438e-05 [GeV] +Cell[0,32] 0.001789804338325 [GeV] +Cell[0,22] 0.018350995853716 [GeV] +Cell[1,24] 0.0032800267429232 [GeV] +Cell[2,24] 4.9306456219256e-07 [GeV] +Cell[0,19] 0.0047475069177447 [GeV] +Cell[2,1] 0.0004546154460395 [GeV] +Cell[7,19] 2.835168144361e-05 [GeV] +Cell[7,18] 3.1141098588705e-12 [GeV] +Cell[0,44] 0.0019496451412451 [GeV] +Cell[0,43] 5.0959591171704e-06 [GeV] +Cell[1,27] 3.5789218245554e-05 [GeV] +Cell[0,23] 0.26831017048396 [GeV] +Cell[0,24] 0.036263223274972 [GeV] +Cell[5,33] 0.00046180138848763 [GeV] +Cell[1,35] 0.0022254493623863 [GeV] +Cell[1,25] 0.0086121521566889 [GeV] +Cell[0,25] 0.014456207567781 [GeV] +Cell[3,17] 9.1575302765705e-05 [GeV] +Cell[1,16] 0.00022732467055027 [GeV] +Cell[0,16] 7.3517347882444e-05 [GeV] +Cell[1,19] 6.9972279132344e-05 [GeV] +Cell[0,3] 0.0025309456660952 [GeV] +Cell[2,39] 0.0015923672192436 [GeV] +Cell[5,34] 1.1164256648044e-09 [GeV] +Cell[1,21] 0.0040832602776153 [GeV] +Cell[0,41] 2.2983644157648e-08 [GeV] +Cell[3,0] 0.0018499156499192 [GeV] +Cell[1,26] 0.0017430850152082 [GeV] +Cell[2,2] 6.5114959426182e-05 [GeV] +Cell[1,36] 0.00045445741391165 [GeV] +Cell[2,10] 0.0011003866623312 [GeV] +Cell[4,43] 9.3917347840033e-07 [GeV] +Cell[1,28] 0.0028064178138119 [GeV] +Cell[2,28] 0.0040165404396244 [GeV] +Cell[0,26] 0.0061203045940993 [GeV] +Cell[0,45] 2.55282316175e-09 [GeV] +Cell[1,20] 0.00055455021954094 [GeV] +Cell[2,21] 2.8468440518736e-08 [GeV] +Cell[2,43] 2.0116014638916e-08 [GeV] +Cell[0,20] 0.0015084187991282 [GeV] +Cell[5,31] 1.1036862473475e-06 [GeV] +Cell[3,44] 0.0014293038642736 [GeV] +Cell[2,9] 0.00014663440503682 [GeV] +Cell[0,11] 0.0020049220191911 [GeV] +Cell[0,21] 0.025447007494202 [GeV] +Cell[0,17] 0.00011369899000601 [GeV] +Cell[3,8] 0.0013842066319354 [GeV] +Cell[2,8] 1.4754215953872e-08 [GeV] +Cell[3,7] 4.3971766339382e-05 [GeV] +Cell[4,34] 0.0022142615871136 [GeV] +Cell[4,44] 2.3329502437264e-07 [GeV] +Cell[6,19] 3.0252512033258e-08 [GeV] +Cell[5,30] 9.7130264623502e-07 [GeV] +Cell[4,33] 4.7130621387623e-06 [GeV] +Cell[2,15] 9.8984025262325e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 74 cells : 0.50049131750755 (GeV) + +Source track ID 4988 (anti_proton,1.6910247499152[GeV]) at (-493.85424169498,78.1536177018,-1172.0434453257) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[6,24] 0.00028904623514641 [GeV] +Cell[7,7] 0.00051099891 [GeV] +Cell[7,29] 4.7895709285513e-06 [GeV] +Cell[7,30] 0.00280475496617 [GeV] +Cell[7,44] 0.0012350029397572 [GeV] +Cell[1,15] 0.0021761172415735 [GeV] +Cell[6,33] 0.0011910164656332 [GeV] +Cell[6,9] 1.6271296545028e-05 [GeV] +Cell[8,42] 2.2790470211476e-08 [GeV] +Cell[6,13] 4.4105894630775e-08 [GeV] +Cell[3,26] 0.00014996809771401 [GeV] +Cell[4,35] 9.2543545179069e-08 [GeV] +Cell[2,27] 0.0040104411066011 [GeV] +Cell[3,27] 0.00080270288298107 [GeV] +Cell[5,20] 0.00062644975365211 [GeV] +Cell[4,22] 0.70490002879085 [GeV] +Cell[7,45] 7.4268580647185e-08 [GeV] +Cell[3,9] 0.0017564558762725 [GeV] +Cell[7,1] 0.00011155366498997 [GeV] +Cell[3,20] 0.0025553802787564 [GeV] +Cell[4,20] 0.0024122224349866 [GeV] +Cell[8,1] 3.1130918763665e-05 [GeV] +Cell[3,40] 1.0996312437328e-07 [GeV] +Cell[4,30] 7.8708062574151e-09 [GeV] +Cell[4,7] 2.3790939563696e-05 [GeV] +Cell[4,21] 0.025385025365666 [GeV] +Cell[5,19] 3.7575009890134e-05 [GeV] +Cell[4,31] 1.5738978584068e-07 [GeV] +Cell[2,22] 7.3620759508231e-08 [GeV] +Cell[1,13] 0.0019727474016848 [GeV] +Cell[4,47] 0.0076470152260247 [GeV] +Cell[3,38] 6.334377071596e-05 [GeV] +Cell[3,39] 9.0762853735669e-06 [GeV] +Cell[5,47] 7.1766694682083e-06 [GeV] +Cell[3,35] 0.0001961833740512 [GeV] +Cell[11,23] 5.6763465108816e-06 [GeV] +Cell[12,23] 0.00028808003653164 [GeV] +Cell[3,41] 1.0068470146507e-09 [GeV] +Cell[0,44] 0.00036551322334526 [GeV] +Cell[4,45] 0.00015356792309512 [GeV] +Cell[7,23] 0.00012535661960362 [GeV] +Cell[3,3] 4.0579446154879e-05 [GeV] +Cell[5,5] 2.6935150867757e-06 [GeV] +Cell[4,28] 5.4976353928851e-05 [GeV] +Cell[4,24] 0.0082708281342759 [GeV] +Cell[10,47] 0.0011256967922768 [GeV] +Cell[5,33] 0.00096163776969267 [GeV] +Cell[6,8] 0.0011323553680734 [GeV] +Cell[3,34] 0.00059085531509696 [GeV] +Cell[4,16] 0.0020778728074286 [GeV] +Cell[1,35] 0.0021646012152698 [GeV] +Cell[11,24] 4.7155212816961e-06 [GeV] +Cell[2,29] 0.0028406771524124 [GeV] +Cell[3,24] 0.0023231133363661 [GeV] +Cell[5,44] 4.6900531742722e-09 [GeV] +Cell[5,43] 4.0098384488374e-09 [GeV] +Cell[3,23] 0.10638551326036 [GeV] +Cell[2,14] 0.0017127545322532 [GeV] +Cell[2,18] 1.0768155334517e-07 [GeV] +Cell[0,3] 0.00081340164018449 [GeV] +Cell[0,13] 0.00055755114253423 [GeV] +Cell[0,42] 9.5725030405447e-08 [GeV] +Cell[2,12] 0.0027461218146982 [GeV] +Cell[2,17] 4.2926833623369e-06 [GeV] +Cell[0,4] 0.001642425462331 [GeV] +Cell[4,37] 8.7016669567674e-09 [GeV] +Cell[2,25] 5.0385591521263e-09 [GeV] +Cell[0,41] 5.0921371439472e-08 [GeV] +Cell[5,0] 0.0032612333874835 [GeV] +Cell[2,26] 0.0033716505971897 [GeV] +Cell[5,1] 0.017619335694213 [GeV] +Cell[8,0] 2.5665064937698e-05 [GeV] +Cell[7,22] 4.5962157173562e-09 [GeV] +Cell[2,42] 0.0032640118444382 [GeV] +Cell[1,12] 0.0010153026364996 [GeV] +Cell[2,21] 2.0072118929761e-05 [GeV] +Cell[2,20] 0.00043233790587794 [GeV] +Cell[3,29] 0.00060723603632147 [GeV] +Cell[3,30] 0.0011020218464337 [GeV] +Cell[4,29] 0.0012656887422351 [GeV] +Cell[3,21] 0.0074010873826211 [GeV] +Cell[3,22] 0.59701308824676 [GeV] +Cell[5,32] 4.7465188799833e-07 [GeV] +Cell[3,16] 0.001372995561386 [GeV] +Cell[3,15] 0.00026911307000451 [GeV] +Cell[5,2] 8.4815123900626e-06 [GeV] +Cell[5,31] 2.1059531718493e-09 [GeV] +Cell[8,4] 0.010184255858037 [GeV] +Cell[5,3] 0.0016877839872611 [GeV] +Cell[4,0] 1.031770106124e-06 [GeV] +Cell[4,26] 0.0054255184968049 [GeV] +Cell[8,41] 5.4280852514239e-06 [GeV] +Cell[6,41] 0.00051099891 [GeV] +Cell[5,37] 0.0015264027830635 [GeV] +Cell[4,34] 0.00049948291985176 [GeV] +Cell[4,27] 0.0020157872760378 [GeV] +Cell[4,23] 0.17384146799792 [GeV] +Cell[4,36] 3.6884620203637e-07 [GeV] +Cell[4,25] 0.00079484467350101 [GeV] +Cell[3,5] 1.4999746344984e-06 [GeV] +Cell[3,6] 0.0032504348467047 [GeV] +Cell[4,46] 0.0007260916550664 [GeV] +Cell[2,4] 0.00074965707829745 [GeV] +Cell[2,15] 0.0035256796803535 [GeV] +Cell[6,7] 1.4939966175007e-05 [GeV] +Cell[5,6] 1.4647288480774e-08 [GeV] +Cell[19,3] 0.0022066364553977 [GeV] +### Total energy deposition in calorimeter by a source track in 107 cells : 1.7423361121235 (GeV) + +Source track ID 3209 (pi-,26.431209745018[GeV]) at (-348.97588122864,-358.07238698438,-1955.3996649548) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[0,29] 0.0052197670999266 [GeV] +Cell[0,34] 0.00050666748258864 [GeV] +Cell[0,30] 0.10789207360558 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.1136185081881 (GeV) + +Source track ID 4990 (pi+,0.53484478399671[GeV]) at (98.523330591214,490.19705561051,293.9915231113) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[7,30] 1.0198241216131e-06 [GeV] +Cell[17,18] 4.6530297036043e-05 [GeV] +Cell[10,11] 0.0022230652562617 [GeV] +Cell[11,21] 0.00013395863218273 [GeV] +Cell[11,41] 3.4257208081385e-05 [GeV] +Cell[14,18] 1.5603486972395e-05 [GeV] +Cell[13,27] 6.5035419538617e-09 [GeV] +Cell[12,35] 2.662943021528e-05 [GeV] +Cell[11,22] 1.525062316432e-10 [GeV] +Cell[11,4] 0.0020071132465714 [GeV] +Cell[12,10] 0.0024652630311285 [GeV] +Cell[10,8] 0.0010388592652823 [GeV] +Cell[10,7] 1.54373664991e-05 [GeV] +Cell[10,9] 3.3578553042389e-05 [GeV] +Cell[10,37] 8.3674845533778e-05 [GeV] +Cell[11,43] 0.00051550697353935 [GeV] +Cell[11,42] 0.00089064480939214 [GeV] +Cell[11,3] 1.2347743540886e-07 [GeV] +Cell[12,5] 9.5771867586336e-07 [GeV] +Cell[12,12] 8.6878873997875e-06 [GeV] +Cell[11,5] 0.0025789990710698 [GeV] +Cell[18,45] 8.761155186221e-09 [GeV] +Cell[14,36] 3.8827256066725e-06 [GeV] +Cell[13,41] 1.6614646938251e-08 [GeV] +Cell[16,18] 8.8803963374744e-05 [GeV] +Cell[9,24] 3.928373043891e-07 [GeV] +Cell[12,3] 6.9466250351979e-09 [GeV] +Cell[16,19] 7.0495646638847e-05 [GeV] +Cell[11,9] 0.24465409178606 [GeV] +Cell[11,8] 0.00658813506041 [GeV] +Cell[12,22] 3.4407677060244e-07 [GeV] +Cell[12,21] 7.2737574360303e-05 [GeV] +Cell[13,42] 2.3034727050572e-05 [GeV] +Cell[14,17] 1.0662442742614e-05 [GeV] +Cell[12,36] 1.5953949427967e-06 [GeV] +Cell[11,12] 0.00084051287960472 [GeV] +Cell[11,11] 0.0090837698182588 [GeV] +Cell[11,10] 0.058605410979177 [GeV] +Cell[14,15] 1.192488707602e-08 [GeV] +Cell[18,46] 1.6116537153721e-09 [GeV] +Cell[12,4] 8.2771653069358e-09 [GeV] +Cell[12,11] 0.0006925616581758 [GeV] +Cell[10,10] 3.641423973022e-09 [GeV] +Cell[11,7] 0.0017099419044736 [GeV] +### Total energy deposition in calorimeter by a source track in 44 cells : 0.33456634828899 (GeV) + +Source track ID 2084 (pi-,5.0454202248203[GeV]) at (-463.55654046158,-187.39085835572,-1932.27329662) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[1,23] 0.0010213351613694 [GeV] +Cell[0,26] 0.092988999329792 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.094010334491162 (GeV) + +Source track ID 5592 (pi-,0.68005937502353[GeV]) at (372.84328177466,-333.14844624506,541.8646166884) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[9,7] 4.7032110160217e-08 [GeV] +Cell[11,40] 0.00024018514898918 [GeV] +Cell[9,31] 0.00016019656234414 [GeV] +Cell[9,8] 4.0768121834844e-08 [GeV] +Cell[17,18] 1.6166221593039e-06 [GeV] +Cell[9,12] 1.3970013242215e-08 [GeV] +Cell[8,31] 2.223644260539e-06 [GeV] +Cell[13,28] 3.3229676773772e-08 [GeV] +Cell[11,41] 2.7497723460897e-05 [GeV] +Cell[9,14] 5.1259937083614e-07 [GeV] +Cell[9,13] 7.7254709754015e-07 [GeV] +Cell[17,32] 3.273659851402e-06 [GeV] +Cell[15,15] 0.00015806373391695 [GeV] +Cell[15,43] 0.0029481504114879 [GeV] +Cell[15,14] 0.00012375482222842 [GeV] +Cell[14,40] 0.0011102528624075 [GeV] +Cell[14,39] 0.00096177425963037 [GeV] +Cell[16,16] 2.9536824513343e-08 [GeV] +Cell[14,41] 0.0076014767751683 [GeV] +Cell[12,46] 0.00045411639652229 [GeV] +Cell[12,47] 0.0014039193855638 [GeV] +Cell[12,45] 6.0971714556217e-06 [GeV] +Cell[15,32] 2.6695394190028e-06 [GeV] +Cell[12,42] 0.085247581292778 [GeV] +Cell[12,43] 0.00023711218372739 [GeV] +Cell[13,44] 0.0014117078983323 [GeV] +Cell[12,19] 1.7148832753264e-06 [GeV] +Cell[15,33] 2.8810951043852e-06 [GeV] +Cell[17,33] 1.9129853171762e-06 [GeV] +Cell[17,23] 1.618333888473e-06 [GeV] +Cell[13,41] 0.005107566535507 [GeV] +Cell[17,9] 0.00010287826372189 [GeV] +Cell[17,10] 0.0015563818123705 [GeV] +Cell[11,29] 2.4844135623425e-08 [GeV] +Cell[13,42] 0.27013601644682 [GeV] +Cell[14,42] 0.0028753659451517 [GeV] +Cell[13,40] 0.021528375873454 [GeV] +Cell[13,43] 0.08347907779504 [GeV] +Cell[14,43] 0.00069287277372826 [GeV] +Cell[14,30] 4.9367116298527e-07 [GeV] +Cell[15,16] 9.9434185506198e-07 [GeV] +Cell[17,19] 2.5789506707952e-10 [GeV] +Cell[15,7] 2.9213576770871e-05 [GeV] +Cell[17,11] 1.9093456830888e-05 [GeV] +Cell[13,39] 0.00023541522220148 [GeV] +Cell[12,40] 1.9638009007394e-08 [GeV] +Cell[12,41] 5.0365956326459e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 47 cells : 0.48787508789511 (GeV) + +Source track ID 3497 (pi-,5.4477868822961[GeV]) at (-310.98718492244,-391.51880007736,-1940.6416168592) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,8] 1.6163598047569e-08 [GeV] +Cell[7,7] 2.6980304424342e-05 [GeV] +Cell[8,47] 0.00017134699001326 [GeV] +Cell[8,7] 0.0010246158602164 [GeV] +Cell[8,12] 5.7705092767719e-06 [GeV] +Cell[10,18] 3.8156630092999e-05 [GeV] +Cell[7,41] 5.0089687476884e-07 [GeV] +Cell[7,40] 5.7920227436625e-07 [GeV] +Cell[3,31] 2.5099927825067e-10 [GeV] +Cell[3,26] 1.1641532182693e-12 [GeV] +Cell[10,35] 5.7006924180314e-08 [GeV] +Cell[3,9] 0.00015442487625216 [GeV] +Cell[3,19] 0.0010934712136599 [GeV] +Cell[1,5] 0.00010160683402398 [GeV] +Cell[1,17] 3.1166232714895e-05 [GeV] +Cell[1,22] 4.7888529486954e-05 [GeV] +Cell[2,16] 0.00088187689061817 [GeV] +Cell[0,31] 0.43534287064202 [GeV] +Cell[0,10] 8.0834077538384e-05 [GeV] +Cell[0,32] 0.023680660282181 [GeV] +Cell[2,24] 6.3399877399206e-06 [GeV] +Cell[0,19] 1.2878692359664e-07 [GeV] +Cell[13,26] 5.6176113139372e-06 [GeV] +Cell[10,17] 0.0028130474391638 [GeV] +Cell[2,1] 0.00018456713409478 [GeV] +Cell[0,29] 0.03520493807841 [GeV] +Cell[3,45] 3.1037888032301e-05 [GeV] +Cell[0,33] 0.03794380144687 [GeV] +Cell[0,28] 0.027213694783763 [GeV] +Cell[0,0] 0.00098002853423383 [GeV] +Cell[1,43] 1.6880221664906e-12 [GeV] +Cell[1,29] 0.00079455740408014 [GeV] +Cell[1,2] 0.00090318483340582 [GeV] +Cell[4,45] 0.00026560744371818 [GeV] +Cell[0,39] 0.00041664487587354 [GeV] +Cell[0,38] 0.002527722008298 [GeV] +Cell[1,27] 0.0022470034425044 [GeV] +Cell[0,23] 5.2831645007245e-07 [GeV] +Cell[2,44] 0.00090429217109818 [GeV] +Cell[12,10] 6.8727488255718e-06 [GeV] +Cell[11,6] 1.8437313410686e-05 [GeV] +Cell[0,24] 0.00047933896768551 [GeV] +Cell[1,6] 0.00033804133570243 [GeV] +Cell[5,4] 0.0015237738796464 [GeV] +Cell[6,4] 1.5513416381964e-05 [GeV] +Cell[12,12] 0.00060566833391351 [GeV] +Cell[1,30] 2.2684340056003e-05 [GeV] +Cell[3,24] 0.00045529689368698 [GeV] +Cell[1,25] 3.1849685910856e-09 [GeV] +Cell[0,25] 0.00019269946336402 [GeV] +Cell[5,45] 1.1397894091942e-06 [GeV] +Cell[5,44] 2.4674809537828e-09 [GeV] +Cell[0,37] 3.2455195614602e-05 [GeV] +Cell[1,47] 0.00052781731841122 [GeV] +Cell[1,19] 2.3680425556449e-08 [GeV] +Cell[1,11] 9.4165009757035e-06 [GeV] +Cell[0,7] 2.2005406208336e-10 [GeV] +Cell[3,23] 7.5330973637165e-05 [GeV] +Cell[7,2] 0.0026914075978456 [GeV] +Cell[11,36] 5.7887789823781e-06 [GeV] +Cell[11,37] 5.5555483235366e-05 [GeV] +Cell[0,2] 0.0036332060374561 [GeV] +Cell[2,17] 0.00013519357886219 [GeV] +Cell[1,1] 0.00035849123201842 [GeV] +Cell[4,37] 0.00041738565460014 [GeV] +Cell[1,21] 0.0020278127332719 [GeV] +Cell[0,41] 0.0051706824328199 [GeV] +Cell[1,26] 0.0020115110271157 [GeV] +Cell[0,8] 0.0010292112899202 [GeV] +Cell[2,2] 0.00085400860202128 [GeV] +Cell[0,1] 0.00054058439083185 [GeV] +Cell[1,7] 1.2298716001169e-08 [GeV] +Cell[2,10] 0.049648725849149 [GeV] +Cell[1,10] 1.7656251526432e-06 [GeV] +Cell[0,18] 0.0032338766290784 [GeV] +Cell[2,42] 0.002223053011117 [GeV] +Cell[1,34] 0.0010323462962791 [GeV] +Cell[0,35] 5.9777246322483e-05 [GeV] +Cell[1,28] 0.0045102446474997 [GeV] +Cell[1,31] 0.0004936783450795 [GeV] +Cell[1,41] 0.00012434666430408 [GeV] +Cell[0,27] 0.042549225206764 [GeV] +Cell[0,30] 1.2427190410452 [GeV] +Cell[0,26] 0.0021042070898285 [GeV] +Cell[4,10] 0.042892488351373 [GeV] +Cell[1,20] 0.00068309899554049 [GeV] +Cell[1,18] 5.2197574184106e-05 [GeV] +Cell[2,43] 0.00017677023640067 [GeV] +Cell[0,9] 7.6750521804343e-05 [GeV] +Cell[3,21] 0.0010665768134168 [GeV] +Cell[2,31] 0.0001150175577028 [GeV] +Cell[0,20] 0.0014595043415369 [GeV] +Cell[3,12] 4.5467570453184e-05 [GeV] +Cell[0,40] 0.00072446699415148 [GeV] +Cell[6,3] 0.0004885696227841 [GeV] +Cell[6,2] 1.192693015355e-07 [GeV] +Cell[6,1] 2.7884084374818e-10 [GeV] +Cell[5,3] 0.0016732488271838 [GeV] +Cell[4,3] 5.7673921983223e-06 [GeV] +Cell[4,4] 1.0095623409143e-05 [GeV] +Cell[12,9] 1.8747760029783e-06 [GeV] +Cell[3,44] 3.455919498731e-05 [GeV] +Cell[2,9] 0.0022977155132356 [GeV] +Cell[0,11] 0.00040263453667785 [GeV] +Cell[12,36] 0.00027927290967114 [GeV] +Cell[12,8] 4.0869386918985e-07 [GeV] +Cell[0,17] 0.0015969121941158 [GeV] +Cell[8,40] 0.00035710596993886 [GeV] +Cell[12,37] 6.1294821789488e-06 [GeV] +Cell[6,41] 1.3914294665938e-06 [GeV] +Cell[2,8] 0.00098959690422671 [GeV] +Cell[2,7] 1.1035452447459e-06 [GeV] +Cell[1,3] 0.0019605747516754 [GeV] +Cell[1,42] 9.2274101360772e-06 [GeV] +Cell[5,12] 7.3219416663051e-10 [GeV] +Cell[3,25] 0.00021981986356299 [GeV] +Cell[3,46] 6.5571957404018e-05 [GeV] +Cell[12,11] 0.0044777183239705 [GeV] +Cell[2,3] 0.00044794045736569 [GeV] +Cell[4,46] 0.0016103911652233 [GeV] +Cell[2,15] 0.0067017487505249 [GeV] +Cell[0,36] 0.00077725122108609 [GeV] +### Total energy deposition in calorimeter by a source track in 122 cells : 2.0187703101521 (GeV) + +Source track ID 5606 (pi-,0.23425673375308[GeV]) at (476.64044667143,-151.04265820246,288.45791553068) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[9,29] 0.00032466412690419 [GeV] +Cell[11,44] 0.0044659869533876 [GeV] +Cell[15,20] 0.037021535039766 [GeV] +Cell[15,18] 5.366221012082e-07 [GeV] +Cell[15,19] 0.0016322958203285 [GeV] +Cell[15,21] 0.0033460400113385 [GeV] +Cell[15,22] 4.098844035525e-07 [GeV] +Cell[11,46] 0.010016303446219 [GeV] +Cell[11,45] 0.14934646414759 [GeV] +Cell[15,17] 5.3870349519229e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.20620810640156 (GeV) + +Source track ID 3560 (anti_neutron,5.3948206100571[GeV]) at (-415.09134243251,-278.74572182829,-1871.4579101789) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[2,23] 0.0020033442586236 [GeV] +Cell[9,40] 0.0014374272786175 [GeV] +Cell[8,11] 6.4871285285335e-06 [GeV] +Cell[8,47] 8.0419332662132e-06 [GeV] +Cell[7,44] 0.058229142747341 [GeV] +Cell[7,37] 5.5780752736609e-06 [GeV] +Cell[6,43] 0.0034345637766862 [GeV] +Cell[6,44] 0.11661205489347 [GeV] +Cell[6,33] 5.9005734855191e-06 [GeV] +Cell[5,24] 6.5657177183311e-06 [GeV] +Cell[2,27] 9.7328871779609e-06 [GeV] +Cell[7,45] 0.0021957914130696 [GeV] +Cell[9,43] 1.6432520351373e-07 [GeV] +Cell[1,5] 1.0773312169476e-08 [GeV] +Cell[8,1] 6.9829695361136e-05 [GeV] +Cell[3,40] 5.1314127854198e-05 [GeV] +Cell[3,43] 9.5263789407909e-06 [GeV] +Cell[2,16] 0.054291232507426 [GeV] +Cell[0,10] 0.00084131544656434 [GeV] +Cell[0,5] 0.00065697561229819 [GeV] +Cell[0,32] 0.0026198048679657 [GeV] +Cell[0,22] 0.0042156350134988 [GeV] +Cell[0,19] 0.00051099891 [GeV] +Cell[2,1] 9.8358486297911e-08 [GeV] +Cell[2,0] 0.0026691931659369 [GeV] +Cell[3,41] 0.0052450602056053 [GeV] +Cell[0,29] 0.12597924562068 [GeV] +Cell[0,28] 1.5270458820374 [GeV] +Cell[1,29] 0.0004191262612967 [GeV] +Cell[3,42] 0.0017687834490565 [GeV] +Cell[3,18] 0.0032711152588345 [GeV] +Cell[0,23] 0.00087036840354157 [GeV] +Cell[1,0] 0.0011930987319834 [GeV] +Cell[0,47] 0.00083720620411587 [GeV] +Cell[4,2] 1.1507672752487e-09 [GeV] +Cell[4,28] 0.0011113489906838 [GeV] +Cell[3,28] 0.0025502416744723 [GeV] +Cell[4,13] 0.00077377999838933 [GeV] +Cell[0,24] 0.001420275505646 [GeV] +Cell[1,6] 0.0047449051981948 [GeV] +Cell[5,4] 0.00033831763288106 [GeV] +Cell[1,35] 0.0049139901837255 [GeV] +Cell[5,13] 7.0681584184058e-06 [GeV] +Cell[4,1] 0.0025948253717481 [GeV] +Cell[2,29] 5.9436489245854e-05 [GeV] +Cell[0,25] 0.0030176371200559 [GeV] +Cell[7,4] 0.0010295040298595 [GeV] +Cell[3,17] 0.0024781215830672 [GeV] +Cell[3,13] 0.002624702370924 [GeV] +Cell[8,20] 0.000722313893789 [GeV] +Cell[2,14] 1.8393881953216e-07 [GeV] +Cell[7,43] 0.0042645864753847 [GeV] +Cell[11,33] 0.00047238424228194 [GeV] +Cell[2,18] 0.0028122338674747 [GeV] +Cell[0,2] 0.0038557462235208 [GeV] +Cell[2,17] 0.01316546157339 [GeV] +Cell[0,4] 0.00039756887388577 [GeV] +Cell[2,47] 6.798590766266e-08 [GeV] +Cell[1,32] 0.00077359706710184 [GeV] +Cell[0,41] 0.0004350953951913 [GeV] +Cell[3,14] 4.829324552702e-08 [GeV] +Cell[8,0] 0.00032225784345735 [GeV] +Cell[0,1] 0.0012566470182768 [GeV] +Cell[1,7] 9.5323914405939e-05 [GeV] +Cell[1,10] 0.00094610695070098 [GeV] +Cell[3,1] 0.00055871342890032 [GeV] +Cell[4,42] 0.00052862173546623 [GeV] +Cell[4,43] 3.3312056463274e-05 [GeV] +Cell[1,28] 1.4277451327871e-09 [GeV] +Cell[1,40] 0.00038151104443651 [GeV] +Cell[0,27] 0.33890509913517 [GeV] +Cell[0,30] 0.030559750892994 [GeV] +Cell[0,26] 0.0061496831696197 [GeV] +Cell[3,47] 6.7065085750073e-07 [GeV] +Cell[0,40] 0.00051865680533657 [GeV] +Cell[3,16] 0.0052763273500969 [GeV] +Cell[3,15] 1.0010498288921e-05 [GeV] +Cell[8,37] 0.00023384355450862 [GeV] +Cell[1,8] 0.00051099891 [GeV] +Cell[4,0] 2.9176477342844e-05 [GeV] +Cell[2,9] 2.7947339162893e-08 [GeV] +Cell[4,26] 0.0010090086400411 [GeV] +Cell[13,18] 2.8521147453375e-07 [GeV] +Cell[9,0] 0.00079618620265407 [GeV] +Cell[13,19] 0.00066529226005275 [GeV] +Cell[2,8] 0.0014991936874848 [GeV] +Cell[3,7] 8.1767240219051e-05 [GeV] +Cell[3,2] 2.3641041480005e-10 [GeV] +Cell[4,27] 0.00082547274383614 [GeV] +Cell[4,25] 0.0001961050096063 [GeV] +Cell[3,6] 4.2571657104418e-08 [GeV] +Cell[2,15] 0.00042011717347009 [GeV] +Cell[2,46] 0.0026131004878156 [GeV] +Cell[19,32] 0.0015185290205869 [GeV] +### Total energy deposition in calorimeter by a source track in 94 cells : 2.3670259006234 (GeV) + +Source track ID 5607 (proton,0.99117419218957[GeV]) at (476.56476105976,-151.28128937862,289.14931346326) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[11,45] 0.05290217918957 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.05290217918957 (GeV) + +Source track ID 3570 (mu+,4.0011818412915[GeV]) at (-417.09971130061,-275.73144694239,-1791.1730374288) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[0,28] 0.21463053188108 [GeV] +Cell[1,28] 0.014595614958636 [GeV] +Cell[0,27] 0.0012613616683784 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.23048750850809 (GeV) + +Source track ID 5574 (kaon+,0.66731809365806[GeV]) at (313.57192263946,389.45172914264,367.83585406646) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[11,6] 0.19406141579822 [GeV] +Cell[12,5] 0.155585077685 [GeV] +Cell[12,8] 0.0019998687225435 [GeV] +Cell[12,6] 0.015821105199022 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.36746746740478 (GeV) + +Source track ID 4993 (pi-,1.1892134269643[GeV]) at (43.806700911127,-498.07727608804,1037.8387528637) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[15,39] 0.0044931665397222 [GeV] +Cell[18,37] 7.4082638548134e-09 [GeV] +Cell[14,40] 8.1881088249247e-08 [GeV] +Cell[14,39] 9.007055257257e-06 [GeV] +Cell[15,40] 0.00058287102781219 [GeV] +Cell[18,39] 0.080619857976271 [GeV] +Cell[9,35] 6.324946298264e-09 [GeV] +Cell[9,36] 1.3943166588888e-06 [GeV] +Cell[17,34] 0.0024350925990523 [GeV] +Cell[17,33] 0.0010421761562982 [GeV] +Cell[17,35] 0.060333468297492 [GeV] +Cell[17,39] 0.0091231643137317 [GeV] +Cell[16,34] 0.00091804617487628 [GeV] +Cell[16,41] 3.3903745588759e-10 [GeV] +Cell[16,10] 2.2829102817923e-08 [GeV] +Cell[17,40] 0.0036756302299452 [GeV] +Cell[16,37] 0.2602075856652 [GeV] +Cell[18,35] 0.00040880731623611 [GeV] +Cell[17,37] 0.0027372674547288 [GeV] +Cell[16,33] 3.5946635849541e-05 [GeV] +Cell[8,36] 2.3455271730199e-08 [GeV] +Cell[18,33] 0.00016047957647663 [GeV] +Cell[18,34] 2.3032604653281e-05 [GeV] +Cell[16,35] 0.0014883058088719 [GeV] +Cell[15,38] 0.0040125577178404 [GeV] +Cell[15,37] 0.090171795425839 [GeV] +Cell[17,38] 0.0074658657529068 [GeV] +Cell[18,38] 0.0032643989063541 [GeV] +Cell[15,36] 0.12028547048105 [GeV] +Cell[16,40] 3.4770661945231e-05 [GeV] +Cell[16,36] 0.0014754345709398 [GeV] +Cell[18,3] 1.6735575627536e-09 [GeV] +Cell[16,38] 0.018307636745836 [GeV] +Cell[16,39] 0.017135895240477 [GeV] +Cell[18,2] 7.2905095294118e-10 [GeV] +Cell[17,36] 0.014928931091493 [GeV] +Cell[18,36] 0.00031006637578957 [GeV] +Cell[17,41] 0.0031562783993347 [GeV] +Cell[18,40] 0.022132161162216 [GeV] +Cell[18,41] 0.00031566091756588 [GeV] +Cell[19,41] 2.7394034339068e-07 [GeV] +Cell[19,39] 4.0684122068342e-06 [GeV] +Cell[19,40] 4.1126912742584e-07 [GeV] +### Total energy deposition in calorimeter by a source track in 43 cells : 0.73129712146072 (GeV) + +Source track ID 3673 (pi-,0.39123917661578[GeV]) at (-226.57253151861,445.71839535883,-1622.0531358599) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,22] 3.2809418147735e-05 [GeV] +Cell[1,15] 0.14042978133007 [GeV] +Cell[8,17] 0.00094223304837291 [GeV] +Cell[4,22] 8.984584099926e-05 [GeV] +Cell[1,17] 1.8735998950433e-05 [GeV] +Cell[2,16] 3.6161618481856e-06 [GeV] +Cell[2,0] 0.0016329133942866 [GeV] +Cell[1,14] 0.00031792383621098 [GeV] +Cell[1,43] 0.00095956846812874 [GeV] +Cell[1,2] 0.0069602709340127 [GeV] +Cell[7,24] 4.9335329094902e-07 [GeV] +Cell[4,24] 4.6566128730774e-13 [GeV] +Cell[5,39] 1.1185202165507e-05 [GeV] +Cell[2,45] 0.091087334463837 [GeV] +Cell[2,37] 0.00091864825204783 [GeV] +Cell[3,24] 2.2177008329436e-06 [GeV] +Cell[1,25] 0.0024549421076723 [GeV] +Cell[1,16] 0.0034906942328292 [GeV] +Cell[0,16] 0.00031359808914408 [GeV] +Cell[8,23] 2.6089295628481e-05 [GeV] +Cell[8,24] 0.007175272301361 [GeV] +Cell[2,14] 0.00033460909266375 [GeV] +Cell[2,18] 0.003497300395744 [GeV] +Cell[0,2] 3.2207841286436e-08 [GeV] +Cell[2,12] 6.2391127357841e-09 [GeV] +Cell[2,17] 5.1631449741762e-07 [GeV] +Cell[2,47] 0.0088770089904881 [GeV] +Cell[4,37] 0.0010897670184062 [GeV] +Cell[3,0] 0.00084681290615715 [GeV] +Cell[1,26] 0.00087409198829977 [GeV] +Cell[0,14] 4.3707029760753e-07 [GeV] +Cell[2,13] 0.0002426867243197 [GeV] +Cell[0,30] 1.6235250183172e-06 [GeV] +Cell[2,28] 0.00049755761976292 [GeV] +Cell[5,38] 0.0018784210654155 [GeV] +Cell[3,47] 0.00240403490206 [GeV] +Cell[1,42] 8.0796033753813e-05 [GeV] +Cell[5,37] 7.7731875008681e-05 [GeV] +Cell[3,25] 0.0010242197976227 [GeV] +Cell[0,15] 0.0023728270482577 [GeV] +Cell[4,23] 5.0774015107891e-09 [GeV] +### Total energy deposition in calorimeter by a source track in 41 cells : 0.28096865932243 (GeV) + +Source track ID 5538 (pi+,0.37520195814031[GeV]) at (184.13285290412,464.86029350912,1254.1488776436) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[16,9] 0.01489827984861 [GeV] +Cell[16,8] 0.24802912409422 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.26292740394283 (GeV) + +Source track ID 3709 (pi+,1.8609098439272[GeV]) at (-197.17453205706,459.4803629189,-617.98437349243) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[7,9] 0.00035418391899839 [GeV] +Cell[6,24] 8.0234021879733e-09 [GeV] +Cell[9,40] 5.6770765233523e-05 [GeV] +Cell[7,11] 4.2502470339059e-05 [GeV] +Cell[7,10] 0.024528860635438 [GeV] +Cell[8,47] 3.8981818826869e-05 [GeV] +Cell[7,33] 0.0013089020580063 [GeV] +Cell[8,34] 1.5988667320926e-05 [GeV] +Cell[9,31] 0.0022910115534414 [GeV] +Cell[10,46] 2.4064456665656e-05 [GeV] +Cell[9,34] 3.2579033606453e-05 [GeV] +Cell[7,37] 4.6499599993695e-06 [GeV] +Cell[9,47] 8.3482939197665e-06 [GeV] +Cell[10,12] 4.1684231410954e-06 [GeV] +Cell[7,12] 6.6067646053853e-05 [GeV] +Cell[5,10] 0.00010717916600356 [GeV] +Cell[9,37] 3.0797230137978e-06 [GeV] +Cell[10,1] 0.00035257190246542 [GeV] +Cell[6,9] 2.1331338124583e-05 [GeV] +Cell[9,4] 0.00012574715794995 [GeV] +Cell[2,34] 0.0024869675003953 [GeV] +Cell[11,1] 1.1889182003529e-05 [GeV] +Cell[6,10] 0.00040676570044661 [GeV] +Cell[7,13] 9.0817412106617e-05 [GeV] +Cell[6,13] 0.0093264426437435 [GeV] +Cell[6,12] 6.462004336629e-05 [GeV] +Cell[6,11] 0.00060608402793969 [GeV] +Cell[6,16] 0.059643145634605 [GeV] +Cell[7,14] 0.0078975015442759 [GeV] +Cell[9,32] 5.7951948838308e-07 [GeV] +Cell[9,42] 3.9681523617219e-06 [GeV] +Cell[3,19] 3.2532811747842e-05 [GeV] +Cell[3,20] 0.0041843101041819 [GeV] +Cell[6,28] 0.00038992802095117 [GeV] +Cell[4,19] 0.00047706317622522 [GeV] +Cell[4,20] 8.9097345329719e-05 [GeV] +Cell[4,7] 0.00018042399590801 [GeV] +Cell[4,21] 2.3733703128528e-06 [GeV] +Cell[5,19] 3.7594502661022e-05 [GeV] +Cell[15,30] 0.004162549174078 [GeV] +Cell[15,31] 0.0014061700539098 [GeV] +Cell[12,20] 9.1950056742007e-06 [GeV] +Cell[11,14] 1.1996813118458e-06 [GeV] +Cell[10,14] 6.9307744852267e-06 [GeV] +Cell[14,39] 0.0016872928431898 [GeV] +Cell[10,41] 1.0856907465495e-07 [GeV] +Cell[6,25] 0.00025933395636423 [GeV] +Cell[9,19] 0.003186341230362 [GeV] +Cell[11,20] 7.4544223025441e-09 [GeV] +Cell[15,29] 2.0857514869022e-08 [GeV] +Cell[17,42] 0.0022482885104404 [GeV] +Cell[4,9] 0.0025882942975568 [GeV] +Cell[4,8] 0.000342266751551 [GeV] +Cell[7,16] 0.0064297793742468 [GeV] +Cell[7,19] 3.0231669690693e-05 [GeV] +Cell[7,18] 8.0255736702043e-05 [GeV] +Cell[3,18] 0.00050557587272385 [GeV] +Cell[4,14] 0.0039455198563273 [GeV] +Cell[5,5] 0.0066902572818265 [GeV] +Cell[4,28] 0.0004964028712364 [GeV] +Cell[2,44] 1.6379622462409e-05 [GeV] +Cell[4,13] 0.0035656442353799 [GeV] +Cell[10,8] 1.037739761523e-05 [GeV] +Cell[10,7] 0.0012635277700807 [GeV] +Cell[11,6] 2.3073318494085e-05 [GeV] +Cell[5,18] 6.6979927064494e-06 [GeV] +Cell[4,18] 0.00061188630971117 [GeV] +Cell[4,17] 0.0081676129835322 [GeV] +Cell[5,11] 4.225161490001e-05 [GeV] +Cell[5,17] 0.0030008670438097 [GeV] +Cell[5,16] 0.061635749944528 [GeV] +Cell[3,34] 0.00050161238926346 [GeV] +Cell[4,16] 0.004626031329639 [GeV] +Cell[6,47] 2.7231748163103e-09 [GeV] +Cell[9,5] 6.7060210567433e-06 [GeV] +Cell[13,36] 0.005618076119841 [GeV] +Cell[15,32] 0.00075828621480071 [GeV] +Cell[19,1] 2.3529580722652e-06 [GeV] +Cell[12,42] 2.2191670723259e-10 [GeV] +Cell[11,44] 1.9994331523776e-11 [GeV] +Cell[15,27] 4.246768592111e-07 [GeV] +Cell[15,33] 7.2950049243786e-05 [GeV] +Cell[12,12] 0.00016703424116349 [GeV] +Cell[11,5] 4.9103357468994e-10 [GeV] +Cell[5,13] 0.0021810616759304 [GeV] +Cell[17,35] 0.00012773175832979 [GeV] +Cell[11,46] 0.00049605419494821 [GeV] +Cell[11,45] 1.2785312719643e-10 [GeV] +Cell[7,4] 0.0001085572730743 [GeV] +Cell[6,45] 0.003539506005233 [GeV] +Cell[3,17] 6.8567737599437e-05 [GeV] +Cell[6,46] 0.0019993639996131 [GeV] +Cell[5,15] 0.034336347786923 [GeV] +Cell[7,17] 0.0001096917604566 [GeV] +Cell[9,39] 3.9415387727786e-06 [GeV] +Cell[4,15] 0.017298427195296 [GeV] +Cell[4,6] 0.0074207704592396 [GeV] +Cell[6,26] 5.1632654603281e-05 [GeV] +Cell[5,9] 0.00099581567796622 [GeV] +Cell[2,32] 1.5598944155499e-06 [GeV] +Cell[7,31] 7.2345807888269e-05 [GeV] +Cell[5,1] 6.2099483329803e-06 [GeV] +Cell[7,32] 1.11783822706e-05 [GeV] +Cell[9,46] 0.0016781766171724 [GeV] +Cell[7,15] 0.0040136424433456 [GeV] +Cell[6,15] 0.28271368614257 [GeV] +Cell[12,1] 0.0014638021472218 [GeV] +Cell[1,40] 1.0539177746978e-06 [GeV] +Cell[2,28] 0.00174326678443 [GeV] +Cell[2,6] 1.02239341943e-05 [GeV] +Cell[2,5] 6.7293996113449e-05 [GeV] +Cell[4,10] 4.6054572216235e-05 [GeV] +Cell[2,33] 0.0031231169855431 [GeV] +Cell[6,14] 0.0013165716329331 [GeV] +Cell[2,43] 0.00030254281067619 [GeV] +Cell[3,21] 0.0019189262888664 [GeV] +Cell[3,16] 0.0010767040853135 [GeV] +Cell[5,2] 3.8963943370618e-06 [GeV] +Cell[12,13] 3.5901751099686e-05 [GeV] +Cell[8,35] 0.0012155387523217 [GeV] +Cell[10,22] 2.4512507661711e-06 [GeV] +Cell[4,11] 0.010237443289902 [GeV] +Cell[14,30] 0.0013368752502535 [GeV] +Cell[14,17] 2.6261784078088e-06 [GeV] +Cell[12,15] 0.00025350493661785 [GeV] +Cell[8,29] 0.00011303483202477 [GeV] +Cell[10,13] 0.00014580285669683 [GeV] +Cell[14,33] 7.0955826734917e-05 [GeV] +Cell[11,12] 5.6747831113171e-06 [GeV] +Cell[14,26] 6.0688762459904e-09 [GeV] +Cell[17,21] 3.0199415050447e-08 [GeV] +Cell[10,5] 6.2935664900579e-06 [GeV] +Cell[10,6] 0.0011249440940446 [GeV] +Cell[9,33] 1.9483017968014e-07 [GeV] +Cell[9,0] 1.5677668443459e-09 [GeV] +Cell[12,14] 6.7014622720762e-07 [GeV] +Cell[9,41] 0.00067479870413831 [GeV] +Cell[2,7] 1.6767642810009e-06 [GeV] +Cell[5,12] 0.00036371292763386 [GeV] +Cell[4,12] 0.0042006694950706 [GeV] +Cell[6,27] 0.00022771781633128 [GeV] +Cell[5,27] 0.0012133220888004 [GeV] +Cell[5,8] 0.0013052612155602 [GeV] +Cell[6,18] 0.0025051145715931 [GeV] +Cell[9,20] 5.8083403473574e-09 [GeV] +Cell[5,6] 0.055825602375284 [GeV] +Cell[5,14] 0.1383042066337 [GeV] +Cell[6,17] 0.00090594632778539 [GeV] +Cell[14,34] 5.7019874843832e-05 [GeV] +Cell[18,21] 1.0604067938402e-08 [GeV] +Cell[19,0] 1.0183139238507e-09 [GeV] +Cell[5,28] 0.0028094775074082 [GeV] +Cell[11,13] 0.0011879710420717 [GeV] +Cell[12,16] 0.0021774414552915 [GeV] +Cell[5,7] 0.013294769823215 [GeV] +### Total energy deposition in calorimeter by a source track in 155 cells : 0.84740706807808 (GeV) + +Source track ID 5517 (pi-,0.47711614069083[GeV]) at (183.16093349651,-465.24409984511,104.60221621996) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[9,40] 0.00032234954140449 [GeV] +Cell[11,39] 0.0014587454289563 [GeV] +Cell[11,40] 0.010310547815515 [GeV] +Cell[11,41] 4.5877908127295e-05 [GeV] +Cell[10,41] 0.0019020689259119 [GeV] +Cell[10,40] 0.19876328331132 [GeV] +Cell[9,39] 0.00077082522984279 [GeV] +Cell[10,39] 0.15437146682537 [GeV] +Cell[9,41] 5.307486651418e-08 [GeV] +Cell[10,38] 0.022415848680015 [GeV] +Cell[8,39] 1.0173960705288e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.39037124070203 (GeV) + +Source track ID 3708 (pi-,0.49370736558924[GeV]) at (310.85759645172,-391.62169849008,-962.67221252109) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[4,40] 0.0043997987848425 [GeV] +Cell[3,43] 0.00051406569541324 [GeV] +Cell[0,22] 0.00095004542420174 [GeV] +Cell[3,35] 0.00025517627872614 [GeV] +Cell[16,13] 3.953889888362e-05 [GeV] +Cell[15,47] 0.003055239595689 [GeV] +Cell[15,1] 0.0001177691588415 [GeV] +Cell[3,45] 0.0052806652847541 [GeV] +Cell[3,42] 0.049585019609108 [GeV] +Cell[0,23] 0.00099712120987084 [GeV] +Cell[2,44] 0.00028851564069332 [GeV] +Cell[4,13] 2.5756889954209e-11 [GeV] +Cell[4,41] 0.11407223349818 [GeV] +Cell[16,0] 0.00053664043724302 [GeV] +Cell[16,10] 3.7352784944233e-05 [GeV] +Cell[9,23] 1.757590167108e-05 [GeV] +Cell[2,12] 0.00071600433250728 [GeV] +Cell[2,2] 1.5420558280312e-05 [GeV] +Cell[2,13] 2.5547342374921e-10 [GeV] +Cell[15,46] 1.9933379284339e-05 [GeV] +Cell[4,42] 0.18307785451532 [GeV] +Cell[4,43] 0.0032782542824465 [GeV] +Cell[2,5] 8.7106511928141e-06 [GeV] +Cell[1,20] 0.00056541927594011 [GeV] +Cell[3,44] 0.0072902732248904 [GeV] +Cell[5,41] 0.055126961920568 [GeV] +Cell[4,12] 4.6160507650939e-06 [GeV] +Cell[3,46] 5.245100823231e-06 [GeV] +Cell[4,25] 0.00051099891 [GeV] +Cell[12,39] 7.107124660979e-05 [GeV] +Cell[16,47] 8.7359820026904e-06 [GeV] +Cell[15,0] 0.00016369069515201 [GeV] +### Total energy deposition in calorimeter by a source track in 32 cells : 0.43100994861008 (GeV) + +Source track ID 5472 (pi+,0.96823357317602[GeV]) at (-70.073535162469,-495.06534888824,1187.3056100852) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[14,1] 0.006221204748676 [GeV] +Cell[10,12] 0.00011262209873132 [GeV] +Cell[10,11] 4.5058668547426e-09 [GeV] +Cell[17,29] 0.00054788785049371 [GeV] +Cell[11,28] 3.174355631927e-06 [GeV] +Cell[14,2] 4.6416812401731e-05 [GeV] +Cell[13,1] 7.3524741131791e-05 [GeV] +Cell[9,19] 4.0907319936878e-05 [GeV] +Cell[13,0] 2.4823943185766e-06 [GeV] +Cell[17,17] 0.00055113830538369 [GeV] +Cell[17,16] 0.00038653700002374 [GeV] +Cell[17,43] 1.3858220161183e-06 [GeV] +Cell[15,1] 5.0355412677163e-05 [GeV] +Cell[17,42] 6.702140692596e-07 [GeV] +Cell[14,0] 2.1888455356248e-05 [GeV] +Cell[15,33] 2.1592422854155e-09 [GeV] +Cell[17,34] 0.0018551481231353 [GeV] +Cell[17,33] 1.1281812248853e-09 [GeV] +Cell[16,34] 0.23693994287857 [GeV] +Cell[17,13] 1.1967176804319e-05 [GeV] +Cell[12,33] 0.00020897684124543 [GeV] +Cell[17,44] 0.00013555676186036 [GeV] +Cell[12,34] 1.1620511210594e-05 [GeV] +Cell[15,34] 0.034108220444485 [GeV] +Cell[17,37] 1.8441286329107e-09 [GeV] +Cell[16,33] 0.00026202480717081 [GeV] +Cell[8,2] 2.1840563567821e-06 [GeV] +Cell[16,32] 0.0028902978718889 [GeV] +Cell[16,35] 0.019245246119881 [GeV] +Cell[10,13] 0.004182922350425 [GeV] +Cell[17,38] 0.00026306361063263 [GeV] +Cell[15,35] 0.24575831491272 [GeV] +Cell[14,15] 0.00025003728204638 [GeV] +Cell[15,36] 0.0063994161566528 [GeV] +Cell[16,21] 0.0029581446669124 [GeV] +Cell[17,21] 2.2792734171162e-09 [GeV] +Cell[17,20] 0.00022360745098945 [GeV] +Cell[16,36] 0.019544535151387 [GeV] +Cell[9,0] 3.9593027447381e-05 [GeV] +Cell[13,19] 4.8123294254765e-07 [GeV] +Cell[13,10] 4.2139223660342e-07 [GeV] +Cell[9,1] 3.6494169034995e-07 [GeV] +Cell[16,43] 4.3531004468605e-05 [GeV] +Cell[18,3] 6.650975185039e-06 [GeV] +Cell[9,20] 7.0614769255144e-06 [GeV] +Cell[14,16] 7.1944668889046e-11 [GeV] +Cell[15,2] 0.0024567308051679 [GeV] +Cell[16,44] 0.00058614652046936 [GeV] +Cell[18,44] 0.00057627341665307 [GeV] +Cell[18,43] 7.7554787504937e-05 [GeV] +Cell[18,30] 7.5322597522131e-05 [GeV] +Cell[18,31] 3.5422822819214e-05 [GeV] +Cell[19,11] 4.6899236913305e-06 [GeV] +Cell[14,14] 0.0014753431351968 [GeV] +### Total energy deposition in calorimeter by a source track in 54 cells : 0.58869702275378 (GeV) + +Source track ID 2077 (pi+,0.42345754901544[GeV]) at (-380.96978584961,323.82406067138,-1077.3158885921) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,42] 9.8035973837796e-06 [GeV] +Cell[5,36] 0.0010590413788175 [GeV] +Cell[4,19] 1.8758356251055e-05 [GeV] +Cell[3,43] 9.3822018243372e-10 [GeV] +Cell[8,3] 5.3630487332157e-07 [GeV] +Cell[3,36] 0.0014964959683094 [GeV] +Cell[3,45] 0.0023595188998805 [GeV] +Cell[5,18] 1.7719855939504e-05 [GeV] +Cell[4,18] 0.16491640140078 [GeV] +Cell[4,17] 7.7456820690713e-09 [GeV] +Cell[2,36] 0.0015744006817222 [GeV] +Cell[7,21] 0.11132525933016 [GeV] +Cell[3,17] 3.7417921703309e-09 [GeV] +Cell[7,43] 0.00096792845395407 [GeV] +Cell[6,23] 0.00051099891 [GeV] +Cell[5,1] 1.1044070733078e-05 [GeV] +Cell[0,1] 3.4458935260773e-10 [GeV] +Cell[7,42] 3.4182715338829e-05 [GeV] +Cell[3,16] 0.00021410068070134 [GeV] +Cell[3,15] 8.874767846919e-06 [GeV] +Cell[8,4] 3.8807047531009e-10 [GeV] +Cell[3,44] 0.00011563720280651 [GeV] +Cell[3,46] 0.0016111798832198 [GeV] +Cell[2,46] 0.0010994763946218 [GeV] +Cell[7,20] 0.00091603207643022 [GeV] +### Total energy deposition in calorimeter by a source track in 25 cells : 0.28826740408812 (GeV) + +Source track ID 5473 (kaon-,2.4403658454808[GeV]) at (342.06832109276,-364.67693059033,532.10424747292) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[11,40] 0.0029388773674392 [GeV] +Cell[8,34] 0.00030848882253201 [GeV] +Cell[9,31] 0.00015403366962107 [GeV] +Cell[13,38] 7.1771553193685e-06 [GeV] +Cell[10,19] 2.1342347622522e-08 [GeV] +Cell[17,29] 0.00037969427658129 [GeV] +Cell[7,14] 0.0038998025398733 [GeV] +Cell[8,26] 7.4514168907172e-05 [GeV] +Cell[10,20] 5.5241547602236e-07 [GeV] +Cell[17,30] 5.8277205425838e-09 [GeV] +Cell[14,13] 0.0022830446767589 [GeV] +Cell[3,19] 4.6696792764124e-05 [GeV] +Cell[15,30] 2.6956129829841e-05 [GeV] +Cell[15,31] 8.8584371042089e-06 [GeV] +Cell[15,43] 8.734609275507e-08 [GeV] +Cell[14,12] 0.00038606729100513 [GeV] +Cell[15,14] 8.2004604919348e-06 [GeV] +Cell[10,14] 0.00086332250133069 [GeV] +Cell[14,40] 0.004170844129178 [GeV] +Cell[10,41] 8.4337589214556e-06 [GeV] +Cell[13,1] 9.6403528004885e-10 [GeV] +Cell[17,16] 0.00053559649048202 [GeV] +Cell[16,16] 0.0023196509301904 [GeV] +Cell[15,41] 1.4028046280146e-11 [GeV] +Cell[14,41] 1.3450088286959e-05 [GeV] +Cell[11,4] 8.2440674304962e-09 [GeV] +Cell[15,1] 1.6052482090117e-05 [GeV] +Cell[13,6] 2.14711371882e-09 [GeV] +Cell[3,18] 0.0015181233167936 [GeV] +Cell[10,37] 6.2353938992601e-06 [GeV] +Cell[9,6] 4.2844410846783e-06 [GeV] +Cell[9,5] 4.8229543780963e-05 [GeV] +Cell[11,43] 5.9337883737953e-07 [GeV] +Cell[11,42] 0.00074728862729796 [GeV] +Cell[12,42] 0.14418865378567 [GeV] +Cell[11,3] 7.7780452556908e-08 [GeV] +Cell[12,43] 0.0026385524105633 [GeV] +Cell[11,44] 1.7704587105527e-07 [GeV] +Cell[12,44] 0.00029447804290407 [GeV] +Cell[13,44] 5.364291090234e-05 [GeV] +Cell[15,19] 6.0316815506667e-09 [GeV] +Cell[17,15] 5.8390211332835e-06 [GeV] +Cell[17,14] 2.9685907065868e-12 [GeV] +Cell[13,41] 0.55915803312056 [GeV] +Cell[15,26] 1.8166907921e-05 [GeV] +Cell[18,26] 0.0026084261266795 [GeV] +Cell[18,28] 1.3141604275006e-05 [GeV] +Cell[15,45] 9.9622411653399e-10 [GeV] +Cell[15,25] 0.0002539709336387 [GeV] +Cell[2,18] 0.0012893533085132 [GeV] +Cell[6,15] 0.0028258130705458 [GeV] +Cell[8,44] 5.8079655150323e-06 [GeV] +Cell[6,3] 2.4698947381694e-06 [GeV] +Cell[8,35] 2.7730638976209e-07 [GeV] +Cell[13,42] 0.6830531715523 [GeV] +Cell[14,42] 0.0037015506895953 [GeV] +Cell[13,40] 0.14671688648659 [GeV] +Cell[13,43] 0.0070012920359715 [GeV] +Cell[14,43] 6.5211561101478e-05 [GeV] +Cell[14,44] 0.00039254086599522 [GeV] +Cell[8,27] 7.8871380537748e-12 [GeV] +Cell[8,25] 0.0011583095749367 [GeV] +Cell[10,13] 4.4423956289847e-06 [GeV] +Cell[11,12] 2.9013213556027e-05 [GeV] +Cell[15,8] 8.3550411964097e-06 [GeV] +Cell[15,7] 7.6572495527216e-06 [GeV] +Cell[14,22] 0.00034730047595065 [GeV] +Cell[15,13] 7.0553098339587e-07 [GeV] +Cell[12,8] 0.00055224984001302 [GeV] +Cell[10,6] 1.9718303985883e-07 [GeV] +Cell[12,4] 6.4805339206941e-07 [GeV] +Cell[9,41] 8.3433755207807e-08 [GeV] +Cell[8,45] 0.0012768189585448 [GeV] +Cell[12,6] 4.6896168339572e-07 [GeV] +Cell[11,38] 0.0018561029470765 [GeV] +Cell[15,44] 0.0011875148108139 [GeV] +Cell[11,7] 7.0756068453193e-09 [GeV] +Cell[12,38] 8.308969438076e-06 [GeV] +Cell[12,39] 0.0013553886575914 [GeV] +Cell[13,39] 1.6543831577565e-07 [GeV] +Cell[12,40] 0.007171055751777 [GeV] +Cell[12,41] 0.10099526708211 [GeV] +Cell[11,13] 3.4331321658101e-06 [GeV] +Cell[15,0] 0.00041621864051285 [GeV] +Cell[15,2] 0.0022278528875886 [GeV] +Cell[18,30] 4.3972148524063e-05 [GeV] +Cell[14,14] 0.0033789762111214 [GeV] +Cell[12,7] 1.798954988692e-05 [GeV] +Cell[13,13] 2.8215367176017e-05 [GeV] +Cell[13,45] 4.5802966531255e-05 [GeV] +Cell[17,28] 0.00047886489149755 [GeV] +Cell[18,27] 2.697052657777e-05 [GeV] +Cell[17,27] 2.9147617438412e-05 [GeV] +Cell[18,29] 0.0068068516174436 [GeV] +Cell[19,42] 9.9740229779854e-07 [GeV] +Cell[14,6] 1.7801148687795e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 96 cells : 1.7045458913903 (GeV) + +Source track ID 3759 (pi-,0.61479049641554[GeV]) at (86.962786524243,492.37940021892,-888.54679506475) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,22] 6.4463253074791e-06 [GeV] +Cell[4,40] 0.00026029409169871 [GeV] +Cell[8,30] 0.00012989563402698 [GeV] +Cell[6,20] 0.0002517613356863 [GeV] +Cell[6,43] 2.9627699404955e-11 [GeV] +Cell[10,12] 0.00032268758060093 [GeV] +Cell[5,10] 0.085514181658052 [GeV] +Cell[2,34] 8.7857465177876e-05 [GeV] +Cell[4,38] 0.0011093157001256 [GeV] +Cell[8,31] 6.5825907920953e-05 [GeV] +Cell[5,24] 1.1594201813523e-06 [GeV] +Cell[6,13] 0.00035901566242779 [GeV] +Cell[6,12] 2.4951128289104e-06 [GeV] +Cell[3,26] 7.4611220596012e-05 [GeV] +Cell[1,38] 9.2098846181557e-05 [GeV] +Cell[8,46] 5.293786060065e-06 [GeV] +Cell[5,20] 0.00029053340096118 [GeV] +Cell[4,32] 1.0330837761785e-06 [GeV] +Cell[3,10] 0.0025789300329783 [GeV] +Cell[3,9] 0.00010038716549559 [GeV] +Cell[8,26] 0.0012125710064563 [GeV] +Cell[3,20] 0.00031401719024143 [GeV] +Cell[7,28] 0.00051099891 [GeV] +Cell[4,19] 4.9489185330458e-06 [GeV] +Cell[4,20] 5.0118318881687e-08 [GeV] +Cell[4,30] 1.0565356718757e-05 [GeV] +Cell[4,39] 2.4262280560038e-05 [GeV] +Cell[4,31] 0.0019006241229751 [GeV] +Cell[4,5] 0.00070048279137484 [GeV] +Cell[3,39] 1.6658159438521e-08 [GeV] +Cell[1,24] 9.4896066521642e-05 [GeV] +Cell[2,24] 0.0022461214256531 [GeV] +Cell[4,9] 0.0020973430454956 [GeV] +Cell[1,43] 2.8965291474378e-05 [GeV] +Cell[4,45] 1.071411522571e-05 [GeV] +Cell[4,2] 0.00083484512273048 [GeV] +Cell[5,5] 5.7100171688944e-06 [GeV] +Cell[4,13] 3.4690101165324e-07 [GeV] +Cell[5,18] 0.0018091826272537 [GeV] +Cell[4,17] 1.3877579476684e-08 [GeV] +Cell[5,11] 0.16820745382323 [GeV] +Cell[3,34] 8.3036970389003e-05 [GeV] +Cell[2,37] 0.0018213242466266 [GeV] +Cell[3,11] 0.00091342769118592 [GeV] +Cell[5,13] 2.8015143425364e-07 [GeV] +Cell[4,1] 6.4612035316713e-08 [GeV] +Cell[8,23] 4.7562705876771e-06 [GeV] +Cell[4,6] 0.0037294440372905 [GeV] +Cell[5,9] 3.7752764528591e-05 [GeV] +Cell[4,37] 2.8071119741071e-05 [GeV] +Cell[2,25] 0.00010737516010113 [GeV] +Cell[1,36] 1.7096961266361e-05 [GeV] +Cell[1,39] 0.00095932671816513 [GeV] +Cell[6,35] 5.8900681324303e-08 [GeV] +Cell[5,1] 0.0005678450035648 [GeV] +Cell[9,30] 1.0113792755874e-05 [GeV] +Cell[1,7] 1.0320476121706e-07 [GeV] +Cell[4,42] 6.7670856951736e-06 [GeV] +Cell[2,19] 5.6135949387681e-05 [GeV] +Cell[4,10] 0.015681890208069 [GeV] +Cell[2,20] 0.00074774387975356 [GeV] +Cell[3,29] 1.1448079021648e-08 [GeV] +Cell[2,43] 7.0715493845114e-05 [GeV] +Cell[5,32] 6.7353248596191e-09 [GeV] +Cell[6,2] 1.551345756161e-05 [GeV] +Cell[5,2] 0.00012382475914785 [GeV] +Cell[5,31] 0.0030350459837231 [GeV] +Cell[4,3] 0.00026642548746747 [GeV] +Cell[4,4] 1.206598279532e-05 [GeV] +Cell[1,9] 7.0623684678139e-10 [GeV] +Cell[1,8] 0.00095083929998816 [GeV] +Cell[2,9] 0.00011093857243179 [GeV] +Cell[4,11] 0.00026266688665999 [GeV] +Cell[8,25] 1.491633549449e-05 [GeV] +Cell[11,12] 4.3705443677027e-06 [GeV] +Cell[0,17] 0.0015652852834106 [GeV] +Cell[1,44] 7.1380183015208e-05 [GeV] +Cell[3,8] 0.0046770241144959 [GeV] +Cell[6,42] 0.00051856416533224 [GeV] +Cell[2,8] 0.0039894620704425 [GeV] +Cell[2,7] 1.0962010128424e-07 [GeV] +Cell[5,12] 0.0090317165146253 [GeV] +Cell[4,12] 0.0075273227710145 [GeV] +Cell[3,32] 7.5920263160469e-06 [GeV] +Cell[3,33] 0.00044649878993971 [GeV] +Cell[19,35] 0.00011846351816894 [GeV] +Cell[3,6] 0.0017857079431973 [GeV] +Cell[6,19] 0.00049226431759496 [GeV] +Cell[5,30] 3.821124357637e-05 [GeV] +Cell[9,38] 8.2873198910306e-05 [GeV] +Cell[19,34] 5.6230374095776e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 91 cells : 0.33126600834509 (GeV) + +Source track ID 3758 (pi+,0.33209432099891[GeV]) at (208.18946431569,454.59558615097,-1596.8288902566) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[2,23] 9.3709378552376e-07 [GeV] +Cell[5,35] 9.4968825213755e-05 [GeV] +Cell[7,34] 0.00016356896014918 [GeV] +Cell[7,35] 3.9754859171808e-06 [GeV] +Cell[7,33] 0.00021470900908389 [GeV] +Cell[6,22] 3.1871038157647e-05 [GeV] +Cell[5,10] 3.6736397305503e-08 [GeV] +Cell[0,46] 5.4255771663293e-05 [GeV] +Cell[2,27] 2.3574102669954e-12 [GeV] +Cell[3,27] 1.117332759236e-06 [GeV] +Cell[5,21] 3.9184873457998e-08 [GeV] +Cell[5,20] 1.0725369793363e-07 [GeV] +Cell[4,32] 2.0775652956218e-08 [GeV] +Cell[3,19] 1.3220308618429e-06 [GeV] +Cell[1,5] 0.00010951421274501 [GeV] +Cell[3,40] 0.00061780927588694 [GeV] +Cell[4,21] 5.1793430850466e-07 [GeV] +Cell[1,22] 7.3345145210624e-09 [GeV] +Cell[0,6] 8.7831652232012e-05 [GeV] +Cell[2,22] 3.4628002936188e-08 [GeV] +Cell[0,31] 0.00060530229752765 [GeV] +Cell[0,10] 0.00099300538967883 [GeV] +Cell[4,5] 0.00057548317021713 [GeV] +Cell[0,19] 0.0016437859920572 [GeV] +Cell[1,14] 6.1500541341957e-06 [GeV] +Cell[3,18] 0.0022241407598515 [GeV] +Cell[7,23] 1.0735672049123e-09 [GeV] +Cell[0,47] 0.0033902926475341 [GeV] +Cell[4,2] 3.9267894934741e-05 [GeV] +Cell[1,6] 1.495678970241e-05 [GeV] +Cell[6,47] 2.818125335034e-05 [GeV] +Cell[11,25] 3.2111447073817e-05 [GeV] +Cell[11,24] 0.00018238212635447 [GeV] +Cell[4,1] 7.6671543116987e-06 [GeV] +Cell[3,17] 0.0048329679056524 [GeV] +Cell[5,45] 0.0027130060433639 [GeV] +Cell[6,46] 0.0014759527872238 [GeV] +Cell[5,46] 8.9559797154379e-06 [GeV] +Cell[1,19] 0.0013538443703543 [GeV] +Cell[1,11] 1.9638596518234e-07 [GeV] +Cell[0,7] 2.0906566078338e-09 [GeV] +Cell[6,23] 5.0964619731531e-07 [GeV] +Cell[2,39] 9.6859293989837e-09 [GeV] +Cell[5,34] 0.0011938754854854 [GeV] +Cell[1,21] 0.00063569605714386 [GeV] +Cell[0,8] 7.9612126796746e-08 [GeV] +Cell[2,26] 5.8426653326023e-05 [GeV] +Cell[2,40] 2.5075753335841e-05 [GeV] +Cell[6,35] 7.1679414759274e-08 [GeV] +Cell[7,22] 1.0988499070663e-09 [GeV] +Cell[1,7] 0.0079667984131377 [GeV] +Cell[2,11] 3.496632042129e-06 [GeV] +Cell[2,10] 0.0038918584054641 [GeV] +Cell[1,10] 3.2897340968361e-05 [GeV] +Cell[0,18] 0.0016408849720121 [GeV] +Cell[2,28] 3.4244731068611e-09 [GeV] +Cell[2,6] 0.0018169299525057 [GeV] +Cell[2,5] 0.0012518450033057 [GeV] +Cell[5,38] 0.0031044677933386 [GeV] +Cell[1,20] 0.0034952244955848 [GeV] +Cell[2,30] 0.0014021263602558 [GeV] +Cell[4,29] 0.0017543736350146 [GeV] +Cell[0,9] 0.0008582159466734 [GeV] +Cell[2,31] 0.0037241582472764 [GeV] +Cell[3,16] 7.1177456702571e-05 [GeV] +Cell[10,25] 2.5909529995261e-08 [GeV] +Cell[1,9] 0.0031026419844186 [GeV] +Cell[1,8] 0.16686300100784 [GeV] +Cell[2,9] 0.0060209865124307 [GeV] +Cell[0,17] 0.0013060633325788 [GeV] +Cell[2,8] 0.006234461388404 [GeV] +Cell[2,7] 0.0016220087079843 [GeV] +Cell[1,42] 0.0019094209694238 [GeV] +Cell[3,32] 4.6902921927312e-05 [GeV] +Cell[3,33] 1.5097967889233e-09 [GeV] +Cell[2,46] 7.2624445601832e-06 [GeV] +Cell[8,18] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 77 cells : 0.24206227750095 (GeV) + +Source track ID 3819 (pi-,0.39840374099663[GeV]) at (383.23957952212,-321.13458967808,360.59079552414) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[8,11] 2.5162688980345e-06 [GeV] +Cell[11,39] 2.8046604805468e-05 [GeV] +Cell[11,40] 7.5256513951786e-05 [GeV] +Cell[7,34] 3.7416666455101e-06 [GeV] +Cell[7,33] 1.6284254437778e-05 [GeV] +Cell[8,13] 0.0018955639709086 [GeV] +Cell[10,1] 0.0033656374729852 [GeV] +Cell[6,33] 3.151200566208e-06 [GeV] +Cell[9,4] 0.0001506657834658 [GeV] +Cell[11,1] 1.0019655979704e-05 [GeV] +Cell[11,21] 2.7540963432784e-05 [GeV] +Cell[10,2] 4.9779348773882e-05 [GeV] +Cell[7,14] 0.00032794959896842 [GeV] +Cell[12,26] 5.7307791926405e-05 [GeV] +Cell[4,22] 2.6674938271753e-07 [GeV] +Cell[9,42] 2.6899694743606e-05 [GeV] +Cell[9,27] 1.6844947822392e-08 [GeV] +Cell[18,37] 1.6745309723774e-05 [GeV] +Cell[10,20] 9.1489266944336e-05 [GeV] +Cell[11,41] 0.00010851018639175 [GeV] +Cell[11,28] 0.00049720708996074 [GeV] +Cell[4,20] 2.5402009745903e-05 [GeV] +Cell[4,21] 7.571473714745e-05 [GeV] +Cell[13,26] 7.7874600806695e-05 [GeV] +Cell[14,18] 0.0023572420075106 [GeV] +Cell[11,32] 1.8023216573056e-05 [GeV] +Cell[10,21] 0.00015603143035526 [GeV] +Cell[11,22] 0.0066320067762857 [GeV] +Cell[10,32] 4.4480835215381e-06 [GeV] +Cell[13,5] 9.9130183225498e-06 [GeV] +Cell[11,23] 0.0025789886932591 [GeV] +Cell[12,23] 0.0012110982940824 [GeV] +Cell[10,26] 1.7124831210822e-06 [GeV] +Cell[11,2] 7.22018470492e-06 [GeV] +Cell[11,34] 1.8421444372507e-05 [GeV] +Cell[9,2] 0.0013204035472685 [GeV] +Cell[8,14] 8.4550108704207e-07 [GeV] +Cell[10,28] 0.00013555566937976 [GeV] +Cell[12,10] 6.1691529117525e-06 [GeV] +Cell[12,45] 1.8377527128905e-05 [GeV] +Cell[11,43] 0.0018690868888268 [GeV] +Cell[12,25] 1.0980474442476e-05 [GeV] +Cell[14,21] 1.4954485052726e-05 [GeV] +Cell[10,40] 0.00023860265175313 [GeV] +Cell[11,42] 0.074649919899509 [GeV] +Cell[10,23] 0.00099047678771637 [GeV] +Cell[13,25] 6.3769540283829e-06 [GeV] +Cell[14,25] 3.0590484093409e-06 [GeV] +Cell[12,42] 0.00012422909152519 [GeV] +Cell[11,3] 0.00041110546993282 [GeV] +Cell[12,43] 5.2318587006539e-07 [GeV] +Cell[12,44] 8.719291120542e-06 [GeV] +Cell[11,25] 7.0822370762471e-06 [GeV] +Cell[11,24] 1.2296940258238e-06 [GeV] +Cell[12,5] 3.2669018837623e-06 [GeV] +Cell[10,43] 0.0012633848372434 [GeV] +Cell[9,15] 2.9134047508705e-06 [GeV] +Cell[1,16] 0.0020558795852572 [GeV] +Cell[11,26] 1.1474856350105e-05 [GeV] +Cell[11,33] 0.00060144735487268 [GeV] +Cell[10,31] 7.2204984803648e-08 [GeV] +Cell[10,27] 3.2152646163013e-06 [GeV] +Cell[11,35] 1.2945904076332e-05 [GeV] +Cell[10,42] 0.0064377679909068 [GeV] +Cell[10,39] 2.3929755457175e-08 [GeV] +Cell[4,6] 2.8421287424862e-06 [GeV] +Cell[13,33] 1.5637462289305e-05 [GeV] +Cell[12,3] 7.2048538379477e-07 [GeV] +Cell[13,2] 1.2219022464706e-05 [GeV] +Cell[3,21] 2.6125542303816e-06 [GeV] +Cell[12,22] 0.024356264168503 [GeV] +Cell[12,21] 0.01001376553881 [GeV] +Cell[13,21] 0.00075144462030152 [GeV] +Cell[13,20] 0.0012758350177096 [GeV] +Cell[13,22] 0.0016070472629474 [GeV] +Cell[10,25] 7.9339406220242e-06 [GeV] +Cell[10,24] 2.0521260527175e-06 [GeV] +Cell[10,22] 0.00038932804737976 [GeV] +Cell[6,29] 6.5020736656152e-07 [GeV] +Cell[14,17] 0.0037626501118448 [GeV] +Cell[13,17] 0.00071555842290127 [GeV] +Cell[18,47] 3.4838494029827e-06 [GeV] +Cell[12,4] 0.00051489802303558 [GeV] +Cell[9,41] 0.00048409921525639 [GeV] +Cell[12,37] 0.00075485184742615 [GeV] +Cell[12,6] 6.590777321594e-05 [GeV] +Cell[11,38] 2.9685907065868e-11 [GeV] +Cell[9,3] 3.0881924999449e-08 [GeV] +Cell[12,38] 9.2731977656058e-05 [GeV] +Cell[12,39] 0.00044222251303677 [GeV] +Cell[12,40] 4.852924136992e-05 [GeV] +Cell[12,41] 1.1360166467057e-05 [GeV] +Cell[18,36] 3.8672845985275e-06 [GeV] +Cell[8,18] 5.2652242302429e-06 [GeV] +Cell[5,29] 1.2320685753366e-05 [GeV] +Cell[11,27] 0.00065094621668982 [GeV] +### Total energy deposition in calorimeter by a source track in 96 cells : 0.15614585905671 (GeV) + +Source track ID 3918 (pi-,0.8537982895971[GeV]) at (323.76055151368,-381.02375947381,732.32866031843) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[15,39] 0.00081258576137736 [GeV] +Cell[15,43] 3.6327179400359e-06 [GeV] +Cell[14,40] 0.0046718149161543 [GeV] +Cell[14,39] 0.00030674863108152 [GeV] +Cell[15,40] 7.1608061512848e-05 [GeV] +Cell[15,41] 0.00083186221142444 [GeV] +Cell[14,41] 0.25537763639768 [GeV] +Cell[12,42] 1.3599154647181e-07 [GeV] +Cell[13,41] 0.088224629409478 [GeV] +Cell[13,42] 0.0017826903259958 [GeV] +Cell[14,42] 0.076906801847731 [GeV] +Cell[13,40] 0.0031295366919049 [GeV] +Cell[14,43] 0.26680967756808 [GeV] +Cell[15,42] 0.0028755307176846 [GeV] +Cell[15,38] 1.6993726603687e-10 [GeV] +Cell[13,39] 1.6363092413485e-07 [GeV] +Cell[12,40] 0.0020948448792501 [GeV] +Cell[12,41] 4.9558973925059e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 18 cells : 0.7039048558271 (GeV) + +Source track ID 5008 (pi-,0.54268540958591[GeV]) at (480.8817353531,136.94070470022,956.45572673041) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[14,1] 2.5961750942542e-05 [GeV] +Cell[12,29] 0.00016473878494344 [GeV] +Cell[12,28] 0.0027773973921124 [GeV] +Cell[14,13] 0.00083846855391736 [GeV] +Cell[14,12] 1.9686051587087e-08 [GeV] +Cell[15,4] 3.153118323894e-05 [GeV] +Cell[15,14] 0.001325436599184 [GeV] +Cell[14,2] 0.080833174150435 [GeV] +Cell[14,3] 0.0016673925864338 [GeV] +Cell[16,16] 0.0014130188332626 [GeV] +Cell[11,4] 4.3137435568497e-08 [GeV] +Cell[15,47] 9.7774124784564e-06 [GeV] +Cell[15,1] 0.0014202970010341 [GeV] +Cell[14,0] 1.5815021470189e-10 [GeV] +Cell[10,7] 2.3006287956377e-05 [GeV] +Cell[11,6] 1.7407670384273e-08 [GeV] +Cell[15,11] 4.9864297579916e-10 [GeV] +Cell[15,33] 1.6328081964048e-06 [GeV] +Cell[11,5] 1.1533731594682e-08 [GeV] +Cell[19,26] 0.00010730820147728 [GeV] +Cell[17,23] 0.0034421686259195 [GeV] +Cell[18,26] 0.0026617242557479 [GeV] +Cell[17,24] 5.8992646051365e-05 [GeV] +Cell[11,8] 2.5190325686708e-08 [GeV] +Cell[14,33] 9.623854828078e-08 [GeV] +Cell[15,13] 0.0019117856289884 [GeV] +Cell[14,4] 0.00032960989098297 [GeV] +Cell[16,12] 1.4960252301535e-05 [GeV] +Cell[11,7] 0.00035111700045366 [GeV] +Cell[19,32] 0.0010399298379074 [GeV] +Cell[15,0] 0.00036532090200024 [GeV] +Cell[15,2] 0.24802858252536 [GeV] +Cell[15,24] 0.0022583132809358 [GeV] +Cell[19,24] 3.7605998222716e-06 [GeV] +Cell[19,25] 3.9769566792529e-06 [GeV] +Cell[13,3] 2.2626042056118e-06 [GeV] +Cell[17,22] 4.4306331543567e-06 [GeV] +Cell[15,3] 0.0050423460450885 [GeV] +Cell[19,33] 0.0018201966508857 [GeV] +Cell[15,12] 0.00034721302669618 [GeV] +Cell[17,25] 0.0026227928379956 [GeV] +Cell[17,26] 0.0011270595204806 [GeV] +### Total energy deposition in calorimeter by a source track in 42 cells : 0.36207589911782 (GeV) + +Source track ID 3814 (pi+,0.59563977599702[GeV]) at (-415.02257904921,278.84809283792,367.04447076126) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[7,29] 0.00086002793051068 [GeV] +Cell[7,30] 0.0017885552913791 [GeV] +Cell[8,30] 0.0041662988982731 [GeV] +Cell[10,19] 1.317745418055e-05 [GeV] +Cell[11,21] 8.8548417585457e-05 [GeV] +Cell[7,28] 1.0613286463013e-08 [GeV] +Cell[12,20] 0.00036650427953259 [GeV] +Cell[14,39] 5.7374672323931e-06 [GeV] +Cell[14,38] 0.00017703307705619 [GeV] +Cell[12,19] 0.010861752434013 [GeV] +Cell[11,17] 1.4904215640854e-07 [GeV] +Cell[11,19] 0.062317336880524 [GeV] +Cell[11,18] 0.0036922476767422 [GeV] +Cell[12,21] 0.00024643069186607 [GeV] +Cell[12,15] 0.00081042038433145 [GeV] +Cell[12,17] 0.27839920229654 [GeV] +Cell[8,29] 4.3570084421845e-06 [GeV] +Cell[8,28] 1.7543788999319e-10 [GeV] +Cell[13,17] 5.219227867201e-06 [GeV] +Cell[12,18] 0.13557397647944 [GeV] +Cell[5,12] 0.0022230554269903 [GeV] +Cell[4,12] 4.5717473047944e-06 [GeV] +Cell[12,16] 0.0020712689424198 [GeV] +### Total energy deposition in calorimeter by a source track in 23 cells : 0.50367588184311 (GeV) + +Source track ID 4998 (pi+,4.2124312535469[GeV]) at (194.16947335686,-460.75830498898,515.78904020831) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[6,20] 1.7193673003931e-05 [GeV] +Cell[13,38] 1.7388079765394 [GeV] +Cell[10,18] 0.018735037265791 [GeV] +Cell[13,34] 0.00074218936957325 [GeV] +Cell[9,37] 0.0055032641801612 [GeV] +Cell[17,29] 0.00026505305173104 [GeV] +Cell[13,37] 0.024213590211029 [GeV] +Cell[15,39] 2.7109707007185e-06 [GeV] +Cell[10,35] 0.00046613699733655 [GeV] +Cell[10,20] 3.9654444287862e-07 [GeV] +Cell[17,30] 4.8910250188783e-07 [GeV] +Cell[5,47] 3.9978370831705e-05 [GeV] +Cell[12,20] 2.6442086091265e-05 [GeV] +Cell[15,14] 0.0094755778976887 [GeV] +Cell[14,40] 0.0049950239652666 [GeV] +Cell[14,39] 0.026165926350485 [GeV] +Cell[10,17] 0.00010550231955131 [GeV] +Cell[11,31] 0.0013077960630604 [GeV] +Cell[11,32] 1.4636213293556e-05 [GeV] +Cell[10,21] 1.5002040135869e-05 [GeV] +Cell[15,40] 4.0191389769006e-07 [GeV] +Cell[14,41] 0.007795434651314 [GeV] +Cell[16,13] 8.7775767156018e-08 [GeV] +Cell[12,23] 0.0015172303808037 [GeV] +Cell[16,2] 0.00032662698454681 [GeV] +Cell[14,38] 0.13386042719131 [GeV] +Cell[9,36] 0.00077123304886228 [GeV] +Cell[6,47] 0.00053752787403994 [GeV] +Cell[13,36] 0.0057522688344331 [GeV] +Cell[15,11] 0.00032778619358396 [GeV] +Cell[12,19] 0.00056012755846257 [GeV] +Cell[17,14] 0.0001198997428728 [GeV] +Cell[14,36] 0.0042404120085756 [GeV] +Cell[13,41] 0.0045618668170564 [GeV] +Cell[16,10] 7.252207296915e-10 [GeV] +Cell[13,35] 0.0026816886035966 [GeV] +Cell[6,46] 1.0112064192072e-06 [GeV] +Cell[5,46] 0.00040928291655007 [GeV] +Cell[17,13] 5.5725690076542e-06 [GeV] +Cell[11,36] 0.0012042952873284 [GeV] +Cell[11,35] 0.0091682778972678 [GeV] +Cell[11,37] 0.00057057049184898 [GeV] +Cell[12,24] 1.1997992092802e-05 [GeV] +Cell[0,1] 0.0012313599118752 [GeV] +Cell[13,2] 3.3975988475277e-05 [GeV] +Cell[6,21] 6.1449630302377e-06 [GeV] +Cell[15,10] 0.00023208496836628 [GeV] +Cell[11,18] 0.0056225183505241 [GeV] +Cell[12,22] 0.00037464358447278 [GeV] +Cell[12,21] 0.0010432092849404 [GeV] +Cell[13,21] 7.6865463461218e-07 [GeV] +Cell[13,20] 0.0016111730352594 [GeV] +Cell[13,22] 1.3690565765501e-09 [GeV] +Cell[14,42] 2.4574862550253e-08 [GeV] +Cell[13,40] 0.027290336389548 [GeV] +Cell[14,43] 4.5372871682048e-11 [GeV] +Cell[15,38] 0.0018046121526341 [GeV] +Cell[15,37] 0.0018810979008514 [GeV] +Cell[12,36] 0.0035086794290998 [GeV] +Cell[15,16] 5.8524004227479e-05 [GeV] +Cell[15,35] 6.6353084093862e-10 [GeV] +Cell[12,18] 1.0576130531263e-05 [GeV] +Cell[14,37] 0.028469605787839 [GeV] +Cell[15,36] 0.0010792836688605 [GeV] +Cell[15,13] 0.011566934087136 [GeV] +Cell[16,11] 8.2473365764599e-06 [GeV] +Cell[12,37] 0.0063936608849938 [GeV] +Cell[14,35] 0.0011969770441398 [GeV] +Cell[19,46] 2.3244690510182e-09 [GeV] +Cell[12,38] 0.22401727702309 [GeV] +Cell[12,39] 0.06072251113894 [GeV] +Cell[13,39] 0.41511676838839 [GeV] +Cell[12,40] 1.0315045115249e-05 [GeV] +Cell[14,34] 6.9431006842251e-06 [GeV] +Cell[14,16] 1.7623002640903e-06 [GeV] +Cell[15,12] 0.0083716962676129 [GeV] +Cell[19,47] 3.8169273841504e-07 [GeV] +### Total energy deposition in calorimeter by a source track in 77 cells : 2.8069960493691 (GeV) + +Source track ID 3945 (pi+,3.7103878602583[GeV]) at (209.07492403069,454.18903128715,1946.716277966) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[10,34] 0.0016889725108298 [GeV] +Cell[13,34] 0.00063083111738096 [GeV] +Cell[16,26] 3.0816986400168e-05 [GeV] +Cell[17,30] 0.0011425536906839 [GeV] +Cell[17,31] 1.1801830623881e-11 [GeV] +Cell[17,32] 4.019784682896e-11 [GeV] +Cell[4,30] 0.0025149782221953 [GeV] +Cell[16,30] 0.0060454162807405 [GeV] +Cell[16,31] 3.8378756767088e-07 [GeV] +Cell[2,38] 0.00039279054038982 [GeV] +Cell[12,20] 0.00010067323940666 [GeV] +Cell[11,20] 9.4035961374175e-06 [GeV] +Cell[15,40] 0.00045140868686877 [GeV] +Cell[17,43] 0.0060339618012834 [GeV] +Cell[19,1] 0.00033489483638769 [GeV] +Cell[12,19] 2.2719689877704e-07 [GeV] +Cell[15,27] 3.4754048101604e-08 [GeV] +Cell[15,22] 0.0035755626589367 [GeV] +Cell[16,22] 0.0072607417029618 [GeV] +Cell[15,23] 4.857219013843e-06 [GeV] +Cell[15,26] 2.2027976919503e-05 [GeV] +Cell[16,29] 5.9575540944934e-11 [GeV] +Cell[15,25] 0.00034898681764696 [GeV] +Cell[17,44] 2.1713822206948e-09 [GeV] +Cell[11,19] 0.00099903717834013 [GeV] +Cell[11,35] 0.0042673210050839 [GeV] +Cell[18,32] 2.1577703478215e-08 [GeV] +Cell[13,17] 0.0038867133255138 [GeV] +Cell[14,33] 0.0084951533162832 [GeV] +Cell[18,8] 0.0042834996369362 [GeV] +Cell[18,38] 0.00051099891 [GeV] +Cell[14,37] 0.00011159428564192 [GeV] +Cell[16,24] 0.00028814715315139 [GeV] +Cell[16,23] 0.0015167039271041 [GeV] +Cell[16,21] 2.1248222310533e-09 [GeV] +Cell[18,47] 0.00080530542362386 [GeV] +Cell[18,14] 0.0020541937862245 [GeV] +Cell[19,6] 0.020792946610843 [GeV] +Cell[19,45] 0.0010492000681093 [GeV] +Cell[18,7] 0.0026819307922893 [GeV] +Cell[19,8] 0.41456884917295 [GeV] +Cell[19,7] 0.0073852833985262 [GeV] +Cell[19,41] 0.00039281249140549 [GeV] +Cell[19,39] 1.1542495486651e-05 [GeV] +Cell[19,40] 0.002805160520446 [GeV] +Cell[18,21] 0.0023360473226984 [GeV] +Cell[16,47] 9.587893349817e-06 [GeV] +Cell[15,0] 2.2241703845793e-05 [GeV] +Cell[18,30] 0.001224941016124 [GeV] +Cell[18,31] 0.00018832160757995 [GeV] +Cell[18,29] 0.00045886229089877 [GeV] +Cell[19,25] 2.1270534489304e-09 [GeV] +Cell[17,22] 3.4515019302489e-05 [GeV] +Cell[19,9] 0.028735793678921 [GeV] +Cell[19,5] 0.002704731024672 [GeV] +Cell[18,6] 0.00068360618375992 [GeV] +Cell[19,10] 2.7647613334238e-05 [GeV] +Cell[16,25] 1.3299938291311e-07 [GeV] +Cell[19,16] 0.00075616762413017 [GeV] +### Total energy deposition in calorimeter by a source track in 59 cells : 0.54467854121119 (GeV) + +Source track ID 4153 (kaon+,2.4797194686128[GeV]) at (287.76708627668,-408.88886516489,-437.97317746517) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[7,44] 0.00051099891 [GeV] +Cell[4,40] 0.00032409738767797 [GeV] +Cell[6,43] 0.00037840098011782 [GeV] +Cell[7,38] 0.0133570696254 [GeV] +Cell[7,39] 0.0033023444046095 [GeV] +Cell[6,37] 0.0013399772290068 [GeV] +Cell[9,37] 8.2533082168084e-06 [GeV] +Cell[10,1] 1.15453327453e-07 [GeV] +Cell[7,41] 0.018759212165594 [GeV] +Cell[2,34] 0.018577344523585 [GeV] +Cell[7,40] 0.30158732442956 [GeV] +Cell[4,38] 0.00055197756195855 [GeV] +Cell[11,1] 0.0042473601303435 [GeV] +Cell[7,25] 0.00060037048052961 [GeV] +Cell[8,42] 0.00083821575764856 [GeV] +Cell[5,36] 0.00016331202531421 [GeV] +Cell[10,2] 0.0024143980586663 [GeV] +Cell[4,35] 1.1309748515487e-10 [GeV] +Cell[5,42] 0.0093298767383425 [GeV] +Cell[9,43] 0.00016152580617245 [GeV] +Cell[9,42] 0.0035700347586755 [GeV] +Cell[11,0] 0.0047178636471064 [GeV] +Cell[3,40] 1.1357180803316e-05 [GeV] +Cell[6,36] 0.00010928546211653 [GeV] +Cell[3,36] 0.00071761012485445 [GeV] +Cell[3,39] 2.7299934910843e-05 [GeV] +Cell[3,35] 0.011730816584592 [GeV] +Cell[11,2] 2.6032945470433e-08 [GeV] +Cell[1,29] 1.1563109088456e-05 [GeV] +Cell[3,42] 9.10733604087e-09 [GeV] +Cell[2,35] 0.0029753021063651 [GeV] +Cell[4,45] 0.0035767739959002 [GeV] +Cell[7,24] 7.6095895983599e-06 [GeV] +Cell[6,38] 0.13832967240824 [GeV] +Cell[12,0] 0.00038593247029621 [GeV] +Cell[4,41] 0.00079118247711165 [GeV] +Cell[5,39] 0.0004105558306793 [GeV] +Cell[3,34] 0.0022414691994027 [GeV] +Cell[2,36] 0.0020867964204506 [GeV] +Cell[1,35] 0.00010956632237094 [GeV] +Cell[12,46] 3.4031108953059e-10 [GeV] +Cell[12,45] 0.0060334580370676 [GeV] +Cell[11,43] 0.0019033541730064 [GeV] +Cell[11,42] 1.1219264706597e-08 [GeV] +Cell[12,42] 1.0286570955031e-08 [GeV] +Cell[12,43] 0.0042501031538459 [GeV] +Cell[11,44] 0.035041139758963 [GeV] +Cell[10,44] 0.0092365108233518 [GeV] +Cell[12,44] 0.0066159516212564 [GeV] +Cell[10,43] 0.0050488415059465 [GeV] +Cell[2,29] 2.6626860082615e-05 [GeV] +Cell[11,46] 4.4178781332448e-05 [GeV] +Cell[11,45] 0.00042075143756846 [GeV] +Cell[5,43] 0.0052435585851883 [GeV] +Cell[8,24] 0.0010996565608439 [GeV] +Cell[7,43] 0.0048024387259585 [GeV] +Cell[12,2] 0.0338500518919 [GeV] +Cell[10,42] 1.745502470385e-08 [GeV] +Cell[1,37] 0.00049636767873085 [GeV] +Cell[4,37] 0.0011994324812915 [GeV] +Cell[1,32] 0.00036341405544044 [GeV] +Cell[1,36] 0.0012983724779649 [GeV] +Cell[2,41] 0.0021953599615517 [GeV] +Cell[2,40] 0.00013903964506608 [GeV] +Cell[12,1] 0.0064167295952827 [GeV] +Cell[12,3] 0.014186698003068 [GeV] +Cell[13,2] 3.3894115797011e-05 [GeV] +Cell[4,42] 1.8105999878685e-05 [GeV] +Cell[4,43] 0.0072129829956609 [GeV] +Cell[1,34] 0.0054715156008172 [GeV] +Cell[1,28] 9.7759596537799e-05 [GeV] +Cell[6,39] 0.0093603808839488 [GeV] +Cell[5,38] 0.0094267121485547 [GeV] +Cell[1,33] 0.0022616302102527 [GeV] +Cell[7,42] 0.33731552297137 [GeV] +Cell[2,33] 0.0014343149181815 [GeV] +Cell[8,43] 7.8016339621172e-05 [GeV] +Cell[8,44] 0.0015630251669099 [GeV] +Cell[8,36] 6.7858121078984e-05 [GeV] +Cell[8,37] 0.014598404936054 [GeV] +Cell[1,9] 0.0022889900433911 [GeV] +Cell[5,40] 0.0023279865339775 [GeV] +Cell[4,11] 0.0011320184432971 [GeV] +Cell[5,41] 0.0091834011086714 [GeV] +Cell[8,25] 0.00051090912325823 [GeV] +Cell[8,41] 0.0050697673219982 [GeV] +Cell[9,41] 5.8088946389034e-08 [GeV] +Cell[8,40] 1.0281680595881e-05 [GeV] +Cell[6,42] 0.048398292848266 [GeV] +Cell[6,41] 0.02721706577581 [GeV] +Cell[5,37] 0.001533374012022 [GeV] +Cell[3,33] 0.0053091817021113 [GeV] +Cell[4,34] 3.1839590519667e-11 [GeV] +Cell[4,44] 0.01202315141812 [GeV] +Cell[6,40] 0.18479305194845 [GeV] +Cell[4,36] 0.00032364494692388 [GeV] +Cell[8,39] 0.00085700167421953 [GeV] +Cell[13,3] 1.1308592911519e-07 [GeV] +Cell[8,38] 4.6598513682738e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 99 cells : 1.3780980506117 (GeV) + +Source track ID 3944 (pi-,0.29708420509507[GeV]) at (-496.38745799901,59.995762694374,1843.8312846405) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,7] 1.6291256761178e-06 [GeV] +Cell[14,1] 0.00048653471294824 [GeV] +Cell[8,12] 5.9190075655806e-05 [GeV] +Cell[9,34] 1.9729437340629e-05 [GeV] +Cell[7,12] 8.9508490054868e-07 [GeV] +Cell[8,21] 1.3360666343942e-06 [GeV] +Cell[18,37] 3.9183124243707e-05 [GeV] +Cell[11,41] 1.0404884233139e-07 [GeV] +Cell[11,16] 0.001063746370722 [GeV] +Cell[13,26] 2.45072938269e-05 [GeV] +Cell[14,2] 5.1842620223397e-09 [GeV] +Cell[14,27] 0.0023130117802402 [GeV] +Cell[10,41] 8.0513869712036e-05 [GeV] +Cell[10,32] 9.8336801154005e-05 [GeV] +Cell[11,42] 6.0630464286078e-06 [GeV] +Cell[18,45] 1.8823987019232e-06 [GeV] +Cell[10,31] 2.1116664678402e-06 [GeV] +Cell[16,37] 0.0031362878161793 [GeV] +Cell[18,15] 0.00064405458938464 [GeV] +Cell[12,13] 6.1509069649674e-05 [GeV] +Cell[12,9] 0.00089747854396379 [GeV] +Cell[19,4] 0.00021946348152562 [GeV] +Cell[15,38] 0.0035508574136643 [GeV] +Cell[15,37] 0.0035584258767591 [GeV] +Cell[12,17] 0.0064893872307998 [GeV] +Cell[15,35] 5.0558775228637e-09 [GeV] +Cell[15,36] 9.2272067206636e-05 [GeV] +Cell[16,36] 0.0054772606820416 [GeV] +Cell[18,46] 1.2898817658424e-10 [GeV] +Cell[18,14] 0.0010410136435501 [GeV] +Cell[12,14] 0.0015276685827713 [GeV] +Cell[11,15] 0.00018058602558449 [GeV] +Cell[19,6] 5.9513223053273e-05 [GeV] +Cell[19,46] 6.3459876262641e-05 [GeV] +Cell[19,45] 0.0012673643047978 [GeV] +Cell[19,7] 2.4979370448364e-07 [GeV] +Cell[16,12] 1.260256455862e-05 [GeV] +Cell[16,38] 3.8956295175012e-06 [GeV] +Cell[12,16] 0.0026166415791158 [GeV] +Cell[19,5] 0.00051577738751757 [GeV] +Cell[19,23] 0.023111270069173 [GeV] +Cell[19,22] 0.058241688301205 [GeV] +Cell[19,44] 2.5748564522132e-05 [GeV] +Cell[16,1] 0.0011597260665833 [GeV] +Cell[19,21] 0.00014711202767751 [GeV] +### Total energy deposition in calorimeter by a source track in 45 cells : 0.11830009968339 (GeV) + +Source track ID 4299 (pi-,0.85429344753391[GeV]) at (-164.2081813833,472.26652767986,871.96629521286) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[15,15] 0.2184084465994 [GeV] +Cell[17,16] 7.3690565327411e-05 [GeV] +Cell[16,16] 0.00094374193217072 [GeV] +Cell[16,13] 2.3069328452721e-05 [GeV] +Cell[17,15] 0.0024532782603801 [GeV] +Cell[17,14] 0.041766934262518 [GeV] +Cell[16,14] 0.015652368829417 [GeV] +Cell[17,10] 0.00318950633698 [GeV] +Cell[17,13] 0.03540904624867 [GeV] +Cell[18,15] 0.00051332338403131 [GeV] +Cell[15,16] 8.3586306686811e-08 [GeV] +Cell[14,15] 0.017911831107782 [GeV] +Cell[18,14] 0.00018665006113133 [GeV] +Cell[16,11] 0.00044809879549653 [GeV] +Cell[17,11] 0.0047088538217809 [GeV] +Cell[14,14] 0.097350870206378 [GeV] +Cell[16,15] 0.17009170592085 [GeV] +Cell[17,12] 0.1313127727825 [GeV] +### Total energy deposition in calorimeter by a source track in 18 cells : 0.74044427202957 (GeV) + +Source track ID 4033 (pi-,0.94956463400384[GeV]) at (-378.76177773843,-326.40391499555,-230.42166049818) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[8,9] 1.6013608501453e-09 [GeV] +Cell[8,10] 0.0050987613619609 [GeV] +Cell[7,9] 0.00045248000541596 [GeV] +Cell[8,11] 0.0042231771577466 [GeV] +Cell[7,11] 0.014405018901225 [GeV] +Cell[7,10] 0.005917739605276 [GeV] +Cell[7,34] 0.00053941727533493 [GeV] +Cell[9,31] 0.00066909745810847 [GeV] +Cell[7,29] 0.0039436181962499 [GeV] +Cell[7,30] 0.065343906871856 [GeV] +Cell[8,12] 0.0081943087605333 [GeV] +Cell[8,30] 0.031123252621036 [GeV] +Cell[8,13] 0.0014853446186501 [GeV] +Cell[9,12] 1.9950050500483e-10 [GeV] +Cell[7,12] 0.00085779060591396 [GeV] +Cell[6,30] 0.005194994894632 [GeV] +Cell[7,47] 1.3416615564665e-06 [GeV] +Cell[8,31] 8.167891704943e-06 [GeV] +Cell[7,13] 3.3360601977392e-06 [GeV] +Cell[6,13] 0.0013910043994247 [GeV] +Cell[6,12] 1.2565638019169e-05 [GeV] +Cell[9,16] 0.00011533564321371 [GeV] +Cell[7,14] 1.8006498990985e-05 [GeV] +Cell[9,29] 0.02739716652415 [GeV] +Cell[8,21] 0.00064901682145621 [GeV] +Cell[9,32] 0.00032215148425803 [GeV] +Cell[9,28] 0.0039114555718119 [GeV] +Cell[11,41] 0.00028764405602124 [GeV] +Cell[9,13] 0.00027292101358876 [GeV] +Cell[7,28] 0.00077267764689009 [GeV] +Cell[12,20] 0.00036703662608045 [GeV] +Cell[10,14] 0.00028305175075832 [GeV] +Cell[9,19] 7.521512627136e-06 [GeV] +Cell[11,34] 0.00014235633312501 [GeV] +Cell[10,28] 2.1379599056672e-06 [GeV] +Cell[4,14] 1.6340910065082e-07 [GeV] +Cell[4,13] 2.0718150319681e-06 [GeV] +Cell[10,37] 7.2525581344962e-09 [GeV] +Cell[6,47] 0.0014876503590776 [GeV] +Cell[7,21] 0.0010134294596581 [GeV] +Cell[11,42] 0.00030377817083354 [GeV] +Cell[12,19] 1.7712051339913e-06 [GeV] +Cell[13,16] 3.6784180847462e-06 [GeV] +Cell[11,36] 9.0748365328182e-06 [GeV] +Cell[11,35] 5.0894952437375e-06 [GeV] +Cell[6,0] 2.4742742796661e-05 [GeV] +Cell[7,31] 0.00026002787204527 [GeV] +Cell[8,33] 6.2456818995997e-06 [GeV] +Cell[6,31] 0.00010126176672736 [GeV] +Cell[7,32] 2.948328278535e-06 [GeV] +Cell[6,15] 0.0086247523935767 [GeV] +Cell[9,30] 7.9404276638115e-06 [GeV] +Cell[6,14] 0.00050673943112531 [GeV] +Cell[6,32] 5.4753752465331e-10 [GeV] +Cell[6,1] 0.00060284380228222 [GeV] +Cell[13,20] 3.0571561592637e-05 [GeV] +Cell[8,35] 7.2993754292838e-06 [GeV] +Cell[6,29] 1.4806881677032e-07 [GeV] +Cell[8,32] 0.0007908172312541 [GeV] +Cell[12,15] 5.3408730309457e-09 [GeV] +Cell[8,29] 0.37923852234113 [GeV] +Cell[8,28] 0.00028540555514724 [GeV] +Cell[8,41] 1.8891922081821e-07 [GeV] +Cell[10,13] 4.4585829073185e-09 [GeV] +Cell[10,15] 2.9537752461692e-05 [GeV] +Cell[12,14] 2.324954001233e-05 [GeV] +Cell[8,39] 1.1896174449021e-05 [GeV] +Cell[5,30] 2.2445903368862e-08 [GeV] +Cell[12,16] 7.962258416228e-06 [GeV] +Cell[9,38] 8.0763030609887e-09 [GeV] +Cell[8,38] 3.6254576559713e-07 [GeV] +Cell[9,21] 3.289326173217e-09 [GeV] +Cell[13,15] 0.00010983269289386 [GeV] +Cell[13,14] 0.00033721761236529 [GeV] +### Total energy deposition in calorimeter by a source track in 74 cells : 0.57725107788371 (GeV) + +Source track ID 4267 (pi+,0.42302232645496[GeV]) at (-364.05628581688,-342.72878600611,-441.94589972791) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[7,29] 0.27094755844065 [GeV] +Cell[7,30] 0.013049844037909 [GeV] +Cell[7,37] 4.2602363391779e-06 [GeV] +Cell[7,38] 0.0010661594292826 [GeV] +Cell[7,27] 0.0012156185922384 [GeV] +Cell[7,28] 0.0086587281862202 [GeV] +Cell[7,26] 0.0014105056137188 [GeV] +Cell[8,27] 1.3414987828583e-05 [GeV] +Cell[8,29] 0.0010102180156285 [GeV] +Cell[8,28] 0.0079519509050946 [GeV] +Cell[8,38] 3.1764210461915e-09 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.30532826162133 (GeV) + +Source track ID 4047 (pi+,0.18783155987583[GeV]) at (-499.99408938761,2.4311679189457,1577.752681083) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[17,23] 0.068636527478387 [GeV] +Cell[16,9] 0.00051099891 [GeV] +Cell[16,1] 0.00026885485679268 [GeV] +Cell[18,5] 0.0056964142787352 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.075112795523915 (GeV) + +Source track ID 4268 (kaon-,0.64312186585189[GeV]) at (456.54656535704,-203.87553472816,321.12215803666) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[5,35] 1.1464367048575e-07 [GeV] +Cell[5,36] 3.3333105966449e-07 [GeV] +Cell[9,43] 0.0023102423047708 [GeV] +Cell[9,42] 0.00025021555781984 [GeV] +Cell[11,16] 1.3534026720663e-08 [GeV] +Cell[6,36] 9.1597183673002e-06 [GeV] +Cell[11,14] 0.00019330884075134 [GeV] +Cell[15,5] 1.4875762504403e-05 [GeV] +Cell[11,47] 3.1584461394232e-06 [GeV] +Cell[12,46] 0.00061343988030817 [GeV] +Cell[12,45] 0.078521012221109 [GeV] +Cell[11,43] 4.1415602254347e-09 [GeV] +Cell[11,44] 0.073696390674093 [GeV] +Cell[10,44] 0.00057393825888505 [GeV] +Cell[12,44] 0.00070901814284248 [GeV] +Cell[13,16] 0.00014867352753674 [GeV] +Cell[11,17] 0.00064262965063335 [GeV] +Cell[11,46] 0.00019003956603069 [GeV] +Cell[11,45] 0.30969555486545 [GeV] +Cell[12,32] 1.9408331805607e-05 [GeV] +Cell[6,35] 0.00014579276622726 [GeV] +Cell[12,15] 2.9278278816491e-08 [GeV] +Cell[12,17] 1.3777327217213e-07 [GeV] +Cell[16,23] 0.0011437988330801 [GeV] +Cell[9,44] 4.3175532482564e-10 [GeV] +Cell[12,14] 3.6893901415169e-07 [GeV] +Cell[14,4] 4.2861710195893e-05 [GeV] +Cell[12,16] 0.00098321940447772 [GeV] +Cell[13,14] 2.7357505528471e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 29 cells : 0.46993509804119 (GeV) + +Source track ID 4110 (pi+,3.2624728219034[GeV]) at (499.99084019586,-3.0265029721548,-1675.0242065555) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[0,46] 0.00048335853697017 [GeV] +Cell[0,31] 0.001636677927714 [GeV] +Cell[0,29] 4.6655867140544e-07 [GeV] +Cell[0,0] 0.44671718053875 [GeV] +Cell[1,29] 5.1949548378616e-09 [GeV] +Cell[1,0] 0.0012267357962284 [GeV] +Cell[0,47] 0.63856869580771 [GeV] +Cell[1,30] 5.3201802074909e-11 [GeV] +Cell[1,47] 0.17911347448912 [GeV] +Cell[1,1] 0.0007554508355342 [GeV] +Cell[0,1] 0.0072345432076274 [GeV] +Cell[1,31] 9.7018596716225e-07 [GeV] +Cell[0,30] 2.4856996376002e-05 [GeV] +Cell[0,45] 0.00062006181862411 [GeV] +Cell[2,21] 2.249759651022e-05 [GeV] +Cell[3,21] 2.5932085787645e-05 [GeV] +Cell[13,14] 7.7547132677864e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 17 cells : 1.276438662343 (GeV) + +Source track ID 4247 (kaon+,1.7505052711876[GeV]) at (75.53342948636,494.26177378999,1969.1285331336) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[17,18] 5.7978374155937e-05 [GeV] +Cell[16,26] 3.3653140946399e-05 [GeV] +Cell[16,31] 6.233123713173e-07 [GeV] +Cell[14,21] 2.4161083274521e-07 [GeV] +Cell[15,32] 9.4066395377013e-08 [GeV] +Cell[15,33] 2.7705719891173e-06 [GeV] +Cell[17,35] 0.00012653644528291 [GeV] +Cell[9,24] 1.8705802465206e-05 [GeV] +Cell[12,2] 2.5797824491747e-07 [GeV] +Cell[1,32] 0.00034990566434908 [GeV] +Cell[1,34] 1.5842379404148e-05 [GeV] +Cell[1,33] 0.0017811470607697 [GeV] +Cell[14,42] 5.5808916835645e-05 [GeV] +Cell[15,42] 1.0810975221602e-06 [GeV] +Cell[16,32] 0.0020177826987895 [GeV] +Cell[16,28] 0.00046731638102983 [GeV] +Cell[13,17] 1.1800648644567e-07 [GeV] +Cell[19,12] 0.0071739689686795 [GeV] +Cell[19,14] 0.0032765004447764 [GeV] +Cell[18,18] 2.6398491143482e-05 [GeV] +Cell[19,45] 3.0309806636069e-05 [GeV] +Cell[19,11] 0.0019216915850712 [GeV] +Cell[17,27] 3.963835403556e-05 [GeV] +Cell[19,24] 3.4572359735421e-06 [GeV] +Cell[19,25] 1.8837270994027e-05 [GeV] +Cell[17,25] 4.4136549986433e-05 [GeV] +Cell[17,26] 1.5417991002323e-05 [GeV] +Cell[19,9] 0.00029308191364862 [GeV] +Cell[19,10] 0.040224202172088 [GeV] +Cell[16,25] 0.0051197007154155 [GeV] +Cell[18,0] 4.3236992394213e-07 [GeV] +Cell[16,27] 0.0038926065228252 [GeV] +Cell[19,13] 0.0026378809652241 [GeV] +### Total energy deposition in calorimeter by a source track in 33 cells : 0.069648124865295 (GeV) + +Source track ID 4109 (pi-,0.62984346090417[GeV]) at (342.22430407048,364.53055523985,-1016.4343723911) +Original primary track ID 27 (unknown,1.8699577628705[GeV]) +Cell[5,35] 0.0003881782180556 [GeV] +Cell[5,24] 0.0014103210805352 [GeV] +Cell[5,36] 0.0013653745113729 [GeV] +Cell[6,16] 4.0991930291057e-08 [GeV] +Cell[4,35] 7.9108285717666e-09 [GeV] +Cell[4,7] 0.0062187753412972 [GeV] +Cell[1,22] 0.0011856281828475 [GeV] +Cell[1,23] 7.0660387450516e-08 [GeV] +Cell[4,5] 0.0053169718790237 [GeV] +Cell[4,8] 0.00015171999493907 [GeV] +Cell[1,14] 2.9875764300868e-07 [GeV] +Cell[7,19] 5.1224084693899e-05 [GeV] +Cell[1,43] 2.7982368078483e-07 [GeV] +Cell[1,27] 0.00040075967465987 [GeV] +Cell[5,5] 0.0038104578009721 [GeV] +Cell[4,24] 0.00058550792719586 [GeV] +Cell[4,13] 0.0013791574757279 [GeV] +Cell[5,33] 2.5526680634357e-05 [GeV] +Cell[5,17] 4.7300410515163e-06 [GeV] +Cell[2,45] 1.3980549381813e-05 [GeV] +Cell[6,47] 7.1487675013486e-06 [GeV] +Cell[2,29] 1.9385815656278e-05 [GeV] +Cell[6,46] 3.5622589057311e-06 [GeV] +Cell[6,34] 5.8173861816613e-10 [GeV] +Cell[3,37] 0.00291917060527 [GeV] +Cell[2,14] 0.00066056329089838 [GeV] +Cell[5,25] 0.00082383535092322 [GeV] +Cell[4,6] 0.19610173511602 [GeV] +Cell[5,34] 0.00082607593719956 [GeV] +Cell[3,4] 1.3308224807361e-05 [GeV] +Cell[1,26] 0.0036204669880352 [GeV] +Cell[6,35] 1.7851790516943e-08 [GeV] +Cell[2,42] 2.0842560392111e-06 [GeV] +Cell[1,28] 0.00058446287329798 [GeV] +Cell[2,6] 0.0006653981731943 [GeV] +Cell[2,5] 0.0015576566196338 [GeV] +Cell[7,42] 7.4590730501086e-05 [GeV] +Cell[3,29] 5.2543622558687e-06 [GeV] +Cell[3,30] 0.0013932832441251 [GeV] +Cell[4,3] 0.00049017835868688 [GeV] +Cell[4,4] 3.6707610838448e-05 [GeV] +Cell[8,29] 1.4678820321024e-08 [GeV] +Cell[8,28] 0.00026444132897245 [GeV] +Cell[3,8] 0.005621592660393 [GeV] +Cell[6,42] 0.00027915106247963 [GeV] +Cell[2,7] 1.5938650408316e-06 [GeV] +Cell[3,7] 0.0044678738324368 [GeV] +Cell[4,12] 0.00072363798726954 [GeV] +Cell[4,34] 1.3995981396874e-05 [GeV] +Cell[3,5] 9.1570878211087e-06 [GeV] +Cell[3,6] 2.3896588187199e-05 [GeV] +Cell[5,6] 0.00061791327541823 [GeV] +Cell[5,7] 0.0019848379901317 [GeV] +Cell[7,20] 1.7849135360848e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 54 cells : 0.24612202279168 (GeV) + +Source track ID 4157 (pi-,0.45901929468074[GeV]) at (-499.85906828337,-11.870629927831,-196.06663509215) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[9,26] 1.0239189634831e-07 [GeV] +Cell[8,26] 0.0025355993440334 [GeV] +Cell[7,26] 2.8185302392103e-07 [GeV] +Cell[8,24] 0.11330220409645 [GeV] +Cell[9,24] 0.015481182590678 [GeV] +Cell[9,25] 5.5494758498753e-08 [GeV] +Cell[8,25] 0.29697622372354 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.42829564949438 (GeV) + +Source track ID 4163 (pi-,1.1276834420573[GeV]) at (-498.23245409168,42.005019816461,1024.4162978327) +Original primary track ID 25 (unknown,7.7728456153487[GeV]) +Cell[16,26] 0.0011253628076183 [GeV] +Cell[15,31] 6.0485501307994e-08 [GeV] +Cell[11,23] 0.0001868363562553 [GeV] +Cell[12,0] 9.075112757273e-08 [GeV] +Cell[11,24] 9.8301397934847e-05 [GeV] +Cell[15,22] 6.3939326082618e-09 [GeV] +Cell[16,22] 0.0012687707873987 [GeV] +Cell[17,23] 6.1347587620162e-05 [GeV] +Cell[15,23] 0.19476764914645 [GeV] +Cell[17,24] 0.48728807300405 [GeV] +Cell[16,10] 9.7183219622821e-09 [GeV] +Cell[16,9] 0.00095207873448226 [GeV] +Cell[15,25] 4.2253965375494e-09 [GeV] +Cell[15,10] 1.0972144082189e-11 [GeV] +Cell[15,9] 0.00087653182734368 [GeV] +Cell[15,8] 0.0026977692271521 [GeV] +Cell[18,12] 2.4722046703118e-07 [GeV] +Cell[15,7] 0.011696237666389 [GeV] +Cell[16,24] 0.23462711782555 [GeV] +Cell[16,23] 0.0065747011759864 [GeV] +Cell[15,24] 0.0003321810991539 [GeV] +Cell[17,22] 0.00083560766159371 [GeV] +Cell[17,25] 0.0017210656455985 [GeV] +Cell[17,26] 2.458196716816e-06 [GeV] +Cell[16,25] 0.0036338164328337 [GeV] +Cell[16,27] 2.7801264309346e-08 [GeV] +Cell[17,1] 2.8340422772999e-08 [GeV] +Cell[17,0] 3.8776359900794e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 28 cells : 0.94875025916352 (GeV) + >>> Summary of Event 0 Tracker hits -------------------------------------------------------------- -1454 hits are stored in RE01TrackerHitsCollection. +1571 hits are stored in RE01TrackerHitsCollection. Calorimeter hits -------------------------------------------------------------- -0 hits are stored in RE01CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0 (GeV) +928 hits are stored in RE01CalorimeterHitsCollection. + Total energy deposition in calorimeter : 148.21385368415 (GeV) Trajectories in tracker -------------------------------------------------------------- diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc index a5a2b68e4e..7986837b59 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc @@ -26,7 +26,7 @@ /// \file runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc /// \brief Implementation of the RE01CalorimeterROGeometry class // -// $Id: RE01CalorimeterROGeometry.cc 75295 2013-10-30 09:32:52Z gcosmo $ +// $Id: RE01CalorimeterROGeometry.cc 97383 2016-06-02 09:56:35Z gcosmo $ // #include "RE01CalorimeterROGeometry.hh" @@ -43,15 +43,9 @@ #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RE01CalorimeterROGeometry::RE01CalorimeterROGeometry() - : G4VReadOutGeometry() -{ -#include "RE01DetectorParameterDef.icc" -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RE01CalorimeterROGeometry::RE01CalorimeterROGeometry(G4String aString) - : G4VReadOutGeometry(aString) +RE01CalorimeterROGeometry:: +RE01CalorimeterROGeometry(G4String& parallelWorldName) + : G4VUserParallelWorld(parallelWorldName) { #include "RE01DetectorParameterDef.icc" } @@ -61,34 +55,26 @@ RE01CalorimeterROGeometry::~RE01CalorimeterROGeometry() {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* RE01CalorimeterROGeometry::Build() +void RE01CalorimeterROGeometry::Construct() { - // Material Information imported from NIST database. - // - G4NistManager* NISTman = G4NistManager::Instance(); - // A dummy material is used to fill the volumes of the readout geometry. // ( It will be allowed to set a NULL pointer in volumes of such virtual // division in future, since this material is irrelevant for tracking.) - G4Material* dummyMat = NISTman->FindOrBuildMaterial("G4_AIR"); + G4Material* dummyMat = nullptr; + + //the ReadOut World: + G4VPhysicalVolume* ROWorldPhys = GetWorld(); + G4LogicalVolume *ROWorldLog = ROWorldPhys->GetLogicalVolume(); - //Builds the ReadOut World: - G4Box *ROWorldBox = new G4Box("ROWorldBox",fExpHall_x,fExpHall_y,fExpHall_z); - G4LogicalVolume *ROWorldLog = new G4LogicalVolume(ROWorldBox, dummyMat, - "ROWorldLogical", 0, 0, 0); - G4PVPlacement *ROWorldPhys = new G4PVPlacement(0,G4ThreeVector(), - "ROWorldPhysical", - ROWorldLog, - 0,false,0); // Calorimeter volume: G4VSolid * caloROtub = new G4Tubs("caloROtub",fCaloTubs_rmin,fCaloTubs_rmax, fCaloTubs_dz,fCaloTubs_sphi,fCaloTubs_dphi); G4LogicalVolume * caloROlog = new G4LogicalVolume(caloROtub,dummyMat,"caloROlogical",0,0,0); - G4VPhysicalVolume * caloROphys - = new G4PVPlacement(0,G4ThreeVector(),"calROphysical",caloROlog, - ROWorldPhys,false,0); +// G4VPhysicalVolume * caloROphys = + new G4PVPlacement(0,G4ThreeVector(),caloROlog,"calROphysical", + ROWorldLog,false,0); // ------------------------------- // Calorimeter readout division: @@ -100,9 +86,9 @@ G4VPhysicalVolume* RE01CalorimeterROGeometry::Build() G4LogicalVolume * caloROphiDivisionLog = new G4LogicalVolume(caloROphiDivisionTub, dummyMat, "caloROphiDivisionLogical",0,0,0); - G4VPhysicalVolume * caloROphiDivisionPhys - = new G4PVReplica("caloROphiDivisionPhysical", caloROphiDivisionLog, - caloROphys, kPhi, fSegmentsinPhi, fCaloCell_dphi); +// G4VPhysicalVolume * caloROphiDivisionPhys = + new G4PVReplica("caloROphiDivisionPhysical", caloROphiDivisionLog, + caloROlog, kPhi, fSegmentsinPhi, fCaloCell_dphi); // then z division: 20 slices: G4VSolid * caloROcellTub = new G4Tubs("caloROcellTub", fCaloRing_rmin, fCaloRing_rmax, @@ -110,8 +96,20 @@ G4VPhysicalVolume* RE01CalorimeterROGeometry::Build() G4LogicalVolume * caloROcellLog = new G4LogicalVolume(caloROcellTub, dummyMat, "caloROcellLogical",0,0,0); // G4VPhysicalVolume * caloROcellPhys = - new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionPhys, + new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionLog, kZAxis, fSegmentsinZ,2.*fCaloRing_dz); - return ROWorldPhys; } + +#include "RE01CalorimeterSD.hh" + +void RE01CalorimeterROGeometry::ConstructSD() +{ + //------------------------------------------------------------------ + // Sensitive Detector + //------------------------------------------------------------------ + G4String calorimeterSDname = "/mydet/calorimeter"; + RE01CalorimeterSD * calorimeterSD = new RE01CalorimeterSD(calorimeterSDname); + SetSensitiveDetector("caloROcellLogical", calorimeterSD); +} + diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc index 53fafcaa3a..9bb62633bc 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc @@ -26,7 +26,7 @@ /// \file runAndEvent/RE01/src/RE01CalorimeterSD.cc /// \brief Implementation of the RE01CalorimeterSD class // -// $Id: RE01CalorimeterSD.cc 68761 2013-04-05 12:35:00Z gcosmo $ +// $Id: RE01CalorimeterSD.cc 97383 2016-06-02 09:56:35Z gcosmo $ // #include "RE01CalorimeterSD.hh" @@ -78,23 +78,24 @@ void RE01CalorimeterSD::Initialize(G4HCofThisEvent* HCE) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool RE01CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool RE01CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*) { - if(!ROhist) return false; +//***** RE05CalorimeterSD has been migrated to Geant4 version 10 that does not +//***** support Readout Geometry in multi-threaded mode. Now RE05CalorimeterSD +//***** is assigned to a dedicaed parallel world. The pointer "aStep" points to +//***** a G4Step object for the parallel world. + G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return false; - G4VPhysicalVolume* physVol = ROhist->GetVolume(); - //ROhist->MoveUpHistory(); - //G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); + const G4VTouchable* ROhist = aStep->GetPreStepPoint()->GetTouchable(); G4int copyIDinZ = ROhist->GetReplicaNumber(); G4int copyIDinPhi = ROhist->GetReplicaNumber(1); if(fCellID[copyIDinZ][copyIDinPhi]==-1) { - RE01CalorimeterHit* calHit - = new RE01CalorimeterHit - (physVol->GetLogicalVolume(),copyIDinZ,copyIDinPhi); + RE01CalorimeterHit* calHit = new RE01CalorimeterHit + (ROhist->GetVolume()->GetLogicalVolume(),copyIDinZ,copyIDinPhi); calHit->SetEdep( edep ); G4AffineTransform aTrans = ROhist->GetHistory()->GetTopTransform(); aTrans.Invert(); diff --git a/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc b/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc index 563ba9edac..a54eabd335 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc @@ -26,13 +26,11 @@ /// \file runAndEvent/RE01/src/RE01DetectorConstruction.cc /// \brief Implementation of the RE01DetectorConstruction class // -// $Id: RE01DetectorConstruction.cc 75598 2013-11-04 13:00:59Z gcosmo $ +// $Id: RE01DetectorConstruction.cc 97383 2016-06-02 09:56:35Z gcosmo $ // #include "RE01DetectorConstruction.hh" #include "RE01TrackerSD.hh" -#include "RE01CalorimeterSD.hh" -#include "RE01CalorimeterROGeometry.hh" #include "RE01TrackerParametrisation.hh" #include "RE01CalorimeterParametrisation.hh" #include "RE01Field.hh" @@ -60,36 +58,20 @@ #include "G4RegionStore.hh" #include "G4SystemOfUnits.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01DetectorConstruction::RE01DetectorConstruction() : G4VUserDetectorConstruction() { #include "RE01DetectorParameterDef.icc" } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01DetectorConstruction::~RE01DetectorConstruction() {;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* RE01DetectorConstruction::Construct() { - //------------------------------------------------------------------------- - // Magnetic field - //------------------------------------------------------------------------- - /****************************************************************** - static G4bool fieldIsInitialized = false; - if(!fieldIsInitialized) - { - RE01Field* myField = new RE01Field; - G4FieldManager* fieldMgr - = G4TransportationManager::GetTransportationManager() - ->GetFieldManager(); - fieldMgr->SetDetectorField(myField); - fieldMgr->CreateChordFinder(myField); - fieldIsInitialized = true; - } - *******************************************************************/ //------------------------------------------------------------------------- // Materials //------------------------------------------------------------------------- @@ -183,23 +165,20 @@ G4VPhysicalVolume* RE01DetectorConstruction::Construct() fCalorimeter_log = new G4LogicalVolume(calorimeter_tubs,scinti,"caloT_L",0,0,0); // G4VPhysicalVolume * calorimeter_phys = - new G4PVPlacement(0,G4ThreeVector(),fCalorimeter_log,"caloM_P", + new G4PVPlacement(0,G4ThreeVector(),fCalorimeter_log,"caloM_P", experimentalHall_log,false,0); G4VisAttributes* calorimeter_logVisATT = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); calorimeter_logVisATT->SetForceWireframe(true); fCalorimeter_log->SetVisAttributes(calorimeter_logVisATT); G4Region* calorimeterRegion = new G4Region("CalorimeterRegion"); - RE01RegionInformation* calorimeterInfo = new RE01RegionInformation(); + RE01RegionInformation* calorimeterInfo + = new RE01RegionInformation(); calorimeterInfo->SetCalorimeter(); calorimeterRegion->SetUserInformation(calorimeterInfo); fCalorimeter_log->SetRegion(calorimeterRegion); calorimeterRegion->AddRootLogicalVolume(fCalorimeter_log); - G4String ROgeometryName = "CalorimeterROGeom"; - fCalorimeterRO = new RE01CalorimeterROGeometry(ROgeometryName); - fCalorimeterRO->BuildROGeometry(); - //------------------------------- Lead layers // As an example for Parameterised volume // dummy values for G4Tubs -- modified by parameterised volume @@ -212,7 +191,7 @@ G4VPhysicalVolume* RE01DetectorConstruction::Construct() = new RE01CalorimeterParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume * caloLayer_phys = - new G4PVParameterised("caloLayer_phys",caloLayer_log,fCalorimeter_log, + new G4PVParameterised("caloLayer_phys",caloLayer_log,fCalorimeter_log, kXAxis, fNocaloLayers, calorimeterParam); G4VisAttributes* caloLayer_logVisAtt = new G4VisAttributes(G4Colour(0.7,1.0,0.0)); @@ -224,23 +203,26 @@ G4VPhysicalVolume* RE01DetectorConstruction::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void RE01DetectorConstruction::ConstructSDandField() { - +void RE01DetectorConstruction::ConstructSDandField() +{ //------------------------------------------------------------------ // Sensitive Detector //------------------------------------------------------------------ - //G4SDManager* SDman = G4SDManager::GetSDMpointer(); G4String trackerSDname = "/mydet/tracker"; RE01TrackerSD * trackerSD = new RE01TrackerSD(trackerSDname); - //SDman->AddNewDetector(trackerSD); SetSensitiveDetector(fTrackerLayer_log, trackerSD); - - G4String calorimeterSDname = "/mydet/calorimeter"; - RE01CalorimeterSD * calorimeterSD = new RE01CalorimeterSD(calorimeterSDname); - calorimeterSD->SetROgeometry(fCalorimeterRO); - //SDman->AddNewDetector(calorimeterSD); - SetSensitiveDetector(fCalorimeter_log, calorimeterSD); + // N.B. Calorimeter SD is defined in the parallel world. + + //------------------------------------------------------------------------- + // Magnetic field + //------------------------------------------------------------------------- + + RE01Field* myField = new RE01Field; + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager()->GetFieldManager(); + fieldMgr->SetDetectorField(myField); + fieldMgr->CreateChordFinder(myField); } diff --git a/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc b/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc index c33f53af0f..469ddcbecf 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc @@ -26,7 +26,7 @@ /// \file runAndEvent/RE01/src/RE01EventAction.cc /// \brief Implementation of the RE01EventAction class // -// $Id: RE01EventAction.cc 90679 2015-06-08 07:58:19Z gcosmo $ +// $Id: RE01EventAction.cc 97383 2016-06-02 09:56:35Z gcosmo $ // #include "RE01EventAction.hh" @@ -47,17 +47,17 @@ #include "G4PrimaryParticle.hh" #include "G4SystemOfUnits.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01EventAction::RE01EventAction() :G4UserEventAction(), fTrackerCollID(-1),fCalorimeterCollID(-1) {;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01EventAction::~RE01EventAction() {;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RE01EventAction::BeginOfEventAction(const G4Event*) { G4SDManager * SDman = G4SDManager::GetSDMpointer(); @@ -69,10 +69,15 @@ void RE01EventAction::BeginOfEventAction(const G4Event*) } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RE01EventAction::EndOfEventAction(const G4Event* evt) { G4cout << ">>> Summary of Event " << evt->GetEventID() << G4endl; + if(evt->GetNumberOfPrimaryVertex()==0) + { + G4cout << "Event is empty." << G4endl; + return; + } if(fTrackerCollID<0||fCalorimeterCollID<0) return; @@ -160,7 +165,7 @@ void RE01EventAction::EndOfEventAction(const G4Event* evt) } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RE01EventAction::PrintPrimary(G4PrimaryParticle* pp,G4int ind) { for(G4int ii=0;ii<=ind;ii++) diff --git a/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc b/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc deleted file mode 100644 index cff4e0fbf1..0000000000 --- a/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.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. * -// ******************************************************************** -// -/// \file runAndEvent/RE01/src/RE01PhysicsList.cc -/// \brief Implementation of the RE01PhysicsList class -// -// $Id: RE01PhysicsList.cc 68026 2013-03-13 13:45:22Z gcosmo $ -// -#include "RE01PhysicsList.hh" -#include "RE01UnknownDecayPhysics.hh" - -#include "G4DecayPhysics.hh" -#include "G4EmStandardPhysics.hh" -#include "G4EmExtraPhysics.hh" -#include "G4IonPhysics.hh" -#include "G4StoppingPhysics.hh" -#include "G4HadronElasticPhysics.hh" -#include "G4NeutronTrackingCut.hh" - -#include "G4DataQuestionaire.hh" -#include "G4HadronPhysicsQGSP_BERT.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RE01PhysicsList::RE01PhysicsList(): G4VModularPhysicsList() -{ - G4DataQuestionaire it(photon); - G4cout << "<<< Geant4 Physics List simulation engine: QGSP_BERT 3.4"<GeneratePrimaryVertex(anEvent); } + fHEPEvt->GeneratePrimaryVertex(anEvent); + if(anEvent->GetNumberOfPrimaryVertex()==0) + { // End-of-file + G4Exception("RE01PrimaryGeneratorAction::GeneratePrimaries", + "RE01_0001",RunMustBeAborted,"End of file detected."); + } + } else { fParticleGun->GeneratePrimaryVertex(anEvent); } } diff --git a/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc index 99ea74b804..0625d44b9d 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc @@ -26,11 +26,12 @@ /// \file runAndEvent/RE01/src/RE01SteppingAction.cc /// \brief Implementation of the RE01SteppingAction class // -// $Id: RE01SteppingAction.cc 66379 2012-12-18 09:46:33Z gcosmo $ +// $Id: RE01SteppingAction.cc 97671 2016-06-07 08:25:00Z gcosmo $ // #include "RE01SteppingAction.hh" #include "RE01RegionInformation.hh" +#include "RE01TrackInformation.hh" #include "G4Track.hh" #include "G4Step.hh" @@ -39,17 +40,18 @@ #include "G4VPhysicalVolume.hh" #include "G4LogicalVolume.hh" #include "G4Region.hh" +#include "G4SteppingManager.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01SteppingAction::RE01SteppingAction() : G4UserSteppingAction() {;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01SteppingAction::~RE01SteppingAction() {;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RE01SteppingAction::UserSteppingAction(const G4Step * theStep) { // Suspend a track if it is entering into the calorimeter @@ -72,5 +74,23 @@ void RE01SteppingAction::UserSteppingAction(const G4Step * theStep) // check if it is entering to the calorimeter volume if(!(thePreRInfo->IsCalorimeter()) && (thePostRInfo->IsCalorimeter())) - { theTrack->SetTrackStatus(fSuspend); } + { + // if the track had already been suspended at the previous step, let it go. + RE01TrackInformation* trackInfo + = static_cast(theTrack->GetUserInformation()); + if(trackInfo->GetSuspendedStepID()>-1) + { + if(fpSteppingManager->GetverboseLevel()>0) + { + G4cout<<"++++ This track had already been suspended at step #" + <GetSuspendedStepID()<<". Tracking resumed." + <SetSuspendedStepID(theTrack->GetCurrentStepNumber()); + theTrack->SetTrackStatus(fSuspend); + } + } } diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc index cdb5cd61a7..6d9cbed860 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc @@ -27,17 +27,17 @@ /// \brief Implementation of the RE01TrackInformation class // // -// $Id: RE01TrackInformation.cc 75295 2013-10-30 09:32:52Z gcosmo $ +// $Id: RE01TrackInformation.cc 97671 2016-06-07 08:25:00Z gcosmo $ // #include "RE01TrackInformation.hh" #include "G4ios.hh" #include "G4SystemOfUnits.hh" -G4ThreadLocal G4Allocator * aTrackInformationAllocator = 0; -//G4Allocator aTrackInformationAllocator; +G4ThreadLocal G4Allocator * + aTrackInformationAllocator = 0; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01TrackInformation::RE01TrackInformation() : G4VUserTrackInformation() { @@ -54,9 +54,10 @@ RE01TrackInformation::RE01TrackInformation() fSourceMomentum = G4ThreeVector(0.,0.,0.); fSourceEnergy = 0.; fSourceTime = 0.; + fSuspendedStepID = -1; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01TrackInformation::RE01TrackInformation(const G4Track* aTrack) : G4VUserTrackInformation() { @@ -73,9 +74,10 @@ RE01TrackInformation::RE01TrackInformation(const G4Track* aTrack) fSourceMomentum = G4ThreeVector(0.,0.,0.); fSourceEnergy = 0.; fSourceTime = 0.; + fSuspendedStepID = -1; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01TrackInformation ::RE01TrackInformation(const RE01TrackInformation* aTrackInfo) : G4VUserTrackInformation() @@ -93,13 +95,14 @@ RE01TrackInformation fSourceMomentum = aTrackInfo->fSourceMomentum; fSourceEnergy = aTrackInfo->fSourceEnergy; fSourceTime = aTrackInfo->fSourceTime; + fSuspendedStepID = -1; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01TrackInformation::~RE01TrackInformation() {;} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RE01TrackInformation& RE01TrackInformation ::operator =(const RE01TrackInformation& aTrackInfo) { @@ -116,11 +119,12 @@ RE01TrackInformation& RE01TrackInformation fSourceMomentum = aTrackInfo.fSourceMomentum; fSourceEnergy = aTrackInfo.fSourceEnergy; fSourceTime = aTrackInfo.fSourceTime; + fSuspendedStepID = -1; return *this; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RE01TrackInformation::SetSourceTrackInformation(const G4Track* aTrack) { fSourceTrackID = aTrack->GetTrackID(); @@ -131,7 +135,7 @@ void RE01TrackInformation::SetSourceTrackInformation(const G4Track* aTrack) fSourceTime = aTrack->GetGlobalTime(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RE01TrackInformation::Print() const { G4cout diff --git a/examples/extended/runAndEvent/RE02/run.out b/examples/extended/runAndEvent/RE02/run.out index f335bd6f7e..7bd44129fb 100644 --- a/examples/extended/runAndEvent/RE02/run.out +++ b/examples/extended/runAndEvent/RE02/run.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -49,16 +49,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -149,6 +151,14 @@ gamma gamma ------------------------------------------- G4SDKineticEnergyFilter:: gammaE filter LowE 1 MeV HighE 10 MeV +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /run/verbose 2 #/event/verbose 0 @@ -304,7 +314,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -318,7 +328,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -427,7 +437,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -460,7 +470,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -588,6 +598,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -1160,8 +1175,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 -1.96 0.38 -197 0.213 0 0 0 PhantomSens initStep - 1 -1.96 0.379 -197 0.168 0.0444 0.0297 0.0297 PhantomSens msc - 2 -1.96 0.376 -197 0 0.168 0.0624 0.0921 PhantomSens eIoni + 1 -1.96 0.38 -197 0.176 0.0363 0.024 0.024 PhantomSens msc + 2 -1.96 0.377 -197 0 0.176 0.0671 0.0912 PhantomSens eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 @@ -1187,31 +1202,77 @@ 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.99 -0.942 -198 0.268 0 0 0 PhantomSens initStep - 1 -1.99 -0.946 -198 0.253 0.0147 0.00872 0.00872 PhantomSens msc - 2 -1.99 -0.951 -198 0.247 0.0059 0.00675 0.0155 PhantomSens msc - 3 -1.99 -0.956 -198 0.24 0.00722 0.00588 0.0214 PhantomSens msc - 4 -1.98 -0.953 -198 0.208 0.0325 0.00741 0.0288 PhantomSens msc - 5 -1.98 -0.95 -198 0.2 0.00793 0.0111 0.0399 PhantomSens msc - 6 -1.97 -0.944 -198 0.195 0.00451 0.0117 0.0516 PhantomSens msc - 7 -1.98 -0.937 -198 0.166 0.0297 0.0154 0.067 PhantomSens msc - 8 -1.98 -0.936 -198 0.146 0.0198 0.011 0.0781 PhantomSens msc - 9 -1.99 -0.932 -198 0.129 0.0168 0.0121 0.0902 PhantomSens msc - 10 -1.99 -0.934 -198 0.118 0.0109 0.00821 0.0984 PhantomSens msc - 11 -1.99 -0.935 -198 0.108 0.00956 0.00603 0.104 PhantomSens msc - 12 -1.99 -0.934 -198 0.0924 0.0161 0.00505 0.109 PhantomSens msc - 13 -1.99 -0.937 -198 0.0795 0.0129 0.00505 0.115 PhantomSens msc - 14 -1.99 -0.939 -198 0.0561 0.0234 0.00505 0.12 PhantomSens msc - 15 -1.99 -0.94 -198 0 0.0561 0.0108 0.13 PhantomSens eIoni + 1 -1.99 -0.946 -198 0.258 0.00951 0.00707 0.00707 PhantomSens msc + 2 -1.99 -0.949 -198 0.253 0.00541 0.0068 0.0139 PhantomSens msc + 3 -1.99 -0.945 -198 0.246 0.00726 0.00486 0.0187 PhantomSens msc + 4 -1.99 -0.94 -198 0.216 0.0295 0.00643 0.0252 PhantomSens msc + 5 -2 -0.937 -198 0.214 0.00233 0.00469 0.0298 PhantomSens msc + 6 -2 -0.935 -198 0.209 0.00521 0.00595 0.0358 PhantomSens msc + 7 -2 -0.932 -198 0.203 0.00618 0.00506 0.0409 PhantomSens msc + 8 -2 -0.931 -198 0.2 0.00296 0.00533 0.0462 PhantomSens msc + 9 -2 -0.929 -198 0.197 0.00212 0.00288 0.0491 PhantomSens Transportation + 10 -2 -0.927 -198 0.191 0.00653 0.00294 0.052 PhantomSens msc + 11 -2 -0.926 -198 0.181 0.00961 0.00337 0.0554 PhantomSens msc + 12 -2 -0.925 -198 0.174 0.00741 0.00359 0.059 PhantomSens msc + 13 -2 -0.925 -198 0.173 0.000559 0.000279 0.0592 PhantomSens Transportation + 14 -2 -0.925 -198 0.167 0.00653 0.00268 0.0619 PhantomSens msc + 15 -2 -0.926 -198 0.163 0.00369 0.00282 0.0647 PhantomSens msc + 16 -1.99 -0.926 -198 0.16 0.00351 0.00272 0.0675 PhantomSens msc + 17 -1.99 -0.927 -198 0.154 0.00527 0.00283 0.0703 PhantomSens msc + 18 -1.99 -0.926 -198 0.152 0.00198 0.00425 0.0745 PhantomSens msc + 19 -2 -0.923 -198 0.148 0.00403 0.00323 0.0778 PhantomSens msc + 20 -2 -0.923 -198 0.146 0.00252 0.00247 0.0803 PhantomSens msc + 21 -2 -0.925 -198 0.139 0.00702 0.003 0.0833 PhantomSens msc + 22 -2 -0.926 -198 0.126 0.0126 0.00292 0.0862 PhantomSens msc + 23 -2 -0.925 -198 0.125 0.00159 0.00296 0.0891 PhantomSens msc + 24 -2 -0.924 -198 0.122 0.00299 0.00246 0.0916 PhantomSens msc + 25 -1.99 -0.925 -198 0.112 0.00931 0.00298 0.0946 PhantomSens msc + 26 -1.99 -0.927 -198 0.107 0.00544 0.00296 0.0975 PhantomSens msc + 27 -1.99 -0.928 -198 0.0967 0.0102 0.00346 0.101 PhantomSens msc + 28 -2 -0.929 -198 0.0945 0.00219 0.00371 0.105 PhantomSens msc + 29 -2 -0.929 -198 0.0791 0.0153 0.00339 0.108 PhantomSens msc + 30 -2 -0.929 -198 0.0738 0.00537 0.00231 0.11 PhantomSens msc + 31 -2 -0.928 -198 0.0586 0.0152 0.00272 0.113 PhantomSens msc + 32 -2 -0.927 -198 0.0525 0.00603 0.00239 0.116 PhantomSens msc + 33 -2 -0.927 -198 0.0515 0.00105 0.000289 0.116 PhantomSens Transportation + 34 -2 -0.927 -198 0.0501 0.00138 0.000413 0.116 PhantomSens msc + 35 -2 -0.926 -198 0.0488 0.0013 0.000399 0.117 PhantomSens msc + 36 -2 -0.926 -198 0.0474 0.00145 0.000443 0.117 PhantomSens msc + 37 -2 -0.926 -198 0.0463 0.00108 0.000306 0.117 PhantomSens msc + 38 -2 -0.926 -198 0.0445 0.00178 0.000359 0.118 PhantomSens msc + 39 -2 -0.926 -198 0.0429 0.00157 0.000392 0.118 PhantomSens msc + 40 -2 -0.925 -198 0.0418 0.00111 0.000428 0.119 PhantomSens msc + 41 -2 -0.925 -198 0.0403 0.00152 0.000503 0.119 PhantomSens msc + 42 -2 -0.925 -198 0.039 0.00129 0.000389 0.119 PhantomSens msc + 43 -2 -0.925 -198 0.038 0.000995 0.000329 0.12 PhantomSens msc + 44 -2 -0.924 -198 0.037 0.00103 0.000392 0.12 PhantomSens msc + 45 -2 -0.924 -198 0.0366 0.000356 0.000362 0.121 PhantomSens msc + 46 -2 -0.924 -198 0.0355 0.00107 0.000375 0.121 PhantomSens msc + 47 -2 -0.923 -198 0.0343 0.00128 0.000421 0.121 PhantomSens msc + 48 -2 -0.923 -198 0.0331 0.00113 0.000369 0.122 PhantomSens msc + 49 -2 -0.923 -198 0.0323 0.00088 0.000451 0.122 PhantomSens msc + 50 -2 -0.923 -198 0.0297 0.00254 0.000374 0.122 PhantomSens msc + 51 -2 -0.922 -198 0.0277 0.00206 0.000374 0.123 PhantomSens msc + 52 -2 -0.922 -198 0.0264 0.00126 0.000309 0.123 PhantomSens msc + 53 -2 -0.922 -198 0.0251 0.00134 0.000371 0.124 PhantomSens msc + 54 -2 -0.922 -198 0.0237 0.00137 0.000399 0.124 PhantomSens msc + 55 -2 -0.922 -198 0.0214 0.00226 0.000388 0.124 PhantomSens msc + 56 -2 -0.922 -198 0.0187 0.00275 0.000411 0.125 PhantomSens msc + 57 -2 -0.922 -198 0.0147 0.00396 0.000374 0.125 PhantomSens msc + 58 -2 -0.922 -198 0.00999 0.00472 0.00038 0.126 PhantomSens msc + 59 -2 -0.921 -198 0.00461 0.00538 0.000402 0.126 PhantomSens msc + 60 -2 -0.921 -198 0 0.00461 0.000234 0.126 PhantomSens eIoni >>> Event 9 Run terminated. Run Summary Number of events processed : 10 - User=0.01s Real=0s Sys=0s + User=0.01s Real=0.01s Sys=0s PrimitiveScorer RUN PhantomSD,totalEDep - Number of entries 10 + Number of entries 11 copy no.: 970200 Run Value : 0.356 + copy no.: 989600 Run Value : 0.07559511107188759 copy no.: 989603 Run Value : 0.356 - copy no.: 989800 Run Value : 0.712 + copy no.: 989800 Run Value : 0.6364048889281124 copy no.: 990401 Run Value : 0.05394182216018539 copy no.: 1009601 Run Value : 0.0552461286491831 copy no.: 1009801 Run Value : 0.3007538713508169 @@ -1224,15 +1285,18 @@ Run Summary PrimitiveScorer RUN PhantomSD,protonNStep Number of entries 0 PrimitiveScorer RUN PhantomSD,chargedPassCellFlux - Number of entries 0 + Number of entries 2 + copy no.: 989600 Run Value : 0.001271104662181733 + copy no.: 989800 Run Value : 0.007069221777803213 PrimitiveScorer RUN PhantomSD,chargedCellFlux - Number of entries 10 + Number of entries 11 copy no.: 970200 Run Value : 0.01579545990714856 + copy no.: 989600 Run Value : 0.002564229466276565 copy no.: 989603 Run Value : 0.01579545990714856 - copy no.: 989800 Run Value : 0.02793730827856024 + copy no.: 989800 Run Value : 0.02484646621704845 copy no.: 990401 Run Value : 0.001261629842865205 copy no.: 1009601 Run Value : 0.001311691248042601 - copy no.: 1009801 Run Value : 0.01151826529071254 + copy no.: 1009801 Run Value : 0.01139623889349999 copy no.: 1010401 Run Value : 0.01128527936501595 copy no.: 1029600 Run Value : 0.01220049314686011 copy no.: 1029801 Run Value : 0.02691678446910657 diff --git a/examples/extended/runAndEvent/RE04/History b/examples/extended/runAndEvent/RE04/History index 55c7003cd5..89d1fcab62 100644 --- a/examples/extended/runAndEvent/RE04/History +++ b/examples/extended/runAndEvent/RE04/History @@ -13,6 +13,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Mar 29, 2016 J. Allison (exampleRE04-V10-02-00) +- vis.mac: Added "/vis/drawVolume worlds". + Nov 26, 2013 M. Asai (exampleRE04-V09-06-06) - Remove old local physics list and use FTFP_BERT and physics constructor for G4ParallelWOrldProcess. diff --git a/examples/extended/runAndEvent/RE04/exampleRE04.out b/examples/extended/runAndEvent/RE04/exampleRE04.out index 22b6aaa7b1..04073da6fd 100644 --- a/examples/extended/runAndEvent/RE04/exampleRE04.out +++ b/examples/extended/runAndEvent/RE04/exampleRE04.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -119,6 +121,14 @@ The materials defined are : G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 .... G4ScoringMessenger::MeshBinCommand - G4ScoringBox @@ -237,7 +247,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -251,7 +261,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -360,7 +370,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -393,7 +403,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -519,6 +529,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n diff --git a/examples/extended/runAndEvent/RE04/vis.mac b/examples/extended/runAndEvent/RE04/vis.mac index aa9551e113..3db107192c 100644 --- a/examples/extended/runAndEvent/RE04/vis.mac +++ b/examples/extended/runAndEvent/RE04/vis.mac @@ -8,7 +8,8 @@ # /vis/open OGL # -# draw scene +# draw all worlds +/vis/drawVolume worlds # /vis/viewer/zoom 1.4 # diff --git a/examples/extended/runAndEvent/RE05/exampleRE05.out b/examples/extended/runAndEvent/RE05/exampleRE05.out index f8fe782a51..bfa6a726bc 100644 --- a/examples/extended/runAndEvent/RE05/exampleRE05.out +++ b/examples/extended/runAndEvent/RE05/exampleRE05.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -13,6 +13,14 @@ <<< Reference Physics List QBBC G4HEPEvtInterface - pythia_event.data is open. G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -41,16 +49,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -179,7 +189,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -193,7 +203,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -302,7 +312,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -335,7 +345,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -462,6 +472,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -811,9 +826,9 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics ### Run 0 start. G4HEPEvtInterface - reading 484 HEPEvt particles from pythia_event.data. >>> Event 0 - 41 hits are stored in RE05TrackerHitsCollection. - 36 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.5084369643513 (GeV) + 54 hits are stored in RE05TrackerHitsCollection. + 40 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.8886227814276 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 755 HEPEvt particles from pythia_event.data. >>> Event 1 @@ -831,19 +846,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.52441927326911 (GeV) + Total energy deposition in calorimeter : 0.52059124505022 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 945 HEPEvt particles from pythia_event.data. >>> Event 4 - 75 hits are stored in RE05TrackerHitsCollection. - 57 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.1515133460186 (GeV) + 94 hits are stored in RE05TrackerHitsCollection. + 53 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 10.501142742043 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 837 HEPEvt particles from pythia_event.data. >>> Event 5 - 43 hits are stored in RE05TrackerHitsCollection. - 77 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.5595622419756 (GeV) + 41 hits are stored in RE05TrackerHitsCollection. + 7 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 2.9210981549606 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 603 HEPEvt particles from pythia_event.data. >>> Event 6 @@ -853,33 +868,33 @@ G4HEPEvtInterface - reading 603 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 627 HEPEvt particles from pythia_event.data. >>> Event 7 - 33 hits are stored in RE05TrackerHitsCollection. - 30 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.8102221083408 (GeV) + 26 hits are stored in RE05TrackerHitsCollection. + 22 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.7601414805 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 682 HEPEvt particles from pythia_event.data. >>> Event 8 - 78 hits are stored in RE05TrackerHitsCollection. - 56 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.3166223917724 (GeV) + 111 hits are stored in RE05TrackerHitsCollection. + 58 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 11.12624388392 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 330 HEPEvt particles from pythia_event.data. >>> Event 9 - 16 hits are stored in RE05TrackerHitsCollection. - 29 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.5946001373977 (GeV) + 31 hits are stored in RE05TrackerHitsCollection. + 24 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.1920581256151 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1060 HEPEvt particles from pythia_event.data. >>> Event 10 - 111 hits are stored in RE05TrackerHitsCollection. - 59 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.6500055453461 (GeV) + 96 hits are stored in RE05TrackerHitsCollection. + 67 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 10.635198397229 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1010 HEPEvt particles from pythia_event.data. >>> Event 11 0 hits are stored in RE05TrackerHitsCollection. 17 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.8654652209941 (GeV) + Total energy deposition in calorimeter : 2.8737515234005 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 517 HEPEvt particles from pythia_event.data. >>> Event 12 @@ -889,15 +904,15 @@ G4HEPEvtInterface - reading 517 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 815 HEPEvt particles from pythia_event.data. >>> Event 13 - 117 hits are stored in RE05TrackerHitsCollection. - 48 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.300211418357 (GeV) + 102 hits are stored in RE05TrackerHitsCollection. + 76 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.7914810827612 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 702 HEPEvt particles from pythia_event.data. >>> Event 14 - 57 hits are stored in RE05TrackerHitsCollection. - 38 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.7846200008583 (GeV) + 38 hits are stored in RE05TrackerHitsCollection. + 52 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 11.473363663398 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 568 HEPEvt particles from pythia_event.data. >>> Event 15 @@ -907,15 +922,15 @@ G4HEPEvtInterface - reading 568 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 405 HEPEvt particles from pythia_event.data. >>> Event 16 - 14 hits are stored in RE05TrackerHitsCollection. - 29 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.0684829592905 (GeV) + 22 hits are stored in RE05TrackerHitsCollection. + 34 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 3.9269154810901 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 533 HEPEvt particles from pythia_event.data. >>> Event 17 0 hits are stored in RE05TrackerHitsCollection. 5 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.95847652502261 (GeV) + Total energy deposition in calorimeter : 0.96796487748602 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 342 HEPEvt particles from pythia_event.data. >>> Event 18 @@ -925,15 +940,15 @@ G4HEPEvtInterface - reading 342 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 621 HEPEvt particles from pythia_event.data. >>> Event 19 - 45 hits are stored in RE05TrackerHitsCollection. - 41 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 14.756101619922 (GeV) + 31 hits are stored in RE05TrackerHitsCollection. + 30 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 9.8539962922015 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 906 HEPEvt particles from pythia_event.data. >>> Event 20 - 80 hits are stored in RE05TrackerHitsCollection. - 41 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.2273816217126 (GeV) + 60 hits are stored in RE05TrackerHitsCollection. + 44 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.164802334628 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 427 HEPEvt particles from pythia_event.data. >>> Event 21 @@ -943,9 +958,9 @@ G4HEPEvtInterface - reading 427 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 387 HEPEvt particles from pythia_event.data. >>> Event 22 - 45 hits are stored in RE05TrackerHitsCollection. - 34 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.6647585705548 (GeV) + 39 hits are stored in RE05TrackerHitsCollection. + 26 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.9228566471377 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 359 HEPEvt particles from pythia_event.data. >>> Event 23 @@ -963,7 +978,7 @@ G4HEPEvtInterface - reading 786 HEPEvt particles from pythia_event.data. >>> Event 25 0 hits are stored in RE05TrackerHitsCollection. 7 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.2122129417461 (GeV) + Total energy deposition in calorimeter : 1.2118435447096 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 661 HEPEvt particles from pythia_event.data. >>> Event 26 @@ -974,14 +989,14 @@ G4HEPEvtInterface - reading 661 HEPEvt particles from pythia_event.data. G4HEPEvtInterface - reading 673 HEPEvt particles from pythia_event.data. >>> Event 27 0 hits are stored in RE05TrackerHitsCollection. - 50 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.3572912179653 (GeV) + 43 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.0059908839209 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 694 HEPEvt particles from pythia_event.data. >>> Event 28 0 hits are stored in RE05TrackerHitsCollection. 8 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.4085686841626 (GeV) + Total energy deposition in calorimeter : 1.4073891898061 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 913 HEPEvt particles from pythia_event.data. >>> Event 29 @@ -991,15 +1006,15 @@ G4HEPEvtInterface - reading 913 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 425 HEPEvt particles from pythia_event.data. >>> Event 30 - 39 hits are stored in RE05TrackerHitsCollection. - 30 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 3.6119278303456 (GeV) + 45 hits are stored in RE05TrackerHitsCollection. + 32 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 7.6711264648037 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 466 HEPEvt particles from pythia_event.data. >>> Event 31 - 32 hits are stored in RE05TrackerHitsCollection. - 29 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.6842204919269 (GeV) + 36 hits are stored in RE05TrackerHitsCollection. + 37 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.5608127932149 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 954 HEPEvt particles from pythia_event.data. >>> Event 32 @@ -1009,15 +1024,15 @@ G4HEPEvtInterface - reading 954 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 575 HEPEvt particles from pythia_event.data. >>> Event 33 - 71 hits are stored in RE05TrackerHitsCollection. + 74 hits are stored in RE05TrackerHitsCollection. 15 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 3.9544247070263 (GeV) + Total energy deposition in calorimeter : 3.9285251895614 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1002 HEPEvt particles from pythia_event.data. >>> Event 34 - 126 hits are stored in RE05TrackerHitsCollection. + 84 hits are stored in RE05TrackerHitsCollection. 67 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 10.438830137442 (GeV) + Total energy deposition in calorimeter : 9.2907680729331 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 440 HEPEvt particles from pythia_event.data. >>> Event 35 @@ -1033,51 +1048,51 @@ G4HEPEvtInterface - reading 389 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 318 HEPEvt particles from pythia_event.data. >>> Event 37 - 21 hits are stored in RE05TrackerHitsCollection. - 36 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.6985402974286 (GeV) + 82 hits are stored in RE05TrackerHitsCollection. + 42 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.8616110089709 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 367 HEPEvt particles from pythia_event.data. >>> Event 38 - 36 hits are stored in RE05TrackerHitsCollection. - 45 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 8.8516853311576 (GeV) + 91 hits are stored in RE05TrackerHitsCollection. + 43 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.6061434713744 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1000 HEPEvt particles from pythia_event.data. >>> Event 39 0 hits are stored in RE05TrackerHitsCollection. 4 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.72172124469647 (GeV) + Total energy deposition in calorimeter : 0.72697012699334 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 253 HEPEvt particles from pythia_event.data. >>> Event 40 22 hits are stored in RE05TrackerHitsCollection. - 31 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.9540106192915 (GeV) + 36 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 11.714617932257 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 474 HEPEvt particles from pythia_event.data. >>> Event 41 - 38 hits are stored in RE05TrackerHitsCollection. - 27 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.1784937973783 (GeV) + 26 hits are stored in RE05TrackerHitsCollection. + 25 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.7600983332136 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 695 HEPEvt particles from pythia_event.data. >>> Event 42 - 72 hits are stored in RE05TrackerHitsCollection. - 45 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.2571162806004 (GeV) + 84 hits are stored in RE05TrackerHitsCollection. + 50 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.3621884983542 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 760 HEPEvt particles from pythia_event.data. >>> Event 43 0 hits are stored in RE05TrackerHitsCollection. 13 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.2407257094614 (GeV) + Total energy deposition in calorimeter : 2.2290719507185 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 328 HEPEvt particles from pythia_event.data. >>> Event 44 0 hits are stored in RE05TrackerHitsCollection. 10 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.763188950849 (GeV) + Total energy deposition in calorimeter : 1.7735399358433 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 574 HEPEvt particles from pythia_event.data. >>> Event 45 @@ -1087,21 +1102,21 @@ G4HEPEvtInterface - reading 574 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 420 HEPEvt particles from pythia_event.data. >>> Event 46 - 36 hits are stored in RE05TrackerHitsCollection. - 50 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.4702125088661 (GeV) + 67 hits are stored in RE05TrackerHitsCollection. + 39 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 7.9024093962295 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1092 HEPEvt particles from pythia_event.data. >>> Event 47 - 51 hits are stored in RE05TrackerHitsCollection. - 51 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.447223220233 (GeV) + 50 hits are stored in RE05TrackerHitsCollection. + 49 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.737510725986 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 708 HEPEvt particles from pythia_event.data. >>> Event 48 52 hits are stored in RE05TrackerHitsCollection. - 59 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 11.853856212007 (GeV) + 19 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 3.9822918008768 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 942 HEPEvt particles from pythia_event.data. >>> Event 49 @@ -1112,14 +1127,14 @@ G4HEPEvtInterface - reading 942 HEPEvt particles from pythia_event.data. G4HEPEvtInterface - reading 422 HEPEvt particles from pythia_event.data. >>> Event 50 22 hits are stored in RE05TrackerHitsCollection. - 39 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.2288615859879 (GeV) + 35 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.0140893340691 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 621 HEPEvt particles from pythia_event.data. >>> Event 51 - 45 hits are stored in RE05TrackerHitsCollection. - 40 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 8.0026633412184 (GeV) + 84 hits are stored in RE05TrackerHitsCollection. + 43 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.0870639702165 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 380 HEPEvt particles from pythia_event.data. >>> Event 52 @@ -1135,39 +1150,39 @@ G4HEPEvtInterface - reading 780 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 218 HEPEvt particles from pythia_event.data. >>> Event 54 - 20 hits are stored in RE05TrackerHitsCollection. - 34 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.7878720192178 (GeV) + 13 hits are stored in RE05TrackerHitsCollection. + 31 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.0513203278213 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 349 HEPEvt particles from pythia_event.data. >>> Event 55 - 47 hits are stored in RE05TrackerHitsCollection. - 39 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.3356073540615 (GeV) + 65 hits are stored in RE05TrackerHitsCollection. + 31 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.5127760041158 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 566 HEPEvt particles from pythia_event.data. >>> Event 56 - 29 hits are stored in RE05TrackerHitsCollection. - 32 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 3.6527661633049 (GeV) + 61 hits are stored in RE05TrackerHitsCollection. + 36 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 3.5964553776912 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 467 HEPEvt particles from pythia_event.data. >>> Event 57 - 33 hits are stored in RE05TrackerHitsCollection. - 38 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.6964269009536 (GeV) + 24 hits are stored in RE05TrackerHitsCollection. + 34 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.7100752699538 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 745 HEPEvt particles from pythia_event.data. >>> Event 58 - 90 hits are stored in RE05TrackerHitsCollection. - 36 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.0264245132623 (GeV) + 51 hits are stored in RE05TrackerHitsCollection. + 40 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 7.7131636228688 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 742 HEPEvt particles from pythia_event.data. >>> Event 59 0 hits are stored in RE05TrackerHitsCollection. 12 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.0937097621516 (GeV) + Total energy deposition in calorimeter : 2.1100070263916 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 822 HEPEvt particles from pythia_event.data. >>> Event 60 @@ -1179,13 +1194,13 @@ G4HEPEvtInterface - reading 324 HEPEvt particles from pythia_event.data. >>> Event 61 0 hits are stored in RE05TrackerHitsCollection. 1 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.11372058506263 (GeV) + Total energy deposition in calorimeter : 0.11853129206963 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 389 HEPEvt particles from pythia_event.data. >>> Event 62 - 45 hits are stored in RE05TrackerHitsCollection. - 81 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 66.491137894057 (GeV) + 25 hits are stored in RE05TrackerHitsCollection. + 10 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 3.1780100868898 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 624 HEPEvt particles from pythia_event.data. >>> Event 63 @@ -1197,19 +1212,19 @@ G4HEPEvtInterface - reading 340 HEPEvt particles from pythia_event.data. >>> Event 64 5 hits are stored in RE05TrackerHitsCollection. 9 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.1245125547731 (GeV) + Total energy deposition in calorimeter : 1.9893616907986 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 520 HEPEvt particles from pythia_event.data. >>> Event 65 - 81 hits are stored in RE05TrackerHitsCollection. - 41 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.5549797729879 (GeV) + 40 hits are stored in RE05TrackerHitsCollection. + 43 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 7.9955372785493 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 235 HEPEvt particles from pythia_event.data. >>> Event 66 - 12 hits are stored in RE05TrackerHitsCollection. + 14 hits are stored in RE05TrackerHitsCollection. 16 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.6140373077389 (GeV) + Total energy deposition in calorimeter : 2.0611616485371 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 759 HEPEvt particles from pythia_event.data. >>> Event 67 @@ -1220,14 +1235,14 @@ G4HEPEvtInterface - reading 759 HEPEvt particles from pythia_event.data. G4HEPEvtInterface - reading 865 HEPEvt particles from pythia_event.data. >>> Event 68 0 hits are stored in RE05TrackerHitsCollection. - 9 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.95540683636641 (GeV) + 8 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.92876810569358 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 264 HEPEvt particles from pythia_event.data. >>> Event 69 - 47 hits are stored in RE05TrackerHitsCollection. - 24 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.3065748198421 (GeV) + 50 hits are stored in RE05TrackerHitsCollection. + 27 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.8691357630197 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 785 HEPEvt particles from pythia_event.data. >>> Event 70 @@ -1239,49 +1254,49 @@ G4HEPEvtInterface - reading 618 HEPEvt particles from pythia_event.data. >>> Event 71 0 hits are stored in RE05TrackerHitsCollection. 4 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.61123067205294 (GeV) + Total energy deposition in calorimeter : 0.60073165626412 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 219 HEPEvt particles from pythia_event.data. >>> Event 72 - 76 hits are stored in RE05TrackerHitsCollection. - 40 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.27290568899 (GeV) + 75 hits are stored in RE05TrackerHitsCollection. + 44 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.5507903454733 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 480 HEPEvt particles from pythia_event.data. >>> Event 73 - 28 hits are stored in RE05TrackerHitsCollection. - 50 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.8150513925469 (GeV) + 31 hits are stored in RE05TrackerHitsCollection. + 49 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 9.5317978817472 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 614 HEPEvt particles from pythia_event.data. >>> Event 74 0 hits are stored in RE05TrackerHitsCollection. 4 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.58228661276403 (GeV) + Total energy deposition in calorimeter : 0.58085585686051 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 436 HEPEvt particles from pythia_event.data. >>> Event 75 - 13 hits are stored in RE05TrackerHitsCollection. - 61 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.9939093712254 (GeV) + 12 hits are stored in RE05TrackerHitsCollection. + 50 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.7727981469925 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 355 HEPEvt particles from pythia_event.data. >>> Event 76 - 12 hits are stored in RE05TrackerHitsCollection. - 28 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 3.8068609803996 (GeV) + 13 hits are stored in RE05TrackerHitsCollection. + 32 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.698178636173 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 865 HEPEvt particles from pythia_event.data. >>> Event 77 - 27 hits are stored in RE05TrackerHitsCollection. - 92 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 10.150994553197 (GeV) + 24 hits are stored in RE05TrackerHitsCollection. + 89 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 11.349172648395 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 752 HEPEvt particles from pythia_event.data. >>> Event 78 0 hits are stored in RE05TrackerHitsCollection. 4 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.66872204212469 (GeV) + Total energy deposition in calorimeter : 0.68487864392449 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 766 HEPEvt particles from pythia_event.data. >>> Event 79 @@ -1291,15 +1306,15 @@ G4HEPEvtInterface - reading 766 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 564 HEPEvt particles from pythia_event.data. >>> Event 80 - 31 hits are stored in RE05TrackerHitsCollection. - 46 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.3464821626813 (GeV) + 26 hits are stored in RE05TrackerHitsCollection. + 51 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.3049730265777 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 220 HEPEvt particles from pythia_event.data. >>> Event 81 - 27 hits are stored in RE05TrackerHitsCollection. - 39 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.2993051197014 (GeV) + 88 hits are stored in RE05TrackerHitsCollection. + 37 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.468422384904 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 823 HEPEvt particles from pythia_event.data. >>> Event 82 @@ -1309,45 +1324,45 @@ G4HEPEvtInterface - reading 823 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 914 HEPEvt particles from pythia_event.data. >>> Event 83 - 71 hits are stored in RE05TrackerHitsCollection. - 40 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.4709270557185 (GeV) + 74 hits are stored in RE05TrackerHitsCollection. + 46 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.6563541122251 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 232 HEPEvt particles from pythia_event.data. >>> Event 84 - 39 hits are stored in RE05TrackerHitsCollection. - 35 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 10.861957613421 (GeV) + 33 hits are stored in RE05TrackerHitsCollection. + 38 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 11.224692656033 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1034 HEPEvt particles from pythia_event.data. >>> Event 85 - 132 hits are stored in RE05TrackerHitsCollection. - 91 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 12.977603090207 (GeV) + 151 hits are stored in RE05TrackerHitsCollection. + 84 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 10.729871389977 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 673 HEPEvt particles from pythia_event.data. >>> Event 86 - 37 hits are stored in RE05TrackerHitsCollection. - 36 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.6822662934239 (GeV) + 55 hits are stored in RE05TrackerHitsCollection. + 28 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.3791140859778 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 246 HEPEvt particles from pythia_event.data. >>> Event 87 - 35 hits are stored in RE05TrackerHitsCollection. - 36 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 3.7199081698857 (GeV) + 37 hits are stored in RE05TrackerHitsCollection. + 43 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.7662525797425 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 1139 HEPEvt particles from pythia_event.data. >>> Event 88 0 hits are stored in RE05TrackerHitsCollection. 7 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.3294825192629 (GeV) + Total energy deposition in calorimeter : 1.3396185578612 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 991 HEPEvt particles from pythia_event.data. >>> Event 89 - 119 hits are stored in RE05TrackerHitsCollection. - 53 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.1598621706806 (GeV) + 101 hits are stored in RE05TrackerHitsCollection. + 56 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 9.5616731442894 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 430 HEPEvt particles from pythia_event.data. >>> Event 90 @@ -1357,21 +1372,21 @@ G4HEPEvtInterface - reading 430 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 232 HEPEvt particles from pythia_event.data. >>> Event 91 - 35 hits are stored in RE05TrackerHitsCollection. - 35 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 7.5759524631424 (GeV) + 25 hits are stored in RE05TrackerHitsCollection. + 33 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.2316363801688 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 410 HEPEvt particles from pythia_event.data. >>> Event 92 0 hits are stored in RE05TrackerHitsCollection. 5 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.99180741802629 (GeV) + Total energy deposition in calorimeter : 0.98633947373582 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 680 HEPEvt particles from pythia_event.data. >>> Event 93 54 hits are stored in RE05TrackerHitsCollection. - 50 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.1274038373616 (GeV) + 48 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.073879977837 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 259 HEPEvt particles from pythia_event.data. >>> Event 94 @@ -1382,14 +1397,14 @@ G4HEPEvtInterface - reading 259 HEPEvt particles from pythia_event.data. G4HEPEvtInterface - reading 358 HEPEvt particles from pythia_event.data. >>> Event 95 16 hits are stored in RE05TrackerHitsCollection. - 27 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.4372700628233 (GeV) + 33 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.0215268163867 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 546 HEPEvt particles from pythia_event.data. >>> Event 96 0 hits are stored in RE05TrackerHitsCollection. 3 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.51440964385132 (GeV) + Total energy deposition in calorimeter : 0.5151867854752 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 611 HEPEvt particles from pythia_event.data. >>> Event 97 @@ -1399,20 +1414,20 @@ G4HEPEvtInterface - reading 611 HEPEvt particles from pythia_event.data. 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 298 HEPEvt particles from pythia_event.data. >>> Event 98 - 34 hits are stored in RE05TrackerHitsCollection. - 33 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.3671448597715 (GeV) + 43 hits are stored in RE05TrackerHitsCollection. + 27 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.5370256736795 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 755 HEPEvt particles from pythia_event.data. >>> Event 99 - 66 hits are stored in RE05TrackerHitsCollection. - 65 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.7220728622893 (GeV) + 64 hits are stored in RE05TrackerHitsCollection. + 57 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 9.0234175331601 (GeV) 1 hits are stored in RE05MuonHitsCollection. Run terminated. Run Summary Number of events processed : 100 - User=24.62s Real=24.66s Sys=0.03s + User=12.31s Real=12.49s Sys=0.08s # G4 kernel has come to Quit state. UserDetectorConstruction deleted. @@ -1424,28 +1439,28 @@ RunManager is deleting RunManagerKernel. G4SDManager deleted. EventManager deleted. Units table cleared. -Total navigation history collections cleaned: 492 +Total navigation history collections cleaned: 477 ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.787 MB +Pool ID '20G4NavigationLevelRep', size : 0.764 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.817 MB +Pool ID '17G4DynamicParticle', size : 0.822 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.157 MB Pool ID '16G4HEPEvtParticle', size : 0.0269 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.4 MB -Pool ID '18G4TouchableHistory', size : 0.0586 MB +Pool ID '7G4Track', size : 1.41 MB +Pool ID '18G4TouchableHistory', size : 0.0577 MB Pool ID '15G4CountedObjectIvE', size : 0.00769 MB Pool ID '12G4Trajectory', size : 0.0231 MB -Pool ID '17G4TrajectoryPoint', size : 0.191 MB -Pool ID '14RE05TrackerHit', size : 0.00577 MB -Pool ID '18RE05CalorimeterHit', size : 0.0135 MB +Pool ID '17G4TrajectoryPoint', size : 0.183 MB +Pool ID '14RE05TrackerHit', size : 0.00673 MB +Pool ID '18RE05CalorimeterHit', size : 0.0125 MB Pool ID '11RE05MuonHit', size : 0.000961 MB Pool ID '21G4TrajectoryContainer', size : 0.000961 MB -Pool ID '17G4ReactionProduct', size : 0.0144 MB -Pool ID '10G4Fragment', size : 0.00577 MB +Pool ID '17G4ReactionProduct', size : 0.0135 MB +Pool ID '10G4Fragment', size : 0.00481 MB Number of memory pools allocated: 20 of which, static: 0 Dynamic pools deleted: 20 / Total memory freed: 3.5 MB ============================================================ diff --git a/examples/extended/runAndEvent/RE06/exampleRE06.cc b/examples/extended/runAndEvent/RE06/exampleRE06.cc index 907a4557ed..3e3997d33d 100644 --- a/examples/extended/runAndEvent/RE06/exampleRE06.cc +++ b/examples/extended/runAndEvent/RE06/exampleRE06.cc @@ -26,7 +26,7 @@ /// \file RE06/exampleRE06.cc /// \brief Main program of the RE06 example // -// $Id: exampleRE06.cc 86969 2014-11-21 11:54:05Z gcosmo $ +// $Id: exampleRE06.cc 97979 2016-06-30 09:36:20Z gcosmo $ // // -------------------------------------------------------------- // GEANT 4 - example RE06 diff --git a/examples/extended/runAndEvent/RE06/exampleRE06.out b/examples/extended/runAndEvent/RE06/exampleRE06.out index 1a68a7f193..6cc7f7fb19 100644 --- a/examples/extended/runAndEvent/RE06/exampleRE06.out +++ b/examples/extended/runAndEvent/RE06/exampleRE06.out @@ -4,7 +4,7 @@ ############################################ ************************************************************* - Geant4 version Name: geant4-10-02-ref-00 (4-December-2015) + Geant4 version Name: geant4-10-03-beta-01 (30-June-2016) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -39,16 +39,18 @@ Registering model factories... You have successfully registered the following model factories. Registered model factories: generic - drawByCharge - drawByParticleID - drawByOriginVolume drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByTouchedVolume Registered filter factories: - chargeFilter - particleFilter - originVolumeFilter attributeFilter + chargeFilter + originVolumeFilter + particleFilter + touchedVolumeFilter You have successfully registered the following user vis actions. Run Duration User Vis Actions: none @@ -73,7 +75,7 @@ G4SDManager::AddNewCollection : the collection is G4SDManager::AddNewCollection : the collection is registered at 7 G4SDManager::AddNewCollection : the collection is registered at 8 G4SDManager::AddNewCollection : the collection is registered at 9 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 10 G4SDManager::AddNewCollection : the collection is registered at 11 G4SDManager::AddNewCollection : the collection is registered at 12 @@ -83,7 +85,7 @@ G4SDManager::AddNewCollection : the collection is G4SDManager::AddNewCollection : the collection is registered at 16 G4SDManager::AddNewCollection : the collection is registered at 17 G4SDManager::AddNewCollection : the collection is registered at 18 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 19 G4SDManager::AddNewCollection : the collection is registered at 20 G4SDManager::AddNewCollection : the collection is registered at 21 @@ -93,7 +95,7 @@ G4SDManager::AddNewCollection : the collection is G4SDManager::AddNewCollection : the collection is registered at 25 G4SDManager::AddNewCollection : the collection is registered at 26 G4SDManager::AddNewCollection : the collection is registered at 27 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 28 G4SDManager::AddNewCollection : the collection is registered at 29 G4SDManager::AddNewCollection : the collection is registered at 30 @@ -103,7 +105,7 @@ G4SDManager::AddNewCollection : the collection is G4SDManager::AddNewCollection : the collection is registered at 34 G4SDManager::AddNewCollection : the collection is registered at 35 G4SDManager::AddNewCollection : the collection is registered at 36 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 37 G4SDManager::AddNewCollection : the collection is registered at 38 G4SDManager::AddNewCollection : the collection is registered at 39 @@ -113,7 +115,7 @@ G4SDManager::AddNewCollection : the collection is G4SDManager::AddNewCollection : the collection is registered at 43 G4SDManager::AddNewCollection : the collection is registered at 44 G4SDManager::AddNewCollection : the collection is registered at 45 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 46 G4SDManager::AddNewCollection : the collection is registered at 47 G4SDManager::AddNewCollection : the collection is registered at 48 @@ -123,32 +125,40 @@ G4SDManager::AddNewCollection : the collection is G4SDManager::AddNewCollection : the collection is registered at 52 G4SDManager::AddNewCollection : the collection is registered at 53 G4SDManager::AddNewCollection : the collection is registered at 54 -New sensitive detector is registored at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 55 G4SDManager::AddNewCollection : the collection is registered at 56 G4SDManager::AddNewCollection : the collection is registered at 57 G4SDManager::AddNewCollection : the collection is registered at 58 G4SDManager::AddNewCollection : the collection is registered at 59 G4SDManager::AddNewCollection : the collection is registered at 60 -New sensitive detector is registored at / -New sensitive detector is registored at / +New sensitive detector is registered at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 61 G4SDManager::AddNewCollection : the collection is registered at 62 G4SDManager::AddNewCollection : the collection is registered at 63 G4SDManager::AddNewCollection : the collection is registered at 64 G4SDManager::AddNewCollection : the collection is registered at 65 G4SDManager::AddNewCollection : the collection is registered at 66 -New sensitive detector is registored at / -New sensitive detector is registored at / +New sensitive detector is registered at / +New sensitive detector is registered at / G4SDManager::AddNewCollection : the collection is registered at 67 G4SDManager::AddNewCollection : the collection is registered at 68 G4SDManager::AddNewCollection : the collection is registered at 69 G4SDManager::AddNewCollection : the collection is registered at 70 G4SDManager::AddNewCollection : the collection is registered at 71 G4SDManager::AddNewCollection : the collection is registered at 72 -New sensitive detector is registored at / -New sensitive detector is registored at / +New sensitive detector is registered at / +New sensitive detector is registered at / G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Type of de-excitation inverse x-section 3 +Min excitation energy (keV) 0.1 +Level density (1/MeV) 0.1 +======================================================================= ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Warning : Region does not have specific production cuts, even though it appears in the current tracking world. @@ -320,7 +330,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -334,7 +344,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -443,7 +453,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -476,7 +486,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -602,6 +612,11 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1 --------------------------------------------------- Hadronic Processes for He3 + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J + Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV + Process: He3Inelastic Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n Model: FTFP: 2 GeV/n ---> 100 TeV/n @@ -930,7 +945,7 @@ Index : 6 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=2.21s Real=2.43s Sys=0.22s + User=5.25s Real=5.94s Sys=0.67s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -938,118 +953,118 @@ Region : Calor-A Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 2.65087 GeV Gap 344.222 MeV + Absorber 7.57744 GeV Gap 763.198 MeV Number of secondaries in an event : - gamma in Absorber 694.2 in Gap 47.5 - e- in Absorber 1180.2 in Gap 134.4 - e+ in Absorber 70.5 in Gap 2.1 + gamma in Absorber 3438.4 in Gap 184.1 + e- in Absorber 5641.7 in Gap 521.9 + e+ in Absorber 375.6 in Gap 11.8 Minimum kinetic energy of generated secondaries : - gamma in Absorber 101.989 keV in Gap 6.20295 keV - e- in Absorber 21.1538 eV in Gap 176.081 eV - e+ in Absorber 32.2066 keV in Gap 388.824 keV + gamma in Absorber 64.4574 keV in Gap 6.20137 keV + e- in Absorber 91.3932 eV in Gap 113.217 eV + e+ in Absorber 4.34393 keV in Gap 24.9626 keV Total track length of e+/e- in an event : - Absorber 92.2354 cm Gap 72.5392 cm + Absorber 4.40818 m Gap 2.74634 m Total number of steps of e+/e- in an event : - Absorber 2919.7 Gap 476.3 + Absorber 13947 Gap 1874.9 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 2805.26 669.3 992.9 60.2 1433.15 2716.5 - 1 112.337 44.1 176.8 7.4 139.921 387.7 - 2 44.0356 18 70.7 3.2 41.6429 148.8 - 3 14.4781 3.7 33.3 0.6 12.2893 60.5 - 4 7.52685 2.3 16.9 0.3 6.07717 30.8 - 5 3.94216 1.6 9.4 0.3 4.37261 16 - 6 2.95425 1.4 6 0.2 5.09778 13.8 - 7 1.84266 0.5 4.1 0.1 1.439 10.7 - 8 1.13396 0.4 1.6 0.1 1.81251 4.6 - 9 0.369395 0 0.9 0 0.993874 3 - 10 0.530675 0.2 0.9 0.1 0.479698 1.5 - 11 0.126683 0 0.3 0 0.125024 0.6 - 12 0.00131681 0 0 0 0 0 - 13 0.14192 0 0.4 0 0.0634707 0.6 - 14 0.391791 0.2 0.4 0.1 0.277682 0.9 - 15 0.00412457 0 0 0 0 0 - 16 0.00291082 0 0 0 0 0 - 17 0.00385987 0 0 0 0 0 - 18 0.00244775 0 0 0 0 0 - 19 0.00352858 0 0 0 0 0 + 0 7357.3 3260.4 4563.1 323 6158.92 12268.4 + 1 572.344 216.5 877.2 37 591.378 1954.8 + 2 201.692 72.2 348.2 13.5 209.91 771.1 + 3 100.24 36.8 173.8 7.2 86.5445 384.1 + 4 56.2832 20.8 92.5 4.1 53.5926 218 + 5 20.177 6.9 41.6 1.1 21.1889 88.1 + 6 15.2793 3.9 27.3 0.9 14.0709 60.2 + 7 6.63014 1.5 13.8 0.2 6.93995 29.3 + 8 4.18318 1.5 9.9 0 4.09784 18.4 + 9 3.03496 0.9 6.5 0.3 4.59135 11.7 + 10 1.3612 0.3 2.9 0.1 1.35237 5 + 11 0.614144 0 2.1 0 0.730044 3.4 + 12 0.255499 0 0.8 0 0.433076 1.2 + 13 0.114434 0.1 0.7 0 0.0423722 1.2 + 14 0.279674 0.1 0.8 0 0.281675 2 + 15 0.13484 0 0.8 0 0.0614117 1.2 + 16 0.214151 0.2 0.6 0 0.121981 1.1 + 17 0.175007 0.3 0.5 0 0.0769303 1.2 + 18 0.142676 0 0.3 0 0.0526853 0.6 + 19 0.179674 0.1 0.2 0 0.133073 0.9 ############################################################ Region : Calor-B Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 3.47414 GeV Gap 394.042 MeV + Absorber 2.37751 GeV Gap 319.166 MeV Number of secondaries in an event : - gamma in Absorber 1130.6 in Gap 61 - e- in Absorber 1886.8 in Gap 184.5 - e+ in Absorber 120.2 in Gap 3.3 + gamma in Absorber 531 in Gap 38.5 + e- in Absorber 915.5 in Gap 113.8 + e+ in Absorber 52.2 in Gap 1.8 Minimum kinetic energy of generated secondaries : - gamma in Absorber 101.86 keV in Gap 6.20853 keV - e- in Absorber 139.185 eV in Gap 256.631 eV - e+ in Absorber 18.1193 keV in Gap 580.119 keV + gamma in Absorber 101.867 keV in Gap 6.33145 keV + e- in Absorber 102.915 eV in Gap 583.906 eV + e+ in Absorber 35.5164 keV in Gap 302.122 keV Total track length of e+/e- in an event : - Absorber 1.50647 m Gap 96.178 cm + Absorber 73.1542 cm Gap 59.4716 cm Total number of steps of e+/e- in an event : - Absorber 4648.8 Gap 660.1 + Absorber 2251.6 Gap 428.1 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3539.02 1072.9 1555.8 103.7 2129.28 4181.6 - 1 210.304 81.3 303.6 12.5 225.449 690.1 - 2 62.9213 19.6 105.6 4.5 59.4934 221.5 - 3 26.5223 8.6 46.4 1.1 22.6848 98.2 - 4 12.2906 4.6 27.3 0.8 10.1465 47.9 - 5 5.77116 1.8 11.3 0.2 6.77134 23.1 - 6 3.07101 0.7 6.8 0.2 3.0064 13.5 - 7 4.22358 1.3 6.8 0.3 4.3795 12.2 - 8 1.09628 0.2 2.7 0.1 1.36376 7.1 - 9 1.3448 0.5 2.5 0.1 1.17244 4.5 - 10 0.6805 0 0.6 0 2.05944 4.3 - 11 0.345533 0 0.8 0 0.202206 2.4 - 12 0.0682698 0 0.3 0 0.0200879 0.5 - 13 0.39002 0.1 0.2 0 2.02414 1 - 14 0.0451821 0 0.2 0 0.0148586 0.3 - 15 0 0 0 0 0 0 - 16 0 0 0 0 0 0 - 17 0 0 0 0 0 0 - 18 0.0371037 0 0.3 0 0.0374407 0.3 - 19 0.0444415 0 0.1 0 0.14404 0.4 + 0 2542.94 515.5 776.5 45.1 1169.87 2140.9 + 1 92.1545 33.7 141.2 5 98.2302 300.4 + 2 28.9835 8.7 50.2 1.9 25.4105 110.6 + 3 13.9547 5 25.3 0.8 13.1981 58.7 + 4 9.55408 4 16.1 0.8 7.92351 31.4 + 5 3.75705 1.4 8.1 0.2 3.98283 15.5 + 6 2.40012 0.5 5.7 0.1 3.07554 9.7 + 7 1.18079 0.5 2.6 0.1 1.38029 4.7 + 8 0.78166 0.2 1.7 0 2.27815 3.6 + 9 0.227787 0 0.6 0 0.149577 2.1 + 10 0.116332 0 0.4 0 0.0741246 0.6 + 11 0 0 0 0 0 0 + 12 0.0217942 0 0.1 0 0.0042911 0.2 + 13 0.409515 0 0.6 0 0.544999 1.1 + 14 1.66971e-05 0 0 0 0 0 + 15 0.197932 0 0.2 0 0.135601 0.2 + 16 0.000102024 0 0 0 0 0 + 17 9.42752e-05 0 0 0 0 0 + 18 3.39635e-05 0 0 0 0 0 + 19 0 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 2.97132 GeV Gap 299.169 MeV + Absorber 3.03436 GeV Gap 311.856 MeV Number of secondaries in an event : - gamma in Absorber 165.5 in Gap 16.7 - e- in Absorber 299.1 in Gap 25.5 - e+ in Absorber 46.3 in Gap 2.1 + gamma in Absorber 182.5 in Gap 18 + e- in Absorber 326.5 in Gap 35 + e+ in Absorber 50.2 in Gap 2.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 186.11 keV in Gap 56.737 keV - e- in Absorber 317.216 eV in Gap 434.408 eV - e+ in Absorber 5.07882 keV in Gap 262.443 keV + gamma in Absorber 52.4272 keV in Gap 57.1906 keV + e- in Absorber 193.634 eV in Gap 1.11859 keV + e+ in Absorber 45.3653 keV in Gap 338.473 keV Total track length of e+/e- in an event : - Absorber 48.1011 cm Gap 30.7217 cm + Absorber 54.0934 cm Gap 34.6259 cm Total number of steps of e+/e- in an event : - Absorber 838 Gap 128.2 + Absorber 929.9 Gap 152.4 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3174.81 163.9 225.1 41 677.533 727.9 - 1 59.8649 11.5 54.8 4.6 66.3263 134.9 - 2 13.8423 3 18.9 1.5 10.8419 36 - 3 11.1727 2 11.8 0.6 20.4302 33.4 - 4 5.74015 1.4 7.5 0.5 7.22782 15 - 5 2.1642 0 2.9 0 1.848 6.5 - 6 1.71641 0.2 1.6 0.1 2.9249 8.1 - 7 0.433233 0 1 0 0.600529 2.6 - 8 0.164903 0 0.3 0 0.0919897 0.5 - 9 0.221801 0 0.2 0 0.146464 0.3 - 10 0 0 0 0 0 0 - 11 0.367247 0.2 0.5 0.1 0.257051 1 + 0 3236.74 182.2 251.8 46 772.14 827.9 + 1 65.5991 11.7 58.3 3.8 70.8037 146.7 + 2 23.8207 4.2 24.6 1.6 28.5641 54.9 + 3 8.25584 1.2 10.6 0.6 5.9427 21.5 + 4 4.53968 0.4 7 0.2 4.02876 15.3 + 5 2.48791 0.2 2.8 0.1 2.40857 5.2 + 6 0.701197 0 1.5 0 0.438104 2.2 + 7 1.22334 0.2 1.6 0.1 0.761558 2.6 + 8 1.02821 0.2 1.3 0.1 0.819459 2.4 + 9 0.867343 0.2 1.1 0.1 0.6824 1.9 + 10 0.133591 0 0.6 0 0.0487028 1 + 11 0 0 0 0 0 0 12 0 0 0 0 0 0 - 13 0 0 0 0 0 0 + 13 0.816997 0 0.3 0 0.554652 0.7 14 0 0 0 0 0 0 15 0 0 0 0 0 0 16 0 0 0 0 0 0 @@ -1271,7 +1286,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1285,7 +1300,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -1394,7 +1409,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1427,7 +1442,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -1573,7 +1588,7 @@ Index : 6 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=2.93s Real=3.26s Sys=0.3s + User=4s Real=4.46s Sys=0.45s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -1581,124 +1596,124 @@ Region : Calor-A Production thresholds : gamma 200 um e- 200 um e+ 200 um Energy deposition in an event : - Absorber 2.53685 GeV Gap 322.226 MeV + Absorber 4.1393 GeV Gap 486.094 MeV Number of secondaries in an event : - gamma in Absorber 831.6 in Gap 41.4 - e- in Absorber 1471.7 in Gap 202.4 - e+ in Absorber 64.2 in Gap 1.3 + gamma in Absorber 1977.2 in Gap 107.8 + e- in Absorber 3300.7 in Gap 386.6 + e+ in Absorber 162.5 in Gap 5.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 47.1844 keV in Gap 2.8518 keV - e- in Absorber 29.3569 eV in Gap 16.783 eV - e+ in Absorber 8.71238 keV in Gap 223.163 keV + gamma in Absorber 47.19 keV in Gap 2.81023 keV + e- in Absorber 16.5632 eV in Gap 7.38878 eV + e+ in Absorber 10.3472 keV in Gap 165.133 keV Total track length of e+/e- in an event : - Absorber 92.9771 cm Gap 64.598 cm + Absorber 2.09591 m Gap 1.46036 m Total number of steps of e+/e- in an event : - Absorber 3237.5 Gap 554.3 + Absorber 7790.6 Gap 1192.6 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 2690.13 796.5 1368.6 54.7 1380.71 3170.3 - 1 96.2473 46.1 165.8 5.9 122.49 358.9 - 2 38.0753 14.9 66.7 2.6 42.2553 128.7 - 3 17.3839 7.6 35.4 0.9 15.2453 69.1 - 4 8.21752 3.9 17.9 0.7 6.5478 30.7 - 5 3.67146 1.7 8.3 0.4 4.0751 13.7 - 6 1.80666 0.6 3.6 0 1.35084 6 - 7 1.8981 0.9 3.9 0.1 1.2257 6.4 - 8 0.266129 0 0.8 0 0.294581 1.2 - 9 0.508182 0.4 1.3 0.1 0.356887 2 - 10 0.392958 0.2 1 0.1 0.910456 1.8 - 11 0.0433932 0 0.1 0 0.0186798 0.2 - 12 0.000219365 0 0 0 0 0 - 13 0.00196511 0 0 0 0 0 - 14 0.00328983 0 0 0 0 0 - 15 0.00672825 0 0 0 0 0 - 16 0.263213 0.1 0.3 0 0.191762 0.7 - 17 0.00149457 0 0 0 0 0 - 18 0.147651 0.1 0.4 0 0.0732716 2.1 - 19 0.000436085 0 0 0 0 0 + 0 4195.19 1871.2 2888.5 141 3107.67 7287.4 + 1 262.755 135.9 449 15.5 292.416 986.8 + 2 83.4063 38.3 169.1 5.3 73.001 347.1 + 3 38.7848 19.2 81.7 3 35.4433 164.7 + 4 20.4725 8.7 42.1 1.1 19.6103 86.4 + 5 10.9905 5.1 24.7 0.8 12.2598 51.3 + 6 4.65481 2.2 10.6 0.4 5.69435 19.3 + 7 3.2392 1.2 6.7 0.1 3.63904 14.5 + 8 1.80522 0.6 5 0.2 1.31656 8.9 + 9 1.11387 1.4 2.8 0.2 0.817766 5 + 10 1.27701 0.4 3.4 0.1 2.66729 6.4 + 11 0.552481 0.5 1.1 0.1 0.285742 1.5 + 12 0.403509 0 0.7 0 0.234618 1 + 13 0.144575 0.2 0.4 0 0.0253821 0.6 + 14 0.0387354 0 0.3 0 0.0299047 0.3 + 15 0.0221246 0 0.1 0 0.0236614 0.1 + 16 0.0333825 0 0 0 0 0 + 17 0.0184163 0 0 0 0 0 + 18 0.106347 0 0.2 0 0.0464441 0.2 + 19 0.10382 0 0.3 0 0.160887 0.5 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 3.43609 GeV Gap 416.948 MeV + Absorber 5.3759 GeV Gap 598.753 MeV Number of secondaries in an event : - gamma in Absorber 1045 in Gap 68 - e- in Absorber 1746.5 in Gap 179.2 - e+ in Absorber 119.7 in Gap 4.5 + gamma in Absorber 2067 in Gap 122.8 + e- in Absorber 3422.6 in Gap 313.4 + e+ in Absorber 240.1 in Gap 7.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 120.914 keV in Gap 8.77306 keV - e- in Absorber 184.724 eV in Gap 108.102 eV - e+ in Absorber 1.3699 keV in Gap 47.1763 keV + gamma in Absorber 69.1877 keV in Gap 8.73928 keV + e- in Absorber 106.196 eV in Gap 107.905 eV + e+ in Absorber 3.53766 keV in Gap 298.529 keV Total track length of e+/e- in an event : - Absorber 1.41488 m Gap 1.04326 m + Absorber 2.77041 m Gap 1.91896 m Total number of steps of e+/e- in an event : - Absorber 4271.9 Gap 648.3 + Absorber 8518.2 Gap 1177.4 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3530.6 1008.3 1417.6 104.4 2111.95 3832.3 - 1 190.207 66.4 271.5 12.1 204.244 589 - 2 72.5006 23.6 128.2 4.1 77.3476 274.8 - 3 27.5682 5.9 46.2 1.6 30.1567 95 - 4 15.2702 4.8 28.5 0.9 14.4007 54.6 - 5 6.55698 2.3 13.3 0.7 5.83978 35 - 6 3.77163 0.7 8.3 0.2 3.36851 15.2 - 7 3.3637 0.5 6 0.1 2.88925 10.9 - 8 0.559789 0 1 0 0.822668 1.7 - 9 1.39058 0.2 2.3 0 3.33608 4.8 - 10 0.0840981 0 0.5 0 0.0464166 0.5 - 11 0.292885 0 0.5 0 0.632811 0.9 - 12 0.0255263 0.1 0.2 0 0.0554016 0.4 - 13 0.120751 0 0.3 0 0.0616149 0.8 - 14 0.174808 0 0.2 0 0.756159 0.8 - 15 0.0131277 0 0.2 0 0.0157569 0.2 - 16 0.432008 0.2 0.3 0.1 2.07265 1.9 - 17 0.0700018 0 0.5 0 0.13905 1.2 - 18 0.0321403 0 0.1 0 0.0101637 0.2 - 19 4.95603e-05 0 0 0 0 0 + 0 5344.36 1974.1 2735.7 205.6 4031.69 7499.3 + 1 380.973 135.9 555.5 25.6 422.781 1262.3 + 2 136.135 45.4 223.5 9 124.123 464.7 + 3 53.0931 17.1 100.6 3.8 48.2183 206.1 + 4 26.7931 8.6 50.3 1.8 25.5265 101.4 + 5 12.6394 3.2 24.9 0.6 11.5679 55.5 + 6 7.86455 2.5 16.2 0.6 9.56303 39.1 + 7 6.31402 1.6 11.9 0.3 7.60117 31.7 + 8 1.63953 0.5 5.5 0.1 1.60204 9.6 + 9 1.35552 0.5 3.8 0.1 1.08473 7.4 + 10 0.411481 0.1 1.6 0 0.521762 5.4 + 11 0.939315 0.2 2.1 0.1 1.11711 4.3 + 12 0.503445 0 1.9 0 1.17677 3.7 + 13 0.785825 0.1 1.1 0 1.71778 2.3 + 14 0.391906 0 1 0 0.239594 1.3 + 15 0.0176824 0 0 0 0 0 + 16 0.0759421 0 0.1 0 0.0273231 0.5 + 17 0.28223 0 0.3 0 0.819222 1 + 18 0.026839 0 0 0 0 0 + 19 0.0173792 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.969 GeV Gap 429.899 MeV + Absorber 2.6792 GeV Gap 316.116 MeV Number of secondaries in an event : - gamma in Absorber 805.5 in Gap 51.2 - e- in Absorber 1498.2 in Gap 141.1 - e+ in Absorber 141.8 in Gap 5.1 + gamma in Absorber 373.3 in Gap 25.3 + e- in Absorber 704 in Gap 61.9 + e+ in Absorber 64.3 in Gap 1.7 Minimum kinetic energy of generated secondaries : - gamma in Absorber 100.004 keV in Gap 27.1328 keV - e- in Absorber 114.689 eV in Gap 117.714 eV - e+ in Absorber 1.28061 keV in Gap 213.462 keV + gamma in Absorber 160.811 keV in Gap 27.4717 keV + e- in Absorber 409.127 eV in Gap 104.001 eV + e+ in Absorber 17.0589 keV in Gap 214.361 keV Total track length of e+/e- in an event : - Absorber 1.55581 m Gap 96.7972 cm + Absorber 72.8061 cm Gap 45.3467 cm Total number of steps of e+/e- in an event : - Absorber 3670.5 Gap 517.1 + Absorber 1724.3 Gap 238.6 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 4015.7 780 1121.7 124.4 2146.79 3084.5 - 1 231.778 49 282.3 13.6 241.85 620.7 - 2 84.4601 15.3 119.6 4.6 73.4028 236.9 - 3 32.6264 5.9 52.7 2 30.3426 105.4 - 4 14.8001 2.4 26.7 0.9 13.307 70.1 - 5 8.03087 1.8 12.5 0.8 7.08431 24 - 6 4.79621 0.7 10 0.3 3.79379 19.2 - 7 2.23253 0.5 4.2 0.2 2.68139 7.9 - 8 1.25358 0.1 2.8 0 0.895416 4.1 - 9 0.782883 0.3 1.9 0 0.777346 3.3 - 10 0.538959 0.3 1.2 0 1.36178 2.8 - 11 0.192252 0 0.7 0 0.168346 1.8 - 12 0.757238 0.2 1.1 0 0.704668 1.9 - 13 0.291094 0 0.3 0 0.190242 1.7 - 14 0.450446 0.2 1.1 0.1 0.301422 2.1 - 15 0.0158475 0 0.2 0 0.00287223 0.3 - 16 0.000663997 0 0 0 0 0 - 17 0.175783 0 0.2 0 0.104092 0.8 - 18 0.0154616 0 0.1 0 0.029607 0.1 - 19 0.00010259 0 0 0 0 0 + 0 2809.69 360 524.7 55 992.671 1436.3 + 1 110.075 24.3 127.2 6.7 116.087 287.1 + 2 40.8161 8.9 55.2 2.5 37.26 123.2 + 3 16.8118 3.1 26.1 1 17.9231 58.2 + 4 7.12436 0.8 12.5 0.3 7.38554 21.4 + 5 4.49475 0.5 8.7 0.2 3.55995 14.7 + 6 1.87447 0.1 3.2 0 2.307 6.6 + 7 1.10159 0.1 2.3 0 1.24029 4.8 + 8 0.594289 0.2 1.2 0.1 0.593428 2.4 + 9 0.742917 0.2 1 0.1 0.459791 1.9 + 10 0.633428 0.1 1.2 0 0.604414 2.6 + 11 0.00664914 0 0 0 0 0 + 12 0.0931612 0 0.4 0 0.036874 0.5 + 13 0.121959 0 0.3 0 0.421369 0.4 + 14 0.00453825 0 0.1 0 0.000830354 0.1 + 15 0.0627664 0 0.2 0 0.0320833 0.2 + 16 0.336366 0 0.4 0 0.221926 0.7 + 17 0.325547 0.2 0.5 0.1 0.183374 0.8 + 18 0.11484 0.1 0.2 0 0.296817 0.3 + 19 0.0263361 0 0.2 0 0.0665585 0.2 ############################################################ /run/dumpCouples @@ -1915,7 +1930,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -1929,7 +1944,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -2038,7 +2053,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -2071,7 +2086,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -2247,7 +2262,7 @@ Index : 12 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=0.55s Real=0.61s Sys=0.07s + User=0.51s Real=0.57s Sys=0.06s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -2255,124 +2270,124 @@ Region : Calor-A Production thresholds : gamma 200 um e- 200 um e+ 200 um Energy deposition in an event : - Absorber 575.066 MeV Gap 257.954 MeV + Absorber 631.19 MeV Gap 287.196 MeV Number of secondaries in an event : - gamma in Absorber 44.5 in Gap 11.4 - e- in Absorber 304.6 in Gap 154.7 - e+ in Absorber 1.4 in Gap 0.3 + gamma in Absorber 62.9 in Gap 20.1 + e- in Absorber 393.7 in Gap 198.9 + e+ in Absorber 3.1 in Gap 0.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 3.25248 keV in Gap 1.61064 keV - e- in Absorber 100.308 eV in Gap 110.559 eV - e+ in Absorber 475.848 keV in Gap 3.65461 MeV + gamma in Absorber 3.27295 keV in Gap 1.61869 keV + e- in Absorber 107.366 eV in Gap 100.982 eV + e+ in Absorber 105.174 keV in Gap 473.315 keV Total track length of e+/e- in an event : - Absorber 44.9443 cm Gap 45.612 cm + Absorber 58.3755 cm Gap 61.2143 cm Total number of steps of e+/e- in an event : - Absorber 600.9 Gap 329.2 + Absorber 762.9 Gap 426.5 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 792.352 46.5 279.1 1.2 783.95 664.6 - 1 25.4232 6.7 46.1 0.3 86.7276 90.8 - 2 6.11121 1.3 26.9 0 16.582 37.8 - 3 2.02041 0.7 23.9 0.1 3.57302 30.1 - 4 1.14007 0.1 22.2 0 2.1209 27.8 - 5 0.80692 0 14.2 0 1.06248 17.8 - 6 0.697617 0 9 0 1.91062 12 - 7 0.422319 0.1 7.5 0 0.879721 9.6 - 8 2.46247 0.4 9.9 0.1 5.75618 14 - 9 0.897554 0.1 7 0 1.95855 9.2 - 10 0.174319 0 3.3 0 0.389692 4.1 - 11 0.162004 0 2.6 0 0.197264 3.7 - 12 0.0702396 0 3 0 0.0379699 3.2 - 13 0.162105 0 1.7 0 0.316044 1.9 - 14 0.0585191 0 1 0 0.0598177 1.2 - 15 0.0462686 0 1.2 0 0.0364623 1.5 - 16 0.00541712 0 0.3 0 0.00200716 0.3 - 17 0.00597051 0 0.2 0 0.00245682 0.3 - 18 0.0013038 0 0.2 0 0.000362119 0.2 - 19 0 0 0 0 0 0 + 0 846.855 67.3 300.8 2.8 974.687 738.8 + 1 36.8125 9.1 67.3 0.2 124.482 135 + 2 12.0612 3 47.8 0.1 36.6835 77.2 + 3 6.52936 1.1 34.1 0.1 15.1501 48.8 + 4 4.19342 1.1 28.5 0 12.0806 38.2 + 5 2.2781 0.4 22.5 0 5.27023 29.4 + 6 1.65012 0 18 0 4.40065 21.9 + 7 1.53741 0 15.1 0 4.56346 17.7 + 8 1.1975 0.1 13.8 0 2.96818 16.3 + 9 1.20299 0.3 11.8 0 3.92733 16.5 + 10 0.496138 0.1 9.1 0 0.82848 10.6 + 11 1.49423 0.3 4.3 0.1 3.58522 10.2 + 12 0.253071 0 4 0 0.436864 5.5 + 13 0.691007 0.2 2.4 0 3.35482 3.7 + 14 0.59827 0 0.7 0 2.94638 2 + 15 0.116034 0 2.4 0 0.119778 3.6 + 16 0.216465 0 2.9 0 0.252403 4.1 + 17 0.0426787 0 2.5 0 0.015707 3.3 + 18 0.0798883 0 1.1 0 0.102546 2.7 + 19 0.0453151 0 1.4 0 0.0304294 1.6 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 646.403 MeV Gap 287.621 MeV + Absorber 651.737 MeV Gap 278.489 MeV Number of secondaries in an event : - gamma in Absorber 53.1 in Gap 15.1 - e- in Absorber 272 in Gap 117.7 - e+ in Absorber 3.3 in Gap 0.6 + gamma in Absorber 52.7 in Gap 14.6 + e- in Absorber 287.7 in Gap 123.3 + e+ in Absorber 2.9 in Gap 0.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 9.69842 keV in Gap 4.30541 keV - e- in Absorber 127.35 eV in Gap 107.273 eV - e+ in Absorber 193.079 keV in Gap 4.22731 MeV + gamma in Absorber 9.67059 keV in Gap 3.97664 keV + e- in Absorber 107.46 eV in Gap 110.249 eV + e+ in Absorber 117.756 keV in Gap 4.49765 MeV Total track length of e+/e- in an event : - Absorber 54.3283 cm Gap 56.5239 cm + Absorber 55.3738 cm Gap 51.6634 cm Total number of steps of e+/e- in an event : - Absorber 557.2 Gap 283.6 + Absorber 576.8 Gap 277.2 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 863.425 54.5 110.9 2.4 902.062 424.9 - 1 31.6859 6.7 46.6 0.4 102.186 99 - 2 17.756 3.9 51.6 0.6 50.9139 81.8 - 3 8.58212 1.5 44 0.4 25.6798 64.8 - 4 2.36222 0.4 27.2 0 5.80793 32.8 - 5 1.91198 0.1 21.4 0 5.62457 25.2 - 6 2.04868 0.2 18.5 0 4.48275 24.1 - 7 1.45833 0 14.3 0 2.91019 17.8 - 8 1.09122 0.1 13 0 1.96399 16.1 - 9 0.633824 0.1 8.9 0 0.958521 11.2 - 10 0.321174 0 5.6 0 0.727612 6.8 - 11 1.42393 0.5 9 0 3.17268 12.5 - 12 0.407609 0 6.9 0 0.448367 7.7 - 13 0.283123 0 3 0 0.567508 4.4 - 14 0.0532517 0 2.7 0 0.0277374 4.1 - 15 0.383542 0.2 1.3 0.1 0.857629 2 - 16 0.0701417 0 2.2 0 0.0415436 2.5 - 17 0.0193179 0 0.8 0 0.010146 0.9 - 18 0.0429704 0 0.5 0 0.0426429 0.7 - 19 0.0445516 0 0.7 0 0.0300391 0.8 + 0 858.427 55.6 117.5 2.2 869.514 422.3 + 1 33.4245 6 55.2 0.3 100.224 100.8 + 2 16.5807 2.7 49.9 0.4 47.0969 78.7 + 3 5.70664 0.7 46.5 0.1 15.218 66.9 + 4 4.60167 0.5 32.8 0 13.4395 42.4 + 5 3.51913 0.7 25.7 0 7.28086 37.6 + 6 0.785074 0 19 0 0.90574 21.4 + 7 1.73856 0.1 16.1 0 4.57688 21 + 8 0.802679 0.2 13.3 0.1 1.10836 15.1 + 9 0.682228 0 7 0 2.20044 11 + 10 0.427298 0 6.3 0 0.627193 7.3 + 11 0.311321 0 4.6 0 0.343687 5.6 + 12 0.620108 0.1 4.2 0 2.04687 5.9 + 13 0.362613 0.2 4.8 0 0.495537 5.6 + 14 0.206404 0 2.4 0 0.536548 3.4 + 15 0.0233714 0 0.4 0 0.0173003 0.6 + 16 0.0534399 0 1.2 0 0.0402905 1.3 + 17 0.0102116 0 0.4 0 0.00844605 1 + 18 0.0295504 0 0.6 0 0.022824 0.7 + 19 0.00151084 0 0.3 0 0.000188739 0.3 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 579.849 MeV Gap 244.973 MeV + Absorber 591.222 MeV Gap 258.333 MeV Number of secondaries in an event : - gamma in Absorber 22.4 in Gap 7.5 - e- in Absorber 150.6 in Gap 52.9 - e+ in Absorber 1.3 in Gap 0.6 + gamma in Absorber 24.8 in Gap 9.2 + e- in Absorber 163.8 in Gap 63 + e+ in Absorber 1.9 in Gap 0.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 28.2402 keV in Gap 11.4297 keV - e- in Absorber 106.28 eV in Gap 103.576 eV - e+ in Absorber 382.732 keV in Gap 876.922 keV + gamma in Absorber 28.5843 keV in Gap 10.4449 keV + e- in Absorber 106.291 eV in Gap 123.351 eV + e+ in Absorber 1.19153 MeV in Gap 4.10777 MeV Total track length of e+/e- in an event : - Absorber 24.4775 cm Gap 24.8274 cm + Absorber 29.1515 cm Gap 31.1231 cm Total number of steps of e+/e- in an event : - Absorber 254.2 Gap 101.2 + Absorber 287 Gap 123.7 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 763.394 17.7 29.4 0.5 321.971 103.7 - 1 23.1632 4.4 27.7 0.4 69.2513 49.8 - 2 14.3986 3.4 23.3 0.3 41.2389 40.5 - 3 1.16878 0 18.5 0 2.21692 24.4 - 4 2.51332 0.3 17 0.1 6.70976 21.3 - 5 3.73358 0.5 13.9 0.1 7.88236 18.8 - 6 3.42633 0.6 12.6 0.2 9.78645 17.5 - 7 3.01233 0.9 10.9 0.1 9.85019 15.1 - 8 3.82691 1.5 7.1 0.1 13.1235 11.1 - 9 0.872458 0.1 10.1 0 1.49835 12.2 - 10 0.965954 0 8 0.1 2.34934 11.2 - 11 1.05802 0.5 5.2 0 2.20749 7.1 - 12 1.31761 0 7.7 0 1.47533 8.7 - 13 0.187059 0 4.1 0 0.2377 4.5 - 14 0.110037 0 1.6 0 0.111744 1.7 - 15 0.0482921 0 0.9 0 0.0495276 0.9 - 16 0.0549417 0 1 0 0.0656434 1.2 - 17 0.182449 0 0.8 0 0.306934 1 - 18 0.0148726 0 0.8 0 0.00403994 0.9 - 19 0.0688846 0 0.9 0 0.0511274 1.1 + 0 799.553 25.9 41.3 1.5 462.814 147.3 + 1 26.0384 5.6 37.2 0.4 77.8584 70.1 + 2 8.06705 1.1 33.8 0.2 25.5272 48.7 + 3 3.78758 0.3 26.8 0 8.27205 33.5 + 4 6.37444 0.6 21.5 0.1 17.1718 28.9 + 5 1.35613 0.3 12.4 0.1 2.4792 16 + 6 0.778806 0 12.1 0 1.21163 15.4 + 7 0.729251 0 9.7 0 1.30727 11.1 + 8 0.362918 0 6.2 0 0.429637 7.3 + 9 0.515205 0 4.5 0 1.03858 5.5 + 10 0.289386 0 3.7 0 0.632784 4.6 + 11 0.108563 0 2.8 0 0.0648942 3.2 + 12 0.252221 0 3.4 0 0.38053 4.3 + 13 0.0709671 0 2.2 0 0.0464239 2.4 + 14 0.0693479 0 2.5 0 0.0887576 3.1 + 15 0.0314421 0 0.9 0 0.0176372 1.2 + 16 0.0909181 0 2.4 0 0.0676386 2.8 + 17 0.315374 0 1 0 1.39878 1.6 + 18 0.23898 0 1.2 0 0.435292 1.5 + 19 0.388458 0.2 0.4 0.1 1.04259 1.1 ############################################################ /run/dumpCouples @@ -2618,7 +2633,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 Stopping Power data for 17 ion/material pairs ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 2 MeV @@ -2632,7 +2647,7 @@ msc: for alpha SubType= 10 ionIoni: for alpha SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax= 7.9452 MeV BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV @@ -2741,7 +2756,7 @@ msc: for mu+ SubType= 10 muIoni: for mu+ SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -2774,7 +2789,7 @@ msc: for mu- SubType= 10 muIoni: for mu- SubType= 2 dE/dx and range tables from 100 eV to 10 TeV in 77 bins Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1 - finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV BetheBloch : Emin= 200 keV Emax= 1 GeV @@ -2950,7 +2965,7 @@ Index : 12 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=1.37s Real=1.51s Sys=0.13s + User=1.21s Real=1.39s Sys=0.15s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -2958,124 +2973,124 @@ Region : Calor-A Production thresholds : gamma 10 um e- 10 um e+ 10 um Energy deposition in an event : - Absorber 600.992 MeV Gap 259.931 MeV + Absorber 654.614 MeV Gap 275.731 MeV Number of secondaries in an event : - gamma in Absorber 67.2 in Gap 16.7 - e- in Absorber 1117 in Gap 1005.9 - e+ in Absorber 2.5 in Gap 0.9 + gamma in Absorber 82.3 in Gap 18.5 + e- in Absorber 1260.2 in Gap 1085.2 + e+ in Absorber 3.1 in Gap 1.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 990.23 eV in Gap 996.007 eV - e- in Absorber 11.5322 eV in Gap 106.243 eV - e+ in Absorber 325.402 keV in Gap 1.10133 MeV + gamma in Absorber 1.00136 keV in Gap 1.06208 keV + e- in Absorber 10.4375 eV in Gap 136.853 eV + e+ in Absorber 604.942 keV in Gap 223.183 keV Total track length of e+/e- in an event : - Absorber 54.342 cm Gap 49.1721 cm + Absorber 67.6356 cm Gap 57.4385 cm Total number of steps of e+/e- in an event : - Absorber 1704.1 Gap 1477.8 + Absorber 1974.6 Gap 1636 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 813.114 71.1 1808.9 2.3 900.309 2699.3 - 1 26.9184 8.9 98.5 0.6 85.944 196.2 - 2 5.9574 0.8 45.2 0.1 15.5203 64.9 - 3 5.35222 1.4 39.1 0.2 14.6625 55 - 4 2.32222 0.5 28.7 0.1 4.96117 38.9 - 5 2.67025 0.6 24.4 0.1 5.70622 31.8 - 6 1.36438 0 19.9 0 2.49371 24.9 - 7 1.16546 0.2 15.5 0 2.04106 19.4 - 8 0.431415 0 9.9 0 0.584115 12 - 9 0.314234 0.1 5.3 0 0.561039 7.5 - 10 0.221837 0 3.7 0 0.31146 4.5 - 11 0.198777 0.2 5.5 0 0.135147 6 - 12 0.180167 0 5 0 0.140249 5.4 - 13 0.390068 0 5.1 0 1.42406 6.7 - 14 0.0953629 0 2 0 0.0831859 2.2 - 15 0.135125 0.1 3.1 0 0.202714 3.8 - 16 0.0468343 0 1.6 0 0.0320369 1.7 - 17 0.0229433 0 0.8 0 0.0119122 0.9 - 18 0.0166621 0 0.4 0 0.013453 0.5 - 19 0.00527581 0 0.2 0 0.00352525 0.2 + 0 836.381 74.5 1856.5 2.5 955.099 2803 + 1 36.5515 11.2 130.1 0.6 119.16 248.4 + 2 15.3768 3.5 70.2 0.2 49.1415 117.9 + 3 11.6676 2.8 59.1 0.4 37.7238 100.4 + 4 7.46376 2 48.7 0.1 23.0761 73.9 + 5 2.81244 1.6 29.9 0.1 7.03265 39.4 + 6 1.72084 0.1 22.9 0 3.10251 32.4 + 7 1.54922 0.2 19.7 0 3.63372 28.6 + 8 1.74014 0.5 18.1 0.1 4.86442 25.6 + 9 1.5044 0.2 15.3 0 4.85694 20 + 10 0.792533 0.1 9.2 0 1.80111 13.2 + 11 3.63825 1.4 14.8 0.1 12.279 28.8 + 12 3.11234 0.9 11 0 11.0456 19.5 + 13 0.729439 0.3 9.2 0 1.3623 12.2 + 14 0.703938 0.1 6.4 0 3.09727 8.6 + 15 0.331444 0 4.1 0 0.474274 5.9 + 16 1.14903 0.8 4.2 0.1 2.81512 7.1 + 17 0.814788 0.1 5.3 0 2.72396 7.6 + 18 0.0572423 0 1.7 0 0.0388327 2 + 19 1.9237 0.5 5.6 0.1 6.55157 10.4 ############################################################ Region : Calor-B Production thresholds : gamma 100 um e- 100 um e+ 100 um Energy deposition in an event : - Absorber 556.163 MeV Gap 237.25 MeV + Absorber 933.79 MeV Gap 413.163 MeV Number of secondaries in an event : - gamma in Absorber 38.9 in Gap 10.6 - e- in Absorber 338.9 in Gap 172.8 - e+ in Absorber 0.8 in Gap 0.5 + gamma in Absorber 152.2 in Gap 45.3 + e- in Absorber 988 in Gap 472.7 + e+ in Absorber 7.1 in Gap 1.9 Minimum kinetic energy of generated secondaries : - gamma in Absorber 2.35544 keV in Gap 1.17983 keV - e- in Absorber 144.653 eV in Gap 107.678 eV - e+ in Absorber 1.64436 MeV in Gap 4.07719 MeV + gamma in Absorber 2.35002 keV in Gap 1.19253 keV + e- in Absorber 100.91 eV in Gap 110.896 eV + e+ in Absorber 296.499 keV in Gap 956.331 keV Total track length of e+/e- in an event : - Absorber 40.9427 cm Gap 34.8268 cm + Absorber 1.30615 m Gap 1.25874 m Total number of steps of e+/e- in an event : - Absorber 599.5 Gap 318.6 + Absorber 1843.6 Gap 962.3 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 763.849 42.2 374.8 0.4 673.343 712.3 - 1 12.0895 2.4 31.6 0.3 36.5059 58.5 - 2 5.54998 1.3 23.5 0.2 15.5441 32 - 3 1.35385 0.1 19.4 0 2.63665 26.2 - 4 1.4464 0.2 16.3 0 3.85283 21.4 - 5 5.07502 1.8 15.3 0.2 14.6421 25.8 - 6 0.378835 0 7.4 0 0.428594 9.5 - 7 0.459214 0.3 4.9 0 0.820347 8 - 8 0.750435 0.4 3.9 0.1 1.67484 5.1 - 9 0.153335 0 3 0 0.18559 3.3 - 10 0.0893359 0 1.7 0 0.0647636 1.9 - 11 0.0749521 0 1.3 0 0.132765 1.4 - 12 0.0591324 0 0.9 0 0.0488438 1.1 - 13 0.0534213 0 0.6 0 0.0655653 0.7 - 14 0.791963 0.4 1.4 0.1 4.37526 2.6 - 15 0.989536 0.4 2.1 0 2.9895 4.3 - 16 0.129465 0 1.5 0 0.165625 1.6 - 17 0.0586919 0 0.7 0 0.0579074 0.8 - 18 0.00420094 0 0.3 0 0.00139961 0.3 - 19 0.00723609 0 0.7 0 0.00114498 0.7 + 0 1087.45 139.9 634.6 5.4 1801.56 1476.5 + 1 127.968 33.5 202.7 1.7 433.707 431.1 + 2 49.971 11.2 136.9 0.7 159.271 246.4 + 3 34.9492 5.7 117.2 0.7 87.7046 181.5 + 4 19.5395 2.6 96.1 0.1 31.0148 126.4 + 5 7.64506 1.8 63.7 0.1 14.4738 82.1 + 6 7.09545 1.2 54.2 0.2 13.7185 65.6 + 7 2.92751 0.3 36.2 0 6.2567 46.2 + 8 2.37866 0.3 29.1 0 3.94034 36.7 + 9 1.36918 0.2 18.7 0 2.27841 25.1 + 10 0.796082 0 15.8 0 1.08235 18.3 + 11 1.27021 0.2 16 0.1 2.38709 18.7 + 12 1.46513 0.3 10.7 0 4.05146 14.4 + 13 0.469352 0.1 7.9 0 0.761665 9.4 + 14 0.127592 0 2.9 0 0.101077 3.1 + 15 0.38209 0 3.6 0 0.630733 5.3 + 16 0.307268 0.1 5.7 0 0.426527 6.3 + 17 0.150636 0 3.4 0 0.212634 3.7 + 18 0.244854 0.1 1.8 0 0.518277 4.4 + 19 0.0592233 0 1.6 0 0.0425504 1.9 ############################################################ Region : Calor-C Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 896.735 MeV Gap 418.402 MeV + Absorber 513.627 MeV Gap 225.518 MeV Number of secondaries in an event : - gamma in Absorber 132.4 in Gap 43.1 - e- in Absorber 505.8 in Gap 228.3 - e+ in Absorber 7.3 in Gap 2.2 + gamma in Absorber 16.9 in Gap 5.1 + e- in Absorber 103.6 in Gap 49.3 + e+ in Absorber 0.3 in Gap 0.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 6.9327 keV in Gap 2.94582 keV - e- in Absorber 100.935 eV in Gap 101.846 eV - e+ in Absorber 209.501 keV in Gap 762.342 keV + gamma in Absorber 6.95767 keV in Gap 3.04088 keV + e- in Absorber 129.237 eV in Gap 213.45 eV + e+ in Absorber 669.208 keV in Gap 1.0101 MeV Total track length of e+/e- in an event : - Absorber 1.17937 m Gap 1.28748 m + Absorber 26.1345 cm Gap 25.4836 cm Total number of steps of e+/e- in an event : - Absorber 1049.9 Gap 559.2 + Absorber 255.5 Gap 140.7 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 1216.21 154.4 281.4 8.2 2176.28 970.9 - 1 59.6778 14.1 106.9 0.6 194.174 195.3 - 2 17.4602 3.5 86.8 0.2 48.8826 120.1 - 3 8.74013 1.8 68.7 0.2 22.5763 91.1 - 4 2.95318 0.2 52.7 0.1 4.32951 62.8 - 5 3.34266 1.1 34.8 0.2 9.01283 44.6 - 6 1.92367 0 26.3 0 3.27663 32.1 - 7 1.06928 0.1 18.6 0 1.59418 21.3 - 8 0.770409 0 12.9 0 1.12864 15.6 - 9 0.497799 0 11 0 0.581327 12.5 - 10 0.358277 0 7 0 0.456936 9.8 - 11 0.231347 0 6 0 0.241694 6.5 - 12 0.269397 0 5.3 0 0.372772 5.6 - 13 0.195746 0 4 0 0.245906 4.3 - 14 0.236629 0 4.4 0 0.256501 7.1 - 15 0.146237 0 2.6 0 0.277825 3.2 - 16 0.554404 0.2 1.7 0 1.11777 2.4 - 17 0.0358253 0.1 1.1 0 0.0363863 1.3 - 18 0.0238288 0 0.6 0 0.0199119 0.7 - 19 0.0405605 0 0.7 0 0.049201 0.7 + 0 725.843 20 87.7 0.4 475.776 300.4 + 1 8.12066 0.9 15.2 0 27.7475 26.7 + 2 2.25252 0.6 12.9 0 7.34628 17.9 + 3 0.540433 0.1 7.8 0 0.779675 11.1 + 4 0.19738 0 7.9 0 0.100696 8.8 + 5 0.178345 0 5 0 0.11103 5.6 + 6 0.096351 0 2.8 0 0.0824276 3.1 + 7 0.26925 0 2 0 0.412155 3 + 8 0.127967 0 2.5 0 0.0767077 3 + 9 0.203218 0 2.9 0 0.691316 3.3 + 10 0.383278 0 1.3 0 0.951177 2.3 + 11 0.34403 0 1.1 0.1 1.08033 5.8 + 12 0.340481 0.3 0.7 0 0.742536 1.7 + 13 0.164568 0.1 1 0 0.229391 1.2 + 14 0.0103099 0 0.3 0 0.0066229 0.4 + 15 0.0191246 0 0.8 0 0.00802729 0.9 + 16 0.00478222 0 0.4 0 0.00136275 0.4 + 17 0.0027576 0 0.1 0 0.000758965 0.1 + 18 0.0470825 0 0.5 0 0.0378779 0.5 + 19 0 0 0 0 0 0 ############################################################ /run/dumpCouples @@ -3166,7 +3181,7 @@ Graphics systems deleted. Visualization Manager deleting... 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: 1 MB +Number of memory pools allocated: 12 of which, static: 0 +Dynamic pools deleted: 12 / Total memory freed: 0.94 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/runAndEvent/README b/examples/extended/runAndEvent/README index 906d84e440..0a959ee0a4 100644 --- a/examples/extended/runAndEvent/README +++ b/examples/extended/runAndEvent/README @@ -14,7 +14,10 @@ RE01 This example demonstrates how to connect the information between primary particles and hits. It also utilizes some user-information -classes. +classes. Readout geometry is implemented as a parallel world. +Decay of "Unknown" particle (that may represent whatever a particle +Geant4 does not know how to deal with) is taken care as "pre-assigned +decay products". RE02 ---- diff --git a/source/GNUmakefile b/source/GNUmakefile index c720e90387..37a77d0e29 100644 --- a/source/GNUmakefile +++ b/source/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile 94738 2015-12-04 11:23:42Z gcosmo $ +# $Id: GNUmakefile 97990 2016-06-30 10:04:56Z gcosmo $ # ----------------------------------------------------------------- # "gmake" makes default libraries for each subdomain. # "gmake global" makes global libraries for each subdomain. @@ -168,7 +168,7 @@ endif banner: @$(ECHO) "*************************************************************" - @$(ECHO) " Installation Geant4 version geant4-10-02 " + @$(ECHO) " Installation Geant4 version geant4-10-03-beta-01 " @$(ECHO) " Copyright (C) 1994-2016 Geant4 Collaboration " @$(ECHO) "*************************************************************" diff --git a/source/analysis/History b/source/analysis/History index dd6178c667..41184932aa 100644 --- a/source/analysis/History +++ b/source/analysis/History @@ -1,4 +1,4 @@ -$Id: History 94599 2015-11-25 13:00:41Z gcosmo $ +$Id: History 97670 2016-06-07 08:22:37Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,34 @@ committal in the SVN repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +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 diff --git a/source/analysis/History_tools b/source/analysis/History_tools index a5a11a6208..f6d484a277 100644 --- a/source/analysis/History_tools +++ b/source/analysis/History_tools @@ -1,3 +1,24 @@ + 1.27.4 : + - tools/value : Windows-64 : rm warnings when writing a void* in a string.. + + 1.27.3 : + - tools/typedefs, pointer, value.icc : Windows-64 : rm warnings when writing a void* in a string. + - tools/wroot/ntuple : delete columns in destructor. + + 1.27.2 : + - tools/glutess/render : static_RenderTriangle : (void)size; at end to fix a warning. + + 1.27.1 : + - hls, sg/style_colormap : correct some g++-6 (pedantic) warnings. + + 1.27.0 : WARNING : change in the ROOT format for TTrees : + - tools/wroot/basket constructor : enforce m_version += 1000. This has to be considered as a change in the ROOT/IO + format (related to trees) compared to the one of CERN-ROOT/4.x that we followed up so fare. This change follows + what is in CERN-ROOT/5.x/TBasket. It permits to produce files compatible with what CERN-ROOT/hadd program expects, + and which does not work properly for CERN-ROOT/4.x/TBasket versioning logic. Here we must point out that this + CERN-ROOT/hadd tool breaks some "golden rule" claiming that CERN-ROOT will "forever" handle old file format + properly. + 1.26.2 : - test/cpp/viewplot.cpp : more tests to check the sg::plotter nodes reset when producing more pages and files with the same viewer. diff --git a/source/analysis/g4tools/include/tools/glutess/render b/source/analysis/g4tools/include/tools/glutess/render index 7ff0f6ba61..cb37ec393b 100644 --- a/source/analysis/g4tools/include/tools/glutess/render +++ b/source/analysis/g4tools/include/tools/glutess/render @@ -214,8 +214,6 @@ inline/*static*/ void static_RenderTriangle( GLUtesselator *tess, GLUhalfEdge *e */ assert( size == 1 ); AddToTrail( e->Lface, tess->lonelyTriList ); - // the following line should suppress compiler warning about unused parameter 'size' - // observed on MacOS/clang (void)size; } diff --git a/source/analysis/g4tools/include/tools/hls b/source/analysis/g4tools/include/tools/hls index c641c207c6..0ffd3f820b 100644 --- a/source/analysis/g4tools/include/tools/hls +++ b/source/analysis/g4tools/include/tools/hls @@ -28,9 +28,15 @@ inline void hls_to_rgb(T hue,T light,T satur,T& a_r,T& a_g,T& a_b){ T rh, rl, rs, rm1, rm2; rh = rl = rs = 0; - if (hue > 0) rh = hue; if (rh > 360) rh = 360; - if (light > 0) rl = light; if (rl > 1) rl = 1; - if (satur > 0) rs = satur; if (rs > 1) rs = 1; + + if (hue > 0) rh = hue; + if (rh > 360) rh = 360; + + if (light > 0) rl = light; + if (rl > 1) rl = 1; + + if (satur > 0) rs = satur; + if (rs > 1) rs = 1; if (rl <= T(0.5)) { rm2 = rl*(1 + rs); @@ -53,9 +59,15 @@ inline void rgb_to_hls(T rr,T gg,T bb,T& hue,T& light,T& satur) { T rnorm, gnorm, bnorm, minval, maxval, msum, mdiff, cr, cg, cb; minval = maxval = 0; cr = cg = cb = 0; - if (rr > 0) cr = rr; if (cr > 1) cr = 1; - if (gg > 0) cg = gg; if (cg > 1) cg = 1; - if (bb > 0) cb = bb; if (cb > 1) cb = 1; + + if (rr > 0) cr = rr; + if (cr > 1) cr = 1; + + if (gg > 0) cg = gg; + if (cg > 1) cg = 1; + + if (bb > 0) cb = bb; + if (cb > 1) cb = 1; minval = cr; if (cg < minval) minval = cg; diff --git a/source/analysis/g4tools/include/tools/pointer b/source/analysis/g4tools/include/tools/pointer index aee942cb36..e18e3142c8 100644 --- a/source/analysis/g4tools/include/tools/pointer +++ b/source/analysis/g4tools/include/tools/pointer @@ -4,7 +4,10 @@ #ifndef tools_pointer #define tools_pointer -//WARNING : touchy +//WARNING : touchy. +//WARNING : _MSC_VER && _WIN64 : sizeof(void*) is NOT sizeof(unsigned long). + +#include "typedefs" #include "snpf" @@ -13,59 +16,29 @@ namespace tools { inline bool to_pointer(const std::string& a_string,void*& a_value){ - if(sizeof(unsigned long)==sizeof(void*)) { //majority of cases. - unsigned long v = 0L; - if(::sscanf(a_string.c_str(),"0x%lx",&v)!=1) { - if(::sscanf(a_string.c_str(),"%lu",&v)!=1) { - a_value = 0; - return false; - } + upointer v = 0; + if(::sscanf(a_string.c_str(),upointer_format_x(),&v)!=1) { + if(::sscanf(a_string.c_str(),upointer_format(),&v)!=1) { + a_value = 0; + return false; } - a_value = (void*)v; - return true; - } else if(sizeof(unsigned long long)==sizeof(void*)) { //but not on my Windows-8/64bits ! - unsigned long long v = 0L; - if(::sscanf(a_string.c_str(),"0x%llx",&v)!=1) { - if(::sscanf(a_string.c_str(),"%llu",&v)!=1) { - a_value = 0; - return false; - } - } - a_value = (void*)v; - return true; } - a_value = 0; - return false; + a_value = (void*)v; + return true; } inline bool p2s(const void* a_value,std::string& a_s){ char s[512]; - if(sizeof(unsigned long)==sizeof(void*)) { //majority of cases. - snpf(s,sizeof(s),"%lu",(unsigned long)a_value); - a_s = s; - return true; - } else if(sizeof(unsigned long long)==sizeof(void*)) { //but not on my Windows-8/64bits ! - snpf(s,sizeof(s),"%llu",(unsigned long long)a_value); - a_s = s; - return true; - } - a_s.clear(); - return false; + snpf(s,sizeof(s),upointer_format(),(upointer)a_value); + a_s = s; + return true; } inline bool p2sx(const void* a_value,std::string& a_s){ char s[512]; - if(sizeof(unsigned long)==sizeof(void*)) { //majority of cases. - snpf(s,sizeof(s),"0x%lx",(unsigned long)a_value); - a_s = s; - return true; - } else if(sizeof(unsigned long long)==sizeof(void*)) { //but not on my Windows-8/64bits ! - snpf(s,sizeof(s),"0x%llx",(unsigned long long)a_value); - a_s = s; - return true; - } - a_s.clear(); - return false; + snpf(s,sizeof(s),upointer_format_x(),(upointer)a_value); + a_s = s; + return true; } /* diff --git a/source/analysis/g4tools/include/tools/sg/style_colormap b/source/analysis/g4tools/include/tools/sg/style_colormap index 02644221cd..d59976fa74 100644 --- a/source/analysis/g4tools/include/tools/sg/style_colormap +++ b/source/analysis/g4tools/include/tools/sg/style_colormap @@ -303,9 +303,15 @@ public: g = col.r(); b = col.r(); if (i == 1) { r = 0.6; g = 0.6; b = 0.6; } - if (r == 1) r = 0.9; if (r == 0) r = 0.1; - if (g == 1) g = 0.9; if (g == 0) g = 0.1; - if (b == 1) b = 0.9; if (b == 0) b = 0.1; + + if (r == 1) r = 0.9; + if (r == 0) r = 0.1; + + if (g == 1) g = 0.9; + if (g == 0) g = 0.1; + + if (b == 1) b = 0.9; + if (b == 0) b = 0.1; rgb_to_hls(r,g,b,h,l,s); diff --git a/source/analysis/g4tools/include/tools/typedefs b/source/analysis/g4tools/include/tools/typedefs index b1ceb88164..4e75e45fc7 100644 --- a/source/analysis/g4tools/include/tools/typedefs +++ b/source/analysis/g4tools/include/tools/typedefs @@ -31,6 +31,16 @@ typedef unsigned long long diff_pointer_t; typedef unsigned long diff_pointer_t; #endif +#ifdef _WIN64 +typedef unsigned long long upointer; +inline const char* upointer_format() {static const char s[] = "%llu";return s;} +inline const char* upointer_format_x() {static const char s[] = "0x%llx";return s;} +#else +typedef unsigned long upointer; +inline const char* upointer_format() {static const char s[] = "%lu";return s;} +inline const char* upointer_format_x() {static const char s[] = "0x%lx";return s;} +#endif + #elif defined(_LP64) // 64 Bit Platforms @@ -46,6 +56,10 @@ inline const char* uint64_format() {static const char s[] = "%lu";return s;} typedef unsigned long diff_pointer_t; +typedef unsigned long upointer; +inline const char* upointer_format() {static const char s[] = "%lu";return s;} +inline const char* upointer_format_x() {static const char s[] = "0x%lx";return s;} + #else // 32-Bit Platforms @@ -61,6 +75,10 @@ inline const char* uint64_format() {static const char s[] = "%llu";return s;} typedef unsigned long diff_pointer_t; +typedef unsigned long upointer; +inline const char* upointer_format() {static const char s[] = "%lu";return s;} +inline const char* upointer_format_x() {static const char s[] = "0x%lx";return s;} + #endif inline uint32 uint32_mx() { //4 294 967 295 @@ -87,7 +105,7 @@ typedef char* cstr_t; typedef const char* const_cstr_t; class fits_bit {public:char m_c;}; //for exlib/cfitsio -class csv_time {public:long m_l;}; //for inlib/rcsv_ntuple +class csv_time {public:long m_l;}; //for tools/rcsv_ntuple inline unsigned int size_char() {return 1;} inline unsigned int size_short() {return 2;} diff --git a/source/analysis/g4tools/include/tools/value b/source/analysis/g4tools/include/tools/value index e67f7821b9..c1caab45a0 100644 --- a/source/analysis/g4tools/include/tools/value +++ b/source/analysis/g4tools/include/tools/value @@ -212,7 +212,7 @@ public: mem::increment(s_class().c_str());\ m_type = a_type;\ std::vector is(1);\ - is[0] = a_v.size();\ + is[0] = (unsigned int)a_v.size();\ u.a_m_what = new tools::array(is);\ u.a_m_what->fill(a_v);\ } @@ -221,7 +221,7 @@ public: value(const std::vector& a_v){\ m_type = a_type;\ std::vector is(1);\ - is[0] = a_v.size();\ + is[0] = (unsigned int)a_v.size();\ u.a_m_what = new tools::array(is);\ u.a_m_what->fill(a_v);\ } @@ -596,7 +596,7 @@ public: reset();\ m_type = a_type;\ std::vector is(1);\ - is[0] = a_v.size();\ + is[0] = (unsigned int)a_v.size();\ u.a_m_what = new tools::array(is);\ u.a_m_what->fill(a_v);\ } @@ -684,49 +684,49 @@ public: tools::sprintf(a_s,5,"(nil)"); return true; case INT: - tools::sprintf(a_s,16,"%d",a_v.u.m_int); + tools::sprintf(a_s,32,"%d",a_v.u.m_int); return true; case DOUBLE: - tools::sprintf(a_s,16,"%g",a_v.u.m_double); + tools::sprintf(a_s,32,"%g",a_v.u.m_double); return true; case VOID_STAR: - tools::sprintf(a_s,16,"0x%lx",(unsigned long)a_v.u.m_void_star); + tools::sprintf(a_s,32,upointer_format_x(),(upointer)a_v.u.m_void_star); return true; case UNSIGNED_SHORT: - tools::sprintf(a_s,16,"%u",a_v.u.m_unsigned_short); + tools::sprintf(a_s,32,"%u",a_v.u.m_unsigned_short); return true; case UNSIGNED_INT: - tools::sprintf(a_s,16,"%u",a_v.u.m_unsigned_int); + tools::sprintf(a_s,32,"%u",a_v.u.m_unsigned_int); return true; case BOOL: tools::sprintf(a_s,5,"%s",a_v.u.m_bool?"true":"false"); return true; case SHORT: - tools::sprintf(a_s,16,"%d",a_v.u.m_short); + tools::sprintf(a_s,32,"%d",a_v.u.m_short); return true; case INT64: - tools::sprintf(a_s,16,tools::int64_format(),a_v.u.m_int64); + tools::sprintf(a_s,32,tools::int64_format(),a_v.u.m_int64); return true; case UNSIGNED_INT64: - tools::sprintf(a_s,16,tools::int64_format(),a_v.u.m_unsigned_int64); + tools::sprintf(a_s,32,tools::int64_format(),a_v.u.m_unsigned_int64); return true; case FLOAT: - tools::sprintf(a_s,16,"%g",a_v.u.m_float); + tools::sprintf(a_s,32,"%g",a_v.u.m_float); return true; //case UNSIGNED_CHAR: - // tools::sprintf(a_s,16,"%c",a_v.u.m_unsigned_char); + // tools::sprintf(a_s,32,"%c",a_v.u.m_unsigned_char); // return true; //case CHAR: - // tools::sprintf(a_s,16,"%c",a_v.u.m_char); + // tools::sprintf(a_s,32,"%c",a_v.u.m_char); // return true; case DOUBLE_STAR: - tools::sprintf(a_s,16,"0x%lx",(unsigned long)a_v.u.m_double_star); + tools::sprintf(a_s,32,upointer_format_x(),(upointer)a_v.u.m_double_star); return true; case FLOAT_STAR: - tools::sprintf(a_s,16,"0x%lx",(unsigned long)a_v.u.m_float_star); + tools::sprintf(a_s,32,upointer_format_x(),(upointer)a_v.u.m_float_star); return true; case INT_STAR: - tools::sprintf(a_s,16,"0x%lx",(unsigned long)a_v.u.m_int_star); + tools::sprintf(a_s,32,upointer_format_x(),(upointer)a_v.u.m_int_star); return true; case STRING: a_s = *a_v.u.m_string; @@ -866,7 +866,7 @@ public: return false; } - unsigned int array_size() const { + size_t array_size() const { switch(m_type) { case INT: case DOUBLE: diff --git a/source/analysis/g4tools/include/tools/value.icc b/source/analysis/g4tools/include/tools/value.icc index 5abe54453d..51e38a360b 100644 --- a/source/analysis/g4tools/include/tools/value.icc +++ b/source/analysis/g4tools/include/tools/value.icc @@ -340,8 +340,8 @@ inline bool value::minus(value& aThis,std::string& aError){ return true; case value::ARRAY_DOUBLE:{ std::vector& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); const std::vector& stdv2 = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); const std::vector& stdv2 = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); const std::vector& stdv2 = aV.u.m_array_double->vector(); bool has_div_zero = false; - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); const std::vector& stdv2 = aV.u.m_array_double->vector(); if(stdv.size()!=stdv2.size()) break; - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aV.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index& stdv = aThis.u.m_array_double->vector(); - unsigned int number = stdv.size(); - for(unsigned int index=0;index1000) { + } else { + // G.Barrand : April 2016 : WARNING : this is a change in the ROOT/IO format compared to CERN-ROOT/4.x : + // We follow the logic found on CERN-ROOT/5.x that enforces "+1000" on all baskets. + m_version += 1000; + } + m_key_length = header_record_size(m_version); initialize(0); diff --git a/source/analysis/g4tools/include/tools/wroot/ntuple b/source/analysis/g4tools/include/tools/wroot/ntuple index b20d7ec8b5..a3784a5a2b 100644 --- a/source/analysis/g4tools/include/tools/wroot/ntuple +++ b/source/analysis/g4tools/include/tools/wroot/ntuple @@ -286,7 +286,9 @@ public: } } - virtual ~ntuple() {} + virtual ~ntuple() { + tools::clear(m_cols); + } protected: ntuple(const ntuple& a_from) :iobject(a_from),itree(a_from),tree(a_from) diff --git a/source/analysis/management/include/G4NtupleMessenger.hh b/source/analysis/management/include/G4NtupleMessenger.hh index 8ae2c72832..a1c6df89e5 100644 --- a/source/analysis/management/include/G4NtupleMessenger.hh +++ b/source/analysis/management/include/G4NtupleMessenger.hh @@ -57,6 +57,7 @@ class G4NtupleMessenger : public G4UImessenger G4VAnalysisManager* fManager; ///< Associated class + std::unique_ptr fNtupleDir; std::unique_ptr fSetActivationCmd; std::unique_ptr fSetActivationAllCmd; }; diff --git a/source/analysis/management/src/G4NtupleMessenger.cc b/source/analysis/management/src/G4NtupleMessenger.cc index a5e5a825fe..8f4b11a327 100644 --- a/source/analysis/management/src/G4NtupleMessenger.cc +++ b/source/analysis/management/src/G4NtupleMessenger.cc @@ -45,7 +45,9 @@ G4NtupleMessenger::G4NtupleMessenger(G4VAnalysisManager* manager) fManager(manager), fSetActivationCmd(nullptr), fSetActivationAllCmd(nullptr) -{ +{ + fNtupleDir = G4Analysis::make_unique("/analysis/ntuple/"); + fNtupleDir->SetGuidance("ntuple control"); SetActivationCmd(); SetActivationToAllCmd(); diff --git a/source/digits_hits/History b/source/digits_hits/History index 5cbd0c9936..a18c3fb09e 100644 --- a/source/digits_hits/History +++ b/source/digits_hits/History @@ -1,4 +1,4 @@ -$Id: History 92598 2015-09-07 07:11:03Z gcosmo $ +$Id: History 96535 2016-04-20 12:14:15Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,21 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Apr 20, 2016, G.Cosmo (digits_hits-V10-02-04) +- Fixed shadowing compilation warnings in G4VScoringMesh for 'ps'. + +Apr 15, 2016, G.Cosmo (digits_hits-V10-02-03) +- Fixed type in printing on cout in G4SDManager::AddNewDetector(). + +Dec 18, 2015, M.Asai (digits_hits-V10-02-02) +- While-loop check. + +Dec 8, 2015, M.Asai (digits_hits-V10-02-01) +- Further code clean up with C++11 features + +Dec 7, 2015, M.Asai (digits_hits-V10-02-00) +- Code clean up with C++11 features + Sept 4, 2015, A.Dotti (digits_hits-V10-01-01) - Removing sporious cout diff --git a/source/digits_hits/detector/include/G4MultiSensitiveDetector.hh b/source/digits_hits/detector/include/G4MultiSensitiveDetector.hh index c736956775..50100bdc66 100644 --- a/source/digits_hits/detector/include/G4MultiSensitiveDetector.hh +++ b/source/digits_hits/detector/include/G4MultiSensitiveDetector.hh @@ -77,7 +77,7 @@ public: sdsConstIter GetBegin() const { return fSensitiveDetectors.begin(); } sdsConstIter GetEnd() const { return fSensitiveDetectors.end(); } void ClearSDs() { fSensitiveDetectors.clear(); } - void AddSD( G4VSensitiveDetector* sd) { fSensitiveDetectors.push_back(sd);} + void AddSD( G4VSensitiveDetector* sd); private: sds_t fSensitiveDetectors; }; diff --git a/source/digits_hits/detector/src/G4CellScoreComposer.cc b/source/digits_hits/detector/src/G4CellScoreComposer.cc index 965e30a2d5..236e209cf0 100644 --- a/source/digits_hits/detector/src/G4CellScoreComposer.cc +++ b/source/digits_hits/detector/src/G4CellScoreComposer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4CellScoreComposer.cc 67992 2013-03-13 10:59:57Z gcosmo $ +// $Id: G4CellScoreComposer.cc 94771 2015-12-09 09:44:05Z gcosmo $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -45,8 +45,7 @@ G4CellScoreComposer::~G4CellScoreComposer() void G4CellScoreComposer::EstimatorCalculation(const G4Step &aStep){ - G4StepPoint *p = 0; - p = aStep.GetPreStepPoint(); + G4StepPoint *p = aStep.GetPreStepPoint(); if (!p) { G4Exception("G4CellScoreComposer::EstimatorCalculation","Det0191",FatalException," no pointer to pre PreStepPoint!"); } diff --git a/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc b/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc index 98fede6066..2e3ff7501a 100644 --- a/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc +++ b/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MultiFunctionalDetector.cc 67992 2013-03-13 10:59:57Z gcosmo $ +// $Id: G4MultiFunctionalDetector.cc 94771 2015-12-09 09:44:05Z gcosmo $ // // G4MultiFunctionalDetector // @@ -40,26 +40,25 @@ G4MultiFunctionalDetector::G4MultiFunctionalDetector(G4String name) {;} G4MultiFunctionalDetector::~G4MultiFunctionalDetector() -{;} +{ + for(auto pr : primitives) delete pr; + primitives.clear(); +} G4bool G4MultiFunctionalDetector::ProcessHits(G4Step* aStep,G4TouchableHistory* aTH) { - if(aStep->GetStepLength()>0. || aStep->GetTotalEnergyDeposit()>0.){ - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimHitPrimitive(aStep,aTH); - } - } - return true; + if(aStep->GetStepLength()>0. || aStep->GetTotalEnergyDeposit()>0.){ + for(auto pr : primitives) + { pr->HitPrimitive(aStep,aTH); } + } + return true; } G4bool G4MultiFunctionalDetector::RegisterPrimitive(G4VPrimitiveScorer* aPS) { - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimGetName() << "> is already defined in <" << SensitiveDetectorName @@ -83,17 +82,12 @@ G4bool G4MultiFunctionalDetector::RegisterPrimitive(G4VPrimitiveScorer* aPS) G4bool G4MultiFunctionalDetector::RemovePrimitive(G4VPrimitiveScorer* aPS) { - std::vector::iterator iterPS; - std::vector::iterator iterName = collectionName.begin(); - for(iterPS=primitives.begin();iterPS!=primitives.end();iterPS++) + auto pr = std::find(primitives.begin(),primitives.end(),aPS); + if(pr!=primitives.end()) { - if(*iterPS==aPS) - { - primitives.erase(iterPS); - aPS->SetMultiFunctionalDetector(0); - return true; - } - iterName++; + primitives.erase(pr); + aPS->SetMultiFunctionalDetector(nullptr); + return true; } G4cerr << "Primitive <" << aPS->GetName() << "> is not defined in <" << SensitiveDetectorName << ">." << G4endl << "Method RemovePrimitive() is ignored." << G4endl; @@ -102,36 +96,31 @@ G4bool G4MultiFunctionalDetector::RemovePrimitive(G4VPrimitiveScorer* aPS) void G4MultiFunctionalDetector::Initialize(G4HCofThisEvent* HC) { - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimInitialize(HC); } + for(auto pr : primitives) + { pr->Initialize(HC); } } void G4MultiFunctionalDetector::EndOfEvent(G4HCofThisEvent* HC) { - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimEndOfEvent(HC); } + for(auto pr : primitives) + { pr->EndOfEvent(HC); } } void G4MultiFunctionalDetector::clear() { - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimclear(); } + for(auto pr : primitives) + { pr->clear(); } } void G4MultiFunctionalDetector::DrawAll() { - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimDrawAll(); } + for(auto pr : primitives) + { pr->DrawAll(); } } void G4MultiFunctionalDetector::PrintAll() { - G4int nPrim = primitives.size(); - for(G4int iPrim=0;iPrimPrintAll(); } + for(auto pr : primitives) + { pr->PrintAll(); } } diff --git a/source/digits_hits/detector/src/G4MultiSensitiveDetector.cc b/source/digits_hits/detector/src/G4MultiSensitiveDetector.cc index 09b4fef995..3aaa1cef95 100644 --- a/source/digits_hits/detector/src/G4MultiSensitiveDetector.cc +++ b/source/digits_hits/detector/src/G4MultiSensitiveDetector.cc @@ -26,6 +26,7 @@ // G4MultiSensitiveDetector #include "G4MultiSensitiveDetector.hh" +#include "G4SDManager.hh" #include //#define MSDDEBUG @@ -133,3 +134,9 @@ G4VSensitiveDetector* G4MultiSensitiveDetector::Clone() const return newInst; } +void G4MultiSensitiveDetector::AddSD(G4VSensitiveDetector* sd) +{ + // making sure this sensitive detector is registered to G4SDManager + G4SDManager::GetSDMpointer()->AddNewDetector(sd); + fSensitiveDetectors.push_back(sd); +} diff --git a/source/digits_hits/detector/src/G4SDManager.cc b/source/digits_hits/detector/src/G4SDManager.cc index 834ac21ee3..691616b05a 100644 --- a/source/digits_hits/detector/src/G4SDManager.cc +++ b/source/digits_hits/detector/src/G4SDManager.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SDManager.cc 73819 2013-09-12 15:52:52Z gcosmo $ +// $Id: G4SDManager.cc 96455 2016-04-15 08:44:06Z gcosmo $ // #include "G4SDManager.hh" @@ -35,7 +35,7 @@ #include "G4ios.hh" -G4ThreadLocal G4SDManager* G4SDManager::fSDManager = 0; +G4ThreadLocal G4SDManager* G4SDManager::fSDManager = nullptr; G4SDManager* G4SDManager::GetSDMpointer() { @@ -62,6 +62,10 @@ G4SDManager::~G4SDManager() delete theMessenger; delete HCtable; delete treeTop; + theMessenger = nullptr; + HCtable = nullptr; + treeTop = nullptr; + fSDManager = nullptr; } void G4SDManager::AddNewDetector(G4VSensitiveDetector*aSD) @@ -81,7 +85,7 @@ void G4SDManager::AddNewDetector(G4VSensitiveDetector*aSD) if( verboseLevel > 0 ) { G4cout << "New sensitive detector <" << aSD->GetName() - << "> is registored at " << pathName << G4endl; + << "> is registered at " << pathName << G4endl; } } diff --git a/source/digits_hits/detector/src/G4SDStructure.cc b/source/digits_hits/detector/src/G4SDStructure.cc index 5814c20147..4a3ab7034a 100644 --- a/source/digits_hits/detector/src/G4SDStructure.cc +++ b/source/digits_hits/detector/src/G4SDStructure.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SDStructure.cc 74576 2013-10-15 07:20:11Z gcosmo $ +// $Id: G4SDStructure.cc 94771 2015-12-09 09:44:05Z gcosmo $ // // G4SDStructure @@ -47,12 +47,10 @@ G4SDStructure::G4SDStructure(G4String aPath):verboseLevel(0) G4SDStructure::~G4SDStructure() { - size_t nTree = structure.size(); - for(size_t iTree=0;iTreedirName ) return structure[i]; - } - return 0; + for(auto st : structure) + { if( subD == st->dirName ) return st; } + return nullptr; } G4VSensitiveDetector* G4SDStructure::GetSD(G4String aSDName) { - for( size_t i=0; iGetName() ) return tgtSD; - } - return 0; + for(auto det : detector) + { if(aSDName == det->GetName()) return det; } + return nullptr; } void G4SDStructure::RemoveSD(G4VSensitiveDetector* sd) { - std::vector::iterator itr = detector.begin(); - for(;itr!=detector.end();itr++) - { - if((*itr)==sd) { - detector.erase(itr); - break; - } - } + auto det = std::find(detector.begin(), detector.end(), sd); + if(det!=detector.end()) detector.erase(det); } G4String G4SDStructure::ExtractDirName(G4String aName) @@ -145,7 +132,7 @@ void G4SDStructure::Activate(G4String aName, G4bool sensitiveFlag) { // Command is ordered for a subdirectory. G4String subD = ExtractDirName(aPath); G4SDStructure* tgtSDS = FindSubDirectory(subD); - if( tgtSDS == 0 ) + if( tgtSDS == nullptr ) { // The subdirectory is not found G4cout << subD << " is not found in " << pathName << G4endl; } @@ -156,19 +143,13 @@ void G4SDStructure::Activate(G4String aName, G4bool sensitiveFlag) } else if( aPath.isNull() ) { // Command is ordered for all detectors in this directory. - for( size_t i=0; iActivate(sensitiveFlag); - } - for( size_t j=0;jActivate(G4String("/"),sensitiveFlag); - } + for(auto det : detector) det->Activate(sensitiveFlag); + for(auto st : structure) st->Activate(G4String("/"),sensitiveFlag); } else { // Command is ordered to a particular detector. G4VSensitiveDetector* tgtSD = GetSD(aPath); - if( tgtSD == 0 ) + if( tgtSD == nullptr ) { // The detector is not found. G4cout << aPath << " is not found in " << pathName << G4endl; } @@ -187,11 +168,11 @@ G4VSensitiveDetector* G4SDStructure::FindSensitiveDetector(G4String aName, G4boo { // SD exists in sub-directory G4String subD = ExtractDirName(aPath); G4SDStructure* tgtSDS = FindSubDirectory(subD); - if( tgtSDS == 0 ) + if( tgtSDS == nullptr ) { // The subdirectory is not found if (warning) G4cout << subD << " is not found in " << pathName << G4endl; - return 0; + return nullptr; } else { @@ -201,7 +182,7 @@ G4VSensitiveDetector* G4SDStructure::FindSensitiveDetector(G4String aName, G4boo else { // SD must exist in this directory G4VSensitiveDetector* tgtSD = GetSD(aPath); - if( tgtSD == 0 ) + if( tgtSD == nullptr ) { // The detector is not found. if (warning) G4cout << aPath << " is not found in " << pathName << G4endl; @@ -212,40 +193,29 @@ G4VSensitiveDetector* G4SDStructure::FindSensitiveDetector(G4String aName, G4boo void G4SDStructure::Initialize(G4HCofThisEvent*HCE) { - size_t i; // Broadcast to subdirectories. - for( i=0; iInitialize(HCE); - } + for(auto st : structure) + { st->Initialize(HCE); } // Initialize all detectors in this directory. - for( i=0; iisActive()) detector[i]->Initialize(HCE); - } + for(auto dt : detector) + { if(dt->isActive()) dt->Initialize(HCE); } } void G4SDStructure::Terminate(G4HCofThisEvent*HCE) { - size_t i; // Broadcast to subdirectories. - for( i=0; iTerminate(HCE); - } - // Initialize all detectors in this directory. - for( i=0; iisActive()) detector[i]->EndOfEvent(HCE); - } + for(auto st : structure) + { st->Terminate(HCE); } + // Terminate all detectors in this directory. + for(auto dt : detector) + { if(dt->isActive()) dt->EndOfEvent(HCE); } } void G4SDStructure::ListTree() { G4cout << pathName << G4endl; - for(size_t i=0; iGetName(); if( sd->isActive() ) { G4cout << " *** Active "; } @@ -253,8 +223,7 @@ void G4SDStructure::ListTree() { G4cout << " XXX Inactive "; } G4cout << G4endl; } - for(size_t j=0; jListTree(); } + for(auto st : structure) st->ListTree(); } diff --git a/source/digits_hits/detector/src/G4SensitiveVolumeList.cc b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc index 625d6f9939..0735ad55d6 100644 --- a/source/digits_hits/detector/src/G4SensitiveVolumeList.cc +++ b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SensitiveVolumeList.cc 81087 2014-05-20 15:44:27Z gcosmo $ +// $Id: G4SensitiveVolumeList.cc 94771 2015-12-09 09:44:05Z gcosmo $ // // -------------------------------------------------------------- // GEANT 4 class implementation file @@ -79,19 +79,17 @@ //Other Operations G4bool G4SensitiveVolumeList::CheckPV(const G4VPhysicalVolume * pvp) const { - if (thePhysicalVolumeList.size()==0) return false; - for(size_t i=0;iGetPreStepPoint()->GetPhysicalVolume(); if((fexcludeList)&&(fexcludeList->CheckPV(PV))) diff --git a/source/digits_hits/detector/src/G4VSensitiveDetector.cc b/source/digits_hits/detector/src/G4VSensitiveDetector.cc index 012e71ad7a..d6d7ac3e0d 100644 --- a/source/digits_hits/detector/src/G4VSensitiveDetector.cc +++ b/source/digits_hits/detector/src/G4VSensitiveDetector.cc @@ -24,14 +24,15 @@ // ******************************************************************** // // -// $Id: G4VSensitiveDetector.cc 81087 2014-05-20 15:44:27Z gcosmo $ +// $Id: G4VSensitiveDetector.cc 94771 2015-12-09 09:44:05Z gcosmo $ // // G4VSensitiveDetector #include "G4VSensitiveDetector.hh" #include "G4SDManager.hh" G4VSensitiveDetector::G4VSensitiveDetector(G4String name) -:verboseLevel(0),active(true),ROgeometry(0),filter(0) +:verboseLevel(0),active(true), + ROgeometry(nullptr),filter(nullptr) { size_t sLast = name.last('/'); if(sLast==std::string::npos) @@ -72,7 +73,7 @@ G4VSensitiveDetector* G4VSensitiveDetector::Clone() const << "but Clone method called.\n" << "Cannot continue;"; G4Exception("G4VSensitiveDetector::Clone","Det0010",FatalException,msg); - return NULL; + return nullptr; } G4VSensitiveDetector & G4VSensitiveDetector::operator=(const G4VSensitiveDetector &right) diff --git a/source/digits_hits/digits/include/G4DCofThisEvent.hh b/source/digits_hits/digits/include/G4DCofThisEvent.hh index 056501583f..4e5bfe2489 100644 --- a/source/digits_hits/digits/include/G4DCofThisEvent.hh +++ b/source/digits_hits/digits/include/G4DCofThisEvent.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DCofThisEvent.hh 81087 2014-05-20 15:44:27Z gcosmo $ +// $Id: G4DCofThisEvent.hh 94771 2015-12-09 09:44:05Z gcosmo $ // #ifndef G4DCofThisEvent_h @@ -74,10 +74,7 @@ class G4DCofThisEvent inline G4int GetNumberOfCollections() const { G4int n = 0; - for(size_t i=0;isize();i++) - { - if((*DC)[i]) n++; - } + for(auto dc : *DC) if(dc) n++; return n; } // Returns the number of digi collections which are stored in this class diff --git a/source/digits_hits/hits/include/G4VHitsCollection.hh b/source/digits_hits/hits/include/G4VHitsCollection.hh index 36e225389c..1335bf0d8c 100644 --- a/source/digits_hits/hits/include/G4VHitsCollection.hh +++ b/source/digits_hits/hits/include/G4VHitsCollection.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.hh 67992 2013-03-13 10:59:57Z gcosmo $ +// $Id: G4VHitsCollection.hh 94772 2015-12-09 09:46:45Z gcosmo $ // #ifndef G4VHitsCollection_h @@ -58,18 +58,24 @@ class G4VHitsCollection // Collection name G4String collectionName; G4String SDname; + // Collection ID + G4int colID; public: - inline G4String GetName() + inline G4String& GetName() { return collectionName; } - inline G4String GetSDname() + inline G4String& GetSDname() { return SDname; } + inline void SetColID(G4int i) + { colID = i; } + inline G4int GetColID() const + { return colID; } public: // GetHit and GetSize are given a default implementation here so // that the template G4THitsCollection can be used, but they // are re-implemented G4THitsCollection. - virtual G4VHit* GetHit(size_t) const { return 0; } + virtual G4VHit* GetHit(size_t) const { return nullptr; } virtual size_t GetSize() const { return 0; }; }; diff --git a/source/digits_hits/hits/src/G4HCofThisEvent.cc b/source/digits_hits/hits/src/G4HCofThisEvent.cc index de3909cd9d..30495542e8 100644 --- a/source/digits_hits/hits/src/G4HCofThisEvent.cc +++ b/source/digits_hits/hits/src/G4HCofThisEvent.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4HCofThisEvent.cc 81087 2014-05-20 15:44:27Z gcosmo $ +// $Id: G4HCofThisEvent.cc 94772 2015-12-09 09:46:45Z gcosmo $ // #include "G4HCofThisEvent.hh" @@ -57,7 +57,10 @@ G4HCofThisEvent::~G4HCofThisEvent() void G4HCofThisEvent::AddHitsCollection(G4int HCID,G4VHitsCollection * aHC) { if (!anHCoTHAllocator_G4MT_TLS_) anHCoTHAllocator_G4MT_TLS_ = new G4Allocator ; if(HCID>=0 && HCIDsize())) - { (*HC)[HCID] = aHC; } + { + aHC->SetColID(HCID); + (*HC)[HCID] = aHC; + } } diff --git a/source/digits_hits/hits/src/G4VHitsCollection.cc b/source/digits_hits/hits/src/G4VHitsCollection.cc index 8277c0b8e4..03e7f5c3a2 100644 --- a/source/digits_hits/hits/src/G4VHitsCollection.cc +++ b/source/digits_hits/hits/src/G4VHitsCollection.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.cc 67992 2013-03-13 10:59:57Z gcosmo $ +// $Id: G4VHitsCollection.cc 94772 2015-12-09 09:46:45Z gcosmo $ // // G4VHitsCollection @@ -35,12 +35,14 @@ G4VHitsCollection::G4VHitsCollection() { collectionName = "Unknown"; SDname = "Unknown"; + colID = -1; } G4VHitsCollection::G4VHitsCollection(G4String detName,G4String colNam) { collectionName = colNam; SDname = detName; + colID = -1; } G4VHitsCollection::~G4VHitsCollection() diff --git a/source/digits_hits/utils/include/G4ScoringManager.hh b/source/digits_hits/utils/include/G4ScoringManager.hh index cb4860184b..aa1c5c078e 100644 --- a/source/digits_hits/utils/include/G4ScoringManager.hh +++ b/source/digits_hits/utils/include/G4ScoringManager.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ScoringManager.hh 81087 2014-05-20 15:44:27Z gcosmo $ +// $Id: G4ScoringManager.hh 94772 2015-12-09 09:46:45Z gcosmo $ // #ifndef G4ScoringManager_h @@ -55,7 +55,9 @@ 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; class G4ScoringManager { @@ -83,6 +85,7 @@ class G4ScoringManager public: void Accumulate(G4VHitsCollection* map); void Merge(const G4ScoringManager* scMan); + G4VScoringMesh* FindMesh(G4VHitsCollection* map); G4VScoringMesh* FindMesh(const G4String&); void List() const; void Dump() const; @@ -112,6 +115,7 @@ class G4ScoringManager G4VScoreColorMap * fDefaultLinearColorMap; ColorMapDict * fColorMapDict; + MeshMap fMeshMap; public: inline void SetCurrentMesh(G4VScoringMesh* scm) { fCurrentMesh = scm; } diff --git a/source/digits_hits/utils/include/G4VScoringMesh.hh b/source/digits_hits/utils/include/G4VScoringMesh.hh index 9e791b759f..b061661708 100644 --- a/source/digits_hits/utils/include/G4VScoringMesh.hh +++ b/source/digits_hits/utils/include/G4VScoringMesh.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VScoringMesh.hh 83518 2014-08-27 12:57:10Z gcosmo $ +// $Id: G4VScoringMesh.hh 94772 2015-12-09 09:46:45Z gcosmo $ // #ifndef G4VScoringMesh_h @@ -135,7 +135,7 @@ class G4VScoringMesh G4bool FindPrimitiveScorer(const G4String & psname); // get whether current primitive scorer is set or not G4bool IsCurrentPrimitiveScorerNull() { - if(fCurrentPS == NULL) return true; + if(fCurrentPS == nullptr) return true; else return false; } // get unit of primitive scorer by the name @@ -153,7 +153,7 @@ class G4VScoringMesh void GetDivisionAxisNames(G4String divisionAxisNames[3]); // set current primitive scorer to NULL - void SetNullToCurrentPrimitiveScorer() {fCurrentPS = NULL;} + void SetNullToCurrentPrimitiveScorer() {fCurrentPS = nullptr;} // set verbose level inline void SetVerboseLevel(G4int vl) { verboseLevel = vl; } @@ -213,7 +213,7 @@ public: inline void GeometryHasBeenDestroyed() { fGeometryHasBeenDestroyed = true; - fMeshElementLogical = 0; + fMeshElementLogical = nullptr; } }; diff --git a/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc b/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc index c2886b27a1..bf60a57015 100644 --- a/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc +++ b/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ScoreQuantityMessenger.cc 73819 2013-09-12 15:52:52Z gcosmo $ +// $Id: G4ScoreQuantityMessenger.cc 94951 2016-01-07 11:58:57Z gcosmo $ // // --------------------------------------------------------------------- // Modifications @@ -502,7 +502,7 @@ void G4ScoreQuantityMessenger::FillTokenVec(G4String newValues, G4TokenVec& toke G4Tokenizer next(newValues); G4String val; - while ( !(val = next()).isNull() ) { + while ( !(val = next()).isNull() ) { // Loop checking 12.18.2015 M.Asai token.push_back(val); } } diff --git a/source/digits_hits/utils/src/G4ScoringManager.cc b/source/digits_hits/utils/src/G4ScoringManager.cc index 73e78817c3..0ac1b0966a 100644 --- a/source/digits_hits/utils/src/G4ScoringManager.cc +++ b/source/digits_hits/utils/src/G4ScoringManager.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ScoringManager.cc 78004 2013-12-02 08:28:23Z gcosmo $ +// $Id: G4ScoringManager.cc 94772 2015-12-09 09:46:45Z gcosmo $ // #include "G4ScoringManager.hh" @@ -36,7 +36,7 @@ #include "G4DefaultLinearColorMap.hh" #include "G4ScoreLogColorMap.hh" -G4ThreadLocal G4ScoringManager* G4ScoringManager::fSManager = 0; +G4ThreadLocal G4ScoringManager* G4ScoringManager::fSManager = nullptr; G4ThreadLocal G4int G4ScoringManager::replicaLevel = 3; @@ -53,7 +53,7 @@ G4ScoringManager* G4ScoringManager::GetScoringManagerIfExist() { return fSManager; } G4ScoringManager::G4ScoringManager() - : verboseLevel(0),fCurrentMesh(0) + : verboseLevel(0),fCurrentMesh(nullptr) { fMessenger = new G4ScoringMessenger(this); fQuantityMessenger = new G4ScoreQuantityMessenger(this); @@ -72,7 +72,7 @@ G4ScoringManager::~G4ScoringManager() delete fColorMapDict; delete fQuantityMessenger; delete fMessenger; - fSManager = 0; + fSManager = nullptr; } void G4ScoringManager::SetReplicaLevel(G4int lvl) @@ -82,44 +82,49 @@ G4int G4ScoringManager::GetReplicaLevel() void G4ScoringManager::Accumulate(G4VHitsCollection* map) { - G4String wName = map->GetSDname(); - G4VScoringMesh* sm = FindMesh(wName); - if(sm == 0) return; + auto sm = FindMesh(map); + if(!sm) return; if(verboseLevel>9) { G4cout << "G4ScoringManager::Accumulate() for " << map->GetSDname() << " / " << map->GetName() << G4endl; G4cout << " is calling G4VScoringMesh::Accumulate() of " << sm->GetWorldName() << G4endl; } sm->Accumulate(static_cast*>(map)); } +G4VScoringMesh* G4ScoringManager::FindMesh(G4VHitsCollection* map) +{ + auto colID = map->GetColID(); + G4VScoringMesh* sm = nullptr; + auto msh = fMeshMap.find(colID); + if(msh==fMeshMap.end()) + { + auto wName = map->GetSDname(); + sm = FindMesh(wName); + fMeshMap[colID] = sm; + } + else + { sm = (*msh).second; } + return sm; +} + G4VScoringMesh* G4ScoringManager::FindMesh(const G4String& wName) { - G4VScoringMesh* sm = 0; - for(MeshVecItr itr = fMeshVec.begin(); itr != fMeshVec.end(); itr++) { - G4String smName = (*itr)->GetWorldName(); - if(wName == smName) { - sm = *itr; - break; - } - } + G4VScoringMesh* sm = nullptr; + for(auto msh : fMeshVec) + { if(msh->GetWorldName()==wName) return msh; } if(!sm && verboseLevel>9) { G4cout << "WARNING : G4ScoringManager::FindMesh() --- <" << wName << "> is not found. Null returned." << G4endl; } - - return sm; + return nullptr; } void G4ScoringManager::List() const { G4cout << "G4ScoringManager has " << GetNumberOfMesh() << " scoring meshes." << G4endl; - for(MeshVecConstItr itr = fMeshVec.begin(); itr != fMeshVec.end(); itr++) { - (*itr)->List(); - } + for(auto msh : fMeshVec) msh->List(); } void G4ScoringManager::Dump() const { - for(MeshVecConstItr itr = fMeshVec.begin(); itr != fMeshVec.end(); itr++) { - (*itr)->Dump(); - } + for(auto msh : fMeshVec) msh->Dump(); } void G4ScoringManager::DrawMesh(const G4String& meshName, @@ -208,7 +213,7 @@ void G4ScoringManager::RegisterScoreColorMap(G4VScoreColorMap* colorMap) G4VScoreColorMap* G4ScoringManager::GetScoreColorMap(const G4String& mapName) { ColorMapDictItr mItr = fColorMapDict->find(mapName); - if(mItr == fColorMapDict->end()) { return 0; } + if(mItr == fColorMapDict->end()) { return nullptr; } return (mItr->second); } diff --git a/source/digits_hits/utils/src/G4ScoringMessenger.cc b/source/digits_hits/utils/src/G4ScoringMessenger.cc index 62125d2840..5688beb4a3 100644 --- a/source/digits_hits/utils/src/G4ScoringMessenger.cc +++ b/source/digits_hits/utils/src/G4ScoringMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ScoringMessenger.cc 81308 2014-05-26 14:28:07Z gcosmo $ +// $Id: G4ScoringMessenger.cc 94951 2016-01-07 11:58:57Z gcosmo $ // // --------------------------------------------------------------------- @@ -539,7 +539,7 @@ void G4ScoringMessenger::FillTokenVec(G4String newValues, G4TokenVec& token){ G4Tokenizer next(newValues); G4String val; - while ( !(val = next()).isNull() ) { + while ( !(val = next()).isNull() ) { // Loop checking 12.18.2015 M.Asai token.push_back(val); } } diff --git a/source/digits_hits/utils/src/G4VScoreColorMap.cc b/source/digits_hits/utils/src/G4VScoreColorMap.cc index 8b454f2c16..2f051d15c9 100644 --- a/source/digits_hits/utils/src/G4VScoreColorMap.cc +++ b/source/digits_hits/utils/src/G4VScoreColorMap.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VScoreColorMap.cc 89185 2015-03-23 16:11:02Z gcosmo $ +// $Id: G4VScoreColorMap.cc 94772 2015-12-09 09:46:45Z gcosmo $ // #include "G4VScoreColorMap.hh" @@ -41,7 +41,7 @@ #include "G4Polyhedron.hh" G4VScoreColorMap::G4VScoreColorMap(G4String mName) -:fName(mName),ifFloat(true),fMinVal(0.),fMaxVal(DBL_MAX),fVisManager(0) +:fName(mName),ifFloat(true),fMinVal(0.),fMaxVal(DBL_MAX),fVisManager(nullptr) {;} G4VScoreColorMap::~G4VScoreColorMap() diff --git a/source/digits_hits/utils/src/G4VScoreWriter.cc b/source/digits_hits/utils/src/G4VScoreWriter.cc index c8332a8dd1..60de0eb58c 100644 --- a/source/digits_hits/utils/src/G4VScoreWriter.cc +++ b/source/digits_hits/utils/src/G4VScoreWriter.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VScoreWriter.cc 67992 2013-03-13 10:59:57Z gcosmo $ +// $Id: G4VScoreWriter.cc 94772 2015-12-09 09:46:45Z gcosmo $ // #include "G4VScoreWriter.hh" @@ -38,7 +38,7 @@ #include G4VScoreWriter::G4VScoreWriter() - : fScoringMesh(0), verboseLevel(0) { + : fScoringMesh(nullptr), verboseLevel(0) { fNMeshSegments[0] = fNMeshSegments[1] = fNMeshSegments[2] = 0; } diff --git a/source/digits_hits/utils/src/G4VScoringMesh.cc b/source/digits_hits/utils/src/G4VScoringMesh.cc index 997ec42e5c..7c59ad447b 100644 --- a/source/digits_hits/utils/src/G4VScoringMesh.cc +++ b/source/digits_hits/utils/src/G4VScoringMesh.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VScoringMesh.cc 83518 2014-08-27 12:57:10Z gcosmo $ +// $Id: G4VScoringMesh.cc 96535 2016-04-20 12:14:15Z gcosmo $ // // --------------------------------------------------------------------- // Modifications @@ -44,11 +44,11 @@ #include "G4SDManager.hh" G4VScoringMesh::G4VScoringMesh(const G4String& wName) - : fWorldName(wName),fCurrentPS(0),fConstructed(false),fActive(true),fShape(undefinedMesh), - fRotationMatrix(0), fMFD(new G4MultiFunctionalDetector(wName)), + : fWorldName(wName),fCurrentPS(nullptr),fConstructed(false),fActive(true),fShape(undefinedMesh), + fRotationMatrix(nullptr), fMFD(new G4MultiFunctionalDetector(wName)), verboseLevel(0),sizeIsSet(false),nMeshIsSet(false), - fDrawUnit(""), fDrawUnitValue(1.), fMeshElementLogical(0), - fParallelWorldProcess(0), fGeometryHasBeenDestroyed(false) + fDrawUnit(""), fDrawUnitValue(1.), fMeshElementLogical(nullptr), + fParallelWorldProcess(nullptr), fGeometryHasBeenDestroyed(false) { G4SDManager::GetSDMpointer()->AddNewDetector(fMFD); @@ -57,19 +57,19 @@ G4VScoringMesh::G4VScoringMesh(const G4String& wName) fDivisionAxisNames[0] = fDivisionAxisNames[1] = fDivisionAxisNames[2] = ""; } -G4VScoringMesh::~G4VScoringMesh() -{ +G4VScoringMesh::~G4VScoringMesh() { ; } void G4VScoringMesh::ResetScore() { if(verboseLevel > 9) G4cout << "G4VScoringMesh::ResetScore() is called." << G4endl; - std::map* >::iterator itr = fMap.begin(); - for(; itr != fMap.end(); itr++) { - if(verboseLevel > 9) G4cout << "G4VScoringMesh::ResetScore()" << itr->first << G4endl; - itr->second->clear(); + for(auto mp : fMap) + { + if(verboseLevel > 9) G4cout << "G4VScoringMesh::ResetScore()" << mp.first << G4endl; + mp.second->clear(); } } + void G4VScoringMesh::SetSize(G4double size[3]) { if ( !sizeIsSet ){ for(int i = 0; i < 3; i++) fSize[i] = size[i]; @@ -105,46 +105,47 @@ void G4VScoringMesh::GetNumberOfSegments(G4int nSegment[3]) { for(int i = 0; i < 3; i++) nSegment[i] = fNSegment[i]; } void G4VScoringMesh::RotateX(G4double delta) { - if(fRotationMatrix == 0) fRotationMatrix = new G4RotationMatrix(); + if(!fRotationMatrix) fRotationMatrix = new G4RotationMatrix(); fRotationMatrix->rotateX(delta); } void G4VScoringMesh::RotateY(G4double delta) { - if(fRotationMatrix == 0) fRotationMatrix = new G4RotationMatrix(); + if(!fRotationMatrix) fRotationMatrix = new G4RotationMatrix(); fRotationMatrix->rotateY(delta); } void G4VScoringMesh::RotateZ(G4double delta) { - if(fRotationMatrix == 0) fRotationMatrix = new G4RotationMatrix(); + if(!fRotationMatrix) fRotationMatrix = new G4RotationMatrix(); fRotationMatrix->rotateZ(delta); } -void G4VScoringMesh::SetPrimitiveScorer(G4VPrimitiveScorer * ps) { +void G4VScoringMesh::SetPrimitiveScorer(G4VPrimitiveScorer * prs) { if(!ReadyForQuantity()) { - G4cerr << "ERROR : G4VScoringMesh::SetPrimitiveScorer() : " << ps->GetName() + G4cerr << "ERROR : G4VScoringMesh::SetPrimitiveScorer() : " + << prs->GetName() << " does not yet have mesh size or number of bins. Set them first." << G4endl << "This Method is ignored." << G4endl; return; } if(verboseLevel > 0) G4cout << "G4VScoringMesh::SetPrimitiveScorer() : " - << ps->GetName() << " is registered." + << prs->GetName() << " is registered." << " 3D size: (" << fNSegment[0] << ", " << fNSegment[1] << ", " << fNSegment[2] << ")" << G4endl; - ps->SetNijk(fNSegment[0], fNSegment[1], fNSegment[2]); - fCurrentPS = ps; - fMFD->RegisterPrimitive(ps); - G4THitsMap * map = new G4THitsMap(fWorldName, ps->GetName()); - fMap[ps->GetName()] = map; + prs->SetNijk(fNSegment[0], fNSegment[1], fNSegment[2]); + fCurrentPS = prs; + fMFD->RegisterPrimitive(prs); + G4THitsMap * map = new G4THitsMap(fWorldName, prs->GetName()); + fMap[prs->GetName()] = map; } void G4VScoringMesh::SetFilter(G4VSDFilter * filter) { - if(fCurrentPS == 0) { + if(!fCurrentPS) { G4cerr << "ERROR : G4VScoringMesh::SetSDFilter() : a quantity must be defined first. This method is ignored." << G4endl; return; } @@ -164,7 +165,7 @@ void G4VScoringMesh::SetFilter(G4VSDFilter * filter) { void G4VScoringMesh::SetCurrentPrimitiveScorer(const G4String & name) { fCurrentPS = GetPrimitiveScorer(name); - if(fCurrentPS == 0) { + if(!fCurrentPS) { G4cerr << "ERROR : G4VScoringMesh::SetCurrentPrimitiveScorer() : The primitive scorer <" << name << "> does not found." << G4endl; } @@ -186,8 +187,8 @@ G4String G4VScoringMesh::GetPSUnit(const G4String & psname) { } G4String G4VScoringMesh::GetCurrentPSUnit(){ - G4String unit = ""; - if(fCurrentPS == 0) { + G4String unit = ""; + if(!fCurrentPS) { G4String msg = "ERROR : G4VScoringMesh::GetCurrentPSUnit() : "; msg += " Current primitive scorer is null."; G4cerr << msg << G4endl; @@ -198,7 +199,7 @@ G4String G4VScoringMesh::GetCurrentPSUnit(){ } void G4VScoringMesh::SetCurrentPSUnit(const G4String& unit){ - if(fCurrentPS == 0) { + if(!fCurrentPS) { G4String msg = "ERROR : G4VScoringMesh::GetCurrentPSUnit() : "; msg += " Current primitive scorer is null."; G4cerr << msg << G4endl; @@ -221,15 +222,15 @@ void G4VScoringMesh::GetDivisionAxisNames(G4String divisionAxisNames[3]) { } G4VPrimitiveScorer * G4VScoringMesh::GetPrimitiveScorer(const G4String & name) { - if(fMFD == 0) return 0; + if(!fMFD) return nullptr; G4int nps = fMFD->GetNumberOfPrimitives(); for(G4int i = 0; i < nps; i++) { - G4VPrimitiveScorer * ps = fMFD->GetPrimitive(i); - if(name == ps->GetName()) return ps; + G4VPrimitiveScorer * prs = fMFD->GetPrimitive(i); + if(name == prs->GetName()) return prs; } - return 0; + return nullptr; } void G4VScoringMesh::List() const { @@ -261,25 +262,22 @@ void G4VScoringMesh::List() const { G4cout << " registered primitve scorers : " << G4endl; G4int nps = fMFD->GetNumberOfPrimitives(); - G4VPrimitiveScorer * ps; + G4VPrimitiveScorer * prs; for(int i = 0; i < nps; i++) { - ps = fMFD->GetPrimitive(i); - G4cout << " " << i << " " << ps->GetName(); - if(ps->GetFilter() != 0) G4cout << " with " << ps->GetFilter()->GetName(); + prs = fMFD->GetPrimitive(i); + G4cout << " " << i << " " << prs->GetName(); + if(prs->GetFilter() != 0) G4cout << " with " << prs->GetFilter()->GetName(); G4cout << G4endl; } - - } void G4VScoringMesh::Dump() { G4cout << "scoring mesh name: " << fWorldName << G4endl; - G4cout << "# of G4THitsMap : " << fMap.size() << G4endl; - std::map* >::iterator itr = fMap.begin(); - for(; itr != fMap.end(); itr++) { - G4cout << "[" << itr->first << "]" << G4endl; - itr->second->PrintAllHits(); + for(auto mp : fMap) + { + G4cout << "[" << mp.first << "]" << G4endl; + mp.second->PrintAllHits(); } G4cout << G4endl; diff --git a/source/event/History b/source/event/History index 2178d18498..e0026fbd60 100644 --- a/source/event/History +++ b/source/event/History @@ -1,4 +1,4 @@ -$Id: History 90754 2015-06-09 07:40:58Z gcosmo $ +$Id: History 96903 2016-05-17 09:10:58Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,20 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 16th, 2016 A.Dotti (event-V10-02-03) +- Fix typos and bug from bugzilla #1860 + +April 20th, 2016 G.Cosmo (event-V10-02-02) +- Fixed shadowing compilation warnings in G4GeneralParticleSourceMessenger + for 'ps'. + +January 19th, 2016 A.Dotti (event-V10-02-01) +- Introducing G4MultiEventAction to allow multiple + user actions in the same job + +December 28th, 2015 M.Asai (event-V10-02-00) +- Code clean-up. + June 8th, 2015 A.Dotti (event-V10-01-08) - Fixing valgring report diff --git a/source/event/include/G4Event.hh b/source/event/include/G4Event.hh index 063a0477e1..463640233a 100644 --- a/source/event/include/G4Event.hh +++ b/source/event/include/G4Event.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Event.hh 85265 2014-10-27 09:00:58Z gcosmo $ +// $Id: G4Event.hh 94950 2016-01-07 11:53:14Z gcosmo $ // // // class description: @@ -153,7 +153,7 @@ class G4Event // Returns the event ID inline void AddPrimaryVertex(G4PrimaryVertex* aPrimaryVertex) { - if( thePrimaryVertex == 0 ) + if( thePrimaryVertex == nullptr ) { thePrimaryVertex = aPrimaryVertex; } else { thePrimaryVertex->SetNext( aPrimaryVertex ); } @@ -173,13 +173,13 @@ class G4Event G4PrimaryVertex* primaryVertex = thePrimaryVertex; for( G4int j=0; jGetNext(); } return primaryVertex; } else - { return 0; } + { return nullptr; } } // Returns i-th primary vertex of the event. inline G4HCofThisEvent* GetHCofThisEvent() const diff --git a/source/event/include/G4EventManager.hh b/source/event/include/G4EventManager.hh index cd5c95c107..5b0d83a59f 100644 --- a/source/event/include/G4EventManager.hh +++ b/source/event/include/G4EventManager.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EventManager.hh 71031 2013-06-10 09:11:38Z gcosmo $ +// $Id: G4EventManager.hh 94950 2016-01-07 11:53:14Z gcosmo $ // // @@ -71,8 +71,8 @@ class G4EventManager ~G4EventManager(); private: - G4EventManager(const G4EventManager &right); - G4EventManager& operator=(const G4EventManager& right); + G4EventManager(const G4EventManager &right) = delete; + G4EventManager& operator=(const G4EventManager& right) = delete; public: // with description void ProcessOneEvent(G4Event* anEvent); diff --git a/source/event/include/G4MultiEventAction.hh b/source/event/include/G4MultiEventAction.hh new file mode 100644 index 0000000000..a0c566bc67 --- /dev/null +++ b/source/event/include/G4MultiEventAction.hh @@ -0,0 +1,74 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4MultiEventAction.hh 90212 2016-01-27 18:33:12Z adotti $ +// +//--------------------------------------------------------------- +// +// G4MultiEventAction.hh +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// +// class description: +// This class extends G4UserEventAction and allows multiple +// user-defined tracking actions to be used in the same job. +// The class is a vector of user-defined tracking actions. +// This class owns and manages the dependent user-actions. +// Usage: +// There is no need to explicitly use this class as long as the +// user actions are set via G4UserActionInitialization::SetUserAction +// that can be called several times. Explicitly this is what is happening: +// In user-defined action initialization: +// G4MultiEventAction* action = new G4MultiEventAction; +// action->push_back( G4UserEventActionUPtr( new MyUserEventAction ); +// [... add as many as needed ...] +// SetUserAction( action ); +// --------------------------------------------------------------- +// + +#ifndef G4MULTIEVENTACTION_HH_ +#define G4MULTIEVENTACTION_HH_ + +#include "G4UserEventAction.hh" +#include +#include + +using G4UserEventActionUPtr=std::unique_ptr; +using G4UserEventActionVector=std::vector; + +class G4MultiEventAction : public G4UserEventAction , public G4UserEventActionVector +{ +public: + G4MultiEventAction() = default; + virtual ~G4MultiEventAction() override = default; + virtual void SetEventManager(G4EventManager* ) override; + virtual void BeginOfEventAction(const G4Event* ) override; + virtual void EndOfEventAction(const G4Event* ) override; +}; + +#endif /* SOURCE_EVENT_INCLUDE_G4MULTIEVENTACTION_HH_ */ diff --git a/source/event/include/G4ParticleGun.hh b/source/event/include/G4ParticleGun.hh index 194cd912f8..5fd6b4c81e 100644 --- a/source/event/include/G4ParticleGun.hh +++ b/source/event/include/G4ParticleGun.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ParticleGun.hh 66892 2013-01-17 10:57:59Z gunter $ +// $Id: G4ParticleGun.hh 94950 2016-01-07 11:53:14Z gcosmo $ // #ifndef G4ParticleGun_h @@ -74,10 +74,10 @@ class G4ParticleGun:public G4VPrimaryGenerator virtual ~G4ParticleGun(); private: - G4ParticleGun(const G4ParticleGun&); - const G4ParticleGun & operator=(const G4ParticleGun&); - G4int operator==(const G4ParticleGun&) const; - G4int operator!=(const G4ParticleGun&) const; + G4ParticleGun(const G4ParticleGun&) = delete; + const G4ParticleGun & operator=(const G4ParticleGun&) = delete; + G4int operator==(const G4ParticleGun&) const = delete; + G4int operator!=(const G4ParticleGun&) const = delete; public: // with description virtual void GeneratePrimaryVertex(G4Event* evt); diff --git a/source/event/include/G4UserEventAction.hh b/source/event/include/G4UserEventAction.hh index aa70c016d0..cc2ad7c2b5 100644 --- a/source/event/include/G4UserEventAction.hh +++ b/source/event/include/G4UserEventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UserEventAction.hh 66892 2013-01-17 10:57:59Z gunter $ +// $Id: G4UserEventAction.hh 95248 2016-02-02 09:37:04Z gcosmo $ // // // @@ -53,7 +53,7 @@ class G4UserEventAction public: G4UserEventAction(); virtual ~G4UserEventAction(); - inline void SetEventManager(G4EventManager* value) + virtual void SetEventManager(G4EventManager* value) { fpEventManager = value; } public: // with description virtual void BeginOfEventAction(const G4Event* anEvent); diff --git a/source/event/sources.cmake b/source/event/sources.cmake index cadd7c18d3..3ac90b3e99 100644 --- a/source/event/sources.cmake +++ b/source/event/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 81623 2014-06-04 08:10:21Z gcosmo $ +# $Id: sources.cmake 95248 2016-02-02 09:37:04Z gcosmo $ # #------------------------------------------------------------------------------ @@ -79,6 +79,7 @@ GEANT4_DEFINE_MODULE(NAME G4event G4TrackStack.hh G4TrajectoryContainer.hh G4UserEventAction.hh + G4MultiEventAction.hh G4UserStackingAction.hh G4VPrimaryGenerator.hh G4VUserEventInformation.hh @@ -114,6 +115,7 @@ GEANT4_DEFINE_MODULE(NAME G4event G4TrackStack.cc G4TrajectoryContainer.cc G4UserEventAction.cc + G4MultiEventAction.cc G4UserStackingAction.cc G4VPrimaryGenerator.cc G4GeneralParticleSourceData.cc diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index b062d003d5..2fff3bcfaf 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Event.cc 84194 2014-10-10 14:29:58Z gcosmo $ +// $Id: G4Event.cc 94950 2016-01-07 11:53:14Z gcosmo $ // // G4Event @@ -37,41 +37,43 @@ #include "G4VDigiCollection.hh" #include "G4ios.hh" -G4ThreadLocal G4Allocator *anEventAllocator = 0; +G4ThreadLocal G4Allocator *anEventAllocator = nullptr; G4Event::G4Event() :eventID(0), - thePrimaryVertex(0),numberOfPrimaryVertex(0), - HC(0),DC(0),trajectoryContainer(0),eventAborted(false),userInfo(0), - randomNumberStatus(0),validRandomNumberStatus(false), - randomNumberStatusForProcessing(0),validRandomNumberStatusForProcessing(false), + thePrimaryVertex(nullptr),numberOfPrimaryVertex(0), + HC(nullptr),DC(nullptr),trajectoryContainer(nullptr), + eventAborted(false),userInfo(nullptr), + randomNumberStatus(nullptr),validRandomNumberStatus(false), + randomNumberStatusForProcessing(nullptr),validRandomNumberStatusForProcessing(false), keepTheEvent(false),grips(0) { } G4Event::G4Event(G4int evID) :eventID(evID), - thePrimaryVertex(0),numberOfPrimaryVertex(0), - HC(0),DC(0),trajectoryContainer(0),eventAborted(false),userInfo(0), - randomNumberStatus(0),validRandomNumberStatus(false), - randomNumberStatusForProcessing(0),validRandomNumberStatusForProcessing(false), + thePrimaryVertex(nullptr),numberOfPrimaryVertex(0), + HC(nullptr),DC(nullptr),trajectoryContainer(nullptr), + eventAborted(false),userInfo(nullptr), + randomNumberStatus(nullptr),validRandomNumberStatus(false), + randomNumberStatusForProcessing(nullptr),validRandomNumberStatusForProcessing(false), keepTheEvent(false),grips(0) { } G4Event::~G4Event() { - if(thePrimaryVertex) delete thePrimaryVertex; - if(HC) delete HC; - if(DC) delete DC; + delete thePrimaryVertex; + delete HC; + delete DC; if(trajectoryContainer) { trajectoryContainer->clearAndDestroy(); delete trajectoryContainer; } - if(userInfo) delete userInfo; - if(validRandomNumberStatus) delete randomNumberStatus; - if(validRandomNumberStatusForProcessing) delete randomNumberStatusForProcessing; + delete userInfo; + delete randomNumberStatus; + delete randomNumberStatusForProcessing; } G4int G4Event::operator==(const G4Event &right) const diff --git a/source/event/src/G4EventManager.cc b/source/event/src/G4EventManager.cc index 476695442e..c2c650ee8d 100644 --- a/source/event/src/G4EventManager.cc +++ b/source/event/src/G4EventManager.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EventManager.cc 71031 2013-06-10 09:11:38Z gcosmo $ +// $Id: G4EventManager.cc 94950 2016-01-07 11:53:14Z gcosmo $ // // // @@ -42,12 +42,12 @@ #include "G4Navigator.hh" #include "Randomize.hh" -G4ThreadLocal G4EventManager* G4EventManager::fpEventManager = 0; +G4ThreadLocal G4EventManager* G4EventManager::fpEventManager = nullptr; G4EventManager* G4EventManager::GetEventManager() { return fpEventManager; } G4EventManager::G4EventManager() -:currentEvent(0),trajectoryContainer(0), +:currentEvent(nullptr),trajectoryContainer(nullptr), verboseLevel(0),tracking(false),abortRequested(false), storetRandomNumberStatusToG4Event(false) { @@ -65,17 +65,18 @@ G4EventManager::G4EventManager() sdManager = G4SDManager::GetSDMpointerIfExist(); stateManager = G4StateManager::GetStateManager(); fpEventManager = this; - userEventAction = 0; - userStackingAction = 0; - userTrackingAction = 0; - userSteppingAction = 0; + userEventAction = nullptr; + userStackingAction = nullptr; + userTrackingAction = nullptr; + userSteppingAction = nullptr; } } -// private -> never called +/* private -> never called G4EventManager::G4EventManager(const G4EventManager&) {;} G4EventManager& G4EventManager::operator=(const G4EventManager&) { return *this; } +*/ G4EventManager::~G4EventManager() { @@ -83,7 +84,7 @@ G4EventManager::~G4EventManager() delete transformer; delete trackManager; delete theMessenger; - if(userEventAction) delete userEventAction; + delete userEventAction; fpEventManager = 0; } @@ -94,8 +95,6 @@ G4int G4EventManager::operator==(const G4EventManager &right) const { } G4int G4EventManager::operator!=(const G4EventManager &right) const { } */ - - void G4EventManager::DoProcessing(G4Event* anEvent) { abortRequested = false; @@ -117,15 +116,15 @@ void G4EventManager::DoProcessing(G4Event* anEvent) currentEvent->SetRandomNumberStatusForProcessing(randomNumberStatusToG4Event); } - // Reseting Navigator has been moved to G4Eventmanager, so that resetting + // Reseting Navigator has been moved to G4EventManager, so that resetting // is now done for every event. G4ThreeVector center(0,0,0); G4Navigator* navigator = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); navigator->LocateGlobalPointAndSetup(center,0,false); - G4Track * track; - G4TrackStatus istop; + G4Track * track = nullptr; + G4TrackStatus istop = fAlive; #ifdef G4VERBOSE if ( verboseLevel > 0 ) @@ -139,7 +138,7 @@ void G4EventManager::DoProcessing(G4Event* anEvent) trackContainer->PrepareNewEvent(); #ifdef G4_STORE_TRAJECTORY - trajectoryContainer = 0; + trajectoryContainer = nullptr; #endif sdManager = G4SDManager::GetSDMpointerIfExist(); @@ -169,7 +168,7 @@ void G4EventManager::DoProcessing(G4Event* anEvent) #endif G4VTrajectory* previousTrajectory; - while( ( track = trackContainer->PopNextTrack(&previousTrajectory) ) != 0 ) + while( ( track = trackContainer->PopNextTrack(&previousTrajectory) ) != 0 ) // Loop checking 12.28.2015 M.Asai { #ifdef G4VERBOSE @@ -195,7 +194,7 @@ void G4EventManager::DoProcessing(G4Event* anEvent) } #endif - G4VTrajectory * aTrajectory = 0; + G4VTrajectory * aTrajectory = nullptr; #ifdef G4_STORE_TRAJECTORY aTrajectory = trackManager->GimmeTrajectory(); @@ -263,22 +262,22 @@ void G4EventManager::DoProcessing(G4Event* anEvent) if(userEventAction) userEventAction->EndOfEventAction(currentEvent); stateManager->SetNewState(G4State_GeomClosed); - currentEvent = 0; + currentEvent = nullptr; abortRequested = false; } void G4EventManager::StackTracks(G4TrackVector *trackVector,G4bool IDhasAlreadySet) { - G4Track * newTrack; - if( trackVector ) { - - size_t n_passedTrack = trackVector->size(); - if( n_passedTrack == 0 ) return; - for( size_t i = 0; i < n_passedTrack; i++ ) + //size_t n_passedTrack = trackVector->size(); + //if( n_passedTrack == 0 ) return; + //for( size_t i = 0; i < n_passedTrack; i++ ) + //{ + // newTrack = (*trackVector)[ i ]; + if( trackVector->size() == 0 ) return; + for( auto newTrack : *trackVector ) { - newTrack = (*trackVector)[ i ]; trackIDCounter++; if(!IDhasAlreadySet) { diff --git a/source/event/src/G4GeneralParticleSourceMessenger.cc b/source/event/src/G4GeneralParticleSourceMessenger.cc index 772b36684d..6ca7f8481f 100644 --- a/source/event/src/G4GeneralParticleSourceMessenger.cc +++ b/source/event/src/G4GeneralParticleSourceMessenger.cc @@ -83,10 +83,10 @@ namespace { G4GeneralParticleSourceMessenger* theInstance = 0; } -G4GeneralParticleSourceMessenger* G4GeneralParticleSourceMessenger::GetInstance(G4GeneralParticleSource* ps) +G4GeneralParticleSourceMessenger* G4GeneralParticleSourceMessenger::GetInstance(G4GeneralParticleSource* psc) { G4AutoLock l(&creationM); - if ( theInstance == 0 ) theInstance = new G4GeneralParticleSourceMessenger(ps); + if ( theInstance == 0 ) theInstance = new G4GeneralParticleSourceMessenger(psc); return theInstance; } @@ -1775,7 +1775,7 @@ void G4GeneralParticleSourceMessenger::IonCommand(G4String newValues) if (ion==0) { G4cout << "Ion with Z=" << fAtomicNumber; - G4cout << " A=" << fAtomicMass << "is not be defined" << G4endl; + G4cout << " A=" << fAtomicMass << " is not defined" << G4endl; } else { @@ -1816,7 +1816,7 @@ void G4GeneralParticleSourceMessenger::IonLvlCommand(G4String newValues) ion = G4IonTable::GetIonTable()->GetIon(fAtomicNumberL, fAtomicMassL, fIonEnergyLevel); if (ion == 0) { G4cout << "Ion with Z=" << fAtomicNumberL; - G4cout << " A=" << fAtomicMass << "is not be defined" << G4endl; + G4cout << " A=" << fAtomicMassL << " is not defined" << G4endl; } else { fParticleGun->SetParticleDefinition(ion); fParticleGun->SetParticleCharge(fIonChargeL*eplus); diff --git a/source/processes/electromagnetic/utils/src/G4AtomicShell.cc b/source/event/src/G4MultiEventAction.cc similarity index 68% rename from source/processes/electromagnetic/utils/src/G4AtomicShell.cc rename to source/event/src/G4MultiEventAction.cc index 18868505cd..9c8f7baf1d 100644 --- a/source/processes/electromagnetic/utils/src/G4AtomicShell.cc +++ b/source/event/src/G4MultiEventAction.cc @@ -24,26 +24,39 @@ // ******************************************************************** // // -// $Id: G4AtomicShell.cc,v 1.2 ???? +// $Id: G4MultiEventAction.cc 90212 2016-01-27 18:33:12Z adotti $ // -// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) -// Alfonso Mantero (Alfonso.Mantero@ge.infn.it) +//--------------------------------------------------------------- // -// History: -// ----------- -// 16 Sept 2001 EG Modified according to a design iteration in the -// LowEnergy category +// G4MultiEventAction.cc +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// --------------------------------------------------------------- // -// ------------------------------------------------------------------- -#include "G4AtomicShell.hh" +#include "G4MultiEventAction.hh" +#include -G4AtomicShell::G4AtomicShell(G4int id, G4double energy) +void G4MultiEventAction::SetEventManager(G4EventManager* mgr) { - identifier = id; - bindingEnergy = energy; -} + std::for_each( begin() , end() , + [mgr](G4UserEventActionUPtr& e) { e->SetEventManager(mgr); } + ); +} -G4AtomicShell::~G4AtomicShell() -{} +void G4MultiEventAction::BeginOfEventAction(const G4Event* evt) +{ + std::for_each( begin() , end() , + [evt](G4UserEventActionUPtr& e) { e->BeginOfEventAction(evt); } + ); +} + +void G4MultiEventAction::EndOfEventAction(const G4Event* evt) +{ + std::for_each( begin() , end() , + [evt](G4UserEventActionUPtr& e) { e->EndOfEventAction(evt); } + ); +} diff --git a/source/event/src/G4ParticleGun.cc b/source/event/src/G4ParticleGun.cc index b593cbd73f..e87ccd475c 100644 --- a/source/event/src/G4ParticleGun.cc +++ b/source/event/src/G4ParticleGun.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ParticleGun.cc 66892 2013-01-17 10:57:59Z gunter $ +// $Id: G4ParticleGun.cc 94950 2016-01-07 11:53:14Z gcosmo $ // // G4ParticleGun @@ -57,7 +57,7 @@ G4ParticleGun::G4ParticleGun void G4ParticleGun::SetInitialValues() { NumberOfParticlesToBeGenerated = 1; - particle_definition = 0; + particle_definition = nullptr; G4ThreeVector zero; particle_momentum_direction = (G4ParticleMomentum)zero; particle_energy = 0.0; @@ -74,29 +74,29 @@ G4ParticleGun::~G4ParticleGun() delete theMessenger; } -G4ParticleGun::G4ParticleGun(const G4ParticleGun& /*right*/) -:G4VPrimaryGenerator() -{ G4Exception( - "G4ParticleGun::G4ParticleGun","Event0191",FatalException, - "G4ParticleGun : Copy constructor should not be used."); } - -const G4ParticleGun& G4ParticleGun::operator=(const G4ParticleGun& right) -{ G4Exception( - "G4ParticleGun::operator=","Event0192",FatalException, - "G4ParticleGun : Equal operator should not be used."); - return right; } - -G4int G4ParticleGun::operator==(const G4ParticleGun& /*right*/) const -{ G4Exception( - "G4ParticleGun::operator==","Event0193",FatalException, - "G4ParticleGun : == operator should not be used."); - return true; } - -G4int G4ParticleGun::operator!=(const G4ParticleGun& /*right*/) const -{ G4Exception( - "G4ParticleGun::operator!=","Event0193",FatalException, - "G4ParticleGun : != operator should not be used."); - return false; } +//G4ParticleGun::G4ParticleGun(const G4ParticleGun& /*right*/) +//:G4VPrimaryGenerator() +//{ G4Exception( +// "G4ParticleGun::G4ParticleGun","Event0191",FatalException, +// "G4ParticleGun : Copy constructor should not be used."); } +// +//const G4ParticleGun& G4ParticleGun::operator=(const G4ParticleGun& right) +//{ G4Exception( +// "G4ParticleGun::operator=","Event0192",FatalException, +// "G4ParticleGun : Equal operator should not be used."); +// return right; } +// +//G4int G4ParticleGun::operator==(const G4ParticleGun& /*right*/) const +//{ G4Exception( +// "G4ParticleGun::operator==","Event0193",FatalException, +// "G4ParticleGun : == operator should not be used."); +// return true; } +// +//G4int G4ParticleGun::operator!=(const G4ParticleGun& /*right*/) const +//{ G4Exception( +// "G4ParticleGun::operator!=","Event0193",FatalException, +// "G4ParticleGun : != operator should not be used."); +// return false; } void G4ParticleGun::SetParticleDefinition (G4ParticleDefinition * aParticleDefinition) @@ -161,7 +161,7 @@ void G4ParticleGun::SetParticleMomentum(G4double aMomentum) G4cout << " is now defined in terms Momentum: " << aMomentum/GeV << "GeV/c" << G4endl; } - if(particle_definition==0) + if(!particle_definition) { G4cout <<"Particle Definition not defined yet for G4ParticleGun"<< G4endl; G4cout <<"Zero Mass is assumed"<GetPrimaryVertex(); - while(nextVertex) + while(nextVertex) // Loop checking 12.28.2015 M.Asai { GenerateTracks(nextVertex); nextVertex = nextVertex->GetNext(); @@ -105,7 +106,7 @@ void G4PrimaryTransformer::GenerateTracks(G4PrimaryVertex* primaryVertex) #endif G4PrimaryParticle* primaryParticle = primaryVertex->GetPrimary(); - while( primaryParticle != 0 ) + while( primaryParticle != 0 ) // Loop checking 12.28.2015 M.Asai { GenerateSingleTrack( primaryParticle, X0, Y0, Z0, T0, WV ); primaryParticle = primaryParticle->GetNext(); @@ -128,7 +129,7 @@ void G4PrimaryTransformer::GenerateSingleTrack } #endif G4PrimaryParticle* daughter = primaryParticle->GetDaughter(); - while(daughter) + while(daughter) // Loop checking 12.28.2015 M.Asai { GenerateSingleTrack(daughter,x0,y0,z0,t0,wv); daughter = daughter->GetNext(); diff --git a/source/externals/History b/source/externals/History index e294e0872f..a73809f65e 100644 --- a/source/externals/History +++ b/source/externals/History @@ -17,12 +17,60 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10-May-2016 - G.Cosmo (externals-V10-02-09) +- Updated to CLHEP-2.3.3.0. +- CLHEP: corrected check for counter range in MixMaxRng::getState(). + Avoid hard-coded constant for initialisation of VECTOR_STATE_SIZE in + MixMaxRng, to directly use actual value of "N" from mixmax. + +02-May-2016 - G.Cosmo (externals-V10-02-08) +- CLHEP: added symbols 'us' and 'ps' for microsend and picosecond respectively + to SystemOfUnits.h and setSystemOfUnits.cc and converted all symbols and + constants from "static const" to "static constexpr". + +28-April-2016 - G.Cosmo (externals-V10-02-07) +- CLHEP: restored skipping of sequences for safer seeds setting in setSeeds() + in MixMaxRng. Changed number of N in mixmax to 17 (was 256) and provided + new skipping coefficients for the new value of N and for the case N=8. + +25-April-2016 - G.Cosmo (externals-V10-02-06) +- CLHEP: use seed_spbox() for seeding MixMax with single seed. + +21-April-2016 - G.Cosmo (externals-V10-02-05, 04) +- CLHEP: refined fix for sequence skipping; make it optional by adding Boolean + flag argument (true by default) in seed_uniquestream() function in mixmax.cc + to force sequence skipping when setting seeds. Simplified code, removing + compilation guard flags. + Set flag to false by default in MixMaxRng wrapper and defined function + skipSequencesOnce() to optional instruct to apply skipping of sequences + at the next seeds setting. + +20-April-2016: G.Cosmo (externals-V10-02-03, 02) +- Updated to CLHEP-2.3.2.2: + o Added use_atomic.h header to use std::atomic if compiler supports it. + o MixMaxRng: corrected initialisation and use of 'numberOfEngines' + when more than one threads calls the constructor. + o HepRandom: revised settings of "defaults" to use a single thread_local + pointer. +- Including tag "zlib-V10-02-01": + o Fix in gzguts.h for Windows with Visual Studio 2015 in 64 bit compilation. + +19-April-2016: G.Cosmo (externals-V10-02-01) +- CLHEP: commented out seeds skipping from built-in table in mixmax.cc + (undefined flag SKIPISON), in order to avoid contention in multi-threaded + jobs and simplify seeding procedure. Removed use of obselete 'register' + keyword. Minor code cleanup in MixMaxRng. + +11-April-2016: G.Cosmo (externals-V10-02-00) +- CLHEP: use simple loop for flatArray() in MixMaxRng; engine built-in + function turns out to be extremely slow and unefficient. + 9-November-2015: G.Cosmo (externals-V10-01-19) - Updated to CLHEP-2.3.1.1. - Added MixMaxRng to Randomize.h. 30-October-2015 - G.Cosmo (externals-V10-01-18) -- CLHEP: Fixed default seeding in MixMaxRng::setSeeds(). +- CLHEP: fixed default seeding in MixMaxRng::setSeeds(). 7-October-2015 - G.Cosmo (externals-V10-01-17) - Removed internal USolids module. Now USolids/VecGeom can be used only as diff --git a/source/externals/clhep/CMakeLists.txt b/source/externals/clhep/CMakeLists.txt index 1d9d07cb86..1ba5cb5813 100644 --- a/source/externals/clhep/CMakeLists.txt +++ b/source/externals/clhep/CMakeLists.txt @@ -57,6 +57,8 @@ set(G4clhep_HEADERS include/CLHEP/Random/engineIDulong.h include/CLHEP/Random/JamesRandom.h include/CLHEP/Random/mixmax.h + include/CLHEP/Random/mixmax_skip_N8.icc + include/CLHEP/Random/mixmax_skip_N17.icc include/CLHEP/Random/mixmax_skip_N256.icc include/CLHEP/Random/MixMaxRng.h include/CLHEP/Random/MTwistEngine.h @@ -109,6 +111,7 @@ set(G4clhep_HEADERS include/CLHEP/Utility/keywords.h include/CLHEP/Utility/memory.h include/CLHEP/Utility/noncopyable.h + include/CLHEP/Utility/use_atomic.h include/CLHEP/Vector/AxisAngle.h include/CLHEP/Vector/AxisAngle.icc include/CLHEP/Vector/Boost.h diff --git a/source/externals/clhep/History b/source/externals/clhep/History index 3097ec540d..1c8c2d449b 100644 --- a/source/externals/clhep/History +++ b/source/externals/clhep/History @@ -17,6 +17,61 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10 May 2016 - G.Cosmo +- Updated to CLHEP-2.3.3.0. +- Corrected check for counter range in MixMaxRng::getState(). + Avoid hard-coded constant for initialisation of VECTOR_STATE_SIZE in + MixMaxRng, to directly use actual value of "N" from mixmax. + +02 May 2016 - G.Cosmo +- Added symbols 'us' and 'ps' for microsend and picosecond respectively + to SystemOfUnits.h and setSystemOfUnits.cc and converted all symbols and + constants from "static const" to "static constexpr". + +28 April 2016 - G.Cosmo +- Restored skipping of sequences for safer setting of seeds in setSeeds() + in MixMaxRng. Changed number of N in mixmax to 17 (was 256) and provided + new skipping coefficients for the new value of N and for the case N=8. + +25 April 2016 - G.Cosmo +- Use seed_spbox() for seeding MixMax with single seed. + +21 April 2016 - G.Cosmo +- Refined fix for sequence skipping; make it optional by adding Boolean flag + argument (true by default) in seed_uniquestream() function in mixmax.cc to + force sequence skipping when setting seeds. Simplified code, removing + compilation guard flags. + Set flag to false by default in MixMaxRng wrapper and defined function + skipSequencesOnce() to optional instruct to apply skipping of sequences + at the next seeds setting. + +20 April 2016 - G.Cosmo +- Updated to CLHEP-2.3.2.2: + * Utility (L.Garren ) + o Added use_atomic.h: use std::atomic when the compiler declares it + uses the C++11 standard. + * Random (W.D.Dagenhart ) + o MixMaxRng.cc: the uncorrected code might not always yield independent + seeds. + If two threads execute numberOfEngines++ and after both finish that both + execute setSeed, then they will have the same seed. Fixed. + o Random.cc: there is a thread local variable of the type "defaults" + that contains two shared_ptr's in Random.cc. This causes an intermittent + problem on OSX. The complex objects containing the shared_ptr's have been + moved into a list of objects and the now the thread_local only contains a + simple pointer now that points into the list. + Use the new Utility/use_atomic.h header. + +19 April 2016 - G.Cosmo +- Commented out sequence skipping from built-in table in mixmax.cc (undefined + flag SKIPISON), in order to avoid contention in multi-threaded jobs and + simplify seeding procedure. Removed use of obselete 'register' keyword. +- Minor code cleanup in MixMaxRng. + +11 April 2016 - G.Cosmo +- Use simple loop for flatArray() in MixMaxRng; engine built-in function + turns out to be extremely slot and unefficient. + 09 November 2015 - G.Cosmo - Updated to CLHEP-2.3.1.1. - Added MixMaxRng to Randomize.h. diff --git a/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h b/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h index 12cb210b8b..6f13f1a232 100644 --- a/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h +++ b/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h @@ -95,11 +95,11 @@ public: bool get (const std::vector & v); bool getState (const std::vector & v); - static const unsigned int VECTOR_STATE_SIZE = 516; // 2N+4 for MIXMAX + static const unsigned int VECTOR_STATE_SIZE = 2*N+4; // 2N+4 for MIXMAX private: - // Members defining the current status of the generator. + // Pointer to the current status of the generator. rng_state_st* fRngState; }; diff --git a/source/externals/clhep/include/CLHEP/Random/mixmax.h b/source/externals/clhep/include/CLHEP/Random/mixmax.h index c2eb2cdad4..e2d7e9fbcf 100644 --- a/source/externals/clhep/include/CLHEP/Random/mixmax.h +++ b/source/externals/clhep/include/CLHEP/Random/mixmax.h @@ -40,9 +40,10 @@ namespace CLHEP { extern "C" { #endif -const int N = 256; -/* The currently recommended N are 3150, 1260, 508, 256, 240, 88 - Since the algorithm is linear in N, the cost per number is almost independent of N. +const int N = 17; +/* The currently recommended N are 3150, 1260, 508, 256, 240, 88, 17, 8 + Since the algorithm is linear in N, the cost per number is + almost independent of N. */ #ifndef __LP64__ @@ -79,7 +80,7 @@ void print_state(rng_state_t* X); typedef uint32_t myID_t; -void seed_uniquestream(rng_state_t* X, myID_t clusterID, myID_t machineID, myID_t runID, myID_t streamID ); +void seed_uniquestream(rng_state_t* X, myID_t clusterID, myID_t machineID, myID_t runID, myID_t streamID); /* best choice: will make a state vector from which you can get at least 10^100 numbers guaranteed mathematically to be non-colliding with any other stream prepared from another set of 32bit IDs, diff --git a/source/externals/clhep/include/CLHEP/Random/mixmax_skip_N17.icc b/source/externals/clhep/include/CLHEP/Random/mixmax_skip_N17.icc new file mode 100644 index 0000000000..623565759c --- /dev/null +++ b/source/externals/clhep/include/CLHEP/Random/mixmax_skip_N17.icc @@ -0,0 +1,289 @@ +// $Id:$ +// -*- C++ -*- +// +// ----------------------------------------------------------------------- +// MixMax Matrix PseudoRandom Number Generator +// --- MixMax --- +// ----------------------------------------------------------------------- +// +// The code is being released under GNU Lesser General Public License v3 +// +// Generator described in +// N.Z.Akopov, G.K.Savvidy and N.G.Ter-Arutyunian, Matrix Generator of Pseudorandom Numbers, +// J.Comput.Phys. 97, 573 (1991); +// Preprint EPI-867(18)-86, Yerevan Jun.1986; +// +// and +// +// K.Savvidy +// The MIXMAX random number generator +// Comp. Phys. Commun. (2015) +// http://dx.doi.org/10.1016/j.cpc.2015.06.003 +// +// ----------------------------------------------------------------------- + +/* + skipping coefficients for N=17, m=2^36+1 and s=0 + */ + +{ + +{ 159701761865468764 , 126615459087983936 , 971935980882445987 , 1266425933430727482 , 330954324138038300 , 1494390944182608462 , 985567525599556189 , 1444303754750856766 , 1592836147366511740 , 944566361294427577 , 6336044263941214 , 686240801639476028 , 1446998785307329212 , 2077656654628400897 , 458344447554229916 , 1731527985347537415 , 1856587133043405783 }, // x^2^512 + +{ 582338566698838802 , 782718157798125637 , 684912925900277712 , 1271246213246651012 , 564133275057152122 , 1254731637174240011 , 899802366531028440 , 203611955528219606 , 2146610763813957982 , 115972700754870533 , 2092933746397577991 , 1136406621159800137 , 1067897330754616454 , 1722611875894083236 , 1630948851615767512 , 989604548662398765 , 421680943972696470 }, // x^2^513 + +{ 617097029144871694 , 2275108162235384877 , 1363862259022425560 , 153831723325577176 , 1962207167612439146 , 2011895465932033980 , 1007329645826843776 , 1300917526580470528 , 1171539246226411634 , 836665263844149790 , 1026633245683781179 , 32389807716467901 , 2296276234884428109 , 409297319724863974 , 1911430032287806834 , 916469329336553330 , 65677079513594107 }, // x^2^514 + +{ 1656997175938683235 , 334384582636879447 , 2289018900497662792 , 1053313217223819648 , 2529561867064419 , 2085279416854675588 , 2246944213774249775 , 917902382070457615 , 505594560851411438 , 1748690703652028000 , 1078212339021286156 , 170401217082007747 , 1552855376842911219 , 2209415219208922654 , 1174711397611724375 , 1342069058820567972 , 577671676013094771 }, // x^2^515 + +{ 200864199029196267 , 647584785983829858 , 449579673559383642 , 2210795481121719067 , 1185405708665067088 , 310118907549337558 , 1112237647478646030 , 907316892605650051 , 1241087052423417724 , 1441515240516850614 , 13684659557896782 , 1932376613205111310 , 60357690290969298 , 403792989584565525 , 102986206885970367 , 1838760170077135151 , 727651972830521938 }, // x^2^516 + +{ 2112835707304810889 , 583170948234442322 , 504636752552038260 , 1287047182580144501 , 2197579855548731362 , 1121897458052508302 , 1952770053431596080 , 772611988382900586 , 1985521487785539447 , 1011576935509998521 , 367571328103323233 , 1395044686007468872 , 398356602519830546 , 1118155658788636138 , 1242807300672421078 , 783603574838596371 , 2129902332243215295 }, // x^2^517 + +{ 476494511866938851 , 1225043666051930516 , 965084907571074277 , 48495729686479132 , 668653785847993343 , 1110923567965684699 , 1480594060141743070 , 1780050366926533029 , 1286523699078185217 , 669624786360998719 , 1865875391054214711 , 1887676069452920579 , 9982283268123603 , 1231842656474052119 , 1913212077924560289 , 1062511441187205188 , 698250642012057138 }, // x^2^518 + +{ 1052793057808933925 , 1488114650898155736 , 1809655216561165737 , 1766730333219340872 , 1142295800552777206 , 1197008472054994109 , 288311604729845194 , 1252198368803793342 , 1700393396484664348 , 1561218011609178732 , 1039496900875671159 , 1199061431134041566 , 217182459685479427 , 1965769716664277780 , 883713133563637492 , 855967538957706448 , 182946949964136989 }, // x^2^519 + +{ 521221301273005220 , 732177595172654650 , 1177004708676171981 , 491026482834387582 , 1475491185407701571 , 338551745124704898 , 322679017279562868 , 1102042763149957642 , 1781637400817890058 , 2230976132808504329 , 1647749103867940848 , 363540249136304168 , 1060964616691451642 , 856789607085849123 , 470641990892341750 , 1281772529585552540 , 603420272349730830 }, // x^2^520 + +{ 1803571173151157726 , 1944596483605820771 , 213094595441099858 , 901693591156501692 , 861915355835676099 , 635260099576893571 , 1982413183327998212 , 1120049474254535333 , 1505283430373136398 , 284189413831487026 , 1271922039532043918 , 154314556649628344 , 52549783574158204 , 584612521732421173 , 1901458131142776860 , 1937288889567974526 , 1212147240165209394 }, // x^2^521 + +{ 2034564475748864204 , 2101470381626210311 , 2288088283864667246 , 1914963188887983022 , 1095385391183929148 , 945106352371129676 , 1400087958043804470 , 1843694373265941018 , 389168898546209530 , 624173071047154320 , 1627380173012800657 , 1094171310315703468 , 1857806715885218084 , 1326770924244540642 , 2245083043975660260 , 807823933843072560 , 2287413039178247285 }, // x^2^522 + +{ 1438462501157028417 , 1178282907367658045 , 2151871713069448741 , 2216564753928829884 , 1135646926807917971 , 873250056357106251 , 1665621526869344532 , 1732452289298951455 , 1127204916768538887 , 1653631650320969340 , 1992482205762138263 , 1836865404020205588 , 1595463001888299444 , 958431756408955134 , 2110530659740056614 , 215688460376624015 , 1158251593711172802 }, // x^2^523 + +{ 1733925877085130548 , 2093555366416251473 , 2234101572813223254 , 27150917859587271 , 2120208241420965005 , 1740681603888968422 , 344809595448125388 , 2297225515944255048 , 2259042601422705288 , 872774782224758302 , 1492625124653803821 , 1721307140915414448 , 331124824482108658 , 120601336292842643 , 1057772943542838223 , 904281382213867256 , 2268149550994572836 }, // x^2^524 + +{ 1308619451049024014 , 362949499662291350 , 507935491259228365 , 1578906684563693579 , 1147252812024062738 , 170426700812984671 , 2292369007840245901 , 2278676904939144735 , 1661943824935578983 , 1151791566444763239 , 244664648985115502 , 788605939290857339 , 185329244981575100 , 2234030485122694225 , 1354886281367682733 , 1172982108216683874 , 1673999648423090090 }, // x^2^525 + +{ 12148567885654147 , 1372231622618064454 , 1512411127803286398 , 91088917975722538 , 1479647890243287328 , 720784302152223867 , 796410783806366571 , 581618991323966327 , 850700716339425563 , 930903615199005243 , 1411478967795549943 , 1395258853733301256 , 1287449265209562277 , 2138600707136677508 , 1952689678998032749 , 1536157936222739421 , 1365983300736022067 }, // x^2^526 + +{ 1614268848379872789 , 1977966741412095904 , 1868426217239032474 , 1603841034660414664 , 1538146046227581261 , 686243317632590721 , 1825936888550743483 , 1880896341340126997 , 368542569942961260 , 127908944176116453 , 2240186396348061575 , 1299238346503882153 , 2102660872371583004 , 1938050823525276998 , 1611779572790548487 , 923339421522954197 , 1640317376822349283 }, // x^2^527 + +{ 1068274751244808317 , 478761882933885805 , 146343578721548466 , 2122787414678627286 , 478616655821124071 , 1223652533398739090 , 1178267270852093552 , 1585682559495334861 , 448375108812347778 , 28390211070681947 , 1690010627725723003 , 1631513459519602506 , 344109887337730484 , 1228367175232395654 , 1245714930611054419 , 2076109931139359104 , 1028725609142702754 }, // x^2^528 + +{ 922695624671435383 , 1212395461257377598 , 2004462039540699849 , 1640073156934071824 , 2048256174899844882 , 1784439921745628237 , 1181704167380381729 , 1002268784211250265 , 1203700422140227637 , 414802973276697203 , 1506620899880171251 , 1653959500223714911 , 761577027275676953 , 1394862681050805826 , 283665158959068873 , 1674581989169655504 , 2170268137063855658 }, // x^2^529 + +{ 1531823228490667160 , 655178204437606577 , 1143440975987174633 , 1469225472530244216 , 1459815855107895954 , 169158503015419167 , 896992338984130145 , 2224392167406479582 , 334969241330017474 , 1210934779672254914 , 958852377915238487 , 916143882424925025 , 1228314367757567546 , 576985231081272085 , 69708611488908557 , 419353864719896559 , 2063012113607020176 }, // x^2^530 + +{ 1561213794756615274 , 1035561623111560834 , 236042828876112400 , 2227997009011010087 , 69191692217035803 , 680016809348368644 , 304720676536884446 , 402216461956911069 , 579355410310536007 , 2067077610395244217 , 850246508783344249 , 1267387033405622409 , 381166642361949681 , 745560785470896920 , 475789434723626541 , 624301081669895306 , 542440096530351799 }, // x^2^531 + +{ 292947975657821923 , 1975118192564031841 , 1096919547621493467 , 1963319303199452777 , 1497672437671054944 , 587569660431161322 , 1640139998254479090 , 2075259177632397124 , 1660504006066529017 , 2098448192586763026 , 2110557029504033173 , 1649560687483066215 , 1687307417474238546 , 1953341749861443552 , 1238894388766834138 , 1741784409005434700 , 961090363500770371 }, // x^2^532 + +{ 1383869753498066511 , 1233178641086644718 , 983298541932470614 , 670427917276364832 , 1594590175512954791 , 1215937832423358959 , 1903793454103261000 , 2172773248760515308 , 536919802769335489 , 1192052568730958579 , 1911240856897478532 , 474283681972418461 , 1641036102716815339 , 1411044907503618945 , 1001175747401094733 , 301211985765609746 , 87149012356549448 }, // x^2^533 + +{ 261502789562703795 , 2039292976033461220 , 1383214847400482168 , 617091957131872918 , 11536068257558752 , 1594678644021354556 , 75861344789992516 , 571299992729856381 , 1893030021771949746 , 955316100521264931 , 1984661955054505780 , 2011703935837291735 , 1088722461445557653 , 1179450192264585869 , 2187858293377977903 , 925337903456050826 , 646310246691765740 }, // x^2^534 + +{ 1067110047296065055 , 1681438952663914065 , 1912868211773513420 , 157328871056550869 , 1606539524193585050 , 1826960759022391567 , 333004198356937619 , 1654504867491237582 , 1675004459630487926 , 71936368060300 , 1918748055540842111 , 1831638571780226898 , 1740919230167947613 , 1865657023192411640 , 1938852440014266019 , 294008211664586131 , 1233347209473542392 }, // x^2^535 + +{ 1793671892574625082 , 1130285389461734712 , 2256576488166743893 , 499935214652909272 , 1154848893191704610 , 2081455429764661190 , 132180046418477201 , 2017092125714317442 , 1267352468781603191 , 1320951561119166755 , 1819380377385314624 , 1968657260504504792 , 795175392323167167 , 138949840583543195 , 2205578352394323161 , 2162095450973436967 , 144991897502595141 }, // x^2^536 + +{ 683024508151477474 , 1048650848431764111 , 222063671742581704 , 1033879240711051787 , 2065492192337124448 , 1040278918101037386 , 1671617116839141169 , 1142933505587090141 , 578155580871550072 , 1397916094430897857 , 1428297170374867004 , 343607952975225879 , 2212099097846398741 , 659520961168888597 , 1099474129656084832 , 163872983722101162 , 469023960460927874 }, // x^2^537 + +{ 1156093888444545360 , 477156936151507247 , 340730541722292373 , 1631554541005175777 , 186957487417408624 , 926739184035859811 , 1357420454563306968 , 1018117004392525830 , 363668834887049598 , 562598157996426449 , 1477447398167639388 , 570432714234334068 , 797165670329651828 , 927307345530529305 , 1474634744709399927 , 2245157369991218355 , 586948150323806327 }, // x^2^538 + +{ 267980979185924701 , 1565212575331069567 , 2036070690586106209 , 850842928652802398 , 1084085447966709199 , 53832993778516816 , 2236093215844622791 , 361324823691972021 , 673008249565884673 , 1820092500335360408 , 2155516028757275328 , 1127096462606937572 , 1358543969239663842 , 2250855440900689232 , 1750872323705159361 , 1362418718801185396 , 766489969361488653 }, // x^2^539 + +{ 259726699384885201 , 1899046140654817590 , 1306363085361051998 , 2081068431945330598 , 85108856372668378 , 1324347710267860858 , 637751183869623188 , 2248344050276940170 , 2150579538601288819 , 1105694420952032875 , 952722029405414348 , 1555403505154017419 , 2124427035047642831 , 2043566203745579024 , 2297745588334532887 , 383567419144690253 , 295720540923262008 }, // x^2^540 + +{ 1861487178452566675 , 1408373324284705278 , 1763971337054095719 , 830694774025045496 , 1222854782641346372 , 1367429629279521808 , 646871018425974561 , 594901312199197009 , 1347745885562466060 , 1872975180162717691 , 264288217725438485 , 1587326205070728608 , 636368619535248259 , 1345295891447307881 , 147325724921249282 , 451151671184877984 , 369152850758367779 }, // x^2^541 + +{ 57601454029724418 , 8965969940832902 , 1015753881352776595 , 1272955433813211634 , 1500099915165437510 , 1505908015386217991 , 2200135170747962774 , 898929787588318880 , 94174721104731682 , 2001843482426425606 , 1296185933469804867 , 2067771350105959635 , 244437767883759705 , 115304829559788030 , 1570793303180703663 , 2075829501594571540 , 1142789736568430590 }, // x^2^542 + +{ 1666339398200583535 , 352498459116081565 , 1296181205638634316 , 943151467845475937 , 1576590058032732201 , 991197898685844101 , 172929644755996237 , 348073447626095407 , 1119639777406826568 , 569438225411593708 , 2284730591697077199 , 62008449878226744 , 237477582274396799 , 284434691435252140 , 1765995421169394732 , 1594311192946755506 , 604156017409724002 }, // x^2^543 + +{ 495281382117458539 , 205408453347821044 , 1681558300394231421 , 768174766423516475 , 2178619873339022076 , 765997180179026402 , 102658969211254460 , 895017413823772592 , 415845558640901473 , 601933504588026198 , 969782745266307970 , 855044719798584000 , 2201199786666131647 , 1734600819975899129 , 1006570536931532428 , 1130105133424164395 , 1127782802378551477 }, // x^2^544 + +{ 2279222264094136096 , 918140621636386578 , 764051053229027870 , 284578302438407812 , 18442247946635388 , 31558521455257101 , 2294641003511473164 , 1698376578572281576 , 1937426563738038511 , 809127821329680664 , 1605067175404678954 , 189108927488132646 , 2042036507825496222 , 311247532621290928 , 1403615118897576721 , 1715491077248039654 , 1885408148480015203 }, // x^2^545 + +{ 1303703719061282226 , 2273657250242045723 , 1357599208936374367 , 635087130862478000 , 1079733394689912801 , 1118552166016645994 , 606420152917155530 , 1461390879031614972 , 104855646611743091 , 1155586802792637483 , 1332607042374593381 , 485954066105103318 , 755622945227398111 , 100703703472763330 , 2104688739715121722 , 884188331727454949 , 634077400952306173 }, // x^2^546 + +{ 951241189979241574 , 605016052445461627 , 2017048237067736326 , 989577001336697190 , 729360432477738078 , 1891686993869218661 , 1178287733434616934 , 2257768800220793298 , 386183991328298626 , 1256576692082166247 , 1989644154430757909 , 677803830671194177 , 233612802004492344 , 1711459201958972728 , 1493606889466009749 , 2046914649687863407 , 621460642415971297 }, // x^2^547 + +{ 1751267799283060659 , 2256655950470869985 , 984875549537277532 , 2146590585318069342 , 1539686266680012185 , 25924698613741241 , 633436588936544176 , 1549785231759087109 , 934442226797007335 , 1754392592879566030 , 1106511892592859350 , 2133384541112231515 , 483183511756818991 , 1106565501063528265 , 1107187069130962112 , 2075632961004138802 , 1789791698038574768 }, // x^2^548 + +{ 2168119975504999102 , 12966540192424488 , 681037686628849373 , 194933206197471208 , 1333929840850796338 , 2213746149905142918 , 1379421507825630221 , 672612248824101656 , 335325159518504203 , 1891726571269569489 , 838501400504296092 , 1301803583046081493 , 1750320150554937404 , 67761357879073926 , 1985524641824792115 , 1623610528663151019 , 1386176498075642165 }, // x^2^549 + +{ 1725373491573591435 , 1047415675966614123 , 1624486786194930396 , 1270371958501591477 , 915493804007886656 , 2289688909829684654 , 2049603525909314516 , 148613066066958793 , 726433066490138797 , 1727275655898645687 , 1975538226366019203 , 394922847880149584 , 462814805660060890 , 1087564105835469854 , 293119996590319709 , 561334965874644379 , 1159197305565422760 }, // x^2^550 + +{ 1167941940931666302 , 186514058829683028 , 284351732075544532 , 1512524808600673716 , 43881750227659649 , 1609741131150076188 , 1125658924019416678 , 1011534154384997338 , 732738003772919984 , 277064895441615462 , 1622677204527889015 , 1938173807800443399 , 2063908410477010918 , 48488552879373011 , 1181372505578038205 , 135655409305671122 , 1938059649851535706 }, // x^2^551 + +{ 337206759525681069 , 1755948102219815566 , 678765415558248151 , 1298324546232590789 , 484850096725079792 , 1257105102233963714 , 1905953290815779223 , 1631095014301272964 , 27718500263208979 , 850594049252190048 , 583977122492931140 , 1805594056761021711 , 1719584503850087741 , 86179004867644487 , 1270985715490800843 , 644779453772114088 , 1760476987252969926 }, // x^2^552 + +{ 853995884080236938 , 369111089848434712 , 559743835711047174 , 1594116816433474826 , 35842475217144553 , 2171235383636811428 , 765712905092749171 , 941173958645971457 , 608455896272321575 , 560604720551238557 , 1845649540169134916 , 1718920359984151079 , 1401755957661962268 , 1423907959444825866 , 1098311071256242778 , 1528916661846841494 , 1508764511499232241 }, // x^2^553 + +{ 1508791960279504205 , 258737323991262817 , 2078642398527055752 , 2047350895402792396 , 1386159783711778842 , 2027047763369412816 , 58440814829283402 , 771612188948247815 , 1023214498156083887 , 844220082620919469 , 868367506978956802 , 460654633908296364 , 2166638508094415965 , 2152060517892743275 , 2195460306854592144 , 541094667496643303 , 2293587356561486979 }, // x^2^554 + +{ 1214656342962583818 , 757702747146927395 , 2189480375257771121 , 1816527465277679192 , 138815664117127512 , 1431350214961325326 , 1187978151676236367 , 1241806570983467832 , 1284450519130025998 , 1613889771871333389 , 1061608822774622375 , 381417471969594147 , 2180713817066758069 , 1573268990076834701 , 905173682016321866 , 1950470428221045886 , 295485711949393017 }, // x^2^555 + +{ 819753035519543635 , 538715919221404699 , 2219429537481971437 , 752393850271742164 , 77092035906327214 , 1114501521607776562 , 1781083659997559466 , 2154696941256077128 , 1218985834766672241 , 211616781192221457 , 216411965392177616 , 1670594910477530341 , 714505138692032780 , 2103941244229463221 , 2088317230298558512 , 1289168057502589286 , 1125637208200814412 }, // x^2^556 + +{ 1962227768978994180 , 1690314396114180321 , 375465114688955302 , 1798066679445937030 , 462818969271150710 , 1000261197673181741 , 449380920277416447 , 2291003141210787002 , 1295168501047080160 , 96762399469569918 , 673992173479089483 , 22635411461259319 , 690222719954237584 , 336145523606337534 , 934574030654348792 , 1843383288751365671 , 1895192556383603959 }, // x^2^557 + +{ 22617970229773822 , 1482887891197581503 , 190614907712811083 , 693572772014158846 , 2013130701640461017 , 2080394974487399438 , 1946114308346089259 , 990495636788197392 , 1782544219386492119 , 661191434765959775 , 2044311906562246966 , 1069940178504200830 , 1955224049483069684 , 2032802635089013840 , 1312150198687724551 , 1790320974584854699 , 1722451636719440405 }, // x^2^558 + +{ 844270734204704640 , 144569156478286025 , 458434355726727522 , 54107521005723860 , 1370238437704355388 , 635959790870056500 , 580190401330281055 , 1190738125435083361 , 1508034736034112394 , 384356207961213908 , 2225422022608450401 , 1307978291279169425 , 1836303719023016910 , 1688394455914172152 , 1145318805385872977 , 28214091532568837 , 2271521727551942534 }, // x^2^559 + +{ 707823463534947110 , 1322853985703915624 , 1283965375707685336 , 1235846354925013921 , 2241994185339373382 , 1492018342988994366 , 354756557339909458 , 2038382297798252220 , 1998256038116472547 , 1191608355457210551 , 431624398742182860 , 979989445521359703 , 1874604718333228361 , 863699730728041575 , 303002850561444625 , 351750811939826058 , 2086150517074464097 }, // x^2^560 + +{ 938650030581340927 , 1484495848437960060 , 906987191271901948 , 602861889366282296 , 829217328598139608 , 1170659179365524445 , 136537691170306827 , 2263710078069587303 , 1916941180571676310 , 601979432897153599 , 2075793575506860756 , 323119178978530887 , 7962577560787577 , 959899426480760280 , 465731965934497666 , 485390457639864074 , 182578072602393068 }, // x^2^561 + +{ 845056639071703739 , 2022501832369820141 , 1551830514420859659 , 712651911384419505 , 1901754482233053508 , 771255057924942569 , 1624974410054352307 , 1095555020243807180 , 48292506949982043 , 1924628272072369018 , 354506579070195883 , 2074354629523999876 , 481327135146565647 , 1980060303227111264 , 374025770449242754 , 2197437559867642882 , 1347989415958383967 }, // x^2^562 + +{ 2284531938332082408 , 2081446697857700129 , 407946796335100046 , 2284742117207953792 , 310471079731850760 , 1290351582175218317 , 356273760688651989 , 1910139122966702303 , 380631662657835885 , 2287374039009394440 , 485797501634087358 , 900166727954042323 , 1169554169155638307 , 1802101457472636718 , 474217730229244850 , 1004410789585399243 , 588639270649921383 }, // x^2^563 + +{ 1502830393741044692 , 502885788914291282 , 1000641636223469702 , 599101320428395707 , 2179406366865940840 , 358024368445093522 , 1564063948136384394 , 2159233836362830609 , 1080529492271670836 , 737489746809287059 , 779539060254650511 , 567680696243734902 , 803303944361973640 , 1778879099887965284 , 2245121666542231208 , 280989822576167540 , 2256030916132704537 }, // x^2^564 + +{ 1678854909602034917 , 1362544615060522442 , 1338371892984320209 , 1236016995662152262 , 2266586199968442015 , 1429545066557982811 , 1057272578263945968 , 1902362138019567296 , 2027249515853796780 , 1379458255463795129 , 715456741316196206 , 483096191538955481 , 562452275970679447 , 1899368762554121096 , 1095218941132187764 , 1182616069429316286 , 2041204243971349283 }, // x^2^565 + +{ 1470384206682188393 , 993056282930013636 , 2186884113482342484 , 1568683072711048719 , 2141576651319216540 , 1545634359639056795 , 1451267712100583056 , 583449252763690840 , 743076343569515666 , 880735478838481309 , 1139615309806234587 , 1405631565601779814 , 1162183658026694832 , 758880015783224342 , 186132385266916884 , 299496669995968613 , 2115484609912800200 }, // x^2^566 + +{ 2269185097674681740 , 368408303414772947 , 2272053720551708375 , 1632770988466577149 , 2005375285078385494 , 1280199055327212680 , 1821048605091132853 , 1567765420710739271 , 1887232479893207919 , 2230675230841783167 , 1361156385383252011 , 87414071150394174 , 611216773833872434 , 1860713875917257321 , 1409775498386462397 , 1690326679721511537 , 83275546754626406 }, // x^2^567 + +{ 790112276274407445 , 769228027816192054 , 2205289911751012082 , 696806322595942722 , 1027622205316503460 , 1843245508230762915 , 181348331184190272 , 1685443775553823790 , 765291022909566823 , 1159224061954534775 , 1753833798485424233 , 1131135065567349204 , 1004980355827594316 , 1518506610289278726 , 1077654190664918382 , 2049836184231549381 , 186534172155365157 }, // x^2^568 + +{ 2214978522047075314 , 1523958231722460737 , 940540633818853829 , 1502207690061290977 , 1973166365192858632 , 834167590580214713 , 193198187070116104 , 1200481096199012868 , 1045382432042256669 , 1043046955924667651 , 1764037894194441387 , 326214257353715662 , 847610851336013740 , 821380410810508534 , 118611704753506829 , 212870724809513245 , 1049669518188822039 }, // x^2^569 + +{ 1186686984731968114 , 492485282093702769 , 2084974668148141701 , 1954670681979820725 , 158025799762360442 , 1546024887967767275 , 321250855908273132 , 1839134851204623669 , 2276195450093740401 , 216550545714992720 , 1147405869335269365 , 1691809800568592195 , 92303605959988217 , 1444340652242832966 , 1276065726666195728 , 324774933653588943 , 1312430778251072843 }, // x^2^570 + +{ 1914401401876468669 , 1648868062260221854 , 1464059991570664252 , 875976384406088755 , 859422856357056602 , 1864309596721585546 , 516857141291982496 , 464095730580902783 , 934796258134400377 , 1817127289097008540 , 655971001935077689 , 680288930067826216 , 229080197392071732 , 921859076031383827 , 2242366335784005876 , 2231689867120356867 , 102494160827714957 }, // x^2^571 + +{ 1047877418576672693 , 850258032575291687 , 545055359259387307 , 939787324567586678 , 588678011951547088 , 397057856974487431 , 226066134643513040 , 2082177109290521202 , 866921181848612589 , 1377167370849823007 , 923546628885112186 , 1369468709683575581 , 163347741879505736 , 63898233712570047 , 1837149445977275412 , 81917523037053887 , 1724871657333737359 }, // x^2^572 + +{ 2302595391708576272 , 160985864775068781 , 764451814383377581 , 277491655221007957 , 2065357052112797123 , 2022995433719782905 , 1992649094929659709 , 534121146273082282 , 2156280075941140984 , 1374921692284132634 , 7490180772772763 , 724537764516397075 , 1458937057231627989 , 2128708058250265224 , 1343524011236415024 , 1632380201084339158 , 218723970886479505 }, // x^2^573 + +{ 2117760628529948776 , 2132935432038525560 , 768781595656590901 , 1400974401324013175 , 1245919916200029631 , 1432559837530198229 , 1163713351897028899 , 1923146399637847839 , 1213782762495170404 , 541538612171639467 , 1998922401826244596 , 1231856100509046580 , 579861832524317272 , 342657654818204433 , 1849901794740458260 , 2279916971309950571 , 760499761682595396 }, // x^2^574 + +{ 2133951096918945939 , 245427172150052114 , 981217690063201632 , 2240543031382098229 , 72038350069308602 , 597184866817343336 , 328644676877024543 , 183469578860761428 , 1484808128953021465 , 1223798115302938004 , 622162521478669994 , 1190522948279756621 , 1770221081272204495 , 300642277489993017 , 323299607262829861 , 1121130797903609296 , 1341151672362966624 }, // x^2^575 + +{ 978460885885818525 , 1015163128148908540 , 1977562332100546610 , 2245843532918136978 , 52755975506265961 , 105385627927894157 , 1072178687697178180 , 2189119972792037580 , 1846365892857759522 , 509344149142820345 , 1764914861664878049 , 1812095995141658018 , 972953132412161570 , 1195708733082367698 , 49856206632166450 , 1968416938611340445 , 2224505860268693924 }, // x^2^576 + +{ 327862488024780357 , 1457219179227842324 , 2230322439686492524 , 1014759634574897984 , 268418936182947756 , 1502956125465763704 , 61942509184664792 , 1760829907047336797 , 1772759420678440112 , 213631264477227981 , 1260050930099550098 , 1356809535018841668 , 2084415297676571737 , 392165946698433004 , 823317575518425201 , 1619251312183556482 , 1475671506190286260 }, // x^2^577 + +{ 1056862459352327285 , 650761739286013201 , 711866770850654745 , 995772669095949341 , 638628037366816307 , 319488467144926010 , 146863433379310830 , 1101916435400125848 , 1403815239053246876 , 1038453114803570080 , 467259301797897322 , 1758832454145478316 , 359553557196445664 , 1487375835680896666 , 76291938912745016 , 844090192831690228 , 793442078170731733 }, // x^2^578 + +{ 1952837235717320563 , 445430339419636400 , 122525557445898274 , 735595189125576324 , 1842210194389261500 , 1795223307042139024 , 751864575701713084 , 1119184159833325999 , 700766534388037595 , 393549636253210822 , 1662606888175396198 , 777088695141990512 , 1949046976963730503 , 659714914447882016 , 1701619511100158747 , 2106648518620441962 , 2230177471130012298 }, // x^2^579 + +{ 2242830595691081287 , 2153702821027923023 , 2056432480338738486 , 290410908425161907 , 1981631243730724167 , 1568909835655310667 , 1868498486537085636 , 443377197549410236 , 1989171328893245017 , 832914678880127633 , 122754022462592655 , 2074425172477633432 , 450810432342594695 , 1304742577811847983 , 1915105538864887632 , 398240897735172221 , 854257484180168406 }, // x^2^580 + +{ 2200340348805749851 , 459904691507133993 , 1398407253135138579 , 2223256024161740360 , 605045994980733172 , 1376873737656823533 , 2154922394517147235 , 1733951063198734927 , 972687456101926553 , 901838082782677970 , 786315965699770073 , 220890454000213916 , 1082354731585990169 , 1575625362271244736 , 1934345059883646897 , 610599809596399831 , 342994941095873735 }, // x^2^581 + +{ 135197059374104208 , 763606053289129943 , 1762314800446038038 , 1958652087897421237 , 1759073139864458242 , 777882068437388702 , 1929274536720142390 , 911476487406644691 , 2214565556314441473 , 52312220897893321 , 1846728531947717379 , 2200466005983704615 , 262302790665678959 , 2226903910074888712 , 2217869614731681025 , 56279709804267946 , 2290324007417928442 }, // x^2^582 + +{ 2033888752861355042 , 1032905065687727870 , 1228320602981295572 , 507759480115032778 , 2286473996360684281 , 2214758482416116553 , 1809366838165194032 , 1058372692666396235 , 1752374720633908247 , 783225856075389703 , 1873729037970411918 , 515708137390539649 , 1758253278936485521 , 2232321656689971091 , 54123739319322403 , 1645021409194515326 , 128999663975261693 }, // x^2^583 + +{ 1548696340275626821 , 1058994430734061174 , 975903143090188182 , 1753221425369032354 , 642770173718849415 , 72871801728857389 , 1532366481913853262 , 1685179220297983661 , 221740024932865141 , 572304397314497403 , 1337436598601163606 , 615711199196774965 , 1856428633974911262 , 2091160220746353073 , 1268041182491440797 , 1823672822413606168 , 85882960870940069 }, // x^2^584 + +{ 1596386067990045239 , 1082049082776347514 , 964167595689777765 , 2196584899289686937 , 1775478739112084197 , 668585706672723348 , 148931594902619061 , 1989674837193253753 , 548537612282770315 , 1196600058755599499 , 40994948219245722 , 585997221548702784 , 1852642327512527056 , 1962368180715517868 , 647388617327737622 , 1259769006990328711 , 760195312392461746 }, // x^2^585 + +{ 718683317139573302 , 320255468933257119 , 1602065008785819027 , 811539625884985377 , 473380658706433597 , 1912262500486946501 , 470045053505719659 , 2044632105828108925 , 1926951883673524133 , 2227261383404374216 , 486603446225142281 , 663210447975562680 , 939660586393225605 , 285150104962906352 , 1736759590302217217 , 1557356149606075095 , 202888193082920775 }, // x^2^586 + +{ 1704252131283387210 , 749862216125654467 , 1151691390735685357 , 1645735627001577084 , 1704474438618968650 , 748171802247682061 , 2192661098187053709 , 687285052039352483 , 854812886608086510 , 1254425642986060904 , 1755448133247766409 , 2011170119775364505 , 2238140979402216154 , 430682510031291698 , 1344094596771993123 , 1487316607310729340 , 572027053290063200 }, // x^2^587 + +{ 490145643447149312 , 139932608980010944 , 655464257025259880 , 394296759589777370 , 505632773723135101 , 1661411471151623719 , 2151487638856430824 , 1405022191175603197 , 1752924822934387289 , 540705285689857192 , 321557534615604425 , 357668350120260760 , 1216461776875955281 , 227959942379372288 , 1843268809411056088 , 1278964120834620296 , 1475031348508152943 }, // x^2^588 + +{ 77196441284986546 , 2116432279354126192 , 477307664737255679 , 2054284248076058866 , 1902595507518183399 , 892309383355817071 , 632707825296532637 , 2068144493364120654 , 2269464712931165434 , 1869550090717623995 , 1230295724219128689 , 265213902138950946 , 2035223329405422145 , 1942656580078323795 , 1193709919134967859 , 2129017786957860238 , 1381902932849007959 }, // x^2^589 + +{ 1250515786673063664 , 1170029995563455371 , 1875333685750981198 , 202301072852130868 , 2043478147118479243 , 1430654884019451218 , 1932432698651776626 , 906545901346634684 , 300667563272986237 , 1419422183404003464 , 1991379549654933852 , 647455449394880739 , 694191473419776108 , 276654368069638649 , 327518818778853777 , 776612031552014882 , 754333675021774044 }, // x^2^590 + +{ 1494337748978015003 , 2195753570178835409 , 1756395833112881603 , 1391513303657053978 , 1469720991718755668 , 1385546023774706695 , 2174495928889154879 , 1845916193012260560 , 1508599521784450080 , 1646177877887412686 , 1600214236327823295 , 481492506494972498 , 607939032270197735 , 1035787083329757142 , 1867038566495963823 , 1327899656420714797 , 120455193991568778 }, // x^2^591 + +{ 1272270033586499361 , 1355938084262029033 , 1130547642931602057 , 1571210037203668042 , 109838764087692662 , 665089929034619866 , 1477929841071085716 , 354404882207113353 , 485207799804145872 , 295271887824129191 , 1434571796278931709 , 1640884996563085247 , 349639709072954139 , 2048198598052923555 , 524893036895320686 , 2241615913147991183 , 1476041495950183974 }, // x^2^592 + +{ 1191478803597513079 , 179928617987606724 , 1893767020776627979 , 2279764014883753334 , 2000307147025567411 , 1317337023680470054 , 2103432586600253524 , 72635103884479033 , 2120393133065940248 , 630577942926446005 , 184690001576938472 , 724734720983686380 , 2222559033240707306 , 957823503700662442 , 1530455664164510916 , 1897774219578829063 , 1565275869726572277 }, // x^2^593 + +{ 802169516563427070 , 2266388954150660250 , 1016109430849964502 , 425155158957108184 , 1509177586061010059 , 735042889547641844 , 435841014763623437 , 552466077216086185 , 1380304476103110982 , 67287297735634201 , 447647206919187346 , 2068383112520459072 , 1700683878491979663 , 876911219219450197 , 1724440678224620967 , 2161646349907542457 , 1646103618347380320 }, // x^2^594 + +{ 612487302971671307 , 1375201488802854426 , 381927427343438951 , 522937542366715499 , 344542446499511062 , 2207818055791032517 , 1589757712162343309 , 800577551503529820 , 1901158862710281177 , 282526012842555873 , 978266672216571827 , 851384948740770681 , 1847198461333883874 , 1701120025203313330 , 1579726260607682225 , 425398491832428623 , 470525020962949424 }, // x^2^595 + +{ 2088490725567484178 , 485853289338907617 , 1031877816384950332 , 2204970857389602283 , 1742289513696508421 , 1887097317304814932 , 611739697091118719 , 620524462574164777 , 866744533296715680 , 113249287824674575 , 1094771911813698402 , 1113977650240159227 , 597674782116109822 , 745608676499086192 , 1626698293359327222 , 1428826314680818479 , 2215603110047911506 }, // x^2^596 + +{ 376585604887633526 , 1048922386135384477 , 2142424598885808255 , 675251024248975850 , 1545330669815065990 , 1857893574217764638 , 2048982207690498307 , 1533653988510679070 , 335130892749828677 , 104131490905494608 , 2194266840041437356 , 683616020969961024 , 2038987316895996656 , 917297429323765875 , 821082630191764403 , 1666057951671669384 , 1130032032943836952 }, // x^2^597 + +{ 1041829149523127110 , 1951902012535484719 , 2152661804693326326 , 1269908279296181874 , 971953632796866049 , 1266540697681616989 , 2071865642155459708 , 845692533418042777 , 1241457687074422224 , 161412923983560739 , 390632925491962906 , 353948016710720772 , 2026700469979616031 , 96483949026756707 , 1773219759585896547 , 993715984447404907 , 1829150519300709735 }, // x^2^598 + +{ 877798478622581516 , 942092329022409512 , 1965158005364305044 , 1441028099309753513 , 500071448451573682 , 1840680567469132321 , 1468971950339879193 , 1438547156759802726 , 549595496973813971 , 390734351826704403 , 1073287705054298510 , 48924576386470253 , 1989283157579117827 , 187450184005400512 , 1949224458829795298 , 1951496711030456157 , 2167858042677531808 }, // x^2^599 + +{ 1996597802411685974 , 114349701898949545 , 1084220018985830117 , 27462757590845683 , 1081095686730339174 , 2059987003957425282 , 1321806358033656174 , 1828830847664378831 , 1455949950124722259 , 477041639297859939 , 2295506231622178555 , 1152831764620264515 , 396805345192155178 , 2211812614000847756 , 1962229985869550296 , 848640427896833485 , 548986687197667440 }, // x^2^600 + +{ 491594119422354073 , 1742453895833966377 , 1525602929914324406 , 2076597071019376631 , 865550929971279566 , 997883929562138029 , 610577039659314246 , 1003718639233780963 , 1951174507028809908 , 1185710764340213666 , 1693015712372426191 , 317455835845832474 , 1848795541252464763 , 401332635199514101 , 224456822593358236 , 742409296289707819 , 2118807906613325507 }, // x^2^601 + +{ 1293009127273644989 , 1124274480353253667 , 1810129434176838306 , 259729045897854950 , 1468101939413453436 , 1111947300756487949 , 501989537109533070 , 1388491866061828170 , 1312270603637319867 , 1615629996017192524 , 2134426516814571448 , 548391958129447766 , 1852805539182613949 , 562903002408545356 , 1582149854427086182 , 1136405868045684314 , 679089614531440081 }, // x^2^602 + +{ 786115001012233217 , 572934901393961574 , 906662352794537253 , 1146052338661137694 , 1717117579480047687 , 2238979311119472866 , 1282072454711511764 , 913074328950615201 , 1508062462715721091 , 585179548016207318 , 2263240538685112497 , 212602680696443031 , 2286609014980268736 , 2160223566289961256 , 457719410118216561 , 892534882541613344 , 1802928045269113919 }, // x^2^603 + +{ 412244890005542545 , 882317329387396531 , 1194216517008066508 , 2113679728861695547 , 754826510247388584 , 143906396701128982 , 1624499088946075077 , 1517734354505524658 , 1319665375831884375 , 108068462219720639 , 2061550944874121143 , 1387192717449700004 , 1784206536018821508 , 1531349906234275665 , 37851629185782003 , 1964408593925350957 , 675543575437141874 }, // x^2^604 + +{ 2224871078409190905 , 1109593689354222314 , 2282026642284422235 , 1526142908234895159 , 1185903712917801891 , 2095637833179633450 , 1684061887934064807 , 1459637973270975973 , 2080524575243813761 , 948583036372588019 , 1196499685761340006 , 1838560132753716756 , 1035066941117701308 , 1633636158414982077 , 2082933534230116545 , 161677865488580416 , 936609732430805584 }, // x^2^605 + +{ 409257345609329461 , 1002655167281875678 , 18470199587775000 , 2184022032975947208 , 148234944683729763 , 2162572938835480438 , 1216127754790813623 , 1303762224282752882 , 2064136757082740176 , 518955562885803190 , 1212819681300030394 , 486562075491162613 , 1283290324562294532 , 285537074615846742 , 321224661976450451 , 2089560323722387545 , 238275251292120492 }, // x^2^606 + +{ 2214799429964260023 , 694747922604332887 , 312465276764308387 , 314561248153726635 , 1765153767754864756 , 1092506825381016367 , 1475330654269567868 , 1379961995474423138 , 1380037933141733384 , 767686246763038167 , 2008926192530430712 , 304944109134708306 , 261183406799178779 , 326684916374054817 , 1565573428651338229 , 1920871811367768904 , 2089282340964983664 }, // x^2^607 + +{ 1133198628406257078 , 977759521511265809 , 1677025924443289061 , 1729641585066757341 , 2008693257322528571 , 1421311051680525446 , 2030362323209952329 , 1921889928974731930 , 1093849407549420400 , 1836335521578497369 , 407868381069619222 , 10208083363410986 , 1550647306879485613 , 1032274398117330349 , 889271835949247699 , 508828554264478304 , 313811787637759042 }, // x^2^608 + +{ 265345699270236054 , 432199859212969150 , 874558322199992458 , 1131965915049654978 , 298519106167257998 , 10561017697598846 , 1036255447357471766 , 990617823928118898 , 183634792806558724 , 123066866696319933 , 1303845119890513396 , 1915539994626985074 , 2074006245341867746 , 442443726074289720 , 1398504520177556356 , 2177822133301482183 , 1618315631184181685 }, // x^2^609 + +{ 2281731104267965972 , 1565833165249376146 , 2084133230658243672 , 1466077014346623711 , 2100113102745347532 , 1509772133714278653 , 1072220688498313491 , 698970180110383152 , 1702069119117461364 , 786447122909266339 , 1700725262288581680 , 1201605067747742747 , 1285909410275446050 , 465944984489850383 , 1581258227975449663 , 1468892983675794809 , 698369184018114847 }, // x^2^610 + +{ 721614432883106726 , 1168570529527401436 , 1558741633956623588 , 625821206916677993 , 1729484582639558993 , 202818544256349027 , 942584755749892262 , 384853745237896372 , 1878778990418394018 , 2006136039057883787 , 2000492489726132701 , 1628427185964600209 , 456608645446900334 , 559232459658214239 , 1425457030239632449 , 287429815653732691 , 1537646113987862352 }, // x^2^611 + +{ 168932144896498705 , 1584765261048819233 , 505170343346470483 , 1661727371938733976 , 58225995502531476 , 1069662977595621678 , 1534921440358104004 , 1665430445118051718 , 1421063952495178964 , 1964407550412120431 , 271153105959670492 , 1303954744475330405 , 1402417619008570585 , 2067748336717081462 , 635378162740815380 , 1966388298672109925 , 2276135507117268900 }, // x^2^612 + +{ 209516738545946051 , 126364818200849051 , 1934171883678238548 , 964383175854976730 , 1426910927989095855 , 1225737711393069252 , 545817142750996161 , 1941470598322211846 , 1888603351110522964 , 1693849545801590503 , 1145960696683862080 , 1544154409134561092 , 2057079562609173728 , 333449282037994372 , 2138527354092198252 , 1857839034788608299 , 96149649256385712 }, // x^2^613 + +{ 1680829537551411728 , 2134567358027244766 , 2233241443836144884 , 882397883456946081 , 1272913220199061746 , 7737651019535212 , 554065101789910033 , 1237958145783195446 , 1349598693130928045 , 1212195573003581110 , 1392362203075907328 , 913027022784782751 , 411026031675105306 , 872967435734543202 , 294712992119516029 , 272260211295161762 , 1636719289988127499 }, // x^2^614 + +{ 1664102028071512887 , 1120090114167125698 , 678215188753805783 , 2138907996085142066 , 1721907479145867302 , 1086048121088426493 , 282597371457515207 , 2252562071097166874 , 880501568810700587 , 1513947683103494818 , 118765667707656670 , 133926112036721838 , 567919878484948061 , 79410381524546935 , 1454226739666450321 , 1554107108291191805 , 1442417286842488623 }, // x^2^615 + +{ 1332050352400493680 , 1321101334747797025 , 124286076382368784 , 2016174712781756901 , 1731820299459346863 , 545006347537545995 , 1068874777126444609 , 767902913608305873 , 2267594054719694251 , 1590335123866293983 , 868156357394677648 , 2249143243430804218 , 347528411881171670 , 1754162230470399965 , 2070435897818234391 , 1115080034382184583 , 727133352156610422 }, // x^2^616 + +{ 355843900790907311 , 363191259548386230 , 1247995738147301243 , 1637822561418229980 , 2161312386590710193 , 827479641142168242 , 551490280055656820 , 116433208177525158 , 219743626260276428 , 1031342298455165770 , 956941458946607562 , 1971095287608216767 , 1197895453910374577 , 758722071093994752 , 777125942555276007 , 1415023106509593626 , 318953060159670820 }, // x^2^617 + +{ 2116009462654498660 , 816261448355929278 , 2272633719403001435 , 573255612065573253 , 968141095699581750 , 1763511366639175689 , 1173137617258455966 , 481749672060198864 , 750918552038818940 , 519539565364235474 , 1926446971667744959 , 313336000413603815 , 515893570456318246 , 1497339799087374476 , 478287049521531475 , 1236625257683288385 , 359335556903155074 }, // x^2^618 + +{ 284411256262633501 , 1789336543617378723 , 1511246373802383265 , 937616018328420337 , 138227234082520224 , 1667286674451103850 , 693601919163926025 , 13505785652584434 , 720941360686097746 , 958299499540120680 , 2165799682030822154 , 569950597702024056 , 655621404198221825 , 1755168971312171278 , 2043596507506252973 , 723457099999134940 , 542348768717201728 }, // x^2^619 + +{ 14465848372683520 , 998603764202551247 , 724938950471219595 , 325209651844259777 , 821482747183096187 , 2233461975545399202 , 1931346739821426382 , 2293325179294131554 , 243302969523090162 , 1510343779638164774 , 959965695881709576 , 1831708054543131034 , 883847853251423712 , 1165812877635303160 , 2007671568816070608 , 44906786919162811 , 1277515245984716365 }, // x^2^620 + +{ 631454168243258384 , 1518494517880443027 , 2287322260213126417 , 73685056254736833 , 942598569327822559 , 1532992770144658039 , 2229403027115926821 , 842743413258963958 , 1865437000699847820 , 369346269649870812 , 1254468168457467223 , 559290945795297932 , 1457535932113599162 , 1926542806880420086 , 437581909774872900 , 1002726378631501533 , 182139319307728305 }, // x^2^621 + +{ 1539785164984779758 , 2045565025200148915 , 120085588989386291 , 1851688824536244542 , 1980194980609785714 , 1768302648237998273 , 937420755919973678 , 2210791368804399387 , 328708870574712683 , 1007467584698506438 , 928652866696652949 , 2228808519508067530 , 1642940388306822455 , 1618552641970232946 , 108597732587521580 , 1988412225258659433 , 1660448156453751001 }, // x^2^622 + +{ 131526482323749840 , 503434317381483751 , 1560765838807596555 , 1027232124412255852 , 654779282895217397 , 2273302731188942421 , 1551720915692515402 , 1826828338382462468 , 604485879763220723 , 1057737165588422306 , 106531819221246981 , 425783162197347937 , 489984741847314768 , 523779814301405487 , 1865105780134618992 , 1677103130386412459 , 318671848522267610 }, // x^2^623 + +{ 1639089103549084783 , 2260330277551218496 , 754892153485552977 , 2047710903557972804 , 2229320667962732246 , 307697180850646681 , 423771572510991367 , 17754501861697173 , 1238910344976760345 , 339140894113319789 , 1445828176546996833 , 2042997377381022070 , 2207437390435628445 , 551144982338719121 , 384944764939825909 , 1474198471229196249 , 1659242296891127810 }, // x^2^624 + +{ 795309147716951006 , 1452711178054134843 , 1664782861363981358 , 1006405310566793269 , 971226122955741921 , 752466486101956684 , 1168643572163743942 , 1369730711422397346 , 627654132922219702 , 2104230754718381006 , 1588968809641801416 , 440238626377162178 , 732134947635506053 , 1160506871469695759 , 395151165185992129 , 957703098223865589 , 1844022625316455575 }, // x^2^625 + +{ 1964890520513046164 , 829237203674997277 , 1045128031232022678 , 930832386865989645 , 501678256081635892 , 917829023495631073 , 881831635034313098 , 394230956869842550 , 71895808688446751 , 1874849501133161758 , 645524260474403693 , 301748792077270066 , 1063834409487547589 , 521966335959428443 , 735272076777014321 , 753999758410424987 , 292792781171616060 }, // x^2^626 + +{ 1976769506118304887 , 328773719961068411 , 538585052711106822 , 2240145575420715174 , 1291008337036982313 , 1034350880207773432 , 1888353090737342761 , 1978548213503129609 , 743903982747501766 , 2240529593386457105 , 229308641102639039 , 1678061221588734337 , 1248567483083113072 , 1768596733943584627 , 1268676342298500384 , 216631313378191648 , 1830565281699080858 }, // x^2^627 + +{ 222335339024805767 , 146026382943095887 , 1745991091656491682 , 364572344137903996 , 491711339269051713 , 1355802228883764600 , 2287182613212117809 , 1628584733201147266 , 1730760626189599809 , 1568968802576521126 , 311144633575093285 , 1257985237943883059 , 2071814648333720000 , 687885153740420654 , 134464058021476074 , 1159135545218675174 , 1046016356313666266 }, // x^2^628 + +{ 2218238585802550263 , 1796073488881922547 , 108147160614248440 , 2147497677742828723 , 940377749228338777 , 166702239352185028 , 14837186174842935 , 1881782378259233528 , 442792017566957734 , 1550966771279227259 , 1902483003501989215 , 660158154476503000 , 673105302791153020 , 749237522153030898 , 904762939332248683 , 1085180116177134000 , 32410680807805190 }, // x^2^629 + +{ 1565357784323540059 , 2004567400386087250 , 563556471193393347 , 2176504294263508416 , 1354931238262729258 , 1868302215996805633 , 1039100426489789297 , 540592058162156675 , 2043699722662531658 , 1444431990121166178 , 931232743518887886 , 2055389098129788451 , 1235540167366576898 , 1090861860232324736 , 1732281293507875925 , 1285969498415451875 , 1757636524168521125 }, // x^2^630 + +{ 2235287391127506303 , 1401636021589024058 , 2051095569701746947 , 644542369524563085 , 1717409066688580033 , 839878318363782234 , 964338104498650467 , 193111125860611415 , 41226228181058700 , 659802192172642300 , 481644033258717967 , 1649597320109931775 , 1169882823869469374 , 2274302558105332483 , 318951044439334783 , 1790653470898866515 , 1273274762300650850 }, // x^2^631 + +{ 300315997535491308 , 2172766343039137706 , 1640387745692897945 , 1527918068635484048 , 882433389130238556 , 519571876740982088 , 840810181955840317 , 967721991925117462 , 757987265005423150 , 692837321139327525 , 1347675233763916865 , 1262263002781039893 , 366275012213686434 , 1720518743710286974 , 788123176573078844 , 118677909193430055 , 331168466283501375 }, // x^2^632 + +{ 2204724021283944336 , 614667311623152683 , 1844295995732490949 , 810904822281747865 , 1057803411491878257 , 2192784617269518738 , 525328525709235908 , 1625675926696707314 , 2219520795837515346 , 1111578739349697071 , 850264822465802254 , 1875225445537474991 , 447934460789202298 , 1577693216054964532 , 2069208581718856575 , 1844971513814599533 , 1100047974003437056 }, // x^2^633 + +{ 212063919658939349 , 1955050766498331130 , 1016643445611085361 , 310923000117302398 , 1108559594383531725 , 1574096462279058604 , 2058721019806527059 , 1495555971494333315 , 1290148625133033915 , 1726857770258998357 , 839176472902748525 , 1938011636448040623 , 1509176691584187835 , 1684996881754410913 , 339436873350779373 , 1476161426144378753 , 1443502235558451143 }, // x^2^634 + +{ 2154146131717687018 , 1161290317713326050 , 362912384144320809 , 1110332862415808487 , 716729690755657231 , 1048283751964241153 , 1336749180461386759 , 2280348028206541371 , 1259918326978354156 , 1980538993489881425 , 1333565492277683625 , 514625871678292821 , 1173265787958600132 , 569893472219264300 , 812175666077334991 , 1255701238860433930 , 79993120593823961 }, // x^2^635 + +{ 409217992666385378 , 728224420299246128 , 1959936179576785895 , 1444295307550571182 , 998063979246407739 , 554682441648959407 , 2073233365208088525 , 1349861235690939694 , 1097281043663983707 , 1649731108960027223 , 2214398868943408274 , 1449553717147663103 , 2196500661345051527 , 2171871885380914429 , 491427195052411299 , 470657045051378516 , 554494320060727622 }, // x^2^636 + +{ 2211653713656632985 , 1473087100459732074 , 345838890415354412 , 1445623252958685565 , 1041419654691395738 , 2188283266242968331 , 1417777133392604784 , 1154814074996216406 , 1442989098963226134 , 901383116742510681 , 497212216058355345 , 999731586376214828 , 817831951035275271 , 159325628653133022 , 120914548489015393 , 1449314802372642427 , 471104110110980884 }, // x^2^637 + +{ 323038291515073224 , 265070044955668299 , 1053676807411822176 , 2247226908652601286 , 2083016828474103062 , 273234004102527575 , 11857926472424922 , 2055314572998661967 , 311921811886787132 , 1870415531374949840 , 21265502209057804 , 678112836970959466 , 926490438737525589 , 2027644346888215584 , 495557988374717777 , 1817993454480752541 , 2141242677896973878 }, // x^2^638 + +{ 1445163042542523231 , 1767410038768111356 , 462427149761798838 , 1007504177155879483 , 1181224656949316486 , 357022206754812124 , 1898271363493710619 , 1339720449183752193 , 883758224923786172 , 36020177946849132 , 461791639260431974 , 1411405712850290498 , 701758173778161093 , 1222887871945629218 , 1174213062638935911 , 326342461405188581 , 2211032895429848005 } // x^2^639 + +}; + + diff --git a/source/externals/clhep/include/CLHEP/Random/mixmax_skip_N8.icc b/source/externals/clhep/include/CLHEP/Random/mixmax_skip_N8.icc new file mode 100644 index 0000000000..13a2043194 --- /dev/null +++ b/source/externals/clhep/include/CLHEP/Random/mixmax_skip_N8.icc @@ -0,0 +1,290 @@ +// $Id:$ +// -*- C++ -*- +// +// ----------------------------------------------------------------------- +// MixMax Matrix PseudoRandom Number Generator +// --- MixMax --- +// ----------------------------------------------------------------------- +// +// The code is being released under GNU Lesser General Public License v3 +// +// Generator described in +// N.Z.Akopov, G.K.Savvidy and N.G.Ter-Arutyunian, Matrix Generator of Pseudorandom Numbers, +// J.Comput.Phys. 97, 573 (1991); +// Preprint EPI-867(18)-86, Yerevan Jun.1986; +// +// and +// +// K.Savvidy +// The MIXMAX random number generator +// Comp. Phys. Commun. (2015) +// http://dx.doi.org/10.1016/j.cpc.2015.06.003 +// +// ----------------------------------------------------------------------- + +/* + skipping matrix for N=8 + three-parameter generator with m=2^53+1, s=0 + */ + +{ + +{ 788472011673754725 , 504392931461020386 , 2277048297991722020 , 536676515745497838 , 2196712233851697653 , 1212351258795831170 , 1507724523659869703 , 1373203865901861126 }, // x^2^256 + +{ 301950581079941521 , 942161077174856340 , 1709924881683456502 , 1236895465336323765 , 784131775911916825 , 2171381504524099377 , 69364380913386671 , 440003703207898788 }, // x^2^257 + +{ 1061315900878560816 , 1873403375992171499 , 1313963976151500367 , 2158461035133408282 , 354177604645659842 , 2201500956310676057 , 1511283231369593517 , 1710537319719334784 }, // x^2^258 + +{ 484634636820034254 , 1735343306326130046 , 1042617204208658777 , 1315652757806699188 , 1735818965585088031 , 1218025205131984512 , 263142304553001512 , 470504461483486782 }, // x^2^259 + +{ 105094898054487103 , 1166179934879398052 , 549478403625968529 , 1839539169546034080 , 1238452887272042100 , 1236596576663976697 , 1445126777176767961 , 2149640439599954656 }, // x^2^260 + +{ 343142614350713751 , 314395841028641361 , 407305795294142756 , 2102588657158640086 , 1994177381383943068 , 2026167339952671947 , 2178141325038374546 , 816875395538941274 }, // x^2^261 + +{ 11587422315470295 , 1312588512564319541 , 386403590131898615 , 2145406743745439617 , 1066349240680408615 , 2267309013399165408 , 791234776596952162 , 792589579928653197 }, // x^2^262 + +{ 777479078927516621 , 2203518127143989694 , 2196028283463958179 , 200338838404288377 , 1213770307665192822 , 1525788853799045841 , 2089490761795261036 , 942136585769864863 }, // x^2^263 + +{ 570706406354035563 , 2069840619049671673 , 1886681621518635595 , 2121926485976227427 , 1554412311824497337 , 1342861213369742264 , 2012088082383689899 , 1300501896141952283 }, // x^2^264 + +{ 1903360804461297810 , 2288340228194315933 , 1079326604544951471 , 2237448347695899 , 2181324518584330084 , 2140280266535186444 , 542417656612271251 , 573440772770857084 }, // x^2^265 + +{ 1932841970917172987 , 1827771334219024229 , 454668085749693980 , 1998014804297211539 , 159341797328455925 , 1783493636111498748 , 954150855658202309 , 381412810337890295 }, // x^2^266 + +{ 690155801527911916 , 1761888270497854982 , 95587394727764982 , 1069365478727371590 , 1408585825863833738 , 1043990648653252601 , 1320248147790458921 , 779190308039445494 }, // x^2^267 + +{ 683509593562709824 , 1042236153556730011 , 1587675433555744236 , 482064858701518015 , 774759967285602519 , 448550294595192330 , 928869768505175149 , 1532427718805330034 }, // x^2^268 + +{ 370477751932396939 , 840371969475102457 , 994994557979311450 , 2044481694457093504 , 1510082883968755944 , 561017964992626678 , 702590751919484542 , 1880405961758167320 }, // x^2^269 + +{ 727158450027905164 , 2085743032321553455 , 321803657954407027 , 1227721296924315855 , 1598689912706975699 , 352206360942618355 , 552632372036414045 , 2177787719418349861 }, // x^2^270 + +{ 1253745299122668947 , 637906236313436366 , 222120991912088984 , 503164359327056698 , 388027580368455654 , 949760161306465252 , 1617219323354638383 , 843651904641103555 }, // x^2^271 + +{ 1923911694993693089 , 560226400853857945 , 1936701492307784124 , 1748199052509055462 , 33957820815929422 , 1810345236831329961 , 858456818903359817 , 2118432073451085614 }, // x^2^272 + +{ 626738496840044047 , 617765167241145410 , 19237994901216891 , 685278562362866025 , 2264701957644881648 , 106101523936561452 , 521258113601299909 , 68254162052654336 }, // x^2^273 + +{ 1781946046930871721 , 770624478957889713 , 845947492851430452 , 2034770066802226795 , 200233197609134431 , 1452052310627261890 , 199322096220977015 , 1585248688520308006 }, // x^2^274 + +{ 2002476361393000438 , 1271556603469238878 , 1393993756892785163 , 4467157228062902 , 685060284083312779 , 233186243817914320 , 660587782107231470 , 1822548750327614516 }, // x^2^275 + +{ 2108244183316339465 , 582727018062128117 , 2085162998220028720 , 563349165385645425 , 669238301542279562 , 1954694382853125018 , 715522867478393688 , 702379801834299277 }, // x^2^276 + +{ 782068661175253984 , 1109041687542966454 , 1810187125967748368 , 365523157605568924 , 1990092834746784634 , 257393889886211077 , 1326087677690717750 , 1230899109047220834 }, // x^2^277 + +{ 1536503690895567083 , 504143623332155859 , 524236954269530256 , 462032826384579955 , 2005260516806561034 , 2248121905556192570 , 268671724442147378 , 473383641184363051 }, // x^2^278 + +{ 834444130431663841 , 744266152109888825 , 590933780561931722 , 1291338777345533204 , 2035011573923734843 , 317501560173085699 , 954895309600585114 , 672499611839848105 }, // x^2^279 + +{ 837016868976810410 , 839274742387313221 , 780259767852426704 , 1994532761732194548 , 1557969934292207103 , 1231730779027967583 , 912163657464699324 , 475287422407563577 }, // x^2^280 + +{ 1022880011619604803 , 1459303712499474246 , 816446646841872490 , 1773668771889012570 , 282893474599583284 , 1757089265824882286 , 2132893624529371192 , 1869074345988119025 }, // x^2^281 + +{ 672306820748123999 , 1395780953839561442 , 1973553681028597819 , 386750240478406131 , 105333081837134537 , 954943652501253988 , 558292504172958569 , 813031505616666431 }, // x^2^282 + +{ 1339661765865469731 , 1464906065206800824 , 1377143956763059459 , 1296294227285817348 , 26783747229133309 , 15123831758228789 , 1062933074617758702 , 1657039368069105353 }, // x^2^283 + +{ 1027660519995542204 , 1907446071754164500 , 2178640900219028509 , 2174887705519370029 , 2225206340524580963 , 1050436021061817550 , 769010530701912591 , 69450695637452962 }, // x^2^284 + +{ 1167579235557417927 , 1004551306610441640 , 2157449925047146098 , 440600533910314509 , 742991741006729837 , 418125732478183320 , 1363614321347923904 , 300078070845461992 }, // x^2^285 + +{ 2049601951722475133 , 133005337847029238 , 304186971272273025 , 2139661323049973724 , 1770237527238983271 , 699618988239135275 , 1001397389017988899 , 1483706709771154393 }, // x^2^286 + +{ 1569513252219367166 , 1916994012060755629 , 339273280325758544 , 2277665683914515509 , 1604342142068802990 , 1942422166106754341 , 1107593061812383796 , 1634435832337837414 }, // x^2^287 + +{ 210706878669676227 , 635175214043284086 , 776917991235898803 , 356281689287799394 , 1425905093387722203 , 1857750059153498584 , 1392947404314050147 , 2182961550597679862 }, // x^2^288 + +{ 1199005391983043471 , 404472206821238006 , 666238670132343789 , 1481356723241855267 , 1231496648796143372 , 1838219270583231503 , 1521036124956777126 , 84337266428046576 }, // x^2^289 + +{ 1830555445836500332 , 812428396167972179 , 568755150627175700 , 49966429017936543 , 2049600540457279099 , 1268317544880075939 , 777599317727164935 , 1183780428364360568 }, // x^2^290 + +{ 1133458770227416151 , 1844398892304992046 , 970929079461602910 , 1662108249215799052 , 478828629658121173 , 1538495058922000417 , 1311906645728583872 , 51769387915209644 }, // x^2^291 + +{ 369578230448236233 , 782029836481090454 , 144995705299552657 , 1524199868270218670 , 488217669629577701 , 1587119896596386118 , 1425190565259289630 , 826359071168357659 }, // x^2^292 + +{ 2019136696728127016 , 1048649148810883230 , 2004749949593011938 , 810942544842237741 , 1213043404158359968 , 1342796069439195349 , 369708213807778039 , 1472748220298669363 }, // x^2^293 + +{ 2177083798302496430 , 1503796256140782680 , 2238358145333550683 , 203593728399275042 , 205703753929364380 , 1681042914305437288 , 2062242024433876039 , 293501595822231643 }, // x^2^294 + +{ 89846022262964187 , 881926222753186517 , 406877599522224183 , 634246809320589194 , 1870825586685077630 , 462019898379233272 , 1933051117396846356 , 1449023606237867375 }, // x^2^295 + +{ 3446696032160400 , 1161864821806539589 , 964808837353475954 , 546939397855790115 , 907722459758190488 , 962757726761320470 , 1285815466625699166 , 1528430426485367847 }, // x^2^296 + +{ 1100535663455617606 , 151561917972605849 , 1430340534255315618 , 602378195013145983 , 1526020505064407654 , 433642186903420258 , 1458426016194621281 , 369997457324993082 }, // x^2^297 + +{ 1044572281354841124 , 609487167355401921 , 715055404894913111 , 1805515509832322624 , 789834738390336644 , 1383034007732524099 , 1496613287887401152 , 886019072466742632 }, // x^2^298 + +{ 37819714311792148 , 2054786481407342613 , 1914956661080594693 , 1940497164481456358 , 965922306316775730 , 1631436093620104150 , 1713873682350301249 , 1391415491535867529 }, // x^2^299 + +{ 708495849912990857 , 571708336170966345 , 1880327619849146079 , 1448148826196249782 , 124570492848568181 , 597347942522208170 , 420222381745859474 , 560583396340484075 }, // x^2^300 + +{ 1550963433810696679 , 145069277966935686 , 1629339925940844247 , 1780563188637252160 , 1106128532322376946 , 231652147891733394 , 2011173486555346539 , 1555515926748290067 }, // x^2^301 + +{ 635364520808647345 , 1458100457503478471 , 1155792098374175261 , 1202746080177125263 , 399756859533527955 , 518256347279472300 , 1596495908865940726 , 155073836698060827 }, // x^2^302 + +{ 625845535448002256 , 1103868466048792762 , 4774591603328801 , 2070705472073003365 , 1154377422221763402 , 1282202665473504057 , 554731256752231813 , 1227474830096266635 }, // x^2^303 + +{ 876744482754218306 , 868276539506925197 , 829864219155081038 , 1969171369611387053 , 1945617946829525712 , 1840299847054821149 , 2293590501601180619 , 886202450232538758 }, // x^2^304 + +{ 1002658805586069749 , 1951318244588682007 , 315126823664272784 , 1280030551904844190 , 775240578777000869 , 1684343105437572569 , 978506963215340432 , 637650574693518384 }, // x^2^305 + +{ 979432457956603999 , 1260530652983115482 , 1946701112549761554 , 131010500956804676 , 1506696341331438266 , 746823145128473385 , 1656790250637014085 , 324268558051174183 }, // x^2^306 + +{ 351151469113138787 , 140308302629015561 , 2137383103334280244 , 1728659755380072682 , 962199643632040481 , 1197298249640415717 , 1038738309744980027 , 665933806758430945 }, // x^2^307 + +{ 567872053582786618 , 576583701704935966 , 400190914689144093 , 1000114246576758781 , 59658785149987502 , 1876321531663714521 , 587071714224144245 , 1570961360266607321 }, // x^2^308 + +{ 1880794593726127948 , 1472822173003515236 , 39394489282919262 , 1797956414062729466 , 2022248583473828177 , 1034142978823269584 , 475319275026578831 , 268560799076533340 }, // x^2^309 + +{ 428959846958695691 , 873827817733352275 , 967974244628146114 , 379757671514435698 , 1657453105703951272 , 1178249096746908050 , 1544833596922417858 , 1226728701647851869 }, // x^2^310 + +{ 749115335594391473 , 165990191250191116 , 638293485960375803 , 1485793551339244846 , 326395651213318577 , 1241228968737542153 , 1306590561651809509 , 1262671243044191015 }, // x^2^311 + +{ 2237497971177297230 , 925843085457910427 , 1372168680037608587 , 1729925345006977623 , 1157872351743549918 , 205312857472775018 , 1397050525145413726 , 1791160569977470168 }, // x^2^312 + +{ 2235240444070219979 , 443212627747770631 , 642911254630239763 , 537775576672600532 , 619783443718011281 , 1451065064137832426 , 2040184580267611651 , 1939863716465189591 }, // x^2^313 + +{ 908678705050933036 , 1591242364863898049 , 1834632839234433882 , 358861541042313179 , 1602792196645577517 , 621809784014233788 , 220157875365495388 , 136872972425544411 }, // x^2^314 + +{ 1230849990991258203 , 423652695451705646 , 769617740673346473 , 859717384814713761 , 1223733192958349783 , 929363982417419596 , 2263094111123397933 , 1854443195695139601 }, // x^2^315 + +{ 1156893085045594838 , 1388783712000510730 , 2088112935468358575 , 545336826223343096 , 1439034209581278105 , 279801622808440468 , 2152771379742047648 , 207221331995086342 }, // x^2^316 + +{ 1498402897145517819 , 1941267259059958728 , 270365707143490596 , 1212566654420311341 , 993382973533279627 , 1448525898637405197 , 1225148411247171749 , 211486664223965307 }, // x^2^317 + +{ 86088540808859243 , 1194375216919362501 , 2081057485419999651 , 2103299876302453116 , 152425588435974314 , 701667713217197173 , 1048555768172131473 , 2103277142094652231 }, // x^2^318 + +{ 1855356366424952210 , 1081691332597436464 , 609941249894072913 , 986792017441346181 , 289373896438088252 , 470376658545800600 , 1117375579392367641 , 1935625758340632926 }, // x^2^319 + +{ 1170050089957867933 , 1308686772456869298 , 1674906313765571608 , 1464326731050173676 , 40497119027202016 , 1442593023742107967 , 1100942177931282831 , 1460024199156889536 }, // x^2^320 + +{ 1593324372635135333 , 1751124220276161674 , 1921835203354336412 , 1237664643534502483 , 1322103835966951187 , 1658312460368229755 , 1537664227157675781 , 498445623124875660 }, // x^2^321 + +{ 1515927140763007881 , 627289680129171564 , 329969347928093767 , 1226876755200911016 , 1125252537457916397 , 2263913901441709448 , 1854011590937779238 , 1470923382375387346 }, // x^2^322 + +{ 1667320094812495012 , 1385101183505454386 , 1781137568039538835 , 282896000930313637 , 254449706969779138 , 232195004974727664 , 788129385157539908 , 173640545296296723 }, // x^2^323 + +{ 1025935590673211777 , 1068021612873242937 , 756075084827465992 , 2053699902553183422 , 1878574338078405571 , 1784483770701900383 , 24423148530270471 , 1417344168788009387 }, // x^2^324 + +{ 1153801351773457887 , 1845544577903742230 , 297727241144859813 , 176755814742023357 , 431437456411004018 , 1577170582795022613 , 242927191126292217 , 649002295735752568 }, // x^2^325 + +{ 1687195288663497941 , 490947911518336100 , 344530515134218494 , 735620802136881566 , 1858626666800894353 , 517616270162278233 , 1187831803267794970 , 802344586470548574 }, // x^2^326 + +{ 591761506437429396 , 2284919856729957422 , 2062745832552913508 , 599245274943010194 , 214355454017472712 , 2288175073561083074 , 1914975698503949054 , 2246689342887056995 }, // x^2^327 + +{ 118006265548731945 , 58024496342916194 , 1173948173914037831 , 1459672590572365387 , 8106269035442777 , 65489039967941369 , 2154450358757882263 , 13667171181254595 }, // x^2^328 + +{ 178732043725977272 , 781254935208702311 , 1340396333474937182 , 1236603092600645616 , 2141079809370338796 , 208963248081834137 , 146915832059980380 , 1004968557515270642 }, // x^2^329 + +{ 1714938032014376334 , 34911693439117236 , 461917198749199349 , 882725469526879881 , 2098359896663840801 , 1036165144151865703 , 589532674986917988 , 479021353453889568 }, // x^2^330 + +{ 1285279925438585209 , 918083833538130378 , 444198560296576474 , 2159929925104625787 , 1728442166996200907 , 1267351811392324441 , 300065718623418119 , 966750349179313465 }, // x^2^331 + +{ 691725965600999810 , 1198903862620854377 , 1054023539523064816 , 1730769030252351567 , 847557927746600260 , 1744623726004990111 , 1728028892131548567 , 1527543417026037449 }, // x^2^332 + +{ 409421278860982988 , 997152943070286925 , 20113035122389204 , 2124073936359239181 , 689641531534285085 , 837955831482216973 , 764871009458889678 , 237477127484895051 }, // x^2^333 + +{ 1982954613247518948 , 402525052522767365 , 933337358422926678 , 493080854378288479 , 440525440695315742 , 403003028386149431 , 697670125655367094 , 170964525981186562 }, // x^2^334 + +{ 529398608714192567 , 596163766759723405 , 1693861938709526376 , 1944585668867654756 , 1812682954769967560 , 60767399965245612 , 815166115962344167 , 563969885916290380 }, // x^2^335 + +{ 1031187372526524708 , 1180625910437919643 , 2265520763828990194 , 734290616121570989 , 1798360203053677331 , 513918809740571316 , 1111845956351982313 , 496292905109351318 }, // x^2^336 + +{ 597139642668139236 , 602335229477270350 , 2026181378829117602 , 346834015572578793 , 1160789964134140335 , 1301839414607152236 , 2023907284977916784 , 212348413306575710 }, // x^2^337 + +{ 1345655855818044387 , 2034440074737180979 , 1853737556174568843 , 239876295577697304 , 410191818934605386 , 1057480181623603096 , 751583228751027774 , 2164161283235078589 }, // x^2^338 + +{ 782916240087880616 , 632461621735433608 , 554302637570851993 , 646827976196586488 , 984936791191038328 , 189101705843674879 , 1231562930684236637 , 1297866436871439442 }, // x^2^339 + +{ 542729751238409888 , 114743443058483761 , 446923874175439190 , 1784413303031332267 , 2155207668460791239 , 1216793859143235269 , 755758137527846441 , 1113251030217301689 }, // x^2^340 + +{ 1974252091627510392 , 969837876315426579 , 1166645537845176077 , 58837961050277390 , 2215039252761715644 , 1792388646719314587 , 931827086005293683 , 2052759443345265748 }, // x^2^341 + +{ 1957672635879634849 , 157850341324012958 , 1996189225711295944 , 770677230845634472 , 685295457133592675 , 990906427152295805 , 1489773162377938460 , 1493792842242691854 }, // x^2^342 + +{ 335178352541380841 , 2080753030175535839 , 1980993384319476437 , 1922341725340555314 , 1801854611701891525 , 1050636885479441377 , 1139320506336756471 , 1807421491907884501 }, // x^2^343 + +{ 1410693392538517153 , 1734510559237669829 , 635977723417359771 , 117417534576330953 , 581949335702342201 , 921443320968790464 , 2013382175921627265 , 418068097259388303 }, // x^2^344 + +{ 2006799017678649179 , 291508748634401467 , 1575246852841118587 , 1296651463173792894 , 427683393014212471 , 1730251205926493162 , 1142975105007871390 , 654616289055181196 }, // x^2^345 + +{ 1310482812890598840 , 1568271209316293982 , 1910822376851082511 , 145332006035575243 , 2083641620344128542 , 305641243824259155 , 931699357032097273 , 1358163282973807602 }, // x^2^346 + +{ 203591671914458344 , 150640315994823731 , 1210104001019263804 , 1137617598292666595 , 518788118161161048 , 427427087034864633 , 2267425996942054624 , 1099166158796073922 }, // x^2^347 + +{ 1862849125627532663 , 848558785635718635 , 393472121514472078 , 1503946637617229192 , 251773912133193647 , 1537276995784412057 , 97807326675627886 , 220480179290806390 }, // x^2^348 + +{ 2030722849231430296 , 925386852951109106 , 2258493939731347427 , 325355008890701175 , 2211934110935234304 , 2100695251205789805 , 79792526001013458 , 2016383789830271786 }, // x^2^349 + +{ 1673355124255496233 , 605829622903505464 , 1228542874099034520 , 1015802631014783927 , 1733494931859994227 , 1788838665983109057 , 1983390263525924139 , 1279621456293354913 }, // x^2^350 + +{ 375355249010406023 , 2226360444545513540 , 1601485935029158854 , 775307048261886844 , 1575230599988169482 , 507568577394075327 , 472550439018554047 , 1573416880779995280 }, // x^2^351 + +{ 1793604322340719497 , 900876283313101202 , 1106634015704688071 , 623388134442470073 , 756750847034786579 , 472358887721577332 , 240998031138313601 , 1212381458468059241 }, // x^2^352 + +{ 1048596494083818008 , 45192207447474877 , 1764953537532898171 , 583469345207475545 , 868521831479355323 , 1712689121558799082 , 2098493070064932090 , 11903476140390649 }, // x^2^353 + +{ 1334367269847445617 , 1032625389531499584 , 1346355460833246464 , 1341223378415525065 , 1652514590227965141 , 853738600007198831 , 622763044225564546 , 751613101459281337 }, // x^2^354 + +{ 1346536569485232478 , 619157040998454361 , 341775769765630858 , 1545361644444920171 , 1997753181309741482 , 852535551069983768 , 2201772957889224940 , 1747479239683846996 }, // x^2^355 + +{ 881821856749842931 , 33675046554478555 , 441043258144540262 , 1864107211002315878 , 213663804468606377 , 779518916286681744 , 1657015176251964128 , 1234000577072772928 }, // x^2^356 + +{ 1629037232137607269 , 1568038047649633792 , 1411465989439022663 , 389455395058842604 , 554125259932565321 , 1605109836130735684 , 1642378583819350575 , 1337404045649734167 }, // x^2^357 + +{ 1928692022246218227 , 1709839397705900172 , 700630607698486301 , 1464616600744793604 , 698264318572727526 , 972092360804013549 , 2049081733964128465 , 2198229595803038387 }, // x^2^358 + +{ 1880654348547257558 , 1476705685714280205 , 1358445217050910742 , 2111185621663774036 , 1636739834133894487 , 910512677983536376 , 66845511675705871 , 1695023028547036474 }, // x^2^359 + +{ 111257500244176937 , 1164749420337806778 , 1166974332894526781 , 520872417434967374 , 696274744247027286 , 348013895310105062 , 1324487086784519028 , 1182067459981085649 }, // x^2^360 + +{ 880019563591625081 , 479309460423160560 , 2270345422042307745 , 1531020453913273139 , 532210261030539504 , 2015761889228124393 , 1438689111032339473 , 833421303749228763 }, // x^2^361 + +{ 420191162525030866 , 1782561089611052100 , 1478807302767478272 , 1486511393311314542 , 621073904919073855 , 2293504309385886754 , 486980369413926753 , 942401719860595424 }, // x^2^362 + +{ 1190526561300061469 , 2047316462525294846 , 903824918206430997 , 2295426177377901481 , 1252846238113564593 , 407407998615644808 , 1016356949973556458 , 674141426966719219 }, // x^2^363 + +{ 761623622570000269 , 1439332434886704951 , 738484131846911685 , 1874411635027107644 , 1939211601959319344 , 1349991128048938045 , 827906853422423950 , 1112511745996420238 }, // x^2^364 + +{ 2299311859375313539 , 811412470951134827 , 1824477644275216429 , 609286759079343113 , 1668815854850357083 , 1853024803395785531 , 342628901679334892 , 656885820575581689 }, // x^2^365 + +{ 1968768200502759654 , 2207697622632873672 , 333877204250571240 , 1825003721596803816 , 231274068436011404 , 67864162816683970 , 920739987917013327 , 364997089787786804 }, // x^2^366 + +{ 1600228928238612241 , 1891355996681428693 , 345506069435244583 , 831623917991345360 , 820753905739539892 , 291219051536293705 , 996522653777018463 , 690836988882320843 }, // x^2^367 + +{ 2128433195302917443 , 2258551908270133147 , 1944900359985814344 , 755301651871260987 , 2249244053224715807 , 213183467510840932 , 1422154421101518676 , 2143561716009442592 }, // x^2^368 + +{ 2111630590765421088 , 1742338438433621185 , 1978061232478682889 , 1384461294248544657 , 382413156417648080 , 1513000543034520343 , 496610357000920224 , 170540336394993161 }, // x^2^369 + +{ 953710384775816150 , 373241079978324282 , 1875300218109942167 , 531374055445910451 , 1071933530880445583 , 2304091651267022678 , 583390025362979170 , 1650108637804634335 }, // x^2^370 + +{ 38796330778627240 , 1977624500092462310 , 1703944693047603150 , 581151159177297678 , 1565446978680877201 , 2055778084833536373 , 387442693965974364 , 726412997754586449 }, // x^2^371 + +{ 1701106276069394637 , 1719631306650712702 , 2239104795287078402 , 2004903026767889135 , 867541551723344138 , 1287148152547739714 , 1887416701637869198 , 784675606938273303 }, // x^2^372 + +{ 1032520486976550776 , 2222277274994263300 , 1203837084685370518 , 295188581138663945 , 1050215667112938784 , 1195285596118246042 , 1855064450188421661 , 925307790505202807 }, // x^2^373 + +{ 367663880908551601 , 1492063196922845577 , 108612048337902984 , 2244994784910484207 , 2169070514612413282 , 1657441148007580707 , 675484927308642058 , 1557511281364479375 }, // x^2^374 + +{ 1151413190006835589 , 1166962135325582395 , 2140394835161550851 , 2167104367162208320 , 499956738357355178 , 122105980873608028 , 915356535482190113 , 1225817883376984995 }, // x^2^375 + +{ 62244764369956530 , 1327648037711645269 , 2126431038102298884 , 89579537089883062 , 689716767095500290 , 86988304153185779 , 2303367798596805069 , 1061566824501406144 }, // x^2^376 + +{ 1044213527311444176 , 1418635417665178907 , 2007793743021922535 , 1963628267021972080 , 356484661260541427 , 1466730203022742615 , 623283712530571036 , 1783310515116981278 }, // x^2^377 + +{ 358373709407137905 , 1669217844135429430 , 428340359224799016 , 726809592233492551 , 617152454892179694 , 605641735675631286 , 1200504458695016284 , 932250544422303943 }, // x^2^378 + +{ 1370040590608919099 , 183625989161271350 , 1513616498293220438 , 1227551255888787812 , 1689871591401186155 , 2050481541516856363 , 277285552999796675 , 2079809588669498313 }, // x^2^379 + +{ 1078203798498297750 , 265299228133483673 , 891856830230117422 , 1609854933010423233 , 1254100114423142214 , 2100516443474013609 , 653141299032951864 , 700386224544195090 }, // x^2^380 + +{ 2121154161611385943 , 1476944420325420857 , 483658609816674658 , 2032625465327924991 , 1721001254022682833 , 257037507690493914 , 371371286689212236 , 1797172563593044590 }, // x^2^381 + +{ 1280087093081453195 , 55429523695727980 , 1669149905620727629 , 781671458488614863 , 1011332931464394757 , 2065298633225451797 , 773182386785959752 , 1610397119075319054 }, // x^2^382 + +{ 2093229000156826454 , 48633118872508413 , 60670634117803698 , 766861511288322660 , 1325320551222339063 , 1794963613148919766 , 608045453287855300 , 2034742057965522172 } // x^2^383 + +}; + + diff --git a/source/externals/clhep/include/CLHEP/Units/PhysicalConstants.h b/source/externals/clhep/include/CLHEP/Units/PhysicalConstants.h index 9dd5f59cb4..39fb6d9a5d 100644 --- a/source/externals/clhep/include/CLHEP/Units/PhysicalConstants.h +++ b/source/externals/clhep/include/CLHEP/Units/PhysicalConstants.h @@ -46,81 +46,81 @@ namespace CLHEP { // // // -static const double Avogadro = 6.02214179e+23/mole; +static constexpr double Avogadro = 6.02214179e+23/mole; // // c = 299.792458 mm/ns // c^2 = 898.7404 (mm/ns)^2 // -static const double c_light = 2.99792458e+8 * m/s; -static const double c_squared = c_light * c_light; +static constexpr double c_light = 2.99792458e+8 * m/s; +static constexpr double c_squared = c_light * c_light; // // h = 4.13566e-12 MeV*ns // hbar = 6.58212e-13 MeV*ns // hbarc = 197.32705e-12 MeV*mm // -static const double h_Planck = 6.62606896e-34 * joule*s; -static const double hbar_Planck = h_Planck/twopi; -static const double hbarc = hbar_Planck * c_light; -static const double hbarc_squared = hbarc * hbarc; +static constexpr double h_Planck = 6.62606896e-34 * joule*s; +static constexpr double hbar_Planck = h_Planck/twopi; +static constexpr double hbarc = hbar_Planck * c_light; +static constexpr double hbarc_squared = hbarc * hbarc; // // // -static const double electron_charge = - eplus; // see SystemOfUnits.h -static const double e_squared = eplus * eplus; +static constexpr double electron_charge = - eplus; // see SystemOfUnits.h +static constexpr double e_squared = eplus * eplus; // // amu_c2 - atomic equivalent mass unit // - AKA, unified atomic mass unit (u) // amu - atomic mass unit // -static const double electron_mass_c2 = 0.510998910 * MeV; -static const double proton_mass_c2 = 938.272013 * MeV; -static const double neutron_mass_c2 = 939.56536 * MeV; -static const double amu_c2 = 931.494028 * MeV; -static const double amu = amu_c2/c_squared; +static constexpr double electron_mass_c2 = 0.510998910 * MeV; +static constexpr double proton_mass_c2 = 938.272013 * MeV; +static constexpr double neutron_mass_c2 = 939.56536 * MeV; +static constexpr double amu_c2 = 931.494028 * MeV; +static constexpr double 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) // -static const double mu0 = 4*pi*1.e-7 * henry/m; -static const double epsilon0 = 1./(c_squared*mu0); +static constexpr double mu0 = 4*pi*1.e-7 * henry/m; +static constexpr double epsilon0 = 1./(c_squared*mu0); // // electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2) // -static const double elm_coupling = e_squared/(4*pi*epsilon0); -static const double fine_structure_const = elm_coupling/hbarc; -static const double classic_electr_radius = elm_coupling/electron_mass_c2; -static const double electron_Compton_length = hbarc/electron_mass_c2; -static const double Bohr_radius = electron_Compton_length/fine_structure_const; +static constexpr double elm_coupling = e_squared/(4*pi*epsilon0); +static constexpr double fine_structure_const = elm_coupling/hbarc; +static constexpr double classic_electr_radius = elm_coupling/electron_mass_c2; +static constexpr double electron_Compton_length = hbarc/electron_mass_c2; +static constexpr double Bohr_radius = electron_Compton_length/fine_structure_const; -static const double alpha_rcl2 = fine_structure_const +static constexpr double alpha_rcl2 = fine_structure_const *classic_electr_radius *classic_electr_radius; -static const double twopi_mc2_rcl2 = twopi*electron_mass_c2 +static constexpr double twopi_mc2_rcl2 = twopi*electron_mass_c2 *classic_electr_radius *classic_electr_radius; // // // -static const double k_Boltzmann = 8.617343e-11 * MeV/kelvin; +static constexpr double k_Boltzmann = 8.617343e-11 * MeV/kelvin; // // // -static const double STP_Temperature = 273.15*kelvin; -static const double STP_Pressure = 1.*atmosphere; -static const double kGasThreshold = 10.*mg/cm3; +static constexpr double STP_Temperature = 273.15*kelvin; +static constexpr double STP_Pressure = 1.*atmosphere; +static constexpr double kGasThreshold = 10.*mg/cm3; // // // -static const double universe_mean_density = 1.e-25*g/cm3; +static constexpr double universe_mean_density = 1.e-25*g/cm3; } // namespace CLHEP diff --git a/source/externals/clhep/include/CLHEP/Units/SystemOfUnits.h b/source/externals/clhep/include/CLHEP/Units/SystemOfUnits.h index bae430ad7a..d4294d7998 100644 --- a/source/externals/clhep/include/CLHEP/Units/SystemOfUnits.h +++ b/source/externals/clhep/include/CLHEP/Units/SystemOfUnits.h @@ -24,7 +24,7 @@ // as it is needed for conversion factor : positron charge = e_SI (coulomb) // // The others physical constants are defined in the header file : -//PhysicalConstants.h +// PhysicalConstants.h // // Authors: M.Maire, S.Giani // @@ -41,6 +41,7 @@ // 29.04.08 use PDG 2006 value of e_SI // 03.11.08 use PDG 2008 value of e_SI // 19.08.15 added liter and its sub units (mma) +// 12.01.16 added symbols for microsecond (us) and picosecond (ps) (mma) #ifndef HEP_SYSTEM_OF_UNITS_H #define HEP_SYSTEM_OF_UNITS_H @@ -50,265 +51,267 @@ namespace CLHEP { // // // - static const double pi = 3.14159265358979323846; - static const double twopi = 2*pi; - static const double halfpi = pi/2; - static const double pi2 = pi*pi; + static constexpr double pi = 3.14159265358979323846; + static constexpr double twopi = 2*pi; + static constexpr double halfpi = pi/2; + static constexpr double pi2 = pi*pi; // // Length [L] // - static const double millimeter = 1.; - static const double millimeter2 = millimeter*millimeter; - static const double millimeter3 = millimeter*millimeter*millimeter; + static constexpr double millimeter = 1.; + static constexpr double millimeter2 = millimeter*millimeter; + static constexpr double millimeter3 = millimeter*millimeter*millimeter; - static const double centimeter = 10.*millimeter; - static const double centimeter2 = centimeter*centimeter; - static const double centimeter3 = centimeter*centimeter*centimeter; + static constexpr double centimeter = 10.*millimeter; + static constexpr double centimeter2 = centimeter*centimeter; + static constexpr double centimeter3 = centimeter*centimeter*centimeter; - static const double meter = 1000.*millimeter; - static const double meter2 = meter*meter; - static const double meter3 = meter*meter*meter; + static constexpr double meter = 1000.*millimeter; + static constexpr double meter2 = meter*meter; + static constexpr double meter3 = meter*meter*meter; - static const double kilometer = 1000.*meter; - static const double kilometer2 = kilometer*kilometer; - static const double kilometer3 = kilometer*kilometer*kilometer; + static constexpr double kilometer = 1000.*meter; + static constexpr double kilometer2 = kilometer*kilometer; + static constexpr double kilometer3 = kilometer*kilometer*kilometer; - static const double parsec = 3.0856775807e+16*meter; + static constexpr double parsec = 3.0856775807e+16*meter; - static const double micrometer = 1.e-6 *meter; - static const double nanometer = 1.e-9 *meter; - static const double angstrom = 1.e-10*meter; - static const double fermi = 1.e-15*meter; + static constexpr double micrometer = 1.e-6 *meter; + static constexpr double nanometer = 1.e-9 *meter; + static constexpr double angstrom = 1.e-10*meter; + static constexpr double fermi = 1.e-15*meter; - static const double barn = 1.e-28*meter2; - static const double millibarn = 1.e-3 *barn; - static const double microbarn = 1.e-6 *barn; - static const double nanobarn = 1.e-9 *barn; - static const double picobarn = 1.e-12*barn; + static constexpr double barn = 1.e-28*meter2; + static constexpr double millibarn = 1.e-3 *barn; + static constexpr double microbarn = 1.e-6 *barn; + static constexpr double nanobarn = 1.e-9 *barn; + static constexpr double picobarn = 1.e-12*barn; // symbols - static const double nm = nanometer; - static const double um = micrometer; + static constexpr double nm = nanometer; + static constexpr double um = micrometer; - static const double mm = millimeter; - static const double mm2 = millimeter2; - static const double mm3 = millimeter3; + static constexpr double mm = millimeter; + static constexpr double mm2 = millimeter2; + static constexpr double mm3 = millimeter3; - static const double cm = centimeter; - static const double cm2 = centimeter2; - static const double cm3 = centimeter3; + static constexpr double cm = centimeter; + static constexpr double cm2 = centimeter2; + static constexpr double cm3 = centimeter3; - static const double liter = 1.e+3*cm3; - static const double L = liter; - static const double dL = 1.e-1*liter; - static const double cL = 1.e-2*liter; - static const double mL = 1.e-3*liter; + static constexpr double liter = 1.e+3*cm3; + static constexpr double L = liter; + static constexpr double dL = 1.e-1*liter; + static constexpr double cL = 1.e-2*liter; + static constexpr double mL = 1.e-3*liter; - static const double m = meter; - static const double m2 = meter2; - static const double m3 = meter3; + static constexpr double m = meter; + static constexpr double m2 = meter2; + static constexpr double m3 = meter3; - static const double km = kilometer; - static const double km2 = kilometer2; - static const double km3 = kilometer3; + static constexpr double km = kilometer; + static constexpr double km2 = kilometer2; + static constexpr double km3 = kilometer3; - static const double pc = parsec; + static constexpr double pc = parsec; // // Angle // - static const double radian = 1.; - static const double milliradian = 1.e-3*radian; - static const double degree = (pi/180.0)*radian; + static constexpr double radian = 1.; + static constexpr double milliradian = 1.e-3*radian; + static constexpr double degree = (pi/180.0)*radian; - static const double steradian = 1.; + static constexpr double steradian = 1.; // symbols - static const double rad = radian; - static const double mrad = milliradian; - static const double sr = steradian; - static const double deg = degree; + static constexpr double rad = radian; + static constexpr double mrad = milliradian; + static constexpr double sr = steradian; + static constexpr double deg = degree; // // Time [T] // - static const double nanosecond = 1.; - static const double second = 1.e+9 *nanosecond; - static const double millisecond = 1.e-3 *second; - static const double microsecond = 1.e-6 *second; - static const double picosecond = 1.e-12*second; + static constexpr double nanosecond = 1.; + static constexpr double second = 1.e+9 *nanosecond; + static constexpr double millisecond = 1.e-3 *second; + static constexpr double microsecond = 1.e-6 *second; + static constexpr double picosecond = 1.e-12*second; - static const double hertz = 1./second; - static const double kilohertz = 1.e+3*hertz; - static const double megahertz = 1.e+6*hertz; + static constexpr double hertz = 1./second; + static constexpr double kilohertz = 1.e+3*hertz; + static constexpr double megahertz = 1.e+6*hertz; // symbols - static const double ns = nanosecond; - static const double s = second; - static const double ms = millisecond; + static constexpr double ns = nanosecond; + static constexpr double s = second; + static constexpr double ms = millisecond; + static constexpr double us = microsecond; + static constexpr double ps = picosecond; // // Electric charge [Q] // - static const double eplus = 1. ;// positron charge - static const double e_SI = 1.602176487e-19;// positron charge in coulomb - static const double coulomb = eplus/e_SI;// coulomb = 6.24150 e+18 * eplus + static constexpr double eplus = 1. ;// positron charge + static constexpr double e_SI = 1.602176487e-19;// positron charge in coulomb + static constexpr double coulomb = eplus/e_SI;// coulomb = 6.24150 e+18 * eplus // // Energy [E] // - static const double megaelectronvolt = 1. ; - static const double electronvolt = 1.e-6*megaelectronvolt; - static const double kiloelectronvolt = 1.e-3*megaelectronvolt; - static const double gigaelectronvolt = 1.e+3*megaelectronvolt; - static const double teraelectronvolt = 1.e+6*megaelectronvolt; - static const double petaelectronvolt = 1.e+9*megaelectronvolt; + static constexpr double megaelectronvolt = 1. ; + static constexpr double electronvolt = 1.e-6*megaelectronvolt; + static constexpr double kiloelectronvolt = 1.e-3*megaelectronvolt; + static constexpr double gigaelectronvolt = 1.e+3*megaelectronvolt; + static constexpr double teraelectronvolt = 1.e+6*megaelectronvolt; + static constexpr double petaelectronvolt = 1.e+9*megaelectronvolt; - static const double joule = electronvolt/e_SI;// joule = 6.24150 e+12 * MeV + static constexpr double joule = electronvolt/e_SI;// joule = 6.24150 e+12 * MeV // symbols - static const double MeV = megaelectronvolt; - static const double eV = electronvolt; - static const double keV = kiloelectronvolt; - static const double GeV = gigaelectronvolt; - static const double TeV = teraelectronvolt; - static const double PeV = petaelectronvolt; + static constexpr double MeV = megaelectronvolt; + static constexpr double eV = electronvolt; + static constexpr double keV = kiloelectronvolt; + static constexpr double GeV = gigaelectronvolt; + static constexpr double TeV = teraelectronvolt; + static constexpr double PeV = petaelectronvolt; // // Mass [E][T^2][L^-2] // - static const double kilogram = joule*second*second/(meter*meter); - static const double gram = 1.e-3*kilogram; - static const double milligram = 1.e-3*gram; + static constexpr double kilogram = joule*second*second/(meter*meter); + static constexpr double gram = 1.e-3*kilogram; + static constexpr double milligram = 1.e-3*gram; // symbols - static const double kg = kilogram; - static const double g = gram; - static const double mg = milligram; + static constexpr double kg = kilogram; + static constexpr double g = gram; + static constexpr double mg = milligram; // // Power [E][T^-1] // - static const double watt = joule/second;// watt = 6.24150 e+3 * MeV/ns + static constexpr double watt = joule/second;// watt = 6.24150 e+3 * MeV/ns // // Force [E][L^-1] // - static const double newton = joule/meter;// newton = 6.24150 e+9 * MeV/mm + static constexpr double newton = joule/meter;// newton = 6.24150 e+9 * MeV/mm // // Pressure [E][L^-3] // #define pascal hep_pascal // a trick to avoid warnings - static const double hep_pascal = newton/m2; // pascal = 6.24150 e+3 * MeV/mm3 - static const double bar = 100000*pascal; // bar = 6.24150 e+8 * MeV/mm3 - static const double atmosphere = 101325*pascal; // atm = 6.32420 e+8 * MeV/mm3 + static constexpr double hep_pascal = newton/m2; // pascal = 6.24150 e+3 * MeV/mm3 + static constexpr double bar = 100000*pascal; // bar = 6.24150 e+8 * MeV/mm3 + static constexpr double atmosphere = 101325*pascal; // atm = 6.32420 e+8 * MeV/mm3 // // Electric current [Q][T^-1] // - static const double ampere = coulomb/second; // ampere = 6.24150 e+9 * eplus/ns - static const double milliampere = 1.e-3*ampere; - static const double microampere = 1.e-6*ampere; - static const double nanoampere = 1.e-9*ampere; + static constexpr double ampere = coulomb/second; // ampere = 6.24150 e+9 * eplus/ns + static constexpr double milliampere = 1.e-3*ampere; + static constexpr double microampere = 1.e-6*ampere; + static constexpr double nanoampere = 1.e-9*ampere; // // Electric potential [E][Q^-1] // - static const double megavolt = megaelectronvolt/eplus; - static const double kilovolt = 1.e-3*megavolt; - static const double volt = 1.e-6*megavolt; + static constexpr double megavolt = megaelectronvolt/eplus; + static constexpr double kilovolt = 1.e-3*megavolt; + static constexpr double volt = 1.e-6*megavolt; // // Electric resistance [E][T][Q^-2] // - static const double ohm = volt/ampere;// ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns) + static constexpr double ohm = volt/ampere;// ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns) // // Electric capacitance [Q^2][E^-1] // - static const double farad = coulomb/volt;// farad = 6.24150e+24 * eplus/Megavolt - static const double millifarad = 1.e-3*farad; - static const double microfarad = 1.e-6*farad; - static const double nanofarad = 1.e-9*farad; - static const double picofarad = 1.e-12*farad; + static constexpr double farad = coulomb/volt;// farad = 6.24150e+24 * eplus/Megavolt + static constexpr double millifarad = 1.e-3*farad; + static constexpr double microfarad = 1.e-6*farad; + static constexpr double nanofarad = 1.e-9*farad; + static constexpr double picofarad = 1.e-12*farad; // // Magnetic Flux [T][E][Q^-1] // - static const double weber = volt*second;// weber = 1000*megavolt*ns + static constexpr double weber = volt*second;// weber = 1000*megavolt*ns // // Magnetic Field [T][E][Q^-1][L^-2] // - static const double tesla = volt*second/meter2;// tesla =0.001*megavolt*ns/mm2 + static constexpr double tesla = volt*second/meter2;// tesla =0.001*megavolt*ns/mm2 - static const double gauss = 1.e-4*tesla; - static const double kilogauss = 1.e-1*tesla; + static constexpr double gauss = 1.e-4*tesla; + static constexpr double kilogauss = 1.e-1*tesla; // // Inductance [T^2][E][Q^-2] // - static const double henry = weber/ampere;// henry = 1.60217e-7*MeV*(ns/eplus)**2 + static constexpr double henry = weber/ampere;// henry = 1.60217e-7*MeV*(ns/eplus)**2 // // Temperature // - static const double kelvin = 1.; + static constexpr double kelvin = 1.; // // Amount of substance // - static const double mole = 1.; + static constexpr double mole = 1.; // // Activity [T^-1] // - static const double becquerel = 1./second ; - static const double curie = 3.7e+10 * becquerel; - static const double kilobecquerel = 1.e+3*becquerel; - static const double megabecquerel = 1.e+6*becquerel; - static const double gigabecquerel = 1.e+9*becquerel; - static const double millicurie = 1.e-3*curie; - static const double microcurie = 1.e-6*curie; - static const double Bq = becquerel; - static const double kBq = kilobecquerel; - static const double MBq = megabecquerel; - static const double GBq = gigabecquerel; - static const double Ci = curie; - static const double mCi = millicurie; - static const double uCi = microcurie; + static constexpr double becquerel = 1./second ; + static constexpr double curie = 3.7e+10 * becquerel; + static constexpr double kilobecquerel = 1.e+3*becquerel; + static constexpr double megabecquerel = 1.e+6*becquerel; + static constexpr double gigabecquerel = 1.e+9*becquerel; + static constexpr double millicurie = 1.e-3*curie; + static constexpr double microcurie = 1.e-6*curie; + static constexpr double Bq = becquerel; + static constexpr double kBq = kilobecquerel; + static constexpr double MBq = megabecquerel; + static constexpr double GBq = gigabecquerel; + static constexpr double Ci = curie; + static constexpr double mCi = millicurie; + static constexpr double uCi = microcurie; // // Absorbed dose [L^2][T^-2] // - static const double gray = joule/kilogram ; - static const double kilogray = 1.e+3*gray; - static const double milligray = 1.e-3*gray; - static const double microgray = 1.e-6*gray; + static constexpr double gray = joule/kilogram ; + static constexpr double kilogray = 1.e+3*gray; + static constexpr double milligray = 1.e-3*gray; + static constexpr double microgray = 1.e-6*gray; // // Luminous intensity [I] // - static const double candela = 1.; + static constexpr double candela = 1.; // // Luminous flux [I] // - static const double lumen = candela*steradian; + static constexpr double lumen = candela*steradian; // // Illuminance [I][L^-2] // - static const double lux = lumen/meter2; + static constexpr double lux = lumen/meter2; // // Miscellaneous // - static const double perCent = 0.01 ; - static const double perThousand = 0.001; - static const double perMillion = 0.000001; + static constexpr double perCent = 0.01 ; + static constexpr double perThousand = 0.001; + static constexpr double perMillion = 0.000001; } // namespace CLHEP diff --git a/source/externals/clhep/include/CLHEP/Utility/atomic_int.h b/source/externals/clhep/include/CLHEP/Utility/atomic_int.h index 717846b794..18f34084bc 100644 --- a/source/externals/clhep/include/CLHEP/Utility/atomic_int.h +++ b/source/externals/clhep/include/CLHEP/Utility/atomic_int.h @@ -7,7 +7,7 @@ // // ====================================================================== -#if (defined (G4MULTITHREADED) && defined (G4USE_STD11)) +#if (defined (G4MULTITHREADED)) #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 7) #include diff --git a/source/externals/clhep/include/CLHEP/Utility/use_atomic.h b/source/externals/clhep/include/CLHEP/Utility/use_atomic.h new file mode 100644 index 0000000000..9332fdc2f7 --- /dev/null +++ b/source/externals/clhep/include/CLHEP/Utility/use_atomic.h @@ -0,0 +1,28 @@ +#ifndef CLHEP_USE_ATOMIC_GUARD_H +#define CLHEP_USE_ATOMIC_GUARD_H + +// ====================================================================== +// +// Use std::atomic when the compiler declares it uses the C++11 standard +// +// ====================================================================== + +#if (defined (G4MULTITHREADED)) + +#if __cplusplus >= 201103L + + #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 7) + #include + #define CLHEP_USE_ATOMIC + #elif __clang__ + #if __has_feature(c_atomic) + #include + #define CLHEP_USE_ATOMIC + #endif + #endif + +#endif + +#endif + +#endif diff --git a/source/externals/clhep/src/MixMaxRng.cc b/source/externals/clhep/src/MixMaxRng.cc index 7b6188c72d..367dfc5e04 100644 --- a/source/externals/clhep/src/MixMaxRng.cc +++ b/source/externals/clhep/src/MixMaxRng.cc @@ -53,9 +53,9 @@ std::string MixMaxRng::name() const { return "MixMaxRng"; } // N=" + N MixMaxRng::MixMaxRng() : HepRandomEngine() { - numberOfEngines++; + int numEngines = ++numberOfEngines; fRngState= rng_alloc(); - setSeed(static_cast(numberOfEngines)); + setSeed(static_cast(numEngines)); } MixMaxRng::MixMaxRng(long seed) @@ -135,7 +135,7 @@ void MixMaxRng::showStatus() const void MixMaxRng::setSeed(long longSeed, int /* extraSeed */) { - unsigned long seed0, seed1= 0, seed2= 0, seed3= 0; + unsigned long seed0; theSeed = longSeed; if( sizeof(long) > 4) // C standard says long is at least 32-bits @@ -143,7 +143,7 @@ void MixMaxRng::setSeed(long longSeed, int /* extraSeed */) else seed0= longSeed; - seed_uniquestream(this->fRngState, seed3, seed2, seed1, seed0 ); + seed_spbox(fRngState, seed0); } // Preferred Seeding method @@ -174,7 +174,7 @@ void MixMaxRng::setSeeds(const long* Seeds, int seedNum) } theSeed = Seeds[0]; theSeeds = Seeds; - seed_uniquestream(this->fRngState, seed3, seed2, seed1, seed0 ); + seed_uniquestream(fRngState, seed3, seed2, seed1, seed0); } double MixMaxRng::flat() @@ -182,9 +182,10 @@ double MixMaxRng::flat() return get_next_float(fRngState); } -void MixMaxRng::flatArray(const int size, double* arrayDbl ) +void MixMaxRng::flatArray(const int size, double* vect ) { - fill_array( fRngState, size, arrayDbl ); + // fill_array( fRngState, size, arrayDbl ); + for (int i=0; icounter < 0 || fRngState->counter > N-1 ) { + if ( fRngState->counter < 0 || fRngState->counter > rng_get_N() ) { std::cerr << "\nMixMaxRng::getState(): " << "vector read wrong value of counter from file!" << "\nInput stream is probably mispositioned now.\n"; diff --git a/source/externals/clhep/src/Random.cc b/source/externals/clhep/src/Random.cc index a8d82a6b78..9c1c8e1f14 100644 --- a/source/externals/clhep/src/Random.cc +++ b/source/externals/clhep/src/Random.cc @@ -24,6 +24,7 @@ #include "CLHEP/Random/StaticRandomStates.h" #include "CLHEP/Utility/memory.h" #include "CLHEP/Utility/thread_local.h" +#include "CLHEP/Utility/use_atomic.h" // ----------------------------- // Static members initialisation @@ -33,43 +34,141 @@ namespace CLHEP { + namespace { -namespace { + struct defaults { -struct defaults { - defaults( HepRandom & g, HepJamesRandom & e ) - : theGenerator( &g, do_nothing_deleter() ) - , theEngine ( &e, do_nothing_deleter() ) - { } + defaults() + : theGenerator( &theDefaultGenerator, do_nothing_deleter() ) + , theEngine ( &theDefaultEngine, do_nothing_deleter() ) + { } - void resetEngine( HepRandomEngine * newEngine ) { - theEngine.reset( newEngine ); - } + defaults(defaults const& other) = delete; + defaults const& operator=(defaults const&) = delete; - void resetEngine( HepRandomEngine & newEngine ) { - theEngine.reset( &newEngine, do_nothing_deleter() ); - } + void resetEngine( HepRandomEngine * newEngine ) { + theEngine.reset( newEngine ); + } - bool ensureInitialized() { - assert( theGenerator.get() != 0 && theEngine.get() != 0 ); - return true; - } + void resetEngine( HepRandomEngine & newEngine ) { + theEngine.reset( &newEngine, do_nothing_deleter() ); + } - ~defaults() - { } + bool ensureInitialized() { + assert( theGenerator.get() != 0 && theEngine.get() != 0 ); + return true; + } - std::shared_ptr theGenerator; - std::shared_ptr theEngine; -}; // defaults + ~defaults() + { } - defaults & theDefaults() { - static CLHEP_THREAD_LOCAL HepRandom theDefaultGenerator; - static CLHEP_THREAD_LOCAL HepJamesRandom theDefaultEngine; - static CLHEP_THREAD_LOCAL defaults theDefaults(theDefaultGenerator, theDefaultEngine); - return theDefaults; - } + private: -} // namespace + HepRandom theDefaultGenerator; + HepJamesRandom theDefaultEngine; + + public: + + std::shared_ptr theGenerator; + std::shared_ptr theEngine; + }; // defaults + + +#ifdef CLHEP_USE_ATOMIC + + // The ThreadSafeDefaultCache is used only by the function named theDefaults. + // It is a singly linked list that is intended to hold one object of + // type "defaults" per thread. + + class ThreadSafeDefaultsCache { + public: + + ThreadSafeDefaultsCache(); + + // The destructor deletes the objects of type "defaults" + ~ThreadSafeDefaultsCache(); + + // Creates new objects and adds them to the linked list in a thread safe manner. + defaults* createNewDefaults(); + + // Note that there are no other functions. No erasing or moving or other accessors. + + private: + + class DefaultsNode { + public: + DefaultsNode(DefaultsNode* iNext); + DefaultsNode const* next() const { return next_; } + void setNext(DefaultsNode* v) { next_ = v; } + defaults* addressOfDefaults() { return &defaults_; } + private: + DefaultsNode* next_; + defaults defaults_; + }; + + // points to first node in the linked list + std::atomic front_; + }; + + ThreadSafeDefaultsCache::ThreadSafeDefaultsCache() : + front_(nullptr) { + } + + defaults* ThreadSafeDefaultsCache::createNewDefaults() { + DefaultsNode* expected = front_.load(); + DefaultsNode* newNode = new DefaultsNode(expected); + while (!front_.compare_exchange_strong(expected, newNode)) { + // another thread changed front_ before us so try again + newNode->setNext(expected); + } + return newNode->addressOfDefaults(); + } + + ThreadSafeDefaultsCache::DefaultsNode::DefaultsNode(DefaultsNode* iNext) : + next_(iNext), + defaults_() { + } + + ThreadSafeDefaultsCache::~ThreadSafeDefaultsCache() { + DefaultsNode const* node = front_.load(); + while (node) { + DefaultsNode const* next = node->next(); + delete node; + node = next; + } + } + + defaults & theDefaults() { + + // We need to have different engines on different threads because + // the engines are not thread safe. One cannot generate random numbers + // using the same engine on different threads simultaneously. + // Originally we had the defaults object itself as a thread local, + // but that was failing because on Mac OSX there is not full + // support for thread locals yet. Objects containing std::shared_ptr + // in thread local storage were causing failures. So now we create + // a container of them that is a function static (not thread local) + // and the thread local contains only a pointer to an object in the + // container. + static ThreadSafeDefaultsCache defaultsForAllThreads; + + // A pointer for each thread to defaults object built for each thread. + static CLHEP_THREAD_LOCAL defaults* theDefaults = defaultsForAllThreads.createNewDefaults(); + + return *theDefaults; + } +#else + + // This version is used with old compilers not supporting atomics. + // In that case, the code should not be executed in more than one thread. + defaults & theDefaults() { + static defaults theDefaults; + return theDefaults; + } + +#endif + + } // namespace //---------------------------- HepRandom --------------------------------- @@ -91,7 +190,7 @@ HepRandom::HepRandom(HepRandomEngine * algorithm) theDefaults().resetEngine( algorithm ); } -HepRandom::~HepRandom() +HepRandom::~HepRandom() { } double HepRandom::flat() @@ -112,7 +211,7 @@ std::string HepRandom::name() const {return "HepRandom";} HepRandomEngine & HepRandom::engine() { std::cerr << "HepRandom::engine() called -- there is no assigned engine!\n"; return *theDefaults().theEngine.get(); -} +} std::ostream & operator<< (std::ostream & os, const HepRandom & dist) { return dist.put(os); @@ -176,12 +275,12 @@ void HepRandom::setTheEngine (HepRandomEngine* theNewEngine) void HepRandom::saveEngineStatus( const char filename[] ) { theDefaults().theEngine->saveStatus( filename ); -} +} void HepRandom::restoreEngineStatus( const char filename[] ) { theDefaults().theEngine->restoreStatus( filename ); -} +} std::ostream& HepRandom::saveFullState ( std::ostream & os ) { os << *getTheEngine(); @@ -204,7 +303,7 @@ std::istream& HepRandom::restoreStaticRandomStates ( std::istream & is ) { void HepRandom::showEngineStatus() { theDefaults().theEngine->showStatus(); -} +} int HepRandom::createInstance() { diff --git a/source/externals/clhep/src/mixmax.cc b/source/externals/clhep/src/mixmax.cc index 5f9dc722e4..19f8d1b301 100644 --- a/source/externals/clhep/src/mixmax.cc +++ b/source/externals/clhep/src/mixmax.cc @@ -254,7 +254,7 @@ inline myuint fmodmulM61(myuint cum, myuint a, myuint b){ inline myuint fmodmulM61(myuint cum, myuint s, myuint a) { - register myuint o,ph,pl,ah,al; + myuint o,ph,pl,ah,al; o=(s)*a; ph = ((s)>>32); pl = (s) & MASK32; @@ -379,10 +379,14 @@ myuint apply_bigskip(myuint* Vout, myuint* Vin, myID_t clusterID, myID_t machine const myuint skipMat[128][N] = -//#if (N==88) +//#if (N==8) +//#include "CLHEP/Random/mixmax_skip_N8.icc" +//#elif (N==17) +#include "CLHEP/Random/mixmax_skip_N17.icc" +//#elif (N==88) //#include "CLHEP/Random/mixmax_skip_N88.icc" // to make this file, delete all except some chosen 128 rows of the coefficients table //#elif (N==256) -#include "CLHEP/Random/mixmax_skip_N256.icc" +//#include "CLHEP/Random/mixmax_skip_N256.icc" //#elif (N==1000) //#include "CLHEP/Random/mixmax_skip_N1000.icc" //#elif (N==3150) diff --git a/source/externals/clhep/src/setSystemOfUnits.cc b/source/externals/clhep/src/setSystemOfUnits.cc index 900e32ddad..fd53296226 100644 --- a/source/externals/clhep/src/setSystemOfUnits.cc +++ b/source/externals/clhep/src/setSystemOfUnits.cc @@ -324,9 +324,11 @@ void Evaluator::setSystemOfUnits(double meter, setVariable("millisecond", milli_ * s); setVariable("ms", milli_ * s); setVariable("microsecond", micro_ * s); + setVariable("us", micro_ * s); setVariable("nanosecond", nano_ * s); setVariable("ns", nano_ * s); setVariable("picosecond", pico_ * s); + setVariable("ps", pico_ * s); // Current diff --git a/source/externals/zlib/History b/source/externals/zlib/History index 68d5cf1dbf..176799cef8 100644 --- a/source/externals/zlib/History +++ b/source/externals/zlib/History @@ -20,6 +20,14 @@ committal in the CVS repository ! History file for G4 zlib package -------------------------------- +19 April 2015 Gunter Folger (zlib-V10-02-01) +- fix in gzguts.h for Windows; as of Studio 2015 in 64 bit compilation, + _snprintf is no longer provided, but snprintf finally is available. + +15 January 2015Gunter Folger (zlib-V10-02-00) +- fix clang compiler warning in inflate.cc: return explicit value + of -1L << 16 (0xffffFFFFffff000L) + 10 July 2015 Gunter Folger (zlib-V10-01-01) - Add type casts to fix windows compilations errors. diff --git a/source/externals/zlib/src/gzguts.h b/source/externals/zlib/src/gzguts.h index d87659d031..8759202d20 100644 --- a/source/externals/zlib/src/gzguts.h +++ b/source/externals/zlib/src/gzguts.h @@ -99,7 +99,7 @@ Microsoft more than a decade later!), _snprintf does not guarantee null termination of the result -- however this is only used in gzlib.c where the result is assured to fit in the space provided */ -#ifdef _MSC_VER +#if defined(_MSC_VER) && _MSC_VER < 1900 # define snprintf _snprintf #endif diff --git a/source/externals/zlib/src/inflate.cc b/source/externals/zlib/src/inflate.cc index 701a3f744a..8bb8c48756 100644 --- a/source/externals/zlib/src/inflate.cc +++ b/source/externals/zlib/src/inflate.cc @@ -1465,7 +1465,8 @@ long ZEXPORT inflateMark(z_streamp strm) { struct inflate_state FAR *state; - if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; + if (strm == Z_NULL || strm->state == Z_NULL) return 0xffffFFFFffff0000L; // shut off clang + // warning from -1L << 16; state = (struct inflate_state FAR *)strm->state; return ((long)(state->back) << 16) + (state->mode == COPY ? state->length : diff --git a/source/geometry/divisions/History b/source/geometry/divisions/History index 8559d0b8ce..a29c0e37c9 100644 --- a/source/geometry/divisions/History +++ b/source/geometry/divisions/History @@ -1,4 +1,4 @@ -$Id: History 92635 2015-09-09 13:39:54Z gcosmo $ +$Id: History 96863 2016-05-13 13:45:58Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 13th, 2016 G.Cosmo (geomdiv-V10-02-00) +- Updated unit tests. + September 9th, 2015 G.Cosmo (geomdiv-V10-01-07) - Set as unsupported divisions of polycone and polyhedra in MT-mode. diff --git a/source/geometry/magneticfield/History b/source/geometry/magneticfield/History index 5f3e198164..c8d7a7b58b 100644 --- a/source/geometry/magneticfield/History +++ b/source/geometry/magneticfield/History @@ -1,4 +1,4 @@ -$Id: History 93806 2015-11-02 11:21:01Z gcosmo $ +$Id: History 97812 2016-06-14 07:57:41Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,161 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + + +June 11, 2016 J.Apostolakis - field-V10-02-21 +--------------------------- +- Restored G4ClassicalRK4 as default stepper for B-field, + (due to performance issues reported in benchmarking.) + +June 10, 2016 G.Cosmo - field-V10-02-20 +--------------------- +- Fixed code indentation in G4HelixMixedStepper; + fixes compilation warnings on gcc-6.1. + +June 1, 2016 J.Apostolakis - field-V10-02-19, 18, 17 +-------------------------- +- Fix in multiple steppers for the size of two C-arrays which hold + intermediate values; they must be at least 8 and at least + 'fNumberOfStateVariables' long. + Changed: G4CashKarp, + G4BogackiShampine 23 & 34 + G4DormandPrince 745, RK56 & RK78 + G4DoLoMcPriRK34 + G4FSALBogackiShampine45, G4FSALDormandPrince745 +- Made G4CashKarp the default stepper in G4ChordFinder. +- Deleted trial class G4NewChordFinder. + +June 1, 2016 J.Apostolakis - field-V10-02-16 +-------------------------- +- Deleted test code (RkTestRun) due to cmake issues + +June 1, 2016 J.Apostolakis - field-V10-02-15 (also -14) +-------------------------- +- Made G4ClassicalRK4 the default stepper again in G4ChordFinder +- Fixes in test code (RkTestRun) for new names of classes. + +May 31, 2016 J.Apostolakis - field-V10-02-13 (also -12) +-------------------------- +- New class G4NewChordFinder, that uses old G4MagIntegratorDriver or + the newer G4FSALIntegratorDriver -- first try, for testing FSAL. + Created new test testNewChordFinder.cc to checks this. + +- Renamed new Stepper classes to use 'G4' prefix, including + DormandPrince{745,RK56,RK67} TsitourasRK45 and DoLoMcPriRK34 + +- Renamed FSAL base classes to use 'G4' prefix & 'Integrat-ion' + FSALMagIntegratorStepper to G4VFSALIntegrationStepper + FSALIntegratorDriver to G4FSALIntegrationDriver + and the experimental FSAL versions of steppers, + FBogackiShampine45.hh to G4FSALBogackiShampine45.hh + FDormandPrince745.hh to G4FSALDormandPrince745.hh +( Note: FSAL steppers remain 'behind' the improved non-FSAL versions.) + +- Made DormandPrince745 (DP45) the default stepper (in G4ChordFinder). + +May 26, 2016 J.Apostolakis & Som. Banerjee - field-V10-02-11 +------------------------------------------ +- First version of FSAL classes (as additional classes) + FSAL Integrator Driver : New *concrete*, stand-alone driver + FSAL Integrator Stepper : New base class (separate from G4MagIntegratorStepper) + FBogackiShampine45: FSAL-version of BogackiShampine45 stepper + FDormandPrince745: FSAL-version of FDormandPrince745 stepper + Developed by Somnath Banerjee in GSoC 2015 + +Context: +* FSAL Stepper's key 'Stepper()' method for Stepping has additional + argument to return the derivative at the end of a step. + If the step was successful, this estimate has the same order of + accuracy as the stepper (i.e. 5th order for a 5th order stepper.) + +- FSAL Driver method uses the revised Stepper interface, using + the final (endpoint) derivative for successful steps + as the start derivative for the next step, in case of + continuing of integration. + +- New test (RkTestRun.cc) covering FSAL methods, integration + Developed by Somnath Banerjee in GSoC 2015 + +May 26, 2016 J.Apostolakis - field-V10-02-10 +-------------------------- +Preparation for addition of FSAL steppers (& driver) +- G4MagIntegratorStepper: Added counter for calls to equation RHS, + with Get/Reset methods. +- Cosmetic fixes in sources.cmake (tabs to spaces) + +May 25, 2016 J.Apostolakis & Som. Banerjee - field-V10-02-09 +------------------------------------------ +- Added new stepper classes embedded RK method: + * DoLoMcPriRK34, 6-stage 3/4 RK (interpolation) + * DormandPrinceRK56, 9-stage 5/6 RK (interpolation, FSAL-able) "6(5)" + * DormandPrinceRK78, 13-stage 7/8 RK (interpolation) "8(7) 13M" + created by Somnath Banerjee as part of GSoC 2015. + +May 25, 2016 J.Apostolakis - field-V10-02-08 +-------------------------- +- Revised testPropagateMagField, to reduce error severity for over-long + steps. An error message is still written if move > (1.+1.0e-9) * step, + but test does not stop. + +- G4HelixMixedStepper: Fixes & added new (5th order) stepper choices. + Included (G4)Bogacki-Shampine 23/45 , DormandPrince745, + and newest TsitourasRK45. + +May 24, 2016 J.Apostolakis - field-V10-02-06, 07 +-------------------------- +- Added TsitourasRK45 stepper. +- Made Cash-Karp the default stepper (in G4ChordFinder). + +May 23, 2016 J.Apostolakis - field-V10-02-05 +-------------------------- +- Made DormandPrince745 (DP45) the default stepper (in G4ChordFinder). + +May 20, 2016 J.Apostolakis - field-V10-02-04 +------------------------- +- Added steppers created by Somnath Banerjee as part of GSoC 2015, + G4BogackiShampine23 (BS23 below), G4BogackiShampine45 (BS45) and + DormandPrince745 (DP45). + These implement third order (BS23) and fifth order (BS45, DP45) + embedded RK tableaus. +- DP45 includes interpolation method, to evaluate the interpolant + ('y') at intermediate points of a successful step. + BS45's interpolation method exists, but is not validated (fails). + + References: + - BS45 is embedded pair from paper by P. Bogacki and L. F. Shampine: + “An efficient Runge-Kutta (4,5) pair,†+ Comput. Math. with Appl., vol. 32, no. 6, pp. 15–28, Sep. 1996. + - BS23 is four stage RK method from the paper of P. Bogacki and L. F. Shampine, + “A 3(2) pair of Runge - Kutta formulas,†+ Appl. Math. Lett., vol 2, no 4, p.321 (1989). + - DP45 are from Table 2 of J. R. Dormand and P. J. Prince's + “A family of embedded Runge-Kutta formulae,†+ Journal of comput. and applied Math., vol. 6, no. 1, pp. 19–26, 1980. + +May 4, 2016 G.Cosmo - field-V10-02-03 +------------------- +- Fixed Clone() signatures in derived Field classes. + More corrections on implementations of operator=() and copy-ctors. + +Apr 29, 2016 G.Cosmo - field-V10-02-02 +-------------------- +- Corrected implementation of operator=() and copy-ctor for G4Field, + G4ElectroMagneticField, G4ElectricField and G4CachedMagneticField. + +Feb 25, 2016 P.Gumplinger - field-V10-02-01 +------------------------- +- address Problem Report: 1831 + change: G4Mag_SpinEqRhs, G4EqEMFieldWithSpin, G4EqEMFieldWithEDM and + G4RepleteEofM.cc from g_BMT = (magMoment/muB)/spin + to g_BMT = (std::abs(magMoment)/muB)/spin + + +Dec 11, 2015 A.Dotti - field-V10-02-00 +-------------------------- +Fixing typo in tests/CMakeList.txt file: subdirecotry() +instead of add_subdirectory() + Nov 2, 2015 J.Apostolakis - field-V10-01-15 (fixed) Oct 22, 2015 J.Apostolakis - field-V10-01-14 -------------------------- diff --git a/source/geometry/magneticfield/include/G4BogackiShampine23.hh b/source/geometry/magneticfield/include/G4BogackiShampine23.hh new file mode 100644 index 0000000000..68425d83aa --- /dev/null +++ b/source/geometry/magneticfield/include/G4BogackiShampine23.hh @@ -0,0 +1,106 @@ +// Bogacki-Shampine - 4 - 3(2) non-FSAL implementation +// +// An implementation of the embedded RK method from the paper +// [1] P. Bogacki and L. F. Shampine, “A 3(2) pair of Runge - Kutta formulas,†+// Appl. Math. Lett., vol. 2, no. 4, pp. 321–325, Jan. 1989. +// +// This version does not utilise the FSAL property of the method, +// which would allow the reuse of the last derivative in the next step. +// (Alternative FSAL implementation created with revised interface) +// +// Implemented by Somnath Banerjee +// Work supported by the Google Summer of Code 2015. +// Supervision / code review: John Apostolakis +// +// First version: 20 May 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// +/////////////////////////////////////////////////////////////////////////////// + + +#ifndef G4BOGACKI_SHAMPINE23_H +#define G4BOGACKI_SHAMPINE23_H + +#include "G4MagIntegratorStepper.hh" + +class G4BogackiShampine23 : public G4MagIntegratorStepper{ + + + public: + //constructor + G4BogackiShampine23( G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary= true ) ; + + //destructor + ~G4BogackiShampine23() ; + + //Stepper + void Stepper(const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) ; + + G4double DistChord() const; + G4int IntegratorOrder() const { return 2; } + G4bool isFSAL() const{ return true; } + G4double *getLastDydx(); + + G4BogackiShampine23(const G4BogackiShampine23&); + G4BogackiShampine23& operator=(const G4BogackiShampine23&); + + + private: + + G4double *ak2, *ak3, *ak4, *yTemp, *yIn; + // for storing intermediate 'k' values in stepper + G4double *pseudoDydx_for_DistChord; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4BogackiShampine23* fAuxStepper; + +// G4int No_of_vars; +// G4double hinit, tinit, tmax, *yinit; +// double hmax, hmin, safe_const, err0, Step_factor; +// void (*derivs)(double, double *, double *); + +}; + +#endif /* G4BogackiShampine23 */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/geometry/magneticfield/include/G4BogackiShampine45.hh b/source/geometry/magneticfield/include/G4BogackiShampine45.hh new file mode 100644 index 0000000000..ef67d9af7b --- /dev/null +++ b/source/geometry/magneticfield/include/G4BogackiShampine45.hh @@ -0,0 +1,107 @@ +// An implementation of the embedded RK method from the following paper +// by P. Bogacki and L. F. Shampine: +// “An efficient Runge-Kutta (4,5) pair,†+// Comput. Math. with Appl., vol. 32, no. 6, pp. 15–28, Sep. 1996. +// +// An interpolation method provides the value of an intermediate +// point in a step -- if a step was sucessful. +// +// This version can provide the FSAL property of the method, +// which allows the reuse of the last derivative in the next step. +// but only by using the additional method GetLastDyDx. +// (Alternative interface for simpler use of FSAL is under development.) +// +// Design & Implementation by Somnath Banerjee +// Supervision & code review: John Apostolakis +// +// Work supported by the Google Summer of Code 2015. +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef Bogacki_Shampine_45 +#define Bogacki_Shampine_45 + +#include "G4MagIntegratorStepper.hh" + +class G4BogackiShampine45 : public G4MagIntegratorStepper +{ +public: + G4BogackiShampine45(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4BogackiShampine45(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) ; + + // This Stepper provides 'dense output'. After a successful + // step, it is possible to obtain an estimate of the value + // of the function at an intermediate point of the interval. + // This requires only two additional evaluations of the + // derivative (and thus the field). + + inline void SetupInterpolation() + // const G4double yInput[], const G4double dydx[], const G4double Step ) + { + SetupInterpolationHigh(); // ( yInput, dydx, Step); + } + + //For calculating the output at the tau fraction of Step + inline void Interpolate( // const G4double yInput[], + // const G4double dydx[], + // const G4double Step, + G4double tau, + G4double yOut[]) // Output value + { + InterpolateHigh( tau, yOut); + // InterpolateHigh( yInput, dydx, Step, yOut, tau); + } + + void SetupInterpolationHigh(); + // Was: ( const G4double yInput[], const G4double, const G4double Step ); + + // For calculating the output at the tau fraction of Step + void InterpolateHigh( // const G4double yInput[], + // const G4double dydx[], + // const G4double Step, + G4double tau, + G4double yOut[] ) const; + + G4double DistChord() const; + G4int IntegratorOrder() const { return 4; } + + void GetLastDydx( G4double dyDxLast[] ); + + void PrepareConstants(); // Initialise the values of the bi[][] array + + private : + + G4BogackiShampine45(const G4BogackiShampine45&); + G4BogackiShampine45& operator=(const G4BogackiShampine45&); + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, *ak8, + *ak9, *ak10, *ak11, *yTemp, *yIn; + + G4double *p[6]; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, *fLastDyDx, + *fMidVector, *fMidError; + // for DistChord calculations + + G4BogackiShampine45* fAuxStepper; // For chord - until interpolation is proven + bool fPreparedInterpolation; + + // Class constants + static bool fPreparedConstants; + static G4double bi[12][7]; +}; + +#endif /* defined(__Geant4__G4BogackiShampine45__) */ diff --git a/source/geometry/magneticfield/include/G4CachedMagneticField.hh b/source/geometry/magneticfield/include/G4CachedMagneticField.hh index 2d27b7d20a..162879ad00 100644 --- a/source/geometry/magneticfield/include/G4CachedMagneticField.hh +++ b/source/geometry/magneticfield/include/G4CachedMagneticField.hh @@ -67,7 +67,7 @@ class G4CachedMagneticField : public G4MagneticField void ClearCounts() { fCountCalls = 0; fCountEvaluations=0; } void ReportStatistics(); - virtual G4CachedMagneticField* Clone() const; + virtual G4Field* Clone() const; private: G4MagneticField *fpMagneticField; diff --git a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh index 106016bf14..551fe74221 100644 --- a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh +++ b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4CashKarpRKF45.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4CashKarpRKF45.hh 97598 2016-06-06 07:19:46Z gcosmo $ // // // class G4CashKarpRKF45 @@ -86,7 +86,7 @@ class G4CashKarpRKF45 : public G4MagIntegratorStepper private: - G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, *yTemp, *yIn; + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *yTemp, *yIn; // *ak7 // scratch space G4double fLastStepLength; diff --git a/source/geometry/magneticfield/include/G4DELPHIMagField.hh b/source/geometry/magneticfield/include/G4DELPHIMagField.hh index d1c993ed4f..31b313e4ed 100644 --- a/source/geometry/magneticfield/include/G4DELPHIMagField.hh +++ b/source/geometry/magneticfield/include/G4DELPHIMagField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DELPHIMagField.hh 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4DELPHIMagField.hh 96751 2016-05-04 09:39:38Z gcosmo $ // // // class G4DELPHIMagField @@ -56,7 +56,7 @@ class G4DELPHIMagField : public G4MagneticField void GetFieldValue(const G4double yTrack[], G4double B[] ) const; - G4DELPHIMagField* Clone() const; + G4Field* Clone() const; }; #endif diff --git a/source/geometry/magneticfield/include/G4DoLoMcPriRK34.hh b/source/geometry/magneticfield/include/G4DoLoMcPriRK34.hh new file mode 100644 index 0000000000..e78c26371f --- /dev/null +++ b/source/geometry/magneticfield/include/G4DoLoMcPriRK34.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. * +// ******************************************************************** +// +// DoLoMcPri4(3) RK method - header +// Implements the 6-3-4 non-FSAL method ( 6 stage, 3rd & 4th order embedded RK method ) +// +// RK tableau / method develoed by +// Dormand Lockyer McGorrigan Prince +// RK4(3)6FD - forced Non-FSAL +// +// Header, design, implementation by Somnath Banerjee +// Supported by Google in Google Summer of Code 2015. +// Supervision / code review: John Apostolakis +// +// First version: 7 July 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// G4DoLoMcPriRK34.hh +// Geant4 +// +// History +// ----------------------------- +// Created by Somnath on 7 July 2015 + + +#ifndef DoLo_McPri_34 +#define DoLo_McPri_34 + +#include "G4MagIntegratorStepper.hh" + +class G4DoLoMcPriRK34 : public G4MagIntegratorStepper +{ +public: + //Constructor using Equation + G4DoLoMcPriRK34(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4DoLoMcPriRK34(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) ; + + //For Preparing the Interpolant and calculating the extra stages + void SetupInterpolation(); + void SetupInterpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step ); + + //For calculating the output at the tau fraction of Step + void Interpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ); + + void Interpolate( G4double tau, + G4double yOut[]); + + void interpolate(const G4double yInput[], + const G4double dydx[], + G4double yOut[], + G4double Step, + G4double tau ) ; + + G4double DistChord() const; + G4int IntegratorOrder() const {return 3; } + +private : + + G4DoLoMcPriRK34(const G4DoLoMcPriRK34&); + //Copy constructor kept private + G4DoLoMcPriRK34& operator=(const G4DoLoMcPriRK34&); + //assignment operator overloaded + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *yTemp, *yIn; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4DoLoMcPriRK34* fAuxStepper; +}; + +#endif /* defined(__Geant4__G4DoLoMcPriRK34__) */ diff --git a/source/geometry/magneticfield/include/G4DormandPrince745.hh b/source/geometry/magneticfield/include/G4DormandPrince745.hh new file mode 100644 index 0000000000..a5640e4a58 --- /dev/null +++ b/source/geometry/magneticfield/include/G4DormandPrince745.hh @@ -0,0 +1,137 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4DormandPrince745.hh 97387 2016-06-02 10:03:42Z gcosmo $ +// +// Class desription: +// An implementation of the 5th order embedded RK method from the paper +// J. R. Dormand and P. J. Prince, “A family of embedded Runge-Kutta formulae,†+// Journal of computational and applied …, vol. 6, no. 1, pp. 19–26, 1980. +// +// DormandPrince7 - 5(4) embedded RK method +// +// Design & Implementation by Somnath Banerjee +// Supervision & code review: John Apostolakis +// +// Work supported by the Google Summer of Code 2015. +// +// History +// ------------------------------------------ +// Created : 25 May 2015. - Somnath +// Revisions : +// * 29 June 2015: Added interpolate() method(s) - Somnath +// * May 2016: Cleanup and first comming in G4 - John Apostolakis + +#ifndef Dormand_Prince_745 +#define Dormand_Prince_745 + +#include "G4MagIntegratorStepper.hh" + +class G4DormandPrince745 : public G4MagIntegratorStepper +{ + public: + G4DormandPrince745(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4DormandPrince745(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) ; + + //For Preparing the Interpolant and calculating the extra stages + void SetupInterpolation_low( /* const G4double yInput[], + const G4double dydx[], + const G4double Step */ ); + + //For calculating the output at the tau fraction of Step + void Interpolate_low( /* const G4double yInput[], + const G4double dydx[], + const G4double Step, */ + G4double yOut[], + G4double tau ); + + inline void SetupInterpolation() + /* ( const G4double yInput[], + const G4double dydx[], + const G4double Step ) */ + { + SetupInterpolation_low( /* yInput, dydx, Step */ ); + // SetupInterpolation_high( /* yInput, dydx, Step */ ); + } + + //For calculating the output at the tau fraction of Step + inline void Interpolate( + /* const G4double yInput[], + const G4double dydx[], + const G4double Step, */ + G4double tau, + G4double yOut[] + ) + { + Interpolate_low( /* yInput, dydx, Step, */ yOut, tau); + // Interpolate_high( /* yInput, dydx, Step, */ yOut, tau); + } + + void SetupInterpolation_high( /* const G4double yInput[], + const G4double dydx[], + const G4double Step */ ); + + //For calculating the output at the tau fraction of Step + void Interpolate_high( /* const G4double yInput[], + const G4double dydx[], + const G4double Step, */ + G4double yOut[], + G4double tau ); + + G4double DistChord() const; + G4double DistChord2() const; + G4double DistChord3() const; + + // Enabling method, with common code between implementations (and steppers) + G4double DistLine( G4double yStart[], G4double yMid[], G4double yEnd[] ) const; + G4int IntegratorOrder() const {return 4; } + + //New copy constructor + // G4DormandPrince745(const G4DormandPrince745 &); + +private : + + G4DormandPrince745& operator=(const G4DormandPrince745&); + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, + *ak8, *ak9, //For additional stages in the interpolant + *yTemp, *yIn; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fInitialDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4DormandPrince745* fAuxStepper; +}; +#endif /* defined(__Geant4__G4DormandPrince745__) */ diff --git a/source/geometry/magneticfield/include/G4DormandPrinceRK56.hh b/source/geometry/magneticfield/include/G4DormandPrinceRK56.hh new file mode 100644 index 0000000000..369392879f --- /dev/null +++ b/source/geometry/magneticfield/include/G4DormandPrinceRK56.hh @@ -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. * +// ******************************************************************** +// +// Dormand-Prince RK 6(5) non-FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 26 June 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// G4DormandPrince745.cc +// Geant4 +// +// History +// ----------------------------- +// Created by Somnath on 26 June 2015 +// +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef DORMAND_PRINCE_RK56_H +#define DORMAND_PRINCE_RK56_H + +#include "G4MagIntegratorStepper.hh" + +class G4DormandPrinceRK56 : public G4MagIntegratorStepper{ + + +public: + //constructor + G4DormandPrinceRK56( G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary= true ) ; + + //destructor + ~G4DormandPrinceRK56() ; + + //Stepper + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) ; + + G4double DistChord() const; + G4int IntegratorOrder() const { return 5; } + + G4DormandPrinceRK56(const G4DormandPrinceRK56&); + G4DormandPrinceRK56& operator=(const G4DormandPrinceRK56&); + + //For Preparing the Interpolant and calculating the extra stages + void SetupInterpolate_low( const G4double yInput[], + const G4double dydx[], + const G4double Step ); + + //For calculating the output at the tau fraction of Step + void Interpolate_low( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ); + + void SetupInterpolation() + { SetupInterpolate( fLastInitialVector, fLastDyDx, fLastStepLength); } + + inline void SetupInterpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step ){ + SetupInterpolate_low( yInput, dydx, Step); + } + + //For calculating the output at the tau fraction of Step + inline void Interpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ){ + Interpolate_low( yInput, dydx, Step, yOut, tau); + } + + void Interpolate( G4double tau, G4double yOut[]) + { Interpolate( fLastInitialVector, fLastDyDx, fLastStepLength, yOut, tau ); } + + void SetupInterpolate_high( const G4double yInput[], + const G4double dydx[], + const G4double Step ); + + //For calculating the output at the tau fraction of Step + void Interpolate_high( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ); + +private: + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, *ak8, *ak9; // for storing intermediate 'k' values in stepper + G4double *ak10_low, *ak10, *ak11, * ak12; //For the additional stages of Interpolant + G4double *yTemp, *yIn; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4DormandPrinceRK56* fAuxStepper; +}; + +#endif /* G4DormandPrinceRK56 */ + diff --git a/source/geometry/magneticfield/include/G4DormandPrinceRK78.hh b/source/geometry/magneticfield/include/G4DormandPrinceRK78.hh new file mode 100644 index 0000000000..fa0717cf51 --- /dev/null +++ b/source/geometry/magneticfield/include/G4DormandPrinceRK78.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. * +// ******************************************************************** +// +// G4DormandPrinceRK78.hh +// +// Created by Somnath on 30/06/15. + +#ifndef G4Dormand_Prince_RK78_hh +#define G4Dormand_Prince_RK78_hh + +#include "G4MagIntegratorStepper.hh" + +class G4DormandPrinceRK78 : public G4MagIntegratorStepper +{ + public: + G4DormandPrinceRK78(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4DormandPrinceRK78(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[]) ; + + G4double DistChord() const; + G4int IntegratorOrder() const {return 7; } + + private : + G4DormandPrinceRK78(const G4DormandPrinceRK78&); + G4DormandPrinceRK78& operator=(const G4DormandPrinceRK78&); + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, *ak8, + *ak9, *ak10, *ak11, *ak12, *ak13, + *yTemp, *yIn; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4DormandPrinceRK78* fAuxStepper; +}; + +#endif /* defined(__G4_DormandPrinceRK78_hh) */ diff --git a/source/geometry/magneticfield/include/G4FSALBogackiShampine45.hh b/source/geometry/magneticfield/include/G4FSALBogackiShampine45.hh new file mode 100644 index 0000000000..038a1d1ff6 --- /dev/null +++ b/source/geometry/magneticfield/include/G4FSALBogackiShampine45.hh @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// Bogacki-Shampine - 8 - 5(4) FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 26 May 2015 +// +// History +// ----------------------------- +// Created by Somnath on 26 May 2015 +// +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef G4FSAL_Bogacki_Shampine_45_hh +#define G4FSAL_Bogacki_Shampine_45_hh + +#include "G4VFSALIntegrationStepper.hh" + +class G4FSALBogackiShampine45 : public G4VFSALIntegrationStepper +{ +public: + G4FSALBogackiShampine45(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4FSALBogackiShampine45(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[], + G4double nextDydx[]) ; + + void interpolate( const G4double yInput[], + const G4double dydx[], + G4double yOut[], + G4double Step, + G4double tau ) ; + + + G4double DistChord() const; + G4int IntegratorOrder() const { return 4; } + + private : + + G4FSALBogackiShampine45(const G4FSALBogackiShampine45&); + G4FSALBogackiShampine45& operator=(const G4FSALBogackiShampine45&); + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, *ak8, + *ak9, *ak10, *ak11, + *yTemp, *yIn; + + G4double *pseudoDydx_for_DistChord; + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4FSALBogackiShampine45* fAuxStepper; +}; + +#endif /* defined( G4FSAL_Bogacki_Shampine_45_hh ) */ diff --git a/source/geometry/magneticfield/include/G4FSALDormandPrince745.hh b/source/geometry/magneticfield/include/G4FSALDormandPrince745.hh new file mode 100644 index 0000000000..387aa25aa0 --- /dev/null +++ b/source/geometry/magneticfield/include/G4FSALDormandPrince745.hh @@ -0,0 +1,84 @@ +// DormandPrince7 - 5(4) FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 25 May 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// +// $ID: FDormandPrince745.hh $ +// +// History +// ---------------------------------------------------- +// Created : 25 May 2015. - Somnath +// +// Added interpolate() method: - Somnath +// 29 June 2015 + + +#ifndef FFDormand_Prince_745 +#define FFDormand_Prince_745 + +#include "G4VFSALIntegrationStepper.hh" + +class G4FSALDormandPrince745 : public G4VFSALIntegrationStepper +{ + public: + G4FSALDormandPrince745(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4FSALDormandPrince745(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[], + G4double nextDydx[]) ; + void interpolate( const G4double yInput[], + const G4double dydx[], + G4double yOut[], + G4double Step, + G4double tau ) ; + //For higher order Interpolant + void SetupInterpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step ); + + //For calculating the output at the tau fraction of Step + void Interpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ); + + + G4double DistChord() const; + G4int IntegratorOrder() const {return 4; } + G4bool isFSAL() const{ return true; } +// G4double *getLastDydx(); + +private : + + G4FSALDormandPrince745(const G4FSALDormandPrince745&); + G4FSALDormandPrince745& operator=(const G4FSALDormandPrince745&); + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, + *ak8, *ak9, //For additional stages in the interpolant + *yTemp, *yIn; + + //Only for use with DistChord :- + G4double *pseudoDydx_for_DistChord; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4FSALDormandPrince745* fAuxStepper; +}; + +#endif /* defined(__Geant4__FSALDormandPrince745__) */ diff --git a/source/geometry/magneticfield/include/G4FSALIntegrationDriver.hh b/source/geometry/magneticfield/include/G4FSALIntegrationDriver.hh new file mode 100644 index 0000000000..2795f9495a --- /dev/null +++ b/source/geometry/magneticfield/include/G4FSALIntegrationDriver.hh @@ -0,0 +1,268 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4FSALIntegrationDriver.hh 97387 2016-06-02 10:03:42Z gcosmo $ +// +// +// class G4FSALIntegrationDriver +// +// Class description: +// +// Provides a driver that talks to the Integrator Stepper, and insures that +// the error is within acceptable bounds. + +// History: +// - Created. J.Apostolakis. +// -------------------------------------------------------------------- + +#ifndef G4FSALIntegrationDriver_Def +#define G4FSALIntegrationDriver_Def + +#include "G4Types.hh" +#include "G4FieldTrack.hh" +#include "G4VFSALIntegrationStepper.hh" + +class G4FSALIntegrationDriver +{ + public: // with description + + G4bool AccurateAdvance(G4FieldTrack& y_current, + G4double hstep, + G4double eps, // Requested y_err/hstep + G4double hinitial=0.0); // Suggested 1st interval + // Above drivers for integrator (Runge-Kutta) with stepsize control. + // Integrates ODE starting values y_current + // from current s (s=s0) to s=s0+h with accuracy eps. + // On output ystart is replaced by value at end of interval. + // The concept is similar to the odeint routine from NRC p.721-722. + + G4bool QuickAdvance( G4FieldTrack& y_val, // INOUT + G4double dydx[], + G4double hstep, // IN + G4double& dchord_step, + G4double& dyerr ) ; + // QuickAdvance just tries one Step - it does not ensure accuracy. + + G4bool QuickAdvance( G4FieldTrack& y_posvel, // INOUT + G4double dydx[], + G4double hstep, // IN + G4double& dchord_step, + G4double& dyerr_pos_sq, + G4double& dyerr_mom_rel_sq ) ; + // New QuickAdvance that also just tries one Step + // (so also does not ensure accuracy) + // but does return the errors in position and + // momentum (normalised: Delta_Integration(p^2)/(p^2) ) + + G4FSALIntegrationDriver( G4double hminimum, + G4VFSALIntegrationStepper *pItsStepper, + G4int numberOfComponents=6, + G4int statisticsVerbosity=1); + ~G4FSALIntegrationDriver(); + // Constructor, destructor. + + inline G4double GetHmin() const; + inline G4double Hmin() const; // Obsolete + inline G4double GetSafety() const; + inline G4double GetPshrnk() const; + inline G4double GetPgrow() const; + inline G4double GetErrcon() const; + inline G4int GetNoTotalSteps() const; //Only for debug purposes + inline void GetDerivatives( const G4FieldTrack &y_curr, // const, INput + G4double dydx[] ); // OUTput + // Accessors. + + inline void RenewStepperAndAdjust(G4VFSALIntegrationStepper *pItsStepper); + // Sets a new stepper pItsStepper for this driver. Then it calls + // ReSetParameters to reset its parameters accordingly. + + inline void ReSetParameters(G4double new_safety= 0.9 ); + // i) sets the exponents (pgrow & pshrnk), + // using the current Stepper's order, + // ii) sets the safety + // ii) calculates "errcon" according to the above values. + + inline void SetSafety(G4double valS); + inline void SetPshrnk(G4double valPs); + inline void SetPgrow (G4double valPg); + inline void SetErrcon(G4double valEc); + // When setting safety or pgrow, errcon will be set to a + // compatible value. + + inline G4double ComputeAndSetErrcon(); + + inline const G4VFSALIntegrationStepper* GetStepper() const; + inline G4VFSALIntegrationStepper* GetStepper(); + + void OneGoodStep( G4double ystart[], // Like old RKF45step() + G4double dydx[], + G4double& x, + G4double htry, + G4double eps, // memb variables ? + G4double& hdid, + G4double& hnext ) ; + // This takes one Step that is as large as possible while + // satisfying the accuracy criterion of: + // yerr < eps * |y_end-y_start| + + G4double ComputeNewStepSize( G4double errMaxNorm, // normalised error + G4double hstepCurrent); // current step size + // Taking the last step's normalised error, calculate + // a step size for the next step. + // Do not limit the next step's size within a factor of the + // current one. + + G4double ComputeNewStepSize_WithinLimits( + G4double errMaxNorm, // normalised error + G4double hstepCurrent); // current step size + // Taking the last step's normalised error, calculate + // a step size for the next step. + // Limit the next step's size within a range around the current one. + + inline G4int GetMaxNoSteps() const; + inline void SetMaxNoSteps( G4int val); + // Modify and Get the Maximum number of Steps that can be + // taken for the integration of a single segment - + // (ie a single call to AccurateAdvance). + +//--------------------------------------------------------------------- +//The following has been introduced by [hackabot] for testing purposes only + inline G4int GetTotalNoStepperCalls() const; +//--------------------------------------------------------------------- + + public: // without description + + inline void SetHmin(G4double newval); + inline void SetVerboseLevel(G4int newLevel); + inline G4double GetVerboseLevel() const; + + inline G4double GetSmallestFraction() const; + void SetSmallestFraction( G4double val ); + + + + + protected: // without description + void WarnSmallStepSize( G4double hnext, G4double hstep, + G4double h, G4double xDone, + G4int noSteps); + void WarnTooManyStep( G4double x1start, G4double x2end, G4double xCurrent); + void WarnEndPointTooFar (G4double endPointDist, + G4double hStepSize , + G4double epsilonRelative, + G4int debugFlag); + // Issue warnings for undesirable situations + + void PrintStatus( const G4double* StartArr, + G4double xstart, + const G4double* CurrentArr, + G4double xcurrent, + G4double requestStep, + G4int subStepNo ); + void PrintStatus( const G4FieldTrack& StartFT, + const G4FieldTrack& CurrentFT, + G4double requestStep, + G4int subStepNo ); + void PrintStat_Aux( const G4FieldTrack& aFieldTrack, + G4double requestStep, + G4double actualStep, + G4int subStepNo, + G4double subStepSize, + G4double dotVelocities ); + // Verbose output for debugging + + void PrintStatisticsReport() ; + // Report on the number of steps, maximum errors etc. + +#ifdef QUICK_ADV_TWO + G4bool QuickAdvance( G4double yarrin[], // In + const G4double dydx[], + G4double hstep, + G4double yarrout[], // Out + G4double& dchord_step, // Out + G4double& dyerr ); // in length +#endif + + private: + + G4FSALIntegrationDriver(const G4FSALIntegrationDriver&); + G4FSALIntegrationDriver& operator=(const G4FSALIntegrationDriver&); + // Private copy constructor and assignment operator. + + private: + + // --------------------------------------------------------------- + // INVARIANTS + + G4double fMinimumStep; + // Minimum Step allowed in a Step (in absolute units) + G4double fSmallestFraction; // Expected range 1e-12 to 5e-15; + // Smallest fraction of (existing) curve length - in relative units + // below this fraction the current step will be the last + + const G4int fNoIntegrationVariables; // Number of Variables in integration + const G4int fMinNoVars; // Minimum number for FieldTrack + const G4int fNoVars; // Full number of variable + + G4int fMaxNoSteps; + static const G4int fMaxStepBase; + + G4double safety; + G4double pshrnk; // exponent for shrinking + G4double pgrow; // exponent for growth + G4double errcon; + // Parameters used to grow and shrink trial stepsize. + + static const G4double max_stepping_increase; + static const G4double max_stepping_decrease; + // Maximum stepsize increase/decrease factors. + + G4int fStatisticsVerboseLevel; + + // --------------------------------------------------------------- + // DEPENDENT Objects + G4VFSALIntegrationStepper *pIntStepper; + + // --------------------------------------------------------------- + // STATE + + G4int fNoTotalSteps, fNoBadSteps, fNoSmallSteps, fNoInitialSmallSteps; + G4double fDyerr_max, fDyerr_mx2; + G4double fDyerrPos_smTot, fDyerrPos_lgTot, fDyerrVel_lgTot; + G4double fSumH_sm, fSumH_lg; + // Step Statistics + + G4int fVerboseLevel; // Verbosity level for printing (debug, ..) + // Could be varied during tracking - to help identify issues + + //For Test Purposes :- + G4int TotalNoStepperCalls; + +}; + +#include "G4FSALIntegrationDriver.icc" + +#endif /* G4FSALIntegrationDriver_Def */ diff --git a/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc b/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc new file mode 100644 index 0000000000..1b3261e24f --- /dev/null +++ b/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc @@ -0,0 +1,178 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4FSALIntegrationDriver.icc 97387 2016-06-02 10:03:42Z gcosmo $ +// +// -------------------------------------------------------------------- + +inline +G4double G4FSALIntegrationDriver::GetHmin() const +{ + return fMinimumStep; +} + +inline +G4double G4FSALIntegrationDriver::Hmin() const +{ + return fMinimumStep; +} + +inline +G4double G4FSALIntegrationDriver::GetSafety() const +{ + return safety; +} + +inline +G4double G4FSALIntegrationDriver::GetPshrnk() const +{ + return pshrnk; +} + +inline +G4double G4FSALIntegrationDriver::GetPgrow() const +{ + return pgrow; +} + +inline +G4double G4FSALIntegrationDriver::GetErrcon() const +{ + return errcon; +} + +inline +void G4FSALIntegrationDriver::SetHmin(G4double newval) +{ + fMinimumStep = newval; +} + +inline +G4double G4FSALIntegrationDriver::ComputeAndSetErrcon() +{ + errcon = std::pow(max_stepping_increase/GetSafety(),1.0/GetPgrow()); + return errcon; +} + +inline +void G4FSALIntegrationDriver::ReSetParameters(G4double new_safety) +{ + safety = new_safety; + pshrnk = -1.0 / pIntStepper->IntegratorOrder(); + pgrow = -1.0 / (1.0 + pIntStepper->IntegratorOrder()); + ComputeAndSetErrcon(); +} + +inline +void G4FSALIntegrationDriver::SetSafety(G4double val) +{ + safety=val; + ComputeAndSetErrcon(); +} + +inline +void G4FSALIntegrationDriver::SetPgrow(G4double val) +{ + pgrow=val; + ComputeAndSetErrcon(); +} + +inline +void G4FSALIntegrationDriver::SetErrcon(G4double val) +{ + errcon=val; +} + +inline +void G4FSALIntegrationDriver::RenewStepperAndAdjust(G4VFSALIntegrationStepper *pItsStepper) +{ + pIntStepper = pItsStepper; + ReSetParameters(); +} + +inline +const G4VFSALIntegrationStepper* G4FSALIntegrationDriver::GetStepper() const +{ + return pIntStepper; +} + +inline +G4VFSALIntegrationStepper* G4FSALIntegrationDriver::GetStepper() +{ + return pIntStepper; +} + +inline +G4int G4FSALIntegrationDriver::GetMaxNoSteps() const +{ + return fMaxNoSteps; +} + +inline +void G4FSALIntegrationDriver::SetMaxNoSteps(G4int val) +{ + fMaxNoSteps= val; +} + +inline +void G4FSALIntegrationDriver::GetDerivatives(const G4FieldTrack &y_curr, // const, INput + G4double dydx[]) // OUTput +{ + G4double tmpValArr[G4FieldTrack::ncompSVEC]; + y_curr.DumpToArray( tmpValArr ); + pIntStepper -> RightHandSide( tmpValArr , dydx ); +} + +inline +G4double G4FSALIntegrationDriver::GetVerboseLevel() const +{ + return fVerboseLevel; +} + +inline +void G4FSALIntegrationDriver::SetVerboseLevel(G4int newLevel) +{ + fVerboseLevel= newLevel; +} + +inline +G4double G4FSALIntegrationDriver::GetSmallestFraction() const +{ + return fSmallestFraction; +} + +inline +G4int G4FSALIntegrationDriver::GetNoTotalSteps() const +{ + return fNoTotalSteps; +} + +inline +G4int G4FSALIntegrationDriver::GetTotalNoStepperCalls() const +{ + return TotalNoStepperCalls; +} + diff --git a/source/geometry/magneticfield/include/G4Field.hh b/source/geometry/magneticfield/include/G4Field.hh index 49b9d0fa18..ab909c0d60 100644 --- a/source/geometry/magneticfield/include/G4Field.hh +++ b/source/geometry/magneticfield/include/G4Field.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Field.hh 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4Field.hh 96751 2016-05-04 09:39:38Z gcosmo $ // // // class G4Field @@ -83,7 +83,7 @@ class G4Field G4Field( G4bool gravityOn= false); G4Field( const G4Field & ); virtual ~G4Field(); - inline G4Field& operator = (const G4Field &p); + G4Field& operator = (const G4Field &p); // A field signature function that can be used to insure // that the Equation of motion object and the G4Field object @@ -99,9 +99,11 @@ class G4Field // Does this field include gravity? inline void SetGravityActive( G4bool OnOffFlag ); - virtual G4Field* Clone() const; - //Implements cloning, needed by G4 MT + virtual G4Field* Clone() const; + // Implements cloning, needed by G4 MT + private: + G4bool fGravityActive; }; diff --git a/source/geometry/magneticfield/include/G4HelixMixedStepper.hh b/source/geometry/magneticfield/include/G4HelixMixedStepper.hh index b886ff3457..5200110fd3 100644 --- a/source/geometry/magneticfield/include/G4HelixMixedStepper.hh +++ b/source/geometry/magneticfield/include/G4HelixMixedStepper.hh @@ -37,12 +37,20 @@ // it possible to choose other stepper,like G4CashKarpRK45 or G4RKG3_Stepper, // by setting StepperNumber : new HelixMixedStepper(EqRhs,N) // -// N=0 G4ExplicitEuler; N=1 G4ImplicitEuler; // N=2 G4SimpleRunge; N=3 G4SimpleHeum; -// N=4 G4ClassicalRK4; N=5 G4HelixExplicitEuler; -// N=6 G4HelixExplicitEuler; N=7 G4HelixSimpleRunge; +// N=4 G4ClassicalRK4; +// N=6 G4HelixImplicitEuler; N=7 G4HelixSimpleRunge; // N=8 G4CashKarpRK45; N=9 G4ExactHelixStepper; -// N=10 G4RKG3_Stepper; +// N=10 G4RKG3_Stepper; N=13 G4NystromRK4 +// N=23 BogackiShampine23 N=145 TsitourasRK45 +// N=45 BogackiShampine45 N=745 DormandPrince745 (ie DoPri5) +// +// For completeness also available are: +// N=11 G4ExplicitEuler N=12 G4ImplicitEuler; -- Likely poor +// N=5 G4HelixExplicitEuler (testing only) +// For recommendations see comments in 'SetupStepper' method. +// +// Note: Like other helix steppers, only applicable in pure magnetic field // // History: // Derived from ExactHelicalStepper 18/05/07 @@ -60,7 +68,7 @@ class G4HelixMixedStepper: public G4MagHelicalStepper public: - G4HelixMixedStepper(G4Mag_EqRhs *EqRhs,G4int fStepperNumber= -1, G4double Angle_threshold= -1.0); + G4HelixMixedStepper(G4Mag_EqRhs *EqRhs,G4int StepperNumber= -1, G4double Angle_threshold= -1.0); ~G4HelixMixedStepper(); void Stepper( const G4double y[], @@ -94,8 +102,11 @@ class G4HelixMixedStepper: public G4MagHelicalStepper G4int IntegratorOrder() const { return 4; } private: + // Mixed Integration RK4 for 'small' steps - G4MagIntegratorStepper* fRK4Stepper; + G4MagIntegratorStepper* fRK4Stepper; + G4int fStepperNumber; // Int ID of RK stepper + // Threshold angle (in radians ) - above it Helical stepper is used G4double fAngle_threshold; private: diff --git a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh index b295bc59e2..dbfa479018 100644 --- a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh +++ b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4LineCurrentMagField.hh 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4LineCurrentMagField.hh 96751 2016-05-04 09:39:38Z gcosmo $ // // // class G4LineCurrentMagField @@ -54,7 +54,8 @@ class G4LineCurrentMagField : public G4MagneticField void GetFieldValue(const G4double yTrack[] , G4double B[] ) const; - G4LineCurrentMagField* Clone() const; + G4Field* Clone() const; + private: G4double fFieldConstant; diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh index 5b530d04db..e586b99c48 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MagIntegratorStepper.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4MagIntegratorStepper.hh 97387 2016-06-02 10:03:42Z gcosmo $ // // // class G4MagIntegratorStepper @@ -55,7 +55,10 @@ class G4MagIntegratorStepper G4MagIntegratorStepper(G4EquationOfMotion *Equation, G4int numIntegrationVariables, - G4int numStateVariables=12); + G4int numStateVariables=12, + bool isFSAL= false + // , G4int methodOrder + ); virtual ~G4MagIntegratorStepper(); // Constructor and destructor. No actions. @@ -69,7 +72,7 @@ class G4MagIntegratorStepper // Integrates ODE starting values y[0 to 6]. // Outputs yout[] and its estimated error yerr[]. - virtual G4double DistChord() const = 0; + virtual G4double DistChord() const = 0; // Estimate the maximum distance of a chord from the true path // over the segment last integrated. @@ -87,12 +90,9 @@ class G4MagIntegratorStepper // Utility method to supply the standard Evaluation of the // Right Hand side of the associated equation. - inline G4int GetNumberOfVariables() const; // Get the number of variables that the stepper will integrate over. - // void SetNumberOfVariables(G4int newNo); // Dangerous & obsolete ... - inline G4int GetNumberOfStateVariables() const; // Get the number of variables of state variables (>= above, integration) @@ -100,11 +100,25 @@ class G4MagIntegratorStepper // Returns the order of the integrator // i.e. its error behaviour is of the order O(h^order). + G4int IntegrationOrder() { return fIntegrationOrder; } + // Replacement method - using new data member + inline G4EquationOfMotion *GetEquationOfMotion(); // As some steppers (eg RKG3) require other methods of Eq_Rhs // this function allows for access to them. inline void SetEquationOfMotion(G4EquationOfMotion* newEquation); + inline unsigned long GetfNoRHSCalls(){ return fNoRHSCalls; } + // void IncrementRHSCalls() { fNoRHSCalls++; } + inline void ResetfNORHSCalls(){ fNoRHSCalls = 0; } + // Count number of calls to RHS method(s) + + bool IsFSAL() { return fIsFSAL; } + + protected: + void SetIntegrationOrder(int order) { fIntegrationOrder= order; } + void SetFSAL( bool flag= true) { fIsFSAL= flag; } + private: G4MagIntegratorStepper(const G4MagIntegratorStepper&); @@ -117,6 +131,14 @@ class G4MagIntegratorStepper const G4int fNoIntegrationVariables; // Number of Variables in integration const G4int fNoStateVariables; // Number required for FieldTrack // const G4int fNumberOfVariables; + + // Counter for calls to RHS method + mutable unsigned long fNoRHSCalls; + + // Parameters of a RK method -- must be shared by all steppers of a type + // -- Invariants for a class + /* const */ int fIntegrationOrder; // all ClassicalRK4 steppers are 4th order + /* const */ bool fIsFSAL; // Depends on RK method & implementation }; #include "G4MagIntegratorStepper.icc" diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc index 05ce11fd9e..2ac14f6701 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MagIntegratorStepper.icc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4MagIntegratorStepper.icc 97387 2016-06-02 10:03:42Z gcosmo $ // inline @@ -58,6 +58,7 @@ inline void G4MagIntegratorStepper::RightHandSide( const double y[], double dydx[] ) { fEquation_Rhs-> RightHandSide(y, dydx); + fNoRHSCalls++; // IncrementRHSCalls(); } inline diff --git a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh index 0e36c66cb1..98fe005476 100644 --- a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh +++ b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4QuadrupoleMagField.hh 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4QuadrupoleMagField.hh 96751 2016-05-04 09:39:38Z gcosmo $ // // // class G4QuadrupoleMagField @@ -63,7 +63,8 @@ class G4QuadrupoleMagField : public G4MagneticField void GetFieldValue(const G4double yTrack[], G4double B[] ) const; - G4QuadrupoleMagField* Clone() const; + G4Field* Clone() const; + private: G4double fGradient; diff --git a/source/geometry/magneticfield/include/G4TsitourasRK45.hh b/source/geometry/magneticfield/include/G4TsitourasRK45.hh new file mode 100644 index 0000000000..6c61cd15e5 --- /dev/null +++ b/source/geometry/magneticfield/include/G4TsitourasRK45.hh @@ -0,0 +1,68 @@ +// +// G4TsitourasRK45.hh +// Geant4 +// +// Created by hackabot on 11/06/15. +// +// + +#ifndef Tsitouras_RK45 +#define Tsitouras_RK45 + +#include "G4MagIntegratorStepper.hh" + +class G4TsitourasRK45 : public G4MagIntegratorStepper +{ +public: + G4TsitourasRK45(G4EquationOfMotion *EqRhs, + G4int numberOfVariables = 6, + G4bool primary = true); + ~G4TsitourasRK45(); + + void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) ; + + void SetupInterpolation( /* const G4double yInput[], + const G4double dydx[], + const G4double Step */ ); + + //For calculating the output at the tau fraction of Step + void Interpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ); + + + void interpolate( const G4double yInput[], + const G4double dydx[], + G4double yOut[], + G4double Step, + G4double tau); + + G4double DistChord() const; + G4int IntegratorOrder() const {return 4; } + +// G4double *getLastDydx(); + +private : + + G4TsitourasRK45(const G4TsitourasRK45&); + G4TsitourasRK45& operator=(const G4TsitourasRK45&); + + G4double *ak2, *ak3, *ak4, *ak5, *ak6, *ak7, *ak8, *yTemp, *yIn; + + G4double fLastStepLength; + G4double *fLastInitialVector, *fLastFinalVector, + *fLastDyDx, *fMidVector, *fMidError; + // for DistChord calculations + + G4TsitourasRK45* fAuxStepper; +}; + + + +#endif /* defined(__Geant4__G4TsitourasRK45__) */ diff --git a/source/geometry/magneticfield/include/G4UniformElectricField.hh b/source/geometry/magneticfield/include/G4UniformElectricField.hh index fca719f7ff..cfaec18095 100644 --- a/source/geometry/magneticfield/include/G4UniformElectricField.hh +++ b/source/geometry/magneticfield/include/G4UniformElectricField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UniformElectricField.hh 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4UniformElectricField.hh 96751 2016-05-04 09:39:38Z gcosmo $ // // // class G4UniformElectricField @@ -63,7 +63,8 @@ class G4UniformElectricField : public G4ElectricField virtual void GetFieldValue(const G4double pos[4], G4double *field) const; - virtual G4UniformElectricField* Clone() const; + virtual G4Field* Clone() const; + private: G4double fFieldComponents[6] ; diff --git a/source/geometry/magneticfield/include/G4UniformGravityField.hh b/source/geometry/magneticfield/include/G4UniformGravityField.hh index 6810064bca..4dc9d52d8e 100644 --- a/source/geometry/magneticfield/include/G4UniformGravityField.hh +++ b/source/geometry/magneticfield/include/G4UniformGravityField.hh @@ -70,7 +70,7 @@ class G4UniformGravityField : public G4Field virtual void GetFieldValue(const G4double Point[4], G4double *field) const; - virtual G4UniformGravityField* Clone() const; + virtual G4Field* Clone() const; private: diff --git a/source/geometry/magneticfield/include/G4UniformMagField.hh b/source/geometry/magneticfield/include/G4UniformMagField.hh index 4dc2c56bbd..7dc4991801 100644 --- a/source/geometry/magneticfield/include/G4UniformMagField.hh +++ b/source/geometry/magneticfield/include/G4UniformMagField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UniformMagField.hh 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4UniformMagField.hh 96751 2016-05-04 09:39:38Z gcosmo $ // // // class G4UniformMagField @@ -71,7 +71,7 @@ class G4UniformMagField : public G4MagneticField G4ThreeVector GetConstantFieldValue() const; // Return the field value - virtual G4UniformMagField* Clone() const; + virtual G4Field* Clone() const; private: diff --git a/source/geometry/magneticfield/include/G4VFSALIntegrationStepper.hh b/source/geometry/magneticfield/include/G4VFSALIntegrationStepper.hh new file mode 100644 index 0000000000..0af05872f6 --- /dev/null +++ b/source/geometry/magneticfield/include/G4VFSALIntegrationStepper.hh @@ -0,0 +1,148 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4VFSALIntegrationStepper.hh +// +// class G4VFSALIntegrationStepper +// +// Class description: +// Class similar to G4VMagIntegratorStepper, for steppers which +// estimate the value of the derivative at the projected endpoint +// of integration - at each successful step. +// This ability is known as 'First Same As Last' (FSAL). It +// reduces the number of required calls to the equation's +// RightHandSide method, and, as such the number of calls to the +// (potentially expensive) field evaluation methods. +// +// Based on G4VMagIntegratorStepper +// +// Design/first implementation: Somnath Banerjee, May-Aug 2015, +// Work supported by the Google Summer of Code 2015. +// Supervision/improvement: John Apostolakis 2015-2016 +// -------------------------------------------------------------------- + +#ifndef FSAL_MAGIntegrator_STEPPER +#define FSAL_MAGIntegrator_STEPPER + +#include "G4Types.hh" +#include "G4EquationOfMotion.hh" + +class G4VFSALIntegrationStepper +{ + public: // with description + + G4VFSALIntegrationStepper (G4EquationOfMotion* Equation, + G4int numIntegrationVariables, + G4int numStateVariables=12); + + virtual ~G4VFSALIntegrationStepper(); + // Constructor and destructor. No actions. + + virtual void Stepper( const G4double y[], + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[], + G4double lastDydx[]) = 0 ; + // The stepper for the Runge Kutta integration. + // The stepsize is fixed, with the Step size given by h. + // Integrates ODE starting values y[0 to 6]. + // Outputs yout[] and its estimated error yerr[]. + + virtual G4double DistChord() const = 0; + // Estimate the maximum distance of a chord from the true path + // over the segment last integrated. + + virtual void ComputeRightHandSide( const G4double y[], G4double dydx[] ); + // Must compute the RightHandSide as in the method below + // Optionally can cache the input y[] and the dydx[] values computed. + +// virtual G4bool isFSAL() const = 0; +// //Return true if the stepper uses FSAL (First Same As Last) + +// G4double *getLastDydx() {return 0;} + + inline void NormaliseTangentVector( G4double vec[6] ); + // Simple utility function to (re)normalise 'unit velocity' vector. + + inline void NormalisePolarizationVector( G4double vec[12] ); + // Simple utility function to (re)normalise 'unit spin' vector. + + void RightHandSide( const double y[], double dydx[] ); + // Utility method to supply the standard Evaluation of the + // Right Hand side of the associated equation. + + + inline G4int GetNumberOfVariables() const; + // Get the number of variables that the stepper will integrate over. + + // void SetNumberOfVariables(G4int newNo); // Dangerous & obsolete ... + + inline G4int GetNumberOfStateVariables() const; + // Get the number of variables of state variables (>= above, integration) + + virtual G4int IntegratorOrder() const = 0; + // Returns the order of the integrator + // i.e. its error behaviour is of the order O(h^order). + + inline G4EquationOfMotion *GetEquationOfMotion(); + // As some steppers (eg RKG3) require other methods of Eq_Rhs + // this function allows for access to them. + inline void SetEquationOfMotion(G4EquationOfMotion* newEquation); + + //--- --- For DEBUG --- --- + inline G4int GetfNoRHSCalls(){ + return fNoRHSCalls; + } + void increasefNORHSCalls(); + + inline void ResetfNORHSCalls(){ + fNoRHSCalls = 0; + } + //--- --- ///////// --- --- + private: + + G4VFSALIntegrationStepper(const G4VFSALIntegrationStepper&); + G4VFSALIntegrationStepper& operator=(const G4VFSALIntegrationStepper&); + // Private copy constructor and assignment operator. + + private: + + G4EquationOfMotion *fEquation_Rhs; + const G4int fNoIntegrationVariables; // Number of Variables in integration + const G4int fNoStateVariables; // Number required for FieldTrack + + + //--- --- For DEBUG --- --- + G4int fNoRHSCalls; + //--- --- ///////// --- --- + + // const G4int fNumberOfVariables; + +}; + +#include "G4VFSALIntegrationStepper.icc" + +#endif /* G4VFSALIntegrationStepper */ diff --git a/source/geometry/magneticfield/include/G4VFSALIntegrationStepper.icc b/source/geometry/magneticfield/include/G4VFSALIntegrationStepper.icc new file mode 100644 index 0000000000..49b1e87fdf --- /dev/null +++ b/source/geometry/magneticfield/include/G4VFSALIntegrationStepper.icc @@ -0,0 +1,83 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4VFSALIntegrationStepper.icc 97387 2016-06-02 10:03:42Z gcosmo $ +// + +inline +G4EquationOfMotion* G4VFSALIntegrationStepper::GetEquationOfMotion() +{ + return fEquation_Rhs; +} + +inline void + G4VFSALIntegrationStepper::SetEquationOfMotion(G4EquationOfMotion* newEquation) +{ + if( newEquation != 0 ) + { + fEquation_Rhs= newEquation; + } +} + +inline +G4int G4VFSALIntegrationStepper::GetNumberOfVariables() const +{ + return fNoIntegrationVariables; +} + + +inline +G4int G4VFSALIntegrationStepper::GetNumberOfStateVariables() const +{ + return fNoStateVariables; +} + + +inline +void G4VFSALIntegrationStepper::NormaliseTangentVector( G4double vec[6] ) +{ + G4double drds2 = vec[3]*vec[3]+vec[4]*vec[4]+vec[5]*vec[5]; + + if( std::fabs(drds2 - 1.0) > 1.e-14 ) + { + G4double normx = 1.0 / std::sqrt(drds2); + for(G4int i=3;i<6;i++) { vec[i] *= normx; } + } +} + +inline +void G4VFSALIntegrationStepper::NormalisePolarizationVector( G4double vec[12] ) +{ + G4double drds2 = vec[9]*vec[9]+vec[10]*vec[10]+vec[11]*vec[11]; + + if( drds2 > 0. ) + { + if( std::fabs(drds2 - 1.0) > 1.e-14 ) + { + G4double normx = 1.0 / std::sqrt(drds2); + for(G4int i=9;i<12;i++) { vec[i] *= normx; } + } + } +} diff --git a/source/geometry/magneticfield/sources.cmake b/source/geometry/magneticfield/sources.cmake index e979d9ba98..5c9596cc48 100644 --- a/source/geometry/magneticfield/sources.cmake +++ b/source/geometry/magneticfield/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 29/9/2010 # -# $Id: sources.cmake 75774 2013-11-06 09:16:47Z gcosmo $ +# $Id: sources.cmake 97598 2016-06-06 07:19:46Z gcosmo $ # #------------------------------------------------------------------------------ @@ -29,6 +29,8 @@ include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include) include(Geant4MacroDefineModule) GEANT4_DEFINE_MODULE(NAME G4magneticfield HEADERS + G4BogackiShampine23.hh + G4BogackiShampine45.hh G4CachedMagneticField.hh G4CashKarpRKF45.hh G4ChargeState.hh @@ -38,6 +40,10 @@ GEANT4_DEFINE_MODULE(NAME G4magneticfield G4ClassicalRK4.hh G4ConstRK4.hh G4DELPHIMagField.hh + G4DoLoMcPriRK34.hh + G4DormandPrince745.hh + G4DormandPrinceRK56.hh + G4DormandPrinceRK78.hh G4ElectricField.hh G4ElectroMagneticField.hh G4EqEMFieldWithEDM.hh @@ -55,6 +61,12 @@ GEANT4_DEFINE_MODULE(NAME G4magneticfield G4FieldManagerStore.hh G4FieldTrack.hh G4FieldTrack.icc + G4FSALBogackiShampine45.hh + G4FSALDormandPrince745.hh + G4FSALIntegrationDriver.hh + G4FSALIntegrationDriver.icc + G4VFSALIntegrationStepper.hh + G4VFSALIntegrationStepper.icc G4HarmonicPolMagField.hh G4HelixExplicitEuler.hh G4HelixHeum.hh @@ -85,10 +97,13 @@ GEANT4_DEFINE_MODULE(NAME G4magneticfield G4SimpleRunge.hh G4TrialsCounter.hh G4TrialsCounter.icc + G4TsitourasRK45.hh G4UniformElectricField.hh G4UniformGravityField.hh G4UniformMagField.hh SOURCES + G4BogackiShampine23.cc + G4BogackiShampine45.cc G4CachedMagneticField.cc G4CashKarpRKF45.cc G4ChargeState.cc @@ -97,6 +112,10 @@ GEANT4_DEFINE_MODULE(NAME G4magneticfield G4ClassicalRK4.cc G4ConstRK4.cc G4DELPHIMagField.cc + G4DoLoMcPriRK34.cc + G4DormandPrince745.cc + G4DormandPrinceRK56.cc + G4DormandPrinceRK78.cc G4ElectricField.cc G4ElectroMagneticField.cc G4EqEMFieldWithEDM.cc @@ -111,6 +130,10 @@ GEANT4_DEFINE_MODULE(NAME G4magneticfield G4FieldManager.cc G4FieldManagerStore.cc G4FieldTrack.cc + G4FSALBogackiShampine45.cc + G4FSALDormandPrince745.cc + G4FSALIntegrationDriver.cc + G4VFSALIntegrationStepper.cc G4HarmonicPolMagField.cc G4HelixExplicitEuler.cc G4HelixHeum.cc @@ -136,6 +159,7 @@ GEANT4_DEFINE_MODULE(NAME G4magneticfield G4SimpleHeum.cc G4SimpleRunge.cc G4TrialsCounter.cc + G4TsitourasRK45.cc G4UniformElectricField.cc G4UniformGravityField.cc G4UniformMagField.cc diff --git a/source/geometry/magneticfield/src/G4BogackiShampine23.cc b/source/geometry/magneticfield/src/G4BogackiShampine23.cc new file mode 100644 index 0000000000..a9a0f6d682 --- /dev/null +++ b/source/geometry/magneticfield/src/G4BogackiShampine23.cc @@ -0,0 +1,213 @@ +// Bogacki-Shampine - 4 - 3(2) non-FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 20 May 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// +// History +// ----------------------------- +// Created by Somnath Banerjee on 20 May 2015 +/////////////////////////////////////////////////////////////////////////////// + + +/* + +This contains the stepper function of the G4BogackiShampine23 class + +The Bogacki shampine method has the following Butcher's tableau + +0 | +1/2|1/2 +3/4|0 3/4 +1 |2/9 1/3 4/9 +------------------- + |2/9 1/3 4/9 0 + |7/24 1/4 1/3 1/8 + +*/ + +#include "G4BogackiShampine23.hh" +#include "G4LineSection.hh" + +using namespace std; + +//Constructor +G4BogackiShampine23::G4BogackiShampine23(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) + : G4MagIntegratorStepper(EqRhs, noIntegrationVariables), + fLastStepLength(0.), fAuxStepper(0) +{ + const G4int numberOfVariables = noIntegrationVariables; + + ak2 = new G4double[numberOfVariables] ; + ak3 = new G4double[numberOfVariables] ; + ak4 = new G4double[numberOfVariables] ; + + pseudoDydx_for_DistChord = new G4double[numberOfVariables]; + + const G4int numStateVars = std::max(noIntegrationVariables, + GetNumberOfStateVariables() ); + + yTemp = new G4double[numberOfVariables] ; + yIn = new G4double[numberOfVariables] ; + + fLastInitialVector = new G4double[numStateVars] ; + fLastFinalVector = new G4double[numStateVars] ; + fLastDyDx = new G4double[numStateVars]; + + fMidVector = new G4double[numStateVars]; + fMidError = new G4double[numStateVars]; + if( primary ) + { + fAuxStepper = new G4BogackiShampine23(EqRhs, numberOfVariables, !primary); + } +} + + +//Destructor +G4BogackiShampine23::~G4BogackiShampine23() +{ + delete[] ak2; + delete[] ak3; + delete[] ak4; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; +} + +//****************************************************************************** +// +// Given values for n = 4 variables yIn[0,...,n-1] +// known at x, use the 3rd order Bogacki Shampine method +// to advance the solution over an interval Step +// and return the incremented variables as yOut[0,...,n-1]. Also +// return an estimate of the local truncation error yErr[] using the +// embedded 2nd order method. The user supplies routine +// RightHandSide(y,dydx), which returns derivatives dydx for y . + + +//****************************************************************************** + + +void +G4BogackiShampine23::Stepper( const G4double yInput[], + const G4double DyDx[], + G4double Step, + G4double yOut[], + G4double yErr[]) +{ + + G4int i; + + const G4double b21 = 0.5 , + b31 = 0. , b32 = 3.0/4.0 , + b41 = 2.0/9.0, b42 = 1.0/3.0 , b43 = 4.0/9.0; + + + const G4double dc1 = b41 - 7.0/24.0 , dc2 = b42 - 1.0/4.0 , + dc3 = b43 - 1.0/3.0 , dc4 = - 0.125 ; + + + + // Initialise time to t0, needed when it is not updated by the integration. + // [ Note: Only for time dependent fields (usually electric) + // is it neccessary to integrate the time.] + yOut[7] = yTemp[7] = yIn[7]; + + const G4int numberOfVariables= this->GetNumberOfVariables(); // The number of variables to be integrated over + + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + +//------Verified------- diff --git a/source/geometry/magneticfield/src/G4BogackiShampine45.cc b/source/geometry/magneticfield/src/G4BogackiShampine45.cc new file mode 100644 index 0000000000..b34e38fe11 --- /dev/null +++ b/source/geometry/magneticfield/src/G4BogackiShampine45.cc @@ -0,0 +1,583 @@ +// Bogacki-Shampine's RK 5(4) non-FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 25 May 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// +// History +// ----------------------------- +// Created by Somnath Banerjee on May-August 2015 +// Improvements by John Apostolakis, May 2016 +/////////////////////////////////////////////////////////////////////////////// +// +// This is the source file of G4BogackiShampine45 class containing the +// definition of the stepper() method that evaluates one step in +// field propagation. +// +// The Butcher table of the Bogacki-Shampine-8-4-5 method is: +// +// 0 | +// 1/6 | 1/6 +// 2/9 | 2/27 4/27 +// 3/7 | 183/1372 -162/343 1053/1372 +// 2/3 | 68/297 -4/11 42/143 1960/3861 +// 3/4 | 597/22528 81/352 63099/585728 58653/366080 4617/20480 +// 1 | 174197/959244 -30942/79937 8152137/19744439 666106/1039181 -29421/29068 482048/414219 +// 1 | 587/8064 0 4440339/15491840 24353/124800 387/44800 2152/5985 7267/94080 +//------------------------------------------------------------------------------------------------------------------- +// 587/8064 0 4440339/15491840 24353/124800 387/44800 2152/5985 7267/94080 0 +// 2479/34992 0 123/416 612941/3411720 43/1440 2272/6561 79937/1113912 3293/556956 +// +// Do NOT re-indent the lines above - their meaning becomes lost +// ******************************** +// Coefficients have been obtained from rksuite.f : http://www.netlib.org/ode/rksuite/ + +// Note on meaning of label "non-FSAL version": +// This method calculates the deriviative dy/dx at the endpoint of the integration interval at each step. +// as part of its evaluation of the endpoint and its error. +// So this value is available to be returned, for re-use in case of a successful step. +// ( This is done in a 'later' version using a refined interface. ) + +#include + +#include "G4BogackiShampine45.hh" +#include "G4LineSection.hh" + +G4bool G4BogackiShampine45::fPreparedConstants= false; +G4double G4BogackiShampine45::bi[12][7]; + +//Constructor +G4BogackiShampine45::G4BogackiShampine45(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) + : G4MagIntegratorStepper(EqRhs, noIntegrationVariables), + fPreparedInterpolation(false) +{ + + const G4int numberOfVariables = noIntegrationVariables; + + //New Chunk of memory being created for use by the stepper + + //aki - for storing intermediate RHS + ak2 = new G4double[numberOfVariables]; + ak3 = new G4double[numberOfVariables]; + ak4 = new G4double[numberOfVariables]; + ak5 = new G4double[numberOfVariables]; + ak6 = new G4double[numberOfVariables]; + ak7 = new G4double[numberOfVariables]; + ak8 = new G4double[numberOfVariables]; + ak9 = new G4double[numberOfVariables]; + ak10 = new G4double[numberOfVariables]; + ak11 = new G4double[numberOfVariables]; + + for (int i = 0; i < 6; i++) { + p[i]= new G4double[numberOfVariables]; + } + + assert ( GetNumberOfStateVariables() >= 8 ); + const G4int numStateVars = std::max(noIntegrationVariables, + GetNumberOfStateVariables() ); + + // Must ensure space extra 'state' variables exists - i.e. yIn[7] + yTemp = new G4double[numStateVars]; + yIn = new G4double[numStateVars] ; + + fLastInitialVector = new G4double[numStateVars] ; + fLastFinalVector = new G4double[numStateVars] ; + fLastDyDx = new G4double[numberOfVariables]; // Only derivatives + + fMidVector = new G4double[numberOfVariables]; // new G4double[numStateVars]; + fMidError = new G4double[numberOfVariables]; // new G4double[numStateVars]; + + if( ! fPreparedConstants ) + PrepareConstants(); + + if( primary ) + { + fAuxStepper = new G4BogackiShampine45(EqRhs, numberOfVariables, false); + } +} + + +//Destructor +G4BogackiShampine45::~G4BogackiShampine45(){ + //clear all previously allocated memory for stepper and DistChord + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + delete[] ak7; + delete[] ak8; + delete[] ak9; + delete[] ak10; + delete[] ak11; + + for (int i = 0; i < 6; i++) { + delete[] p[i]; + } + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; +} + +// G4double* G4BogackiShampine45::getLastDydx(){ +// return ak8; +// } + +void +G4BogackiShampine45::GetLastDydx( G4double dyDxLast[] ) +{ + const G4int numberOfVariables= this->GetNumberOfVariables(); + + for(G4int i=0; i < numberOfVariables; i++ ){ + dyDxLast[i] = ak9[i]; + } +} + +//Stepper : + +// Passing in the value of yInput[],the first time dydx[] and Step length +// Giving back yOut and yErr arrays for output and error respectively + +void G4BogackiShampine45::Stepper( const G4double yInput[], + const G4double DyDx[], + G4double Step, + G4double yOut[], + G4double yErr[] ) +{ + G4int i; + + // Constants from the Butcher tableu + const G4double + b21 = 1.0/6.0 , + b31 = 2.0/27.0 , b32 = 4.0/27.0, + + b41 = 183.0/1372.0 , b42 = -162.0/343.0, b43 = 1053.0/1372.0, + + b51 = 68.0/297.0, b52 = -4.0/11.0, + b53 = 42.0/143.0, b54 = 1960.0/3861.0, + + b61 = 597.0/22528.0, b62 = 81.0/352.0, + b63 = 63099.0/585728.0, b64 = 58653.0/366080.0, + b65 = 4617.0/20480.0, + + b71 = 174197.0/959244.0, b72 = -30942.0/79937.0, + b73 = 8152137.0/19744439.0, b74 = 666106.0/1039181.0, + b75 = -29421.0/29068.0, b76 = 482048.0/414219.0, + + b81 = 587.0/8064.0, b82 = 0.0, + b83 = 4440339.0/15491840.0, b84 = 24353.0/124800.0, + b85 = 387.0/44800.0, b86 = 2152.0/5985.0, + b87 = 7267.0/94080.0; + +// c1 = 2479.0/34992.0, +// c2 = 0.0, +// c3 = 123.0/416.0, +// c4 = 612941.0/3411720.0, +// c5 = 43.0/1440.0, +// c6 = 2272.0/6561.0, +// c7 = 79937.0/1113912.0, +// c8 = 3293.0/556956.0, + + // For the embedded higher order method only the difference of values + // taken and is used directly later (instead of defining the last row + // of Butcher table in separate constants and taking the + // difference) + const G4double + dc1 = b81 - 2479.0 / 34992.0 , + dc2 = 0.0, + dc3 = b83 - 123.0 / 416.0 , + dc4 = b84 - 612941.0 / 3411720.0, + dc5 = b85 - 43.0 / 1440.0, + dc6 = b86 - 2272.0 / 6561.0, + dc7 = b87 - 79937.0 / 1113912.0, + dc8 = - 3293.0 / 556956.0; + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError); +#else + // New method -- Using interpolation, requires only 3 extra stages (ie 3 extra field evaluations ) + + // Use Interpolation, instead of auxiliary stepper to evaluate midpoint + if( ! fPreparedInterpolation ) { + G4BogackiShampine45 *cThis= const_cast(this); + cThis-> SetupInterpolationHigh(); // ( fLastInitialVector, fLastDyDx, fLastStepLength ); + } + //For calculating the output at the tau fraction of Step + G4double tau = 0.5; + // cThis->InterpolateHigh( /* fLastInitialVector, fLastDyDx, fLastStepLength, */, fMidVector, tau); + // Old arguments: ( /*yInput, dydx, step,*/ yOut, tau ); + this->InterpolateHigh( tau, fMidVector ); +#endif + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + +void G4BogackiShampine45::SetupInterpolationHigh() + // ( const G4double *yInput, const G4double *dydx, const G4double Step) +{ + //Coefficients for the additional stages : + const G4double + a91 = 455.0/6144.0 , + a92 = 0.0 , + a93 = 10256301.0/35409920.0 , + a94 = 2307361.0/17971200.0 , + a95 = -387.0/102400.0 , + a96 = 73.0/5130.0 , + a97 = -7267.0/215040.0 , + a98 = 1.0/32.0 , + + a101 = -837888343715.0/13176988637184.0 , + a102 = 30409415.0/52955362.0 , + a103 = -48321525963.0/759168069632.0 , + a104 = 8530738453321.0/197654829557760.0 , + a105 = 1361640523001.0/1626788720640.0 , + a106 = -13143060689.0/38604458898.0 , + a107 = 18700221969.0/379584034816.0 , + a108 = -5831595.0/847285792.0 , + a109 = -5183640.0/26477681.0 , + + a111 = 98719073263.0/1551965184000.0 , + a112 = 1307.0/123552.0 , + a113 = 4632066559387.0/70181753241600.0 , + a114 = 7828594302389.0/382182512025600.0 , + a115 = 40763687.0/11070259200.0 , + a116 = 34872732407.0/224610586200.0 , + a117 = -2561897.0/30105600.0 , + a118 = 1.0/10.0 , + a119 = -1.0/10.0 , + a1110 = -1403317093.0/11371610250.0 ; + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // const G4double *yIn= fLastInitialVector; + const G4double *dydx= fLastDyDx; + const G4double Step = fLastStepLength; + + yTemp[7] = yIn[7]; + + //Evaluate the extra stages : + for(int i=0; iGetNumberOfVariables(); + assert( fPreparedConstants); + + G4Exception("G4BogackiShampine45::InterpolateHigh()", "GeomField0001", + FatalException, "Method is not yet validated."); + + // const G4double *yIn= fLastInitialVector; + // const G4double *dydx= fLastDyDx; + const G4double Step = fLastStepLength; + + // for(G4int i = 0; i< numberOfVariables; i++) yIn[i] = yInput[i]; +#if 1 + G4int nwant = numberOfVariables; + const G4int norder= 6; + G4int l, k; + + for (l = 0; l < nwant; l++) { + yOut[l] = p[norder-1][l] * tau; + } + for (k = norder - 2; k >= 1; k--) { + for (l = 0; l < nwant; l++) { + yOut[l] = ( yOut[l] + p[k][l] ) * tau; + } + } + for (l = 0; l < nwant; l++) { + yOut[l] = ( yOut[l] + Step * ak8[l] ) * tau + yIn[l]; + } + // The derivative at the end-point is nextDydx[i] = ak8[i]; +#else + // The scheme tries to do the same as the DormandPrince745 routine, but fails + G4double b[12]; + const G4double *dydx= fLastDyDx; + + G4double tau0 = tau; + + for(int iStage=1; iStage<=11; iStage++){ // iStage = stage number + b[iStage] = 0.0; + tau = tau0; + for(int j=6; j>=1; j--){ // j reversed + b[iStage] += bi[iStage][j] * tau; + tau *= tau0; + } + } + + for(int i=0; i Distance = " << distance << G4endl; this->ClearCounts(); } -G4CachedMagneticField* G4CachedMagneticField::Clone() const +G4Field* G4CachedMagneticField::Clone() const { - //Cannot use copy constructor: I need to clone the associated magnetif field - G4MagneticField* aF = static_cast(this->fpMagneticField->Clone()); - G4CachedMagneticField* cloned = new G4CachedMagneticField( aF , - this->fDistanceConst ); - cloned->fLastLocation = this->fLastLocation; - cloned->fLastValue = this->fLastValue; - return cloned; + // Cannot use copy constructor: I need to clone the associated magnetic field + G4MagneticField* aF = static_cast(fpMagneticField->Clone()); + G4CachedMagneticField* cloned = new G4CachedMagneticField(aF, fDistanceConst); + + cloned->fLastLocation = fLastLocation; + cloned->fLastValue = fLastValue; + return cloned; } G4CachedMagneticField::~G4CachedMagneticField() @@ -68,9 +68,9 @@ G4CachedMagneticField::ReportStatistics() } G4CachedMagneticField::G4CachedMagneticField(const G4CachedMagneticField &rightCMF) - : G4MagneticField() + : G4MagneticField(rightCMF) { - fpMagneticField= rightCMF.fpMagneticField; + fpMagneticField= rightCMF.fpMagneticField; // NOTE: sharing pointer here! fDistanceConst = rightCMF.fDistanceConst; fLastLocation = rightCMF.fLastLocation; fLastValue = rightCMF.fLastValue; @@ -79,7 +79,14 @@ G4CachedMagneticField::G4CachedMagneticField(const G4CachedMagneticField &rightC G4CachedMagneticField& G4CachedMagneticField::operator = (const G4CachedMagneticField &p) { - if (&p == this) return *this; *this = p; return *this; + if (&p == this) return *this; + G4MagneticField::operator=(p); + fpMagneticField= p.fpMagneticField; // NOTE: sharing pointer here! + fDistanceConst = p.fDistanceConst; + fLastLocation = p.fLastLocation; + fLastValue = p.fLastValue; + this->ClearCounts(); + return *this; } void diff --git a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc index 8a7b52b0f2..191dfda53e 100644 --- a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc +++ b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4CashKarpRKF45.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4CashKarpRKF45.cc 97598 2016-06-06 07:19:46Z gcosmo $ // // The Cash-Karp Runge-Kutta-Fehlberg 4/5 method is an embedded fourth // order method (giving fifth-order accuracy) for the solution of an ODE. @@ -50,23 +50,33 @@ G4CashKarpRKF45::G4CashKarpRKF45(G4EquationOfMotion *EqRhs, : G4MagIntegratorStepper(EqRhs, noIntegrationVariables), fLastStepLength(0.), fAuxStepper(0) { - const G4int numberOfVariables = noIntegrationVariables; + const G4int numberOfVariables = + std::max( noIntegrationVariables, + ( ( (noIntegrationVariables-1)/4 + 1 ) * 4 ) ); + // For better alignment with cache-line + + ak2 = new G4double[numberOfVariables] ; + ak3 = new G4double[numberOfVariables] ; + ak4 = new G4double[numberOfVariables] ; + ak5 = new G4double[numberOfVariables] ; + ak6 = new G4double[numberOfVariables] ; + // ak7 = 0; - ak2 = new G4double[numberOfVariables] ; - ak3 = new G4double[numberOfVariables] ; - ak4 = new G4double[numberOfVariables] ; - ak5 = new G4double[numberOfVariables] ; - ak6 = new G4double[numberOfVariables] ; - ak7 = 0; - yTemp = new G4double[numberOfVariables] ; - yIn = new G4double[numberOfVariables] ; + // Must ensure space extra 'state' variables exists - i.e. yIn[7] + const G4int numStateMax = std::max(GetNumberOfStateVariables(), 8); + const G4int numStateVars = std::max(noIntegrationVariables, + numStateMax ); + // GetNumberOfStateVariables() ); + + yTemp = new G4double[numStateVars] ; + yIn = new G4double[numStateVars] ; - fLastInitialVector = new G4double[numberOfVariables] ; - fLastFinalVector = new G4double[numberOfVariables] ; + fLastInitialVector = new G4double[numStateVars] ; + fLastFinalVector = new G4double[numStateVars] ; fLastDyDx = new G4double[numberOfVariables]; - fMidVector = new G4double[numberOfVariables]; - fMidError = new G4double[numberOfVariables]; + fMidVector = new G4double[numStateVars]; + fMidError = new G4double[numStateVars]; if( primary ) { fAuxStepper = new G4CashKarpRKF45(EqRhs, numberOfVariables, !primary); diff --git a/source/geometry/magneticfield/src/G4ChordFinder.cc b/source/geometry/magneticfield/src/G4ChordFinder.cc index ea5e1b2512..5613622b19 100644 --- a/source/geometry/magneticfield/src/G4ChordFinder.cc +++ b/source/geometry/magneticfield/src/G4ChordFinder.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.cc 93806 2015-11-02 11:21:01Z gcosmo $ +// $Id: G4ChordFinder.cc 97812 2016-06-14 07:57:41Z gcosmo $ // // // 25.02.97 - John Apostolakis - Design and implementation @@ -37,7 +37,10 @@ #include "G4MagneticField.hh" #include "G4Mag_UsualEqRhs.hh" #include "G4ClassicalRK4.hh" - +#include "G4CashKarpRKF45.hh" +// #include "G4BogackiShampine23.hh" +#include "G4BogackiShampine45.hh" +#include "G4DormandPrince745.hh" // .......................................................................... @@ -94,7 +97,12 @@ G4ChordFinder::G4ChordFinder( G4MagneticField* theMagField, if( pItsStepper == 0 ) { - pItsStepper = fDriversStepper = new G4ClassicalRK4(pEquation); + pItsStepper = fDriversStepper = + new G4ClassicalRK4(pEquation); // The old default + // new G4CashKarpRKF45(pEquation); + // new G4DormandPrince745(pEquation); + // new G4BogackiShampine45(pEquation); + fAllocatedStepper= true; } else diff --git a/source/geometry/magneticfield/src/G4ChordFinderSaf.cc b/source/geometry/magneticfield/src/G4ChordFinderSaf.cc index 1f1b12c747..dca9a9b8e9 100644 --- a/source/geometry/magneticfield/src/G4ChordFinderSaf.cc +++ b/source/geometry/magneticfield/src/G4ChordFinderSaf.cc @@ -24,7 +24,6 @@ // ******************************************************************** // - #include "G4ChordFinderSaf.hh" #include diff --git a/source/geometry/magneticfield/src/G4DELPHIMagField.cc b/source/geometry/magneticfield/src/G4DELPHIMagField.cc index 8fa666013c..259a21ab63 100644 --- a/source/geometry/magneticfield/src/G4DELPHIMagField.cc +++ b/source/geometry/magneticfield/src/G4DELPHIMagField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DELPHIMagField.cc 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4DELPHIMagField.cc 96751 2016-05-04 09:39:38Z gcosmo $ // ------------------------------------------------------------------- #include "G4DELPHIMagField.hh" @@ -35,9 +35,9 @@ G4DELPHIMagField::G4DELPHIMagField() { } -G4DELPHIMagField* G4DELPHIMagField::Clone() const +G4Field* G4DELPHIMagField::Clone() const { - return new G4DELPHIMagField; + return new G4DELPHIMagField; } //////////////////////////////////////////////////////////////////////// diff --git a/source/geometry/magneticfield/src/G4DoLoMcPriRK34.cc b/source/geometry/magneticfield/src/G4DoLoMcPriRK34.cc new file mode 100644 index 0000000000..18559464a5 --- /dev/null +++ b/source/geometry/magneticfield/src/G4DoLoMcPriRK34.cc @@ -0,0 +1,301 @@ +// Dormand-Lockyer-McGorrigan-Prince-6-3-4 non-FSAL implementation +// RK4(3)6FD - forced Non-FSAL +// +// Design/implementation by Somnath Banerjee +// Sponsored by Google in Google Summer of Code 2015. +// Supervision / code review: John Apostolakis +// +// First version: 7 July 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// G4DoLoMcPriRK34.cc +// Geant4 +// +// History +// ----------------------------- +// Created by Somnath on 7 July 2015 +// +// This is the source file of G4DoLoMcPriRK34 class containing the +// definition of the Stepper() method that evaluates one Step in +// field propagation. +// +// The Butcher table of the Dormand-Lockyer-McGorrigan-Prince-6-3-4 method is as follows : +// [ to be added here ] + +#include "G4DoLoMcPriRK34.hh" +#include "G4LineSection.hh" + +// Constructor +G4DoLoMcPriRK34::G4DoLoMcPriRK34(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) +: G4MagIntegratorStepper(EqRhs, noIntegrationVariables) +{ + const G4int numberOfVariables = noIntegrationVariables; + + //New Chunk of memory being created for use by the Stepper + + //aki - for storing intermediate RHS + ak2 = new G4double[numberOfVariables]; + ak3 = new G4double[numberOfVariables]; + ak4 = new G4double[numberOfVariables]; + ak5 = new G4double[numberOfVariables]; + ak6 = new G4double[numberOfVariables]; + + yTemp = new G4double[numberOfVariables] ; + yIn = new G4double[numberOfVariables] ; + + fLastInitialVector = new G4double[numberOfVariables] ; + fLastFinalVector = new G4double[numberOfVariables] ; + fLastDyDx = new G4double[numberOfVariables]; + + fMidVector = new G4double[numberOfVariables]; + fMidError = new G4double[numberOfVariables]; + if( primary ) + { + fAuxStepper = new G4DoLoMcPriRK34(EqRhs, numberOfVariables, + !primary); + } +} + + +//Destructor +G4DoLoMcPriRK34::~G4DoLoMcPriRK34() +{ + //clear all previously allocated memory for Stepper and DistChord + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; + + +} + + +//Stepper : + +// Passing in the value of yInput[],the first time dydx[] and Step length +// Giving back yOut and yErr arrays for output and error respectively + +void G4DoLoMcPriRK34::Stepper(const G4double yInput[], + const G4double DyDx[], + G4double Step, + G4double yOut[], + G4double yErr[] ) +{ + G4int i; + + //The various constants defined on the basis of butcher tableu + const G4double //G4double - only once + + b21 = 7.0/27.0 , + + + b31 = 7.0/72.0 , + b32 = 7.0/24.0 , + + b41 = 3043.0/3528.0 , + b42 = -3757.0/1176.0 , + b43 = 1445.0/441.0, + + b51 = 17617.0/11662.0 , + b52 = -4023.0/686.0 , + b53 = 9372.0/1715.0 , + b54 = -66.0/595.0 , + + b61 = 29.0/238.0 , + b62 = 0.0 , + b63 = 216.0/385.0 , + b64 = 54.0/85.0 , + b65 = -7.0/22.0 , + + + + dc1 = 363.0/2975.0 - b61 , + dc2 = 0.0 - b62 , + dc3 = 981.0/1750.0 - b63, + dc4 = 2709.0/4250.0 - b64 , + dc5 = -3.0/10.0 - b65 , + dc6 = -1.0/50.0 ; //end of declaration + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + +void G4DoLoMcPriRK34::SetupInterpolation() +{} + +void G4DoLoMcPriRK34::SetupInterpolate( const G4double /* yInput */ [] , + const G4double /* dydx */ [] , + const G4double /* Step */ ) +{ + //Do Nothing +} + + +void G4DoLoMcPriRK34::Interpolate( G4double tau, + G4double yOut[]) +{ + Interpolate( fLastInitialVector, fLastDyDx, fLastStepLength, yOut, tau ); +} + +// Function to evaluate the interpolation at tau fraction of the step +void G4DoLoMcPriRK34::Interpolate( const G4double yInput[], + const G4double dydx[], + const G4double Step, + G4double yOut[], + G4double tau ){ + G4double + bf1, bf2, bf3, bf4, bf5, bf6; + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + for(int i=0;i + +//Constructor +G4DormandPrince745::G4DormandPrince745(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) +: G4MagIntegratorStepper(EqRhs, noIntegrationVariables) +{ + const G4int numberOfVariables = // noIntegrationVariables; + std::max( noIntegrationVariables, + ( ( (noIntegrationVariables-1)/4 + 1 ) * 4 ) ); + // For better alignment with cache-line + + //New Chunk of memory being created for use by the stepper + + //ak_i - for storing intermediate RHS + ak2 = new G4double[numberOfVariables]; + ak3 = new G4double[numberOfVariables]; + ak4 = new G4double[numberOfVariables]; + ak5 = new G4double[numberOfVariables]; + ak6 = new G4double[numberOfVariables]; + ak7 = new G4double[numberOfVariables]; + // Also always allocate arrays for interpolation stages + ak8 = new G4double[numberOfVariables]; + ak9 = new G4double[numberOfVariables]; + + // Must ensure space for extra 'state' variables exists - i.e. yIn[7] + const G4int numStateVars = + std::max(noIntegrationVariables, + std::max( GetNumberOfStateVariables(), 8) + ); + yTemp = new G4double[numStateVars]; + yIn = new G4double[numStateVars]; + + fLastInitialVector = new G4double[numStateVars] ; + fLastFinalVector = new G4double[numStateVars] ; + + // fLastDyDx = new G4double[numberOfVariables]; + + fMidVector = new G4double[numStateVars]; + fMidError = new G4double[numStateVars]; + + yTemp = new G4double[numberOfVariables] ; + yIn = new G4double[numberOfVariables] ; + + fLastInitialVector = new G4double[numberOfVariables] ; + fLastFinalVector = new G4double[numberOfVariables] ; + fInitialDyDx = new G4double[numberOfVariables]; + + fMidVector = new G4double[numberOfVariables]; + fMidError = new G4double[numberOfVariables]; + if( primary ) + { + fAuxStepper = new G4DormandPrince745(EqRhs, numberOfVariables, + !primary); + } +} + +//Destructor +G4DormandPrince745::~G4DormandPrince745() +{ + //clear all previously allocated memory for stepper and DistChord + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + delete[] ak7; + // Used only for interpolation + delete[] ak8; + delete[] ak9; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fInitialDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; +} + + +// The coefficients and the algorithm have been adapted from +// Table 2 : Coefficients of RK5(4)7M +// ---Ref--- +// J. R. Dormand and P. J. Prince, “A family of embedded Runge-Kutta formulae,†+// Journal of computational and applied …, vol. 6, no. 1, pp. 19–26, 1980. +// ------------------ + +// The Butcher table of the Dormand-Prince-7-4-5 method is as follows : +// +// 0 | +// 1/5 | 1/5 +// 3/10| 3/40 9/40 +// 4/5 | 44/45 −56/15 32/9 +// 8/9 | 19372/6561 −25360/2187 64448/6561 −212/729 +// 1 | 9017/3168 −355/33 46732/5247 49/176 −5103/18656 +// 1 | 35/384 0 500/1113 125/192 −2187/6784 11/84 +// ------------------------------------------------------------------------ +// 35/384 0 500/1113 125/192 −2187/6784 11/84 0 +// 5179/57600 0 7571/16695 393/640 −92097/339200 187/2100 1/40 + + +//Stepper : + +// Passing in the value of yInput[],the first time dydx[] and Step length +// Giving back yOut and yErr arrays for output and error respectively + +void G4DormandPrince745::Stepper(const G4double yInput[], + const G4double DyDx[], + G4double Step, + G4double yOut[], + G4double yErr[] ) +{ + G4int i; + + //The various constants defined on the basis of butcher tableu + const G4double //G4double - only once + b21 = 0.2 , + + b31 = 3.0/40.0, b32 = 9.0/40.0 , + + b41 = 44.0/45.0, b42 = -56.0/15.0, b43 = 32.0/9.0, + + b51 = 19372.0/6561.0, b52 = -25360.0/2187.0, b53 = 64448.0/6561.0, + b54 = -212.0/729.0 , + + b61 = 9017.0/3168.0 , b62 = -355.0/33.0, + b63 = 46732.0/5247.0 , b64 = 49.0/176.0 , + b65 = -5103.0/18656.0 , + + b71 = 35.0/384.0, b72 = 0., + b73 = 500.0/1113.0, b74 = 125.0/192.0, + b75 = -2187.0/6784.0, b76 = 11.0/84.0, + + //Sum of columns, sum(bij) = ei +// e1 = 0. , +// e2 = 1.0/5.0 , +// e3 = 3.0/10.0 , +// e4 = 4.0/5.0 , +// e5 = 8.0/9.0 , +// e6 = 1.0 , +// e7 = 1.0 , + +// Difference between the higher and the lower order method coeff. : + // b7j are the coefficients of higher order + + dc1 = -( b71 - 5179.0/57600.0), + dc2 = -( b72 - .0), + dc3 = -( b73 - 7571.0/16695.0), + dc4 = -( b74 - 393.0/640.0), + dc5 = -( b75 + 92097.0/339200.0), + dc6 = -( b76 - 187.0/2100.0), + dc7 = -( - 1.0/40.0 ); //end of declaration + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yInput[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iSetupInterpolation(); // (fLastInitialVector, fInitialDyDx, fLastStepLength); + //Interpolate to half step + fAuxStepper->Interpolate( /*fLastInitialVector, fInitialDyDx, fLastStepLength,*/ 0.5, fAuxStepper->fMidVector); + + return DistLine( fLastInitialVector, fAuxStepper->fMidVector, fLastFinalVector); +} + +G4double G4DormandPrince745::DistChord() const +{ + //Coefficients for halfway interpolation + const G4double + hf1 = 5783653.0/57600000.0 , + hf2 = 0. , + hf3 = 466123.0/1192500.0 , + hf4 = -41347.0/1920000.0 , + hf5 = 16122321.0/339200000.0 , + hf6 = -7117.0/20000.0, + hf7 = 183.0/10000.0 ; + + for(int i=0; i<3; i++){ + fMidVector[i] = fLastInitialVector[i] + fLastStepLength*( + hf1*fInitialDyDx[i] + hf2*ak2[i] + hf3*ak3[i] + hf4*ak4[i] + + hf5*ak5[i] + hf6*ak6[i] + hf7*ak7[i] ); + } + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + return DistLine( fLastInitialVector, fMidVector, fLastFinalVector); +} + +//The original DistChord() function for the class +G4double G4DormandPrince745::DistChord3() const +{ + // Do half a step using StepNoErr + fAuxStepper->Stepper( fLastInitialVector, fInitialDyDx, 0.5 * fLastStepLength, + fAuxStepper->fMidVector, fAuxStepper->fMidError) ; + return DistLine( fLastInitialVector, fAuxStepper->fMidVector, fLastFinalVector); +} + +// The lower (4th) order interpolant given by Dormand and prince +// "An RK 5(4) triple" +//---Ref--- +// J. R. Dormand and P. J. Prince, “Runge-Kutta triples,†+// Computers & Mathematics with Applications, vol. 12, no. 9, +// pp. 1007–1017, 1986. +//--------------------------- + +void G4DormandPrince745::SetupInterpolation_low() // const G4double *yInput, const G4double *dydx, const G4double Step) +{ + //Nothing to be done +} + +void G4DormandPrince745::Interpolate_low( /* const G4double yInput[], + const G4double dydx[], + const G4double Step, */ + G4double yOut[], + G4double tau ) +{ + G4double bf1, bf2, bf3, bf4, bf5, bf6, bf7; + // Coefficients for all the seven stages. + G4double Step = fLastStepLength; + const G4double *dydx= fInitialDyDx; + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // for(int i=0;iGetNumberOfVariables(); + const G4double *dydx = fInitialDyDx; + const G4double Step = fLastStepLength; + + // Saving yInput because yInput and yOut can be aliases for same array + // for(int i=0;iGetNumberOfVariables(); + const G4double *dydx = fInitialDyDx; + // const G4double fullStep = fLastStepLength; + + // If given requestedStep in argument: + // G4double tau = requestedStep / fLastStepLength; + + // COEFFICIENTS OF bi[1] + bi[1][0] = 1.0 , + bi[1][1] = -38039.0/7040.0 , + bi[1][2] = 125923.0/10560.0 , + bi[1][3] = -19683.0/1760.0 , + bi[1][4] = 3303.0/880.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[2] + bi[2][0] = 0.0 , + bi[2][1] = 0.0 , + bi[2][2] = 0.0 , + bi[2][3] = 0.0 , + bi[2][4] = 0.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[3] + bi[3][0] = 0.0 , + bi[3][1] = -12500.0/4081.0 , + bi[3][2] = 205000.0/12243.0 , + bi[3][3] = -90000.0/4081.0 , + bi[3][4] = 36000.0/4081.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[4] + bi[4][0] = 0.0 , + bi[4][1] = -3125.0/704.0 , + bi[4][2] = 25625.0/1056.0 , + bi[4][3] = -5625.0/176.0 , + bi[4][4] = 1125.0/88.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[5] + bi[5][0] = 0.0 , + bi[5][1] = 164025.0/74624.0 , + bi[5][2] = -448335.0/37312.0 , + bi[5][3] = 295245.0/18656.0 , + bi[5][4] = -59049.0/9328.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[6] + bi[6][0] = 0.0 , + bi[6][1] = -25.0/28.0 , + bi[6][2] = 205.0/42.0 , + bi[6][3] = -45.0/7.0 , + bi[6][4] = 18.0/7.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[7] + bi[7][0] = 0.0 , + bi[7][1] = -2.0/11.0 , + bi[7][2] = 73.0/55.0 , + bi[7][3] = -171.0/55.0 , + bi[7][4] = 108.0/55.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[8] + bi[8][0] = 0.0 , + bi[8][1] = 189.0/22.0 , + bi[8][2] = -1593.0/55.0 , + bi[8][3] = 3537.0/110.0 , + bi[8][4] = -648.0/55.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[9] + bi[9][0] = 0.0 , + bi[9][1] = 351.0/110.0 , + bi[9][2] = -999.0/55.0 , + bi[9][3] = 2943.0/110.0 , + bi[9][4] = -648.0/55.0 ; + // -------------------------------------------------------- + + // for(G4int i = 0; i< numberOfVariables; i++) { yIn[i] = yInput[i]; } + + // Calculating the polynomials : +#if 1 + for(int iStage=1; iStage<=9; iStage++){ + b[iStage] = 0; + } + + for(int j=0; j<=4; j++){ + G4double tauPower = 1.0; + for(int iStage=1; iStage<=9; iStage++){ + b[iStage] += bi[iStage][j]*tauPower; + } + tauPower *= tau; + } +#else + G4double tau0 = tau; + + for(int i=1; i<=9; i++){ //Here i is NOT the coordinate no. , it's stage no. + b[i] = 0; + tau = 1.0; + for(int j=0; j<=4; j++){ + b[i] += bi[i][j]*tau; + tau*=tau0; + } + } +#endif + + G4double stepLen = fLastStepLength * tau; + for(int i=0; iG4DormandPrince745(right.GetEquationOfMotion(),right.GetNumberOfVariables(), false); + + int noVars = right.GetNumberOfVariables(); + for(int i =0; i< noVars; i++) + { + this->ak2[i] = right.ak2[i]; + this->ak3[i] = right.ak3[i]; + this->ak4[i] = right.ak4[i]; + this->ak5[i] = right.ak5[i]; + this->ak6[i] = right.ak6[i]; + this->ak7[i] = right.ak7[i]; + this->ak8[i] = right.ak8[i]; + this->ak9[i] = right.ak9[i]; + + this->fInitialDyDx[i] = right.fInitialDyDx[i]; + this->fLastInitialVector[i] = right.fLastInitialVector[i]; + this->fMidVector[i] = right.fMidVector[i]; + this->fMidError[i] = right.fMidError[i]; + } + + this->fLastStepLength = right.fLastStepLength; + + return *this; +} diff --git a/source/geometry/magneticfield/src/G4DormandPrinceRK56.cc b/source/geometry/magneticfield/src/G4DormandPrinceRK56.cc new file mode 100644 index 0000000000..3393acd941 --- /dev/null +++ b/source/geometry/magneticfield/src/G4DormandPrinceRK56.cc @@ -0,0 +1,727 @@ +// FDormand-Prince RK 6(5) FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 26 June 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// G4DormandPrince745.cc +// Geant4 +// +// History +// ----------------------------- +// Created by Somnath on 26 June 2015 +// +// +/////////////////////////////////////////////////////////////////////////////// + +#include "G4DormandPrinceRK56.hh" +#include "G4LineSection.hh" + +//Constructor +G4DormandPrinceRK56::G4DormandPrinceRK56(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) +: G4MagIntegratorStepper(EqRhs, noIntegrationVariables){ + + const G4int numberOfVariables = noIntegrationVariables; + + //New Chunk of memory being created for use by the stepper + + //aki - for storing intermediate RHS + ak2 = new G4double[numberOfVariables]; + ak3 = new G4double[numberOfVariables]; + ak4 = new G4double[numberOfVariables]; + ak5 = new G4double[numberOfVariables]; + ak6 = new G4double[numberOfVariables]; + ak7 = new G4double[numberOfVariables]; + ak8 = new G4double[numberOfVariables]; + ak9 = new G4double[numberOfVariables]; + + const G4int numStateVars = std::max(noIntegrationVariables, 8); + yTemp = new G4double[numStateVars]; + yIn = new G4double[numStateVars] ; + + fLastInitialVector = new G4double[numStateVars] ; + fLastFinalVector = new G4double[numStateVars] ; + + fLastDyDx = new G4double[numStateVars]; + + fMidVector = new G4double[numStateVars]; + fMidError = new G4double[numStateVars]; + + if( primary ) + { + fAuxStepper = new G4DormandPrinceRK56(EqRhs, numberOfVariables, + !primary); + } +} + + +//Destructor +G4DormandPrinceRK56::~G4DormandPrinceRK56(){ + //clear all previously allocated memory for stepper and DistChord + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + delete[] ak7; + delete[] ak8; + delete[] ak9; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; + +} + + +//Stepper : + +// Passing in the value of yInput[],the first time dydx[] and Step length +// Giving back yOut and yErr arrays for output and error respectively + +void G4DormandPrinceRK56::Stepper(const G4double yInput[], + const G4double dydx[], + G4double Step, + G4double yOut[], + G4double yErr[] ) + // G4double nextDydx[] ) -- Output: + // endpoint DyDx ( for future FSAL version ) +{ + G4int i; + + //The various constants defined on the basis of butcher tableu + const G4double //G4double - only once + + // Old Coefficients from + // Table 1. RK6(5)8M +//---Ref--- +//[P. J. Prince and J. R. Dormand, “High order embedded Runge-Kutta formulae,†+// Journal of Computational and Applied Mathematics, vol. 7, no. 1, pp. 67–75, +// Dec. 1980. +//---------------- + + b21 = 1.0/10.0 , + + b31 = -2.0/81.0 , + b32 = 20.0/81.0 , + + b41 = 615.0/1372.0 , + b42 = -270.0/343.0 , + b43 = 1053.0/1372.0 , + + b51 = 3243.0/5500.0 , + b52 = -54.0/55.0 , + b53 = 50949.0/71500.0 , + b54 = 4998.0/17875.0 , + + b61 = -26492.0/37125.0 , + b62 = 72.0/55.0 , + b63 = 2808.0/23375.0 , + b64 = -24206.0/37125.0 , + b65 = 338.0/459.0 , + + b71 = 5561.0/2376.0 , + b72 = -35.0/11.0 , + b73 = -24117.0/31603.0 , + b74 = 899983.0/200772.0 , + b75 = -5225.0/1836.0 , + b76 = 3925.0/4056.0 , + + b81 = 465467.0/266112.0 , + b82 = -2945.0/1232.0 , + b83 = -5610201.0/14158144.0 , + b84 = 10513573.0/3212352.0 , + b85 = -424325.0/205632.0 , + b86 = 376225.0/454272.0 , + b87 = 0.0 , + + c1 = 61.0/864.0 , + c2 = 0.0 , + c3 = 98415.0/321776.0 , + c4 = 16807.0/146016.0 , + c5 = 1375.0/7344.0 , + c6 = 1375.0/5408.0 , + c7 = -37.0/1120.0 , + c8 = 1.0/10.0 , + + b91 = 61.0/864.0 , + b92 = 0.0 , + b93 = 98415.0/321776.0 , + b94 = 16807.0/146016.0 , + b95 = 1375.0/7344.0 , + b96 = 1375.0/5408.0 , + b97 = -37.0/1120.0 , + b98 = 1.0/10.0 , + + dc1 = c1 - 821.0/10800.0 , + dc2 = c2 - 0.0 , + dc3 = c3 - 19683.0/71825, + dc4 = c4 - 175273.0/912600.0 , + dc5 = c5 - 395.0/3672.0 , + dc6 = c6 - 785.0/2704.0 , + dc7 = c7 - 3.0/50.0 , + dc8 = c8 - 0.0 , + dc9 = 0.0; + + +// New Coefficients obtained from + // Table 3 RK6(5)9FM with corrected coefficients +//---Ref--- +// T. S. Baker, J. R. Dormand, J. P. Gilmore, and P. J. Prince, +// “Continuous approximation with embedded Runge-Kutta methods,†+// Applied Numerical Mathematics, vol. 22, no. 1, pp. 51–62, 1996. +//------------------------------------ + +// b21 = 1.0/9.0 , +// +// b31 = 1.0/24.0 , +// b32 = 1.0/8.0 , +// +// b41 = 1.0/16.0 , +// b42 = 0.0 , +// b43 = 3.0/16.0 , +// +// b51 = 280.0/729.0 , +// b52 = 0.0 , +// b53 = -325.0/243.0 , +// b54 = 1100.0/729.0 , +// +// b61 = 6127.0/14680.0 , +// b62 = 0.0 , +// b63 = -1077.0/734.0 , +// b64 = 6494.0/4037.0 , +// b65 = -9477.0/161480.0 , +// +// b71 = -13426273320.0/14809773769.0 , +// b72 = 0.0 , +// b73 = 4192558704.0/2115681967.0 , +// b74 = 14334750144.0/14809773769.0 , +// b75 = 117092732328.0/14809773769.0 , +// b76 = -361966176.0/40353607.0 , +// +// b81 = -2340689.0/1901060.0 , +// b82 = 0.0 , +// b83 = 31647.0/13579.0 , +// b84 = 253549596.0/149518369.0 , +// b85 = 10559024082.0/977620105.0 , +// b86 = -152952.0/12173.0 , +// b87 = -5764801.0/186010396.0 , +// +// b91 = 203.0/2880.0 , +// b92 = 0.0 , +// b93 = 0.0 , +// b94 = 30208.0/70785.0 , +// b95 = 177147.0/164560.0 , +// b96 = -536.0/705.0 , +// b97 = 1977326743.0/3619661760.0 , +// b98 = -259.0/720.0 , +// +// +// dc1 = 36567.0/458800.0 - b91, +// dc2 = 0.0 - b92, +// dc3 = 0.0 - b93, +// dc4 = 9925984.0/27063465.0 - b94, +// dc5 = 85382667.0/117968950.0 - b95, +// dc6 = - 310378.0/808635.0 - b96 , +// dc7 = 262119736669.0/345979336560.0 - b97, +// dc8 = - 1.0/2.0 - b98 , +// dc9 = -101.0/2294.0 ; + + + //end of declaration + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + + +// The following interpolation scheme has been obtained from +// Table 5. The RK6(5)9FM process and associated dense formula +//---Ref--- +// J. R. Dormand, M. A. Lockyer, N. E. McGorrigan, and P. J. Prince, +// “Global error estimation with runge-kutta triples,†+// Computers & Mathematics with Applications, vol. 18, no. 9, pp. 835–846, 1989. +//----------------------------- + +// Fifth order interpolant with one extra function evaluation per step + +void G4DormandPrinceRK56::SetupInterpolate_low( const G4double yInput[], + const G4double dydx[], + const G4double Step ){ + const G4int numberOfVariables= this->GetNumberOfVariables(); + + G4double + b_101 = 33797.0/460800.0 , + b_102 = 0. , + b_103 = 0. , + b_104 = 27757.0/70785.0 , + b_105 = 7923501.0/26329600.0 , + b_106 = -927.0/3760.0 , + b_107 = -3314760575.0/23165835264.0 , + b_108 = 2479.0/23040.0 , + b_109 = 1.0/64.0 ; + + ak10_low = new G4double[numberOfVariables]; + + for(int i=0;iGetNumberOfVariables(); + + for(int i=0;iGetNumberOfVariables(); + + // Saving yInput because yInput and yOut can be aliases for same array + for(int i=0;iGetNumberOfVariables(); + + + // COEFFICIENTS OF bi[ 1] + bi[1][0] = 1.0 , + bi[1][1] = -18487.0/2880.0 , + bi[1][2] = 139189.0/7200.0 , + bi[1][3] = -53923.0/1800.0 , + bi[1][4] = 13811.0/600, + bi[1][5] = -2071.0/300, + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[2] + bi[2][0] = 0.0 , + bi[2][1] = 0.0 , + bi[2][2] = 0.0 , + bi[2][3] = 0.0 , + bi[2][4] = 0.0 , + bi[2][5] = 0.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[3] + bi[3][0] = 0.0 , + bi[3][1] = 0.0 , + bi[3][2] = 0.0 , + bi[3][3] = 0.0 , + bi[3][4] = 0.0 , + bi[3][5] = 0.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[4] + bi[4][0] = 0.0 , + bi[4][1] = -30208.0/14157.0 , + bi[4][2] = 1147904.0/70785.0 , + bi[4][3] = -241664.0/5445.0 , + bi[4][4] = 241664.0/4719.0 , + bi[4][5] = -483328.0/23595.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[5] + bi[5][0] = 0.0 , + bi[5][1] = -177147.0/32912.0 , + bi[5][2] = 3365793.0/82280.0 , + bi[5][3] = -2302911.0/20570.0 , + bi[5][4] = 531441.0/4114.0 , + bi[5][5] = -531441.0/10285.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[6] + bi[6][0] = 0.0 , + bi[6][1] = 536.0/141.0 , + bi[6][2] = -20368.0/705.0 , + bi[6][3] = 55744.0/705.0 , + bi[6][4] = -4288.0/47.0 , + bi[6][5] = 8576.0/235, + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[7] + bi[7][0] = 0.0 , + bi[7][1] = -1977326743.0/723932352.0 , + bi[7][2] = 37569208117.0/1809830880.0 , + bi[7][3] = -1977326743.0/34804440.0 , + bi[7][4] = 1977326743.0/30163848.0 , + bi[7][5] = -1977326743.0/75409620.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[8] + bi[8][0] = 0.0 , + bi[8][1] = 259.0/144.0 , + bi[8][2] = -4921.0/360.0 , + bi[8][3] = 3367.0/90.0 , + bi[8][4] = -259.0/6.0 , + bi[8][5] = 259.0/15.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[9] + bi[9][0] = 0.0 , + bi[9][1] = 62.0/105.0 , + bi[9][2] = -2381.0/525.0 , + bi[9][3] = 949.0/75.0 , + bi[9][4] = -2636.0/175.0 , + bi[9][5] = 1112.0/175.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[10] + bi[10][0] = 0.0 , + bi[10][1] = 43.0/3.0 , + bi[10][2] = -1534.0/15.0 , + bi[10][3] = 3767.0/15.0 , + bi[10][4] = -1264.0/5.0 , + bi[10][5] = 448.0/5.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[11] + bi[11][0] = 0.0 , + bi[11][1] = 63.0/5.0 , + bi[11][2] = -1494.0/25.0 , + bi[11][3] = 2907.0/25.0 , + bi[11][4] = -2592.0/25.0 , + bi[11][5] = 864.0/25.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[12] + bi[12][0] = 0.0 , + bi[12][1] = -576.0/35.0 , + bi[12][2] = 19584.0/175.0 , + bi[12][3] = -6336.0/25.0 , + bi[12][4] = 41472.0/175.0 , + bi[12][5] = -13824.0/175.0 ; + // -------------------------------------------------------- + + + for(G4int i = 0; i< numberOfVariables; i++) + yIn[i] = yInput[i]; + + G4double tau0 = tau; + // Calculating the polynomials (coefficents for the respective stages) : + + for(int i=1; i<=12; i++){ //Here i is NOT the coordinate no. , it's stage no. + b[i] = 0; + tau = 1.0; + for(int j=0; j<=5; j++){ + b[i] += bi[i][j]*tau; + tau*=tau0; + } + } + +// Calculating the interpolation at the fraction tau of the step using the polynomial +// coefficients and the respective stages + + for(int i=0; iGetNumberOfVariables(); + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + + + + +//------Verified------- - hackabot + diff --git a/source/geometry/magneticfield/src/G4ElectricField.cc b/source/geometry/magneticfield/src/G4ElectricField.cc index b86cbe3987..006197b1a9 100644 --- a/source/geometry/magneticfield/src/G4ElectricField.cc +++ b/source/geometry/magneticfield/src/G4ElectricField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ElectricField.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4ElectricField.cc 96678 2016-04-29 16:21:01Z gcosmo $ // // -------------------------------------------------------------------- @@ -38,12 +38,14 @@ G4ElectricField::~G4ElectricField() { } -G4ElectricField::G4ElectricField(const G4ElectricField &) - : G4ElectroMagneticField() +G4ElectricField::G4ElectricField(const G4ElectricField &p) + : G4ElectroMagneticField(p) { } G4ElectricField& G4ElectricField::operator = (const G4ElectricField &p) { - if (&p == this) return *this; *this = p; return *this; + if (&p == this) return *this; + G4ElectroMagneticField::operator=(p); + return *this; } diff --git a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc index 773f8ab97b..5457ab8565 100644 --- a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc +++ b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ElectroMagneticField.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4ElectroMagneticField.cc 96678 2016-04-29 16:21:01Z gcosmo $ // // -------------------------------------------------------------------- @@ -40,7 +40,7 @@ G4ElectroMagneticField::~G4ElectroMagneticField() } G4ElectroMagneticField::G4ElectroMagneticField(const G4ElectroMagneticField &r) - : G4Field( r.IsGravityActive() ) // To allow extension to joint EM & g field + : G4Field( r ) // To allow extension to joint EM & g field { } @@ -48,5 +48,6 @@ G4ElectroMagneticField& G4ElectroMagneticField::operator = (const G4ElectroMagneticField &p) { if (&p == this) return *this; - *this = p; return *this; + G4Field::operator=(p); + return *this; } diff --git a/source/geometry/magneticfield/src/G4EqEMFieldWithEDM.cc b/source/geometry/magneticfield/src/G4EqEMFieldWithEDM.cc index 4c81468099..116b2ad318 100644 --- a/source/geometry/magneticfield/src/G4EqEMFieldWithEDM.cc +++ b/source/geometry/magneticfield/src/G4EqEMFieldWithEDM.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EqEMFieldWithEDM.cc 71664 2013-06-20 08:36:05Z gcosmo $ +// $Id: G4EqEMFieldWithEDM.cc 95822 2016-02-26 08:04:51Z gcosmo $ // // // This is the standard right-hand side for equation of motion. @@ -71,7 +71,7 @@ G4EqEMFieldWithEDM::SetChargeMomentumMass(G4ChargeState particleCharge, G4double muB = 0.5*eplus*hbar_Planck/(mass/c_squared); G4double g_BMT; - if ( spin != 0. ) g_BMT = (magMoment/muB)/spin; + if ( spin != 0. ) g_BMT = (std::abs(magMoment)/muB)/spin; else g_BMT = 2.; anomaly = (g_BMT - 2.)/2.; diff --git a/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc b/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc index 2f991f4288..3909136ad0 100644 --- a/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc +++ b/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EqEMFieldWithSpin.cc 71664 2013-06-20 08:36:05Z gcosmo $ +// $Id: G4EqEMFieldWithSpin.cc 95822 2016-02-26 08:04:51Z gcosmo $ // // // This is the standard right-hand side for equation of motion. @@ -71,7 +71,7 @@ G4EqEMFieldWithSpin::SetChargeMomentumMass(G4ChargeState particleCharge, G4double muB = 0.5*eplus*hbar_Planck/(mass/c_squared); G4double g_BMT; - if ( spin != 0. ) g_BMT = (magMoment/muB)/spin; + if ( spin != 0. ) g_BMT = (std::abs(magMoment)/muB)/spin; else g_BMT = 2.; anomaly = (g_BMT - 2.)/2.; diff --git a/source/geometry/magneticfield/src/G4FSALBogackiShampine45.cc b/source/geometry/magneticfield/src/G4FSALBogackiShampine45.cc new file mode 100644 index 0000000000..029d8133e5 --- /dev/null +++ b/source/geometry/magneticfield/src/G4FSALBogackiShampine45.cc @@ -0,0 +1,624 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// Bogacki-Shampine - 8 - 5(4) FSAL implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 26 May 2015 +// +// History +// ----------------------------- +// Created by Somnath on 26 May 2015 +// +/////////////////////////////////////////////////////////////////////////////// +// Renamed to G4 standard naming +// Plan is that this source file / class will be merged with the updated +// BogackiShampine45 class, which contains improvements (May 2016) +// J. Apostolakis, 31 May 2016 +/////////////////////////////////////////////////////////////////////////////// +// +// +//This is the source file of BogackiShampine45 class containing the +//definition of the stepper() method that evaluates one step in +//field propagation. +//The Butcher table of the Bogacki-Shampine-8-4-5 method is as follows : +// +//0 | +//1/6 | 1/6 +//2/9 | 2/27 4/27 +//3/7 | 183/1372 -162/343 1053/1372 +//2/3 | 68/297 -4/11 42/143 1960/3861 +//3/4 | 597/22528 81/352 63099/585728 58653/366080 4617/20480 +//1 | 174197/959244 -30942/79937 8152137/19744439 666106/1039181 -29421/29068 482048/414219 +//1 | 587/8064 0 4440339/15491840 24353/124800 387/44800 2152/5985 7267/94080 +//------------------------------------------------------------------------------------------------------------------- +// 587/8064 0 4440339/15491840 24353/124800 387/44800 2152/5985 7267/94080 0 +// 2479/34992 0 123/416 612941/3411720 43/1440 2272/6561 79937/1113912 3293/556956 + +#include + +#include "G4FSALBogackiShampine45.hh" +#include "G4LineSection.hh" + +//Constructor +G4FSALBogackiShampine45::G4FSALBogackiShampine45(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) +: G4VFSALIntegrationStepper(EqRhs, noIntegrationVariables) +{ + + const G4int numberOfVariables = noIntegrationVariables; + + //New Chunk of memory being created for use by the stepper + + //aki - for storing intermediate RHS + ak2 = new G4double[numberOfVariables]; + ak3 = new G4double[numberOfVariables]; + ak4 = new G4double[numberOfVariables]; + ak5 = new G4double[numberOfVariables]; + ak6 = new G4double[numberOfVariables]; + ak7 = new G4double[numberOfVariables]; + ak8 = new G4double[numberOfVariables]; + + ak9 = new G4double[numberOfVariables]; + ak10 = new G4double[numberOfVariables]; + ak11 = new G4double[numberOfVariables]; + + assert ( GetNumberOfStateVariables() >= 8 ); + const G4int numStateVars = std::max(noIntegrationVariables, + GetNumberOfStateVariables() ); + + // Must ensure space extra 'state' variables exists - i.e. yIn[7] + yTemp = new G4double[numStateVars]; + yIn = new G4double[numStateVars] ; + + fLastInitialVector = new G4double[numStateVars] ; + fLastFinalVector = new G4double[numStateVars] ; + fLastDyDx = new G4double[numberOfVariables]; // Only derivatives + + fMidVector = new G4double[numStateVars]; + fMidError = new G4double[numStateVars]; + + pseudoDydx_for_DistChord = new G4double[numberOfVariables]; + + fMidVector = new G4double[numberOfVariables]; + fMidError = new G4double[numberOfVariables]; + if( primary ) + { + fAuxStepper = new G4FSALBogackiShampine45(EqRhs, numberOfVariables, + !primary); + } +} + + +//Destructor +G4FSALBogackiShampine45::~G4FSALBogackiShampine45(){ + //clear all previously allocated memory for stepper and DistChord + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + delete[] ak7; + delete[] ak8; + + delete[] ak9; + delete[] ak10; + delete[] ak11; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; + + delete[] pseudoDydx_for_DistChord; +} + + +//Stepper : + +// Passing in the value of yInput[],the first time dydx[] and Step length +// Giving back yOut and yErr arrays for output and error respectively + +void G4FSALBogackiShampine45::Stepper(const G4double yInput[], + const G4double dydx[], + G4double Step, + G4double yOut[], + G4double yErr[], + G4double nextDydx[]) +{ + G4int i; + + //The various constants defined on the basis of butcher tableu + const G4double //G4double - only once + + b21 = 1.0/6.0 , + b31 = 2.0/27.0 , b32 = 4.0/27.0, + + b41 = 183.0/1372.0 , b42 = -162.0/343.0, b43 = 1053.0/1372.0, + + b51 = 68.0/297.0, b52 = -4.0/11.0, + b53 = 42.0/143.0, b54 = 1960.0/3861.0, + + b61 = 597.0/22528.0, b62 = 81.0/352.0, + b63 = 63099.0/585728.0, b64 = 58653.0/366080.0, + b65 = 4617.0/20480.0, + + b71 = 174197.0/959244.0, b72 = -30942.0/79937.0, + b73 = 8152137.0/19744439.0, b74 = 666106.0/1039181.0, + b75 = -29421.0/29068.0, b76 = 482048.0/414219.0, + + b81 = 587.0/8064.0, b82 = 0.0, + b83 = 4440339.0/15491840.0, b84 = 24353.0/124800.0, + b85 = 387.0/44800.0, b86 = 2152.0/5985.0, + b87 = 7267.0/94080.0, + + +// c1 = 2479.0/34992.0, +// c2 = 0.0, +// c3 = 123.0/416.0, +// c4 = 612941.0/3411720.0, +// c5 = 43.0/1440.0, +// c6 = 2272.0/6561.0, +// c7 = 79937.0/1113912.0, +// c8 = 3293.0/556956.0, + + //For the embedded higher order method only the difference of values + // taken and is used directly later instead of defining the last row + // of butcher table in a separate set of variables and taking the + // difference there + + + dc1 = b81 - 2479.0/34992.0 , + dc2 = 0.0, + dc3 = b83 - 123.0/416.0 , + dc4 = b84 - 612941.0/3411720.0, + dc5 = b85 - 43.0/1440.0, + dc6 = b86 - 2272.0/6561.0, + dc7 = b87 - 79937.0/1113912.0, + dc8 = -3293.0/556956.0; //end of declaration + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + G4double *DyDx = new G4double[numberOfVariables]; + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError, pseudoDydx_for_DistChord ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + + + + +void G4FSALBogackiShampine45::interpolate( const G4double yInput[], + const G4double dydx[], + G4double yOut[], + G4double Step, + G4double tau + ){ + + +// G4double *ak9, *ak10, *ak11; + + G4double + a91 = 455.0/6144.0 , + a92 = 0.0 , + a93 = 10256301.0/35409920.0 , + a94 = 2307361.0/17971200.0 , + a95 = -387.0/102400.0 , + a96 = 73.0/5130.0 , + a97 = -7267.0/215040.0 , + a98 = 1.0/32.0 , + + + a101 = -837888343715.0/13176988637184.0 , + a102 = 30409415.0/52955362.0 , + a103 = -48321525963.0/759168069632.0 , + a104 = 8530738453321.0/197654829557760.0 , + a105 = 1361640523001.0/1626788720640.0 , + a106 = -13143060689.0/38604458898.0 , + a107 = 18700221969.0/379584034816.0 , + a108 = -5831595.0/847285792.0 , + a109 = -5183640.0/26477681.0 , + + a111 = 98719073263.0/1551965184000.0 , + a112 = 1307.0/123552.0 , + a113 = 4632066559387.0/70181753241600.0 , + a114 = 7828594302389.0/382182512025600.0 , + a115 = 40763687.0/11070259200.0 , + a116 = 34872732407.0/224610586200.0 , + a117 = -2561897.0/30105600.0 , + a118 = 1.0/10.0 , + a119 = -1.0/10.0 , + a1110 = -1403317093.0/11371610250.0 ; + +// a91 = 455.e0/6144.e0 , +// a101 = -837888343715.e0/13176988637184.e0 , +// a111 = 98719073263.e0/1551965184000.e0 , +// a92 = 0.e0 , +// a102 = 30409415.e0/52955362.e0 , +// a112 = 1307.e0/123552.e0 , +// a93 = 10256301.e0/35409920.e0 , +// a103 = -48321525963.e0/759168069632.e0 , +// a113 = 4632066559387.e0/70181753241600.e0 , +// a94 = 2307361.e0/17971200.e0 , +// a104 = 8530738453321.e0/197654829557760.e0 , +// a114 = 7828594302389.e0/382182512025600.e0 , +// a95 = -387.e0/102400.e0 , +// a105 = 1361640523001.e0/1626788720640.e0 , +// a115 = 40763687.e0/11070259200.e0 , +// a96 = 73.e0/5130.e0 , +// a106 = -13143060689.e0/38604458898.e0 , +// a116 = 34872732407.e0/224610586200.e0 , +// a97 = -7267.e0/215040.e0 , +// a107 = 18700221969.e0/379584034816.e0 , +// a117 = -2561897.e0/30105600.e0 , +// a98 = 1.e0/32.e0 , +// a108 = -5831595.e0/847285792.e0 , +// a118 = 1.e0/10.e0 , +// a109 = -5183640.e0/26477681.e0 , +// a119 = -1.e0/10.e0 , +// a1110 = -1403317093.e0/11371610250.e0 ; + + + + // -------------------------------------------------------- + // COEFFICIENTS FOR INTERPOLANT bi WITH 11 STAGES + // -------------------------------------------------------- + + G4double bi[13][7], b[13]; //For bi[1][1] to bi[11][6] and b[1] to b[11] + + for(int i=1; i<= 11; i++) + bi[i][1] = 0.0 ; + + for(int i=1; i<=6; i++) + bi[2][i] = 0.0 ; + + bi[1][6] = -12134338393.0/1050809760.0 , + bi[1][5] = -1620741229.0/50038560.0 , + bi[1][4] = -2048058893.0/59875200.0 , + bi[1][3] = -87098480009.0/5254048800.0 , + bi[1][2] = -11513270273.0/3502699200.0 , + // + bi[3][6] = -33197340367.0/1218433216.0 , + bi[3][5] = -539868024987.0/6092166080.0 , + bi[3][4] = -39991188681.0/374902528.0 , + bi[3][3] = -69509738227.0/1218433216.0 , + bi[3][2] = -29327744613.0/2436866432.0 , + // + bi[4][6] = -284800997201.0/19905339168.0 , + bi[4][5] = -7896875450471.0/165877826400.0 , + bi[4][4] = -333945812879.0/5671036800.0 , + bi[4][3] = -16209923456237.0/497633479200.0 , + bi[4][2] = -2382590741699.0/331755652800.0 , + // + bi[5][6] = -540919.0/741312.0 , + bi[5][5] = -103626067.0/43243200.0 , + bi[5][4] = -633779.0/211200.0 , + bi[5][3] = -32406787.0/18532800.0 , + bi[5][2] = -36591193.0/86486400.0 , + // + bi[6][6] = 7157998304.0/374350977.0 , + bi[6][5] = 30405842464.0/623918295.0 , + bi[6][4] = 183022264.0/5332635.0 , + bi[6][3] = -3357024032.0/1871754885.0 , + bi[6][2] = -611586736.0/89131185.0 , + // + bi[7][6] = -138073.0/9408.0 , + bi[7][5] = -719433.0/15680.0 , + bi[7][4] = -1620541.0/31360.0 , + bi[7][3] = -385151.0/15680.0 , + bi[7][2] = -65403.0/15680.0 , + // + bi[8][6] = 1245.0/64.0 , + bi[8][5] = 3991.0/64.0 , + bi[8][4] = 4715.0/64.0 , + bi[8][3] = 2501.0/64.0 , + bi[8][2] = 149.0/16.0 , + bi[8][1] = 1.0 , + // + bi[9][6] = 55.0/3.0 , + bi[9][5] = 71.0 , + bi[9][4] = 103.0 , + bi[9][3] = 199.0/3.0 , + bi[9][2] = 16.0 , + // + bi[10][6] = -1774004627.0/75810735.0 , + bi[10][5] = -1774004627.0/25270245.0 , + bi[10][4] = -26477681.0/359975.0 , + bi[10][3] = -11411880511.0/379053675.0 , + bi[10][2] = -423642896.0/126351225.0 , + // + bi[11][6] = 35.0 , + bi[11][5] = 105.0 , + bi[11][4] = 117.0 , + bi[11][3] = 59.0 , + bi[11][2] = 12.0 ; + // + + +// for (int i = 1; i <= 11; i++) { +// bi[i][1] = 0.e0; +// } +// for (int i = 1; i <= 6; i++) { +// bi[2][i] = 0.e0; +// } +// bi[1][6] = -12134338393.e0/1050809760.e0; +// bi[1][5] = -1620741229.e0/50038560.e0; +// bi[1][4] = -2048058893.e0/59875200.e0; +// bi[1][3] = -87098480009.e0/5254048800.e0; +// bi[1][2] = -11513270273.e0/3502699200.e0; +// //C +// bi[3][6] = -33197340367.e0/1218433216.e0; +// bi[3][5] = -539868024987.e0/6092166080.e0; +// bi[3][4] = -39991188681.e0/374902528.e0; +// bi[3][3] = -69509738227.e0/1218433216.e0; +// bi[3][2] = -29327744613.e0/2436866432.e0; +// //C +// bi[4][6] = -284800997201.e0/19905339168.e0; +// bi[4][5] = -7896875450471.e0/165877826400.e0; +// bi[4][4] = -333945812879.e0/5671036800.e0; +// bi[4][3] = -16209923456237.e0/497633479200.e0; +// bi[4][2] = -2382590741699.e0/331755652800.e0; +// //C +// bi[5][6] = -540919.e0/741312.e0; +// bi[5][5] = -103626067.e0/43243200.e0; +// bi[5][4] = -633779.e0/211200.e0; +// bi[5][3] = -32406787.e0/18532800.e0; +// bi[5][2] = -36591193.e0/86486400.e0; +// //C +// bi[6][6] = 7157998304.e0/374350977.e0; +// bi[6][5] = 30405842464.e0/623918295.e0; +// bi[6][4] = 183022264.e0/5332635.e0; +// bi[6][3] = -3357024032.e0/1871754885.e0; +// bi[6][2] = -611586736.e0/89131185.e0; +// //C +// bi[7][6] = -138073.e0/9408.e0; +// bi[7][5] = -719433.e0/15680.e0; +// bi[7][4] = -1620541.e0/31360.e0; +// bi[7][3] = -385151.e0/15680.e0; +// bi[7][2] = -65403.e0/15680.e0; +// //C +// bi[8][6] = 1245.e0/64.e0; +// bi[8][5] = 3991.e0/64.e0; +// bi[8][4] = 4715.e0/64.e0; +// bi[8][3] = 2501.e0/64.e0; +// bi[8][2] = 149.e0/16.e0; +// bi[8][1] = 1.e0; +// //C +// bi[9][6] = 55.e0/3.e0; +// bi[9][5] = 71.e0; +// bi[9][4] = 103.e0; +// bi[9][3] = 199.e0/3.e0; +// bi[9][2] = 16.0e0; +// //C +// bi[10][6] = -1774004627.e0/75810735.e0; +// bi[10][5] = -1774004627.e0/25270245.e0; +// bi[10][4] = -26477681.e0/359975.e0; +// bi[10][3] = -11411880511.e0/379053675.e0; +// bi[10][2] = -423642896.e0/126351225.e0; +// //C +// bi[11][6] = 35.e0; +// bi[11][5] = 105.e0; +// bi[11][4] = 117.e0; +// bi[11][3] = 59.e0; +// bi[11][2] = 12.e0; + + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // Saving yInput because yInput and yOut can be aliases for same array + for(int i=0;i + +//Constructor +G4FSALDormandPrince745::G4FSALDormandPrince745(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) +: G4VFSALIntegrationStepper(EqRhs, noIntegrationVariables){ + + const G4int numberOfVariables = noIntegrationVariables; + + //New Chunk of memory being created for use by the stepper + + //aki - for storing intermediate RHS + ak2 = new G4double[numberOfVariables]; + ak3 = new G4double[numberOfVariables]; + ak4 = new G4double[numberOfVariables]; + ak5 = new G4double[numberOfVariables]; + ak6 = new G4double[numberOfVariables]; + ak7 = new G4double[numberOfVariables]; + + yTemp = new G4double[numberOfVariables] ; + yIn = new G4double[numberOfVariables] ; + + pseudoDydx_for_DistChord = new G4double[numberOfVariables]; + + fLastInitialVector = new G4double[numberOfVariables] ; + fLastFinalVector = new G4double[numberOfVariables] ; + fLastDyDx = new G4double[numberOfVariables]; + + fMidVector = new G4double[numberOfVariables]; + fMidError = new G4double[numberOfVariables]; + if( primary ) + { + fAuxStepper = new G4FSALDormandPrince745(EqRhs, numberOfVariables, + !primary); + } +} + + +//Destructor +G4FSALDormandPrince745::~G4FSALDormandPrince745(){ + //clear all previously allocated memory for stepper and DistChord + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + delete[] ak7; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; + + delete[] pseudoDydx_for_DistChord; + +} + + +//Stepper : + +// Passing in the value of yInput[],the first time dydx[] and Step length +// Giving back yOut and yErr arrays for output and error respectively + +void G4FSALDormandPrince745::Stepper(const G4double yInput[], + const G4double dydx[], + G4double Step, + G4double yOut[], + G4double yErr[], + G4double nextDydx[] + ) +{ + G4int i; + + //The various constants defined on the basis of butcher tableu + const G4double //G4double - only once + b21 = 0.2 , + + b31 = 3.0/40.0, b32 = 9.0/40.0 , + + b41 = 44.0/45.0, b42 = -56.0/15.0, b43 = 32.0/9.0, + + b51 = 19372.0/6561.0, b52 = -25360.0/2187.0, b53 = 64448.0/6561.0, + b54 = -212.0/729.0 , + + b61 = 9017.0/3168.0 , b62 = -355.0/33.0, + b63 = 46732.0/5247.0 , b64 = 49.0/176.0 , + b65 = -5103.0/18656.0 , + + b71 = 35.0/384.0, b72 = 0., + b73 = 500.0/1113.0, b74 = 125.0/192.0, + b75 = -2187.0/6784.0, b76 = 11.0/84.0, + +// c1 = 35.0/384.0, c2 = .0, +// c3 = 500.0/1113.0, c4 = 125.0/192.0, +// c5 = -2187.0/6784.0, c6 = 11.0/84.0, +// c7 = 0, + + dc1 = b71 - 5179.0/57600.0, + dc2 = b72 - .0, + dc3 = b73 - 7571.0/16695.0, + dc4 = b74 - 393.0/640.0, + dc5 = b75 + 92097.0/339200.0, + dc6 = b76 - 187.0/2100.0, + dc7 = - 1.0/40.0 ; //end of declaration + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + G4double *DyDx = new G4double[numberOfVariables]; + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError, pseudoDydx_for_DistChord ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} + + +void G4FSALDormandPrince745::interpolate( const G4double yInput[], + const G4double dydx[], + G4double yOut[], + G4double Step, + G4double tau){ + + G4double + bf1, bf2, bf3, bf4, bf5, bf6, bf7; + + + + + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + G4double tau0 = tau; + + for(int i=0;iGetNumberOfVariables(); + + // Saving yInput because yInput and yOut can be aliases for same array + for(int i=0;iGetNumberOfVariables(); + + // COEFFICIENTS OF bi[1] + bi[1][0] = 1.0 , + bi[1][1] = -38039.0/7040.0 , + bi[1][2] = 125923.0/10560.0 , + bi[1][3] = -19683.0/1760.0 , + bi[1][4] = 3303.0/880.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[2] + bi[2][0] = 0.0 , + bi[2][1] = 0.0 , + bi[2][2] = 0.0 , + bi[2][3] = 0.0 , + bi[2][4] = 0.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[3] + bi[3][0] = 0.0 , + bi[3][1] = -12500.0/4081.0 , + bi[3][2] = 205000.0/12243.0 , + bi[3][3] = -90000.0/4081.0 , + bi[3][4] = 36000.0/4081.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[4] + bi[4][0] = 0.0 , + bi[4][1] = -3125.0/704.0 , + bi[4][2] = 25625.0/1056.0 , + bi[4][3] = -5625.0/176.0 , + bi[4][4] = 1125.0/88.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[5] + bi[5][0] = 0.0 , + bi[5][1] = 164025.0/74624.0 , + bi[5][2] = -448335.0/37312.0 , + bi[5][3] = 295245.0/18656.0 , + bi[5][4] = -59049.0/9328.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[6] + bi[6][0] = 0.0 , + bi[6][1] = -25.0/28.0 , + bi[6][2] = 205.0/42.0 , + bi[6][3] = -45.0/7.0 , + bi[6][4] = 18.0/7.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[7] + bi[7][0] = 0.0 , + bi[7][1] = -2.0/11.0 , + bi[7][2] = 73.0/55.0 , + bi[7][3] = -171.0/55.0 , + bi[7][4] = 108.0/55.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[8] + bi[8][0] = 0.0 , + bi[8][1] = 189.0/22.0 , + bi[8][2] = -1593.0/55.0 , + bi[8][3] = 3537.0/110.0 , + bi[8][4] = -648.0/55.0 , + // -------------------------------------------------------- + // + // COEFFICIENTS OF bi[9] + bi[9][0] = 0.0 , + bi[9][1] = 351.0/110.0 , + bi[9][2] = -999.0/55.0 , + bi[9][3] = 2943.0/110.0 , + bi[9][4] = -648.0/55.0 ; + // -------------------------------------------------------- + + + + for(G4int i = 0; i< numberOfVariables; i++) + yIn[i] = yInput[i]; + + G4double tau0 = tau; + // Calculating the polynomials : + + for(int i=1; i<=9; i++){ //Here i is NOT the coordinate no. , it's stage no. + b[i] = 0; + tau = 1.0; + for(int j=0; j<=4; j++){ + b[i] += bi[i][j]*tau; + tau*=tau0; + } + } + + for(int i=0; i + +#include "globals.hh" +#include "G4SystemOfUnits.hh" +#include "G4GeometryTolerance.hh" +#include "G4FSALIntegrationDriver.hh" +#include "G4FieldTrack.hh" + +// Stepsize can increase by no more than 5.0 +// and decrease by no more than 1/10. = 0.1 +// +const G4double G4FSALIntegrationDriver::max_stepping_increase = 5.0; //Changed from 5.0 by [hackabot] +const G4double G4FSALIntegrationDriver::max_stepping_decrease = 0.1; //Changed from 0.1 by [hackabot] + +// The (default) maximum number of steps is Base +// divided by the order of Stepper +// +const G4int G4FSALIntegrationDriver::fMaxStepBase = 100000; // Was 5000, was 250 + +#ifndef G4NO_FIELD_STATISTICS +#define G4FLD_STATS 1 +#endif + +//#ifndef G4DEBUG_FIELD +//#define G4DEBUG_FIELD 1 +//#endif + +// --------------------------------------------------------- + +// Constructor +// +G4FSALIntegrationDriver::G4FSALIntegrationDriver( G4double hminimum, + G4VFSALIntegrationStepper *pStepper, + G4int numComponents, + G4int statisticsVerbose) +: fSmallestFraction( 1.0e-12 ), +fNoIntegrationVariables(numComponents), +fMinNoVars(12), +fNoVars( std::max( fNoIntegrationVariables, fMinNoVars )), +fStatisticsVerboseLevel(statisticsVerbose), +fNoTotalSteps(0), fNoBadSteps(0), fNoSmallSteps(0), +fNoInitialSmallSteps(0), +fDyerr_max(0.0), fDyerr_mx2(0.0), +fDyerrPos_smTot(0.0), fDyerrPos_lgTot(0.0), fDyerrVel_lgTot(0.0), +fSumH_sm(0.0), fSumH_lg(0.0), +fVerboseLevel(0), +TotalNoStepperCalls(0) +{ + // In order to accomodate "Laboratory Time", which is [7], fMinNoVars=8 + // is required. For proper time of flight and spin, fMinNoVars must be 12 + + RenewStepperAndAdjust( pStepper ); + fMinimumStep= hminimum; + fMaxNoSteps = fMaxStepBase / pIntStepper->IntegratorOrder(); +#ifdef G4DEBUG_FIELD + fVerboseLevel=2; +#endif + + if( (fVerboseLevel > 0) || (fStatisticsVerboseLevel > 1) ) + { + G4cout << "MagIntDriver version: Accur-Adv: " + << "invE_nS, QuickAdv-2sqrt with Statistics " +#ifdef G4FLD_STATS + << " enabled " +#else + << " disabled " +#endif + << G4endl; + } +} + +// --------------------------------------------------------- + +// Destructor +// +G4FSALIntegrationDriver::~G4FSALIntegrationDriver() +{ + if( fStatisticsVerboseLevel > 1 ) + { + PrintStatisticsReport(); + } +} + +// To add much printing for debugging purposes, uncomment the following +// and set verbose level to 1 or higher value ! +// #define G4DEBUG_FIELD 1 + +// --------------------------------------------------------- + +G4bool +G4FSALIntegrationDriver::AccurateAdvance(G4FieldTrack& y_current, + G4double hstep, + G4double eps, + G4double hinitial ) +{ + // Runge-Kutta driver with adaptive stepsize control. Integrate starting + // values at y_current over hstep x2 with accuracy eps. + // On output ystart is replaced by values at the end of the integration + // 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; + G4double x, hnext, hdid, h; + +#ifdef G4DEBUG_FIELD + static G4int dbg=10; + static G4int nStpPr=50; // For debug printing of long integrations + G4double ySubStepStart[G4FieldTrack::ncompSVEC]; + G4FieldTrack yFldTrkStart(y_current); +#endif + + G4double y[G4FieldTrack::ncompSVEC], dydx[G4FieldTrack::ncompSVEC]; + G4double ystart[G4FieldTrack::ncompSVEC], yEnd[G4FieldTrack::ncompSVEC]; + G4double x1, x2; + G4bool succeeded = true, lastStepSucceeded; + + G4double startCurveLength; + + G4int noFullIntegr=0, noSmallIntegr = 0 ; + static G4ThreadLocal G4int noGoodSteps =0 ; // Bad = chord > curve-len + const G4int nvar= fNoVars; + + G4FieldTrack yStartFT(y_current); + + // Ensure that hstep > 0 + // + if( hstep <= 0.0 ) + { + if(hstep==0.0) + { + std::ostringstream message; + message << "Proposed step is zero; hstep = " << hstep << " !"; + G4Exception("G4FSALIntegrationDriver::AccurateAdvance()", + "GeomField1001", JustWarning, message); + return succeeded; + } + else + { + std::ostringstream message; + message << "Invalid run condition." << G4endl + << "Proposed step is negative; hstep = " << hstep << "." << G4endl + << "Requested step cannot be negative! Aborting event."; + G4Exception("G4FSALIntegrationDriver::AccurateAdvance()", + "GeomField0003", EventMustBeAborted, message); + return false; + } + } + + y_current.DumpToArray( ystart ); + + startCurveLength= y_current.GetCurveLength(); + x1= startCurveLength; + x2= x1 + hstep; + + if ( (hinitial > 0.0) && (hinitial < hstep) + && (hinitial > perMillion * hstep) ) + { + h = hinitial; + } + else // Initial Step size "h" defaults to the full interval + { + h = hstep; + } + + x = x1; + + for (i=0;iComputeRightHandSide( y, dydx ); + + + do + { + G4ThreeVector StartPos( y[0], y[1], y[2] ); + +#ifdef G4DEBUG_FIELD + G4double xSubStepStart= x; + for (i=0;i fMinimumStep ) + { + OneGoodStep(y,dydx,x,h,eps,hdid,hnext) ; + //-------------------------------------- + lastStepSucceeded= (hdid == h); +#ifdef G4DEBUG_FIELD + if (dbg>2) { + PrintStatus( ySubStepStart, xSubStepStart, y, x, h, nstp); // Only + } +#endif + } + else + { + G4FieldTrack yFldTrk( G4ThreeVector(0,0,0), + G4ThreeVector(0,0,0), 0., 0., 0., 0. ); + G4double dchord_step, dyerr, dyerr_len; // What to do with these ? + yFldTrk.LoadFromArray(y, fNoIntegrationVariables); + yFldTrk.SetCurveLength( x ); + + QuickAdvance( yFldTrk, dydx, h, dchord_step, dyerr_len ); + //----------------------------------------------------- + + yFldTrk.DumpToArray(y); + +#ifdef G4FLD_STATS + fNoSmallSteps++; + if ( dyerr_len > fDyerr_max) { fDyerr_max= dyerr_len; } + fDyerrPos_smTot += dyerr_len; + fSumH_sm += h; // Length total for 'small' steps + if (nstp<=1) { fNoInitialSmallSteps++; } +#endif +#ifdef G4DEBUG_FIELD + if (dbg>1) + { + if(fNoSmallSteps<2) { PrintStatus(ySubStepStart, x1, y, x, h, -nstp); } + G4cout << "Another sub-min step, no " << fNoSmallSteps + << " of " << fNoTotalSteps << " this time " << nstp << G4endl; + PrintStatus( ySubStepStart, x1, y, x, h, nstp); // Only this + G4cout << " dyerr= " << dyerr_len << " relative = " << dyerr_len / h + << " epsilon= " << eps << " hstep= " << hstep + << " h= " << h << " hmin= " << fMinimumStep << G4endl; + } +#endif + if( h == 0.0 ) + { + G4Exception("G4FSALIntegrationDriver::AccurateAdvance()", + "GeomField0003", FatalException, + "Integration Step became Zero!"); + } + dyerr = dyerr_len / h; + hdid= h; + x += hdid; + + // 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 + if( (dbg>0) && (dbg<=2) && (nstp>nStpPr)) + { + if( nstp==nStpPr ) { G4cout << "***** Many steps ****" << G4endl; } + G4cout << "MagIntDrv: " ; + G4cout << "hdid=" << std::setw(12) << hdid << " " + << "hnext=" << std::setw(12) << hnext << " " + << "hstep=" << std::setw(12) << hstep << " (requested) " + << G4endl; + PrintStatus( ystart, x1, y, x, h, (nstp==nStpPr) ? -nstp: nstp); + } +#endif + + // Check the endpoint + G4double endPointDist= (EndPos-StartPos).mag(); + if ( endPointDist >= hdid*(1.+perMillion) ) + { + fNoBadSteps++; + + // Issue a warning only for gross differences - + // we understand how small difference occur. + if ( endPointDist >= hdid*(1.+perThousand) ) + { +#ifdef G4DEBUG_FIELD + if (dbg) + { + WarnEndPointTooFar ( endPointDist, hdid, eps, dbg ); + G4cerr << " Total steps: bad " << fNoBadSteps + << " good " << noGoodSteps << " current h= " << hdid + << G4endl; + PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + } +#endif + no_warnings++; + } + } + else + { + noGoodSteps ++; + } + // #endif + + // Avoid numerous small last steps + if( (h < eps * hstep) || (h < fSmallestFraction * startCurveLength) ) + { + // No more integration -- the next step will not happen + lastStep = true; + } + else + { + // Check the proposed next stepsize + if(std::fabs(hnext) <= Hmin()) + { +#ifdef G4DEBUG_FIELD + // If simply a very small interval is being integrated, do not warn + if( (x < x2 * (1-eps) ) && // The last step can be small: OK + (std::fabs(hstep) > Hmin()) ) // and if we are asked, it's OK + { + if(dbg>0) + { + WarnSmallStepSize( hnext, hstep, h, x-x1, nstp ); + PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + } + no_warnings++; + } +#endif + // Make sure that the next step is at least Hmin. + h = Hmin(); + } + else + { + h = hnext; + } + + // Ensure that the next step does not overshoot + if ( x+h > x2 ) + { // When stepsize overshoots, decrease it! + h = x2 - x ; // Must cope with difficult rounding-error + } // issues if hstep << x2 + + if ( h == 0.0 ) + { + // Cannot progress - accept this as last step - by default + lastStep = true; +#ifdef G4DEBUG_FIELD + if (dbg>2) + { + int prec= G4cout.precision(12); + G4cout << "Warning: FSALMagIntegratorDriver::AccurateAdvance" + << G4endl + << " Integration step 'h' became " + << h << " due to roundoff. " << G4endl + << " Calculated as difference of x2= "<< x2 << " and x=" << x + << " Forcing termination of advance." << G4endl; + G4cout.precision(prec); + } +#endif + } + } + } while ( ((nstp++)<=fMaxNoSteps) && (x < x2) && (!lastStep) ); + // Have we reached the end ? + // --> a better test might be x-x2 > an_epsilon + + succeeded= (x>=x2); // If it was a "forced" last step + + for (i=0;i fMaxNoSteps) + { + no_warnings++; + succeeded = false; +#ifdef G4DEBUG_FIELD + if (dbg) + { + WarnTooManyStep( x1, x2, x ); // Issue WARNING + PrintStatus( yEnd, x1, y, x, hstep, -nstp); + } +#endif + } + +#ifdef G4DEBUG_FIELD + if( dbg && no_warnings ) + { + G4cerr << "FSALMagIntegratorDriver exit status: no-steps " << nstp < 10 ) + { + message << "The stepsize for the next iteration, " << hnext + << ", is too small - in Step number " << nstp << "." << G4endl + << "The minimum for the driver is " << Hmin() << G4endl + << "Requested integr. length was " << hstep << " ." << G4endl + << "The size of this sub-step was " << h << " ." << G4endl + << "The integrations has already gone " << xDone; + } + else + { + message << "Too small 'next' step " << hnext + << ", step-no: " << nstp << G4endl + << ", this sub-step: " << h + << ", req_tot_len: " << hstep + << ", done: " << xDone << ", min: " << Hmin(); + } + G4Exception("G4FSALIntegrationDriver::WarnSmallStepSize()", "GeomField1001", + JustWarning, message); + noWarningsIssued++; +} + +// --------------------------------------------------------- + +void +G4FSALIntegrationDriver::WarnTooManyStep( G4double x1start, + G4double x2end, + G4double xCurrent) +{ + std::ostringstream message; + message << "The number of steps used in the Integration driver" + << " (Runge-Kutta) is too many." << G4endl + << "Integration of the interval was not completed !" << G4endl + << "Only a " << (xCurrent-x1start)*100/(x2end-x1start) + << " % fraction of it was done."; + G4Exception("G4FSALIntegrationDriver::WarnTooManyStep()", "GeomField1001", + JustWarning, message); +} + +// --------------------------------------------------------- + +void +G4FSALIntegrationDriver::WarnEndPointTooFar (G4double endPointDist, + G4double h , + G4double eps, + G4int dbg) +{ + static G4ThreadLocal G4double maxRelError=0.0; + G4bool isNewMax, prNewMax; + + isNewMax = endPointDist > (1.0 + maxRelError) * h; + prNewMax = endPointDist > (1.0 + 1.05 * maxRelError) * h; + if( isNewMax ) { maxRelError= endPointDist / h - 1.0; } + + if( dbg && (h > G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()) + && ( (dbg>1) || prNewMax || (endPointDist >= h*(1.+eps) ) ) ) + { + static G4ThreadLocal G4int noWarnings = 0; + std::ostringstream message; + if( (noWarnings ++ < 10) || (dbg>2) ) + { + message << "The integration produced an end-point which " << G4endl + << "is further from the start-point than the curve length." + << G4endl; + } + message << " Distance of endpoints = " << endPointDist + << ", curve length = " << h << G4endl + << " Difference (curveLen-endpDist)= " << (h - endPointDist) + << ", relative = " << (h-endPointDist) / h + << ", epsilon = " << eps; + G4Exception("G4FSALIntegrationDriver::WarnEndPointTooFar()", "GeomField1001", + JustWarning, message); + } +} + +// --------------------------------------------------------- + +void +G4FSALIntegrationDriver::OneGoodStep( G4double y[], // InOut + G4double dydx[], + G4double& x, // InOut + G4double htry, + G4double eps_rel_max, + G4double& hdid, // Out + G4double& hnext ) // Out + +// Driver for one Runge-Kutta Step with monitoring of local truncation error +// to ensure accuracy and adjust stepsize. Input are dependent variable +// array y[0,...,5] and its derivative dydx[0,...,5] at the +// starting value of the independent variable x . Also input are stepsize +// to be attempted htry, and the required accuracy eps. On output y and x +// are replaced by their new values, hdid is the stepsize that was actually +// accomplished, and hnext is the estimated next stepsize. +// This is similar to the function rkqs from the book: +// Numerical Recipes in C: The Art of Scientific Computing (NRC), Second +// Edition, by William H. Press, Saul A. Teukolsky, William T. +// Vetterling, and Brian P. Flannery (Cambridge University Press 1992), +// 16.2 Adaptive StepSize Control for Runge-Kutta, p. 719 + +{ + G4double errmax_sq; + G4double h, htemp, xnew ; + + G4double yerr[G4FieldTrack::ncompSVEC], ytemp[G4FieldTrack::ncompSVEC]; + + h = htry ; // Set stepsize to the initial trial value + + G4double inv_eps_vel_sq = 1.0 / (eps_rel_max*eps_rel_max); + + G4double errpos_sq=0.0; // square of displacement error + G4double errvel_sq=0.0; // square of momentum vector difference + G4double errspin_sq=0.0; // square of spin vector difference + + G4int iter; + + static G4ThreadLocal G4int tot_no_trials=0; + //----------------------------------------------------------- + //Made a change : + //max_trials = 100 + const G4int max_trials=100000; + //[hackabot] + //------------------------------------------------------------ + G4ThreeVector Spin(y[9],y[10],y[11]); + G4double spin_mag2 =Spin.mag2() ; + G4bool hasSpin= (spin_mag2 > 0.0); + + for (iter=0; iter Stepper(y,dydx,h,ytemp,yerr, dydx); + // ******* + TotalNoStepperCalls++; + G4double eps_pos = eps_rel_max * std::max(h, fMinimumStep); + G4double inv_eps_pos_sq = 1.0 / (eps_pos*eps_pos); + + // Evaluate accuracy + // + errpos_sq = sqr(yerr[0]) + sqr(yerr[1]) + sqr(yerr[2]) ; + errpos_sq *= inv_eps_pos_sq; // Scale relative to required tolerance + + // Accuracy for momentum + G4double magvel_sq= sqr(y[3]) + sqr(y[4]) + sqr(y[5]) ; + G4double sumerr_sq = sqr(yerr[3]) + sqr(yerr[4]) + sqr(yerr[5]) ; + if( magvel_sq > 0.0 ) { + errvel_sq = sumerr_sq / magvel_sq; + }else{ + G4cerr << "** G4MagIntegrationDriver: found case of zero momentum." + << " iteration= " << iter << " h= " << h << G4endl; + errvel_sq = sumerr_sq; + } + errvel_sq *= inv_eps_vel_sq; + errmax_sq = std::max( errpos_sq, errvel_sq ); // Square of maximum error + + if( hasSpin ) + { + // Accuracy for spin + errspin_sq = ( sqr(yerr[9]) + sqr(yerr[10]) + sqr(yerr[11]) ) + / spin_mag2; // ( sqr(y[9]) + sqr(y[10]) + sqr(y[11]) ); + errspin_sq *= inv_eps_vel_sq; + errmax_sq = std::max( errmax_sq, errspin_sq ); + } + + if ( errmax_sq <= 1.0 ) { break; } // Step succeeded. + + // Step failed; compute the size of retrial Step. + htemp = GetSafety()*h* std::pow( errmax_sq, 0.5*GetPshrnk() ); + + if (htemp >= 0.1*h) { h = htemp; } // Truncation error too large, + else { h = 0.1*h; } // reduce stepsize, but no more + // than a factor of 10 + xnew = x + h; + if(xnew == x) + { + G4cerr << "FSALMagIntegratorDriver::OneGoodStep:" << G4endl + << " Stepsize underflow in Stepper " << G4endl ; + G4cerr << " Step's start x=" << x << " and end x= " << xnew + << " are equal !! " << G4endl + <<" Due to step-size= " << h + << " . Note that input step was " << htry << G4endl; + break; + } + } + +#ifdef G4FLD_STATS + // Sum of squares of position error // and momentum dir (underestimated) + fSumH_lg += h; + fDyerrPos_lgTot += errpos_sq; + fDyerrVel_lgTot += errvel_sq * h * h; +#endif + + // Compute size of next Step + if (errmax_sq > errcon*errcon) + { + hnext = GetSafety()*h*std::pow(errmax_sq, 0.5*GetPgrow()); + } + else + { + hnext = max_stepping_increase*h ; // No more than a factor of 5 increase + } + x += (hdid = h); + + for(G4int k=0;k Stepper(yarrin, dydx, hstep, yarrout, yerr_vec, dydx) ; + // ******* + + // Estimate curve-chord distance + dchord_step= pIntStepper-> DistChord(); + // ********* + + // Put back the values. yarrout ==> y_posvel + y_posvel.LoadFromArray( yarrout, fNoIntegrationVariables ); + y_posvel.SetCurveLength( s_start + hstep ); + +#ifdef G4DEBUG_FIELD + if(fVerboseLevel>2) + { + G4cout << "G4MagIntDrv: Quick Advance" << G4endl; + PrintStatus( yarrin, s_start, yarrout, s_start+hstep, hstep, 1); + } +#endif + + // A single measure of the error + // TO-DO : account for energy, spin, ... ? + vel_mag_sq = ( sqr(yarrout[3])+sqr(yarrout[4])+sqr(yarrout[5]) ); + inv_vel_mag_sq = 1.0 / vel_mag_sq; + dyerr_pos_sq = ( sqr(yerr_vec[0])+sqr(yerr_vec[1])+sqr(yerr_vec[2])); + dyerr_mom_sq = ( sqr(yerr_vec[3])+sqr(yerr_vec[4])+sqr(yerr_vec[5])); + dyerr_mom_rel_sq = dyerr_mom_sq * inv_vel_mag_sq; + + // Calculate also the change in the momentum squared also ??? + // G4double veloc_square = y_posvel.GetVelocity().mag2(); + // ... + +#ifdef RETURN_A_NEW_STEP_LENGTH + // The following step cannot be done here because "eps" is not known. + dyerr_len = std::sqrt( dyerr_len_sq ); + dyerr_len_sq /= eps ; + + // Look at the velocity deviation ? + // sqr(yerr_vec[3])+sqr(yerr_vec[4])+sqr(yerr_vec[5])); + + // Set suggested new step + hstep= ComputeNewStepSize( dyerr_len, hstep); +#endif + + if( dyerr_pos_sq > ( dyerr_mom_rel_sq * sqr(hstep) ) ) + { + dyerr = std::sqrt(dyerr_pos_sq); + } + else + { + // Scale it to the current step size - for now + dyerr = std::sqrt(dyerr_mom_rel_sq) * hstep; + } + + return true; +} + +// -------------------------------------------------------------------------- + +#ifdef QUICK_ADV_ARRAY_IN_AND_OUT +G4bool G4FSALIntegrationDriver::QuickAdvance( + G4double yarrin[], // In + const G4double dydx[], + G4double hstep, // In + G4double yarrout[], + G4double& dchord_step, + G4double& dyerr ) // In length +{ + G4Exception("G4FSALIntegrationDriver::QuickAdvance()", "GeomField0001", + FatalException, "Not yet implemented."); + dyerr = dchord_step = hstep * yarrin[0] * dydx[0]; + yarrout[0]= yarrin[0]; +} +#endif + +// -------------------------------------------------------------------------- + +// This method computes new step sizes - but does not limit changes to +// within certain factors +// +G4double +G4FSALIntegrationDriver::ComputeNewStepSize( + G4double errMaxNorm, // max error (normalised) + G4double hstepCurrent) // current step size +{ + G4double hnew; + + // Compute size of next Step for a failed step + if(errMaxNorm > 1.0 ) + { + // Step failed; compute the size of retrial Step. + hnew = GetSafety()*hstepCurrent*std::pow(errMaxNorm,GetPshrnk()) ; + } else if(errMaxNorm > 0.0 ) { + // Compute size of next Step for a successful step + hnew = GetSafety()*hstepCurrent*std::pow(errMaxNorm,GetPgrow()) ; + } else { + // if error estimate is zero (possible) or negative (dubious) + hnew = max_stepping_increase * hstepCurrent; + } + + return hnew; +} + +// --------------------------------------------------------------------------- + +// This method computes new step sizes limiting changes within certain factors +// +// It shares its logic with AccurateAdvance. +// They are kept separate currently for optimisation. +// +G4double +G4FSALIntegrationDriver::ComputeNewStepSize_WithinLimits( + G4double errMaxNorm, // max error (normalised) + G4double hstepCurrent) // current step size +{ + G4double hnew; + + // Compute size of next Step for a failed step + if (errMaxNorm > 1.0 ) + { + // Step failed; compute the size of retrial Step. + hnew = GetSafety()*hstepCurrent*std::pow(errMaxNorm,GetPshrnk()) ; + + if (hnew < max_stepping_decrease*hstepCurrent) + { + hnew = max_stepping_decrease*hstepCurrent ; + // reduce stepsize, but no more + // than this factor (value= 1/10) + } + } + else + { + // Compute size of next Step for a successful step + if (errMaxNorm > errcon) + { hnew = GetSafety()*hstepCurrent*std::pow(errMaxNorm,GetPgrow()); } + else // No more than a factor of 5 increase + { hnew = max_stepping_increase * hstepCurrent; } + } + return hnew; +} + +// --------------------------------------------------------------------------- + +void G4FSALIntegrationDriver::PrintStatus( const G4double* StartArr, + G4double xstart, + const G4double* CurrentArr, + G4double xcurrent, + G4double requestStep, + G4int subStepNo) +// Potentially add as arguments: +// - as Initial Force +// stepTaken(hdid) - last step taken +// nextStep (hnext) - proposal for size +{ + G4FieldTrack StartFT(G4ThreeVector(0,0,0), + G4ThreeVector(0,0,0), 0., 0., 0., 0. ); + G4FieldTrack CurrentFT (StartFT); + + StartFT.LoadFromArray( StartArr, fNoIntegrationVariables); + StartFT.SetCurveLength( xstart); + CurrentFT.LoadFromArray( CurrentArr, fNoIntegrationVariables); + CurrentFT.SetCurveLength( xcurrent ); + + PrintStatus(StartFT, CurrentFT, requestStep, subStepNo ); +} + +// --------------------------------------------------------------------------- + +void G4FSALIntegrationDriver::PrintStatus( + const G4FieldTrack& StartFT, + const G4FieldTrack& CurrentFT, + G4double requestStep, + G4int subStepNo) +{ + G4int verboseLevel= fVerboseLevel; + static G4ThreadLocal G4int noPrecision= 5; + G4int oldPrec= G4cout.precision(noPrecision); + // G4cout.setf(ios_base::fixed,ios_base::floatfield); + + const G4ThreeVector StartPosition= StartFT.GetPosition(); + const G4ThreeVector StartUnitVelocity= StartFT.GetMomentumDir(); + const G4ThreeVector CurrentPosition= CurrentFT.GetPosition(); + const G4ThreeVector CurrentUnitVelocity= CurrentFT.GetMomentumDir(); + + G4double DotStartCurrentVeloc= StartUnitVelocity.dot(CurrentUnitVelocity); + + G4double step_len= CurrentFT.GetCurveLength() - StartFT.GetCurveLength(); + G4double subStepSize = step_len; + + if( (subStepNo <= 1) || (verboseLevel > 3) ) + { + subStepNo = - subStepNo; // To allow printing banner + + G4cout << std::setw( 6) << " " << std::setw( 25) + << " G4FSALIntegrationDriver: Current Position and Direction" << " " + << G4endl; + G4cout << std::setw( 5) << "Step#" << " " + << std::setw( 7) << "s-curve" << " " + << std::setw( 9) << "X(mm)" << " " + << std::setw( 9) << "Y(mm)" << " " + << std::setw( 9) << "Z(mm)" << " " + << std::setw( 8) << " N_x " << " " + << std::setw( 8) << " N_y " << " " + << std::setw( 8) << " N_z " << " " + << std::setw( 8) << " N^2-1 " << " " + << std::setw(10) << " N(0).N " << " " + << std::setw( 7) << "KinEner " << " " + << std::setw(12) << "Track-l" << " " // Add the Sub-step ?? + << std::setw(12) << "Step-len" << " " + << std::setw(12) << "Step-len" << " " + << std::setw( 9) << "ReqStep" << " " + << G4endl; + } + + if( (subStepNo <= 0) ) + { + PrintStat_Aux( StartFT, requestStep, 0., + 0, 0.0, 1.0); + //************* + } + + if( verboseLevel <= 3 ) + { + G4cout.precision(noPrecision); + PrintStat_Aux( CurrentFT, requestStep, step_len, + subStepNo, subStepSize, DotStartCurrentVeloc ); + //************* + } + + else // if( verboseLevel > 3 ) + { + // Multi-line output + + // G4cout << "Current Position is " << CurrentPosition << G4endl + // << " and UnitVelocity is " << CurrentUnitVelocity << G4endl; + // G4cout << "Step taken was " << step_len + // << " out of PhysicalStep= " << requestStep << G4endl; + // G4cout << "Final safety is: " << safety << G4endl; + // G4cout << "Chord length = " << (CurrentPosition-StartPosition).mag() + // << G4endl << G4endl; + } + G4cout.precision(oldPrec); +} + +// --------------------------------------------------------------------------- + +void G4FSALIntegrationDriver::PrintStat_Aux( + const G4FieldTrack& aFieldTrack, + G4double requestStep, + G4double step_len, + G4int subStepNo, + G4double subStepSize, + G4double dotVeloc_StartCurr) +{ + const G4ThreeVector Position= aFieldTrack.GetPosition(); + const G4ThreeVector UnitVelocity= aFieldTrack.GetMomentumDir(); + + if( subStepNo >= 0) + { + G4cout << std::setw( 5) << subStepNo << " "; + } + else + { + G4cout << std::setw( 5) << "Start" << " "; + } + G4double curveLen= aFieldTrack.GetCurveLength(); + G4cout << std::setw( 7) << curveLen; + G4cout << std::setw( 9) << Position.x() << " " + << std::setw( 9) << Position.y() << " " + << std::setw( 9) << Position.z() << " " + << std::setw( 8) << UnitVelocity.x() << " " + << std::setw( 8) << UnitVelocity.y() << " " + << std::setw( 8) << UnitVelocity.z() << " "; + G4int oldprec= G4cout.precision(3); + G4cout << std::setw( 8) << UnitVelocity.mag2()-1.0 << " "; + G4cout.precision(6); + G4cout << std::setw(10) << dotVeloc_StartCurr << " "; + G4cout.precision(oldprec); + G4cout << std::setw( 7) << aFieldTrack.GetKineticEnergy(); + G4cout << std::setw(12) << step_len << " "; + + static G4ThreadLocal G4double oldCurveLength= 0.0; + static G4ThreadLocal G4double oldSubStepLength= 0.0; + static G4ThreadLocal G4int oldSubStepNo= -1; + + G4double subStep_len=0.0; + if( curveLen > oldCurveLength ) + { + subStep_len= curveLen - oldCurveLength; + } + else if (subStepNo == oldSubStepNo) + { + subStep_len= oldSubStepLength; + } + oldCurveLength= curveLen; + oldSubStepLength= subStep_len; + + G4cout << std::setw(12) << subStep_len << " "; + G4cout << std::setw(12) << subStepSize << " "; + if( requestStep != -1.0 ) + { + G4cout << std::setw( 9) << requestStep << " "; + } + else + { + G4cout << std::setw( 9) << " InitialStep " << " "; + } + G4cout << G4endl; +} + +// --------------------------------------------------------------------------- + +void G4FSALIntegrationDriver::PrintStatisticsReport() +{ + G4int noPrecBig= 6; + G4int oldPrec= G4cout.precision(noPrecBig); + + G4cout << "G4FSALIntegrationDriver Statistics of steps undertaken. " << G4endl; + G4cout << "G4FSALIntegrationDriver: Number of Steps: " + << " Total= " << fNoTotalSteps + << " Bad= " << fNoBadSteps + << " Small= " << fNoSmallSteps + << " Non-initial small= " << (fNoSmallSteps-fNoInitialSmallSteps) + << G4endl; + +#ifdef G4FLD_STATS + G4cout << "MID dyerr: " + << " maximum= " << fDyerr_max + << " Sum small= " << fDyerrPos_smTot + << " std::sqrt(Sum large^2): pos= " << std::sqrt(fDyerrPos_lgTot) + << " vel= " << std::sqrt( fDyerrVel_lgTot ) + << " Total h-distance: small= " << fSumH_sm + << " large= " << fSumH_lg + << G4endl; + +#if 0 + G4int noPrecSmall=4; + // Single line precis of statistics ... optional + G4cout.precision(noPrecSmall); + G4cout << "MIDnums: " << fMinimumStep + << " " << fNoTotalSteps + << " " << fNoSmallSteps + << " " << fNoSmallSteps-fNoInitialSmallSteps + << " " << fNoBadSteps + << " " << fDyerr_max + << " " << fDyerr_mx2 + << " " << fDyerrPos_smTot + << " " << fSumH_sm + << " " << fDyerrPos_lgTot + << " " << fDyerrVel_lgTot + << " " << fSumH_lg + << G4endl; +#endif +#endif + + G4cout.precision(oldPrec); +} + +// --------------------------------------------------------------------------- + +void G4FSALIntegrationDriver::SetSmallestFraction(G4double newFraction) +{ + if( (newFraction > 1.e-16) && (newFraction < 1e-8) ) + { + fSmallestFraction= newFraction; + } + else + { + G4cerr << "Warning: SmallestFraction not changed. " << G4endl + << " Proposed value was " << newFraction << G4endl + << " Value must be between 1.e-8 and 1.e-16" << G4endl; + } +} + + + + + + + +//-------------------------------------------------------------------------------- +// New functions introduced for more debugging purposes : + + + diff --git a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc index 785bd17893..bfc14ebae4 100644 --- a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4HelixExplicitEuler.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4HelixExplicitEuler.cc 97598 2016-06-06 07:19:46Z gcosmo $ // // // Helix Explicit Euler: x_1 = x_0 + helix(h) @@ -55,7 +55,7 @@ void G4HelixExplicitEuler::Stepper( const G4double yInput[7], const G4int nvar = 6 ; G4int i; - G4double yTemp[7], yIn[7] ; + G4double yTemp[8], yIn[8] ; G4ThreeVector Bfld_midpoint; // Saving yInput because yInput and yOut can be aliases for same array for(i=0;i0) G4cout << " G4HelixMixedStepper: "; switch ( StepperNumber ) { - case 0: - case 4: pStepper = new G4ClassicalRK4( pE ); if (fVerbose>0)G4cout<<"G4ClassicalRK4"<0) G4cout << "G4ClassicalRK4"; + break; - // Steppers with embedded estimation of error - case 1: pStepper = new G4NystromRK4( pE ); if (fVerbose>0)G4cout<<"G4NystromRK4"<0)G4cout<<"G4CashKarpRKF45"<0) G4cout << "G4CashKarpRKF45"; + break; + case 13: + pStepper = new G4NystromRK4( pE ); + if (fVerbose>0) G4cout << "G4NystromRK4"; + break; - // Lower order RK Steppers - ok overall, good for uneven fields - case 2: pStepper = new G4SimpleRunge( pE ); if (fVerbose>0)G4cout<<"G4SimpleRunge"<0)G4cout<<"G4SimpleHeum"<0) G4cout << "G4ImplicitEuler"; + break; - // Helical Steppers - - // Since these are used for long steps, less useful - case 5: pStepper = new G4HelixExplicitEuler( pE ); if (fVerbose>0)G4cout<<"G4HelixExplicitEuler"<0)G4cout<<"G4HelixImplicitEuler"<0)G4cout<<"G4HelixSimpleRunge"<0) G4cout << "G4SimpleRunge"; + break; + case 3: + pStepper = new G4SimpleHeum( pE ); + if (fVerbose>0) G4cout << "G4SimpleHeum"; + break; + case 23: + pStepper = new G4BogackiShampine23( pE ); + if (fVerbose>0) G4cout << "G4BogackiShampine23"; + break; - // Exact Helix - only for cases of i)uniform field - // ii) segmented uniform field (maybe) - case 9: pStepper = new G4ExactHelixStepper( pE ); if (fVerbose>0)G4cout<<"G4ExactHelixStepper"<0) G4cout << "G4BogackiShampine45"; + break; + case 145: + pStepper = new G4TsitourasRK45( pE ); + if (fVerbose>0) G4cout << "G4TsitourasRK45"; + break; + case 745: + pStepper = new G4DormandPrince745( pE ); + if (fVerbose>0) G4cout << "G4DormandPrince745"; + break; - case 10: pStepper = new G4RKG3_Stepper( pE ); if (fVerbose>0)G4cout<<"G4RKG3_Stepper"<0) G4cout << "G4HelixImplicitEuler"; + break; + case 7: + pStepper = new G4HelixSimpleRunge( pE ); + if (fVerbose>0) G4cout << "G4HelixSimpleRunge"; + break; + case 5: + pStepper = new G4HelixExplicitEuler( pE ); + if (fVerbose>0) G4cout << "G4HelixExplicitEuler"; + break; // Since Helix Explicit is used for long steps, + // this is useful only to measure overhead. + // Exact Helix - likely good only for cases of + // i) uniform field (potentially over small distances) + // ii) segmented uniform field (maybe) + case 9: + pStepper = new G4ExactHelixStepper( pE ); + if (fVerbose>0) G4cout << "G4ExactHelixStepper"; + break; + case 10: + pStepper = new G4RKG3_Stepper( pE ); + if (fVerbose>0) G4cout << "G4RKG3_Stepper"; + break; - // Low Order Steppers - not good except for very weak fields - case 11: pStepper = new G4ExplicitEuler( pE ); if (fVerbose>0)G4cout<<"G4ExplicitEuler"<0)G4cout<<"G4ImplicitEuler"<0) G4cout << "G4ExplicitEuler"; + break; + case 12: + pStepper = new G4ImplicitEuler( pE ); + if (fVerbose>0) G4cout << "G4ImplicitEuler"; + break; + + case 0: + case -1: + default: + pStepper = new G4ClassicalRK4( pE ); + if (fVerbose>0) G4cout << "G4ClassicalRK4 (Default)"; + break; } + if(fVerbose>0) + G4cout << " chosen as stepper for small steps in G4HelixMixedStepper." + << G4endl; + return pStepper; } diff --git a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc index 10907271ac..aabf17d32c 100644 --- a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc +++ b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LineCurrentMagField.cc 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4LineCurrentMagField.cc 96751 2016-05-04 09:39:38Z gcosmo $ // ------------------------------------------------------------------- #include "G4LineCurrentMagField.hh" @@ -33,10 +33,12 @@ G4LineCurrentMagField::G4LineCurrentMagField(G4double pFieldConstant) { fFieldConstant = pFieldConstant ; } -G4LineCurrentMagField* G4LineCurrentMagField::Clone() const + +G4Field* G4LineCurrentMagField::Clone() const { - return new G4LineCurrentMagField( this->fFieldConstant ); + return new G4LineCurrentMagField( fFieldConstant ); } + //////////////////////////////////////////////////////////////////////// G4LineCurrentMagField::~G4LineCurrentMagField() diff --git a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc index a44e3a5cb6..7d7ec80be9 100644 --- a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc +++ b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MagHelicalStepper.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4MagHelicalStepper.cc 97598 2016-06-06 07:19:46Z gcosmo $ // // -------------------------------------------------------------------- @@ -202,7 +202,7 @@ G4MagHelicalStepper::Stepper( const G4double yInput[], // correction for Richardson Extrapolation. // G4double correction = 1. / ( (1 << IntegratorOrder()) -1 ); - G4double yTemp[7], yIn[7] ; + G4double yTemp[8], yIn[8] ; G4ThreeVector Bfld_initial, Bfld_midpoint; // Saving yInput because yInput and yOut can be aliases for same array diff --git a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc index 632622cf6c..d00b235f22 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4MagIntegratorStepper.cc 97598 2016-06-06 07:19:46Z gcosmo $ // // -------------------------------------------------------------------- @@ -35,11 +35,15 @@ G4MagIntegratorStepper::G4MagIntegratorStepper(G4EquationOfMotion* Equation, G4int num_integration_vars, - G4int num_state_vars) + G4int num_state_vars, + bool isFSAL + // , G4int methodOrder + ) : fEquation_Rhs(Equation), fNoIntegrationVariables(num_integration_vars), - fNoStateVariables(num_state_vars) - // fNumberOfVariables( std::max(num_var,fNoStateVariables) ) + fNoStateVariables(std::max(num_state_vars,8)), + fIsFSAL(isFSAL) + // , fIntegrationOrder( methodOrder ) { } diff --git a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc index e81c52df77..68c6fcff00 100644 --- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Mag_SpinEqRhs.cc 78728 2014-01-20 12:57:20Z gcosmo $ +// $Id: G4Mag_SpinEqRhs.cc 95822 2016-02-26 08:04:51Z gcosmo $ // // This is the standard right-hand side for equation of motion. // This version of the right-hand side includes the three components @@ -69,7 +69,7 @@ G4Mag_SpinEqRhs::SetChargeMomentumMass(G4ChargeState particleCharge, G4double muB = 0.5*eplus*hbar_Planck/(mass/c_squared); G4double g_BMT; - if ( spin != 0. ) g_BMT = (magMoment/muB)/spin; + if ( spin != 0. ) g_BMT = (std::abs(magMoment)/muB)/spin; else g_BMT = 2.; anomaly = (g_BMT - 2.)/2.; diff --git a/source/geometry/magneticfield/src/G4MagneticField.cc b/source/geometry/magneticfield/src/G4MagneticField.cc index 27b79375f8..8c58fd5029 100644 --- a/source/geometry/magneticfield/src/G4MagneticField.cc +++ b/source/geometry/magneticfield/src/G4MagneticField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MagneticField.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4MagneticField.cc 96678 2016-04-29 16:21:01Z gcosmo $ // // -------------------------------------------------------------------- @@ -47,6 +47,6 @@ G4MagneticField::G4MagneticField(const G4MagneticField &MagField) G4MagneticField& G4MagneticField::operator = (const G4MagneticField &p) { if (&p == this) return *this; - *this = p; + G4ElectroMagneticField::operator=(p); return *this; } diff --git a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc index df030bd2b2..42be794e29 100644 --- a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc +++ b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4QuadrupoleMagField.cc 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4QuadrupoleMagField.cc 96751 2016-05-04 09:39:38Z gcosmo $ // // ------------------------------------------------------------------- @@ -52,12 +52,9 @@ G4QuadrupoleMagField::G4QuadrupoleMagField(G4double pGradient, fpMatrix = pMatrix ; } -G4QuadrupoleMagField* G4QuadrupoleMagField::Clone() const +G4Field* G4QuadrupoleMagField::Clone() const { - //TODO: Can the fpMatrix be shared?? - return new G4QuadrupoleMagField(this->fGradient, - this->fOrigin, - this->fpMatrix); + return new G4QuadrupoleMagField(fGradient, fOrigin, fpMatrix); } ///////////////////////////////////////////////////////////////////////// diff --git a/source/geometry/magneticfield/src/G4RepleteEofM.cc b/source/geometry/magneticfield/src/G4RepleteEofM.cc index ed79757a67..5db62963d9 100644 --- a/source/geometry/magneticfield/src/G4RepleteEofM.cc +++ b/source/geometry/magneticfield/src/G4RepleteEofM.cc @@ -73,7 +73,7 @@ G4RepleteEofM::SetChargeMomentumMass(G4ChargeState particleCharge, // e+ units G4double muB = 0.5*eplus*hbar_Planck/(mass/c_squared); G4double g_BMT; - if ( spin != 0. ) g_BMT = (magMoment/muB)/spin; + if ( spin != 0. ) g_BMT = (std::abs(magMoment)/muB)/spin; else g_BMT = 2.; anomaly = (g_BMT - 2.)/2.; diff --git a/source/geometry/magneticfield/src/G4TsitourasRK45.cc b/source/geometry/magneticfield/src/G4TsitourasRK45.cc new file mode 100644 index 0000000000..b357bf280b --- /dev/null +++ b/source/geometry/magneticfield/src/G4TsitourasRK45.cc @@ -0,0 +1,321 @@ + +// +// Tsitouras - 5(4) RK steppers ( non-FSAL version ) +// +// Implements RK tableau from 'Table 1' of +// C. Tsitouras, “Runge–Kutta pairs of order 5(4) satisfying only +// the first column simplifying assumption,†+// Computers & Mathematics with Applications, +// vol. 62, no. 2, pp. 770–775, 2011. +// +// Adaptation / Geant4 implementation by Somnath Banerjee +// Supervision / code review: John Apostolakis +// +// Sponsored by Google in Google Summer of Code 2015. +// +// First version: 12 June 2015 +// +// This code is made available subject to the Geant4 license, a copy of +// which is available at +// http://geant4.org/license +// +// ------------------------------------------------------------------- + +#include "G4TsitourasRK45.hh" +#include "G4LineSection.hh" + +///////////////////////////////////////////////////////////////////// +// +// Constructor + +G4TsitourasRK45::G4TsitourasRK45(G4EquationOfMotion *EqRhs, + G4int noIntegrationVariables, + G4bool primary) + : G4MagIntegratorStepper(EqRhs, noIntegrationVariables), + fLastStepLength(0.), fAuxStepper(0) +{ + const G4int numberOfVariables = noIntegrationVariables; + G4cout << "G4TsitourasRK45 constructor called." << G4endl; + + ak2 = new G4double[numberOfVariables] ; + ak3 = new G4double[numberOfVariables] ; + ak4 = new G4double[numberOfVariables] ; + ak5 = new G4double[numberOfVariables] ; + ak6 = new G4double[numberOfVariables] ; + ak7 = new G4double[numberOfVariables] ; + ak8 = new G4double[numberOfVariables] ; + + + // Must ensure space extra 'state' variables exists - i.e. yIn[7] + const G4int numStateMax = std::max(GetNumberOfStateVariables(), 8); + const G4int numStateVars = std::max(noIntegrationVariables, + numStateMax ); + // GetNumberOfStateVariables() ); + + yTemp = new G4double[numStateVars] ; + yIn = new G4double[numStateVars] ; + + fLastInitialVector = new G4double[numberOfVariables] ; + fLastFinalVector = new G4double[numberOfVariables] ; + + fLastDyDx = new G4double[numberOfVariables]; + + fMidVector = new G4double[numberOfVariables]; + fMidError = new G4double[numberOfVariables]; + if( primary ) + { + fAuxStepper = new G4TsitourasRK45(EqRhs, numberOfVariables, !primary); + } +} + +///////////////////////////////////////////////////////////////////// +// +// Destructor + +G4TsitourasRK45::~G4TsitourasRK45() +{ + delete[] ak2; + delete[] ak3; + delete[] ak4; + delete[] ak5; + delete[] ak6; + delete[] ak7; + delete[] ak8; + + delete[] yTemp; + delete[] yIn; + + delete[] fLastInitialVector; + delete[] fLastFinalVector; + delete[] fLastDyDx; + delete[] fMidVector; + delete[] fMidError; + + delete fAuxStepper; +} + +//The following coefficients have been obtained from +// Table 1: The Coefficients of the new pair +//---Ref--- +// C. Tsitouras, “Runge–Kutta pairs of order 5(4) satisfying only +// the first column simplifying assumption,†+// Computers & Mathematics with Applications, +// vol. 62, no. 2, pp. 770–775, 2011. +//----------------------------------- +// A corresponding matlab code was also found @ http://users.ntua.gr/tsitoura/new54.m + +// Doing a step +void +G4TsitourasRK45::Stepper( const G4double yInput[], + const G4double dydx[], + G4double Step, + G4double yOut[], + G4double yErr[]) +{ + G4int i; + + const G4double + b21 = 0.161 , + + b31 = -0.00848065549235698854 , + b32 = 0.335480655492356989 , + + b41 = 2.89715305710549343 , + b42 = -6.35944848997507484 , + b43 = 4.36229543286958141 , + + b51 = 5.325864828439257, + b52 = -11.748883564062828, + b53 = 7.49553934288983621 , + b54 = -0.09249506636175525, + + b61 = 5.8614554429464200, + b62 = -12.9209693178471093 , + b63 = 8.1593678985761586 , + b64 = -0.071584973281400997, + b65 = -0.0282690503940683829, + + + b71 = 0.0964607668180652295 , + b72 = 0.01, + b73 = 0.479889650414499575, + b74 = 1.37900857410374189, + b75 = -3.2900695154360807, + b76 = 2.32471052409977398, + +// c1 = 0.001780011052226 , +// c2 = 0.000816434459657 , +// c3 = -0.007880878010262 , +// c4 = 0.144711007173263 , +// c5 = -0.582357165452555 , +// c6 = 0.458082105929187 , +// c7 = 1.0/66.0 ; + + dc1 = 0.0935237485818927066 - b71 , // - 0.001780011052226, + dc2 = 0.00865288314156636761 - b72, // - 0.000816434459657, + dc3 = 0.492893099131431868 - b73 , // + 0.007880878010262, + dc4 = 1.14023541226785810 - b74 , // 0.144711007173263, + dc5 = - 2.3291801924393646 - b75, // + 0.582357165452555, + dc6 = 1.56887504931661552 - b76 , // - 0.458082105929187, + dc7 = 0.025; //- 1.0/66.0 ; + +// dc1 = -3.0/1280.0, +// dc2 = 0.0, +// dc3 = 6561.0/632320.0, +// dc4 = -343.0/20800.0, +// dc5 = 243.0/12800.0, +// dc6 = -1.0/95.0, +// dc7 = 0.0 ; + + const G4int numberOfVariables= this->GetNumberOfVariables(); + + // The number of variables to be integrated over + yOut[7] = yTemp[7] = yIn[7]; + // Saving yInput because yInput and yOut can be aliases for same array + + for(i=0;iGetNumberOfVariables(); + + G4double tau0 = tau; + + for(int i=0;iStepper( fLastInitialVector, fLastDyDx, 0.5 * fLastStepLength, + fMidVector, fMidError ); + + midPoint = G4ThreeVector( fMidVector[0], fMidVector[1], fMidVector[2]); + + // Use stored values of Initial and Endpoint + new Midpoint to evaluate + // distance of Chord + + + if (initialPoint != finalPoint) + { + distLine = G4LineSection::Distline( midPoint, initialPoint, finalPoint ); + distChord = distLine; + } + else + { + distChord = (midPoint-initialPoint).mag(); + } + return distChord; +} diff --git a/source/geometry/magneticfield/src/G4UniformElectricField.cc b/source/geometry/magneticfield/src/G4UniformElectricField.cc index 626d0a0502..902caf28c3 100644 --- a/source/geometry/magneticfield/src/G4UniformElectricField.cc +++ b/source/geometry/magneticfield/src/G4UniformElectricField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UniformElectricField.cc 68055 2013-03-13 14:43:28Z gcosmo $ +// $Id: G4UniformElectricField.cc 96751 2016-05-04 09:39:38Z gcosmo $ // // // @@ -65,9 +65,11 @@ G4UniformElectricField::G4UniformElectricField(G4double vField, fFieldComponents[5] = vField*std::cos(vTheta) ; } -G4UniformElectricField* G4UniformElectricField::Clone() const +G4Field* G4UniformElectricField::Clone() const { - return new G4UniformElectricField( G4ThreeVector(this->fFieldComponents[3],this->fFieldComponents[4],this->fFieldComponents[5]) ); + return new G4UniformElectricField( G4ThreeVector(fFieldComponents[3], + fFieldComponents[4], + fFieldComponents[5]) ); } G4UniformElectricField::~G4UniformElectricField() @@ -78,15 +80,21 @@ G4UniformElectricField::G4UniformElectricField (const G4UniformElectricField &p) : G4ElectricField(p) { for (G4int i=0; i<6; i++) - fFieldComponents[i] = p.fFieldComponents[i]; + { + fFieldComponents[i] = p.fFieldComponents[i]; + } } G4UniformElectricField& G4UniformElectricField::operator = (const G4UniformElectricField &p) { - for (G4int i=0; i<6; i++) - fFieldComponents[i] = p.fFieldComponents[i]; - return *this; + if (&p == this) return *this; + G4ElectricField::operator=(p); + for (G4int i=0; i<6; i++) + { + fFieldComponents[i] = p.fFieldComponents[i]; + } + return *this; } // ------------------------------------------------------------------------ diff --git a/source/geometry/magneticfield/src/G4UniformGravityField.cc b/source/geometry/magneticfield/src/G4UniformGravityField.cc index cd1bf4b5d0..d25e3e11fc 100644 --- a/source/geometry/magneticfield/src/G4UniformGravityField.cc +++ b/source/geometry/magneticfield/src/G4UniformGravityField.cc @@ -58,9 +58,11 @@ G4UniformGravityField::G4UniformGravityField(const G4double gy ) fFieldComponents[2] = 0.0; } -G4UniformGravityField* G4UniformGravityField::Clone() const +G4Field* G4UniformGravityField::Clone() const { - return new G4UniformGravityField( G4ThreeVector(this->fFieldComponents[0],this->fFieldComponents[1],this->fFieldComponents[2]) ); + return new G4UniformGravityField( G4ThreeVector(fFieldComponents[0], + fFieldComponents[1], + fFieldComponents[2]) ); } G4UniformGravityField::~G4UniformGravityField() @@ -71,17 +73,21 @@ G4UniformGravityField::G4UniformGravityField (const G4UniformGravityField &p) : G4Field(p) { for (G4int i=0; i<3; i++) - fFieldComponents[i] = p.fFieldComponents[i]; + { + fFieldComponents[i] = p.fFieldComponents[i]; + } } G4UniformGravityField& G4UniformGravityField::operator = (const G4UniformGravityField &p) { - // G4Field::SetGravityActive( p.IsGravityActive ); - - for (G4int i=0; i<3; i++) - fFieldComponents[i] = p.fFieldComponents[i]; - return *this; + if (&p == this) return *this; + G4Field::operator=(p); + for (G4int i=0; i<3; i++) + { + fFieldComponents[i] = p.fFieldComponents[i]; + } + return *this; } // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4UniformMagField.cc b/source/geometry/magneticfield/src/G4UniformMagField.cc index d8d651271c..0aa8015701 100644 --- a/source/geometry/magneticfield/src/G4UniformMagField.cc +++ b/source/geometry/magneticfield/src/G4UniformMagField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UniformMagField.cc 90643 2015-06-05 13:18:26Z gcosmo $ +// $Id: G4UniformMagField.cc 96751 2016-05-04 09:39:38Z gcosmo $ // // // Class for creation of uniform Magnetic Field @@ -43,11 +43,11 @@ G4UniformMagField::G4UniformMagField(const G4ThreeVector& FieldVector ) fFieldComponents[2] = FieldVector.z(); } -G4UniformMagField* G4UniformMagField::Clone() const +G4Field* G4UniformMagField::Clone() const { - return new G4UniformMagField( G4ThreeVector(this->fFieldComponents[0], - this->fFieldComponents[1], - this->fFieldComponents[2]) ); + return new G4UniformMagField( G4ThreeVector(fFieldComponents[0], + fFieldComponents[1], + fFieldComponents[2]) ); } void @@ -99,14 +99,19 @@ G4UniformMagField::G4UniformMagField (const G4UniformMagField &p) : G4MagneticField(p) { for (G4int i=0; i<3; i++) - fFieldComponents[i] = p.fFieldComponents[i]; + { + fFieldComponents[i] = p.fFieldComponents[i]; + } } G4UniformMagField& G4UniformMagField::operator = (const G4UniformMagField &p) { if (&p == this) return *this; + G4MagneticField::operator=(p); for (G4int i=0; i<3; i++) - fFieldComponents[i] = p.fFieldComponents[i]; + { + fFieldComponents[i] = p.fFieldComponents[i]; + } return *this; } diff --git a/source/geometry/magneticfield/src/G4VFSALIntegrationStepper.cc b/source/geometry/magneticfield/src/G4VFSALIntegrationStepper.cc new file mode 100644 index 0000000000..dff5e36bf2 --- /dev/null +++ b/source/geometry/magneticfield/src/G4VFSALIntegrationStepper.cc @@ -0,0 +1,41 @@ + + +#include "G4VFSALIntegrationStepper.hh" + +// Constructor for stepper abstract base class. +// + +G4VFSALIntegrationStepper::G4VFSALIntegrationStepper(G4EquationOfMotion* Equation, + G4int num_integration_vars, + G4int num_state_vars) + : fEquation_Rhs(Equation), + fNoIntegrationVariables(num_integration_vars), + fNoStateVariables(num_state_vars) + // fNumberOfVariables( std::max(num_var,fNoStateVariables) ) +{ +} + +G4VFSALIntegrationStepper::~G4VFSALIntegrationStepper() +{ +} + +void G4VFSALIntegrationStepper::ComputeRightHandSide( const G4double y[], G4double dydx[] ) +{ + this->RightHandSide( y, dydx ); +// fEquation_Rhs->RightHandSide(y, dydx); +// increasefNORHSCalls(); +} + +void G4VFSALIntegrationStepper::increasefNORHSCalls(){ + // std::cout<<"Yeah, I was called!"; + fNoRHSCalls++; +} + + +void G4VFSALIntegrationStepper::RightHandSide( const double y[], double dydx[] ) +{ + fEquation_Rhs-> RightHandSide(y, dydx); + increasefNORHSCalls(); +} + + diff --git a/source/geometry/management/History b/source/geometry/management/History index 4b39779fb0..c0f18801e0 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,4 +1,4 @@ -$Id: History 93287 2015-10-15 09:50:22Z gcosmo $ +$Id: History 97689 2016-06-07 09:34:01Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,57 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +June 7, 2016 G.Cosmo geommng-V10-02-13 +- Initialise 'emin' and 'emax' in G4BoundingEnvelope::CalculateExtent(). + +June 6, 2016 E.Tcherniaev geommng-V10-02-12 +- Introduced G4BoundingEnvelope helper class to be used for the calculation + of the extent of a solid within the limits defined by the G4VoxelLimits + object. +- Re-implemented CalculateExtent() in G4ReflectedSolid to use new class + G4BoundingEnvelope. + +June 6, 2016 E.Tcherniaev geommng-V10-02-11 +- G4G4ScaleTransform: simplified signatures in TransformDistance() and + in InverseTransformDistance(); make use of accessors. + +June 1, 2016 G.Cosmo geommng-V10-02-10 +- Corrected treatment of polyhedron for G4ReflectedSolid to avoid thread + contention. + +May 18, 2016 G.Cosmo geommng-V10-02-09, 08 +- More simplified code for G4ReflectedSolid; also removed not used cached + inverse transformation. + +May 17, 2016 E.Tcherniaev geommng-V10-02-07 +- Use G4Normal3D with proper inverse transformation for calculation of + normals in G4ReflectedSolid. + +May 13, 2016 G.Cosmo geommng-V10-02-06, 05 +- Properly use 3D transformations in G4ReflectedSolid. Removed unused + affine-transformation data and related methods. + Corrected GetPolyhedron() for multi-threading. +- Updated unit test visualization macros and UI setup. + +May 12, 2016 E.Tcherniaev geommng-V10-02-04 +- Added transformations for normal vectors in G4ScaleTransform. + +April 14, 2016 G.Cosmo geommng-V10-02-03 +- Added flag for partial use of USolids/VecGeom types. + +April 12, 2016 G.Cosmo geommng-V10-02-02 +- Minor cosmetics to G4USolid. + +March 31, 2016 G.Cosmo geommng-V10-02-01 +- Throw exception in call to CreatePolyhedron() for base class G4USolid. + Method is now implemented in the concrete wrappers. + +March 16, 2016 G.Cosmo geommng-V10-02-00 +- Added G4ScaleTransform class for Cartesian scaling transformations. +- G4AffineTransform: added inline keywords and fixed formatting. +- In G4USolid, directly call GetEntityType() from wrapper classes for + CreatePolyhedron(). + October 15, 2015 W.Pokorski geommng-V10-01-07 - Added shadow pointers to shared data structures in G4LogicalVolume and G4VPhysicalVolume for exclusive use by object persistency. diff --git a/source/geometry/management/include/G4AffineTransform.hh b/source/geometry/management/include/G4AffineTransform.hh index de35184fa2..b33888fcee 100644 --- a/source/geometry/management/include/G4AffineTransform.hh +++ b/source/geometry/management/include/G4AffineTransform.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AffineTransform.hh 93152 2015-10-08 11:53:57Z gcosmo $ +// $Id: G4AffineTransform.hh 96126 2016-03-16 21:16:54Z gcosmo $ // // // class G4AffineTransform @@ -71,93 +71,94 @@ class G4AffineTransform public: - G4AffineTransform(); + inline G4AffineTransform(); public: // with description - G4AffineTransform(const G4ThreeVector& tlate); + inline G4AffineTransform(const G4ThreeVector& tlate); // Translation only: under t'form translate point at origin by tlate - G4AffineTransform(const G4RotationMatrix& rot); + inline G4AffineTransform(const G4RotationMatrix& rot); // Rotation only: under t'form rotate by rot - G4AffineTransform(const G4RotationMatrix& rot, - const G4ThreeVector& tlate); + inline G4AffineTransform(const G4RotationMatrix& rot, + const G4ThreeVector& tlate); // Under t'form: rotate by rot then translate by tlate - G4AffineTransform(const G4RotationMatrix* rot, - const G4ThreeVector& tlate); + inline G4AffineTransform(const G4RotationMatrix* rot, + const G4ThreeVector& tlate); // Optionally rotate by *rot then translate by tlate - rot may be null - G4AffineTransform operator * (const G4AffineTransform& tf) const; + inline G4AffineTransform operator * (const G4AffineTransform& tf) const; // Compound Transforms: // tf2=tf2*tf1 equivalent to tf2*=tf1 // Returns compound transformation of self*tf - G4AffineTransform& operator *= (const G4AffineTransform& tf); + inline G4AffineTransform& operator *= (const G4AffineTransform& tf); // (Modifying) Multiplies self by tf; Returns self reference // ie. A=AB for a*=b - G4AffineTransform& Product(const G4AffineTransform& tf1, - const G4AffineTransform& tf2); + inline G4AffineTransform& Product(const G4AffineTransform& tf1, + const G4AffineTransform& tf2); // 'Products' for avoiding (potential) temporaries: // c.Product(a,b) equivalent to c=a*b // c.InverseProduct(a*b,b ) equivalent to c=a // (Modifying) Sets self=tf1*tf2; Returns self reference - G4AffineTransform& InverseProduct(const G4AffineTransform& tf1, - const G4AffineTransform& tf2); + inline G4AffineTransform& InverseProduct(const G4AffineTransform& tf1, + const G4AffineTransform& tf2); // (Modifying) Sets self=tf1*(tf2^-1); Returns self reference - G4ThreeVector TransformPoint(const G4ThreeVector& vec) const; + inline G4ThreeVector TransformPoint(const G4ThreeVector& vec) const; // Transform the specified point: returns vec*rot+tlate - G4ThreeVector TransformAxis(const G4ThreeVector& axis) const; + inline G4ThreeVector TransformAxis(const G4ThreeVector& axis) const; // Transform the specified axis: returns - void ApplyPointTransform(G4ThreeVector& vec) const; + inline void ApplyPointTransform(G4ThreeVector& vec) const; // Transform the specified point (in place): sets vec=vec*rot+tlate - void ApplyAxisTransform(G4ThreeVector& axis) const; + inline void ApplyAxisTransform(G4ThreeVector& axis) const; // Transform the specified axis (in place): sets axis=axis*rot; - G4AffineTransform Inverse() const; + inline G4AffineTransform Inverse() const; // Return inverse of current transform - G4AffineTransform& Invert(); + inline G4AffineTransform& Invert(); // (Modifying) Sets self=inverse of self; Returns self reference - G4AffineTransform& operator +=(const G4ThreeVector& tlate); - G4AffineTransform& operator -=(const G4ThreeVector& tlate); + inline G4AffineTransform& operator +=(const G4ThreeVector& tlate); + inline G4AffineTransform& operator -=(const G4ThreeVector& tlate); // (Modifying) Adjust net translation by given vector; // Returns self reference - G4bool operator == (const G4AffineTransform& tf) const; - G4bool operator != (const G4AffineTransform& tf) const; + inline G4bool operator == (const G4AffineTransform& tf) const; + inline G4bool operator != (const G4AffineTransform& tf) const; - G4double operator [] (const G4int n) const; + inline G4double operator [] (const G4int n) const; - G4bool IsRotated() const; + inline G4bool IsRotated() const; // True if transform includes rotation - G4bool IsTranslated() const; + inline G4bool IsTranslated() const; // True if transform includes translation - G4RotationMatrix NetRotation() const; + inline G4RotationMatrix NetRotation() const; - G4ThreeVector NetTranslation() const; + inline G4ThreeVector NetTranslation() const; - void SetNetRotation(const G4RotationMatrix& rot); + inline void SetNetRotation(const G4RotationMatrix& rot); - void SetNetTranslation(const G4ThreeVector& tlate); + inline void SetNetTranslation(const G4ThreeVector& tlate); private: - G4AffineTransform(const G4double prxx,const G4double prxy,const G4double prxz, - const G4double pryx,const G4double pryy,const G4double pryz, - const G4double przx,const G4double przy,const G4double przz, - const G4double ptx, const G4double pty, const G4double ptz); + inline G4AffineTransform( + const G4double prxx, const G4double prxy, const G4double prxz, + const G4double pryx, const G4double pryy, const G4double pryz, + const G4double przx, const G4double przy, const G4double przz, + const G4double ptx, const G4double pty, const G4double ptz); G4double rxx,rxy,rxz; G4double ryx,ryy,ryz; diff --git a/source/geometry/management/include/G4BoundingEnvelope.hh b/source/geometry/management/include/G4BoundingEnvelope.hh new file mode 100644 index 0000000000..9eaa98007c --- /dev/null +++ b/source/geometry/management/include/G4BoundingEnvelope.hh @@ -0,0 +1,181 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +// +// class G4BoundingEnvelope +// +// Class description: +// +// Helper class to facilitate calculation of the extent of a solid +// within the limits defined by the G4VoxelLimits object. +// +// The function CalculateExtent() of a particular solid can create +// a G4BoundingEnvelope object that bounds the solid and then call +// CalculateExtent() of the G4BoundingEnvelope object. +// +// Calculation of the extent by G4BoundingEnvelope takes into account +// special parameter "delta" - width of an imagery layer that envelops +// the object. This value, multiplied by max scale factor, is added +// to the voxel limits during calculation of the extent. +// +// Example of use. +// In case of G4Box, max possible distance of a point to the border +// of the box, where the point is still considered as belonging to +// the surface of the box, is sqrt(0.5)*kCarTolerance (see corner). +// So, it will be safe to set the extension = kCarTolerance. +// +// Alternative solution can be to define G4BoundingEnvelope wide +// enough to include the surface of the solid and set delta = 0. +// +// The class supports the following bouding envelopes: +// - axis aligned bounding box (AABB); +// - bounding prism given by two convex polygonal bases; +// - bounding pyramid given by apex and convex polygonal base; +// - set of bounding prisms, given by a sequence of convex +// polygonal bases; + +// History: +// +// 2016.05.25 E.Tcherniaev - initial version +// +// -------------------------------------------------------------------- +#ifndef G4BOUNDINGENVELOPE_HH +#define G4BOUNDINGENVELOPE_HH + +#include +#include "geomdefs.hh" + +#include "G4ThreeVector.hh" +#include "G4VoxelLimits.hh" +#include "G4Transform3D.hh" +#include "G4Point3D.hh" +#include "G4Plane3D.hh" + +typedef std::vector G4ThreeVectorList; +typedef std::vector G4Polygon3D; +typedef std::pair G4Segment3D; + +class G4BoundingEnvelope +{ + public: + + G4BoundingEnvelope(const G4ThreeVector& pMin, + const G4ThreeVector& pMax, G4double delta); + // Constructor from an axis aligned bounding box (AABB) + + G4BoundingEnvelope(const G4ThreeVectorList& baseA, + const G4ThreeVectorList& baseB, G4double delta); + // Constructor from a prism given by two bases, the bases + // should have equal number of vertices + + G4BoundingEnvelope(const G4ThreeVector& apex, + const G4ThreeVectorList& base, G4double delta); + // Constructor from a pyramid given by apex and base + + G4BoundingEnvelope(const std::vector& polygons, + G4double delta); + // Constructor from a sequence of convex polygons, the polygons + // should have equal numbers of vertices except first and last + // polygons which may consist of a single vertex + + G4BoundingEnvelope(const G4BoundingEnvelope& rhs); + // Copy constructor + + G4BoundingEnvelope& operator=(const G4BoundingEnvelope& rhs); + // Assignment operator + + ~G4BoundingEnvelope(); + // Destructor + + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimits, + const G4Transform3D& pTransform3D, + G4double& pMin, G4double& pMax) const; + // Calculate extent of the envelope + + private: + + void SetDelta(G4double delta); + // Set the extension + + void SetBoundingBox(const G4ThreeVector& pMin, + const G4ThreeVector& pMax); + // Set AABB (axis aligned bounding box) + + void SetBoundingPrism(const G4ThreeVectorList& baseA, + const G4ThreeVectorList& baseB); + // Set bounding prism + + void SetBoundingPyramid(const G4ThreeVector& apex, + const G4ThreeVectorList& base); + // Set bounding pyramid + + void SetBoundingPolygons(const std::vector& polygons); + // Set bounding sequence of convex polygons + + void CleanPolygons(); + // Free allocated memory + + G4VoxelLimits GetAdjustedVoxelLimits(const G4VoxelLimits& pVoxelLimits, + G4double pDelta) const; + // Extend voxel limits by scaled surface tolerance + + void TransformVertices(const G4Transform3D& pTransform3D, + const G4Polygon3D& polyA, + G4Polygon3D& polyB, + G4Segment3D& pAABB) const; + // Transform vertices of a polygon and update AABB (bounding box) + + void CreateListOfEdges(const G4Polygon3D& baseA, + const G4Polygon3D& baseB, + std::vector& pEdges) const; + // Create list of edges of a prism + + void CreateListOfPlanes(const G4Polygon3D& baseA, + const G4Polygon3D& baseB, + std::vector& pPlanes) const; + // Create list of planes bounding a prism + + G4bool ClipEdgesByVoxelLimits(const std::vector& pEdges, + const G4VoxelLimits& pLimits, + G4Segment3D& pExtent) const; + // Clip set of edges by G4VoxelLimits + + void ClipVoxelLimitsByPlanes(const G4VoxelLimits& pLimits, + const std::vector& pPlanes, + const G4Segment3D& pAABB, + G4Segment3D& pExtent) const; + // Clip G4VoxelLimits by set of planes bounding a convex prism + + private: + + G4double fDelta; // extention + std::vector fBases; // sequence of polygonal bases +}; + +#endif // G4BOUNDINGENVELOPE_HH diff --git a/source/geometry/management/include/G4ReflectedSolid.hh b/source/geometry/management/include/G4ReflectedSolid.hh index 73248a3311..516bdc5f4d 100644 --- a/source/geometry/management/include/G4ReflectedSolid.hh +++ b/source/geometry/management/include/G4ReflectedSolid.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4ReflectedSolid.hh 96930 2016-05-18 08:56:58Z gcosmo $ // // // class G4ReflectedSolid @@ -37,16 +37,13 @@ // History: // // 23.07.01 V.Grichine: created -// 15.02.02 V.Grichine: get/set methods for fPtr(Direct)Transform3D // -------------------------------------------------------------------- #ifndef G4ReflectedSolid_HH #define G4ReflectedSolid_HH #include "G4VSolid.hh" -#include "G4RotationMatrix.hh" #include "G4ThreeVector.hh" #include "G4Transform3D.hh" -#include "G4AffineTransform.hh" class G4ReflectedSolid : public G4VSolid { @@ -54,10 +51,10 @@ class G4ReflectedSolid : public G4VSolid G4ReflectedSolid( const G4String& pName, G4VSolid* pSolid , - const G4Transform3D& transform ) ; + const G4Transform3D& transform ) ; // For use in instantiating a transient instance. - virtual ~G4ReflectedSolid() ; + virtual ~G4ReflectedSolid(); // Virtual destructor. public: // without description @@ -74,7 +71,7 @@ class G4ReflectedSolid : public G4VSolid G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; G4double DistanceToIn( const G4ThreeVector& p, - const G4ThreeVector& v ) const; + const G4ThreeVector& v ) const; G4double DistanceToIn( const G4ThreeVector& p) const; @@ -82,9 +79,9 @@ class G4ReflectedSolid : public G4VSolid const G4ThreeVector& v, const G4bool calcNorm=false, G4bool *validNorm=0, - G4ThreeVector *n=0 ) const; + G4ThreeVector *n=0 ) const; - G4double DistanceToOut( const G4ThreeVector& p ) const ; + G4double DistanceToOut( const G4ThreeVector& p ) const; void ComputeDimensions( G4VPVParameterisation* p, const G4int n, @@ -103,12 +100,11 @@ class G4ReflectedSolid : public G4VSolid // If the Solid is a "G4ReflectedSolid", // return a self pointer else return 0. - G4VSolid* GetConstituentMovedSolid() const; + G4VSolid* GetConstituentMovedSolid() const; - G4Transform3D GetTransform3D() const; - void SetTransform3D(G4Transform3D&); - G4Transform3D GetDirectTransform3D() const; - void SetDirectTransform3D(G4Transform3D&); + G4Transform3D GetTransform3D() const; + G4Transform3D GetDirectTransform3D() const; + void SetDirectTransform3D(G4Transform3D&); // Accessors methods. std::ostream& StreamInfo(std::ostream& os) const; @@ -119,39 +115,18 @@ class G4ReflectedSolid : public G4VSolid G4ReflectedSolid& operator=(const G4ReflectedSolid& rhs); // Copy constructor and assignment operator. - void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; - G4Polyhedron* CreatePolyhedron () const ; + void DescribeYourselfTo ( G4VGraphicsScene& scene ) const; + G4Polyhedron* CreatePolyhedron () const; G4Polyhedron* GetPolyhedron () const; - // For creating graphical representations (ie for visualisation). + // For creating graphical representations (i.e. for visualisation). protected: - G4AffineTransform GetTransform() const; - void SetTransform(G4AffineTransform&); - G4AffineTransform GetDirectTransform() const; - void SetDirectTransform(G4AffineTransform&); - G4RotationMatrix GetFrameRotation() const; - void SetFrameRotation(const G4RotationMatrix&); - G4ThreeVector GetFrameTranslation() const; - void SetFrameTranslation(const G4ThreeVector&); - // Get/Set the rotation/translation, as applied to the - // frame of reference. - - G4RotationMatrix GetObjectRotation() const; - void SetObjectRotation(const G4RotationMatrix&); - G4ThreeVector GetObjectTranslation() const; - void SetObjectTranslation(const G4ThreeVector&); - // Get/Set the rotation/translation, as applied to the object. - - G4VSolid* fPtrSolid ; - G4AffineTransform* fPtrTransform ; - G4AffineTransform* fDirectTransform ; - - G4Transform3D* fPtrTransform3D ; - G4Transform3D* fDirectTransform3D ; + G4VSolid* fPtrSolid; + G4Transform3D* fDirectTransform3D; + mutable G4bool fRebuildPolyhedron; mutable G4Polyhedron* fpPolyhedron; // Caches reflected G4Polyhedron. - -} ; +}; #endif diff --git a/source/geometry/management/include/G4ScaleTransform.hh b/source/geometry/management/include/G4ScaleTransform.hh new file mode 100644 index 0000000000..62cfdf6905 --- /dev/null +++ b/source/geometry/management/include/G4ScaleTransform.hh @@ -0,0 +1,148 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +// +// class G4ScaleTransform +// +// Class description: +// +// A class for geometric scaling transformations. +// Supports efficient arbitrary transformation of points, vectors and +// normals and the computation of compound & inverse transformations. +// +// Interfaces to the CLHEP class G4ThreeVector +// +// For member function descriptions, see comments by declarations. For +// additional clarification, also check the `const' declarations for +// functions & their parameters. +// +// Member data: +// +// G4ThreeVector fScale; // scale transformation +// G4ThreeVector fIScale; // inverse scale (avoid divisions) +// G4double flFactor; // factor for conversion to local frame +// G4double fgFactor; // factor for conversion to global frame + +// History: +// E.Tcherniaev 11 Mar 2016 - added transformations for normal +// G.Cosmo 18 Feb 2016 - initial version +// +// -------------------------------------------------------------------- +#ifndef G4SCALETRANSFORM_HH +#define G4SCALETRANSFORM_HH + +#include "G4Types.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" + +class G4ScaleTransform +{ + + public: + + inline G4ScaleTransform(); + // Default constructor + + inline G4ScaleTransform(G4double sx, G4double sy, G4double sz); + // Constructor with scale parameters on each axis + + inline G4ScaleTransform(const G4ThreeVector& scale); + // Constructor taking a 3-vector + + inline G4ScaleTransform(const G4Scale3D& scale); + // Constructor taking a Scale3D + + inline G4ScaleTransform(const G4ScaleTransform& right); + // Copy constructor + + inline G4ScaleTransform& operator=(const G4ScaleTransform& right); + // Assignment operator + + inline void Init(); + // Update the backed-up inverse scale and special conversion factors + // based on the values of the scale. Needed at initialisation and + // whenever the scale has changed value + + inline const G4ThreeVector& GetScale() const; + inline const G4ThreeVector& GetInvScale() const; + // Get reference to the inverse scale transformation + + inline void SetScale(const G4ThreeVector& scale); + // Set scale based on vector + inline void SetScale(const G4Scale3D& scale); + // Set scale based on a G4Scale3D transformation + inline void SetScale(G4double sx, G4double sy, G4double sz); + // Set scale based on values + + inline void Transform(const G4ThreeVector& global, + G4ThreeVector& local) const; + inline G4ThreeVector Transform(const G4ThreeVector& global) const; + // Transform point from global to local frame + + inline void InverseTransform(const G4ThreeVector& local, + G4ThreeVector& global) const; + inline G4ThreeVector InverseTransform(const G4ThreeVector& local) const; + // Transform point from local to global frame + + inline void TransformNormal(const G4ThreeVector& global, + G4ThreeVector& local) const; + inline G4ThreeVector TransformNormal(const G4ThreeVector& global) const; + // Transform normal from global to local frame + + inline void InverseTransformNormal(const G4ThreeVector& local, + G4ThreeVector& global) const; + inline G4ThreeVector InverseTransformNormal(const G4ThreeVector& local) const; + // Transform normal from local to global frame + + inline G4double TransformDistance(G4double dist, + const G4ThreeVector& dir) const; + // Transform distance along given direction from global to local frame + + inline G4double TransformDistance(G4double safety) const; + // Transform distance from global to local frame (conservative) + + inline G4double InverseTransformDistance(G4double dist, + const G4ThreeVector& dir) const; + // Transform distance along given direction from local to global frame + + inline G4double InverseTransformDistance(G4double safety) const; + // Transform distance from local to global frame (conservative) + + private: + + G4ThreeVector fScale; // scale transformation + G4ThreeVector fIScale; // inverse scale (avoid divisions) + G4double flFactor, fgFactor; // conversion factors to local/global frames + +}; // End class G4ScaleTransform + +std::ostream& operator<<(std::ostream& os, const G4ScaleTransform& scale); + +#include "G4ScaleTransform.icc" + +#endif // G4SCALETRANSFORM_HH diff --git a/source/geometry/management/include/G4ScaleTransform.icc b/source/geometry/management/include/G4ScaleTransform.icc new file mode 100644 index 0000000000..45670c1d00 --- /dev/null +++ b/source/geometry/management/include/G4ScaleTransform.icc @@ -0,0 +1,237 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: $ +// +// +// G4ScaleTransform Inline implementation. +// Based on implementation provided in Root +// +// -------------------------------------------------------------------- + +inline G4ScaleTransform::G4ScaleTransform() + : fScale(1.,1.,1.), fIScale(1.,1.,1.), flFactor(1.), fgFactor(1.) +{ +} + +inline G4ScaleTransform::G4ScaleTransform(G4double sx, G4double sy, G4double sz) + : fScale(sx,sy,sz), fIScale(), flFactor(1.), fgFactor(1.) +{ + Init(); +} + +inline G4ScaleTransform::G4ScaleTransform(const G4ThreeVector& scale) + : fScale(scale), fIScale(), flFactor(1.), fgFactor(1.) +{ + Init(); +} + +inline G4ScaleTransform::G4ScaleTransform(const G4Scale3D& scale) + : fScale(scale.xx(), scale.yy(), scale.zz()), fIScale(), + flFactor(1.), fgFactor(1.) +{ + Init(); +} + +inline G4ScaleTransform::G4ScaleTransform(const G4ScaleTransform& right) + : fScale(right.fScale), fIScale(right.fIScale), + flFactor(right.flFactor), fgFactor(right.fgFactor) +{ +} + +inline G4ScaleTransform& +G4ScaleTransform::operator=(const G4ScaleTransform& right) +{ + fScale = right.fScale; + fIScale = right.fIScale; + flFactor = right.flFactor; + fgFactor = right.fgFactor; + return *this; +} + +inline void G4ScaleTransform::Init() +{ + if (!((fScale.x()>0) && (fScale.y()>0) && (fScale.z()>0))) + { + G4Exception("G4ScaleTransform::Init()", "GeomMgt0001", + FatalException, "Scale transformation must be positive!"); + } + fIScale.set(1./fScale.x(), 1./fScale.y(), 1./fScale.z()); + flFactor = std::min(std::min(fIScale.x(), fIScale.y()), fIScale.z()); + fgFactor = std::min(std::min(fScale.x(), fScale.y()), fScale.z()); +} + +inline const G4ThreeVector& G4ScaleTransform::GetScale() const +{ + return fScale; +} + +inline const G4ThreeVector& G4ScaleTransform::GetInvScale() const +{ + return fIScale; +} + +inline void G4ScaleTransform::SetScale(const G4ThreeVector& scale) +{ + fScale = scale; + Init(); +} + +inline void G4ScaleTransform::SetScale(const G4Scale3D& scale) +{ + fScale.set(scale.xx(), scale.yy(), scale.zz()); + Init(); +} + +inline void G4ScaleTransform::SetScale(G4double sx, G4double sy, G4double sz) +{ + fScale.set(sx,sy,sz); + Init(); +} + +inline void G4ScaleTransform::Transform(const G4ThreeVector& global, + G4ThreeVector& local) const +{ + local.set(global.x()*fIScale.x(), + global.y()*fIScale.y(), + global.z()*fIScale.z()); +} + +inline G4ThreeVector +G4ScaleTransform::Transform(const G4ThreeVector& global) const +{ + G4ThreeVector local(global.x()*fIScale.x(), + global.y()*fIScale.y(), + global.z()*fIScale.z()); + return local; +} + +inline void +G4ScaleTransform::InverseTransform(const G4ThreeVector& local, + G4ThreeVector& global) const +{ + global.set(local.x()*fScale.x(), + local.y()*fScale.y(), + local.z()*fScale.z()); +} + +inline G4ThreeVector +G4ScaleTransform::InverseTransform(const G4ThreeVector& local) const +{ + G4ThreeVector global(local.x()*fScale.x(), + local.y()*fScale.y(), + local.z()*fScale.z()); + return global; +} + +inline void +G4ScaleTransform::TransformNormal(const G4ThreeVector& global, + G4ThreeVector& local) const +{ + local.set(global.x()*fIScale.y()*fIScale.z(), + global.y()*fIScale.z()*fIScale.x(), + global.z()*fIScale.x()*fIScale.y()); +} + +inline G4ThreeVector +G4ScaleTransform::TransformNormal(const G4ThreeVector& global) const +{ + G4ThreeVector local(global.x()*fIScale.y()*fIScale.z(), + global.y()*fIScale.z()*fIScale.x(), + global.z()*fIScale.x()*fIScale.y()); + return local; +} + +inline void +G4ScaleTransform::InverseTransformNormal(const G4ThreeVector& local, + G4ThreeVector& global) const +{ + global.set(local.x()*fScale.y()*fScale.z(), + local.y()*fScale.z()*fScale.x(), + local.z()*fScale.x()*fScale.y()); +} + +inline G4ThreeVector +G4ScaleTransform::InverseTransformNormal(const G4ThreeVector& local) const +{ + G4ThreeVector global(local.x()*fScale.y()*fScale.z(), + local.y()*fScale.z()*fScale.x(), + local.z()*fScale.x()*fScale.y()); + return global; +} + +inline G4double +G4ScaleTransform::TransformDistance(G4double dist, + const G4ThreeVector& dir) const +{ + G4ThreeVector v(dir.x()*fIScale.x(), + dir.y()*fIScale.y(), + dir.z()*fIScale.z()); + G4double scale = std::sqrt(v.dot(v)); + return ( scale*dist ); +} + +inline G4double G4ScaleTransform::TransformDistance(G4double safety) const +{ + return ( safety*flFactor ); +} + +inline G4double +G4ScaleTransform::InverseTransformDistance(G4double dist, + const G4ThreeVector& dir) const +{ + G4ThreeVector v(dir.x()*fScale.x(), + dir.y()*fScale.y(), + dir.z()*fScale.z()); + G4double scale = std::sqrt(v.dot(v)); + return ( scale*dist ); +} + +inline G4double +G4ScaleTransform::InverseTransformDistance(G4double safety) const +{ + return ( safety*fgFactor ); +} + +inline +std::ostream& operator << (std::ostream& os, const G4ScaleTransform& transf) +{ + std::streamsize oldPrec = os.precision(6); + + os << " Scale Transformation: " << G4endl + << " x,y,z: " + << transf.GetScale().x() << " " + << transf.GetScale().y() << " " + << transf.GetScale().z() << G4endl + << " Inverse x,y,z: " + << transf.GetInvScale().x() << " " + << transf.GetInvScale().y() << " " + << transf.GetInvScale().z() << G4endl; + + os.precision(oldPrec); + + return os; +} diff --git a/source/geometry/management/include/G4USolid.hh b/source/geometry/management/include/G4USolid.hh index f52898e413..5a6c0df502 100644 --- a/source/geometry/management/include/G4USolid.hh +++ b/source/geometry/management/include/G4USolid.hh @@ -40,7 +40,7 @@ #include "G4VSolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "VUSolid.hh" @@ -154,7 +154,7 @@ class G4USolid : public G4VSolid virtual G4VisExtent GetExtent() const; // Provide extent (bounding box) as possible hint to the graphics view. - G4Polyhedron* CreatePolyhedron() const; + virtual G4Polyhedron* CreatePolyhedron() const; // Create Polyhedron used for Visualisation virtual G4Polyhedron* GetPolyhedron() const; // Smart access function - creates on request and stores for future diff --git a/source/geometry/management/sources.cmake b/source/geometry/management/sources.cmake index 61c4ea692b..12d0ac8d57 100644 --- a/source/geometry/management/sources.cmake +++ b/source/geometry/management/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 85608 2014-10-31 11:23:30Z gcosmo $ +# $Id: sources.cmake 97686 2016-06-07 09:27:32Z gcosmo $ # #------------------------------------------------------------------------------ @@ -37,6 +37,7 @@ GEANT4_DEFINE_MODULE(NAME G4geometrymng G4AffineTransform.icc G4BlockingList.hh G4BlockingList.icc + G4BoundingEnvelope.hh G4ErrorCylSurfaceTarget.hh G4ErrorPlaneSurfaceTarget.hh G4ErrorSurfaceTarget.hh @@ -55,6 +56,8 @@ GEANT4_DEFINE_MODULE(NAME G4geometrymng G4Region.hh G4Region.icc G4RegionStore.hh + G4ScaleTransform.hh + G4ScaleTransform.icc G4SmartVoxelHeader.hh G4SmartVoxelHeader.icc G4SmartVoxelNode.hh @@ -85,6 +88,7 @@ GEANT4_DEFINE_MODULE(NAME G4geometrymng voxeldefs.hh SOURCES G4BlockingList.cc + G4BoundingEnvelope.cc G4ErrorCylSurfaceTarget.cc G4ErrorPlaneSurfaceTarget.cc G4ErrorSurfaceTarget.cc diff --git a/source/geometry/management/src/G4BoundingEnvelope.cc b/source/geometry/management/src/G4BoundingEnvelope.cc new file mode 100644 index 0000000000..03317e1e79 --- /dev/null +++ b/source/geometry/management/src/G4BoundingEnvelope.cc @@ -0,0 +1,733 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +// +// Implementation of G4BoundingEnvelope +// +// Author: evgueni.tcherniaev@cern.ch +// +// 2016.05.25 E.Tcherniaev - initial version +// +// -------------------------------------------------------------------- + +#include +#include "globals.hh" + +#include "G4BoundingEnvelope.hh" +#include "G4GeometryTolerance.hh" + +/////////////////////////////////////////////////////////////////////// +// +// Constructor from an axis aligned bounding box +// +G4BoundingEnvelope::G4BoundingEnvelope(const G4ThreeVector& pMin, + const G4ThreeVector& pMax, + G4double delta) +{ + SetDelta(delta); + SetBoundingBox(pMin,pMax); +} + +/////////////////////////////////////////////////////////////////////// +// +// Constructor from a prism +// +G4BoundingEnvelope::G4BoundingEnvelope(const G4ThreeVectorList& baseA, + const G4ThreeVectorList& baseB, + G4double delta) +{ + SetDelta(delta); + SetBoundingPrism(baseA,baseB); +} + +/////////////////////////////////////////////////////////////////////// +// +// Constructor from a pyramid +// +G4BoundingEnvelope::G4BoundingEnvelope(const G4ThreeVector& apex, + const G4ThreeVectorList& base, + G4double delta) +{ + SetDelta(delta); + SetBoundingPyramid(apex,base); +} + +/////////////////////////////////////////////////////////////////////// +// +// Constructor from a sequence of polygons +// +G4BoundingEnvelope::G4BoundingEnvelope( + const std::vector& polygons,G4double delta) +{ + SetDelta(delta); + SetBoundingPolygons(polygons); +} + +/////////////////////////////////////////////////////////////////////// +// +// Copy constructor +// +G4BoundingEnvelope::G4BoundingEnvelope(const G4BoundingEnvelope& rhs) + : fDelta(rhs.fDelta) +{ + // Copy data + G4int nb = rhs.fBases.size(); + fBases.resize(nb); + for (G4int i=0; i= pMax.x() || pMin.y() >= pMax.y() || pMin.z() >= pMax.z()) + { + std::ostringstream message; + message << "Badly defined bounding box (min >= max)!" + << "\npMin = " << pMin + << "\npMax = " << pMax; + G4Exception("G4BoundingEnvelope::SetBoundingBox()", + "GeomMgt0001", FatalException, message); + } + + CleanPolygons(); + fBases.resize(2); + + // Set 1st base + fBases[0] = new G4Polygon3D(4); + (*fBases[0])[0] = G4Point3D(pMin.x(),pMin.y(),pMin.z()); + (*fBases[0])[1] = G4Point3D(pMax.x(),pMin.y(),pMin.z()); + (*fBases[0])[2] = G4Point3D(pMax.x(),pMax.y(),pMin.z()); + (*fBases[0])[3] = G4Point3D(pMin.x(),pMax.y(),pMin.z()); + + // Set 2nd base + fBases[1] = new G4Polygon3D(4); + (*fBases[1])[0] = G4Point3D(pMin.x(),pMin.y(),pMax.z()); + (*fBases[1])[1] = G4Point3D(pMax.x(),pMin.y(),pMax.z()); + (*fBases[1])[2] = G4Point3D(pMax.x(),pMax.y(),pMax.z()); + (*fBases[1])[3] = G4Point3D(pMin.x(),pMax.y(),pMax.z()); +} + +/////////////////////////////////////////////////////////////////////// +// +// Set bounding prism +// +void +G4BoundingEnvelope::SetBoundingPrism(const G4ThreeVectorList& baseA, + const G4ThreeVectorList& baseB) +{ + G4int na = baseA.size(); + G4int nb = baseB.size(); + if (na < 3 || nb < 3 || na != nb) + { + std::ostringstream message; + message << "Badly defined bases of the bounding prism!" + << "\nNumber of vertices in 1st base: " << na + << "\nNumber of vertices in 2nd base: " << nb; + G4Exception("G4BoundingEnvelope::SetBoundingPrism()", + "GeomMgt0001", FatalException, message); + } + + CleanPolygons(); + fBases.resize(2); + + // Set 1st base + fBases[0] = new G4Polygon3D(na); + for (G4int i=0; i& polygons) +{ + // Check parameters + G4int nbases = polygons.size(); + if (nbases < 2) + { + std::ostringstream message; + message << "Wrong number of polygons in the sequence: " << nbases + << "\nShould be at least two!"; + G4Exception("G4BoundingEnvelope::SetBoundingPolygons()", + "GeomMgt0001", FatalException, message); + return; + } + + G4int nsize = std::max(polygons[0]->size(),polygons[1]->size()); + if (nsize < 3) { + std::ostringstream message; + message << "Badly constructed polygons!" + << "\nNumber of polygons: " << nbases + << "\nPolygon #0 size: " << polygons[0]->size() + << "\nPolygon #1 size: " << polygons[1]->size() + << "\n..."; + G4Exception("G4BoundingEnvelope::SetBoundingPolygons()", + "GeomMgt0001", FatalException, message); + return; + } + + for (G4int k=0; ksize(); + if (np == nsize) continue; + if (np == 1 && k==0) continue; + if (np == 1 && k==nbases) continue; + std::ostringstream message; + message << "Badly constructed polygons!" + << "\nNumber of polygons: " << nbases + << "\nPolygon #" << k << " size: " << np + << "\nexpected size: " << nsize; + G4Exception("G4BoundingEnvelope::SetBoundingPolygons()", + "GeomMgt0001", FatalException, message); + return; + } + + // Copy polygons + CleanPolygons(); + fBases.resize(nbases); + for (G4int k=0; ksize(); + fBases[k] = new G4Polygon3D(np); + for (G4int i=0; i 1.) ? fDelta*scale : fDelta; + G4VoxelLimits limits = GetAdjustedVoxelLimits(pVoxelLimits, delta); + + // Main loop along the set of prisms + // + G4Segment3D extent(G4Point3D( kInfinity, kInfinity, kInfinity), + G4Point3D(-kInfinity,-kInfinity,-kInfinity)); + + G4int nbases = fBases.size(); + for (G4int k=0; k limits.GetMaxXExtent()) continue; + if (prismAABB.first.y() > limits.GetMaxYExtent()) continue; + if (prismAABB.first.z() > limits.GetMaxZExtent()) continue; + if (prismAABB.second.x() < limits.GetMinXExtent()) continue; + if (prismAABB.second.y() < limits.GetMinYExtent()) continue; + if (prismAABB.second.z() < limits.GetMinZExtent()) continue; + + // Clip edges of the prism by adjusted G4VoxelLimits box + std::vector vecEdges; + CreateListOfEdges(baseA, baseB, vecEdges); + if (ClipEdgesByVoxelLimits(vecEdges, limits, extent)) continue; + + // Some edges of the prism are completely outside of the voxel + // limits, clip edges of adjusted G4VoxelLimits box by the prism + std::vector vecPlanes; + CreateListOfPlanes(baseA, baseB, vecPlanes); + ClipVoxelLimitsByPlanes(limits, vecPlanes, prismAABB, extent); + } + + // Final adjustment of the extent + // + G4double emin=kInfinity, emax=kInfinity; + if (pAxis == kXAxis) { emin = extent.first.x(); emax = extent.second.x(); } + if (pAxis == kYAxis) { emin = extent.first.y(); emax = extent.second.y(); } + if (pAxis == kZAxis) { emin = extent.first.z(); emax = extent.second.z(); } + + G4bool exist = false; + if (emin <= emax) { + exist = true; + // Add the extension to the endpoints + if (emin > limits.GetMinExtent(pAxis)) emin -= delta; + if (emax < limits.GetMaxExtent(pAxis)) emax += delta; + + G4double kCarTolerance = + G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); + + // Clip by original voxel limits, if required + if (emin <= pVoxelLimits.GetMinExtent(pAxis)) { + pMin = pVoxelLimits.GetMinExtent(pAxis) - kCarTolerance; + } else { + pMin = emin; + } + if (emax >= pVoxelLimits.GetMaxExtent(pAxis)) { + pMax = pVoxelLimits.GetMaxExtent(pAxis) + kCarTolerance; + } else { + pMax = emax; + } + exist = true; + } else { + exist = false; + pMin = kInfinity; + pMax = -kInfinity; + } + + return exist; +} + +/////////////////////////////////////////////////////////////////////// +// +// Create adjusted voxel limits +// +G4VoxelLimits +G4BoundingEnvelope::GetAdjustedVoxelLimits(const G4VoxelLimits& pVoxelLimits, + G4double pDelta) const +{ + EAxis axis[] = { kXAxis,kYAxis,kZAxis }; + G4VoxelLimits limits; // default is unlimited + for (G4int i=0; i<3; i++) { + if (pVoxelLimits.IsLimited(axis[i])) { + G4double emin = pVoxelLimits.GetMinExtent(axis[i]) - pDelta; + G4double emax = pVoxelLimits.GetMaxExtent(axis[i]) + pDelta; + limits.AddLimit(axis[i], emin, emax); + } + } + return limits; +} + +/////////////////////////////////////////////////////////////////////// +// +// Transform vertices of a polygon and update the bounding box +// +void +G4BoundingEnvelope::TransformVertices(const G4Transform3D& pTransform3D, + const G4Polygon3D& polyA, + G4Polygon3D& polyB, + G4Segment3D& pAABB) const +{ + G4double xmin = pAABB.first.x(); + G4double ymin = pAABB.first.y(); + G4double zmin = pAABB.first.z(); + G4double xmax = pAABB.second.x(); + G4double ymax = pAABB.second.y(); + G4double zmax = pAABB.second.z(); + + G4int np = polyA.size(); + polyB.resize(np); + for (G4int i=0; i& pEdges) const +{ + G4int na = baseA.size(); + G4int nb = baseB.size(); + pEdges.resize(0); + if (na == nb) { + G4int k = na - 1; + for (G4int i=0; i& pPlanes) const +{ + // Find centers of the bases and internal point of the prism + // + G4int na = baseA.size(); + G4int nb = baseB.size(); + G4Point3D pa(0.,0.,0.), pb(0.,0.,0.), p0; + for (G4int i=0; i 0) { + pPlanes[i] = G4Plane3D(-pPlanes[i].a(),-pPlanes[i].b(), + -pPlanes[i].c(),-pPlanes[i].d()); + } + } +} + +/////////////////////////////////////////////////////////////////////// +// +// Clip edges of a prism by G4VoxelLimits box +// +G4bool +G4BoundingEnvelope::ClipEdgesByVoxelLimits(const std::vector& pEdges, + const G4VoxelLimits& pBox, + G4Segment3D& pExtent) const +{ + G4bool done = true; + G4Point3D emin = pExtent.first; + G4Point3D emax = pExtent.second; + + G4int nedges = pEdges.size(); + for (G4int k=0; k 0.0) { + if (d2 > 0.0) { done = false; continue; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); // move p1 + } else { + if (d2 > 0.0) { p2 = (p1*d2-p2*d1)/(d2-d1); } // move p2 + } + + // Clip current edge by X max + d1 = p1.x() - pBox.GetMaxXExtent(); + d2 = p2.x() - pBox.GetMaxXExtent(); + if (d1 > 0.) { + if (d2 > 0.) { done = false; continue; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); + } else { + if (d2 > 0.) { p2 = (p1*d2-p2*d1)/(d2-d1); } + } + + // Clip current edge by Y min + d1 = pBox.GetMinYExtent() - p1.y(); + d2 = pBox.GetMinYExtent() - p2.y(); + if (d1 > 0.) { + if (d2 > 0.) { done = false; continue; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); + } else { + if (d2 > 0.) { p2 = (p1*d2-p2*d1)/(d2-d1); } + } + + // Clip current edge by Y max + d1 = p1.y() - pBox.GetMaxYExtent(); + d2 = p2.y() - pBox.GetMaxYExtent(); + if (d1 > 0.) { + if (d2 > 0.) { done = false; continue; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); + } else { + if (d2 > 0.) { p2 = (p1*d2-p2*d1)/(d2-d1); } + } + + // Clip current edge by Z min + d1 = pBox.GetMinZExtent() - p1.z(); + d2 = pBox.GetMinZExtent() - p2.z(); + if (d1 > 0.) { + if (d2 > 0.) { done = false; continue; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); + } else { + if (d2 > 0.) { p2 = (p1*d2-p2*d1)/(d2-d1); } + } + + // Clip current edge by Z max + d1 = p1.z() - pBox.GetMaxZExtent(); + d2 = p2.z() - pBox.GetMaxZExtent(); + if (d1 > 0.) { + if (d2 > 0.) { done = false; continue; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); + } else { + if (d2 > 0.) { p2 = (p1*d2-p2*d1)/(d2-d1); } + } + + // Adjust current extent + emin.setX(std::min(std::min(p1.x(),p2.x()),emin.x())); + emin.setY(std::min(std::min(p1.y(),p2.y()),emin.y())); + emin.setZ(std::min(std::min(p1.z(),p2.z()),emin.z())); + + emax.setX(std::max(std::max(p1.x(),p2.x()),emax.x())); + emax.setY(std::max(std::max(p1.y(),p2.y()),emax.y())); + emax.setZ(std::max(std::max(p1.z(),p2.z()),emax.z())); + } + + // Return true if all edges (at least partially) are inside + // the voxel limits, otherwise return false + pExtent.first = emin; + pExtent.second = emax; + return done; +} + +/////////////////////////////////////////////////////////////////////// +// +// Clip G4VoxelLimits by set of planes bounding a convex prism +// +void +G4BoundingEnvelope::ClipVoxelLimitsByPlanes(const G4VoxelLimits& pBox, + const std::vector& pPlanes, + const G4Segment3D& pAABB, + G4Segment3D& pExtent) const +{ + G4Point3D emin = pExtent.first; + G4Point3D emax = pExtent.second; + + // Create 12 edges of the voxel limits box, reduce them where + // appropriate to avoid calculations with big numbers (kInfinity) + // + G4double xmin = pBox.GetMinXExtent(), xmax = pBox.GetMaxXExtent(); + G4double ymin = pBox.GetMinYExtent(), ymax = pBox.GetMaxYExtent(); + G4double zmin = pBox.GetMinZExtent(), zmax = pBox.GetMaxZExtent(); + if( xmin < 2.*pAABB.first.x() && xmax > 2.*pAABB.second.x()) + { xmin = 2.*pAABB.first.x(); xmax = 2.*pAABB.second.x(); } + if( ymin < 2.*pAABB.first.y() && ymax > 2.*pAABB.second.y()) + { ymin = 2.*pAABB.first.y(); ymax = 2.*pAABB.second.y(); } + if( zmin < 2.*pAABB.first.z() && zmax > 2.*pAABB.second.z()) + { zmin = 2.*pAABB.first.z(); zmax = 2.*pAABB.second.z(); } + + std::vector edges(12); + edges[0].first.set(xmin,ymin,zmin); edges[0].second.set(xmax,ymin,zmin); + edges[1].first = edges[0].second; edges[1].second.set(xmax,ymax,zmin); + edges[2].first = edges[1].second; edges[2].second.set(xmin,ymax,zmin); + edges[3].first = edges[2].second; edges[3].second = edges[0].first; + + edges[4].first.set(xmin,ymin,zmax); edges[4].second.set(xmax,ymin,zmax); + edges[5].first = edges[4].second; edges[5].second.set(xmax,ymax,zmax); + edges[6].first = edges[5].second; edges[6].second.set(xmin,ymax,zmax); + edges[7].first = edges[6].second; edges[7].second = edges[4].first; + + edges[ 8].first = edges[0].first; edges[ 8].second = edges[4].first; + edges[ 9].first = edges[1].first; edges[ 9].second = edges[5].first; + edges[10].first = edges[2].first; edges[10].second = edges[6].first; + edges[11].first = edges[3].first; edges[11].second = edges[7].first; + + // Clip the edges by the planes + // + G4int nedges = edges.size(); + G4int nplanes = pPlanes.size(); + for (G4int k=0; k 0.0) { + if (d2 > 0.0) { exist = false; break; } // go to next edge + p1 = (p2*d1-p1*d2)/(d1-d2); // move p1 + } else { + if (d2 > 0.0) { p2 = (p1*d2-p2*d1)/(d2-d1); } // move p2 + } + } + // Adjust the extent + if (exist) { + emin.setX(std::min(std::min(p1.x(),p2.x()),emin.x())); + emin.setY(std::min(std::min(p1.y(),p2.y()),emin.y())); + emin.setZ(std::min(std::min(p1.z(),p2.z()),emin.z())); + + emax.setX(std::max(std::max(p1.x(),p2.x()),emax.x())); + emax.setY(std::max(std::max(p1.y(),p2.y()),emax.y())); + emax.setZ(std::max(std::max(p1.z(),p2.z()),emax.z())); + } + } + + // Copy the extent back + pExtent.first = emin; + pExtent.second = emax; +} diff --git a/source/geometry/management/src/G4ReflectedSolid.cc b/source/geometry/management/src/G4ReflectedSolid.cc index 6efd9ac589..253a676e2c 100644 --- a/source/geometry/management/src/G4ReflectedSolid.cc +++ b/source/geometry/management/src/G4ReflectedSolid.cc @@ -24,23 +24,24 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.cc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4ReflectedSolid.cc 97686 2016-06-07 09:27:32Z gcosmo $ // // -// Implementation for G4ReflectedSolid class for boolean -// operations between other solids +// Implementation for G4ReflectedSolid class // // Author: Vladimir Grichine, 23.07.01 (Vladimir.Grichine@cern.ch) // // -------------------------------------------------------------------- #include "G4ReflectedSolid.hh" +#include "G4BoundingEnvelope.hh" #include #include "G4Point3D.hh" -#include "G4Normal3D.hh" +#include "G4Vector3D.hh" +#include "G4AffineTransform.hh" #include "G4VoxelLimits.hh" #include "G4VPVParameterisation.hh" @@ -48,27 +49,17 @@ #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" - ///////////////////////////////////////////////////////////////// // // Constructor using HepTransform3D, in fact HepReflect3D G4ReflectedSolid::G4ReflectedSolid( const G4String& pName, G4VSolid* pSolid , - const G4Transform3D& transform ) - : G4VSolid(pName), fpPolyhedron(0) + const G4Transform3D& transform ) + : G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0) { - fPtrSolid = pSolid ; - G4RotationMatrix rotMatrix ; - - fDirectTransform = - new G4AffineTransform(rotMatrix, transform.getTranslation()) ; - fPtrTransform = - new G4AffineTransform(rotMatrix, transform.getTranslation()) ; - fPtrTransform->Invert() ; - - fDirectTransform3D = new G4Transform3D(transform) ; - fPtrTransform3D = new G4Transform3D(transform.inverse()) ; + fPtrSolid = pSolid; + fDirectTransform3D = new G4Transform3D(transform); } /////////////////////////////////////////////////////////////////// @@ -76,28 +67,17 @@ G4ReflectedSolid::G4ReflectedSolid( const G4String& pName, G4ReflectedSolid::~G4ReflectedSolid() { - if(fPtrTransform) - { - delete fPtrTransform; fPtrTransform=0; - delete fDirectTransform; fDirectTransform=0; - } - if(fPtrTransform3D) - { - delete fPtrTransform3D; fPtrTransform3D=0; - delete fDirectTransform3D; fDirectTransform3D=0; - } - delete fpPolyhedron; + delete fDirectTransform3D; fDirectTransform3D=0; + delete fpPolyhedron; fpPolyhedron = 0; } /////////////////////////////////////////////////////////////////// // G4ReflectedSolid::G4ReflectedSolid(const G4ReflectedSolid& rhs) - : G4VSolid(rhs), fPtrSolid(rhs.fPtrSolid), fpPolyhedron(0) + : G4VSolid(rhs), fPtrSolid(rhs.fPtrSolid), + fRebuildPolyhedron(false), fpPolyhedron(0) { - fPtrTransform = new G4AffineTransform(*rhs.fPtrTransform); - fDirectTransform = new G4AffineTransform(*rhs.fDirectTransform); - fPtrTransform3D = new G4Transform3D(*rhs.fPtrTransform3D); fDirectTransform3D = new G4Transform3D(*rhs.fDirectTransform3D); } @@ -116,15 +96,11 @@ G4ReflectedSolid& G4ReflectedSolid::operator=(const G4ReflectedSolid& rhs) // Copy data // - fPtrSolid= rhs.fPtrSolid; fpPolyhedron= 0; - delete fPtrTransform; - fPtrTransform= new G4AffineTransform(*rhs.fPtrTransform); - delete fDirectTransform; - fDirectTransform= new G4AffineTransform(*rhs.fDirectTransform); - delete fPtrTransform3D; - fPtrTransform3D= new G4Transform3D(*rhs.fPtrTransform3D); + fPtrSolid= rhs.fPtrSolid; delete fDirectTransform3D; fDirectTransform3D= new G4Transform3D(*rhs.fDirectTransform3D); + fRebuildPolyhedron = false; + delete fpPolyhedron; fpPolyhedron= 0; return *this; } @@ -154,48 +130,11 @@ G4VSolid* G4ReflectedSolid::GetConstituentMovedSolid() const ///////////////////////////////////////////////////////////////////////////// -G4AffineTransform G4ReflectedSolid::GetTransform() const -{ - G4AffineTransform aTransform = *fPtrTransform; - return aTransform; -} - -void G4ReflectedSolid::SetTransform(G4AffineTransform& transform) -{ - fPtrTransform = &transform ; - fpPolyhedron = 0; -} - -////////////////////////////////////////////////////////////////////////////// - -G4AffineTransform G4ReflectedSolid::GetDirectTransform() const -{ - G4AffineTransform aTransform= *fDirectTransform; - return aTransform; -} - -void G4ReflectedSolid::SetDirectTransform(G4AffineTransform& transform) -{ - fDirectTransform = &transform ; - fpPolyhedron = 0; -} - -///////////////////////////////////////////////////////////////////////////// - G4Transform3D G4ReflectedSolid::GetTransform3D() const { - G4Transform3D aTransform = *fPtrTransform3D; - return aTransform; + return fDirectTransform3D->inverse(); } -void G4ReflectedSolid::SetTransform3D(G4Transform3D& transform) -{ - fPtrTransform3D = &transform ; - fpPolyhedron = 0; -} - -////////////////////////////////////////////////////////////////////////////// - G4Transform3D G4ReflectedSolid::GetDirectTransform3D() const { G4Transform3D aTransform= *fDirectTransform3D; @@ -204,58 +143,8 @@ G4Transform3D G4ReflectedSolid::GetDirectTransform3D() const void G4ReflectedSolid::SetDirectTransform3D(G4Transform3D& transform) { - fDirectTransform3D = &transform ; - fpPolyhedron = 0; -} - -///////////////////////////////////////////////////////////////////////////// - -G4RotationMatrix G4ReflectedSolid::GetFrameRotation() const -{ - G4RotationMatrix InvRotation= fDirectTransform->NetRotation(); - return InvRotation; -} - -void G4ReflectedSolid::SetFrameRotation(const G4RotationMatrix& matrix) -{ - fDirectTransform->SetNetRotation(matrix); -} - -///////////////////////////////////////////////////////////////////////////// - -G4ThreeVector G4ReflectedSolid::GetFrameTranslation() const -{ - return fPtrTransform->NetTranslation(); -} - -void G4ReflectedSolid::SetFrameTranslation(const G4ThreeVector& vector) -{ - fPtrTransform->SetNetTranslation(vector); -} - -/////////////////////////////////////////////////////////////// - -G4RotationMatrix G4ReflectedSolid::GetObjectRotation() const -{ - G4RotationMatrix Rotation= fPtrTransform->NetRotation(); - return Rotation; -} - -void G4ReflectedSolid::SetObjectRotation(const G4RotationMatrix& matrix) -{ - fPtrTransform->SetNetRotation(matrix); -} - -/////////////////////////////////////////////////////////////////////// - -G4ThreeVector G4ReflectedSolid::GetObjectTranslation() const -{ - return fDirectTransform->NetTranslation(); -} - -void G4ReflectedSolid::SetObjectTranslation(const G4ThreeVector& vector) -{ - fDirectTransform->SetNetTranslation(vector); + fDirectTransform3D = &transform; + fRebuildPolyhedron = true; } /////////////////////////////////////////////////////////////// @@ -267,171 +156,36 @@ G4ReflectedSolid::CalculateExtent( const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, G4double& pMin, - G4double& pMax ) const + G4double& pMax ) const { - G4VoxelLimits unLimit; G4AffineTransform unTransform; - G4double x1 = -kInfinity, x2 = kInfinity, - y1 = -kInfinity, y2 = kInfinity, - z1 = -kInfinity, z2 = kInfinity; + // Find bounding box + G4double x1,x2,y1,y2,z1,z2; + fPtrSolid->CalculateExtent(kXAxis,unLimit,unTransform,x1,x2); + fPtrSolid->CalculateExtent(kYAxis,unLimit,unTransform,y1,y2); + fPtrSolid->CalculateExtent(kZAxis,unLimit,unTransform,z1,z2); + G4BoundingEnvelope bbox(G4Point3D(x1,y1,z1), + G4Point3D(x2,y2,z2),kCarTolerance); - G4bool existsAfterClip = false ; - existsAfterClip = - fPtrSolid->CalculateExtent(kXAxis,unLimit,unTransform,x1,x2); - existsAfterClip = - fPtrSolid->CalculateExtent(kYAxis,unLimit,unTransform,y1,y2); - existsAfterClip = - fPtrSolid->CalculateExtent(kZAxis,unLimit,unTransform,z1,z2); + // Set combined transformation + G4Transform3D transform3D = + G4Transform3D(pTransform.NetRotation().inverse(), + pTransform.NetTranslation())*(*fDirectTransform3D); - existsAfterClip = false; - pMin = +kInfinity ; - pMax = -kInfinity ; - - G4Transform3D pTransform3D = G4Transform3D(pTransform.NetRotation().inverse(), - pTransform.NetTranslation()); - - G4Transform3D transform3D = pTransform3D*(*fDirectTransform3D); - - G4Point3D tmpPoint; - - // Calculate rotated vertex coordinates - - G4ThreeVectorList* vertices = new G4ThreeVectorList(); - - if (vertices) - { - vertices->reserve(8); - - G4ThreeVector vertex0(x1,y1,z1) ; - tmpPoint = transform3D*G4Point3D(vertex0); - vertex0 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex0); - - G4ThreeVector vertex1(x2,y1,z1) ; - tmpPoint = transform3D*G4Point3D(vertex1); - vertex1 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex1); - - G4ThreeVector vertex2(x2,y2,z1) ; - tmpPoint = transform3D*G4Point3D(vertex2); - vertex2 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex2); - - G4ThreeVector vertex3(x1,y2,z1) ; - tmpPoint = transform3D*G4Point3D(vertex3); - vertex3 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex3); - - G4ThreeVector vertex4(x1,y1,z2) ; - tmpPoint = transform3D*G4Point3D(vertex4); - vertex4 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex4); - - G4ThreeVector vertex5(x2,y1,z2) ; - tmpPoint = transform3D*G4Point3D(vertex5); - vertex5 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex5); - - G4ThreeVector vertex6(x2,y2,z2) ; - tmpPoint = transform3D*G4Point3D(vertex6); - vertex6 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex6); - - G4ThreeVector vertex7(x1,y2,z2) ; - tmpPoint = transform3D*G4Point3D(vertex7); - vertex7 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); - vertices->push_back(vertex7); - } - else - { - DumpInfo(); - G4Exception("G4ReflectedSolid::CalculateExtent()", - "GeomMgt0003", FatalException, - "Error in allocation of vertices. Out of memory !"); - } - - ClipCrossSection(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; - ClipCrossSection(vertices,4,pVoxelLimit,pAxis,pMin,pMax) ; - ClipBetweenSections(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; - - if (pVoxelLimit.IsLimited(pAxis) == false) - { - if ( pMin != kInfinity || pMax != -kInfinity ) - { - existsAfterClip = true ; - - // Add 2*tolerance to avoid precision troubles - - pMin -= kCarTolerance; - pMax += kCarTolerance; - } - } - else - { - G4ThreeVector clipCentre( - ( pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, - ( pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, - ( pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); - - if ( pMin != kInfinity || pMax != -kInfinity ) - { - existsAfterClip = true ; - - - // Check to see if endpoints are in the solid - - clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); - - if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) - { - pMin = pVoxelLimit.GetMinExtent(pAxis); - } - else - { - pMin -= kCarTolerance; - } - clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); - - if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) - { - pMax = pVoxelLimit.GetMaxExtent(pAxis); - } - else - { - pMax += kCarTolerance; - } - } - // Check for case where completely enveloping clipping volume - // If point inside then we are confident that the solid completely - // envelopes the clipping volume. Hence set min/max extents according - // to clipping volume extents along the specified axis. - - else if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) - { - existsAfterClip = true ; - pMin = pVoxelLimit.GetMinExtent(pAxis) ; - pMax = pVoxelLimit.GetMaxExtent(pAxis) ; - } - } - delete vertices; - return existsAfterClip; + // Find extent + return bbox.CalculateExtent(pAxis,pVoxelLimit,transform3D,pMin,pMax); } -///////////////////////////////////////////////////// +////////////////////////////////////////////////////////////// // // -EInside G4ReflectedSolid::Inside(const G4ThreeVector& p) const +EInside G4ReflectedSolid::Inside(const G4ThreeVector& p ) const { - - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - // G4Point3D newPoint = (*fPtrTransform3D)*G4Point3D(p) ; - - return fPtrSolid->Inside(G4ThreeVector(newPoint.x(), - newPoint.y(), - newPoint.z())) ; + G4ThreeVector newPoint = (*fDirectTransform3D)*G4Point3D(p); + return fPtrSolid->Inside(newPoint); } ////////////////////////////////////////////////////////////// @@ -441,15 +195,9 @@ EInside G4ReflectedSolid::Inside(const G4ThreeVector& p) const G4ThreeVector G4ReflectedSolid::SurfaceNormal( const G4ThreeVector& p ) const { - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - G4ThreeVector normal = - fPtrSolid->SurfaceNormal(G4ThreeVector(newPoint.x(), - newPoint.y(), - newPoint.z() ) ) ; - G4Point3D newN = (*fDirectTransform3D)*G4Point3D(normal) ; - newN.unit() ; - - return G4ThreeVector(newN.x(),newN.y(),newN.z()) ; + G4ThreeVector newPoint = (*fDirectTransform3D)*G4Point3D(p); + G4Vector3D normal = fPtrSolid->SurfaceNormal(newPoint); + return (*fDirectTransform3D)*normal; } ///////////////////////////////////////////////////////////// @@ -458,14 +206,11 @@ G4ReflectedSolid::SurfaceNormal( const G4ThreeVector& p ) const G4double G4ReflectedSolid::DistanceToIn( const G4ThreeVector& p, - const G4ThreeVector& v ) const + const G4ThreeVector& v ) const { - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - G4Point3D newDirection = (*fDirectTransform3D)*G4Point3D(v) ; - newDirection.unit() ; - return fPtrSolid->DistanceToIn( - G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z()), - G4ThreeVector(newDirection.x(),newDirection.y(),newDirection.z())) ; + G4ThreeVector newPoint = (*fDirectTransform3D)*G4Point3D(p); + G4ThreeVector newDirection = (*fDirectTransform3D)*G4Vector3D(v); + return fPtrSolid->DistanceToIn(newPoint,newDirection); } //////////////////////////////////////////////////////// @@ -474,11 +219,10 @@ G4ReflectedSolid::DistanceToIn( const G4ThreeVector& p, // two solids G4double -G4ReflectedSolid::DistanceToIn( const G4ThreeVector& p) const +G4ReflectedSolid::DistanceToIn( const G4ThreeVector& p ) const { - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - return fPtrSolid->DistanceToIn( - G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z())) ; + G4ThreeVector newPoint = (*fDirectTransform3D)*G4Point3D(p); + return fPtrSolid->DistanceToIn(newPoint); } ////////////////////////////////////////////////////////// @@ -490,26 +234,20 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, const G4ThreeVector& v, const G4bool calcNorm, G4bool *validNorm, - G4ThreeVector *n ) const + G4ThreeVector *n ) const { - G4ThreeVector solNorm ; + G4ThreeVector solNorm; - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - G4Point3D newDirection = (*fDirectTransform3D)*G4Point3D(v); - newDirection.unit() ; + G4ThreeVector newPoint = (*fDirectTransform3D)*G4Point3D(p); + G4ThreeVector newDirection = (*fDirectTransform3D)*G4Vector3D(v); - G4double dist = - fPtrSolid->DistanceToOut( - G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z()), - G4ThreeVector(newDirection.x(),newDirection.y(),newDirection.z()), - calcNorm, validNorm, &solNorm) ; + G4double dist = fPtrSolid->DistanceToOut(newPoint, newDirection, + calcNorm, validNorm, &solNorm); if(calcNorm) { - G4Point3D newN = (*fDirectTransform3D)*G4Point3D(solNorm); - newN.unit() ; - *n = G4ThreeVector(newN.x(),newN.y(),newN.z()); + *n = (*fDirectTransform3D)*G4Vector3D(solNorm); } - return dist ; + return dist; } ////////////////////////////////////////////////////////////// @@ -519,9 +257,8 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, G4double G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p ) const { - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p); - return fPtrSolid->DistanceToOut( - G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z())); + G4ThreeVector newPoint = (*fDirectTransform3D)*G4Point3D(p); + return fPtrSolid->DistanceToOut(newPoint); } ////////////////////////////////////////////////////////////// @@ -546,10 +283,8 @@ G4ReflectedSolid::ComputeDimensions( G4VPVParameterisation*, G4ThreeVector G4ReflectedSolid::GetPointOnSurface() const { - G4ThreeVector p = fPtrSolid->GetPointOnSurface(); - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p); - - return G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z()); + G4ThreeVector p = fPtrSolid->GetPointOnSurface(); + return (*fDirectTransform3D)*G4Point3D(p); } ////////////////////////////////////////////////////////////////////////// @@ -578,10 +313,10 @@ std::ostream& G4ReflectedSolid::StreamInfo(std::ostream& os) const os << "===========================================================\n" << " Transformations: \n" << " Direct transformation - translation : \n" - << " " << fDirectTransform->NetTranslation() << "\n" + << " " << fDirectTransform3D->getTranslation() << "\n" << " - rotation : \n" << " "; - fDirectTransform->NetRotation().print(os); + fDirectTransform3D->getRotation().print(os); os << "\n" << "===========================================================\n"; @@ -631,11 +366,12 @@ G4Polyhedron* G4ReflectedSolid::GetPolyhedron () const { if (!fpPolyhedron || + fRebuildPolyhedron || fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != fpPolyhedron->GetNumberOfRotationSteps()) { - delete fpPolyhedron; - fpPolyhedron = CreatePolyhedron (); + fpPolyhedron = CreatePolyhedron(); + fRebuildPolyhedron = false; } return fpPolyhedron; } diff --git a/source/geometry/management/src/G4USolid.cc b/source/geometry/management/src/G4USolid.cc index ef1b18d3d1..b1c7c0e57a 100644 --- a/source/geometry/management/src/G4USolid.cc +++ b/source/geometry/management/src/G4USolid.cc @@ -34,15 +34,15 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4AffineTransform.hh" #include "G4VoxelLimits.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" -#include "G4PolyhedronArbitrary.hh" #include "G4VisExtent.hh" #include "G4PhysicalConstants.hh" +#include "G4GeometryTolerance.hh" #include "G4AutoLock.hh" @@ -82,13 +82,8 @@ EInside G4USolid::Inside(const G4ThreeVector& p) const in_temp = fShape->Inside(pt); -#ifndef G4USE_STD11 - if (in_temp == VUSolid::eSurface)return kSurface; - if (in_temp == VUSolid::eInside)return kInside; -#else - if (in_temp == VUSolid::EnumInside::eSurface)return kSurface; - if (in_temp == VUSolid::EnumInside::eInside)return kInside; -#endif + if (in_temp == VUSolid::EnumInside::eSurface) return kSurface; + if (in_temp == VUSolid::EnumInside::eInside) return kInside; return in; } @@ -105,7 +100,7 @@ G4ThreeVector G4USolid::SurfaceNormal(const G4ThreeVector& pt) const } G4double G4USolid::DistanceToIn(const G4ThreeVector& pt, - const G4ThreeVector& d)const + const G4ThreeVector& d) const { UVector3 p; p.x() = pt.x(); @@ -116,7 +111,8 @@ G4double G4USolid::DistanceToIn(const G4ThreeVector& pt, v.y() = d.y(); v.z() = d.z(); // better assign at construction G4double dist = fShape->DistanceToIn(p, v); - if (dist > kInfinity) dist = kInfinity; + if (dist > kInfinity) return kInfinity; +// return (dist > halfTolerance) ? dist : 0.0; return dist; } @@ -127,7 +123,8 @@ G4double G4USolid::DistanceToIn(const G4ThreeVector& pt) const p.y() = pt.y(); p.z() = pt.z(); // better assign at construction G4double dist = fShape->SafetyFromOutside(p); // true? - if (dist > kInfinity) dist = kInfinity; + if (dist > kInfinity) return kInfinity; +// return (dist > halfTolerance) ? dist : 0.0; return dist; } @@ -146,19 +143,21 @@ G4double G4USolid::DistanceToOut(const G4ThreeVector& pt, v.y() = d.y(); v.z() = d.z(); // better assign at construction UVector3 n; - bool valid; - G4double dist = fShape->DistanceToOut(p, v, n,valid); // should use local variable + G4bool valid; + G4double dist = fShape->DistanceToOut(p, v, n, valid); // should use local variable if(calcNorm) { - if(valid){ *validNorm = true;} - else {* validNorm =false;} - if(*validNorm) - { norm->setX(n.x()); + if(valid){ *validNorm = true; } + else { *validNorm = false; } + if(*validNorm) // *norm = n, but only after calcNorm check + { + norm->setX(n.x()); norm->setY(n.y()); norm->setZ(n.z()); - } // *norm = n, but only after calcNorm check + } } - if (dist > kInfinity) dist = kInfinity; + if (dist > kInfinity) return kInfinity; +// return (dist > halfTolerance) ? dist : 0.0; return dist; } @@ -168,7 +167,9 @@ G4double G4USolid::DistanceToOut(const G4ThreeVector& pt) const p.x() = pt.x(); p.y() = pt.y(); p.z() = pt.z(); // better assign at construction - return fShape->SafetyFromInside(p); // true? + G4double dist = fShape->SafetyFromInside(p); // true? +// return (dist > halfTolerance) ? dist : 0.0; + return dist; } G4double G4USolid::GetCubicVolume() @@ -452,108 +453,13 @@ G4USolid::CreateRotatedVertices(const G4AffineTransform& pTransform) const G4Polyhedron* G4USolid::CreatePolyhedron() const { - G4int index = 0; - if (fShape->GetEntityType() == "Box") - { - double array[3]; - fShape->GetParametersList(index, array); - return new G4PolyhedronBox(array[0], array[1], array[2]); - } - if (fShape->GetEntityType() == "Tubs") - { - double array[5]; - fShape->GetParametersList(index, array); - return new G4PolyhedronTubs(array[0], array[1], array[2], array[3], array[4]); - } - if (fShape->GetEntityType() == "Cons") - { - double array[7]; - fShape->GetParametersList(index, array); - return new G4PolyhedronCons(array[0], array[1], array[2], array[3], array[4], array[5], array[6]); - } - if (fShape->GetEntityType() == "Orb") - { - double array[1]; - fShape->GetParametersList(index, array); - return new G4PolyhedronSphere(0., array[0], 0., 2 * pi, 0., pi); - } - if (fShape->GetEntityType() == "Sphere") - { - double array[6]; - fShape->GetParametersList(index, array); - return new G4PolyhedronSphere(array[0], array[1], array[2], array[3], array[4], array[5]); - } - if (fShape->GetEntityType() == "Tet") - { - double array[12]; - fShape->GetParametersList(index, array); - G4Polyhedron* ph = new G4Polyhedron; - double xyz[4][3]; - static int faces[4][4] = {{1, 3, 2, 0}, {1, 4, 3, 0}, {1, 2, 4, 0}, {2, 3, 4, 0}}; - xyz[0][0] = array[0]; - xyz[0][1] = array[1]; - xyz[0][2] = array[2]; - xyz[1][0] = array[3]; - xyz[1][1] = array[4]; - xyz[1][2] = array[5]; - xyz[2][0] = array[6]; - xyz[2][1] = array[7]; - xyz[2][2] = array[8]; - xyz[3][0] = array[9]; - xyz[3][1] = array[10]; - xyz[3][2] = array[11]; - - ph->createPolyhedron(4, 4, xyz, faces); - return ph; - } - if (fShape->GetEntityType() == "Trd") - { - double array[5]; - fShape->GetParametersList(index, array); - return new G4PolyhedronTrd2(array[0], array[1], array[2], array[3], array[4]); - } - if (fShape->GetEntityType() == "Trap") - { - double array[12]; - fShape->GetParametersList(index, array); - double phi = (array[11] != 1.0) ? (std::atan(array[10] / array[9])) : (0.0); - double alpha1 = std::atan(array[4]); - double alpha2 = std::atan(array[8]); - double theta = std::acos(array[11]); - - return new G4PolyhedronTrap(array[0], theta, phi, - array[1], array[2], array[3], alpha1, - array[5], array[6], array[7], alpha2); - } - - /* - if(fShape->GetEntityType()=="TessellatedSolid"){ - - G4Polyhedron *uPolyhedron=fShape->GetPolyhedron(); - std::size_t nVertices = (*uPolyhedron).vertices.size(); - std::size_t nFacets = (*uPolyhedron).facets.size(); - - G4PolyhedronArbitrary *polyhedron = - new G4PolyhedronArbitrary (nVertices, nFacets); - - for (std::vector::const_iterator v = (*uPolyhedron).vertices.begin(); - v!=(*uPolyhedron).vertices.end(); v++) - { - UVector3 p=(*v); - G4ThreeVector pt(p.x(),p.y(),p.z()); - - polyhedron->AddVertex(pt); - } - for (std::vector::const_iterator f=(*uPolyhedron).facets.begin(); - f != (*uPolyhedron).facets.end(); f++) - { - polyhedron->AddFacet((*f).f1,(*f).f2,(*f).f3,(*f).f4); - } - - return (G4Polyhedron*) polyhedron; - } - */ + // Must be implemented in concrete wrappers... + std::ostringstream message; + message << "Visualization not supported for USolid shape " + << GetEntityType() << "... Sorry!" << G4endl; + G4Exception("G4USolid::CreatePolyhedron()", "GeomSolids0003", + FatalException, message); return 0; } diff --git a/source/geometry/navigation/History b/source/geometry/navigation/History index 09b7361e3d..754258d7ce 100644 --- a/source/geometry/navigation/History +++ b/source/geometry/navigation/History @@ -1,4 +1,4 @@ -$Id: History 94380 2015-11-13 10:14:39Z gcosmo $ +$Id: History 96938 2016-05-18 09:24:55Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,44 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 18, 2016 - G.Cosmo (geomnav-V10-02-08) +---------------------- +- Fixed compilation warning on gcc-6.1 in G4Navigator::PrintState(). + +May 3, 2016 - G.Cosmo (geomnav-V10-02-07) +--------------------- +- Reinstated check on anomalous mother-step with corrective action, previously + moved only in check-mode in G4VoxelNavigation and G4NormalNavigation. + +April 15, 2016 - G.Cosmo (geomnav-V10-02-06, 05) +------------------------ +- Avoid static constant definition of surface tolerance in G4VoxelNavigation + in method LocateNextVoxel() to clear spurious warnings for data-race + conflicts from Valgrind/DRD tool; defined as class data member. +- Cleared up use of static constants also in other navigation classes. + +April 12, 2016 - G.Cosmo (geomnav-V10-02-04) +------------------------ +- Improved diagnostic in G4Navigator. Moved some debug checks in "check-mode". +- Minor code cleanup. + +February 1, 2016 - G.Cosmo (geomnav-V10-02-03, 02) +-------------------------- +- Relax condition for zero or almost-zero steps in G4ReplicaNavigation and + G4Navigator, to allow for faster progression in case of stuck tracks in + 3D scoring meshes. Addressed old problem report #1432. + +January 29, 2016 - G.Cosmo (geomnav-V10-02-01) +-------------------------- +- Fix in G4ReplicaNavigation::ComputeStep() for correct setting of copyNo + for particle entering. Fixes issue of negative copyNo observed in nested + replica setups. Addressing problem report #1634. + +January 11, 2016 - G.Cosmo (geomnav-V10-02-00) +-------------------------- +- Move check for overlaps in G4Navigator::ComputeStep() within G4VERBOSE. + Addressing problem report #1811. + November 13, 2015 - G.Cosmo (geomnav-V10-01-35) --------------------------- - Code cleanup in G4MultiLevelLocator and G4PropagatorInField. diff --git a/source/geometry/navigation/include/G4Navigator.hh b/source/geometry/navigation/include/G4Navigator.hh index 63635c1ec5..0f4f878f54 100644 --- a/source/geometry/navigation/include/G4Navigator.hh +++ b/source/geometry/navigation/include/G4Navigator.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Navigator.hh 81577 2014-06-03 10:13:36Z gcosmo $ +// $Id: G4Navigator.hh 96458 2016-04-15 10:15:24Z gcosmo $ // // // class G4Navigator @@ -358,8 +358,8 @@ class G4Navigator protected: // without description - G4double kCarTolerance; - // Geometrical tolerance for surface thickness of shapes. + G4double kCarTolerance, fMinStep, fSqTol; + // Cached tolerances. // // BEGIN State information diff --git a/source/geometry/navigation/include/G4ReplicaNavigation.hh b/source/geometry/navigation/include/G4ReplicaNavigation.hh index 574f0a0291..c9e1ba631c 100644 --- a/source/geometry/navigation/include/G4ReplicaNavigation.hh +++ b/source/geometry/navigation/include/G4ReplicaNavigation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4ReplicaNavigation.hh 96458 2016-04-15 10:15:24Z gcosmo $ // // // class G4ReplicaNavigation @@ -176,7 +176,9 @@ class G4ReplicaNavigation G4int fVerbose; // Configuration parameters - G4double kCarTolerance, kRadTolerance, kAngTolerance; + G4double kCarTolerance, kRadTolerance, kAngTolerance, + halfkCarTolerance, halfkRadTolerance, halfkAngTolerance, + fMinStep; // Local copy of constants }; diff --git a/source/geometry/navigation/include/G4VoxelNavigation.hh b/source/geometry/navigation/include/G4VoxelNavigation.hh index 6f1dde5a86..8c601f16f0 100644 --- a/source/geometry/navigation/include/G4VoxelNavigation.hh +++ b/source/geometry/navigation/include/G4VoxelNavigation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4VoxelNavigation.hh 96449 2016-04-15 08:29:57Z gcosmo $ // // // class G4VoxelNavigation @@ -181,7 +181,10 @@ class G4VoxelNavigation // G4VoxelSafety *fpVoxelSafety; - // Helper object for Voxel Safety + // Helper object for Voxel Safety + + G4double fHalfTolerance; + // Surface tolerance G4bool fCheck; G4bool fBestSafety; diff --git a/source/geometry/navigation/src/G4BrentLocator.cc b/source/geometry/navigation/src/G4BrentLocator.cc index 28d21e873a..d4052a8303 100644 --- a/source/geometry/navigation/src/G4BrentLocator.cc +++ b/source/geometry/navigation/src/G4BrentLocator.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BrentLocator.cc 90451 2015-05-29 09:48:07Z gcosmo $ +// $Id: G4BrentLocator.cc 96458 2016-04-15 10:15:24Z gcosmo $ // // Class G4BrentLocator implementation // @@ -187,7 +187,7 @@ G4bool G4BrentLocator::EstimateIntersectionPoint( G4int depth=0; // Depth counts how many subdivisions of initial step made #ifdef G4DEBUG_FIELD - static G4double tolerance= 1.0e-8; + const G4double tolerance= 1.0e-8; G4ThreeVector StartPosition= CurveStartPointVelocity.GetPosition(); if( (TrialPoint - StartPosition).mag() < tolerance * CLHEP::mm ) { @@ -572,7 +572,7 @@ G4bool G4BrentLocator::EstimateIntersectionPoint( // tests ChordAF_Vector.mag() <= maximum_lateral_displacement #ifdef G4DEBUG_LOCATE_INTERSECTION - static G4int trigger_substepno_print= warn_substeps - 20 ; + G4int trigger_substepno_print= warn_substeps - 20 ; if( substep_no >= trigger_substepno_print ) { diff --git a/source/geometry/navigation/src/G4MultiLevelLocator.cc b/source/geometry/navigation/src/G4MultiLevelLocator.cc index d6bd2a8c2b..bfbfbbcdb9 100644 --- a/source/geometry/navigation/src/G4MultiLevelLocator.cc +++ b/source/geometry/navigation/src/G4MultiLevelLocator.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MultiLevelLocator.cc 94380 2015-11-13 10:14:39Z gcosmo $ +// $Id: G4MultiLevelLocator.cc 96458 2016-04-15 10:15:24Z gcosmo $ // // Class G4MultiLevelLocator implementation // @@ -183,8 +183,8 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( fNumCalls++; #ifdef G4DEBUG_FIELD - static unsigned int trigger_substepno_print=0; - static const G4double tolerance = 1.0e-8 * CLHEP::mm; + unsigned int trigger_substepno_print=0; + const G4double tolerance = 1.0e-8 * CLHEP::mm; unsigned int biggest_depth= 0; #if (G4DEBUG_FIELD>1) diff --git a/source/geometry/navigation/src/G4NavigationLogger.cc b/source/geometry/navigation/src/G4NavigationLogger.cc index 20deb72c2b..c20f2cd3a9 100644 --- a/source/geometry/navigation/src/G4NavigationLogger.cc +++ b/source/geometry/navigation/src/G4NavigationLogger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4NavigationLogger.cc 93289 2015-10-15 10:01:15Z gcosmo $ +// $Id: G4NavigationLogger.cc 96409 2016-04-12 08:12:10Z gcosmo $ // // // class G4NavigationLogger Implementation @@ -789,7 +789,7 @@ G4NavigationLogger::ReportVolumeAndIntersection( std::ostream& os, const G4ThreeVector& localDirection, const G4VPhysicalVolume* physical ) const { - G4String fMethod = fId + "::ComputeStep() / output from G4NavigatorLogger::ReportVolumeAndIntersection"; + G4String fMethod = fId + "::ComputeStep()"; const G4LogicalVolume* logicalVol = physical ? physical->GetLogicalVolume() : 0; const G4VSolid* solid = logicalVol diff --git a/source/geometry/navigation/src/G4Navigator.cc b/source/geometry/navigation/src/G4Navigator.cc index 15e96c6d47..c06eaf6ed5 100644 --- a/source/geometry/navigation/src/G4Navigator.cc +++ b/source/geometry/navigation/src/G4Navigator.cc @@ -67,6 +67,9 @@ G4Navigator::G4Navigator() fAbandonThreshold_NoZeroSteps = 25; kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); + fMinStep = 0.05*kCarTolerance; + fSqTol = kCarTolerance*kCarTolerance; + fregularNav.SetNormalNavigation( &fnormalNav ); fStepEndPoint = G4ThreeVector( kInfinity, kInfinity, kInfinity ); @@ -727,7 +730,7 @@ void G4Navigator::RestoreSavedState() // // fBlockedPhysicalVolume - Ptr to exited volume (or 0) // fBlockedReplicaNo - Replication no of exited volume -// fLastStepWasZero - True if last Step size was zero. +// fLastStepWasZero - True if last Step size was almost zero. // // Flags on exit: // ------------- @@ -738,7 +741,7 @@ void G4Navigator::RestoreSavedState() // fEntering - True if entering `daughter' volume (or replica) // fBlockedPhysicalVolume - Ptr to candidate (entered) volume // fBlockedReplicaNo - Replication no of candidate (entered) volume -// fLastStepWasZero - True if this Step size was zero. +// fLastStepWasZero - True if this Step size was almost zero. // ******************************************************************** // G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, @@ -797,7 +800,7 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, G4ThreeVector oldLocalPoint = fLastLocatedPointLocal; G4double moveLenSq = (newLocalPoint-oldLocalPoint).mag2(); - if ( moveLenSq >= kCarTolerance*kCarTolerance ) + if ( moveLenSq >= fSqTol ) { #ifdef G4VERBOSE ComputeStepLog(pGlobalpoint, moveLenSq); @@ -971,7 +974,7 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, // checked // fLocatedOnEdge = fLastStepWasZero && (Step==0.0); - fLastStepWasZero = (Step==0.0); + fLastStepWasZero = (Step 1 ) { - G4cout << "G4Navigator::ComputeStep(): another zero step, # " + G4cout << "G4Navigator::ComputeStep(): another 'zero' step, # " << fNumberZeroSteps - << " at " << pGlobalpoint - << " in volume " << motherPhysical->GetName() - << " nav-comp-step calls # " << sNavCScalls + << ", at " << pGlobalpoint + << ", in volume " << motherPhysical->GetName() + << ", nav-comp-step calls # " << sNavCScalls + << ", Step= " << Step << G4endl; } #endif @@ -1026,7 +1030,9 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, << " in volume -" << motherPhysical->GetName() << "- at point " << pGlobalpoint << G4endl << " direction: " << pDirection << "."; +#ifdef G4VERBOSE motherPhysical->CheckOverlaps(5000, false); +#endif G4Exception("G4Navigator::ComputeStep()", "GeomNav0003", EventMustBeAborted, message); } @@ -1565,18 +1571,14 @@ G4Navigator::GetGlobalExitNormal(const G4ThreeVector& IntersectPointGlobal, { G4bool validNormal; G4ThreeVector localNormal, globalNormal; - G4bool usingStored; - usingStored= - fCalculatedExitNormal && - ( ( fLastTriedStepComputation && fExiting) // Just calculated it - || // No locate in between - (!fLastTriedStepComputation - && (IntersectPointGlobal-fStepEndPoint).mag2() - < (10.0*kCarTolerance*kCarTolerance) - ) // Calculated it 'just' before & then called locate + G4bool usingStored = fCalculatedExitNormal && ( + ( fLastTriedStepComputation && fExiting ) // Just calculated it + || // No locate in between + ( !fLastTriedStepComputation + && (IntersectPointGlobal-fStepEndPoint).mag2() < 10.0*fSqTol ) ); + // Calculated it 'just' before & then called locate // but it did not move position - ); if( usingStored ) { @@ -1599,7 +1601,18 @@ G4Navigator::GetGlobalExitNormal(const G4ThreeVector& IntersectPointGlobal, << " - but |normal| = " << std::sqrt(normMag2) << " - and |normal|^2 = " << normMag2 << G4endl << " which differs from 1.0 by " << normMag2 - 1.0 << G4endl - << " n = " << fExitNormalGlobalFrame << G4endl; + << " n = " << fExitNormalGlobalFrame << G4endl + << " Global point: " << IntersectPointGlobal << G4endl + << " Volume: " << fHistory.GetTopVolume()->GetName() << G4endl; +#ifdef G4VERBOSE + G4LogicalVolume* candLog = fHistory.GetTopVolume()->GetLogicalVolume(); + if ( candLog ) + { + message << " Solid: " << candLog->GetSolid()->GetName() + << ", Type: " << candLog->GetSolid()->GetEntityType() << G4endl + << *candLog->GetSolid() << G4endl; + } +#endif message << "============================================================" << G4endl; G4int oldVerbose = fVerbose; @@ -1632,7 +1645,7 @@ G4Navigator::GetGlobalExitNormal(const G4ThreeVector& IntersectPointGlobal, #ifdef G4DEBUG_NAVIGATION usingStored= false; - if( (!validNormal) && !fCalculatedExitNormal) + if( (!validNormal) && !fCalculatedExitNormal ) { G4ExceptionDescription edN; edN << " Calculated = " << fCalculatedExitNormal << G4endl; @@ -1906,7 +1919,7 @@ G4bool G4Navigator::RecheckDistanceToCurrentBoundary( if( fEnteredDaughter ) { - if( motherLogical->CharacteriseDaughters() ==kReplica ) { return false; } + if( motherLogical->CharacteriseDaughters() == kReplica ) { return false; } // Track arrived at boundary of a daughter volume at // the last call of ComputeStep(). @@ -2061,9 +2074,13 @@ void G4Navigator::PrintState() const << " Entering = " << fEntering // << G4endl << " BlockedPhysicalVolume= " ; if (fBlockedPhysicalVolume==0) + { G4cout << "None"; + } else + { G4cout << fBlockedPhysicalVolume->GetName(); + } G4cout << G4endl << " BlockedReplicaNo = " << fBlockedReplicaNo // << G4endl << " LastStepWasZero = " << fLastStepWasZero // << G4endl @@ -2087,12 +2104,12 @@ void G4Navigator::PrintState() const << std::setw( 9) << fExiting << " " << std::setw( 9) << fEntering << " "; if ( fBlockedPhysicalVolume==0 ) - G4cout << std::setw(15) << "None"; + { G4cout << std::setw(15) << "None"; } else - G4cout << std::setw(15)<< fBlockedPhysicalVolume->GetName(); - G4cout << std::setw( 9) << fBlockedReplicaNo << " " - << std::setw( 8) << fLastStepWasZero << " " - << G4endl; + { G4cout << std::setw(15)<< fBlockedPhysicalVolume->GetName(); } + G4cout << std::setw( 9) << fBlockedReplicaNo << " " + << std::setw( 8) << fLastStepWasZero << " " + << G4endl; } if( fVerbose > 2 ) { @@ -2114,8 +2131,8 @@ void G4Navigator::ComputeStepLog(const G4ThreeVector& pGlobalpoint, // The following checks only make sense if the move is larger // than the tolerance. - static const G4double fAccuracyForWarning = kCarTolerance, - fAccuracyForException = 1000*kCarTolerance; + const G4double fAccuracyForWarning = kCarTolerance, + fAccuracyForException = 1000*kCarTolerance; G4ThreeVector OriginalGlobalpoint = fHistory.GetTopTransform().Inverse(). TransformPoint(fLastLocatedPointLocal); diff --git a/source/geometry/navigation/src/G4NormalNavigation.cc b/source/geometry/navigation/src/G4NormalNavigation.cc index 7dc891fd2e..c19b356874 100644 --- a/source/geometry/navigation/src/G4NormalNavigation.cc +++ b/source/geometry/navigation/src/G4NormalNavigation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.cc 93289 2015-10-15 10:01:15Z gcosmo $ +// $Id: G4NormalNavigation.cc 96743 2016-05-03 08:01:33Z gcosmo $ // // // class G4NormalNavigation Implementation @@ -273,10 +273,13 @@ G4NormalNavigation::ComputeStep(const G4ThreeVector &localPoint, if( (motherStep >= kInfinity) || (motherStep < 0.0) ) { - // Clearly outside the mother solid! -#ifdef G4VERBOSE - fLogger->ReportOutsideMother(localPoint, localDirection, motherPhysical); -#endif +#ifdef G4VERBOSE + if( fCheck ) // Clearly outside the mother solid! + { + fLogger->ReportOutsideMother(localPoint, localDirection, + motherPhysical); + } +#endif ourStep = motherStep = 0.0; exiting = true; entering = false; diff --git a/source/geometry/navigation/src/G4ReplicaNavigation.cc b/source/geometry/navigation/src/G4ReplicaNavigation.cc index a92286e5c2..d80527871f 100644 --- a/source/geometry/navigation/src/G4ReplicaNavigation.cc +++ b/source/geometry/navigation/src/G4ReplicaNavigation.cc @@ -1,4 +1,3 @@ -// // ******************************************************************** // * License and Disclaimer * // * * @@ -24,7 +23,7 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.cc 89897 2015-05-04 08:19:32Z gcosmo $ +// $Id: G4ReplicaNavigation.cc 96458 2016-04-15 10:15:24Z gcosmo $ // // // class G4ReplicaNavigation Implementation @@ -61,6 +60,10 @@ G4ReplicaNavigation::G4ReplicaNavigation() kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); kRadTolerance = G4GeometryTolerance::GetInstance()->GetRadialTolerance(); kAngTolerance = G4GeometryTolerance::GetInstance()->GetAngularTolerance(); + halfkCarTolerance = kCarTolerance*0.5; + halfkRadTolerance = kRadTolerance*0.5; + halfkAngTolerance = kAngTolerance*0.5; + fMinStep = 0.05*kCarTolerance; } // ******************************************************************** @@ -81,7 +84,7 @@ G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, const G4ThreeVector &localPoint) const { EInside in = kOutside; - + // Replication data // EAxis axis; @@ -99,11 +102,11 @@ G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, case kYAxis: case kZAxis: coord = std::fabs(localPoint(axis))-width*0.5; - if ( coord<=-kCarTolerance*0.5 ) + if ( coord<=-halfkCarTolerance ) { in = kInside; } - else if ( coord<=kCarTolerance*0.5 ) + else if ( coord<=halfkCarTolerance ) { in = kSurface; } @@ -112,11 +115,11 @@ G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, if ( localPoint.y()||localPoint.x() ) { coord = std::fabs(std::atan2(localPoint.y(),localPoint.x()))-width*0.5; - if ( coord<=-kAngTolerance*0.5 ) + if ( coord<=-halfkAngTolerance ) { in = kInside; } - else if ( coord<=kAngTolerance*0.5 ) + else if ( coord<=halfkAngTolerance ) { in = kSurface; } @@ -129,11 +132,11 @@ G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, case kRho: rad2 = localPoint.perp2(); rmax = (replicaNo+1)*width+offset; - tolRMax2 = rmax-kRadTolerance*0.5; + tolRMax2 = rmax-halfkRadTolerance; tolRMax2 *= tolRMax2; if ( rad2>tolRMax2 ) { - tolRMax2 = rmax+kRadTolerance*0.5; + tolRMax2 = rmax+halfkRadTolerance; tolRMax2 *= tolRMax2; if ( rad2<=tolRMax2 ) { @@ -147,11 +150,11 @@ G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, if ( replicaNo||offset ) { rmin = rmax-width; - tolRMin2 = rmin-kRadTolerance*0.5; + tolRMin2 = rmin-halfkRadTolerance; tolRMin2 *= tolRMin2; if ( rad2>tolRMin2 ) { - tolRMin2 = rmin+kRadTolerance*0.5; + tolRMin2 = rmin+halfkRadTolerance; tolRMin2 *= tolRMin2; if ( rad2>=tolRMin2 ) { @@ -240,7 +243,7 @@ G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol, FatalException, "Unknown axis!"); break; } - return (safety >= kCarTolerance) ? safety : 0; + return (safety >= halfkCarTolerance) ? safety : 0; } // ******************************************************************** @@ -365,7 +368,7 @@ G4ReplicaNavigation::DistanceToOutPhi(const G4ThreeVector &localPoint, // if ( yi<=0 ) { - Dist = (pDistS<=-kCarTolerance*0.5) ? dist2 : 0; + Dist = (pDistS<=-halfkCarTolerance) ? dist2 : 0; sidePhi= G4ExitNormal::kSPhi; // tbc } else @@ -393,7 +396,7 @@ G4ReplicaNavigation::DistanceToOutPhi(const G4ThreeVector &localPoint, { // Leaving via ending phi // - Dist = (pDistE<=-kCarTolerance*0.5) ? dist2 : 0; + Dist = (pDistE<=-halfkCarTolerance) ? dist2 : 0; sidePhi = G4ExitNormal::kEPhi; } } @@ -506,7 +509,7 @@ G4ReplicaNavigation::DistanceToOutRad(const G4ThreeVector &localPoint, G4double rmin, rmax, t1, t2, t3, deltaR; G4double b, c, d2, srd; G4ExitNormal::ESide sideR= G4ExitNormal::kNull; - + // // Radial Intersections // @@ -541,9 +544,9 @@ G4ReplicaNavigation::DistanceToOutRad(const G4ThreeVector &localPoint, deltaR = t3-rmax*rmax; // NOTE: Should use - // rho-rmax<-kRadTolerance*0.5 - [no sqrts for efficiency] + // rho-rmax<-halfkRadTolerance - [no sqrts for efficiency] // - if ( deltaR<-kRadTolerance*0.5 ) + if ( deltaR<-halfkRadTolerance ) { b = t2/t1; c = deltaR/t1; @@ -573,11 +576,11 @@ G4ReplicaNavigation::DistanceToOutRad(const G4ThreeVector &localPoint, { // Leaving via rmin // NOTE: Should use - // rho-rmin>kRadTolerance*0.5 - [no sqrts for efficiency] + // rho-rmin>halfkRadTolerance - [no sqrts for efficiency] // - srd = (deltaR>kRadTolerance*0.5) ? -b-std::sqrt(d2) : 0.0; + srd = (deltaR>halfkRadTolerance) ? -b-std::sqrt(d2) : 0.0; // Is the following more accurate ? - // srd = (deltaR>kRadTolerance*0.5) ? c/( -b - std::sqrt(d2)) : 0.0; + // srd = (deltaR>halfkRadTolerance) ? c/( -b - std::sqrt(d2)) : 0.0; sideR= G4ExitNormal::kRMin; } else @@ -841,7 +844,8 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector &globalPoint, } if ( sampleSafety < ourStep ) { - G4ThreeVector newLocalDirection = GlobalToLocal.TransformAxis(globalDirection); + G4ThreeVector newLocalDirection = + GlobalToLocal.TransformAxis(globalDirection); sampleStep = DistanceToOut(history.GetVolume(depth), history.GetReplicaNo(depth), repPoint, @@ -911,16 +915,16 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector &globalPoint, } // Push in principle no longer necessary. G4Navigator now takes care of ... - // Removing this will however generate warnings for pushed particles from - // G4Navigator, particularly for the case of 3D replicas (Cartesian or - // combined Radial/Phi cases). + // Removing this however may cause additional almost-zero steps and generate + // warnings for pushed particles from G4Navigator, particularly for the case + // of 3D replicas (Cartesian or combined Radial/Phi cases). // Requires further investigation and eventually reimplementation of // LevelLocate() to take into account point and direction ... // - if ( ( !ourStep && (sampleSafety<0.5*kCarTolerance) ) + if ( ( (ourStepGetSolid()->Inside(localPoint)==kSurface ) ) { - ourStep += kCarTolerance; + ourStep = 100*kCarTolerance; } if ( motherSafety= trigger_substepno_print ) { diff --git a/source/geometry/navigation/src/G4VoxelNavigation.cc b/source/geometry/navigation/src/G4VoxelNavigation.cc index efa708f036..5f98e2dd68 100644 --- a/source/geometry/navigation/src/G4VoxelNavigation.cc +++ b/source/geometry/navigation/src/G4VoxelNavigation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.cc 93289 2015-10-15 10:01:15Z gcosmo $ +// $Id: G4VoxelNavigation.cc 96743 2016-05-03 08:01:33Z gcosmo $ // // // class G4VoxelNavigation Implementation @@ -40,10 +40,6 @@ #include "G4AuxiliaryNavServices.hh" -#ifdef G4DEBUG_NAVIGATION -static int debugVerboseLevel= 5; // Reports most about daughter volumes -#endif - // ******************************************************************** // Constructor // ******************************************************************** @@ -57,11 +53,12 @@ G4VoxelNavigation::G4VoxelNavigation() fVoxelHeaderStack(kNavigatorVoxelStackMax,(G4SmartVoxelHeader*)0), fVoxelNode(0), fpVoxelSafety(0), fCheck(false), fBestSafety(false) { - fLogger = new G4NavigationLogger("G4VoxelNavigation"); - fpVoxelSafety = new G4VoxelSafety(); + fLogger= new G4NavigationLogger("G4VoxelNavigation"); + fpVoxelSafety= new G4VoxelSafety(); + fHalfTolerance= 0.5*G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); #ifdef G4DEBUG_NAVIGATION - SetVerboseLevel(debugVerboseLevel); // Reports most about daughter volumes + SetVerboseLevel(5); // Reports most about daughter volumes #endif } @@ -163,6 +160,7 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, if( (motherStep >= kInfinity) || (motherStep < 0.0) ) { // Error - indication of being outside solid !! + // fLogger->ReportOutsideMother(localPoint, localDirection, motherPhysical); ourStep = 0.0; @@ -321,22 +319,25 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, { fLogger->CheckAndReportBadNormal(motherExitNormal, localPoint, localDirection, - motherStep, motherSolid, + motherStep, motherSolid, "From motherSolid::DistanceToOut" ); - } + } } #endif if( (motherStep >= kInfinity) || (motherStep < 0.0) ) { - // Error - indication of being outside solid !! - // - fLogger->ReportOutsideMother(localPoint, localDirection, motherPhysical); - +#ifdef G4VERBOSE + if( fCheck ) // Error - indication of being outside solid !! + { + fLogger->ReportOutsideMother(localPoint, localDirection, + motherPhysical); + } +#endif motherStep = 0.0; ourStep = 0.0; exiting = true; entering = false; - + // validExitNormal= motherValidExitNormal; // exitNormal= motherExitNormal; // Useful only if the point is very close to surface @@ -374,8 +375,7 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, *rot, // motherPhysical, "From RotationMatrix" ); - -#endif +#endif } } } @@ -510,8 +510,6 @@ G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint, G4bool isNewVoxel=false; G4double currentDistance = currentStep; - static const G4double sigma = 0.5*G4GeometryTolerance::GetInstance() - ->GetSurfaceTolerance(); // Determine if end of Step within current voxel // @@ -527,10 +525,10 @@ G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint, workCoord = targetPoint(workHeaderAxis); minVal = workMinExtent+workNodeNo*workNodeWidth; - if ( minVal<=workCoord+sigma ) + if ( minVal<=workCoord+fHalfTolerance ) { maxVal = minVal+workNodeWidth; - if ( maxVal<=workCoord-sigma ) + if ( maxVal<=workCoord-fHalfTolerance ) { // Must consider next voxel // @@ -567,11 +565,11 @@ G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint, workCoord = targetPoint(workHeaderAxis); minVal = workMinExtent+fVoxelNode->GetMinEquivalentSliceNo()*workNodeWidth; - if ( minVal<=workCoord+sigma ) + if ( minVal<=workCoord+fHalfTolerance ) { maxVal = workMinExtent+(fVoxelNode->GetMaxEquivalentSliceNo()+1) *workNodeWidth; - if ( maxVal<=workCoord-sigma ) + if ( maxVal<=workCoord-fHalfTolerance ) { newNodeNo = fVoxelNode->GetMaxEquivalentSliceNo()+1; newHeader = workHeader; diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index 3bc33de1a6..2eaa618282 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -1,5 +1,5 @@ -$Id: History 93153 2015-10-08 11:54:58Z gcosmo $ +$Id: History 97695 2016-06-07 09:54:49Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,45 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + June 6, 2016 E. Tcherniaev geom-bool-V10-02-08 + - Reimplemented CalculateExtent() in G4ScaledSolid to use new class + G4BoundingEnvelope. Use accessors in implementation. + + June 1, 2016 G. Cosmo geom-bool-V10-02-07 + - Corrected treatment of polyhedron for G4DiplacedSolid and G4ScaledSolid + to avoid thread contention. + - Added warning in G4BooleanSolid::GetPointOnSurface() in case of non + convergence after fixed number of trials. + + May 27, 2016 G. Cosmo geom-bool-V10-02-06 + - Fixed Coverity defects for uninitialised data in G4BooleanSolid. + + May 26, 2016 E. Tcherniaev + - Replaced while loop for for-loop in G4BooleanSolid::GetPointOnSurface(). + + May 20, 2016 G. Cosmo geom-bool-V10-02-05 + - Moved accessors and modifiers in UMultiUnion wrapper to be not inlined. + Required modification in order to allow correct dispatching to VecGeom + types. + + May 17, 2016 E. Tcherniaev geom-bool-V10-02-04 + - Boosted computation of GetPointOnSurface() for G4BooleanSolid; + reimplemented algorithm, using cached list of primitives. + + May 13, 2016 G.Cosmo geom-bool-V10-02-03 + - Fixed GetPolyhedron() in G4ScaledSolid and G4DisplacedSolid for MT. + + May 12, 2016 E.Tcherniaev geom-bool-V10-02-02 + - Use transformations for normals from G4ScaleTransform in G4ScaledSolid. + + March 16, 2016 G.Cosmo geom-bool-V10-02-01 + - Added new class G4ScaledSolid providing ability to scale dimensions of + a shape in X, Y or Z. + Requires tag "geommng-V10-02-00". + + February 8, 2016 G.Cosmo geom-bool-V10-02-00 + - Minor optimisation in Inside(p) for G4UnionSolid and G4SubtractionSolid. + October 7, 2015 G.Cosmo geom-bool-V10-01-02 - Protected compilation of USolid wrappers with G4GEOM_USE_USOLIDS flag. diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh index 1739229511..857e03d910 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.hh 83572 2014-09-01 15:23:27Z gcosmo $ +// $Id: G4BooleanSolid.hh 96960 2016-05-18 14:59:54Z gcosmo $ // // // class G4BooleanSolid @@ -34,9 +34,7 @@ // Abstract base class for solids created by boolean operations // between other solids. -// History: -// -// 10.09.98 V.Grichine, created +// 10.09.98 V.Grichine - created // // -------------------------------------------------------------------- #ifndef G4BOOLEANSOLID_HH @@ -110,20 +108,19 @@ class G4BooleanSolid : public G4VSolid protected: + void GetListOfPrimitives(std::vector>&, + const G4Transform3D&) const; + // Get list of constituent primitives of the solid and their placements. + G4Polyhedron* StackPolyhedron(HepPolyhedronProcessor&, const G4VSolid*) const; // Stack polyhedra for processing. Return top polyhedron. - inline G4double GetAreaRatio() const; - // Ratio of surface areas of SolidA to total A+B - protected: G4VSolid* fPtrSolidA; G4VSolid* fPtrSolidB; - mutable G4double fAreaRatio; // Calculation deferred to GetPointOnSurface() - private: G4int fStatistics; @@ -135,6 +132,9 @@ class G4BooleanSolid : public G4VSolid mutable G4bool fRebuildPolyhedron; mutable G4Polyhedron* fpPolyhedron; + mutable std::vector> fPrimitives; + mutable G4double fPrimitivesSurfaceArea; + G4bool createdDisplacedSolid; // If & only if this object created it, it must delete it diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.icc b/source/geometry/solids/Boolean/include/G4BooleanSolid.icc index 1d09e653df..8b7a1e8bc6 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.icc +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.icc 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4BooleanSolid.icc 96960 2016-05-18 14:59:54Z gcosmo $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -101,14 +101,3 @@ G4double G4BooleanSolid::GetSurfaceArea() else { fSurfaceArea = EstimateSurfaceArea(fStatistics,fAreaAccuracy); } return fSurfaceArea; } - -inline -G4double G4BooleanSolid::GetAreaRatio() const -{ - if (fAreaRatio <= 0.) - { - fAreaRatio = fPtrSolidA->GetSurfaceArea() / - (fPtrSolidA->GetSurfaceArea()+fPtrSolidB->GetSurfaceArea()); - } - return fAreaRatio; -} diff --git a/source/geometry/solids/Boolean/include/G4ScaledSolid.hh b/source/geometry/solids/Boolean/include/G4ScaledSolid.hh new file mode 100644 index 0000000000..a1a05bcc0e --- /dev/null +++ b/source/geometry/solids/Boolean/include/G4ScaledSolid.hh @@ -0,0 +1,126 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +// +// class G4ScaledSolid +// +// Class description: +// +// A scaled solid is a solid that has been scaled in dimensions +// in X, Y or Z, from its original description. + +// History: +// +// 27.10.15 G.Cosmo: created +// +// -------------------------------------------------------------------- +#ifndef G4ScaledSolid_HH +#define G4ScaledSolid_HH + +#include "G4VSolid.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4AffineTransform.hh" + +class G4ScaleTransform; + +class G4ScaledSolid : public G4VSolid +{ + public: // with description + + G4ScaledSolid( const G4String& pName, + G4VSolid* pSolid , + const G4Scale3D& pScale ); + + virtual ~G4ScaledSolid(); + + EInside Inside( const G4ThreeVector& p ) const; + + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const; + + G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; + + G4double DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const; + + G4double DistanceToIn( const G4ThreeVector& p) const; + + G4double DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const; + + G4double DistanceToOut( const G4ThreeVector& p ) const; + + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ); + + void CleanTransformations(); + + G4ThreeVector GetPointOnSurface() const; + + G4Scale3D GetScaleTransform() const; + void SetScaleTransform(const G4Scale3D& scale); + + G4VSolid* GetUnscaledSolid() const; + + G4GeometryType GetEntityType() const; + G4VSolid* Clone() const; + + std::ostream& StreamInfo(std::ostream& os) const; + + public: // without description + + G4ScaledSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + G4ScaledSolid(const G4ScaledSolid& rhs); + G4ScaledSolid& operator=(const G4ScaledSolid& rhs); + // Copy constructor and assignment operator. + + void DescribeYourselfTo ( G4VGraphicsScene& scene ) const; + G4Polyhedron* CreatePolyhedron () const; + G4Polyhedron* GetPolyhedron () const; + // For creating graphical representations (i.e. for visualisation). + + private: + + G4VSolid* fPtrSolid; + G4ScaleTransform* fScale; + mutable G4bool fRebuildPolyhedron; + mutable G4Polyhedron* fpPolyhedron; +} ; + +#endif diff --git a/source/geometry/solids/Boolean/include/G4UMultiUnion.hh b/source/geometry/solids/Boolean/include/G4UMultiUnion.hh index 427ab7d301..3acede0131 100644 --- a/source/geometry/solids/Boolean/include/G4UMultiUnion.hh +++ b/source/geometry/solids/Boolean/include/G4UMultiUnion.hh @@ -62,12 +62,13 @@ class G4UMultiUnion : public G4USolid inline UMultiUnion* GetShape() const; - inline void AddNode(G4VSolid& solid, G4Transform3D& trans); + void AddNode(G4VSolid& solid, G4Transform3D& trans); // Build the multiple union by adding nodes - inline G4Transform3D* GetTransformation(G4int index) const; - inline G4VSolid* GetSolid(G4int index) const; - inline int GetNumberOfSolids()const; - inline void Voxelize(); + G4Transform3D* GetTransformation(G4int index) const; + G4VSolid* GetSolid(G4int index) const; + G4int GetNumberOfSolids()const; + void Voxelize(); + public: // without description G4UMultiUnion(__void__&); @@ -92,53 +93,6 @@ inline UMultiUnion* G4UMultiUnion::GetShape() const return (UMultiUnion*) fShape; } -inline void G4UMultiUnion::AddNode(G4VSolid& solid, G4Transform3D& trans) -{ - HepGeom::Rotate3D rot; - HepGeom::Translate3D transl ; - HepGeom::Scale3D scale; - - trans.getDecomposition(scale,rot,transl); - G4ThreeVector pos = transl.getTranslation(); - - UTransform3D tr; - tr.fRot[0] = rot.xx(); tr.fRot[1] = rot.xy(); tr.fRot[2] = rot.xz(); - tr.fRot[3] = rot.yx(); tr.fRot[4] = rot.yy(); tr.fRot[5] = rot.yz(); - tr.fRot[6] = rot.zx(); tr.fRot[7] = rot.zy(); tr.fRot[8] = rot.zz(); - tr.fTr = UVector3(pos.x(), pos.y(), pos.z()); - - GetShape()->AddNode(*(static_cast(solid).GetSolid()), tr); -} - -inline G4Transform3D* G4UMultiUnion::GetTransformation(G4int index) const -{ - UTransform3D tr = GetShape()->GetTransformation(index); - - G4RotationMatrix - rot(CLHEP::HepRep3x3(tr.fRot[0], tr.fRot[1], tr.fRot[2], - tr.fRot[3], tr.fRot[4], tr.fRot[5], - tr.fRot[6], tr.fRot[7], tr.fRot[8])); - G4ThreeVector transl(tr.fTr.x(), tr.fTr.y(), tr.fTr.z()); - - return new G4Transform3D(rot, transl); -} - -inline G4VSolid* G4UMultiUnion::GetSolid(G4int index) const -{ - VUSolid* solid = GetShape()->GetSolid(index); - return new G4USolid(solid->GetName(), solid); -} - -inline int G4UMultiUnion::GetNumberOfSolids()const -{ - return GetShape()->GetNumberOfSolids(); -} - -inline void G4UMultiUnion::Voxelize() -{ - GetShape()->Voxelize(); -} - #endif // G4GEOM_USE_USOLIDS #endif diff --git a/source/geometry/solids/Boolean/sources.cmake b/source/geometry/solids/Boolean/sources.cmake index 76f7ca7ba7..d6b52fac49 100644 --- a/source/geometry/solids/Boolean/sources.cmake +++ b/source/geometry/solids/Boolean/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 85608 2014-10-31 11:23:30Z gcosmo $ +# $Id: sources.cmake 96129 2016-03-16 22:05:08Z gcosmo $ # #------------------------------------------------------------------------------ @@ -39,6 +39,7 @@ GEANT4_DEFINE_MODULE(NAME G4geomBoolean G4DisplacedSolid.hh G4IntersectionSolid.hh G4MultiUnion.hh + G4ScaledSolid.hh G4SubtractionSolid.hh G4UMultiUnion.hh G4UnionSolid.hh @@ -46,6 +47,7 @@ GEANT4_DEFINE_MODULE(NAME G4geomBoolean G4BooleanSolid.cc G4DisplacedSolid.cc G4IntersectionSolid.cc + G4ScaledSolid.cc G4SubtractionSolid.cc G4UMultiUnion.cc G4UnionSolid.cc diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index 7f0d289184..8db4d63b65 100644 --- a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc +++ b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc @@ -24,19 +24,25 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.cc 92010 2015-08-13 10:07:52Z gcosmo $ +// $Id: G4BooleanSolid.cc 97300 2016-06-01 09:27:19Z gcosmo $ // // Implementation for the abstract base class for solids created by boolean // operations between other solids // // History: // -// 10.09.98 V.Grichine, created +// 2016.03.16 E.Tcherniaev - added GetListOfPrimitives(), +// reimplemented GetPointOnSurface() +// +// 1998.09.10 V.Grichine - created // // -------------------------------------------------------------------- #include "G4BooleanSolid.hh" #include "G4VSolid.hh" +#include "G4DisplacedSolid.hh" +#include "G4ReflectedSolid.hh" +#include "G4ScaledSolid.hh" #include "G4Polyhedron.hh" #include "HepPolyhedronProcessor.h" #include "Randomize.hh" @@ -55,9 +61,10 @@ namespace G4BooleanSolid::G4BooleanSolid( const G4String& pName, G4VSolid* pSolidA , G4VSolid* pSolidB ) : - G4VSolid(pName), fAreaRatio(0.), fStatistics(1000000), fCubVolEpsilon(0.001), + G4VSolid(pName), fStatistics(1000000), fCubVolEpsilon(0.001), fAreaAccuracy(-1.), fCubicVolume(0.), fSurfaceArea(0.), - fRebuildPolyhedron(false), fpPolyhedron(0), createdDisplacedSolid(false) + fRebuildPolyhedron(false), fpPolyhedron(0), fPrimitivesSurfaceArea(0.), + createdDisplacedSolid(false) { fPtrSolidA = pSolidA ; fPtrSolidB = pSolidB ; @@ -72,9 +79,10 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, G4VSolid* pSolidB , G4RotationMatrix* rotMatrix, const G4ThreeVector& transVector ) : - G4VSolid(pName), fAreaRatio(0.), fStatistics(1000000), fCubVolEpsilon(0.001), + G4VSolid(pName), fStatistics(1000000), fCubVolEpsilon(0.001), fAreaAccuracy(-1.), fCubicVolume(0.), fSurfaceArea(0.), - fRebuildPolyhedron(false), fpPolyhedron(0), createdDisplacedSolid(true) + fRebuildPolyhedron(false), fpPolyhedron(0), fPrimitivesSurfaceArea(0.), + createdDisplacedSolid(true) { fPtrSolidA = pSolidA ; fPtrSolidB = new G4DisplacedSolid("placedB",pSolidB,rotMatrix,transVector) ; @@ -88,9 +96,10 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, G4VSolid* pSolidA , G4VSolid* pSolidB , const G4Transform3D& transform ) : - G4VSolid(pName), fAreaRatio(0.), fStatistics(1000000), fCubVolEpsilon(0.001), + G4VSolid(pName), fStatistics(1000000), fCubVolEpsilon(0.001), fAreaAccuracy(-1.), fCubicVolume(0.), fSurfaceArea(0.), - fRebuildPolyhedron(false), fpPolyhedron(0), createdDisplacedSolid(true) + fRebuildPolyhedron(false), fpPolyhedron(0), fPrimitivesSurfaceArea(0.), + createdDisplacedSolid(true) { fPtrSolidA = pSolidA ; fPtrSolidB = new G4DisplacedSolid("placedB",pSolidB,transform) ; @@ -102,10 +111,11 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, // for usage restricted to object persistency. G4BooleanSolid::G4BooleanSolid( __void__& a ) - : G4VSolid(a), fPtrSolidA(0), fPtrSolidB(0), fAreaRatio(0.), + : G4VSolid(a), fPtrSolidA(0), fPtrSolidB(0), fStatistics(1000000), fCubVolEpsilon(0.001), fAreaAccuracy(-1.), fCubicVolume(0.), fSurfaceArea(0.), - fRebuildPolyhedron(false), fpPolyhedron(0), createdDisplacedSolid(false) + fRebuildPolyhedron(false), fpPolyhedron(0), fPrimitivesSurfaceArea(0.), + createdDisplacedSolid(false) { } @@ -128,12 +138,12 @@ G4BooleanSolid::~G4BooleanSolid() G4BooleanSolid::G4BooleanSolid(const G4BooleanSolid& rhs) : G4VSolid (rhs), fPtrSolidA(rhs.fPtrSolidA), fPtrSolidB(rhs.fPtrSolidB), - fAreaRatio(rhs.fAreaRatio), fStatistics(rhs.fStatistics), fCubVolEpsilon(rhs.fCubVolEpsilon), fAreaAccuracy(rhs.fAreaAccuracy), fCubicVolume(rhs.fCubicVolume), fSurfaceArea(rhs.fSurfaceArea), fRebuildPolyhedron(false), fpPolyhedron(0), createdDisplacedSolid(rhs.createdDisplacedSolid) { + fPrimitives.resize(0); fPrimitivesSurfaceArea = 0.; } /////////////////////////////////////////////////////////////// @@ -153,21 +163,21 @@ G4BooleanSolid& G4BooleanSolid::operator = (const G4BooleanSolid& rhs) // Copy data // fPtrSolidA= rhs.fPtrSolidA; fPtrSolidB= rhs.fPtrSolidB; - fAreaRatio= rhs.fAreaRatio; fStatistics= rhs.fStatistics; fCubVolEpsilon= rhs.fCubVolEpsilon; fAreaAccuracy= rhs.fAreaAccuracy; fCubicVolume= rhs.fCubicVolume; - fSurfaceArea= rhs.fSurfaceArea; fpPolyhedron= 0; + fSurfaceArea= rhs.fSurfaceArea; createdDisplacedSolid= rhs.createdDisplacedSolid; fRebuildPolyhedron = false; delete fpPolyhedron; fpPolyhedron = 0; + fPrimitives.resize(0); fPrimitivesSurfaceArea = 0.; return *this; } /////////////////////////////////////////////////////////////// // -// If Solid is made up from a Boolean operation of two solids, -// return the corresponding solid (for no=0 and 1) +// If solid is made up from a Boolean operation of two solids, +// return the corresponding solid (for no=0 and 1) // If the solid is not a "Boolean", return 0 const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const @@ -189,8 +199,8 @@ const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const /////////////////////////////////////////////////////////////// // -// If Solid is made up from a Boolean operation of two solids, -// return the corresponding solid (for no=0 and 1) +// If solid is made up from a Boolean operation of two solids, +// return the corresponding solid (for no=0 and 1) // If the solid is not a "Boolean", return 0 G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) @@ -240,23 +250,114 @@ std::ostream& G4BooleanSolid::StreamInfo(std::ostream& os) const ////////////////////////////////////////////////////////////////////////// // -// Returns a point (G4ThreeVector) randomly and uniformly selected -// on the solid surface +// Creates list of constituent primitives of and their placements + +void G4BooleanSolid::GetListOfPrimitives( + std::vector>& primitives, + const G4Transform3D& curPlacement) const +{ + G4Transform3D transform; + G4VSolid* solid; + G4String type; + + // Repeat two times, first time for fPtrSolidA and then for fPtrSolidB + // + for (G4int i=0; i<2; i++) + { + transform = curPlacement; + solid = (i == 0) ? fPtrSolidA : fPtrSolidB; + type = solid->GetEntityType(); + + // While current solid is a trasformed solid just modify transform + // + while (type == "G4DisplacedSolid" || + type == "G4ReflectedSolid" || + type == "G4ScaledSolid") + { + if (type == "G4DisplacedSolid") + { + transform = transform * G4Transform3D( + ((G4DisplacedSolid*)solid)->GetObjectRotation(), + ((G4DisplacedSolid*)solid)->GetObjectTranslation()); + solid = ((G4DisplacedSolid*)solid)->GetConstituentMovedSolid(); + } + else if (type == "G4ReflectedSolid") + { + transform= transform*((G4ReflectedSolid*)solid)->GetDirectTransform3D(); + solid = ((G4ReflectedSolid*)solid)->GetConstituentMovedSolid(); + } + else if (type == "G4ScaledSolid") + { + transform = transform * ((G4ScaledSolid*)solid)->GetScaleTransform(); + solid = ((G4ScaledSolid*)solid)->GetUnscaledSolid(); + } + type = solid->GetEntityType(); + } + + // If current solid is a Boolean solid then continue recursion, + // otherwise add it to the list of primitives + // + if (type == "G4UnionSolid" || + type == "G4SubtractionSolid" || + type == "G4IntersectionSolid" || + type == "G4BooleanSolid") + { + ((G4BooleanSolid *)solid)->GetListOfPrimitives(primitives,transform); + } + else + { + primitives.push_back(std::pair(solid,transform)); + } + } +} + +////////////////////////////////////////////////////////////////////////// // +// Returns a point (G4ThreeVector) randomly and uniformly selected +// on the surface of the solid G4ThreeVector G4BooleanSolid::GetPointOnSurface() const { - G4double rand; - G4ThreeVector p; + G4int nprims = fPrimitives.size(); + std::pair prim; - do // Loop checking, 13.08.2015, G.Cosmo + // Get list of primitives and find the total area of their surfaces + // + if (nprims == 0) { - rand = G4UniformRand(); - - if (rand < GetAreaRatio()) { p = fPtrSolidA->GetPointOnSurface(); } - else { p = fPtrSolidB->GetPointOnSurface(); } - } while (Inside(p) != kSurface); + GetListOfPrimitives(fPrimitives, G4Transform3D()); + nprims = fPrimitives.size(); + fPrimitivesSurfaceArea = 0.; + for (G4int i=0; iGetSurfaceArea(); + } + } + // Select random primitive, get random point on its surface and + // check that the point belongs to the surface of the solid + // + G4ThreeVector p; + for (G4int k=0; k<1000000; k++) // try 1000000 times + { + G4double rand = fPrimitivesSurfaceArea * G4UniformRand(); + G4double area = 0.; + for (G4int i=0; iGetSurfaceArea(); + if (rand < area) break; + } + p = prim.first->GetPointOnSurface(); + p = prim.second * G4Point3D(p); + if (Inside(p) == kSurface) return p; + } + std::ostringstream message; + message << "Solid - " << GetName() << "\n" + << "All attempts to generate a point on the surface have failed.\n" + << "Returning point from the last unsuccessful attempt!"; + G4Exception("G4BooleanSolid::GetPointOnSurface()", + "GeomSolids1001", JustWarning, message); return p; } diff --git a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc index 93f0871c2b..c416de974d 100644 --- a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DisplacedSolid.cc 84211 2014-10-10 14:47:30Z gcosmo $ +// $Id: G4DisplacedSolid.cc 97300 2016-06-01 09:27:19Z gcosmo $ // // Implementation for G4DisplacedSolid class for boolean // operations between other solids diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index 8982f8122e..149deacc7b 100644 --- a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.cc 92010 2015-08-13 10:07:52Z gcosmo $ +// $Id: G4IntersectionSolid.cc 95390 2016-02-08 14:46:28Z gcosmo $ // // Implementation of methods for the class G4IntersectionSolid // @@ -158,10 +158,6 @@ G4IntersectionSolid::CalculateExtent(const EAxis pAxis, pMin = std::max( minA, minB ); pMax = std::min( maxA, maxB ); out = (pMax > pMin); // true; -#ifdef G4BOOLDEBUG - // G4cout.precision(16); - // G4cout<<"pMin = "<CalculateExtent(kXAxis,unLimit,unTransform,x1,x2); + fPtrSolid->CalculateExtent(kYAxis,unLimit,unTransform,y1,y2); + fPtrSolid->CalculateExtent(kZAxis,unLimit,unTransform,z1,z2); + G4BoundingEnvelope bbox(G4Point3D(x1,y1,z1), + G4Point3D(x2,y2,z2),kCarTolerance); + + // Set combined transformation + G4Transform3D transform3D = + G4Transform3D(pTransform.NetRotation().inverse(), + pTransform.NetTranslation())*GetScaleTransform(); + + // Find extent + return bbox.CalculateExtent(pAxis,pVoxelLimit,transform3D,pMin,pMax); +} + +///////////////////////////////////////////////////// +// +// Inside +// +EInside G4ScaledSolid::Inside(const G4ThreeVector& p) const +{ + return fPtrSolid->Inside(fScale->Transform(p)); +} + +////////////////////////////////////////////////////////////// +// +// SurfaceNormal +// +G4ThreeVector +G4ScaledSolid::SurfaceNormal( const G4ThreeVector& p ) const +{ + // Transform point to unscaled shape frame + G4ThreeVector newPoint; + fScale->Transform(p, newPoint); + + // Compute normal in unscaled frame + G4ThreeVector newNormal = fPtrSolid->SurfaceNormal(newPoint); + G4ThreeVector normal; + + // Convert normal to scaled frame + fScale->InverseTransformNormal(newNormal, normal); + return normal/normal.mag(); +} + +///////////////////////////////////////////////////////////// +// +// The same algorithm as in DistanceToIn(p) +// +G4double +G4ScaledSolid::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const +{ + // Transform point and direction to unscaled shape frame + G4ThreeVector newPoint; + fScale->Transform(p, newPoint); + + // Direction is un-normalized after scale transformation + G4ThreeVector newDirection; + fScale->Transform(v, newDirection); + newDirection = newDirection/newDirection.mag(); + + // Compute distance in unscaled system + G4double dist = fPtrSolid->DistanceToIn(newPoint,newDirection); + + // Return converted distance to global + return fScale->InverseTransformDistance(dist, newDirection); +} + +//////////////////////////////////////////////////////// +// +// Approximate nearest distance from the point p to the solid from outside +// +G4double +G4ScaledSolid::DistanceToIn( const G4ThreeVector& p ) const +{ + // Transform point to unscaled shape frame + G4ThreeVector newPoint; + fScale->Transform(p, newPoint); + + // Compute unscaled safety, then scale it. + G4double dist = fPtrSolid->DistanceToIn(newPoint); + return fScale->InverseTransformDistance(dist); +} + +////////////////////////////////////////////////////////// +// +// The same algorithm as DistanceToOut(p) +// +G4double +G4ScaledSolid::DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const +{ + // Transform point and direction to unscaled shape frame + G4ThreeVector newPoint; + fScale->Transform(p, newPoint); + + // Direction is un-normalized after scale transformation + G4ThreeVector newDirection; + fScale->Transform(v, newDirection); + newDirection = newDirection/newDirection.mag(); + + // Compute distance in unscaled system + G4ThreeVector solNorm; + G4double dist = fPtrSolid->DistanceToOut(newPoint,newDirection, + calcNorm,validNorm,&solNorm); + if(calcNorm) + { + G4ThreeVector normal; + fScale->TransformNormal(solNorm, normal); + *n = normal/normal.mag(); + } + + // Return distance converted to global + return fScale->InverseTransformDistance(dist, newDirection); +} + +////////////////////////////////////////////////////////////// +// +// Approximate nearest distance from the point p to the solid from inside +// +G4double +G4ScaledSolid::DistanceToOut( const G4ThreeVector& p ) const +{ + // Transform point to unscaled shape frame + G4ThreeVector newPoint; + fScale->Transform(p, newPoint); + + // Compute unscaled safety, then scale it. + G4double dist = fPtrSolid->DistanceToOut(newPoint); + return fScale->InverseTransformDistance(dist); +} + +////////////////////////////////////////////////////////////// +// +// ComputeDimensions +// +void +G4ScaledSolid::ComputeDimensions( G4VPVParameterisation*, + const G4int, + const G4VPhysicalVolume* ) +{ + DumpInfo(); + G4Exception("G4ScaledSolid::ComputeDimensions()", + "GeomSolids0001", FatalException, + "Method not applicable in this context!"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Returns a point (G4ThreeVector) randomly and uniformly selected +// on the solid surface +// +G4ThreeVector G4ScaledSolid::GetPointOnSurface() const +{ + return fScale->InverseTransform(fPtrSolid->GetPointOnSurface()); +} + +////////////////////////////////////////////////////////////////////////// +// +// Return object type name +// +G4GeometryType G4ScaledSolid::GetEntityType() const +{ + return G4String("G4ScaledSolid"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Make a clone of the object +// +G4VSolid* G4ScaledSolid::Clone() const +{ + return new G4ScaledSolid(*this); +} + +////////////////////////////////////////////////////////////////////////// +// +// Returning the scaling transformation +// +G4Scale3D G4ScaledSolid::GetScaleTransform() const +{ + return G4Scale3D(fScale->GetScale().x(), + fScale->GetScale().y(), + fScale->GetScale().z()); +} + +////////////////////////////////////////////////////////////////////////// +// +// Setting the scaling transformation +// +void G4ScaledSolid::SetScaleTransform(const G4Scale3D& scale) +{ + if (fScale) { delete fScale; } + fScale = new G4ScaleTransform(scale); + fRebuildPolyhedron = true; +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream +// +std::ostream& G4ScaledSolid::StreamInfo(std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for Scaled solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: " << GetEntityType() << "\n" + << " Parameters of constituent solid: \n" + << "===========================================================\n"; + fPtrSolid->StreamInfo(os); + os << "===========================================================\n" + << " Scaling: \n" + << " Scale transformation : \n" + << " " << fScale->GetScale().x() << ", " + << fScale->GetScale().y() << ", " + << fScale->GetScale().z() << "\n" + << "===========================================================\n"; + + return os; +} + +////////////////////////////////////////////////////////////////////////// +// +// DescribeYourselfTo +// +void +G4ScaledSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const +{ + scene.AddSolid (*this); +} + +////////////////////////////////////////////////////////////////////////// +// +// CreatePolyhedron +// +G4Polyhedron* +G4ScaledSolid::CreatePolyhedron () const +{ + G4Polyhedron* polyhedron = fPtrSolid->CreatePolyhedron(); + polyhedron->Transform(GetScaleTransform()); + return polyhedron; +} + +////////////////////////////////////////////////////////////////////////// +// +// GetPolyhedron +// +G4Polyhedron* G4ScaledSolid::GetPolyhedron () const +{ + if (!fpPolyhedron || + fRebuildPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + fpPolyhedron = CreatePolyhedron(); + fRebuildPolyhedron = false; + } + return fpPolyhedron; +} diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index 18e664b1c0..9a0a204ceb 100644 --- a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.cc 92010 2015-08-13 10:07:52Z gcosmo $ +// $Id: G4SubtractionSolid.cc 95390 2016-02-08 14:46:28Z gcosmo $ // // Implementation of methods for the class G4IntersectionSolid // @@ -169,12 +169,13 @@ EInside G4SubtractionSolid::Inside( const G4ThreeVector& p ) const } else { + static const G4double rtol + = 1000.0*G4GeometryTolerance::GetInstance()->GetRadialTolerance(); if(( positionA == kInside && positionB == kSurface) || ( positionB == kOutside && positionA == kSurface) || ( positionA == kSurface && positionB == kSurface && ( fPtrSolidA->SurfaceNormal(p) - - fPtrSolidB->SurfaceNormal(p) ).mag2() > - 1000.0*G4GeometryTolerance::GetInstance()->GetRadialTolerance() ) ) + fPtrSolidB->SurfaceNormal(p) ).mag2() > rtol ) ) { return kSurface; } diff --git a/source/geometry/solids/Boolean/src/G4UMultiUnion.cc b/source/geometry/solids/Boolean/src/G4UMultiUnion.cc index b7beaf33e3..af95b97b36 100644 --- a/source/geometry/solids/Boolean/src/G4UMultiUnion.cc +++ b/source/geometry/solids/Boolean/src/G4UMultiUnion.cc @@ -92,6 +92,58 @@ G4UMultiUnion& G4UMultiUnion::operator=(const G4UMultiUnion &source) } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers +// +void G4UMultiUnion::AddNode(G4VSolid& solid, G4Transform3D& trans) +{ + HepGeom::Rotate3D rot; + HepGeom::Translate3D transl ; + HepGeom::Scale3D scale; + + trans.getDecomposition(scale,rot,transl); + G4ThreeVector pos = transl.getTranslation(); + + UTransform3D tr; + tr.fRot[0] = rot.xx(); tr.fRot[1] = rot.xy(); tr.fRot[2] = rot.xz(); + tr.fRot[3] = rot.yx(); tr.fRot[4] = rot.yy(); tr.fRot[5] = rot.yz(); + tr.fRot[6] = rot.zx(); tr.fRot[7] = rot.zy(); tr.fRot[8] = rot.zz(); + tr.fTr = UVector3(pos.x(), pos.y(), pos.z()); + + GetShape()->AddNode(*(static_cast(solid).GetSolid()), tr); +} + +G4Transform3D* G4UMultiUnion::GetTransformation(G4int index) const +{ + UTransform3D tr = GetShape()->GetTransformation(index); + + G4RotationMatrix + rot(CLHEP::HepRep3x3(tr.fRot[0], tr.fRot[1], tr.fRot[2], + tr.fRot[3], tr.fRot[4], tr.fRot[5], + tr.fRot[6], tr.fRot[7], tr.fRot[8])); + G4ThreeVector transl(tr.fTr.x(), tr.fTr.y(), tr.fTr.z()); + + return new G4Transform3D(rot, transl); +} + +G4VSolid* G4UMultiUnion::GetSolid(G4int index) const +{ + VUSolid* solid = GetShape()->GetSolid(index); + return new G4USolid(solid->GetName(), solid); +} + +G4int G4UMultiUnion::GetNumberOfSolids()const +{ + return GetShape()->GetNumberOfSolids(); +} + +void G4UMultiUnion::Voxelize() +{ + GetShape()->Voxelize(); +} + + ////////////////////////////////////////////////////////////////////////// // // CreatePolyhedron diff --git a/source/geometry/solids/Boolean/src/G4UnionSolid.cc b/source/geometry/solids/Boolean/src/G4UnionSolid.cc index 680044bc68..6f722fecb1 100644 --- a/source/geometry/solids/Boolean/src/G4UnionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4UnionSolid.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.cc 92010 2015-08-13 10:07:52Z gcosmo $ +// $Id: G4UnionSolid.cc 95390 2016-02-08 14:46:28Z gcosmo $ // // Implementation of methods for the class G4IntersectionSolid // @@ -173,13 +173,14 @@ EInside G4UnionSolid::Inside( const G4ThreeVector& p ) const EInside positionA = fPtrSolidA->Inside(p); if (positionA == kInside) { return kInside; } + static const G4double rtol + = 1000*G4GeometryTolerance::GetInstance()->GetRadialTolerance(); EInside positionB = fPtrSolidB->Inside(p); if( positionB == kInside || ( positionA == kSurface && positionB == kSurface && ( fPtrSolidA->SurfaceNormal(p) + - fPtrSolidB->SurfaceNormal(p) ).mag2() < - 1000*G4GeometryTolerance::GetInstance()->GetRadialTolerance() ) ) + fPtrSolidB->SurfaceNormal(p) ).mag2() < rtol ) ) { return kInside; } diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index afa7e7a71d..a6d9d7ad34 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,4 +1,4 @@ -$Id: History 93494 2015-10-23 10:05:09Z gcosmo $ +$Id: History 97008 2016-05-20 08:57:10Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,24 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 20, 2016 G.Cosmo geom-csg-V10-02-04 +- Moved accessors and modifiers in USolids wrappers to be not inlined. + Required modification in order to allow correct dispatching to VecGeom + types. + +April 15, 2016 G.Cosmo geom-csg-V10-02-03 +- Added flag in USolids wrappers for partial use of USolids/VecGeom types. + +April 5, 2016 J.Allison geom-csg-V10-02-02 +- G4Orb.cc: Fixed typo in G4Exception message. + +March 31, 2016 G.Cosmo geom-csg-V10-02-01 +- Added overloaded CreatePolyhedron() method to USolids wrappers. + It is now possible to visualize supported VecGeom shapes. + +March 10, 2016 G.Cosmo geom-csg-V10-02-00 +- Added overloaded GetEntityType() method to USolids wrappers. + October 23, 2015 G.Cosmo geom-csg-V10-01-10 - Fixed Coverity defect in G4CutTubs::GetMaxMinZ(). diff --git a/source/geometry/solids/CSG/include/G4UBox.hh b/source/geometry/solids/CSG/include/G4UBox.hh index ca09d3fb5a..5f04faa216 100644 --- a/source/geometry/solids/CSG/include/G4UBox.hh +++ b/source/geometry/solids/CSG/include/G4UBox.hh @@ -44,9 +44,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UBox.hh" + #include "G4Polyhedron.hh" class G4UBox : public G4USolid @@ -66,13 +67,17 @@ class G4UBox : public G4USolid inline UBox* GetShape() const; - inline G4double GetXHalfLength() const; - inline G4double GetYHalfLength() const; - inline G4double GetZHalfLength() const; + G4double GetXHalfLength() const; + G4double GetYHalfLength() const; + G4double GetZHalfLength() const; - inline void SetXHalfLength(G4double dx); - inline void SetYHalfLength(G4double dy); - inline void SetZHalfLength(G4double dz); + void SetXHalfLength(G4double dx); + void SetYHalfLength(G4double dy); + void SetZHalfLength(G4double dz); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -95,33 +100,9 @@ inline UBox* G4UBox::GetShape() const return (UBox*) fShape; } -inline G4double G4UBox::GetXHalfLength() const +inline G4GeometryType G4UBox::GetEntityType() const { - return GetShape()->GetXHalfLength(); -} -inline G4double G4UBox::GetYHalfLength() const -{ - return GetShape()->GetYHalfLength(); -} -inline G4double G4UBox::GetZHalfLength() const -{ - return GetShape()->GetZHalfLength(); -} - -inline void G4UBox::SetXHalfLength(G4double dx) -{ - GetShape()->SetXHalfLength(dx); - fRebuildPolyhedron = true; -} -inline void G4UBox::SetYHalfLength(G4double dy) -{ - GetShape()->SetYHalfLength(dy); - fRebuildPolyhedron = true; -} -inline void G4UBox::SetZHalfLength(G4double dz) -{ - GetShape()->SetZHalfLength(dz); - fRebuildPolyhedron = true; + return "G4Box"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4UCons.hh b/source/geometry/solids/CSG/include/G4UCons.hh index 36e3d37418..c4380234cb 100644 --- a/source/geometry/solids/CSG/include/G4UCons.hh +++ b/source/geometry/solids/CSG/include/G4UCons.hh @@ -45,9 +45,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UCons.hh" + #include "G4Polyhedron.hh" class G4UCons : public G4USolid @@ -71,21 +72,25 @@ class G4UCons : public G4USolid inline UCons* GetShape() const; - inline G4double GetInnerRadiusMinusZ() const; - inline G4double GetOuterRadiusMinusZ() const; - inline G4double GetInnerRadiusPlusZ() const; - inline G4double GetOuterRadiusPlusZ() const; - inline G4double GetZHalfLength() const; - inline G4double GetStartPhiAngle() const; - inline G4double GetDeltaPhiAngle() const; + G4double GetInnerRadiusMinusZ() const; + G4double GetOuterRadiusMinusZ() const; + G4double GetInnerRadiusPlusZ() const; + G4double GetOuterRadiusPlusZ() const; + G4double GetZHalfLength() const; + G4double GetStartPhiAngle() const; + G4double GetDeltaPhiAngle() const; - inline void SetInnerRadiusMinusZ (G4double Rmin1 ); - inline void SetOuterRadiusMinusZ (G4double Rmax1 ); - inline void SetInnerRadiusPlusZ (G4double Rmin2 ); - inline void SetOuterRadiusPlusZ (G4double Rmax2 ); - inline void SetZHalfLength (G4double newDz ); - inline void SetStartPhiAngle (G4double newSPhi, G4bool trig=true); - inline void SetDeltaPhiAngle (G4double newDPhi); + void SetInnerRadiusMinusZ (G4double Rmin1 ); + void SetOuterRadiusMinusZ (G4double Rmax1 ); + void SetInnerRadiusPlusZ (G4double Rmin2 ); + void SetOuterRadiusPlusZ (G4double Rmax2 ); + void SetZHalfLength (G4double newDz ); + void SetStartPhiAngle (G4double newSPhi, G4bool trig=true); + void SetDeltaPhiAngle (G4double newDPhi); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -108,69 +113,9 @@ inline UCons* G4UCons::GetShape() const return (UCons*) fShape; } -inline G4double G4UCons::GetInnerRadiusMinusZ() const +inline G4GeometryType G4UCons::GetEntityType() const { - return GetShape()->GetInnerRadiusMinusZ(); -} -inline G4double G4UCons::GetOuterRadiusMinusZ() const -{ - return GetShape()->GetOuterRadiusMinusZ(); -} -inline G4double G4UCons::GetInnerRadiusPlusZ() const -{ - return GetShape()->GetInnerRadiusPlusZ(); -} -inline G4double G4UCons::GetOuterRadiusPlusZ() const -{ - return GetShape()->GetOuterRadiusPlusZ(); -} -inline G4double G4UCons::GetZHalfLength() const -{ - return GetShape()->GetZHalfLength(); -} -inline G4double G4UCons::GetStartPhiAngle() const -{ - return GetShape()->GetStartPhiAngle(); -} -inline G4double G4UCons::GetDeltaPhiAngle() const -{ - return GetShape()->GetDeltaPhiAngle(); -} - -inline void G4UCons::SetInnerRadiusMinusZ(G4double Rmin1) -{ - GetShape()->SetInnerRadiusMinusZ(Rmin1); - fRebuildPolyhedron = true; -} -inline void G4UCons::SetOuterRadiusMinusZ(G4double Rmax1) -{ - GetShape()->SetOuterRadiusMinusZ(Rmax1); - fRebuildPolyhedron = true; -} -inline void G4UCons::SetInnerRadiusPlusZ(G4double Rmin2) -{ - GetShape()->SetInnerRadiusPlusZ(Rmin2); - fRebuildPolyhedron = true; -} -inline void G4UCons::SetOuterRadiusPlusZ(G4double Rmax2) -{ - GetShape()->SetOuterRadiusPlusZ(Rmax2); - fRebuildPolyhedron = true; -} -inline void G4UCons::SetZHalfLength(G4double newDz) -{ - GetShape()->SetZHalfLength(newDz); - fRebuildPolyhedron = true; -} -inline void G4UCons::SetStartPhiAngle(G4double newSPhi, G4bool trig) -{ - GetShape()->SetStartPhiAngle(newSPhi, trig); - fRebuildPolyhedron = true; -} -inline void G4UCons::SetDeltaPhiAngle(G4double newDPhi) -{ - GetShape()->SetDeltaPhiAngle(newDPhi); - fRebuildPolyhedron = true; + return "G4Cons"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4UOrb.hh b/source/geometry/solids/CSG/include/G4UOrb.hh index 2738633e4a..b949a16c58 100644 --- a/source/geometry/solids/CSG/include/G4UOrb.hh +++ b/source/geometry/solids/CSG/include/G4UOrb.hh @@ -44,9 +44,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UOrb.hh" + #include "G4Polyhedron.hh" class G4UOrb : public G4USolid @@ -65,8 +66,12 @@ class G4UOrb : public G4USolid inline UOrb* GetShape() const; - inline G4double GetRadius() const; - inline void SetRadius(G4double newRmax); + G4double GetRadius() const; + void SetRadius(G4double newRmax); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -89,15 +94,9 @@ inline UOrb* G4UOrb::GetShape() const return (UOrb*) fShape; } -inline G4double G4UOrb::GetRadius() const +inline G4GeometryType G4UOrb::GetEntityType() const { - return GetShape()->GetRadius(); -} - -inline void G4UOrb::SetRadius(G4double newRmax) -{ - GetShape()->SetRadius(newRmax); - fRebuildPolyhedron = true; + return "G4Orb"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4USphere.hh b/source/geometry/solids/CSG/include/G4USphere.hh index 7adf58ac89..abbf751a65 100644 --- a/source/geometry/solids/CSG/include/G4USphere.hh +++ b/source/geometry/solids/CSG/include/G4USphere.hh @@ -44,9 +44,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "USphere.hh" + #include "G4Polyhedron.hh" class G4USphere : public G4USolid @@ -69,20 +70,24 @@ class G4USphere : public G4USolid G4VSolid* Clone() const; inline USphere* GetShape() const; - - inline G4double GetInnerRadius () const; - inline G4double GetOuterRadius () const; - inline G4double GetStartPhiAngle () const; - inline G4double GetDeltaPhiAngle () const; - inline G4double GetStartThetaAngle() const; - inline G4double GetDeltaThetaAngle() const; - inline void SetInnerRadius (G4double newRMin); - inline void SetOuterRadius (G4double newRmax); - inline void SetStartPhiAngle (G4double newSphi, G4bool trig=true); - inline void SetDeltaPhiAngle (G4double newDphi); - inline void SetStartThetaAngle(G4double newSTheta); - inline void SetDeltaThetaAngle(G4double newDTheta); + G4double GetInnerRadius () const; + G4double GetOuterRadius () const; + G4double GetStartPhiAngle () const; + G4double GetDeltaPhiAngle () const; + G4double GetStartThetaAngle() const; + G4double GetDeltaThetaAngle() const; + + void SetInnerRadius (G4double newRMin); + void SetOuterRadius (G4double newRmax); + void SetStartPhiAngle (G4double newSphi, G4bool trig=true); + void SetDeltaPhiAngle (G4double newDphi); + void SetStartThetaAngle(G4double newSTheta); + void SetDeltaThetaAngle(G4double newDTheta); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -106,60 +111,9 @@ inline USphere* G4USphere::GetShape() const return (USphere*) fShape; } -inline G4double G4USphere::GetInnerRadius() const +inline G4GeometryType G4USphere::GetEntityType() const { - return GetShape()->GetInnerRadius(); -} -inline G4double G4USphere::GetOuterRadius() const -{ - return GetShape()->GetOuterRadius(); -} -inline G4double G4USphere::GetStartPhiAngle() const -{ - return GetShape()->GetStartPhiAngle(); -} -inline G4double G4USphere::GetDeltaPhiAngle() const -{ - return GetShape()->GetDeltaPhiAngle(); -} -inline G4double G4USphere::GetStartThetaAngle() const -{ - return GetShape()->GetStartThetaAngle(); -} -inline G4double G4USphere::GetDeltaThetaAngle() const -{ - return GetShape()->GetDeltaThetaAngle(); -} - -inline void G4USphere::SetInnerRadius(G4double newRMin) -{ - GetShape()->SetInnerRadius(newRMin); - fRebuildPolyhedron = true; -} -inline void G4USphere::SetOuterRadius(G4double newRmax) -{ - GetShape()->SetOuterRadius(newRmax); - fRebuildPolyhedron = true; -} -inline void G4USphere::SetStartPhiAngle(G4double newSphi, G4bool trig) -{ - GetShape()->SetStartPhiAngle(newSphi, trig); - fRebuildPolyhedron = true; -} -inline void G4USphere::SetDeltaPhiAngle(G4double newDphi) -{ - GetShape()->SetDeltaPhiAngle(newDphi); - fRebuildPolyhedron = true; -} -inline void G4USphere::SetStartThetaAngle(G4double newSTheta) -{ - GetShape()->SetStartThetaAngle(newSTheta); - fRebuildPolyhedron = true; -} -inline void G4USphere::SetDeltaThetaAngle(G4double newDTheta) -{ - GetShape()->SetDeltaThetaAngle(newDTheta); - fRebuildPolyhedron = true; + return "G4Sphere"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4UTorus.hh b/source/geometry/solids/CSG/include/G4UTorus.hh index 71f3dd4f42..1b2d076f52 100644 --- a/source/geometry/solids/CSG/include/G4UTorus.hh +++ b/source/geometry/solids/CSG/include/G4UTorus.hh @@ -44,9 +44,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UTorus.hh" + #include "G4Polyhedron.hh" class G4UTorus : public G4USolid @@ -68,20 +69,24 @@ class G4UTorus : public G4USolid inline UTorus* GetShape() const; - inline G4double GetRmin() const; - inline G4double GetRmax() const; - inline G4double GetRtor() const; - inline G4double GetSPhi() const; - inline G4double GetDPhi() const; + G4double GetRmin() const; + G4double GetRmax() const; + G4double GetRtor() const; + G4double GetSPhi() const; + G4double GetDPhi() const; - inline void SetRmin(G4double arg); - inline void SetRmax(G4double arg); - inline void SetRtor(G4double arg); - inline void SetSPhi(G4double arg); - inline void SetDPhi(G4double arg); + void SetRmin(G4double arg); + void SetRmax(G4double arg); + void SetRtor(G4double arg); + void SetSPhi(G4double arg); + void SetDPhi(G4double arg); - inline void SetAllParameters(G4double arg1, G4double arg2, - G4double arg3, G4double arg4, G4double arg5); + void SetAllParameters(G4double arg1, G4double arg2, + G4double arg3, G4double arg4, G4double arg5); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -104,70 +109,9 @@ inline UTorus* G4UTorus::GetShape() const return (UTorus*) fShape; } -inline G4double G4UTorus::GetRmin() const +inline G4GeometryType G4UTorus::GetEntityType() const { - return GetShape()->GetRmin(); -} - -inline G4double G4UTorus::GetRmax() const -{ - return GetShape()->GetRmax(); -} - -inline G4double G4UTorus::GetRtor() const -{ - return GetShape()->GetRtor(); -} - -inline G4double G4UTorus::GetSPhi() const -{ - return GetShape()->GetSPhi(); -} - -inline G4double G4UTorus::GetDPhi() const -{ - return GetShape()->GetDPhi(); -} - -inline void G4UTorus::SetRmin(G4double arg) -{ - GetShape()->SetRmin(arg); - fRebuildPolyhedron = true; -} - -inline void G4UTorus::SetRmax(G4double arg) -{ - GetShape()->SetRmax(arg); - fRebuildPolyhedron = true; -} - -inline void G4UTorus::SetRtor(G4double arg) -{ - GetShape()->SetRtor(arg); - fRebuildPolyhedron = true; -} - -inline void G4UTorus::SetSPhi(G4double arg) -{ - GetShape()->SetSPhi(arg); - fRebuildPolyhedron = true; -} - -inline void G4UTorus::SetDPhi(G4double arg) -{ - GetShape()->SetDPhi(arg); - fRebuildPolyhedron = true; -} - -inline void G4UTorus::SetAllParameters(G4double arg1, G4double arg2, - G4double arg3, G4double arg4, G4double arg5) -{ - GetShape()->SetRmin(arg1); - GetShape()->SetRmax(arg2); - GetShape()->SetRtor(arg3); - GetShape()->SetSPhi(arg4); - GetShape()->SetDPhi(arg5); - fRebuildPolyhedron = true; + return "G4Torus"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4UTrap.hh b/source/geometry/solids/CSG/include/G4UTrap.hh index a76ef2a25c..8e410cf441 100644 --- a/source/geometry/solids/CSG/include/G4UTrap.hh +++ b/source/geometry/solids/CSG/include/G4UTrap.hh @@ -44,11 +44,11 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UTrap.hh" -class G4Polyhedron; +#include "G4Polyhedron.hh" class G4UTrap : public G4USolid { @@ -105,24 +105,28 @@ class G4UTrap : public G4USolid inline UTrap* GetShape() const; - inline G4double GetZHalfLength() const; - inline G4double GetYHalfLength1() const; - inline G4double GetXHalfLength1() const; - inline G4double GetXHalfLength2() const; - inline G4double GetTanAlpha1() const; - inline G4double GetYHalfLength2() const; - inline G4double GetXHalfLength3() const; - inline G4double GetXHalfLength4() const; - inline G4double GetTanAlpha2() const; - inline TrapSidePlane GetSidePlane(G4int n) const; - inline G4ThreeVector GetSymAxis() const; + G4double GetZHalfLength() const; + G4double GetYHalfLength1() const; + G4double GetXHalfLength1() const; + G4double GetXHalfLength2() const; + G4double GetTanAlpha1() const; + G4double GetYHalfLength2() const; + G4double GetXHalfLength3() const; + G4double GetXHalfLength4() const; + G4double GetTanAlpha2() const; + TrapSidePlane GetSidePlane(G4int n) const; + G4ThreeVector GetSymAxis() const; - inline void SetAllParameters(G4double pDz, G4double pTheta, G4double pPhi, - G4double pDy1, G4double pDx1, G4double pDx2, - G4double pAlp1, - G4double pDy2, G4double pDx3, G4double pDx4, - G4double pAlp2); - inline void SetPlanes(const G4ThreeVector pt[8]); + void SetAllParameters(G4double pDz, G4double pTheta, G4double pPhi, + G4double pDy1, G4double pDx1, G4double pDx2, + G4double pAlp1, + G4double pDy2, G4double pDx3, G4double pDx4, + G4double pAlp2); + void SetPlanes(const G4ThreeVector pt[8]); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -134,8 +138,6 @@ class G4UTrap : public G4USolid G4UTrap(const G4UTrap& rhs); G4UTrap& operator=(const G4UTrap& rhs); // Copy constructor and assignment operator. - - G4Polyhedron* CreatePolyhedron () const; }; // -------------------------------------------------------------------- @@ -147,76 +149,9 @@ inline UTrap* G4UTrap::GetShape() const return (UTrap*) fShape; } -inline G4double G4UTrap::GetZHalfLength() const +inline G4GeometryType G4UTrap::GetEntityType() const { - return GetShape()->GetZHalfLength(); -} -inline G4double G4UTrap::GetYHalfLength1() const -{ - return GetShape()->GetYHalfLength1(); -} -inline G4double G4UTrap::GetXHalfLength1() const -{ - return GetShape()->GetXHalfLength1(); -} -inline G4double G4UTrap::GetXHalfLength2() const -{ - return GetShape()->GetXHalfLength2(); -} -inline G4double G4UTrap::GetTanAlpha1() const -{ - return GetShape()->GetTanAlpha1(); -} -inline G4double G4UTrap::GetYHalfLength2() const -{ - return GetShape()->GetYHalfLength2(); -} -inline G4double G4UTrap::GetXHalfLength3() const -{ - return GetShape()->GetXHalfLength3(); -} -inline G4double G4UTrap::GetXHalfLength4() const -{ - return GetShape()->GetXHalfLength4(); -} -inline G4double G4UTrap::GetTanAlpha2() const -{ - return GetShape()->GetTanAlpha2(); -} -inline TrapSidePlane G4UTrap::GetSidePlane(G4int n) const -{ - UTrapSidePlane iplane = GetShape()->GetSidePlane(n); - TrapSidePlane oplane = {iplane.a, iplane.b, iplane.c, iplane.d }; - return oplane; -} -inline G4ThreeVector G4UTrap::GetSymAxis() const -{ - UVector3 axis = GetShape()->GetSymAxis(); - return G4ThreeVector(axis.x(), axis.y(), axis.z()); -} - -inline -void G4UTrap::SetAllParameters(G4double pDz, G4double pTheta, G4double pPhi, - G4double pDy1, G4double pDx1, G4double pDx2, - G4double pAlp1, - G4double pDy2, G4double pDx3, G4double pDx4, - G4double pAlp2) -{ - GetShape()->SetAllParameters(pDz, pTheta, pPhi, - pDy1, pDx1, pDx2, pAlp1, - pDy2, pDx3, pDx4, pAlp2); - fRebuildPolyhedron = true; -} - -inline void G4UTrap::SetPlanes(const G4ThreeVector pt[8]) -{ - UVector3 upt[8]; - for (unsigned int i=0; i<8; ++i) - { - upt[i] = UVector3(pt[i].x(), pt[i].y(), pt[i].z()); - } - GetShape()->SetPlanes(upt); - fRebuildPolyhedron = true; + return "G4Trap"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4UTrd.hh b/source/geometry/solids/CSG/include/G4UTrd.hh index 144c9a0f9f..4a5e70dd08 100644 --- a/source/geometry/solids/CSG/include/G4UTrd.hh +++ b/source/geometry/solids/CSG/include/G4UTrd.hh @@ -44,9 +44,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UTrd.hh" + #include "G4Polyhedron.hh" class G4UTrd : public G4USolid @@ -69,21 +70,24 @@ class G4UTrd : public G4USolid inline UTrd* GetShape() const; - inline G4double GetXHalfLength1() const; - inline G4double GetXHalfLength2() const; - inline G4double GetYHalfLength1() const; - inline G4double GetYHalfLength2() const; - inline G4double GetZHalfLength() const; + G4double GetXHalfLength1() const; + G4double GetXHalfLength2() const; + G4double GetYHalfLength1() const; + G4double GetYHalfLength2() const; + G4double GetZHalfLength() const; - inline void SetXHalfLength1(G4double val); - inline void SetXHalfLength2(G4double val); - inline void SetYHalfLength1(G4double val); - inline void SetYHalfLength2(G4double val); - inline void SetZHalfLength(G4double val); + void SetXHalfLength1(G4double val); + void SetXHalfLength2(G4double val); + void SetYHalfLength1(G4double val); + void SetYHalfLength2(G4double val); + void SetZHalfLength(G4double val); - inline void SetAllParameters(G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz); + void SetAllParameters(G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, G4double pdz); + + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; public: // without description @@ -106,58 +110,9 @@ inline UTrd* G4UTrd::GetShape() const return (UTrd*) fShape; } -inline G4double G4UTrd::GetXHalfLength1() const +inline G4GeometryType G4UTrd::GetEntityType() const { - return GetShape()->GetXHalfLength1(); -} -inline G4double G4UTrd::GetXHalfLength2() const -{ - return GetShape()->GetXHalfLength2(); -} -inline G4double G4UTrd::GetYHalfLength1() const -{ - return GetShape()->GetYHalfLength1(); -} -inline G4double G4UTrd::GetYHalfLength2() const -{ - return GetShape()->GetYHalfLength2(); -} -inline G4double G4UTrd::GetZHalfLength() const -{ - return GetShape()->GetZHalfLength(); -} - -inline void G4UTrd::SetXHalfLength1(G4double val) -{ - GetShape()->SetXHalfLength1(val); - fRebuildPolyhedron = true; -} -inline void G4UTrd::SetXHalfLength2(G4double val) -{ - GetShape()->SetXHalfLength2(val); - fRebuildPolyhedron = true; -} -inline void G4UTrd::SetYHalfLength1(G4double val) -{ - GetShape()->SetYHalfLength1(val); - fRebuildPolyhedron = true; -} -inline void G4UTrd::SetYHalfLength2(G4double val) -{ - GetShape()->SetYHalfLength2(val); - fRebuildPolyhedron = true; -} -inline void G4UTrd::SetZHalfLength(G4double val) -{ - GetShape()->SetZHalfLength(val); - fRebuildPolyhedron = true; -} -inline void G4UTrd::SetAllParameters(G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz) -{ - GetShape()->SetAllParameters(pdx1, pdx2, pdy1, pdy2, pdz); - fRebuildPolyhedron = true; + return "G4Trd"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/include/G4UTubs.hh b/source/geometry/solids/CSG/include/G4UTubs.hh index 0079957be1..58c8c01540 100644 --- a/source/geometry/solids/CSG/include/G4UTubs.hh +++ b/source/geometry/solids/CSG/include/G4UTubs.hh @@ -46,9 +46,10 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UTubs.hh" + #include "G4Polyhedron.hh" class G4UTubs : public G4USolid @@ -73,18 +74,22 @@ class G4UTubs : public G4USolid inline UTubs* GetShape() const; - inline G4double GetInnerRadius () const; - inline G4double GetOuterRadius () const; - inline G4double GetZHalfLength () const; - inline G4double GetStartPhiAngle () const; - inline G4double GetDeltaPhiAngle () const; + G4double GetInnerRadius () const; + G4double GetOuterRadius () const; + G4double GetZHalfLength () const; + G4double GetStartPhiAngle () const; + G4double GetDeltaPhiAngle () const; - inline void SetInnerRadius (G4double newRMin); - inline void SetOuterRadius (G4double newRMax); - inline void SetZHalfLength (G4double newDz); - inline void SetStartPhiAngle (G4double newSPhi, G4bool trig=true); - inline void SetDeltaPhiAngle (G4double newDPhi); + void SetInnerRadius (G4double newRMin); + void SetOuterRadius (G4double newRMax); + void SetZHalfLength (G4double newDz); + void SetStartPhiAngle (G4double newSPhi, G4bool trig=true); + void SetDeltaPhiAngle (G4double newDPhi); + inline G4GeometryType GetEntityType() const; + + G4Polyhedron* CreatePolyhedron() const; + public: // without description G4UTubs(__void__&); @@ -107,51 +112,9 @@ inline UTubs* G4UTubs::GetShape() const return (UTubs*) fShape; } -inline G4double G4UTubs::GetInnerRadius() const +inline G4GeometryType G4UTubs::GetEntityType() const { - return GetShape()->GetInnerRadius(); -} -inline G4double G4UTubs::GetOuterRadius() const -{ - return GetShape()->GetOuterRadius(); -} -inline G4double G4UTubs::GetZHalfLength() const -{ - return GetShape()->GetZHalfLength(); -} -inline G4double G4UTubs::GetStartPhiAngle() const -{ - return GetShape()->GetStartPhiAngle(); -} -inline G4double G4UTubs::GetDeltaPhiAngle() const -{ - return GetShape()->GetDeltaPhiAngle(); -} - -inline void G4UTubs::SetInnerRadius(G4double newRMin) -{ - GetShape()->SetInnerRadius(newRMin); - fRebuildPolyhedron = true; -} -inline void G4UTubs::SetOuterRadius(G4double newRMax) -{ - GetShape()->SetOuterRadius(newRMax); - fRebuildPolyhedron = true; -} -inline void G4UTubs::SetZHalfLength(G4double newDz) -{ - GetShape()->SetZHalfLength(newDz); - fRebuildPolyhedron = true; -} -inline void G4UTubs::SetStartPhiAngle(G4double newSPhi, G4bool trig) -{ - GetShape()->SetStartPhiAngle(newSPhi, trig); - fRebuildPolyhedron = true; -} -inline void G4UTubs::SetDeltaPhiAngle(G4double newDPhi) -{ - GetShape()->SetDeltaPhiAngle(newDPhi); - fRebuildPolyhedron = true; + return "G4Tubs"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4Orb.cc b/source/geometry/solids/CSG/src/G4Orb.cc index 0ca44924f9..76b37aa0f1 100644 --- a/source/geometry/solids/CSG/src/G4Orb.cc +++ b/source/geometry/solids/CSG/src/G4Orb.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Orb.cc 83572 2014-09-01 15:23:27Z gcosmo $ +// $Id: G4Orb.cc 96318 2016-04-06 07:26:42Z gcosmo $ // // class G4Orb // @@ -83,7 +83,7 @@ G4Orb::G4Orb( const G4String& pName, G4double pRmax ) if ( pRmax < 10*kCarTolerance ) { G4Exception("G4Orb::G4Orb()", "GeomSolids0002", FatalException, - "Invalid radius > 10*kCarTolerance."); + "Invalid radius < 10*kCarTolerance."); } fRmaxTolerance = std::max( kRadTolerance, fEpsilon*fRmax); diff --git a/source/geometry/solids/CSG/src/G4UBox.cc b/source/geometry/solids/CSG/src/G4UBox.cc index efd1c9ad52..ada7025b6d 100644 --- a/source/geometry/solids/CSG/src/G4UBox.cc +++ b/source/geometry/solids/CSG/src/G4UBox.cc @@ -33,7 +33,7 @@ #include "G4Box.hh" #include "G4UBox.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -94,6 +94,39 @@ G4UBox& G4UBox::operator = (const G4UBox& rhs) return *this; } +//////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers + +G4double G4UBox::GetXHalfLength() const +{ + return GetShape()->GetXHalfLength(); +} +G4double G4UBox::GetYHalfLength() const +{ + return GetShape()->GetYHalfLength(); +} +G4double G4UBox::GetZHalfLength() const +{ + return GetShape()->GetZHalfLength(); +} + +void G4UBox::SetXHalfLength(G4double dx) +{ + GetShape()->SetXHalfLength(dx); + fRebuildPolyhedron = true; +} +void G4UBox::SetYHalfLength(G4double dy) +{ + GetShape()->SetYHalfLength(dy); + fRebuildPolyhedron = true; +} +void G4UBox::SetZHalfLength(G4double dz) +{ + GetShape()->SetZHalfLength(dz); + fRebuildPolyhedron = true; +} + //////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -115,4 +148,15 @@ G4VSolid* G4UBox::Clone() const return new G4UBox(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization + +G4Polyhedron* G4UBox::CreatePolyhedron() const +{ + return new G4PolyhedronBox(GetXHalfLength(), + GetYHalfLength(), + GetZHalfLength()); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4UCons.cc b/source/geometry/solids/CSG/src/G4UCons.cc index 82bef9ce5c..6c240b15bb 100644 --- a/source/geometry/solids/CSG/src/G4UCons.cc +++ b/source/geometry/solids/CSG/src/G4UCons.cc @@ -33,10 +33,10 @@ #include "G4Cons.hh" #include "G4UCons.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" - + ////////////////////////////////////////////////////////////////////////// // // constructor - check parameters, convert angles so 0GetInnerRadiusMinusZ(); +} +G4double G4UCons::GetOuterRadiusMinusZ() const +{ + return GetShape()->GetOuterRadiusMinusZ(); +} +G4double G4UCons::GetInnerRadiusPlusZ() const +{ + return GetShape()->GetInnerRadiusPlusZ(); +} +G4double G4UCons::GetOuterRadiusPlusZ() const +{ + return GetShape()->GetOuterRadiusPlusZ(); +} +G4double G4UCons::GetZHalfLength() const +{ + return GetShape()->GetZHalfLength(); +} +G4double G4UCons::GetStartPhiAngle() const +{ + return GetShape()->GetStartPhiAngle(); +} +G4double G4UCons::GetDeltaPhiAngle() const +{ + return GetShape()->GetDeltaPhiAngle(); +} + +void G4UCons::SetInnerRadiusMinusZ(G4double Rmin1) +{ + GetShape()->SetInnerRadiusMinusZ(Rmin1); + fRebuildPolyhedron = true; +} +void G4UCons::SetOuterRadiusMinusZ(G4double Rmax1) +{ + GetShape()->SetOuterRadiusMinusZ(Rmax1); + fRebuildPolyhedron = true; +} +void G4UCons::SetInnerRadiusPlusZ(G4double Rmin2) +{ + GetShape()->SetInnerRadiusPlusZ(Rmin2); + fRebuildPolyhedron = true; +} +void G4UCons::SetOuterRadiusPlusZ(G4double Rmax2) +{ + GetShape()->SetOuterRadiusPlusZ(Rmax2); + fRebuildPolyhedron = true; +} +void G4UCons::SetZHalfLength(G4double newDz) +{ + GetShape()->SetZHalfLength(newDz); + fRebuildPolyhedron = true; +} +void G4UCons::SetStartPhiAngle(G4double newSPhi, G4bool trig) +{ + GetShape()->SetStartPhiAngle(newSPhi, trig); + fRebuildPolyhedron = true; +} +void G4UCons::SetDeltaPhiAngle(G4double newDPhi) +{ + GetShape()->SetDeltaPhiAngle(newDPhi); + fRebuildPolyhedron = true; +} + ///////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -117,4 +186,19 @@ G4VSolid* G4UCons::Clone() const return new G4UCons(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization + +G4Polyhedron* G4UCons::CreatePolyhedron() const +{ + return new G4PolyhedronCons(GetInnerRadiusMinusZ(), + GetOuterRadiusMinusZ(), + GetInnerRadiusPlusZ(), + GetOuterRadiusPlusZ(), + GetZHalfLength(), + GetStartPhiAngle(), + GetDeltaPhiAngle()); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4UOrb.cc b/source/geometry/solids/CSG/src/G4UOrb.cc index a5c52cd5cc..c40cf47978 100644 --- a/source/geometry/solids/CSG/src/G4UOrb.cc +++ b/source/geometry/solids/CSG/src/G4UOrb.cc @@ -32,9 +32,10 @@ #include "G4Orb.hh" #include "G4UOrb.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" +#include "G4PhysicalConstants.hh" //////////////////////////////////////////////////////////////////////// // @@ -90,6 +91,21 @@ G4UOrb& G4UOrb::operator = (const G4UOrb& rhs) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers + +G4double G4UOrb::GetRadius() const +{ + return GetShape()->GetRadius(); +} + +void G4UOrb::SetRadius(G4double newRmax) +{ + GetShape()->SetRadius(newRmax); + fRebuildPolyhedron = true; +} + ////////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -111,4 +127,13 @@ G4VSolid* G4UOrb::Clone() const return new G4UOrb(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization + +G4Polyhedron* G4UOrb::CreatePolyhedron() const +{ + return new G4PolyhedronSphere(0., GetRadius(), 0., twopi, 0., pi); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4USphere.cc b/source/geometry/solids/CSG/src/G4USphere.cc index 0c6cc6ed09..100491d5ae 100644 --- a/source/geometry/solids/CSG/src/G4USphere.cc +++ b/source/geometry/solids/CSG/src/G4USphere.cc @@ -33,7 +33,7 @@ #include "G4Sphere.hh" #include "G4USphere.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -95,6 +95,66 @@ G4USphere& G4USphere::operator = (const G4USphere& rhs) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers + +G4double G4USphere::GetInnerRadius() const +{ + return GetShape()->GetInnerRadius(); +} +G4double G4USphere::GetOuterRadius() const +{ + return GetShape()->GetOuterRadius(); +} +G4double G4USphere::GetStartPhiAngle() const +{ + return GetShape()->GetStartPhiAngle(); +} +G4double G4USphere::GetDeltaPhiAngle() const +{ + return GetShape()->GetDeltaPhiAngle(); +} +G4double G4USphere::GetStartThetaAngle() const +{ + return GetShape()->GetStartThetaAngle(); +} +G4double G4USphere::GetDeltaThetaAngle() const +{ + return GetShape()->GetDeltaThetaAngle(); +} + +void G4USphere::SetInnerRadius(G4double newRMin) +{ + GetShape()->SetInnerRadius(newRMin); + fRebuildPolyhedron = true; +} +void G4USphere::SetOuterRadius(G4double newRmax) +{ + GetShape()->SetOuterRadius(newRmax); + fRebuildPolyhedron = true; +} +void G4USphere::SetStartPhiAngle(G4double newSphi, G4bool trig) +{ + GetShape()->SetStartPhiAngle(newSphi, trig); + fRebuildPolyhedron = true; +} +void G4USphere::SetDeltaPhiAngle(G4double newDphi) +{ + GetShape()->SetDeltaPhiAngle(newDphi); + fRebuildPolyhedron = true; +} +void G4USphere::SetStartThetaAngle(G4double newSTheta) +{ + GetShape()->SetStartThetaAngle(newSTheta); + fRebuildPolyhedron = true; +} +void G4USphere::SetDeltaThetaAngle(G4double newDTheta) +{ + GetShape()->SetDeltaThetaAngle(newDTheta); + fRebuildPolyhedron = true; +} + ////////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -116,4 +176,18 @@ G4VSolid* G4USphere::Clone() const return new G4USphere(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization + +G4Polyhedron* G4USphere::CreatePolyhedron() const +{ + return new G4PolyhedronSphere(GetInnerRadius(), + GetOuterRadius(), + GetStartPhiAngle(), + GetDeltaPhiAngle(), + GetStartThetaAngle(), + GetDeltaThetaAngle()); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4UTorus.cc b/source/geometry/solids/CSG/src/G4UTorus.cc index 71cfbe1365..31cd317f05 100644 --- a/source/geometry/solids/CSG/src/G4UTorus.cc +++ b/source/geometry/solids/CSG/src/G4UTorus.cc @@ -35,7 +35,7 @@ #include "G4Torus.hh" #include "G4UTorus.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -90,6 +90,76 @@ G4UTorus& G4UTorus::operator = (const G4UTorus& rhs) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers + +G4double G4UTorus::GetRmin() const +{ + return GetShape()->GetRmin(); +} + +G4double G4UTorus::GetRmax() const +{ + return GetShape()->GetRmax(); +} + +G4double G4UTorus::GetRtor() const +{ + return GetShape()->GetRtor(); +} + +G4double G4UTorus::GetSPhi() const +{ + return GetShape()->GetSPhi(); +} + +G4double G4UTorus::GetDPhi() const +{ + return GetShape()->GetDPhi(); +} + +void G4UTorus::SetRmin(G4double arg) +{ + GetShape()->SetRmin(arg); + fRebuildPolyhedron = true; +} + +void G4UTorus::SetRmax(G4double arg) +{ + GetShape()->SetRmax(arg); + fRebuildPolyhedron = true; +} + +void G4UTorus::SetRtor(G4double arg) +{ + GetShape()->SetRtor(arg); + fRebuildPolyhedron = true; +} + +void G4UTorus::SetSPhi(G4double arg) +{ + GetShape()->SetSPhi(arg); + fRebuildPolyhedron = true; +} + +void G4UTorus::SetDPhi(G4double arg) +{ + GetShape()->SetDPhi(arg); + fRebuildPolyhedron = true; +} + +void G4UTorus::SetAllParameters(G4double arg1, G4double arg2, + G4double arg3, G4double arg4, G4double arg5) +{ + GetShape()->SetRmin(arg1); + GetShape()->SetRmax(arg2); + GetShape()->SetRtor(arg3); + GetShape()->SetSPhi(arg4); + GetShape()->SetDPhi(arg5); + fRebuildPolyhedron = true; +} + //////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -111,4 +181,17 @@ G4VSolid* G4UTorus::Clone() const return new G4UTorus(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization + +G4Polyhedron* G4UTorus::CreatePolyhedron() const +{ + return new G4PolyhedronTorus(GetRmin(), + GetRmax(), + GetRtor(), + GetSPhi(), + GetDPhi()); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4UTrap.cc b/source/geometry/solids/CSG/src/G4UTrap.cc index 4ed3c0f8e4..a3e40148cb 100644 --- a/source/geometry/solids/CSG/src/G4UTrap.cc +++ b/source/geometry/solids/CSG/src/G4UTrap.cc @@ -33,10 +33,9 @@ #include "G4Trap.hh" #include "G4UTrap.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" -#include "G4Polyhedron.hh" ///////////////////////////////////////////////////////////////////////// // @@ -133,6 +132,81 @@ G4UTrap& G4UTrap::operator = (const G4UTrap& rhs) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers + +G4double G4UTrap::GetZHalfLength() const +{ + return GetShape()->GetZHalfLength(); +} +G4double G4UTrap::GetYHalfLength1() const +{ + return GetShape()->GetYHalfLength1(); +} +G4double G4UTrap::GetXHalfLength1() const +{ + return GetShape()->GetXHalfLength1(); +} +G4double G4UTrap::GetXHalfLength2() const +{ + return GetShape()->GetXHalfLength2(); +} +G4double G4UTrap::GetTanAlpha1() const +{ + return GetShape()->GetTanAlpha1(); +} +G4double G4UTrap::GetYHalfLength2() const +{ + return GetShape()->GetYHalfLength2(); +} +G4double G4UTrap::GetXHalfLength3() const +{ + return GetShape()->GetXHalfLength3(); +} +G4double G4UTrap::GetXHalfLength4() const +{ + return GetShape()->GetXHalfLength4(); +} +G4double G4UTrap::GetTanAlpha2() const +{ + return GetShape()->GetTanAlpha2(); +} +TrapSidePlane G4UTrap::GetSidePlane(G4int n) const +{ + UTrapSidePlane iplane = GetShape()->GetSidePlane(n); + TrapSidePlane oplane = {iplane.a, iplane.b, iplane.c, iplane.d }; + return oplane; +} +G4ThreeVector G4UTrap::GetSymAxis() const +{ + UVector3 axis = GetShape()->GetSymAxis(); + return G4ThreeVector(axis.x(), axis.y(), axis.z()); +} + +void G4UTrap::SetAllParameters(G4double pDz, G4double pTheta, G4double pPhi, + G4double pDy1, G4double pDx1, G4double pDx2, + G4double pAlp1, + G4double pDy2, G4double pDx3, G4double pDx4, + G4double pAlp2) +{ + GetShape()->SetAllParameters(pDz, pTheta, pPhi, + pDy1, pDx1, pDx2, pAlp1, + pDy2, pDx3, pDx4, pAlp2); + fRebuildPolyhedron = true; +} + +void G4UTrap::SetPlanes(const G4ThreeVector pt[8]) +{ + UVector3 upt[8]; + for (unsigned int i=0; i<8; ++i) + { + upt[i] = UVector3(pt[i].x(), pt[i].y(), pt[i].z()); + } + GetShape()->SetPlanes(upt); + fRebuildPolyhedron = true; +} + ///////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -156,7 +230,7 @@ G4VSolid* G4UTrap::Clone() const ////////////////////////////////////////////////////////////////////////// // -// CreatePolyhedron() +// Create polyhedron for visualization // G4Polyhedron* G4UTrap::CreatePolyhedron() const { diff --git a/source/geometry/solids/CSG/src/G4UTrd.cc b/source/geometry/solids/CSG/src/G4UTrd.cc index d0cd4cf702..4a2c1ed267 100644 --- a/source/geometry/solids/CSG/src/G4UTrd.cc +++ b/source/geometry/solids/CSG/src/G4UTrd.cc @@ -33,7 +33,7 @@ #include "G4Trd.hh" #include "G4UTrd.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -93,6 +93,63 @@ G4UTrd& G4UTrd::operator = (const G4UTrd& rhs) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers + +G4double G4UTrd::GetXHalfLength1() const +{ + return GetShape()->GetXHalfLength1(); +} +G4double G4UTrd::GetXHalfLength2() const +{ + return GetShape()->GetXHalfLength2(); +} +G4double G4UTrd::GetYHalfLength1() const +{ + return GetShape()->GetYHalfLength1(); +} +G4double G4UTrd::GetYHalfLength2() const +{ + return GetShape()->GetYHalfLength2(); +} +G4double G4UTrd::GetZHalfLength() const +{ + return GetShape()->GetZHalfLength(); +} + +void G4UTrd::SetXHalfLength1(G4double val) +{ + GetShape()->SetXHalfLength1(val); + fRebuildPolyhedron = true; +} +void G4UTrd::SetXHalfLength2(G4double val) +{ + GetShape()->SetXHalfLength2(val); + fRebuildPolyhedron = true; +} +void G4UTrd::SetYHalfLength1(G4double val) +{ + GetShape()->SetYHalfLength1(val); + fRebuildPolyhedron = true; +} +void G4UTrd::SetYHalfLength2(G4double val) +{ + GetShape()->SetYHalfLength2(val); + fRebuildPolyhedron = true; +} +void G4UTrd::SetZHalfLength(G4double val) +{ + GetShape()->SetZHalfLength(val); + fRebuildPolyhedron = true; +} +void G4UTrd::SetAllParameters(G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, G4double pdz) +{ + GetShape()->SetAllParameters(pdx1, pdx2, pdy1, pdy2, pdz); + fRebuildPolyhedron = true; +} + ///////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -114,4 +171,17 @@ G4VSolid* G4UTrd::Clone() const return new G4UTrd(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization +// +G4Polyhedron* G4UTrd::CreatePolyhedron() const +{ + return new G4PolyhedronTrd2(GetXHalfLength1(), + GetXHalfLength2(), + GetYHalfLength1(), + GetYHalfLength2(), + GetZHalfLength()); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/CSG/src/G4UTubs.cc b/source/geometry/solids/CSG/src/G4UTubs.cc index b7b1c020e2..a3a172969e 100644 --- a/source/geometry/solids/CSG/src/G4UTubs.cc +++ b/source/geometry/solids/CSG/src/G4UTubs.cc @@ -33,7 +33,7 @@ #include "G4Tubs.hh" #include "G4UTubs.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -94,6 +94,57 @@ G4UTubs& G4UTubs::operator = (const G4UTubs& rhs) return *this; } +///////////////////////////////////////////////////////////////////////// +// +// Accessors and modifiers + +G4double G4UTubs::GetInnerRadius() const +{ + return GetShape()->GetInnerRadius(); +} +G4double G4UTubs::GetOuterRadius() const +{ + return GetShape()->GetOuterRadius(); +} +G4double G4UTubs::GetZHalfLength() const +{ + return GetShape()->GetZHalfLength(); +} +G4double G4UTubs::GetStartPhiAngle() const +{ + return GetShape()->GetStartPhiAngle(); +} +G4double G4UTubs::GetDeltaPhiAngle() const +{ + return GetShape()->GetDeltaPhiAngle(); +} + +void G4UTubs::SetInnerRadius(G4double newRMin) +{ + GetShape()->SetInnerRadius(newRMin); + fRebuildPolyhedron = true; +} +void G4UTubs::SetOuterRadius(G4double newRMax) +{ + GetShape()->SetOuterRadius(newRMax); + fRebuildPolyhedron = true; +} +void G4UTubs::SetZHalfLength(G4double newDz) +{ + GetShape()->SetZHalfLength(newDz); + fRebuildPolyhedron = true; +} +void G4UTubs::SetStartPhiAngle(G4double newSPhi, G4bool trig) +{ + GetShape()->SetStartPhiAngle(newSPhi, trig); + fRebuildPolyhedron = true; +} +void G4UTubs::SetDeltaPhiAngle(G4double newDPhi) +{ + GetShape()->SetDeltaPhiAngle(newDPhi); + fRebuildPolyhedron = true; +} + ///////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -115,4 +166,17 @@ G4VSolid* G4UTubs::Clone() const return new G4UTubs(*this); } +////////////////////////////////////////////////////////////////////////// +// +// Create polyhedron for visualization +// +G4Polyhedron* G4UTubs::CreatePolyhedron() const +{ + return new G4PolyhedronTubs(GetInnerRadius(), + GetOuterRadius(), + GetZHalfLength(), + GetStartPhiAngle(), + GetDeltaPhiAngle()); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index ccda9021cb..b612003528 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,4 +1,4 @@ -$Id: History 94457 2015-11-18 14:35:46Z gcosmo $ +$Id: History 97069 2016-05-24 08:47:21Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,12 +17,70 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +24-May-2016 G.Cosmo (geom-specific-V10-02-11) +- Correction in G4UExtrudedSolid for definition of CreatePolyhedron(). + +20-May-2016 G.Cosmo (geom-specific-V10-02-10) +- Moved accessors and modifiers in USolids wrappers to be not inlined. + Required modification in order to allow correct dispatching to VecGeom + types. + +15-Apr-2016 G.Cosmo (geom-specific-V10-02-09) +- Added flag in USolids wrappers for partial use of USolids/VecGeom types. + +31-Mar-2016 G.Cosmo (geom-specific-V10-02-08, 07) +- Added overloaded CreatePolyhedron() method to USolids wrappers. + It is now possible to visualize supported VecGeom shapes. +- Added implementation of CreatePolyhedron() in UExtrudedSolid wrapper. + +10-Mar-2016 G.Cosmo (geom-specific-V10-02-06) +- Added overloaded GetEntityType() method to USolids wrappers. + +07-Mar-2016 E.Tcherniaev (geom-specific-V10-02-05) +- Fix in G4IntersectingCone for smaller precision constant in LineHitsCone1() + and LineHitsCone2(). Fixes issue observed in G4GenericPolycone. + Addressing problem report #1794. + +03-Mar-2016 G.Cosmo (geom-specific-V10-02-04) +- Fixed compilation warnings for potential uninitialised values in + G4ExtrudedSolid::CheckPolygon() function introduced in previous tag. + +03-Mar-2016 E.Tcherniaev (geom-specific-V10-02-03) +- Added 'const' qualifier for methods in G4ExtrudedSolid. + Added CheckPolygon() to remove collinear and coincident points from polygons. +- G4QuadrangularFacet: added exhaustive tests in constructor to catch potential + problems with a quadrangular facet: collinear vertices, non planar surface, + degenerate, concave or self intersecting quadrilateral. +- G4TriangularFacet: Improved test in constructor to detect degenerate (too + small or too narrow) triangles. + +25-Feb-2016 E.Tcherniaev (geom-specific-V10-02-02) +- Correction in G4ExtrudedSolid::AddGeneralPolygonFacets() for precision + treatment in construction of tessels to avoid cases of collinear points + and consequent degenerating triangles. + Address problem report #1777. +- Use pre-computed kCarToleranceHalf constant in G4ExtrudedSolid, now + protected in G4TessellatedSolid. +- Improved algorithms for computation of area in G4TriangularFacet and + G4QuadrangularFacet. Added post-const qualifier to GetArea(). + +16-Feb-2016 G.Cosmo (geom-specific-V10-02-01) +- Revised implementation for GetSurfaceArea() and GetCubicVolume() in + G4GenericTrap (E.Tcherniaev). +- Protected debug warning in G4GenericTrap::SurfaceNormal() within G4SPECSDEBUG. + +02-Feb-2016 E.Tcherniaev (geom-specific-V10-02-00) +- Fix in G4GenericTrap for compuation of extent. + Addressing problem report #1809. +- Use dot() in formula for computation of GetCubicVolume() in + G4TessellatedSolid. + 18-Nov-2015 G.Cosmo (geom-specific-V10-01-15) - Added specialised implementation for GetCubicVolume() in G4TessellatedSolid (J.Allison). 29-Oct-2015 G.Cosmo (geom-specific-V10-01-14) -- Added debug printouts withing G4SPECSDEBUG in G4TessellatedSolid for +- Added debug printouts within G4SPECSDEBUG in G4TessellatedSolid for DistanceToIn/Out(p,v) to identify potential wrong responses. 26-Oct-2015 G.Cosmo (geom-specific-V10-01-13) diff --git a/source/geometry/solids/specific/include/G4ExtrudedSolid.hh b/source/geometry/solids/specific/include/G4ExtrudedSolid.hh index 757e61e17f..c24ba70052 100644 --- a/source/geometry/solids/specific/include/G4ExtrudedSolid.hh +++ b/source/geometry/solids/specific/include/G4ExtrudedSolid.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ExtrudedSolid.hh 83851 2014-09-19 10:12:12Z gcosmo $ +// $Id: G4ExtrudedSolid.hh 95945 2016-03-03 09:54:38Z gcosmo $ // // // -------------------------------------------------------------------- @@ -57,6 +57,7 @@ // Author: // Ivana Hrivnacova, IPN Orsay +// // -------------------------------------------------------------------- #ifndef G4ExtrudedSolid_HH @@ -86,7 +87,7 @@ class G4ExtrudedSolid : public G4TessellatedSolid struct ZSection { - ZSection(G4double z, G4TwoVector offset, G4double scale) + ZSection(G4double z, const G4TwoVector& offset, G4double scale) : fZ(z), fOffset(offset), fScale(scale) {} G4double fZ; @@ -97,15 +98,15 @@ class G4ExtrudedSolid : public G4TessellatedSolid public: // with description G4ExtrudedSolid( const G4String& pName, - std::vector polygon, - std::vector zsections); + const std::vector& polygon, + const std::vector& zsections); // General constructor G4ExtrudedSolid( const G4String& pName, - std::vector polygon, + const std::vector& polygon, G4double halfZ, - G4TwoVector off1, G4double scale1, - G4TwoVector off2, G4double scale2 ); + const G4TwoVector& off1, G4double scale1, + const G4TwoVector& off2, G4double scale2 ); // Special constructor for solid with 2 z-sections virtual ~G4ExtrudedSolid(); @@ -142,25 +143,34 @@ class G4ExtrudedSolid : public G4TessellatedSolid // persistifiable objects. G4ExtrudedSolid(const G4ExtrudedSolid& rhs); - G4ExtrudedSolid& operator=(const G4ExtrudedSolid& rhs); + G4ExtrudedSolid& operator=(const G4ExtrudedSolid& rhs); // Copy constructor and assignment operator. private: + void CheckPolygon(G4String& removedVertices); void ComputeProjectionParameters(); G4ThreeVector GetVertex(G4int iz, G4int ind) const; G4TwoVector ProjectPoint(const G4ThreeVector& point) const; - G4bool IsSameLine(G4TwoVector p, - G4TwoVector l1, G4TwoVector l2) const; - G4bool IsSameLineSegment(G4TwoVector p, - G4TwoVector l1, G4TwoVector l2) const; - G4bool IsSameSide(G4TwoVector p1, G4TwoVector p2, - G4TwoVector l1, G4TwoVector l2) const; - G4bool IsPointInside(G4TwoVector a, G4TwoVector b, G4TwoVector c, - G4TwoVector p) const; - G4double GetAngle(G4TwoVector p0, G4TwoVector pa, G4TwoVector pb) const; + G4bool IsSameLine(const G4TwoVector& p, + const G4TwoVector& l1, + const G4TwoVector& l2) const; + G4bool IsSameLineSegment(const G4TwoVector& p, + const G4TwoVector& l1, + const G4TwoVector& l2) const; + G4bool IsSameSide(const G4TwoVector& p1, + const G4TwoVector& p2, + const G4TwoVector& l1, + const G4TwoVector& l2) const; + G4bool IsPointInside(const G4TwoVector& a, + const G4TwoVector& b, + const G4TwoVector& c, + const G4TwoVector& p) const; + G4double GetAngle(const G4TwoVector& p0, + const G4TwoVector& pa, + const G4TwoVector& pb) const; G4VFacet* MakeDownFacet(G4int ind1, G4int ind2, G4int ind3) const; G4VFacet* MakeUpFacet(G4int ind1, G4int ind2, G4int ind3) const; @@ -169,7 +179,6 @@ class G4ExtrudedSolid : public G4TessellatedSolid G4bool MakeFacets(); G4bool IsConvex() const; - private: G4int fNv; diff --git a/source/geometry/solids/specific/include/G4GenericTrap.hh b/source/geometry/solids/specific/include/G4GenericTrap.hh index cf19ea5ba3..2eb997e5ff 100644 --- a/source/geometry/solids/specific/include/G4GenericTrap.hh +++ b/source/geometry/solids/specific/include/G4GenericTrap.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GenericTrap.hh 83851 2014-09-19 10:12:12Z gcosmo $ +// $Id: G4GenericTrap.hh 95592 2016-02-16 10:48:01Z gcosmo $ // // // -------------------------------------------------------------------- @@ -195,6 +195,10 @@ class G4GenericTrap : public G4VSolid const G4ThreeVector& p1, const G4ThreeVector& p2, const G4ThreeVector& p3) const; + G4double GetFaceCubicVolume(const G4ThreeVector& p0, + const G4ThreeVector& p1, + const G4ThreeVector& p2, + const G4ThreeVector& p3) const; protected: mutable G4bool fRebuildPolyhedron; diff --git a/source/geometry/solids/specific/include/G4QuadrangularFacet.hh b/source/geometry/solids/specific/include/G4QuadrangularFacet.hh index 3f3eeabef3..2b722b7345 100644 --- a/source/geometry/solids/specific/include/G4QuadrangularFacet.hh +++ b/source/geometry/solids/specific/include/G4QuadrangularFacet.hh @@ -24,7 +24,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4QuadrangularFacet.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4QuadrangularFacet.hh 95801 2016-02-25 10:59:41Z gcosmo $ // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // @@ -90,7 +90,7 @@ class G4QuadrangularFacet : public G4VFacet G4double &distFromSurface, G4ThreeVector &normal); G4ThreeVector GetSurfaceNormal () const; - G4double GetArea (); + G4double GetArea () const; G4ThreeVector GetPointOnFace () const; G4GeometryType GetEntityType () const; diff --git a/source/geometry/solids/specific/include/G4TessellatedSolid.hh b/source/geometry/solids/specific/include/G4TessellatedSolid.hh index a344820d45..bfa9792941 100644 --- a/source/geometry/solids/specific/include/G4TessellatedSolid.hh +++ b/source/geometry/solids/specific/include/G4TessellatedSolid.hh @@ -24,7 +24,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TessellatedSolid.hh 83572 2014-09-01 15:23:27Z gcosmo $ +// $Id: G4TessellatedSolid.hh 95801 2016-02-25 10:59:41Z gcosmo $ // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // @@ -264,6 +264,10 @@ class G4TessellatedSolid : public G4VSolid inline G4bool OutsideOfExtent(const G4ThreeVector &p, G4double tolerance=0) const; + protected: + + G4double kCarToleranceHalf; + private: mutable G4bool fRebuildPolyhedron; @@ -287,8 +291,6 @@ class G4TessellatedSolid : public G4VSolid std::vector fRandir; - G4double kCarToleranceHalf; - G4int fMaxTries; G4SurfaceVoxelizer fVoxels; // Pointer to the voxelized solid diff --git a/source/geometry/solids/specific/include/G4TriangularFacet.hh b/source/geometry/solids/specific/include/G4TriangularFacet.hh index 0a0fb842c6..b1e35fcc45 100644 --- a/source/geometry/solids/specific/include/G4TriangularFacet.hh +++ b/source/geometry/solids/specific/include/G4TriangularFacet.hh @@ -24,7 +24,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TriangularFacet.hh 66356 2012-12-18 09:02:32Z gcosmo $ +// $Id: G4TriangularFacet.hh 95801 2016-02-25 10:59:41Z gcosmo $ // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // @@ -86,7 +86,7 @@ class G4TriangularFacet : public G4VFacet G4bool Intersect (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool outgoing, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal); - G4double GetArea (); + G4double GetArea () const; G4ThreeVector GetPointOnFace () const; G4ThreeVector GetSurfaceNormal () const; diff --git a/source/geometry/solids/specific/include/G4UExtrudedSolid.hh b/source/geometry/solids/specific/include/G4UExtrudedSolid.hh index 2c276f20c8..d23673273f 100644 --- a/source/geometry/solids/specific/include/G4UExtrudedSolid.hh +++ b/source/geometry/solids/specific/include/G4UExtrudedSolid.hh @@ -45,10 +45,11 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UExtrudedSolid.hh" #include "G4TwoVector.hh" +#include "G4Polyhedron.hh" class G4UExtrudedSolid : public G4USolid { @@ -85,13 +86,15 @@ class G4UExtrudedSolid : public G4USolid inline UExtrudedSolid* GetShape() const; - inline G4int GetNofVertices() const; - inline G4TwoVector GetVertex(G4int index) const; - inline std::vector GetPolygon() const; - inline G4int GetNofZSections() const; - inline ZSection GetZSection(G4int index) const; - inline std::vector GetZSections() const; + G4int GetNofVertices() const; + G4TwoVector GetVertex(G4int index) const; + std::vector GetPolygon() const; + G4int GetNofZSections() const; + ZSection GetZSection(G4int index) const; + std::vector GetZSections() const; + inline G4GeometryType GetEntityType() const; + public: // without description G4UExtrudedSolid(__void__&); @@ -102,6 +105,7 @@ class G4UExtrudedSolid : public G4USolid G4UExtrudedSolid( const G4UExtrudedSolid& source ); G4UExtrudedSolid &operator=(const G4UExtrudedSolid& source); // Copy constructor and assignment operator. + G4Polyhedron* CreatePolyhedron() const; }; // -------------------------------------------------------------------- @@ -113,44 +117,11 @@ inline UExtrudedSolid* G4UExtrudedSolid::GetShape() const return (UExtrudedSolid*) fShape; } -inline G4int G4UExtrudedSolid::GetNofVertices() const +inline G4GeometryType G4UExtrudedSolid::GetEntityType() const { - return GetShape()->GetNofVertices(); + return "G4ExtrudedSolid"; } -inline G4TwoVector G4UExtrudedSolid::GetVertex(G4int i) const -{ - UVector2 v = GetShape()->GetVertex(i); - return G4TwoVector(v.x, v.y); -} -inline std::vector G4UExtrudedSolid::GetPolygon() const -{ - std::vector pol = GetShape()->GetPolygon(); - std::vector v; - for (unsigned int i=0; iGetNofZSections(); -} -inline G4UExtrudedSolid::ZSection G4UExtrudedSolid::GetZSection(G4int i) const -{ - return ZSection(GetShape()->GetZSection(i)); -} -inline std::vector G4UExtrudedSolid::GetZSections() const -{ - std::vector sv = GetShape()->GetZSections(); - std::vector vec; - for (unsigned int i=0; iGetStartPhi(); -} -inline G4double G4UGenericPolycone::GetEndPhi() const -{ - return GetShape()->GetEndPhi(); -} -inline G4bool G4UGenericPolycone::IsOpen() const -{ - return GetShape()->IsOpen(); -} -inline G4int G4UGenericPolycone::GetNumRZCorner() const -{ - return GetShape()->GetNumRZCorner(); -} -inline G4PolyconeSideRZ G4UGenericPolycone::GetCorner(G4int index) const -{ - UPolyconeSideRZ pside = GetShape()->GetCorner(index); - G4PolyconeSideRZ psiderz = { pside.r, pside.z }; - - return psiderz; + return "G4GenericPolycone"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/include/G4UGenericTrap.hh b/source/geometry/solids/specific/include/G4UGenericTrap.hh index 4731ad1976..5e446a5af2 100644 --- a/source/geometry/solids/specific/include/G4UGenericTrap.hh +++ b/source/geometry/solids/specific/include/G4UGenericTrap.hh @@ -45,12 +45,12 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UGenericTrap.hh" #include "G4TwoVector.hh" -class G4Polyhedron; +#include "G4Polyhedron.hh" class G4UGenericTrap : public G4USolid { @@ -63,15 +63,17 @@ class G4UGenericTrap : public G4USolid inline UGenericTrap* GetShape() const; - inline G4double GetZHalfLength() const; - inline G4int GetNofVertices() const; - inline G4TwoVector GetVertex(G4int index) const; - inline const std::vector& GetVertices() const; - inline G4double GetTwistAngle(G4int index) const; - inline G4bool IsTwisted() const; - inline G4int GetVisSubdivisions() const; - inline void SetVisSubdivisions(G4int subdiv); - inline void SetZHalfLength(G4double); + G4double GetZHalfLength() const; + G4int GetNofVertices() const; + G4TwoVector GetVertex(G4int index) const; + const std::vector& GetVertices() const; + G4double GetTwistAngle(G4int index) const; + G4bool IsTwisted() const; + G4int GetVisSubdivisions() const; + void SetVisSubdivisions(G4int subdiv); + void SetZHalfLength(G4double); + + inline G4GeometryType GetEntityType() const; public: // without description @@ -96,50 +98,9 @@ inline UGenericTrap* G4UGenericTrap::GetShape() const return (UGenericTrap*) fShape; } -inline G4double G4UGenericTrap::GetZHalfLength() const +inline G4GeometryType G4UGenericTrap::GetEntityType() const { - return GetShape()->GetZHalfLength(); -} -inline G4int G4UGenericTrap::GetNofVertices() const -{ - return GetShape()->GetNofVertices(); -} -inline G4TwoVector G4UGenericTrap::GetVertex(G4int index) const -{ - UVector2 v = GetShape()->GetVertex(index); - return G4TwoVector(v.x, v.y); -} -inline const std::vector& G4UGenericTrap::GetVertices() const -{ - std::vector v = GetShape()->GetVertices(); - static std::vector vertices; vertices.clear(); - for (size_t n=0; nGetTwistAngle(index); -} -inline G4bool G4UGenericTrap::IsTwisted() const -{ - return GetShape()->IsTwisted(); -} -inline G4int G4UGenericTrap::GetVisSubdivisions() const -{ - return GetShape()->GetVisSubdivisions(); -} - -inline void G4UGenericTrap::SetVisSubdivisions(G4int subdiv) -{ - GetShape()->SetVisSubdivisions(subdiv); -} - -inline void G4UGenericTrap::SetZHalfLength(G4double halfZ) -{ - GetShape()->SetZHalfLength(halfZ); + return "G4GenericTrap"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/include/G4UParaboloid.hh b/source/geometry/solids/specific/include/G4UParaboloid.hh index e29daa3482..f6c366fc1c 100644 --- a/source/geometry/solids/specific/include/G4UParaboloid.hh +++ b/source/geometry/solids/specific/include/G4UParaboloid.hh @@ -45,40 +45,43 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UParaboloid.hh" + #include "G4Polyhedron.hh" -class G4UParaboloid : public G4USolid { +class G4UParaboloid : public G4USolid +{ -public: // with description + public: // with description - G4UParaboloid(const G4String& name, G4double dz, G4double rlo, G4double rhi); + G4UParaboloid(const G4String& name, G4double dz, + G4double rlo, + G4double rhi); + ~G4UParaboloid(); - ~G4UParaboloid(); + G4VSolid* Clone() const; - G4VSolid* Clone() const; + inline UParaboloid* GetShape() const; - inline UParaboloid* GetShape() const; + G4double GetZHalfLength() const; + G4double GetRadiusMinusZ() const; + G4double GetRadiusPlusZ() const; - inline G4double GetZHalfLength() const; - inline G4double GetRadiusMinusZ() const; - inline G4double GetRadiusPlusZ() const; + inline G4GeometryType GetEntityType() const; - // inline G4bool Reset(); + public: // without description -public: // without description - - G4UParaboloid(__void__&); + G4UParaboloid(__void__&); // Fake default constructor for usage restricted to direct object // persistency for clients requiring preallocation of memory for // persistifiable objects. - G4UParaboloid( const G4UParaboloid &source ); - G4UParaboloid &operator=( const G4UParaboloid &source ); + G4UParaboloid( const G4UParaboloid &source ); + G4UParaboloid &operator=( const G4UParaboloid &source ); // Copy constructor and assignment operator. - // G4Polyhedron* CreatePolyhedron() const; + G4Polyhedron* CreatePolyhedron() const; }; // -------------------------------------------------------------------- @@ -90,48 +93,10 @@ inline UParaboloid* G4UParaboloid::GetShape() const return (UParaboloid*) fShape; } -inline G4double G4UParaboloid::GetZHalfLength() const { - return GetShape()->GetDz(); +inline G4GeometryType G4UParaboloid::GetEntityType() const +{ + return "G4Paraboloid"; } -inline G4double G4UParaboloid::GetRadiusMinusZ() const { - return GetShape()->GetRlo(); -} -inline G4double G4UParaboloid::GetRadiusPlusZ() const { - return GetShape()->GetRhi(); -} -// inline G4ParaboloidHistorical* G4UParaboloid::GetOriginalParameters() const -// { -// UParaboloidHistorical* pars = GetShape()->GetOriginalParameters(); -// G4ParaboloidHistorical* pdata = new G4ParaboloidHistorical(pars->fNumZPlanes); -// pdata->Start_angle = pars->fStartAngle; -// pdata->Opening_angle = pars->fOpeningAngle; -// for (G4int i=0; ifNumZPlanes; ++i) -// { -// pdata->Z_values[i] = pars->fZValues[i]; -// pdata->Rmin[i] = pars->Rmin[i]; -// pdata->Rmax[i] = pars->Rmax[i]; -// } -// return pdata; -// } -// inline void G4UParaboloid::SetOriginalParameters(G4ParaboloidHistorical* pars) -// { -// UParaboloidHistorical* pdata = GetShape()->GetOriginalParameters(); -// pdata->fStartAngle = pars->Start_angle; -// pdata->fOpeningAngle = pars->Opening_angle; -// pdata->fNumZPlanes = pars->Num_z_planes; -// for (G4int i=0; ifNumZPlanes; ++i) -// { -// pdata->fZValues[i] = pars->Z_values[i]; -// pdata->Rmin[i] = pars->Rmin[i]; -// pdata->Rmax[i] = pars->Rmax[i]; -// } -// fRebuildPolyhedron = true; -// } -// inline G4bool G4UParaboloid::Reset() -// { -// GetShape()->Reset(); -// return 0; -// } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/include/G4UPolycone.hh b/source/geometry/solids/specific/include/G4UPolycone.hh index c748a4dcb6..c5dd432884 100644 --- a/source/geometry/solids/specific/include/G4UPolycone.hh +++ b/source/geometry/solids/specific/include/G4UPolycone.hh @@ -45,7 +45,7 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UPolycone.hh" #include "G4PolyconeSide.hh" @@ -82,15 +82,17 @@ class G4UPolycone : public G4USolid inline UPolycone* GetShape() const; - inline G4double GetStartPhi() const; - inline G4double GetEndPhi() const; - inline G4bool IsOpen() const; - inline G4int GetNumRZCorner() const; - inline G4PolyconeSideRZ GetCorner(G4int index) const; - inline G4PolyconeHistorical* GetOriginalParameters() const; - inline void SetOriginalParameters(G4PolyconeHistorical* pars); + G4double GetStartPhi() const; + G4double GetEndPhi() const; + G4bool IsOpen() const; + G4int GetNumRZCorner() const; + G4PolyconeSideRZ GetCorner(G4int index) const; + G4PolyconeHistorical* GetOriginalParameters() const; + void SetOriginalParameters(G4PolyconeHistorical* pars); - inline G4bool Reset(); + G4bool Reset(); + + inline G4GeometryType GetEntityType() const; public: // without description @@ -115,61 +117,9 @@ inline UPolycone* G4UPolycone::GetShape() const return (UPolycone*) fShape; } -inline G4double G4UPolycone::GetStartPhi() const +inline G4GeometryType G4UPolycone::GetEntityType() const { - return GetShape()->GetStartPhi(); -} -inline G4double G4UPolycone::GetEndPhi() const -{ - return GetShape()->GetEndPhi(); -} -inline G4bool G4UPolycone::IsOpen() const -{ - return GetShape()->IsOpen(); -} -inline G4int G4UPolycone::GetNumRZCorner() const -{ - return GetShape()->GetNumRZCorner(); -} -inline G4PolyconeSideRZ G4UPolycone::GetCorner(G4int index) const -{ - UPolyconeSideRZ pside = GetShape()->GetCorner(index); - G4PolyconeSideRZ psiderz = { pside.r, pside.z }; - - return psiderz; -} -inline G4PolyconeHistorical* G4UPolycone::GetOriginalParameters() const -{ - UPolyconeHistorical* pars = GetShape()->GetOriginalParameters(); - G4PolyconeHistorical* pdata = new G4PolyconeHistorical(pars->fNumZPlanes); - pdata->Start_angle = pars->fStartAngle; - pdata->Opening_angle = pars->fOpeningAngle; - for (G4int i=0; ifNumZPlanes; ++i) - { - pdata->Z_values[i] = pars->fZValues[i]; - pdata->Rmin[i] = pars->Rmin[i]; - pdata->Rmax[i] = pars->Rmax[i]; - } - return pdata; -} -inline void G4UPolycone::SetOriginalParameters(G4PolyconeHistorical* pars) -{ - UPolyconeHistorical* pdata = GetShape()->GetOriginalParameters(); - pdata->fStartAngle = pars->Start_angle; - pdata->fOpeningAngle = pars->Opening_angle; - pdata->fNumZPlanes = pars->Num_z_planes; - for (G4int i=0; ifNumZPlanes; ++i) - { - pdata->fZValues[i] = pars->Z_values[i]; - pdata->Rmin[i] = pars->Rmin[i]; - pdata->Rmax[i] = pars->Rmax[i]; - } - fRebuildPolyhedron = true; -} -inline G4bool G4UPolycone::Reset() -{ - GetShape()->Reset(); - return 0; + return "G4Polycone"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/include/G4UPolyhedra.hh b/source/geometry/solids/specific/include/G4UPolyhedra.hh index 6fd259dd73..ed99329ef3 100644 --- a/source/geometry/solids/specific/include/G4UPolyhedra.hh +++ b/source/geometry/solids/specific/include/G4UPolyhedra.hh @@ -45,7 +45,7 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UPolyhedra.hh" #include "G4PolyhedraSide.hh" @@ -86,17 +86,19 @@ class G4UPolyhedra : public G4USolid inline UPolyhedra* GetShape() const; - inline G4int GetNumSide() const; - inline G4double GetStartPhi() const; - inline G4double GetEndPhi() const; - inline G4bool IsOpen() const; - inline G4bool IsGeneric() const; - inline G4int GetNumRZCorner() const; - inline G4PolyhedraSideRZ GetCorner( const G4int index ) const; - inline G4PolyhedraHistorical* GetOriginalParameters() const; - inline void SetOriginalParameters(G4PolyhedraHistorical* pars); + G4int GetNumSide() const; + G4double GetStartPhi() const; + G4double GetEndPhi() const; + G4bool IsOpen() const; + G4bool IsGeneric() const; + G4int GetNumRZCorner() const; + G4PolyhedraSideRZ GetCorner( const G4int index ) const; + G4PolyhedraHistorical* GetOriginalParameters() const; + void SetOriginalParameters(G4PolyhedraHistorical* pars); - inline G4bool Reset(); + G4bool Reset(); + + inline G4GeometryType GetEntityType() const; public: // without description @@ -120,70 +122,9 @@ inline UPolyhedra* G4UPolyhedra::GetShape() const return (UPolyhedra*) fShape; } -inline G4int G4UPolyhedra::GetNumSide() const +inline G4GeometryType G4UPolyhedra::GetEntityType() const { - return GetShape()->GetNumSide(); -} -inline G4double G4UPolyhedra::GetStartPhi() const -{ - return GetShape()->GetStartPhi(); -} -inline G4double G4UPolyhedra::GetEndPhi() const -{ - return GetShape()->GetEndPhi(); -} -inline G4bool G4UPolyhedra::IsOpen() const -{ - return GetShape()->IsOpen(); -} -inline G4bool G4UPolyhedra::IsGeneric() const -{ - return GetShape()->IsGeneric(); -} -inline G4int G4UPolyhedra::GetNumRZCorner() const -{ - return GetShape()->GetNumRZCorner(); -} -inline G4PolyhedraSideRZ G4UPolyhedra::GetCorner(G4int index) const -{ - UPolyhedraSideRZ pside = GetShape()->GetCorner(index); - G4PolyhedraSideRZ psiderz = { pside.r, pside.z }; - - return psiderz; -} -inline G4PolyhedraHistorical* G4UPolyhedra::GetOriginalParameters() const -{ - UPolyhedraHistorical* pars = GetShape()->GetOriginalParameters(); - G4PolyhedraHistorical* pdata = new G4PolyhedraHistorical(pars->fNumZPlanes); - pdata->Start_angle = pars->fStartAngle; - pdata->Opening_angle = pars->fOpeningAngle; - pdata->numSide = pars->fNumSide; - for (G4int i=0; ifNumZPlanes; ++i) - { - pdata->Z_values[i] = pars->fZValues[i]; - pdata->Rmin[i] = pars->Rmin[i]; - pdata->Rmax[i] = pars->Rmax[i]; - } - return pdata; -} -inline void G4UPolyhedra::SetOriginalParameters(G4PolyhedraHistorical* pars) -{ - UPolyhedraHistorical* pdata = GetShape()->GetOriginalParameters(); - pdata->fStartAngle = pars->Start_angle; - pdata->fOpeningAngle = pars->Opening_angle; - pdata->fNumSide = pars->numSide; - pdata->fNumZPlanes = pars->Num_z_planes; - for (G4int i=0; ifNumZPlanes; ++i) - { - pdata->fZValues[i] = pars->Z_values[i]; - pdata->Rmin[i] = pars->Rmin[i]; - pdata->Rmax[i] = pars->Rmax[i]; - } - fRebuildPolyhedron = true; -} -inline G4bool G4UPolyhedra::Reset() -{ - return GetShape()->Reset(); + return "G4Polyhedra"; } #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/include/G4UTet.hh b/source/geometry/solids/specific/include/G4UTet.hh index 9f830285dd..f511ac20f6 100644 --- a/source/geometry/solids/specific/include/G4UTet.hh +++ b/source/geometry/solids/specific/include/G4UTet.hh @@ -48,10 +48,12 @@ #include "G4USolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "UTet.hh" +#include "G4Polyhedron.hh" + class G4UTet : public G4USolid { @@ -68,6 +70,8 @@ class G4UTet : public G4USolid inline UTet* GetShape() const; + inline G4GeometryType GetEntityType() const; + public: // without description G4UTet(__void__&); @@ -79,7 +83,9 @@ class G4UTet : public G4USolid G4UTet& operator=(const G4UTet& rhs); // Copy constructor and assignment operator. - inline std::vector GetVertices() const; + G4Polyhedron* CreatePolyhedron() const; + + std::vector GetVertices() const; // Return the four vertices of the shape. }; @@ -92,16 +98,9 @@ inline UTet* G4UTet::GetShape() const return (UTet*) fShape; } -inline std::vector G4UTet::GetVertices() const +inline G4GeometryType G4UTet::GetEntityType() const { - std::vector vec = GetShape()->GetVertices(); - std::vector vertices; - for (unsigned int i=0; i #include +#include "G4GeometryTolerance.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "G4VFacet.hh" @@ -53,8 +59,8 @@ //_____________________________________________________________________________ G4ExtrudedSolid::G4ExtrudedSolid( const G4String& pName, - std::vector polygon, - std::vector zsections) + const std::vector& polygon, + const std::vector& zsections) : G4TessellatedSolid(pName), fNv(polygon.size()), fNz(zsections.size()), @@ -69,15 +75,15 @@ G4ExtrudedSolid::G4ExtrudedSolid( const G4String& pName, // First check input parameters - if ( fNv < 3 ) + if (fNv < 3) { std::ostringstream message; - message << "Number of polygon vertices < 3 - " << pName; + message << "Number of vertices in polygon < 3 - " << pName; G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids0002", FatalErrorInArgument, message); } - if ( fNz < 2 ) + if (fNz < 2) { std::ostringstream message; message << "Number of z-sides < 2 - " << pName; @@ -95,7 +101,7 @@ G4ExtrudedSolid::G4ExtrudedSolid( const G4String& pName, G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids0002", FatalErrorInArgument, message); } - if ( std::fabs( zsections[i+1].fZ - zsections[i].fZ ) < kCarTolerance * 0.5 ) + if ( std::fabs( zsections[i+1].fZ - zsections[i].fZ ) < kCarToleranceHalf ) { std::ostringstream message; message << "Z-sections with the same z position are not supported - " @@ -105,35 +111,53 @@ G4ExtrudedSolid::G4ExtrudedSolid( const G4String& pName, } } + // Copy polygon + // + fPolygon = polygon; + + // Remove collinear and coincident vertices, if any + // + G4String removedVertices; + CheckPolygon(removedVertices); + if (fNv != G4int(polygon.size())) + { + std::ostringstream message; + message << "The following vertices have been removed from the polygon in " + << pName << G4endl + << "as collinear or coincident with other vertices: " + << removedVertices; + G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids1001", + JustWarning, message); + } + if (fNv < 3) + { + std::ostringstream message; + message << "Number of vertices in polygon after removal < 3 - " << pName; + G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids0002", + FatalErrorInArgument, message); + } + // Check if polygon vertices are defined clockwise // (the area is positive if polygon vertices are defined anti-clockwise) // G4double area = 0.; - for ( G4int i=0; i 0.) + { // Polygon vertices are defined anti-clockwise, we revert them - //G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids1001", + // G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids1001", // JustWarning, - // "Polygon vertices defined anti-clockwise, reverting polygon"); - for ( G4int i=0; i polygon, + const std::vector& polygon, G4double dz, - G4TwoVector off1, G4double scale1, - G4TwoVector off2, G4double scale2 ) + const G4TwoVector& off1, G4double scale1, + const G4TwoVector& off2, G4double scale2 ) : G4TessellatedSolid(pName), fNv(polygon.size()), fNz(2), @@ -170,40 +193,56 @@ G4ExtrudedSolid::G4ExtrudedSolid( const G4String& pName, // First check input parameters // - if ( fNv < 3 ) + if (fNv < 3) { std::ostringstream message; - message << "Number of polygon vertices < 3 - " << pName; + message << "Number of vertices in polygon < 3 - " << pName; G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids0002", FatalErrorInArgument, message); } - // Check if polygon vertices are defined clockwise - // (the area is positive if polygon vertices are defined anti-clockwise) - - G4double area = 0.; - for ( G4int i=0; i 0.) { // Polygon vertices are defined anti-clockwise, we revert them - //G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids1001", + // G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "GeomSolids1001", // JustWarning, - // "Polygon vertices defined anti-clockwise, reverting polygon"); - for ( G4int i=0; i= fNv) inext -= fNv; + if (fPolygon[inext].x() != removeIt) break; + } + + if (iprev == inext) break; // degenerate polygon, stop + + // Calculate parameters of the triangle (iprev->icur->inext). + // If the triangle is too small or too narrow then + // mark current point for removal + G4TwoVector e1 = fPolygon[iprev] - fPolygon[icur]; + G4TwoVector e2 = fPolygon[inext] - fPolygon[icur]; + + G4double leng1 = e1.mag(); + G4double leng2 = e2.mag(); + G4double leng3 = (e2-e1).mag(); + + G4double lmax = std::max(std::max(leng1,leng2),leng3); + G4double area = std::fabs(e1.x()*e2.y()-e1.y()*e2.x()); + + // Check length of edges, then check height of the triangle + if (leng1 < delta || leng2 < delta || leng3 < delta) + { + fPolygon[icur].setX(removeIt); + } + else if (area/lmax < delta) + { + fPolygon[icur].setX(removeIt); + } + } + + // Remove marked points + // + std::ostringstream message; + icur = 0; + for (G4int i=0; i std::max(l1.x(), l2.x()) + kCarTolerance * 0.5 || - p.y() < std::min(l1.y(), l2.y()) - kCarTolerance * 0.5 || - p.y() > std::max(l1.y(), l2.y()) + kCarTolerance * 0.5 ) + if ( p.x() < std::min(l1.x(), l2.x()) - kCarToleranceHalf || + p.x() > std::max(l1.x(), l2.x()) + kCarToleranceHalf || + p.y() < std::min(l1.y(), l2.y()) - kCarToleranceHalf || + p.y() > std::max(l1.y(), l2.y()) + kCarToleranceHalf ) { return false; } @@ -405,21 +533,25 @@ G4bool G4ExtrudedSolid::IsSameLineSegment(G4TwoVector p, //_____________________________________________________________________________ -G4bool G4ExtrudedSolid::IsSameSide(G4TwoVector p1, G4TwoVector p2, - G4TwoVector l1, G4TwoVector l2) const +G4bool G4ExtrudedSolid::IsSameSide(const G4TwoVector& p1, + const G4TwoVector& p2, + const G4TwoVector& l1, + const G4TwoVector& l2) const { // Return true if p1 and p2 are on the same side of the line through l1, l2 return ( (p1.x() - l1.x()) * (l2.y() - l1.y()) - - (l2.x() - l1.x()) * (p1.y() - l1.y()) ) + - (l2.x() - l1.x()) * (p1.y() - l1.y()) ) * ( (p2.x() - l1.x()) * (l2.y() - l1.y()) - (l2.x() - l1.x()) * (p2.y() - l1.y()) ) > 0; } //_____________________________________________________________________________ -G4bool G4ExtrudedSolid::IsPointInside(G4TwoVector a, G4TwoVector b, - G4TwoVector c, G4TwoVector p) const +G4bool G4ExtrudedSolid::IsPointInside(const G4TwoVector& a, + const G4TwoVector& b, + const G4TwoVector& c, + const G4TwoVector& p) const { // Return true if p is inside of triangle abc or on its edges, // else returns false @@ -447,7 +579,9 @@ G4bool G4ExtrudedSolid::IsPointInside(G4TwoVector a, G4TwoVector b, //_____________________________________________________________________________ G4double -G4ExtrudedSolid::GetAngle(G4TwoVector po, G4TwoVector pa, G4TwoVector pb) const +G4ExtrudedSolid::GetAngle(const G4TwoVector& po, + const G4TwoVector& pa, + const G4TwoVector& pb) const { // Return the angle of the vertex in po @@ -537,6 +671,9 @@ G4bool G4ExtrudedSolid::AddGeneralPolygonFacets() typedef std::pair < G4TwoVector, G4int > Vertex; + static const G4double kAngTolerance = + G4GeometryTolerance::GetInstance()->GetAngularTolerance(); + // Fill one more vector // std::vector< Vertex > verticesToBeDone; @@ -566,7 +703,7 @@ G4bool G4ExtrudedSolid::AddGeneralPolygonFacets() //G4cout << "angle " << angle << G4endl; G4int counter = 0; - while ( angle >= pi ) // Loop checking, 13.08.2015, G.Cosmo + while ( angle >= (pi-kAngTolerance) ) // Loop checking, 13.08.2015, G.Cosmo { // G4cout << "Skipping concave vertex " << c2->second << G4endl; @@ -773,12 +910,12 @@ EInside G4ExtrudedSolid::Inside (const G4ThreeVector &p) const // Check first if outside extent // - if ( p.x() < GetMinXExtent() - kCarTolerance * 0.5 || - p.x() > GetMaxXExtent() + kCarTolerance * 0.5 || - p.y() < GetMinYExtent() - kCarTolerance * 0.5 || - p.y() > GetMaxYExtent() + kCarTolerance * 0.5 || - p.z() < GetMinZExtent() - kCarTolerance * 0.5 || - p.z() > GetMaxZExtent() + kCarTolerance * 0.5 ) + if ( p.x() < GetMinXExtent() - kCarToleranceHalf || + p.x() > GetMaxXExtent() + kCarToleranceHalf || + p.y() < GetMinYExtent() - kCarToleranceHalf || + p.y() > GetMaxYExtent() + kCarToleranceHalf || + p.z() < GetMinZExtent() - kCarToleranceHalf || + p.z() > GetMaxZExtent() + kCarToleranceHalf ) { // G4cout << "G4ExtrudedSolid::Outside extent: " << p << G4endl; return kOutside; @@ -817,8 +954,8 @@ EInside G4ExtrudedSolid::Inside (const G4ThreeVector &p) const { // Check if on surface of z sides // - if ( std::fabs( p.z() - fZSections[0].fZ ) < kCarTolerance * 0.5 || - std::fabs( p.z() - fZSections[fNz-1].fZ ) < kCarTolerance * 0.5 ) + if ( std::fabs( p.z() - fZSections[0].fZ ) < kCarToleranceHalf || + std::fabs( p.z() - fZSections[fNz-1].fZ ) < kCarToleranceHalf ) { // G4cout << "G4ExtrudedSolid::Inside return Surface (on z side)" // << G4endl; diff --git a/source/geometry/solids/specific/src/G4GenericTrap.cc b/source/geometry/solids/specific/src/G4GenericTrap.cc index 6d0553dd94..c172e9ce37 100644 --- a/source/geometry/solids/specific/src/G4GenericTrap.cc +++ b/source/geometry/solids/specific/src/G4GenericTrap.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GenericTrap.cc 83851 2014-09-19 10:12:12Z gcosmo $ +// $Id: G4GenericTrap.cc 95592 2016-02-16 10:48:01Z gcosmo $ // // // -------------------------------------------------------------------- @@ -36,9 +36,12 @@ // Tatiana Nikitina, CERN; Ivana Hrivnacova, IPN Orsay // Adapted from Root Arb8 implementation by Andrei Gheata, CERN // -// History : -// 04 August 2011 T.Nikitina Add SetReferences() and InvertFacets() -// to CreatePolyhedron() for Visualisation of Boolean +// History: +// 04.08.2011 T.Nikitina - Added SetReferences() and InvertFacets() +// to CreatePolyhedron() for Visualisation of Boolean +// +// 03.02.2016 E.Tcherniaev - Revised GetSurfaceArea() and GetCubicVolume(), +// rewritten GetFaceSurfaceArea(), added GetFaceCubicVolume() // -------------------------------------------------------------------- #include "G4GenericTrap.hh" @@ -505,8 +508,10 @@ G4ThreeVector G4GenericTrap::SurfaceNormal( const G4ThreeVector& p ) const // if ( noSurfaces == 0 ) { +#ifdef G4SPECSDEBUG G4Exception("G4GenericTrap::SurfaceNormal(p)", "GeomSolids1002", JustWarning, "Point p is not on surface !?" ); +#endif sumnorm=apprnorm; // Add Approximative Surface Normal Calculation? } @@ -549,7 +554,9 @@ G4ThreeVector G4GenericTrap::NormalToPlane( const G4ThreeVector& p, if (std::fabs(distz)pVoxelLimit.GetMaxXExtent()+kCarTolerance) @@ -1258,8 +1262,8 @@ G4bool G4GenericTrap::CalculateExtent(const EAxis pAxis, } yoffset=pTransform.NetTranslation().y(); - yMin=yoffset-Dy; - yMax=yoffset+Dy; + yMin=yoffset+minVec.y(); + yMax=yoffset+maxVec.y(); if (pVoxelLimit.IsYLimited()) { if ( (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance) @@ -1281,8 +1285,8 @@ G4bool G4GenericTrap::CalculateExtent(const EAxis pAxis, } zoffset=pTransform.NetTranslation().z(); - zMin=zoffset-fDz; - zMax=zoffset+fDz; + zMin=zoffset+minVec.z(); + zMax=zoffset+maxVec.z(); if (pVoxelLimit.IsZLimited()) { if ( (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance) @@ -1548,58 +1552,62 @@ G4ThreeVector G4GenericTrap::GetPointOnSurface() const // -------------------------------------------------------------------- -G4double G4GenericTrap::GetCubicVolume() +G4double G4GenericTrap::GetSurfaceArea() { - if(fCubicVolume != 0.) {;} - else { fCubicVolume = G4VSolid::GetCubicVolume(); } - return fCubicVolume; + if (fSurfaceArea == 0.0) { + if(fIsTwisted) { + fSurfaceArea = G4VSolid::GetSurfaceArea(); + } else { + // Set vertices + G4ThreeVector vertix0(fVertices[0].x(),fVertices[0].y(),-fDz); + G4ThreeVector vertix1(fVertices[1].x(),fVertices[1].y(),-fDz); + G4ThreeVector vertix2(fVertices[2].x(),fVertices[2].y(),-fDz); + G4ThreeVector vertix3(fVertices[3].x(),fVertices[3].y(),-fDz); + G4ThreeVector vertix4(fVertices[4].x(),fVertices[4].y(), fDz); + G4ThreeVector vertix5(fVertices[5].x(),fVertices[5].y(), fDz); + G4ThreeVector vertix6(fVertices[6].x(),fVertices[6].y(), fDz); + G4ThreeVector vertix7(fVertices[7].x(),fVertices[7].y(), fDz); + + // Find Surface Area + fSurfaceArea = GetFaceSurfaceArea(vertix0,vertix1,vertix2,vertix3) // -fDz plane + + GetFaceSurfaceArea(vertix1,vertix0,vertix4,vertix5) // Lat plane + + GetFaceSurfaceArea(vertix2,vertix1,vertix5,vertix6) // Lat plane + + GetFaceSurfaceArea(vertix3,vertix2,vertix6,vertix7) // Lat plane + + GetFaceSurfaceArea(vertix0,vertix3,vertix7,vertix4) // Lat plane + + GetFaceSurfaceArea(vertix7,vertix6,vertix5,vertix4); // +fDz plane + } + } + return fSurfaceArea; } // -------------------------------------------------------------------- -G4double G4GenericTrap::GetSurfaceArea() +G4double G4GenericTrap::GetCubicVolume() { - if(fSurfaceArea != 0.) {;} - else - { - std::vector vertices; - for (G4int i=0; i<4;i++) - { - vertices.push_back(G4ThreeVector(fVertices[i].x(),fVertices[i].y(),-fDz)); - } - for (G4int i=4; i<8;i++) - { - vertices.push_back(G4ThreeVector(fVertices[i].x(),fVertices[i].y(),fDz)); - } + if (fCubicVolume == 0.0) { + if(fIsTwisted) { + fCubicVolume = G4VSolid::GetCubicVolume(); + } else { + // Set vertices + G4ThreeVector vertix0(fVertices[0].x(),fVertices[0].y(),-fDz); + G4ThreeVector vertix1(fVertices[1].x(),fVertices[1].y(),-fDz); + G4ThreeVector vertix2(fVertices[2].x(),fVertices[2].y(),-fDz); + G4ThreeVector vertix3(fVertices[3].x(),fVertices[3].y(),-fDz); + G4ThreeVector vertix4(fVertices[4].x(),fVertices[4].y(), fDz); + G4ThreeVector vertix5(fVertices[5].x(),fVertices[5].y(), fDz); + G4ThreeVector vertix6(fVertices[6].x(),fVertices[6].y(), fDz); + G4ThreeVector vertix7(fVertices[7].x(),fVertices[7].y(), fDz); - // Surface Area of Planes(only estimation for twisted) - // - G4double fSurface0=GetFaceSurfaceArea(vertices[0],vertices[1], - vertices[2],vertices[3]);//-fDz plane - G4double fSurface1=GetFaceSurfaceArea(vertices[0],vertices[1], - vertices[5],vertices[4]);// Lat plane - G4double fSurface2=GetFaceSurfaceArea(vertices[3],vertices[0], - vertices[4],vertices[7]);// Lat plane - G4double fSurface3=GetFaceSurfaceArea(vertices[2],vertices[3], - vertices[7],vertices[6]);// Lat plane - G4double fSurface4=GetFaceSurfaceArea(vertices[2],vertices[1], - vertices[5],vertices[6]);// Lat plane - G4double fSurface5=GetFaceSurfaceArea(vertices[4],vertices[5], - vertices[6],vertices[7]);// fDz plane - - // Total Surface Area - // - if(!fIsTwisted) - { - fSurfaceArea = fSurface0+fSurface1+fSurface2 - + fSurface3+fSurface4+fSurface5; - } - else - { - fSurfaceArea = G4VSolid::GetSurfaceArea(); + // Find Cubic Volume + fCubicVolume = GetFaceCubicVolume(vertix0,vertix1,vertix2,vertix3) // -fDz plane + + GetFaceCubicVolume(vertix1,vertix0,vertix4,vertix5) // Lat plane + + GetFaceCubicVolume(vertix2,vertix1,vertix5,vertix6) // Lat plane + + GetFaceCubicVolume(vertix3,vertix2,vertix6,vertix7) // Lat plane + + GetFaceCubicVolume(vertix0,vertix3,vertix7,vertix4) // Lat plane + + GetFaceCubicVolume(vertix7,vertix6,vertix5,vertix4); // +fDz plane } } - return fSurfaceArea; + return fCubicVolume; } // -------------------------------------------------------------------- @@ -1609,23 +1617,20 @@ G4double G4GenericTrap::GetFaceSurfaceArea(const G4ThreeVector& p0, const G4ThreeVector& p2, const G4ThreeVector& p3) const { - // Auxiliary method for Get Surface Area of Face - - G4double aOne, aTwo; - G4ThreeVector t, u, v, w, Area, normal; + // Returns area of the facet + return (((p2-p0).cross(p3-p1)).mag()) / 2.; +} - t = p2 - p1; - u = p0 - p1; - v = p2 - p3; - w = p0 - p3; - - Area = w.cross(v); - aOne = 0.5*Area.mag(); - - Area = t.cross(u); - aTwo = 0.5*Area.mag(); - - return aOne + aTwo; +// -------------------------------------------------------------------- + +G4double G4GenericTrap::GetFaceCubicVolume(const G4ThreeVector& p0, + const G4ThreeVector& p1, + const G4ThreeVector& p2, + const G4ThreeVector& p3) const +{ + // Returns contribution of the facet to the volume of the solid. + // Orientation of the facet is important, normal should point to outside. + return (((p2-p0).cross(p3-p1)).dot(p0)) / 6.; } // -------------------------------------------------------------------- @@ -2150,13 +2155,11 @@ G4VisExtent G4GenericTrap::GetExtent() const } #endif - G4double Dx,Dy; G4ThreeVector minVec = GetMinimumBBox(); G4ThreeVector maxVec = GetMaximumBBox(); - Dx = 0.5*(maxVec.x()- minVec.x()); - Dy = 0.5*(maxVec.y()- minVec.y()); - - return G4VisExtent (-Dx, Dx, -Dy, Dy, -fDz, fDz); + return G4VisExtent (minVec.x(), maxVec.x(), + minVec.y(), maxVec.y(), + minVec.z(), maxVec.z()); } // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4IntersectingCone.cc b/source/geometry/solids/specific/src/G4IntersectingCone.cc index efbdb59805..abee2caab2 100644 --- a/source/geometry/solids/specific/src/G4IntersectingCone.cc +++ b/source/geometry/solids/specific/src/G4IntersectingCone.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IntersectingCone.cc 72937 2013-08-14 13:20:38Z gcosmo $ +// $Id: G4IntersectingCone.cc 95997 2016-03-07 13:16:25Z gcosmo $ // // // -------------------------------------------------------------------- @@ -215,6 +215,8 @@ G4int G4IntersectingCone::LineHitsCone1( const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2 ) { + static const G4double EPS = DBL_EPSILON; // Precision constant, + // originally it was 1E-6 G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); G4double tx = v.x(), ty = v.y(), tz = v.z(); @@ -224,9 +226,9 @@ G4int G4IntersectingCone::LineHitsCone1( const G4ThreeVector &p, G4double radical = b*b - 4*a*c; - if (radical < -1E-6*std::fabs(b)) { return 0; } // No solution + if (radical < -EPS*std::fabs(b)) { return 0; } // No solution - if (radical < 1E-6*std::fabs(b)) + if (radical < EPS*std::fabs(b)) { // // The radical is roughly zero: check for special, very rare, cases @@ -234,7 +236,7 @@ G4int G4IntersectingCone::LineHitsCone1( const G4ThreeVector &p, if (std::fabs(a) > 1/kInfinity) { if(B==0.) { return 0; } - if ( std::fabs(x0*ty - y0*tx) < std::fabs(1E-6/B) ) + if ( std::fabs(x0*ty - y0*tx) < std::fabs(EPS/B) ) { *s1 = -0.5*b/a; return 1; @@ -305,10 +307,11 @@ G4int G4IntersectingCone::LineHitsCone2( const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2 ) { + static const G4double EPS = DBL_EPSILON; // Precision constant, + // originally it was 1E-6 G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); G4double tx = v.x(), ty = v.y(), tz = v.z(); - // Special case which might not be so rare: B = 0 (precisely) // if (B==0) @@ -327,16 +330,16 @@ G4int G4IntersectingCone::LineHitsCone2( const G4ThreeVector &p, G4double radical = b*b - 4*a*c; - if (radical < -1E-6*std::fabs(b)) { return 0; } // No solution + if (radical < -EPS*std::fabs(b)) { return 0; } // No solution - if (radical < 1E-6*std::fabs(b)) + if (radical < EPS*std::fabs(b)) { // // The radical is roughly zero: check for special, very rare, cases // if (std::fabs(a) > 1/kInfinity) { - if ( std::fabs(x0*ty - y0*tx) < std::fabs(1E-6/B) ) + if ( std::fabs(x0*ty - y0*tx) < std::fabs(EPS/B) ) { *s1 = -0.5*b/a; return 1; diff --git a/source/geometry/solids/specific/src/G4QuadrangularFacet.cc b/source/geometry/solids/specific/src/G4QuadrangularFacet.cc index aa0089dd28..def4ddd3e3 100644 --- a/source/geometry/solids/specific/src/G4QuadrangularFacet.cc +++ b/source/geometry/solids/specific/src/G4QuadrangularFacet.cc @@ -25,19 +25,25 @@ // ******************************************************************** // // -// $Id: G4QuadrangularFacet.cc 66819 2013-01-12 16:20:10Z gcosmo $ +// $Id: G4QuadrangularFacet.cc 95945 2016-03-03 09:54:38Z gcosmo $ // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // // CHANGE HISTORY // -------------- // -// 31 October 2004, P R Truscott, QinetiQ Ltd, UK - Created. -// 12 October 2012, M Gayer, CERN +// 31 October 2004 P R Truscott, QinetiQ Ltd, UK - Created. +// +// 12 October 2012 M Gayer, CERN // New implementation reducing memory requirements by 50%, // and considerable CPU speedup together with the new // implementation of G4TessellatedSolid. // +// 29 February 2016 E Tcherniaev, CERN +// Added exhaustive tests to catch various problems with a +// quadrangular facet: collinear vertices, non planar surface, +// degenerate, concave or self intersecting quadrilateral. +// // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #include "G4QuadrangularFacet.hh" @@ -57,8 +63,12 @@ G4QuadrangularFacet::G4QuadrangularFacet (const G4ThreeVector &vt0, const G4ThreeVector &vt3, G4FacetVertexType vertexType) { - G4ThreeVector e1, e2, e3; + G4double delta = 1.0 * kCarTolerance; // dimension tolerance + G4double epsilon = 0.01 * kCarTolerance; // planarity tolerance + fRadius = 0.0; + + G4ThreeVector e1, e2, e3; SetVertex(0, vt0); if (vertexType == ABSOLUTE) { @@ -80,59 +90,128 @@ G4QuadrangularFacet::G4QuadrangularFacet (const G4ThreeVector &vt0, e2 = vt2; e3 = vt3; } - G4double length1 = e1.mag(); - G4double length2 = (GetVertex(2)-GetVertex(1)).mag(); - G4double length3 = (GetVertex(3)-GetVertex(2)).mag(); - G4double length4 = e3.mag(); - G4ThreeVector normal1 = e1.cross(e2).unit(); - G4ThreeVector normal2 = e2.cross(e3).unit(); + // Check length of sides and diagonals + // + G4double leng1 = e1.mag(); + G4double leng2 = (e2-e1).mag(); + G4double leng3 = (e3-e2).mag(); + G4double leng4 = e3.mag(); - bool isDefined = (length1 > kCarTolerance && length2 > kCarTolerance && - length3 > kCarTolerance && length4 > kCarTolerance && - normal1.dot(normal2) >= 0.9999999999); + G4double diag1 = e2.mag(); + G4double diag2 = (e3-e1).mag(); - if (isDefined) - { - fFacet1 = G4TriangularFacet (GetVertex(0),GetVertex(1), - GetVertex(2),ABSOLUTE); - fFacet2 = G4TriangularFacet (GetVertex(0),GetVertex(2), - GetVertex(3),ABSOLUTE); - - G4TriangularFacet facet3 (GetVertex(0),GetVertex(1),GetVertex(3),ABSOLUTE); - G4TriangularFacet facet4 (GetVertex(1),GetVertex(2),GetVertex(3),ABSOLUTE); - - G4ThreeVector normal12 = fFacet1.GetSurfaceNormal() - + fFacet2.GetSurfaceNormal(); - G4ThreeVector normal34 = facet3.GetSurfaceNormal() - + facet4.GetSurfaceNormal(); - G4ThreeVector normal = 0.25 * (normal12 + normal34); - - fFacet1.SetSurfaceNormal (normal); - fFacet2.SetSurfaceNormal (normal); - - G4ThreeVector vtmp = 0.5 * (e1 + e2); - fCircumcentre = GetVertex(0) + vtmp; - G4double radiusSqr = vtmp.mag2(); - fRadius = std::sqrt(radiusSqr); - } - else + if (leng1 <= delta || leng2 <= delta || leng3 <= delta || leng4 <= delta || + diag1 <= delta || diag2 <= delta) { + ostringstream message; + message << "Sides/diagonals of facet are too small." << G4endl + << "P0 = " << GetVertex(0) << G4endl + << "P1 = " << GetVertex(1) << G4endl + << "P2 = " << GetVertex(2) << G4endl + << "P3 = " << GetVertex(3) << G4endl + << "Side1 length (P0->P1) = " << leng1 << G4endl + << "Side2 length (P1->P2) = " << leng2 << G4endl + << "Side3 length (P2->P3) = " << leng3 << G4endl + << "Side4 length (P3->P0) = " << leng4 << G4endl + << "Diagonal1 length (P0->P2) = " << diag1 << G4endl + << "Diagonal2 length (P1->P3) = " << diag2; G4Exception("G4QuadrangularFacet::G4QuadrangularFacet()", - "GeomSolids0002", JustWarning, - "Length of sides of facet are too small or sides not planar."); - G4cout << G4endl; - G4cout << "P0 = " << GetVertex(0) << G4endl; - G4cout << "P1 = " << GetVertex(1) << G4endl; - G4cout << "P2 = " << GetVertex(2) << G4endl; - G4cout << "P3 = " << GetVertex(3) << G4endl; - G4cout << "Side lengths = P0->P1" << length1 << G4endl; - G4cout << "Side lengths = P1->P2" << length2 << G4endl; - G4cout << "Side lengths = P2->P3" << length3 << G4endl; - G4cout << "Side lengths = P3->P0" << length4 << G4endl; - G4cout << G4endl; - fRadius = 0.0; + "GeomSolids1001", JustWarning, message); + return; } + + // Check that vertices are not collinear + // + G4double s1 = (e1.cross(e2)).mag()*0.5; + G4double s2 = ((e2-e1).cross(e3-e2)).mag()*0.5; + G4double s3 = (e2.cross(e3)).mag()*0.5; + G4double s4 = (e1.cross(e3)).mag()*0.5; + + G4double h1 = 2.*s1 / std::max(std::max(leng1,leng2),diag1); + G4double h2 = 2.*s2 / std::max(std::max(leng2,leng3),diag2); + G4double h3 = 2.*s3 / std::max(std::max(leng3,leng4),diag1); + G4double h4 = 2.*s4 / std::max(std::max(leng4,leng1),diag2); + + if (h1 <= delta || h2 <= delta || h3 <= delta || h4 <= delta ) + { + ostringstream message; + message << "Facet has three or more collinear vertices." << G4endl + << "P0 = " << GetVertex(0) << G4endl + << "P1 = " << GetVertex(1) << G4endl + << "P2 = " << GetVertex(2) << G4endl + << "P3 = " << GetVertex(3) << G4endl + << "Height in P0-P1-P2 = " << h1 << G4endl + << "Height in P1-P2-P3 = " << h2 << G4endl + << "Height in P2-P3-P4 = " << h3 << G4endl + << "Height in P4-P0-P1 = " << h4; + G4Exception("G4QuadrangularFacet::G4QuadrangularFacet()", + "GeomSolids1001", JustWarning, message); + return; + } + + // Check that vertices are coplanar by computing minimal + // height of tetrahedron comprising of vertices + // + G4double smax = std::max( std::max(s1,s2), std::max(s3,s4) ); + G4double hmin = 0.5 * std::fabs( e1.dot(e2.cross(e3)) ) / smax; + if (hmin >= epsilon) + { + ostringstream message; + message << "Facet is not planar." << G4endl + << "Disrepancy = " << hmin << G4endl + << "P0 = " << GetVertex(0) << G4endl + << "P1 = " << GetVertex(1) << G4endl + << "P2 = " << GetVertex(2) << G4endl + << "P3 = " << GetVertex(3); + G4Exception("G4QuadrangularFacet::G4QuadrangularFacet()", + "GeomSolids1001", JustWarning, message); + return; + } + + // Check that facet is convex by computing crosspoint + // of diagonals + // + G4ThreeVector normal = e2.cross(e3-e1); + G4double s = kInfinity, t = kInfinity, magnitude2 = normal.mag2(); + if (magnitude2 > delta*delta) // check: magnitude2 != 0. + { + s = normal.dot(e1.cross(e3-e1)) / magnitude2; + t = normal.dot(e1.cross(e2)) / magnitude2; + } + if (s <= 0. || s >= 1. || t <= 0. || t >= 1.) + { + ostringstream message; + message << "Facet is not convex." << G4endl + << "Parameters of crosspoint of diagonals: " + << s << " and " << t << G4endl + << "should both be within (0,1) range" << G4endl + << "P0 = " << GetVertex(0) << G4endl + << "P1 = " << GetVertex(1) << G4endl + << "P2 = " << GetVertex(2) << G4endl + << "P3 = " << GetVertex(3); + G4Exception("G4QuadrangularFacet::G4QuadrangularFacet()", + "GeomSolids1001", JustWarning, message); + return; + } + + // Define facet + // + fFacet1 = G4TriangularFacet(GetVertex(0),GetVertex(1),GetVertex(2),ABSOLUTE); + fFacet2 = G4TriangularFacet(GetVertex(0),GetVertex(2),GetVertex(3),ABSOLUTE); + + normal = normal.unit(); + fFacet1.SetSurfaceNormal(normal); + fFacet2.SetSurfaceNormal(normal); + + G4ThreeVector vtmp = 0.5 * (e1 + e2); + fCircumcentre = GetVertex(0) + vtmp; + G4double radiusSqr = vtmp.mag2(); + fRadius = std::sqrt(radiusSqr); + // 29.02.2016 Remark by E.Tcherniaev: computation + // of fCircumcenter and fRadius is wrong, however + // it did not create any problem till now. + // Bizarre! Need to investigate! } /////////////////////////////////////////////////////////////////////////////// @@ -250,20 +329,21 @@ G4bool G4QuadrangularFacet::Intersect (const G4ThreeVector &p, /////////////////////////////////////////////////////////////////////////////// // -// Auxiliary method to get a random point on surface +// Auxiliary method to get a uniform random point on the facet // G4ThreeVector G4QuadrangularFacet::GetPointOnFace() const { - G4ThreeVector pr = (G4RandFlat::shoot(0.,1.) < 0.5) - ? fFacet1.GetPointOnFace() : fFacet2.GetPointOnFace(); - return pr; + G4double s1 = fFacet1.GetArea(); + G4double s2 = fFacet2.GetArea(); + return ((s1+s2)*G4UniformRand() < s1) ? + fFacet1.GetPointOnFace() : fFacet2.GetPointOnFace(); } /////////////////////////////////////////////////////////////////////////////// // // Auxiliary method for returning the surface area // -G4double G4QuadrangularFacet::GetArea() +G4double G4QuadrangularFacet::GetArea() const { G4double area = fFacet1.GetArea() + fFacet2.GetArea(); return area; diff --git a/source/geometry/solids/specific/src/G4TessellatedSolid.cc b/source/geometry/solids/specific/src/G4TessellatedSolid.cc index 06cb9cf3b0..a46939caee 100644 --- a/source/geometry/solids/specific/src/G4TessellatedSolid.cc +++ b/source/geometry/solids/specific/src/G4TessellatedSolid.cc @@ -24,7 +24,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TessellatedSolid.cc 94457 2015-11-18 14:35:46Z gcosmo $ +// $Id: G4TessellatedSolid.cc 95311 2016-02-04 13:54:13Z gcosmo $ // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // @@ -1968,7 +1968,7 @@ G4double G4TessellatedSolid::GetCubicVolume () G4VFacet &facet = *fFacets[i]; G4double area = facet.GetArea(); G4ThreeVector unit_normal = facet.GetSurfaceNormal(); - fCubicVolume += area * (facet.GetVertex(0) * unit_normal); + fCubicVolume += area * (facet.GetVertex(0).dot(unit_normal)); } fCubicVolume /= 3.; return fCubicVolume; diff --git a/source/geometry/solids/specific/src/G4TriangularFacet.cc b/source/geometry/solids/specific/src/G4TriangularFacet.cc index 6ea10819f6..6a2b906716 100644 --- a/source/geometry/solids/specific/src/G4TriangularFacet.cc +++ b/source/geometry/solids/specific/src/G4TriangularFacet.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TriangularFacet.cc 87920 2015-01-21 13:11:38Z gcosmo $ +// $Id: G4TriangularFacet.cc 95945 2016-03-03 09:54:38Z gcosmo $ // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // @@ -56,6 +56,10 @@ // and considerable CPU speedup together with the new // implementation of G4TessellatedSolid. // +// 23 February 2016 E Tcherniaev, CERN +// Improved test to detect degenerate (too small or +// too narrow) triangles. +// // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #include "G4TriangularFacet.hh" @@ -96,69 +100,65 @@ G4TriangularFacet::G4TriangularFacet (const G4ThreeVector &vt0, fE2 = vt2; } + G4ThreeVector E1xE2 = fE1.cross(fE2); + fArea = 0.5 * E1xE2.mag(); for (G4int i = 0; i < 3; ++i) fIndices[i] = -1; - G4double eMag1 = fE1.mag(); - G4double eMag2 = fE2.mag(); - G4double eMag3 = (fE2-fE1).mag(); + fIsDefined = true; + G4double delta = kCarTolerance; // Set tolerance for checking - if (eMag1 <= kCarTolerance || eMag2 <= kCarTolerance - || eMag3 <= kCarTolerance) + // Check length of edges + // + G4double leng1 = fE1.mag(); + G4double leng2 = (fE2-fE1).mag(); + G4double leng3 = fE2.mag(); + if (leng1 <= delta || leng2 <= delta || leng3 <= delta) + { + fIsDefined = false; + } + + // Check min height of triangle + // + if (fIsDefined) + { + if (2.*fArea/std::max(std::max(leng1,leng2),leng3) <= delta) + { + fIsDefined = false; + } + } + + // Define facet + // + if (!fIsDefined) { ostringstream message; - message << "Length of sides of facet are too small." << G4endl - << "fVertices[0] = " << GetVertex(0) << G4endl - << "fVertices[1] = " << GetVertex(1) << G4endl - << "fVertices[2] = " << GetVertex(2) << G4endl - << "Side lengths = fVertices[0]->fVertices[1]" << eMag1 << G4endl - << "Side lengths = fVertices[0]->fVertices[2]" << eMag2 << G4endl - << "Side lengths = fVertices[1]->fVertices[2]" << eMag3; + message << "Facet is too small or too narrow." << G4endl + << "Triangle area = " << fArea << G4endl + << "P0 = " << GetVertex(0) << G4endl + << "P1 = " << GetVertex(1) << G4endl + << "P2 = " << GetVertex(2) << G4endl + << "Side1 length (P0->P1) = " << leng1 << G4endl + << "Side2 length (P1->P2) = " << leng2 << G4endl + << "Side3 length (P2->P0) = " << leng3; G4Exception("G4TriangularFacet::G4TriangularFacet()", - "GeomSolids1001", JustWarning, message); - fIsDefined = false; + "GeomSolids1001", JustWarning, message); fSurfaceNormal.set(0,0,0); fA = fB = fC = 0.0; fDet = 0.0; + fCircumcentre = vt0 + 0.5*fE1 + 0.5*fE2; fArea = fRadius = 0.0; } else { - fIsDefined = true; - fSurfaceNormal = fE1.cross(fE2).unit(); + fSurfaceNormal = E1xE2.unit(); fA = fE1.mag2(); fB = fE1.dot(fE2); fC = fE2.mag2(); - fDet = fabs(fA*fC - fB*fB); + fDet = std::fabs(fA*fC - fB*fB); - // sMin = -0.5*kCarTolerance/sqrt(fA); - // sMax = 1.0 - sMin; - // tMin = -0.5*kCarTolerance/sqrt(fC); - // G4ThreeVector vtmp = 0.25 * (fE1 + fE2); - - fArea = 0.5 * (fE1.cross(fE2)).mag(); - G4double lambda0, lambda1; - if(std::fabs(fArea) < kCarTolerance*kCarTolerance) - { - ostringstream message; - message << "Area of Facet is too small, possible flat triangle!" << G4endl - << " fVertices[0] = " << GetVertex(0) << G4endl - << " fVertices[1] = " << GetVertex(1) << G4endl - << " fVertices[2] = " << GetVertex(2) << G4endl - << "Area = " << fArea; - G4Exception("G4TriangularFacet::G4TriangularFacet()", - "GeomSolids1001", JustWarning, message); - lambda0 = 0.5; - lambda1 = 0.5; - } - else - { - lambda0 = (fA-fB) * fC / (8.0*fArea*fArea); - lambda1 = (fC-fB) * fA / (8.0*fArea*fArea); - } - G4ThreeVector p0 = GetVertex(0); - fCircumcentre = p0 + lambda0*fE1 + lambda1*fE2; - G4double radiusSqr = (fCircumcentre-p0).mag2(); - fRadius = sqrt(radiusSqr); + fCircumcentre = + vt0 + (E1xE2.cross(fE1)*fC + fE2.cross(E1xE2)*fA) / (2.*E1xE2.mag2()); + fRadius = (fCircumcentre - vt0).mag(); } } @@ -752,16 +752,14 @@ G4bool G4TriangularFacet::Intersect (const G4ThreeVector &p, // // GetPointOnFace // -// Auxiliary method for get fA random point on surface +// Auxiliary method, returns a uniform random point on the facet // G4ThreeVector G4TriangularFacet::GetPointOnFace() const { - G4double alpha = G4RandFlat::shoot(0., 1.); - G4double beta = G4RandFlat::shoot(0., 1.); - G4double lambda1 = alpha*beta; - G4double lambda0 = alpha-lambda1; - - return GetVertex(0) + lambda0*fE1 + lambda1*fE2; + G4double u = G4UniformRand(); + G4double v = G4UniformRand(); + if (u+v > 1.) { u = 1. - u; v = 1. - v; } + return GetVertex(0) + u*fE1 + v*fE2; } //////////////////////////////////////////////////////////////////////// @@ -770,7 +768,7 @@ G4ThreeVector G4TriangularFacet::GetPointOnFace() const // // Auxiliary method for returning the surface fArea // -G4double G4TriangularFacet::GetArea() +G4double G4TriangularFacet::GetArea() const { return fArea; } diff --git a/source/geometry/solids/specific/src/G4UExtrudedSolid.cc b/source/geometry/solids/specific/src/G4UExtrudedSolid.cc index 1f6376814c..56658ef85b 100644 --- a/source/geometry/solids/specific/src/G4UExtrudedSolid.cc +++ b/source/geometry/solids/specific/src/G4UExtrudedSolid.cc @@ -33,9 +33,9 @@ #include "G4ExtrudedSolid.hh" #include "G4UExtrudedSolid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) -#include "G4Polyhedron.hh" +#include "G4PolyhedronArbitrary.hh" //////////////////////////////////////////////////////////////////////// // @@ -124,4 +124,90 @@ G4UExtrudedSolid::operator=(const G4UExtrudedSolid &source) return *this; } + +////////////////////////////////////////////////////////////////////////// +// +// Accessors + +G4int G4UExtrudedSolid::GetNofVertices() const +{ + return GetShape()->GetNofVertices(); +} +G4TwoVector G4UExtrudedSolid::GetVertex(G4int i) const +{ + UVector2 v = GetShape()->GetVertex(i); + return G4TwoVector(v.x, v.y); +} +std::vector G4UExtrudedSolid::GetPolygon() const +{ + std::vector pol = GetShape()->GetPolygon(); + std::vector v; + for (unsigned int i=0; iGetNofZSections(); +} +G4UExtrudedSolid::ZSection G4UExtrudedSolid::GetZSection(G4int i) const +{ + return ZSection(GetShape()->GetZSection(i)); +} +std::vector G4UExtrudedSolid::GetZSections() const +{ + std::vector sv = GetShape()->GetZSections(); + std::vector vec; + for (unsigned int i=0; iGetNumberOfFacets(); + G4int nVertices = 0; + for (G4int l = 0; lGetFacet(l); + G4int n = facet->GetNumberOfVertices(); + nVertices += n; + } + + G4PolyhedronArbitrary *polyhedron = + new G4PolyhedronArbitrary (nVertices,nFacets); + + for (G4int i = 0; iGetFacet(i); + G4int v[4]; + G4int n = facet->GetNumberOfVertices(); + for (G4int m = 0; mGetVertex(m); + polyhedron->AddVertex(G4ThreeVector(vtx.x(), vtx.y(), vtx.z())); + } + if (n > 4) n = 4; + else if (n == 3) v[3] = 0; + for (G4int j=0; jGetVertexIndex(j); + v[j] = k+1; + } + polyhedron->AddFacet(v[0],v[1],v[2],v[3]); + } + polyhedron->SetReferences(); + + return (G4Polyhedron*) polyhedron; +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/src/G4UGenericPolycone.cc b/source/geometry/solids/specific/src/G4UGenericPolycone.cc index b6218e65be..24b53914a5 100644 --- a/source/geometry/solids/specific/src/G4UGenericPolycone.cc +++ b/source/geometry/solids/specific/src/G4UGenericPolycone.cc @@ -33,7 +33,7 @@ #include "G4GenericPolycone.hh" #include "G4UGenericPolycone.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4Polyhedron.hh" @@ -98,6 +98,30 @@ G4UGenericPolycone::operator=(const G4UGenericPolycone &source) return *this; } +G4double G4UGenericPolycone::GetStartPhi() const +{ + return GetShape()->GetStartPhi(); +} +G4double G4UGenericPolycone::GetEndPhi() const +{ + return GetShape()->GetEndPhi(); +} +G4bool G4UGenericPolycone::IsOpen() const +{ + return GetShape()->IsOpen(); +} +G4int G4UGenericPolycone::GetNumRZCorner() const +{ + return GetShape()->GetNumRZCorner(); +} +G4PolyconeSideRZ G4UGenericPolycone::GetCorner(G4int index) const +{ + UPolyconeSideRZ pside = GetShape()->GetCorner(index); + G4PolyconeSideRZ psiderz = { pside.r, pside.z }; + + return psiderz; +} + G4Polyhedron* G4UGenericPolycone::CreatePolyhedron() const { diff --git a/source/geometry/solids/specific/src/G4UGenericTrap.cc b/source/geometry/solids/specific/src/G4UGenericTrap.cc index fa8501f5b1..8bd7359c3e 100644 --- a/source/geometry/solids/specific/src/G4UGenericTrap.cc +++ b/source/geometry/solids/specific/src/G4UGenericTrap.cc @@ -33,11 +33,14 @@ #include "G4GenericTrap.hh" #include "G4UGenericTrap.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4Polyhedron.hh" #include "G4PolyhedronArbitrary.hh" +#include "G4AutoLock.hh" +namespace { G4Mutex UGenericTrapMutex = G4MUTEX_INITIALIZER; } + //////////////////////////////////////////////////////////////////////// // // Constructor (generic parameters) @@ -101,6 +104,57 @@ G4UGenericTrap::operator=(const G4UGenericTrap &source) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers +// +G4double G4UGenericTrap::GetZHalfLength() const +{ + return GetShape()->GetZHalfLength(); +} +G4int G4UGenericTrap::GetNofVertices() const +{ + return GetShape()->GetNofVertices(); +} +G4TwoVector G4UGenericTrap::GetVertex(G4int index) const +{ + UVector2 v = GetShape()->GetVertex(index); + return G4TwoVector(v.x, v.y); +} +const std::vector& G4UGenericTrap::GetVertices() const +{ + G4AutoLock l(&UGenericTrapMutex); + std::vector v = GetShape()->GetVertices(); + static std::vector vertices; vertices.clear(); + for (size_t n=0; nGetTwistAngle(index); +} +G4bool G4UGenericTrap::IsTwisted() const +{ + return GetShape()->IsTwisted(); +} +G4int G4UGenericTrap::GetVisSubdivisions() const +{ + return GetShape()->GetVisSubdivisions(); +} + +void G4UGenericTrap::SetVisSubdivisions(G4int subdiv) +{ + GetShape()->SetVisSubdivisions(subdiv); +} + +void G4UGenericTrap::SetZHalfLength(G4double halfZ) +{ + GetShape()->SetZHalfLength(halfZ); +} + ////////////////////////////////////////////////////////////////////////// // // CreatePolyhedron() diff --git a/source/geometry/solids/specific/src/G4UParaboloid.cc b/source/geometry/solids/specific/src/G4UParaboloid.cc index 281fbd1d5b..2e5c1a9101 100644 --- a/source/geometry/solids/specific/src/G4UParaboloid.cc +++ b/source/geometry/solids/specific/src/G4UParaboloid.cc @@ -35,9 +35,11 @@ #include "G4Paraboloid.hh" #include "G4UParaboloid.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" +#include "G4PhysicalConstants.hh" +#include "G4Polyhedron.hh" //////////////////////////////////////////////////////////////////////// // @@ -91,6 +93,25 @@ G4UParaboloid& G4UParaboloid::operator = (const G4UParaboloid& rhs) return *this; } +////////////////////////////////////////////////////////////////////////// +// +// Accessors + +G4double G4UParaboloid::GetZHalfLength() const +{ + return GetShape()->GetDz(); +} + +G4double G4UParaboloid::GetRadiusMinusZ() const +{ + return GetShape()->GetRlo(); +} + +G4double G4UParaboloid::GetRadiusPlusZ() const +{ + return GetShape()->GetRhi(); +} + ////////////////////////////////////////////////////////////////////////// // // Make a clone of the object @@ -100,4 +121,15 @@ G4VSolid* G4UParaboloid::Clone() const return new G4UParaboloid(*this); } +//////////////////////////////////////////////////////////////////////// +// +// CreatePolyhedron +// +G4Polyhedron* G4UParaboloid::CreatePolyhedron() const +{ + return new G4PolyhedronParaboloid(GetRadiusMinusZ(), + GetRadiusPlusZ(), + GetZHalfLength(), 0., twopi); +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/solids/specific/src/G4UPolycone.cc b/source/geometry/solids/specific/src/G4UPolycone.cc index fb396924e3..3d40b519d2 100644 --- a/source/geometry/solids/specific/src/G4UPolycone.cc +++ b/source/geometry/solids/specific/src/G4UPolycone.cc @@ -32,7 +32,7 @@ #include "G4Polycone.hh" #include "G4UPolycone.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -112,6 +112,67 @@ G4UPolycone &G4UPolycone::operator=( const G4UPolycone &source ) } +//////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers +// +G4double G4UPolycone::GetStartPhi() const +{ + return GetShape()->GetStartPhi(); +} +G4double G4UPolycone::GetEndPhi() const +{ + return GetShape()->GetEndPhi(); +} +G4bool G4UPolycone::IsOpen() const +{ + return GetShape()->IsOpen(); +} +G4int G4UPolycone::GetNumRZCorner() const +{ + return GetShape()->GetNumRZCorner(); +} +G4PolyconeSideRZ G4UPolycone::GetCorner(G4int index) const +{ + UPolyconeSideRZ pside = GetShape()->GetCorner(index); + G4PolyconeSideRZ psiderz = { pside.r, pside.z }; + + return psiderz; +} +G4PolyconeHistorical* G4UPolycone::GetOriginalParameters() const +{ + UPolyconeHistorical* pars = GetShape()->GetOriginalParameters(); + G4PolyconeHistorical* pdata = new G4PolyconeHistorical(pars->fNumZPlanes); + pdata->Start_angle = pars->fStartAngle; + pdata->Opening_angle = pars->fOpeningAngle; + for (G4int i=0; ifNumZPlanes; ++i) + { + pdata->Z_values[i] = pars->fZValues[i]; + pdata->Rmin[i] = pars->Rmin[i]; + pdata->Rmax[i] = pars->Rmax[i]; + } + return pdata; +} +void G4UPolycone::SetOriginalParameters(G4PolyconeHistorical* pars) +{ + UPolyconeHistorical* pdata = GetShape()->GetOriginalParameters(); + pdata->fStartAngle = pars->Start_angle; + pdata->fOpeningAngle = pars->Opening_angle; + pdata->fNumZPlanes = pars->Num_z_planes; + for (G4int i=0; ifNumZPlanes; ++i) + { + pdata->fZValues[i] = pars->Z_values[i]; + pdata->Rmin[i] = pars->Rmin[i]; + pdata->Rmax[i] = pars->Rmax[i]; + } + fRebuildPolyhedron = true; +} +G4bool G4UPolycone::Reset() +{ + GetShape()->Reset(); + return 0; +} + //////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension diff --git a/source/geometry/solids/specific/src/G4UPolyhedra.cc b/source/geometry/solids/specific/src/G4UPolyhedra.cc index 7de55b5c2f..2d02496031 100644 --- a/source/geometry/solids/specific/src/G4UPolyhedra.cc +++ b/source/geometry/solids/specific/src/G4UPolyhedra.cc @@ -32,7 +32,7 @@ #include "G4Polyhedra.hh" #include "G4UPolyhedra.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) #include "G4VPVParameterisation.hh" @@ -119,6 +119,77 @@ G4UPolyhedra& G4UPolyhedra::operator=( const G4UPolyhedra &source ) } +//////////////////////////////////////////////////////////////////////// +// +// Accessors & modifiers +// +G4int G4UPolyhedra::GetNumSide() const +{ + return GetShape()->GetNumSide(); +} +G4double G4UPolyhedra::GetStartPhi() const +{ + return GetShape()->GetStartPhi(); +} +G4double G4UPolyhedra::GetEndPhi() const +{ + return GetShape()->GetEndPhi(); +} +G4bool G4UPolyhedra::IsOpen() const +{ + return GetShape()->IsOpen(); +} +G4bool G4UPolyhedra::IsGeneric() const +{ + return GetShape()->IsGeneric(); +} +G4int G4UPolyhedra::GetNumRZCorner() const +{ + return GetShape()->GetNumRZCorner(); +} +G4PolyhedraSideRZ G4UPolyhedra::GetCorner(G4int index) const +{ + UPolyhedraSideRZ pside = GetShape()->GetCorner(index); + G4PolyhedraSideRZ psiderz = { pside.r, pside.z }; + + return psiderz; +} +G4PolyhedraHistorical* G4UPolyhedra::GetOriginalParameters() const +{ + UPolyhedraHistorical* pars = GetShape()->GetOriginalParameters(); + G4PolyhedraHistorical* pdata = new G4PolyhedraHistorical(pars->fNumZPlanes); + pdata->Start_angle = pars->fStartAngle; + pdata->Opening_angle = pars->fOpeningAngle; + pdata->numSide = pars->fNumSide; + for (G4int i=0; ifNumZPlanes; ++i) + { + pdata->Z_values[i] = pars->fZValues[i]; + pdata->Rmin[i] = pars->Rmin[i]; + pdata->Rmax[i] = pars->Rmax[i]; + } + return pdata; +} +void G4UPolyhedra::SetOriginalParameters(G4PolyhedraHistorical* pars) +{ + UPolyhedraHistorical* pdata = GetShape()->GetOriginalParameters(); + pdata->fStartAngle = pars->Start_angle; + pdata->fOpeningAngle = pars->Opening_angle; + pdata->fNumSide = pars->numSide; + pdata->fNumZPlanes = pars->Num_z_planes; + for (G4int i=0; ifNumZPlanes; ++i) + { + pdata->fZValues[i] = pars->Z_values[i]; + pdata->Rmin[i] = pars->Rmin[i]; + pdata->Rmax[i] = pars->Rmax[i]; + } + fRebuildPolyhedron = true; +} +G4bool G4UPolyhedra::Reset() +{ + return GetShape()->Reset(); +} + + //////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension diff --git a/source/geometry/solids/specific/src/G4UTet.cc b/source/geometry/solids/specific/src/G4UTet.cc index 75e9ccfbe3..02b82d32eb 100644 --- a/source/geometry/solids/specific/src/G4UTet.cc +++ b/source/geometry/solids/specific/src/G4UTet.cc @@ -36,7 +36,7 @@ #include "G4Tet.hh" #include "G4UTet.hh" -#if defined(G4GEOM_USE_USOLIDS) +#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) ) //////////////////////////////////////////////////////////////////////// // @@ -106,4 +106,43 @@ G4UTet& G4UTet::operator = (const G4UTet& rhs) return *this; } +/////////////////////////////////////////////////////////////////////////////// +// +// Accessors +// +std::vector G4UTet::GetVertices() const +{ + std::vector vec = GetShape()->GetVertices(); + std::vector vertices; + for (unsigned int i=0; iGetParametersList(index, array); + + G4Polyhedron *ph=new G4Polyhedron; + G4double xyz[4][3]; + const G4int faces[4][4]={{1,3,2,0},{1,4,3,0},{1,2,4,0},{2,3,4,0}}; + xyz[0][0]=array[0]; xyz[0][1]=array[1]; xyz[0][2]=array[2]; // fAnchor + xyz[1][0]=array[3]; xyz[1][1]=array[4]; xyz[1][2]=array[5]; // fP2 + xyz[2][0]=array[6]; xyz[2][1]=array[7]; xyz[2][2]=array[8]; // fP3 + xyz[3][0]=array[9]; xyz[3][1]=array[10]; xyz[3][2]=array[11]; // fP4 + + ph->createPolyhedron(4,4,xyz,faces); + + return ph; +} + #endif // G4GEOM_USE_USOLIDS diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History index 8cb20cf47e..be3b883323 100644 --- a/source/geometry/volumes/History +++ b/source/geometry/volumes/History @@ -1,4 +1,4 @@ -$Id: History 93288 2015-10-15 09:51:02Z gcosmo $ +$Id: History 96865 2016-05-13 13:47:43Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 13th, 2016 G.Cosmo - geomvol-V10-02-01 +- Updated unit tests build scripts. + +April 8th, 2016 G.Cosmo - geomvol-V10-02-00 +- G4NavigationHistory: corrected printout in streaming operator. + October 15th, 2015 G.Cosmo - geomvol-V10-01-05 - Enable paramerisation by solid type in G4GeometryWorkspace. Assumes solids being parameterised are declared thread-local in the diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index 8130786917..b5093efbf0 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.cc 86527 2014-11-13 15:06:24Z gcosmo $ +// $Id: G4NavigationHistory.cc 96346 2016-04-08 14:10:33Z gcosmo $ // // // G4NavigationHistory Implementation @@ -68,7 +68,7 @@ G4NavigationHistory::~G4NavigationHistory() std::ostream& operator << (std::ostream& os, const G4NavigationHistory& nav) { - G4cout << "History depth=" << nav.GetDepth() << G4endl; + os << "History depth=" << nav.GetDepth() << G4endl; for ( G4int i=0; i<=nav.GetDepth(); i++ ) { os << "Level=["<replace(mystart,extent,str.mystring->data(),str.length()); diff --git a/source/global/management/include/G4SystemOfUnits.hh b/source/global/management/include/G4SystemOfUnits.hh index 4eb00a8b60..8cbe170ea3 100644 --- a/source/global/management/include/G4SystemOfUnits.hh +++ b/source/global/management/include/G4SystemOfUnits.hh @@ -87,6 +87,8 @@ using CLHEP::megahertz; using CLHEP::ns; using CLHEP::s; using CLHEP::ms; +using CLHEP::us; +using CLHEP::ps; using CLHEP::eplus; using CLHEP::e_SI; using CLHEP::coulomb; diff --git a/source/global/management/include/G4TWorkspacePool.hh b/source/global/management/include/G4TWorkspacePool.hh index 202e1bee27..4ab3fdde9c 100644 --- a/source/global/management/include/G4TWorkspacePool.hh +++ b/source/global/management/include/G4TWorkspacePool.hh @@ -89,13 +89,13 @@ T* G4TWorkspacePool::CreateWorkspace() if ( !fMyWorkspace ) { wrk = new T; if ( !wrk ) { - G4Exception("G4TWorspacePool::CreateWorkspace", "Run0035", + G4Exception("G4TWorspacePool::CreateWorkspace", "Workspace01", FatalException, "Failed to create workspace."); } else { fMyWorkspace = wrk; } } else { - G4Exception("ParticlesWorspacePool::CreateWorkspace", "Run0035", + G4Exception("ParticlesWorspacePool::CreateWorkspace", "Workspace02", FatalException, "Cannot create workspace twice for the same thread."); wrk = fMyWorkspace; diff --git a/source/global/management/include/G4Threading.hh b/source/global/management/include/G4Threading.hh index 6d20bed97a..1371b21efd 100644 --- a/source/global/management/include/G4Threading.hh +++ b/source/global/management/include/G4Threading.hh @@ -54,7 +54,7 @@ // Multi-threaded build //=============================== #if ( defined(__MACH__) && defined(__clang__) && defined(__x86_64__) ) || \ - ( defined(__MACH__) && defined(__GNUC__) && __GNUC__>=4 && __GNUC_MINOR__>=7 ) || \ + ( defined(__MACH__) && defined(__GNUC__) && (__GNUC__>=4 && __GNUC_MINOR__>=7 || __GNUC__>=5) ) || \ defined(__linux__) || defined(_AIX) // // Multi-threaded build: for POSIX systems @@ -119,7 +119,7 @@ #define G4CONDITION_INITIALIZER PTHREAD_COND_INITIALIZER #define G4CONDITIONWAIT( cond, mutex ) pthread_cond_wait( cond , mutex ); - #define G4CONDTIONBROADCAST( cond ) pthread_cond_broadcast( cond ); + #define G4CONDITIONBROADCAST( cond ) pthread_cond_broadcast( cond ); #elif defined(WIN32) // @@ -158,7 +158,7 @@ #define G4CONDITION_INITIALIZER CONDITION_VARIABLE_INIT #define G4CONDITIONWAIT( cond , criticalsectionmutex ) SleepConditionVariableCS( cond, criticalsectionmutex , INFINITE ); - #define G4CONDTIONBROADCAST( cond ) WakeAllConditionVariable( cond ); + #define G4CONDITIONBROADCAST( cond ) WakeAllConditionVariable( cond ); #else @@ -188,8 +188,8 @@ typedef G4int G4Pid_t; typedef G4int G4Condition; #define G4CONDITION_INITIALIZER 1 - #define G4CONDITIONWAIT( cond, mutex ) ;; - #define G4CONDTIONBROADCAST( cond ) ;; + #define G4CONDITIONWAIT( cond, mutex ) { ++(*cond); ++(*mutex); } + #define G4CONDITIONBROADCAST( cond ) { ++(*cond); } #endif //G4MULTITHREADING diff --git a/source/global/management/include/G4Version.hh b/source/global/management/include/G4Version.hh index 46b7887098..a11d4bd12c 100644 --- a/source/global/management/include/G4Version.hh +++ b/source/global/management/include/G4Version.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Version.hh 94738 2015-12-04 11:23:42Z gcosmo $ +// $Id: G4Version.hh 97990 2016-06-30 10:04:56Z gcosmo $ // GEANT4 tag $Name:$ // // Version information @@ -46,11 +46,11 @@ // |--> patch number #ifndef G4VERSION_NUMBER -#define G4VERSION_NUMBER 1020 +#define G4VERSION_NUMBER 1030 #endif #ifndef G4VERSION_TAG -#define G4VERSION_TAG "$Name: geant4-10-02 $" +#define G4VERSION_TAG "$Name: geant4-10-03-beta-01 $" #endif // as variables @@ -58,10 +58,10 @@ #include "G4String.hh" #ifdef G4MULTITHREADED -static const G4String G4Version = "$Name: geant4-10-02 [MT]$"; +static const G4String G4Version = "$Name: geant4-10-03-beta-01 [MT]$"; #else -static const G4String G4Version = "$Name: geant4-10-02 $"; +static const G4String G4Version = "$Name: geant4-10-03-beta-01 $"; #endif -static const G4String G4Date = "(4-December-2015)"; +static const G4String G4Date = "(30-June-2016)"; #endif diff --git a/source/global/management/include/tls.hh b/source/global/management/include/tls.hh index 5b02a96818..1804669293 100644 --- a/source/global/management/include/tls.hh +++ b/source/global/management/include/tls.hh @@ -44,7 +44,7 @@ # define G4ThreadLocal __thread #endif #elif ( (defined(__linux__) || defined(__MACH__)) && \ - !defined(__INTEL_COMPILER) && defined(__GNUC__) && __GNUC__>=4 && __GNUC_MINOR__<9 ) + !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__>=4 && __GNUC_MINOR__<9) || __GNUC__>=5 ) #if defined (G4USE_STD11) # define G4ThreadLocalStatic static __thread # define G4ThreadLocal thread_local @@ -53,7 +53,7 @@ # define G4ThreadLocal __thread #endif #elif ( (defined(__linux__) || defined(__MACH__)) && \ - !defined(__INTEL_COMPILER) && defined(__GNUC__) && __GNUC__>=4 && __GNUC_MINOR__>=9 ) + !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__>=4 && __GNUC_MINOR__>=9) || __GNUC__>=5 ) #if defined (G4USE_STD11) # define G4ThreadLocalStatic static thread_local # define G4ThreadLocal thread_local diff --git a/source/global/management/sources.cmake b/source/global/management/sources.cmake index a0e055c0bc..492474dff8 100644 --- a/source/global/management/sources.cmake +++ b/source/global/management/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 85359 2014-10-28 10:04:03Z gcosmo $ +# $Id: sources.cmake 95631 2016-02-17 08:02:06Z gcosmo $ # #------------------------------------------------------------------------------ @@ -101,6 +101,7 @@ GEANT4_DEFINE_MODULE(NAME G4globman G4ThreadLocalSingleton.hh G4AutoDelete.hh G4TWorkspacePool.hh + G4MTBarrier.hh SOURCES G4Allocator.cc G4AllocatorPool.cc @@ -135,6 +136,7 @@ GEANT4_DEFINE_MODULE(NAME G4globman G4ofstreamDestination.cc G4MTcoutDestination.cc G4CacheDetails.cc + G4MTBarrier.cc GRANULAR_DEPENDENCIES GLOBAL_DEPENDENCIES LINK_LIBRARIES diff --git a/source/global/management/src/G4GeometryTolerance.cc b/source/global/management/src/G4GeometryTolerance.cc index 0f8290b453..22bf7bc036 100644 --- a/source/global/management/src/G4GeometryTolerance.cc +++ b/source/global/management/src/G4GeometryTolerance.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GeometryTolerance.cc 92328 2015-08-28 07:44:26Z gcosmo $ +// $Id: G4GeometryTolerance.cc 96427 2016-04-14 09:37:29Z gcosmo $ // // class G4GeometryTolerance // @@ -36,25 +36,25 @@ #include "G4GeometryTolerance.hh" #include "G4SystemOfUnits.hh" +#include "G4AutoDelete.hh" #include "globals.hh" // *************************************************************************** -// Static class data +// Static class instance // *************************************************************************** // -G4GeometryTolerance* G4GeometryTolerance::fpInstance = 0; -G4bool G4GeometryTolerance::fInitialised = false; -G4double G4GeometryTolerance::fCarTolerance = 1E-9*mm; -G4double G4GeometryTolerance::fAngTolerance = 1E-9*rad; -G4double G4GeometryTolerance::fRadTolerance = 1E-9*mm; +G4ThreadLocal G4GeometryTolerance* G4GeometryTolerance::fpInstance = 0; // *************************************************************************** // Constructor. // *************************************************************************** // -G4GeometryTolerance::G4GeometryTolerance() +G4GeometryTolerance::G4GeometryTolerance() : fInitialised(false) { + fCarTolerance = 1E-9*mm; + fAngTolerance = 1E-9*rad; + fRadTolerance = 1E-9*mm; } // *************************************************************************** @@ -63,7 +63,6 @@ G4GeometryTolerance::G4GeometryTolerance() // G4GeometryTolerance::~G4GeometryTolerance() { - delete fpInstance; fpInstance = 0; } // *************************************************************************** @@ -76,6 +75,7 @@ G4GeometryTolerance* G4GeometryTolerance::GetInstance() if (fpInstance == 0) { fpInstance = new G4GeometryTolerance; + G4AutoDelete::Register(fpInstance); } return fpInstance; } diff --git a/source/global/management/src/G4MTBarrier.cc b/source/global/management/src/G4MTBarrier.cc new file mode 100644 index 0000000000..68dac01846 --- /dev/null +++ b/source/global/management/src/G4MTBarrier.cc @@ -0,0 +1,120 @@ +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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$ +// +// --------------------------------------------------------------- +/* + * G4MTBarrier.cc + * + * Created on: Feb 10, 2016 + * Author: adotti + */ + +#include "G4MTBarrier.hh" +#include "G4AutoLock.hh" + +G4MTBarrier::G4MTBarrier(unsigned int numThreads ) : + m_numActiveThreads(numThreads), + m_counter(0), + m_mutex(G4MUTEX_INITIALIZER), + m_counterChanged(G4CONDITION_INITIALIZER), + m_continue(G4CONDITION_INITIALIZER) +{ +#if defined(WIN32) + InitializeCriticalSection( &cs1 ); + InitializeCriticalSection( &cs2 ); +#endif +} + +void G4MTBarrier::ThisWorkerReady() { + //Step-1: Worker acquires lock on shared resource (the counter) +#ifndef WIN32 + G4AutoLock lock(&m_mutex); +#else + EnterCriticalSection( &cs1 ); +#endif + //Step-2: Worker increases counter + ++m_counter; + //Step-3: Worker broadcasts that the counter has changed + G4CONDITIONBROADCAST(&m_counterChanged); + //Step-4: Worker waits on condition to continue +#ifndef WIN32 + G4CONDITIONWAIT(&m_continue,&m_mutex); +#else +# ifdef G4MULTITHREADED + G4CONDITIONWAIT(&m_continue,&cs1); +# endif + LeaveCriticalSection(&cs1); +#endif +} + +void G4MTBarrier::Wait() { + while (true) + { + //Step-2: Acquires lock on shared resource (the counter) +#ifndef WIN32 + G4AutoLock lock(&m_mutex); +#else + EnterCriticalSection(&cs2); +#endif + //If the counter equals active threads, all threads are ready, exit the loop + if ( m_counter == m_numActiveThreads ) { break; } + //Step-3: Not all workers are ready, wait for the number to change + //before repeating the check +#ifdef WIN32 +# ifdef G4MULTITHREADED + G4CONDITIONWAIT(&m_counterChanged,&cs2); +# endif + LeaveCriticalSection(&cs2); +#else + G4CONDITIONWAIT(&m_counterChanged,&m_mutex); +#endif + } +} + +void G4MTBarrier::ReleaseBarrier() { + //Step-4: re-aquire lock and re-set shared resource for future re-use + G4AutoLock lock(&m_mutex); + m_counter = 0; + G4CONDITIONBROADCAST(&m_continue); +} + +void G4MTBarrier::WaitForReadyWorkers() { + //Step-1: Master enters a loop to wait all workers to be ready + Wait(); + //Done, all workers are ready, broadcast a continue signal + ReleaseBarrier(); +} + +void G4MTBarrier::ResetCounter() { + G4AutoLock l(&m_mutex); + m_counter = 0; +} + +unsigned int G4MTBarrier::GetCounter() { + G4AutoLock l(&m_mutex); + const unsigned int result = m_counter; + return result; +} diff --git a/source/global/management/src/G4UnitsTable.cc b/source/global/management/src/G4UnitsTable.cc index c2f9160d93..f8c912f0db 100644 --- a/source/global/management/src/G4UnitsTable.cc +++ b/source/global/management/src/G4UnitsTable.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.cc 94074 2015-11-05 14:56:40Z gcosmo $ +// $Id: G4UnitsTable.cc 96706 2016-05-02 09:31:38Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -149,9 +149,9 @@ G4double G4UnitDefinition::GetValueOf(const G4String& str) } } std::ostringstream message; - message << "The unit '" << str << "' does not exist in the Units Table."; + message << "The unit '" << str << "' does not exist in the Units Table!"; G4Exception("G4UnitDefinition::GetValueOf()", "InvalidUnit", - JustWarning, message, "Returning Value = 0."); + FatalException, message); return 0.; } @@ -171,9 +171,9 @@ G4String G4UnitDefinition::GetCategory(const G4String& str) } } std::ostringstream message; - message << "The unit '" << str << "' does not exist in the Units Table."; + message << "The unit '" << str << "' does not exist in the Units Table!"; G4Exception("G4UnitDefinition::GetCategory()", "InvalidUnit", - JustWarning, message, "Returning Value = 0."); + FatalException, message); name = "None"; return name; } @@ -237,7 +237,7 @@ void G4UnitDefinition::BuildUnitsTable() //Time new G4UnitDefinition( "second","s" ,"Time",second); new G4UnitDefinition("millisecond","ms" ,"Time",millisecond); - new G4UnitDefinition("microsecond","mus" ,"Time",microsecond); + new G4UnitDefinition("microsecond","us" ,"Time",microsecond); new G4UnitDefinition( "nanosecond","ns" ,"Time",nanosecond); new G4UnitDefinition( "picosecond","ps" ,"Time",picosecond); diff --git a/source/graphics_reps/History b/source/graphics_reps/History index bcf26282ac..4e2de99a84 100644 --- a/source/graphics_reps/History +++ b/source/graphics_reps/History @@ -1,4 +1,4 @@ -$Id: History 89678 2015-04-27 09:03:18Z gcosmo $ +$Id: History 95881 2016-03-01 08:46:20Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,10 @@ committal in the CVS repository ! History file for graphics_reps category --------------------------------------- +1st March 2016 Gabriele Cosmo (greps-V10-02-00) +- Use "" instead of <> for internal header inclusion in + HepPolyhedronProcessor.h. + 26th April 2015 John Allison (greps-V10-01-03) - HepPolyhedron: Minor fix for Coverity. diff --git a/source/graphics_reps/include/HepPolyhedronProcessor.h b/source/graphics_reps/include/HepPolyhedronProcessor.h index fc24a00a48..660875a296 100644 --- a/source/graphics_reps/include/HepPolyhedronProcessor.h +++ b/source/graphics_reps/include/HepPolyhedronProcessor.h @@ -27,7 +27,7 @@ #ifndef HEP_POLYHEDRONPROCESSOR_HH #define HEP_POLYHEDRONPROCESSOR_HH -#include +#include "HepPolyhedron.h" #include diff --git a/source/interfaces/History b/source/interfaces/History index f1ffae1008..ea12c71ee8 100644 --- a/source/interfaces/History +++ b/source/interfaces/History @@ -1,4 +1,4 @@ -$Id: History 90762 2015-06-09 07:52:57Z gcosmo $ +$Id: History 97524 2016-06-03 14:26:34Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,22 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd June 2016 Laurent Garnier (interfaces-V10-02-02) +- G4UIWin32: Re-Fixed compilation warnings on Win32 about HMENU. + +1st June 2016 Laurent Garnier (interfaces-V10-02-01) +- G4UIWin32 :Fixed compilation warnings on Win32 about LONG_PTR and HMENU. + +27th May 2016 Gabriele Cosmo (interfaces-V10-02-00) +- Fixed compilation warnings on MacOS for conversion to char* in G4UIXm.cc. + +3rd November 2015 Laurent Garnier +- G4UIQt : Minor change in CreateViewerWidget method + +24th July 2015 Laurent Garnier +- Clean debug statements +- Fix DEV-8: Qt driver : in parameter box, Ok button is on the left, it should be on the right. + 8nd June 2015 Laurent Garnier (interfaces-V10-01-01) - Tagged diff --git a/source/interfaces/basic/include/G4UIQt.hh b/source/interfaces/basic/include/G4UIQt.hh index dc47e5ce84..fbb9c2d750 100644 --- a/source/interfaces/basic/include/G4UIQt.hh +++ b/source/interfaces/basic/include/G4UIQt.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UIQt.hh 90762 2015-06-09 07:52:57Z gcosmo $ +// $Id: G4UIQt.hh 97174 2016-05-27 12:41:02Z gcosmo $ // #ifndef G4UIQt_h #define G4UIQt_h @@ -263,7 +263,7 @@ private: QWidget* CreateHistoryTBWidget(); G4UIDockWidget* CreateUITabWidget(); QWidget* CreateSceneTreeComponentsTBWidget(); - QWidget* CreateViewerWidget(); + void CreateViewerWidget(); void OpenHelpTreeOnCommand(const QString &); QString GetShortCommandPath(QString); QString GetLongCommandPath(QTreeWidgetItem*); diff --git a/source/interfaces/basic/moc/G4UIQt_moc.cc b/source/interfaces/basic/moc/G4UIQt_moc.cc new file mode 100644 index 0000000000..20bc75e70b --- /dev/null +++ b/source/interfaces/basic/moc/G4UIQt_moc.cc @@ -0,0 +1,159 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'G4UIQt.hh' +** +** Created: Fri Jun 3 16:33:38 2016 +** by: The Qt Meta Object Compiler version 63 (Qt 4.8.4) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../include/G4UIQt.hh" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'G4UIQt.hh' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.4. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_G4UIQt[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 23, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 8, 7, 7, 7, 0x08, + 22, 7, 7, 7, 0x08, + 44, 7, 7, 7, 0x08, + 74, 69, 7, 7, 0x08, + 105, 7, 7, 7, 0x08, + 129, 7, 7, 7, 0x08, + 152, 7, 7, 7, 0x08, + 181, 7, 7, 7, 0x08, + 200, 7, 7, 7, 0x08, + 225, 7, 7, 7, 0x08, + 253, 7, 7, 7, 0x08, + 274, 7, 7, 7, 0x08, + 305, 7, 7, 7, 0x08, + 333, 7, 7, 7, 0x08, + 361, 7, 7, 7, 0x08, + 383, 7, 7, 7, 0x08, + 405, 7, 7, 7, 0x08, + 436, 7, 7, 7, 0x08, + 466, 7, 7, 7, 0x08, + 493, 7, 7, 7, 0x08, + 521, 7, 7, 7, 0x08, + 547, 7, 7, 7, 0x08, + 573, 7, 7, 7, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_G4UIQt[] = { + "G4UIQt\0\0ExitSession()\0ClearButtonCallback()\0" + "CommandEnteredCallback()\0text\0" + "CommandEditedCallback(QString)\0" + "ButtonCallback(QString)\0HelpTreeClicCallback()\0" + "HelpTreeDoubleClicCallback()\0" + "ShowHelpCallback()\0CommandHistoryCallback()\0" + "LookForHelpStringCallback()\0" + "UpdateTabWidget(int)\0" + "ResizeTabWidget(QResizeEvent*)\0" + "CoutFilterCallback(QString)\0" + "ThreadComboBoxCallback(int)\0" + "TabCloseCallback(int)\0ToolBoxActivated(int)\0" + "VisParameterCallback(QWidget*)\0" + "ChangeColorCallback(QWidget*)\0" + "ChangeCursorStyle(QString)\0" + "ChangeSurfaceStyle(QString)\0" + "OpenIconCallback(QString)\0" + "SaveIconCallback(QString)\0" + "ChangePerspectiveOrtho(QString)\0" +}; + +void G4UIQt::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + Q_ASSERT(staticMetaObject.cast(_o)); + G4UIQt *_t = static_cast(_o); + switch (_id) { + case 0: _t->ExitSession(); break; + case 1: _t->ClearButtonCallback(); break; + case 2: _t->CommandEnteredCallback(); break; + case 3: _t->CommandEditedCallback((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 4: _t->ButtonCallback((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 5: _t->HelpTreeClicCallback(); break; + case 6: _t->HelpTreeDoubleClicCallback(); break; + case 7: _t->ShowHelpCallback(); break; + case 8: _t->CommandHistoryCallback(); break; + case 9: _t->LookForHelpStringCallback(); break; + case 10: _t->UpdateTabWidget((*reinterpret_cast< int(*)>(_a[1]))); break; + case 11: _t->ResizeTabWidget((*reinterpret_cast< QResizeEvent*(*)>(_a[1]))); break; + case 12: _t->CoutFilterCallback((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 13: _t->ThreadComboBoxCallback((*reinterpret_cast< int(*)>(_a[1]))); break; + case 14: _t->TabCloseCallback((*reinterpret_cast< int(*)>(_a[1]))); break; + case 15: _t->ToolBoxActivated((*reinterpret_cast< int(*)>(_a[1]))); break; + case 16: _t->VisParameterCallback((*reinterpret_cast< QWidget*(*)>(_a[1]))); break; + case 17: _t->ChangeColorCallback((*reinterpret_cast< QWidget*(*)>(_a[1]))); break; + case 18: _t->ChangeCursorStyle((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 19: _t->ChangeSurfaceStyle((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 20: _t->OpenIconCallback((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 21: _t->SaveIconCallback((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 22: _t->ChangePerspectiveOrtho((*reinterpret_cast< const QString(*)>(_a[1]))); break; + default: ; + } + } +} + +const QMetaObjectExtraData G4UIQt::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject G4UIQt::staticMetaObject = { + { &QObject::staticMetaObject, qt_meta_stringdata_G4UIQt, + qt_meta_data_G4UIQt, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &G4UIQt::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *G4UIQt::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *G4UIQt::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_G4UIQt)) + return static_cast(const_cast< G4UIQt*>(this)); + if (!strcmp(_clname, "G4VBasicShell")) + return static_cast< G4VBasicShell*>(const_cast< G4UIQt*>(this)); + if (!strcmp(_clname, "G4VInteractiveSession")) + return static_cast< G4VInteractiveSession*>(const_cast< G4UIQt*>(this)); + return QObject::qt_metacast(_clname); +} + +int G4UIQt::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 23) + qt_static_metacall(this, _c, _id, _a); + _id -= 23; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/source/interfaces/basic/src/G4UIQt.cc b/source/interfaces/basic/src/G4UIQt.cc index f34dee309d..d23735d08f 100644 --- a/source/interfaces/basic/src/G4UIQt.cc +++ b/source/interfaces/basic/src/G4UIQt.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UIQt.cc 87700 2014-12-17 09:52:39Z gcosmo $ +// $Id: G4UIQt.cc 97174 2016-05-27 12:41:02Z gcosmo $ // // L. Garnier @@ -184,7 +184,7 @@ G4UIQt::G4UIQt ( fMainWindow->setCorner( Qt::BottomLeftCorner, Qt::LeftDockWidgetArea ); fMainWindow->setCorner( Qt::BottomRightCorner, Qt::RightDockWidgetArea ); - fMainWindow->setCentralWidget(CreateViewerWidget()); + CreateViewerWidget(); fMainWindow->addDockWidget(Qt::LeftDockWidgetArea, CreateUITabWidget()); fMainWindow->addDockWidget(Qt::BottomDockWidgetArea, CreateCoutTBWidget()); @@ -542,7 +542,7 @@ QWidget* G4UIQt::CreateSceneTreeComponentsTBWidget(){ } -QWidget* G4UIQt::CreateViewerWidget(){ +void G4UIQt::CreateViewerWidget(){ // Set layouts @@ -576,6 +576,7 @@ QWidget* G4UIQt::CreateViewerWidget(){ // fill right splitter if (fViewerTabWidget == NULL) { fViewerTabWidget = new G4QTabWidget(); + fMainWindow->setCentralWidget(fViewerTabWidget); #if QT_VERSION < 0x040500 #else fViewerTabWidget->setTabsClosable (true); @@ -599,8 +600,6 @@ QWidget* G4UIQt::CreateViewerWidget(){ fViewerTabWidget->setSizePolicy(policy); fViewerTabWidget->setMinimumSize(40,40); - - return fViewerTabWidget; } @@ -681,7 +680,7 @@ bool G4UIQt::AddTabWidget( #if QT_VERSION >= 0x050000 QString message = QString( "This Qt version [")+qVersion ()+"] has some issues with the OpenGL viewer.\n"+ - "To prevent problems, you are not allowed to open a Store nor Immediate viewer.\n" + + "To prevent problems, you are not allowed to open a Stored nor Immediate viewer.\n" + "\n" + "Please upgrade to Qt version >= 5.1\n"; @@ -694,22 +693,7 @@ bool G4UIQt::AddTabWidget( #endif if (fViewerTabWidget == NULL) { - fViewerTabWidget = new G4QTabWidget(); -#if QT_VERSION < 0x040500 -#else - fViewerTabWidget->setTabsClosable (true); -#endif - -#if QT_VERSION < 0x040200 -#else - fViewerTabWidget->setUsesScrollButtons (true); -#endif - -#if QT_VERSION < 0x040500 -#else - connect(fViewerTabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(TabCloseCallback(int))); -#endif - connect(fViewerTabWidget, SIGNAL(currentChanged ( int ) ), SLOT(UpdateTabWidget(int))); + CreateViewerWidget(); } if (!aWidget) { @@ -2541,11 +2525,11 @@ bool G4UIQt::CreateCommandWidget(G4UIcommand* aCommand, QWidget* aParent, bool i applyButton->setAutoDefault( TRUE ); applyButton->setDefault( TRUE ); - gridLayout->addWidget(applyButton,n_parameterEntry-nbColorParameter,0); QPushButton* cancelButton = new QPushButton( tr( "&Cancel" )); cancelButton->setAutoDefault( TRUE ); gridLayout->addWidget(cancelButton,n_parameterEntry-nbColorParameter,1); + gridLayout->addWidget(applyButton,n_parameterEntry-nbColorParameter,0); QSignalMapper* signalMapper = new QSignalMapper(this); signalMapper->setMapping(applyButton, paramWidget); diff --git a/source/interfaces/basic/src/G4UIWin32.cc b/source/interfaces/basic/src/G4UIWin32.cc index 964f2b68c8..2b54c32936 100644 --- a/source/interfaces/basic/src/G4UIWin32.cc +++ b/source/interfaces/basic/src/G4UIWin32.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UIWin32.cc 66892 2013-01-17 10:57:59Z gunter $ +// $Id: G4UIWin32.cc 97524 2016-06-03 14:26:34Z gcosmo $ // // G.Barrand @@ -228,7 +228,7 @@ G4UIWin32::G4UIWin32 ( menuBar = CreateMenu(); defaultMenu = CreatePopupMenu(); - AppendMenu(menuBar,MF_POPUP,(UINT)defaultMenu,"Geant4"); + AppendMenu(menuBar,MF_POPUP,(UINT_PTR)defaultMenu,"Geant4"); textBuffer = new TextBuffer(); @@ -241,7 +241,7 @@ G4UIWin32::G4UIWin32 ( ::GetModuleHandle(NULL), NULL); tmpSession = NULL; - ::SetWindowLongPtr(mainWindow,GWLP_USERDATA,LONG(this)); + ::SetWindowLongPtr(mainWindow,GWLP_USERDATA,(LONG_PTR)this); ::SetForegroundWindow(mainWindow); ::ShowWindow(mainWindow,SW_SHOWDEFAULT); @@ -398,7 +398,7 @@ void G4UIWin32::AddMenu ( defaultMenu = NULL; } HMENU hMenu = CreatePopupMenu(); - AppendMenu(menuBar,MF_POPUP,(UINT)hMenu,a_label); + AppendMenu(menuBar,MF_POPUP,(UINT_PTR)hMenu,a_label); AddInteractor(a_name,(G4Interactor)hMenu); DrawMenuBar(mainWindow); } @@ -465,7 +465,7 @@ LRESULT CALLBACK G4UIWin32::MainWindowProc ( a_window,NULL, GetWindowInstance(a_window), NULL); - ::SetWindowLongPtr (This->textWindow,GWLP_USERDATA,LONG(This)); + ::SetWindowLongPtr (This->textWindow,GWLP_USERDATA,(LONG_PTR)This); This->editWindow = CreateWindow ("edit",NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, @@ -475,7 +475,7 @@ LRESULT CALLBACK G4UIWin32::MainWindowProc ( GetWindowInstance(a_window), NULL); oldEditWindowProc = (WNDPROC)GetWindowLongPtr(This->editWindow,GWLP_WNDPROC); - SetWindowLongPtr (This->editWindow,GWLP_WNDPROC,(LONG)EditWindowProc); + SetWindowLongPtr (This->editWindow,GWLP_WNDPROC,(LONG_PTR)EditWindowProc); MoveWindow (a_window, rect.left,rect.top, diff --git a/source/interfaces/basic/src/G4UIXm.cc b/source/interfaces/basic/src/G4UIXm.cc index 7257b9904d..5f7c2615fd 100644 --- a/source/interfaces/basic/src/G4UIXm.cc +++ b/source/interfaces/basic/src/G4UIXm.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UIXm.cc 74547 2013-10-14 12:51:17Z gcosmo $ +// $Id: G4UIXm.cc 97174 2016-05-27 12:41:02Z gcosmo $ // // G.Barrand @@ -130,7 +130,7 @@ G4UIXm::G4UIXm ( XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); XtSetArg(args[3],XmNbottomAttachment,XmATTACH_WIDGET); XtSetArg(args[4],XmNbottomWidget ,command); - XmString cps = XmStringLtoRCreate((char*)"Clear",XmSTRING_DEFAULT_CHARSET); + XmString cps = XmStringLtoRCreate((char*)"Clear",(char*)XmSTRING_DEFAULT_CHARSET); XtSetArg (args[5],XmNlabelString,cps); Widget clearButton = XmCreatePushButton(form,(char*)"clearButton",args,6); XmStringFree (cps); @@ -201,7 +201,7 @@ void G4UIXm::Prompt ( { Arg args[1]; char* str = (char*)XtNewString(aPrompt.data()); - XmString cps = XmStringLtoRCreate(str,XmSTRING_DEFAULT_CHARSET); + XmString cps = XmStringLtoRCreate(str,(char*)XmSTRING_DEFAULT_CHARSET); XtFree(str); XtSetArg(args[0],XmNpromptString,cps); XtSetValues(command,args,1); @@ -316,7 +316,7 @@ void G4UIXm::AddMenu ( AddInteractor (a_name,(G4Interactor)widget); // Cascade button : Arg args[2]; - XmString cps = XmStringLtoRCreate((char*)a_label,XmSTRING_DEFAULT_CHARSET); + XmString cps = XmStringLtoRCreate((char*)a_label,(char*)XmSTRING_DEFAULT_CHARSET); XtSetArg (args[0],XmNlabelString,cps); XtSetArg (args[1],XmNsubMenuId,widget); widget = XmCreateCascadeButton (menuBar,(char*)a_name,args,2); diff --git a/source/interfaces/common/src/G4Qt.cc b/source/interfaces/common/src/G4Qt.cc index 6763c5684b..9497155863 100644 --- a/source/interfaces/common/src/G4Qt.cc +++ b/source/interfaces/common/src/G4Qt.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Qt.cc 79026 2014-02-12 09:53:32Z gcosmo $ +// $Id: G4Qt.cc 97174 2016-05-27 12:41:02Z gcosmo $ // // L. Garnier @@ -81,9 +81,6 @@ G4Qt::G4Qt ( args = NULL; externalApp = false; -#ifdef G4DEBUG_INTERFACES_COMMON - printf("G4Qt::G4Qt try to inited Qt\n"); -#endif // Check if Qt already init in another external app if(qApp) { externalApp = true; @@ -91,9 +88,6 @@ G4Qt::G4Qt ( SetMainInteractor (qApp); SetArguments (a_argn,a_args); -#ifdef G4DEBUG_INTERFACES_COMMON - printf("G4Qt::G4Qt alredy inited in external \n"); -#endif } else { if(QtInited==FALSE) { //Qt should be Inited once ! @@ -119,9 +113,6 @@ G4Qt::G4Qt ( int *p_argn = (int*)malloc(sizeof(int)); *p_argn = argn; -#ifdef G4DEBUG_INTERFACES_COMMON - printf("G4Qt::G4Qt QAppl \n"); -#endif new QApplication (*p_argn, args); if(!qApp) { @@ -133,25 +124,12 @@ G4Qt::G4Qt ( } else { QtInited = TRUE; if (a_argn != 0) { -#ifdef G4DEBUG_INTERFACES_COMMON - printf("G4Qt::G4Qt SetMainInteractor\n"); -#endif SetMainInteractor (qApp); } SetArguments (a_argn,a_args); -#ifdef G4DEBUG_INTERFACES_COMMON - printf("G4Qt::G4Qt inited Qt END\n"); -#endif } } } -#ifdef G4DEBUG_INTERFACES_COMMON - if (qApp) { - printf("G4Qt::qApp already exist\n"); - } else { - printf("G4Qt::qApp not exist\n"); - } -#endif // AddDispatcher ((G4DispatchFunction)XtDispatchEvent); /* diff --git a/source/materials/History b/source/materials/History index 2e7342f918..f826db2c18 100644 --- a/source/materials/History +++ b/source/materials/History @@ -1,4 +1,4 @@ -$Id: History 94234 2015-11-09 10:58:13Z gcosmo $ +$Id: History 97673 2016-06-07 08:27:00Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,59 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-06-16 V.Ivanchenko (materials-V10-02-12) +- G4DensityEffectData - fixed initialisation + +30-05-16 V.Ivanchenko (materials-V10-02-11) +- G4DensityEffectData, G4IonisParamMat - fixed density effect + parameters corrections for the case when NIST mean ionisation + potential does not equal to that parameter in Shternheimer table +- G4NistElementBuilder, G4NistMaterialBuilder - added access to + the mean ionisation potential; put liquid water in front of + the list of NIST materials (index=0), so pure materials can be + easier accessted via atomic number (Z > 0) + +09-05-16 V.Ivanchenko (materials-V10-02-10) +- G4Material - do not delete G4MaterialPropertyTable, because this + is unsafe + +06-05-16 V.Ivanchenko (materials-V10-02-09) +06-05-16 V.Ivanchenko (materials-V10-02-08) +- cleanup all classes: use nullptr, use const/static +- G4MaterialPropertiesTable - 4 complex methods moved from inline + to source +- G4UCNMicroRoughnessHelper - all methods are const +- G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder - + added new const methods FindElement(..), FindMaterial(..), + FindSimpleMaterial(..), which may be used in run time in MT mode +- G4Element - added method GetZ_asInt() + +08-04-16 L.G. Sarmiento (materials-V10-02-07) +- G4AtomicShells_EADL class added. Not being used by anything yet. + +06-04-16 V.Ivanchenko (materials-V10-02-06) +- G4SandiaTable - fixed problem for the case when G4VERBOSE flag + unset (introduced in the previous tag) + +06-03-16 V.Ivanchenko (materials-V10-02-05) +04-03-16 V.Ivanchenko (materials-V10-02-04) +- G4AtomicShells, G4SandiaTable - asserts are substituted by G4Exception, + which are happens only if G4VERBOSE compillation flag is set; +- G4SandiaTable - cleanup of methods is done, unused methods removed, + some are moved from public to private + +18-02-16 A. Dotti (materials-V10-02-02) +- Fix rare data-race in G4MaterialPropertiesTable for optical physics + crash + +03-01-16 M. Verderi (materials-V10-02-01) +- src/G4NistElementBuilder.cc : fixed typo in print reported in #1786. + +20-01-16 V.Ivanchenko (materials-V10-02-00) +- G4NistMaterialBuilder - added lock to build of a new NIST + material. This is needed, because some physics processes may + create a new NIST material from a worker thread. + 09-11-15 V.Ivanchenko (materials-V10-01-14) - fixed typo in comments (no code change) diff --git a/source/materials/include/G4AtomicShells.hh b/source/materials/include/G4AtomicShells.hh index 2598dfbd19..5988f4c2a9 100644 --- a/source/materials/include/G4AtomicShells.hh +++ b/source/materials/include/G4AtomicShells.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AtomicShells.hh 94016 2015-11-05 10:14:49Z gcosmo $ +// $Id: G4AtomicShells.hh 95987 2016-03-07 08:11:16Z gcosmo $ // class description // @@ -52,9 +52,7 @@ #ifndef G4ATOMICSHELLS_H #define G4ATOMICSHELLS_H - #include "globals.hh" -#include "templates.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -62,21 +60,28 @@ class G4AtomicShells { public : //with description -static G4int GetNumberOfShells(G4int Z); -static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb); -static G4double GetBindingEnergy (G4int Z, G4int SubshellNb); - G4double GetTotalBindingEnergy (G4int Z); + static G4int GetNumberOfShells(G4int Z); + static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb); + static G4double GetBindingEnergy(G4int Z, G4int SubshellNb); + static G4double GetTotalBindingEnergy(G4int Z); private : -static const G4int fNumberOfShells[101]; -static const G4int fIndexOfShells[101]; -static const G4int fNumberOfElectrons[1540]; -static const G4double fBindingEnergies[1540]; +#ifdef G4VERBOSE + static G4int PrintErrorZ(G4int Z, const G4String&); + static G4int PrintErrorShell(G4int Z, G4int SubshellNb, const G4String&); +#endif + + 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]; }; - /* ********************************************************* Below is the atomic subshell binding energytable for elements Z=1-100. The data were given from: diff --git a/source/materials/include/G4AtomicShells_EADL.hh b/source/materials/include/G4AtomicShells_EADL.hh new file mode 100644 index 0000000000..2b14107f32 --- /dev/null +++ b/source/materials/include/G4AtomicShells_EADL.hh @@ -0,0 +1,3257 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4AtomicShells.hh 95972 2016-03-04 19:04:49Z vnivanch $ + +// class description +// +// Class consists of atomic subshell binding energies for first 120 elements. +// Data taken from the references for the Band-Raman Internal Conversion +// Coefficients, BrIcc, code. +// see: http://www.nndc.bnl.gov/nndcscr/ensdf_pgm/analysis/BrIcc/ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +// 24-04-98, implementation of the first version, V. Grichine +// 16-11-98, GetBindingEnergy(Z,ShellNb), M.Maire +// 11-02-05, GetNumberOfElectrons(Z,ShellNb), V.Ivanchenko +// 30-04-10, added fIndexOfShells, V.Ivanchenko +// 08-04-15, Complete re-write of the class. Same methods but +// values modified to match EADL source data up to +// element Z=120, L.G. Sarmiento + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +#ifndef G4ATOMICSHELLS_EADL_H +#define G4ATOMICSHELLS_EADL_H + +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +class G4AtomicShells_EADL +{ +public : //with description + + static G4int GetNumberOfShells (G4int Z); + static G4int GetNumberOfElectrons (G4int Z, G4int SubshellNb); + static G4double GetBindingEnergy (G4int Z, G4int SubshellNb); + static G4double GetTotalBindingEnergy(G4int Z); + +private : + +#ifdef G4VERBOSE + static G4int PrintErrorZ(G4int Z, const G4String&); + static G4int PrintErrorShell(G4int Z, G4int SubshellNb, const G4String&); +#endif + + G4AtomicShells_EADL(const G4AtomicShells_EADL&) = delete; + const G4AtomicShells_EADL& operator=(const G4AtomicShells_EADL&) = delete; + + static const G4int fNumberOfShells [121]; + static const G4int fIndexOfShells [121]; + static const G4int fNumberOfElectrons[2167]; + static const G4double fBindingEnergies [2167]; + +}; + + +/****************************************************************************** +Below is the atomic subshell binding energy table for elements Z=1-120. +The data was taken from: + + Z = 0 : This is just element zero for convenience so + the index matches the atomic number + + 1 <= Z <= 4 : T.A.Carlson, Photoelectron and Auger Spectroscopy, + Plenum, New York, 1976, p.337. + + 5 <= Z <= 110 : T. kibedi et al., Evaluation of theoretical conversion + coefficients using BrIcc, + Nuclear Instrument and methods in Physics Research A 589 + (2008) 202-229*,**. + +111 <= Z <= 120 : T. kibedi et al., Conversion coefficients for superheavy + elements, + Atomic Data and Nuclear Data Tables 98 (2012) 313-355***. + + ----> (All data in keV) <---- + + *: O4 binding energy for Z=65 is missing from the table. + Value from Z=64 adopted. + + **: P4 binding energy for Z=100 is present in table but never used. + +***: The following element names have been modified from the displayed in + the table. + + Z=113 Ut -> Uut, + Z=114 Uq -> Fl, + Z=115 Up -> Uup, + Z=116 Uh -> Lv, + Z=117 Us -> Uus, + Z=118 Uo -> Uuo. + Note that this names are not the ones to be used in Geant4 + + + + +// ---------------------------------------------- + + 0 Z = 0 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (0) 0.0000 + + +// ---------------------------------------------- + + H Z = 1 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (1) 0.0136 + + +// ---------------------------------------------- + + He Z = 2 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.0246 + + +// ---------------------------------------------- + + Li Z = 3 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.0580 + 2 s1/2 (1) 0.0054 + + +// ---------------------------------------------- + + Be Z = 4 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.1150 + 2 s1/2 (2) 0.0093 + + +// ---------------------------------------------- + + B Z = 5 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.1880 + 2 s1/2 (2) 0.0126 + 2 p1/2 (1) 0.0047 + + +// ---------------------------------------------- + + C Z = 6 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.2841 + 2 s1/2 (2) 0.0181 + 2 p1/2 (2) 0.0090 + + +// ---------------------------------------------- + + N Z = 7 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.4005 + 2 s1/2 (2) 0.0243 + 2 p3/2 (1) 0.0097 + 2 p1/2 (2) 0.0089 + + +// ---------------------------------------------- + + O Z = 8 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.5320 + 2 s1/2 (2) 0.0237 + 2 p3/2 (2) 0.0074 + 2 p1/2 (2) 0.0068 + + +// ---------------------------------------------- + + F Z = 9 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.6854 + 2 s1/2 (2) 0.0340 + 2 p3/2 (3) 0.0087 + 2 p1/2 (2) 0.0084 + + +// ---------------------------------------------- + + Ne Z = 10 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 0.8701 + 2 s1/2 (2) 0.0485 + 2 p1/2 (2) 0.0217 + 2 p3/2 (4) 0.0216 + + +// ---------------------------------------------- + + Na Z = 11 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 1.0721 + 2 s1/2 (2) 0.0633 + 2 p1/2 (2) 0.0311 + 2 p3/2 (4) 0.0310 + 3 s1/2 (1) 0.0007 + + +// ---------------------------------------------- + + Mg Z = 12 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 1.3050 + 2 s1/2 (2) 0.0894 + 2 p1/2 (2) 0.0515 + 2 p3/2 (4) 0.0513 + 3 s1/2 (2) 0.0021 + + +// ---------------------------------------------- + + Al Z = 13 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 1.5596 + 2 s1/2 (2) 0.1177 + 2 p1/2 (2) 0.0732 + 2 p3/2 (4) 0.0727 + 3 p1/2 (1) 0.0060 + 3 s1/2 (2) 0.0007 + + +// ---------------------------------------------- + + Si Z = 14 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 1.8389 + 2 s1/2 (2) 0.1487 + 2 p1/2 (2) 0.0995 + 2 p3/2 (4) 0.0989 + 3 s1/2 (2) 0.0076 + 3 p1/2 (2) 0.0030 + + +// ---------------------------------------------- + + P Z = 15 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 2.1455 + 2 s1/2 (2) 0.1893 + 2 p1/2 (2) 0.1362 + 2 p3/2 (4) 0.1353 + 3 s1/2 (2) 0.0162 + 3 p3/2 (1) 0.0101 + 3 p1/2 (2) 0.0096 + + +// ---------------------------------------------- + + S Z = 16 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 2.4720 + 2 s1/2 (2) 0.2292 + 2 p1/2 (2) 0.1654 + 2 p3/2 (4) 0.1642 + 3 s1/2 (2) 0.0158 + 3 p3/2 (2) 0.0082 + 3 p1/2 (2) 0.0078 + + +// ---------------------------------------------- + + Cl Z = 17 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 2.8224 + 2 s1/2 (2) 0.2702 + 2 p1/2 (2) 0.2016 + 2 p3/2 (4) 0.2000 + 3 s1/2 (2) 0.0175 + 3 p3/2 (3) 0.0067 + 3 p1/2 (2) 0.0067 + + +// ---------------------------------------------- + + Ar Z = 18 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 3.2029 + 2 s1/2 (2) 0.3260 + 2 p1/2 (2) 0.2506 + 2 p3/2 (4) 0.2485 + 3 s1/2 (2) 0.0292 + 3 p1/2 (2) 0.0159 + 3 p3/2 (4) 0.0158 + + +// ---------------------------------------------- + + K Z = 19 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 3.6074 + 2 s1/2 (2) 0.3771 + 2 p1/2 (2) 0.2963 + 2 p3/2 (4) 0.2936 + 3 s1/2 (2) 0.0339 + 3 p1/2 (2) 0.0181 + 3 p3/2 (4) 0.0178 + 4 s1/2 (1) 0.0001 + + +// ---------------------------------------------- + + Ca Z = 20 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 4.0381 + 2 s1/2 (2) 0.4378 + 2 p1/2 (2) 0.3500 + 2 p3/2 (4) 0.3464 + 3 s1/2 (2) 0.0437 + 3 p1/2 (2) 0.0258 + 3 p3/2 (4) 0.0255 + 4 s1/2 (2) 0.0018 + + +// ---------------------------------------------- + + Sc Z = 21 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 4.4928 + 2 s1/2 (2) 0.5004 + 2 p1/2 (2) 0.4067 + 2 p3/2 (4) 0.4022 + 3 s1/2 (2) 0.0538 + 3 p1/2 (2) 0.0338 + 3 p3/2 (4) 0.0315 + 3 d3/2 (1) 0.0066 + 4 s1/2 (2) 0.0017 + + +// ---------------------------------------------- + + Ti Z = 22 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 4.9664 + 2 s1/2 (2) 0.5637 + 2 p1/2 (2) 0.4615 + 2 p3/2 (4) 0.4555 + 3 s1/2 (2) 0.0603 + 3 p1/2 (2) 0.0356 + 3 p3/2 (4) 0.0322 + 3 d3/2 (2) 0.0037 + 4 s1/2 (2) 0.0016 + + +// ---------------------------------------------- + + V Z = 23 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 5.4651 + 2 s1/2 (2) 0.6282 + 2 p1/2 (2) 0.5205 + 2 p3/2 (4) 0.5129 + 3 s1/2 (2) 0.0665 + 3 p1/2 (2) 0.0400 + 3 p3/2 (4) 0.0350 + 3 d3/2 (3) 0.0022 + 4 s1/2 (2) 0.0017 + + +// ---------------------------------------------- + + Cr Z = 24 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 5.9892 + 2 s1/2 (2) 0.6946 + 2 p1/2 (2) 0.5837 + 2 p3/2 (4) 0.5745 + 3 s1/2 (2) 0.0741 + 3 p1/2 (2) 0.0459 + 3 p3/2 (4) 0.0399 + 3 d3/2 (4) 0.0029 + 3 d5/2 (1) 0.0022 + 4 s1/2 (1) 0.0010 + + +// ---------------------------------------------- + + Mn Z = 25 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 6.5390 + 2 s1/2 (2) 0.7690 + 2 p1/2 (2) 0.6514 + 2 p3/2 (4) 0.6403 + 3 s1/2 (2) 0.0839 + 3 p1/2 (2) 0.0531 + 3 p3/2 (4) 0.0464 + 3 d3/2 (4) 0.0035 + 3 d5/2 (1) 0.0027 + 4 s1/2 (2) 0.0019 + + +// ---------------------------------------------- + + Fe Z = 26 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 7.1130 + 2 s1/2 (2) 0.8461 + 2 p1/2 (2) 0.7211 + 2 p3/2 (4) 0.7081 + 3 s1/2 (2) 0.0929 + 3 p1/2 (2) 0.0581 + 3 p3/2 (4) 0.0520 + 3 d3/2 (4) 0.0039 + 3 d5/2 (2) 0.0031 + 4 s1/2 (2) 0.0021 + + +// ---------------------------------------------- + + Co Z = 27 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 7.7089 + 2 s1/2 (2) 0.9256 + 2 p1/2 (2) 0.7936 + 2 p3/2 (4) 0.7786 + 3 s1/2 (2) 0.1007 + 3 p1/2 (2) 0.0632 + 3 p3/2 (4) 0.0577 + 3 d5/2 (3) 0.0033 + 3 d3/2 (4) 0.0027 + 4 s1/2 (2) 0.0019 + + +// ---------------------------------------------- + + Ni Z = 28 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 8.3328 + 2 s1/2 (2) 1.0081 + 2 p1/2 (2) 0.8719 + 2 p3/2 (4) 0.8547 + 3 s1/2 (2) 0.1118 + 3 p1/2 (2) 0.0712 + 3 p3/2 (4) 0.0697 + 3 d3/2 (4) 0.0039 + 3 d5/2 (4) 0.0033 + 4 s1/2 (2) 0.0022 + + +// ---------------------------------------------- + + Cu Z = 29 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 8.9789 + 2 s1/2 (2) 1.0961 + 2 p1/2 (2) 0.9510 + 2 p3/2 (4) 0.9311 + 3 s1/2 (2) 0.1198 + 3 p1/2 (2) 0.0753 + 3 p3/2 (4) 0.0728 + 3 d3/2 (4) 0.0018 + 3 d5/2 (6) 0.0015 + 4 s1/2 (1) 0.0012 + + +// ---------------------------------------------- + + Zn Z = 30 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 9.6586 + 2 s1/2 (2) 1.1936 + 2 p1/2 (2) 1.0428 + 2 p3/2 (4) 1.0197 + 3 s1/2 (2) 0.1359 + 3 p1/2 (2) 0.0886 + 3 p3/2 (4) 0.0856 + 3 d5/2 (6) 0.0080 + 3 d3/2 (4) 0.0079 + 4 s1/2 (2) 0.0013 + + +// ---------------------------------------------- + + Ga Z = 31 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 10.3671 + 2 s1/2 (2) 1.2977 + 2 p1/2 (2) 1.1423 + 2 p3/2 (4) 1.1154 + 3 s1/2 (2) 0.1581 + 3 p1/2 (2) 0.1068 + 3 p3/2 (4) 0.1029 + 3 d3/2 (4) 0.0207 + 3 d5/2 (6) 0.0157 + 4 s1/2 (2) 0.0056 + 4 p1/2 (1) 0.0008 + + +// ---------------------------------------------- + + Ge Z = 32 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 11.1031 + 2 s1/2 (2) 1.4143 + 2 p1/2 (2) 1.2478 + 2 p3/2 (4) 1.2167 + 3 s1/2 (2) 0.1800 + 3 p1/2 (2) 0.1279 + 3 p3/2 (4) 0.1208 + 3 d3/2 (4) 0.0292 + 3 d5/2 (6) 0.0285 + 4 s1/2 (2) 0.0090 + 4 p1/2 (2) 0.0023 + + +// ---------------------------------------------- + + As Z = 33 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 11.8667 + 2 s1/2 (2) 1.5265 + 2 p1/2 (2) 1.3586 + 2 p3/2 (4) 1.3231 + 3 s1/2 (2) 0.2035 + 3 p1/2 (2) 0.1464 + 3 p3/2 (4) 0.1405 + 3 d3/2 (4) 0.0417 + 3 d5/2 (6) 0.0409 + 4 s1/2 (2) 0.0125 + 4 p3/2 (1) 0.0025 + 4 p1/2 (2) 0.0025 + + +// ---------------------------------------------- + + Se Z = 34 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 12.6578 + 2 s1/2 (2) 1.6539 + 2 p1/2 (2) 1.4762 + 2 p3/2 (4) 1.4358 + 3 s1/2 (2) 0.2315 + 3 p1/2 (2) 0.1682 + 3 p3/2 (4) 0.1619 + 3 d3/2 (4) 0.0574 + 3 d5/2 (6) 0.0564 + 4 s1/2 (2) 0.0162 + 4 p3/2 (2) 0.0056 + 4 p1/2 (2) 0.0056 + + +// ---------------------------------------------- + + Br Z = 35 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 13.4737 + 2 s1/2 (2) 1.7820 + 2 p1/2 (2) 1.5960 + 2 p3/2 (4) 1.5499 + 3 s1/2 (2) 0.2565 + 3 p1/2 (2) 0.1893 + 3 p3/2 (4) 0.1815 + 3 d3/2 (4) 0.0701 + 3 d5/2 (6) 0.0690 + 4 s1/2 (2) 0.0273 + 4 p1/2 (2) 0.0052 + 4 p3/2 (3) 0.0046 + + +// ---------------------------------------------- + + Kr Z = 36 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 14.3256 + 2 s1/2 (2) 1.9210 + 2 p1/2 (2) 1.7272 + 2 p3/2 (4) 1.6749 + 3 s1/2 (2) 0.2921 + 3 p1/2 (2) 0.2221 + 3 p3/2 (4) 0.2144 + 3 d3/2 (4) 0.0950 + 3 d5/2 (6) 0.0938 + 4 s1/2 (2) 0.0275 + 4 p1/2 (2) 0.0147 + 4 p3/2 (4) 0.0140 + + +// ---------------------------------------------- + + Rb Z = 37 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 15.1997 + 2 s1/2 (2) 2.0651 + 2 p1/2 (2) 1.8639 + 2 p3/2 (4) 1.8044 + 3 s1/2 (2) 0.3221 + 3 p1/2 (2) 0.2474 + 3 p3/2 (4) 0.2385 + 3 d3/2 (4) 0.1118 + 3 d5/2 (6) 0.1103 + 4 s1/2 (2) 0.0293 + 4 p1/2 (2) 0.0148 + 4 p3/2 (4) 0.0140 + 5 s1/2 (1) 0.0040 + + +// ---------------------------------------------- + + Sr Z = 38 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 16.1046 + 2 s1/2 (2) 2.2163 + 2 p1/2 (2) 2.0068 + 2 p3/2 (4) 1.9396 + 3 s1/2 (2) 0.3575 + 3 p1/2 (2) 0.2798 + 3 p3/2 (4) 0.2691 + 3 d3/2 (4) 0.1350 + 3 d5/2 (6) 0.1331 + 4 s1/2 (2) 0.0377 + 4 p1/2 (2) 0.0207 + 4 p3/2 (4) 0.0195 + 5 s1/2 (2) 0.0050 + + +// ---------------------------------------------- + + Y Z = 39 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 17.0384 + 2 s1/2 (2) 2.3725 + 2 p1/2 (2) 2.1555 + 2 p3/2 (4) 2.0800 + 3 s1/2 (2) 0.3936 + 3 p1/2 (2) 0.3124 + 3 p3/2 (4) 0.3003 + 3 d3/2 (4) 0.1596 + 3 d5/2 (6) 0.1574 + 4 s1/2 (2) 0.0454 + 4 p1/2 (2) 0.0251 + 4 p3/2 (4) 0.0228 + 5 s1/2 (2) 0.0060 + 4 d3/2 (1) 0.0024 + + +// ---------------------------------------------- + + Zr Z = 40 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 17.9976 + 2 s1/2 (2) 2.5316 + 2 p1/2 (2) 2.3067 + 2 p3/2 (4) 2.2223 + 3 s1/2 (2) 0.4303 + 3 p1/2 (2) 0.3442 + 3 p3/2 (4) 0.3305 + 3 d3/2 (4) 0.1824 + 3 d5/2 (6) 0.1800 + 4 s1/2 (2) 0.0513 + 4 p1/2 (2) 0.0293 + 4 p3/2 (4) 0.0257 + 5 s1/2 (2) 0.0070 + 4 d3/2 (2) 0.0030 + + +// ---------------------------------------------- + + Nb Z = 41 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 18.9856 + 2 s1/2 (2) 2.6977 + 2 p1/2 (2) 2.4647 + 2 p3/2 (4) 2.3705 + 3 s1/2 (2) 0.4684 + 3 p1/2 (2) 0.3784 + 3 p3/2 (4) 0.3630 + 3 d3/2 (4) 0.2074 + 3 d5/2 (6) 0.2046 + 4 s1/2 (2) 0.0581 + 4 p1/2 (2) 0.0356 + 4 p3/2 (4) 0.0296 + 5 s1/2 (1) 0.0070 + 4 d3/2 (4) 0.0032 + + +// ---------------------------------------------- + + Mo Z = 42 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 19.9995 + 2 s1/2 (2) 2.8655 + 2 p1/2 (2) 2.6251 + 2 p3/2 (4) 2.5202 + 3 s1/2 (2) 0.5046 + 3 p1/2 (2) 0.4097 + 3 p3/2 (4) 0.3923 + 3 d3/2 (4) 0.2303 + 3 d5/2 (6) 0.2270 + 4 s1/2 (2) 0.0618 + 4 p1/2 (2) 0.0383 + 4 p3/2 (4) 0.0323 + 5 s1/2 (1) 0.0070 + 4 d3/2 (4) 0.0019 + 4 d5/2 (1) 0.0012 + + +// ---------------------------------------------- + + Tc Z = 43 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 21.0440 + 2 s1/2 (2) 3.0425 + 2 p1/2 (2) 2.7932 + 2 p3/2 (4) 2.6769 + 3 s1/2 (2) 0.5440 + 3 p1/2 (2) 0.4449 + 3 p3/2 (4) 0.4250 + 3 d3/2 (4) 0.2564 + 3 d5/2 (6) 0.2529 + 4 s1/2 (2) 0.0688 + 4 p1/2 (2) 0.0428 + 4 p3/2 (4) 0.0369 + 5 s1/2 (2) 0.0070 + 4 d3/2 (4) 0.0020 + 4 d5/2 (1) 0.0012 + + +// ---------------------------------------------- + + Ru Z = 44 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 22.1172 + 2 s1/2 (2) 3.2240 + 2 p1/2 (2) 2.9669 + 2 p3/2 (4) 2.8379 + 3 s1/2 (2) 0.5850 + 3 p1/2 (2) 0.4828 + 3 p3/2 (4) 0.4606 + 3 d3/2 (4) 0.2836 + 3 d5/2 (6) 0.2794 + 4 s1/2 (2) 0.0749 + 4 p1/2 (2) 0.0470 + 4 p3/2 (4) 0.0412 + 5 s1/2 (1) 0.0070 + 4 d3/2 (4) 0.0024 + 4 d5/2 (3) 0.0018 + + +// ---------------------------------------------- + + Rh Z = 45 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 23.2199 + 2 s1/2 (2) 3.4119 + 2 p1/2 (2) 3.1461 + 2 p3/2 (4) 3.0038 + 3 s1/2 (2) 0.6271 + 3 p1/2 (2) 0.5210 + 3 p3/2 (4) 0.4962 + 3 d3/2 (4) 0.3117 + 3 d5/2 (6) 0.3070 + 4 s1/2 (2) 0.0810 + 4 p1/2 (2) 0.0519 + 4 p3/2 (4) 0.0463 + 5 s1/2 (1) 0.0070 + 4 d3/2 (4) 0.0028 + 4 d5/2 (4) 0.0022 + + +// ---------------------------------------------- + + Pd Z = 46 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 24.3503 + 2 s1/2 (2) 3.6043 + 2 p1/2 (2) 3.3303 + 2 p3/2 (4) 3.1733 + 3 s1/2 (2) 0.6699 + 3 p1/2 (2) 0.5591 + 3 p3/2 (4) 0.5315 + 3 d3/2 (4) 0.3400 + 3 d5/2 (6) 0.3347 + 4 s1/2 (2) 0.0864 + 4 p1/2 (2) 0.0544 + 4 p3/2 (4) 0.0500 + 4 d3/2 (4) 0.0017 + 4 d5/2 (6) 0.0013 + + +// ---------------------------------------------- + + Ag Z = 47 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 25.5140 + 2 s1/2 (2) 3.8058 + 2 p1/2 (2) 3.5237 + 2 p3/2 (4) 3.3511 + 3 s1/2 (2) 0.7175 + 3 p1/2 (2) 0.6024 + 3 p3/2 (4) 0.5714 + 3 d3/2 (4) 0.3728 + 3 d5/2 (6) 0.3667 + 4 s1/2 (2) 0.0952 + 4 p1/2 (2) 0.0626 + 4 p3/2 (4) 0.0559 + 5 s1/2 (1) 0.0080 + 4 d3/2 (4) 0.0036 + 4 d5/2 (6) 0.0031 + + +// ---------------------------------------------- + + Cd Z = 48 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 26.7112 + 2 s1/2 (2) 4.0180 + 2 p1/2 (2) 3.7270 + 2 p3/2 (4) 3.5375 + 3 s1/2 (2) 0.7702 + 3 p1/2 (2) 0.6507 + 3 p3/2 (4) 0.6165 + 3 d3/2 (4) 0.4105 + 3 d5/2 (6) 0.4037 + 4 s1/2 (2) 0.1076 + 4 p1/2 (2) 0.0708 + 4 p3/2 (4) 0.0650 + 4 d3/2 (4) 0.0097 + 4 d5/2 (6) 0.0090 + 5 s1/2 (2) 0.0090 + + +// ---------------------------------------------- + + In Z = 49 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 27.9399 + 2 s1/2 (2) 4.2375 + 2 p1/2 (2) 3.9380 + 2 p3/2 (4) 3.7301 + 3 s1/2 (2) 0.8256 + 3 p1/2 (2) 0.7022 + 3 p3/2 (4) 0.6643 + 3 d3/2 (4) 0.4508 + 3 d5/2 (6) 0.4431 + 4 s1/2 (2) 0.1219 + 4 p1/2 (2) 0.0819 + 4 p3/2 (4) 0.0751 + 4 d3/2 (4) 0.0168 + 4 d5/2 (6) 0.0158 + 5 p1/2 (1) 0.0008 + 5 s1/2 (2) 0.0001 + + +// ---------------------------------------------- + + Sn Z = 50 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 29.2001 + 2 s1/2 (2) 4.4647 + 2 p1/2 (2) 4.1561 + 2 p3/2 (4) 3.9288 + 3 s1/2 (2) 0.8838 + 3 p1/2 (2) 0.7564 + 3 p3/2 (4) 0.7144 + 3 d3/2 (4) 0.4933 + 3 d5/2 (6) 0.4848 + 4 s1/2 (2) 0.1365 + 4 p1/2 (2) 0.0939 + 4 p3/2 (4) 0.0860 + 4 d3/2 (4) 0.0246 + 4 d5/2 (6) 0.0234 + 5 p1/2 (2) 0.0011 + 5 s1/2 (2) 0.0009 + + +// ---------------------------------------------- + + Sb Z = 51 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 30.4912 + 2 s1/2 (2) 4.6983 + 2 p1/2 (2) 4.3804 + 2 p3/2 (4) 4.1323 + 3 s1/2 (2) 0.9437 + 3 p1/2 (2) 0.8119 + 3 p3/2 (4) 0.7656 + 3 d3/2 (4) 0.5369 + 3 d5/2 (6) 0.5275 + 4 s1/2 (2) 0.1520 + 4 p1/2 (2) 0.1043 + 4 p3/2 (4) 0.0954 + 4 d3/2 (4) 0.0322 + 4 d5/2 (6) 0.0308 + 5 s1/2 (2) 0.0067 + 5 p1/2 (2) 0.0022 + 5 p3/2 (1) 0.0020 + + +// ---------------------------------------------- + + Te Z = 52 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 31.8138 + 2 s1/2 (2) 4.9392 + 2 p1/2 (2) 4.6120 + 2 p3/2 (4) 4.3414 + 3 s1/2 (2) 1.0060 + 3 p1/2 (2) 0.8697 + 3 p3/2 (4) 0.8187 + 3 d3/2 (4) 0.5825 + 3 d5/2 (6) 0.5721 + 4 s1/2 (2) 0.1683 + 4 p1/2 (2) 0.1168 + 4 p3/2 (4) 0.0969 + 4 d3/2 (4) 0.0408 + 4 d5/2 (6) 0.0392 + 5 s1/2 (2) 0.0116 + 5 p1/2 (2) 0.0026 + 5 p3/2 (2) 0.0020 + + +// ---------------------------------------------- + + I Z = 53 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 33.1694 + 2 s1/2 (2) 5.1881 + 2 p1/2 (2) 4.8521 + 2 p3/2 (4) 4.5571 + 3 s1/2 (2) 1.0721 + 3 p1/2 (2) 0.9305 + 3 p3/2 (4) 0.8746 + 3 d3/2 (4) 0.6313 + 3 d5/2 (6) 0.6194 + 4 s1/2 (2) 0.1864 + 4 p1/2 (2) 0.1301 + 4 p3/2 (4) 0.1190 + 4 d3/2 (4) 0.0507 + 4 d5/2 (6) 0.0489 + 5 s1/2 (2) 0.0136 + 5 p1/2 (2) 0.0038 + 5 p3/2 (3) 0.0029 + + +// ---------------------------------------------- + + Xe Z = 54 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 34.5644 + 2 s1/2 (2) 5.4528 + 2 p1/2 (2) 5.1037 + 2 p3/2 (4) 4.7822 + 3 s1/2 (2) 1.1487 + 3 p1/2 (2) 0.9990 + 3 p3/2 (4) 0.9370 + 3 d3/2 (4) 0.6906 + 3 d5/2 (6) 0.6747 + 4 s1/2 (2) 0.2177 + 4 p1/2 (2) 0.1639 + 4 p3/2 (4) 0.1565 + 4 d3/2 (4) 0.0695 + 4 d5/2 (6) 0.0676 + 5 s1/2 (2) 0.0234 + 5 p1/2 (2) 0.0134 + 5 p3/2 (4) 0.0121 + + +// ---------------------------------------------- + + Cs Z = 55 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 35.9846 + 2 s1/2 (2) 5.7143 + 2 p1/2 (2) 5.3594 + 2 p3/2 (4) 5.0119 + 3 s1/2 (2) 1.2171 + 3 p1/2 (2) 1.0650 + 3 p3/2 (4) 0.9976 + 3 d3/2 (4) 0.7395 + 3 d5/2 (6) 0.7255 + 4 s1/2 (2) 0.2308 + 4 p1/2 (2) 0.1723 + 4 p3/2 (4) 0.1616 + 4 d3/2 (4) 0.0788 + 4 d5/2 (6) 0.0765 + 5 s1/2 (2) 0.0227 + 5 p1/2 (2) 0.0131 + 5 p3/2 (4) 0.0114 + 6 s1/2 (1) 0.0040 + + +// ---------------------------------------------- + + Ba Z = 56 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 37.4406 + 2 s1/2 (2) 5.9888 + 2 p1/2 (2) 5.6236 + 2 p3/2 (4) 5.2470 + 3 s1/2 (2) 1.2928 + 3 p1/2 (2) 1.1367 + 3 p3/2 (4) 1.0622 + 3 d3/2 (4) 0.7961 + 3 d5/2 (6) 0.7807 + 4 s1/2 (2) 0.2530 + 4 p1/2 (2) 0.1918 + 4 p3/2 (4) 0.1797 + 4 d3/2 (4) 0.0925 + 4 d5/2 (6) 0.0899 + 5 s1/2 (2) 0.0291 + 5 p1/2 (2) 0.0166 + 5 p3/2 (4) 0.0146 + 6 s1/2 (2) 0.0050 + + +// ---------------------------------------------- + + La Z = 57 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 38.9246 + 2 s1/2 (2) 6.2663 + 2 p1/2 (2) 5.8906 + 2 p3/2 (4) 5.4827 + 3 s1/2 (2) 1.3613 + 3 p1/2 (2) 1.2044 + 3 p3/2 (4) 1.1234 + 3 d3/2 (4) 0.8485 + 3 d5/2 (6) 0.8317 + 4 s1/2 (2) 0.2704 + 4 p1/2 (2) 0.2058 + 4 p3/2 (4) 0.1914 + 4 d3/2 (4) 0.1007 + 4 d5/2 (6) 0.0977 + 5 s1/2 (2) 0.0323 + 5 p1/2 (2) 0.0166 + 5 p3/2 (4) 0.0133 + 5 d3/2 (1) 0.0060 + 6 s1/2 (2) 0.0050 + + +// ---------------------------------------------- + + Ce Z = 58 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 40.4430 + 2 s1/2 (2) 6.5488 + 2 p1/2 (2) 6.1642 + 2 p3/2 (4) 5.7234 + 3 s1/2 (2) 1.4346 + 3 p1/2 (2) 1.2728 + 3 p3/2 (4) 1.1854 + 3 d3/2 (4) 0.9013 + 3 d5/2 (6) 0.8833 + 4 s1/2 (2) 0.2896 + 4 p1/2 (2) 0.2233 + 4 p3/2 (4) 0.2072 + 4 d3/2 (4) 0.1136 + 4 d5/2 (6) 0.1076 + 5 s1/2 (2) 0.0378 + 5 p1/2 (2) 0.0218 + 5 p3/2 (4) 0.0188 + 5 d3/2 (1) 0.0060 + 6 s1/2 (2) 0.0050 + 4 f5/2 (1) 0.0001 + + +// ---------------------------------------------- + + Pr Z = 59 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 41.9906 + 2 s1/2 (2) 6.8348 + 2 p1/2 (2) 6.4404 + 2 p3/2 (4) 5.9643 + 3 s1/2 (2) 1.5110 + 3 p1/2 (2) 1.3374 + 3 p3/2 (4) 1.2422 + 3 d3/2 (4) 0.9511 + 3 d5/2 (6) 0.9310 + 4 s1/2 (2) 0.3045 + 4 p1/2 (2) 0.2363 + 4 p3/2 (4) 0.2176 + 4 d3/2 (4) 0.1179 + 4 d5/2 (6) 0.1101 + 5 s1/2 (2) 0.0374 + 5 p1/2 (2) 0.0246 + 5 p3/2 (4) 0.0212 + 5 d3/2 (1) 0.0060 + 6 s1/2 (2) 0.0050 + 4 f5/2 (2) 0.0020 + + +// ---------------------------------------------- + + Nd Z = 60 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 43.5689 + 2 s1/2 (2) 7.1260 + 2 p1/2 (2) 6.7215 + 2 p3/2 (4) 6.2079 + 3 s1/2 (2) 1.5753 + 3 p1/2 (2) 1.4028 + 3 p3/2 (4) 1.2974 + 3 d3/2 (4) 0.9999 + 3 d5/2 (6) 0.9777 + 4 s1/2 (2) 0.3152 + 4 p1/2 (2) 0.2433 + 4 p3/2 (4) 0.2246 + 4 d3/2 (4) 0.1234 + 4 d5/2 (6) 0.1135 + 5 s1/2 (2) 0.0375 + 5 p1/2 (2) 0.0236 + 5 p3/2 (4) 0.0198 + 6 s1/2 (2) 0.0050 + 4 f5/2 (4) 0.0015 + + +// ---------------------------------------------- + + Pm Z = 61 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 45.1840 + 2 s1/2 (2) 7.4279 + 2 p1/2 (2) 7.0128 + 2 p3/2 (4) 6.4593 + 3 s1/2 (2) 1.6486 + 3 p1/2 (2) 1.4714 + 3 p3/2 (4) 1.3569 + 3 d3/2 (4) 1.0515 + 3 d5/2 (6) 1.0269 + 4 s1/2 (2) 0.3314 + 4 p1/2 (2) 0.2547 + 4 p3/2 (4) 0.2362 + 4 d3/2 (4) 0.1276 + 4 d5/2 (6) 0.1156 + 5 s1/2 (2) 0.0360 + 5 p1/2 (2) 0.0245 + 5 p3/2 (4) 0.0201 + 6 s1/2 (2) 0.0050 + 4 f5/2 (5) 0.0035 + + +// ---------------------------------------------- + + Sm Z = 62 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 46.8342 + 2 s1/2 (2) 7.7368 + 2 p1/2 (2) 7.3118 + 2 p3/2 (4) 6.7162 + 3 s1/2 (2) 1.7228 + 3 p1/2 (2) 1.5407 + 3 p3/2 (4) 1.4198 + 3 d3/2 (4) 1.1060 + 3 d5/2 (6) 1.0802 + 4 s1/2 (2) 0.3457 + 4 p1/2 (2) 0.2656 + 4 p3/2 (4) 0.2474 + 4 d3/2 (4) 0.1375 + 4 d5/2 (6) 0.1233 + 5 s1/2 (2) 0.0374 + 5 p1/2 (2) 0.0236 + 5 p3/2 (4) 0.0189 + 4 f5/2 (6) 0.0055 + 6 s1/2 (2) 0.0050 + + +// ---------------------------------------------- + + Eu Z = 63 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 48.5190 + 2 s1/2 (2) 8.0520 + 2 p1/2 (2) 7.6171 + 2 p3/2 (4) 6.9769 + 3 s1/2 (2) 1.8000 + 3 p1/2 (2) 1.6139 + 3 p3/2 (4) 1.4806 + 3 d3/2 (4) 1.1606 + 3 d5/2 (6) 1.1309 + 4 s1/2 (2) 0.3602 + 4 p1/2 (2) 0.2839 + 4 p3/2 (4) 0.2566 + 4 d3/2 (4) 0.1414 + 4 d5/2 (6) 0.1277 + 5 s1/2 (2) 0.0318 + 5 p1/2 (2) 0.0252 + 5 p3/2 (4) 0.0204 + 6 s1/2 (2) 0.0060 + 4 f5/2 (6) 0.0015 + 4 f7/2 (1) 0.0012 + + +// ---------------------------------------------- + + Gd Z = 64 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 50.2391 + 2 s1/2 (2) 8.3756 + 2 p1/2 (2) 7.9303 + 2 p3/2 (4) 7.2428 + 3 s1/2 (2) 1.8808 + 3 p1/2 (2) 1.6883 + 3 p3/2 (4) 1.5440 + 3 d3/2 (4) 1.2172 + 3 d5/2 (6) 1.1852 + 4 s1/2 (2) 0.3758 + 4 p1/2 (2) 0.2885 + 4 p3/2 (4) 0.2709 + 4 d3/2 (4) 0.1495 + 4 d5/2 (6) 0.1345 + 5 s1/2 (2) 0.0361 + 5 p1/2 (2) 0.0243 + 5 p3/2 (4) 0.0183 + 5 d3/2 (1) 0.0060 + 6 s1/2 (2) 0.0060 + 4 f5/2 (6) 0.0020 + 4 f7/2 (1) 0.0013 + + +// ---------------------------------------------- + + Tb Z = 65 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 51.9957 + 2 s1/2 (2) 8.7080 + 2 p1/2 (2) 8.2516 + 2 p3/2 (4) 7.5140 + 3 s1/2 (2) 1.9675 + 3 p1/2 (2) 1.7677 + 3 p3/2 (4) 1.6113 + 3 d3/2 (4) 1.2750 + 3 d5/2 (6) 1.2412 + 4 s1/2 (2) 0.3979 + 4 p1/2 (2) 0.3102 + 4 p3/2 (4) 0.2850 + 4 d3/2 (4) 0.1545 + 4 d5/2 (6) 0.1420 + 5 s1/2 (2) 0.0390 + 5 p1/2 (2) 0.0263 + 5 p3/2 (4) 0.0213 + 5 d3/2 (1) 0.0060 + 6 s1/2 (2) 0.0060 + 4 f5/2 (6) 0.0040 + 4 f7/2 (2) 0.0016 + + +// ---------------------------------------------- + + Dy Z = 66 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 53.7885 + 2 s1/2 (2) 9.0458 + 2 p1/2 (2) 8.5806 + 2 p3/2 (4) 7.7901 + 3 s1/2 (2) 2.0468 + 3 p1/2 (2) 1.8418 + 3 p3/2 (4) 1.6756 + 3 d3/2 (4) 1.3325 + 3 d5/2 (6) 1.2949 + 4 s1/2 (2) 0.4163 + 4 p1/2 (2) 0.3318 + 4 p3/2 (4) 0.2929 + 4 d3/2 (4) 0.1614 + 4 d5/2 (6) 0.1494 + 5 s1/2 (2) 0.0629 + 5 p1/2 (2) 0.0282 + 5 p3/2 (4) 0.0229 + 6 s1/2 (2) 0.0060 + 4 f5/2 (6) 0.0055 + 4 f7/2 (4) 0.0033 + + +// ---------------------------------------------- + + Ho Z = 67 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 55.6177 + 2 s1/2 (2) 9.3942 + 2 p1/2 (2) 8.9178 + 2 p3/2 (4) 8.0711 + 3 s1/2 (2) 2.1283 + 3 p1/2 (2) 1.9228 + 3 p3/2 (4) 1.7412 + 3 d3/2 (4) 1.3915 + 3 d5/2 (6) 1.3514 + 4 s1/2 (2) 0.4357 + 4 p1/2 (2) 0.3435 + 4 p3/2 (4) 0.3066 + 4 d3/2 (4) 0.1678 + 4 d5/2 (6) 0.1568 + 5 s1/2 (2) 0.0512 + 5 p1/2 (2) 0.0249 + 5 p3/2 (4) 0.0195 + 6 s1/2 (2) 0.0060 + 4 f5/2 (6) 0.0048 + 4 f7/2 (5) 0.0028 + + +// ---------------------------------------------- + + Er Z = 68 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 57.4855 + 2 s1/2 (2) 9.7513 + 2 p1/2 (2) 9.2643 + 2 p3/2 (4) 8.3579 + 3 s1/2 (2) 2.2167 + 3 p1/2 (2) 2.0058 + 3 p3/2 (4) 1.8118 + 3 d3/2 (4) 1.4533 + 3 d5/2 (6) 1.4093 + 4 s1/2 (2) 0.4491 + 4 p1/2 (2) 0.3662 + 4 p3/2 (4) 0.3200 + 4 d3/2 (4) 0.1767 + 4 d5/2 (6) 0.1676 + 5 s1/2 (2) 0.0598 + 5 p1/2 (2) 0.0279 + 5 p3/2 (4) 0.0223 + 6 s1/2 (2) 0.0060 + 4 f5/2 (6) 0.0053 + 4 f7/2 (6) 0.0036 + + +// ---------------------------------------------- + + Tm Z = 69 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 59.3896 + 2 s1/2 (2) 10.1157 + 2 p1/2 (2) 9.6169 + 2 p3/2 (4) 8.6480 + 3 s1/2 (2) 2.3068 + 3 p1/2 (2) 2.0898 + 3 p3/2 (4) 1.8845 + 3 d3/2 (4) 1.5146 + 3 d5/2 (6) 1.4677 + 4 s1/2 (2) 0.4717 + 4 p1/2 (2) 0.3859 + 4 p3/2 (4) 0.3366 + 4 d3/2 (4) 0.1855 + 4 d5/2 (6) 0.1757 + 5 s1/2 (2) 0.0532 + 5 p1/2 (2) 0.0362 + 5 p3/2 (4) 0.0304 + 4 f5/2 (6) 0.0062 + 6 s1/2 (2) 0.0060 + 4 f7/2 (7) 0.0047 + + +// ---------------------------------------------- + + Yb Z = 70 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 61.3323 + 2 s1/2 (2) 10.4864 + 2 p1/2 (2) 9.9782 + 2 p3/2 (4) 8.9436 + 3 s1/2 (2) 2.3981 + 3 p1/2 (2) 2.1730 + 3 p3/2 (4) 1.9498 + 3 d3/2 (4) 1.5763 + 3 d5/2 (6) 1.5278 + 4 s1/2 (2) 0.4872 + 4 p1/2 (2) 0.3967 + 4 p3/2 (4) 0.3435 + 4 d3/2 (4) 0.1981 + 4 d5/2 (6) 0.1849 + 5 s1/2 (2) 0.0541 + 5 p1/2 (2) 0.0274 + 5 p3/2 (4) 0.0214 + 4 f5/2 (6) 0.0070 + 6 s1/2 (2) 0.0060 + 4 f7/2 (8) 0.0058 + + +// ---------------------------------------------- + + Lu Z = 71 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 63.3138 + 2 s1/2 (2) 10.8704 + 2 p1/2 (2) 10.3486 + 2 p3/2 (4) 9.2441 + 3 s1/2 (2) 2.4912 + 3 p1/2 (2) 2.2635 + 3 p3/2 (4) 2.0236 + 3 d3/2 (4) 1.6394 + 3 d5/2 (6) 1.5885 + 4 s1/2 (2) 0.5062 + 4 p1/2 (2) 0.4101 + 4 p3/2 (4) 0.3593 + 4 d3/2 (4) 0.2048 + 4 d5/2 (6) 0.1950 + 5 s1/2 (2) 0.0568 + 5 p1/2 (2) 0.0330 + 5 p3/2 (4) 0.0255 + 4 f5/2 (6) 0.0078 + 6 s1/2 (2) 0.0070 + 4 f7/2 (8) 0.0062 + 5 d3/2 (1) 0.0046 + + +// ---------------------------------------------- + + Hf Z = 72 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 65.3508 + 2 s1/2 (2) 11.2707 + 2 p1/2 (2) 10.7394 + 2 p3/2 (4) 9.5607 + 3 s1/2 (2) 2.6009 + 3 p1/2 (2) 2.3654 + 3 p3/2 (4) 2.1076 + 3 d3/2 (4) 1.7164 + 3 d5/2 (6) 1.6617 + 4 s1/2 (2) 0.5381 + 4 p1/2 (2) 0.4370 + 4 p3/2 (4) 0.3804 + 4 d3/2 (4) 0.2238 + 4 d5/2 (6) 0.2137 + 5 s1/2 (2) 0.0649 + 5 p1/2 (2) 0.0382 + 5 p3/2 (4) 0.0290 + 4 f5/2 (6) 0.0182 + 4 f7/2 (8) 0.0163 + 6 s1/2 (2) 0.0070 + 5 d3/2 (2) 0.0066 + + +// ---------------------------------------------- + + Ta Z = 73 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 67.4164 + 2 s1/2 (2) 11.6815 + 2 p1/2 (2) 11.1361 + 2 p3/2 (4) 9.8811 + 3 s1/2 (2) 2.7080 + 3 p1/2 (2) 2.4687 + 3 p3/2 (4) 2.1940 + 3 d3/2 (4) 1.7932 + 3 d5/2 (6) 1.7351 + 4 s1/2 (2) 0.5655 + 4 p1/2 (2) 0.4648 + 4 p3/2 (4) 0.4045 + 4 d3/2 (4) 0.2413 + 4 d5/2 (6) 0.2293 + 5 s1/2 (2) 0.0711 + 5 p1/2 (2) 0.0437 + 5 p3/2 (4) 0.0347 + 4 f5/2 (6) 0.0275 + 4 f7/2 (8) 0.0256 + 6 s1/2 (2) 0.0080 + 5 d3/2 (3) 0.0057 + + +// ---------------------------------------------- + + W Z = 74 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 69.5250 + 2 s1/2 (2) 12.0998 + 2 p1/2 (2) 11.5440 + 2 p3/2 (4) 10.2068 + 3 s1/2 (2) 2.8196 + 3 p1/2 (2) 2.5749 + 3 p3/2 (4) 2.2810 + 3 d3/2 (4) 1.8716 + 3 d5/2 (6) 1.8092 + 4 s1/2 (2) 0.5950 + 4 p1/2 (2) 0.4916 + 4 p3/2 (4) 0.4253 + 4 d3/2 (4) 0.2588 + 4 d5/2 (6) 0.2454 + 5 s1/2 (2) 0.0771 + 5 p1/2 (2) 0.0467 + 4 f5/2 (6) 0.0374 + 5 p3/2 (4) 0.0365 + 4 f7/2 (8) 0.0351 + 6 s1/2 (2) 0.0080 + 5 d3/2 (4) 0.0061 + + +// ---------------------------------------------- + + Re Z = 75 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 71.6764 + 2 s1/2 (2) 12.5267 + 2 p1/2 (2) 11.9587 + 2 p3/2 (4) 10.5353 + 3 s1/2 (2) 2.9317 + 3 p1/2 (2) 2.6816 + 3 p3/2 (4) 2.3673 + 3 d3/2 (4) 1.9489 + 3 d5/2 (6) 1.8829 + 4 s1/2 (2) 0.6250 + 4 p1/2 (2) 0.5179 + 4 p3/2 (4) 0.4444 + 4 d3/2 (4) 0.2737 + 4 d5/2 (6) 0.2602 + 5 s1/2 (2) 0.0828 + 5 p1/2 (2) 0.0484 + 4 f5/2 (6) 0.0481 + 4 f7/2 (8) 0.0457 + 5 p3/2 (4) 0.0368 + 6 s1/2 (2) 0.0080 + 5 d3/2 (4) 0.0038 + 5 d5/2 (1) 0.0025 + + +// ---------------------------------------------- + + Os Z = 76 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 73.8708 + 2 s1/2 (2) 12.9680 + 2 p1/2 (2) 12.3850 + 2 p3/2 (4) 10.8702 + 3 s1/2 (2) 3.0485 + 3 p1/2 (2) 2.7922 + 3 p3/2 (4) 2.4572 + 3 d3/2 (4) 2.0308 + 3 d5/2 (6) 1.9601 + 4 s1/2 (2) 0.6543 + 4 p1/2 (2) 0.5465 + 4 p3/2 (4) 0.4682 + 4 d3/2 (4) 0.2894 + 4 d5/2 (6) 0.2728 + 5 s1/2 (2) 0.0837 + 5 p1/2 (2) 0.0580 + 4 f5/2 (6) 0.0538 + 4 f7/2 (8) 0.0510 + 5 p3/2 (4) 0.0454 + 6 s1/2 (2) 0.0080 + 5 d5/2 (2) 0.0009 + 5 d3/2 (4) 0.0004 + + +// ---------------------------------------------- + + Ir Z = 77 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 76.1110 + 2 s1/2 (2) 13.4185 + 2 p1/2 (2) 12.8241 + 2 p3/2 (4) 11.2152 + 3 s1/2 (2) 3.1737 + 3 p1/2 (2) 2.9087 + 3 p3/2 (4) 2.5507 + 3 d3/2 (4) 2.1161 + 3 d5/2 (6) 2.0404 + 4 s1/2 (2) 0.6901 + 4 p1/2 (2) 0.5771 + 4 p3/2 (4) 0.4943 + 4 d3/2 (4) 0.3114 + 4 d5/2 (6) 0.2949 + 5 s1/2 (2) 0.0952 + 4 f5/2 (6) 0.0638 + 5 p1/2 (2) 0.0630 + 4 f7/2 (8) 0.0608 + 5 p3/2 (4) 0.0496 + 6 s1/2 (2) 0.0090 + 5 d3/2 (4) 0.0042 + 5 d5/2 (3) 0.0032 + + +// ---------------------------------------------- + + Pt Z = 78 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 78.3948 + 2 s1/2 (2) 13.8801 + 2 p1/2 (2) 13.2726 + 2 p3/2 (4) 11.5637 + 3 s1/2 (2) 3.2972 + 3 p1/2 (2) 3.0267 + 3 p3/2 (4) 2.6457 + 3 d3/2 (4) 2.2017 + 3 d5/2 (6) 2.1214 + 4 s1/2 (2) 0.7228 + 4 p1/2 (2) 0.6084 + 4 p3/2 (4) 0.5190 + 4 d3/2 (4) 0.3307 + 4 d5/2 (6) 0.3134 + 5 s1/2 (2) 0.1017 + 4 f5/2 (6) 0.0743 + 4 f7/2 (8) 0.0709 + 5 p1/2 (2) 0.0653 + 5 p3/2 (4) 0.0516 + 6 s1/2 (1) 0.0090 + 5 d3/2 (4) 0.0028 + 5 d5/2 (5) 0.0014 + + +// ---------------------------------------------- + + Au Z = 79 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 80.7249 + 2 s1/2 (2) 14.3528 + 2 p1/2 (2) 13.7336 + 2 p3/2 (4) 11.9187 + 3 s1/2 (2) 3.4249 + 3 p1/2 (2) 3.1478 + 3 p3/2 (4) 2.7430 + 3 d3/2 (4) 2.2911 + 3 d5/2 (6) 2.2057 + 4 s1/2 (2) 0.7588 + 4 p1/2 (2) 0.6437 + 4 p3/2 (4) 0.5454 + 4 d3/2 (4) 0.3520 + 4 d5/2 (6) 0.3339 + 5 s1/2 (2) 0.1078 + 4 f5/2 (6) 0.0873 + 4 f7/2 (8) 0.0837 + 5 p1/2 (2) 0.0717 + 5 p3/2 (4) 0.0569 + 6 s1/2 (1) 0.0090 + 5 d3/2 (4) 0.0033 + 5 d5/2 (6) 0.0018 + + +// ---------------------------------------------- + + Hg Z = 80 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 83.1023 + 2 s1/2 (2) 14.8393 + 2 p1/2 (2) 14.2087 + 2 p3/2 (4) 12.2839 + 3 s1/2 (2) 3.5616 + 3 p1/2 (2) 3.2785 + 3 p3/2 (4) 2.8471 + 3 d3/2 (4) 2.3849 + 3 d5/2 (6) 2.2949 + 4 s1/2 (2) 0.8030 + 4 p1/2 (2) 0.6769 + 4 p3/2 (4) 0.5710 + 4 d3/2 (4) 0.3783 + 4 d5/2 (6) 0.3598 + 5 s1/2 (2) 0.1203 + 4 f5/2 (6) 0.1033 + 4 f7/2 (8) 0.0994 + 5 p1/2 (2) 0.0805 + 5 p3/2 (4) 0.0618 + 6 s1/2 (2) 0.0090 + 5 d3/2 (4) 0.0075 + 5 d5/2 (6) 0.0057 + + +// ---------------------------------------------- + + Tl Z = 81 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 85.5304 + 2 s1/2 (2) 15.3467 + 2 p1/2 (2) 14.6979 + 2 p3/2 (4) 12.6575 + 3 s1/2 (2) 3.7041 + 3 p1/2 (2) 3.4157 + 3 p3/2 (4) 2.9566 + 3 d3/2 (4) 2.4851 + 3 d5/2 (6) 2.3893 + 4 s1/2 (2) 0.8455 + 4 p1/2 (2) 0.7213 + 4 p3/2 (4) 0.6090 + 4 d3/2 (4) 0.4066 + 4 d5/2 (6) 0.3862 + 5 s1/2 (2) 0.1363 + 4 f5/2 (6) 0.1230 + 4 f7/2 (8) 0.1187 + 5 p1/2 (2) 0.0996 + 5 p3/2 (4) 0.0745 + 5 d3/2 (4) 0.0153 + 5 d5/2 (6) 0.0131 + 6 p1/2 (1) 0.0060 + 6 s1/2 (2) 0.0008 + + +// ---------------------------------------------- + + Pb Z = 82 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 88.0045 + 2 s1/2 (2) 15.8608 + 2 p1/2 (2) 15.2000 + 2 p3/2 (4) 13.0352 + 3 s1/2 (2) 3.8507 + 3 p1/2 (2) 3.5542 + 3 p3/2 (4) 3.0664 + 3 d3/2 (4) 2.5856 + 3 d5/2 (6) 2.4840 + 4 s1/2 (2) 0.8936 + 4 p1/2 (2) 0.7639 + 4 p3/2 (4) 0.6445 + 4 d3/2 (4) 0.4352 + 4 d5/2 (6) 0.4129 + 5 s1/2 (2) 0.1473 + 4 f5/2 (6) 0.1418 + 4 f7/2 (8) 0.1369 + 5 p1/2 (2) 0.1048 + 5 p3/2 (4) 0.0845 + 5 d3/2 (4) 0.0218 + 5 d5/2 (6) 0.0192 + 6 s1/2 (2) 0.0031 + 6 p1/2 (2) 0.0007 + + +// ---------------------------------------------- + + Bi Z = 83 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 90.5259 + 2 s1/2 (2) 16.3875 + 2 p1/2 (2) 15.7111 + 2 p3/2 (4) 13.4186 + 3 s1/2 (2) 3.9991 + 3 p1/2 (2) 3.6963 + 3 p3/2 (4) 3.1769 + 3 d3/2 (4) 2.6876 + 3 d5/2 (6) 2.5796 + 4 s1/2 (2) 0.9382 + 4 p1/2 (2) 0.8053 + 4 p3/2 (4) 0.6789 + 4 d3/2 (4) 0.4636 + 4 d5/2 (6) 0.4400 + 4 f5/2 (6) 0.1623 + 5 s1/2 (2) 0.1593 + 4 f7/2 (8) 0.1572 + 5 p1/2 (2) 0.1168 + 5 p3/2 (4) 0.0929 + 5 d3/2 (4) 0.0265 + 5 d5/2 (6) 0.0244 + 6 s1/2 (2) 0.0075 + 6 p1/2 (2) 0.0012 + 6 p3/2 (1) 0.0002 + + +// ---------------------------------------------- + + Po Z = 84 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 93.0999 + 2 s1/2 (2) 16.9279 + 2 p1/2 (2) 16.2380 + 2 p3/2 (4) 13.8106 + 3 s1/2 (2) 4.1535 + 3 p1/2 (2) 3.8443 + 3 p3/2 (4) 3.2934 + 3 d3/2 (4) 2.7936 + 3 d5/2 (6) 2.6792 + 4 s1/2 (2) 0.9875 + 4 p1/2 (2) 0.8509 + 4 p3/2 (4) 0.7152 + 4 d3/2 (4) 0.4957 + 4 d5/2 (6) 0.4699 + 4 f5/2 (6) 0.1846 + 4 f7/2 (8) 0.1789 + 5 s1/2 (2) 0.1775 + 5 p1/2 (2) 0.1318 + 5 p3/2 (4) 0.1037 + 5 d3/2 (4) 0.0338 + 5 d5/2 (6) 0.0306 + 6 s1/2 (2) 0.0110 + 6 p1/2 (2) 0.0032 + 6 p3/2 (2) 0.0014 + + +// ---------------------------------------------- + + At Z = 85 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 95.7240 + 2 s1/2 (2) 17.4815 + 2 p1/2 (2) 16.7773 + 2 p3/2 (4) 14.2080 + 3 s1/2 (2) 4.3117 + 3 p1/2 (2) 3.9958 + 3 p3/2 (4) 3.4105 + 3 d3/2 (4) 2.9018 + 3 d5/2 (6) 2.7807 + 4 s1/2 (2) 1.0382 + 4 p1/2 (2) 0.8977 + 4 p3/2 (4) 0.7537 + 4 d3/2 (4) 0.5276 + 4 d5/2 (6) 0.5001 + 4 f5/2 (6) 0.2070 + 4 f7/2 (8) 0.2008 + 5 s1/2 (2) 0.1934 + 5 p1/2 (2) 0.1456 + 5 p3/2 (4) 0.1136 + 5 d3/2 (4) 0.0409 + 5 d5/2 (6) 0.0374 + 6 s1/2 (2) 0.0150 + 6 p1/2 (2) 0.0057 + 6 p3/2 (3) 0.0028 + + +// ---------------------------------------------- + + Rn Z = 86 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 98.3972 + 2 s1/2 (2) 18.0487 + 2 p1/2 (2) 17.3297 + 2 p3/2 (4) 14.6114 + 3 s1/2 (2) 4.4743 + 3 p1/2 (2) 4.1515 + 3 p3/2 (4) 3.5305 + 3 d3/2 (4) 3.0123 + 3 d5/2 (6) 2.8842 + 4 s1/2 (2) 1.0905 + 4 p1/2 (2) 0.9462 + 4 p3/2 (4) 0.7912 + 4 d3/2 (4) 0.5604 + 4 d5/2 (6) 0.5311 + 4 f5/2 (6) 0.2301 + 4 f7/2 (8) 0.2236 + 5 s1/2 (2) 0.2096 + 5 p1/2 (2) 0.1595 + 5 p3/2 (4) 0.1239 + 5 d3/2 (4) 0.0480 + 5 d5/2 (6) 0.0442 + 6 s1/2 (2) 0.0187 + 6 p1/2 (2) 0.0076 + 6 p3/2 (4) 0.0041 + + +// ---------------------------------------------- + + Fr Z = 87 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 101.1299 + 2 s1/2 (2) 18.6341 + 2 p1/2 (2) 17.9005 + 2 p3/2 (4) 15.0256 + 3 s1/2 (2) 4.6457 + 3 p1/2 (2) 4.3160 + 3 p3/2 (4) 3.6573 + 3 d3/2 (4) 3.1297 + 3 d5/2 (6) 2.9949 + 4 s1/2 (2) 1.1490 + 4 p1/2 (2) 1.0007 + 4 p3/2 (4) 0.8351 + 4 d3/2 (4) 0.5987 + 4 d5/2 (6) 0.5675 + 4 f5/2 (6) 0.2586 + 4 f7/2 (8) 0.2516 + 5 s1/2 (2) 0.2309 + 5 p1/2 (2) 0.1787 + 5 p3/2 (4) 0.1387 + 5 d3/2 (4) 0.0600 + 5 d5/2 (6) 0.0556 + 6 s1/2 (2) 0.0263 + 6 p1/2 (2) 0.0132 + 6 p3/2 (4) 0.0088 + 7 s1/2 (1) 0.0040 + + +// ---------------------------------------------- + + Ra Z = 88 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 103.9162 + 2 s1/2 (2) 19.2367 + 2 p1/2 (2) 18.4843 + 2 p3/2 (4) 15.4444 + 3 s1/2 (2) 4.8220 + 3 p1/2 (2) 4.4850 + 3 p3/2 (4) 3.7866 + 3 d3/2 (4) 3.2484 + 3 d5/2 (6) 3.1049 + 4 s1/2 (2) 1.2084 + 4 p1/2 (2) 1.0576 + 4 p3/2 (4) 0.8791 + 4 d3/2 (4) 0.6359 + 4 d5/2 (6) 0.6027 + 4 f5/2 (6) 0.2879 + 4 f7/2 (8) 0.2804 + 5 s1/2 (2) 0.2544 + 5 p1/2 (2) 0.2004 + 5 p3/2 (4) 0.1528 + 5 d3/2 (4) 0.0694 + 5 d5/2 (6) 0.0638 + 6 s1/2 (2) 0.0355 + 6 p1/2 (2) 0.0192 + 6 p3/2 (4) 0.0137 + 7 s1/2 (2) 0.0050 + + +// ---------------------------------------------- + + Ac Z = 89 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 106.7563 + 2 s1/2 (2) 19.8459 + 2 p1/2 (2) 19.0830 + 2 p3/2 (4) 15.8712 + 3 s1/2 (2) 5.0006 + 3 p1/2 (2) 4.6568 + 3 p3/2 (4) 3.9167 + 3 d3/2 (4) 3.3701 + 3 d5/2 (6) 3.2197 + 4 s1/2 (2) 1.2694 + 4 p1/2 (2) 1.1128 + 4 p3/2 (4) 0.9243 + 4 d3/2 (4) 0.6739 + 4 d5/2 (6) 0.6411 + 4 f5/2 (6) 0.3164 + 4 f7/2 (8) 0.3084 + 5 s1/2 (2) 0.2735 + 5 p1/2 (2) 0.2169 + 5 p3/2 (4) 0.1678 + 5 d3/2 (4) 0.0833 + 5 d5/2 (6) 0.0777 + 6 s1/2 (2) 0.0398 + 6 p1/2 (2) 0.0241 + 6 p3/2 (4) 0.0170 + 7 s1/2 (2) 0.0060 + 6 d3/2 (1) 0.0060 + + +// ---------------------------------------------- + + Th Z = 90 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 109.6491 + 2 s1/2 (2) 20.4721 + 2 p1/2 (2) 19.6932 + 2 p3/2 (4) 16.3003 + 3 s1/2 (2) 5.1823 + 3 p1/2 (2) 4.8304 + 3 p3/2 (4) 4.0461 + 3 d3/2 (4) 3.4908 + 3 d5/2 (6) 3.3320 + 4 s1/2 (2) 1.3295 + 4 p1/2 (2) 1.1682 + 4 p3/2 (4) 0.9672 + 4 d3/2 (4) 0.7137 + 4 d5/2 (6) 0.6766 + 4 f5/2 (6) 0.3444 + 4 f7/2 (8) 0.3350 + 5 s1/2 (2) 0.2902 + 5 p1/2 (2) 0.2320 + 5 p3/2 (4) 0.1808 + 5 d3/2 (4) 0.0941 + 5 d5/2 (6) 0.0873 + 6 s1/2 (2) 0.0414 + 6 p1/2 (2) 0.0258 + 6 p3/2 (4) 0.0173 + 7 s1/2 (2) 0.0060 + 6 d3/2 (2) 0.0060 + + +// ---------------------------------------------- + + Pa Z = 91 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 112.5961 + 2 s1/2 (2) 21.1114 + 2 p1/2 (2) 20.3137 + 2 p3/2 (4) 16.7291 + 3 s1/2 (2) 5.3669 + 3 p1/2 (2) 5.0027 + 3 p3/2 (4) 4.1738 + 3 d3/2 (4) 3.6064 + 3 d5/2 (6) 3.4394 + 4 s1/2 (2) 1.3871 + 4 p1/2 (2) 1.2243 + 4 p3/2 (4) 1.0067 + 4 d3/2 (4) 0.7434 + 4 d5/2 (6) 0.7082 + 4 f5/2 (6) 0.3712 + 4 f7/2 (8) 0.3595 + 5 s1/2 (2) 0.3096 + 5 p1/2 (2) 0.2446 + 5 p3/2 (4) 0.1863 + 5 d3/2 (4) 0.0973 + 5 d5/2 (6) 0.0892 + 6 s1/2 (2) 0.0467 + 6 p1/2 (2) 0.0281 + 6 p3/2 (4) 0.0189 + 7 s1/2 (2) 0.0060 + 6 d3/2 (1) 0.0060 + 5 f5/2 (2) 0.0060 + + +// ---------------------------------------------- + + U Z = 92 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 115.6006 + 2 s1/2 (2) 21.7574 + 2 p1/2 (2) 20.9476 + 2 p3/2 (4) 17.1663 + 3 s1/2 (2) 5.5480 + 3 p1/2 (2) 5.1822 + 3 p3/2 (4) 4.3034 + 3 d3/2 (4) 3.7276 + 3 d5/2 (6) 3.5517 + 4 s1/2 (2) 1.4408 + 4 p1/2 (2) 1.2718 + 4 p3/2 (4) 1.0449 + 4 d3/2 (4) 0.7802 + 4 d5/2 (6) 0.7377 + 4 f5/2 (6) 0.3907 + 4 f7/2 (8) 0.3799 + 5 s1/2 (2) 0.3233 + 5 p1/2 (2) 0.2593 + 5 p3/2 (4) 0.1959 + 5 d3/2 (4) 0.1044 + 5 d5/2 (6) 0.0952 + 6 s1/2 (2) 0.0495 + 6 p1/2 (2) 0.0308 + 6 p3/2 (4) 0.0186 + 7 s1/2 (2) 0.0060 + 6 d3/2 (1) 0.0060 + 5 f5/2 (3) 0.0060 + + +// ---------------------------------------------- + + Np Z = 93 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 118.6686 + 2 s1/2 (2) 22.4281 + 2 p1/2 (2) 21.6013 + 2 p3/2 (4) 17.6106 + 3 s1/2 (2) 5.7396 + 3 p1/2 (2) 5.3667 + 3 p3/2 (4) 4.4334 + 3 d3/2 (4) 3.8498 + 3 d5/2 (6) 3.6652 + 4 s1/2 (2) 1.5001 + 4 p1/2 (2) 1.3277 + 4 p3/2 (4) 1.0860 + 4 d3/2 (4) 0.8161 + 4 d5/2 (6) 0.7708 + 4 f5/2 (6) 0.4143 + 4 f7/2 (8) 0.4034 + 5 s1/2 (2) 0.3398 + 5 p1/2 (2) 0.2834 + 5 p3/2 (4) 0.2062 + 5 d3/2 (4) 0.1093 + 5 d5/2 (6) 0.1012 + 6 s1/2 (2) 0.0500 + 6 p1/2 (2) 0.0293 + 6 p3/2 (4) 0.0175 + 7 s1/2 (2) 0.0060 + 6 d3/2 (1) 0.0060 + 5 f5/2 (4) 0.0060 + + +// ---------------------------------------------- + + Pu Z = 94 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 121.7911 + 2 s1/2 (2) 23.0978 + 2 p1/2 (2) 22.2668 + 2 p3/2 (4) 18.0570 + 3 s1/2 (2) 5.9329 + 3 p1/2 (2) 5.5412 + 3 p3/2 (4) 4.5566 + 3 d3/2 (4) 3.9726 + 3 d5/2 (6) 3.7781 + 4 s1/2 (2) 1.5593 + 4 p1/2 (2) 1.3774 + 4 p3/2 (4) 1.1209 + 4 d3/2 (4) 0.8489 + 4 d5/2 (6) 0.8015 + 4 f5/2 (6) 0.4374 + 4 f7/2 (8) 0.4252 + 5 s1/2 (2) 0.3519 + 5 p1/2 (2) 0.2825 + 5 p3/2 (4) 0.2153 + 5 d3/2 (4) 0.1160 + 5 d5/2 (6) 0.1052 + 6 s1/2 (2) 0.0486 + 6 p1/2 (2) 0.0306 + 6 p3/2 (4) 0.0184 + 7 s1/2 (2) 0.0060 + 5 f5/2 (6) 0.0060 + + +// ---------------------------------------------- + + Am Z = 95 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 124.9809 + 2 s1/2 (2) 23.8051 + 2 p1/2 (2) 22.9494 + 2 p3/2 (4) 18.5062 + 3 s1/2 (2) 6.1326 + 3 p1/2 (2) 5.7470 + 3 p3/2 (4) 4.7060 + 3 d3/2 (4) 4.0921 + 3 d5/2 (6) 3.8869 + 4 s1/2 (2) 1.6192 + 4 p1/2 (2) 1.4351 + 4 p3/2 (4) 1.1680 + 4 d3/2 (4) 0.8804 + 4 d5/2 (6) 0.8300 + 4 f5/2 (6) 0.4633 + 4 f7/2 (8) 0.4490 + 5 s1/2 (2) 0.3730 + 5 p1/2 (2) 0.3030 + 5 p3/2 (4) 0.2164 + 5 d3/2 (4) 0.1180 + 5 d5/2 (6) 0.1079 + 6 s1/2 (2) 0.0504 + 6 p1/2 (2) 0.0311 + 6 p3/2 (4) 0.0181 + 7 s1/2 (2) 0.0060 + 5 f7/2 (1) 0.0060 + 5 f5/2 (6) 0.0060 + + +// ---------------------------------------------- + + Cm Z = 96 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 128.2000 + 2 s1/2 (2) 24.5200 + 2 p1/2 (2) 23.6600 + 2 p3/2 (4) 18.9700 + 3 s1/2 (2) 6.3350 + 3 p1/2 (2) 5.9400 + 3 p3/2 (4) 4.8500 + 3 d3/2 (4) 4.2300 + 3 d5/2 (6) 4.0150 + 4 s1/2 (2) 1.6850 + 4 p1/2 (2) 1.4950 + 4 p3/2 (4) 1.2050 + 4 d3/2 (4) 0.9250 + 4 d5/2 (6) 0.8700 + 4 f5/2 (6) 0.4950 + 4 f7/2 (8) 0.4850 + 5 s1/2 (2) 0.3970 + 5 p1/2 (2) 0.2350 + 5 p3/2 (4) 0.1350 + 5 d3/2 (4) 0.1200 + 7 s1/2 (2) 0.0970 + 5 f7/2 (1) 0.0920 + 6 s1/2 (2) 0.0670 + 6 p1/2 (2) 0.0500 + 5 d5/2 (6) 0.0060 + 6 p3/2 (4) 0.0060 + 6 d3/2 (1) 0.0060 + 5 f5/2 (6) 0.0060 + + +// ---------------------------------------------- + + Bk Z = 97 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 131.6000 + 2 s1/2 (2) 25.2600 + 2 p1/2 (2) 24.3800 + 2 p3/2 (4) 19.4400 + 3 s1/2 (2) 6.5450 + 3 p1/2 (2) 6.1450 + 3 p3/2 (4) 4.9900 + 3 d3/2 (4) 4.3600 + 3 d5/2 (6) 4.1350 + 4 s1/2 (2) 1.7450 + 4 p1/2 (2) 1.5550 + 4 p3/2 (4) 1.2450 + 4 d3/2 (4) 0.9600 + 4 d5/2 (6) 0.9000 + 4 f5/2 (6) 0.5250 + 4 f7/2 (8) 0.5100 + 5 s1/2 (2) 0.4150 + 5 p1/2 (2) 0.3300 + 5 p3/2 (4) 0.2430 + 5 d3/2 (4) 0.1400 + 5 d5/2 (6) 0.1250 + 6 s1/2 (2) 0.0960 + 6 p1/2 (2) 0.0700 + 6 p3/2 (4) 0.0500 + 7 s1/2 (2) 0.0060 + 5 f7/2 (2) 0.0060 + 5 f5/2 (6) 0.0060 + 6 d3/2 (1) 0.0044 + + +// ---------------------------------------------- + + Cf Z = 98 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 135.0000 + 2 s1/2 (2) 26.0100 + 2 p1/2 (2) 25.1200 + 2 p3/2 (4) 19.9100 + 3 s1/2 (2) 6.7550 + 3 p1/2 (2) 6.3500 + 3 p3/2 (4) 5.1350 + 3 d3/2 (4) 4.4950 + 3 d5/2 (6) 4.2600 + 4 s1/2 (2) 1.8100 + 4 p1/2 (2) 1.6150 + 4 p3/2 (4) 1.2850 + 4 d3/2 (4) 0.9950 + 4 d5/2 (6) 0.9300 + 4 f5/2 (6) 0.5550 + 4 f7/2 (8) 0.5400 + 5 s1/2 (2) 0.4300 + 5 p1/2 (2) 0.3450 + 5 p3/2 (4) 0.2500 + 5 d3/2 (4) 0.1450 + 5 d5/2 (6) 0.1300 + 6 s1/2 (2) 0.1000 + 6 p1/2 (2) 0.0700 + 6 p3/2 (4) 0.0500 + 7 s1/2 (2) 0.0060 + 5 f7/2 (4) 0.0060 + 5 f5/2 (6) 0.0060 + + +// ---------------------------------------------- + + Es Z = 99 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 138.4000 + 2 s1/2 (2) 26.7800 + 2 p1/2 (2) 25.8800 + 2 p3/2 (4) 20.3900 + 3 s1/2 (2) 6.9750 + 3 p1/2 (2) 6.5600 + 3 p3/2 (4) 5.2800 + 3 d3/2 (4) 4.6300 + 3 d5/2 (6) 4.3850 + 4 s1/2 (2) 1.8750 + 4 p1/2 (2) 1.6750 + 4 p3/2 (4) 1.3250 + 4 d3/2 (4) 1.0300 + 4 d5/2 (6) 0.9650 + 4 f5/2 (6) 0.5850 + 4 f7/2 (8) 0.5700 + 5 s1/2 (2) 0.4450 + 5 p1/2 (2) 0.3600 + 5 p3/2 (4) 0.2600 + 5 d3/2 (4) 0.1550 + 5 d5/2 (6) 0.1350 + 6 s1/2 (2) 0.1000 + 6 p1/2 (2) 0.0700 + 6 p3/2 (4) 0.0500 + 7 s1/2 (2) 0.0060 + 5 f7/2 (5) 0.0060 + 5 f5/2 (6) 0.0060 + + +// ---------------------------------------------- + + Fm Z = 100 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 142.0000 + 2 s1/2 (2) 27.5700 + 2 p1/2 (2) 26.6600 + 2 p3/2 (4) 20.8700 + 3 s1/2 (2) 7.2000 + 3 p1/2 (2) 6.7800 + 3 p3/2 (4) 5.4250 + 3 d3/2 (4) 4.7650 + 3 d5/2 (6) 4.5100 + 4 s1/2 (2) 1.9400 + 4 p1/2 (2) 1.7400 + 4 p3/2 (4) 1.3700 + 4 d3/2 (4) 1.0650 + 4 d5/2 (6) 1.0000 + 4 f5/2 (6) 0.6150 + 4 f7/2 (8) 0.6000 + 5 s1/2 (2) 0.4600 + 5 p1/2 (2) 0.3750 + 5 p3/2 (4) 0.2700 + 5 d3/2 (4) 0.1650 + 5 d5/2 (6) 0.1400 + 6 s1/2 (2) 0.1000 + 6 p1/2 (2) 0.0800 + 6 p3/2 (4) 0.0500 + 7 s1/2 (2) 0.0060 + 5 f7/2 (6) 0.0060 + 5 f5/2 (6) 0.0060 + + +// ---------------------------------------------- + + Md Z = 101 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 145.6000 + 2 s1/2 (2) 28.3800 + 2 p1/2 (2) 27.4600 + 2 p3/2 (4) 21.3600 + 3 s1/2 (2) 7.4300 + 3 p1/2 (2) 7.0000 + 3 p3/2 (4) 5.5750 + 3 d3/2 (4) 4.9050 + 3 d5/2 (6) 4.6330 + 4 s1/2 (2) 2.0050 + 4 p1/2 (2) 1.8050 + 4 p3/2 (4) 1.4150 + 4 d3/2 (4) 1.1050 + 4 d5/2 (6) 1.0350 + 4 f5/2 (6) 0.6450 + 4 f7/2 (8) 0.6300 + 5 s1/2 (2) 0.4800 + 5 p1/2 (2) 0.3900 + 5 p3/2 (4) 0.2800 + 5 d3/2 (4) 0.1750 + 5 d5/2 (6) 0.1450 + 6 s1/2 (2) 0.1100 + 6 p1/2 (2) 0.0800 + 6 p3/2 (4) 0.0500 + 5 f7/2 (7) 0.0070 + 5 f5/2 (6) 0.0070 + 7 s1/2 (2) 0.0060 + + +// ---------------------------------------------- + + No Z = 102 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 149.3000 + 2 s1/2 (2) 29.2220 + 2 p1/2 (2) 28.2800 + 2 p3/2 (4) 21.8500 + 3 s1/2 (2) 7.6700 + 3 p1/2 (2) 7.2300 + 3 p3/2 (4) 5.7300 + 3 d3/2 (4) 5.0500 + 3 d5/2 (6) 4.7650 + 4 s1/2 (2) 2.0750 + 4 p1/2 (2) 1.8750 + 4 p3/2 (4) 1.4600 + 4 d3/2 (4) 1.1450 + 4 d5/2 (6) 1.0700 + 4 f5/2 (6) 0.6800 + 4 f7/2 (8) 0.6500 + 5 s1/2 (2) 0.5000 + 5 p1/2 (2) 0.4100 + 5 p3/2 (4) 0.2900 + 5 d3/2 (4) 0.1850 + 5 d5/2 (6) 0.1550 + 6 s1/2 (2) 0.1100 + 6 p1/2 (2) 0.0800 + 6 p3/2 (4) 0.0500 + 5 f7/2 (8) 0.0100 + 5 f5/2 (6) 0.0100 + 7 s1/2 (2) 0.0060 + + +// ---------------------------------------------- + + Lr Z = 103 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 153.0000 + 2 s1/2 (2) 30.0800 + 2 p1/2 (2) 29.1300 + 2 p3/2 (4) 22.3500 + 3 s1/2 (2) 7.9200 + 3 p1/2 (2) 7.4700 + 3 p3/2 (4) 5.8900 + 3 d3/2 (4) 5.2000 + 3 d5/2 (6) 4.9000 + 4 s1/2 (2) 2.1500 + 4 p1/2 (2) 1.9500 + 4 p3/2 (4) 1.5050 + 4 d3/2 (4) 1.1900 + 4 d5/2 (6) 1.1100 + 4 f5/2 (6) 0.7200 + 4 f7/2 (8) 0.6900 + 5 s1/2 (2) 0.5200 + 5 p1/2 (2) 0.4300 + 5 p3/2 (4) 0.3000 + 5 d3/2 (4) 0.2000 + 5 d5/2 (6) 0.1600 + 6 s1/2 (2) 0.1200 + 6 p1/2 (2) 0.0900 + 6 p3/2 (4) 0.0600 + 5 f7/2 (8) 0.0150 + 5 f5/2 (6) 0.0150 + 7 s1/2 (2) 0.0070 + 6 d3/2 (1) 0.0070 + + +// ---------------------------------------------- + + Rf Z = 104 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 156.9000 + 2 s1/2 (2) 30.9600 + 2 p1/2 (2) 30.0000 + 2 p3/2 (4) 22.8600 + 3 s1/2 (2) 8.1700 + 3 p1/2 (2) 7.7200 + 3 p3/2 (4) 6.0550 + 3 d3/2 (4) 5.3500 + 3 d5/2 (6) 5.0400 + 4 s1/2 (2) 2.2250 + 4 p1/2 (2) 2.0250 + 4 p3/2 (4) 1.5550 + 4 d3/2 (4) 1.2350 + 4 d5/2 (6) 1.1500 + 4 f5/2 (6) 0.7600 + 4 f7/2 (8) 0.7200 + 5 s1/2 (2) 0.5400 + 5 p1/2 (2) 0.4550 + 5 p3/2 (4) 0.3150 + 5 d3/2 (4) 0.2150 + 5 d5/2 (6) 0.1700 + 6 s1/2 (2) 0.1200 + 6 p1/2 (2) 0.0900 + 6 p3/2 (4) 0.0600 + 5 f7/2 (8) 0.0200 + 5 f5/2 (6) 0.0200 + 7 s1/2 (2) 0.0080 + 6 d3/2 (2) 0.0080 + + +// ---------------------------------------------- + + Db Z = 105 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 160.8000 + 2 s1/2 (2) 31.8700 + 2 p1/2 (2) 30.9000 + 2 p3/2 (4) 23.3800 + 3 s1/2 (2) 8.4300 + 3 p1/2 (2) 7.9800 + 3 p3/2 (4) 6.6250 + 3 d3/2 (4) 5.5050 + 3 d5/2 (6) 5.1850 + 4 s1/2 (2) 2.3050 + 4 p1/2 (2) 2.1050 + 4 p3/2 (4) 1.6050 + 4 d3/2 (4) 1.2800 + 4 d5/2 (6) 1.1900 + 4 f5/2 (6) 0.8000 + 4 f7/2 (8) 0.7500 + 5 s1/2 (2) 0.5600 + 5 p1/2 (2) 0.4800 + 5 p3/2 (4) 0.3300 + 5 d3/2 (4) 0.2300 + 5 d5/2 (6) 0.1800 + 6 s1/2 (2) 0.1300 + 6 p1/2 (2) 0.1000 + 6 p3/2 (4) 0.0600 + 5 f7/2 (8) 0.0250 + 5 f5/2 (6) 0.0250 + 6 d3/2 (3) 0.0090 + 7 s1/2 (2) 0.0080 + + +// ---------------------------------------------- + + Sg Z = 106 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 164.9000 + 2 s1/2 (2) 32.8000 + 2 p1/2 (2) 31.8200 + 2 p3/2 (4) 23.9100 + 3 s1/2 (2) 8.7000 + 3 p1/2 (2) 8.2400 + 3 p3/2 (4) 6.4000 + 3 d3/2 (4) 5.6650 + 3 d5/2 (6) 5.3300 + 4 s1/2 (2) 2.3850 + 4 p1/2 (2) 2.1900 + 4 p3/2 (4) 1.6600 + 4 d3/2 (4) 1.3250 + 4 d5/2 (6) 1.2350 + 4 f5/2 (6) 0.8400 + 4 f7/2 (8) 0.7800 + 5 s1/2 (2) 0.5850 + 5 p1/2 (2) 0.5050 + 5 p3/2 (4) 0.3450 + 5 d3/2 (4) 0.2450 + 5 d5/2 (6) 0.1900 + 6 s1/2 (2) 0.1400 + 6 p1/2 (2) 0.1100 + 6 p3/2 (4) 0.0600 + 5 f7/2 (8) 0.0300 + 5 f5/2 (6) 0.0300 + 6 d3/2 (4) 0.0090 + 7 s1/2 (2) 0.0080 + + +// ---------------------------------------------- + + Bh Z = 107 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 169.0000 + 2 s1/2 (2) 33.7600 + 2 p1/2 (2) 32.7700 + 2 p3/2 (4) 24.4400 + 3 s1/2 (2) 8.9800 + 3 p1/2 (2) 8.5100 + 3 p3/2 (4) 6.5800 + 3 d3/2 (4) 5.8300 + 3 d5/2 (6) 5.4750 + 4 s1/2 (2) 2.4700 + 4 p1/2 (2) 2.2750 + 4 p3/2 (4) 1.7150 + 4 d3/2 (4) 1.3700 + 4 d5/2 (6) 1.2800 + 4 f5/2 (6) 0.8800 + 4 f7/2 (8) 0.8200 + 5 s1/2 (2) 0.6100 + 5 p1/2 (2) 0.5300 + 5 p3/2 (4) 0.3600 + 5 d3/2 (4) 0.2600 + 5 d5/2 (6) 0.2000 + 6 s1/2 (2) 0.1400 + 6 p1/2 (2) 0.1100 + 6 p3/2 (4) 0.0700 + 5 f7/2 (8) 0.0400 + 5 f5/2 (6) 0.0400 + 6 d3/2 (4) 0.0100 + 6 d5/2 (1) 0.0100 + 7 s1/2 (2) 0.0090 + + +// ---------------------------------------------- + + Hs Z = 108 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 173.2000 + 2 s1/2 (2) 34.7500 + 2 p1/2 (2) 33.7400 + 2 p3/2 (4) 24.9200 + 3 s1/2 (2) 9.2700 + 3 p1/2 (2) 8.7900 + 3 p3/2 (4) 6.7600 + 3 d3/2 (4) 5.9950 + 3 d5/2 (6) 5.6200 + 4 s1/2 (2) 2.5550 + 4 p1/2 (2) 2.3650 + 4 p3/2 (4) 1.7700 + 4 d3/2 (4) 1.4200 + 4 d5/2 (6) 1.3250 + 4 f5/2 (6) 0.9200 + 4 f7/2 (8) 0.8600 + 5 s1/2 (2) 0.6350 + 5 p1/2 (2) 0.5550 + 5 p3/2 (4) 0.3750 + 5 d3/2 (4) 0.2750 + 5 d5/2 (6) 0.2100 + 6 s1/2 (2) 0.1500 + 6 p1/2 (2) 0.1200 + 6 p3/2 (4) 0.0700 + 5 f7/2 (8) 0.0500 + 5 f5/2 (6) 0.0500 + 6 d3/2 (4) 0.0100 + 6 d5/2 (2) 0.0100 + 7 s1/2 (2) 0.0090 + + +// ---------------------------------------------- + + Mt Z = 109 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 177.6000 + 2 s1/2 (2) 35.7700 + 2 p1/2 (2) 34.7400 + 2 p3/2 (4) 25.5200 + 3 s1/2 (2) 9.5700 + 3 p1/2 (2) 9.0800 + 3 p3/2 (4) 6.9400 + 3 d3/2 (4) 6.1600 + 3 d5/2 (6) 5.7700 + 4 s1/2 (2) 2.6450 + 4 p1/2 (2) 2.4600 + 4 p3/2 (4) 1.8250 + 4 d3/2 (4) 1.4700 + 4 d5/2 (6) 1.3700 + 4 f5/2 (6) 0.9600 + 4 f7/2 (8) 0.9000 + 5 s1/2 (2) 0.6600 + 5 p1/2 (2) 0.5800 + 5 p3/2 (4) 0.3900 + 5 d3/2 (4) 0.2900 + 5 d5/2 (6) 0.2200 + 6 s1/2 (2) 0.1600 + 6 p1/2 (2) 0.1200 + 6 p3/2 (4) 0.0700 + 5 f7/2 (8) 0.0600 + 5 f5/2 (6) 0.0600 + 7 s1/2 (2) 0.0100 + 6 d3/2 (4) 0.0100 + 6 d5/2 (3) 0.0100 + + +// ---------------------------------------------- + + Ds Z = 110 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 182.0000 + 2 s1/2 (2) 36.8100 + 2 p1/2 (2) 35.7700 + 2 p3/2 (4) 26.0700 + 3 s1/2 (2) 9.8700 + 3 p1/2 (2) 9.3700 + 3 p3/2 (4) 7.1200 + 3 d3/2 (4) 6.3300 + 3 d5/2 (6) 5.9200 + 4 s1/2 (2) 2.7350 + 4 p1/2 (2) 2.5600 + 4 p3/2 (4) 1.8800 + 4 d3/2 (4) 1.5200 + 4 d5/2 (6) 1.4150 + 4 f5/2 (6) 1.0000 + 4 f7/2 (8) 0.9400 + 5 s1/2 (2) 0.6900 + 5 p1/2 (2) 0.6100 + 5 p3/2 (4) 0.4050 + 5 d3/2 (4) 0.3050 + 5 d5/2 (6) 0.2300 + 6 s1/2 (2) 0.1600 + 6 p1/2 (2) 0.1300 + 6 p3/2 (4) 0.0800 + 5 f7/2 (8) 0.0700 + 5 f5/2 (6) 0.0700 + 7 s1/2 (1) 0.0100 + 6 d3/2 (4) 0.0100 + 6 d5/2 (5) 0.0100 + + +// ---------------------------------------------- + + Rg Z = 111 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 186.1360 + 2 s1/2 (2) 37.8810 + 2 p1/2 (2) 36.7990 + 2 p3/2 (4) 26.6480 + 3 s1/2 (2) 10.1870 + 3 p1/2 (2) 9.6870 + 3 p3/2 (4) 7.2240 + 3 d3/2 (4) 6.4470 + 3 d5/2 (6) 6.0250 + 4 s1/2 (2) 2.9260 + 4 p1/2 (2) 2.6730 + 4 p3/2 (4) 1.9780 + 4 d3/2 (4) 1.5970 + 4 d5/2 (6) 1.4830 + 4 f5/2 (6) 0.9604 + 4 f7/2 (8) 0.9267 + 5 s1/2 (2) 0.7283 + 5 p1/2 (2) 0.6450 + 5 p3/2 (4) 0.2810 + 5 d3/2 (4) 0.2510 + 5 d5/2 (6) 0.2445 + 6 s1/2 (2) 0.1267 + 6 p1/2 (2) 0.0901 + 5 f5/2 (6) 0.0671 + 5 f7/2 (8) 0.0614 + 6 p3/2 (4) 0.0498 + 7 s1/2 (1) 0.0094 + 6 d3/2 (4) 0.0094 + 6 d5/2 (6) 0.0066 + + +// ---------------------------------------------- + + Cp Z = 112 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 190.7170 + 2 s1/2 (2) 38.9840 + 2 p1/2 (2) 37.8960 + 2 p3/2 (4) 27.2130 + 3 s1/2 (2) 10.5080 + 3 p1/2 (2) 10.0020 + 3 p3/2 (4) 7.4060 + 3 d3/2 (4) 6.6180 + 3 d5/2 (6) 6.1780 + 4 s1/2 (2) 3.0330 + 4 p1/2 (2) 2.7760 + 4 p3/2 (4) 2.0390 + 4 d3/2 (4) 1.6520 + 4 d5/2 (6) 1.5320 + 4 f5/2 (6) 1.0016 + 4 f7/2 (8) 0.9662 + 5 s1/2 (2) 0.7624 + 5 p1/2 (2) 0.6770 + 5 p3/2 (4) 0.2960 + 5 d3/2 (4) 0.2650 + 5 d5/2 (6) 0.2577 + 6 s1/2 (2) 0.1349 + 6 p1/2 (2) 0.0969 + 5 f5/2 (6) 0.0753 + 5 f7/2 (8) 0.0690 + 6 p3/2 (4) 0.0528 + 6 d3/2 (4) 0.0104 + 7 s1/2 (2) 0.0098 + 6 d5/2 (6) 0.0073 + + +// ---------------------------------------------- + + Uut Z = 113 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 195.4100 + 2 s1/2 (2) 40.1210 + 2 p1/2 (2) 39.0340 + 2 p3/2 (4) 27.7880 + 3 s1/2 (2) 10.8420 + 3 p1/2 (2) 10.3310 + 3 p3/2 (4) 7.5930 + 3 d3/2 (4) 6.7930 + 3 d5/2 (6) 6.3350 + 4 s1/2 (2) 3.1460 + 4 p1/2 (2) 2.8860 + 4 p3/2 (4) 2.1070 + 4 d3/2 (4) 1.7120 + 4 d5/2 (6) 1.5870 + 4 f5/2 (6) 1.0464 + 4 f7/2 (8) 1.0092 + 5 s1/2 (2) 0.8006 + 5 p1/2 (2) 0.7140 + 5 p3/2 (4) 0.3150 + 5 d3/2 (4) 0.2820 + 5 d5/2 (6) 0.2740 + 6 s1/2 (2) 0.1464 + 6 p1/2 (2) 0.1069 + 5 f5/2 (6) 0.0866 + 5 f7/2 (8) 0.0798 + 6 p3/2 (4) 0.0586 + 6 d3/2 (4) 0.0138 + 7 s1/2 (2) 0.0116 + 6 d5/2 (6) 0.0101 + 7 p1/2 (1) 0.0049 + + +// ---------------------------------------------- + + Fl Z = 114 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 200.2140 + 2 s1/2 (2) 41.2940 + 2 p1/2 (2) 40.2070 + 2 p3/2 (4) 28.3700 + 3 s1/2 (2) 11.1840 + 3 p1/2 (2) 10.6720 + 3 p3/2 (4) 7.7830 + 3 d3/2 (4) 6.9720 + 3 d5/2 (6) 6.4950 + 4 s1/2 (2) 3.2640 + 4 p1/2 (2) 2.9990 + 4 p3/2 (4) 2.1740 + 4 d3/2 (4) 1.7740 + 4 d5/2 (6) 1.6420 + 4 f5/2 (6) 1.0923 + 4 f7/2 (8) 1.0533 + 5 s1/2 (2) 0.8409 + 5 p1/2 (2) 0.7530 + 5 p3/2 (4) 0.3350 + 5 d3/2 (4) 0.3000 + 5 d5/2 (6) 0.2910 + 6 s1/2 (2) 0.1583 + 6 p1/2 (2) 0.1174 + 5 f5/2 (6) 0.0984 + 5 f7/2 (8) 0.0911 + 6 p3/2 (4) 0.0646 + 6 d3/2 (4) 0.0173 + 7 s1/2 (2) 0.0135 + 6 d5/2 (6) 0.0130 + 7 p1/2 (2) 0.0057 + + +// ---------------------------------------------- + + Uup Z = 115 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 205.1360 + 2 s1/2 (2) 42.5010 + 2 p1/2 (2) 41.4200 + 2 p3/2 (4) 28.9590 + 3 s1/2 (2) 11.5410 + 3 p1/2 (2) 11.0220 + 3 p3/2 (4) 7.9790 + 3 d3/2 (4) 7.1550 + 3 d5/2 (6) 6.6580 + 4 s1/2 (2) 3.3860 + 4 p1/2 (2) 3.1180 + 4 p3/2 (4) 2.2450 + 4 d3/2 (4) 1.8380 + 4 d5/2 (6) 1.7010 + 4 f5/2 (6) 1.1410 + 4 f7/2 (8) 1.1000 + 5 s1/2 (2) 0.8831 + 5 p1/2 (2) 0.7940 + 5 p3/2 (4) 0.3570 + 5 d3/2 (4) 0.3200 + 5 d5/2 (6) 0.3100 + 6 s1/2 (2) 0.1726 + 6 p1/2 (2) 0.1301 + 5 f5/2 (6) 0.1124 + 5 f7/2 (8) 0.1045 + 6 p3/2 (4) 0.0724 + 6 d3/2 (4) 0.0227 + 6 d5/2 (6) 0.0177 + 7 s1/2 (2) 0.0169 + 7 p1/2 (2) 0.0078 + 7 p3/2 (1) 0.0038 + + +// ---------------------------------------------- + + Lv Z = 116 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 210.1770 + 2 s1/2 (2) 43.7500 + 2 p1/2 (2) 42.6740 + 2 p3/2 (4) 29.5560 + 3 s1/2 (2) 11.9070 + 3 p1/2 (2) 11.3870 + 3 p3/2 (4) 8.1760 + 3 d3/2 (4) 7.3410 + 3 d5/2 (6) 6.8240 + 4 s1/2 (2) 3.5130 + 4 p1/2 (2) 3.2410 + 4 p3/2 (4) 2.3160 + 4 d3/2 (4) 1.9030 + 4 d5/2 (6) 1.7590 + 4 f5/2 (6) 1.1907 + 4 f7/2 (8) 1.1477 + 5 s1/2 (2) 0.9275 + 5 p1/2 (2) 0.8380 + 5 p3/2 (4) 0.3790 + 5 d3/2 (4) 0.3400 + 5 d5/2 (6) 0.3296 + 6 s1/2 (2) 0.1874 + 6 p1/2 (2) 0.1434 + 5 f5/2 (6) 0.1269 + 5 f7/2 (8) 0.1184 + 6 p3/2 (4) 0.0805 + 6 d3/2 (4) 0.0282 + 6 d5/2 (6) 0.0226 + 7 s1/2 (2) 0.0203 + 7 p1/2 (2) 0.0101 + 7 p3/2 (2) 0.0044 + + +// ---------------------------------------------- + + Uus Z = 117 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 215.3370 + 2 s1/2 (2) 44.0310 + 2 p1/2 (2) 43.9750 + 2 p3/2 (4) 30.1580 + 3 s1/2 (2) 12.2830 + 3 p1/2 (2) 11.7620 + 3 p3/2 (4) 8.3760 + 3 d3/2 (4) 7.5300 + 3 d5/2 (6) 6.9910 + 4 s1/2 (2) 3.6430 + 4 p1/2 (2) 3.4690 + 4 p3/2 (4) 2.3900 + 4 d3/2 (4) 1.9700 + 4 d5/2 (6) 1.8190 + 4 f5/2 (6) 1.2413 + 4 f7/2 (8) 1.1962 + 5 s1/2 (2) 0.9733 + 5 p1/2 (2) 0.8820 + 5 p3/2 (4) 0.4020 + 5 d3/2 (4) 0.3610 + 5 d5/2 (6) 0.3496 + 6 s1/2 (2) 0.2026 + 6 p1/2 (2) 0.1571 + 5 f5/2 (6) 0.1417 + 5 f7/2 (8) 0.1327 + 6 p3/2 (4) 0.0886 + 6 d3/2 (4) 0.0337 + 6 d5/2 (6) 0.0275 + 7 s1/2 (2) 0.0237 + 7 p1/2 (2) 0.0124 + 7 p3/2 (3) 0.0052 + + +// ---------------------------------------------- + + Uuo Z = 118 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 220.6300 + 2 s1/2 (2) 46.3540 + 2 p1/2 (2) 45.3540 + 2 p3/2 (4) 30.7670 + 3 s1/2 (2) 12.6700 + 3 p1/2 (2) 12.1510 + 3 p3/2 (4) 8.5790 + 3 d3/2 (4) 7.7200 + 3 d5/2 (6) 7.1610 + 4 s1/2 (2) 3.7780 + 4 p1/2 (2) 3.5000 + 4 p3/2 (4) 2.4640 + 4 d3/2 (4) 2.0370 + 4 d5/2 (6) 1.8800 + 4 f5/2 (6) 1.2928 + 4 f7/2 (8) 1.2455 + 5 s1/2 (2) 1.0205 + 5 p1/2 (2) 0.9280 + 5 p3/2 (4) 0.4250 + 5 d3/2 (4) 0.3820 + 5 d5/2 (6) 0.3699 + 6 s1/2 (2) 0.2183 + 6 p1/2 (2) 0.1714 + 5 f5/2 (6) 0.1570 + 5 f7/2 (8) 0.1472 + 6 p3/2 (4) 0.0968 + 6 d3/2 (4) 0.0394 + 6 d5/2 (6) 0.0324 + 7 s1/2 (2) 0.0272 + 7 p1/2 (2) 0.0149 + 7 p3/2 (4) 0.0060 + + +// ---------------------------------------------- + + Uue Z = 119 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 226.0630 + 2 s1/2 (2) 47.7240 + 2 p1/2 (2) 46.7140 + 2 p3/2 (4) 31.3860 + 3 s1/2 (2) 13.0740 + 3 p1/2 (2) 12.5560 + 3 p3/2 (4) 8.7890 + 3 d3/2 (4) 7.9180 + 3 d5/2 (6) 7.3360 + 4 s1/2 (2) 3.9200 + 4 p1/2 (2) 3.6390 + 4 p3/2 (4) 2.5430 + 4 d3/2 (4) 2.1090 + 4 d5/2 (6) 1.9440 + 4 f5/2 (6) 1.3476 + 4 f7/2 (8) 1.2982 + 5 s1/2 (2) 1.0720 + 5 p1/2 (2) 0.9800 + 5 p3/2 (4) 0.4520 + 5 d3/2 (4) 0.4060 + 5 d5/2 (6) 0.3931 + 6 s1/2 (2) 0.2371 + 6 p1/2 (2) 0.1887 + 5 f5/2 (6) 0.1751 + 5 f7/2 (8) 0.1646 + 6 p3/2 (4) 0.1075 + 6 d3/2 (4) 0.0476 + 6 d5/2 (6) 0.0399 + 7 s1/2 (2) 0.0331 + 7 p1/2 (2) 0.0197 + 7 p3/2 (4) 0.0084 + 8 s1/2 (1) 0.0036 + + +// ---------------------------------------------- + + Ubn Z = 120 + ______________________ + N L (#) E(keV) + ______________________ + 1 s1/2 (2) 231.6340 + 2 s1/2 (2) 49.1390 + 2 p1/2 (2) 48.1580 + 2 p3/2 (4) 32.0130 + 3 s1/2 (2) 13.4890 + 3 p1/2 (2) 12.9750 + 3 p3/2 (4) 9.0000 + 3 d3/2 (4) 8.1170 + 3 d5/2 (6) 7.5130 + 4 s1/2 (2) 4.0660 + 4 p1/2 (2) 3.7840 + 4 p3/2 (4) 2.6220 + 4 d3/2 (4) 2.1820 + 4 d5/2 (6) 2.0100 + 4 f5/2 (6) 1.4040 + 4 f7/2 (8) 1.3523 + 5 s1/2 (2) 1.1256 + 5 p1/2 (2) 1.0330 + 5 p3/2 (4) 0.4790 + 5 d3/2 (4) 0.4310 + 5 d5/2 (6) 0.4173 + 6 s1/2 (2) 0.2570 + 6 p1/2 (2) 0.2071 + 5 f5/2 (6) 0.1941 + 5 f7/2 (8) 0.1830 + 6 p3/2 (4) 0.1190 + 6 d3/2 (4) 0.0565 + 6 d5/2 (6) 0.0479 + 7 s1/2 (2) 0.0396 + 7 p1/2 (2) 0.0251 + 7 p3/2 (4) 0.0113 + 8 s1/2 (2) 0.0042 +******************************************************************************/ + +#endif // end of G4AtomicShells_EADL.hh \ No newline at end of file diff --git a/source/materials/include/G4DensityEffectData.hh b/source/materials/include/G4DensityEffectData.hh index 226ce95e7c..3d5294d07b 100644 --- a/source/materials/include/G4DensityEffectData.hh +++ b/source/materials/include/G4DensityEffectData.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DensityEffectData.hh 66811 2013-01-12 16:04:23Z gcosmo $ +// $Id: G4DensityEffectData.hh 97248 2016-05-30 15:00:11Z gcosmo $ //--------------------------------------------------------------------------- // @@ -55,39 +55,40 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... const G4int NDENSDATA = 278; -const G4int NDENSARRAY = 9; +const G4int NDENSARRAY = 10; const G4int NDENSELEM = 98; class G4DensityEffectData { public: - G4DensityEffectData(); + explicit G4DensityEffectData(); ~G4DensityEffectData(); // return index by Z, -1 if material is not in the table - G4int GetElementIndex(G4int Z, G4State mState); + G4int GetElementIndex(G4int Z, G4State mState) const; // return index by material name, -1 if material is not in the table - G4int GetIndex(const G4String& matName); + G4int GetIndex(const G4String& matName) const; // printout data for material - void PrintData(const G4String& matName); + void PrintData(const G4String& matName) const; // printout all data - void DumpData(); + void DumpData() const; // Access to the data via index - inline G4double GetPlasmaEnergy(G4int idx); - inline G4double GetAdjustmentFactor(G4int idx); - inline G4double GetCdensity(G4int idx); - inline G4double GetX0density(G4int idx); - inline G4double GetX1density(G4int idx); - inline G4double GetAdensity(G4int idx); - inline G4double GetMdensity(G4int idx); - inline G4double GetDelta0density(G4int idx); - inline G4double GetErrorDensity(G4int idx); + inline G4double GetPlasmaEnergy(G4int idx) const; + inline G4double GetAdjustmentFactor(G4int idx) const; + inline G4double GetCdensity(G4int idx) const; + inline G4double GetX0density(G4int idx) const; + inline G4double GetX1density(G4int idx) const; + inline G4double GetAdensity(G4int idx) const; + inline G4double GetMdensity(G4int idx) const; + inline G4double GetDelta0density(G4int idx) const; + inline G4double GetErrorDensity(G4int idx) const; + inline G4double GetMeanIonisationPotential(G4int idx) const; private: @@ -96,8 +97,8 @@ private: void AddMaterial(G4double* val, const G4String& matName); // Assignment operator and copy constructor - G4DensityEffectData & operator=(const G4DensityEffectData &right); - G4DensityEffectData(const G4DensityEffectData&); + G4DensityEffectData & operator=(const G4DensityEffectData &right) = delete; + G4DensityEffectData(const G4DensityEffectData&) = delete; G4double data[NDENSDATA][NDENSARRAY]; std::vector names; @@ -110,67 +111,54 @@ private: }; -inline G4double G4DensityEffectData::GetPlasmaEnergy(G4int idx) +inline G4double G4DensityEffectData::GetPlasmaEnergy(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][0]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][0] : DBL_MAX; } -inline G4double G4DensityEffectData::GetAdjustmentFactor(G4int idx) +inline G4double G4DensityEffectData::GetAdjustmentFactor(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][1]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][1] : DBL_MAX; } -inline G4double G4DensityEffectData::GetCdensity(G4int idx) +inline G4double G4DensityEffectData::GetCdensity(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][2]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][2] : DBL_MAX; } -inline G4double G4DensityEffectData::GetX0density(G4int idx) +inline G4double G4DensityEffectData::GetX0density(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][3]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][3] : DBL_MAX; } -inline G4double G4DensityEffectData::GetX1density(G4int idx) +inline G4double G4DensityEffectData::GetX1density(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][4]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][4] : DBL_MAX; } -inline G4double G4DensityEffectData::GetAdensity(G4int idx) +inline G4double G4DensityEffectData::GetAdensity(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][5]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][5] : DBL_MAX; } -inline G4double G4DensityEffectData::GetMdensity(G4int idx) +inline G4double G4DensityEffectData::GetMdensity(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][6]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][6] : DBL_MAX; } -inline G4double G4DensityEffectData::GetDelta0density(G4int idx) +inline G4double G4DensityEffectData::GetDelta0density(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][7]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][7] : DBL_MAX; } -inline G4double G4DensityEffectData::GetErrorDensity(G4int idx) +inline G4double G4DensityEffectData::GetErrorDensity(G4int idx) const { - G4double x = DBL_MAX; - if(idx >= 0 && idx < NDENSDATA) { x = data[idx][8]; } - return x; + return (idx >= 0 && idx < NDENSDATA) ? data[idx][8] : DBL_MAX; +} + +inline G4double G4DensityEffectData::GetMeanIonisationPotential(G4int idx) const +{ + return (idx >= 0 && idx < NDENSDATA) ? data[idx][9] : DBL_MAX; } diff --git a/source/materials/include/G4Element.hh b/source/materials/include/G4Element.hh index adaf000f71..30075bf347 100644 --- a/source/materials/include/G4Element.hh +++ b/source/materials/include/G4Element.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Element.hh 87870 2015-01-16 08:27:07Z gcosmo $ +// $Id: G4Element.hh 96794 2016-05-09 10:09:30Z gcosmo $ // //--------------------------------------------------------------------------- @@ -129,10 +129,11 @@ public: // with description // Atomic number inline G4double GetZ() const {return fZeff;} + inline G4int GetZasInt() const {return fZ;} // Atomic weight in atomic units inline G4double GetN() const {return fNeff;} - inline G4double GetAtomicMassAmu() const {return fNeff;} + inline G4double GetAtomicMassAmu() const {return fNeff;} // Mass of a mole in Geant4 units for atoms with atomic shell inline G4double GetA() const {return fAeff;} @@ -205,9 +206,6 @@ public: // with description public: // without description - G4int operator==(const G4Element&) const; - G4int operator!=(const G4Element&) const; - G4Element(__void__&); // Fake default constructor for usage restricted to direct object // persistency for clients requiring preallocation of memory for @@ -217,16 +215,16 @@ public: // without description private: - G4Element(G4Element&); - const G4Element & operator=(const G4Element&); - void InitializePointers(); void ComputeDerivedQuantities(); void ComputeCoulombFactor(); void ComputeLradTsaiFactor(); void AddNaturalIsotopes(); -private: + G4Element(G4Element&) = delete; + const G4Element & operator=(const G4Element&) = delete; + G4int operator==(const G4Element&) const = delete; + G4int operator!=(const G4Element&) const = delete; // // Basic data members (which define an Element) @@ -236,6 +234,7 @@ private: G4double fZeff; // Effective atomic number G4double fNeff; // Effective number of nucleons G4double fAeff; // Effective mass of a mole + G4int fZ; G4int fNbOfAtomicShells; // number of atomic shells G4double* fAtomicShells ; // Pointer to atomic shell binding energies diff --git a/source/materials/include/G4ElementData.hh b/source/materials/include/G4ElementData.hh index fa10133efa..ea49bdf867 100644 --- a/source/materials/include/G4ElementData.hh +++ b/source/materials/include/G4ElementData.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ElementData.hh 72057 2013-07-04 13:07:29Z gcosmo $ +// $Id: G4ElementData.hh 96794 2016-05-09 10:09:30Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -57,7 +57,7 @@ class G4ElementData { public: - G4ElementData(); + explicit G4ElementData(); ~G4ElementData(); @@ -106,8 +106,8 @@ public: private: // Assignment operator and copy constructor - G4ElementData & operator=(const G4ElementData &right); - G4ElementData(const G4ElementData&); + G4ElementData & operator=(const G4ElementData &right) = delete; + G4ElementData(const G4ElementData&) = delete; G4PhysicsVector* elmData[maxNumElements]; G4Physics2DVector* elm2Data[maxNumElements]; diff --git a/source/materials/include/G4ExtDEDXTable.hh b/source/materials/include/G4ExtDEDXTable.hh index aeaf8b33e0..db532608d9 100644 --- a/source/materials/include/G4ExtDEDXTable.hh +++ b/source/materials/include/G4ExtDEDXTable.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ExtDEDXTable.hh 66811 2013-01-12 16:04:23Z gcosmo $ +// $Id: G4ExtDEDXTable.hh 96794 2016-05-09 10:09:30Z gcosmo $ // // =========================================================================== // GEANT4 class header file @@ -64,40 +64,40 @@ class G4ExtDEDXTable : public G4VIonDEDXTable { public: - G4ExtDEDXTable(); + explicit G4ExtDEDXTable(); virtual ~G4ExtDEDXTable(); - G4bool BuildPhysicsVector(G4int ionZ, - const G4String& matName); + virtual G4bool BuildPhysicsVector(G4int ionZ, + const G4String& matName); - G4bool BuildPhysicsVector(G4int ionZ, - G4int matZ); + virtual G4bool BuildPhysicsVector(G4int ionZ, + G4int matZ); // Function for checking the availability of stopping power tables // for a given ion-material couple, where the material consists of // a single element only. - G4bool IsApplicable( + virtual G4bool IsApplicable( G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material ); // Function for checking the availability of stopping power tables // for given ion-material couples. - G4bool IsApplicable( + virtual G4bool IsApplicable( G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name or chemical formula of material ); // Function returning the stopping power vector for given ion-material // couples, where the material consists of a single element only. - G4PhysicsVector* GetPhysicsVector( + virtual G4PhysicsVector* GetPhysicsVector( G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material ); // Function returning the stopping power vector for given ion-material // couples. - G4PhysicsVector* GetPhysicsVector( + virtual G4PhysicsVector* GetPhysicsVector( G4int atomicNumberIon, // Atomic number of ion const G4String& matIdenfier // Name or chemical formula of material ); @@ -151,6 +151,10 @@ class G4ExtDEDXTable : public G4VIonDEDXTable { void DumpMap(); private: + + G4ExtDEDXTable(G4ExtDEDXTable&) = delete; + const G4ExtDEDXTable & operator=(const G4ExtDEDXTable&) = delete; + G4PhysicsVector* CreatePhysicsVector(G4int vectorType); G4int FindAtomicNumberElement(G4PhysicsVector* physicsVector); diff --git a/source/materials/include/G4IonStoppingData.hh b/source/materials/include/G4IonStoppingData.hh index 333ff5e1b9..87e372b929 100644 --- a/source/materials/include/G4IonStoppingData.hh +++ b/source/materials/include/G4IonStoppingData.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonStoppingData.hh 66811 2013-01-12 16:04:23Z gcosmo $ +// $Id: G4IonStoppingData.hh 96794 2016-05-09 10:09:30Z gcosmo $ // // =========================================================================== // GEANT4 class header file @@ -152,6 +152,10 @@ class G4IonStoppingData : public G4VIonDEDXTable { void DumpMap(); private: + + G4IonStoppingData(G4IonStoppingData&) = delete; + const G4IonStoppingData & operator=(const G4IonStoppingData&) = delete; + // Subdirectory of G4LEDATA G4String subDir; diff --git a/source/materials/include/G4IonisParamElm.hh b/source/materials/include/G4IonisParamElm.hh index faca83d599..6d8cfdade1 100644 --- a/source/materials/include/G4IonisParamElm.hh +++ b/source/materials/include/G4IonisParamElm.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IonisParamElm.hh 81374 2014-05-27 13:07:25Z gcosmo $ +// $Id: G4IonisParamElm.hh 96794 2016-05-09 10:09:30Z gcosmo $ // // class description @@ -53,7 +53,7 @@ class G4IonisParamElm public: // with description G4IonisParamElm(G4double Z); - virtual ~G4IonisParamElm(); + ~G4IonisParamElm(); // retrieval methods @@ -80,12 +80,7 @@ public: // with description G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;} // shell correction coefficients - - // operators - G4IonisParamElm& operator=(const G4IonisParamElm&); - G4int operator==(const G4IonisParamElm&) const; - G4int operator!=(const G4IonisParamElm&) const; - + G4IonisParamElm(__void__&); // Fake default constructor for usage restricted to direct object // persistency for clients requiring preallocation of memory for @@ -93,7 +88,11 @@ public: // with description private: - G4IonisParamElm(G4IonisParamElm&); + // operators + G4IonisParamElm& operator=(const G4IonisParamElm&) = delete; + G4int operator==(const G4IonisParamElm&) const = delete; + G4int operator!=(const G4IonisParamElm&) const = delete; + G4IonisParamElm(G4IonisParamElm&) = delete; // // data members // diff --git a/source/materials/include/G4IonisParamMat.hh b/source/materials/include/G4IonisParamMat.hh index f0635c11ac..7c769c03b2 100644 --- a/source/materials/include/G4IonisParamMat.hh +++ b/source/materials/include/G4IonisParamMat.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonisParamMat.hh 93568 2015-10-26 14:52:36Z gcosmo $ +// $Id: G4IonisParamMat.hh 97248 2016-05-30 15:00:11Z gcosmo $ // // class description @@ -59,19 +59,15 @@ class G4IonisParamMat // with description { public: - G4IonisParamMat(G4Material*); - virtual ~G4IonisParamMat(); + G4IonisParamMat(const G4Material*); + ~G4IonisParamMat(); - // - // retrieval methods - // - // parameters for mean energy loss calculation: inline G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;}; void SetMeanExcitationEnergy(G4double value); - G4double FindMeanExcitationEnergy(const G4String& chFormula); + G4double FindMeanExcitationEnergy(const G4Material*) const; inline G4double GetLogMeanExcEnergy() const {return fLogMeanExcEnergy;}; @@ -164,15 +160,15 @@ private: void ComputeIonParameters(); // operators - G4IonisParamMat& operator=(const G4IonisParamMat&); - G4int operator==(const G4IonisParamMat&) const; - G4int operator!=(const G4IonisParamMat&) const; - G4IonisParamMat(const G4IonisParamMat&); + G4IonisParamMat& operator=(const G4IonisParamMat&) = delete; + G4int operator==(const G4IonisParamMat&) const = delete; + G4int operator!=(const G4IonisParamMat&) const = delete; + G4IonisParamMat(const G4IonisParamMat&) = delete; // // data members // - G4Material* fMaterial; // this material + const G4Material* fMaterial; // this material // parameters for mean energy loss calculation G4double fMeanExcitationEnergy; // @@ -222,7 +218,6 @@ private: inline G4double G4IonisParamMat::DensityCorrection(G4double x) { // x = log10(beta*gamma) - G4double y = 0.0; if(x < fX0density) { if(fD0density > 0.0) { y = fD0density*G4Exp(twoln10*(x - fX0density)); } diff --git a/source/materials/include/G4Isotope.hh b/source/materials/include/G4Isotope.hh index b033554c72..1d71b385d4 100644 --- a/source/materials/include/G4Isotope.hh +++ b/source/materials/include/G4Isotope.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Isotope.hh 87870 2015-01-16 08:27:07Z gcosmo $ +// $Id: G4Isotope.hh 96794 2016-05-09 10:09:30Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -99,8 +99,6 @@ class G4Isotope // Isomer level G4int Getm() const {return fm;} - // G4int GetCountUse() const {return fCountUse;} - static G4Isotope* GetIsotope(const G4String& name, G4bool warning=false); @@ -132,8 +130,6 @@ class G4Isotope // persistifiable objects. void SetName(const G4String& name) {fName=name;} - // void increaseCountUse() {fCountUse++;} - // void decreaseCountUse() {fCountUse--;} private: @@ -148,8 +144,6 @@ class G4Isotope G4double fA; // atomic mass of a mole G4int fm; // isomer level - // G4int fCountUse; // nb of elements which use this isotope - static G4IsotopeTable theIsotopeTable; diff --git a/source/materials/include/G4Material.hh b/source/materials/include/G4Material.hh index addbd8459f..3738358982 100644 --- a/source/materials/include/G4Material.hh +++ b/source/materials/include/G4Material.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Material.hh 94016 2015-11-05 10:14:49Z gcosmo $ +// $Id: G4Material.hh 96794 2016-05-09 10:09:30Z gcosmo $ // //--------------------------------------------------------------------------- @@ -270,10 +270,6 @@ public: // with description friend std::ostream& operator<<(std::ostream&, const G4Material*); friend std::ostream& operator<<(std::ostream&, const G4Material&); friend std::ostream& operator<<(std::ostream&, G4MaterialTable); - - // operators - G4int operator==(const G4Material&) const; - G4int operator!=(const G4Material&) const; G4Material(__void__&); // Fake default constructor for usage restricted to direct object @@ -284,8 +280,11 @@ public: // with description private: - G4Material(const G4Material&); - const G4Material& operator=(const G4Material&); + // operators + G4int operator==(const G4Material&) const = delete; + G4int operator!=(const G4Material&) const = delete; + G4Material(const G4Material&) = delete; + const G4Material& operator=(const G4Material&) = delete; void InitializePointers(); diff --git a/source/materials/include/G4MaterialPropertiesTable.hh b/source/materials/include/G4MaterialPropertiesTable.hh index 72c717fc98..c499b3a2b1 100644 --- a/source/materials/include/G4MaterialPropertiesTable.hh +++ b/source/materials/include/G4MaterialPropertiesTable.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MaterialPropertiesTable.hh 66811 2013-01-12 16:04:23Z gcosmo $ +// $Id: G4MaterialPropertiesTable.hh 96794 2016-05-09 10:09:30Z gcosmo $ // //////////////////////////////////////////////////////////////////////// // @@ -72,7 +72,7 @@ class G4MaterialPropertiesTable public: // Without description G4MaterialPropertiesTable(); - ~G4MaterialPropertiesTable(); + virtual ~G4MaterialPropertiesTable(); public: // With description @@ -97,16 +97,16 @@ class G4MaterialPropertiesTable inline void RemoveProperty(const char *key); // Remove a property from the table. - inline G4double GetConstProperty(const char *key); + G4double GetConstProperty(const char *key); // Get the constant property from the table corresponding to the key-name - inline G4bool ConstPropertyExists(const char *key); + G4bool ConstPropertyExists(const char *key); // Return true if a const property 'key' exists. - inline G4MaterialPropertyVector* GetProperty(const char *key); + G4MaterialPropertyVector* GetProperty(const char *key); // Get the property from the table corresponding to the key-name. - inline void AddEntry(const char *key, G4double aPhotonEnergy, + void AddEntry(const char *key, G4double aPhotonEnergy, G4double aPropertyValue); // Add a new entry (pair of numbers) to the table for a given key. diff --git a/source/materials/include/G4MaterialPropertiesTable.icc b/source/materials/include/G4MaterialPropertiesTable.icc index 71285e7a5b..411c89d7da 100644 --- a/source/materials/include/G4MaterialPropertiesTable.icc +++ b/source/materials/include/G4MaterialPropertiesTable.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MaterialPropertiesTable.icc 66811 2013-01-12 16:04:23Z gcosmo $ +// $Id: G4MaterialPropertiesTable.icc 96794 2016-05-09 10:09:30Z gcosmo $ // //////////////////////////////////////////////////////////////////////// // @@ -88,58 +88,3 @@ void G4MaterialPropertiesTable::RemoveProperty(const char *key) MPT.erase(G4String(key)); } -inline -G4double G4MaterialPropertiesTable::GetConstProperty(const char *key) -{ - // Returns the constant material property corresponding to a key - - MPTCiterator j; - j = MPTC.find(G4String(key)); - if ( j != MPTC.end() ) return j->second; - G4Exception("G4MaterialPropertiesTable::GetConstProperty()","mat202", - FatalException, "Constant Material Property not found."); - return 0.; -} - -inline -G4bool G4MaterialPropertiesTable::ConstPropertyExists(const char *key) -{ - // Returns true if a const property 'key' exists - - MPTCiterator j; - j = MPTC.find(G4String(key)); - if ( j != MPTC.end() ) return true; - return false; -} - -inline G4MaterialPropertyVector* -G4MaterialPropertiesTable::GetProperty(const char *key) -{ - // Returns a Material Property Vector corresponding to a key - - MPTiterator i; - i = MPT.find(G4String(key)); - if ( i != MPT.end() ) return i->second; - if (G4String(key) == "GROUPVEL") return SetGROUPVEL(); - return NULL; -} - -inline -void G4MaterialPropertiesTable::AddEntry(const char *key, - G4double aPhotonEnergy, - G4double aPropertyValue) -{ - // Allows to add an entry pair directly to the Material Property Vector - // given a key - - G4MaterialPropertyVector *targetVector=MPT [G4String(key)]; - if (targetVector != 0) - { - targetVector->InsertValues(aPhotonEnergy, aPropertyValue); - } - else - { - G4Exception("G4MaterialPropertiesTable::AddEntry()", "mat203", - FatalException, "Material Property Vector not found."); - } -} diff --git a/source/materials/include/G4NistElementBuilder.hh b/source/materials/include/G4NistElementBuilder.hh index d4ebc8bc48..a3cb71db87 100644 --- a/source/materials/include/G4NistElementBuilder.hh +++ b/source/materials/include/G4NistElementBuilder.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NistElementBuilder.hh 94234 2015-11-09 10:58:13Z gcosmo $ +// $Id: G4NistElementBuilder.hh 96794 2016-05-09 10:09:30Z gcosmo $ #ifndef G4NistElementBuilder_h #define G4NistElementBuilder_h 1 @@ -58,27 +58,27 @@ #include #include "globals.hh" +#include "G4Element.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... const G4int maxNumElements = 108; const G4int maxAbundance = 3500; -class G4Element; - class G4NistElementBuilder { public: - G4NistElementBuilder(G4int vb); + explicit G4NistElementBuilder(G4int vb); ~G4NistElementBuilder(); // Find or build a G4Element by atomic number + inline G4Element* FindElement (G4int Z) const; G4Element* FindOrBuildElement (G4int Z, G4bool buildIsotopes = true); // Find or build a G4Element by symbol - G4Element* FindOrBuildElement (const G4String& symb, - G4bool buildIsotopes = true); + G4Element* FindOrBuildElement (const G4String& symb, + G4bool buildIsotopes = true); // print element information void PrintElement (G4int Z) const; @@ -150,7 +150,6 @@ private: G4int index; G4int verbose; - G4bool first; std::vector elmNames; }; @@ -160,9 +159,7 @@ private: inline G4double G4NistElementBuilder::GetAtomicMassAmu(G4int Z) const { - G4double a = 0.0; - if(Z>0 && Z0 && Z= 0 && i 0 && Z < maxNumElements) { + G4int i = N - nFirstIsotope[Z]; + if(i >= 0 && i = 0 && i 0 && Z < maxNumElements) { + G4int i = N - nFirstIsotope[Z]; + if(i >= 0 && i 0 && Z < maxNumElements) ? bindingEnergy[Z] : 0.0; } @@ -203,8 +204,10 @@ inline G4double G4NistElementBuilder::GetIsotopeAbundance(G4int Z, G4int N) const { G4double x = 0.0; - G4int i = N - nFirstIsotope[Z]; - if(i >= 0 && i 0 && Z < maxNumElements) { + G4int i = N - nFirstIsotope[Z]; + if(i >= 0 && i 0 && Z < maxNumElements) ? nFirstIsotope[Z] : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline G4int G4NistElementBuilder::GetNumberOfNistIsotopes(G4int Z) const { - return nIsotopes[Z]; + return (Z > 0 && Z < maxNumElements) ? nIsotopes[Z] : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -246,5 +249,14 @@ inline void G4NistElementBuilder::SetVerbose(G4int val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +inline G4Element* G4NistElementBuilder::FindElement(G4int Z) const +{ + const G4ElementTable* theElementTable = G4Element::GetElementTable(); + return (Z > 0 && Z < maxNumElements && elmIndex[Z] >= 0) ? + (*theElementTable)[elmIndex[Z]] : nullptr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/source/materials/include/G4NistManager.hh b/source/materials/include/G4NistManager.hh index d2b5d2f1b5..826c410fff 100644 --- a/source/materials/include/G4NistManager.hh +++ b/source/materials/include/G4NistManager.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NistManager.hh 94234 2015-11-09 10:58:13Z gcosmo $ +// $Id: G4NistManager.hh 97248 2016-05-30 15:00:11Z gcosmo $ // // ------------------------------------------------------------------- // @@ -89,10 +89,11 @@ public: // Get G4Element by index // - inline G4Element* GetElement(size_t index); + inline G4Element* GetElement(size_t index) const; // Find or build G4Element by atomic number // + inline G4Element* FindElement(G4int Z) const; inline G4Element* FindOrBuildElement(G4int Z, G4bool isotopes=true); // Find or build G4Element by symbol @@ -145,22 +146,22 @@ public: // Print element by Z // - inline void PrintElement(G4int Z); + inline void PrintElement(G4int Z) const; // Print element from internal DB by symbol, if "all" - print all elements // - void PrintElement(const G4String&); + void PrintElement(const G4String&) const; // Print G4Element by name, if "all" - print all G4Elements // - void PrintG4Element(const G4String&); + void PrintG4Element(const G4String&) const; // Access to the vector of Geant4 predefined element names // inline const std::vector& GetNistElementNames() const; - // Access mean ionisation energy for atoms (Z <= 98) - // + // Access mean ionisation energy for atoms (Z <= 98) by its index + // inline G4double GetMeanIonisationEnergy(G4int Z) const; // Access nominal density by atomic number for simple materials and @@ -170,16 +171,18 @@ public: // Get G4Material by index // - inline G4Material* GetMaterial(size_t index); + inline G4Material* GetMaterial(size_t index) const; // Find or build a G4Material by name, from the Geant4 dataBase // + inline G4Material* FindMaterial(const G4String& name) const; inline G4Material* FindOrBuildMaterial(const G4String& name, G4bool isotopes=true, G4bool warning=false); // Find or build a simple material via atomic number // + inline G4Material* FindSimpleMaterial(G4int Z) const; inline G4Material* FindOrBuildSimpleMaterial(G4int Z, G4bool warning=false); @@ -236,15 +239,15 @@ public: // Get number of G4Materials // - inline size_t GetNumberOfMaterials(); + inline size_t GetNumberOfMaterials() const; - inline G4int GetVerbose(); + inline G4int GetVerbose() const; void SetVerbose(G4int); // Print G4Material by name // - void PrintG4Material(const G4String&); + void PrintG4Material(const G4String&) const; // Print predefined Geant4 materials: // "simple" - only pure materials in basic state (Z = 1, ..., 98) @@ -253,7 +256,7 @@ public: // "bio" - bio-medical materials and compounds // "all" - all // - inline void ListMaterials(const G4String&); + inline void ListMaterials(const G4String&) const; // Access to the list of names of Geant4 predefined materials // @@ -261,16 +264,17 @@ public: // Fast computation of Z^1/3 // - inline G4double GetZ13(G4double Z); - inline G4double GetZ13(G4int Z); + inline G4double GetZ13(G4double Z) const; + inline G4double GetZ13(G4int Z) const; // Fast computation of A^0.27 for natuaral abundances // - inline G4double GetA27(G4int Z); + inline G4double GetA27(G4int Z) const; // Fast computation of log(A) // - inline G4double GetLOGZ(G4int Z); + inline G4double GetLOGZ(G4int Z) const; + inline G4double GetLOGAMU(G4int Z) const; private: @@ -298,19 +302,25 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline size_t G4NistManager::GetNumberOfMaterials() +inline size_t G4NistManager::GetNumberOfMaterials() const { return nMaterials; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4Element* G4NistManager::GetElement(size_t index) +inline G4Element* G4NistManager::GetElement(size_t index) const { - G4Element* elm = 0; const G4ElementTable* theElementTable = G4Element::GetElementTable(); - if(index < theElementTable->size()) { elm = (*theElementTable)[index]; } - return elm; + return (index < theElementTable->size()) ? (*theElementTable)[index] : nullptr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline +G4Element* G4NistManager::FindElement(G4int Z) const +{ + return elmBuilder->FindElement(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -418,42 +428,48 @@ const std::vector& G4NistManager::GetNistElementNames() const inline G4double G4NistManager::GetMeanIonisationEnergy(G4int Z) const { - return matBuilder->GetMeanIonisationEnergy(Z-1); + return matBuilder->GetMeanIonisationEnergy(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline G4double G4NistManager::GetNominalDensity(G4int Z) const { - return matBuilder->GetNominalDensity(Z-1); + return matBuilder->GetNominalDensity(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void G4NistManager::PrintElement(G4int Z) +inline void G4NistManager::PrintElement(G4int Z) const { elmBuilder->PrintElement(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4Material* G4NistManager::GetMaterial(size_t index) +inline G4Material* G4NistManager::GetMaterial(size_t index) const { const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - G4Material* mat = 0; - if(index < theMaterialTable->size()) { mat = (*theMaterialTable)[index]; } - return mat; + return (index < theMaterialTable->size()) ? (*theMaterialTable)[index] : nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4int G4NistManager::GetVerbose() +inline G4int G4NistManager::GetVerbose() const { return verbose; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +inline +G4Material* G4NistManager::FindMaterial(const G4String& name) const +{ + return matBuilder->FindMaterial(name); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + inline G4Material* G4NistManager::FindOrBuildMaterial(const G4String& name, G4bool isotopes, @@ -464,6 +480,14 @@ G4Material* G4NistManager::FindOrBuildMaterial(const G4String& name, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +inline +G4Material* G4NistManager::FindSimpleMaterial(G4int Z) const +{ + return matBuilder->FindSimpleMaterial(Z); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + inline G4Material* G4NistManager::FindOrBuildSimpleMaterial(G4int Z, G4bool warning) { @@ -530,7 +554,7 @@ inline G4Material* G4NistManager::ConstructNewIdealGasMaterial( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void G4NistManager::ListMaterials(const G4String& list) +inline void G4NistManager::ListMaterials(const G4String& list) const { matBuilder->ListMaterials(list); } @@ -545,35 +569,40 @@ const std::vector& G4NistManager::GetNistMaterialNames() const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4NistManager::GetZ13(G4double A) +inline G4double G4NistManager::GetZ13(G4double A) const { return g4pow->A13(A); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4NistManager::GetZ13(G4int Z) +inline G4double G4NistManager::GetZ13(G4int Z) const { return g4pow->Z13(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4NistManager::GetA27(G4int Z) +inline G4double G4NistManager::GetA27(G4int Z) const { - G4double res = 0.0; - if(Z < 101) { res = POWERA27[Z]; } - return res; + return (0 <= Z && Z < 101) ? POWERA27[Z] : 0.0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4NistManager::GetLOGZ(G4int Z) +inline G4double G4NistManager::GetLOGZ(G4int Z) const { return g4pow->logZ(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +inline G4double G4NistManager::GetLOGAMU(G4int Z) const +{ + return (0 <= Z && Z < 101) ? LOGAZ[Z] : 0.0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/source/materials/include/G4NistMaterialBuilder.hh b/source/materials/include/G4NistMaterialBuilder.hh index b2668eced6..8280c41d49 100644 --- a/source/materials/include/G4NistMaterialBuilder.hh +++ b/source/materials/include/G4NistMaterialBuilder.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NistMaterialBuilder.hh 91920 2015-08-11 09:50:13Z gcosmo $ +// $Id: G4NistMaterialBuilder.hh 97248 2016-05-30 15:00:11Z gcosmo $ #ifndef G4NistMaterialBuilder_h #define G4NistMaterialBuilder_h 1 @@ -61,6 +61,7 @@ #include "globals.hh" #include "G4Material.hh" +#include "G4Threading.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,6 +77,7 @@ public: // Find or build a G4Material by name, from dataBase // + inline G4Material* FindMaterial (const G4String& name) const; G4Material* FindOrBuildMaterial (const G4String& name, G4bool isotopes=true, G4bool warning =true); @@ -83,6 +85,7 @@ public: // Find or build a simple material via atomic number // + inline G4Material* FindSimpleMaterial(G4int Z) const; G4Material* FindOrBuildSimpleMaterial(G4int Z, G4bool warning); // construct a G4Material from scratch by atome count @@ -181,6 +184,7 @@ private: void AddElementByAtomCount (const G4String& name, G4int); // build a G4Material from dataBase + G4Material* BuildNistMaterial(const G4String& matname, G4bool warning); G4Material* BuildMaterial(G4int idx); void DumpElm(G4int) const; @@ -217,7 +221,9 @@ private: std::vector gasTemperature; std::vector gasPressure; - G4bool first; +#ifdef G4MULTITHREADED + static G4Mutex nistMaterialMutex; +#endif }; @@ -230,17 +236,34 @@ inline const std::vector& inline G4double G4NistMaterialBuilder::GetMeanIonisationEnergy(G4int index) const { - G4double res = 10*index; - if(index >= 0 && index < nMaterials) { res = ionPotentials[index]; } - return res; + return (index >= 0 && index < nMaterials) ? ionPotentials[index] : 10.0*index; } inline G4double G4NistMaterialBuilder::GetNominalDensity(G4int index) const { - G4double res = 0.0; - if(index >= 0 && index < nMaterials) { res = densities[index]; } - return res; + return (index >= 0 && index < nMaterials) ? densities[index] : 0.0; +} + +inline G4Material* +G4NistMaterialBuilder::FindMaterial(const G4String& name) const +{ + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + size_t nmat = theMaterialTable->size(); + G4Material* ptr = nullptr; + for(size_t i=0; iGetName()) { + ptr = (*theMaterialTable)[i]; + break; + } + } + return ptr; +} + +inline G4Material* +G4NistMaterialBuilder::FindSimpleMaterial(G4int Z) const +{ + return (Z>0 && Z - #include "G4OrderedTable.hh" #include "G4ios.hh" #include "globals.hh" +#include #include #include @@ -90,10 +89,8 @@ public: // with description G4double GetSandiaMatTable(G4int,G4int) const; const G4double* GetSandiaCofForMaterial(G4double energy) const; - G4double GetSandiaCofForMaterialPAI(G4int,G4int) const; G4double GetSandiaMatTablePAI(G4int,G4int) const; const G4double* GetSandiaCofForMaterialPAI(G4double energy) const; - G4OrderedTable* GetSandiaMatrixPAI(); inline void SetVerbose(G4int ver) { fVerbose = ver; }; @@ -110,26 +107,16 @@ private: void ComputeMatSandiaMatrixPAI(); // methods per atom - G4int GetNbOfIntervals(G4int Z); - G4double GetSandiaPerAtom(G4int Z, G4int, G4int); - G4double GetIonizationPot(G4int Z) const; + G4double GetSandiaPerAtom(G4int Z, G4int, G4int) const; - // static members of the class - static const G4int fNumberOfElements; - static const G4int fIntervalLimit; - static const G4int fNumberOfIntervals; - static const G4int fH2OlowerInt; +#ifdef G4VERBOSE + static G4int PrintErrorZ(G4int Z, const G4String&); + static void PrintErrorV(const G4String&); +#endif - static const G4double fSandiaTable[981][5]; - static const G4double fH2OlowerI1[23][5]; - static const G4int fNbOfIntervals[101]; - static const G4double fZtoAratio[101]; - static const G4double fIonizationPotentials[101]; - static const G4double funitc[5]; - static const G4double fnulcof[4]; - // computed once - static G4int fCumulInterval[101]; + static G4int fCumulInterval[101]; + static const G4double funitc[5]; // used at initialisation std::vector fSandiaCofPerAtom; @@ -148,18 +135,11 @@ private: public: // without description - G4SandiaTable(G4int); + G4SandiaTable(G4int matIndex); G4SandiaTable(); void Initialize(G4Material*); - // void Initialize(G4MaterialCutsCouple*); - void Initialize(G4int); - - - void SandiaSwap(G4double** da, G4int i, G4int j); - - void SandiaSort(G4double** da, G4int sz); G4int SandiaIntervals(G4int Z[], G4int el); @@ -170,21 +150,30 @@ public: // without description G4int GetMaxInterval() const; - G4double** GetPointerToCof(); - - G4bool GetLowerI1(){return fLowerI1;}; - void SetLowerI1(G4bool flag){fLowerI1=flag;}; + inline G4bool GetLowerI1() {return fLowerI1;}; + inline void SetLowerI1(G4bool flag) {fLowerI1=flag;}; private: void ComputeMatTable(); + void SandiaSwap(G4double** da, G4int i, G4int j); + + void SandiaSort(G4double** da, G4int sz); + + G4double** GetPointerToCof(); + // copy constructor and hide assignment operator - G4SandiaTable(G4SandiaTable &); - G4SandiaTable & operator=(const G4SandiaTable &right); + G4SandiaTable(G4SandiaTable &) = delete; + G4SandiaTable & operator=(const G4SandiaTable &right) = delete; + + static const G4double fSandiaTable[981][5]; + static const G4int fNumberOfElements; + static const G4int fIntervalLimit; + static const G4int fNumberOfIntervals; + static const G4int fH2OlowerInt; // data members for PAI model - G4double** fPhotoAbsorptionCof; // SandiaTable for mixture G4int fMaxInterval ; diff --git a/source/materials/include/G4StaticSandiaData.hh b/source/materials/include/G4StaticSandiaData.hh index 2e19119026..2cc563b7d6 100644 --- a/source/materials/include/G4StaticSandiaData.hh +++ b/source/materials/include/G4StaticSandiaData.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4StaticSandiaData.hh 75603 2013-11-04 13:15:47Z gcosmo $ +// $Id: G4StaticSandiaData.hh 96794 2016-05-09 10:09:30Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -81,9 +81,6 @@ // Tables, 18(1976)497-508. //------------------------------------------------------------------------------ // -// Ionization potentials of first 100 elements in eV -// -// const G4double G4SandiaTable::fIonizationPotentials[101] // // The most of ionization energies are taken from S. Ruben, Handbook of the // Elements, 3rd ed. (Open Court, La Salle, IL, 1985). 28 of the ionization @@ -1409,7 +1406,7 @@ const G4double G4SandiaTable::fSandiaTable[981][5] = // of energy interval in which Sandia coeeficients are parametrized for each // element. -const G4int G4SandiaTable::fNbOfIntervals [101] = +static const G4int fNbOfIntervals [101] = { 0, // nonexisting 'zero' element @@ -1457,7 +1454,7 @@ const G4int G4SandiaTable::fNbOfIntervals [101] = // The ration of atomic number to atomic mass for first 100 elements // (which assumes A in amu/atom or in g/mole) -const G4double G4SandiaTable::fZtoAratio[101] = +static const G4double fZtoAratio[101] = { 0, // nonexisting 'zero' element @@ -1513,7 +1510,7 @@ const G4double G4SandiaTable::fZtoAratio[101] = // element. -const G4double G4SandiaTable::fIonizationPotentials[101] = +static const G4double fIonizationPotentials[101] = { 0, // nonexisting 'zero' element @@ -1555,7 +1552,7 @@ const G4double G4SandiaTable::fIonizationPotentials[101] = }; // ............... end of fIonizationPotentials array -const G4double G4SandiaTable::fH2OlowerI1[23][5] = +static const G4double fH2OlowerI1[23][5] = { { 1.993334e-09, 1.864182e-09, 8.181011e-18, -4.963267e-26, 5.482299e-35 }, @@ -1589,11 +1586,8 @@ const G4double G4SandiaTable::fH2OlowerI1[23][5] = }; const G4int G4SandiaTable::fNumberOfElements = 100; - const G4int G4SandiaTable::fIntervalLimit = 100; - const G4int G4SandiaTable::fNumberOfIntervals = 980; - const G4int G4SandiaTable::fH2OlowerInt = 23; // diff --git a/source/materials/include/G4UCNMicroRoughnessHelper.hh b/source/materials/include/G4UCNMicroRoughnessHelper.hh index 2d955720c7..03b04208e3 100755 --- a/source/materials/include/G4UCNMicroRoughnessHelper.hh +++ b/source/materials/include/G4UCNMicroRoughnessHelper.hh @@ -72,7 +72,7 @@ class G4UCNMicroRoughnessHelper // 1) cos(theta)^2, // 2) (k_l/k)^2 - G4double S2(G4double, G4double); + G4double S2(G4double, G4double) const; // Transmitted intensity with k-vector within the medium @@ -80,7 +80,7 @@ class G4UCNMicroRoughnessHelper // 1) cos(theta')^2, // 2) (k_l/k')^2 - G4double SS2(G4double, G4double); + G4double SS2(G4double, G4double) const; // Fourier-tranform of the autocorrelation function with k-vector in vacuum @@ -94,7 +94,7 @@ class G4UCNMicroRoughnessHelper // 7) angular cut G4double Fmu(G4double, G4double, G4double, - G4double, G4double, G4double, G4double); + G4double, G4double, G4double, G4double) const; // Fourier-tranform of the autocorrelation function with k-vector within // the medium @@ -111,7 +111,7 @@ class G4UCNMicroRoughnessHelper // 9) theta_refract G4double FmuS(G4double, G4double, G4double, G4double, - G4double, G4double, G4double, G4double, G4double); + G4double, G4double, G4double, G4double, G4double) const; // Integral probability for non-specular reflection @@ -127,7 +127,7 @@ class G4UCNMicroRoughnessHelper // 9) angular cut G4double IntIplus(G4double, G4double, G4double, G4int, G4int, - G4double, G4double, G4double*, G4double); + G4double, G4double, G4double*, G4double) const; // Probability of non-specular reflection with the microroughness model @@ -142,7 +142,7 @@ class G4UCNMicroRoughnessHelper // 8) angular cut G4double ProbIplus (G4double, G4double, G4double, G4double, - G4double, G4double, G4double, G4double); + G4double, G4double, G4double, G4double) const; // Integral probability for non-specular transmission @@ -158,7 +158,7 @@ class G4UCNMicroRoughnessHelper // 9) angular cut G4double IntIminus(G4double, G4double, G4double, G4int, G4int, - G4double, G4double, G4double*, G4double); + G4double, G4double, G4double*, G4double) const; // Probability of non-specular transmission with the microroughness model @@ -173,7 +173,7 @@ class G4UCNMicroRoughnessHelper // 8) angular cut G4double ProbIminus (G4double, G4double, G4double, G4double, - G4double, G4double, G4double, G4double); + G4double, G4double, G4double, G4double) const; private: diff --git a/source/materials/include/G4VIonDEDXTable.hh b/source/materials/include/G4VIonDEDXTable.hh index 6d05e90296..8a3be51d84 100644 --- a/source/materials/include/G4VIonDEDXTable.hh +++ b/source/materials/include/G4VIonDEDXTable.hh @@ -57,7 +57,7 @@ class G4PhysicsVector; class G4VIonDEDXTable { public: - G4VIonDEDXTable(); + explicit G4VIonDEDXTable(); virtual ~G4VIonDEDXTable(); // Function for building a stopping power table for a material consisting of @@ -104,6 +104,12 @@ class G4VIonDEDXTable { G4int, // Atomic number of ion const G4String& // Name or chemical formula of material ) = 0; + +private: + + G4VIonDEDXTable(G4VIonDEDXTable&) = delete; + const G4VIonDEDXTable & operator=(const G4VIonDEDXTable&) = delete; + }; #endif // G4VIONDEDXTABLE_HH diff --git a/source/materials/sources.cmake b/source/materials/sources.cmake index 6b7501a4f5..67b5a0959a 100644 --- a/source/materials/sources.cmake +++ b/source/materials/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 82116 2014-06-11 09:08:07Z gcosmo $ +# $Id: sources.cmake 96375 2016-04-11 06:57:10Z gcosmo $ # #------------------------------------------------------------------------------ @@ -31,6 +31,9 @@ include(Geant4MacroDefineModule) GEANT4_DEFINE_MODULE(NAME G4materials HEADERS G4AtomicShells.hh + G4AtomicShells_EADL.hh + G4AtomicShells_EADL.hh + G4AtomicShells_EADL.hh G4DensityEffectData.hh G4ElementData.hh G4Element.hh @@ -62,6 +65,9 @@ GEANT4_DEFINE_MODULE(NAME G4materials G4VIonDEDXTable.hh SOURCES G4AtomicShells.cc + G4AtomicShells_EADL.cc + G4AtomicShells_EADL.cc + G4AtomicShells_EADL.cc G4DensityEffectData.cc G4Element.cc G4ElementData.cc diff --git a/source/materials/src/G4AtomicShells.cc b/source/materials/src/G4AtomicShells.cc index 612bd0e9d0..0875d6ffcd 100644 --- a/source/materials/src/G4AtomicShells.cc +++ b/source/materials/src/G4AtomicShells.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AtomicShells.cc 94016 2015-11-05 10:14:49Z gcosmo $ +// $Id: G4AtomicShells.cc 95987 2016-03-07 08:11:16Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -36,9 +36,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... - -#include - #include "G4AtomicShells.hh" #include "G4SystemOfUnits.hh" @@ -749,7 +746,9 @@ G4AtomicShells::fNumberOfElectrons[1540] = G4int G4AtomicShells::GetNumberOfShells(G4int Z) { - assert (Z>0 && Z<101); +#ifdef G4VERBOSE + if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetNumberOfShells"); } +#endif return fNumberOfShells[Z]; } @@ -758,8 +757,13 @@ G4AtomicShells::GetNumberOfShells(G4int Z) G4double G4AtomicShells::GetBindingEnergy(G4int Z, G4int ShellNb) { - assert (Z>0 && Z<101 && ShellNb100) { Z = PrintErrorZ(Z, "GetBindingEnergy"); } + if(ShellNb < 0 || ShellNb>=fNumberOfShells[Z]) { + ShellNb = PrintErrorShell(Z, ShellNb, "GetBindingEnergy"); + } +#endif + return fBindingEnergies[fIndexOfShells[Z] + ShellNb]*CLHEP::eV; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -767,21 +771,53 @@ G4AtomicShells::GetBindingEnergy(G4int Z, G4int ShellNb) G4int G4AtomicShells::GetNumberOfElectrons(G4int Z, G4int ShellNb) { - assert (Z>0 && Z<101 && ShellNb100) { Z = PrintErrorZ(Z, "GetNumberOfElectrons"); } + if(ShellNb < 0 || ShellNb>=fNumberOfShells[Z]) { + ShellNb = PrintErrorShell(Z, ShellNb, "GetNumberOfElectrons"); + } +#endif return fNumberOfElectrons[fIndexOfShells[Z] + ShellNb]; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -G4double G4AtomicShells::GetTotalBindingEnergy (G4int Z) +G4double G4AtomicShells::GetTotalBindingEnergy(G4int Z) { - assert (Z>=1 && Z<101); - +#ifdef G4VERBOSE + if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetTotalBindingEnergy"); } +#endif G4int idx = fIndexOfShells[Z]; G4int idxmax = idx + fNumberOfShells[Z]; G4double energy = 0.0; for (G4int i=idx; i100) { Z = PrintErrorZ(Z, "GetNumberOfShells"); } +#endif + return fNumberOfShells[Z]; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +G4double +G4AtomicShells_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"); + } +#endif + return fBindingEnergies[fIndexOfShells[Z] + ShellNb]*CLHEP::keV; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +G4int +G4AtomicShells_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"); + } +#endif + return fNumberOfElectrons[fIndexOfShells[Z] + ShellNb]; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +G4double G4AtomicShells_EADL::GetTotalBindingEnergy(G4int Z) +{ +#ifdef G4VERBOSE + if(Z<0 || Z>120) { Z = PrintErrorZ(Z, "GetTotalBindingEnergy"); } +#endif + G4int idx = fIndexOfShells[Z]; + G4int idxmax = idx + fNumberOfShells[Z]; + G4double energy = 0.0; + for (G4int i=idx; i 0 && Z < NDENSELEM) { @@ -1308,7 +1309,7 @@ G4int G4DensityEffectData::GetElementIndex(G4int Z, G4State st) return idx; } -G4int G4DensityEffectData::GetIndex(const G4String& matName) +G4int G4DensityEffectData::GetIndex(const G4String& matName) const { G4int idx = -1; @@ -1318,21 +1319,21 @@ G4int G4DensityEffectData::GetIndex(const G4String& matName) break; } } - return idx; } void G4DensityEffectData::AddMaterial(G4double* val, const G4String& matName) { - data[index][0] = val[0]*eV; - for(G4int i=1; i= 0) { G4cout << "G4DensityEffectData for <" << matName << "> index= " << idx << G4endl; - G4cout << "Eplasma(eV)= " << data[idx][0]/eV + G4cout << "I(eV)= " << data[idx][9]/CLHEP::eV + << "Eplasma(eV)= " << data[idx][0]/CLHEP::eV << " rho= " << data[idx][1] << " -C= " << data[idx][2] << " x0= " << data[idx][3] @@ -1357,7 +1359,7 @@ void G4DensityEffectData::PrintData(const G4String& matName) } } -void G4DensityEffectData::DumpData() +void G4DensityEffectData::DumpData() const { G4cout << "======================================================================" << G4endl; diff --git a/source/materials/src/G4Element.cc b/source/materials/src/G4Element.cc index 5accdc731f..f59b6fd0f6 100644 --- a/source/materials/src/G4Element.cc +++ b/source/materials/src/G4Element.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Element.cc 93568 2015-10-26 14:52:36Z gcosmo $ +// $Id: G4Element.cc 96794 2016-05-09 10:09:30Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -64,6 +64,7 @@ #include "G4NistManager.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Log.hh" G4ElementTable G4Element::theElementTable; @@ -210,7 +211,6 @@ void G4Element::AddIsotope(G4Isotope* isotope, G4double abundance) fNbOfShellElectrons[j] = G4AtomicShells::GetNumberOfElectrons(iz, j); } ComputeDerivedQuantities(); - } } @@ -218,11 +218,11 @@ void G4Element::AddIsotope(G4Isotope* isotope, G4double abundance) void G4Element::InitializePointers() { - theIsotopeVector = 0; - fRelativeAbundanceVector = 0; - fAtomicShells = 0; - fNbOfShellElectrons = 0; - fIonisation = 0; + theIsotopeVector = nullptr; + fRelativeAbundanceVector = nullptr; + fAtomicShells = nullptr; + fNbOfShellElectrons = nullptr; + fIonisation = nullptr; fNumberOfIsotopes = 0; fNaturalAbundance = false; @@ -234,6 +234,7 @@ void G4Element::InitializePointers() fIndexInTable = 0; fCoulomb = 0.0; fRadTsai = 0.0; + fZ = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -251,8 +252,6 @@ G4Element::G4Element( __void__& ) G4Element::~G4Element() { - // G4cout << "### Destruction of element " << fName << " started" <GetName() == elementName) return theElementTable[J]; @@ -421,77 +424,7 @@ G4Element* G4Element::GetElement(G4String elementName, G4bool warning) << elementName << " does not exist in the table. Return NULL pointer." << G4endl; } - return 0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4Element::G4Element(G4Element& right) -{ - InitializePointers(); - *this = right; - - // Store this new element in table and set the index - theElementTable.push_back(this); - fIndexInTable = theElementTable.size() - 1; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -const G4Element& G4Element::operator=(const G4Element& right) -{ - if (this != &right) - { - fName = right.fName; - fSymbol = right.fSymbol; - fZeff = right.fZeff; - fNeff = right.fNeff; - fAeff = right.fAeff; - - if (fAtomicShells) delete [] fAtomicShells; - fNbOfAtomicShells = right.fNbOfAtomicShells; - fAtomicShells = new G4double[fNbOfAtomicShells]; - - if (fNbOfShellElectrons) delete [] fNbOfShellElectrons; - fNbOfAtomicShells = right.fNbOfAtomicShells; - fNbOfShellElectrons = new G4int[fNbOfAtomicShells]; - - for ( G4int i = 0; i < fNbOfAtomicShells; i++ ) - { - fAtomicShells[i] = right.fAtomicShells[i]; - fNbOfShellElectrons[i] = right.fNbOfShellElectrons[i]; - } - if (theIsotopeVector) delete theIsotopeVector; - if (fRelativeAbundanceVector) delete [] fRelativeAbundanceVector; - - fNumberOfIsotopes = right.fNumberOfIsotopes; - if (fNumberOfIsotopes > 0) - { - theIsotopeVector = new G4IsotopeVector((unsigned int)fNumberOfIsotopes,0); - fRelativeAbundanceVector = new G4double[fNumberOfIsotopes]; - for (G4int i=0;ifName << " (" << element->fSymbol << ")" << " Z = " << std::setw(4) << std::setprecision(1) << element->fZeff - << " N = " << std::setw(5) << std::setprecision(1) << G4lrint(element->fNeff) + << " N = " << std::setw(5) << std::setprecision(1) + << G4lrint(element->fNeff) << " A = " << std::setw(6) << std::setprecision(3) << (element->fAeff)/(g/mole) << " g/mole"; @@ -532,14 +466,14 @@ std::ostream& operator<<(std::ostream& flux, const G4Element* element) std::ostream& operator<<(std::ostream& flux, G4ElementTable ElementTable) { - //Dump info for all known elements - flux << "\n***** Table : Nb of elements = " << ElementTable.size() - << " *****\n" << G4endl; + //Dump info for all known elements + flux << "\n***** Table : Nb of elements = " << ElementTable.size() + << " *****\n" << G4endl; - for (size_t i=0; i second; - - return physVector; + return (iter != dedxMapElements.end()) ? iter->second : nullptr; } // ######################################################################### @@ -152,17 +144,13 @@ G4PhysicsVector* G4ExtDEDXTable::GetPhysicsVector( G4PhysicsVector* G4ExtDEDXTable::GetPhysicsVector( G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name or chemical formula of material - ) { - - G4PhysicsVector* physVector = 0; - + ) +{ G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier); G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); - if(iter != dedxMapMaterials.end()) physVector = iter -> second; - - return physVector; + return (iter != dedxMapMaterials.end()) ? iter->second : nullptr; } // ######################################################################### @@ -171,21 +159,14 @@ G4double G4ExtDEDXTable::GetDEDX( G4double kinEnergyPerNucleon, // Kinetic energy per nucleon G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material - ) { - G4double dedx = 0; - + ) +{ G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem); G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key); - if( iter != dedxMapElements.end() ) { - G4PhysicsVector* physicsVector = iter -> second; - - G4bool b; - dedx = physicsVector -> GetValue( kinEnergyPerNucleon, b ); - } - - return dedx; + return ( iter != dedxMapElements.end() ) ? + (iter->second)->Value( kinEnergyPerNucleon) : 0.0; } // ######################################################################### @@ -194,21 +175,14 @@ G4double G4ExtDEDXTable::GetDEDX( G4double kinEnergyPerNucleon, // Kinetic energy per nucleon G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name or chemical formula of material - ) { - G4double dedx = 0; - + ) +{ G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier); G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); - if(iter != dedxMapMaterials.end()) { - G4PhysicsVector* physicsVector = iter -> second; - - G4bool b; - dedx = physicsVector -> GetValue( kinEnergyPerNucleon, b ); - } - - return dedx; + return (iter != dedxMapMaterials.end()) ? + (iter->second)->Value( kinEnergyPerNucleon) : 0.0; } // ######################################################################### @@ -220,37 +194,23 @@ G4bool G4ExtDEDXTable::AddPhysicsVector( G4int atomicNumberElem // Atomic number of elemental material ) { - if(physicsVector == 0) { - -#ifdef G4VERBOSE - G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: Pointer to vector" - << " is null-pointer." - << G4endl; -#endif - - return false; + if(physicsVector == nullptr) { + G4Exception ("G4ExtDEDXTable::AddPhysicsVector() for material", + "mat037", FatalException, + "Pointer to vector is null-pointer."); + return false; } if(matIdentifier.empty()) { - -#ifdef G4VERBOSE - G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: " - << "Cannot add physics vector. Invalid name." - << G4endl; -#endif - + G4Exception ("G4ExtDEDXTable::AddPhysicsVector() for material", + "mat038", FatalException, "Invalid name of the material."); return false; } if(atomicNumberIon <= 2) { - -#ifdef G4VERBOSE - G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: " - << "Cannot add physics vector. Illegal atomic number." - << G4endl; -#endif - - return false; + G4Exception ("G4ExtDEDXTable::AddPhysicsVector() for material", + "mat039", FatalException, "Illegal atomic number."); + return false; } if(atomicNumberElem > 0) { @@ -258,13 +218,10 @@ G4bool G4ExtDEDXTable::AddPhysicsVector( G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem); if(dedxMapElements.count(key) == 1) { - -#ifdef G4VERBOSE - G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: " - << "Vector already exists. Remove first before replacing." - << G4endl; -#endif - return false; + G4Exception ("G4ExtDEDXTable::AddPhysicsVector() for material", + "mat037", FatalException, + "Vector already exist, remove it before replacing."); + return false; } dedxMapElements[key] = physicsVector; @@ -273,14 +230,10 @@ G4bool G4ExtDEDXTable::AddPhysicsVector( G4IonDEDXKeyMat mkey = std::make_pair(atomicNumberIon, matIdentifier); if(dedxMapMaterials.count(mkey) == 1) { - -#ifdef G4VERBOSE - G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: " - << "Vector already exists. Remove first before replacing." - << G4endl; -#endif - - return false; + G4Exception ("G4ExtDEDXTable::AddPhysicsVector() for material", + "mat037", FatalException, + "Vector already exist, remove it before replacing."); + return false; } dedxMapMaterials[mkey] = physicsVector; @@ -295,7 +248,7 @@ G4bool G4ExtDEDXTable::RemovePhysicsVector( const G4String& matIdentifier // Name or chemical formula of material ) { - G4PhysicsVector* physicsVector = 0; + G4PhysicsVector* physicsVector = nullptr; // Deleting key of physics vector from material map G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier); @@ -303,13 +256,9 @@ G4bool G4ExtDEDXTable::RemovePhysicsVector( G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); if(iter == dedxMapMaterials.end()) { - -#ifdef G4VERBOSE - G4cout << "G4IonDEDXTable::RemovePhysicsVector() Warning: " - << "Cannot remove physics vector. Vector not found." - << G4endl; -#endif - + G4Exception ("G4ExtDEDXTable::RemovePhysicsVector() for material", + "mat037", FatalException, + "Pointer to vector is null-pointer."); return false; } @@ -345,14 +294,11 @@ G4bool G4ExtDEDXTable::StorePhysicsTable( ofilestream.open( fileName, std::ios::out ); if( !ofilestream ) { - -#ifdef G4VERBOSE - G4cout << "G4ExtDEDXTable::StorePhysicsVector() " - << " Cannot open file "<< fileName - << G4endl; -#endif - - success = false; + G4ExceptionDescription ed; + ed << "Cannot open file " << fileName; + G4Exception ("G4IonStoppingData::StorePhysicsTable()", + "mat030", FatalException, ed); + success = false; } else { @@ -372,7 +318,7 @@ G4bool G4ExtDEDXTable::StorePhysicsTable( G4int atomicNumberElem = FindAtomicNumberElement(physicsVector); - if(physicsVector != 0) { + if(physicsVector != nullptr) { ofilestream << atomicNumberIon << " " << matIdentifier; if(atomicNumberElem > 0) ofilestream << " " << atomicNumberElem; @@ -386,15 +332,9 @@ G4bool G4ExtDEDXTable::StorePhysicsTable( physicsVector -> Store(ofilestream, true); ofilestream << G4endl; - } - else { - -#ifdef G4VERBOSE - G4cout << "G4ExtDEDXTable::StorePhysicsVector() " - << " Cannot store physics vector." - << G4endl; -#endif - + } else { + G4Exception ("G4IonStoppingData::StorePhysicsTable()", + "mat030", FatalException,"Cannot store vector."); } } } @@ -411,11 +351,10 @@ G4bool G4ExtDEDXTable::RetrievePhysicsTable(const G4String& fileName) std::ifstream ifilestream; ifilestream.open( fileName, std::ios::in|std::ios::binary ); if( ! ifilestream ) { -#ifdef G4VERBOSE - G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() " - << " Cannot open file "<< fileName - << G4endl; -#endif + G4ExceptionDescription ed; + ed << "Cannot open file " << fileName; + G4Exception ("G4IonStoppingData::RetrievePhysicsTable()", + "mat030", FatalException, ed); return false; } @@ -439,11 +378,9 @@ G4bool G4ExtDEDXTable::RetrievePhysicsTable(const G4String& fileName) getline( ifilestream, line ); if( ifilestream.fail() ) { -#ifdef G4VERBOSE G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() " << " File content of " << fileName << " ill-formated." << G4endl; -#endif ifilestream.close(); return false; } @@ -463,13 +400,10 @@ G4bool G4ExtDEDXTable::RetrievePhysicsTable(const G4String& fileName) headerstream >> materialName; if( headerstream.fail() || std::string::npos == atomicNumberIon) { - -#ifdef G4VERBOSE G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() " << " File content of " << fileName << " ill-formated " << " (vector header)." << G4endl; -#endif ifilestream.close(); return false; } @@ -486,24 +420,19 @@ G4bool G4ExtDEDXTable::RetrievePhysicsTable(const G4String& fileName) G4PhysicsVector* physicsVector = CreatePhysicsVector(vectorType); - if(physicsVector == 0) { -#ifdef G4VERBOSE + if(physicsVector == nullptr) { G4cout << "G4ExtDEDXTable::RetrievePhysicsTable " << " illegal physics Vector type " << vectorType << " in " << fileName << G4endl; -#endif ifilestream.close(); return false; } if( !physicsVector -> Retrieve(ifilestream, true) ) { - -#ifdef G4VERBOSE G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() " << " File content of " << fileName << " ill-formated." << G4endl; -#endif ifilestream.close(); return false; } diff --git a/source/materials/src/G4IonStoppingData.cc b/source/materials/src/G4IonStoppingData.cc index 36ef36d643..91368b5fb2 100644 --- a/source/materials/src/G4IonStoppingData.cc +++ b/source/materials/src/G4IonStoppingData.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonStoppingData.cc 83419 2014-08-21 15:31:56Z gcosmo $ +// $Id: G4IonStoppingData.cc 96794 2016-05-09 10:09:30Z gcosmo $ // // =========================================================================== // GEANT4 class source file @@ -78,15 +78,13 @@ G4IonStoppingData::~G4IonStoppingData() { G4bool G4IonStoppingData::IsApplicable( G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material - ) { - G4bool isApplicable = true; + ) +{ G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem); G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key); - if(iter == dedxMapElements.end()) isApplicable = false; - - return isApplicable; + return (iter == dedxMapElements.end()) ? false : true; } // ######################################################################### @@ -94,15 +92,13 @@ G4bool G4IonStoppingData::IsApplicable( G4bool G4IonStoppingData::IsApplicable( G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name or chemical formula of material - ) { - G4bool isApplicable = true; + ) +{ G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier); G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); - if(iter == dedxMapMaterials.end()) isApplicable = false; - - return isApplicable; + return (iter == dedxMapMaterials.end()) ? false : true; } // ######################################################################### @@ -110,17 +106,13 @@ G4bool G4IonStoppingData::IsApplicable( G4PhysicsVector* G4IonStoppingData::GetPhysicsVector( G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material - ) { - - G4PhysicsVector* physVector = 0; - + ) +{ G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem); G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key); - if(iter != dedxMapElements.end()) physVector = iter -> second; - - return physVector; + return (iter != dedxMapElements.end()) ? iter->second : nullptr; } // ######################################################################### @@ -128,17 +120,13 @@ G4PhysicsVector* G4IonStoppingData::GetPhysicsVector( G4PhysicsVector* G4IonStoppingData::GetPhysicsVector( G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name or chemical formula of material - ) { - - G4PhysicsVector* physVector = 0; - + ) +{ G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier); G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); - if(iter != dedxMapMaterials.end()) physVector = iter -> second; - - return physVector; + return (iter != dedxMapMaterials.end()) ? iter->second : nullptr; } // ######################################################################### @@ -147,21 +135,14 @@ G4double G4IonStoppingData::GetDEDX( G4double kinEnergyPerNucleon, // Kinetic energy per nucleon G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material - ) { - G4double dedx = 0; - + ) +{ G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem); G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key); - if( iter != dedxMapElements.end() ) { - G4PhysicsVector* physicsVector = iter -> second; - - G4bool b; - dedx = physicsVector -> GetValue( kinEnergyPerNucleon, b ); - } - - return dedx; + return ( iter != dedxMapElements.end()) ? + (iter->second)->Value( kinEnergyPerNucleon) : 0.0; } // ######################################################################### @@ -170,21 +151,14 @@ G4double G4IonStoppingData::GetDEDX( G4double kinEnergyPerNucleon, // Kinetic energy per nucleon G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name or chemical formula of material - ) { - G4double dedx = 0; - + ) +{ G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier); G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); - if(iter != dedxMapMaterials.end()) { - G4PhysicsVector* physicsVector = iter -> second; - - G4bool b; - dedx = physicsVector -> GetValue( kinEnergyPerNucleon, b ); - } - - return dedx; + return (iter != dedxMapMaterials.end()) ? + (iter->second)->Value(kinEnergyPerNucleon) : 0.0; } // ######################################################################### @@ -193,54 +167,37 @@ G4bool G4IonStoppingData::AddPhysicsVector( G4PhysicsVector* physicsVector, // Physics vector G4int atomicNumberIon, // Atomic number of ion const G4String& matIdentifier // Name of elemental material - ) { - - if(physicsVector == 0) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: Pointer to vector" - << " is null-pointer." - << G4endl; -#endif - - return false; + ) +{ + if(physicsVector == nullptr) { + G4Exception ("G4IonStoppingData::AddPhysicsVector() for material", + "mat037", FatalException, + "Pointer to vector is null-pointer."); + return false; } if(matIdentifier.empty()) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Cannot add physics vector. Invalid name." - << G4endl; -#endif - - return false; + G4Exception ("G4IonStoppingData::AddPhysicsVector() for material", + "mat038", FatalException, "Invalid name of the material."); + return false; } if(atomicNumberIon <= 0) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Cannot add physics vector. Illegal atomic number." - << G4endl; -#endif - - return false; + G4Exception ("G4IonStoppingData::AddPhysicsVector() for material", + "mat039", FatalException, "Illegal atomic number."); + return false; } G4IonDEDXKeyMat mkey = std::make_pair(atomicNumberIon, matIdentifier); if(dedxMapMaterials.count(mkey) == 1) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Vector with Z1 = " << atomicNumberIon << ", mat = " - << matIdentifier - << "already exists. Remove first before replacing." - << G4endl; -#endif - - return false; + G4ExceptionDescription ed; + ed << "Vector with Z1 = " << atomicNumberIon << ", mat = " + << matIdentifier + << "already exists. Remove first before replacing."; + G4Exception ("G4IonStoppingData::AddPhysicsVector() for material", + "mat040", FatalException, ed); + return false; } dedxMapMaterials[mkey] = physicsVector; @@ -254,52 +211,36 @@ G4bool G4IonStoppingData::AddPhysicsVector( G4PhysicsVector* physicsVector, // Physics vector G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material - ) { - - if(physicsVector == 0) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Pointer to vector is null-pointer." - << G4endl; -#endif - + ) +{ + if(physicsVector == nullptr) { + G4Exception ("G4IonStoppingData::AddPhysicsVector() for element", "mat037", + FatalException, "Pointer to vector is null-pointer."); return false; } if(atomicNumberIon <= 0) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Cannot add physics vector. Illegal atomic number." - << G4endl; -#endif - - return false; + G4Exception ("G4IonStoppingData::AddPhysicsVector() for element", "mat038", + FatalException, "Invalid ion number."); + return false; } if(atomicNumberElem <= 0) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Atomic number of element < 0." - << G4endl; -#endif - return false; + G4Exception ("G4IonStoppingData::AddPhysicsVector() for element", "mat039", + FatalException, "Illegal atomic number."); + return false; } G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem); if(dedxMapElements.count(key) == 1) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::AddPhysicsVector() Error: " - << "Vector with Z1 = " << atomicNumberIon << ", Z2 = " - << atomicNumberElem - << " already exists. Remove first before replacing." - << G4endl; -#endif - return false; + G4ExceptionDescription ed; + ed << "Vector with Z1 = " << atomicNumberIon << ", Z= " + << atomicNumberElem + << "already exists. Remove first before replacing."; + G4Exception ("G4IonStoppingData::AddPhysicsVector() for element", "mat040", + FatalException, ed); + return false; } dedxMapElements[key] = physicsVector; @@ -319,14 +260,9 @@ G4bool G4IonStoppingData::RemovePhysicsVector( G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key); if(iter == dedxMapMaterials.end()) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::RemovePhysicsVector() Warning: " - << "Cannot remove physics vector. Vector not found." - << G4endl; -#endif - - return false; + G4Exception ("G4IonStoppingData::RemovePhysicsVector() for material", + "mat038", FatalException, "Invalid name of the material."); + return false; } G4PhysicsVector* physicsVector = (*iter).second; @@ -351,14 +287,9 @@ G4bool G4IonStoppingData::RemovePhysicsVector( G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key); if(iter == dedxMapElements.end()) { - -#ifdef G4VERBOSE - G4cerr << "G4IonStoppingData::RemovePhysicsVector() Warning: " - << "Cannot remove physics vector. Vector not found." - << G4endl; -#endif - - return false; + G4Exception ("G4IonStoppingData::RemovePhysicsVector() for element", + "mat038", FatalException, "Invalid element."); + return false; } G4PhysicsVector* physicsVector = (*iter).second; @@ -428,8 +359,8 @@ G4bool G4IonStoppingData::BuildPhysicsVector( G4bool G4IonStoppingData::BuildPhysicsVector( G4int atomicNumberIon, // Atomic number of ion G4int atomicNumberElem // Atomic number of elemental material - ) { - + ) +{ if( IsApplicable(atomicNumberIon, atomicNumberElem) ) return true; char* path = getenv("G4LEDATA"); diff --git a/source/materials/src/G4IonisParamElm.cc b/source/materials/src/G4IonisParamElm.cc index f2bc57e8ff..259449bbc8 100644 --- a/source/materials/src/G4IonisParamElm.cc +++ b/source/materials/src/G4IonisParamElm.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IonisParamElm.cc 81374 2014-05-27 13:07:25Z gcosmo $ +// $Id: G4IonisParamElm.cc 96794 2016-05-09 10:09:30Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -51,7 +51,7 @@ G4IonisParamElm::G4IonisParamElm(G4double AtomNumber) { - G4int Z = G4int(AtomNumber + 0.5); + G4int Z = G4lrint(AtomNumber); if (Z < 1) { G4Exception("G4IonisParamElm::G4IonisParamElm()", "mat501", FatalException, "It is not allowed to create an Element with Z<1"); @@ -139,7 +139,7 @@ G4IonisParamElm::G4IonisParamElm(G4double AtomNumber) // for usage restricted to object persistency G4IonisParamElm::G4IonisParamElm(__void__&) - : fShellCorrectionVector(0) + : fShellCorrectionVector(nullptr) { fZ=fZ3=fZZ3=flogZ3=fTau0=fTaul=fBetheBlochLow=fAlow=fBlow=fClow =fMeanExcitationEnergy=fVFermi=fLFactor=0.0; @@ -153,53 +153,3 @@ G4IonisParamElm::~G4IonisParamElm() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -/* -G4IonisParamElm::G4IonisParamElm(G4IonisParamElm& right) -{ - fShellCorrectionVector = 0; - *this = right; -} -*/ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... - -G4IonisParamElm& G4IonisParamElm::operator=(const G4IonisParamElm& right) -{ - if (this != &right) - { - fZ = right.fZ; - fZ3 = right.fZ3; - fZZ3 = right.fZZ3; - flogZ3 = right.flogZ3; - fTau0 = right.fTau0; - fTaul = right.fTaul; - fBetheBlochLow = right.fBetheBlochLow; - fAlow = right.fAlow; - fBlow = right.fBlow; - fClow = right.fClow; - fMeanExcitationEnergy = right.fMeanExcitationEnergy; - fVFermi = right.fVFermi; - fLFactor = right.fLFactor; - if (fShellCorrectionVector) { delete [] fShellCorrectionVector; } - fShellCorrectionVector = new G4double[3]; - fShellCorrectionVector[0] = right.fShellCorrectionVector[0]; - fShellCorrectionVector[1] = right.fShellCorrectionVector[1]; - fShellCorrectionVector[2] = right.fShellCorrectionVector[2]; - } - return *this; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... - -G4int G4IonisParamElm::operator==(const G4IonisParamElm& right) const -{ - return (this == (G4IonisParamElm *) &right); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... - -G4int G4IonisParamElm::operator!=(const G4IonisParamElm& right) const -{ - return (this != (G4IonisParamElm *) &right); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4IonisParamMat.cc b/source/materials/src/G4IonisParamMat.cc index 714999b7db..7a68912e92 100644 --- a/source/materials/src/G4IonisParamMat.cc +++ b/source/materials/src/G4IonisParamMat.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonisParamMat.cc 93568 2015-10-26 14:52:36Z gcosmo $ +// $Id: G4IonisParamMat.cc 97248 2016-05-30 15:00:11Z gcosmo $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -49,11 +49,11 @@ #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" -G4DensityEffectData* G4IonisParamMat::fDensityData = 0; +G4DensityEffectData* G4IonisParamMat::fDensityData = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -G4IonisParamMat::G4IonisParamMat(G4Material* material) +G4IonisParamMat::G4IonisParamMat(const G4Material* material) : fMaterial(material) { fBirks = 0.; @@ -64,7 +64,7 @@ G4IonisParamMat::G4IonisParamMat(G4Material* material) fCdensity = 0.0; fD0density = 0.0; fAdjustmentFactor = 1.0; - if(!fDensityData) { fDensityData = new G4DensityEffectData(); } + if(fDensityData == nullptr) { fDensityData = new G4DensityEffectData(); } // compute parameters ComputeMeanParameters(); @@ -79,7 +79,7 @@ G4IonisParamMat::G4IonisParamMat(G4Material* material) // for usage restricted to object persistency G4IonisParamMat::G4IonisParamMat(__void__&) - : fMaterial(0), fShellCorrectionVector(0) + : fMaterial(nullptr), fShellCorrectionVector(nullptr) { fMeanExcitationEnergy = 0.0; fLogMeanExcEnergy = 0.0; @@ -108,7 +108,7 @@ G4IonisParamMat::G4IonisParamMat(__void__&) fMeanEnergyPerIon = 0.0; twoln10 = 2.*G4Pow::GetInstance()->logZ(10); - if(!fDensityData) { fDensityData = new G4DensityEffectData(); } + if(fDensityData == nullptr) { fDensityData = new G4DensityEffectData(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -117,8 +117,8 @@ G4IonisParamMat::~G4IonisParamMat() { if (fShellCorrectionVector) { delete [] fShellCorrectionVector; } if (fDensityData) { delete fDensityData; } - fDensityData = 0; - fShellCorrectionVector = 0; + fDensityData = nullptr; + fShellCorrectionVector = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -135,9 +135,7 @@ void G4IonisParamMat::ComputeMeanParameters() const G4ElementVector* elmVector = fMaterial->GetElementVector(); const G4double* nAtomsPerVolume = fMaterial->GetVecNbOfAtomsPerVolume(); - G4String ch = fMaterial->GetChemicalFormula(); - - if(ch != "") { fMeanExcitationEnergy = FindMeanExcitationEnergy(ch); } + fMeanExcitationEnergy = FindMeanExcitationEnergy(fMaterial); // Chemical formula defines mean excitation energy if(fMeanExcitationEnergy > 0.0) { @@ -185,7 +183,7 @@ void G4IonisParamMat::ComputeDensityEffect() // R.M. Sternheimer, Atomic Data and Nuclear Data Tables, 30: 261 (1984) G4int idx = fDensityData->GetIndex(fMaterial->GetName()); G4int nelm= fMaterial->GetNumberOfElements(); - G4int Z0 = G4lrint((*(fMaterial->GetElementVector()))[0]->GetZ()); + G4int Z0 = ((*(fMaterial->GetElementVector()))[0])->GetZasInt(); // for simple non-NIST materials G4double corr = 0.0; @@ -220,15 +218,20 @@ void G4IonisParamMat::ComputeDensityEffect() // of Charged Particles in Various Substances. // Atom. Data Nucl. Data Tabl. 30 (1984) 261-271. - fCdensity = fDensityData->GetCdensity(idx); - fMdensity = fDensityData->GetMdensity(idx); - fAdensity = fDensityData->GetAdensity(idx); + fCdensity = fDensityData->GetCdensity(idx); + fMdensity = fDensityData->GetMdensity(idx); + fAdensity = fDensityData->GetAdensity(idx); fX0density = fDensityData->GetX0density(idx); fX1density = fDensityData->GetX1density(idx); fD0density = fDensityData->GetDelta0density(idx); fPlasmaEnergy = fDensityData->GetPlasmaEnergy(idx); fAdjustmentFactor = fDensityData->GetAdjustmentFactor(idx); + // parameter C is computed and not taken from Sternheimer tables + //fCdensity = 1. + 2*G4Log(fMeanExcitationEnergy/fPlasmaEnergy); + //G4cout << "IonisParamMat: " << fMaterial->GetName() + // << " Cst= " << Cdensity << " C= " << fCdensity << G4endl; + // correction on nominal density fCdensity += corr; fX0density += corr/twoln10; @@ -440,74 +443,86 @@ void G4IonisParamMat::SetMeanExcitationEnergy(G4double value) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -G4double G4IonisParamMat::FindMeanExcitationEnergy(const G4String& chFormula) +G4double G4IonisParamMat::FindMeanExcitationEnergy(const G4Material* mat) const { + G4double res = 0.0; + // data from density effect data + if(fDensityData) { + G4int idx = fDensityData->GetIndex(mat->GetName()); + if(idx >= 0) { + res = fDensityData->GetMeanIonisationPotential(idx); + } + } + // The data on mean excitation energy for compaunds // from "Stopping Powers for Electrons and Positrons" // ICRU Report N#37, 1984 (energy in eV) + // this value overwrites Density effect data + G4String chFormula = mat->GetChemicalFormula(); + if(chFormula != "") { - size_t numberOfMolecula = 54; - static const G4String name[54] = { - // gas 0 - 12 - "NH_3", "C_4H_10", "CO_2", "C_2H_6", "C_7H_16-Gas", - // "G4_AMMONIA", "G4_BUTANE","G4_CARBON_DIOXIDE","G4_ETHANE", "G4_N-HEPTANE" - "C_6H_14-Gas", "CH_4", "NO", "N_2O", "C_8H_18-Gas", - // "G4_N-HEXANE" , "G4_METHANE", "x", "G4_NITROUS_OXIDE", "G4_OCTANE" - "C_5H_12-Gas", "C_3H_8", "H_2O-Gas", - // "G4_N-PENTANE", "G4_PROPANE", "G4_WATER_VAPOR" + static const size_t numberOfMolecula = 54; + static const G4String name[numberOfMolecula] = { + // gas 0 - 12 + "NH_3", "C_4H_10", "CO_2", "C_2H_6", "C_7H_16-Gas", + // "G4_AMMONIA", "G4_BUTANE","G4_CARBON_DIOXIDE","G4_ETHANE", "G4_N-HEPTANE" + "C_6H_14-Gas", "CH_4", "NO", "N_2O", "C_8H_18-Gas", + // "G4_N-HEXANE" , "G4_METHANE", "x", "G4_NITROUS_OXIDE", "G4_OCTANE" + "C_5H_12-Gas", "C_3H_8", "H_2O-Gas", + // "G4_N-PENTANE", "G4_PROPANE", "G4_WATER_VAPOR" - // liquid 13 - 39 - "C_3H_6O", "C_6H_5NH_2", "C_6H_6", "C_4H_9OH", "CCl_4", - //"G4_ACETONE","G4_ANILINE","G4_BENZENE","G4_N-BUTYL_ALCOHOL","G4_CARBON_TETRACHLORIDE" - "C_6H_5Cl", "CHCl_3", "C_6H_12", "C_6H_4Cl_2", "C_4Cl_2H_8O", - //"G4_CHLOROBENZENE","G4_CHLOROFORM","G4_CYCLOHEXANE","G4_1,2-DICHLOROBENZENE","G4_DICHLORODIETHYL_ETHER" - "C_2Cl_2H_4", "(C_2H_5)_2O", "C_2H_5OH", "C_3H_5(OH)_3","C_7H_16", - //"G4_1,2-DICHLOROETHANE","G4_DIETHYL_ETHER","G4_ETHYL_ALCOHOL","G4_GLYCEROL","G4_N-HEPTANE" - "C_6H_14", "CH_3OH", "C_6H_5NO_2","C_5H_12", "C_3H_7OH", - //"G4_N-HEXANE","G4_METHANOL","G4_NITROBENZENE","G4_N-PENTANE","G4_N-PROPYL_ALCOHOL", - "C_5H_5N", "C_8H_8", "C_2Cl_4", "C_7H_8", "C_2Cl_3H", - //"G4_PYRIDINE","G4_POLYSTYRENE","G4_TETRACHLOROETHYLENE","G4_TOLUENE","G4_TRICHLOROETHYLENE" - "H_2O", "C_8H_10", - // "G4_WATER", "G4_XYLENE" + // liquid 13 - 39 + "C_3H_6O", "C_6H_5NH_2", "C_6H_6", "C_4H_9OH", "CCl_4", + //"G4_ACETONE","G4_ANILINE","G4_BENZENE","G4_N-BUTYL_ALCOHOL","G4_CARBON_TETRACHLORIDE" + "C_6H_5Cl", "CHCl_3", "C_6H_12", "C_6H_4Cl_2", "C_4Cl_2H_8O", + //"G4_CHLOROBENZENE","G4_CHLOROFORM","G4_CYCLOHEXANE","G4_1,2-DICHLOROBENZENE", + //"G4_DICHLORODIETHYL_ETHER" + "C_2Cl_2H_4", "(C_2H_5)_2O", "C_2H_5OH", "C_3H_5(OH)_3","C_7H_16", + //"G4_1,2-DICHLOROETHANE","G4_DIETHYL_ETHER","G4_ETHYL_ALCOHOL","G4_GLYCEROL","G4_N-HEPTANE" + "C_6H_14", "CH_3OH", "C_6H_5NO_2","C_5H_12", "C_3H_7OH", + //"G4_N-HEXANE","G4_METHANOL","G4_NITROBENZENE","G4_N-PENTANE","G4_N-PROPYL_ALCOHOL", + "C_5H_5N", "C_8H_8", "C_2Cl_4", "C_7H_8", "C_2Cl_3H", + //"G4_PYRIDINE","G4_POLYSTYRENE","G4_TETRACHLOROETHYLENE","G4_TOLUENE","G4_TRICHLOROETHYLENE" + "H_2O", "C_8H_10", + // "G4_WATER", "G4_XYLENE" - // solid 40 - 53 - "C_5H_5N_5", "C_5H_5N_5O", "(C_6H_11NO)-nylon", "C_25H_52", - // "G4_ADENINE", "G4_GUANINE", "G4_NYLON-6-6", "G4_PARAFFIN" - "(C_2H_4)-Polyethylene", "(C_5H_8O_2)-Polymethil_Methacrylate", - // "G4_ETHYLENE", "G4_PLEXIGLASS" - "(C_8H_8)-Polystyrene", "A-150-tissue", "Al_2O_3", "CaF_2", - // "G4_POLYSTYRENE", "G4_A-150_TISSUE", "G4_ALUMINUM_OXIDE", "G4_CALCIUM_FLUORIDE" - "LiF", "Photo_Emulsion", "(C_2F_4)-Teflon", "SiO_2" - // "G4_LITHIUM_FLUORIDE", "G4_PHOTO_EMULSION", "G4_TEFLON", "G4_SILICON_DIOXIDE" - } ; + // solid 40 - 53 + "C_5H_5N_5", "C_5H_5N_5O", "(C_6H_11NO)-nylon", "C_25H_52", + // "G4_ADENINE", "G4_GUANINE", "G4_NYLON-6-6", "G4_PARAFFIN" + "(C_2H_4)-Polyethylene", "(C_5H_8O_2)-Polymethil_Methacrylate", + // "G4_ETHYLENE", "G4_PLEXIGLASS" + "(C_8H_8)-Polystyrene", "A-150-tissue", "Al_2O_3", "CaF_2", + // "G4_POLYSTYRENE", "G4_A-150_TISSUE", "G4_ALUMINUM_OXIDE", "G4_CALCIUM_FLUORIDE" + "LiF", "Photo_Emulsion", "(C_2F_4)-Teflon", "SiO_2" + // "G4_LITHIUM_FLUORIDE", "G4_PHOTO_EMULSION", "G4_TEFLON", "G4_SILICON_DIOXIDE" + } ; - static const G4double meanExcitation[54] = { + static const G4double meanExcitation[numberOfMolecula] = { - 53.7, 48.3, 85.0, 45.4, 49.2, - 49.1, 41.7, 87.8, 84.9, 49.5, - 48.2, 47.1, 71.6, + 53.7, 48.3, 85.0, 45.4, 49.2, + 49.1, 41.7, 87.8, 84.9, 49.5, + 48.2, 47.1, 71.6, - 64.2, 66.2, 63.4, 59.9, 166.3, - 89.1, 156.0, 56.4, 106.5, 103.3, - 111.9, 60.0, 62.9, 72.6, 54.4, - 54.0, 67.6, 75.8, 53.6, 61.1, - 66.2, 64.0, 159.2, 62.5, 148.1, - 75.0, 61.8, + 64.2, 66.2, 63.4, 59.9, 166.3, + 89.1, 156.0, 56.4, 106.5, 103.3, + 111.9, 60.0, 62.9, 72.6, 54.4, + 54.0, 67.6, 75.8, 53.6, 61.1, + 66.2, 64.0, 159.2, 62.5, 148.1, + 75.0, 61.8, - 71.4, 75.0, 63.9, 48.3, 57.4, - 74.0, 68.7, 65.1, 145.2, 166., - 94.0, 331.0, 99.1, 139.2 - }; + 71.4, 75.0, 63.9, 48.3, 57.4, + 74.0, 68.7, 65.1, 145.2, 166., + 94.0, 331.0, 99.1, 139.2 + }; - G4double x = fMeanExcitationEnergy; - - for(size_t i=0; iGetAtomicMass(Z,N))*g/(mole*amu_c2); + fA = (G4NistManager::Instance()->GetAtomicMass(Z,N)) + *CLHEP::g/(CLHEP::mole*CLHEP::amu_c2); } theIsotopeTable.push_back(this); fIndexInTable = theIsotopeTable.size() - 1; @@ -82,7 +83,7 @@ G4Isotope::G4Isotope(const G4String& Name,G4int Z,G4int N,G4double A,G4int il) // for usage restricted to object persistency G4Isotope::G4Isotope(__void__&) - : fZ(0), fN(0), fA(0), fm(0), /*fCountUse(0),*/ fIndexInTable(0) + : fZ(0), fN(0), fA(0), fm(0), fIndexInTable(0) { } @@ -90,7 +91,7 @@ G4Isotope::G4Isotope(__void__&) G4Isotope::~G4Isotope() { - theIsotopeTable[fIndexInTable] = 0; + theIsotopeTable[fIndexInTable] = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -115,7 +116,6 @@ G4Isotope & G4Isotope::operator=(const G4Isotope& right) fN = right.fN; fA = right.fA; fm = right.fm; - // fCountUse = right.fCountUse; } return *this; } diff --git a/source/materials/src/G4Material.cc b/source/materials/src/G4Material.cc index ad99d14212..a5c024cd49 100644 --- a/source/materials/src/G4Material.cc +++ b/source/materials/src/G4Material.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Material.cc 94016 2015-11-05 10:14:49Z gcosmo $ +// $Id: G4Material.cc 96794 2016-05-09 10:09:30Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -130,7 +130,7 @@ G4Material::G4Material(const G4String& name, G4double z, fMassFractionVector = new G4double[1]; fMassFractionVector[0] = 1. ; - fMassOfMolecule = a/Avogadro; + fMassOfMolecule = a/CLHEP::Avogadro; if (fState == kStateUndefined) { @@ -215,8 +215,6 @@ G4Material::G4Material(const G4String& name, G4double density, maxNbComponents = fNumberOfElements; fNumberOfComponents = fNumberOfElements; - fMaterialPropertiesTable = fBaseMaterial->GetMaterialPropertiesTable(); - CopyPointersOfBaseMaterial(); } @@ -226,14 +224,9 @@ G4Material::G4Material(const G4String& name, G4double density, // for usage restricted to object persistency G4Material::G4Material(__void__&) - : fChemicalFormula(""), fDensity(0.0), fState(kStateUndefined), fTemp(0.0), - fPressure(0.0), maxNbComponents(0), fArrayLength(0), - fNumberOfComponents(0), fNumberOfElements(0), theElementVector(0), - fMassFractionVector(0), fAtomsVector(0), fMaterialPropertiesTable(0), - fIndexInTable(0), VecNbOfAtomsPerVolume(0), TotNbOfAtomsPerVolume(0), - TotNbOfElectPerVolume(0), fRadlen(0.0), fNuclInterLen(0.0), fIonisation(0), - fSandiaTable(0), fBaseMaterial(0), fMassOfMolecule(0.0) + : fName("") { + InitializePointers(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -241,31 +234,32 @@ G4Material::G4Material(__void__&) G4Material::~G4Material() { // G4cout << "### Destruction of material " << fName << " started" <GetSandiaTable(); fIonisation->SetMeanExcitationEnergy(fBaseMaterial->GetIonisation()->GetMeanExcitationEnergy()); + + fMaterialPropertiesTable = fBaseMaterial->GetMaterialPropertiesTable(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -617,7 +615,7 @@ G4Material::GetMaterial(const G4String& materialName, G4bool warning) << " does not exist in the table. Return NULL pointer." << G4endl; } - return 0; + return nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -648,20 +646,6 @@ G4double G4Material::GetA() const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int G4Material::operator==(const G4Material& right) const -{ - return (this == (G4Material *) &right); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int G4Material::operator!=(const G4Material& right) const -{ - return (this != (G4Material *) &right); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - std::ostream& operator<<(std::ostream& flux, const G4Material* material) { std::ios::fmtflags mode = flux.flags(); diff --git a/source/materials/src/G4MaterialPropertiesTable.cc b/source/materials/src/G4MaterialPropertiesTable.cc index 365ebe0588..5d4151d685 100644 --- a/source/materials/src/G4MaterialPropertiesTable.cc +++ b/source/materials/src/G4MaterialPropertiesTable.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4MaterialPropertiesTable.cc 80573 2014-04-29 07:40:08Z gcosmo $ +// $Id: G4MaterialPropertiesTable.cc 96794 2016-05-09 10:09:30Z gcosmo $ // // //////////////////////////////////////////////////////////////////////// @@ -49,6 +49,7 @@ #include "globals.hh" #include "G4MaterialPropertiesTable.hh" #include "G4PhysicalConstants.hh" +#include "G4Log.hh" ///////////////// // Constructors @@ -67,6 +68,7 @@ G4MaterialPropertiesTable::~G4MaterialPropertiesTable() MPTiterator i; for (i = MPT.begin(); i != MPT.end(); ++i) { + G4cout << (*i).second << G4endl; delete (*i).second; } MPT.clear(); @@ -77,6 +79,82 @@ G4MaterialPropertiesTable::~G4MaterialPropertiesTable() // Methods //////////// +G4double G4MaterialPropertiesTable::GetConstProperty(const char *key) +{ + // Returns the constant material property corresponding to a key + + MPTCiterator j; + j = MPTC.find(G4String(key)); + if ( j != MPTC.end() ) return j->second; + G4Exception("G4MaterialPropertiesTable::GetConstProperty()","mat202", + FatalException, "Constant Material Property not found."); + return 0.; +} + +G4bool G4MaterialPropertiesTable::ConstPropertyExists(const char *key) +{ + // Returns true if a const property 'key' exists + + MPTCiterator j; + j = MPTC.find(G4String(key)); + if ( j != MPTC.end() ) return true; + return false; +} + +G4MaterialPropertyVector* +G4MaterialPropertiesTable::GetProperty(const char *key) +{ + // Returns a Material Property Vector corresponding to a key + + //Important Note for MT. adotti 17 Feb 2016 + //In previous implementation the following line was at the bottom of the + //function causing a rare race-condition. + //Moving this line here from the bottom solves the problem because: + //1- Map is accessed only via operator[] (to insert) and find() (to search), + // and these are thread safe if done on separate elements. + // See notes on data-races at: + // http://www.cplusplus.com/reference/map/map/operator%5B%5D/ + // http://www.cplusplus.com/reference/map/map/find/ + //2- So we have a data race if two threads access the same element (GROUPVEL) + // one in read and one in write mode. This was happening with the line + // at the bottom of the code, one thread in SetGROUPVEL(), + // and the other here + //3- SetGROUPVEL() is protected by a mutex that ensures that only + // one thread at the time will execute its code + //4- The if() statement guarantees that only if two threads are searching + // the same problematic key (GROUPVEL) the mutex will be used. + // Different keys do not lock (good for performances) + //5- As soon as a thread acquires the mutex in SetGROUPVEL it checks again + // if the map has GROUPVEL key, if so returns immediately. + // This "double check" allows to execute the heavy code to calculate + // group velocity only once even if two threads enter SetGROUPVEL together + if (G4String(key) == "GROUPVEL") return SetGROUPVEL(); + + MPTiterator i; + i = MPT.find(G4String(key)); + if ( i != MPT.end() ) return i->second; + return nullptr; +} + +void G4MaterialPropertiesTable::AddEntry(const char *key, + G4double aPhotonEnergy, + G4double aPropertyValue) +{ + // Allows to add an entry pair directly to the Material Property Vector + // given a key + + G4MaterialPropertyVector *targetVector=MPT [G4String(key)]; + if (targetVector != nullptr) + { + targetVector->InsertValues(aPhotonEnergy, aPropertyValue); + } + else + { + G4Exception("G4MaterialPropertiesTable::AddEntry()", "mat203", + FatalException, "Material Property Vector not found."); + } +} + void G4MaterialPropertiesTable::DumpTable() { MPTiterator i; @@ -170,7 +248,7 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::SetGROUPVEL() // add entry at first photon energy // - vg = c_light/(n0+(n1-n0)/std::log(E1/E0)); + vg = c_light/(n0+(n1-n0)/G4Log(E1/E0)); // allow only for 'normal dispersion' -> dn/d(logE) > 0 // @@ -183,7 +261,7 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::SetGROUPVEL() for (size_t i = 2; i < rindex->GetVectorLength(); i++) { - vg = c_light/( 0.5*(n0+n1)+(n1-n0)/std::log(E1/E0)); + vg = c_light/( 0.5*(n0+n1)+(n1-n0)/G4Log(E1/E0)); // allow only for 'normal dispersion' -> dn/d(logE) > 0 // @@ -206,7 +284,7 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::SetGROUPVEL() // add entry at last photon energy // - vg = c_light/(n1+(n1-n0)/std::log(E1/E0)); + vg = c_light/(n1+(n1-n0)/G4Log(E1/E0)); // allow only for 'normal dispersion' -> dn/d(logE) > 0 // diff --git a/source/materials/src/G4NistElementBuilder.cc b/source/materials/src/G4NistElementBuilder.cc index 539d1b388b..20e39856ea 100644 --- a/source/materials/src/G4NistElementBuilder.cc +++ b/source/materials/src/G4NistElementBuilder.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NistElementBuilder.cc 94234 2015-11-09 10:58:13Z gcosmo $ +// $Id: G4NistElementBuilder.cc 97248 2016-05-30 15:00:11Z gcosmo $ // // ------------------------------------------------------------------- // @@ -57,14 +57,13 @@ #include #include "G4NistElementBuilder.hh" -#include "G4Element.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4NistElementBuilder::G4NistElementBuilder(G4int vb): - verbose(vb), first(true) + verbose(vb) { nFirstIsotope[0] = 0; nIsotopes[0] = 0; @@ -100,49 +99,47 @@ G4double G4NistElementBuilder::GetAtomicMassAmu(const G4String& name) const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4Element* G4NistElementBuilder::FindOrBuildElement(const G4String& symb, G4bool) +G4Element* G4NistElementBuilder::FindOrBuildElement(G4int Z, G4bool) { - if(first) { - if(verbose > 0) { - G4cout << "### NIST DataBase for Elements is used" << G4endl; - } - first = false; + G4Element* anElement = FindElement(Z); + if(anElement == nullptr && Z > 0 && Z < maxNumElements) { + anElement = BuildElement(Z); + if(anElement) { elmIndex[Z] = anElement->GetIndex(); } } - G4Element* elm = 0; - for(G4int Z = 1; Zsize(); + for(size_t i=0; iGetSymbol()) { + elm = (*theElementTable)[i]; break; } } + if(nullptr == elm) { + for(G4int Z = 1; Z= maxNumElements) { return anElement; } - - // Nist or user defined element does exist - if(elmIndex[Z] >= 0) { - const G4ElementTable* theElementTable = G4Element::GetElementTable(); - anElement = (*theElementTable)[elmIndex[Z]]; - - // build new element - } else { - anElement = BuildElement(Z); - if(anElement) { elmIndex[Z] = anElement->GetIndex(); } - } - return anElement; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4Element* G4NistElementBuilder::BuildElement(G4int Z) { - G4Element* theElement = 0; + G4Element* theElement = nullptr; if(Z<1 || Z>=maxNumElements) { return theElement; } G4double Aeff = atomicMass[Z]; if (verbose > 1) { @@ -213,7 +210,7 @@ void G4NistElementBuilder::PrintElement(G4int Z) const G4cout << " mass(amu): "; for(j=0; j cannot be built because " << G4endl; + G4cout << " New material <" << name << "> cannot be built because " + << G4endl; G4cout << " base material <" << basename << "> does not exist" << G4endl; G4Exception("G4NistManager::BuildMaterialWithNewDensity()", "mat102", FatalException, "Wrong material name"); @@ -146,7 +147,7 @@ G4NistManager::BuildMaterialWithNewDensity(const G4String& name, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4NistManager::PrintElement(const G4String& symbol) +void G4NistManager::PrintElement(const G4String& symbol) const { if (symbol == "all") { elmBuilder->PrintElement(0); } else { elmBuilder->PrintElement(elmBuilder->GetZ(symbol)); } @@ -154,7 +155,7 @@ void G4NistManager::PrintElement(const G4String& symbol) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4NistManager::PrintG4Element(const G4String& name) +void G4NistManager::PrintG4Element(const G4String& name) const { const G4ElementTable* theElementTable = G4Element::GetElementTable(); size_t nelm = theElementTable->size(); @@ -168,7 +169,7 @@ void G4NistManager::PrintG4Element(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4NistManager::PrintG4Material(const G4String& name) +void G4NistManager::PrintG4Material(const G4String& name) const { const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); size_t nmat = theMaterialTable->size(); diff --git a/source/materials/src/G4NistMaterialBuilder.cc b/source/materials/src/G4NistMaterialBuilder.cc index 38ac78ccab..690dcb30fd 100644 --- a/source/materials/src/G4NistMaterialBuilder.cc +++ b/source/materials/src/G4NistMaterialBuilder.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NistMaterialBuilder.cc 93568 2015-10-26 14:52:36Z gcosmo $ +// $Id: G4NistMaterialBuilder.cc 97248 2016-05-30 15:00:11Z gcosmo $ // // ------------------------------------------------------------------- // @@ -77,6 +77,10 @@ #include "G4SystemOfUnits.hh" #include +#ifdef G4MULTITHREADED +G4Mutex G4NistMaterialBuilder::nistMaterialMutex = G4MUTEX_INITIALIZER; +#endif + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4NistMaterialBuilder::G4NistMaterialBuilder(G4NistElementBuilder* eb, G4int vb) @@ -84,8 +88,7 @@ G4NistMaterialBuilder::G4NistMaterialBuilder(G4NistElementBuilder* eb, G4int vb) verbose(vb), nMaterials(0), nComponents(0), - nCurrent(0), - first(true) + nCurrent(0) { Initialise(); } @@ -98,57 +101,52 @@ G4NistMaterialBuilder::~G4NistMaterialBuilder() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4Material* G4NistMaterialBuilder::FindOrBuildMaterial(const G4String& matname, - G4bool iso, - G4bool warning) + G4bool, G4bool warning) { - if(first) { - if(verbose > 0) { - G4cout << "### NIST DataBase for Materials is used" << G4endl; - } - first = false; - } - - G4String name = matname; - if("G4_NYLON-6/6" == matname) { name = "G4_NYLON-6-6"; } - if("G4_NYLON-6/10" == matname) { name = "G4_NYLON-6-10";} - if(verbose > 1) { - G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial " << name << G4endl; + G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial " + << matname << G4endl; } - const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - G4int nmat = theMaterialTable->size(); + G4Material* mat = FindMaterial(matname); + if(mat != nullptr) { return mat; } + G4String name = matname; + if(name == "G4_NYLON-6/6" || name == "G4_NYLON-6/10") { + if("G4_NYLON-6/6" == matname) { name = "G4_NYLON-6-6"; } + else { name = "G4_NYLON-6-10";} + mat = FindMaterial(name); + } + return (mat == nullptr) ? BuildNistMaterial(name, warning) : mat; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4Material* G4NistMaterialBuilder::BuildNistMaterial(const G4String& name, + G4bool warning) +{ + G4Material* mat = nullptr; // Check if name inside DB - G4Material* mat = 0; - for (G4int i=0; i 0)) { - G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial warning for " - << name - << " - since Geant4 9.6 isotopes are always built" << G4endl; - } + // Build new Nist material mat = BuildMaterial(i); + } else { + // Nist material was already built + const G4MaterialTable* theMaterialTable = + G4Material::GetMaterialTable(); + mat = (*theMaterialTable)[matIndex[i]]; } - // Nist material was already built - else { mat = (*theMaterialTable)[matIndex[i]]; } +#ifdef G4MULTITHREADED + G4MUTEXUNLOCK(&G4NistMaterialBuilder::nistMaterialMutex); +#endif return mat; } } - // Check the list of all materials - if (nmat > 0) { - for (G4int i=0; iGetName()) { - mat = (*theMaterialTable)[i]; - return mat; - } - } - } - if( (verbose == 1 && warning) || verbose > 1) { G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:" << " material <" << name @@ -162,8 +160,10 @@ G4Material* G4NistMaterialBuilder::FindOrBuildMaterial(const G4String& matname, G4Material* G4NistMaterialBuilder::FindOrBuildSimpleMaterial(G4int Z, G4bool warn) { - G4Material* mat = 0; - if(Z >= 1 && Z <= 98) { mat = FindOrBuildMaterial(names[Z-1], true, warn); } + G4Material* mat = FindSimpleMaterial(Z); + if(mat == nullptr) { + mat = BuildNistMaterial(names[Z], warn); + } return mat; } @@ -230,8 +230,9 @@ G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i) G4double exc1 = exc0; if(chFormulas[i] != "") { mat->SetChemicalFormula(chFormulas[i]); - exc1 = ion->FindMeanExcitationEnergy(chFormulas[i]); + exc1 = ion->FindMeanExcitationEnergy(mat); } + // If exists, NIST DB data always overwrites other data if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; } if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); } @@ -431,10 +432,10 @@ G4Material* G4NistMaterialBuilder::ConstructNewIdealGasMaterial( G4int Z = 0; for (G4int i=0; iGetZ(elm[i]); - massPerMole += nbAtoms[i] * elmBuilder->GetAtomicMassAmu(Z) * amu_c2; + massPerMole += nbAtoms[i]*elmBuilder->GetAtomicMassAmu(Z)*CLHEP::amu_c2; } - G4double dens = massPerMole / (Avogadro*k_Boltzmann*temp/pres); + G4double dens = massPerMole/(CLHEP::Avogadro*CLHEP::k_Boltzmann*temp/pres); if (els == 1) { AddMaterial(name,dens,Z,0.,els,state,stp); } else { @@ -476,8 +477,8 @@ void G4NistMaterialBuilder::AddMaterial(const G4String& nameMat, G4double dens, names.push_back(nameMat); chFormulas.push_back(""); - densities.push_back(dens*g/cm3); - ionPotentials.push_back(pot*eV); + densities.push_back(dens*CLHEP::g/CLHEP::cm3); + ionPotentials.push_back(pot*CLHEP::eV); states.push_back(state); components.push_back(ncomp); indexes.push_back(nComponents); @@ -546,7 +547,7 @@ void G4NistMaterialBuilder::ListNistSimpleMaterials() const G4cout << "=======================================================" << G4endl; G4cout << " Z Name density(g/cm^3) I(eV) " << G4endl; G4cout << "=======================================================" << G4endl; - for (G4int i=0; i& coeff) const { - assert(4 <= coeff.size()); - G4double Emin = fSandiaTable[fCumulInterval[Z-1]][0]*keV; +#ifdef G4VERBOSE + if(Z < 1 || Z > 100) { + Z = PrintErrorZ(Z, "GetSandiaCofPerAtom"); + } + if(4 > coeff.size()) { + PrintErrorV("GetSandiaCofPerAtom(): input vector is resized"); + coeff.resize(4); + } +#endif + G4double Emin = fSandiaTable[fCumulInterval[Z-1]][0]*CLHEP::keV; //G4double Iopot = fIonizationPotentials[Z]*eV; //if (Emin < Iopot) Emin = Iopot; @@ -150,7 +156,7 @@ G4SandiaTable::GetSandiaCofPerAtom(G4int Z, G4double energy, G4int interval = fNbOfIntervals[Z] - 1; row = fCumulInterval[Z-1] + interval; // Loop checking, 07-Aug-2015, Vladimir Ivanchenko - while ((interval>0) && (energy0) && (energy& coeff) const { - assert(4 <= coeff.size()); +#ifdef G4VERBOSE + if(4 > coeff.size()) { + PrintErrorV("GetSandiaCofWater: input vector is resized"); + coeff.resize(4); + } +#endif G4int i = 0; - if(energy > fH2OlowerI1[0][0]*keV) { + if(energy > fH2OlowerI1[0][0]*CLHEP::keV) { i = fH2OlowerInt - 1; for(; i>0; --i) { - if(energy >= fH2OlowerI1[i][0]*keV) { break; } + if(energy >= fH2OlowerI1[i][0]*CLHEP::keV) { break; } } } coeff[0]=funitc[1]*fH2OlowerI1[i][1]; @@ -188,7 +199,7 @@ G4SandiaTable::GetSandiaCofWater(G4double energy, G4double G4SandiaTable::GetWaterEnergyLimit() const { - return fH2OlowerI1[fH2OlowerInt - 1][0]*keV; + return fH2OlowerI1[fH2OlowerInt - 1][0]*CLHEP::keV; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -199,15 +210,42 @@ G4double G4SandiaTable::GetWaterCofForMaterial(G4int i, G4int j) const } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... - + G4double G4SandiaTable::GetZtoA(G4int Z) { - assert (Z>0 && Z<101); +#ifdef G4VERBOSE + if(Z < 1 || Z > 100) { + Z = PrintErrorZ(Z, "GetSandiaCofPerAtom"); + } +#endif return fZtoAratio[Z]; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... +#ifdef G4VERBOSE + +G4int G4SandiaTable::PrintErrorZ(G4int Z, const G4String& ss) +{ + G4String sss = "G4SandiaTable::"+ss+"()"; + G4ExceptionDescription ed; + ed << "Atomic number out of range Z= " << Z << "; closest value is used"; + G4Exception(sss,"mat060",JustWarning,ed,""); + return (Z > 100) ? 100 : 1; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +void G4SandiaTable::PrintErrorV(const G4String& ss) +{ + G4String sss = "G4SandiaTable::"+ss; + G4ExceptionDescription ed; + G4Exception(sss,"mat061",JustWarning,"Wrong input parameters"); +} +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + void G4SandiaTable::ComputeMatSandiaMatrix() { //get list of elements @@ -217,33 +255,37 @@ void G4SandiaTable::ComputeMatSandiaMatrix() G4int* Z = new G4int[NbElm]; //Atomic number //determine the maximum number of energy-intervals for this material - G4int MaxIntervals = 0; - G4int elm; + G4int elm, z; - for ( elm = 0; elm < NbElm; elm++ ) + // here we compute only for a mixture, so no waring or exception + // if z is out of validity interval + for (elm = 0; elm < NbElm; ++elm) { - Z[elm] = (G4int)(*ElementVector)[elm]->GetZ(); - MaxIntervals += fNbOfIntervals[Z[elm]]; + z = G4lrint((*ElementVector)[elm]->GetZ()); + if(z < 1) { z = 1; } + else if(z > 100) { z = 100; } + Z[elm] = z; + MaxIntervals += fNbOfIntervals[z]; } //copy the Energy bins in a tmp1 array //(take care of the Ionization Potential of each element) - G4double* tmp1 = new G4double[MaxIntervals]; G4double IonizationPot; G4int interval1 = 0; - for ( elm = 0; elm < NbElm; elm++ ) + for (elm = 0; elm < NbElm; ++elm) { - IonizationPot = GetIonizationPot(Z[elm]); - - for(G4int row = fCumulInterval[Z[elm]-1]; rowpush_back( new G4DataVector(5,0.) ); } @@ -282,11 +327,11 @@ void G4SandiaTable::ComputeMatSandiaMatrix() const G4double* NbOfAtomsPerVolume = fMaterial->GetVecNbOfAtomsPerVolume(); - static const G4double prec = 1.e-03*eV; + static const G4double prec = 1.e-03*CLHEP::eV; G4double coef, oldsum(0.), newsum(0.); fMatNbOfIntervals = 0; - for ( interval = 0; interval < interval2; interval++ ) + for ( interval = 0; interval < interval2; ++interval) { Emin = (*(*fMatSandiaMatrix)[fMatNbOfIntervals])[0] = tmp2[interval]; @@ -303,31 +348,29 @@ void G4SandiaTable::ComputeMatSandiaMatrix() { coef = NbOfAtomsPerVolume[elm]*fSandiaCofPerAtom[j-1]; (*(*fMatSandiaMatrix)[fMatNbOfIntervals])[j] += coef; - newsum += std::fabs(coef); + newsum += std::abs(coef); } } //check for null or redondant intervals - if (newsum != oldsum) { oldsum = newsum; fMatNbOfIntervals++;} + if (newsum != oldsum) { oldsum = newsum; ++fMatNbOfIntervals;} } delete [] Z; delete [] tmp1; delete [] tmp2; - // fMaxInterval = fMatNbOfIntervals; // vmg 16.02.11 - - if ( fVerbose > 0 && fMaterial->GetName() == "G4_Ar" ) + if ( fVerbose > 0 ) { - G4cout<<"mma, G4SandiaTable::ComputeMatSandiaMatrix(), mat = " + G4cout<<"G4SandiaTable::ComputeMatSandiaMatrix(), mat = " <GetName()<GetSandiaCofForMaterial(i,1) - <<"\t"<GetSandiaCofForMaterial(i,2) - <<"\t"<GetSandiaCofForMaterial(i,3) - <<"\t"<GetSandiaCofForMaterial(i,4)<GetNumberOfElements(); const G4ElementVector* ElementVector = fMaterial->GetElementVector(); @@ -348,14 +391,18 @@ void G4SandiaTable::ComputeMatSandiaMatrixPAI() for ( elm = 0; elm < noElm; elm++ ) { - Z[elm] = (G4int)(*ElementVector)[elm]->GetZ(); + z = G4lrint((*ElementVector)[elm]->GetZ()); + if(z < 1) { z = 1; } + else if(z > 100) { z = 100; } + Z[elm] = z; MaxIntervals += fNbOfIntervals[Z[elm]]; } fMaxInterval = MaxIntervals + 2; if ( fVerbose > 0 ) { - G4cout<<"fMaxInterval = "< 0) { G4cout< 0) { for( i = 0; i < noElm; ++i ) G4cout<GetSandiaMatTablePAI(i,1) - <<"\t"<GetSandiaMatTablePAI(i,2) - <<"\t"<GetSandiaMatTablePAI(i,3) - <<"\t"<GetSandiaMatTablePAI(i,4)<= 0 && matIndex < numberOfMat) { fMaterial = (*theMaterialTable)[matIndex]; - // ComputeMatTable(); } else { @@ -641,7 +687,7 @@ G4SandiaTable::G4SandiaTable(G4int matIndex) } //////////////////////////////////////////////////////////////////////////////// - + G4SandiaTable::G4SandiaTable() { fMaterial = 0; @@ -667,25 +713,6 @@ void G4SandiaTable::Initialize(G4Material* mat) //////////////////////////////////////////////////////////////////////////////// -void G4SandiaTable::Initialize(G4int matIndex) -{ - const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - G4int numberOfMat = G4Material::GetNumberOfMaterials(); - - if ( matIndex >= 0 && matIndex < numberOfMat ) - { - fMaterial = (*theMaterialTable)[matIndex]; - ComputeMatTable(); - } - else - { - G4Exception("G4SandiaTable::Initialize(G4int matIndex)", "mat401", - FatalException, "wrong matIndex"); - } -} - -//////////////////////////////////////////////////////////////////////////////// - G4int G4SandiaTable::GetMaxInterval() const { return fMaxInterval; @@ -926,20 +953,22 @@ G4int G4SandiaTable::GetMatNbOfIntervals() const //////////////////////////////////////////////////////////////////////////////// -G4int G4SandiaTable::GetNbOfIntervals(G4int Z) -{ - assert (Z>0 && Z<101); - return fNbOfIntervals[Z]; -} - -//////////////////////////////////////////////////////////////////////////////// - G4double -G4SandiaTable::GetSandiaPerAtom(G4int Z, G4int interval, G4int j) +G4SandiaTable::GetSandiaPerAtom(G4int Z, G4int interval, G4int j) const { - assert (Z>0 && Z<101 && interval>=0 && interval=0 && j<5); - +#ifdef G4VERBOSE + if(Z < 1 || Z > 100) { + Z = PrintErrorZ(Z, "GetSandiaPerAtom"); + } + if(interval<0 || interval>=fNbOfIntervals[Z]) { + PrintErrorV("GetSandiaPerAtom"); + interval = (interval<0) ? 0 : fNbOfIntervals[Z]-1; + } + if(j<0 || j>4) { + PrintErrorV("GetSandiaPerAtom"); + j = (j<0) ? 0 : 4; + } +#endif G4int row = fCumulInterval[Z-1] + interval; G4double x = fSandiaTable[row][0]*CLHEP::keV; if (j > 0) { @@ -953,7 +982,16 @@ G4SandiaTable::GetSandiaPerAtom(G4int Z, G4int interval, G4int j) G4double G4SandiaTable::GetSandiaCofForMaterial(G4int interval, G4int j) const { - assert (interval>=0 && interval=0 && j<5); +#ifdef G4VERBOSE + if(interval<0 || interval>=fMatNbOfIntervals) { + PrintErrorV("GetSandiaCofForMaterial"); + interval = (interval<0) ? 0 : fMatNbOfIntervals-1; + } + if(j<0 || j>4) { + PrintErrorV("GetSandiaCofForMaterial"); + j = (j<0) ? 0 : 4; + } +#endif return ((*(*fMatSandiaMatrix)[interval])[j]); } @@ -977,36 +1015,17 @@ G4SandiaTable::GetSandiaCofForMaterial(G4double energy) const G4double G4SandiaTable::GetSandiaMatTable(G4int interval, G4int j) const { - assert(interval >= 0 && interval < fMaxInterval && j >= 0 && j < 5 ); - return ((*(*fMatSandiaMatrix)[interval])[j])*funitc[j]; -} - -//////////////////////////////////////////////////////////////////////////////// - -G4double -G4SandiaTable::GetSandiaCofForMaterialPAI(G4int interval, G4int j) const -{ - assert(fMatSandiaMatrixPAI && interval>=0 && - interval=0 && j<5); - return ((*(*fMatSandiaMatrixPAI)[interval])[j]); -} - -//////////////////////////////////////////////////////////////////////////////// - -const G4double* -G4SandiaTable::GetSandiaCofForMaterialPAI(G4double energy) const -{ - assert(fMatSandiaMatrixPAI); - const G4double* x = fnulcof; - if (energy >= (*(*fMatSandiaMatrixPAI)[0])[0]) { - - G4int interval = fMatNbOfIntervals - 1; - // Loop checking, 07-Aug-2015, Vladimir Ivanchenko - while ((interval>0)&&(energy<(*(*fMatSandiaMatrixPAI)[interval])[0])) - {interval--;} - x = &((*(*fMatSandiaMatrixPAI)[interval])[1]); +#ifdef G4VERBOSE + if(interval<0 || interval>=fMatNbOfIntervals) { + PrintErrorV("GetSandiaCofForMaterial"); + interval = (interval<0) ? 0 : fMatNbOfIntervals-1; } - return x; + if(j<0 || j>4) { + PrintErrorV("GetSandiaCofForMaterial"); + j = (j<0) ? 0 : 4; + } +#endif + return ((*(*fMatSandiaMatrix)[interval])[j])*funitc[j]; } //////////////////////////////////////////////////////////////////////////////// @@ -1014,27 +1033,17 @@ G4SandiaTable::GetSandiaCofForMaterialPAI(G4double energy) const G4double G4SandiaTable::GetSandiaMatTablePAI(G4int interval, G4int j) const { - assert(fMatSandiaMatrixPAI && interval >= 0 && - interval < fMaxInterval && j >= 0 && j < 5 ); - return ((*(*fMatSandiaMatrixPAI)[interval])[j]); // *funitc[j];-> to method -} - -//////////////////////////////////////////////////////////////////////////////// - -G4double -G4SandiaTable::GetIonizationPot(G4int Z) const -{ - assert (Z>0 && Z<101); - return fIonizationPotentials[Z]*CLHEP::eV; -} - -//////////////////////////////////////////////////////////////////////////////// - -G4OrderedTable* -G4SandiaTable::GetSandiaMatrixPAI() -{ - if(!fMatSandiaMatrixPAI) { ComputeMatSandiaMatrixPAI(); } - return fMatSandiaMatrixPAI; +#ifdef G4VERBOSE + if(interval<0 || interval>=fMaxInterval) { + PrintErrorV("GetSandiaCofForMaterialPAI"); + interval = (interval<0) ? 0 : fMaxInterval-1; + } + if(j<0 || j>4) { + PrintErrorV("GetSandiaCofForMaterialPAI"); + j = (j<0) ? 0 : 4; + } +#endif + return ((*(*fMatSandiaMatrixPAI)[interval])[j]); } //////////////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4UCNMaterialPropertiesTable.cc b/source/materials/src/G4UCNMaterialPropertiesTable.cc index 616f7d358a..257fab5a8a 100755 --- a/source/materials/src/G4UCNMaterialPropertiesTable.cc +++ b/source/materials/src/G4UCNMaterialPropertiesTable.cc @@ -53,10 +53,10 @@ G4UCNMaterialPropertiesTable::G4UCNMaterialPropertiesTable() : G4MaterialPropertiesTable() { - theMicroRoughnessTable = NULL; - maxMicroRoughnessTable = NULL; - theMicroRoughnessTransTable = NULL; - maxMicroRoughnessTransTable = NULL; + theMicroRoughnessTable = nullptr; + maxMicroRoughnessTable = nullptr; + theMicroRoughnessTransTable = nullptr; + maxMicroRoughnessTransTable = nullptr; theta_i_min = 0.*degree; theta_i_max = 90.*degree; diff --git a/source/materials/src/G4UCNMicroRoughnessHelper.cc b/source/materials/src/G4UCNMicroRoughnessHelper.cc index 03f784cb4a..1cf5ee17c3 100755 --- a/source/materials/src/G4UCNMicroRoughnessHelper.cc +++ b/source/materials/src/G4UCNMicroRoughnessHelper.cc @@ -44,7 +44,7 @@ #include "G4SystemOfUnits.hh" #include "G4PhysicalConstants.hh" -G4UCNMicroRoughnessHelper* G4UCNMicroRoughnessHelper::fpInstance = 0; +G4UCNMicroRoughnessHelper* G4UCNMicroRoughnessHelper::fpInstance = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,20 +57,21 @@ G4UCNMicroRoughnessHelper::G4UCNMicroRoughnessHelper() {;} G4UCNMicroRoughnessHelper::~G4UCNMicroRoughnessHelper() { delete fpInstance; - fpInstance = 0; + fpInstance = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4UCNMicroRoughnessHelper* G4UCNMicroRoughnessHelper::GetInstance() { - if (fpInstance == NULL) fpInstance = new G4UCNMicroRoughnessHelper; + if (fpInstance == nullptr) fpInstance = new G4UCNMicroRoughnessHelper; return fpInstance; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4UCNMicroRoughnessHelper::S2(G4double costheta2, G4double klk2) +G4double +G4UCNMicroRoughnessHelper::S2(G4double costheta2, G4double klk2) const { // case 1: radicand is positive, // case 2: radicand is negative, cf. p. 174 of the Steyerl paper @@ -83,7 +84,8 @@ G4double G4UCNMicroRoughnessHelper::S2(G4double costheta2, G4double klk2) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4UCNMicroRoughnessHelper::SS2(G4double costhetas2, G4double klks2) +G4double +G4UCNMicroRoughnessHelper::SS2(G4double costhetas2, G4double klks2) const { // cf. p. 175 of the Steyerl paper @@ -96,7 +98,7 @@ G4double G4UCNMicroRoughnessHelper::SS2(G4double costhetas2, G4double klks2) G4double G4UCNMicroRoughnessHelper::Fmu(G4double k2, G4double thetai, G4double thetao, G4double phio, G4double b2, G4double w2, - G4double AngCut) + G4double AngCut) const { G4double mu_squared; @@ -122,11 +124,12 @@ G4double G4UCNMicroRoughnessHelper::Fmu(G4double k2, G4double thetai, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4UCNMicroRoughnessHelper::FmuS(G4double k, G4double kS, - G4double thetai, G4double thetaSo, - G4double phiSo, - G4double b2, G4double w2, - G4double AngCut, G4double thetarefract) +G4double +G4UCNMicroRoughnessHelper::FmuS(G4double k, G4double kS, + G4double thetai, G4double thetaSo, + G4double phiSo, + G4double b2, G4double w2, + G4double AngCut, G4double thetarefract) const { G4double mu_squared; @@ -152,11 +155,12 @@ G4double G4UCNMicroRoughnessHelper::FmuS(G4double k, G4double kS, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4UCNMicroRoughnessHelper::IntIplus(G4double E, G4double fermipot, - G4double theta_i, G4int AngNoTheta, - G4int AngNoPhi, G4double b2, - G4double w2, G4double* max, - G4double AngCut) +G4double +G4UCNMicroRoughnessHelper::IntIplus(G4double E, G4double fermipot, + G4double theta_i, G4int AngNoTheta, + G4int AngNoPhi, G4double b2, + G4double w2, G4double* max, + G4double AngCut) const { *max=0.; @@ -281,7 +285,7 @@ G4double G4UCNMicroRoughnessHelper::IntIminus(G4double E, G4double fermipot, G4int AngNoTheta, G4int AngNoPhi, G4double b2, G4double w2, G4double* max, - G4double AngCut) + G4double AngCut) const { G4double a_max_thetas_o, max_thetas_o = theta_i; G4double a_max_phis_o, max_phis_o = 0.; @@ -402,7 +406,7 @@ G4double G4UCNMicroRoughnessHelper::ProbIplus(G4double E, G4double fermipot, G4double theta_o, G4double phi_o, G4double b, G4double w, - G4double AngCut) + G4double AngCut) const { //k_l^4/4 G4double kl4d4=neutron_mass_c2/hbarc_squared*neutron_mass_c2/ @@ -428,7 +432,7 @@ G4double G4UCNMicroRoughnessHelper::ProbIminus(G4double E, G4double fermipot, G4double theta_i, G4double thetas_o, G4double phis_o, G4double b, - G4double w, G4double AngCut) + G4double w, G4double AngCut) const { //k_l^4/4 G4double kl4d4=neutron_mass_c2/hbarc_squared*neutron_mass_c2/ diff --git a/source/parameterisations/gflash/History b/source/parameterisations/gflash/History index a0ed2e491e..88599d73b6 100644 --- a/source/parameterisations/gflash/History +++ b/source/parameterisations/gflash/History @@ -1,4 +1,4 @@ -$Id: History 93079 2015-10-02 14:43:41Z gcosmo $ +$Id: History 97674 2016-06-07 08:28:08Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 6th, 2016, M. Verderi (gflash-V10-02-00) +------------------------- +- Fix bug 1867: missing G4VSensitiveDetector include in G4VGFlashSensitiveDetector. + Oct 2nd, 2015, M. Verderi (gflash-V10-01-00) ------------------------- - Fix bug 1719: Zeff wrongly computed as ( W1*Z2 ) + ( W2*Z1 ), with Z1 and Z2 swapped. diff --git a/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh b/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh index 3b7b631d9c..d6572c5803 100644 --- a/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh +++ b/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VGFlashSensitiveDetector.hh 68057 2013-03-13 14:46:00Z gcosmo $ +// $Id: G4VGFlashSensitiveDetector.hh 97674 2016-06-07 08:28:08Z gcosmo $ // // //--------------------------------------------------------------- @@ -47,6 +47,8 @@ #include "G4TouchableHistory.hh" #include "GFlashEnergySpot.hh" #include "G4GFlashSpot.hh" +#include "G4VSensitiveDetector.hh" + class G4VGFlashSensitiveDetector { diff --git a/source/particles/History b/source/particles/History index bedcf024f8..0e25bbbf15 100644 --- a/source/particles/History +++ b/source/particles/History @@ -1,4 +1,4 @@ -$Id: History 94620 2015-11-26 14:05:52Z gcosmo $ +$Id: History 96797 2016-05-09 10:13:42Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,60 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- 5 May 2016 Hisaya Kurashige (particles-V10-02-14) +- Fix Coverity defects (43015,62787,62788) +- Modify G4IonTable::GetIon with non-zero lvl + (Coverity 63524) + +- 5 April 2016 Makoto Asai (particles-V10-02-13) +- G4IsotopeMagneticMomentTable: Ignoring floating level base for + the time being. + +- 4 April 2016 Makoto Asai (particles-V10-02-12) +- G4NuclideTable has migrated to the new floating level base scheme. + +- 31 March 2016 Makoto Asai (particles-V10-02-11) +- Introducing floating level base to G4Ions and related classes. + +- 2 March 2016 Hisaya Kurashige (particles-V10-02-10) +- Update properties of particles according to PDG + +- 1 Match 2016 Andrea Dotti (particles-V10-02-09) +- Fix for WIN: removing constexpr + +- 29 February 2016 Andrea Dotti (particles-V10-02-08) +- Fix for bug #1834: MT data-race in G4VDecayTable class + +- 25 February 2016 Andrea Dotti (particles-V10-02-07) +- Preliminary tag to review of MT treatment for SetDaugheter in + G4VDecayChannel: raise exception if re-definition of daughters + is requested + +- 4 February 2016 Tatsumi Koi (particles-V10-02-06) +- Change default life of ion and hyper nucleus from -1 to 0 + +- 27 January 2016 Hisaya Kurashige(particles-V10-02-05) +- Fix the bug(#1820) in G4PhaseSpaceDecayChannel + +- 21 January 2016 Hisaya Kurashige(particles-V10-02-04) +- Fix G4DecayTable::SelectADecayChannel + +- 28 December 2015 Makoto Asai (particles-V10-02-03) +- Fix wrong argument order CreateIon(A,Z,LL,0.0) of line #485 in + G4IonTable.cc to CreateIon(Z,A,LL,0.0). + +- 18 December 2015 Tatsumi Koi (particles-V10-02-02) +- Fix problem on previous tag + +- 17 December 2015 Tatsumi Koi (particles-V10-02-01) +- Revert default value of level tolerance in NuclideTable to 1 eV +- Turn out rounding of excitation energy to avoid potential conservation problem + +- 3 December 2015 Dennis Wright (particles-V10-01-19) +- In G4IonTable remove static const tolerance and replace it with + pNuclideTable->GetLevelTolerance() in all locations. + This recovers missed levels when they are closer together than 2 keV + - 25 Nov. 2015 Gunter Folger (particles-V10-01-18) - Fix for Windows in G4NuclideTable: Convert static G4double levelTolerance to data member of singleton. diff --git a/source/particles/hadrons/barions/src/G4AntiLambdab.cc b/source/particles/hadrons/barions/src/G4AntiLambdab.cc index 694254a882..2219b713f6 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambdab.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambdab.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiLambdab.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4AntiLambdab.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,11 +70,11 @@ G4AntiLambdab* G4AntiLambdab::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.6195*GeV, 0.454e-9*MeV, 0., + name, 5.61951*GeV, 0.449e-9*MeV, 0., 1, +1, 0, 0, 0, 0, "baryon", 0, -1, -5122, - false, 1.451e-3*ns, NULL, + false, 1.466e-3*ns, NULL, false, "lambda_b"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc index e7072ef6d5..8033dd0bd0 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiOmegabMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4AntiOmegabMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,11 +69,11 @@ G4AntiOmegabMinus* G4AntiOmegabMinus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 6.0488*GeV, 0.58e-9*MeV, +1.*eplus, + name, 6.0480*GeV, 0.42e-9*MeV, +1.*eplus, 1, +1, 0, 0, 0, 0, "baryon", 0, -1, -5332, - false, 1.100e-3*ns, NULL, + false, 1.570e-3*ns, NULL, false, "omega_b"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc index b01c693c82..0a06685b3f 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacPlusPlus.cc 79342 2014-02-24 11:42:42Z gcosmo $ +// $Id: G4AntiSigmacPlusPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.45398*GeV, 2.26*MeV, -2.0*eplus, + name, 2.45397*GeV, 2.26*MeV, -2.0*eplus, 1, +1, 0, 2, -2, 0, "baryon", 0, -1, -4222, diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc index e8f6d4a50e..8d46e9303c 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacZero.cc 79342 2014-02-24 11:42:42Z gcosmo $ +// $Id: G4AntiSigmacZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4AntiSigmacZero* G4AntiSigmacZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.45374*GeV, 2.16*MeV, +0.0*eplus, + name, 2.45375*GeV, 1.83*MeV, +0.0*eplus, 1, +1, 0, 2, +2, 0, "baryon", 0, -1, -4112, diff --git a/source/particles/hadrons/barions/src/G4AntiXibMinus.cc b/source/particles/hadrons/barions/src/G4AntiXibMinus.cc index b9ca955df2..4ee6aac22f 100644 --- a/source/particles/hadrons/barions/src/G4AntiXibMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXibMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiXibMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4AntiXibMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,7 +70,7 @@ G4AntiXibMinus* G4AntiXibMinus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.7949*GeV, 0.42e-9*MeV, +1.*eplus, + name, 5.7944*GeV, 0.422e-9*MeV, +1.*eplus, 1, +1, 0, 1, +1, 0, "baryon", 0, -1, -5132, diff --git a/source/particles/hadrons/barions/src/G4AntiXibZero.cc b/source/particles/hadrons/barions/src/G4AntiXibZero.cc index 3bc8e35daf..59db3e82b1 100644 --- a/source/particles/hadrons/barions/src/G4AntiXibZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXibZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiXibZero.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4AntiXibZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,11 +70,11 @@ G4AntiXibZero* G4AntiXibZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.7931*GeV, 0.44e-9*MeV, 0, + name, 5.7918*GeV, 0.45e-9*MeV, 0, 1, +1, 0, 1, -1, 0, "baryon", 0, -1, -5232, - false, 1.490e-3*ns, NULL, + false, 1.464e-3*ns, NULL, false, "xi_b"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc index d8a87bb17e..af83229820 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiXicPlus.cc 67971 2013-03-13 10:13:24Z gcosmo $ +// $Id: G4AntiXicPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4AntiXicPlus* G4AntiXicPlus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.4678*GeV, 1.49e-9*MeV, -1.*eplus, + name, 2.46793*GeV, 1.49e-9*MeV, -1.*eplus, 1, +1, 0, 1, -1, 0, "baryon", 0, -1, -4232, diff --git a/source/particles/hadrons/barions/src/G4AntiXicZero.cc b/source/particles/hadrons/barions/src/G4AntiXicZero.cc index 9c96c3dba7..7d49098af5 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiXicZero.cc 67971 2013-03-13 10:13:24Z gcosmo $ +// $Id: G4AntiXicZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4AntiXicZero* G4AntiXicZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.47088*GeV, 5.9e-9*MeV, 0.0, + name, 2.47085*GeV, 5.9e-9*MeV, 0.0, 1, +1, 0, 1, +1, 0, "baryon", 0, -1, -4132, diff --git a/source/particles/hadrons/barions/src/G4Lambdab.cc b/source/particles/hadrons/barions/src/G4Lambdab.cc index 0d94ed4cb7..cbacf82e9e 100644 --- a/source/particles/hadrons/barions/src/G4Lambdab.cc +++ b/source/particles/hadrons/barions/src/G4Lambdab.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Lambdab.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4Lambdab.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,11 +70,11 @@ G4Lambdab* G4Lambdab::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.6195*GeV, 0.454e-9*MeV, 0., + name, 5.61951*GeV, 0.449e-9*MeV, 0., 1, +1, 0, 0, 0, 0, "baryon", 0, +1, 5122, - false, 1.451e-3*ns, NULL, + false, 1.466e-3*ns, NULL, false, "lambda_b"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/barions/src/G4OmegabMinus.cc b/source/particles/hadrons/barions/src/G4OmegabMinus.cc index 7e579e691e..576ce3c537 100644 --- a/source/particles/hadrons/barions/src/G4OmegabMinus.cc +++ b/source/particles/hadrons/barions/src/G4OmegabMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OmegabMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4OmegabMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,11 +69,11 @@ G4OmegabMinus* G4OmegabMinus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 6.0488*GeV, 0.58e-9*MeV, -1.*eplus, + name, 6.0480*GeV, 0.42e-9*MeV, -1.*eplus, 1, +1, 0, 0, 0, 0, "baryon", 0, +1, 5332, - false, 1.100e-3*ns, NULL, + false, 1.570e-3*ns, NULL, false, "omega_b"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc index fffde609b7..8b45f1f324 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SigmacPlusPlus.cc 79342 2014-02-24 11:42:42Z gcosmo $ +// $Id: G4SigmacPlusPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4SigmacPlusPlus* G4SigmacPlusPlus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.45398*GeV, 2.26*MeV, +2.0*eplus, + name, 2.45397*GeV, 2.26*MeV, +2.0*eplus, 1, +1, 0, 2, +2, 0, "baryon", 0, +1, 4222, diff --git a/source/particles/hadrons/barions/src/G4SigmacZero.cc b/source/particles/hadrons/barions/src/G4SigmacZero.cc index b06b2f658b..0d981928b9 100644 --- a/source/particles/hadrons/barions/src/G4SigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmacZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SigmacZero.cc 79342 2014-02-24 11:42:42Z gcosmo $ +// $Id: G4SigmacZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4SigmacZero* G4SigmacZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.45374*GeV, 2.16*MeV, +0.0*eplus, + name, 2.45375*GeV, 1.83*MeV, +0.0*eplus, 1, +1, 0, 2, -1, 0, "baryon", 0, +1, 4112, diff --git a/source/particles/hadrons/barions/src/G4XibMinus.cc b/source/particles/hadrons/barions/src/G4XibMinus.cc index f307bf7c1d..343bf1c6b3 100644 --- a/source/particles/hadrons/barions/src/G4XibMinus.cc +++ b/source/particles/hadrons/barions/src/G4XibMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4XibMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4XibMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,7 +70,7 @@ G4XibMinus* G4XibMinus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.7949*GeV, 0.42e-9*MeV, -1.*eplus, + name, 5.7944*GeV, 0.422e-9*MeV, -1.*eplus, 1, +1, 0, 1, -1, 0, "baryon", 0, +1, 5132, diff --git a/source/particles/hadrons/barions/src/G4XibZero.cc b/source/particles/hadrons/barions/src/G4XibZero.cc index 169f87f409..c9ddce067f 100644 --- a/source/particles/hadrons/barions/src/G4XibZero.cc +++ b/source/particles/hadrons/barions/src/G4XibZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4XibZero.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4XibZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,11 +70,11 @@ G4XibZero* G4XibZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.7931*GeV, 0.44e-9*MeV, 0, + name, 5.7918*GeV, 0.45e-9*MeV, 0, 1, +1, 0, 1, +1, 0, "baryon", 0, +1, 5232, - false, 1.490e-3*ns, NULL, + false, 1.464e-3*ns, NULL, false, "xi_b"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/barions/src/G4XicPlus.cc b/source/particles/hadrons/barions/src/G4XicPlus.cc index 9cb54e99fe..5fd74ef595 100644 --- a/source/particles/hadrons/barions/src/G4XicPlus.cc +++ b/source/particles/hadrons/barions/src/G4XicPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4XicPlus.cc 67971 2013-03-13 10:13:24Z gcosmo $ +// $Id: G4XicPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4XicPlus* G4XicPlus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.4678*GeV, 1.49e-9*MeV, +1.*eplus, + name, 2.46793*GeV, 1.49e-9*MeV, +1.*eplus, 1, +1, 0, 1, +1, 0, "baryon", 0, +1, 4232, diff --git a/source/particles/hadrons/barions/src/G4XicZero.cc b/source/particles/hadrons/barions/src/G4XicZero.cc index 637e9627d8..e1e4b41118 100644 --- a/source/particles/hadrons/barions/src/G4XicZero.cc +++ b/source/particles/hadrons/barions/src/G4XicZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4XicZero.cc 67971 2013-03-13 10:13:24Z gcosmo $ +// $Id: G4XicZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -69,7 +69,7 @@ G4XicZero* G4XicZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.47088*GeV, 5.9e-9*MeV, 0.0, + name, 2.47085*GeV, 5.9e-9*MeV, 0.0, 1, +1, 0, 1, -1, 0, "baryon", 0, +1, 4132, diff --git a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc index 3136be8e8b..4be572ad43 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiBMesonZero.cc 79342 2014-02-24 11:42:42Z gcosmo $ +// $Id: G4AntiBMesonZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -65,11 +65,11 @@ G4AntiBMesonZero* G4AntiBMesonZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.27958*GeV, 4.333e-10*MeV, 0., + name, 5.27961*GeV, 4.333e-10*MeV, 0., 0, -1, 0, 1, +1, 0, "meson", 0, 0, -511, - false, 1.519e-3*ns, NULL, + false, 1.520e-3*ns, NULL, false, "B"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc index d0bc69fb58..1143e6876f 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AntiBsMesonZero.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4AntiBsMesonZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -65,11 +65,11 @@ G4AntiBsMesonZero* G4AntiBsMesonZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.36677*GeV, 4.353e-10*MeV, 0., + name, 5.36679*GeV, 4.359e-10*MeV, 0., 0, -1, 0, 0, 0, 0, "meson", 0, 0, -531, - false, 1.512e-3*ns, NULL, + false, 1.510e-3*ns, NULL, false, "Bs"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc index dd63a1b5fb..ee8c79e48a 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BMesonMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4BMesonMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -65,7 +65,7 @@ G4BMesonMinus* G4BMesonMinus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.27926*GeV, 4.018e-10*MeV, -1.*eplus, + name, 5.27929*GeV, 4.018e-10*MeV, -1.*eplus, 0, -1, 0, 1, -1, 0, "meson", 0, 0, -521, diff --git a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc index 95b861b583..c860a43c71 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BMesonPlus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4BMesonPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -65,7 +65,7 @@ G4BMesonPlus* G4BMesonPlus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.27926*GeV, 4.018e-10*MeV, +1.*eplus, + name, 5.27929*GeV, 4.018e-10*MeV, +1.*eplus, 0, -1, 0, 1, +1, 0, "meson", 0, 0, 521, diff --git a/source/particles/hadrons/mesons/src/G4BMesonZero.cc b/source/particles/hadrons/mesons/src/G4BMesonZero.cc index 70d557aae4..7bca8de2c5 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BMesonZero.cc 79342 2014-02-24 11:42:42Z gcosmo $ +// $Id: G4BMesonZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -65,11 +65,11 @@ G4BMesonZero* G4BMesonZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.27958*GeV, 4.333e-10*MeV, 0., + name, 5.27961*GeV, 4.333e-10*MeV, 0., 0, -1, 0, 1, -1, 0, "meson", 0, 0, 511, - false, 1.519e-3*ns, NULL, + false, 1.520e-3*ns, NULL, false, "B"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc index 8f75704701..1d044b1088 100644 --- a/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BcMesonMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4BcMesonMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -64,11 +64,11 @@ G4BcMesonMinus* G4BcMesonMinus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 6.2756*GeV, 1.460e-9*MeV, -1.*eplus, + name, 6.2751*GeV, 1.302e-9*MeV, -1.*eplus, 0, -1, 0, 0, 0, 0, "meson", 0, 0, -541, - false, 0.452e-3*ns, NULL, + false, 0.507e-3*ns, NULL, false, "Bc"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc index cfc87f0208..fed3b71b35 100644 --- a/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BcMesonPlus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4BcMesonPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -64,11 +64,11 @@ G4BcMesonPlus* G4BcMesonPlus::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 6.2756*GeV, 1.460e-9*MeV, +1.*eplus, + name, 6.2751*GeV, 1.302e-9*MeV, +1.*eplus, 0, -1, 0, 0, 0, 0, "meson", 0, 0, 541, - false, 0.452e-3*ns, NULL, + false, 0.507e-3*ns, NULL, false, "Bc"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc index 3d84c9effa..39ce635248 100644 --- a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4BsMesonZero.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4BsMesonZero.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -64,11 +64,11 @@ G4BsMesonZero* G4BsMesonZero::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 5.36677*GeV, 4.353e-10*MeV, 0., + name, 5.36679*GeV, 4.359e-10*MeV, 0., 0, -1, 0, 0, 0, 0, "meson", 0, 0, 531, - false, 1.512e-3*ns, NULL, + false, 1.510e-3*ns, NULL, false, "Bs"); } theInstance = reinterpret_cast(anInstance); diff --git a/source/particles/hadrons/mesons/src/G4Etac.cc b/source/particles/hadrons/mesons/src/G4Etac.cc index 694241984c..46e6b70c6f 100644 --- a/source/particles/hadrons/mesons/src/G4Etac.cc +++ b/source/particles/hadrons/mesons/src/G4Etac.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Etac.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4Etac.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,7 +70,7 @@ G4Etac* G4Etac::Definition() // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 2.9836*GeV, 32.2*MeV, 0.0, + name, 2.9836*GeV, 31.8*MeV, 0.0, 0, -1, +1, 0, 0, +1, "meson", 0, 0, 441, diff --git a/source/particles/leptons/src/G4TauMinus.cc b/source/particles/leptons/src/G4TauMinus.cc index 66f1f31a61..c6bcf4e499 100644 --- a/source/particles/leptons/src/G4TauMinus.cc +++ b/source/particles/leptons/src/G4TauMinus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4TauMinus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4TauMinus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,7 +70,7 @@ G4TauMinus* G4TauMinus::Definition() // stable lifetime decay table // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 1.77682*GeV, 2.267e-9*MeV, -1.*eplus, + name, 1.77686*GeV, 2.267e-9*MeV, -1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", 1, 0, 15, diff --git a/source/particles/leptons/src/G4TauPlus.cc b/source/particles/leptons/src/G4TauPlus.cc index a55355f3f3..e3ee3afd36 100644 --- a/source/particles/leptons/src/G4TauPlus.cc +++ b/source/particles/leptons/src/G4TauPlus.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4TauPlus.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4TauPlus.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -70,7 +70,7 @@ G4TauPlus* G4TauPlus::Definition() // stable lifetime decay table // shortlived subType anti_encoding anInstance = new G4ParticleDefinition( - name, 1.77682*GeV, 2.267e-9*MeV, 1.*eplus, + name, 1.77686*GeV, 2.267e-9*MeV, 1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -15, diff --git a/source/particles/management/include/G4IonTable.hh b/source/particles/management/include/G4IonTable.hh index cb375b6852..e5d93ffb62 100644 --- a/source/particles/management/include/G4IonTable.hh +++ b/source/particles/management/include/G4IonTable.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IonTable.hh 94421 2015-11-16 08:22:56Z gcosmo $ +// $Id: G4IonTable.hh 96314 2016-04-06 07:21:51Z gcosmo $ // // // ------------------------------------------------------------ @@ -134,13 +134,23 @@ class G4IonTable G4ParticleDefinition* GetIon(G4int Z, G4int A, G4int lvl=0); G4ParticleDefinition* GetIon(G4int Z, G4int A, G4int L, G4int lvl); G4ParticleDefinition* GetIon(G4int Z, G4int A, G4double E, G4int J=0); - G4ParticleDefinition* GetIon(G4int Z, G4int A, G4int L, - G4double E, G4int J=0); + G4ParticleDefinition* GetIon(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J=0); + G4ParticleDefinition* GetIon(G4int Z, G4int A, G4double E, + char flbChar, G4int J=0); + G4ParticleDefinition* GetIon(G4int Z, G4int A, G4int L, G4double E, + G4int J=0); + G4ParticleDefinition* GetIon(G4int Z, G4int A, G4int L, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J=0); + G4ParticleDefinition* GetIon(G4int Z, G4int A, G4int L, G4double E, + char flbChar, G4int J=0); // Z: Atomic Number // A: Atomic Mass (nn + np +nlambda) // L: Number of Lmabda // E: Excitaion energy // lvl: Isomer Level 0: ground state) + // flb: Floating level base (enum defined in G4Ions.hh) + // flbChar: Floating level base denoted bya character (X,Y,Z,U,V,W) // J: Total Angular momentum (in unit of 1/2) : not used G4ParticleDefinition* GetIon(G4int encoding); @@ -151,13 +161,23 @@ class G4IonTable G4ParticleDefinition* FindIon(G4int Z, G4int A, G4int lvl=0); G4ParticleDefinition* FindIon(G4int Z, G4int A, G4int L, G4int lvl); G4ParticleDefinition* FindIon(G4int Z, G4int A, G4double E, G4int J=0); - G4ParticleDefinition* FindIon(G4int Z, G4int A, G4int L, - G4double E, G4int J=0); + G4ParticleDefinition* FindIon(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J=0); + G4ParticleDefinition* FindIon(G4int Z, G4int A, G4double E, + char flbChar, G4int J=0); + G4ParticleDefinition* FindIon(G4int Z, G4int A, G4int L, G4double E, + G4int J=0); + G4ParticleDefinition* FindIon(G4int Z, G4int A, G4int L, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J=0); + G4ParticleDefinition* FindIon(G4int Z, G4int A, G4int L, G4double E, + char flbChar, G4int J=0); // Z: Atomic Number // A: Atomic Mass (nn + np +nlambda) // L: Number of Lmabda // E: Excitaion energy // lvl: Isomer Level 0: ground state) + // flb: Floating level base (enum defined in G4Ions.hh) + // flbChar: Floating level base denoted bya character (X,Y,Z,U,V,W) // J: Total Angular momentum (in unit of 1/2) : not used static G4bool IsIon(const G4ParticleDefinition*); @@ -168,8 +188,10 @@ class G4IonTable const G4String& GetIonName(G4int Z, G4int A, G4int lvl=0) const; - const G4String& GetIonName(G4int Z, G4int A, G4double E) const; - const G4String& GetIonName(G4int Z, G4int A, G4int L, G4double E) const; + const G4String& GetIonName(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::noFloat) const; + const G4String& GetIonName(G4int Z, G4int A, G4int L, G4double E, + G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::noFloat) const; const G4String& GetIonName(G4int Z, G4int A, G4int L, G4int lvl) const; // get ion name @@ -210,7 +232,9 @@ class G4IonTable // lvl is isomer level G4double GetLifeTime(const G4ParticleDefinition*) const; - G4double GetLifeTime(G4int Z, G4int A, G4double E) const; + G4double GetLifeTime(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::noFloat) const; + G4double GetLifeTime(G4int Z, G4int A, G4double E, char flbChar) const; // Returns a life time of an ion. -1 for stable ion, and -1001 for ion // that is not listed in G4NuclideTable. @@ -240,12 +264,13 @@ class G4IonTable protected: G4ParticleDefinition* FindIonInMaster(G4int Z, G4int A, G4int lvl=0); G4ParticleDefinition* FindIonInMaster(G4int Z, G4int A, G4int L, G4int lvl); - G4ParticleDefinition* FindIonInMaster(G4int Z, G4int A, G4double E, G4int J=0); + G4ParticleDefinition* FindIonInMaster(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J=0); G4ParticleDefinition* FindIonInMaster(G4int Z, G4int A, G4int L, - G4double E, G4int J=0); + G4double E, G4Ions::G4FloatLevelBase flb, G4int J=0); - G4ParticleDefinition* CreateIon(G4int Z, G4int A, G4double E); - G4ParticleDefinition* CreateIon(G4int Z, G4int A, G4int L, G4double E); + G4ParticleDefinition* CreateIon(G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb); + G4ParticleDefinition* CreateIon(G4int Z, G4int A, G4int L, G4double E, G4Ions::G4FloatLevelBase flb); G4ParticleDefinition* CreateIon(G4int Z, G4int A, G4int lvl=0); G4ParticleDefinition* CreateIon(G4int Z, G4int A, G4int L, G4int lvl); @@ -263,7 +288,7 @@ class G4IonTable // Create Ion - G4IsotopeProperty* FindIsotope(G4int Z, G4int A, G4double E) const; + G4IsotopeProperty* FindIsotope(G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb) const; G4IsotopeProperty* FindIsotope(G4int Z, G4int A, G4int lvl) const; // Ask properties of isotopes to this G4VIsotopeTable @@ -296,7 +321,6 @@ class G4IonTable // ion list. This implementation is equivalent to make the ion table thread // private. The two shadow ponters are used by each worker thread to copy the // content from the master thread. - static const G4double tolerance; enum { numberOfElements = 118}; static const G4String elementName[numberOfElements]; diff --git a/source/particles/management/include/G4Ions.hh b/source/particles/management/include/G4Ions.hh index 0a833b51e2..12bb317d3c 100644 --- a/source/particles/management/include/G4Ions.hh +++ b/source/particles/management/include/G4Ions.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Ions.hh 69557 2013-05-08 12:01:40Z gcosmo $ +// $Id: G4Ions.hh 96314 2016-04-06 07:21:51Z gcosmo $ // // // ------------------------------------------------------------ @@ -91,12 +91,33 @@ class G4Ions : public G4ParticleDefinition // Get Isomer level (=0 for ground state) G4int GetIsomerLevel() const; - private: + // enumerator for floating level base + enum class G4FloatLevelBase { noFloat=0, plus_U, plus_V, plus_W, plus_X, plus_Y, plus_Z }; + static G4Ions::G4FloatLevelBase FloatLevelBase(char flbChar); + static G4Ions::G4FloatLevelBase FloatLevelBase(G4int flbIdx); + static char FloatLevelBaseChar(G4Ions::G4FloatLevelBase flb); + + // set/get methods for floating level base + G4Ions::G4FloatLevelBase GetFloatLevelBase() const; + G4int GetFloatLevelBaseIndex() const; + void SetFloatLevelBase(G4Ions::G4FloatLevelBase flb); + void SetFloatLevelBase(char flbChar); + void SetFloatLevelBase(G4int flbIdx); + + private: G4double theExcitationEnergy; G4int theIsomerLevel; + G4FloatLevelBase floatLevelBase; }; +#define plusU G4Ions::G4FloatLevelBase::plus_U +#define plusV G4Ions::G4FloatLevelBase::plus_V +#define plusW G4Ions::G4FloatLevelBase::plus_W +#define plusX G4Ions::G4FloatLevelBase::plus_X +#define plusY G4Ions::G4FloatLevelBase::plus_Y +#define plusZ G4Ions::G4FloatLevelBase::plus_Z + inline G4Ions* G4Ions::IonsDefinition() { @@ -121,6 +142,87 @@ inline return theIsomerLevel; } +inline + G4Ions::G4FloatLevelBase G4Ions::GetFloatLevelBase() const +{ + return floatLevelBase; +} + +inline + G4int G4Ions::GetFloatLevelBaseIndex() const +{ + return static_cast(floatLevelBase); +} + +inline + void G4Ions::SetFloatLevelBase(G4Ions::G4FloatLevelBase flb) +{ + floatLevelBase = flb; +} + +inline + void G4Ions::SetFloatLevelBase(char flbChar) +{ + floatLevelBase = FloatLevelBase(flbChar); +} + +inline + void G4Ions::SetFloatLevelBase(G4int flbIdx) +{ + floatLevelBase = FloatLevelBase(flbIdx); +} + +inline + G4Ions::G4FloatLevelBase G4Ions::FloatLevelBase(char flbChar) +{ + G4Ions::G4FloatLevelBase flb = G4FloatLevelBase::noFloat; + switch(flbChar) + { + case 'u': case 'U': + flb = plusU; + break; + case 'v': case 'V': + flb = plusV; + break; + case 'w': case 'W': + flb = plusW; + break; + case 'x': case 'X': + flb = plusX; + break; + case 'y': case 'Y': + flb = plusY; + break; + case 'z': case 'Z': + flb = plusZ; + break; + default: + break; + } + return flb; +} + +inline + G4Ions::G4FloatLevelBase G4Ions::FloatLevelBase(G4int flbIdx) +{ + static G4Ions::G4FloatLevelBase flb[] = + { G4FloatLevelBase::noFloat, + G4FloatLevelBase::plus_U, + G4FloatLevelBase::plus_V, + G4FloatLevelBase::plus_W, + G4FloatLevelBase::plus_X, + G4FloatLevelBase::plus_Y, + G4FloatLevelBase::plus_Z }; + return flb[flbIdx]; +} + +inline + char G4Ions::FloatLevelBaseChar(G4Ions::G4FloatLevelBase flb) +{ + static char flbChar[] = {'\0','U','V','W','X','Y','Z'}; + return flbChar[static_cast(flb)]; +} + #endif diff --git a/source/particles/management/include/G4IsotopeProperty.hh b/source/particles/management/include/G4IsotopeProperty.hh index 222c4667dd..7fe0d8b28c 100644 --- a/source/particles/management/include/G4IsotopeProperty.hh +++ b/source/particles/management/include/G4IsotopeProperty.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IsotopeProperty.hh 69557 2013-05-08 12:01:40Z gcosmo $ +// $Id: G4IsotopeProperty.hh 96314 2016-04-06 07:21:51Z gcosmo $ // // // ------------------------------------------------------------ @@ -41,6 +41,7 @@ #include "globals.hh" class G4DecayTable; +#include "G4Ions.hh" class G4IsotopeProperty { // Class Description @@ -89,6 +90,11 @@ class G4IsotopeProperty G4int GetIsomerLevel() const; void SetIsomerLevel(G4int level); + // Set/Get floating level base + G4Ions::G4FloatLevelBase GetFloatLevelBase() const; + void SetFloatLevelBase(G4Ions::G4FloatLevelBase flb); + void SetFloatLevelBase(G4int flbIndex); + // Set/Get life time G4double GetLifeTime() const; void SetLifeTime(G4double T); @@ -109,6 +115,7 @@ class G4IsotopeProperty G4DecayTable* fDecayTable; // decay Table G4double fMagneticMoment; // magnetic moment G4int fIsomerLevel; // isomer level + G4Ions::G4FloatLevelBase fFloatLevelBase; // floating level base }; inline @@ -205,6 +212,25 @@ inline { fDecayTable = table; } + +inline + G4Ions::G4FloatLevelBase G4IsotopeProperty::GetFloatLevelBase() const +{ + return fFloatLevelBase; +} + +inline + void G4IsotopeProperty::SetFloatLevelBase(G4Ions::G4FloatLevelBase flb) +{ + fFloatLevelBase = flb; +} + +inline + void G4IsotopeProperty::SetFloatLevelBase(G4int flbIndex) +{ + fFloatLevelBase = G4Ions::FloatLevelBase(flbIndex); +} + #endif @@ -214,5 +240,3 @@ inline - - diff --git a/source/particles/management/include/G4KL3DecayChannel.hh b/source/particles/management/include/G4KL3DecayChannel.hh index 93394472ba..960aa260fa 100644 --- a/source/particles/management/include/G4KL3DecayChannel.hh +++ b/source/particles/management/include/G4KL3DecayChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4KL3DecayChannel.hh 67971 2013-03-13 10:13:24Z gcosmo $ +// $Id: G4KL3DecayChannel.hh 95906 2016-03-02 10:56:50Z gcosmo $ // // // ------------------------------------------------------------ @@ -66,7 +66,7 @@ class G4KL3DecayChannel :public G4VDecayChannel protected: // assignment of daughter particles for arrays of daughters[] etc. enum{idPi=0, idLepton=1, idNutrino=2}; - G4double daughterM[3]; + //G4double daughterM[3]; protected: // calcurate momentum of daughters @@ -88,11 +88,10 @@ class G4KL3DecayChannel :public G4VDecayChannel // pLambda : linear energy dependence of f+ // pXi0 : = f+(0)/f- // pNorm : normalization factor - G4double DalitzDensity(G4double Epi, G4double El, G4double Enu); + G4double DalitzDensity(G4double parentmass, G4double Epi, G4double El, G4double Enu, + G4double massPi, G4double massL , G4double massNu ); private: // constants used in DalitzDensity() - // Kon mass - G4double massK; // coefficients G4double pLambda; G4double pXi0; diff --git a/source/particles/management/include/G4MuonDecayChannelWithSpin.hh b/source/particles/management/include/G4MuonDecayChannelWithSpin.hh index f5473635a4..49fb995aa0 100644 --- a/source/particles/management/include/G4MuonDecayChannelWithSpin.hh +++ b/source/particles/management/include/G4MuonDecayChannelWithSpin.hh @@ -78,39 +78,33 @@ public: // With Description private: // Radiative Correction Factors - G4double F_c(G4double x, G4double x0); - G4double F_theta(G4double x, G4double x0); - G4double R_c(G4double x); - - G4double EMMU; - G4double EMASS; + G4double F_c(G4double x, G4double x0 , G4double omega); + G4double F_theta(G4double x, G4double x0 , G4double omega); + G4double R_c(G4double x , G4double omega); }; -inline G4double G4MuonDecayChannelWithSpin::F_c(G4double x, G4double x0) +inline G4double G4MuonDecayChannelWithSpin::F_c(G4double x, G4double x0 , G4double omega) { - G4double omega = std::log(EMMU/EMASS); G4double f_c; f_c = (5.+17.*x-34.*x*x)*(omega+std::log(x))-22.*x+34.*x*x; f_c = (1.-x)/(3.*x*x)*f_c; - f_c = (6.-4.*x)*R_c(x)+(6.-6.*x)*std::log(x) + f_c; + f_c = (6.-4.*x)*R_c(x,omega)+(6.-6.*x)*std::log(x) + f_c; f_c = (CLHEP::fine_structure_const/CLHEP::twopi) * (x*x-x0*x0) * f_c; return f_c; } -inline G4double G4MuonDecayChannelWithSpin::F_theta(G4double x, G4double x0) +inline G4double G4MuonDecayChannelWithSpin::F_theta(G4double x, G4double x0,G4double omega) { - G4double omega = std::log(EMMU/EMASS); - G4double f_theta; f_theta = (1.+x+34*x*x)*(omega+std::log(x))+3.-7.*x-32.*x*x; f_theta = f_theta + ((4.*(1.-x)*(1.-x))/x)*std::log(1.-x); f_theta = (1.-x)/(3.*x*x) * f_theta; - f_theta = (2.-4.*x)*R_c(x)+(2.-6.*x)*std::log(x)-f_theta; + f_theta = (2.-4.*x)*R_c(x,omega)+(2.-6.*x)*std::log(x)-f_theta; f_theta = (CLHEP::fine_structure_const/CLHEP::twopi) * (x*x-x0*x0) * f_theta; return f_theta; diff --git a/source/particles/management/include/G4NuclideTable.hh b/source/particles/management/include/G4NuclideTable.hh index 66426b6732..a2141c685e 100644 --- a/source/particles/management/include/G4NuclideTable.hh +++ b/source/particles/management/include/G4NuclideTable.hh @@ -93,19 +93,21 @@ public: G4double GetLevelTolerance() { return flevelTolerance; }; void AddState(G4int,G4int,G4double,G4double,G4int ionJ=0,G4double ionMu=0.0); - + void AddState(G4int,G4int,G4double,G4int,G4double,G4int ionJ=0,G4double ionMu=0.0); //G4bool Exists(G4double,G4double,G4double); //Use GetIsotope(G4int Z, G4int A, G4double E) //void FillProperty(G4ParticleDefinition*); - size_t GetSizeOfIsotopeList(){ return ( fIsotopeList ? fIsotopeList->size() : static_cast(0)) ; }; + size_t GetSizeOfIsotopeList() + { return ( fIsotopeList ? fIsotopeList->size() : static_cast(0)) ; }; // // with description // - virtual G4IsotopeProperty* GetIsotope(G4int Z, G4int A, G4double E); + virtual G4IsotopeProperty* GetIsotope(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::noFloat); virtual G4IsotopeProperty* GetIsotopeByIsoLvl(G4int Z, G4int A, G4int lvl=0); // // again it will replace the pure virtual one in the abstract base class. @@ -113,6 +115,7 @@ public: // Z: Atomic Number // A: Atomic Mass // E: Excitaion energy + // flb: floating level base (enum defined in G4Ions.hh) // or // lvl: isomer level // @@ -159,8 +162,10 @@ private: G4IsotopeList* fIsotopeList; G4double flevelTolerance; G4NuclideTableMessenger* fMessenger; -}; +private: + G4double StripFloatLevelBase(G4double E, G4int& flbIndex); +}; inline size_t G4NuclideTable::entries() const @@ -174,4 +179,5 @@ inline if ( fIsotopeList && idxsize()) return (*fIsotopeList)[idx]; else return 0; } + #endif diff --git a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh index 9665b5dd90..eec0c3f1af 100644 --- a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh +++ b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PhaseSpaceDecayChannel.hh 92057 2015-08-14 13:34:55Z gcosmo $ +// $Id: G4PhaseSpaceDecayChannel.hh 95906 2016-03-02 10:56:50Z gcosmo $ // // // ------------------------------------------------------------ @@ -41,6 +41,7 @@ #include "G4ios.hh" #include "globals.hh" #include "G4VDecayChannel.hh" +#include "G4Cache.hh" class G4PhaseSpaceDecayChannel :public G4VDecayChannel { @@ -73,8 +74,9 @@ class G4PhaseSpaceDecayChannel :public G4VDecayChannel public: static G4double Pmx(G4double e, G4double p1, G4double p2); - private: - static G4ThreadLocal G4double current_parent_mass; + private: + //A thread-local object + G4Cache current_parent_mass; G4DecayProducts *OneBodyDecayIt(); G4DecayProducts *TwoBodyDecayIt(); G4DecayProducts *ThreeBodyDecayIt(); diff --git a/source/particles/management/include/G4PionRadiativeDecayChannel.hh b/source/particles/management/include/G4PionRadiativeDecayChannel.hh index 3e2935d4b3..21ae268aab 100644 --- a/source/particles/management/include/G4PionRadiativeDecayChannel.hh +++ b/source/particles/management/include/G4PionRadiativeDecayChannel.hh @@ -77,31 +77,6 @@ class G4PionRadiativeDecayChannel : public G4VDecayChannel virtual G4DecayProducts *DecayIt(G4double); - private: - - G4double beta; - - G4double cib; - G4double csdp; - G4double csdm; - G4double cif; - G4double cig; - - G4double xl, yl, xu, yu, d2wmax; - - G4double D2W(const G4double x, const G4double y); - }; -inline G4double G4PionRadiativeDecayChannel::D2W(const G4double x, - const G4double y) -{ - G4double d2w = cib*(1.-y)*(1.+((1.-x)*(1.-x)))/((x*x)*(x+y-1.)) + - csdp*(1.-x)*((x+y-1.)*(x+y-1.)) + - csdm*(1.-x)*((1.-y)*(1.-y)) + - cif*(x-1.)*(1.-y)/x + - cig*(1.-y)*(1.-x+(x*x)/(x+y-1.))/x; - return d2w; -} - #endif diff --git a/source/particles/management/include/G4VDecayChannel.hh b/source/particles/management/include/G4VDecayChannel.hh index 29bdd6ee55..d61474567c 100644 --- a/source/particles/management/include/G4VDecayChannel.hh +++ b/source/particles/management/include/G4VDecayChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VDecayChannel.hh 93024 2015-09-30 15:59:32Z gcosmo $ +// $Id: G4VDecayChannel.hh 95906 2016-03-02 10:56:50Z gcosmo $ // // // ------------------------------------------------------------ @@ -43,65 +43,13 @@ #include "G4ios.hh" #include "globals.hh" #include "G4ThreeVector.hh" -/////@@#include "G4PDefSplitter.hh" +#include "G4Threading.hh" +#include "G4AutoLock.hh" class G4ParticleDefinition; class G4DecayProducts; class G4ParticleTable; -/////@@class G4DecayChannelData -/////@@{ -/////@@ // Encapsulates the fields associated to the class G4VDecayChannel that -/////@@ // may not be read-only. -/////@@ -/////@@ public: -/////@@ -/////@@ void initialize() -/////@@ { -/////@@ parent = 0; -/////@@ daughters = 0; -/////@@ parent_mass = 0.0; -/////@@ daughters_mass = 0; -/////@@ daughters_width = 0; -/////@@ } -/////@@ -/////@@ G4ParticleDefinition* parent; -/////@@ G4ParticleDefinition** daughters; -/////@@ G4double parent_mass; -/////@@ G4double* daughters_mass; -/////@@ G4double* daughters_width; -/////@@}; -/////@@ -/////@@// The type G4DecayChannelManager is introduced to encapsulate the methods used -/////@@// by both the master thread and worker threads to allocate memory space for -/////@@// the fields encapsulated by the class G4DecayChannelData. When each thread -/////@@// initializes the value for these fields, it refers to them using a macro -/////@@// definition defined below. For every G4DecayChannel instance, there is -/////@@// a corresponding G4DecayChannelData instance. All G4DecayChannelData -/////@@// instances are organized by the class G4DecayChannelManager as an array. -/////@@// The field "int instanceID" is added to the class G4DecayChannel. -/////@@// The value of this field in each G4DecayChannel instance is the subscript -/////@@// of the corresponding G4DecayChannelData instance. -/////@@// In order to use the class G4DecayChannelManager, we add a static member in -/////@@// G4DecayChannel as follows: "static G4DecayChannelManager subInstanceManager". -/////@@// For the master thread, the array for G4DecayChannelData instances grows -/////@@// dynamically along with G4DecayChannel instances are created. -/////@@// For each worker thread, it copies the array of G4DecayChannelData instances -/////@@// from the master thread. -/////@@// In addition, it invokes a method similiar to the constructor explicitly -/////@@// to achieve the partial effect for each instance in the array. -/////@@// -/////@@typedef G4PDefSplitter G4DecayChannelManager; -/////@@ -/////@@// These macros change the references to fields that are now encapsulated -/////@@// in the class G4DecayChannelData. -/////@@// -/////@@#define G4MT_parent ((G4VDecayChannel::subInstanceManager.offset[instanceID]).parent) -/////@@#define G4MT_daughters ((G4VDecayChannel::subInstanceManager.offset[instanceID]).daughters) -/////@@#define G4MT_parent_mass ((G4VDecayChannel::subInstanceManager.offset[instanceID]).parent_mass) -/////@@#define G4MT_daughters_mass ((G4VDecayChannel::subInstanceManager.offset[instanceID]).daughters_mass) -/////@@#define G4MT_daughters_width ((G4VDecayChannel::subInstanceManager.offset[instanceID]).daughters_width) -/////@@ class G4VDecayChannel { // Class Description: @@ -180,17 +128,16 @@ class G4VDecayChannel void SetPolarization(const G4ThreeVector&); const G4ThreeVector& GetPolarization() const; -/////@@ -/////@@ // returns the instance ID. -/////@@ inline G4int GetInstanceID() const; -/////@@ // returns the private data instance manager. -/////@@ static const G4DecayChannelManager& GetSubInstanceManager(); - protected: // with description // clear daughters array void ClearDaughtersName(); + protected: + inline void CheckAndFillDaughters(); + inline void CheckAndFillParent(); + + private: // fill daughters array void FillDaughters(); // fill parent @@ -242,15 +189,13 @@ class G4VDecayChannel static const G4String noName; -/////@@ // This field is used as instance ID. -/////@@ G4int instanceID; -/////@@ // This field helps to use the class G4DecayChannelManager introduced above. -/////@@ G4PART_DLL static G4DecayChannelManager subInstanceManager; G4ParticleDefinition* G4MT_parent; G4ParticleDefinition** G4MT_daughters; G4double G4MT_parent_mass; G4double* G4MT_daughters_mass; G4double* G4MT_daughters_width; + G4Mutex daughtersMutex; + G4Mutex parentMutex; }; // ------------------------------------------------------------ @@ -267,7 +212,7 @@ inline G4ParticleDefinition* G4VDecayChannel::GetDaughter(G4int anIndex) { // pointers to daughter particles are filled, if they are not set yet - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); // get the pointer to a daughter particle if ( (anIndex>=0) && (anIndex1) G4cout << "G4DalitzDecayChannel::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); diff --git a/source/particles/management/src/G4DecayTable.cc b/source/particles/management/src/G4DecayTable.cc index 434c4762a2..6e5bd9aadc 100644 --- a/source/particles/management/src/G4DecayTable.cc +++ b/source/particles/management/src/G4DecayTable.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DecayTable.cc 92057 2015-08-14 13:34:55Z gcosmo $ +// $Id: G4DecayTable.cc 95052 2016-01-21 08:34:03Z gcosmo $ // // // ------------------------------------------------------------ @@ -96,8 +96,7 @@ G4VDecayChannel *G4DecayTable::SelectADecayChannel(G4double parentMass) if (r < sumBR) return (*i); } } - G4VDecayChannelVector::iterator i = channels->begin(); - return (*i); + return 0; } void G4DecayTable::DumpInfo() const diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc index 8c1dbd712f..ae42b81ba7 100644 --- a/source/particles/management/src/G4IonTable.cc +++ b/source/particles/management/src/G4IonTable.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IonTable.cc 94421 2015-11-16 08:22:56Z gcosmo $ +// $Id: G4IonTable.cc 96797 2016-05-09 10:13:42Z gcosmo $ // // // -------------------------------------------------------------- @@ -76,7 +76,6 @@ G4ThreadLocal G4IonTable::G4IonList* G4IonTable::fIonList = 0; G4ThreadLocal std::vector *G4IonTable::fIsotopeTableList = 0; G4IonTable::G4IonList* G4IonTable::fIonListShadow = 0; std::vector *G4IonTable::fIsotopeTableListShadow = 0; -const G4double G4IonTable::tolerance = 2.0*keV; namespace lightions { static const G4ParticleDefinition* p_proton=0; @@ -241,7 +240,8 @@ void G4IonTable::DestroyWorkerG4IonTable() //////////////////// // -- CreateIon method ------ //////////////////// -G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) +G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb) { G4ParticleDefinition* ion=0; @@ -264,7 +264,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) return 0; } - G4double life = -1.0; + G4double life = 0.0; G4DecayTable* decayTable =0; G4bool stable = true; G4double mu = 0.0; @@ -272,7 +272,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) G4int lvl =0; G4int J=0; - const G4IsotopeProperty* fProperty = FindIsotope(Z, A, E); + const G4IsotopeProperty* fProperty = FindIsotope(Z, A, E, flb); if (fProperty !=0 ){ Eex = fProperty->GetEnergy(); lvl = fProperty->GetIsomerLevel(); @@ -288,7 +288,10 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) if (GetVerboseLevel()>1) { G4ExceptionDescription ed; ed << "G4IonTable::CreateIon() : G4IsotopeProperty object was not found for" - << " Z = " << Z << " A = " << A << " E = " << E/keV << " (keV).\n" + << " Z = " << Z << " A = " << A << " E = " << E/keV << " (keV)"; + if(flb!=G4Ions::G4FloatLevelBase::noFloat) + { ed << " FloatingLevel +" << G4Ions::FloatLevelBaseChar(flb); } + ed << ".\n" << " Physics quantities such as life are not set for this ion."; G4Exception( "G4IonTable::CreateIon()","PART70105", JustWarning, ed); } @@ -299,13 +302,13 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) if (Eex>0.0) lvl=9; } - Eex = G4NuclideTable::Round(Eex); + //Eex = G4NuclideTable::Round(Eex); if (Eex==0.0) lvl=0; // ion name G4String name =""; /////////////if (lvl<9) name = GetIonName(Z, A, lvl); if (lvl==0) name = GetIonName(Z, A, lvl); - else name = GetIonName(Z, A, Eex); + else name = GetIonName(Z, A, Eex, flb); // PDG encoding G4int encoding = GetNucleusEncoding(Z,A,E,lvl); @@ -336,6 +339,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) // ion->SetPDGMagneticMoment(mu); + static_cast(ion)->SetFloatLevelBase(flb); //No Anti particle registered ion->SetAntiPDGEncoding(0); @@ -374,9 +378,10 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E) //////////////////// -G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4double E) +G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4double E, + G4Ions::G4FloatLevelBase flb) { - if (LL==0) return CreateIon(Z,A,E); + if (LL==0) return CreateIon(Z,A,E,flb); // create hyper nucleus G4ParticleDefinition* ion=0; @@ -400,12 +405,13 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4double } G4int J=0; - G4double life = -1.0; + G4double life = 0.0; G4DecayTable* decayTable =0; G4bool stable = true; // excitation energy - G4double Eex = G4NuclideTable::Round(E); + //G4double Eex = G4NuclideTable::Round(E); + G4double Eex = E; G4double mass = GetNucleusMass(Z, A, LL)+ Eex; G4int lvl = 0; // lvl is assigned to 9 temporally @@ -421,7 +427,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4double // spin, parity, isospin values are fixed // // get ion name - G4String name = GetIonName(Z, A, LL, Eex); + G4String name = GetIonName(Z, A, LL, Eex, flb); ion = new G4Ions( name, mass, 0.0*MeV, charge, J, +1, 0, @@ -436,6 +442,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4double G4double mu = 0.0; // magnetic moment ion->SetPDGMagneticMoment(mu); + static_cast(ion)->SetFloatLevelBase(flb); //No Anti particle registered ion->SetAntiPDGEncoding(0); @@ -462,7 +469,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4double //////////////////////////////// G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int lvl) { - if(lvl == 0) return CreateIon(Z,A,0.0); + if(lvl == 0) return CreateIon(Z,A,0.0,G4Ions::G4FloatLevelBase::noFloat); G4Exception( "G4IonTable::CreateIon()","PART105", JustWarning, "Ion cannot be created by an isomer level. Use excitation energy."); return 0; @@ -473,6 +480,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int lvl) G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4int lvl) { if (LL==0) return CreateIon(Z,A,lvl); + if(lvl == 0) return CreateIon(Z,A,0.0,G4Ions::G4FloatLevelBase::noFloat); if (lvl>0) { G4ExceptionDescription ed; @@ -482,7 +490,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int LL, G4int lv return 0; } - return CreateIon(A,Z,LL,0.0); + return 0; } //////////////////// @@ -498,37 +506,31 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int lvl) } #endif return 0; - } - + } + if ( lvl == 0 ) return GetIon(Z,A,0.0); + // Search ions with A, Z, lvl G4ParticleDefinition* ion = FindIon(Z,A,lvl); - + // create ion #ifdef G4MULTITHREADED - if(ion == 0) - { - if(G4Threading::IsWorkerThread()) - { + if (ion ==0 ){ + if(G4Threading::IsWorkerThread()){ G4MUTEXLOCK(&G4IonTable::ionTableMutex); ion = FindIonInMaster(Z,A,lvl); - if(ion == 0 && lvl == 0) ion = CreateIon(Z,A,lvl); if(ion != 0) InsertWorker(ion); G4MUTEXUNLOCK(&G4IonTable::ionTableMutex); - } - else - { if(lvl == 0) ion = CreateIon(Z,A,lvl); } + } } -#else - if(ion == 0 && lvl == 0) ion = CreateIon(Z, A, lvl); #endif - -// if(ion == 0) -// { -// G4ExceptionDescription ed; -// ed << "Isomer level " << lvl << " is unknown for the isotope (Z=" -// << Z << ", A=" << A << "). Null pointer is returned."; -// G4Exception( "G4IonTable::GetIon()","PART106", JustWarning, ed); -// } + if (ion ==0 ){ + G4Exception( "G4IonTable::GetIon()","PART105", JustWarning, + "Ion cannot be created by an isomer level. Use excitation energy."); + // G4ExceptionDescription ed; + // ed << "Isomer level " << lvl << " is unknown for the isotope (Z=" + // << Z << ", A=" << A << "). Null pointer is returned."; + // G4Exception( "G4IonTable::GetIon()","PART106", JustWarning, ed); + } return ion; } @@ -565,16 +567,15 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4int lvl) if (ion == 0) { if (lvl==0) { #ifdef G4MULTITHREADED - if(G4Threading::IsWorkerThread()) - { + if(G4Threading::IsWorkerThread()){ G4MUTEXLOCK(&G4IonTable::ionTableMutex); ion = FindIonInMaster(Z,A,LL,lvl); if(ion == 0) ion = CreateIon(Z, A, LL, lvl); InsertWorker(ion); G4MUTEXUNLOCK(&G4IonTable::ionTableMutex); + } else { + ion = CreateIon(Z, A, LL, lvl); } - else - { ion = CreateIon(Z, A, LL, lvl); } #else ion = CreateIon(Z, A, LL, lvl); #endif @@ -593,6 +594,16 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4int lvl) //////////////////// G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, G4int J) +{ return GetIon(Z,A,E,G4Ions::G4FloatLevelBase::noFloat,J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, + char flbChar, G4int J) +{ return GetIon(Z,A,E,G4Ions::FloatLevelBase(flbChar),J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J) { if ( (A<1) || (Z<=0) || (E<0.0) || (A>999) || (J<0) ) { #ifdef G4VERBOSE @@ -605,7 +616,7 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, G4int J) } // Search ions with A, Z - G4ParticleDefinition* ion = FindIon(Z,A,E,J); + G4ParticleDefinition* ion = FindIon(Z,A,E,flb,J); // create ion #ifdef G4MULTITHREADED @@ -614,16 +625,16 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, G4int J) if(G4Threading::IsWorkerThread()) { G4MUTEXLOCK(&G4IonTable::ionTableMutex); - ion = FindIonInMaster(Z,A,E,J); - if(ion == 0) ion = CreateIon(Z,A,E); + ion = FindIonInMaster(Z,A,E,flb,J); + if(ion == 0) ion = CreateIon(Z,A,E,flb); InsertWorker(ion); G4MUTEXUNLOCK(&G4IonTable::ionTableMutex); } else - { ion = CreateIon(Z,A,E); } + { ion = CreateIon(Z,A,E,flb); } } #else - if (ion == 0) ion = CreateIon(Z, A, E); + if (ion == 0) ion = CreateIon(Z,A,E,flb); #endif return ion; @@ -631,8 +642,18 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, G4int J) //////////////////// G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4double E, G4int J) +{ return GetIon(Z,A,LL,E,G4Ions::G4FloatLevelBase::noFloat,J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4double E, + char flbChar, G4int J) +{ return GetIon(Z,A,LL,E,G4Ions::FloatLevelBase(flbChar),J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J) { - if (LL==0) return GetIon(Z,A,E,J); + if (LL==0) return GetIon(Z,A,E,flb,J); if (A < 2 || Z < 0 || Z > A-LL || LL>A || A>999 ) { #ifdef G4VERBOSE @@ -655,7 +676,7 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4double E, } // Search ions with A, Z - G4ParticleDefinition* ion = FindIon(Z,A,LL,E,J); + G4ParticleDefinition* ion = FindIon(Z,A,LL,E,flb,J); // create ion #ifdef G4MULTITHREADED @@ -664,16 +685,16 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4int LL, G4double E, if(G4Threading::IsWorkerThread()) { G4MUTEXLOCK(&G4IonTable::ionTableMutex); - ion = FindIonInMaster(Z,A,LL,E,J); - if(ion == 0) ion = CreateIon(Z,A,LL,E); + ion = FindIonInMaster(Z,A,LL,E,flb,J); + if(ion == 0) ion = CreateIon(Z,A,LL,E,flb); InsertWorker(ion); G4MUTEXUNLOCK(&G4IonTable::ionTableMutex); } else - { ion = CreateIon(Z,A,LL,E); } + { ion = CreateIon(Z,A,LL,E,flb); } } #else - if(ion == 0) ion = CreateIon(Z, A, LL, E); + if(ion == 0) ion = CreateIon(Z,A,LL,E,flb); #endif return ion; @@ -699,8 +720,20 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int encoding) return GetIon( Z, A, LL, IsoLvl); } -//////////////////// +///////////////////// +// -- FindIon methods ------ +///////////////////// G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4double E, G4int J) +{ return FindIon(Z,A,E,G4Ions::G4FloatLevelBase::noFloat,J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4double E, + char flbChar, G4int J) +{ return FindIon(Z,A,E,G4Ions::FloatLevelBase(flbChar),J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J) { if ( (A<1) || (Z<=0) || (J<0) || (E<0.0) || (A>999) ) { #ifdef G4VERBOSE @@ -732,9 +765,12 @@ G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4double E, G4int J) if ( ( ion->GetAtomicNumber() != Z) || (ion->GetAtomicMass()!=A) ) break; // excitation level G4double anExcitaionEnergy = ((const G4Ions*)(ion))->GetExcitationEnergy(); - if ( std::fabs( E - anExcitaionEnergy )< tolerance) { - isFound = true; - break; + if (std::fabs(E - anExcitaionEnergy) < pNuclideTable->GetLevelTolerance() ) { + if(((const G4Ions*)(ion))->GetFloatLevelBase()==flb) + { + isFound = true; + break; + } } } } @@ -749,8 +785,18 @@ G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4double E, G4int J) //////////////////// G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4int LL, G4double E, G4int J) +{ return FindIon(Z,A,LL,E,G4Ions::G4FloatLevelBase::noFloat,J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4int LL, G4double E, + char flbChar, G4int J) +{ return FindIon(Z,A,LL,E,G4Ions::FloatLevelBase(flbChar),J); } + +//////////////////// +G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4int LL, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J) { - if (LL==0) return FindIon(Z,A,E,J); + if (LL==0) return FindIon(Z,A,E,flb,J); if (A < 2 || Z < 0 || Z > A-LL || LL>A || A>999 ) { #ifdef G4VERBOSE @@ -778,9 +824,12 @@ G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4int LL, G4double E if( ion->GetQuarkContent(3) != LL) break; // excitation level G4double anExcitaionEnergy = ((const G4Ions*)(ion))->GetExcitationEnergy(); - if ( std::fabs( E - anExcitaionEnergy )< tolerance) { - isFound = true; - break; + if (std::fabs(E - anExcitaionEnergy) < pNuclideTable->GetLevelTolerance() ) { + if(((const G4Ions*)(ion))->GetFloatLevelBase()==flb) + { + isFound = true; + break; + } } } @@ -989,7 +1038,8 @@ G4bool G4IonTable::GetNucleusByEncoding(G4int encoding, #include "G4AutoDelete.hh" ///////////////// -const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4double E) const +const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb) const { static G4ThreadLocal G4String *pname = 0; if (!pname) { pname = new G4String(""); G4AutoDelete::Register(pname); } @@ -1010,7 +1060,10 @@ const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4double E) const os->str(""); std::ostringstream& oo = *os; // Excited nucleus - oo<<'['<str(); } @@ -1018,9 +1071,10 @@ const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4double E) const } ///////////////// -const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4int LL, G4double E) const +const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4int LL, G4double E, + G4Ions::G4FloatLevelBase flb) const { - if (LL==0) return GetIonName(Z, A, E); + if (LL==0) return GetIonName(Z, A, E, flb); static G4ThreadLocal G4String *pname = 0; if (!pname) { pname = new G4String(""); G4AutoDelete::Register(pname); } G4String &name = *pname; @@ -1028,7 +1082,7 @@ const G4String& G4IonTable::GetIonName(G4int Z, G4int A, G4int LL, G4double E) c for (int i =0; isize()==0) return 0; @@ -1517,7 +1572,7 @@ G4IsotopeProperty* G4IonTable::FindIsotope(G4int Z, G4int A, G4double E) const // iterate for (size_t i = 0; isize(); ++i) { G4VIsotopeTable* fIsotopeTable= (*fIsotopeTableList)[fIsotopeTableList->size()-i-1]; - property = fIsotopeTable->GetIsotope(Z,A,E); + property = fIsotopeTable->GetIsotope(Z,A,E,flb); if(property) break; } @@ -1640,7 +1695,8 @@ G4int G4IonTable::size() const //////////////////// -G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4double E, G4int /*J*/) +G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb, G4int /*J*/) { // Search ions with A, Z ,E // !! J is omitted now !! @@ -1655,9 +1711,12 @@ G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4double E, if ( ( ion->GetAtomicNumber() != Z) || (ion->GetAtomicMass()!=A) ) break; // excitation level G4double anExcitaionEnergy = ((const G4Ions*)(ion))->GetExcitationEnergy(); - if ( std::fabs( E - anExcitaionEnergy )< tolerance) { - isFound = true; - break; + if (std::fabs(E - anExcitaionEnergy) < pNuclideTable->GetLevelTolerance() ) { + if(((const G4Ions*)(ion))->GetFloatLevelBase()==flb) + { + isFound = true; + break; + } } } @@ -1670,9 +1729,10 @@ G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4double E, //////////////////// -G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4int LL, G4double E, G4int J) +G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4int LL, G4double E, + G4Ions::G4FloatLevelBase flb, G4int J) { - if (LL==0) return FindIon(Z,A,E,J); + if (LL==0) return FindIon(Z,A,E,flb,J); // Search ions with A, Z ,E // !! J is omitted now !! @@ -1688,9 +1748,12 @@ G4ParticleDefinition* G4IonTable::FindIonInMaster(G4int Z, G4int A, G4int LL, G4 if( ion->GetQuarkContent(3) != LL) break; // excitation level G4double anExcitaionEnergy = ((const G4Ions*)(ion))->GetExcitationEnergy(); - if ( std::fabs( E - anExcitaionEnergy )< tolerance) { - isFound = true; - break; + if (std::fabs(E - anExcitaionEnergy) < pNuclideTable->GetLevelTolerance() ) { + if(((const G4Ions*)(ion))->GetFloatLevelBase()==flb) + { + isFound = true; + break; + } } } @@ -1785,10 +1848,16 @@ G4double G4IonTable::GetLifeTime(const G4ParticleDefinition* particle) const return particle->GetPDGLifeTime(); } -G4double G4IonTable::GetLifeTime(G4int Z, G4int A, G4double E) const +//////////////////// +G4double G4IonTable::GetLifeTime(G4int Z, G4int A, G4double E, char flbChar) const +{ return GetLifeTime(Z,A,E,G4Ions::FloatLevelBase(flbChar)); } + +//////////////////// +G4double G4IonTable::GetLifeTime(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb) const { G4double life = -1001.0; - const G4IsotopeProperty* fProperty = FindIsotope(Z, A, E); + const G4IsotopeProperty* fProperty = FindIsotope(Z, A, E, flb); if( fProperty !=0 ) life = fProperty->GetLifeTime(); return life; } diff --git a/source/particles/management/src/G4Ions.cc b/source/particles/management/src/G4Ions.cc index 883d4f169b..77e1d94d69 100644 --- a/source/particles/management/src/G4Ions.cc +++ b/source/particles/management/src/G4Ions.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Ions.cc 72955 2013-08-14 14:23:14Z gcosmo $ +// $Id: G4Ions.cc 96314 2016-04-06 07:21:51Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -65,7 +65,8 @@ G4Ions::G4Ions( lepton,baryon,encoding,stable,lifetime,decaytable, shortlived, subType, anti_encoding), theExcitationEnergy(excitation), - theIsomerLevel(isomer) + theIsomerLevel(isomer), + floatLevelBase(G4FloatLevelBase::noFloat) { if ((aName == "proton") || (aName == "neutron")) { isGeneralIon = false ; diff --git a/source/particles/management/src/G4IsotopeProperty.cc b/source/particles/management/src/G4IsotopeProperty.cc index c934428c20..653352fe14 100644 --- a/source/particles/management/src/G4IsotopeProperty.cc +++ b/source/particles/management/src/G4IsotopeProperty.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4IsotopeProperty.cc 69557 2013-05-08 12:01:40Z gcosmo $ +// $Id: G4IsotopeProperty.cc 96314 2016-04-06 07:21:51Z gcosmo $ // // // ---------------------------------------------------------------------- @@ -50,7 +50,8 @@ G4IsotopeProperty::G4IsotopeProperty(): fISpin(0),fEnergy(0.0), fLifeTime(-1.0),fDecayTable(0), fMagneticMoment(0.0), - fIsomerLevel(-1) + fIsomerLevel(-1), + fFloatLevelBase(G4Ions::G4FloatLevelBase::noFloat) { } @@ -69,6 +70,7 @@ G4IsotopeProperty::G4IsotopeProperty(const G4IsotopeProperty& right) fEnergy = right.fEnergy; fLifeTime = right.fLifeTime; fIsomerLevel = right.fIsomerLevel; + fFloatLevelBase = right.fFloatLevelBase; // decay table is not copied because G4DecayTable has no copy constructor fDecayTable = 0; } @@ -84,6 +86,7 @@ G4IsotopeProperty & G4IsotopeProperty::operator=(G4IsotopeProperty& right) fEnergy = right.fEnergy; fLifeTime = right.fLifeTime; fIsomerLevel = right.fIsomerLevel; + fFloatLevelBase = right.fFloatLevelBase; // decay table is not copied because G4DecayTable has no copy constructor fDecayTable = 0; } @@ -102,6 +105,7 @@ G4int G4IsotopeProperty::operator==(const G4IsotopeProperty &right) const value = value && ( fEnergy == right.fEnergy); value = value && ( fLifeTime == right.fLifeTime); value = value && ( fIsomerLevel == right.fIsomerLevel); + value = value && ( fFloatLevelBase == right.fFloatLevelBase); return value; } @@ -126,11 +130,15 @@ void G4IsotopeProperty::DumpInfo() const << fIsomerLevel << ", Excited Energy: " << std::setprecision(1) - << fEnergy/keV << "[keV]" + << fEnergy/keV; + if(fFloatLevelBase!=G4Ions::G4FloatLevelBase::noFloat) + { G4cout << " +" << G4Ions::FloatLevelBaseChar(fFloatLevelBase); } + G4cout << " [keV]" << ", " << std::setprecision(6) << "Life Time: " - << fLifeTime/ns << "[ns]" << G4endl; + << fLifeTime/ns << "[ns]" + << G4endl; if (fDecayTable != 0) { fDecayTable->DumpInfo(); } else { diff --git a/source/particles/management/src/G4KL3DecayChannel.cc b/source/particles/management/src/G4KL3DecayChannel.cc index 3d0ed2664e..0c551f6d07 100644 --- a/source/particles/management/src/G4KL3DecayChannel.cc +++ b/source/particles/management/src/G4KL3DecayChannel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4KL3DecayChannel.cc 91896 2015-08-10 09:54:06Z gcosmo $ +// $Id: G4KL3DecayChannel.cc 95906 2016-03-02 10:56:50Z gcosmo $ // // // ------------------------------------------------------------ @@ -46,11 +46,8 @@ G4KL3DecayChannel::G4KL3DecayChannel() :G4VDecayChannel(), - massK(0.0), pLambda(0.0), pXi0(0.0) + pLambda(0.0), pXi0(0.0) { - daughterM[idPi] = 0.0; - daughterM[idLepton] = 0.0; - daughterM[idNutrino] = 0.0; } @@ -72,11 +69,6 @@ G4KL3DecayChannel::G4KL3DecayChannel( static const G4String E_plus("e+"); static const G4String E_minus("e-"); - massK = 0.0; - daughterM[idPi] = 0.0; - daughterM[idLepton] = 0.0; - daughterM[idNutrino] = 0.0; - // check modes if ( ((theParentName == K_plus)&&(theLeptonName == E_plus)) || ((theParentName == K_minus)&&(theLeptonName == E_minus)) ) { @@ -118,13 +110,10 @@ G4KL3DecayChannel::~G4KL3DecayChannel() G4KL3DecayChannel::G4KL3DecayChannel(const G4KL3DecayChannel &right): G4VDecayChannel(right), - massK(right.massK), + //massK(right.massK), pLambda(right.pLambda), pXi0(right.pXi0) { - daughterM[idPi] = right.daughterM[idPi]; - daughterM[idLepton] = right.daughterM[idLepton]; - daughterM[idNutrino] = right.daughterM[idNutrino]; } G4KL3DecayChannel & G4KL3DecayChannel::operator=(const G4KL3DecayChannel & right) @@ -150,12 +139,9 @@ G4KL3DecayChannel & G4KL3DecayChannel::operator=(const G4KL3DecayChannel & right daughters_name[index] = new G4String(*right.daughters_name[index]); } } - massK = right.massK; + //massK = right.massK; pLambda = right.pLambda; pXi0 = right.pXi0; - daughterM[idPi] = right.daughterM[idPi]; - daughterM[idLepton] = right.daughterM[idLepton]; - daughterM[idNutrino] = right.daughterM[idNutrino]; } return *this; } @@ -171,15 +157,12 @@ G4DecayProducts* G4KL3DecayChannel::DecayIt(G4double) #endif // fill parent particle and its mass - if (G4MT_parent == 0) { - FillParent(); - } - massK = G4MT_parent->GetPDGMass(); + CheckAndFillParent(); + G4double massK = G4MT_parent->GetPDGMass(); // fill daughter particles and their mass - if (G4MT_daughters == 0) { - FillDaughters(); - } + CheckAndFillDaughters(); + G4double daughterM[3]; daughterM[idPi] = G4MT_daughters[idPi]->GetPDGMass(); daughterM[idLepton] = G4MT_daughters[idLepton]->GetPDGMass(); daughterM[idNutrino] = G4MT_daughters[idNutrino]->GetPDGMass(); @@ -193,7 +176,8 @@ G4DecayProducts* G4KL3DecayChannel::DecayIt(G4double) for (size_t loop_counter=0; loop_counter 1) G4cout << "G4MuonDecayChannel::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); diff --git a/source/particles/management/src/G4MuonDecayChannelWithSpin.cc b/source/particles/management/src/G4MuonDecayChannelWithSpin.cc index 61a1d67311..2b381c79b4 100644 --- a/source/particles/management/src/G4MuonDecayChannelWithSpin.cc +++ b/source/particles/management/src/G4MuonDecayChannelWithSpin.cc @@ -49,17 +49,13 @@ #include "G4LorentzVector.hh" G4MuonDecayChannelWithSpin::G4MuonDecayChannelWithSpin() - : G4MuonDecayChannel(), - EMMU( 0.*MeV), - EMASS( 0.*MeV) + : G4MuonDecayChannel() { } G4MuonDecayChannelWithSpin::G4MuonDecayChannelWithSpin(const G4String& theParentName, G4double theBR) - : G4MuonDecayChannel(theParentName,theBR), - EMMU( 0.*MeV), - EMASS( 0.*MeV) + : G4MuonDecayChannel(theParentName,theBR) { } @@ -70,8 +66,6 @@ G4MuonDecayChannelWithSpin::~G4MuonDecayChannelWithSpin() G4MuonDecayChannelWithSpin::G4MuonDecayChannelWithSpin(const G4MuonDecayChannelWithSpin &right): G4MuonDecayChannel(right) { - EMMU = right.EMMU; - EMASS = right.EMASS; } G4MuonDecayChannelWithSpin & G4MuonDecayChannelWithSpin::operator=(const G4MuonDecayChannelWithSpin & right) @@ -97,8 +91,6 @@ G4MuonDecayChannelWithSpin & G4MuonDecayChannelWithSpin::operator=(const G4MuonD daughters_name[index] = new G4String(*right.daughters_name[index]); } } - EMMU = right.EMMU; - EMASS = right.EMASS; } return *this; } @@ -114,13 +106,13 @@ G4DecayProducts *G4MuonDecayChannelWithSpin::DecayIt(G4double) if (GetVerboseLevel()>1) G4cout << "G4MuonDecayChannelWithSpin::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); - EMMU = parentmass; + G4double EMMU = parentmass; //daughters'mass G4double daughtermass[3]; @@ -130,7 +122,7 @@ G4DecayProducts *G4MuonDecayChannelWithSpin::DecayIt(G4double) sumofdaughtermass += daughtermass[index]; } - EMASS = daughtermass[0]; + G4double EMASS = daughtermass[0]; //create parent G4DynamicParticle at rest G4ThreeVector dummy; @@ -191,14 +183,14 @@ G4DecayProducts *G4MuonDecayChannelWithSpin::DecayIt(G4double) F_AS = F_AS + G_AS; // *** Radiative Corrections *** - - G4double R_IS = F_c(x,x0); + const G4double omega = std::log(EMMU/EMASS); + G4double R_IS = F_c(x,x0,omega); G4double F = 6.*F_IS + R_IS/std::sqrt(x_squared-x0_squared); // *** Radiative Corrections *** - G4double R_AS = F_theta(x,x0); + G4double R_AS = F_theta(x,x0,omega); rndm = G4UniformRand(); @@ -292,7 +284,7 @@ G4DecayProducts *G4MuonDecayChannelWithSpin::DecayIt(G4double) return products; } -G4double G4MuonDecayChannelWithSpin::R_c(G4double x){ +G4double G4MuonDecayChannelWithSpin::R_c(G4double x,G4double omega){ G4int n_max = (int)(100.*x); @@ -304,8 +296,6 @@ G4double G4MuonDecayChannelWithSpin::R_c(G4double x){ L2 += std::pow(x,n)/(n*n); } - G4double omega = std::log(EMMU/EMASS); - G4double r_c; r_c = 2.*L2-(pi*pi/3.)-2.; diff --git a/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc b/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc index bfa5212e84..c82f1a48c5 100644 --- a/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc +++ b/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc @@ -134,8 +134,8 @@ G4DecayProducts *G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double) G4cout << "G4MuonRadiativeDecayChannelWithSpin::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); diff --git a/source/particles/management/src/G4NeutronBetaDecayChannel.cc b/source/particles/management/src/G4NeutronBetaDecayChannel.cc index 477f35288b..2feaa9fe5a 100644 --- a/source/particles/management/src/G4NeutronBetaDecayChannel.cc +++ b/source/particles/management/src/G4NeutronBetaDecayChannel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4NeutronBetaDecayChannel.cc 91896 2015-08-10 09:54:06Z gcosmo $ +// $Id: G4NeutronBetaDecayChannel.cc 95906 2016-03-02 10:56:50Z gcosmo $ // GEANT4 tag $Name: geant4-09-04-ref-00 $ // // @@ -135,8 +135,8 @@ G4DecayProducts *G4NeutronBetaDecayChannel::DecayIt(G4double) if (GetVerboseLevel()>1) G4cout << "G4NeutronBetaDecayChannel::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); diff --git a/source/particles/management/src/G4NuclideTable.cc b/source/particles/management/src/G4NuclideTable.cc index 471ae2ce85..60f5608781 100644 --- a/source/particles/management/src/G4NuclideTable.cc +++ b/source/particles/management/src/G4NuclideTable.cc @@ -64,7 +64,7 @@ G4NuclideTable::G4NuclideTable() minimum_threshold_of_half_life(DBL_MAX), fUserDefinedList(NULL), fIsotopeList(NULL), - flevelTolerance(1.0e-3*eV) + flevelTolerance(1.0*eV) { //SetVerboseLevel(G4ParticleTable::GetParticleTable()->GetVerboseLevel()); //FillHardCodeList(); @@ -104,22 +104,23 @@ G4NuclideTable::~G4NuclideTable() /////////////////////////////////////////////////////////////////////////////// // -G4IsotopeProperty* G4NuclideTable::GetIsotope(G4int Z, G4int A, G4double E) +G4IsotopeProperty* G4NuclideTable::GetIsotope(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb) { - G4IsotopeProperty* fProperty = NULL; + G4IsotopeProperty* fProperty = nullptr; // At first searching UserDefined - if ( fUserDefinedList != NULL ) { + if ( fUserDefinedList ) { for ( G4IsotopeList::iterator it = fUserDefinedList->begin() ; it != fUserDefinedList->end() ; it++ ) { if ( Z == (*it)->GetAtomicNumber() && A == (*it)->GetAtomicMass() ) { G4double levelE = (*it)->GetEnergy(); if ( levelE - flevelTolerance/2 <= E && E < levelE + flevelTolerance/2 ) { - return *it; //found + if( flb == (*it)->GetFloatLevelBase() ) + { return *it; } //found } } - } } @@ -135,12 +136,13 @@ G4IsotopeProperty* G4NuclideTable::GetIsotope(G4int Z, G4int A, G4double E) if ( lower_bound_itr != itf -> second.end() ) { levelE = lower_bound_itr->first; if ( levelE - flevelTolerance/2 <= E && E < levelE + flevelTolerance/2 ) { - return lower_bound_itr->second; // found + if( flb == (lower_bound_itr->second)->GetFloatLevelBase() ) + { return lower_bound_itr->second; } // found } } } - return fProperty; // not found; + return fProperty; // not found } /////////////////////////////////////////////////////////////////////// @@ -206,6 +208,8 @@ void G4NuclideTable::GenerateNuclide() } ionE *= keV; + G4int flbIndex = 0; + ionE = StripFloatLevelBase( ionE, flbIndex ); ionLife *= ns; ionMu *= (joule/tesla); @@ -226,6 +230,7 @@ void G4NuclideTable::GenerateNuclide() fProperty->SetLifeTime(ionLife); fProperty->SetDecayTable(0); fProperty->SetMagneticMoment(ionMu); + fProperty->SetFloatLevelBase(flbIndex); fIsotopeList->push_back(fProperty); @@ -285,6 +290,16 @@ void G4NuclideTable::GenerateNuclide() } void G4NuclideTable::AddState( G4int ionZ, G4int ionA, G4double ionE, G4double ionLife, G4int ionJ, G4double ionMu ) +{ + if ( G4Threading::IsMasterThread() ) { + G4int flbIndex = 0; + ionE = StripFloatLevelBase( ionE, flbIndex ); + AddState(ionZ,ionA,ionE,flbIndex,ionLife,ionJ,ionMu); + } +} + +void G4NuclideTable::AddState( G4int ionZ, G4int ionA, G4double ionE, + G4int flbIndex, G4double ionLife, G4int ionJ, G4double ionMu ) { if ( G4Threading::IsMasterThread() ) { @@ -301,6 +316,7 @@ void G4NuclideTable::AddState( G4int ionZ, G4int ionA, G4double ionE, G4double i fProperty->SetLifeTime(ionLife); fProperty->SetDecayTable(0); fProperty->SetMagneticMoment(ionMu); + fProperty->SetFloatLevelBase(flbIndex); fUserDefinedList->push_back(fProperty); fIsotopeList->push_back(fProperty); @@ -316,3 +332,10 @@ void G4NuclideTable::SetThresholdOfHalfLife( G4double t ) GenerateNuclide(); } } + +G4double G4NuclideTable::StripFloatLevelBase(G4double E, G4int& flbIndex) +{ + G4double rem = fmod(E/(1.0E-3*eV),10.0); + flbIndex = int(rem); + return E-rem; +} diff --git a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc index 7b34e0d5c2..5c46b04d81 100644 --- a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc +++ b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PhaseSpaceDecayChannel.cc 92057 2015-08-14 13:34:55Z gcosmo $ +// $Id: G4PhaseSpaceDecayChannel.cc 96797 2016-05-09 10:13:42Z gcosmo $ // // // ------------------------------------------------------------ @@ -46,10 +46,11 @@ #include "G4LorentzVector.hh" #include "G4LorentzRotation.hh" -G4ThreadLocal G4double G4PhaseSpaceDecayChannel::current_parent_mass = 0.0; +//G4ThreadLocal G4double G4PhaseSpaceDecayChannel::current_parent_mass = 0.0; G4PhaseSpaceDecayChannel::G4PhaseSpaceDecayChannel(G4int Verbose) - :G4VDecayChannel("Phase Space", Verbose) + :G4VDecayChannel("Phase Space", Verbose), + useGivenDaughterMass(false) { } @@ -86,11 +87,11 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::DecayIt(G4double parentMass) G4DecayProducts * products = 0; - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); - if (parentMass >0.0) current_parent_mass = parentMass; - else current_parent_mass = G4MT_parent_mass; + if (parentMass >0.0) current_parent_mass.Put( parentMass ); + else current_parent_mass.Put(G4MT_parent_mass); switch (numberOfDaughters){ case 0: @@ -129,10 +130,12 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::OneBodyDecayIt() #ifdef G4VERBOSE if (GetVerboseLevel()>1) G4cout << "G4PhaseSpaceDecayChannel::OneBodyDecayIt()"<1) G4cout << "G4PhaseSpaceDecayChannel::TwoBodyDecayIt()"<0) { G4cout << "G4PhaseSpaceDecayChannel::TwoBodyDecayIt " << "sum of daughter mass is larger than parent mass" << G4endl; - G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass/GeV << G4endl; + G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass.Get()/GeV << G4endl; G4cout << "daughter 1 :" << G4MT_daughters[0]->GetParticleName() << " " << daughtermass[0]/GeV << G4endl; G4cout << "daughter 2:" << G4MT_daughters[1]->GetParticleName() << " " << daughtermass[1]/GeV << G4endl; } @@ -215,7 +218,7 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::TwoBodyDecayIt() if (GetVerboseLevel()>0) { G4cout << "G4PhaseSpaceDecayChannel::TwoBodyDecayIt " << "sum of daughter mass is larger than parent mass" << G4endl; - G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass/GeV << G4endl; + G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass.Get()/GeV << G4endl; G4cout << "daughter 1 :" << G4MT_daughters[0]->GetParticleName() << " " << daughtermass[0]/GeV << G4endl; G4cout << "daughter 2:" << G4MT_daughters[1]->GetParticleName() << " " << daughtermass[1]/GeV << G4endl; if (useGivenDaughterMass) { @@ -262,7 +265,7 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ThreeBodyDecayIt() if (GetVerboseLevel()>1) G4cout << "G4PhaseSpaceDecayChannel::ThreeBodyDecayIt()"<0) { G4cout << "G4PhaseSpaceDecayChannel::ThreeBodyDecayIt " << "sum of daughter mass is larger than parent mass" << G4endl; - G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass/GeV << G4endl; + G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass.Get()/GeV << G4endl; G4cout << "daughter 1 :" << G4MT_daughters[0]->GetParticleName() << " " << daughtermass[0]/GeV << G4endl; G4cout << "daughter 2:" << G4MT_daughters[1]->GetParticleName() << " " << daughtermass[1]/GeV << G4endl; G4cout << "daughter 3:" << G4MT_daughters[2]->GetParticleName() << " " << daughtermass[2]/GeV << G4endl; @@ -330,7 +333,7 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ThreeBodyDecayIt() if (GetVerboseLevel()>0) { G4cout << "G4PhaseSpaceDecayChannel::ThreeBodyDecayIt " << "sum of daughter mass is larger than parent mass" << G4endl; - G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass/GeV << G4endl; + G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass.Get()/GeV << G4endl; G4cout << "daughter 1 :" << G4MT_daughters[0]->GetParticleName() << " " << daughtermass[0]/GeV << G4endl; G4cout << "daughter 2:" << G4MT_daughters[1]->GetParticleName() << " " << daughtermass[1]/GeV << G4endl; G4cout << "daughter 3:" << G4MT_daughters[2]->GetParticleName() << " " << daughtermass[2]/GeV << G4endl; @@ -460,16 +463,18 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ManyBodyDecayIt() if (GetVerboseLevel()>1) G4cout << "G4PhaseSpaceDecayChannel::ManyBodyDecayIt()"<0) { G4cout << "G4PhaseSpaceDecayChannel::ManyBodyDecayIt " << "sum of daughter mass is larger than parent mass" << G4endl; - G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass/GeV << G4endl; + G4cout << "parent :" << G4MT_parent->GetParticleName() << " " << current_parent_mass.Get()/GeV << G4endl; G4cout << "daughter 1 :" << G4MT_daughters[0]->GetParticleName() << " " << daughtermass[0]/GeV << G4endl; G4cout << "daughter 2:" << G4MT_daughters[1]->GetParticleName() << " " << daughtermass[1]/GeV << G4endl; G4cout << "daughter 3:" << G4MT_daughters[2]->GetParticleName() << " " << daughtermass[2]/GeV << G4endl; @@ -497,6 +502,7 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ManyBodyDecayIt() G4Exception("G4PhaseSpaceDecayChannel::ManyBodyDecayIt", "PART112", JustWarning, "Can not create decay products: sum of daughter mass is larger than parent mass"); + delete [] daughtermass; return products; } @@ -578,7 +584,7 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ManyBodyDecayIt() delete [] sm; delete [] daughtermass; delete [] daughtermomentum; - + delete products; G4Exception("G4PhaseSpaceDecayChannel::ManyBodyDecayIt", "PART112", JustWarning, "Can not create decay products: sum of daughter mass is larger than parent mass"); @@ -715,8 +721,8 @@ G4bool G4PhaseSpaceDecayChannel::SampleDaughterMasses() G4bool G4PhaseSpaceDecayChannel::IsOKWithParentMass(G4double parentMass) { if (!useGivenDaughterMass) return G4VDecayChannel::IsOKWithParentMass(parentMass); - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); G4double sumOfDaughterMassMin=0.0; for (G4int index=0; index < numberOfDaughters; index++) { diff --git a/source/particles/management/src/G4PionRadiativeDecayChannel.cc b/source/particles/management/src/G4PionRadiativeDecayChannel.cc index 213d2a5438..ebafac90a8 100644 --- a/source/particles/management/src/G4PionRadiativeDecayChannel.cc +++ b/source/particles/management/src/G4PionRadiativeDecayChannel.cc @@ -45,10 +45,33 @@ #include "G4DecayProducts.hh" #include "G4LorentzVector.hh" +namespace { + const G4double beta = 3.6612e-03; + const G4double cib = 1.16141e-03; + const G4double csdp = 3.45055e-02; + const G4double csdm = 5.14122e-03; + const G4double cif = 4.63543e-05; + const G4double cig = 1.78928e-05; + const G4double xl = 2.*0.1*MeV/139.57*MeV; + const G4double yl = ((1.-xl) + std::sqrt((1-xl)*(1-xl)+4*beta*beta))/2.; + + const G4double xu = 1. - (yl - std::sqrt(yl*yl-4.*beta*beta))/2.; + const G4double yu = 1. + beta*beta; + + inline G4double D2W(const G4double x,const G4double y) { + return cib*(1.-y)*(1.+((1.-x)*(1.-x)))/((x*x)*(x+y-1.)) + + csdp*(1.-x)*((x+y-1.)*(x+y-1.)) + + csdm*(1.-x)*((1.-y)*(1.-y)) + + cif*(x-1.)*(1.-y)/x + + cig*(1.-y)*(1.-x+(x*x)/(x+y-1.))/x; + } + + const G4double d2wmax = D2W(xl,yl); + + +} G4PionRadiativeDecayChannel::G4PionRadiativeDecayChannel() - : G4VDecayChannel(), - beta(0.),cib(0.),csdp(0.),csdm(0.),cif(0.),cig(0.), - xl(0.), yl(0.), xu(0.), yu(0.), d2wmax(0.) + : G4VDecayChannel() { } @@ -81,34 +104,13 @@ G4PionRadiativeDecayChannel:: } #endif } - - beta = 3.6612e-03; - - cib = 1.16141e-03; - csdp = 3.45055e-02; - csdm = 5.14122e-03; - cif = 4.63543e-05; - cig = 1.78928e-05; - - xl = 2.*0.1*MeV/139.57*MeV; - yl = ((1.-xl) + std::sqrt((1-xl)*(1-xl)+4*beta*beta))/2.; - - xu = 1. - (yl - std::sqrt(yl*yl-4.*beta*beta))/2.; - yu = 1. + beta*beta; - - d2wmax = D2W(xl,yl); - } G4PionRadiativeDecayChannel::~G4PionRadiativeDecayChannel() { } G4PionRadiativeDecayChannel::G4PionRadiativeDecayChannel(const G4PionRadiativeDecayChannel &right) - :G4VDecayChannel(right), - beta(right.beta),cib(right.cib),csdp(right.csdp), - csdm(right.csdm),cif(right.cif),cig(right.cig), - xl(right.xl), yl(right.yl), xu(right.xu), yu(right.yu), - d2wmax(right.d2wmax) + :G4VDecayChannel(right) { } @@ -135,17 +137,6 @@ G4PionRadiativeDecayChannel & G4PionRadiativeDecayChannel::operator=(const G4Pio daughters_name[index] = new G4String(*right.daughters_name[index]); } } - beta = right.beta; - cib = right.cib; - csdp = right.csdp; - csdm = right.csdm; - cif = right.cif; - cig = right.cig; - xl = right.xl; - yl = right.yl; - xu = right.xu; - yu = right.yu; - d2wmax = right.d2wmax; } return *this; } @@ -158,8 +149,8 @@ G4DecayProducts *G4PionRadiativeDecayChannel::DecayIt(G4double) G4cout << "G4PionRadiativeDecayChannel::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); diff --git a/source/particles/management/src/G4TauLeptonicDecayChannel.cc b/source/particles/management/src/G4TauLeptonicDecayChannel.cc index 3b6232e9b9..242c244810 100644 --- a/source/particles/management/src/G4TauLeptonicDecayChannel.cc +++ b/source/particles/management/src/G4TauLeptonicDecayChannel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4TauLeptonicDecayChannel.cc 91896 2015-08-10 09:54:06Z gcosmo $ +// $Id: G4TauLeptonicDecayChannel.cc 95906 2016-03-02 10:56:50Z gcosmo $ // // // ------------------------------------------------------------ @@ -142,8 +142,8 @@ G4DecayProducts *G4TauLeptonicDecayChannel::DecayIt(G4double) if (GetVerboseLevel()>1) G4cout << "G4TauLeptonicDecayChannel::DecayIt "; #endif - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); // parent mass G4double parentmass = G4MT_parent->GetPDGMass(); diff --git a/source/particles/management/src/G4VDecayChannel.cc b/source/particles/management/src/G4VDecayChannel.cc index cc81e8c78e..f3475f3fd4 100644 --- a/source/particles/management/src/G4VDecayChannel.cc +++ b/source/particles/management/src/G4VDecayChannel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VDecayChannel.cc 93024 2015-09-30 15:59:32Z gcosmo $ +// $Id: G4VDecayChannel.cc 95906 2016-03-02 10:56:50Z gcosmo $ // // // ------------------------------------------------------------ @@ -42,22 +42,7 @@ #include "G4DecayTable.hh" #include "G4DecayProducts.hh" #include "G4VDecayChannel.hh" - -/////@@// This static member is thread local. For each thread, it holds the array -/////@@// size of G4DecayChannelData instances. -/////@@// -/////@@template G4ThreadLocal -/////@@G4int G4PDefSplitter::slavetotalspace = 0; -/////@@ -/////@@// This static member is thread local. For each thread, it points to the -/////@@// array of G4DecayChannelData instances. -/////@@// -/////@@template G4ThreadLocal -/////@@G4DecayChannelData* G4PDefSplitter::offset = 0; -/////@@ -/////@@// This new field helps to use the class G4VDecayChannelSubInstanceManager. -/////@@// -/////@@G4DecayChannelManager G4VDecayChannel::subInstanceManager; +#include "G4AutoLock.hh" const G4String G4VDecayChannel::noName = " "; @@ -71,7 +56,6 @@ G4VDecayChannel::G4VDecayChannel() particletable(0), verboseLevel(1) { -/////@@ instanceID = subInstanceManager.CreateSubInstance(); G4MT_parent = 0; G4MT_daughters = 0; G4MT_parent_mass = 0.0; @@ -90,9 +74,10 @@ G4VDecayChannel::G4VDecayChannel(const G4String &aName, G4int Verbose) rangeMass(2.5), parent_polarization(), particletable(0), - verboseLevel(Verbose) + verboseLevel(Verbose), + daughtersMutex(G4MUTEX_INITIALIZER), + parentMutex(G4MUTEX_INITIALIZER) { -/////@@ instanceID = subInstanceManager.CreateSubInstance(); G4MT_parent = 0; G4MT_daughters = 0; G4MT_parent_mass = 0.0; @@ -118,9 +103,10 @@ G4VDecayChannel::G4VDecayChannel(const G4String &aName, rangeMass(1.0), parent_polarization(), particletable(0), - verboseLevel(1) + verboseLevel(1), + daughtersMutex(G4MUTEX_INITIALIZER), + parentMutex(G4MUTEX_INITIALIZER) { -/////@@ instanceID = subInstanceManager.CreateSubInstance(); G4MT_parent = 0; G4MT_daughters = 0; G4MT_parent_mass = 0.0; @@ -146,8 +132,6 @@ G4VDecayChannel::G4VDecayChannel(const G4String &aName, G4VDecayChannel::G4VDecayChannel(const G4VDecayChannel &right) { -/////@@ instanceID = subInstanceManager.CreateSubInstance(); - kinematics_name = right.kinematics_name; verboseLevel = right.verboseLevel; rbranch = right.rbranch; @@ -181,6 +165,8 @@ G4VDecayChannel::G4VDecayChannel(const G4VDecayChannel &right) parent_polarization = right.parent_polarization; + G4MUTEXINIT(daughtersMutex); + G4MUTEXINIT(parentMutex); } G4VDecayChannel & G4VDecayChannel::operator=(const G4VDecayChannel &right) @@ -219,6 +205,9 @@ G4VDecayChannel & G4VDecayChannel::operator=(const G4VDecayChannel &right) // particle table particletable = G4ParticleTable::GetParticleTable(); + G4MUTEXINIT(daughtersMutex); + G4MUTEXINIT(parentMutex); + return *this; } @@ -231,15 +220,13 @@ G4VDecayChannel::~G4VDecayChannel() G4MT_daughters_mass =0; if (G4MT_daughters_width != 0) delete [] G4MT_daughters_width; G4MT_daughters_width = 0; + G4MUTEXDESTROY(daughtersMutex); + G4MUTEXDESTROY(parentMutex); } -/////@@const G4DecayChannelManager& G4VDecayChannel::GetSubInstanceManager() -/////@@{ -/////@@ return subInstanceManager; -/////@@} - void G4VDecayChannel::ClearDaughtersName() { + G4AutoLock l(&daughtersMutex); if ( daughters_name != 0) { if (numberOfDaughters>0) { #ifdef G4VERBOSE @@ -293,14 +280,27 @@ void G4VDecayChannel::SetDaughter(G4int anIndex, return; } - // check existence of daughters_name array - if (daughters_name == 0) { - // cleate array - daughters_name = new G4String*[numberOfDaughters]; - for (G4int index=0;index Feb 25 2016 + // An analysis of this code, shows that this method is called + // only in the constructor of derived classes. + // The general idea of this method is probably to support + // the possibility to re-define daughters on the fly, however + // this design is extremely problematic for MT mode, we thus + // require (as practically happens) that the method is called only + // at construction, i.e. when G4MT_daugheters == 0 + // moreover this method can be called only after SetNumberOfDaugthers + // has been called (see previous if), in such a case daughters_name != 0 + if ( daughters_name == 0 ) { + G4Exception("G4VDecayChannel::SetDaughter","PART112",FatalException, + "Trying to add a daughter without specifying number of secondaries, useSetNumberOfDaughters first"); + return; } + if ( G4MT_daughters != 0 ) { + G4Exception("G4VDecayChannel::SetDaughter","PART111",FatalException, + "Trying to modify a daughter of a decay channel, but decay channel already has daughters."); + return; + } + //<-:ANDREA // check an index if ( (anIndex<0) || (anIndex>=numberOfDaughters) ) { @@ -311,12 +311,8 @@ void G4VDecayChannel::SetDaughter(G4int anIndex, } #endif } else { - // delete the old name if it exists - if (daughters_name[anIndex]!=0) delete daughters_name[anIndex]; // fill the name daughters_name[anIndex] = new G4String(particle_name); - // refill the array of daughters[] if it exists - if (G4MT_daughters != 0) FillDaughters(); #ifdef G4VERBOSE if (verboseLevel>1) { G4cout << "G4VDecayChannel::SetDaughter[" << anIndex <<"] :"; @@ -333,6 +329,11 @@ void G4VDecayChannel::SetDaughter(G4int anIndex, const G4ParticleDefinition * pa void G4VDecayChannel::FillDaughters() { + G4AutoLock lock(&daughtersMutex); + //Double check, check again if another thread has already filled this, in + //case do not need to do anything + if ( G4MT_daughters != 0 ) return; + G4int index; #ifdef G4VERBOSE @@ -344,7 +345,7 @@ void G4VDecayChannel::FillDaughters() } // parent mass - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); G4double parentmass = G4MT_parent->GetPDGMass(); // @@ -443,6 +444,11 @@ void G4VDecayChannel::FillDaughters() void G4VDecayChannel::FillParent() { + G4AutoLock lock(&parentMutex); + //Double check, check again if another thread has already filled this, in + //case do not need to do anything + if ( G4MT_parent != 0 ) return; + if (parent_name == 0) { // parent name is not defined #ifdef G4VERBOSE @@ -485,7 +491,7 @@ G4int G4VDecayChannel::GetAngularMomentum() // determine angular momentum // fill pointers to daughter particles if not yet set - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); const G4int PiSpin = G4MT_parent->GetPDGiSpin(); const G4int PParity = G4MT_parent->GetPDGiParity(); @@ -578,8 +584,8 @@ G4double G4VDecayChannel::DynamicalMass(G4double massPDG, G4double width, G4doub G4bool G4VDecayChannel::IsOKWithParentMass(G4double parentMass) { G4double sumOfDaughterMassMin=0.0; - if (G4MT_parent == 0) FillParent(); - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); for (G4int index=0; index < numberOfDaughters; index++) { sumOfDaughterMassMin += diff --git a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc index cfb5841688..a65f2dd3ff 100644 --- a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ExcitedMesonConstructor.cc 91935 2015-08-12 07:56:31Z gcosmo $ +// $Id: G4ExcitedMesonConstructor.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // -------------------------------------------------------------- @@ -1432,7 +1432,7 @@ const G4double G4ExcitedMesonConstructor::mass[G4ExcitedMesonConstructor::NMulti { 1.2295*GeV, 1.170*GeV, 1.386*GeV, 1.272*GeV, 1.272*GeV }, { 1.474*GeV, 1.350*GeV, 0.0, 1.430*GeV, 1.430*GeV }, { 1.230*GeV,1.2819*GeV,1.4264*GeV, 1.403*GeV, 1.403*GeV }, - { 1.3183*GeV,1.2751*GeV, 1.525*GeV,1.4256*GeV, 1.4256*GeV }, + { 1.3183*GeV,1.2755*GeV, 1.525*GeV,1.4256*GeV, 1.4256*GeV }, { 1.6722*GeV, 1.617*GeV, 1.842*GeV, 1.773*GeV, 1.773*GeV }, { 1.720*GeV, 1.670*GeV, 0.0, 1.717*GeV, 1.717*GeV }, { 1.6888*GeV, 1.667*GeV, 1.854*GeV, 1.776*GeV, 1.776*GeV }, @@ -1456,7 +1456,7 @@ const G4double G4ExcitedMesonConstructor::width[G4ExcitedMesonConstructor::NMult { 142.0*MeV, 360.0*MeV, 91.0*MeV, 90.0*MeV, 90.0*MeV }, { 265.0*MeV, 350.0*MeV, 0.0, 270.0*MeV, 270.0*MeV }, { 420.0*MeV, 24.2*MeV, 54.9*MeV, 174.0*MeV, 174.0*MeV }, - { 107.0*MeV, 185.1*MeV, 73.0*MeV, 98.5*MeV, 98.5*MeV }, + { 107.0*MeV, 186.7*MeV, 73.0*MeV, 98.5*MeV, 98.5*MeV }, { 260.0*MeV, 181.0*MeV, 225.0*MeV, 186.0*MeV, 186.0*MeV }, { 250.0*MeV, 315.0*MeV, 0.0, 320.0*MeV, 320.0*MeV }, { 161.0*MeV, 168.0*MeV, 87.0*MeV, 159.0*MeV, 159.0*MeV }, diff --git a/source/particles/shortlived/src/G4ShortLivedConstructor.cc b/source/particles/shortlived/src/G4ShortLivedConstructor.cc index 09f074a87c..8231162dab 100644 --- a/source/particles/shortlived/src/G4ShortLivedConstructor.cc +++ b/source/particles/shortlived/src/G4ShortLivedConstructor.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ShortLivedConstructor.cc 83749 2014-09-12 12:14:59Z gcosmo $ +// $Id: G4ShortLivedConstructor.cc 95951 2016-03-03 10:44:16Z gcosmo $ // // // -------------------------------------------------------------- @@ -811,7 +811,7 @@ void G4ShortLivedConstructor::ConstructMesons() particle->SetDecayTable(decayTable); // f0(1500) particle = new G4ExcitedMesons( - "f0(1500)", 1505.0*MeV, 109.0*MeV, 0.0, + "f0(1500)", 1504.0*MeV, 109.0*MeV, 0.0, 0, +1, +1, 0, 0, +1, "meson", 0, 0, 9030221, @@ -831,7 +831,7 @@ void G4ShortLivedConstructor::ConstructMesons() // f0(1710) particle = new G4ExcitedMesons( - "f0(1710)", 1722.0*MeV, 135.0*MeV, 0.0, + "f0(1710)", 1723.0*MeV, 139.0*MeV, 0.0, 0, +1, +1, 0, 0, +1, "meson", 0, 0, 10331, diff --git a/source/particles/utils/include/G4IsotopeMagneticMomentTable.hh b/source/particles/utils/include/G4IsotopeMagneticMomentTable.hh index f8f67cc7d1..8dda6558cb 100644 --- a/source/particles/utils/include/G4IsotopeMagneticMomentTable.hh +++ b/source/particles/utils/include/G4IsotopeMagneticMomentTable.hh @@ -84,7 +84,8 @@ public: // abstract base class G4VIstopeTable. We don't use this fuction in this // implementation, instead we use the next function. // - virtual G4IsotopeProperty* GetIsotope(G4int Z, G4int A, G4double E); + virtual G4IsotopeProperty* GetIsotope(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::noFloat); virtual G4IsotopeProperty* GetIsotopeByIsoLvl(G4int Z, G4int A, G4int lvl=0); // // again it will replace the pure virtual one in the abstract base class. @@ -92,6 +93,8 @@ public: // Z: Atomic Number // A: Atomic Mass // E: Excitaion energy + // flb: floating level base (enum defined in G4Ions.hh) + // -- currently ignored // or // G4int level: isomer level // diff --git a/source/particles/utils/src/G4IsotopeMagneticMomentTable.cc b/source/particles/utils/src/G4IsotopeMagneticMomentTable.cc index b0015edc3a..df56418f91 100644 --- a/source/particles/utils/src/G4IsotopeMagneticMomentTable.cc +++ b/source/particles/utils/src/G4IsotopeMagneticMomentTable.cc @@ -191,7 +191,8 @@ G4bool G4IsotopeMagneticMomentTable::FindIsotope(G4IsotopeProperty* pP) /////////////////////////////////////////////////////////////////////////////// // G4IsotopeProperty* - G4IsotopeMagneticMomentTable::GetIsotope(G4int Z, G4int A, G4double E) + G4IsotopeMagneticMomentTable::GetIsotope(G4int Z, G4int A, G4double E, + G4Ions::G4FloatLevelBase /*flb*/) { G4IsotopeProperty* fProperty = 0; for (size_t i = 0 ; i< fIsotopeList.size(); ++i) { diff --git a/source/persistency/gdml/GNUmakefile b/source/persistency/gdml/GNUmakefile index 94ed306b66..344105ef4c 100644 --- a/source/persistency/gdml/GNUmakefile +++ b/source/persistency/gdml/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile 89398 2015-04-09 09:56:29Z gcosmo $ +# $Id: GNUmakefile 96677 2016-04-29 12:20:20Z gcosmo $ # ----------------------------------------------------------------------- # GNUmakefile for persistency library. Gabriele Cosmo, 16/11/96. # ----------------------------------------------------------------------- @@ -18,6 +18,7 @@ CPPFLAGS += \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/digits_hits/hits/include \ -I$(G4BASE)/digits_hits/digits/include \ + -I$(G4BASE)/digits_hits/detector/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/bosons/include \ -I$(G4BASE)/particles/hadrons/barions/include \ diff --git a/source/persistency/gdml/History b/source/persistency/gdml/History index d4bcd36438..3dba90ef85 100644 --- a/source/persistency/gdml/History +++ b/source/persistency/gdml/History @@ -1,4 +1,4 @@ -$Id: History 93171 2015-10-09 09:04:09Z gcosmo $ +$Id: History 96677 2016-04-29 12:20:20Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +29 April 2016 Gabriele Cosmo (gdml-V10-02-06) +- Added missing new dependency on digits_hits/detector in GNUmakefile. + +28 April 2016 Witek Pokorski (gdml-V10-02-05) +- Added ability to automatically export the names of sensitive detectors + as the auxiliary information. + +22 March 2016 Witek Pokorski (gdml-V10-02-04) +- adding check for correctness of the units + +21 March 2016 Witek Pokorski (gdml-V10-02-03) +- increasing max_chars in the transcode() calls in G4GDLWrite (bug #1847) + +16 March 2016 Gabriele Cosmo (gdml-V10-02-02, 01) +- Added ability to import and export scaled shapes. + Extended GDML schema by adding "scaledSolid" tag supporting scaled shapes. + New GDML schema version 3.1.4 (files: gdml.xsd, gdml_solids.xsd). + Requires tags "geommng-V10-02-00" and "geom-bool-V10-02-01". + +14 December 2015 Gabriele Cosmo (gdml-V10-02-00) +- Corrected broken URLs and version number to schema. + 07 October 2015 Gabriele Cosmo (gdml-V10-01-24) - Protected compilation of G4MultiUnion wrapper with G4GEOM_USE_USOLIDS flag. diff --git a/source/persistency/gdml/include/G4GDMLMessenger.hh b/source/persistency/gdml/include/G4GDMLMessenger.hh index aa98a254f9..7d6d79a027 100644 --- a/source/persistency/gdml/include/G4GDMLMessenger.hh +++ b/source/persistency/gdml/include/G4GDMLMessenger.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLMessenger.hh 89381 2015-04-08 15:32:47Z gcosmo $ +// $Id: G4GDMLMessenger.hh 96673 2016-04-29 12:08:20Z gcosmo $ // // // class G4GDMLMessenger @@ -73,6 +73,7 @@ class G4GDMLMessenger : public G4UImessenger G4UIcmdWithoutParameter* ClearCmd; G4UIcmdWithABool* RegionCmd; G4UIcmdWithABool* EcutsCmd; + G4UIcmdWithABool* SDCmd; }; #endif diff --git a/source/persistency/gdml/include/G4GDMLParser.hh b/source/persistency/gdml/include/G4GDMLParser.hh index fa667e54e1..c0eecdf4b6 100644 --- a/source/persistency/gdml/include/G4GDMLParser.hh +++ b/source/persistency/gdml/include/G4GDMLParser.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLParser.hh 89698 2015-04-27 13:25:23Z gcosmo $ +// $Id: G4GDMLParser.hh 96673 2016-04-29 12:08:20Z gcosmo $ // // // class G4GDMLParser @@ -126,6 +126,7 @@ class G4GDMLParser inline void SetOverlapCheck(G4bool); inline void SetRegionExport(G4bool); inline void SetEnergyCutsExport(G4bool); + inline void SetSDExport(G4bool); inline void Clear(); // Clears the evaluator diff --git a/source/persistency/gdml/include/G4GDMLParser.icc b/source/persistency/gdml/include/G4GDMLParser.icc index 959126f7c1..4ff00e8f50 100644 --- a/source/persistency/gdml/include/G4GDMLParser.icc +++ b/source/persistency/gdml/include/G4GDMLParser.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLParser.icc 89698 2015-04-27 13:25:23Z gcosmo $ +// $Id: G4GDMLParser.icc 96673 2016-04-29 12:08:20Z gcosmo $ // // // class G4GDMLParser inline methods @@ -208,6 +208,11 @@ inline void G4GDMLParser::SetEnergyCutsExport(G4bool flag) writer->SetEnergyCutsExport(flag); } +inline void G4GDMLParser::SetSDExport(G4bool flag) +{ + writer->SetSDExport(flag); +} + inline void G4GDMLParser::Clear() { reader->Clear(); diff --git a/source/persistency/gdml/include/G4GDMLReadSolids.hh b/source/persistency/gdml/include/G4GDMLReadSolids.hh index 6a0c56b0cf..94ef390f10 100644 --- a/source/persistency/gdml/include/G4GDMLReadSolids.hh +++ b/source/persistency/gdml/include/G4GDMLReadSolids.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLReadSolids.hh 82922 2014-07-18 15:56:35Z gcosmo $ +// $Id: G4GDMLReadSolids.hh 96133 2016-03-16 22:21:17Z gcosmo $ // // // class G4GDMLReadSolids @@ -87,6 +87,7 @@ class G4GDMLReadSolids : public G4GDMLReadMaterials void GenericPolyhedraRead(const xercesc::DOMElement* const); G4QuadrangularFacet* QuadrangularRead(const xercesc::DOMElement* const); void ReflectedSolidRead(const xercesc::DOMElement* const); + void ScaledSolidRead(const xercesc::DOMElement* const); G4ExtrudedSolid::ZSection SectionRead(const xercesc::DOMElement* const,G4double); void SphereRead(const xercesc::DOMElement* const); void TessellatedRead(const xercesc::DOMElement* const); diff --git a/source/persistency/gdml/include/G4GDMLWriteSolids.hh b/source/persistency/gdml/include/G4GDMLWriteSolids.hh index d1fd2040c1..af0bca99cb 100644 --- a/source/persistency/gdml/include/G4GDMLWriteSolids.hh +++ b/source/persistency/gdml/include/G4GDMLWriteSolids.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLWriteSolids.hh 82922 2014-07-18 15:56:35Z gcosmo $ +// $Id: G4GDMLWriteSolids.hh 96133 2016-03-16 22:21:17Z gcosmo $ // // // class G4GDMLWriteSolids @@ -46,6 +46,7 @@ #include "G4MultiUnion.hh" class G4BooleanSolid; +class G4ScaledSolid; class G4Box; class G4Cons; class G4EllipticalCone; @@ -108,6 +109,7 @@ class G4GDMLWriteSolids : public G4GDMLWriteMaterials void MultiUnionWrite(xercesc::DOMElement* solElement, const G4MultiUnion* const); void BooleanWrite(xercesc::DOMElement*, const G4BooleanSolid* const); + void ScaledWrite(xercesc::DOMElement*, const G4ScaledSolid* const); void BoxWrite(xercesc::DOMElement*, const G4Box* const); void ConeWrite(xercesc::DOMElement*, const G4Cons* const); void ElconeWrite(xercesc::DOMElement*, const G4EllipticalCone* const); diff --git a/source/persistency/gdml/include/G4GDMLWriteStructure.hh b/source/persistency/gdml/include/G4GDMLWriteStructure.hh index fdf74b83fa..30e0deadc7 100644 --- a/source/persistency/gdml/include/G4GDMLWriteStructure.hh +++ b/source/persistency/gdml/include/G4GDMLWriteStructure.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLWriteStructure.hh 89493 2015-04-14 09:22:54Z gcosmo $ +// $Id: G4GDMLWriteStructure.hh 96677 2016-04-29 12:20:20Z gcosmo $ // // // class G4GDMLWriteStructure @@ -65,6 +65,7 @@ class G4GDMLWriteStructure : public G4GDMLWriteParamvol void AddVolumeAuxiliary(G4GDMLAuxStructType myaux, const G4LogicalVolume* const); void SetEnergyCutsExport(G4bool); + void SetSDExport(G4bool); protected: @@ -81,6 +82,7 @@ class G4GDMLWriteStructure : public G4GDMLWriteParamvol const G4LogicalSkinSurface* GetSkinSurface(const G4LogicalVolume* const); G4bool FindOpticalSurface(const G4SurfaceProperty*); void ExportEnergyCuts(const G4LogicalVolume* const); + void ExportSD(const G4LogicalVolume* const); protected: @@ -94,6 +96,7 @@ class G4GDMLWriteStructure : public G4GDMLWriteParamvol std::vector opt_vec; G4ReflectionFactory* reflFactory; G4bool cexport; // Flag for optional export of energy cuts per volume + G4bool sdexport; // Flag for optional export of SD per volume }; #endif diff --git a/source/persistency/gdml/schema/gdml.xsd b/source/persistency/gdml/schema/gdml.xsd index ac1dff42af..810062bdad 100755 --- a/source/persistency/gdml/schema/gdml.xsd +++ b/source/persistency/gdml/schema/gdml.xsd @@ -1,5 +1,5 @@ - + @@ -198,7 +198,7 @@ - + The GDML Schema version consists of 3 digits X.Y.Z where these mean: diff --git a/source/persistency/gdml/schema/gdml_core.xsd b/source/persistency/gdml/schema/gdml_core.xsd index 4b635c3c69..ab7a67920f 100755 --- a/source/persistency/gdml/schema/gdml_core.xsd +++ b/source/persistency/gdml/schema/gdml_core.xsd @@ -1,6 +1,6 @@ - + diff --git a/source/persistency/gdml/schema/gdml_define.xsd b/source/persistency/gdml/schema/gdml_define.xsd index 9a72fe6715..ccf56136ac 100755 --- a/source/persistency/gdml/schema/gdml_define.xsd +++ b/source/persistency/gdml/schema/gdml_define.xsd @@ -1,6 +1,6 @@ - - + + diff --git a/source/persistency/gdml/schema/gdml_extensions.xsd b/source/persistency/gdml/schema/gdml_extensions.xsd index 4c537de559..e226af10db 100644 --- a/source/persistency/gdml/schema/gdml_extensions.xsd +++ b/source/persistency/gdml/schema/gdml_extensions.xsd @@ -1,5 +1,5 @@ - + diff --git a/source/persistency/gdml/schema/gdml_materials.xsd b/source/persistency/gdml/schema/gdml_materials.xsd index 13ab1a1b6d..891a27b64e 100755 --- a/source/persistency/gdml/schema/gdml_materials.xsd +++ b/source/persistency/gdml/schema/gdml_materials.xsd @@ -1,6 +1,6 @@ - + diff --git a/source/persistency/gdml/schema/gdml_parameterised.xsd b/source/persistency/gdml/schema/gdml_parameterised.xsd index 4b88df4ff9..631e38776f 100755 --- a/source/persistency/gdml/schema/gdml_parameterised.xsd +++ b/source/persistency/gdml/schema/gdml_parameterised.xsd @@ -1,5 +1,5 @@ - + diff --git a/source/persistency/gdml/schema/gdml_replicas.xsd b/source/persistency/gdml/schema/gdml_replicas.xsd index 5e45b8b11e..c166719c49 100755 --- a/source/persistency/gdml/schema/gdml_replicas.xsd +++ b/source/persistency/gdml/schema/gdml_replicas.xsd @@ -1,5 +1,5 @@ - + diff --git a/source/persistency/gdml/schema/gdml_solids.xsd b/source/persistency/gdml/schema/gdml_solids.xsd index b3a8a35c1e..2a3a9fa087 100755 --- a/source/persistency/gdml/schema/gdml_solids.xsd +++ b/source/persistency/gdml/schema/gdml_solids.xsd @@ -1,6 +1,6 @@ - - + + @@ -53,7 +53,6 @@ - @@ -76,7 +75,6 @@ - @@ -96,7 +94,6 @@ - @@ -126,6 +123,28 @@ + + + Scaled solid: + For the scale component, values must be greater than zero. + + + + + + + + + + + + + + + + + + Base surface type diff --git a/source/persistency/gdml/sources.cmake b/source/persistency/gdml/sources.cmake index 8fa932a916..03ac9004bd 100644 --- a/source/persistency/gdml/sources.cmake +++ b/source/persistency/gdml/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 89398 2015-04-09 09:56:29Z gcosmo $ +# $Id: sources.cmake 96673 2016-04-29 12:08:20Z gcosmo $ # #------------------------------------------------------------------------------ @@ -49,6 +49,7 @@ include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include) include_directories(${CMAKE_SOURCE_DIR}/source/run/include) include_directories(${CMAKE_SOURCE_DIR}/source/track/include) include_directories(${CMAKE_SOURCE_DIR}/source/tracking/include) +include_directories(${CMAKE_SOURCE_DIR}/source/digits_hits/detector/include) # # Define the Geant4 Module. diff --git a/source/persistency/gdml/src/G4GDMLMessenger.cc b/source/persistency/gdml/src/G4GDMLMessenger.cc index 3faf52ac29..72a029d901 100644 --- a/source/persistency/gdml/src/G4GDMLMessenger.cc +++ b/source/persistency/gdml/src/G4GDMLMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLMessenger.cc 89381 2015-04-08 15:32:47Z gcosmo $ +// $Id: G4GDMLMessenger.cc 96673 2016-04-29 12:08:20Z gcosmo $ // // // class G4GDMLMessenger Implementation @@ -85,6 +85,13 @@ G4GDMLMessenger::G4GDMLMessenger(G4GDMLParser* myPars) EcutsCmd->SetDefaultValue(false); EcutsCmd->AvailableForStates(G4State_Idle); + SDCmd = new G4UIcmdWithABool("/persistency/gdml/export_SD",this); + SDCmd->SetGuidance("Enable export of SD associated"); + SDCmd->SetGuidance("to logical volumes."); + SDCmd->SetParameterName("export_SD",false); + SDCmd->SetDefaultValue(false); + SDCmd->AvailableForStates(G4State_Idle); + ClearCmd = new G4UIcmdWithoutParameter("/persistency/gdml/clear",this); ClearCmd->SetGuidance("Clear geometry (before reading a new one from GDML)."); ClearCmd->AvailableForStates(G4State_Idle); @@ -98,6 +105,7 @@ G4GDMLMessenger::~G4GDMLMessenger() delete TopVolCmd; delete RegionCmd; delete EcutsCmd; + delete SDCmd; delete persistencyDir; delete gdmlDir; } @@ -123,6 +131,12 @@ void G4GDMLMessenger::SetNewValue(G4UIcommand* command, G4String newValue) myParser->SetEnergyCutsExport(mode); } + if( command == SDCmd ) + { + G4bool mode = SDCmd->GetNewBoolValue(newValue); + myParser->SetSDExport(mode); + } + if( command == TopVolCmd ) { topvol = G4LogicalVolumeStore::GetInstance()->GetVolume(newValue); diff --git a/source/persistency/gdml/src/G4GDMLParser.cc b/source/persistency/gdml/src/G4GDMLParser.cc index 9706f4b1bd..6bc8a5b13f 100644 --- a/source/persistency/gdml/src/G4GDMLParser.cc +++ b/source/persistency/gdml/src/G4GDMLParser.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLParser.cc 90041 2015-05-11 09:46:06Z gcosmo $ +// $Id: G4GDMLParser.cc 96190 2016-03-29 08:07:36Z gcosmo $ // // // class G4GDMLParser Implementation @@ -121,6 +121,9 @@ void G4GDMLParser::ImportRegions() { const G4String& cvalue = raux->value; const G4String& cunit = raux->unit; + if (G4UnitDefinition::GetCategory(cunit)!="Length") { + G4Exception("G4GDMLParser::ImportRegions()", "InvalidRead", + FatalException, "Invalid unit for length!"); } G4double cut = eval.Evaluate(cvalue) * G4UnitDefinition::GetValueOf(cunit); pcuts->SetProductionCut(cut,"proton"); } else @@ -128,6 +131,9 @@ void G4GDMLParser::ImportRegions() { const G4String& cvalue = raux->value; const G4String& cunit = raux->unit; + if (G4UnitDefinition::GetCategory(cunit)!="Length") { + G4Exception("G4GDMLParser::ImportRegions()", "InvalidRead", + FatalException, "Invalid unit for length!"); } G4double cut = eval.Evaluate(cvalue) * G4UnitDefinition::GetValueOf(cunit); pcuts->SetProductionCut(cut,"e-"); } else @@ -135,6 +141,9 @@ void G4GDMLParser::ImportRegions() { const G4String& cvalue = raux->value; const G4String& cunit = raux->unit; + if (G4UnitDefinition::GetCategory(cunit)!="Length") { + G4Exception("G4GDMLParser::ImportRegions()", "InvalidRead", + FatalException, "Invalid unit for length!"); } G4double cut = eval.Evaluate(cvalue) * G4UnitDefinition::GetValueOf(cunit); pcuts->SetProductionCut(cut,"e+"); } else @@ -142,6 +151,9 @@ void G4GDMLParser::ImportRegions() { const G4String& cvalue = raux->value; const G4String& cunit = raux->unit; + if (G4UnitDefinition::GetCategory(cunit)!="Length") { + G4Exception("G4GDMLParser::ImportRegions()", "InvalidRead", + FatalException, "Invalid unit for length!"); } G4double cut = eval.Evaluate(cvalue) * G4UnitDefinition::GetValueOf(cunit); pcuts->SetProductionCut(cut,"gamma"); } else diff --git a/source/persistency/gdml/src/G4GDMLReadDefine.cc b/source/persistency/gdml/src/G4GDMLReadDefine.cc index fdbb21f552..eec57f6feb 100644 --- a/source/persistency/gdml/src/G4GDMLReadDefine.cc +++ b/source/persistency/gdml/src/G4GDMLReadDefine.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GDMLReadDefine.cc 92977 2015-09-24 14:56:22Z gcosmo $ +// $Id: G4GDMLReadDefine.cc 96190 2016-03-29 08:07:36Z gcosmo $ // // class G4GDMLReadDefine Implementation // @@ -299,7 +299,11 @@ G4GDMLReadDefine::PositionRead(const xercesc::DOMElement* const positionElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadDefine::PositionRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="x") { position.setX(eval.Evaluate(attValue)); } else if (attName=="y") { position.setY(eval.Evaluate(attValue)); } else if (attName=="z") { position.setZ(eval.Evaluate(attValue)); } @@ -338,8 +342,12 @@ G4GDMLReadDefine::RotationRead(const xercesc::DOMElement* const rotationElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="x") { rotation.setX(eval.Evaluate(attValue)); } else + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadDefine::RotationRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else + if (attName=="x") { rotation.setX(eval.Evaluate(attValue)); } else if (attName=="y") { rotation.setY(eval.Evaluate(attValue)); } else if (attName=="z") { rotation.setZ(eval.Evaluate(attValue)); } } diff --git a/source/persistency/gdml/src/G4GDMLReadMaterials.cc b/source/persistency/gdml/src/G4GDMLReadMaterials.cc index a208487df6..daf786db3f 100644 --- a/source/persistency/gdml/src/G4GDMLReadMaterials.cc +++ b/source/persistency/gdml/src/G4GDMLReadMaterials.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLReadMaterials.cc 89243 2015-03-27 16:24:39Z gcosmo $ +// $Id: G4GDMLReadMaterials.cc 96190 2016-03-29 08:07:36Z gcosmo $ // GEANT4 tag $ Name:$ // // class G4GDMLReadMaterials Implementation @@ -81,7 +81,11 @@ G4GDMLReadMaterials::AtomRead(const xercesc::DOMElement* const atomElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="value") { value = eval.Evaluate(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } + if (attName=="unit") {unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Molar mass") { + G4Exception("G4GDMLReadMaterials::AtomRead()", "InvalidRead", + FatalException, "Invalid unit for atomic mass!"); } + } } return value*unit; @@ -151,7 +155,12 @@ G4double G4GDMLReadMaterials::DRead(const xercesc::DOMElement* const DElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="value") { value = eval.Evaluate(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } + if (attName=="unit") { + unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Volumic Mass") { + G4Exception("G4GDMLReadMaterials::DRead()", "InvalidRead", + FatalException, "Invalid unit for density!"); } + } } return value*unit; @@ -185,7 +194,11 @@ G4double G4GDMLReadMaterials::PRead(const xercesc::DOMElement* const PElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="value") { value = eval.Evaluate(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Pressure") { + G4Exception("G4GDMLReadMaterials::PRead()", "InvalidRead", + FatalException, "Invalid unit for pressure!"); } + } } return value*unit; @@ -219,7 +232,11 @@ G4double G4GDMLReadMaterials::TRead(const xercesc::DOMElement* const TElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="value") { value = eval.Evaluate(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Temperature") { + G4Exception("G4GDMLReadMaterials::TRead()", "InvalidRead", + FatalException, "Invalid unit for temperature!"); } + } } return value*unit; @@ -253,7 +270,11 @@ G4double G4GDMLReadMaterials::MEERead(const xercesc::DOMElement* const PElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="value") { value = eval.Evaluate(attValue); } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Energy") { + G4Exception("G4GDMLReadMaterials::MEERead()", "InvalidRead", + FatalException, "Invalid unit for energy!"); } + } } return value*unit; diff --git a/source/persistency/gdml/src/G4GDMLReadParamvol.cc b/source/persistency/gdml/src/G4GDMLReadParamvol.cc index 168d7cb6d8..f1fb5f6f3c 100644 --- a/source/persistency/gdml/src/G4GDMLReadParamvol.cc +++ b/source/persistency/gdml/src/G4GDMLReadParamvol.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GDMLReadParamvol.cc 89243 2015-03-27 16:24:39Z gcosmo $ +// $Id: G4GDMLReadParamvol.cc 96190 2016-03-29 08:07:36Z gcosmo $ // // class G4GDMLReadParamvol Implementation // @@ -76,7 +76,11 @@ Box_dimensionsRead( const xercesc::DOMElement* const element, const G4String attName = Transcode(attribute->getName()); const G4String attValue = Transcode(attribute->getValue()); - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Box_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="x") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="y") { parameter.dimension[1] = eval.Evaluate(attValue); } else if (attName=="z") { parameter.dimension[2] = eval.Evaluate(attValue); } @@ -115,7 +119,11 @@ Trd_dimensionsRead( const xercesc::DOMElement* const element, const G4String attName = Transcode(attribute->getName()); const G4String attValue = Transcode(attribute->getValue()); - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Trd_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="x1") { parameter.dimension[0]=eval.Evaluate(attValue); } else if (attName=="x2") { parameter.dimension[1]=eval.Evaluate(attValue); } else if (attName=="y1") { parameter.dimension[2]=eval.Evaluate(attValue); } else @@ -160,9 +168,17 @@ Trap_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Trap_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Trap_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="z") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="theta") @@ -230,9 +246,17 @@ Tube_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Tube_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Tube_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="InR") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="OutR") @@ -282,9 +306,17 @@ Cone_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Cone_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Cone_dimensions()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin1") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="rmax1") @@ -340,9 +372,17 @@ Sphere_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Sphere_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Sphere_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="rmax") @@ -393,7 +433,11 @@ Orb_dimensionsRead( const xercesc::DOMElement* const element, const G4String attName = Transcode(attribute->getName()); const G4String attValue = Transcode(attribute->getValue()); - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Orb_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + else if (attName=="r") { parameter.dimension[0] = eval.Evaluate(attValue); } } @@ -430,9 +474,17 @@ Torus_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Torus_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Torus_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="rmax") @@ -480,7 +532,11 @@ Ellipsoid_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Ellipsoid_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="ax") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="by") @@ -530,9 +586,17 @@ Para_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Para_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Para_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="x") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="y") @@ -585,9 +649,17 @@ Hype_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Hype_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Hype_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="rmax") @@ -639,9 +711,17 @@ Polycone_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Polycone_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Polycone_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="startPhi") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="openPhi") @@ -712,9 +792,17 @@ Polyhedra_dimensionsRead( const xercesc::DOMElement* const element, const G4String attValue = Transcode(attribute->getValue()); if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadParamvol::Polyhedra_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="aunit") - { aunit = G4UnitDefinition::GetValueOf(attValue); } else + { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadParamvol::Polyhedra_dimensionsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="startPhi") { parameter.dimension[0] = eval.Evaluate(attValue); } else if (attName=="openPhi") diff --git a/source/persistency/gdml/src/G4GDMLReadSolids.cc b/source/persistency/gdml/src/G4GDMLReadSolids.cc index 89c7a29c78..abbf0d4ad8 100644 --- a/source/persistency/gdml/src/G4GDMLReadSolids.cc +++ b/source/persistency/gdml/src/G4GDMLReadSolids.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GDMLReadSolids.cc 93151 2015-10-08 11:53:10Z gcosmo $ +// $Id: G4GDMLReadSolids.cc 96190 2016-03-29 08:07:36Z gcosmo $ // // class G4GDMLReadSolids Implementation // @@ -47,6 +47,7 @@ #include "G4Polyhedra.hh" #include "G4QuadrangularFacet.hh" #include "G4ReflectedSolid.hh" +#include "G4ScaledSolid.hh" #include "G4Sphere.hh" #include "G4SolidStore.hh" #include "G4SubtractionSolid.hh" @@ -206,8 +207,13 @@ void G4GDMLReadSolids::BoxRead(const xercesc::DOMElement* const boxElement) const G4String attName = Transcode(attribute->getName()); const G4String attValue = Transcode(attribute->getValue()); - if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="name") { name = GenerateName(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::BoxRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } + else if (attName=="x") { x = eval.Evaluate(attValue); } else if (attName=="y") { y = eval.Evaluate(attValue); } else if (attName=="z") { z = eval.Evaluate(attValue); } @@ -256,9 +262,17 @@ void G4GDMLReadSolids::ConeRead(const xercesc::DOMElement* const coneElement) const G4String attName = Transcode(attribute->getName()); const G4String attValue = Transcode(attribute->getValue()); - if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="name") { name = GenerateName(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::ConeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::ConeRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin1") { rmin1 = eval.Evaluate(attValue); } else if (attName=="rmax1") { rmax1 = eval.Evaluate(attValue); } else if (attName=="rmin2") { rmin2 = eval.Evaluate(attValue); } else @@ -313,7 +327,11 @@ ElconeRead(const xercesc::DOMElement* const elconeElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::ElconeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="dx") { dx = eval.Evaluate(attValue); } else if (attName=="dy") { dy = eval.Evaluate(attValue); } else if (attName=="zmax") { zmax = eval.Evaluate(attValue); } else @@ -361,7 +379,11 @@ EllipsoidRead(const xercesc::DOMElement* const ellipsoidElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::EllipsoidRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="ax") { ax = eval.Evaluate(attValue); } else if (attName=="by") { by = eval.Evaluate(attValue); } else if (attName=="cz") { cz = eval.Evaluate(attValue); } else @@ -411,7 +433,11 @@ EltubeRead(const xercesc::DOMElement* const eltubeElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::EltubeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="dx") { dx = eval.Evaluate(attValue); } else if (attName=="dy") { dy = eval.Evaluate(attValue); } else if (attName=="dz") { dz = eval.Evaluate(attValue); } @@ -453,7 +479,11 @@ void G4GDMLReadSolids::XtruRead(const xercesc::DOMElement* const xtruElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::XtruRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } } std::vector twoDimVertexList; @@ -518,8 +548,16 @@ void G4GDMLReadSolids::HypeRead(const xercesc::DOMElement* const hypeElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::HypeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::HypeRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { rmin = eval.Evaluate(attValue); } else if (attName=="rmax") { rmax = eval.Evaluate(attValue); } else if (attName=="inst") { inst = eval.Evaluate(attValue); } else @@ -717,7 +755,11 @@ void G4GDMLReadSolids::OrbRead(const xercesc::DOMElement* const orbElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::OrbRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="r") { r = eval.Evaluate(attValue); } } @@ -762,9 +804,17 @@ void G4GDMLReadSolids::ParaRead(const xercesc::DOMElement* const paraElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="x") { x = eval.Evaluate(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::ParaRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::ParaRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else + if (attName=="x") { x = eval.Evaluate(attValue); } else if (attName=="y") { y = eval.Evaluate(attValue); } else if (attName=="z") { z = eval.Evaluate(attValue); } else if (attName=="alpha") { alpha = eval.Evaluate(attValue); } else @@ -815,7 +865,11 @@ ParaboloidRead(const xercesc::DOMElement* const paraElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::ParaboloidRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="rlo") { rlo = eval.Evaluate(attValue); } else if (attName=="rhi") { rhi = eval.Evaluate(attValue); } else if (attName=="dz") { dz = eval.Evaluate(attValue); } @@ -861,8 +915,16 @@ PolyconeRead(const xercesc::DOMElement* const polyconeElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::PolyconeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::PolyconeRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="startphi") { startphi = eval.Evaluate(attValue); }else if (attName=="deltaphi") { deltaphi = eval.Evaluate(attValue); } } @@ -944,8 +1006,16 @@ GenericPolyconeRead(const xercesc::DOMElement* const polyconeElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::GenericPolyconeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::GenericPolyconeRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="startphi") { startphi = eval.Evaluate(attValue); }else if (attName=="deltaphi") { deltaphi = eval.Evaluate(attValue); } } @@ -1023,8 +1093,16 @@ PolyhedraRead(const xercesc::DOMElement* const polyhedraElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::PolyhedraRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::PolyhedraRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="startphi") { startphi = eval.Evaluate(attValue); } else if (attName=="deltaphi") { deltaphi = eval.Evaluate(attValue); } else if (attName=="numsides") { numsides = eval.EvaluateInteger(attValue); } @@ -1108,8 +1186,16 @@ GenericPolyhedraRead(const xercesc::DOMElement* const polyhedraElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::GenericPolyhedraRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::GenericPolyhedraRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="startphi") { startphi = eval.Evaluate(attValue); } else if (attName=="deltaphi") { deltaphi = eval.Evaluate(attValue); } else if (attName=="numsides") { numsides = eval.EvaluateInteger(attValue); } @@ -1198,8 +1284,12 @@ QuadrangularRead(const xercesc::DOMElement* const quadrangularElement) if (attName=="vertex4") { vertex4 = GetPosition(GenerateName(attValue)); } else if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="type") + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::QuadrangularRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="type") { if (attValue=="RELATIVE") { type = RELATIVE; } } } @@ -1242,8 +1332,16 @@ ReflectedSolidRead(const xercesc::DOMElement* const reflectedSolidElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::ReflectedSolidRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::ReflectedSolidRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="solid") { solid = GenerateName(attValue); } else if (attName=="sx") { scale.setX(eval.Evaluate(attValue)); } else if (attName=="sy") { scale.setY(eval.Evaluate(attValue)); } else @@ -1265,6 +1363,74 @@ ReflectedSolidRead(const xercesc::DOMElement* const reflectedSolidElement) new G4ReflectedSolid(name,GetSolid(solid),transform); } +void G4GDMLReadSolids:: +ScaledSolidRead(const xercesc::DOMElement* const scaledSolidElement) +{ + G4String name; + G4VSolid* solid=0; + G4ThreeVector scale(1.0,1.0,1.0); + + const xercesc::DOMNamedNodeMap* const attributes + = scaledSolidElement->getAttributes(); + XMLSize_t attributeCount = attributes->getLength(); + + for (XMLSize_t attribute_index=0; + attribute_indexitem(attribute_index); + + if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE) + { continue; } + + const xercesc::DOMAttr* const attribute + = dynamic_cast(attribute_node); + if (!attribute) + { + G4Exception("G4GDMLReadSolids::ScaledSolidRead()", + "InvalidRead", FatalException, "No attribute found!"); + return; + } + const G4String attName = Transcode(attribute->getName()); + const G4String attValue = Transcode(attribute->getValue()); + + if (attName=="name") { name = GenerateName(attValue); } + } + + for (xercesc::DOMNode* iter = scaledSolidElement->getFirstChild(); + iter != 0; iter = iter->getNextSibling()) + { + if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE) { continue; } + + const xercesc::DOMElement* const child + = dynamic_cast(iter); + if (!child) + { + G4Exception("G4GDMLReadSolids::ScaledSolidRead()", + "InvalidRead", FatalException, "No child found!"); + return; + } + const G4String tag = Transcode(child->getTagName()); + + if (tag=="solidref") + { solid = GetSolid(GenerateName(RefRead(child))); } + else if (tag=="scale") + { VectorRead(child,scale); } + else if (tag=="scaleref") + { scale = GetScale(GenerateName(RefRead(child))); } + else + { + G4String error_msg = "Unknown tag in scaled solid: " + tag; + G4Exception("G4GDMLReadSolids::ScaledSolidRead()", "ReadError", + FatalException, error_msg); + return; + } + } + + G4Scale3D transform = G4Scale3D(scale.x(),scale.y(),scale.z()); + + new G4ScaledSolid(name, solid ,transform); +} + G4ExtrudedSolid::ZSection G4GDMLReadSolids:: SectionRead(const xercesc::DOMElement* const sectionElement,G4double lunit) { @@ -1345,8 +1511,16 @@ SphereRead(const xercesc::DOMElement* const sphereElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::SphereRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::SphereRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { rmin = eval.Evaluate(attValue); } else if (attName=="rmax") { rmax = eval.Evaluate(attValue); } else if (attName=="startphi") { startphi = eval.Evaluate(attValue); } else @@ -1457,7 +1631,11 @@ void G4GDMLReadSolids::TetRead(const xercesc::DOMElement* const tetElement) if (attName=="name") { name = GenerateName(attValue); } else if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TetRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="vertex1") { vertex1 = GetPosition(GenerateName(attValue)); } else if (attName=="vertex2") @@ -1506,8 +1684,16 @@ void G4GDMLReadSolids::TorusRead(const xercesc::DOMElement* const torusElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TorusRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TorusRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { rmin = eval.Evaluate(attValue); } else if (attName=="rmax") { rmax = eval.Evaluate(attValue); } else if (attName=="rtor") { rtor = eval.Evaluate(attValue); } else @@ -1558,7 +1744,11 @@ GenTrapRead(const xercesc::DOMElement* const gtrapElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::GenTrapRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="dz") { dz = eval.Evaluate(attValue); } else if (attName=="v1x") { v1x = eval.Evaluate(attValue); } else if (attName=="v1y") { v1y = eval.Evaluate(attValue); } else @@ -1632,8 +1822,16 @@ void G4GDMLReadSolids::TrapRead(const xercesc::DOMElement* const trapElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TrapRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TrapRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="z") { z = eval.Evaluate(attValue); } else if (attName=="theta") { theta = eval.Evaluate(attValue); } else if (attName=="phi") { phi = eval.Evaluate(attValue); } else @@ -1695,7 +1893,11 @@ void G4GDMLReadSolids::TrdRead(const xercesc::DOMElement* const trdElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TrdRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="x1") { x1 = eval.Evaluate(attValue); } else if (attName=="x2") { x2 = eval.Evaluate(attValue); } else if (attName=="y1") { y1 = eval.Evaluate(attValue); } else @@ -1751,7 +1953,11 @@ TriangularRead(const xercesc::DOMElement* const triangularElement) if (attName=="vertex3") { vertex3 = GetPosition(GenerateName(attValue)); } else if (attName=="lunit") - { lunit = G4UnitDefinition::GetValueOf(attValue); } else + { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TriangularRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="type") { if (attValue=="RELATIVE") { type = RELATIVE; } } } @@ -1794,8 +2000,16 @@ void G4GDMLReadSolids::TubeRead(const xercesc::DOMElement* const tubeElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TubeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TubeRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { rmin = eval.Evaluate(attValue); } else if (attName=="rmax") { rmax = eval.Evaluate(attValue); } else if (attName=="z") { z = eval.Evaluate(attValue); } else @@ -1849,8 +2063,16 @@ void G4GDMLReadSolids::CutTubeRead(const xercesc::DOMElement* const cuttubeEleme const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::CutTubeRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::CutTubeRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="rmin") { rmin = eval.Evaluate(attValue); } else if (attName=="rmax") { rmax = eval.Evaluate(attValue); } else if (attName=="z") { z = eval.Evaluate(attValue); } else @@ -1909,8 +2131,16 @@ TwistedboxRead(const xercesc::DOMElement* const twistedboxElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TwistedBoxRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TwistedboxRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="PhiTwist") { PhiTwist = eval.Evaluate(attValue); } else if (attName=="x") { x = eval.Evaluate(attValue); } else if (attName=="y") { y = eval.Evaluate(attValue); } else @@ -1967,8 +2197,16 @@ TwistedtrapRead(const xercesc::DOMElement* const twistedtrapElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TwistedtrapRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TwistedtrapRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="PhiTwist") { PhiTwist = eval.Evaluate(attValue); } else if (attName=="z") { z = eval.Evaluate(attValue); } else if (attName=="Theta") { Theta = eval.Evaluate(attValue); } else @@ -2035,8 +2273,16 @@ TwistedtrdRead(const xercesc::DOMElement* const twistedtrdElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TwistedtrdRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TwistedtrdRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="x1") { x1 = eval.Evaluate(attValue); } else if (attName=="x2") { x2 = eval.Evaluate(attValue); } else if (attName=="y1") { y1 = eval.Evaluate(attValue); } else @@ -2091,8 +2337,16 @@ TwistedtubsRead(const xercesc::DOMElement* const twistedtubsElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = GenerateName(attValue); } else - if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); } else - if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="lunit") { lunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadSolids::TwistedtubsRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else + if (attName=="aunit") { aunit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Angle") { + G4Exception("G4GDMLReadSolids::TwistedtubsRead()", "InvalidRead", + FatalException, "Invalid unit for angle!"); } + } else if (attName=="twistedangle") { twistedangle=eval.Evaluate(attValue); } else if (attName=="endinnerrad") { endinnerrad=eval.Evaluate(attValue); } else if (attName=="endouterrad") { endouterrad=eval.Evaluate(attValue); } else @@ -2371,6 +2625,7 @@ void G4GDMLReadSolids::SolidsRead(const xercesc::DOMElement* const solidsElement if (tag=="polyhedra") { PolyhedraRead(child); } else if (tag=="genericPolyhedra") { GenericPolyhedraRead(child); } else if (tag=="reflectedSolid") { ReflectedSolidRead(child); } else + if (tag=="scaledSolid") { ScaledSolidRead(child); } else if (tag=="sphere") { SphereRead(child); } else if (tag=="subtraction") { BooleanRead(child,SUBTRACTION); } else if (tag=="tessellated") { TessellatedRead(child); } else diff --git a/source/persistency/gdml/src/G4GDMLReadStructure.cc b/source/persistency/gdml/src/G4GDMLReadStructure.cc index a00b03a0c4..376e72d038 100644 --- a/source/persistency/gdml/src/G4GDMLReadStructure.cc +++ b/source/persistency/gdml/src/G4GDMLReadStructure.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GDMLReadStructure.cc 91689 2015-07-31 09:58:27Z gcosmo $ +// $Id: G4GDMLReadStructure.cc 96190 2016-03-29 08:07:36Z gcosmo $ // // class G4GDMLReadStructure Implementation // @@ -156,7 +156,11 @@ DivisionvolRead(const xercesc::DOMElement* const divisionvolElement) const G4String attValue = Transcode(attribute->getValue()); if (attName=="name") { name = attValue; } else - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadStructure::DivisionvolRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="width") { width = eval.Evaluate(attValue); } else if (attName=="offset") { offset = eval.Evaluate(attValue); } else if (attName=="number") { number = eval.EvaluateInteger(attValue); } else @@ -550,7 +554,11 @@ QuantityRead(const xercesc::DOMElement* const readElement) const G4String attName = Transcode(attribute->getName()); const G4String attValue = Transcode(attribute->getValue()); - if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); } else + if (attName=="unit") { unit = G4UnitDefinition::GetValueOf(attValue); + if (G4UnitDefinition::GetCategory(attValue)!="Length") { + G4Exception("G4GDMLReadStructure::QuantityRead()", "InvalidRead", + FatalException, "Invalid unit for length!"); } + } else if (attName=="value"){ value= eval.Evaluate(attValue); } } diff --git a/source/persistency/gdml/src/G4GDMLWrite.cc b/source/persistency/gdml/src/G4GDMLWrite.cc index ce85e5b3e1..831ad27529 100644 --- a/source/persistency/gdml/src/G4GDMLWrite.cc +++ b/source/persistency/gdml/src/G4GDMLWrite.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLWrite.cc 89243 2015-03-27 16:24:39Z gcosmo $ +// $Id: G4GDMLWrite.cc 96170 2016-03-22 09:17:29Z gcosmo $ // // class G4GDMLWrite Implementation // @@ -136,9 +136,9 @@ G4String G4GDMLWrite::GenerateName(const G4String& name, const void* const ptr) xercesc::DOMAttr* G4GDMLWrite::NewAttribute(const G4String& name, const G4String& value) { - xercesc::XMLString::transcode(name,tempStr,99); + xercesc::XMLString::transcode(name,tempStr,9999); xercesc::DOMAttr* att = doc->createAttribute(tempStr); - xercesc::XMLString::transcode(value,tempStr,99); + xercesc::XMLString::transcode(value,tempStr,9999); att->setValue(tempStr); return att; } @@ -146,20 +146,20 @@ xercesc::DOMAttr* G4GDMLWrite::NewAttribute(const G4String& name, xercesc::DOMAttr* G4GDMLWrite::NewAttribute(const G4String& name, const G4double& value) { - xercesc::XMLString::transcode(name,tempStr,99); + xercesc::XMLString::transcode(name,tempStr,9999); xercesc::DOMAttr* att = doc->createAttribute(tempStr); std::ostringstream ostream; ostream.precision(15); ostream << value; G4String str = ostream.str(); - xercesc::XMLString::transcode(str,tempStr,99); + xercesc::XMLString::transcode(str,tempStr,9999); att->setValue(tempStr); return att; } xercesc::DOMElement* G4GDMLWrite::NewElement(const G4String& name) { - xercesc::XMLString::transcode(name,tempStr,99); + xercesc::XMLString::transcode(name,tempStr,9999); return doc->createElement(tempStr); } @@ -185,12 +185,12 @@ G4Transform3D G4GDMLWrite::Write(const G4String& fname, VolumeMap().clear(); // The module map is global for all modules, // so clear it only at once! - xercesc::XMLString::transcode("LS", tempStr, 99); + xercesc::XMLString::transcode("LS", tempStr, 9999); xercesc::DOMImplementationRegistry::getDOMImplementation(tempStr); - xercesc::XMLString::transcode("Range", tempStr, 99); + xercesc::XMLString::transcode("Range", tempStr, 9999); xercesc::DOMImplementation* impl = xercesc::DOMImplementationRegistry::getDOMImplementation(tempStr); - xercesc::XMLString::transcode("gdml", tempStr, 99); + xercesc::XMLString::transcode("gdml", tempStr, 9999); doc = impl->createDocument(0,tempStr,0); xercesc::DOMElement* gdml = doc->getDocumentElement(); diff --git a/source/persistency/gdml/src/G4GDMLWriteSolids.cc b/source/persistency/gdml/src/G4GDMLWriteSolids.cc index 9fae575158..7b575c3589 100644 --- a/source/persistency/gdml/src/G4GDMLWriteSolids.cc +++ b/source/persistency/gdml/src/G4GDMLWriteSolids.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLWriteSolids.cc 93151 2015-10-08 11:53:10Z gcosmo $ +// $Id: G4GDMLWriteSolids.cc 96133 2016-03-16 22:21:17Z gcosmo $ // // class G4GDMLWriteSolids Implementation // @@ -36,6 +36,7 @@ #include "G4SystemOfUnits.hh" #include "G4BooleanSolid.hh" +#include "G4ScaledSolid.hh" #include "G4Box.hh" #include "G4Cons.hh" #include "G4Ellipsoid.hh" @@ -265,6 +266,39 @@ BooleanWrite(xercesc::DOMElement* solElement, } } +void G4GDMLWriteSolids:: +ScaledWrite(xercesc::DOMElement* solElement, + const G4ScaledSolid* const scaled) +{ + G4String tag("scaledSolid"); + + G4VSolid* solid = const_cast(scaled->GetUnscaledSolid()); + G4Scale3D scale = scaled->GetScaleTransform(); + G4ThreeVector sclVector = G4ThreeVector(scale.xx(), scale.yy(), scale.zz()); + + AddSolid(solid); // Add the constituent solid! + + const G4String& name = GenerateName(scaled->GetName(),scaled); + const G4String& solidref = GenerateName(solid->GetName(),solid); + + xercesc::DOMElement* scaledElement = NewElement(tag); + scaledElement->setAttributeNode(NewAttribute("name",name)); + + xercesc::DOMElement* solidElement = NewElement("solidref"); + solidElement->setAttributeNode(NewAttribute("ref",solidref)); + scaledElement->appendChild(solidElement); + + if ( (std::fabs(scale.xx()) > kLinearPrecision) + && (std::fabs(scale.yy()) > kLinearPrecision) + && (std::fabs(scale.zz()) > kLinearPrecision) ) + { + ScaleWrite(scaledElement, name+"_scl", sclVector); + } + + solElement->appendChild(scaledElement); + // Add the scaled solid AFTER its constituent solid! +} + void G4GDMLWriteSolids:: BoxWrite(xercesc::DOMElement* solElement, const G4Box* const box) { @@ -1041,6 +1075,9 @@ void G4GDMLWriteSolids::AddSolid(const G4VSolid* const solidPtr) if (const G4BooleanSolid* const booleanPtr = dynamic_cast(solidPtr)) { BooleanWrite(solidsElement,booleanPtr); } else + if (const G4ScaledSolid* const scaledPtr + = dynamic_cast(solidPtr)) + { ScaledWrite(solidsElement,scaledPtr); } else if (solidPtr->GetEntityType()=="G4MultiUnion") { const G4MultiUnion* const munionPtr = static_cast(solidPtr); diff --git a/source/persistency/gdml/src/G4GDMLWriteStructure.cc b/source/persistency/gdml/src/G4GDMLWriteStructure.cc index bec70681a9..38f7ed7d9c 100644 --- a/source/persistency/gdml/src/G4GDMLWriteStructure.cc +++ b/source/persistency/gdml/src/G4GDMLWriteStructure.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GDMLWriteStructure.cc 91789 2015-08-06 08:14:46Z gcosmo $ +// $Id: G4GDMLWriteStructure.cc 96677 2016-04-29 12:20:20Z gcosmo $ // // class G4GDMLWriteStructure Implementation // @@ -55,6 +55,8 @@ #include "G4Positron.hh" #include "G4Proton.hh" +#include "G4VSensitiveDetector.hh" + G4GDMLWriteStructure::G4GDMLWriteStructure() : G4GDMLWriteParamvol(), cexport(false) { @@ -527,7 +529,10 @@ TraverseVolumeTree(const G4LogicalVolume* const volumePtr, const G4int depth) if (cexport) { ExportEnergyCuts(volumePtr); } // Add optional energy cuts - + + if (sdexport) { ExportSD(volumePtr); } + // Add optional SDs + // Here write the auxiliary info // auxiter = auxmap.find(volumePtr); @@ -607,3 +612,24 @@ G4GDMLWriteStructure::ExportEnergyCuts(const G4LogicalVolume* const lvol) AddVolumeAuxiliary(eplusinfo, lvol); AddVolumeAuxiliary(protinfo, lvol); } + +void +G4GDMLWriteStructure::SetSDExport(G4bool fsd) +{ + sdexport = fsd; +} + + +void +G4GDMLWriteStructure::ExportSD(const G4LogicalVolume* const lvol) +{ + G4VSensitiveDetector* sd = lvol->GetSensitiveDetector(); + + if(sd) + { + G4String SDname = sd->GetName(); + + G4GDMLAuxStructType SDinfo = {"SensDet", SDname, "", 0}; + AddVolumeAuxiliary(SDinfo, lvol); + } +} diff --git a/source/physics_lists/builders/History b/source/physics_lists/builders/History index f9ec7b0fc3..b665bbf2b7 100644 --- a/source/physics_lists/builders/History +++ b/source/physics_lists/builders/History @@ -14,6 +14,13 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +15-Apr-2016, Vladimir Ivanchenko (phys-builders-V10-02-01) +- OrderingParameterTable - disable msc PostStep + +18-Jan-2016, Alberto Ribon (phys-builders-V10-02-00) +- G4NeutronHPBuilder : used the name "NeutronHPInelastic" + (instead of "ParticleHPInelastic") + 19-Nov-2015, Alberto Ribon (phys-builders-V10-01-05) - G4NeutronHPBuilder : kept only the header file, with a typedef to G4NeutronPHPBuilder diff --git a/source/physics_lists/builders/OrderingParameterTable b/source/physics_lists/builders/OrderingParameterTable index c9052a5842..474a9e02ad 100644 --- a/source/physics_lists/builders/OrderingParameterTable +++ b/source/physics_lists/builders/OrderingParameterTable @@ -8,7 +8,7 @@ Annih 2 5 5 -1 5 0 AnnihToMuMu 2 6 -1 -1 6 0 AnnihToHad 2 7 -1 -1 7 0 NuclearStopp 2 8 -1 8 -1 0 -Msc 2 10 -1 1 1 0 +Msc 2 10 -1 1 -1 0 Rayleigh 2 11 -1 -1 1000 0 PhotoElectric 2 12 -1 -1 1000 0 Compton 2 13 -1 -1 1000 0 diff --git a/source/physics_lists/builders/src/G4NeutronPHPBuilder.cc b/source/physics_lists/builders/src/G4NeutronPHPBuilder.cc index 3330e83fc8..f18a002e75 100644 --- a/source/physics_lists/builders/src/G4NeutronPHPBuilder.cc +++ b/source/physics_lists/builders/src/G4NeutronPHPBuilder.cc @@ -90,7 +90,7 @@ Build(G4HadronCaptureProcess * aP) void G4NeutronPHPBuilder:: Build(G4NeutronInelasticProcess * aP) { - if(theHPInelastic==0) theHPInelastic = new G4ParticleHPInelastic(G4Neutron::Neutron(),"ParticleHPInelastic"); + if(theHPInelastic==0) theHPInelastic = new G4ParticleHPInelastic(G4Neutron::Neutron(),"NeutronHPInelastic"); theHPInelastic->SetMinEnergy(theIMin); theHPInelastic->SetMaxEnergy(theIMax); if(theHPInelasticData==0) theHPInelasticData = new G4ParticleHPInelasticData(G4Neutron::Neutron()); diff --git a/source/physics_lists/constructors/decay/GNUmakefile b/source/physics_lists/constructors/decay/GNUmakefile index fef78f294a..cc2ff46eb3 100644 --- a/source/physics_lists/constructors/decay/GNUmakefile +++ b/source/physics_lists/constructors/decay/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile 94090 2015-11-05 15:13:10Z gcosmo $ +# $Id: GNUmakefile 97907 2016-06-22 13:37:05Z gcosmo $ # --------------------------------------------------------------------------- # GNUmakefile for physics_lists/constructors/decay library. # Gunter Folger 10-Jan-2012. @@ -38,6 +38,8 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/transportation/include \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/processes/cuts/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ + -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ -I$(G4BASE)/processes/hadronic/stopping/include \ -I$(G4BASE)/processes/hadronic/management/include \ diff --git a/source/physics_lists/constructors/decay/History b/source/physics_lists/constructors/decay/History index 27846cd2ec..3752217b9e 100644 --- a/source/physics_lists/constructors/decay/History +++ b/source/physics_lists/constructors/decay/History @@ -1,4 +1,4 @@ -$Id: History 94090 2015-11-05 15:13:10Z gcosmo $ +$Id: History 97914 2016-06-22 15:22:24Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +22-Jun-2016, Vladimir Ivanchenko (phys-ctor-decay-V10-02-02) +22-Jun-2016, Vladimir Ivanchenko (phys-ctor-decay-V10-02-01) +- G4RadioactiveDecayPhysics - enable atomic de-excitation by the call + to EM parameters in ConstructProcess method (should co-work with + any EM physics) + +01-Jun-2016, Makoto Asai (phys-ctor-decay-V10-02-00) +- add G4UnknownDecayPhysics + 05-Nov-2015, Alberto Ribon (phys-ctor-decay-V10-01-05) - Migrated to particle_hp/ diff --git a/source/physics_lists/constructors/decay/include/G4UnknownDecayPhysics.hh b/source/physics_lists/constructors/decay/include/G4UnknownDecayPhysics.hh new file mode 100644 index 0000000000..1a377fb871 --- /dev/null +++ b/source/physics_lists/constructors/decay/include/G4UnknownDecayPhysics.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. * +// ******************************************************************** +// +// $Id: G4UnknownDecayPhysics.hh 70999 2013-06-09 01:37:53Z adotti $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4UnknownDecayPhysics +// +// Author: 2016 - M. Asai +// +//---------------------------------------------------------------------------- +// + +#ifndef G4UnknownDecayPhysics_h +#define G4UnknownDecayPhysics_h 1 + +#include "globals.hh" +#include "G4VPhysicsConstructor.hh" + +#include "G4UnknownDecay.hh" + +class G4UnknownDecayPhysics : public G4VPhysicsConstructor +{ + public: + G4UnknownDecayPhysics(G4int ver = 1); + G4UnknownDecayPhysics(const G4String& name, G4int ver = 1); + virtual ~G4UnknownDecayPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + + virtual G4UnknownDecay* GetDecayProcess() { return fDecayProcess; } + +private: + static G4ThreadLocal G4UnknownDecay* fDecayProcess; + G4int verbose; + static G4ThreadLocal G4bool wasActivated; +}; + +#endif + + + + + + + + diff --git a/source/physics_lists/constructors/decay/sources.cmake b/source/physics_lists/constructors/decay/sources.cmake index 34b85e2008..5a88b04317 100644 --- a/source/physics_lists/constructors/decay/sources.cmake +++ b/source/physics_lists/constructors/decay/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 10/01/2013 # -# $Id: sources.cmake 94090 2015-11-05 15:13:10Z gcosmo $ +# $Id: sources.cmake 97907 2016-06-22 13:37:05Z gcosmo $ # #------------------------------------------------------------------------------ @@ -44,6 +44,8 @@ include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/transportation/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/decay/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/cuts/include) +include_directories(${CMAKE_SOURCE_DIR}/source/processes/electromagnetic/lowenergy/include) +include_directories(${CMAKE_SOURCE_DIR}/source/processes/electromagnetic/utils/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/stopping/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include) @@ -87,19 +89,19 @@ GEANT4_DEFINE_MODULE(NAME G4phys_ctor_decay G4DecayPhysics.hh G4SpinDecayPhysics.hh G4RadioactiveDecayPhysics.hh + G4UnknownDecayPhysics.hh SOURCES G4DecayPhysics.cc G4SpinDecayPhysics.cc G4RadioactiveDecayPhysics.cc + G4UnknownDecayPhysics.cc GRANULAR_DEPENDENCIES G4baryons G4bosons G4cuts G4decay G4digits - G4emhighenergy G4emlowenergy - G4emstandard G4emutils G4event G4geometrymng diff --git a/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc b/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc index 6bcdd9d27e..a7039eb073 100644 --- a/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc +++ b/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc @@ -32,6 +32,10 @@ #include "G4GenericIon.hh" #include "globals.hh" #include "G4PhysicsListHelper.hh" +#include "G4EmParameters.hh" +#include "G4VAtomDeexcitation.hh" +#include "G4UAtomicDeexcitation.hh" +#include "G4LossTableManager.hh" // factory #include "G4PhysicsConstructorFactory.hh" @@ -67,6 +71,15 @@ void G4RadioactiveDecayPhysics::ConstructParticle() void G4RadioactiveDecayPhysics::ConstructProcess() { + G4LossTableManager* man = G4LossTableManager::Instance(); + G4VAtomDeexcitation* ad = man->AtomDeexcitation(); + if(!ad) { + man->SetAtomDeexcitation(new G4UAtomicDeexcitation()); + } + G4EmParameters* param = G4EmParameters::Instance(); + param->SetFluo(true); + param->SetAuger(true); + G4PhysicsListHelper::GetPhysicsListHelper()-> RegisterProcess(new G4RadioactiveDecay(), G4GenericIon::GenericIon()); } diff --git a/source/physics_lists/constructors/decay/src/G4UnknownDecayPhysics.cc b/source/physics_lists/constructors/decay/src/G4UnknownDecayPhysics.cc new file mode 100644 index 0000000000..08acda4e13 --- /dev/null +++ b/source/physics_lists/constructors/decay/src/G4UnknownDecayPhysics.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. * +// ******************************************************************** +// +// $Id: G4UnknownDecayPhysics.cc 70999 2013-06-09 01:37:53Z adotti $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4UnknownDecayPhysics +// +// Author: 2016 - M. Asai +// +//---------------------------------------------------------------------------- +// + +#include "G4UnknownDecayPhysics.hh" + +#include "G4ProcessManager.hh" +#include "G4UnknownParticle.hh" + +// factory +#include "G4PhysicsConstructorFactory.hh" +// +G4_DECLARE_PHYSCONSTR_FACTORY(G4UnknownDecayPhysics); + +G4ThreadLocal G4UnknownDecay* G4UnknownDecayPhysics::fDecayProcess = 0; +G4ThreadLocal G4bool G4UnknownDecayPhysics::wasActivated = false; + +G4UnknownDecayPhysics::G4UnknownDecayPhysics(G4int ver) + : G4VPhysicsConstructor("UnknownDecay"), verbose(ver) +{ +} + +G4UnknownDecayPhysics::G4UnknownDecayPhysics(const G4String& name, G4int ver) + : G4VPhysicsConstructor(name), verbose(ver) +{ +} + +G4UnknownDecayPhysics::~G4UnknownDecayPhysics() +{ +} + +void G4UnknownDecayPhysics::ConstructParticle() +{ + G4UnknownParticle::UnknownParticleDefinition(); +} + +void G4UnknownDecayPhysics::ConstructProcess() +{ + if(wasActivated) { return; } + wasActivated = true; + + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + + // Add Decay Process + fDecayProcess = new G4UnknownDecay(); + aParticleIterator->reset(); + G4ParticleDefinition* particle=0; + + while( (*aParticleIterator)() ) + { + particle = aParticleIterator->value(); + if( fDecayProcess->IsApplicable(*particle) ) + { + if(verbose > 1) { + G4cout << "### Decays for " << particle->GetParticleName() << G4endl; + } + ph->RegisterProcess(fDecayProcess, particle); + } + } +} diff --git a/source/physics_lists/constructors/electromagnetic/History b/source/physics_lists/constructors/electromagnetic/History index 014ec610ae..d3ad6f973c 100644 --- a/source/physics_lists/constructors/electromagnetic/History +++ b/source/physics_lists/constructors/electromagnetic/History @@ -1,4 +1,4 @@ -$Id: History 94232 2015-11-09 10:53:57Z gcosmo $ +$Id: History 97606 2016-06-06 09:21:51Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,8 +14,82 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-June-2016 M. Karamitros (phys-ctor-em-V10-02-20) +- G4EmModelActivator: Correct elastic process name for ions + +03-June-2016 M. Karamitros (phys-ctor-em-V10-02-19) +- G4EmModelActivator: Use Uehara model with chemistry +- G4EmDNAPhysics: load G4EmParameters + +02-June-2016 V.Ivanchenko (phys-ctor-em-V10-02-18) +- G4EmModelActivator - fixed activation of DNA models + +28-May-2016 M. Karamitros (phys-ctor-em-V10-02-17) +- G4EmDNAPhysics_option7: correct preproc flag + +24-May-2016 M. Novak (phys-ctor-em-V10-02-16) +- G4EmStandardPhysicsGS: change back default step limit type to opt0 like + and set default range factor to 0.1 + +17-May-2016 M. Karamitros (phys-ctor-em-V10-02-15) +- DNA and ModelActivator constructors: +* correct model/process names +* adjust high energy threshold of solvation (kill) in respect to the energy range  +of the elastic model + +12-May-2016 M. Karamitros (phys-ctor-em-V10-02-14) +- Add G4DNAElectronSolvation to all DNA constructors +- Update G4EmModelActivator + +27-Apr-2016 M.Novak (phys-ctor-em-V10-02-13) +- G4EmStandardPhysicsGS: changed default step limit type to error-free + +23-Apr-2016 M. Karamitros (phys-ctor-em-V10-02-12) +- G4EmDNAChemistry: G4DNAElectronSolvatation->G4DNAElectronSolvation + +20-Apr-2016 S. Incerti (phys-ctor-em-V10-02-11) +- updated G4EmDNAPhysics_option5 + +30-Mar-2016 V.Ivanchenko (phys-ctor-em-V10-02-10) +- G4EmStandardPhysics_option3 - fixed typo: uncomment commented line + +29-Mar-2016 V.Ivanchenko (phys-ctor-em-V10-02-09) +- G4EmStandardPhysics_option3, option4 - added process of e+e- + pair creation by e+ and e-; enable lateral displacement for + muons and hadrons + +21-Mar-2016 S. Incerti (phys_ctor-em-V10-02-08) +- added updated G4EmDNAPhysics_option7 + +07-Mar-2016 P. Gumplinger (phys_ctor-em-V10-02-07) +- add flag and command whether or not to call InvokeSD method + of G4OpBoundaryProcess + +07-Mar-2016 M. Karamitros (phys_ctor-em-V10-02-06) +- remove G4EmDNAPhysics_option7 from sources.cmake + +07-Mar-2016 M. Karamitros (phys_ctor-em-V10-02-05) +- remove G4EmDNAPhysics_option7 + +03-Mar-2016 I.Hrivnacova (phys_ctor-em-V10-02-04) +- fixed G4Exception message in G4OpticalPhysicsMessenger + +01-Mar-2016 P.Gumplinger (phys_ctor-em-V10-02-03) +- fix Coverity error of uninitialized fScintillationTrackInfo + +26-Feb-2016 P.Gumplinger (phys-ctor-em-V10-02-02) +- addressing part of bug report 1832 as suggested by Ivana Hrivnacova + +05-Feb-2016 P.Gumplinger (phys-ctor-em-V10-02-01) +- fix val-grind memory leakage check tool flag in G4OpticalPhysicsMessenger + +02-Feb-2016 P.Gumplinger (phys-ctor-em-V10-02-00) +- add SetScintillationTrackInfo to G4OpticalPhysics with + associated command in G4OpticalPhysicsMessenger + 09-Nov-2015 V.Ivanchenko (phys-ctor-em-V10-01-22) -- G4EmStandardPhysicsSS - allowing ally Mott correction for e- +- G4EmStandardPhysicsSS - allowing optional model with Mott + correction for e- 28-Oct-2015 V.Ivanchenko (phys-ctor-em-V10-01-21) - G4EmStandardPhysicsGS - M. Novak tunned parameters and make diff --git a/source/physics_lists/constructors/electromagnetic/include/G4EmDNAPhysics_option7.hh b/source/physics_lists/constructors/electromagnetic/include/G4EmDNAPhysics_option7.hh index 251a40a5de..c60709a6f8 100644 --- a/source/physics_lists/constructors/electromagnetic/include/G4EmDNAPhysics_option7.hh +++ b/source/physics_lists/constructors/electromagnetic/include/G4EmDNAPhysics_option7.hh @@ -26,8 +26,8 @@ // S. Incerti (incerti@cenbg.in2p3.fr) // -#ifndef G4EmDNAPhysics_option5_h -#define G4EmDNAPhysics_option5_h 1 +#ifndef G4EmDNAPhysics_option7_h +#define G4EmDNAPhysics_option7_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" diff --git a/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysics.hh b/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysics.hh index 3e8c5a516d..25afd9bf6d 100644 --- a/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysics.hh +++ b/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysics.hh @@ -90,11 +90,14 @@ class G4OpticalPhysics : public G4VPhysicsConstructor void SetWLSTimeProfile(G4String ); void SetScintillationByParticleType(G4bool ); + void SetScintillationTrackInfo(G4bool ); //void AddScintillationSaturation(G4EmSaturation* ); void SetTrackSecondariesFirst(G4OpticalProcessIndex, G4bool ); void SetFiniteRiseTime(G4bool ); + void SetInvokeSD(G4bool ); + private: // methods @@ -135,6 +138,14 @@ class G4OpticalPhysics : public G4VPhysicsConstructor /// light emission in scintillators G4bool fScintillationByParticleType; + /// option to allow for G4ScintillationTrackInformation + /// to be attached to a scintillation photon's track + G4bool fScintillationTrackInfo; + + /// option to allow for G4OpBoundaryProcess + /// to call/not call InvokeSD method + G4bool fInvokeSD; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysicsMessenger.hh b/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysicsMessenger.hh index dbc371c131..3cc8c22878 100644 --- a/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysicsMessenger.hh +++ b/source/physics_lists/constructors/electromagnetic/include/G4OpticalPhysicsMessenger.hh @@ -69,6 +69,7 @@ class G4UIcommand; // - /process/optical/defaults/scintillation/setByParticleType val // - /process/optical/defaults/scintillation/setFiniteRiseTime val // - /process/optical/defaults/wls/setTimeProfile val +// - /process/optical/defaults/boundary/setInvokeSD flag class G4OpticalPhysicsMessenger: public G4UImessenger { @@ -120,6 +121,9 @@ private: /// setScintillationByParticleType command G4UIcmdWithABool* fSetScintillationByParticleTypeCmd; + /// setScintillationTrackInfo command + G4UIcmdWithABool* fSetScintillationTrackInfoCmd; + // /// setOpticalSurfaceModel command // G4UIcmdWithAString* fSetOpticalSurfaceModelCmd; @@ -132,6 +136,9 @@ private: /// setFiniteRiseTime command G4UIcmdWithABool* fSetFiniteRiseTimeCmd; + /// setInvokeSD command + G4UIcmdWithABool* fSetInvokeSDCmd; + }; #endif // G4OpticalPhysicsMessenger_h diff --git a/source/physics_lists/constructors/electromagnetic/sources.cmake b/source/physics_lists/constructors/electromagnetic/sources.cmake index dd946fd32f..2ab4deccd9 100644 --- a/source/physics_lists/constructors/electromagnetic/sources.cmake +++ b/source/physics_lists/constructors/electromagnetic/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 10/01/2013 # -# $Id: sources.cmake 91565 2015-07-27 12:18:45Z gcosmo $ +# $Id: sources.cmake 96171 2016-03-22 09:18:21Z gcosmo $ # #------------------------------------------------------------------------------ diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc index bec69807d9..6e848ef966 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc @@ -37,7 +37,7 @@ // *** Processes and models for Geant4-DNA -#include "G4DNAElectronSolvatation.hh" +#include "G4DNAElectronSolvation.hh" #include "G4DNAAttachment.hh" #include "G4DNAVibExcitation.hh" @@ -90,7 +90,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAChemistry); #include "G4Threading.hh" G4EmDNAChemistry::G4EmDNAChemistry() : - G4VUserChemistryList() + G4VUserChemistryList(true) { G4DNAChemistryManager::Instance()->SetChemistryList(this); } @@ -118,20 +118,6 @@ void G4EmDNAChemistry::ConstructMolecule() G4H2O2::Definition(); G4H2::Definition(); -// G4MoleculeTable::Instance()->CreateMoleculeModel("H3Op", G4H3O::Definition()); -// G4Molecule* OHm = G4MoleculeTable::Instance()-> -// CreateMoleculeModel("OHm", // just a tag to store and retrieve from -// // G4MoleculeTable -// G4OH::Definition(), -1, 5.0e-9 * (m2 / s)); -// OHm->SetMass(17.0079 * g / Avogadro * c_squared); -// G4MoleculeTable::Instance()->CreateMoleculeModel("OH", G4OH::Definition()); -// G4MoleculeTable::Instance()->CreateMoleculeModel("e_aq", -// G4Electron_aq::Definition()); -// G4MoleculeTable::Instance()->CreateMoleculeModel("H", -// G4Hydrogen::Definition()); -// G4MoleculeTable::Instance()->CreateMoleculeModel("H2", G4H2::Definition()); -// G4MoleculeTable::Instance()->CreateMoleculeModel("H2O2", G4H2O2::Definition()); - //____________________________________________________________________________ G4MoleculeTable::Instance()->CreateConfiguration("H3Op", G4H3O::Definition()); @@ -155,14 +141,6 @@ void G4EmDNAChemistry::ConstructMolecule() void G4EmDNAChemistry::ConstructDissociationChannels() { -// //----------------------------------- -// //Create the dynamic objects -// G4Molecule* OH = G4MoleculeTable::Instance()->GetMoleculeModel("OH"); -// G4Molecule* OHm = G4MoleculeTable::Instance()->GetMoleculeModel("OHm"); -// G4Molecule* e_aq = G4MoleculeTable::Instance()->GetMoleculeModel("e_aq"); -// G4Molecule* H2 = G4MoleculeTable::Instance()->GetMoleculeModel("H2"); -// G4Molecule* H3O = G4MoleculeTable::Instance()->GetMoleculeModel("H3Op"); -// G4Molecule* H = G4MoleculeTable::Instance()->GetMoleculeModel("H"); //----------------------------------- //Get the molecular configuration G4MolecularConfiguration* OH = @@ -404,35 +382,27 @@ void G4EmDNAChemistry::ConstructDissociationChannels() void G4EmDNAChemistry::ConstructReactionTable(G4DNAMolecularReactionTable* theReactionTable) { - // //----------------------------------- -// G4Molecule* OH = G4MoleculeTable::Instance()->GetMoleculeModel("OH"); -// G4Molecule* e_aq = G4MoleculeTable::Instance()->GetMoleculeModel("e_aq"); -// G4Molecule* H2 = G4MoleculeTable::Instance()->GetMoleculeModel("H2"); -// G4Molecule* H3Op = G4MoleculeTable::Instance()->GetMoleculeModel("H3Op"); -// G4Molecule* OHm = G4MoleculeTable::Instance()->GetMoleculeModel("OHm"); -// G4Molecule* H2O2 = G4MoleculeTable::Instance()->GetMoleculeModel("H2O2"); -// G4Molecule* H = G4MoleculeTable::Instance()->GetMoleculeModel("H"); - //----------------------------------- - //Get the molecular configuration - G4MolecularConfiguration* OH = - G4MoleculeTable::Instance()->GetConfiguration("OH"); - G4MolecularConfiguration* OHm = - G4MoleculeTable::Instance()->GetConfiguration("OHm"); - G4MolecularConfiguration* e_aq = - G4MoleculeTable::Instance()->GetConfiguration("e_aq"); - G4MolecularConfiguration* H2 = - G4MoleculeTable::Instance()->GetConfiguration("H2"); - G4MolecularConfiguration* H3Op = - G4MoleculeTable::Instance()->GetConfiguration("H3Op"); - G4MolecularConfiguration* H = - G4MoleculeTable::Instance()->GetConfiguration("H"); - G4MolecularConfiguration* H2O2 = - G4MoleculeTable::Instance()->GetConfiguration("H2O2"); + //----------------------------------- + //Get the molecular configuration + G4MolecularConfiguration* OH = + G4MoleculeTable::Instance()->GetConfiguration("OH"); + G4MolecularConfiguration* OHm = + G4MoleculeTable::Instance()->GetConfiguration("OHm"); + G4MolecularConfiguration* e_aq = + G4MoleculeTable::Instance()->GetConfiguration("e_aq"); + G4MolecularConfiguration* H2 = + G4MoleculeTable::Instance()->GetConfiguration("H2"); + G4MolecularConfiguration* H3Op = + G4MoleculeTable::Instance()->GetConfiguration("H3Op"); + G4MolecularConfiguration* H = + G4MoleculeTable::Instance()->GetConfiguration("H"); + G4MolecularConfiguration* H2O2 = + G4MoleculeTable::Instance()->GetConfiguration("H2O2"); //------------------------------------------------------------------ // e_aq + e_aq + 2H2O -> H2 + 2OH- - G4DNAMolecularReactionData* reactionData = new G4DNAMolecularReactionData( - 0.5e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq); + G4DNAMolecularReactionData* reactionData = + new G4DNAMolecularReactionData(0.5e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq); reactionData->AddProduct(OHm); reactionData->AddProduct(OHm); reactionData->AddProduct(H2); @@ -511,42 +481,19 @@ void G4EmDNAChemistry::ConstructProcess() } } - //=============================================================== - // Modify elastic scattering models to avoid killing electrons - // at low energy - // - process = - G4ProcessTable::GetProcessTable()-> - FindProcess("e-_G4DNAElastic", "e-"); - - if (process) - { - G4DNAElastic* vibExcitation = (G4DNAElastic*) process; - G4VEmModel* model = vibExcitation->EmModel(); - - if(G4DNAChampionElasticModel* championMod = - dynamic_cast(model)) - { - championMod->SetKillBelowThreshold(-1); - } - else if(G4DNAScreenedRutherfordElasticModel* screenRutherfordMod = - dynamic_cast(model)) - { - screenRutherfordMod->SetKillBelowThreshold(-1); - } - else if (G4DNAUeharaScreenedRutherfordElasticModel* ueharaScreenRutherfordMod = - dynamic_cast(model)) - { - ueharaScreenRutherfordMod->SetKillBelowThreshold(-1); - } - } - //=============================================================== // *** Electron Solvatation *** // - ph->RegisterProcess( - new G4DNAElectronSolvatation("e-_G4DNAElectronSolvatation"), - G4Electron::Definition()); + process = + G4ProcessTable::GetProcessTable()-> + FindProcess("e-_G4DNAElectronSolvation", "e-"); + + if (process == 0) + { + ph->RegisterProcess( + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"), + G4Electron::Definition()); + } //=============================================================== // Define processes for molecules diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc index cc37f63f0a..f0561a3bd5 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmDNAPhysics.cc 87702 2014-12-17 09:55:28Z gcosmo $ +// $Id: G4EmDNAPhysics.cc 97523 2016-06-03 14:25:30Z gcosmo $ // add elastic scattering processes of proton, hydrogen, helium, alpha+, alpha++ #include "G4EmDNAPhysics.hh" @@ -34,6 +34,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAScreenedRutherfordElasticModel.hh" @@ -87,6 +88,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics); G4EmDNAPhysics::G4EmDNAPhysics(G4int ver) : G4VPhysicsConstructor("G4EmDNAPhysics"), verbose(ver) { + G4EmParameters::Instance(); SetPhysicsType(bElectromagnetic); } @@ -95,6 +97,7 @@ G4EmDNAPhysics::G4EmDNAPhysics(G4int ver) G4EmDNAPhysics::G4EmDNAPhysics(G4int ver, const G4String&) : G4VPhysicsConstructor("G4EmDNAPhysics"), verbose(ver) { + G4EmParameters::Instance(); SetPhysicsType(bElectromagnetic); } @@ -149,6 +152,14 @@ void G4EmDNAPhysics::ConstructProcess() if (particleName == "e-") { + G4DNAElectronSolvation* solvation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + G4DNAOneStepThermalizationModel* therm = + new G4DNAOneStepThermalizationModel(); + therm->SetHighEnergyLimit(7.4*eV); // limit of the Champion's model + solvation->SetEmModel(therm); + ph->RegisterProcess(solvation, particle); + // *** Elastic scattering (two alternative models available) *** G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option1.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option1.cc index 47e46c0a75..6685806cb2 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option1.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option1.cc @@ -33,6 +33,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAScreenedRutherfordElasticModel.hh" @@ -153,6 +154,9 @@ void G4EmDNAPhysics_option1::ConstructProcess() G4String particleName = particle->GetParticleName(); if (particleName == "e-") { + + ph->RegisterProcess(new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"), + particle); // *** Elastic scattering (two alternative models available) *** diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc index 2059090c61..a52e9135c8 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc @@ -35,6 +35,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAScreenedRutherfordElasticModel.hh" @@ -149,6 +150,14 @@ void G4EmDNAPhysics_option2::ConstructProcess() if (particleName == "e-") { + G4DNAElectronSolvation* solvation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + G4DNAOneStepThermalizationModel* therm = + new G4DNAOneStepThermalizationModel(); + therm->SetHighEnergyLimit(7.4*eV); // limit of the Champion's model + solvation->SetEmModel(therm); + ph->RegisterProcess(solvation, particle); + // *** Elastic scattering (two alternative models available) *** G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option3.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option3.cc index c95a14f76e..fa7d3c15e8 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option3.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option3.cc @@ -33,6 +33,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAScreenedRutherfordElasticModel.hh" @@ -147,7 +148,15 @@ void G4EmDNAPhysics_option3::ConstructProcess() G4String particleName = particle->GetParticleName(); if (particleName == "e-") { - + + G4DNAElectronSolvation* solvation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + G4DNAOneStepThermalizationModel* therm = + new G4DNAOneStepThermalizationModel(); + therm->SetHighEnergyLimit(7.4*eV); // limit of the Champion's model + solvation->SetEmModel(therm); + ph->RegisterProcess(solvation, particle); + // *** Elastic scattering (two alternative models available) *** G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc index f9e738534b..4e74df6169 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc @@ -34,6 +34,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAUeharaScreenedRutherfordElasticModel.hh" @@ -153,7 +154,17 @@ void G4EmDNAPhysics_option4::ConstructProcess() G4String particleName = particle->GetParticleName(); if (particleName == "e-") { - + + // *** Solvation *** + + G4DNAElectronSolvation* solvation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + G4DNAOneStepThermalizationModel* therm = + new G4DNAOneStepThermalizationModel(); + therm->SetHighEnergyLimit(10.*eV); // limit of the Uehara's model + solvation->SetEmModel(therm); + ph->RegisterProcess(solvation, particle); + // *** Elastic scattering (two alternative models available) *** G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option5.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option5.cc index 0b909dd54c..791a074cbf 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option5.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option5.cc @@ -34,6 +34,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAUeharaScreenedRutherfordElasticModel.hh" @@ -155,67 +156,33 @@ void G4EmDNAPhysics_option5::ConstructProcess() if (particleName == "e-") { - - // *** Elastic scattering (two alternative models available) *** - G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); - - //theDNAElasticProcess->SetEmModel(new G4DNAChampionElasticModel()); - theDNAElasticProcess->SetEmModel(new G4DNAUeharaScreenedRutherfordElasticModel()); - //theDNAElasticProcess->SetEmModel(new G4DNAScreenedRutherfordElasticModel()); + // *** Solvation *** + G4DNAElectronSolvation* solvation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + G4DNAOneStepThermalizationModel* therm = + new G4DNAOneStepThermalizationModel(); + therm->SetHighEnergyLimit(10.*eV); // limit of the Uehara's model + solvation->SetEmModel(therm); + ph->RegisterProcess(solvation, particle); + + // *** Elastic scattering *** + G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); + theDNAElasticProcess->SetEmModel(new G4DNAUeharaScreenedRutherfordElasticModel()); + ((G4DNAUeharaScreenedRutherfordElasticModel*)(theDNAElasticProcess->EmModel()))->SelectFasterComputation(true); ph->RegisterProcess(theDNAElasticProcess, particle); - { // *** Excitation *** - G4DNAExcitation* theDNAExcitationProcess = - new G4DNAExcitation("e-_G4DNAExcitation"); - { - G4DNABornExcitationModel* bornExc = new G4DNABornExcitationModel(); - bornExc->SetLowEnergyLimit(10*keV); - bornExc->SetHighEnergyLimit(1.*MeV); - bornExc->SetActivationLowEnergyLimit(10*keV); - bornExc->SetActivationHighEnergyLimit(1.*MeV); - theDNAExcitationProcess->SetEmModel(bornExc,1); - theDNAExcitationProcess->AddEmModel(1, bornExc); - } - { - G4DNAEmfietzoglouExcitationModel* emExc = new G4DNAEmfietzoglouExcitationModel(); - emExc->SetActivationLowEnergyLimit(0); - emExc->SetActivationHighEnergyLimit(10.*keV); - theDNAExcitationProcess->SetEmModel(emExc,2); - theDNAExcitationProcess->AddEmModel(2, emExc); - } + G4DNAExcitation* theDNAExcitationProcess = new G4DNAExcitation("e-_G4DNAExcitation"); + theDNAExcitationProcess->SetEmModel(new G4DNAEmfietzoglouExcitationModel()); ph->RegisterProcess(theDNAExcitationProcess, particle); - } - { + // *** Ionisation *** - G4DNAIonisation* theDNAIonisationProcess = - new G4DNAIonisation("e-_G4DNAIonisation"); - { - G4DNABornIonisationModel* bornIon = new G4DNABornIonisationModel(); - bornIon->SetLowEnergyLimit(10*keV); - bornIon->SetHighEnergyLimit(1.*MeV); - bornIon->SetActivationLowEnergyLimit(10*keV); - bornIon->SetActivationHighEnergyLimit(1.*MeV); - - theDNAIonisationProcess->SetEmModel(bornIon,1); - bornIon->SelectFasterComputation(true); - theDNAIonisationProcess->AddEmModel(1,bornIon); - } - - { - G4DNAEmfietzoglouIonisationModel* emIonModel = new G4DNAEmfietzoglouIonisationModel(); - emIonModel->SetLowEnergyLimit(10*eV); - emIonModel->SetHighEnergyLimit(10.*keV); - emIonModel->SetActivationLowEnergyLimit(0); - emIonModel->SetActivationHighEnergyLimit(10.*keV); - - theDNAIonisationProcess->SetEmModel(emIonModel,2); - emIonModel->SelectFasterComputation(true); - theDNAIonisationProcess->AddEmModel(2,emIonModel); - } + G4DNAIonisation* theDNAIonisationProcess = new G4DNAIonisation("e-_G4DNAIonisation"); + theDNAIonisationProcess->SetEmModel(new G4DNAEmfietzoglouIonisationModel()); + ((G4DNAEmfietzoglouIonisationModel*)(theDNAIonisationProcess->EmModel()))->SelectFasterComputation(true); ph->RegisterProcess(theDNAIonisationProcess, particle); - } + // *** Vibrational excitation *** //ph->RegisterProcess(new G4DNAVibExcitation("e-_G4DNAVibExcitation"), particle); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option7.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option7.cc index 6f50163b16..55cbda2422 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option7.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option7.cc @@ -34,6 +34,7 @@ // *** Processes and models for Geant4-DNA +#include "G4DNAElectronSolvation.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" #include "G4DNAUeharaScreenedRutherfordElasticModel.hh" @@ -151,63 +152,81 @@ void G4EmDNAPhysics_option7::ConstructProcess() if (particleName == "e-") { - - // *** Elastic scattering (two alternative models available) *** - G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic"); - theDNAElasticProcess->SetEmModel(new G4DNAUeharaScreenedRutherfordElasticModel()); + // *** Electron solvation *** + // Either kills the electron track or transform the electron to + // a solvated electron, depending on whether the chemistry is + // activated + G4DNAElectronSolvation* solvation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + G4DNAOneStepThermalizationModel* therm = + new G4DNAOneStepThermalizationModel(); + therm->SetHighEnergyLimit(10.*eV); // limit of the Uehara's model + solvation->SetEmModel(therm); + ph->RegisterProcess(solvation, particle); + + // *** Elastic scattering *** + + G4DNAElastic* theDNAElasticProcess = + new G4DNAElastic("e-_G4DNAElastic"); + G4DNAUeharaScreenedRutherfordElasticModel* emElast = + new G4DNAUeharaScreenedRutherfordElasticModel(); + emElast->SetHighEnergyLimit(1*MeV); +// emElast->SelectHighEnergyLimit(1*MeV); + theDNAElasticProcess->SetEmModel(emElast); ph->RegisterProcess(theDNAElasticProcess, particle); { - // *** Excitation *** - G4DNAExcitation* theDNAExcitationProcess = + // *** Excitation *** + + G4DNAExcitation* theDNAExcitationProcess = new G4DNAExcitation("e-_G4DNAExcitation"); - { - G4DNABornExcitationModel* bornExc = new G4DNABornExcitationModel(); - bornExc->SetLowEnergyLimit(10*keV); - bornExc->SetHighEnergyLimit(1.*MeV); - bornExc->SetActivationLowEnergyLimit(10*keV); - bornExc->SetActivationHighEnergyLimit(1.*MeV); - theDNAExcitationProcess->SetEmModel(bornExc,1); - theDNAExcitationProcess->AddEmModel(1, bornExc); + { + G4DNAEmfietzoglouExcitationModel* emExc = new G4DNAEmfietzoglouExcitationModel(); + emExc->SetActivationLowEnergyLimit(8*eV); + emExc->SetActivationHighEnergyLimit(10.*keV); + theDNAExcitationProcess->SetEmModel(emExc,1); + theDNAExcitationProcess->AddEmModel(1, emExc); + } + + { + G4DNABornExcitationModel* bornExc = new G4DNABornExcitationModel(); + bornExc->SetActivationLowEnergyLimit(10*keV); + bornExc->SetActivationHighEnergyLimit(1.*MeV); + theDNAExcitationProcess->SetEmModel(bornExc,2); + theDNAExcitationProcess->AddEmModel(2, bornExc); + } + + ph->RegisterProcess(theDNAExcitationProcess, particle); } + { - G4DNAEmfietzoglouExcitationModel* emExc = new G4DNAEmfietzoglouExcitationModel(); - emExc->SetActivationLowEnergyLimit(0); - emExc->SetActivationHighEnergyLimit(10.*keV); - theDNAExcitationProcess->SetEmModel(emExc,2); - theDNAExcitationProcess->AddEmModel(2, emExc); - } - ph->RegisterProcess(theDNAExcitationProcess, particle); - } - { - // *** Ionisation *** - G4DNAIonisation* theDNAIonisationProcess = + // *** Ionisation *** + + G4DNAIonisation* theDNAIonisationProcess = new G4DNAIonisation("e-_G4DNAIonisation"); - { - G4DNABornIonisationModel* bornIon = new G4DNABornIonisationModel(); - bornIon->SetLowEnergyLimit(10*keV); - bornIon->SetHighEnergyLimit(1.*MeV); - bornIon->SetActivationLowEnergyLimit(10*keV); - bornIon->SetActivationHighEnergyLimit(1.*MeV); - theDNAIonisationProcess->SetEmModel(bornIon,1); - theDNAIonisationProcess->AddEmModel(1,bornIon); - } + { + G4DNAEmfietzoglouIonisationModel* emIonModel = new G4DNAEmfietzoglouIonisationModel(); + emIonModel->SetActivationLowEnergyLimit(10.*eV); + emIonModel->SetActivationHighEnergyLimit(10.*keV); - { - G4DNAEmfietzoglouIonisationModel* emIonModel = new G4DNAEmfietzoglouIonisationModel(); - emIonModel->SetLowEnergyLimit(10*eV); - emIonModel->SetHighEnergyLimit(10.*keV); - emIonModel->SetActivationLowEnergyLimit(0); - emIonModel->SetActivationHighEnergyLimit(10.*keV); + theDNAIonisationProcess->SetEmModel(emIonModel,1); + theDNAIonisationProcess->AddEmModel(1,emIonModel); + } + + { + G4DNABornIonisationModel* bornIon = new G4DNABornIonisationModel(); + bornIon->SetActivationLowEnergyLimit(10*keV); + bornIon->SetActivationHighEnergyLimit(1.*MeV); - theDNAIonisationProcess->SetEmModel(emIonModel,2); - emIonModel->SelectFasterComputation(true); - theDNAIonisationProcess->AddEmModel(2,emIonModel); - } - ph->RegisterProcess(theDNAIonisationProcess, particle); + theDNAIonisationProcess->SetEmModel(bornIon,2); + theDNAIonisationProcess->AddEmModel(2,bornIon); + } + + ph->RegisterProcess(theDNAIonisationProcess, particle); } + // *** Vibrational excitation *** ph->RegisterProcess(new G4DNAVibExcitation("e-_G4DNAVibExcitation"), particle); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc index 40c269275d..f47d5c0fa5 100755 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc @@ -82,6 +82,8 @@ #include "G4UniversalFluctuation.hh" #include "G4LowECapture.hh" #include "G4hMultipleScattering.hh" +#include "G4eCoulombScatteringModel.hh" +#include "G4IonCoulombScatteringModel.hh" #include "G4ionIonisation.hh" // Processes and models for Geant4-DNA @@ -89,7 +91,8 @@ #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" -#include "G4DNAScreenedRutherfordElasticModel.hh" +//#include "G4DNAScreenedRutherfordElasticModel.hh" +#include "G4DNAUeharaScreenedRutherfordElasticModel.hh" #include "G4DNAIonElasticModel.hh" #include "G4DNAExcitation.hh" @@ -102,6 +105,12 @@ #include "G4SystemOfUnits.hh" #include +#include "G4DNAChemistryManager.hh" +#include "G4DNAElectronSolvation.hh" +#include "G4DNAEmfietzoglouIonisationModel.hh" +#include "G4DNAEmfietzoglouExcitationModel.hh" + + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4EmModelActivator::G4EmModelActivator() @@ -119,11 +128,11 @@ G4EmModelActivator::~G4EmModelActivator() void G4EmModelActivator::ConstructParticle() { - const std::vector regnamesDNA = theParameters->RegionsDNA(); - if(regnamesDNA.size() > 0) - { - ConstructDNAParticles(); - } + // const std::vector regnamesDNA = theParameters->RegionsDNA(); + // if(regnamesDNA.size() > 0) + //{ + ConstructDNAParticles(); + //} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -153,7 +162,7 @@ void G4EmModelActivator::ActivatePAI() { const std::vector regnamesPAI = theParameters->RegionsPAI(); G4int nreg = regnamesPAI.size(); - if(0 == nreg) return; + if(0 == nreg) { return; } G4int verbose = theParameters->Verbose() - 1; if(verbose > 0) { @@ -366,7 +375,7 @@ void G4EmModelActivator::ActivateMicroElec() reg, 0.0, 2 * MeV, - new G4IonFluctuations()); + new G4UniversalFluctuation()); mod = new G4BetheBlochModel(); mod->SetActivationLowEnergyLimit(pmax); @@ -470,10 +479,11 @@ void G4EmModelActivator::ActivateDNA() G4ProcessManager* a0man = alpha0->GetProcessManager(); G4ProcessManager* h0man = h0->GetProcessManager(); - G4bool emsc = HasMsc(eman); - //G4bool pmsc = HasMsc(pman); - //G4bool a2msc = HasMsc(a2man); - //G4bool a1msc = HasMsc(a1man); + G4bool emsc = HasMsc(eman); + G4bool pmsc = HasMsc(pman); + G4bool a2msc = HasMsc(a2man); + G4bool a1msc = HasMsc(a1man); + G4bool imsc = HasMsc(iman); // alpha+ standard processes G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); @@ -625,24 +635,46 @@ void G4EmModelActivator::ActivateDNA() G4VEmModel* mod; // limits for DNA model applicability - G4double elowest = 11 * eV; + G4double elowest = 4. * eV; // theParameters->LowestElectronEnergy(); + + // G4cout << "elowest = " << G4BestUnit(elowest, "Energy") << G4endl; + G4double elimel = 1 * MeV; G4double elimin = 1 * MeV; G4double elimvb = 100 * eV; G4double elimat = 13 * eV; - G4double pmin = 10 * keV; + G4double elim1 = 10 * keV; + G4double pmin = 10 * keV; + G4double pminbb = 2 * MeV; G4double pminch = 100 * eV; - G4double mgmin = 1 * keV; - G4double gmmax = 500 * keV; - G4double pmax = 100 * MeV; + G4double mgmin = 1 * keV; + G4double gmmax = 500 * keV; + G4double pmax = 100 * MeV; G4double ionmin = 10 * keV; G4double ionmax = 400 * MeV; - G4double hmax = 100 * MeV; - G4double gionmax = 1 * TeV; + G4double hmax = 100 * MeV; + G4double gionmax= 1 * GeV; // low-energy capture - G4LowECapture* ecap = new G4LowECapture(elowest); - eman->AddDiscreteProcess(ecap); + G4LowECapture* ecap = nullptr; + if(G4DNAChemistryManager::IsActivated() == false) + { + // Note: G4DNAElectronSolvation could also be used instead of G4LowECapture + ecap = new G4LowECapture(elowest); + // ecap->SetVerboseLevel(1); + eman->AddDiscreteProcess(ecap); + } + else + { + // When chemistry is activated: G4DNAElectronSolvation turns the electron + // to a solvated electron, otherwise it kills the electron at the + // corresponding high energy limit of the model + G4DNAElectronSolvation* solvatation = + new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"); + solvatation->AddEmModel(0, new G4DummyModel()); + eman->AddDiscreteProcess(solvatation); + } + G4LowECapture* pcap = new G4LowECapture(pmin); pman->AddDiscreteProcess(pcap); G4LowECapture* icap = new G4LowECapture(ionmin); @@ -659,9 +691,8 @@ void G4EmModelActivator::ActivateDNA() // loop over regions for(G4int i = 0; i < nreg; ++i) { - G4String reg = regnamesDNA[i]; - if(0 < verbose) + if(1 < verbose) { G4cout << "### DNA models are activated for G4Region " << reg << G4endl << " Energy limits for e- elastic: " << elowest/eV << " eV - " @@ -671,27 +702,70 @@ void G4EmModelActivator::ActivateDNA() << " Energy limits for hadrons/ions: " << pmin/MeV << " MeV - " << pmax/MeV << " MeV" << G4endl; } + + // --- // e- - if(emsc) - { + + if(emsc) { G4UrbanMscModel* msc = new G4UrbanMscModel(); msc->SetActivationLowEnergyLimit(elimel); - em_config->SetExtraEmModel("e-", "msc", msc, reg); + em_config->SetExtraEmModel("e-", "msc", msc, reg, 0.0, 100*MeV); + } else { + mod = new G4eCoulombScatteringModel(); + mod->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("e-", "CoulombScat", mod, reg, 0.0, 10 * TeV); + } + + // cuts and solvation + if(G4DNAChemistryManager::IsActivated()) + { + // For this condition to work, the chemistry list has to be called + // before any standard EM physics list + mod = new G4DNATransformElectronModel(); + mod->SetHighEnergyLimit(elowest); + em_config->SetExtraEmModel("e-", + "e-_G4DNAElectronSolvation", + mod, + reg, + 0., + elowest+1.*eV); + + mod = new G4DNAUeharaScreenedRutherfordElasticModel(); + mod->SetLowEnergyLimit(0.); + mod->SetActivationLowEnergyLimit(0.); + em_config->SetExtraEmModel("e-", + "e-_G4DNAElastic", + mod, + reg, + 0.0, + 7.4*eV); + } + else if(ecap) + { + ecap->AddRegion(reg); } else { - mod = new G4DummyModel(); - em_config->SetExtraEmModel("e-", "CoulombScat", mod, reg, 0.0, elimel); + mod = new G4DNAOneStepThermalizationModel(); + mod->SetHighEnergyLimit(elowest); + em_config->SetExtraEmModel("e-", + "e-_G4DNAElectronSolvation", + mod, + reg, + 0., + elowest); } - - mod = new G4DNAScreenedRutherfordElasticModel(); + + mod = new G4DNAChampionElasticModel(); em_config->SetExtraEmModel("e-", "e-_G4DNAElastic", mod, reg, - elowest, + 7.4*eV, elimel); + // ioni + mod = new G4MollerBhabhaModel(); mod->SetActivationLowEnergyLimit(elimin); em_config->SetExtraEmModel("e-", @@ -701,21 +775,38 @@ void G4EmModelActivator::ActivateDNA() 0.0, 10 * TeV, new G4UniversalFluctuation()); - + + mod = new G4DNAEmfietzoglouIonisationModel(); + em_config->SetExtraEmModel("e-", + "e-_G4DNAIonisation", + mod, + reg, + 0.0, + elim1); + mod = new G4DNABornIonisationModel(); em_config->SetExtraEmModel("e-", "e-_G4DNAIonisation", mod, reg, - elowest, + elim1, elimin); - + // exc + + mod = new G4DNAEmfietzoglouExcitationModel(); + em_config->SetExtraEmModel("e-", + "e-_G4DNAExcitation", + mod, + reg, + 0.0, + elim1); + mod = new G4DNABornExcitationModel(); em_config->SetExtraEmModel("e-", "e-_G4DNAExcitation", mod, reg, - elowest, + elim1, elimin); mod = new G4DNASancheExcitationModel(); @@ -723,7 +814,7 @@ void G4EmModelActivator::ActivateDNA() "e-_G4DNAVibExcitation", mod, reg, - elowest, + 0.0, elimvb); mod = new G4DNAMeltonAttachmentModel(); @@ -731,19 +822,30 @@ void G4EmModelActivator::ActivateDNA() "e-_G4DNAAttachment", mod, reg, - elowest, + 0.0, elimat); - + + // --- // proton + if(pmsc) { + G4UrbanMscModel* msc = new G4UrbanMscModel(); + msc->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("proton", "msc", msc, reg, 0.0, 100*MeV); + } else { + mod = new G4eCoulombScatteringModel(); + mod->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("proton", "CoulombScat", mod, reg, 0.0, 10 * TeV); + } + mod = new G4BraggModel(); - mod->SetActivationHighEnergyLimit(0.0); + mod->SetActivationLowEnergyLimit(pminbb); em_config->SetExtraEmModel("proton", "hIoni", mod, reg, 0.0, - 2 * MeV, - new G4IonFluctuations()); + pminbb, + new G4UniversalFluctuation()); mod = new G4BetheBlochModel(); mod->SetActivationLowEnergyLimit(pmax); @@ -751,7 +853,7 @@ void G4EmModelActivator::ActivateDNA() "hIoni", mod, reg, - 2 * MeV, + pminbb, 10 * TeV, new G4UniversalFluctuation()); @@ -776,7 +878,7 @@ void G4EmModelActivator::ActivateDNA() "proton_G4DNAExcitation", mod, reg, - elowest, + 0.0, gmmax); mod = new G4DNABornExcitationModel(); @@ -797,21 +899,31 @@ void G4EmModelActivator::ActivateDNA() mod = new G4DNAIonElasticModel(); em_config->SetExtraEmModel("proton", - "proton_G4DNAIonElasticModel", + "proton_G4DNAElasticModel", mod, reg, 0.0, - 1 * MeV); + elimel); - // ions + // --- + // GenericIon + if(imsc) { + G4UrbanMscModel* msc = new G4UrbanMscModel(); + msc->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("proton", "ionmsc", msc, reg, 0.0, 100*MeV); + } else { + mod = new G4IonCoulombScatteringModel(); + mod->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("proton", "CoulombScat", mod, reg, 0.0, 10 * TeV); + } mod = new G4BraggIonModel(); - mod->SetActivationHighEnergyLimit(0.0); + mod->SetActivationLowEnergyLimit(pminbb); em_config->SetExtraEmModel("GenericIon", "ionIoni", mod, reg, 0.0, - 2 * MeV, + pminbb, new G4IonFluctuations()); mod = new G4BetheBlochModel(); @@ -820,7 +932,7 @@ void G4EmModelActivator::ActivateDNA() "ionIoni", mod, reg, - 2 * MeV, + pminbb, 10 * TeV, new G4IonFluctuations()); @@ -832,15 +944,21 @@ void G4EmModelActivator::ActivateDNA() 0.0, gionmax); + // --- // alpha++ + if(a2msc) { + G4UrbanMscModel* msc = new G4UrbanMscModel(); + msc->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("alpha++", "msc", msc, reg, 0.0, 100*MeV); + } mod = new G4BraggIonModel(); - mod->SetActivationHighEnergyLimit(0.0); + mod->SetActivationLowEnergyLimit(pminbb); em_config->SetExtraEmModel("alpha", "ionIoni", mod, reg, 0.0, - 2 * MeV, + pminbb, new G4IonFluctuations()); mod = new G4BetheBlochModel(); @@ -849,7 +967,7 @@ void G4EmModelActivator::ActivateDNA() "ionIoni", mod, reg, - 2 * MeV, + pminbb, 10 * TeV, new G4IonFluctuations()); @@ -879,21 +997,27 @@ void G4EmModelActivator::ActivateDNA() mod = new G4DNAIonElasticModel(); em_config->SetExtraEmModel("alpha", - "alpha_G4DNAIonElasticModel", + "alpha_G4DNAElasticModel", mod, reg, 0.0, - 1 * MeV); + elimel); + // --- // alpha+ + if(a1msc) { + G4UrbanMscModel* msc = new G4UrbanMscModel(); + msc->SetActivationLowEnergyLimit(elimel); + em_config->SetExtraEmModel("alpha+", "msc", msc, reg, 0.0, 100*MeV); + } mod = new G4BraggIonModel(); - mod->SetActivationHighEnergyLimit(0.0); + mod->SetActivationLowEnergyLimit(pminbb); em_config->SetExtraEmModel("alpha+", "ionIoni", mod, reg, 0.0, - 2 * MeV, + pminbb, new G4IonFluctuations()); mod = new G4BetheBlochModel(); @@ -902,7 +1026,7 @@ void G4EmModelActivator::ActivateDNA() "ionIoni", mod, reg, - 2 * MeV, + pminbb, 10 * TeV, new G4IonFluctuations()); @@ -940,12 +1064,13 @@ void G4EmModelActivator::ActivateDNA() mod = new G4DNAIonElasticModel(); em_config->SetExtraEmModel("alpha+", - "alpha+_G4DNAIonElasticModel", + "alpha+_G4DNAElasticModel", mod, reg, 0.0, - 1 * MeV); + elimel); + // --- // helium mod = new G4DNARuddIonisationModel(); em_config->SetExtraEmModel("helium", @@ -973,11 +1098,11 @@ void G4EmModelActivator::ActivateDNA() mod = new G4DNAIonElasticModel(); em_config->SetExtraEmModel("helium", - "helium_G4DNAIonElasticModel", + "helium_G4DNAElasticModel", mod, reg, 0.0, - 1 * MeV); + elimel); // hydrogen mod = new G4DNARuddIonisationModel(); @@ -993,7 +1118,7 @@ void G4EmModelActivator::ActivateDNA() "hydrogen_G4DNAExcitation", mod, reg, - elowest, + 0.0, gmmax); mod = new G4DNADingfelderChargeIncreaseModel(); @@ -1006,11 +1131,12 @@ void G4EmModelActivator::ActivateDNA() mod = new G4DNAIonElasticModel(); em_config->SetExtraEmModel("hydrogen", - "hydrogen_G4DNAIonElasticModel", + "hydrogen_G4DNAElasticModel", mod, reg, 0.0, - 1 * MeV); + elimel); + } } diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysicsGS.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysicsGS.cc index 80b8770879..01d4abaeed 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysicsGS.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysicsGS.cc @@ -113,8 +113,9 @@ G4EmStandardPhysicsGS::G4EmStandardPhysicsGS(G4int ver) param->SetDefaults(); param->SetVerbose(verbose); param->SetLowestElectronEnergy(10*eV); - param->SetMscRangeFactor(0.12); + param->SetMscRangeFactor(0.1); param->SetMscStepLimitType(fUseSafetyPlus);// corresponds to Urban fUseSafety +// param->SetMscStepLimitType(fUseSafety);// corresponds to the error-free stepping // param->SetFluo(true); SetPhysicsType(bElectromagnetic); } @@ -128,8 +129,9 @@ G4EmStandardPhysicsGS::G4EmStandardPhysicsGS(G4int ver, const G4String&) param->SetDefaults(); param->SetVerbose(verbose); param->SetLowestElectronEnergy(10*eV); - param->SetMscRangeFactor(0.12); + param->SetMscRangeFactor(0.1); param->SetMscStepLimitType(fUseSafetyPlus);// corresponds to Urban fUseSafety +// param->SetMscStepLimitType(fUseSafety);// corresponds to the error-free stepping // param->SetFluo(true); SetPhysicsType(bElectromagnetic); } diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option3.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option3.cc index 887169d766..bec5999069 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option3.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option3.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmStandardPhysics_option3.cc 92821 2015-09-17 15:23:49Z gcosmo $ +// $Id: G4EmStandardPhysics_option3.cc 96267 2016-04-01 12:38:51Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -75,6 +75,7 @@ #include "G4MuPairProduction.hh" #include "G4hBremsstrahlung.hh" #include "G4hPairProduction.hh" +#include "G4ePairProduction.hh" #include "G4MuBremsstrahlungModel.hh" #include "G4MuPairProductionModel.hh" @@ -125,6 +126,7 @@ G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver) param->SetLowestElectronEnergy(100*eV); param->SetNumberOfBinsPerDecade(20); param->SetMscStepLimitType(fUseDistanceToBoundary); + param->SetMuHadLateralDisplacement(true); param->SetFluo(true); SetPhysicsType(bElectromagnetic); } @@ -205,6 +207,7 @@ void G4EmStandardPhysics_option3::ConstructProcess() G4hPairProduction* kp = new G4hPairProduction(); G4hBremsstrahlung* pb = new G4hBremsstrahlung(); G4hPairProduction* pp = new G4hPairProduction(); + G4ePairProduction* ee = new G4ePairProduction(); // muon & hadron multiple scattering // G4MuMultipleScattering* mumsc = new G4MuMultipleScattering(); @@ -259,6 +262,7 @@ void G4EmStandardPhysics_option3::ConstructProcess() ph->RegisterProcess(msc, particle); ph->RegisterProcess(eIoni, particle); ph->RegisterProcess(brem, particle); + ph->RegisterProcess(ee, particle); } else if (particleName == "e+") { @@ -280,6 +284,7 @@ void G4EmStandardPhysics_option3::ConstructProcess() ph->RegisterProcess(msc, particle); ph->RegisterProcess(eIoni, particle); ph->RegisterProcess(brem, particle); + ph->RegisterProcess(ee, particle); ph->RegisterProcess(new G4eplusAnnihilation(), particle); } else if (particleName == "mu+" || diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option4.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option4.cc index 02e0d971ff..a8f30aabfa 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option4.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmStandardPhysics_option4.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmStandardPhysics_option4.cc 92821 2015-09-17 15:23:49Z gcosmo $ +// $Id: G4EmStandardPhysics_option4.cc 96209 2016-03-30 08:58:33Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -79,6 +79,7 @@ #include "G4MuPairProduction.hh" #include "G4hBremsstrahlung.hh" #include "G4hPairProduction.hh" +#include "G4ePairProduction.hh" #include "G4MuBremsstrahlungModel.hh" #include "G4MuPairProductionModel.hh" @@ -131,7 +132,7 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver) param->ActivateAngularGeneratorForIonisation(true); param->SetMscRangeFactor(0.02); param->SetMscStepLimitType(fUseDistanceToBoundary); - //param->SetLatDisplacementBeyondSafety(true); + param->SetLatDisplacementBeyondSafety(true); param->SetFluo(true); SetPhysicsType(bElectromagnetic); } @@ -152,7 +153,8 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver, param->ActivateAngularGeneratorForIonisation(true); param->SetMscRangeFactor(0.02); param->SetMscStepLimitType(fUseDistanceToBoundary); - // param->SetLatDisplacementBeyondSafety(true); + param->SetMuHadLateralDisplacement(true); + //param->SetLatDisplacementBeyondSafety(true); param->SetFluo(true); SetPhysicsType(bElectromagnetic); } @@ -215,6 +217,7 @@ void G4EmStandardPhysics_option4::ConstructProcess() G4hPairProduction* kp = new G4hPairProduction(); G4hBremsstrahlung* pb = new G4hBremsstrahlung(); G4hPairProduction* pp = new G4hPairProduction(); + G4ePairProduction* ee = new G4ePairProduction(); // muon & hadron multiple scattering G4MuMultipleScattering* mumsc = new G4MuMultipleScattering(); @@ -314,6 +317,7 @@ void G4EmStandardPhysics_option4::ConstructProcess() ph->RegisterProcess(msc, particle); ph->RegisterProcess(eIoni, particle); ph->RegisterProcess(brem, particle); + ph->RegisterProcess(ee, particle); ph->RegisterProcess(ss, particle); } else if (particleName == "e+") { @@ -355,6 +359,7 @@ void G4EmStandardPhysics_option4::ConstructProcess() ph->RegisterProcess(msc, particle); ph->RegisterProcess(eIoni, particle); ph->RegisterProcess(brem, particle); + ph->RegisterProcess(ee, particle); ph->RegisterProcess(new G4eplusAnnihilation(), particle); ph->RegisterProcess(ss, particle); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysics.cc b/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysics.cc index 9b32b9cc61..d5a5f3f975 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysics.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysics.cc @@ -70,7 +70,9 @@ G4OpticalPhysics::G4OpticalPhysics(G4int verbose, const G4String& name) fExcitationRatio(0.0), fProfile("delta"), fFiniteRiseTime(false), - fScintillationByParticleType(false) + fScintillationByParticleType(false), + fScintillationTrackInfo(false), + fInvokeSD(true) { verboseLevel = verbose; fMessenger = new G4OpticalPhysicsMessenger(this); @@ -202,17 +204,24 @@ namespace UIhelpers { sccmd3.SetParameterName("ratio",false); //sccmd3.SetRange("ratio>=0.&&ratio<=1.");//LIMITATION: w/ DeclareMethod range checking does not work sccmd3.SetStates(G4State_Idle); + G4GenericMessenger::Command& sccmd4 = mess->DeclareMethod("setByParticleType", &G4Scintillation::SetScintillationByParticleType, "Activate/Inactivate scintillation process by particle type"); sccmd4.SetParameterName("flag", false); sccmd4.SetStates(G4State_Idle); + + G4GenericMessenger::Command& sccmd5 = mess->DeclareMethod("setTrackInfo", + &G4Scintillation::SetScintillationTrackInfo, + "Activate/Inactivate scintillation track info"); + sccmd5.SetParameterName("flag", false); + sccmd5.SetStates(G4State_Idle); - G4GenericMessenger::Command& sccmd5 = mess->DeclareMethod("setTrackSecondariesFirst", + G4GenericMessenger::Command& sccmd6 = mess->DeclareMethod("setTrackSecondariesFirst", &G4Scintillation::SetTrackSecondariesFirst, "Set option to track secondaries before finishing their parent track"); - sccmd5.SetParameterName("flag",false); - sccmd5.SetStates(G4State_Idle); + sccmd6.SetParameterName("flag",false); + sccmd6.SetStates(G4State_Idle); buildCommands(ScintillationProcess,DIR_CMDS"/scintillation/",GUIDANCE" for scintillation process."); } @@ -282,6 +291,7 @@ void G4OpticalPhysics::ConstructProcess() G4OpBoundaryProcess* OpBoundaryProcess = new G4OpBoundaryProcess(); UIhelpers::buildCommands(OpBoundaryProcess,DIR_CMDS"/boundary/",GUIDANCE" for boundary process"); + OpBoundaryProcess->SetInvokeSD(fInvokeSD); OpProcesses[kBoundary] = OpBoundaryProcess; G4OpWLS* OpWLSProcess = new G4OpWLS(); @@ -311,6 +321,7 @@ void G4OpticalPhysics::ConstructProcess() ScintillationProcess->SetScintillationExcitationRatio(fExcitationRatio); ScintillationProcess->SetFiniteRiseTime(fFiniteRiseTime); ScintillationProcess->SetScintillationByParticleType(fScintillationByParticleType); + ScintillationProcess->SetScintillationTrackInfo(fScintillationTrackInfo); ScintillationProcess->SetTrackSecondariesFirst(fProcessTrackSecondariesFirst[kScintillation]); G4EmSaturation* emSaturation = G4LossTableManager::Instance()->EmSaturation(); ScintillationProcess->AddSaturation(emSaturation); @@ -415,6 +426,13 @@ void G4OpticalPhysics:: //G4Scintillation::SetScintillationByParticleType(scintillationByParticleType); } +void G4OpticalPhysics:: + SetScintillationTrackInfo(G4bool scintillationTrackInfo) +{ + fScintillationTrackInfo = scintillationTrackInfo; + //G4Scintillation::SetScintillationTrackInfo(scintillationTrackInfo); +} + void G4OpticalPhysics::SetTrackSecondariesFirst(G4OpticalProcessIndex index, G4bool trackSecondariesFirst) { @@ -432,7 +450,12 @@ void G4OpticalPhysics::SetFiniteRiseTime(G4bool finiteRiseTime) { fFiniteRiseTime = finiteRiseTime; //G4Scintillation::SetFiniteRiseTime(finiteRiseTime); -} +} + +void G4OpticalPhysics::SetInvokeSD(G4bool invokeSD) +{ + fInvokeSD = invokeSD; +} void G4OpticalPhysics::Configure(G4OpticalProcessIndex index, G4bool isUse) { diff --git a/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysicsMessenger.cc b/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysicsMessenger.cc index 5df781d3f5..341c6c8332 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysicsMessenger.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4OpticalPhysicsMessenger.cc @@ -68,9 +68,11 @@ G4OpticalPhysicsMessenger::G4OpticalPhysicsMessenger( fSetCerenkovMaxBetaChangeCmd(0), fSetScintillationYieldFactorCmd(0), fSetScintillationByParticleTypeCmd(0), + fSetScintillationTrackInfoCmd(0), fSetWLSTimeProfileCmd(0), fSetTrackSecondariesFirstCmd(0), - fSetFiniteRiseTimeCmd(0) + fSetFiniteRiseTimeCmd(0), + fSetInvokeSDCmd(0) { G4bool toBeBroadcasted = false; fDir = new G4UIdirectory("/process/optical/defaults/",toBeBroadcasted); @@ -147,6 +149,11 @@ G4OpticalPhysicsMessenger::G4OpticalPhysicsMessenger( fSetScintillationByParticleTypeCmd->SetParameterName("ScintillationByParticleTypeActivation", false); fSetScintillationByParticleTypeCmd->AvailableForStates(G4State_PreInit); + fSetScintillationTrackInfoCmd = new G4UIcmdWithABool("/process/optical/defaults/scintillation/setTrackInfo", this); + fSetScintillationTrackInfoCmd->SetGuidance("Activate/Inactivate scintillation TrackInformation"); + fSetScintillationTrackInfoCmd->SetParameterName("ScintillationTrackInfo", false); + fSetScintillationTrackInfoCmd->AvailableForStates(G4State_PreInit); + fSetFiniteRiseTimeCmd = new G4UIcmdWithABool("/process/optical/defaults/scintillation/setFiniteRiseTime", this); fSetFiniteRiseTimeCmd->SetGuidance("Set option of a finite rise-time for G4Scintillation"); fSetFiniteRiseTimeCmd->SetGuidance("If set, the G4Scintillation process expects the user to have set the constant material property FAST/SLOWSCINTILLATIONRISETIME"); @@ -160,6 +167,11 @@ G4OpticalPhysicsMessenger::G4OpticalPhysicsMessenger( fSetWLSTimeProfileCmd->SetParameterName("WLSTimeProfile", false); fSetWLSTimeProfileCmd->SetCandidates("delta exponential"); fSetWLSTimeProfileCmd->AvailableForStates(G4State_PreInit); + + fSetInvokeSDCmd = new G4UIcmdWithABool("/process/optical/defaults/boundary/setInvokeSD", this); + fSetInvokeSDCmd->SetGuidance("Set option for calling InvokeSD in G4OpBoundaryProcess"); + fSetInvokeSDCmd->SetParameterName("InvokeSD", false); + fSetInvokeSDCmd->AvailableForStates(G4State_PreInit); } G4OpticalPhysicsMessenger::~G4OpticalPhysicsMessenger() @@ -174,8 +186,11 @@ G4OpticalPhysicsMessenger::~G4OpticalPhysicsMessenger() delete fSetCerenkovMaxBetaChangeCmd; delete fSetScintillationYieldFactorCmd; delete fSetScintillationByParticleTypeCmd; + delete fSetScintillationTrackInfoCmd; delete fSetWLSTimeProfileCmd; + delete fSetTrackSecondariesFirstCmd; delete fSetFiniteRiseTimeCmd; + delete fSetInvokeSDCmd; } #include @@ -186,7 +201,7 @@ void G4OpticalPhysicsMessenger::SetNewValue(G4UIcommand* command, if (command == fActivateProcessCmd) { std::istringstream is(newValue.data()); G4String pn; - G4int flag; + G4String flag; is >> pn >> flag; if ( pn == "Cerenkov" ) { fSelectedProcessIndex = kCerenkov; @@ -205,15 +220,16 @@ void G4OpticalPhysicsMessenger::SetNewValue(G4UIcommand* command, } else { G4ExceptionDescription msg; msg << "Not allowed process name: "<Configure(fSelectedProcessIndex,flag); + G4bool value = G4UIcommand::ConvertToBool(flag); + fOpticalPhysics->Configure(fSelectedProcessIndex,value); } else if (command == fSetTrackSecondariesFirstCmd ) { std::istringstream is(newValue.data()); G4String pn; - G4int flag; + G4String flag; is >> pn >> flag; if ( pn == "Cerenkov" ) { fSelectedProcessIndex = kCerenkov; @@ -232,9 +248,10 @@ void G4OpticalPhysicsMessenger::SetNewValue(G4UIcommand* command, } else { G4ExceptionDescription msg; msg << "Not allowed process name: "<SetTrackSecondariesFirst(fSelectedProcessIndex,flag); + G4bool value = G4UIcommand::ConvertToBool(flag); + fOpticalPhysics->SetTrackSecondariesFirst(fSelectedProcessIndex,value); } else if (command == fSetOpProcessVerboseCmd) { fOpticalPhysics->SetVerboseLevel(fSetOpProcessVerboseCmd->GetNewIntValue(newValue)); @@ -259,12 +276,21 @@ void G4OpticalPhysicsMessenger::SetNewValue(G4UIcommand* command, ->SetScintillationByParticleType( fSetScintillationByParticleTypeCmd->GetNewBoolValue(newValue)); } + else if (command == fSetScintillationTrackInfoCmd) { + fOpticalPhysics + ->SetScintillationTrackInfo( + fSetScintillationTrackInfoCmd->GetNewBoolValue(newValue)); + } else if (command == fSetFiniteRiseTimeCmd) { fOpticalPhysics ->SetFiniteRiseTime( fSetFiniteRiseTimeCmd->GetNewBoolValue(newValue)); } else if (command == fSetWLSTimeProfileCmd) { - fOpticalPhysics->SetWLSTimeProfile(newValue); + fOpticalPhysics->SetWLSTimeProfile(newValue); + } + else if (command == fSetInvokeSDCmd) { + fOpticalPhysics + ->SetInvokeSD(fSetInvokeSDCmd->GetNewBoolValue(newValue)); } } diff --git a/source/physics_lists/constructors/hadron_elastic/History b/source/physics_lists/constructors/hadron_elastic/History index 3808891d5d..219c0aa6f1 100644 --- a/source/physics_lists/constructors/hadron_elastic/History +++ b/source/physics_lists/constructors/hadron_elastic/History @@ -1,4 +1,4 @@ -$Id: History 94088 2015-11-05 15:11:00Z gcosmo $ +$Id: History 97178 2016-05-27 12:45:30Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26-May-2016, A. Ribon (phys-ctor-helastic-V10-02-01) +- G4HadronElasticPhysicsPHP : made it thread-safe. + +23-Feb-2016, A. Ribon (phys-ctor-helastic-V10-02-00) +- G4HadronElasticPhysics : added missing hadron elastic for He3, + using Glauber-Gribov elastic cross section (Gheisha does not have + hadronic (elastic and inelastic) cross sections for He3). + Thanks ALICE for spotting this. + 05-Nov-2015, A. Ribon (phys-ctor-helastic-V10-01-05) - Removed neutron_hp/ diff --git a/source/physics_lists/constructors/hadron_elastic/include/G4HadronElasticPhysicsPHP.hh b/source/physics_lists/constructors/hadron_elastic/include/G4HadronElasticPhysicsPHP.hh index 656c931518..494de49c7c 100644 --- a/source/physics_lists/constructors/hadron_elastic/include/G4HadronElasticPhysicsPHP.hh +++ b/source/physics_lists/constructors/hadron_elastic/include/G4HadronElasticPhysicsPHP.hh @@ -63,8 +63,8 @@ private: G4HadronElasticPhysicsPHP(const G4HadronElasticPhysicsPHP&); G4HadronElasticPhysicsPHP& operator=(const G4HadronElasticPhysicsPHP&); G4int verbose; - G4bool wasActivated; - G4HadronElasticPhysics* mainElasticBuilder; + static G4ThreadLocal G4bool wasActivated; + static G4ThreadLocal G4HadronElasticPhysics* mainElasticBuilder; }; diff --git a/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc b/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc index 601179d23c..d452efb66b 100644 --- a/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc +++ b/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronElasticPhysics.cc 88356 2015-02-16 09:00:15Z gcosmo $ +// $Id: G4HadronElasticPhysics.cc 95771 2016-02-24 08:23:05Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -63,6 +63,8 @@ #include "G4ElasticHadrNucleusHE.hh" #include "G4AntiNuclElastic.hh" +#include "G4ComponentGGNuclNuclXsc.hh" + #include "G4BGGNucleonElasticXS.hh" #include "G4BGGPionElasticXS.hh" @@ -171,6 +173,18 @@ void G4HadronElasticPhysics::ConstructProcess() << " added for " << particle->GetParticleName() << G4endl; } + } else if(pname == "He3") { + G4HadronElasticProcess* hel = new G4HadronElasticProcess(); + G4VCrossSectionDataSet* theComponentGGNuclNuclData = + new G4CrossSectionElastic(new G4ComponentGGNuclNuclXsc()); + hel->AddDataSet(theComponentGGNuclNuclData); + hel->RegisterMe(lhep0); + pmanager->AddDiscreteProcess(hel); + if(verbose > 1) { + G4cout << "### HadronElasticPhysics: " << hel->GetProcessName() + << " added for " << particle->GetParticleName() << G4endl; + } + } else if(pname == "proton") { G4HadronElasticProcess* hel = new G4HadronElasticProcess(); diff --git a/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysicsPHP.cc b/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysicsPHP.cc index fdfbc609ca..c85056ab5b 100644 --- a/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysicsPHP.cc +++ b/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysicsPHP.cc @@ -41,9 +41,16 @@ #include "G4ParticleHPElastic.hh" #include "G4ParticleHPElasticData.hh" +// factory +#include "G4PhysicsConstructorFactory.hh" +// +G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsPHP); +// +G4ThreadLocal G4bool G4HadronElasticPhysicsPHP::wasActivated = false; +G4ThreadLocal G4HadronElasticPhysics* G4HadronElasticPhysicsPHP::mainElasticBuilder = 0; + G4HadronElasticPhysicsPHP::G4HadronElasticPhysicsPHP(G4int ver) - : G4VPhysicsConstructor("hElasticPhysics_PHP"), verbose(ver), - wasActivated(false) + : G4VPhysicsConstructor("hElasticPhysics_PHP"), verbose(ver) { if(verbose > 1) { G4cout << "### G4HadronElasticPhysicsPHP: " << GetPhysicsName() @@ -54,7 +61,7 @@ G4HadronElasticPhysicsPHP::G4HadronElasticPhysicsPHP(G4int ver) G4HadronElasticPhysicsPHP::~G4HadronElasticPhysicsPHP() { - delete mainElasticBuilder; + delete mainElasticBuilder; mainElasticBuilder = 0; } void G4HadronElasticPhysicsPHP::ConstructParticle() @@ -67,7 +74,8 @@ void G4HadronElasticPhysicsPHP::ConstructProcess() { if(wasActivated) { return; } wasActivated = true; - + //Needed because this is a TLS object and this method is called by all threads + if ( ! mainElasticBuilder ) mainElasticBuilder = new G4HadronElasticPhysics(verbose); mainElasticBuilder->ConstructProcess(); mainElasticBuilder->GetNeutronModel()->SetMinEnergy(19.5*MeV); diff --git a/source/physics_lists/constructors/hadron_inelastic/History b/source/physics_lists/constructors/hadron_inelastic/History index 8c5d9b2b83..28449eb2cc 100644 --- a/source/physics_lists/constructors/hadron_inelastic/History +++ b/source/physics_lists/constructors/hadron_inelastic/History @@ -1,4 +1,4 @@ -$Id: History 94087 2015-11-05 15:10:09Z gcosmo $ +$Id: History 97177 2016-05-27 12:44:22Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,20 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26-May-2016, A. Ribon (phys-ctor-hinelastic-V10-02-02) +- G4HadronPhysicsQGSP_BIC_AllHP : treat only proton with ParticleHP in + this class, and move the others (deuteron, triton, 3He, alpha) to + the new class G4IonPhysicsPHP. + +06-Apr-2016, A. Ribon (phys-ctor-hinelastic-V10-02-01) +- G4HadronPhysicsFTFP_BERT_ATL : created new constructor for ATLAS, similar + to G4HadronPhysicsFTFP_BERT but with the transition between BERT and FTFP + in the energy region [9, 12] GeV. + +04-Dec-2015, A. Ribon (phys-ctor-hinelastic-V10-02-00) +- G4HadronPhysicsQGSP_BIC_AllHP : activate ParticleHP for deuteron, + triton, He3 and alpha. + 05-Nov-2015, A. Ribon (phys-ctor-hinelastic-V10-01-05) - Removed neutron_hp/ diff --git a/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsFTFP_BERT_ATL.hh b/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsFTFP_BERT_ATL.hh new file mode 100644 index 0000000000..609952ba07 --- /dev/null +++ b/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsFTFP_BERT_ATL.hh @@ -0,0 +1,109 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +//--------------------------------------------------------------------------- +// Author: Alberto Ribon +// Date: April 2016 +// +// Hadron physics for the new physics list FTFP_BERT_ATL. +// This is a modified version of the FTFP_BERT hadron physics for ATLAS. +// The hadron physics of FTFP_BERT_ATL has the transition between Bertini +// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the +// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT). +//--------------------------------------------------------------------------- +// +#ifndef G4HadronPhysicsFTFP_BERT_ATL_h +#define G4HadronPhysicsFTFP_BERT_ATL_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4PiKBuilder.hh" +#include "G4BertiniPiKBuilder.hh" +#include "G4FTFPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4BertiniProtonBuilder.hh" +#include "G4FTFPNeutronBuilder.hh" +#include "G4FTFPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4BertiniNeutronBuilder.hh" +#include "G4FTFPNeutronBuilder.hh" + +#include "G4HyperonFTFPBuilder.hh" +#include "G4AntiBarionBuilder.hh" +#include "G4FTFPAntiBarionBuilder.hh" + +class G4ComponentGGHadronNucleusXsc; + + +class G4HadronPhysicsFTFP_BERT_ATL : public G4VPhysicsConstructor +{ + public: + G4HadronPhysicsFTFP_BERT_ATL(G4int verbose =1); + G4HadronPhysicsFTFP_BERT_ATL(const G4String& name, G4bool quasiElastic=false); + virtual ~G4HadronPhysicsFTFP_BERT_ATL(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + void CreateModels(); + G4bool QuasiElastic; + + // Simplify handling of TLS data, encapsulate everyhing in a structure + struct ThreadPrivate { + G4NeutronBuilder * theNeutrons; + G4BertiniNeutronBuilder * theBertiniNeutron; + G4FTFPNeutronBuilder * theFTFPNeutron; + + G4PiKBuilder * thePiK; + G4BertiniPiKBuilder * theBertiniPiK; + G4FTFPPiKBuilder * theFTFPPiK; + + G4ProtonBuilder * thePro; + G4BertiniProtonBuilder * theBertiniPro; + G4FTFPProtonBuilder * theFTFPPro; + + G4HyperonFTFPBuilder * theHyperon; + + G4AntiBarionBuilder * theAntiBaryon; + G4FTFPAntiBarionBuilder * theFTFPAntiBaryon; + + G4ComponentGGHadronNucleusXsc * xsKaon; + G4VCrossSectionDataSet * xsNeutronInelasticXS; + G4VCrossSectionDataSet * xsNeutronCaptureXS; + }; + static G4ThreadLocal ThreadPrivate* tpdata; +}; + +#endif + diff --git a/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsQGSP_BIC_AllHP.hh b/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsQGSP_BIC_AllHP.hh index 905788266d..ae3ef960f3 100644 --- a/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsQGSP_BIC_AllHP.hh +++ b/source/physics_lists/constructors/hadron_inelastic/include/G4HadronPhysicsQGSP_BIC_AllHP.hh @@ -54,18 +54,6 @@ #include "G4BinaryNeutronBuilder.hh" #include "G4NeutronPHPBuilder.hh" -#include "G4DeuteronBuilder.hh" -#include "G4DeuteronPHPBuilder.hh" - -#include "G4TritonBuilder.hh" -#include "G4TritonPHPBuilder.hh" - -#include "G4He3Builder.hh" -#include "G4He3PHPBuilder.hh" - -#include "G4AlphaBuilder.hh" -#include "G4AlphaPHPBuilder.hh" - #include "G4HyperonFTFPBuilder.hh" #include "G4AntiBarionBuilder.hh" #include "G4FTFPAntiBarionBuilder.hh" @@ -105,22 +93,6 @@ class G4HadronPhysicsQGSP_BIC_AllHP : public G4VPhysicsConstructor G4BinaryProtonBuilder * theBinaryProton; G4ProtonPHPBuilder * thePHPProton; - G4DeuteronBuilder * theDeuteronB; - G4DeuteronPHPBuilder * thePHPDeuteron; - G4BinaryDeuteronBuilder * theBinaryDeuteron; - - G4TritonBuilder * theTritonB; - G4TritonPHPBuilder * thePHPTriton; - G4BinaryTritonBuilder * theBinaryTriton; - - G4He3Builder * theHe3B; - G4He3PHPBuilder * thePHPHe3; - G4BinaryHe3Builder * theBinaryHe3; - - G4AlphaBuilder * theAlphaB; - G4AlphaPHPBuilder * thePHPAlpha; - G4BinaryAlphaBuilder * theBinaryAlpha; - G4HyperonFTFPBuilder * theHyperon; G4AntiBarionBuilder * theAntiBaryon; diff --git a/source/physics_lists/constructors/hadron_inelastic/sources.cmake b/source/physics_lists/constructors/hadron_inelastic/sources.cmake index e36f0d7ed3..a2253148f9 100644 --- a/source/physics_lists/constructors/hadron_inelastic/sources.cmake +++ b/source/physics_lists/constructors/hadron_inelastic/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 10/01/2013 # -# $Id: sources.cmake 94087 2015-11-05 15:10:09Z gcosmo $ +# $Id: sources.cmake 96328 2016-04-06 15:52:31Z gcosmo $ # #------------------------------------------------------------------------------ @@ -92,6 +92,7 @@ GEANT4_DEFINE_MODULE(NAME G4phys_ctor_hinelastic G4HadronPhysicsFTFP_BERT.hh G4HadronPhysicsFTFP_BERT_HP.hh G4HadronPhysicsFTFP_BERT_TRV.hh + G4HadronPhysicsFTFP_BERT_ATL.hh G4HadronPhysicsNuBeam.hh G4HadronPhysicsQGS_BIC.hh G4HadronPhysicsQGSP_BERT.hh @@ -109,6 +110,7 @@ GEANT4_DEFINE_MODULE(NAME G4phys_ctor_hinelastic G4HadronPhysicsFTFP_BERT.cc G4HadronPhysicsFTFP_BERT_HP.cc G4HadronPhysicsFTFP_BERT_TRV.cc + G4HadronPhysicsFTFP_BERT_ATL.cc G4HadronPhysicsNuBeam.cc G4HadronPhysicsQGS_BIC.cc G4HadronPhysicsQGSP_BERT.cc diff --git a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT_ATL.cc b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT_ATL.cc new file mode 100644 index 0000000000..bb05607bf8 --- /dev/null +++ b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT_ATL.cc @@ -0,0 +1,222 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +//--------------------------------------------------------------------------- +// Author: Alberto Ribon +// Date: April 2016 +// +// Hadron physics for the new physics list FTFP_BERT_ATL. +// This is a modified version of the FTFP_BERT hadron physics for ATLAS. +// The hadron physics of FTFP_BERT_ATL has the transition between Bertini +// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the +// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT). +//--------------------------------------------------------------------------- +// +#include + +#include "G4HadronPhysicsFTFP_BERT_ATL.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "G4SystemOfUnits.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +#include "G4ComponentGGHadronNucleusXsc.hh" +#include "G4CrossSectionInelastic.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronRadCapture.hh" +#include "G4NeutronInelasticXS.hh" +#include "G4NeutronCaptureXS.hh" + +#include "G4CrossSectionDataSetRegistry.hh" + +#include "G4PhysListUtil.hh" + +// factory +#include "G4PhysicsConstructorFactory.hh" +// +G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_ATL); + +G4ThreadLocal G4HadronPhysicsFTFP_BERT_ATL::ThreadPrivate* G4HadronPhysicsFTFP_BERT_ATL::tpdata=0; + +G4HadronPhysicsFTFP_BERT_ATL::G4HadronPhysicsFTFP_BERT_ATL(G4int) + : G4VPhysicsConstructor("hInelastic FTFP_BERT_ATL") +/* , theNeutrons(0) + , theBertiniNeutron(0) + , theFTFPNeutron(0) + , thePiK(0) + , theBertiniPiK(0) + , theFTFPPiK(0) + , thePro(0) + , theBertiniPro(0) + , theFTFPPro(0) + , theHyperon(0) + , theAntiBaryon(0) + , theFTFPAntiBaryon(0) */ + , QuasiElastic(false) + /*, xsKaon(0) + , xsNeutronInelasticXS(0) + , xsNeutronCaptureXS(0)*/ +{} + +G4HadronPhysicsFTFP_BERT_ATL::G4HadronPhysicsFTFP_BERT_ATL(const G4String& name, G4bool quasiElastic) + : G4VPhysicsConstructor(name) +/* , theNeutrons(0) + , theBertiniNeutron(0) + , theFTFPNeutron(0) + , thePiK(0) + , theBertiniPiK(0) + , theFTFPPiK(0) + , thePro(0) + , theBertiniPro(0) + , theFTFPPro(0) + , theHyperon(0) + , theAntiBaryon(0) + , theFTFPAntiBaryon(0)*/ + , QuasiElastic(quasiElastic) + /*, xsKaonMinus(0) + , xsNeutronInelasticXS(0) + , xsNeutronCaptureXS(0)*/ +{} + +void G4HadronPhysicsFTFP_BERT_ATL::CreateModels() +{ + G4double minFTFP = 9.0 * GeV; + G4double maxBERT = 12.0 * GeV; + G4cout << " FTFP_BERT_ATL : new threshold between BERT and FTFP" + << " is over the interval " << minFTFP/GeV << " to " << maxBERT/GeV + << " GeV." << G4endl; + QuasiElastic= false; + + tpdata->theNeutrons=new G4NeutronBuilder; + tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=new G4FTFPNeutronBuilder(QuasiElastic)); + tpdata->theFTFPNeutron->SetMinEnergy(minFTFP); + tpdata->theNeutrons->RegisterMe(tpdata->theBertiniNeutron=new G4BertiniNeutronBuilder); + tpdata->theBertiniNeutron->SetMinEnergy(0.0*GeV); + tpdata->theBertiniNeutron->SetMaxEnergy(maxBERT); + + tpdata->thePro=new G4ProtonBuilder; + tpdata->thePro->RegisterMe(tpdata->theFTFPPro=new G4FTFPProtonBuilder(QuasiElastic)); + tpdata->theFTFPPro->SetMinEnergy(minFTFP); + tpdata->thePro->RegisterMe(tpdata->theBertiniPro=new G4BertiniProtonBuilder); + tpdata->theBertiniPro->SetMaxEnergy(maxBERT); + + tpdata->thePiK=new G4PiKBuilder; + tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK=new G4FTFPPiKBuilder(QuasiElastic)); + tpdata->theFTFPPiK->SetMinEnergy(minFTFP); + tpdata->thePiK->RegisterMe(tpdata->theBertiniPiK=new G4BertiniPiKBuilder); + tpdata->theBertiniPiK->SetMaxEnergy(maxBERT); + + tpdata->theHyperon=new G4HyperonFTFPBuilder; + + tpdata->theAntiBaryon=new G4AntiBarionBuilder; + tpdata->theAntiBaryon->RegisterMe(tpdata->theFTFPAntiBaryon=new G4FTFPAntiBarionBuilder(QuasiElastic)); +} + +G4HadronPhysicsFTFP_BERT_ATL::~G4HadronPhysicsFTFP_BERT_ATL() +{ + if (!tpdata) return; + + delete tpdata->theNeutrons; + delete tpdata->theBertiniNeutron; + delete tpdata->theFTFPNeutron; + + delete tpdata->thePiK; + delete tpdata->theBertiniPiK; + delete tpdata->theFTFPPiK; + + delete tpdata->thePro; + delete tpdata->theBertiniPro; + delete tpdata->theFTFPPro; + + delete tpdata->theHyperon; + delete tpdata->theAntiBaryon; + delete tpdata->theFTFPAntiBaryon; + + //Note that here we need to set to 0 the pointer + //since tpdata is static and if thread are "reused" + //it can be problematic + delete tpdata; tpdata = 0; +} + +void G4HadronPhysicsFTFP_BERT_ATL::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void G4HadronPhysicsFTFP_BERT_ATL::ConstructProcess() +{ + if ( tpdata == 0 ) tpdata = new ThreadPrivate; + CreateModels(); + tpdata->theNeutrons->Build(); + tpdata->thePro->Build(); + tpdata->thePiK->Build(); + + // --- Kaons --- + tpdata->xsKaon = new G4ComponentGGHadronNucleusXsc(); + G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(tpdata->xsKaon); + G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs); + G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs); + G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs); + G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs); + + tpdata->theHyperon->Build(); + tpdata->theAntiBaryon->Build(); + + // --- Neutrons --- + tpdata->xsNeutronInelasticXS = (G4NeutronInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronInelasticXS::Default_Name()); + G4PhysListUtil::FindInelasticProcess(G4Neutron::Neutron())->AddDataSet(tpdata->xsNeutronInelasticXS); + + G4HadronicProcess* capture = 0; + G4ProcessManager* pmanager = G4Neutron::Neutron()->GetProcessManager(); + G4ProcessVector* pv = pmanager->GetProcessList(); + for ( size_t i=0; i < static_cast(pv->size()); ++i ) { + if ( fCapture == ((*pv)[i])->GetProcessSubType() ) { + capture = static_cast((*pv)[i]); + } + } + if ( ! capture ) { + capture = new G4HadronCaptureProcess("nCapture"); + pmanager->AddDiscreteProcess(capture); + } + tpdata->xsNeutronCaptureXS = (G4NeutronCaptureXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronCaptureXS::Default_Name()); + capture->AddDataSet(tpdata->xsNeutronCaptureXS); + capture->RegisterMe(new G4NeutronRadCapture()); +} diff --git a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsQGSP_BIC_AllHP.cc b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsQGSP_BIC_AllHP.cc index 7ad05b946c..21cd1b26c3 100644 --- a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsQGSP_BIC_AllHP.cc +++ b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsQGSP_BIC_AllHP.cc @@ -29,14 +29,9 @@ // // ClassName: G4HadronPhysicsQGSP_BIC_AllHP // -// Author: 2006 G.Folger +// Author: 2013 P. Arce // -// Based on G4HadronPhysicsQGSP_BIC -// -// Modified: -// 25.04.2007 G.Folger: Add code for quasielastic -// 31.10.2012 A.Ribon: Use G4MiscBuilder -// 19.03.2013 A.Ribon: Replace LEP with FTFP and BERT +// based on G4HadronPhysicsQGSP_BIC_HP // //---------------------------------------------------------------------------- // @@ -160,40 +155,6 @@ void G4HadronPhysicsQGSP_BIC_AllHP::CreateModels() tpdata->thePHPProton->SetMinEnergy(0.*MeV); tpdata->thePHPProton->SetMaxEnergy(200*MeV); - //ParticleHP - tpdata->theDeuteronB=new G4DeuteronBuilder; - tpdata->thePHPDeuteron=new G4DeuteronPHPBuilder; - tpdata->theDeuteronB->RegisterMe(tpdata->thePHPDeuteron); - tpdata->thePHPDeuteron->SetMaxEnergy(200*MeV); - tpdata->theDeuteronB->RegisterMe(tpdata->theBinaryDeuteron=new G4BinaryDeuteronBuilder); - tpdata->theBinaryDeuteron->SetMaxEnergy(maxBIC); - - - //ParticleHP - tpdata->theTritonB=new G4TritonBuilder; - tpdata->thePHPTriton=new G4TritonPHPBuilder; - tpdata->theTritonB->RegisterMe(tpdata->thePHPTriton); - tpdata->thePHPTriton->SetMaxEnergy(200*MeV); - tpdata->theTritonB->RegisterMe(tpdata->theBinaryTriton=new G4BinaryTritonBuilder); - tpdata->theBinaryTriton->SetMaxEnergy(maxBIC); - - //ParticleHP - tpdata->theHe3B=new G4He3Builder; - tpdata->thePHPHe3=new G4He3PHPBuilder; - tpdata->theHe3B->RegisterMe(tpdata->thePHPHe3); - tpdata->thePHPHe3->SetMaxEnergy(200*MeV); - tpdata->theHe3B->RegisterMe(tpdata->theBinaryHe3=new G4BinaryHe3Builder); - tpdata->theBinaryHe3->SetMaxEnergy(maxBIC); - - //ParticleHP - tpdata->theAlphaB=new G4AlphaBuilder; - tpdata->thePHPAlpha=new G4AlphaPHPBuilder; - tpdata->theAlphaB->RegisterMe(tpdata->thePHPAlpha); - tpdata->thePHPAlpha->SetMaxEnergy(200*MeV); - tpdata->theAlphaB->RegisterMe(tpdata->theBinaryAlpha=new G4BinaryAlphaBuilder); - tpdata->theBinaryAlpha->SetMaxEnergy(maxBIC); - - tpdata->thePiKB=new G4PiKBuilder; tpdata->thePiKB->RegisterMe(tpdata->theQGSPPiK=new G4QGSPPiKBuilder(quasiElasticQGS)); tpdata->thePiKB->RegisterMe(tpdata->theFTFPPiK=new G4FTFPPiKBuilder(quasiElasticFTF)); @@ -214,10 +175,6 @@ G4HadronPhysicsQGSP_BIC_AllHP::~G4HadronPhysicsQGSP_BIC_AllHP() //ParticleHP delete tpdata->thePHPNeutron; delete tpdata->thePHPProton; - delete tpdata->thePHPDeuteron; - delete tpdata->thePHPTriton; - delete tpdata->thePHPHe3; - delete tpdata->thePHPAlpha; delete tpdata->theBinaryNeutron; delete tpdata->theQGSPNeutron; delete tpdata->theFTFPNeutron; @@ -247,9 +204,6 @@ void G4HadronPhysicsQGSP_BIC_AllHP::ConstructParticle() G4ShortLivedConstructor pShortLivedConstructor; pShortLivedConstructor.ConstructParticle(); - - G4IonConstructor pIonConstructor; - pIonConstructor.ConstructParticle(); } #include "G4ProcessManager.hh" diff --git a/source/physics_lists/constructors/ions/History b/source/physics_lists/constructors/ions/History index eeed80caa9..debf3f5fee 100644 --- a/source/physics_lists/constructors/ions/History +++ b/source/physics_lists/constructors/ions/History @@ -1,4 +1,4 @@ -$Id: History 94086 2015-11-05 15:09:08Z gcosmo $ +$Id: History 97179 2016-05-27 12:46:40Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,9 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26-May-2016, Alberto Ribon (phys-ctor-ions-V10-02-00) +- Created G4IonPhysicsPHP. + 05-Nov-2014, Alberto Ribon (phys-ctor-ions-V10-01-00) - Replaced neutron_hp/ with particle_hp/ diff --git a/source/physics_lists/constructors/ions/include/G4IonPhysicsPHP.hh b/source/physics_lists/constructors/ions/include/G4IonPhysicsPHP.hh new file mode 100644 index 0000000000..7adcd3894b --- /dev/null +++ b/source/physics_lists/constructors/ions/include/G4IonPhysicsPHP.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. * +// ******************************************************************** +// +// $Id: $ +// +//--------------------------------------------------------------------------- +// +// Header: G4IonPhysicsPHP +// +// Author: A.Ribon 24-May-2016 +// +// Ion physics with ParticleHP, used below 200 MeV/n for d, t, He3, alpha; +// Binary Cascade used below 4 GeV/n (down to 190 MeV/n for d, t, He3, alpha, +// and 0 for the other ions); FTFP used above 2 GeV/n. +// This is as G4IonPhysics, except that ParticleHP is used below 200 MeV/n +// for d, t, He3, alpha. +// +// Modified: +// +//--------------------------------------------------------------------------- + +#ifndef G4IonPhysicsPHP_h +#define G4IonPhysicsPHP_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class G4HadronicInteraction; +class G4VCrossSectionDataSet; +class G4VComponentCrossSection; +class G4FTFBuilder; +class G4BinaryLightIonReaction; +class G4ParticleHPInelasticData; + + +class G4IonPhysicsPHP : public G4VPhysicsConstructor { + public: + + G4IonPhysicsPHP( G4int ver = 0 ); + G4IonPhysicsPHP( const G4String& nname ); + virtual ~G4IonPhysicsPHP(); + + // 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 ConstructParticle(); + void ConstructProcess(); + + private: + + void AddProcess( const G4String&, G4ParticleDefinition*, + G4ParticleHPInelasticData*, G4HadronicInteraction*, + G4BinaryLightIonReaction*, G4HadronicInteraction* ); + + static G4ThreadLocal G4VCrossSectionDataSet* theNuclNuclData; + static G4ThreadLocal G4VComponentCrossSection* theGGNuclNuclXS; + static G4ThreadLocal G4ParticleHPInelasticData* theDeuteronHPInelasticData; + static G4ThreadLocal G4ParticleHPInelasticData* theTritonHPInelasticData; + static G4ThreadLocal G4ParticleHPInelasticData* theHe3HPInelasticData; + static G4ThreadLocal G4ParticleHPInelasticData* theAlphaHPInelasticData; + + static G4ThreadLocal G4BinaryLightIonReaction* theIonBC1; + static G4ThreadLocal G4BinaryLightIonReaction* theIonBC2; + static G4ThreadLocal G4HadronicInteraction* theFTFP; + static G4ThreadLocal G4FTFBuilder* theBuilder; + static G4ThreadLocal G4HadronicInteraction* modelDeuteronPHP; + static G4ThreadLocal G4HadronicInteraction* modelTritonPHP; + static G4ThreadLocal G4HadronicInteraction* modelHe3PHP; + static G4ThreadLocal G4HadronicInteraction* modelAlphaPHP; + + G4int verbose; + static G4ThreadLocal G4bool wasActivated; +}; + + +#endif diff --git a/source/physics_lists/constructors/ions/sources.cmake b/source/physics_lists/constructors/ions/sources.cmake index 9d3c78ed4e..118fa3bb3b 100644 --- a/source/physics_lists/constructors/ions/sources.cmake +++ b/source/physics_lists/constructors/ions/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 10/01/2013 # -# $Id: sources.cmake 94086 2015-11-05 15:09:08Z gcosmo $ +# $Id: sources.cmake 97179 2016-05-27 12:46:40Z gcosmo $ # #------------------------------------------------------------------------------ @@ -88,11 +88,13 @@ GEANT4_DEFINE_MODULE(NAME G4phys_ctor_ions G4IonBinaryCascadePhysics.hh G4IonINCLXXPhysics.hh G4IonPhysics.hh + G4IonPhysicsPHP.hh G4IonQMDPhysics.hh SOURCES G4IonBinaryCascadePhysics.cc G4IonINCLXXPhysics.cc G4IonPhysics.cc + G4IonPhysicsPHP.cc G4IonQMDPhysics.cc GRANULAR_DEPENDENCIES G4baryons diff --git a/source/physics_lists/constructors/ions/src/G4IonPhysicsPHP.cc b/source/physics_lists/constructors/ions/src/G4IonPhysicsPHP.cc new file mode 100644 index 0000000000..b042d9bbe9 --- /dev/null +++ b/source/physics_lists/constructors/ions/src/G4IonPhysicsPHP.cc @@ -0,0 +1,222 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: $ +// +//--------------------------------------------------------------------------- +// +// Header: G4IonPhysicsPHP +// +// Author: A.Ribon 24-May-2016 +// +// Modified: +// +//--------------------------------------------------------------------------- +// + +#include "G4IonPhysicsPHP.hh" +#include "G4SystemOfUnits.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4Alpha.hh" +#include "G4GenericIon.hh" +#include "G4IonConstructor.hh" + +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4ComponentGGNuclNuclXsc.hh" +#include "G4CrossSectionInelastic.hh" + +#include "G4PreCompoundModel.hh" +#include "G4ExcitationHandler.hh" +#include "G4FTFBuilder.hh" +#include "G4HadronicInteraction.hh" +#include "G4BuilderType.hh" +#include "G4HadronicInteractionRegistry.hh" + +#include "G4ParticleHPInelastic.hh" +#include "G4ParticleHPInelasticData.hh" + +using namespace std; + +// factory +#include "G4PhysicsConstructorFactory.hh" + +G4_DECLARE_PHYSCONSTR_FACTORY( G4IonPhysicsPHP ); + +G4ThreadLocal G4VCrossSectionDataSet* G4IonPhysicsPHP::theNuclNuclData = 0; +G4ThreadLocal G4VComponentCrossSection* G4IonPhysicsPHP::theGGNuclNuclXS = 0; +G4ThreadLocal G4ParticleHPInelasticData* G4IonPhysicsPHP::theDeuteronHPInelasticData = 0; +G4ThreadLocal G4ParticleHPInelasticData* G4IonPhysicsPHP::theTritonHPInelasticData = 0; +G4ThreadLocal G4ParticleHPInelasticData* G4IonPhysicsPHP::theHe3HPInelasticData = 0; +G4ThreadLocal G4ParticleHPInelasticData* G4IonPhysicsPHP::theAlphaHPInelasticData = 0; +G4ThreadLocal G4BinaryLightIonReaction* G4IonPhysicsPHP::theIonBC1 = 0; +G4ThreadLocal G4BinaryLightIonReaction* G4IonPhysicsPHP::theIonBC2 = 0; +G4ThreadLocal G4HadronicInteraction* G4IonPhysicsPHP::theFTFP = 0; +G4ThreadLocal G4FTFBuilder* G4IonPhysicsPHP::theBuilder = 0; +G4ThreadLocal G4HadronicInteraction* G4IonPhysicsPHP::modelDeuteronPHP = 0; +G4ThreadLocal G4HadronicInteraction* G4IonPhysicsPHP::modelTritonPHP = 0; +G4ThreadLocal G4HadronicInteraction* G4IonPhysicsPHP::modelHe3PHP = 0; +G4ThreadLocal G4HadronicInteraction* G4IonPhysicsPHP::modelAlphaPHP = 0; +G4ThreadLocal G4bool G4IonPhysicsPHP::wasActivated = false; + + +G4IonPhysicsPHP::G4IonPhysicsPHP( G4int ver ) + : G4VPhysicsConstructor( "ionInelasticFTFP_BIC" ), verbose( ver ) { + SetPhysicsType( bIons ); + if ( verbose > 1 ) G4cout << "### G4IonPhysicsPHP" << G4endl; +} + + +G4IonPhysicsPHP::G4IonPhysicsPHP( const G4String& nname ) + : G4VPhysicsConstructor( nname ), verbose( 1 ) { + SetPhysicsType( bIons ); + if ( verbose > 1 ) G4cout << "### G4IonPhysicsPHP" << G4endl; +} + + +G4IonPhysicsPHP::~G4IonPhysicsPHP() { + //Explictly setting pointers to zero is actually needed. + //These are static variables, in case we restart threads we need to re-create objects + delete modelAlphaPHP; modelAlphaPHP = 0; + delete modelHe3PHP; modelHe3PHP = 0; + delete modelTritonPHP; modelTritonPHP = 0; + delete modelDeuteronPHP; modelDeuteronPHP = 0; + delete theBuilder; theBuilder = 0; + delete theFTFP; theFTFP = 0; + delete theIonBC2; theIonBC2 = 0; + delete theIonBC1; theIonBC1 = 0; + delete theAlphaHPInelasticData; theAlphaHPInelasticData = 0; + delete theHe3HPInelasticData; theHe3HPInelasticData = 0; + delete theTritonHPInelasticData; theTritonHPInelasticData = 0; + delete theDeuteronHPInelasticData; theDeuteronHPInelasticData = 0; + delete theGGNuclNuclXS; theGGNuclNuclXS = 0; + delete theNuclNuclData; theNuclNuclData = 0; +} + + +void G4IonPhysicsPHP::ConstructParticle() { + // Construct ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + + +void G4IonPhysicsPHP::ConstructProcess() { + if ( wasActivated ) return; + wasActivated = true; + + const G4double maxPHP = 200.0*MeV; + const G4double overlapPHP_BIC = 10.0*MeV; + const G4double maxBIC = 4.0*GeV; + const G4double minFTF = 2.0* GeV; + const G4double maxFTF = 100.0*TeV; + + G4HadronicInteraction* p = + G4HadronicInteractionRegistry::Instance()->FindModel( "PRECO" ); + G4PreCompoundModel* thePreCompound = static_cast< G4PreCompoundModel* >(p); + if ( ! thePreCompound ) thePreCompound = new G4PreCompoundModel; + + // Binary Cascade + theIonBC1 = new G4BinaryLightIonReaction( thePreCompound ); + theIonBC1->SetMinEnergy( 0.0 ); // Used for generic ions + theIonBC1->SetMaxEnergy( maxBIC ); + + theIonBC2 = new G4BinaryLightIonReaction( thePreCompound ); + theIonBC2->SetMinEnergy( maxPHP - overlapPHP_BIC ); // Used for d, t, He3, alpha + theIonBC2->SetMaxEnergy( maxBIC ); + + // FTFP + theBuilder = new G4FTFBuilder( "FTFP", thePreCompound ); + theFTFP = theBuilder->GetModel(); + theFTFP->SetMinEnergy( minFTF ); + theFTFP->SetMaxEnergy( maxFTF ); + + theNuclNuclData = + new G4CrossSectionInelastic( theGGNuclNuclXS = new G4ComponentGGNuclNuclXsc() ); + + // ParticleHP : deuteron + modelDeuteronPHP = new G4ParticleHPInelastic( G4Deuteron::Deuteron(), "ParticleHPInelastic" ); + modelDeuteronPHP->SetMinEnergy( 0.0 ); + modelDeuteronPHP->SetMaxEnergy( maxPHP ); + theDeuteronHPInelasticData = new G4ParticleHPInelasticData( G4Deuteron::Deuteron() ); + theDeuteronHPInelasticData->SetMinKinEnergy( 0.0 ); + theDeuteronHPInelasticData->SetMaxKinEnergy( maxPHP ); + + // ParticleHP : triton + modelTritonPHP = new G4ParticleHPInelastic( G4Triton::Triton(), "ParticleHPInelastic" ); + modelTritonPHP->SetMinEnergy( 0.0 ); + modelTritonPHP->SetMaxEnergy( maxPHP ); + theTritonHPInelasticData = new G4ParticleHPInelasticData( G4Triton::Triton() ); + theTritonHPInelasticData->SetMinKinEnergy( 0.0 ); + theTritonHPInelasticData->SetMaxKinEnergy( maxPHP ); + + // ParticleHP : 3He + modelHe3PHP = new G4ParticleHPInelastic( G4He3::He3(), "ParticleHPInelastic" ); + modelHe3PHP->SetMinEnergy( 0.0 ); + modelHe3PHP->SetMaxEnergy( maxPHP ); + theHe3HPInelasticData = new G4ParticleHPInelasticData( G4He3::He3() ); + theHe3HPInelasticData->SetMinKinEnergy( 0.0 ); + theHe3HPInelasticData->SetMaxKinEnergy( maxPHP ); + + // ParticleHP : alpha + modelAlphaPHP = new G4ParticleHPInelastic( G4Alpha::Alpha(), "ParticleHPInelastic" ); + modelAlphaPHP->SetMinEnergy( 0.0 ); + modelAlphaPHP->SetMaxEnergy( maxPHP ); + theAlphaHPInelasticData = new G4ParticleHPInelasticData( G4Alpha::Alpha() ); + theAlphaHPInelasticData->SetMinKinEnergy( 0.0 ); + theAlphaHPInelasticData->SetMaxKinEnergy( maxPHP ); + + AddProcess( "dInelastic", G4Deuteron::Deuteron(), theDeuteronHPInelasticData, modelDeuteronPHP, theIonBC2, theFTFP ); + AddProcess( "tInelastic", G4Triton::Triton(), theTritonHPInelasticData, modelTritonPHP, theIonBC2, theFTFP ); + AddProcess( "He3Inelastic", G4He3::He3(), theHe3HPInelasticData, modelHe3PHP, theIonBC2, theFTFP ); + AddProcess( "alphaInelastic", G4Alpha::Alpha(), theAlphaHPInelasticData, modelAlphaPHP, theIonBC2, theFTFP ); + AddProcess( "ionInelastic", G4GenericIon::GenericIon(), 0, 0, theIonBC1, theFTFP ); + + if ( verbose > 1 ) G4cout << "G4IonPhysicsPHP::ConstructProcess done! " << G4endl; +} + + +void G4IonPhysicsPHP::AddProcess( const G4String& name, G4ParticleDefinition* part, + G4ParticleHPInelasticData* xsecPHP, G4HadronicInteraction* aPHP, + G4BinaryLightIonReaction* aBIC, + G4HadronicInteraction* aFTFP ) { + G4HadronInelasticProcess* hadi = new G4HadronInelasticProcess( name, part ); + G4ProcessManager* pManager = part->GetProcessManager(); + pManager->AddDiscreteProcess( hadi ); + hadi->AddDataSet( theNuclNuclData ); + if ( aPHP ) { + hadi->RegisterMe( aPHP ); + if ( xsecPHP ) { + hadi->AddDataSet( xsecPHP ); + } + } + hadi->RegisterMe( aBIC ); + hadi->RegisterMe( aFTFP ); +} + diff --git a/source/physics_lists/constructors/limiters/History b/source/physics_lists/constructors/limiters/History index 80f86fadc6..db998638d0 100644 --- a/source/physics_lists/constructors/limiters/History +++ b/source/physics_lists/constructors/limiters/History @@ -1,4 +1,4 @@ -$Id: History 94278 2015-11-10 12:39:57Z gcosmo $ +$Id: History 95196 2016-01-29 08:26:36Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,11 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +27-Jan-2016, M. Asai (phys-ctor-limiters-V10-02-00) +- G4ParallelWorldPhysics: change process order index of + G4ParallelWorldProcess to 9900 to make sure it is registered + prior to G4OpBoundaryProcess. + 10-Nov-2015, M. Verderi (phys-ctor-limiters-V10-01-04) - Fix compilation warning in G4GenericBiasingPhysics diff --git a/source/physics_lists/constructors/limiters/src/G4ParallelWorldPhysics.cc b/source/physics_lists/constructors/limiters/src/G4ParallelWorldPhysics.cc index f0fcf0ec49..c3b9a28d25 100644 --- a/source/physics_lists/constructors/limiters/src/G4ParallelWorldPhysics.cc +++ b/source/physics_lists/constructors/limiters/src/G4ParallelWorldPhysics.cc @@ -88,9 +88,9 @@ void G4ParallelWorldPhysics::ConstructProcess() G4ProcessManager* pmanager = particle->GetProcessManager(); pmanager->AddProcess(theParallelWorldProcess); if(theParallelWorldProcess->IsAtRestRequired(particle)) - {pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9999);} + {pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9900);} pmanager->SetProcessOrderingToSecond(theParallelWorldProcess, idxAlongStep); - pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9999); + pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9900); } } diff --git a/source/physics_lists/lists/History b/source/physics_lists/lists/History index c7226fdfd9..18f9c0ee9b 100644 --- a/source/physics_lists/lists/History +++ b/source/physics_lists/lists/History @@ -1,4 +1,4 @@ -$Id: History 94096 2015-11-05 15:19:03Z gcosmo $ +$Id: History 97750 2016-06-08 12:20:28Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,40 @@ introduced in the code and keeptrack of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26-May-2016, Alberto Ribon (phys-lists-V10-02-06) +- QGSP_BIC_AllHP : use new, specialized ion constructor, G4IonPhysicsPHP. + +10-May-2016, Robert Hatcher (phys-lists-V10-02-05) +- mv src/G4RegisterPhysLists.cc to include/G4RegisterPhysLists.icc + so that it gets compiled as part of the G4PhysListRegistry compilation + unit. This ensures that all the physics lists declared to the + registry are referenced by it such that the linker will include + them if libraries are built statically, even when the loader + doesn't force whole-archive (not possible for MS Visual Studio) loading. +- Fix exception label so it is unique. + +06-Apr-2016, Alberto Ribon (phys-lists-V10-02-04) +- FTFP_BERT_ATL : created new, experimental physics list for ATLAS, + similar to FTFP_BERT but with the transition between BERT and FTFP + in the energy region [9, 12] GeV. + +09-Mar-2016, Alberto Ribon (phys-lists-V10-02-03) +- FTFP_BERT_TRV : Use GS multiple scattering with the most precise + "error-free" stepping. This is done for the purpose of studying + the impact of multiple scattering on hadronic showers. + +23-Feb-2016, Alberto Ribon (phys-lists-V10-02-02) +- FTFP_BERT_TRV : Use GS multiple scattering with the more precise option, + (Opt3), instead of the default (Opt0). This is done for the purpose of + studying the impact of multiple scattering on hadronic showers. + +14-Jan-2016, Alberto Ribon (phys-lists-V10-02-01) +- Re-submitting the previous tag (that was rejected). + +04-Dec-2015, Alberto Ribon (phys-lists-V10-02-00) +- FTFP_BERT_TRV : Switch on (again) the low-mass diffraction dissociation + used in G4HadronHElasticPhysics + 05-Nov-2015, Alberto Ribon (phys-lists-V10-01-13) - Removed neutron_hp/ . diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh b/source/physics_lists/lists/include/FTFP_BERT_ATL.hh similarity index 65% rename from examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh rename to source/physics_lists/lists/include/FTFP_BERT_ATL.hh index f0a16e2544..94cbf05e42 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh +++ b/source/physics_lists/lists/include/FTFP_BERT_ATL.hh @@ -23,46 +23,44 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/include/Em10SteppingVerbose.hh -/// \brief Definition of the Em10SteppingVerbose class +// $Id:$ // +//--------------------------------------------------------------------------- +// Author: Alberto Ribon +// Date: April 2016 // -// $Id: Em10SteppingVerbose.hh 66241 2012-12-13 18:34:42Z gunter $ +// New physics list FTFP_BERT_ATL. +// This is a modified version of the FTFP_BERT physics list for ATLAS. +// The physics list FTFP_BERT_ATL has the transition between Bertini (BERT) +// intra-nuclear cascade model and Fritiof (FTF) string model in the +// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT). +//---------------------------------------------------------------------------- // -// -//--------------------------------------------------------------- -// -// Em10SteppingVerbose.hh -// -// Description: -// This class manages the vervose outputs in G4SteppingManager. -// -// -// Contact: -// Questions and comments to this code should be sent to -// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) -// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) -// -//--------------------------------------------------------------- +#ifndef TFTFP_BERT_ATL_h +#define TFTFP_BERT_ATL_h 1 -class Em10SteppingVerbose; +#include -#ifndef Em10SteppingVerbose_h -#define Em10SteppingVerbose_h 1 +#include "globals.hh" +#include "G4VModularPhysicsList.hh" +#include "CompileTimeConstraints.hh" -#include "G4SteppingVerbose.hh" - -class Em10SteppingVerbose : public G4SteppingVerbose +template +class TFTFP_BERT_ATL: public T { - public: - // Constructor/Destructor - - Em10SteppingVerbose(); - ~Em10SteppingVerbose(); - - void StepInfo(); - void TrackingStarted(); +public: + TFTFP_BERT_ATL(G4int ver = 1); + virtual ~TFTFP_BERT_ATL(); + +public: + // SetCuts() + virtual void SetCuts(); +private: + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "FTFP_BERT_ATL.icc" +typedef TFTFP_BERT_ATL FTFP_BERT_ATL; #endif + diff --git a/source/physics_lists/lists/include/FTFP_BERT_ATL.icc b/source/physics_lists/lists/include/FTFP_BERT_ATL.icc new file mode 100644 index 0000000000..34cdc9d92d --- /dev/null +++ b/source/physics_lists/lists/include/FTFP_BERT_ATL.icc @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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:$ +// +//--------------------------------------------------------------------------- +// Author: Alberto Ribon +// Date: April 2016 +// +// New physics list FTFP_BERT_ATL. +// This is a modified version of the FTFP_BERT physics list for ATLAS. +// The physics list FTFP_BERT_ATL has the transition between Bertini (BERT) +// intra-nuclear cascade model and Fritiof (FTF) string model in the +// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT). +//---------------------------------------------------------------------------- +// +#include + +#include "globals.hh" +#include "G4ios.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" + +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" +#include "G4StoppingPhysics.hh" +#include "G4HadronElasticPhysics.hh" +#include "G4NeutronTrackingCut.hh" + +#include "G4DataQuestionaire.hh" +#include "G4HadronPhysicsFTFP_BERT_ATL.hh" + +#include "G4WarnPLStatus.hh" + + +template TFTFP_BERT_ATL::TFTFP_BERT_ATL(G4int ver): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*CLHEP::mm; + G4DataQuestionaire it(photon); + G4cout << "<<< Geant4 Physics List simulation engine: FTFP_BERT_ATL 2.0"<defaultCutValue = 0.7*CLHEP::mm; + this->SetVerboseLevel(ver); + + G4WarnPLStatus exp; + exp.Experimental("FTFP_BERT_ATL"); + + // EM Physics + this->RegisterPhysics( new G4EmStandardPhysics(ver)); + + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics(ver) ); + + // Decays + this->RegisterPhysics( new G4DecayPhysics(ver) ); + + // Hadron Elastic scattering + this->RegisterPhysics( new G4HadronElasticPhysics(ver) ); + + // Hadron Physics + this->RegisterPhysics( new G4HadronPhysicsFTFP_BERT_ATL(ver) ); + + // Stopping Physics + this->RegisterPhysics( new G4StoppingPhysics(ver) ); + + // Ion Physics + this->RegisterPhysics( new G4IonPhysics(ver)); + + // Neutron tracking cut + this->RegisterPhysics( new G4NeutronTrackingCut(ver)); +} + +template TFTFP_BERT_ATL::~TFTFP_BERT_ATL() +{ +} + +template void TFTFP_BERT_ATL::SetCuts() +{ + if (this->verboseLevel >1){ + G4cout << "FTFP_BERT_ATL::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + this->SetCutsWithDefault(); + +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); +} diff --git a/source/physics_lists/lists/include/FTFP_BERT_TRV.icc b/source/physics_lists/lists/include/FTFP_BERT_TRV.icc index c2ca3cfc97..045b703ce2 100644 --- a/source/physics_lists/lists/include/FTFP_BERT_TRV.icc +++ b/source/physics_lists/lists/include/FTFP_BERT_TRV.icc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: FTFP_BERT_TRV.icc 92960 2015-09-23 08:41:04Z gcosmo $ +// $Id: FTFP_BERT_TRV.icc 96038 2016-03-09 13:13:59Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -70,6 +70,9 @@ #include "G4WarnPLStatus.hh" +#include "G4EmParameters.hh" + + template TFTFP_BERT_TRV::TFTFP_BERT_TRV(G4int ver): T() { // default cut value (1.0mm) @@ -84,7 +87,9 @@ template TFTFP_BERT_TRV::TFTFP_BERT_TRV(G4int ver): T() exp.Experimental("FTFP_BERT_TRV"); // EM Physics - this->RegisterPhysics( new G4EmStandardPhysicsGS(ver) ); + G4EmStandardPhysicsGS* gsPhysics = new G4EmStandardPhysicsGS( ver ); + G4EmParameters::Instance()->SetMscStepLimitType( fUseSafety ); + this->RegisterPhysics( gsPhysics ); // Synchroton Radiation & GN Physics this->RegisterPhysics( new G4EmExtraPhysics(ver) ); @@ -93,7 +98,7 @@ template TFTFP_BERT_TRV::TFTFP_BERT_TRV(G4int ver): T() this->RegisterPhysics( new G4DecayPhysics(ver) ); // Hadron Elastic scattering - this->RegisterPhysics( new G4HadronHElasticPhysics(ver, false) ); + this->RegisterPhysics( new G4HadronHElasticPhysics(ver, true) ); // Hadron Physics this->RegisterPhysics( new G4HadronPhysicsFTFP_BERT_TRV(ver)); diff --git a/source/physics_lists/lists/src/G4RegisterPhysLists.cc b/source/physics_lists/lists/include/G4RegisterPhysLists.icc similarity index 98% rename from source/physics_lists/lists/src/G4RegisterPhysLists.cc rename to source/physics_lists/lists/include/G4RegisterPhysLists.icc index bb8668edc8..b26c591e27 100644 --- a/source/physics_lists/lists/src/G4RegisterPhysLists.cc +++ b/source/physics_lists/lists/include/G4RegisterPhysLists.icc @@ -46,6 +46,9 @@ G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT_HP); #include "FTFP_BERT_TRV.hh" G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT_TRV); +#include "FTFP_BERT_ATL.hh" +G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT_ATL); + #include "FTFP_INCLXX.hh" G4_DECLARE_PHYSLIST_FACTORY(FTFP_INCLXX); diff --git a/source/physics_lists/lists/include/QGSP_BIC_AllHP.icc b/source/physics_lists/lists/include/QGSP_BIC_AllHP.icc index 2eb7be1442..949a880363 100644 --- a/source/physics_lists/lists/include/QGSP_BIC_AllHP.icc +++ b/source/physics_lists/lists/include/QGSP_BIC_AllHP.icc @@ -47,7 +47,7 @@ #include "G4DecayPhysics.hh" #include "G4EmStandardPhysics.hh" #include "G4EmExtraPhysics.hh" -#include "G4IonPhysics.hh" +#include "G4IonPhysicsPHP.hh" #include "G4StoppingPhysics.hh" #include "G4HadronElasticPhysicsPHP.hh" @@ -86,7 +86,7 @@ template TQGSP_BIC_AllHP::TQGSP_BIC_AllHP(G4int ver): T() this->RegisterPhysics( new G4StoppingPhysics(ver) ); // Ion Physics - this->RegisterPhysics( new G4IonPhysics(ver)); + this->RegisterPhysics( new G4IonPhysicsPHP(ver)); } diff --git a/source/physics_lists/lists/sources.cmake b/source/physics_lists/lists/sources.cmake index bedc0856e4..ce819bbbb7 100644 --- a/source/physics_lists/lists/sources.cmake +++ b/source/physics_lists/lists/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 94096 2015-11-05 15:19:03Z gcosmo $ +# $Id: sources.cmake 97176 2016-05-27 12:42:50Z gcosmo $ # #------------------------------------------------------------------------------ @@ -114,6 +114,8 @@ GEANT4_DEFINE_MODULE(NAME G4phys_lists FTFP_BERT.icc FTFP_BERT_TRV.hh FTFP_BERT_TRV.icc + FTFP_BERT_ATL.hh + FTFP_BERT_ATL.icc G4GenericPhysicsList.hh G4GenericPhysicsList.icc G4PhysListFactory.hh @@ -147,12 +149,12 @@ GEANT4_DEFINE_MODULE(NAME G4phys_lists G4PhysListFactoryAlt.hh QGSP_BIC_AllHP.hh QGSP_BIC_AllHP.icc + G4RegisterPhysLists.icc SOURCES G4PhysListFactory.cc QBBC.cc G4PhysListRegistry.cc G4PhysListFactoryAlt.cc - G4RegisterPhysLists.cc GRANULAR_DEPENDENCIES G4baryons G4bosons diff --git a/source/physics_lists/lists/src/G4PhysListFactory.cc b/source/physics_lists/lists/src/G4PhysListFactory.cc index 2751248432..b63b536fb1 100644 --- a/source/physics_lists/lists/src/G4PhysListFactory.cc +++ b/source/physics_lists/lists/src/G4PhysListFactory.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PhysListFactory.cc 92863 2015-09-18 12:44:13Z gcosmo $ +// $Id: G4PhysListFactory.cc 96327 2016-04-06 15:50:53Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -43,6 +43,7 @@ #include "FTFP_BERT.hh" #include "FTFP_BERT_HP.hh" #include "FTFP_BERT_TRV.hh" +#include "FTFP_BERT_ATL.hh" #include "FTFP_INCLXX.hh" #include "FTFP_INCLXX_HP.hh" #include "FTF_BIC.hh" @@ -72,9 +73,9 @@ G4PhysListFactory::G4PhysListFactory() : defName("FTFP_BERT"),verbose(1) { - nlists_hadr = 21; - G4String ss[21] = { - "FTFP_BERT","FTFP_BERT_TRV","FTFP_BERT_HP","FTFP_INCLXX", + nlists_hadr = 22; + G4String ss[22] = { + "FTFP_BERT","FTFP_BERT_TRV","FTFP_BERT_ATL","FTFP_BERT_HP","FTFP_INCLXX", "FTFP_INCLXX_HP","FTF_BIC", "LBE","QBBC", "QGSP_BERT","QGSP_BERT_HP","QGSP_BIC","QGSP_BIC_HP","QGSP_BIC_AllHP", "QGSP_FTFP_BERT","QGSP_INCLXX","QGSP_INCLXX_HP","QGS_BIC", @@ -147,6 +148,7 @@ G4PhysListFactory::GetReferencePhysList(const G4String& name) if(had_name == "FTFP_BERT") {p = new FTFP_BERT(verbose);} else if(had_name == "FTFP_BERT_HP") {p = new FTFP_BERT_HP(verbose);} else if(had_name == "FTFP_BERT_TRV") {p = new FTFP_BERT_TRV(verbose);} + else if(had_name == "FTFP_BERT_ATL") {p = new FTFP_BERT_ATL(verbose);} else if(had_name == "FTFP_INCLXX") {p = new FTFP_INCLXX(verbose);} else if(had_name == "FTFP_INCLXX_HP") {p = new FTFP_INCLXX_HP(verbose);} else if(had_name == "FTF_BIC") {p = new FTF_BIC(verbose);} diff --git a/source/physics_lists/lists/src/G4PhysListRegistry.cc b/source/physics_lists/lists/src/G4PhysListRegistry.cc index dc9b01c0ff..7ce03a3835 100644 --- a/source/physics_lists/lists/src/G4PhysListRegistry.cc +++ b/source/physics_lists/lists/src/G4PhysListRegistry.cc @@ -47,6 +47,9 @@ #include "G4PhysListStamper.hh" #include "G4PhysicsConstructorRegistry.hh" +// include this with this compilation unit so static builds pull them in +#include "G4RegisterPhysLists.icc" + G4ThreadLocal G4PhysListRegistry* G4PhysListRegistry::theInstance = 0; G4PhysListRegistry* G4PhysListRegistry::Instance() @@ -142,7 +145,7 @@ G4PhysListRegistry::GetModularPhysicsList(const G4String& name) ED << "]" << G4endl; } G4Exception("G4PhysListRegistry::GetModularPhysicsList", - "PhysicsList001", FatalException, ED); + "PhysicsList002", FatalException, ED); return 0; } @@ -161,13 +164,13 @@ G4PhysListRegistry::GetModularPhysicsList(const G4String& name) G4String pcname = physicsExtensions[extName]; // this doesn't have a verbose option ... it should // but G4PhysicsConstructorFactory doesn't support it - G4VPhysicsConstructor* pc = pcRegistry->GetPhysicsConstructor(pcname); + G4VPhysicsConstructor* pctor = pcRegistry->GetPhysicsConstructor(pcname); G4String reporreg = ""; if ( physReplace[ipc] > 0 ) { - pl->ReplacePhysics(pc); + pl->ReplacePhysics(pctor); reporreg = "ReplacePhysics "; } else { - pl->RegisterPhysics(pc); + pl->RegisterPhysics(pctor); reporreg = "RegisterPhysics"; } if ( verbose > 0 ) G4cout << "<<< " << reporreg << " with " << pcname diff --git a/source/processes/biasing/generic/History b/source/processes/biasing/generic/History index 02cd89d888..cfc16c56e0 100644 --- a/source/processes/biasing/generic/History +++ b/source/processes/biasing/generic/History @@ -1,4 +1,4 @@ -$Id: History 94220 2015-11-09 08:26:57Z gcosmo $ +$Id: History 96031 2016-03-09 08:23:10Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,34 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +March 8th, 2016, M. Verderi +- Clean up for unused variable fParticleChange in G4BiasingProcessInterface +- proc-biasgen-V10-02-03 + +March 7th, 2016, M. Verderi +- Fix coverity warnings in src/G4BiasingProcessInterface.cc +- proc-biasgen-V10-02-02 + +January 20th, 2016, M. Verderi +- fix compilation warning in order initialization of data members + in src/G4BiasingProcessInterface.cc. +- proc-biasgen-V10-02-01 + +January 19th, 2016, M. Verderi +- fix various coverity warnings (unitialized variables). Should have no + effect. Fixes in: + src/G4BOptnChangeCrossSection.cc + src/G4BOptnCloning.cc + src/G4BOptnForceCommonTruncatedExp.cc + src/G4BOptnForceFreeFlight.cc + src/G4BOptrForceCollision.cc + src/G4BiasingProcessInterface.cc + include/G4BiasingProcessSharedData.hh + and minor cosmetics in: + include/G4BOptnCloning.hh + include/G4BOptnForceFreeFlight.hh +- proc-biasgen-V10-02-00 + November 6th, 2015, M. Verderi - fix non initialization of model IDs in MT mode. - prevent "over initialization" of operators (each diff --git a/source/processes/biasing/generic/include/G4BOptnCloning.hh b/source/processes/biasing/generic/include/G4BOptnCloning.hh index 09b6e96682..8e38d0bb7d 100644 --- a/source/processes/biasing/generic/include/G4BOptnCloning.hh +++ b/source/processes/biasing/generic/include/G4BOptnCloning.hh @@ -79,9 +79,10 @@ public: G4Track* GetCloneTrack() const { return fCloneTrack; } private: - G4double fClone1W, fClone2W; + G4double fClone1W, + fClone2W; G4ParticleChange fParticleChange; - G4Track* fCloneTrack; + G4Track* fCloneTrack; }; #endif diff --git a/source/processes/biasing/generic/include/G4BOptnForceFreeFlight.hh b/source/processes/biasing/generic/include/G4BOptnForceFreeFlight.hh index bc43d0ca3d..c8a05ddcd2 100644 --- a/source/processes/biasing/generic/include/G4BOptnForceFreeFlight.hh +++ b/source/processes/biasing/generic/include/G4BOptnForceFreeFlight.hh @@ -90,9 +90,10 @@ public: private: G4ILawForceFreeFlight* fForceFreeFlightInteractionLaw; - G4double fCumulatedWeightChange, fInitialTrackWeight; - G4ParticleChange fParticleChange; - G4bool fOperationComplete; + G4double fCumulatedWeightChange, + fInitialTrackWeight; + G4ParticleChange fParticleChange; + G4bool fOperationComplete; }; #endif diff --git a/source/processes/biasing/generic/include/G4BiasingProcessInterface.hh b/source/processes/biasing/generic/include/G4BiasingProcessInterface.hh index 9aa1255ed3..3757c7ecb3 100644 --- a/source/processes/biasing/generic/include/G4BiasingProcessInterface.hh +++ b/source/processes/biasing/generic/include/G4BiasingProcessInterface.hh @@ -65,7 +65,6 @@ class G4InteractionLawPhysical; class G4VBiasingOperator; class G4VBiasingOperation; class G4ParticleChangeForOccurenceBiasing; -class G4ParticleChange; class G4ParticleChangeForNothing; class G4BiasingProcessInterface : public G4VProcess { @@ -210,17 +209,17 @@ private: void ResetForUnbiasedTracking(); void ReorderBiasingVectorAsGPIL(); - G4Track* fCurrentTrack; - G4double fPreviousStepSize; - G4double fCurrentMinimumStep; - G4double fProposedSafety; + G4Track* fCurrentTrack; + G4double fPreviousStepSize; + G4double fCurrentMinimumStep; + G4double fProposedSafety; - G4VBiasingOperation* fOccurenceBiasingOperation; - G4VBiasingOperation* fFinalStateBiasingOperation; - G4VBiasingOperation* fNonPhysicsBiasingOperation; - G4VBiasingOperation* fPreviousOccurenceBiasingOperation; - G4VBiasingOperation* fPreviousFinalStateBiasingOperation; - G4VBiasingOperation* fPreviousNonPhysicsBiasingOperation; + G4VBiasingOperation* fOccurenceBiasingOperation; + G4VBiasingOperation* fFinalStateBiasingOperation; + G4VBiasingOperation* fNonPhysicsBiasingOperation; + G4VBiasingOperation* fPreviousOccurenceBiasingOperation; + G4VBiasingOperation* fPreviousFinalStateBiasingOperation; + G4VBiasingOperation* fPreviousNonPhysicsBiasingOperation; G4bool fResetWrappedProcessInteractionLength; @@ -245,7 +244,6 @@ private: const G4VBiasingInteractionLaw* fPreviousBiasingInteractionLaw; G4InteractionLawPhysical* fPhysicalInteractionLaw; G4ParticleChangeForOccurenceBiasing* fOccurenceBiasingParticleChange; - G4ParticleChange* fParticleChange; // -- to be changed with a light version for weight only G4ParticleChangeForNothing* fDummyParticleChange; G4bool fFirstLastFlags[8]; G4int IdxFirstLast(G4int firstLast, G4int GPILDoIt, G4int physAll) const @@ -261,27 +259,27 @@ private: G4double previousStepSize, G4ForceCondition* condition ); // -- the instance being "firstGPIL" does work shared by other instances: - G4bool fIamFirstGPIL; + G4bool fIamFirstGPIL; // -- MUST be **thread local**: - static G4Cache fResetInteractionLaws; - static G4Cache fCommonStart; - static G4Cache fCommonEnd; - static G4Cache fDoCommonConfigure; + static G4Cache fResetInteractionLaws; + static G4Cache fCommonStart; + static G4Cache fCommonEnd; + static G4Cache fDoCommonConfigure; - const G4ProcessManager* fProcessManager; + const G4ProcessManager* fProcessManager; // -- the data shared among processes attached to a same process manager: - G4BiasingProcessSharedData* fSharedData; + G4BiasingProcessSharedData* fSharedData; // -- thread local: // -- Map between process managers and shared data. This map is made of // -- pointers of G4BiasingSharedData instead of objects themselves : // -- each process needs to keep a valid pointer of a shared data object // -- but a map of object will make pointers invalid when map is increaded. static G4MapCache< const G4ProcessManager*, - G4BiasingProcessSharedData* > fSharedDataMap; + G4BiasingProcessSharedData* > fSharedDataMap; }; diff --git a/source/processes/biasing/generic/include/G4BiasingProcessSharedData.hh b/source/processes/biasing/generic/include/G4BiasingProcessSharedData.hh index 15647fe8ed..c1bb901c19 100644 --- a/source/processes/biasing/generic/include/G4BiasingProcessSharedData.hh +++ b/source/processes/biasing/generic/include/G4BiasingProcessSharedData.hh @@ -74,7 +74,13 @@ public: private: // -- Methods used by the G4BiasingProcessInterface objects, thanks to class friendness. // -- Object is created by G4BiasingProcessInterface object: - G4BiasingProcessSharedData( const G4ProcessManager* mgr) : fProcessManager(mgr) {} + G4BiasingProcessSharedData( const G4ProcessManager* mgr) + : fProcessManager (mgr), + fCurrentBiasingOperator (0), + fPreviousBiasingOperator(0), + fIsNewOperator (true), + fLeavingPreviousOperator(false) + {} ~G4BiasingProcessSharedData() {} // -- biasing operators: void CurrentBiasingOperator( G4VBiasingOperator* ); diff --git a/source/processes/biasing/generic/src/G4BOptnChangeCrossSection.cc b/source/processes/biasing/generic/src/G4BOptnChangeCrossSection.cc index e3790b7cdc..d7abc034bc 100644 --- a/source/processes/biasing/generic/src/G4BOptnChangeCrossSection.cc +++ b/source/processes/biasing/generic/src/G4BOptnChangeCrossSection.cc @@ -29,7 +29,8 @@ G4BOptnChangeCrossSection::G4BOptnChangeCrossSection(G4String name) - : G4VBiasingOperation(name) + : G4VBiasingOperation( name ), + fInteractionOccured( false ) { fBiasedExponentialLaw = new G4InteractionLawPhysical("LawForOperation"+name); } diff --git a/source/processes/biasing/generic/src/G4BOptnCloning.cc b/source/processes/biasing/generic/src/G4BOptnCloning.cc index 9e4933483d..e944b72757 100644 --- a/source/processes/biasing/generic/src/G4BOptnCloning.cc +++ b/source/processes/biasing/generic/src/G4BOptnCloning.cc @@ -27,9 +27,11 @@ G4BOptnCloning::G4BOptnCloning(G4String name) - : G4VBiasingOperation(name), + : G4VBiasingOperation( name ), + fClone1W ( -1.0 ), + fClone2W ( -1.0 ), fParticleChange(), - fCloneTrack(nullptr) + fCloneTrack ( nullptr ) {} G4BOptnCloning::~G4BOptnCloning() diff --git a/source/processes/biasing/generic/src/G4BOptnForceCommonTruncatedExp.cc b/source/processes/biasing/generic/src/G4BOptnForceCommonTruncatedExp.cc index 93517ab25f..217c616788 100644 --- a/source/processes/biasing/generic/src/G4BOptnForceCommonTruncatedExp.cc +++ b/source/processes/biasing/generic/src/G4BOptnForceCommonTruncatedExp.cc @@ -33,7 +33,10 @@ G4BOptnForceCommonTruncatedExp::G4BOptnForceCommonTruncatedExp(G4String name) : G4VBiasingOperation(name), - fInteractionOccured(false) + fNumberOfSharing(0), + fProcessToApply(nullptr), + fInteractionOccured(false), + fMaximumDistance(-1.0) { fCommonTruncatedExpLaw = new G4ILawCommonTruncatedExp("ExpLawForOperation"+name); fForceFreeFlightLaw = new G4ILawForceFreeFlight ("FFFLawForOperation"+name); @@ -47,8 +50,9 @@ G4BOptnForceCommonTruncatedExp::~G4BOptnForceCommonTruncatedExp() if ( fForceFreeFlightLaw ) delete fForceFreeFlightLaw; } -const G4VBiasingInteractionLaw* G4BOptnForceCommonTruncatedExp::ProvideOccurenceBiasingInteractionLaw( const G4BiasingProcessInterface* callingProcess, - G4ForceCondition& proposeForceCondition ) +const G4VBiasingInteractionLaw* G4BOptnForceCommonTruncatedExp:: +ProvideOccurenceBiasingInteractionLaw( const G4BiasingProcessInterface* callingProcess, + G4ForceCondition& proposeForceCondition ) { if ( callingProcess->GetWrappedProcess() == fProcessToApply ) { diff --git a/source/processes/biasing/generic/src/G4BOptnForceFreeFlight.cc b/source/processes/biasing/generic/src/G4BOptnForceFreeFlight.cc index 76333de188..092a8dc93f 100644 --- a/source/processes/biasing/generic/src/G4BOptnForceFreeFlight.cc +++ b/source/processes/biasing/generic/src/G4BOptnForceFreeFlight.cc @@ -31,8 +31,10 @@ G4BOptnForceFreeFlight::G4BOptnForceFreeFlight(G4String name) -: G4VBiasingOperation(name), - fOperationComplete(true) + : G4VBiasingOperation ( name ), + fCumulatedWeightChange ( -1.0 ), + fInitialTrackWeight ( -1.0 ), + fOperationComplete ( true ) { fForceFreeFlightInteractionLaw = new G4ILawForceFreeFlight("LawForOperation"+name); } diff --git a/source/processes/biasing/generic/src/G4BOptrForceCollision.cc b/source/processes/biasing/generic/src/G4BOptrForceCollision.cc index 08235a83b9..39576ce53d 100644 --- a/source/processes/biasing/generic/src/G4BOptrForceCollision.cc +++ b/source/processes/biasing/generic/src/G4BOptrForceCollision.cc @@ -46,7 +46,9 @@ G4BOptrForceCollision::G4BOptrForceCollision(G4String particleName, G4String name) : G4VBiasingOperator(name), fForceCollisionModelID(-1), + fCurrentTrack(nullptr), fCurrentTrackData(nullptr), + fInitialTrackWeight(-1.0), fSetup(true) { fSharedForceInteractionOperation = new G4BOptnForceCommonTruncatedExp("SharedForceInteraction"); @@ -68,7 +70,9 @@ G4BOptrForceCollision::G4BOptrForceCollision(G4String particleName, G4String nam G4BOptrForceCollision::G4BOptrForceCollision(const G4ParticleDefinition* particle, G4String name) : G4VBiasingOperator(name), fForceCollisionModelID(-1), + fCurrentTrack(nullptr), fCurrentTrackData(nullptr), + fInitialTrackWeight(-1.0), fSetup(true) { fSharedForceInteractionOperation = new G4BOptnForceCommonTruncatedExp("SharedForceInteraction"); diff --git a/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc b/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc index 5a1d0cd588..04b74807bf 100644 --- a/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc +++ b/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc @@ -27,7 +27,6 @@ #include "G4VBiasingOperator.hh" #include "G4VBiasingOperation.hh" #include "G4ParticleChangeForOccurenceBiasing.hh" -#include "G4ParticleChange.hh" #include "G4ParticleChangeForNothing.hh" #include "G4VBiasingInteractionLaw.hh" #include "G4InteractionLawPhysical.hh" @@ -42,19 +41,34 @@ G4MapCache< const G4ProcessManager*, G4BiasingProcessSharedData* > G4BiasingProc G4BiasingProcessInterface::G4BiasingProcessInterface(G4String name) - : G4VProcess ( name ), - fWrappedProcess ( 0 ), - fIsPhysicsBasedBiasing ( false ), - fWrappedProcessIsAtRest ( false ), - fWrappedProcessIsAlong ( false ), - fWrappedProcessIsPost ( false ), - fWrappedProcessInteractionLength( -1.0 ), - fBiasingInteractionLaw ( 0 ), - fPhysicalInteractionLaw ( 0 ), - fOccurenceBiasingParticleChange ( 0 ), - fIamFirstGPIL ( false ), - fSharedData ( 0 ) - + : G4VProcess ( name ), + fCurrentTrack ( nullptr ), + fPreviousStepSize (-1.0), fCurrentMinimumStep( -1.0 ), fProposedSafety ( -1.0), + fOccurenceBiasingOperation( nullptr ), fFinalStateBiasingOperation( nullptr ), fNonPhysicsBiasingOperation( nullptr ), + fPreviousOccurenceBiasingOperation( nullptr ), fPreviousFinalStateBiasingOperation( nullptr ), fPreviousNonPhysicsBiasingOperation( nullptr ), + fResetWrappedProcessInteractionLength( true ), + fWrappedProcess ( nullptr ), + fIsPhysicsBasedBiasing ( false ), + fWrappedProcessIsAtRest ( false ), + fWrappedProcessIsAlong ( false ), + fWrappedProcessIsPost ( false ), + fWrappedProcessPostStepGPIL ( -1.0 ), + fBiasingPostStepGPIL ( -1.0 ), + fWrappedProcessInteractionLength ( -1.0 ), + fWrappedProcessForceCondition ( NotForced ), + fBiasingForceCondition ( NotForced ), + fWrappedProcessAlongStepGPIL ( -1.0 ), + fBiasingAlongStepGPIL ( -1.0 ), + fWrappedProcessGPILSelection ( NotCandidateForSelection ), + fBiasingGPILSelection ( NotCandidateForSelection ), + fBiasingInteractionLaw ( nullptr ), + fPreviousBiasingInteractionLaw ( nullptr ), + fPhysicalInteractionLaw ( nullptr ), + fOccurenceBiasingParticleChange ( nullptr ), + fDummyParticleChange ( nullptr ), + fIamFirstGPIL ( false ), + fProcessManager ( nullptr ), + fSharedData ( nullptr ) { for (G4int i = 0 ; i < 8 ; i++) fFirstLastFlags[i] = false; fResetInteractionLaws.Put( true ); @@ -69,17 +83,32 @@ G4BiasingProcessInterface::G4BiasingProcessInterface(G4VProcess* wrappedProcess, G4String useThisName) : G4VProcess( useThisName != "" ? useThisName : "biasWrapper("+wrappedProcess->GetProcessName()+")", wrappedProcess->GetProcessType()), - fWrappedProcess ( wrappedProcess ), - fIsPhysicsBasedBiasing ( true ), - fWrappedProcessIsAtRest ( wrappedIsAtRest ), - fWrappedProcessIsAlong ( wrappedIsAlongStep ), - fWrappedProcessIsPost ( wrappedIsPostStep ), - fWrappedProcessInteractionLength( -1.0 ), - fBiasingInteractionLaw ( 0 ), - fPhysicalInteractionLaw ( 0 ), - fOccurenceBiasingParticleChange ( 0 ), - fIamFirstGPIL ( false ), - fSharedData ( 0 ) + fCurrentTrack ( nullptr ), + fPreviousStepSize (-1.0), fCurrentMinimumStep( -1.0 ), fProposedSafety ( -1.0), + fOccurenceBiasingOperation( nullptr ), fFinalStateBiasingOperation( nullptr ), fNonPhysicsBiasingOperation( nullptr ), + fPreviousOccurenceBiasingOperation( nullptr ), fPreviousFinalStateBiasingOperation( nullptr ), fPreviousNonPhysicsBiasingOperation( nullptr ), + fResetWrappedProcessInteractionLength ( false ), + fWrappedProcess ( wrappedProcess ), + fIsPhysicsBasedBiasing ( true ), + fWrappedProcessIsAtRest ( wrappedIsAtRest ), + fWrappedProcessIsAlong ( wrappedIsAlongStep ), + fWrappedProcessIsPost ( wrappedIsPostStep ), + fWrappedProcessPostStepGPIL ( -1.0 ), + fBiasingPostStepGPIL ( -1.0 ), + fWrappedProcessInteractionLength ( -1.0 ), + fWrappedProcessForceCondition ( NotForced ), + fBiasingForceCondition ( NotForced ), + fWrappedProcessAlongStepGPIL ( -1.0 ), + fBiasingAlongStepGPIL ( -1.0 ), + fWrappedProcessGPILSelection ( NotCandidateForSelection ), + fBiasingGPILSelection ( NotCandidateForSelection ), + fBiasingInteractionLaw ( nullptr ), + fPreviousBiasingInteractionLaw ( nullptr ), + fPhysicalInteractionLaw ( nullptr ), + fOccurenceBiasingParticleChange ( nullptr ), + fIamFirstGPIL ( false ), + fProcessManager ( nullptr ), + fSharedData ( nullptr ) { for (G4int i = 0 ; i < 8 ; i++) fFirstLastFlags[i] = false; fResetInteractionLaws.Put( true ); @@ -93,7 +122,6 @@ G4BiasingProcessInterface::G4BiasingProcessInterface(G4VProcess* wrappedProcess, fPhysicalInteractionLaw = new G4InteractionLawPhysical("PhysicalInteractionLawFor("+GetProcessName()+")"); // -- instantiate particle change wrapper for occurence biaising: fOccurenceBiasingParticleChange = new G4ParticleChangeForOccurenceBiasing("biasingPCfor"+GetProcessName()); - fParticleChange = new G4ParticleChange(); // -- instantiate a "do nothing" particle change: fDummyParticleChange = new G4ParticleChangeForNothing(); } @@ -104,7 +132,6 @@ G4BiasingProcessInterface::~G4BiasingProcessInterface() { if ( fPhysicalInteractionLaw != 0 ) delete fPhysicalInteractionLaw; if ( fOccurenceBiasingParticleChange ) delete fOccurenceBiasingParticleChange; - if ( fParticleChange ) delete fParticleChange; if ( fDummyParticleChange ) delete fDummyParticleChange; } diff --git a/source/processes/biasing/management/History b/source/processes/biasing/management/History index 7183457286..f3d696827a 100644 --- a/source/processes/biasing/management/History +++ b/source/processes/biasing/management/History @@ -1,4 +1,4 @@ -$Id: History 94224 2015-11-09 08:30:58Z gcosmo $ +$Id: History 97276 2016-05-31 14:21:35Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,14 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 30th, 2016, M. Verderi +- check for unbounded while loop in G4ProcessPlacer.cc +- tag : : proc-biasmng-V10-02-01 + +January 19th, 2016, M. Verderi +- fix coveriy warnings in src/G4VBiasingOperator.cc +- tag : proc-biasmng-V10-02-00 + November 6th, 2015, M. Verderi - adaptation to using G4VAuxiliaryTrackInformation: o Removal of classes: diff --git a/source/processes/biasing/management/src/G4ProcessPlacer.cc b/source/processes/biasing/management/src/G4ProcessPlacer.cc index a048f91f2a..7b56cc3e86 100644 --- a/source/processes/biasing/management/src/G4ProcessPlacer.cc +++ b/source/processes/biasing/management/src/G4ProcessPlacer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ProcessPlacer.cc 77477 2013-11-25 09:42:24Z gcosmo $ +// $Id: G4ProcessPlacer.cc 97276 2016-05-31 14:21:35Z gcosmo $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -165,7 +165,7 @@ G4ProcessManager *G4ProcessPlacer::GetProcessManager() G4ProcessManager *processmanager = 0; // find process manager --------------------------- theParticleIterator->reset(); - while( (*theParticleIterator)() ) + while( (*theParticleIterator)() ) /* while checked for unending loop, 30.05.2016, Marc Verderi */ { G4ParticleDefinition* particle = theParticleIterator->value(); if (particle->GetParticleName() == fParticleName) diff --git a/source/processes/biasing/management/src/G4VBiasingOperator.cc b/source/processes/biasing/management/src/G4VBiasingOperator.cc index 7b7beb6ccd..1c55b44543 100644 --- a/source/processes/biasing/management/src/G4VBiasingOperator.cc +++ b/source/processes/biasing/management/src/G4VBiasingOperator.cc @@ -34,7 +34,17 @@ G4Cache< G4BiasingOperatorStateNotifier* > G4VBiasingOperator::fS G4VBiasingOperator::G4VBiasingOperator(G4String name) - : fName(name) + : fName (name), + fOccurenceBiasingOperation (nullptr), + fFinalStateBiasingOperation (nullptr), + fNonPhysicsBiasingOperation (nullptr), + fPreviousProposedOccurenceBiasingOperation (nullptr), + fPreviousProposedFinalStateBiasingOperation(nullptr), + fPreviousProposedNonPhysicsBiasingOperation(nullptr), + fPreviousAppliedOccurenceBiasingOperation (nullptr), + fPreviousAppliedFinalStateBiasingOperation (nullptr), + fPreviousAppliedNonPhysicsBiasingOperation (nullptr), + fPreviousBiasingAppliedCase (BAC_None) { fOperators.Push_back(this); diff --git a/source/processes/decay/History b/source/processes/decay/History index 64c038e6f5..8bcd818a58 100644 --- a/source/processes/decay/History +++ b/source/processes/decay/History @@ -1,4 +1,4 @@ -$Id: History 93027 2015-09-30 16:07:56Z gcosmo $ +$Id: History 97800 2016-06-13 12:14:40Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,12 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- June 10, 16 Gunter Folger (decay-V10-02-01) + - G4Decay::DecayIt(): better format and info on IsOK... in exception DECAY003 + +- June 10, 16 Gunter Folger (decay-V10-02-00) + - In G4Decay::DecayIt(): add more information in exception DECAY003 + - Sep. 29, 15 Hisaya Kurashige (decay-V10-01-04) - fix problem #1783 of spin treatment for in-filght decay (co-work tags: track-V10-01-10, particles-V10-01-10) diff --git a/source/processes/decay/src/G4Decay.cc b/source/processes/decay/src/G4Decay.cc index d9b8b0b0fe..7f131fbc8e 100644 --- a/source/processes/decay/src/G4Decay.cc +++ b/source/processes/decay/src/G4Decay.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Decay.cc 92056 2015-08-14 13:33:43Z gcosmo $ +// $Id: G4Decay.cc 97800 2016-06-13 12:14:40Z gcosmo $ // // // -------------------------------------------------------------- @@ -251,9 +251,30 @@ G4VParticleChange* G4Decay::DecayIt(const G4Track& aTrack, const G4Step& ) decaychannel = decaytable->SelectADecayChannel(massParent); if ( decaychannel ==0) { // decay channel not found - G4Exception("G4Decay::DoIt", "DECAY003", FatalException, - " can not determine decay channel "); - } else { + G4ExceptionDescription ed; + ed << "Can not determine decay channel for " + << aParticleDef->GetParticleName() << G4endl + << " mass of dynamic particle: " << massParent/GeV << " (GEV)" << G4endl + << " dacay table has " << decaytable->entries() << " entries" << G4endl; + G4double checkedmass=massParent; + if (massParent < 0.) { + checkedmass=aParticleDef->GetPDGMass(); + ed << "Using PDG mass ("<entries();++ic) { + G4VDecayChannel * dc= decaytable->GetDecayChannel(ic); + ed << ic << ": BR " << dc->GetBR() << ", IsOK? " + << dc->IsOKWithParentMass(checkedmass) + << ", --> "; + G4int ndaughters=dc->GetNumberOfDaughters(); + for (G4int id=0;id0) ed << " + "; // seperator, except for first + ed << dc->GetDaughterName(id); + } + ed << G4endl; + } + G4Exception("G4Decay::DoIt", "DECAY003", FatalException,ed); + } else { // execute DecayIt() #ifdef G4VERBOSE G4int temp = decaychannel->GetVerboseLevel(); diff --git a/source/processes/electromagnetic/dna/History b/source/processes/electromagnetic/dna/History index f538825931..f77b20bdb0 100644 --- a/source/processes/electromagnetic/dna/History +++ b/source/processes/electromagnetic/dna/History @@ -14,6 +14,133 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ----------------------------------------------------------* +3-06-2016, MK, tag emdna-V10-02-25 +- G4DNAScreenedRutherfordElasticModel: modify handling of energy boundaries +at init time +- G4DNAUeharaScreenedRutherfordElasticModel: move up "if(isInitialised)" + +3-06-2016, MK, tag emdna-V10-02-24 +- G4DNAScreenedRutherfordElasticModel.hh: remove killBelowEnergy, + SetKillBelowThreshold deprecated +- G4DNAScreenedRutherfordElasticModel.cc: remove killBelowEnergy, modify init to + prevent erasing/rewriting data (use isInit) +- G4DNAChampionElasticModel.hh: rearrange declaration of attributes +- G4DNAChampionElasticModel.cc: move up if (isInitialised) { return; } +- G4DNAUeharaScreenedRutherfordElasticModel.cc: add exception at init time if + model used for another part than e- + +1-06-2016, MK, tag emdna-V10-02-23 +- G4DNAChemistryManager::CreateWaterMolecule: reverse electronicLevel +logic for interface with physics models + +31-05-2016, MK, tag emdna-V10-02-22 +- G4DNAChampionElasticModel.cc: reset check ekin >= LowEnergyLimit() + +28-05-2016, MK, tag emdna-V10-02-21 +- G4DNAChampionElasticModel.cc: add missing "sigma = ..." after +one of the previous tags + +19-05-2016, MK, tag emdna-V10-02-20 +- G4ITNavigator: remove warnings on gcc6.1 + +17-05-2016, MK, tag emdna-V10-02-19 +- G4DNAElectronSolvation, G4DNAOneStepThermalizationModel: +correct model and process names for solvation + +12-05-2016, MK, tag emdna-V10-02-18 +- G4DNAChampionElasticModel.hh: + * GetKillBelowThreshold is deprecated + * Removed attributes: killBelowEnergy, lowEnergyLimit, highEnergyLimit, + tableFile, tableData + * Method Theta(): remove G4ParticleDefinition * aParticleDefinition +- G4DNAUeharaScreenedRutherfordElasticModel.hh: + * SetKillBelowThreshold, GetKillBelowThreshold are depreceted + (use G4LowECapture or G4DNAElectronSolvatation) + * SelectHighEnergyLimit uses SetHighEnergyLimit instead and a warning is + emitted when used + * Removed attributes: killBelowEnergy, lowEnergyLimit, highEnergyLimit +- G4DNAChampionElasticModel.cc & G4DNAUeharaScreenedRutherfordElasticModel.cc: + * Verbose check only if preprocessor flag is triggered -> recompile + * Energy boundaries checked in Initialise() -> reset if needed + * Call to G4Electron removed in Initialise() -> check using particle name + * Cleanup CrossSectionPerVolume by removing unnecessary checks and calls to map + * SampleSecondaries(): remove "kill below threshold" and energy checks + * G4DNAChampionElasticModel::Theta remove check particle == G4Electron +- G4DNAOneStepThermalizationModel.cc: + * Check verbose flag if a preprocessor flag is trigerred + * Remove call to G4Electron at initialization time +- G4DNATransformElectronModel.cc: + * Check verbose flag if a preprocessor flag is trigerred + * Remove call to G4Electron at initialization time + * Add check if(G4DNAChemistryManager::IsActivated()) then solvated electron + created; otherwise, the primary electron is killed + +30-04-2016, MK, tag emdna-V10-02-17 +- G4VUserChemistryList: Add flag fIsPhysicsConstructor + +30-04-2016, MK, tag emdna-V10-02-16 +- G4VUserChemistryList: remove a if statement +- G4MoleculeCounter: at initialization time, prevent creating entries for + unregistered molecule definition + +22-04-2016, MK, tag emdna-V10-02-15 +- G4DNAElectronSolvatation -> G4DNAElectronSolvation +- G4DNASancheExcitationModel: remove warning when SANCHE_VERBOSE is OFF + +22-04-2016, MK, tag emdna-V10-02-14 +- G4DNAMeltonAttachmentModel, G4DNASancheExcitationModel: + remove usage of internal energy boundaries + +19-03-2016, SI, tag emdna-V10-02-13 +- added nrj extensibility to SR and USR models + +11-03-2016, SI, tag emdna-V10-02-12 +-roll back to files in emdna-V10-02-06 + +10-03-2016, SI, tag emdna-V10-02-11 +-further cleaning of G4DNAUeharaScreenedRutherfordElasticModel +and G4DNAScreenedRutherfordElasticModel + +10-03-2016, SI, tag emdna-V10-02-10 +-further cleaning of G4DNAUeharaScreenedRutherfordElasticModel + +07-03-2016, SI, tag emdna-V10-02-09 +-added possibility to extend applicability limit +of G4DNAUeharaScreenedRutherfordElasticModel + +06-03-2016, SI, tag emdna-V10-02-08 +-removed useless G4Pow declaration + +04-03-2016, SI, tag emdna-V10-02-07 +-replaced std::log by G4Log +-replaced std::log10() by G4Log()/g4pow->logZ(10) + +02-03-2016, SI, tag emdna-V10-02-06 +-replaced std::exp by G4Exp + +02-03-2016, SI, tag emdna-V10-02-05 +-replaced std::exp by G4Exp + +02-03-2016, SI, tag emdna-V10-02-04 +-replaced std::exp by G4Exp + +01-03-2016, SI, tag emdna-V10-02-03 +* update of fast computation of: +-G4DNAScreenRutherfordElasticModel +-G4DNAUeharaScreenRutherfordElasticModel +by S. Okada (KEK, JP) + +17-02-2016, MK, tag emdna-V10-02-02 +* G4MoleculeCounter: remove check of c++ version for unique_ptr/auto_ptr selection + +16-12-2015, SI, tag emdna-V10-02-01 +* Ionisation models : in SampleSecondaries: +added protection on energy for interpolation method change + +16-12-2015, SI, tag emdna-V10-02-00 +* G4DNAIonElasticModel::SampleSecondaries: added protection on +energy + 13-11-2015, MK, tag emdna-V10-01-55 * G4MoleculeCounter::Use / InUse => move implementation to source file diff --git a/source/processes/electromagnetic/dna/management/include/G4VITProcess.hh b/source/processes/electromagnetic/dna/management/include/G4VITProcess.hh index 9ea5cc0641..975b011463 100644 --- a/source/processes/electromagnetic/dna/management/include/G4VITProcess.hh +++ b/source/processes/electromagnetic/dna/management/include/G4VITProcess.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VITProcess.hh 88348 2015-02-16 08:43:34Z gcosmo $ +// $Id: G4VITProcess.hh 96060 2016-03-11 12:58:04Z gcosmo $ // // Author: Mathieu Karamitros, kara@cenbg.in2p3.fr diff --git a/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc b/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc index 969a9bffe2..afd7d393c5 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ITNavigator1.cc 80151 2014-04-03 09:42:22Z gcosmo $ +// $Id: G4ITNavigator1.cc 96977 2016-05-19 09:38:02Z gcosmo $ // // class G4ITNavigator1 Implementation // @@ -1876,12 +1876,16 @@ void G4ITNavigator1::PrintState() const << std::setw( 9) << fExiting << " " << std::setw( 9) << fEntering << " "; if ( fBlockedPhysicalVolume==0 ) + { G4cout << std::setw(15) << "None"; + } else + { G4cout << std::setw(15)<< fBlockedPhysicalVolume->GetName(); - G4cout << std::setw( 9) << fBlockedReplicaNo << " " - << std::setw( 8) << fLastStepWasZero << " " - << G4endl; + } + G4cout << std::setw( 9) << fBlockedReplicaNo << " " + << std::setw( 8) << fLastStepWasZero << " " + << G4endl; } if( fVerbose > 2 ) { diff --git a/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc b/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc index 5e1b8402a0..278a285f62 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc @@ -2273,12 +2273,16 @@ void G4ITNavigator2::PrintState() const << std::setw( 9) << fExiting << " " << std::setw( 9) << fEntering << " "; if ( fBlockedPhysicalVolume==0 ) + { G4cout << std::setw(15) << "None"; + } else + { G4cout << std::setw(15)<< fBlockedPhysicalVolume->GetName(); - G4cout << std::setw( 9) << fBlockedReplicaNo << " " - << std::setw( 8) << fLastStepWasZero << " " - << G4endl; + } + G4cout << std::setw( 9) << fBlockedReplicaNo << " " + << std::setw( 8) << fLastStepWasZero << " " + << G4endl; } if( fVerbose > 2 ) { @@ -2415,10 +2419,16 @@ std::ostream& operator << (std::ostream &os,const G4ITNavigator2 &n) << " Exiting = " << n.fExiting << G4endl << " Entering = " << n.fEntering << G4endl << " BlockedPhysicalVolume= " ; + if (n.fBlockedPhysicalVolume==0) + { os << "None"; + } else + { os << n.fBlockedPhysicalVolume->GetName(); + } + os << G4endl << " BlockedReplicaNo = " << n.fBlockedReplicaNo << G4endl << " LastStepWasZero = " << n.fLastStepWasZero << G4endl @@ -2441,10 +2451,12 @@ std::ostream& operator << (std::ostream &os,const G4ITNavigator2 &n) << std::setw( 5) << n.fValidExitNormal << " " << std::setw( 9) << n.fExiting << " " << std::setw( 9) << n.fEntering << " "; + if ( n.fBlockedPhysicalVolume==0 ) - { os << std::setw(15) << "None"; } + { os << std::setw(15) << "None"; } else - { os << std::setw(15)<< n.fBlockedPhysicalVolume->GetName(); } + { os << std::setw(15)<< n.fBlockedPhysicalVolume->GetName(); } + os << std::setw( 9) << n.fBlockedReplicaNo << " " << std::setw( 8) << n.fLastStepWasZero << " " << G4endl; diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAChampionElasticModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAChampionElasticModel.hh index b6dc35a931..595c4312ed 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAChampionElasticModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAChampionElasticModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAChampionElasticModel.hh 87137 2014-11-25 09:12:48Z gcosmo $ +// $Id: G4DNAChampionElasticModel.hh 97520 2016-06-03 14:23:17Z gcosmo $ // #ifndef G4DNAChampionElasticModel_h @@ -48,7 +48,8 @@ public: virtual ~G4DNAChampionElasticModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&); virtual G4double CrossSectionPerVolume(const G4Material* material, const G4ParticleDefinition* p, @@ -64,38 +65,46 @@ public: void SetKillBelowThreshold(G4double threshold); - G4double GetKillBelowThreshold() + inline G4double GetKillBelowThreshold() { - return killBelowEnergy; + G4ExceptionDescription errMsg; + errMsg << "The method G4DNAChampionElasticModel::" + "GetKillBelowThreshold is deprecated"; + + G4Exception("G4DNAChampionElasticModel::GetKillBelowThreshold", + "deprecated", + JustWarning, + errMsg); + return 0.; } -protected: - - G4ParticleChangeForGamma* fParticleChangeForGamma; - private: + // Cross section + typedef std::map > VecMap; + VecMap eVecm; + typedef std::map > TriDimensionMap; + TriDimensionMap eDiffCrossSectionData; + std::vector eTdummyVec; + // Water density table const std::vector* fpMolWaterDensity; - G4double killBelowEnergy; - G4double lowEnergyLimit; - G4double highEnergyLimit; - G4bool isInitialised; - G4int verboseLevel; - // Cross section + G4DNACrossSectionDataSet* fpData; - typedef std::map > MapFile; - MapFile tableFile; - - typedef std::map > MapData; - MapData tableData; +protected: + G4ParticleChangeForGamma* fParticleChangeForGamma; +private: + G4int verboseLevel; + G4bool isInitialised; + // Final state - //G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double theta); + //G4double DifferentialCrossSection(G4ParticleDefinition* aParticle, + // G4double k, G4double theta); - G4double Theta(G4ParticleDefinition * aParticleDefinition, + G4double Theta(//G4ParticleDefinition * aParticleDefinition, G4double k, G4double integrDiff); @@ -130,21 +139,12 @@ private: G4double t, G4double e); - typedef std::map > TriDimensionMap; - - TriDimensionMap eDiffCrossSectionData; - std::vector eTdummyVec; - - typedef std::map > VecMap; - VecMap eVecm; - G4double RandomizeCosTheta(G4double k); // G4DNAChampionElasticModel & operator=(const G4DNAChampionElasticModel &right); G4DNAChampionElasticModel(const G4DNAChampionElasticModel&); - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeDecreaseModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeDecreaseModel.hh index a88c765c02..5749696d53 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeDecreaseModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeDecreaseModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNADingfelderChargeDecreaseModel.hh 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNADingfelderChargeDecreaseModel.hh 96060 2016-03-11 12:58:04Z gcosmo $ // #ifndef G4DNADingfelderChargeDecreaseModel_h diff --git a/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeIncreaseModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeIncreaseModel.hh index 922b65166f..0522ea020a 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeIncreaseModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNADingfelderChargeIncreaseModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNADingfelderChargeIncreaseModel.hh 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNADingfelderChargeIncreaseModel.hh 96060 2016-03-11 12:58:04Z gcosmo $ // #ifndef G4DNADingfelderChargeIncreaseModel_h diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAMeltonAttachmentModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAMeltonAttachmentModel.hh index 28c3dfa3ca..0daaecc13e 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAMeltonAttachmentModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAMeltonAttachmentModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAMeltonAttachmentModel.hh 70171 2013-05-24 13:34:18Z gcosmo $ +// $Id: G4DNAMeltonAttachmentModel.hh 96606 2016-04-25 13:33:42Z gcosmo $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,9 +43,7 @@ class G4DNAMeltonAttachmentModel : public G4VEmModel { - public: - G4DNAMeltonAttachmentModel(const G4ParticleDefinition* p = 0, const G4String& nam = "DNAMeltonAttachmentModel"); @@ -69,46 +67,34 @@ public: inline G4bool GetDissociationFlag(); protected: - G4ParticleChangeForGamma* fParticleChangeForGamma; private: // Water density table const std::vector* fpWaterDensity; - G4double lowEnergyLimit; - G4double highEnergyLimit; - G4double lowEnergyLimitOfModel; G4bool isInitialised; G4int verboseLevel; G4bool fDissociationFlag; // Cross section - - typedef std::map > MapFile; - MapFile tableFile; - - typedef std::map > MapData; - MapData tableData; + G4DNACrossSectionDataSet* fData; // - G4DNAMeltonAttachmentModel & operator=(const G4DNAMeltonAttachmentModel &right); G4DNAMeltonAttachmentModel(const G4DNAMeltonAttachmentModel&); - }; inline void G4DNAMeltonAttachmentModel::SetDissociationFlag(G4bool flag) { - fDissociationFlag = flag; + fDissociationFlag = flag; } inline G4bool G4DNAMeltonAttachmentModel::GetDissociationFlag() { - return fDissociationFlag; + return fDissociationFlag; } - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #endif diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAOneStepThermalizationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAOneStepThermalizationModel.hh index a915286c43..fd52c16f30 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAOneStepThermalizationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAOneStepThermalizationModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAOneStepThermalizationModel.hh 94218 2015-11-09 08:24:48Z gcosmo $ +// $Id: G4DNAOneStepThermalizationModel.hh 96932 2016-05-18 09:07:51Z gcosmo $ // // Author: Mathieu Karamitros, kara@cenbg.in2p3.fr @@ -67,7 +67,7 @@ class G4DNAOneStepThermalizationModel : public G4VEmModel public: G4DNAOneStepThermalizationModel(const G4ParticleDefinition* p = 0, const G4String& nam = - "DNASancheSolvatationModel"); + "DNAOneStepThermalizationModel"); virtual ~G4DNAOneStepThermalizationModel(); virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh index 8d8e9e7d58..70436e81b9 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNARuddIonisationExtendedModel.hh 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNARuddIonisationExtendedModel.hh 96060 2016-03-11 12:58:04Z gcosmo $ // #ifndef G4DNARuddIonisationExtendedModel_h diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh index c7782d3ba7..26a6724398 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNARuddIonisationModel.hh 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNARuddIonisationModel.hh 96060 2016-03-11 12:58:04Z gcosmo $ // #ifndef G4DNARuddIonisationModel_h diff --git a/source/processes/electromagnetic/dna/models/include/G4DNASancheExcitationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNASancheExcitationModel.hh index fc5598e9c7..1f0b533dc7 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNASancheExcitationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNASancheExcitationModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNASancheExcitationModel.hh 93616 2015-10-27 08:59:17Z gcosmo $ +// $Id: G4DNASancheExcitationModel.hh 96606 2016-04-25 13:33:42Z gcosmo $ // GEANT4 tag $Name: $ // @@ -44,15 +44,14 @@ class G4DNASancheExcitationModel : public G4VEmModel { - public: - G4DNASancheExcitationModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "DNASancheExcitationModel"); + const G4String& nam = "DNASancheExcitationModel"); virtual ~G4DNASancheExcitationModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&); virtual G4double CrossSectionPerVolume(const G4Material* material, const G4ParticleDefinition* p, @@ -86,8 +85,6 @@ private: // Water density table const std::vector* fpWaterDensity; - G4double lowEnergyLimit; - G4double highEnergyLimit; G4bool isInitialised; G4int verboseLevel; @@ -120,11 +117,12 @@ private: inline void G4DNASancheExcitationModel::ExtendLowEnergyLimit(G4double threshold) { - lowEnergyLimit = threshold; - if(lowEnergyLimit < 2 * CLHEP::eV) + if(threshold < 2 * CLHEP::eV) G4Exception("*** WARNING : the G4DNASancheExcitationModel class is not " "validated below 2 eV !", "", JustWarning, ""); + + SetLowEnergyLimit(threshold); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAScreenedRutherfordElasticModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAScreenedRutherfordElasticModel.hh index 420da039e3..bcce5d82e5 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAScreenedRutherfordElasticModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAScreenedRutherfordElasticModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAScreenedRutherfordElasticModel.hh 92074 2015-08-17 07:03:46Z gcosmo $ +// $Id: G4DNAScreenedRutherfordElasticModel.hh 97520 2016-06-03 14:23:17Z gcosmo $ // #ifndef G4DNAScreenedRutherfordElasticModel_h @@ -38,9 +38,7 @@ class G4DNAScreenedRutherfordElasticModel : public G4VEmModel { - public: - G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0, const G4String& nam = "DNAScreenedRutherfordElasticModel"); @@ -49,75 +47,77 @@ public: virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); virtual G4double CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* p, - G4double ekin, - G4double emin, - G4double emax); + const G4ParticleDefinition* p, + G4double ekin, + G4double emin, + G4double emax); virtual void SampleSecondaries(std::vector*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double tmin, - G4double maxEnergy); + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); - inline void SetKillBelowThreshold (G4double threshold); - G4double GetKillBelowThreshold () { return killBelowEnergy; } + inline void SetKillBelowThreshold (G4double threshold); inline void SelectFasterComputation(G4bool input); protected: - G4ParticleChangeForGamma* fParticleChangeForGamma; private: - - G4bool fasterCode; - - // Water density table - const std::vector* fpWaterDensity; - - G4double killBelowEnergy; - G4double lowEnergyLimit; + G4double lowEnergyLimit; G4double intermediateEnergyLimit; - G4double highEnergyLimit; - G4bool isInitialised; - G4int verboseLevel; + G4double highEnergyLimit; - // Cross section - - G4double RutherfordCrossSection(G4double energy, G4double z); - - G4double ScreeningFactor(G4double energy, G4double z); - - // Final state according to Brenner & Zaider - - G4double BrennerZaiderRandomizeCosTheta(G4double k); - G4double CalculatePolynomial(G4double k, std::vector& vec); + // -- Brenner & Zaider std::vector betaCoeff; std::vector deltaCoeff; std::vector gamma035_10Coeff; std::vector gamma10_100Coeff; std::vector gamma100_200Coeff; - - // Final state according to Screened Rutherford + + // -- Water density table + const std::vector* fpWaterDensity; + + G4int verboseLevel; + + G4bool isInitialised; + G4bool fasterCode; + + // -- Cross section + G4double RutherfordCrossSection(G4double energy, G4double z); + G4double ScreeningFactor(G4double energy, G4double z); + + // -- Final state according to Brenner & Zaider + G4double BrennerZaiderRandomizeCosTheta(G4double k); + G4double CalculatePolynomial(G4double k, std::vector& vec); + + // -- Final state according to Screened Rutherford G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z); // - - G4DNAScreenedRutherfordElasticModel & operator=(const G4DNAScreenedRutherfordElasticModel &right); - G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&); - + G4DNAScreenedRutherfordElasticModel& operator= + (const G4DNAScreenedRutherfordElasticModel &right); + G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&); }; -inline void G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double threshold) -{ - killBelowEnergy = threshold; - if (threshold < 9*CLHEP::eV) - G4Exception ("*** WARNING : the G4DNAScreenedRutherfordElasticModel class is not validated below 9 eV !","",JustWarning,"") ; +inline void +G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double) +{ + G4ExceptionDescription errMsg; + errMsg << "The method G4DNAScreenedRutherfordElasticModel::" + "SetKillBelowThreshold is deprecated"; + + G4Exception("G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold", + "deprecated", + JustWarning, + errMsg); } -inline void G4DNAScreenedRutherfordElasticModel::SelectFasterComputation (G4bool input) +inline void +G4DNAScreenedRutherfordElasticModel::SelectFasterComputation(G4bool input) { fasterCode = input; } diff --git a/source/processes/electromagnetic/dna/models/include/G4DNASmoluchowskiDiffusion.hh b/source/processes/electromagnetic/dna/models/include/G4DNASmoluchowskiDiffusion.hh index 565da91a2b..bb7cbb781f 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNASmoluchowskiDiffusion.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNASmoluchowskiDiffusion.hh @@ -65,6 +65,8 @@ double G4UniformRand() #define G4endl std::endl #endif +#include "G4Exp.hh" + class G4DNASmoluchowskiDiffusion { public: @@ -121,14 +123,14 @@ public: static double GetDifferential(double sTransform) { static double constant = -4./std::sqrt(3.141592653589793); - return sTransform*sTransform*std::exp(-sTransform*sTransform)*constant; // -4*sTransform*sTransform*exp(-sTransform*sTransform)/sqrt(3.141592653589793) + return sTransform*sTransform*G4Exp(-sTransform*sTransform)*constant; // -4*sTransform*sTransform*exp(-sTransform*sTransform)/sqrt(3.141592653589793) } static double GetDensityProbability(double r, double _time, double D) { static double my_pi = 3.141592653589793; static double constant = 4.*my_pi/std::pow(4.*my_pi, 1.5); - return r*r/std::pow(D * _time,1.5)*std::exp(-r*r/(4. * D * _time))*constant; + return r*r/std::pow(D * _time,1.5)*G4Exp(-r*r/(4. * D * _time))*constant; } //==================================================== @@ -302,7 +304,7 @@ public: static double GetCumulativeProbability(double sTransform) { static double constant = 2./std::sqrt(3.141592653589793); - return erfc(sTransform) + constant*sTransform*std::exp(-sTransform*sTransform); + return erfc(sTransform) + constant*sTransform*G4Exp(-sTransform*sTransform); } double GetInverseProbability(double proba) // returns sTransform diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh index 64ecbd2590..9241cb3113 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh @@ -35,89 +35,129 @@ class G4DNAUeharaScreenedRutherfordElasticModel : public G4VEmModel { - public: - G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "DNAUeharaScreenedRutherfordElasticModel"); + const G4String& nam = "DNAUeharaScreenedRutherfordElasticModel"); virtual ~G4DNAUeharaScreenedRutherfordElasticModel(); virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); virtual G4double CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* p, - G4double ekin, - G4double emin, - G4double emax); + const G4ParticleDefinition* p, + G4double ekin, + G4double emin, + G4double emax); virtual void SampleSecondaries(std::vector*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double tmin, - G4double maxEnergy); + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); - inline void SetKillBelowThreshold (G4double threshold); - G4double GetKillBelowThreshold () { return killBelowEnergy; } - - inline void SelectFasterComputation(G4bool input); - -protected: - - G4ParticleChangeForGamma* fParticleChangeForGamma; + inline void SelectFasterComputation(G4bool input); + + //--- + // kept for backward compatibility + inline void SetKillBelowThreshold (G4double threshold); + inline G4double GetKillBelowThreshold(); + inline void SelectHighEnergyLimit(G4double threshold); + //--- private: - - G4bool fasterCode; - - // Water density table - const std::vector* fpWaterDensity; - - G4double killBelowEnergy; - G4double lowEnergyLimit; G4double intermediateEnergyLimit; - G4double highEnergyLimit; - G4bool isInitialised; - G4int verboseLevel; - // Cross section - - G4double RutherfordCrossSection(G4double energy, G4double z); - - G4double ScreeningFactor(G4double energy, G4double z); - - // Final state according to Brenner & Zaider - - G4double BrennerZaiderRandomizeCosTheta(G4double k); - G4double CalculatePolynomial(G4double k, std::vector& vec); + // -- Brenner & Zaider std::vector betaCoeff; std::vector deltaCoeff; std::vector gamma035_10Coeff; std::vector gamma10_100Coeff; std::vector gamma100_200Coeff; - - // Final state according to Screened Rutherford - G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z); + // -- 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); + + // -- Final state according to Brenner & Zaider + G4double BrennerZaiderRandomizeCosTheta(G4double k); + G4double CalculatePolynomial(G4double k, + std::vector& vec); + + // -- Final state according to Screened Rutherford + G4double ScreenedRutherfordRandomizeCosTheta(G4double k, + G4double z); // - - G4DNAUeharaScreenedRutherfordElasticModel & operator=(const G4DNAUeharaScreenedRutherfordElasticModel &right); - G4DNAUeharaScreenedRutherfordElasticModel(const G4DNAUeharaScreenedRutherfordElasticModel&); - + G4DNAUeharaScreenedRutherfordElasticModel& + operator=(const G4DNAUeharaScreenedRutherfordElasticModel &right); + G4DNAUeharaScreenedRutherfordElasticModel( + const G4DNAUeharaScreenedRutherfordElasticModel&); }; + -inline void G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double threshold) +inline void G4DNAUeharaScreenedRutherfordElasticModel:: +SelectFasterComputation(G4bool input) { - killBelowEnergy = threshold; - if (threshold < 9*CLHEP::eV) - G4Exception ("*** WARNING : the G4DNAUeharaScreenedRutherfordElasticModel class is not validated below 9 eV !","",JustWarning,"") ; -} + fasterCode = input; +} -inline void G4DNAUeharaScreenedRutherfordElasticModel::SelectFasterComputation (G4bool input) -{ - fasterCode = input; -} +//--- +// kept for backward compatibility + +inline void +G4DNAUeharaScreenedRutherfordElasticModel::SelectHighEnergyLimit( + G4double threshold) +{ + if(threshold > 10. * CLHEP::keV) + { + G4Exception ( + "*** WARNING : the G4DNAUeharaScreenedRutherfordElasticModel class is " + "used above 10 keV !", + "", JustWarning, ""); + } + + SetHighEnergyLimit(threshold); +} + +inline void +G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold(G4double) +{ + G4ExceptionDescription errMsg; + errMsg << "*** WARNING : " + << "G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold" + << "is deprecated, the kill threshold won't be taken into account"; + + G4Exception ( + "G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold", + "DEPRECATED", JustWarning, errMsg); +} + +inline G4double +G4DNAUeharaScreenedRutherfordElasticModel::GetKillBelowThreshold() +{ + G4ExceptionDescription errMsg; + errMsg << "*** WARNING : " + << "G4DNAUeharaScreenedRutherfordElasticModel::GetKillBelowThreshold" + << "is deprecated, the returned value is nonsense"; + + G4Exception ( + "G4DNAUeharaScreenedRutherfordElasticModel::GetKillBelowThreshold", + "DEPRECATED", JustWarning, errMsg); + + return -1; +} +//--- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc b/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc index d27473789e..27096015c5 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc @@ -35,6 +35,7 @@ #include "G4DNAMolecularMaterial.hh" #include "G4DNABornAngle.hh" #include "G4DeltaAngle.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -377,7 +378,7 @@ G4double G4DNABornIonisationModel1::CrossSectionPerVolume(const G4Material* mate { G4double A = 1.39241700556072800000E-009 ; G4double B = -8.52610412942622630000E-002 ; - sigma = sigma * std::exp(A*(ekin/eV)+B); + sigma = sigma * G4Exp(A*(ekin/eV)+B); } // @@ -476,6 +477,10 @@ void G4DNABornIonisationModel1::SampleSecondaries(std::vectorFindOrBuildMaterial("G4_WATER"); - - killBelowEnergy = 7.4 * eV; - lowEnergyLimit = 0 * eV; - highEnergyLimit = 1. * MeV; - SetLowEnergyLimit(lowEnergyLimit); - SetHighEnergyLimit(highEnergyLimit); + SetLowEnergyLimit(7.4 * eV); + SetHighEnergyLimit(1. * MeV); verboseLevel = 0; // Verbosity scale: @@ -57,15 +55,21 @@ G4DNAChampionElasticModel::G4DNAChampionElasticModel(const G4ParticleDefinition* // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods +#ifdef CHAMPION_VERBOSE if (verboseLevel > 0) { - G4cout << "Champion Elastic model is constructed " << G4endl<< "Energy range: " - << lowEnergyLimit / eV << " eV - " - << highEnergyLimit / MeV << " MeV" - << G4endl; + G4cout << "Champion Elastic model is constructed " + << G4endl + << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / MeV << " MeV" + << G4endl; } +#endif + fParticleChangeForGamma = 0; fpMolWaterDensity = 0; + fpData = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -73,66 +77,64 @@ G4DNAChampionElasticModel::G4DNAChampionElasticModel(const G4ParticleDefinition* G4DNAChampionElasticModel::~G4DNAChampionElasticModel() { // For total cross section - - std::map >::iterator pos; - for (pos = tableData.begin(); pos != tableData.end(); ++pos) - { - G4DNACrossSectionDataSet* table = pos->second; - delete table; - } + if(fpData) delete fpData; // For final state - eVecm.clear(); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, +void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* particle, const G4DataVector& /*cuts*/) { - +#ifdef CHAMPION_VERBOSE if (verboseLevel > 3) - G4cout << "Calling G4DNAChampionElasticModel::Initialise()" << G4endl; + { + G4cout << "Calling G4DNAChampionElasticModel::Initialise()" << G4endl; + } +#endif + + if(particle->GetParticleName() != "e-") + { + G4Exception("G4DNAChampionElasticModel::Initialise", + "em0002", + FatalException, + "Model not applicable to particle type."); + } // Energy limits - if (LowEnergyLimit() < lowEnergyLimit) + if (LowEnergyLimit() < 7.4*eV) { - G4cout << "G4DNAChampionElasticModel: low energy limit increased from " << - LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; - SetLowEnergyLimit(lowEnergyLimit); + G4cout << "G4DNAChampionElasticModel: low energy limit increased from " + << LowEnergyLimit()/eV << " eV to " << 7.4 << " eV" + << G4endl; + SetLowEnergyLimit(7.4*eV); } - if (HighEnergyLimit() > highEnergyLimit) + if (HighEnergyLimit() > 1.*MeV) { - G4cout << "G4DNAChampionElasticModel: high energy limit decreased from " << - HighEnergyLimit()/MeV << " MeV to " << highEnergyLimit/MeV << " MeV" << G4endl; - SetHighEnergyLimit(highEnergyLimit); + G4cout << "G4DNAChampionElasticModel: high energy limit decreased from " + << HighEnergyLimit()/MeV << " MeV to " << 1. << " MeV" + << G4endl; + SetHighEnergyLimit(1.*MeV); } + if (isInitialised) { return; } + + // *** ELECTRON + // For total cross section // Reading of data files G4double scaleFactor = 1e-16*cm*cm; G4String fileElectron("dna/sigma_elastic_e_champion"); - G4ParticleDefinition* electronDef = G4Electron::ElectronDefinition(); - G4String electron; - - // *** ELECTRON - - // For total cross section - - electron = electronDef->GetParticleName(); - - tableFile[electron] = fileElectron; - - G4DNACrossSectionDataSet* tableE = - new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV,scaleFactor ); - tableE->LoadData(fileElectron); - tableData[electron] = tableE; + fpData = new G4DNACrossSectionDataSet(new G4LogLogInterpolation(), + eV, + scaleFactor ); + fpData->LoadData(fileElectron); // For final state @@ -140,8 +142,10 @@ void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* /*particl if (!path) { - G4Exception("G4ChampionElasticModel::Initialise","em0006", - FatalException,"G4LEDATA environment variable not set."); + G4Exception("G4ChampionElasticModel::Initialise", + "em0006", + FatalException, + "G4LEDATA environment variable not set."); return; } @@ -150,9 +154,16 @@ void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* /*particl std::ifstream eDiffCrossSection(eFullFileName.str().c_str()); if (!eDiffCrossSection) - G4Exception("G4DNAChampionElasticModel::Initialise","em0003", - FatalException, - "Missing data file:/dna/sigmadiff_cumulated_elastic_e_champion_hp.dat; please use G4EMLOW6.36 and above."); + { + G4ExceptionDescription errMsg; + errMsg << "Missing data file:/dna/sigmadiff_cumulated_elastic_e_champion_hp.dat; " + << "please use G4EMLOW6.36 and above."; + + G4Exception("G4DNAChampionElasticModel::Initialise", + "em0003", + FatalException, + errMsg); + } // March 25th, 2014 - Vaclav Stepan, Sebastien Incerti // Added clear for MT @@ -169,7 +180,7 @@ void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* /*particl { double tDummy; double eDummy; - eDiffCrossSection>>tDummy>>eDummy; + eDiffCrossSection >> tDummy >> eDummy; // SI : mandatory eVecm initialization @@ -179,32 +190,34 @@ void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* /*particl eVecm[tDummy].push_back(0.); } - eDiffCrossSection>>eDiffCrossSectionData[tDummy][eDummy]; + eDiffCrossSection >> eDiffCrossSectionData[tDummy][eDummy]; if (eDummy != eVecm[tDummy].back()) eVecm[tDummy].push_back(eDummy); - } // End final state - - if (verboseLevel > 2) - G4cout << "Loaded cross section files for Champion Elastic model" << G4endl; - - if( verboseLevel>0 ) +#ifdef CHAMPION_VERBOSE + if (verboseLevel>0) { + if (verboseLevel > 2) + { + G4cout << "Loaded cross section files for Champion Elastic model" << G4endl; + } + G4cout << "Champion Elastic model is initialized " << G4endl - << "Energy range: " - << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / MeV << " MeV" - << G4endl; + << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / MeV << " MeV" + << G4endl; } +#endif // Initialize water density pointer G4DNAMolecularMaterial::Instance()->Initialize(); - fpMolWaterDensity = G4DNAMolecularMaterial::Instance()->GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); + + fpMolWaterDensity = G4DNAMolecularMaterial::Instance()-> + GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); - if (isInitialised) - { return;} fParticleChangeForGamma = GetParticleChangeForGamma(); isInitialised = true; @@ -212,66 +225,54 @@ void G4DNAChampionElasticModel::Initialise(const G4ParticleDefinition* /*particl //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4DNAChampionElasticModel::CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* p, - G4double ekin, - G4double, - G4double) +G4double +G4DNAChampionElasticModel:: +CrossSectionPerVolume(const G4Material* material, +#ifdef CHAMPION_VERBOSE + const G4ParticleDefinition* p, +#else + const G4ParticleDefinition*, +#endif + G4double ekin, + G4double, + G4double) { +#ifdef CHAMPION_VERBOSE if (verboseLevel > 3) - G4cout << "Calling CrossSectionPerVolume() of G4DNAChampionElasticModel" - << G4endl; + { + G4cout << "Calling CrossSectionPerVolume() of G4DNAChampionElasticModel" + << G4endl; + } +#endif // Calculate total cross section for model - G4double sigma=0; - + G4double sigma = 0.; G4double waterDensity = (*fpMolWaterDensity)[material->GetIndex()]; if(waterDensity!= 0.0) -// if (material == nistwater || material->GetBaseMaterial() == nistwater) { - const G4String& particleName = p->GetParticleName(); - - if (ekin < highEnergyLimit) + if (ekin < HighEnergyLimit() && ekin >= LowEnergyLimit()) { //SI : XS must not be zero otherwise sampling of secondaries method ignored - if (ekin < killBelowEnergy) return DBL_MAX; - // - - 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(ekin); - } - } - else - { - G4Exception("G4DNAChampionElasticModel::ComputeCrossSectionPerVolume","em0002", - FatalException,"Model not applicable to particle type."); - } + // + sigma = fpData->FindValue(ekin); } +#ifdef CHAMPION_VERBOSE if (verboseLevel > 2) { G4cout << "__________________________________" << G4endl; G4cout << "=== G4DNAChampionElasticModel - XS INFO START" << G4endl; - G4cout << "=== Kinetic energy(eV)=" << ekin/eV << " particle : " << particleName << G4endl; + G4cout << "=== Kinetic energy(eV)=" << ekin/eV << " particle : " << p->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 << "=== G4DNAChampionElasticModel - XS INFO END" << G4endl; } - +#endif } return sigma*waterDensity; -// return sigma*material->GetAtomicNumDensityVector()[1]; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -283,22 +284,17 @@ void G4DNAChampionElasticModel::SampleSecondaries(std::vector 3) - G4cout << "Calling SampleSecondaries() of G4DNAChampionElasticModel" << G4endl; + { + G4cout << "Calling SampleSecondaries() of G4DNAChampionElasticModel" << G4endl; + } +#endif G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); - if (electronEnergy0 < killBelowEnergy) +// if (electronEnergy0 < HighEnergyLimit()) // necessaire ? { - fParticleChangeForGamma->SetProposedKineticEnergy(0.); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(electronEnergy0); - return; - } - - if (electronEnergy0>= killBelowEnergy && electronEnergy0 < highEnergyLimit) - { - G4double cosTheta = RandomizeCosTheta(electronEnergy0); G4double phi = 2. * pi * G4UniformRand(); @@ -317,13 +313,13 @@ void G4DNAChampionElasticModel::SampleSecondaries(std::vectorProposeMomentumDirection(zPrimeVers.unit()); fParticleChangeForGamma->SetProposedKineticEnergy(electronEnergy0); + // necessaire ? } - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4DNAChampionElasticModel::Theta(G4ParticleDefinition * particleDefinition, +G4double G4DNAChampionElasticModel::Theta(//G4ParticleDefinition * particleDefinition, G4double k, G4double integrDiff) { @@ -339,7 +335,7 @@ G4double G4DNAChampionElasticModel::Theta(G4ParticleDefinition * particleDefinit G4double xs21 = 0; G4double xs22 = 0; - if (particleDefinition == G4Electron::ElectronDefinition()) +// if (particleDefinition == G4Electron::ElectronDefinition()) // necessaire ? { std::vector::iterator t2 = std::upper_bound(eTdummyVec.begin(), eTdummyVec.end(), k); @@ -386,7 +382,7 @@ G4double G4DNAChampionElasticModel::LinLogInterpolate(G4double e1, { G4double d1 = std::log(xs1); G4double d2 = std::log(xs2); - G4double value = std::exp(d1 + (d2 - d1) * (e - e1) / (e2 - e1)); + G4double value = G4Exp(d1 + (d2 - d1) * (e - e1) / (e2 - e1)); return value; } @@ -468,7 +464,8 @@ G4double G4DNAChampionElasticModel::RandomizeCosTheta(G4double k) G4double theta = 0.; G4double cosTheta = 0.; - theta = Theta(G4Electron::ElectronDefinition(), k / eV, integrdiff); + theta = Theta(//G4Electron::ElectronDefinition(), + k / eV, integrdiff); cosTheta = std::cos(theta * pi / 180); @@ -477,15 +474,13 @@ G4double G4DNAChampionElasticModel::RandomizeCosTheta(G4double k) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAChampionElasticModel::SetKillBelowThreshold(G4double threshold) +void G4DNAChampionElasticModel::SetKillBelowThreshold(G4double) { - killBelowEnergy = threshold; - - if (threshold < 7.4 * eV) - { - G4cout<< "*** WARNING : the G4DNAChampionElasticModel class is not " - "activated below 7.4 eV !" << G4endl; - G4cout<< "*** NOTE: if you are using G4EmDNAChemistry, do not worry, this is" - " the expected behavior" << G4endl; - } + G4ExceptionDescription errMsg; + errMsg << "The method G4DNAChampionElasticModel::SetKillBelowThreshold is deprecated"; + + G4Exception("G4DNAChampionElasticModel::SetKillBelowThreshold", + "deprecated", + JustWarning, + errMsg); } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc index 1a106aee35..0eae4ce40d 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNADingfelderChargeDecreaseModel.cc 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNADingfelderChargeDecreaseModel.cc 96060 2016-03-11 12:58:04Z gcosmo $ // #include "G4DNADingfelderChargeDecreaseModel.hh" diff --git a/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeIncreaseModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeIncreaseModel.cc index 3136058a19..ea482c096a 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeIncreaseModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeIncreaseModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNADingfelderChargeIncreaseModel.cc 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNADingfelderChargeIncreaseModel.cc 96060 2016-03-11 12:58:04Z gcosmo $ // #include "G4DNADingfelderChargeIncreaseModel.hh" diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc index c4ce779ed4..d0db59bef0 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc @@ -380,6 +380,10 @@ SampleSecondaries(std::vector* fvect, G4double bindingEnergy = 0; bindingEnergy = waterStructure.IonisationEnergy(ionizationShell); + //SI: additional protection if tcs interpolation method is modified + if (kSetProposedKineticEnergy(particleEnergy0 - depositEnergyCM); + //SI: added protection particleEnergy0 >= depositEnergyCM + if (!statCode && (particleEnergy0 >= depositEnergyCM) ) + + fParticleChangeForGamma->SetProposedKineticEnergy(particleEnergy0 - depositEnergyCM); else fParticleChangeForGamma->SetProposedKineticEnergy(particleEnergy0); @@ -437,7 +441,7 @@ G4DNAIonElasticModel::LinLogInterpolate (G4double e1, G4double e2, G4double e, { G4double d1 = std::log(xs1); G4double d2 = std::log(xs2); - G4double value = std::exp(d1 + (d2 - d1) * (e - e1) / (e2 - e1)); + G4double value = G4Exp(d1 + (d2 - d1) * (e - e1) / (e2 - e1)); return value; } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAMeltonAttachmentModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAMeltonAttachmentModel.cc index 1d8c0c5cc1..55064efb87 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAMeltonAttachmentModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAMeltonAttachmentModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAMeltonAttachmentModel.cc 85244 2014-10-27 08:24:13Z gcosmo $ +// $Id: G4DNAMeltonAttachmentModel.cc 96606 2016-04-25 13:33:42Z gcosmo $ // // Created by Z. Francis @@ -37,20 +37,18 @@ using namespace std; +//#define MELTON_VERBOSE // prevent checking conditions at run time + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(const G4ParticleDefinition*, const G4String& nam) : G4VEmModel(nam), isInitialised(false) { -// nistwater = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER"); fpWaterDensity = 0; - lowEnergyLimit = 4 * eV; - lowEnergyLimitOfModel = 4 * eV; - highEnergyLimit = 13 * eV; - SetLowEnergyLimit(lowEnergyLimit); - SetHighEnergyLimit(highEnergyLimit); + SetLowEnergyLimit(4.*eV); + SetHighEnergyLimit(13.*eV); verboseLevel = 0; // Verbosity scale: @@ -60,197 +58,201 @@ G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(const G4ParticleDefinitio // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods +#ifdef MELTON_VERBOSE if (verboseLevel > 0) { - G4cout << "Melton Attachment model is constructed " << G4endl<< "Energy range: " - << lowEnergyLimit / eV << " eV - " - << highEnergyLimit / eV << " eV" - << G4endl; + G4cout << "Melton Attachment model is constructed " + << G4endl + << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / eV << " eV" + << G4endl; } +#endif + fParticleChangeForGamma = 0; fDissociationFlag = true; + fData = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4DNAMeltonAttachmentModel::~G4DNAMeltonAttachmentModel() { - // For total cross section - - std::map >::iterator pos; - - for (pos = tableData.begin(); pos != tableData.end(); ++pos) - { - G4DNACrossSectionDataSet* table = pos->second; - delete table; - } - - // For final state - + if(fData) delete fData; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAMeltonAttachmentModel::Initialise(const G4ParticleDefinition* /*particle*/, +void G4DNAMeltonAttachmentModel::Initialise(const G4ParticleDefinition* particle, const G4DataVector& /*cuts*/) { - - if (verboseLevel > 3) G4cout +#ifdef MELTON_VERBOSE + if (verboseLevel > 3) + G4cout << "Calling G4DNAMeltonAttachmentModel::Initialise()" << G4endl; +#endif + // ONLY ELECTRON + + if(particle->GetParticleName() != "e-") + { + G4Exception("G4DNAMeltonAttachmentModel::Initialise", + "em0002", + FatalException, + "Model not applicable to particle type."); + } + // Energy limits - if (LowEnergyLimit() < lowEnergyLimit) + if (LowEnergyLimit() < 4.*eV) { - G4cout << "G4DNAMeltonAttachmentModel: low energy limit increased from " << - LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; - SetLowEnergyLimit(lowEnergyLimit); + G4ExceptionDescription errMsg; + errMsg << "G4DNAMeltonAttachmentModel: low energy limit increased from " << + LowEnergyLimit()/eV << " eV to " << 4. << " eV" << G4endl; + + G4Exception("G4DNAMeltonAttachmentModel::Initialise", + "Melton_LowerEBoundary", + JustWarning, + errMsg); + + SetLowEnergyLimit(4*eV); } - if (HighEnergyLimit() > highEnergyLimit) + if (HighEnergyLimit() > 13.*eV) { - G4cout << "G4DNAMeltonAttachmentModel: high energy limit decreased from " << - HighEnergyLimit()/eV << " eV to " << highEnergyLimit/eV << " eV" << G4endl; - SetHighEnergyLimit(highEnergyLimit); + G4ExceptionDescription errMsg; + errMsg << "G4DNAMeltonAttachmentModel: high energy limit decreased from " << + HighEnergyLimit()/eV << " eV to " << 13. << " eV" << G4endl; + + G4Exception("G4DNAMeltonAttachmentModel::Initialise", + "Melton_HigherEBoundary", + JustWarning, + errMsg); + + SetHighEnergyLimit(13.*eV); } // Reading of data files - G4double scaleFactor = 1e-18*cm*cm; - - G4String fileElectron("dna/sigma_attachment_e_melton"); - - G4ParticleDefinition* electronDef = G4Electron::ElectronDefinition(); - G4String electron; - - // ELECTRON + G4double scaleFactor = 1e-18*cm2; // For total cross section + G4String fileElectron("dna/sigma_attachment_e_melton"); - electron = electronDef->GetParticleName(); + fData = new G4DNACrossSectionDataSet(new G4LogLogInterpolation(), + eV, scaleFactor); + fData->LoadData(fileElectron); - tableFile[electron] = fileElectron; - G4DNACrossSectionDataSet* tableE = - new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV,scaleFactor ); - tableE->LoadData(fileElectron); - tableData[electron] = tableE; - - // - - if (verboseLevel > 2) - G4cout << "Loaded cross section data for Melton Attachment model" << G4endl; - - if( verboseLevel>0 ) +#ifdef MELTON_VERBOSE + if( verboseLevel >0) { + if (verboseLevel > 2) + { + G4cout << "Loaded cross section data for Melton Attachment model" << G4endl; + } + G4cout << "Melton Attachment model is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / eV << " eV - " << HighEnergyLimit() / eV << " eV" << G4endl; } +#endif + // Initialize water density pointer fpWaterDensity = G4DNAMolecularMaterial::Instance()-> GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); if (isInitialised) - { return;} + { + return; + } fParticleChangeForGamma = GetParticleChangeForGamma(); isInitialised = true; - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4DNAMeltonAttachmentModel::CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* particleDefinition, - G4double ekin, - G4double, - G4double) + const G4ParticleDefinition*, + G4double ekin, + G4double, + G4double) { - if (verboseLevel > 3) G4cout +#ifdef MELTON_VERBOSE + if (verboseLevel > 3) + G4cout << "Calling CrossSectionPerVolume() of G4DNAMeltonAttachmentModel" << G4endl; +#endif // Calculate total cross section for model - G4double sigma=0; + G4double sigma = 0.; G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; - if(waterDensity!= 0.0) - // if (material == nistwater || material->GetBaseMaterial() == nistwater) + if(waterDensity != 0.0) { - const G4String& particleName = particleDefinition->GetParticleName(); - - if (ekin >= lowEnergyLimit && ekin < highEnergyLimit) + if (ekin >= LowEnergyLimit() && ekin < HighEnergyLimit()) + // necessaire ? { - - 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(ekin); - } - } - else - { - G4Exception("G4DNAMeltonAttachmentModel::ComputeCrossSectionPerVolume", - "em0002", - FatalException,"Model not applicable to particle type."); - } + sigma = fData->FindValue(ekin); } +#ifdef MELTON_VERBOSE if (verboseLevel > 2) { G4cout << "__________________________________" << G4endl; G4cout << "=== G4DNAMeltonAttachmentModel - XS INFO START" << G4endl; G4cout << "--- Kinetic energy(eV)=" << ekin/eV - << " particle : " << particleDefinition->GetParticleName() << G4endl; + << " particle : " << particleDefinition->GetParticleName() + << G4endl; G4cout << "--- Cross section per water molecule (cm^2)=" - << sigma/cm/cm << G4endl; + << 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; + << sigma*waterDensity/(1./cm) << G4endl; G4cout << "--- G4DNAMeltonAttachmentModel - XS INFO END" << G4endl; } - +#endif } // if water return sigma*waterDensity; -// return sigma*material->GetAtomicNumDensityVector()[1]; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAMeltonAttachmentModel::SampleSecondaries(std::vector* /*fvect*/, - const G4MaterialCutsCouple* /*couple*/, - const G4DynamicParticle* aDynamicElectron, - G4double, - G4double) +void +G4DNAMeltonAttachmentModel:: +SampleSecondaries(std::vector* /*fvect*/, + const G4MaterialCutsCouple* /*couple*/, + const G4DynamicParticle* aDynamicElectron, + G4double, + G4double) { - - if (verboseLevel > 3) G4cout - << "Calling SampleSecondaries() of G4DNAMeltonAttachmentModel" << G4endl; - - // Electron is killed - - G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); - fParticleChangeForGamma->SetProposedKineticEnergy(0.); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(electronEnergy0); - - if(fDissociationFlag) - { - G4DNAChemistryManager::Instance()->CreateWaterMolecule(eDissociativeAttachment,-1, - fParticleChangeForGamma->GetCurrentTrack()); - } - return; - } + +#ifdef MELTON_VERBOSE + if (verboseLevel > 3) + G4cout + << "Calling SampleSecondaries() of G4DNAMeltonAttachmentModel" << G4endl; +#endif + + // Electron is killed + + G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); + fParticleChangeForGamma->SetProposedKineticEnergy(0.); + fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); + fParticleChangeForGamma->ProposeLocalEnergyDeposit(electronEnergy0); + + if(fDissociationFlag) + { + G4DNAChemistryManager::Instance()-> + CreateWaterMolecule(eDissociativeAttachment, + -1, + fParticleChangeForGamma->GetCurrentTrack()); + } + return; +} diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAMillerGreenExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAMillerGreenExcitationModel.cc index b44e442084..94b289dd0b 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAMillerGreenExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAMillerGreenExcitationModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAMillerGreenExcitationModel.cc 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNAMillerGreenExcitationModel.cc 95948 2016-03-03 10:40:33Z gcosmo $ // GEANT4 tag $Name: $ // @@ -31,6 +31,7 @@ #include "G4SystemOfUnits.hh" #include "G4DNAChemistryManager.hh" #include "G4DNAMolecularMaterial.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -598,7 +599,7 @@ G4double G4DNAMillerGreenExcitationModel::S_1s(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (7) G4double r = R(t, energyTransferred, _slaterEffectiveCharge, shellNumber); - G4double value = 1. - std::exp(-2 * r) * ( ( 2. * r + 2. ) * r + 1. ); + G4double value = 1. - G4Exp(-2 * r) * ( ( 2. * r + 2. ) * r + 1. ); return value; } @@ -615,7 +616,7 @@ G4double G4DNAMillerGreenExcitationModel::S_2s(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (8) G4double r = R(t, energyTransferred, _slaterEffectiveCharge, shellNumber); - G4double value = 1. - std::exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.); + G4double value = 1. - G4Exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.); return value; @@ -632,7 +633,7 @@ G4double G4DNAMillerGreenExcitationModel::S_2p(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (9) G4double r = R(t, energyTransferred, _slaterEffectiveCharge, shellNumber); - G4double value = 1. - std::exp(-2 * r) * (((( 2./3. * r + 4./3.) * r + 2.) * r + 2.) * r + 1.); + G4double value = 1. - G4Exp(-2 * r) * (((( 2./3. * r + 4./3.) * r + 2.) * r + 2.) * r + 1.); return value; } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAOneStepThermalizationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAOneStepThermalizationModel.cc index af9e89d8e3..f8017a5d21 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAOneStepThermalizationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAOneStepThermalizationModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAOneStepThermalizationModel.cc 94218 2015-11-09 08:24:48Z gcosmo $ +// $Id: G4DNAOneStepThermalizationModel.cc 96861 2016-05-13 13:43:04Z gcosmo $ // // Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr) // @@ -41,7 +41,6 @@ #include "G4SystemOfUnits.hh" #include "G4DNAWaterExcitationStructure.hh" #include "G4ParticleChangeForGamma.hh" -#include "G4Electron.hh" #include "G4NistManager.hh" #include "G4DNAChemistryManager.hh" #include "G4DNAMolecularMaterial.hh" @@ -49,6 +48,9 @@ #include "G4Navigator.hh" #include "G4TransportationManager.hh" #include "G4ITNavigator.hh" +#include "G4Exp.hh" + +//#define MODEL_VERBOSE G4DNAOneStepThermalizationModel:: G4DNAOneStepThermalizationModel(const G4ParticleDefinition*, @@ -82,18 +84,18 @@ void G4DNAOneStepThermalizationModel:: Initialise(const G4ParticleDefinition* particleDefinition, const G4DataVector&) { -#ifdef G4VERBOSE +#ifdef MODEL_VERBOSE if(fVerboseLevel) G4cout << "Calling G4DNAOneStepThermalizationModel::Initialise()" << G4endl; #endif - if (particleDefinition != G4Electron::ElectronDefinition()) + if (particleDefinition->GetParticleName() != "e-") { - G4ExceptionDescription exceptionDescription; - exceptionDescription << "G4DNAOneStepThermalizationModel can only be applied " - "to electrons"; + G4ExceptionDescription errMsg; + errMsg << "G4DNAOneStepThermalizationModel can only be applied " + "to electrons"; G4Exception("G4DNAOneStepThermalizationModel::CrossSectionPerVolume", "G4DNAOneStepThermalizationModel001", - FatalErrorInArgument,exceptionDescription); + FatalErrorInArgument,errMsg); return; } @@ -126,7 +128,7 @@ CrossSectionPerVolume(const G4Material* material, G4double, G4double) { -#ifdef G4VERBOSE +#ifdef MODEL_VERBOSE if(fVerboseLevel > 1) G4cout << "Calling CrossSectionPerVolume() of G4DNAOneStepThermalizationModel" << G4endl; @@ -141,10 +143,7 @@ CrossSectionPerVolume(const G4Material* material, if(waterDensity!= 0.0) { -// if (ekin <= HighEnergyLimit()) // already tested - { - return DBL_MAX; - } + return DBL_MAX; } return 0.; } @@ -160,7 +159,7 @@ RadialDistributionOfProducts(G4double expectationValue) const G4double fMaxValue = std::sqrt(2. / 3.14) * 1. / (sigma * sigma * sigma) * (XValueForfMax * XValueForfMax) - * std::exp(-1. / 2. * (XValueForfMax * XValueForfMax) + * G4Exp(-1. / 2. * (XValueForfMax * XValueForfMax) / (sigma * sigma)); G4double R; @@ -181,7 +180,7 @@ RadialDistributionOfProducts(G4double expectationValue) const R = expectationValue + sign*3.*sigma* G4UniformRand(); G4double f = std::sqrt(2./3.14) * 1/std::pow(sigma, 3) - * R*R * std::exp(-1./2. * R*R/(sigma*sigma)); + * R*R * G4Exp(-1./2. * R*R/(sigma*sigma)); if(aRandomfValue < f) { @@ -213,62 +212,68 @@ SampleSecondaries(std::vector*, G4double, G4double) { -#ifdef G4VERBOSE +#ifdef MODEL_VERBOSE if(fVerboseLevel) G4cout << "Calling SampleSecondaries() of G4DNAOneStepThermalizationModel" << G4endl; #endif - G4double k = particle->GetKineticEnergy(); + + G4double k = particle->GetKineticEnergy(); if (k <= HighEnergyLimit()) { G4double k_eV = k/eV; - - G4double r_mean = - (-0.003*std::pow(k_eV,6) - + 0.0749*std::pow(k_eV,5) - - 0.7197*std::pow(k_eV,4) - + 3.1384*std::pow(k_eV,3) - - 5.6926*std::pow(k_eV,2) - + 5.6237*k_eV - - 0.7883)*nanometer; - - G4ThreeVector displacement = RadialDistributionOfProducts (r_mean); - - //______________________________________________________________ - const G4Track * theIncomingTrack = - fParticleChangeForGamma->GetCurrentTrack(); - G4ThreeVector finalPosition(theIncomingTrack->GetPosition()+displacement); - - fNavigator->SetWorldVolume(theIncomingTrack->GetTouchable()-> - GetVolume(theIncomingTrack->GetTouchable()-> - GetHistoryDepth())); - - double displacementMag = displacement.mag(); - double safety = DBL_MAX; - G4ThreeVector direction = displacement/displacementMag; - - fNavigator->ResetHierarchyAndLocate(theIncomingTrack->GetPosition(), - direction, - *((G4TouchableHistory*) + + fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); + fParticleChangeForGamma->ProposeLocalEnergyDeposit(k); + + if(G4DNAChemistryManager::IsActivated()) + { + + G4double r_mean = + (-0.003*std::pow(k_eV,6) + + 0.0749*std::pow(k_eV,5) + - 0.7197*std::pow(k_eV,4) + + 3.1384*std::pow(k_eV,3) + - 5.6926*std::pow(k_eV,2) + + 5.6237*k_eV + - 0.7883)*nanometer; + + G4ThreeVector displacement = RadialDistributionOfProducts (r_mean); + + //______________________________________________________________ + const G4Track * theIncomingTrack = + fParticleChangeForGamma->GetCurrentTrack(); + G4ThreeVector finalPosition(theIncomingTrack->GetPosition()+displacement); + + fNavigator->SetWorldVolume(theIncomingTrack->GetTouchable()-> + GetVolume(theIncomingTrack->GetTouchable()-> + GetHistoryDepth())); + + double displacementMag = displacement.mag(); + double safety = DBL_MAX; + G4ThreeVector direction = displacement/displacementMag; + + fNavigator->ResetHierarchyAndLocate(theIncomingTrack->GetPosition(), + direction, + *((G4TouchableHistory*) theIncomingTrack->GetTouchable())); - - fNavigator->ComputeStep(theIncomingTrack->GetPosition(), - displacement/displacementMag, - displacementMag, - safety); - - if(safety <= displacementMag) - { - finalPosition = theIncomingTrack->GetPosition() - + (displacement/displacementMag)*safety*0.80; - } - - G4DNAChemistryManager::Instance()->CreateSolvatedElectron(theIncomingTrack, - &finalPosition); - - fParticleChangeForGamma->SetProposedKineticEnergy(25.e-3*eV); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(k); - } + + fNavigator->ComputeStep(theIncomingTrack->GetPosition(), + displacement/displacementMag, + displacementMag, + safety); + + if(safety <= displacementMag) + { + finalPosition = theIncomingTrack->GetPosition() + + (displacement/displacementMag)*safety*0.80; + } + + G4DNAChemistryManager::Instance()->CreateSolvatedElectron(theIncomingTrack, + &finalPosition); + + fParticleChangeForGamma->SetProposedKineticEnergy(25.e-3*eV); + } + } } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc index c30bc8c84f..1f90a621a2 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNARuddIonisationExtendedModel.cc 93001 2015-09-28 15:00:44Z gcosmo $ +// $Id: G4DNARuddIonisationExtendedModel.cc 96060 2016-03-11 12:58:04Z gcosmo $ // GEANT4 tag $Name: $ // // Modified by Z. Francis, S. Incerti to handle HZE @@ -41,6 +41,7 @@ #include "G4IonTable.hh" #include "G4DNARuddAngle.hh" #include "G4DeltaAngle.hh" +#include "G4Exp.hh" // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -763,6 +764,10 @@ void G4DNARuddIonisationExtendedModel::SampleSecondaries(std::vectorGetAtomicNumber(); G4double x = 100.*std::sqrt(beta2)/std::pow(Z,(2./3.)); - G4double Zeffion = Z*(1.-std::exp(-1.316*x+0.112*x*x-0.0650*x*x*x)); + G4double Zeffion = Z*(1.-G4Exp(-1.316*x+0.112*x*x-0.0650*x*x*x)); rejection_term*=Zeffion*Zeffion; } @@ -1209,7 +1214,7 @@ G4double G4DNARuddIonisationExtendedModel::S_1s(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (7) G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber); - G4double value = 1. - std::exp(-2 * r) * ( ( 2. * r + 2. ) * r + 1. ); + G4double value = 1. - G4Exp(-2 * r) * ( ( 2. * r + 2. ) * r + 1. ); return value; } @@ -1225,7 +1230,7 @@ G4double G4DNARuddIonisationExtendedModel::S_2s(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (8) G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber); - G4double value = 1. - std::exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.); + G4double value = 1. - G4Exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.); return value; @@ -1242,7 +1247,7 @@ G4double G4DNARuddIonisationExtendedModel::S_2p(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (9) G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber); - G4double value = 1. - std::exp(-2 * r) * (((( 2./3. * r + 4./3.) * r + 2.) * r + 2.) * r + 1.); + G4double value = 1. - G4Exp(-2 * r) * (((( 2./3. * r + 4./3.) * r + 2.) * r + 2.) * r + 1.); return value; } @@ -1277,7 +1282,7 @@ G4double G4DNARuddIonisationExtendedModel::CorrectionFactor(G4ParticleDefinition { G4double value = (std::log10(k/eV)-4.2)/0.5; // The following values are provided by M. Dingfelder (priv. comm) - return((0.6/(1+std::exp(value))) + 0.9); + return((0.6/(1+G4Exp(value))) + 0.9); } else { diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc index 87561dc000..fe75740595 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNARuddIonisationModel.cc 92859 2015-09-18 07:58:30Z gcosmo $ +// $Id: G4DNARuddIonisationModel.cc 96060 2016-03-11 12:58:04Z gcosmo $ // GEANT4 tag $Name: $ // @@ -36,6 +36,7 @@ #include "G4DNAMolecularMaterial.hh" #include "G4DNARuddAngle.hh" #include "G4DeltaAngle.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -491,6 +492,10 @@ void G4DNARuddIonisationModel::SampleSecondaries(std::vector G4double bindingEnergy = 0; bindingEnergy = waterStructure.IonisationEnergy(ionizationShell); + //SI: additional protection if tcs interpolation method is modified + if (kGetIon("hydrogen")) && (ionizationLevelIndex == 4)) @@ -836,7 +841,7 @@ G4double G4DNARuddIonisationModel::DifferentialCrossSection(G4ParticleDefinition sigma = Gj[j] * (S / waterStructure.IonisationEnergy(ionizationLevelIndex)) * ((F1 + w * F2) / (std::pow((1. + w), 3) - * (1. + std::exp(alphaConst * (w - wc) / v)))); + * (1. + G4Exp(alphaConst * (w - wc) / v)))); } // if ( particleDefinition == G4Proton::ProtonDefinition() // || particleDefinition == instance->GetIon("hydrogen") @@ -887,14 +892,14 @@ G4double G4DNARuddIonisationModel::DifferentialCrossSection(G4ParticleDefinition sigma = Gj[j] * (S / Bj[ionizationLevelIndex]) * ((F1 + w * F2) / (std::pow((1. + w), 3) - * (1. + std::exp(alphaConst * (w - wc) / v)))); + * (1. + G4Exp(alphaConst * (w - wc) / v)))); if (j == 4) sigma = Gj[j] * (S / waterStructure.IonisationEnergy(ionizationLevelIndex)) * ((F1 + w * F2) / (std::pow((1. + w), 3) - * (1. + std::exp(alphaConst * (w - wc) / v)))); + * (1. + G4Exp(alphaConst * (w - wc) / v)))); G4double zEff = particleDefinition->GetPDGCharge() / eplus + particleDefinition->GetLeptonNumber(); @@ -923,7 +928,7 @@ G4double G4DNARuddIonisationModel::S_1s(G4double t, // Dingfelder, in Chattanooga 2005 proceedings, formula (7) G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber); - G4double value = 1. - std::exp(-2 * r) * ((2. * r + 2.) * r + 1.); + G4double value = 1. - G4Exp(-2 * r) * ((2. * r + 2.) * r + 1.); return value; } @@ -940,7 +945,7 @@ G4double G4DNARuddIonisationModel::S_2s(G4double t, G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber); G4double value = 1. - - std::exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.); + - G4Exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.); return value; @@ -958,7 +963,7 @@ G4double G4DNARuddIonisationModel::S_2p(G4double t, G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber); G4double value = 1. - - std::exp(-2 * r) + - G4Exp(-2 * r) * ((((2. / 3. * r + 4. / 3.) * r + 2.) * r + 2.) * r + 1.); return value; @@ -998,7 +1003,7 @@ G4double G4DNARuddIonisationModel::CorrectionFactor(G4ParticleDefinition* partic { G4double value = (std::log10(k / eV) - 4.2) / 0.5; // The following values are provided by M. Dingfelder (priv. comm) - return ((0.6 / (1 + std::exp(value))) + 0.9); + return ((0.6 / (1 + G4Exp(value))) + 0.9); } else { return (1.); diff --git a/source/processes/electromagnetic/dna/models/src/G4DNASancheExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNASancheExcitationModel.cc index 44db84d1f3..92a01e8670 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNASancheExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNASancheExcitationModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNASancheExcitationModel.cc 93616 2015-10-27 08:59:17Z gcosmo $ +// $Id: G4DNASancheExcitationModel.cc 96606 2016-04-25 13:33:42Z gcosmo $ // // Created by Z. Francis @@ -36,6 +36,8 @@ using namespace std; +//#define SANCHE_VERBOSE + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4DNASancheExcitationModel::G4DNASancheExcitationModel(const G4ParticleDefinition*, @@ -44,10 +46,8 @@ G4DNASancheExcitationModel::G4DNASancheExcitationModel(const G4ParticleDefinitio { fpWaterDensity = 0; - lowEnergyLimit = 2 * eV; - highEnergyLimit = 100 * eV; - SetLowEnergyLimit(lowEnergyLimit); - SetHighEnergyLimit(highEnergyLimit); + SetLowEnergyLimit(2.*eV); + SetHighEnergyLimit(100 * eV); nLevels = 9; verboseLevel = 0; @@ -58,13 +58,18 @@ G4DNASancheExcitationModel::G4DNASancheExcitationModel(const G4ParticleDefinitio // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods +#ifdef SANCHE_VERBOSE if (verboseLevel > 0) { - G4cout << "Sanche Excitation model is constructed " << G4endl<< "Energy range: " - << lowEnergyLimit / eV << " eV - " - << highEnergyLimit / eV << " eV" - << G4endl; + G4cout << "Sanche Excitation model is constructed " + << G4endl + << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / eV << " eV" + << G4endl; } +#endif + fParticleChangeForGamma = 0; fpWaterDensity = 0; } @@ -77,31 +82,38 @@ G4DNASancheExcitationModel::~G4DNASancheExcitationModel() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4DNASancheExcitationModel::Initialise(const G4ParticleDefinition* /*particle*/, - const G4DataVector& /*cuts*/) +void +G4DNASancheExcitationModel:: +Initialise(const G4ParticleDefinition* /*particle*/, + const G4DataVector& /*cuts*/) { - + +#ifdef SANCHE_VERBOSE if (verboseLevel > 3) - G4cout << "Calling G4DNASancheExcitationModel::Initialise()" << G4endl; - + { + G4cout << "Calling G4DNASancheExcitationModel::Initialise()" + << G4endl; + } +#endif + // Energy limits - if (LowEnergyLimit() < lowEnergyLimit) + if (LowEnergyLimit() < 2.*eV) { - G4cout << "G4DNASancheExcitationModel: low energy limit increased from " << - LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; - SetLowEnergyLimit(lowEnergyLimit); + G4Exception("*** WARNING : the G4DNASancheExcitationModel class is not " + "validated below 2 eV !", + "", JustWarning, ""); } - if (HighEnergyLimit() > highEnergyLimit) + if (HighEnergyLimit() > 100.*eV) { G4cout << "G4DNASancheExcitationModel: high energy limit decreased from " << - HighEnergyLimit()/eV << " eV to " << highEnergyLimit/eV << " eV" << G4endl; - SetHighEnergyLimit(highEnergyLimit); + HighEnergyLimit()/eV << " eV to " << 100. << " eV" << G4endl; + SetHighEnergyLimit(100.*eV); } // - +#ifdef SANCHE_VERBOSE if (verboseLevel > 0) { G4cout << "Sanche Excitation model is initialized " << G4endl @@ -110,6 +122,7 @@ void G4DNASancheExcitationModel::Initialise(const G4ParticleDefinition* /*partic << HighEnergyLimit() / eV << " eV" << G4endl; } +#endif // Initialize water density pointer fpWaterDensity = G4DNAMolecularMaterial::Instance()-> @@ -166,34 +179,39 @@ void G4DNASancheExcitationModel::Initialise(const G4ParticleDefinition* /*partic //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4DNASancheExcitationModel::CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* particleDefinition, + const G4ParticleDefinition* +#ifdef SANCHE_VERBOSE + particleDefinition +#endif + , G4double ekin, G4double, G4double) { +#ifdef SANCHE_VERBOSE if (verboseLevel > 3) - G4cout << "Calling CrossSectionPerVolume() of G4DNASancheExcitationModel" - << G4endl; + { + G4cout << "Calling CrossSectionPerVolume() of G4DNASancheExcitationModel" + << G4endl; + } +#endif // Calculate total cross section for model - G4double sigma=0; + G4double sigma = 0.; G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; if(waterDensity!= 0.0) { - -// if (particleDefinition == G4Electron::ElectronDefinition()) // pas besoin + if (ekin >= LowEnergyLimit() && ekin < HighEnergyLimit()) + // for now this is necessary { - if (ekin >= lowEnergyLimit && ekin < highEnergyLimit) - // for now this is necessary - { - //sigma = Sum(ekin); - sigma = TotalCrossSection(ekin); - } + //sigma = Sum(ekin); + sigma = TotalCrossSection(ekin); } +#ifdef SANCHE_VERBOSE if (verboseLevel > 2) { G4cout << "__________________________________" << G4endl; @@ -203,10 +221,10 @@ G4double G4DNASancheExcitationModel::CrossSectionPerVolume(const G4Material* mat G4cout << "=== Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./cm) << G4endl; G4cout << "=== G4DNASancheExcitationModel - XS INFO END" << G4endl; } - +#endif } // if water - return sigma*2*waterDensity; + return sigma*2.*waterDensity; // see papers for factor 2 description } @@ -220,10 +238,13 @@ void G4DNASancheExcitationModel::SampleSecondaries(std::vector< G4double, G4double) { - +#ifdef SANCHE_VERBOSE if (verboseLevel > 3) - G4cout << "Calling SampleSecondaries() of G4DNASancheExcitationModel" - << G4endl; + { + G4cout << "Calling SampleSecondaries() of G4DNASancheExcitationModel" + << G4endl; + } +#endif G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); G4int level = RandomSelect(electronEnergy0); @@ -248,7 +269,7 @@ void G4DNASancheExcitationModel::SampleSecondaries(std::vector< } */ - if (electronEnergy0 < highEnergyLimit && newEnergy>0.) + if (electronEnergy0 < HighEnergyLimit() && newEnergy>0.) { fParticleChangeForGamma->ProposeMomentumDirection(aDynamicElectron->GetMomentumDirection()); fParticleChangeForGamma->SetProposedKineticEnergy(newEnergy); diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAScreenedRutherfordElasticModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAScreenedRutherfordElasticModel.cc index 57ff9b7a04..16b920c553 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAScreenedRutherfordElasticModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAScreenedRutherfordElasticModel.cc @@ -23,28 +23,30 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAScreenedRutherfordElasticModel.cc 92074 2015-08-17 07:03:46Z gcosmo $ +// $Id: G4DNAScreenedRutherfordElasticModel.cc 97520 2016-06-03 14:23:17Z gcosmo $ // #include "G4DNAScreenedRutherfordElasticModel.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "G4DNAMolecularMaterial.hh" +#include "G4Exp.hh" +#include "G4Log.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... using namespace std; +//#define SR_VERBOSE //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4DNAScreenedRutherfordElasticModel::G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition*, - const G4String& nam) : +G4DNAScreenedRutherfordElasticModel:: +G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition*, + const G4String& nam) : G4VEmModel(nam), isInitialised(false) { - // nistwater = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER"); fpWaterDensity = 0; - killBelowEnergy = 9 * eV; lowEnergyLimit = 0 * eV; intermediateEnergyLimit = 200 * eV; // Switch between two final state models highEnergyLimit = 1. * MeV; @@ -59,13 +61,17 @@ G4DNAScreenedRutherfordElasticModel::G4DNAScreenedRutherfordElasticModel(const G // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods +#ifdef SR_VERBOSE if (verboseLevel > 0) { - G4cout << "Screened Rutherford Elastic model is constructed " << G4endl<< "Energy range: " - << lowEnergyLimit / eV << " eV - " - << highEnergyLimit / MeV << " MeV" - << G4endl; + G4cout << "Screened Rutherford Elastic model is constructed " + << G4endl + << "Energy range: " + << lowEnergyLimit / eV << " eV - " + << highEnergyLimit / MeV << " MeV" + << G4endl; } +#endif fParticleChangeForGamma = 0; // Selection of computation method @@ -81,133 +87,159 @@ G4DNAScreenedRutherfordElasticModel::~G4DNAScreenedRutherfordElasticModel() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAScreenedRutherfordElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, - const G4DataVector& /*cuts*/) +void G4DNAScreenedRutherfordElasticModel:: +Initialise(const G4ParticleDefinition* particle, + const G4DataVector& /*cuts*/) { - +#ifdef SR_VERBOSE if (verboseLevel > 3) - G4cout << "Calling G4DNAScreenedRutherfordElasticModel::Initialise()" - << G4endl; - + { + G4cout << "Calling G4DNAScreenedRutherfordElasticModel::Initialise()" + << G4endl; + } +#endif + + if(particle->GetParticleName() != "e-") + { + G4Exception ("*** WARNING: the G4DNAScreenedRutherfordElasticModel is not " + "intented to be used with another particle than the electron", + "",FatalException,"") ; + } + // Energy limits - - if (LowEnergyLimit() < lowEnergyLimit) + if (LowEnergyLimit() < 9*eV) { - G4cout << "G4DNAScreenedRutherfordElasticModel: low energy limit increased from " << - LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; - SetLowEnergyLimit(lowEnergyLimit); + G4Exception("*** WARNING: the G4DNAScreenedRutherfordElasticModel class is " + "not validated below 9 eV", + "",JustWarning,"") ; } - if (HighEnergyLimit() > highEnergyLimit) + if (HighEnergyLimit() > 1*MeV) { - G4cout << "G4DNAScreenedRutherfordElasticModel: high energy limit decreased from " << - HighEnergyLimit()/MeV << " MeV to " << highEnergyLimit/MeV << " MeV" << G4endl; - SetHighEnergyLimit(highEnergyLimit); + G4Exception("*** WARNING: the G4DNAScreenedRutherfordElasticModel class is " + "not validated above 1 MeV", + "",JustWarning,"") ; } - // Constants for final state by Brenner & Zaider - // March 25th, 2014 - Vaclav Stepan, Sebastien Incerti - // Added clear for MT - - betaCoeff.clear(); - betaCoeff.push_back(7.51525); - betaCoeff.push_back(-0.41912); - betaCoeff.push_back(7.2017E-3); - betaCoeff.push_back(-4.646E-5); - betaCoeff.push_back(1.02897E-7); - - deltaCoeff.clear(); - deltaCoeff.push_back(2.9612); - deltaCoeff.push_back(-0.26376); - deltaCoeff.push_back(4.307E-3); - deltaCoeff.push_back(-2.6895E-5); - deltaCoeff.push_back(5.83505E-8); - - gamma035_10Coeff.clear(); - gamma035_10Coeff.push_back(-1.7013); - gamma035_10Coeff.push_back(-1.48284); - gamma035_10Coeff.push_back(0.6331); - gamma035_10Coeff.push_back(-0.10911); - gamma035_10Coeff.push_back(8.358E-3); - gamma035_10Coeff.push_back(-2.388E-4); - - gamma10_100Coeff.clear(); - gamma10_100Coeff.push_back(-3.32517); - gamma10_100Coeff.push_back(0.10996); - gamma10_100Coeff.push_back(-4.5255E-3); - gamma10_100Coeff.push_back(5.8372E-5); - gamma10_100Coeff.push_back(-2.4659E-7); - - gamma100_200Coeff.clear(); - gamma100_200Coeff.push_back(2.4775E-2); - gamma100_200Coeff.push_back(-2.96264E-5); - gamma100_200Coeff.push_back(-1.20655E-7); - // - +#ifdef SR_VERBOSE if( verboseLevel>0 ) { G4cout << "Screened Rutherford elastic model is initialized " << G4endl - << "Energy range: " - << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / MeV << " MeV" - << G4endl; + << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / MeV << " MeV" + << G4endl; } +#endif + if (isInitialised) { return; } // return here, prevent reinit consts + pointer + // Initialize water density pointer - fpWaterDensity = G4DNAMolecularMaterial::Instance()->GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); - - if (isInitialised) - { return;} + fpWaterDensity = G4DNAMolecularMaterial::Instance()-> + GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); + fParticleChangeForGamma = GetParticleChangeForGamma(); isInitialised = true; + + // Constants for final state by Brenner & Zaider + // note: if called after if(isInitialised) no need for clear and resetting + // the values at every call + betaCoeff= + { + 7.51525, + -0.41912, + 7.2017E-3, + -4.646E-5, + 1.02897E-7}; + + deltaCoeff= + { + 2.9612, + -0.26376, + 4.307E-3, + -2.6895E-5, + 5.83505E-8}; + + gamma035_10Coeff = + { + -1.7013, + -1.48284, + 0.6331, + -0.10911, + 8.358E-3, + -2.388E-4}; + + gamma10_100Coeff = + { + -3.32517, + 0.10996, + -4.5255E-3, + 5.8372E-5, + -2.4659E-7}; + + gamma100_200Coeff = + { + 2.4775E-2, + -2.96264E-5, + -1.20655E-7}; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* particleDefinition, - G4double ekin, - G4double, - G4double) +G4double G4DNAScreenedRutherfordElasticModel:: +CrossSectionPerVolume(const G4Material* material, +#ifdef SR_VERBOSE + const G4ParticleDefinition* particleDefinition, +#else + const G4ParticleDefinition*, +#endif + G4double ekin, + G4double, + G4double) { +#ifdef SR_VERBOSE if (verboseLevel > 3) - G4cout << "Calling CrossSectionPerVolume() of G4DNAScreenedRutherfordElasticModel" - << G4endl; - + { + G4cout << "Calling CrossSectionPerVolume() of " + "G4DNAScreenedRutherfordElasticModel" + << G4endl; + } +#endif + // Calculate total cross section for model - G4double sigma=0; - + G4double sigma=0.; G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; if(waterDensity!= 0.0) - // if (material == nistwater || material->GetBaseMaterial() == nistwater) { - - if (ekin < highEnergyLimit) + if(ekin < HighEnergyLimit() && ekin >= LowEnergyLimit()) { - - if (ekin < killBelowEnergy) return DBL_MAX; - G4double z = 10.; G4double n = ScreeningFactor(ekin,z); G4double crossSection = RutherfordCrossSection(ekin, z); sigma = pi * crossSection / (n * (n + 1.)); } +#ifdef SR_VERBOSE if (verboseLevel > 2) { G4cout << "__________________________________" << G4endl; - G4cout << "=== G4DNAScreenedRutherfordElasticModel - XS INFO START" << G4endl; - G4cout << "=== Kinetic energy(eV)=" << ekin/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 << "=== G4DNAScreenedRutherfordElasticModel - XS INFO END" << G4endl; + G4cout << "=== G4DNAScreenedRutherfordElasticModel - XS INFO START" + << G4endl; + G4cout << "=== Kinetic energy(eV)=" << ekin/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 << "=== G4DNAScreenedRutherfordElasticModel - XS INFO END" + << G4endl; } - +#endif } return sigma*waterDensity; @@ -255,7 +287,7 @@ G4double G4DNAScreenedRutherfordElasticModel::ScreeningFactor(G4double k, const G4double beta_1(-0.0825); const G4double constK(1.7E-5); - G4double numerator = (alpha_1 + beta_1 * std::log(k / eV)) * constK + G4double numerator = (alpha_1 + beta_1 * G4Log(k / eV)) * constK * std::pow(z, 2. / 3.); k /= electron_mass_c2; @@ -270,43 +302,42 @@ G4double G4DNAScreenedRutherfordElasticModel::ScreeningFactor(G4double k, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAScreenedRutherfordElasticModel::SampleSecondaries(std::vector< - G4DynamicParticle*>* /*fvect*/, - const G4MaterialCutsCouple* /*couple*/, - const G4DynamicParticle* aDynamicElectron, - G4double, - G4double) +void G4DNAScreenedRutherfordElasticModel:: +SampleSecondaries(std::vector* /*fvect*/, + const G4MaterialCutsCouple* /*couple*/, + const G4DynamicParticle* aDynamicElectron, + G4double, + G4double) { - +#ifdef SR_VERBOSE if (verboseLevel > 3) { - G4cout << "Calling SampleSecondaries() of G4DNAScreenedRutherfordElasticModel" + G4cout << "Calling SampleSecondaries() of " + "G4DNAScreenedRutherfordElasticModel" << G4endl; } - +#endif + G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); - - if (electronEnergy0 < killBelowEnergy) - { - fParticleChangeForGamma->SetProposedKineticEnergy(0.); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(electronEnergy0); - return; - } - G4double cosTheta = 0.; - if (electronEnergy0>= killBelowEnergy && electronEnergy0 < highEnergyLimit) + // if (electronEnergy0 < highEnergyLimit) { if (electronEnergy0 3) G4cout << "---> Using Brenner & Zaider model" << G4endl; +#ifdef SR_VERBOSE + if (verboseLevel > 3) + {G4cout << "---> Using Brenner & Zaider model" << G4endl;} +#endif cosTheta = BrennerZaiderRandomizeCosTheta(electronEnergy0); } if (electronEnergy0>=intermediateEnergyLimit) { - if (verboseLevel > 3) G4cout << "---> Using Screened Rutherford model" << G4endl; +#ifdef SR_VERBOSE + if (verboseLevel > 3) + {G4cout << "---> Using Screened Rutherford model" << G4endl;} +#endif G4double z = 10.; cosTheta = ScreenedRutherfordRandomizeCosTheta(electronEnergy0,z); } @@ -328,12 +359,12 @@ void G4DNAScreenedRutherfordElasticModel::SampleSecondaries(std::vector< fParticleChangeForGamma->SetProposedKineticEnergy(electronEnergy0); } - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4double k) +G4double G4DNAScreenedRutherfordElasticModel:: +BrennerZaiderRandomizeCosTheta(G4double k) { // d sigma_el 1 beta(K) // ------------ (K) ~ --------------------------------- + --------------------------------- @@ -347,8 +378,8 @@ G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4d k /= eV; - G4double beta = std::exp(CalculatePolynomial(k, betaCoeff)); - G4double delta = std::exp(CalculatePolynomial(k, deltaCoeff)); + G4double beta = G4Exp(CalculatePolynomial(k, betaCoeff)); + G4double delta = G4Exp(CalculatePolynomial(k, deltaCoeff)); G4double gamma; if (k > 100.) @@ -360,11 +391,11 @@ G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4d { if (k > 10) { - gamma = std::exp(CalculatePolynomial(k, gamma10_100Coeff)); + gamma = G4Exp(CalculatePolynomial(k, gamma10_100Coeff)); } else { - gamma = std::exp(CalculatePolynomial(k, gamma035_10Coeff)); + gamma = G4Exp(CalculatePolynomial(k, gamma035_10Coeff)); } } @@ -390,7 +421,8 @@ G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4d rightDenominator = (1. + 2.*delta + cosTheta); if ( (leftDenominator * rightDenominator) != 0. ) { - fCosTheta = oneOverMax * (1./(leftDenominator*leftDenominator) + beta/(rightDenominator*rightDenominator)); + fCosTheta = oneOverMax * (1./(leftDenominator*leftDenominator) + + beta/(rightDenominator*rightDenominator)); } } while (fCosTheta < G4UniformRand()); @@ -402,7 +434,64 @@ G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4d if (fasterCode) { + + // + // modified by Shogo OKADA @ KEK, JP, 2016.2.27(Sat.) + // + // An integral of differential cross-section formula shown above this member function + // (integral variable: cos(theta), integral interval: [-1, x]) is as follows: + // + // 1.0 + x beta * (1 + x) + // I = --------------------- + ---------------------- (1) + // (a - x) * (a + 1.0) (b + x) * (b - 1.0) + // + // where a = 1.0 + 2.0 * gamma(K), b = 1.0 + 2.0 * delta(K) + // + // Then, a cumulative probability (cp) is as follows: + // + // cp 1.0 + x beta * (1 + x) + // ---- = --------------------- + ---------------------- (2) + // S (a - x) * (a + 1.0) (b + x) * (b - 1.0) + // + // where 1/S is the integral of differnetical cross-section (1) on interval [-1, 1] + // + // 1 2.0 2.0 * beta + // --- = ----------------------- + ----------------------- (3) + // S (a - 1.0) * (a + 1.0) (b + 1.0) * (b - 1.0) + // + // x is calculated from the quadratic equation derived from (2) and (3): + // + // A * x^2 + B * x + C = 0 + // + // where A, B, anc C are coefficients of the equation: + // A = S * {(b - 1.0) - beta * (a + 1.0)} + cp * (a + 1.0) * (b - 1.0), + // B = S * {(b - 1.0) * (b + 1.0) + beta * (a - 1.0) * (a + 1.0)} - cp * (a + 1.0) * (b - 1.0) * (a - b) + // C = S * {b * (b - 1.0) + beta * a * (a + 1.0)} - cp * (a + 1.0) * (b - 1.0) * ab + // + + // sampling cumulative probability + G4double cp = G4UniformRand(); + + G4double a = 1.0 + 2.0 * gamma; + G4double b = 1.0 + 2.0 * delta; + G4double a1 = a - 1.0; + G4double a2 = a + 1.0; + G4double b1 = b - 1.0; + G4double b2 = b + 1.0; + G4double c1 = a - b; + G4double c2 = a * b; + G4double S = 2.0 / (a1 * a2) + 2.0 * beta / (b1 * b2); S = 1.0 / S; + + // coefficients for the quadratic equation + G4double A = S * (b1 - beta * a2) + cp * a2 * b1; + G4double B = S * (b1 * b2 + beta * a1 * a2) - cp * a2 * b1 * c1; + G4double C = S * (b * b1 + beta * a * a2) - cp * a2 * b1 * c2; + + // calculate cos(theta) + return (-1.0 * B + std::sqrt(B * B - 4.0 * A * C)) / (2.0 * A); + + /* G4double cosTheta = -1; G4double cumul = 0; G4double value = 0; @@ -438,6 +527,7 @@ G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4d } return cosTheta; + */ } return 0.; @@ -445,9 +535,9 @@ G4double G4DNAScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4d //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4DNAScreenedRutherfordElasticModel::CalculatePolynomial(G4double k, - std::vector< - G4double>& vec) +G4double G4DNAScreenedRutherfordElasticModel:: +CalculatePolynomial(G4double k, + std::vector& vec) { // Sum_{i=0}^{size-1} vector_i k^i // @@ -469,8 +559,9 @@ G4double G4DNAScreenedRutherfordElasticModel::CalculatePolynomial(G4double k, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4DNAScreenedRutherfordElasticModel::ScreenedRutherfordRandomizeCosTheta(G4double k, - G4double z) +G4double G4DNAScreenedRutherfordElasticModel:: +ScreenedRutherfordRandomizeCosTheta(G4double k, + G4double z) { // d sigma_el sigma_Ruth(K) @@ -509,7 +600,33 @@ G4double G4DNAScreenedRutherfordElasticModel::ScreenedRutherfordRandomizeCosThet // ***** Alternative method using cumulative probability if (fasterCode) { - + + // + // modified by Shogo OKADA @ KEK, JP, 2016.2.27(Sat.) + // + // The cumulative probability (cp) is calculated by integrating + // the differential cross-section fomula with cos(theta): + // + // n(K) * (1.0 + cos(theta)) + // cp = --------------------------------- + // 1.0 + 2.0 * n(K) - cos(theta) + // + // Then, cos(theta) is as follows: + // + // cp * (1.0 + 2.0 * n(K)) - n(K) + // cos(theta) = -------------------------------- + // n(k) + cp + // + // where, K is kinetic energy, n(K) is screeing factor, and cp is cumulative probability + // + + G4double n = ScreeningFactor(k, z); + G4double cp = G4UniformRand(); + G4double numerator = cp * (1.0 + 2.0 * n) - n; + G4double denominator = n + cp; + return numerator / denominator; + + /* G4double cosTheta = -1; G4double cumul = 0; G4double value = 0; @@ -538,8 +655,10 @@ G4double G4DNAScreenedRutherfordElasticModel::ScreenedRutherfordRandomizeCosThet if (random < value) break; } return cosTheta; + */ } return 0.; } + diff --git a/source/processes/electromagnetic/dna/models/src/G4DNASmoluchowskiReactionModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNASmoluchowskiReactionModel.cc index 1c48fc422c..fea6a1d763 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNASmoluchowskiReactionModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNASmoluchowskiReactionModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNASmoluchowskiReactionModel.cc 94218 2015-11-09 08:24:48Z gcosmo $ +// $Id: G4DNASmoluchowskiReactionModel.cc 95948 2016-03-03 10:40:33Z gcosmo $ // #include "G4DNASmoluchowskiReactionModel.hh" #include "Randomize.hh" @@ -32,6 +32,7 @@ #include "G4UnitsTable.hh" #include "G4Molecule.hh" //#include "G4Scheduler.hh" +#include "G4Exp.hh" G4DNASmoluchowskiReactionModel::G4DNASmoluchowskiReactionModel() : G4VDNAReactionModel() @@ -171,7 +172,7 @@ G4bool G4DNASmoluchowskiReactionModel::FindReaction(const G4Track& __trackA, // assert(G4Scheduler::Instance()->GetTimeStep() == __trackB.GetStep()->GetDeltaTime()); // } - G4double __probabiltyOfEncounter = std::exp( + G4double __probabiltyOfEncounter = G4Exp( -(__preStepSeparation - __R) * (postStepSeparation - __R) / (__D * (__trackB.GetStep()->GetDeltaTime()))); G4double __selectedPOE = G4UniformRand(); diff --git a/source/processes/electromagnetic/dna/models/src/G4DNATransformElectronModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNATransformElectronModel.cc index f585769927..2c211bb6db 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNATransformElectronModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNATransformElectronModel.cc @@ -23,28 +23,29 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNATransformElectronModel.cc 64057 2012-10-30 15:04:49Z gcosmo $ +// $Id: G4DNATransformElectronModel.cc 96861 2016-05-13 13:43:04Z gcosmo $ // #include "G4DNATransformElectronModel.hh" #include "G4SystemOfUnits.hh" #include "G4ParticleChangeForGamma.hh" -#include "G4Electron.hh" #include "G4NistManager.hh" #include "G4DNAChemistryManager.hh" #include "G4DNAMolecularMaterial.hh" -G4DNATransformElectronModel::G4DNATransformElectronModel(const G4ParticleDefinition*, - const G4String& nam): +//#define MODEL_VERBOSE + +G4DNATransformElectronModel:: +G4DNATransformElectronModel(const G4ParticleDefinition*, + const G4String& nam) : G4VEmModel(nam),fIsInitialised(false) { - fVerboseLevel = 0 ; - SetLowEnergyLimit(0.*eV); - SetHighEnergyLimit(0.025*eV); - fParticleChangeForGamma = 0; - // fNistWater = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER"); - fpWaterDensity = 0; - fpWaterDensity = 0; - fEpsilon = 0.0001*eV; + fVerboseLevel = 0; + SetLowEnergyLimit(0. * eV); + SetHighEnergyLimit(0.025 * eV); + fParticleChangeForGamma = 0; + fpWaterDensity = 0; + fpWaterDensity = 0; + fEpsilon = 0.0001 * eV; } //______________________________________________________________________ @@ -52,83 +53,83 @@ G4DNATransformElectronModel::~G4DNATransformElectronModel() {} //______________________________________________________________________ -void G4DNATransformElectronModel::Initialise(const G4ParticleDefinition* particleDefinition, - const G4DataVector&) +void G4DNATransformElectronModel:: +Initialise(const G4ParticleDefinition* particleDefinition, + const G4DataVector&) { -#ifdef G4VERBOSE - if (fVerboseLevel) - G4cout << "Calling G4DNATransformElectronModel::Initialise()" << G4endl; +#ifdef MODEL_VERBOSE + if (fVerboseLevel) + G4cout << "Calling G4DNATransformElectronModel::Initialise()" << G4endl; #endif + + if(particleDefinition->GetParticleName() != "e-") + { + G4ExceptionDescription errMsg; + errMsg << "Attempting to calculate cross section for wrong particle"; + G4Exception("G4DNATransformElectronModel::CrossSectionPerVolume", + "G4DNATransformElectronModel001", FatalErrorInArgument, errMsg); + return; + } - if (particleDefinition != G4Electron::ElectronDefinition()) - { - G4ExceptionDescription exceptionDescription ; - exceptionDescription << "Attempting to calculate cross section for wrong particle"; - G4Exception("G4DNATransformElectronModel::CrossSectionPerVolume","G4DNATransformElectronModel001", - FatalErrorInArgument,exceptionDescription); - return; - } + // Initialize water density pointer + fpWaterDensity = G4DNAMolecularMaterial::Instance()-> + GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); - // Initialize water density pointer - fpWaterDensity = G4DNAMolecularMaterial::Instance()->GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); - - if(!fIsInitialised) - { - fIsInitialised = true; - fParticleChangeForGamma = GetParticleChangeForGamma(); - } + if(!fIsInitialised) + { + fIsInitialised = true; + fParticleChangeForGamma = GetParticleChangeForGamma(); + } } //______________________________________________________________________ -G4double G4DNATransformElectronModel::CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition*, - G4double ekin, - G4double, - G4double) +G4double +G4DNATransformElectronModel::CrossSectionPerVolume(const G4Material* material, + const G4ParticleDefinition*, + G4double ekin, + G4double, + G4double) { -#if G4VERBOSE - if (fVerboseLevel > 1) - G4cout << "Calling CrossSectionPerVolume() of G4DNATransformElectronModel" << G4endl; +#if MODEL_VERBOSE + if (fVerboseLevel > 1) + G4cout << "Calling CrossSectionPerVolume() of G4DNATransformElectronModel" << G4endl; #endif + + if(ekin - fEpsilon > HighEnergyLimit()) + { + return 0.0; + } - if(ekin - fEpsilon > HighEnergyLimit()) - { - return 0.0; - } + G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; - G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; + if(waterDensity != 0.0) + { + return DBL_MAX; + } - if(waterDensity!= 0.0) - // if (material == nistwater || material->GetBaseMaterial() == nistwater) - { - if (ekin - fEpsilon <= HighEnergyLimit()) - { - return DBL_MAX; - } - } - - return 0.0 ; + return 0.0; } //______________________________________________________________________ -void G4DNATransformElectronModel::SampleSecondaries(std::vector* /*fvect*/, - const G4MaterialCutsCouple*, - const G4DynamicParticle* particle, - G4double, - G4double) +void +G4DNATransformElectronModel::SampleSecondaries(std::vector* /*fvect*/, + const G4MaterialCutsCouple*, + const G4DynamicParticle* particle, + G4double, + G4double) { -#if G4VERBOSE - if (fVerboseLevel) - G4cout << "Calling SampleSecondaries() of G4DNATransformElectronModel" << G4endl; +#if MODEL_VERBOSE + if (fVerboseLevel) + G4cout << "Calling SampleSecondaries() of G4DNATransformElectronModel" << G4endl; #endif - G4double k = particle->GetKineticEnergy(); + G4double k = particle->GetKineticEnergy(); -// if (k - fEpsilon <= HighEnergyLimit()) +// if (k - fEpsilon <= HighEnergyLimit()) // should be already checked // { - const G4Track * track = fParticleChangeForGamma->GetCurrentTrack(); - G4DNAChemistryManager::Instance()->CreateSolvatedElectron(track); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(k); + const G4Track * track = fParticleChangeForGamma->GetCurrentTrack(); + G4DNAChemistryManager::Instance()->CreateSolvatedElectron(track); + fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); + fParticleChangeForGamma->ProposeLocalEnergyDeposit(k); // } } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc index ed92c00cb6..3344b352ab 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc @@ -27,26 +27,27 @@ #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "G4DNAMolecularMaterial.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... using namespace std; +// #define UEHARA_VERBOSE + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition*, - const G4String& nam) : +G4DNAUeharaScreenedRutherfordElasticModel:: +G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition*, + const G4String& nam) : G4VEmModel(nam), isInitialised(false) { - // nistwater = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER"); fpWaterDensity = 0; - - killBelowEnergy = 9 * eV; // As in Geant4-DNA Screened Rutherford model - lowEnergyLimit = 0 * eV; - intermediateEnergyLimit = 200 * eV; // Switch between two final state models - highEnergyLimit = 10 * keV; - SetLowEnergyLimit(lowEnergyLimit); - SetHighEnergyLimit(highEnergyLimit); + intermediateEnergyLimit = 200. * eV; // Switch between two final state models + + SetLowEnergyLimit(9.*eV); +// SetHighEnergyLimit(10.*keV); + SetHighEnergyLimit(1.*MeV); verboseLevel = 0; // Verbosity scale: @@ -56,13 +57,17 @@ G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticM // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods - if (verboseLevel > 0) +#ifdef UEHARA_VERBOSE + if (verboseLevel) { - G4cout << "Screened Rutherford Elastic model is constructed " << G4endl<< "Energy range: " - << lowEnergyLimit / eV << " eV - " - << highEnergyLimit / MeV << " MeV" - << G4endl; + G4cout << "Screened Rutherford Elastic model is constructed " << G4endl + << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / MeV << " MeV" + << G4endl; } +#endif + fParticleChangeForGamma = 0; // Selection of computation method @@ -72,150 +77,172 @@ G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticM //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4DNAUeharaScreenedRutherfordElasticModel::~G4DNAUeharaScreenedRutherfordElasticModel() +G4DNAUeharaScreenedRutherfordElasticModel:: +~G4DNAUeharaScreenedRutherfordElasticModel() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAUeharaScreenedRutherfordElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, - const G4DataVector& /*cuts*/) +void +G4DNAUeharaScreenedRutherfordElasticModel:: +Initialise(const G4ParticleDefinition* particle, + const G4DataVector& /*cuts*/) { - +#ifdef UEHARA_VERBOSE if (verboseLevel > 3) + { G4cout << "Calling G4DNAUeharaScreenedRutherfordElasticModel::Initialise()" - << G4endl; - - // Energy limits - - if (LowEnergyLimit() < lowEnergyLimit) - { - G4cout << "G4DNAUeharaScreenedRutherfordElasticModel: low energy limit increased from " << - LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; - SetLowEnergyLimit(lowEnergyLimit); - } - - if (HighEnergyLimit() > highEnergyLimit) - { - G4cout << "G4DNAUeharaScreenedRutherfordElasticModel: high energy limit decreased from " << - HighEnergyLimit()/MeV << " MeV to " << highEnergyLimit/MeV << " MeV" << G4endl; - SetHighEnergyLimit(highEnergyLimit); - } - - // Constants for final state by Brenner & Zaider - // March 25th, 2014 - Vaclav Stepan, Sebastien Incerti - // Added clear for MT - - betaCoeff.clear(); - betaCoeff.push_back(7.51525); - betaCoeff.push_back(-0.41912); - betaCoeff.push_back(7.2017E-3); - betaCoeff.push_back(-4.646E-5); - betaCoeff.push_back(1.02897E-7); - - deltaCoeff.clear(); - deltaCoeff.push_back(2.9612); - deltaCoeff.push_back(-0.26376); - deltaCoeff.push_back(4.307E-3); - deltaCoeff.push_back(-2.6895E-5); - deltaCoeff.push_back(5.83505E-8); - - gamma035_10Coeff.clear(); - gamma035_10Coeff.push_back(-1.7013); - gamma035_10Coeff.push_back(-1.48284); - gamma035_10Coeff.push_back(0.6331); - gamma035_10Coeff.push_back(-0.10911); - gamma035_10Coeff.push_back(8.358E-3); - gamma035_10Coeff.push_back(-2.388E-4); - - gamma10_100Coeff.clear(); - gamma10_100Coeff.push_back(-3.32517); - gamma10_100Coeff.push_back(0.10996); - gamma10_100Coeff.push_back(-4.5255E-3); - gamma10_100Coeff.push_back(5.8372E-5); - gamma10_100Coeff.push_back(-2.4659E-7); - - gamma100_200Coeff.clear(); - gamma100_200Coeff.push_back(2.4775E-2); - gamma100_200Coeff.push_back(-2.96264E-5); - gamma100_200Coeff.push_back(-1.20655E-7); - - // - - if( verboseLevel>0 ) - { - G4cout << "Screened Rutherford elastic model is initialized " << G4endl - << "Energy range: " - << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / MeV << " MeV" - << G4endl; - } - - // Initialize water density pointer - fpWaterDensity = G4DNAMolecularMaterial::Instance()->GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); - - if (isInitialised) - { return;} - fParticleChangeForGamma = GetParticleChangeForGamma(); - isInitialised = true; - + << G4endl; } +#endif + + if(particle->GetParticleName() != "e-") + { + G4Exception("*** WARNING: the G4DNAUeharaScreenedRutherfordElasticModel is " + "not intented to be used with another particle than the electron", + "",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) + { + G4Exception("*** WARNING: the G4DNAUeharaScreenedRutherfordElasticModel " + "class is used above 10 keV", + "",JustWarning,"") ; + } + +#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) + + betaCoeff= + { + 7.51525, + -0.41912, + 7.2017E-3, + -4.646E-5, + 1.02897E-7}; + + deltaCoeff= + { + 2.9612, + -0.26376, + 4.307E-3, + -2.6895E-5, + 5.83505E-8}; + + gamma035_10Coeff= + { + -1.7013, + -1.48284, + 0.6331, + -0.10911, + 8.358E-3, + -2.388E-4}; + + gamma10_100Coeff = + { + -3.32517, + 0.10996, + -4.5255E-3, + 5.8372E-5, + -2.4659E-7}; + + gamma100_200Coeff= + { + 2.4775E-2, + -2.96264E-5, + -1.20655E-7}; + + // Initialize water density pointer + fpWaterDensity = + G4DNAMolecularMaterial::Instance()-> + GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); + + fParticleChangeForGamma = GetParticleChangeForGamma(); + isInitialised = true; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4DNAUeharaScreenedRutherfordElasticModel::CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* particleDefinition, - G4double ekin, - G4double, - G4double) +G4double +G4DNAUeharaScreenedRutherfordElasticModel:: +CrossSectionPerVolume(const G4Material* material, + const G4ParticleDefinition* /*particleDefinition*/, + G4double ekin, + G4double, + G4double) { +#ifdef UEHARA_VERBOSE if (verboseLevel > 3) { G4cout - << "Calling CrossSectionPerVolume() of G4DNAUeharaScreenedRutherfordElasticModel" - << G4endl; + << "Calling CrossSectionPerVolume() of G4DNAUeharaScreenedRutherfordElasticModel" + << G4endl; } - +#endif + // Calculate total cross section for model - - G4double sigma=0; - + + G4double sigma = 0.; G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; - + + // Use activation boundaries instead + //if(ekin > HighEnergyLimit() || ekin < LowEnergyLimit()) return 0.; + if(waterDensity!= 0.0) - //if (material == nistwater || material->GetBaseMaterial() == nistwater) { - - if (ekin < highEnergyLimit) - { - if (ekin < killBelowEnergy) return DBL_MAX; - - G4double z = 7.42; // FROM PMB 37 (1992) 1841-1858 p1842 - G4double n = ScreeningFactor(ekin,z); - G4double crossSection = RutherfordCrossSection(ekin, z); - sigma = pi * crossSection / (n * (n + 1.)); - } - + G4double z = 7.42; // FROM PMB 37 (1992) 1841-1858 p1842 + G4double n = ScreeningFactor(ekin,z); + G4double crossSection = RutherfordCrossSection(ekin, z); + sigma = pi * crossSection / (n * (n + 1.)); + +#ifdef UEHARA_VERBOSE if (verboseLevel > 2) { G4cout << "__________________________________" << G4endl; - G4cout << "=== G4DNAUeharaScreenedRutherfordElasticModel - XS INFO START" << G4endl; - G4cout << "=== Kinetic energy(eV)=" << ekin/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 << "=== G4DNAUeharaScreenedRutherfordElasticModel - XS INFO END" << G4endl; + G4cout << "=== G4DNAUeharaScreenedRutherfordElasticModel - XS INFO START" + << G4endl; + G4cout << "=== Kinetic energy(eV)=" << ekin/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 << "=== G4DNAUeharaScreenedRutherfordElasticModel - XS INFO END" + << G4endl; } - +#endif } - return sigma*material->GetAtomicNumDensityVector()[1]; + return sigma*waterDensity; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4DNAUeharaScreenedRutherfordElasticModel::RutherfordCrossSection(G4double k, - G4double z) +G4double +G4DNAUeharaScreenedRutherfordElasticModel::RutherfordCrossSection(G4double k, + G4double z) { // // e^4 / K + m_e c^2 \^2 @@ -267,71 +294,68 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::ScreeningFactor(G4double k, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAUeharaScreenedRutherfordElasticModel::SampleSecondaries(std::vector< - G4DynamicParticle*>* /*fvect*/, - const G4MaterialCutsCouple* /*couple*/, - const G4DynamicParticle* aDynamicElectron, - G4double, - G4double) +void +G4DNAUeharaScreenedRutherfordElasticModel:: +SampleSecondaries(std::vector* /*fvect*/, + const G4MaterialCutsCouple* /*couple*/, + const G4DynamicParticle* aDynamicElectron, + G4double, + G4double) { - +#ifdef UEHARA_VERBOSE if (verboseLevel > 3) { G4cout << "Calling SampleSecondaries() of G4DNAUeharaScreenedRutherfordElasticModel" << G4endl; } +#endif G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); - if (electronEnergy0 < killBelowEnergy) - { - fParticleChangeForGamma->SetProposedKineticEnergy(0.); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(electronEnergy0); - return; - } - G4double cosTheta = 0.; - if (electronEnergy0>= killBelowEnergy && electronEnergy0 < highEnergyLimit) + if (electronEnergy0 3) G4cout << "---> Using Brenner & Zaider model" << G4endl; - cosTheta = BrennerZaiderRandomizeCosTheta(electronEnergy0); - } - - if (electronEnergy0>=intermediateEnergyLimit) - { - if (verboseLevel > 3) G4cout << "---> Using Screened Rutherford model" << G4endl; - G4double z = 7.42; // FROM PMB 37 (1992) 1841-1858 p1842 - cosTheta = ScreenedRutherfordRandomizeCosTheta(electronEnergy0,z); - } - - G4double phi = 2. * pi * G4UniformRand(); - - G4ThreeVector zVers = aDynamicElectron->GetMomentumDirection(); - G4ThreeVector xVers = zVers.orthogonal(); - G4ThreeVector yVers = zVers.cross(xVers); - - G4double xDir = std::sqrt(1. - cosTheta*cosTheta); - G4double yDir = xDir; - xDir *= std::cos(phi); - yDir *= std::sin(phi); - - G4ThreeVector zPrimeVers((xDir*xVers + yDir*yVers + cosTheta*zVers)); - - fParticleChangeForGamma->ProposeMomentumDirection(zPrimeVers.unit()); - - fParticleChangeForGamma->SetProposedKineticEnergy(electronEnergy0); +#ifdef UEHARA_VERBOSE + if (verboseLevel > 3) + G4cout << "---> Using Brenner & Zaider model" << G4endl; +#endif + cosTheta = BrennerZaiderRandomizeCosTheta(electronEnergy0); } - + else //if (electronEnergy0>=intermediateEnergyLimit) + { +#ifdef UEHARA_VERBOSE + if (verboseLevel > 3) + G4cout << "---> Using Screened Rutherford model" << G4endl; +#endif + G4double z = 7.42; // FROM PMB 37 (1992) 1841-1858 p1842 + cosTheta = ScreenedRutherfordRandomizeCosTheta(electronEnergy0,z); + } + + G4double phi = 2. * pi * G4UniformRand(); + + G4ThreeVector zVers = aDynamicElectron->GetMomentumDirection(); + G4ThreeVector xVers = zVers.orthogonal(); + G4ThreeVector yVers = zVers.cross(xVers); + + G4double xDir = std::sqrt(1. - cosTheta*cosTheta); + G4double yDir = xDir; + xDir *= std::cos(phi); + yDir *= std::sin(phi); + + G4ThreeVector zPrimeVers((xDir*xVers + yDir*yVers + cosTheta*zVers)); + + fParticleChangeForGamma->ProposeMomentumDirection(zPrimeVers.unit()); + + fParticleChangeForGamma->SetProposedKineticEnergy(electronEnergy0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4DNAUeharaScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosTheta(G4double k) +G4double +G4DNAUeharaScreenedRutherfordElasticModel:: +BrennerZaiderRandomizeCosTheta(G4double k) { // d sigma_el 1 beta(K) // ------------ (K) ~ --------------------------------- + --------------------------------- @@ -345,8 +369,8 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosThe k /= eV; - G4double beta = std::exp(CalculatePolynomial(k, betaCoeff)); - G4double delta = std::exp(CalculatePolynomial(k, deltaCoeff)); + G4double beta = G4Exp(CalculatePolynomial(k, betaCoeff)); + G4double delta = G4Exp(CalculatePolynomial(k, deltaCoeff)); G4double gamma; if (k > 100.) @@ -357,48 +381,106 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosThe { if (k > 10) { - gamma = std::exp(CalculatePolynomial(k, gamma10_100Coeff)); - } else + gamma = G4Exp(CalculatePolynomial(k, gamma10_100Coeff)); + } + else { - gamma = std::exp(CalculatePolynomial(k, gamma035_10Coeff)); + gamma = G4Exp(CalculatePolynomial(k, gamma035_10Coeff)); } } // ***** Original method - if (!fasterCode) + if (fasterCode == false) { - - G4double oneOverMax = 1. - / (1. / (4. * gamma * gamma) - + beta / ((2. + 2. * delta) * (2. + 2. * delta))); - - G4double cosTheta = 0.; - G4double leftDenominator = 0.; - G4double rightDenominator = 0.; - G4double fCosTheta = 0.; - - do - { - cosTheta = 2. * G4UniformRand()- 1.; - - leftDenominator = (1. + 2.*gamma - cosTheta); - rightDenominator = (1. + 2.*delta + cosTheta); - if ( (leftDenominator * rightDenominator) != 0. ) + G4double oneOverMax = 1. + / (1. / (4. * gamma * gamma) + + beta / ((2. + 2. * delta) * (2. + 2. * delta))); + + G4double cosTheta = 0.; + G4double leftDenominator = 0.; + G4double rightDenominator = 0.; + G4double fCosTheta = 0.; + + do { - fCosTheta = oneOverMax * (1./(leftDenominator*leftDenominator) + beta/(rightDenominator*rightDenominator)); + cosTheta = 2. * G4UniformRand()- 1.; + + leftDenominator = (1. + 2.*gamma - cosTheta); + rightDenominator = (1. + 2.*delta + cosTheta); + if ( (leftDenominator * rightDenominator) != 0. ) + { + fCosTheta = oneOverMax * (1./(leftDenominator*leftDenominator) + + beta/(rightDenominator*rightDenominator)); + } } - } - while (fCosTheta < G4UniformRand()); - - return cosTheta; + while (fCosTheta < G4UniformRand()); + + return cosTheta; } // ***** Alternative method using cumulative probability - if (fasterCode) + else // if (fasterCode) { + + // + // modified by Shogo OKADA @ KEK, JP, 2016.2.27(Sat.) + // + // An integral of differential cross-section formula shown above this member function + // (integral variable: cos(theta), integral interval: [-1, x]) is as follows: + // + // 1.0 + x beta * (1 + x) + // I = --------------------- + ---------------------- (1) + // (a - x) * (a + 1.0) (b + x) * (b - 1.0) + // + // where a = 1.0 + 2.0 * gamma(K), b = 1.0 + 2.0 * delta(K) + // + // Then, a cumulative probability (cp) is as follows: + // + // cp 1.0 + x beta * (1 + x) + // ---- = --------------------- + ---------------------- (2) + // S (a - x) * (a + 1.0) (b + x) * (b - 1.0) + // + // where 1/S is the integral of differnetical cross-section (1) on interval [-1, 1] + // + // 1 2.0 2.0 * beta + // --- = ----------------------- + ----------------------- (3) + // S (a - 1.0) * (a + 1.0) (b + 1.0) * (b - 1.0) + // + // x is calculated from the quadratic equation derived from (2) and (3): + // + // A * x^2 + B * x + C = 0 + // + // where A, B, anc C are coefficients of the equation: + // A = S * {(b - 1.0) - beta * (a + 1.0)} + cp * (a + 1.0) * (b - 1.0), + // B = S * {(b - 1.0) * (b + 1.0) + beta * (a - 1.0) * (a + 1.0)} - cp * (a + 1.0) * (b - 1.0) * (a - b) + // C = S * {b * (b - 1.0) + beta * a * (a + 1.0)} - cp * (a + 1.0) * (b - 1.0) * ab + // + + // sampling cumulative probability + G4double cp = G4UniformRand(); + + G4double a = 1.0 + 2.0 * gamma; + G4double b = 1.0 + 2.0 * delta; + G4double a1 = a - 1.0; + G4double a2 = a + 1.0; + G4double b1 = b - 1.0; + G4double b2 = b + 1.0; + G4double c1 = a - b; + G4double c2 = a * b; + + G4double S = 2.0 / (a1 * a2) + 2.0 * beta / (b1 * b2); S = 1.0 / S; + // coefficients for the quadratic equation + G4double A = S * (b1 - beta * a2) + cp * a2 * b1; + G4double B = S * (b1 * b2 + beta * a1 * a2) - cp * a2 * b1 * c1; + G4double C = S * (b * b1 + beta * a * a2) - cp * a2 * b1 * c2; + + // calculate cos(theta) + return (-1.0 * B + std::sqrt(B * B - 4.0 * A * C)) / (2.0 * A); + + /* G4double cosTheta = -1; G4double cumul = 0; G4double value = 0; @@ -434,6 +516,7 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosThe } return cosTheta; + */ } return 0.; @@ -442,9 +525,10 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::BrennerZaiderRandomizeCosThe //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4DNAUeharaScreenedRutherfordElasticModel::CalculatePolynomial(G4double k, - std::vector< - G4double>& vec) +G4double +G4DNAUeharaScreenedRutherfordElasticModel:: +CalculatePolynomial(G4double k, + std::vector& vec) { // Sum_{i=0}^{size-1} vector_i k^i // @@ -466,8 +550,10 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::CalculatePolynomial(G4double //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4DNAUeharaScreenedRutherfordElasticModel::ScreenedRutherfordRandomizeCosTheta(G4double k, - G4double z) +G4double +G4DNAUeharaScreenedRutherfordElasticModel:: +ScreenedRutherfordRandomizeCosTheta(G4double k, + G4double z) { // d sigma_el sigma_Ruth(K) @@ -476,67 +562,93 @@ G4double G4DNAUeharaScreenedRutherfordElasticModel::ScreenedRutherfordRandomizeC // // We extract cos(theta) distributed as (1 + 2 n(K) - cos(theta))^-2 // - // Maximum is for theta=0: 1/(4 n(K)^2) (When n(K) is positive, that is always satisfied within the validity of the process) + // Maximum is for theta=0: 1/(4 n(K)^2) (When n(K) is positive, that is always + // satisfied within the validity of the process) // // Phys. Med. Biol. 45 (2000) 3171-3194 - + // ***** Original method - - if (!fasterCode) + + if (fasterCode == false) { - - G4double n = ScreeningFactor(k, z); - - G4double oneOverMax = (4. * n * n); - - G4double cosTheta = 0.; - G4double fCosTheta; - - do - { - cosTheta = 2. * G4UniformRand()- 1.; - fCosTheta = (1 + 2.*n - cosTheta); - if (fCosTheta !=0.) fCosTheta = oneOverMax / (fCosTheta*fCosTheta); - } - while (fCosTheta < G4UniformRand()); - - return cosTheta; + G4double n = ScreeningFactor(k, z); + + G4double oneOverMax = (4. * n * n); + + G4double cosTheta = 0.; + G4double fCosTheta; + + do + { + cosTheta = 2. * G4UniformRand()- 1.; + fCosTheta = (1 + 2.*n - cosTheta); + if (fCosTheta !=0.) fCosTheta = oneOverMax / (fCosTheta*fCosTheta); + } + while (fCosTheta < G4UniformRand()); + + return cosTheta; } - + // ***** Alternative method using cumulative probability - if (fasterCode) + else // if (fasterCode) { - - G4double cosTheta = -1; - G4double cumul = 0; - G4double value = 0; - G4double n = ScreeningFactor(k, z); - G4double fCosTheta; - - // Number of integration steps in the -1,1 range - G4int iMax=200; - - G4double random = G4UniformRand(); - - // Cumulate differential cross section - for (G4int i=0; i NbMoleculeAgainstTime; -#if __cplusplus > 199711L && !defined __clang__ -#define stdunique_ptr std::unique_ptr -#else -#define stdunique_ptr std::auto_ptr -#endif - -typedef stdunique_ptr > RecordedTimes; +typedef std::unique_ptr > RecordedTimes; typedef std::set::iterator RecordedTimesIterator; class G4MoleculeCounter @@ -89,15 +83,7 @@ class G4MoleculeCounter public: typedef std::map CounterMapType; - typedef stdunique_ptr > RecordedMolecules; - - /* - #if __cplusplus > 199711L && !defined __clang__ - typedef std::unique_ptr > RecordedMolecules; - #else - typedef std::auto_ptr > RecordedMolecules; - #endif - */ + typedef std::unique_ptr > RecordedMolecules; protected: G4MoleculeCounter(); @@ -122,7 +108,7 @@ protected: bool fLowerBoundSet; }; - stdunique_ptr fpLastSearch; + std::unique_ptr fpLastSearch; #ifdef MOLECULE_COUNTER_TESTING public: diff --git a/source/processes/electromagnetic/dna/molecules/management/src/G4MoleculeCounter.cc b/source/processes/electromagnetic/dna/molecules/management/src/G4MoleculeCounter.cc index e6a29467a5..b6a4aa70c4 100644 --- a/source/processes/electromagnetic/dna/molecules/management/src/G4MoleculeCounter.cc +++ b/source/processes/electromagnetic/dna/molecules/management/src/G4MoleculeCounter.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MoleculeCounter.cc 94423 2015-11-16 08:25:40Z gcosmo $ +// $Id: G4MoleculeCounter.cc 96699 2016-05-02 07:20:47Z gcosmo $ // #include "G4MoleculeCounter.hh" #include "G4MoleculeTable.hh" @@ -100,6 +100,10 @@ void G4MoleculeCounter::Initialize() ->GetConfigurationIterator(); while ((mol_iterator)()) { + if(IsRegistered(mol_iterator.value()->GetDefinition()) == false) + { + continue; + } // G4cout << "G4MoleculeCounter::Initialize" << G4endl; // G4cout << mol_iterator->value()->GetName() << G4endl; fCounterMap[mol_iterator.value()]; // initialize the second map diff --git a/source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvatation.hh b/source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvatation.hh index 0d196e1fa4..bc2f18c42a 100644 --- a/source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvatation.hh +++ b/source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvatation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAElectronSolvatation.hh 93936 2015-11-04 09:37:59Z gcosmo $ +// $Id: G4DNAElectronSolvatation.hh 93914 2015-11-03 17:18:12Z matkara $ // // Author: Mathieu Karamitros, kara@cenbg.in2p3.fr @@ -47,38 +47,10 @@ #ifndef G4DNAElectronSolvatation_h #define G4DNAElectronSolvatation_h 1 -#include "G4VEmProcess.hh" +#pragma message("Geant4 warning: Please replace any include of G4DNAElectronSolvatation with G4DNAElectronSolvation") -// Available models -#include "G4DNAOneStepThermalizationModel.hh" -#include "G4DNATransformElectronModel.hh" +#define G4DNAElectronSolvatation G4DNAElectronSolvation -class G4DNAElectronSolvatation : public G4VEmProcess -{ -public: - G4DNAElectronSolvatation(const G4String& processName = - "DNAElectronSolvatation", - G4ProcessType type = fElectromagnetic); - virtual ~G4DNAElectronSolvatation(); - - virtual G4bool IsApplicable(const G4ParticleDefinition&); - virtual void PrintInfo(); - - static G4String GetDefaultName() - { - return "DNAElectronSolvatation"; - } - - static int ProcessSubType() - { - return 58; - } - -protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); - -private: - G4bool isInitialised; -}; +#include "G4DNAElectronSolvation.hh" #endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh b/source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvation.hh similarity index 52% rename from source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh rename to source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvation.hh index 077507f5ce..4306f77ecc 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh +++ b/source/processes/electromagnetic/dna/processes/include/G4DNAElectronSolvation.hh @@ -23,43 +23,62 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// $Id: G4DNAElectronSolvatation.hh 93914 2015-11-03 17:18:12Z matkara $ // -// $Id: G4Na21GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Na21GEMCoulombBarrier_h -#define G4Na21GEMCoulombBarrier_h 1 +// Author: Mathieu Karamitros, kara@cenbg.in2p3.fr -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" +// The code is developed in the framework of the ESA AO7146 +// +// We would be very happy hearing from you, send us your feedback! :) +// +// In order for Geant4-DNA to be maintained and still open-source, +// article citations are crucial. +// If you use Geant4-DNA chemistry and you publish papers about your software, +// in addition to the general paper on Geant4-DNA: +// +// Int. J. Model. Simul. Sci. Comput. 1 (2010) 157–178 +// +// we would be very happy if you could please also cite the following +// reference papers on chemistry: +// +// J. Comput. Phys. 274 (2014) 841-882 +// Prog. Nucl. Sci. Tec. 2 (2011) 503-508 -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Na21GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Na21GEMCoulombBarrier : public G4GEMCoulombBarrier +#ifndef G4DNAElectronSolvation_h +#define G4DNAElectronSolvation_h 1 + +#include "G4VEmProcess.hh" + +// Available models +#include "G4DNAOneStepThermalizationModel.hh" +#include "G4DNATransformElectronModel.hh" + +class G4DNAElectronSolvation : public G4VEmProcess { public: -//JMQ 200709 -// G4Na21GEMCoulombBarrier() : G4GEMCoulombBarrierHE(21,11) {}; - G4Na21GEMCoulombBarrier() : G4GEMCoulombBarrier(21,11) {}; - ~G4Na21GEMCoulombBarrier() {}; + G4DNAElectronSolvation(const G4String& processName = + "DNAElectronSolvation", + G4ProcessType type = fElectromagnetic); + virtual ~G4DNAElectronSolvation(); + + virtual G4bool IsApplicable(const G4ParticleDefinition&); + virtual void PrintInfo(); + + static G4String GetDefaultName() + { + return "DNAElectronSolvatation"; + } + + static int ProcessSubType() + { + return 58; + } + +protected: + virtual void InitialiseProcess(const G4ParticleDefinition*); private: - G4Na21GEMCoulombBarrier(const G4Na21GEMCoulombBarrier & right); - - const G4Na21GEMCoulombBarrier & operator=(const G4Na21GEMCoulombBarrier & right); - G4bool operator==(const G4Na21GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Na21GEMCoulombBarrier & right) const; - - + G4bool isInitialised; }; #endif diff --git a/source/processes/electromagnetic/dna/processes/sources.cmake b/source/processes/electromagnetic/dna/processes/sources.cmake index 15c71f20fc..6aa13467c6 100644 --- a/source/processes/electromagnetic/dna/processes/sources.cmake +++ b/source/processes/electromagnetic/dna/processes/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 91584 2015-07-27 13:01:48Z gcosmo $ +# $Id: sources.cmake 96606 2016-04-25 13:33:42Z gcosmo $ # #------------------------------------------------------------------------------ @@ -59,6 +59,7 @@ GEANT4_DEFINE_MODULE(NAME G4emdna-processes G4DNADissociation.hh G4DNAElastic.hh G4DNAElectronSolvatation.hh + G4DNAElectronSolvation.hh G4DNAElectronHoleRecombination.hh G4DNAExcitation.hh G4DNAIonisation.hh @@ -75,7 +76,7 @@ GEANT4_DEFINE_MODULE(NAME G4emdna-processes G4DNAChargeIncrease.cc G4DNADissociation.cc G4DNAElastic.cc - G4DNAElectronSolvatation.cc + G4DNAElectronSolvation.cc G4DNAElectronHoleRecombination.cc G4DNAExcitation.cc G4DNAIonisation.cc diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNAElectronHoleRecombination.cc b/source/processes/electromagnetic/dna/processes/src/G4DNAElectronHoleRecombination.cc index b1195cd2d1..4ff66e1dc5 100644 --- a/source/processes/electromagnetic/dna/processes/src/G4DNAElectronHoleRecombination.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNAElectronHoleRecombination.cc @@ -44,6 +44,7 @@ #include "G4DNAMolecularMaterial.hh" #include "G4SystemOfUnits.hh" #include "G4MoleculeCounter.hh" +#include "G4Exp.hh" static double onsager_constant = e_squared / (4. * pi * epsilon0 * k_Boltzmann); @@ -94,7 +95,7 @@ double D(double temp) double epsilon(double density, double temperature) { - return 1 + std::exp(std::log(10.)* + return 1 + G4Exp(std::log(10.)* (Y(density) * (C(temperature) + (S(temperature) - 1)*std::log(density)/std::log(10.)) + D(temperature) + std::log(density)/std::log(10.))); @@ -269,7 +270,7 @@ G4bool G4DNAElectronHoleRecombination::FindReactant(const G4Track& track) if(reactants[i].fDistance != 0) { reactants[i].fProbability = 1. - - std::exp(-onsager_radius / reactants[i].fDistance); + - G4Exp(-onsager_radius / reactants[i].fDistance); } else { diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNAElectronSolvatation.cc b/source/processes/electromagnetic/dna/processes/src/G4DNAElectronSolvation.cc similarity index 86% rename from source/processes/electromagnetic/dna/processes/src/G4DNAElectronSolvatation.cc rename to source/processes/electromagnetic/dna/processes/src/G4DNAElectronSolvation.cc index 3aa2d2f66e..a400f12776 100644 --- a/source/processes/electromagnetic/dna/processes/src/G4DNAElectronSolvatation.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNAElectronSolvation.cc @@ -35,29 +35,29 @@ // // ------------------------------------------------------------------- -#include "G4DNAElectronSolvatation.hh" +#include "G4DNAElectronSolvation.hh" #include "G4Electron.hh" #include "G4DNAWaterExcitationStructure.hh" -G4DNAElectronSolvatation::G4DNAElectronSolvatation(const G4String& processName, +G4DNAElectronSolvation::G4DNAElectronSolvation(const G4String& processName, G4ProcessType type):G4VEmProcess (processName, type), isInitialised(false) { SetProcessSubType(58); } -G4DNAElectronSolvatation::~G4DNAElectronSolvatation() +G4DNAElectronSolvation::~G4DNAElectronSolvation() {} -G4bool G4DNAElectronSolvatation::IsApplicable(const G4ParticleDefinition& p) +G4bool G4DNAElectronSolvation::IsApplicable(const G4ParticleDefinition& p) { return (&p == G4Electron::Electron() ) ; } -void G4DNAElectronSolvatation::PrintInfo() +void G4DNAElectronSolvation::PrintInfo() {;} -void G4DNAElectronSolvatation::InitialiseProcess(const G4ParticleDefinition*) +void G4DNAElectronSolvation::InitialiseProcess(const G4ParticleDefinition*) { if(!isInitialised) { diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNAMolecularDissociation.cc b/source/processes/electromagnetic/dna/processes/src/G4DNAMolecularDissociation.cc index 6981c80d36..a16c224fff 100755 --- a/source/processes/electromagnetic/dna/processes/src/G4DNAMolecularDissociation.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNAMolecularDissociation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAMolecularDissociation.cc 93936 2015-11-04 09:37:59Z gcosmo $ +// $Id: G4DNAMolecularDissociation.cc 96060 2016-03-11 12:58:04Z gcosmo $ // // Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr) // diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNAWaterDissociationDisplacer.cc b/source/processes/electromagnetic/dna/processes/src/G4DNAWaterDissociationDisplacer.cc index 6ccd0a64e3..5917686657 100755 --- a/source/processes/electromagnetic/dna/processes/src/G4DNAWaterDissociationDisplacer.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNAWaterDissociationDisplacer.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAWaterDissociationDisplacer.cc 94289 2015-11-11 08:33:40Z gcosmo $ +// $Id: G4DNAWaterDissociationDisplacer.cc 95948 2016-03-03 10:40:33Z gcosmo $ // // Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr) // @@ -50,6 +50,7 @@ #include "G4Molecule.hh" #include "G4MolecularConfiguration.hh" #include "G4RandomDirection.hh" +#include "G4Exp.hh" using namespace std; @@ -68,7 +69,7 @@ const DisplacementType G4DNAWaterDissociationDisplacer::DissociativeAttachment = G4double G4DNAWaterDissociationDisplacer::ElectronProbaDistribution(G4double r) { - return (2*r+1)*exp(-2*r); + return (2*r+1)*G4Exp(-2*r); } //------------------------------------------------------------------------------ diff --git a/source/processes/electromagnetic/dna/utils/include/G4VUserChemistryList.hh b/source/processes/electromagnetic/dna/utils/include/G4VUserChemistryList.hh index 97d5fa8fb3..80f737e02f 100644 --- a/source/processes/electromagnetic/dna/utils/include/G4VUserChemistryList.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4VUserChemistryList.hh @@ -50,20 +50,22 @@ class G4DNAMolecularReactionTable; class G4VITStepModel; class G4MoleculeDefinition; -class G4VPhysicsConstructor; - class G4VUserChemistryList { public: - G4VUserChemistryList(); + G4VUserChemistryList(bool flag = true); virtual ~G4VUserChemistryList(); // If your user class also inherits from G4VPhysicsConstructor, // please put this flag to true - virtual bool IsPhysicsConstructor() + bool IsPhysicsConstructor() { - if((G4VPhysicsConstructor*)(this)) return true; - return false; + return fIsPhysicsConstructor; + } + + void ThisIsAPhysicsConstructor(bool flag = true) + { + fIsPhysicsConstructor = flag; } //////////////////////////////// @@ -95,6 +97,7 @@ protected: void BuildPhysicsTable(G4MoleculeDefinition*); int verboseLevel; + bool fIsPhysicsConstructor; }; #endif /* G4VUSERCHEMISTRYLIST_HH_ */ diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc index 4d01697cef..7dc7a7b4be 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAChemistryManager.cc 93883 2015-11-03 08:25:04Z gcosmo $ +// $Id: G4DNAChemistryManager.cc 97429 2016-06-03 07:16:13Z gcosmo $ // // Author: Mathieu Karamitros (kara@cenbg.in2p3.fr) // @@ -616,10 +616,10 @@ void G4DNAChemistryManager::CreateWaterMolecule(ElectronicModification modificat H2O -> AddElectron(5,1); break; case eExcitedMolecule : - H2O -> ExciteMolecule(electronicLevel); + H2O -> ExciteMolecule(4-electronicLevel); break; case eIonizedMolecule : - H2O -> IonizeMolecule(electronicLevel); + H2O -> IonizeMolecule(4-electronicLevel); break; } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc index d55ce48f54..80186c8c9c 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DNAMolecularReactionTable.cc 94688 2015-12-02 17:15:08Z gunter $ +// $Id: G4DNAMolecularReactionTable.cc 95948 2016-03-03 10:40:33Z gcosmo $ // // Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr) // @@ -48,6 +48,7 @@ #include "G4MolecularConfiguration.hh" #include "G4ReactionTableMessenger.hh" #include "G4IosFlagsSaver.hh" +#include "G4Exp.hh" using namespace std; @@ -191,7 +192,7 @@ double G4DNAMolecularReactionData::PolynomialParam(double temp_K, std::vector P) { - return P[0]*exp(P[1]/temp_K)* + return P[0]*G4Exp(P[1]/temp_K)* (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s)); } diff --git a/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc b/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc index 99005548a5..738f973ede 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc @@ -38,7 +38,8 @@ #include "G4ProcessManager.hh" #include "G4DNAChemistryManager.hh" -G4VUserChemistryList::G4VUserChemistryList() +G4VUserChemistryList::G4VUserChemistryList(bool flag) : +fIsPhysicsConstructor(flag) { verboseLevel = 1; } diff --git a/source/processes/electromagnetic/highenergy/History b/source/processes/electromagnetic/highenergy/History index fa5912b7dd..6886fd3461 100644 --- a/source/processes/electromagnetic/highenergy/History +++ b/source/processes/electromagnetic/highenergy/History @@ -1,4 +1,4 @@ -$Id: History 94080 2015-11-05 15:04:02Z gcosmo $ +$Id: History 97391 2016-06-02 10:08:45Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,8 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +1 Jun 2016: D.Sawkey (emhighenergy-V10-02-00) +- Most files: use C++11 features explicit, override, delete, nullptr 05 Now 2015: G.Cosmo (emhighenergy-V10-01-04) - Replaced use of variable 'L' in G4eeToHadronsModel.cc to avoid diff --git a/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh b/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh index ba4db3c0a8..429f26a3c5 100644 --- a/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh +++ b/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AnnihiToMuPair.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4AnnihiToMuPair.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------ G4AnnihiToMuPair physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002 @@ -58,15 +58,15 @@ class G4AnnihiToMuPair : public G4VDiscreteProcess { public: // with description - G4AnnihiToMuPair(const G4String& processName ="AnnihiToMuPair", + explicit G4AnnihiToMuPair(const G4String& processName ="AnnihiToMuPair", G4ProcessType type = fElectromagnetic); ~G4AnnihiToMuPair(); - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; // true for positron only. - void BuildPhysicsTable(const G4ParticleDefinition&); + void BuildPhysicsTable(const G4ParticleDefinition&) override; // here dummy, just calling PrintInfoDefinition // the total cross section is calculated analytically @@ -91,7 +91,7 @@ class G4AnnihiToMuPair : public G4VDiscreteProcess G4double GetMeanFreePath(const G4Track& aTrack, G4double previousStepSize, - G4ForceCondition* ); + G4ForceCondition* ) override; // It returns the MeanFreePath of the process for the current track : // (energy, material) // The previousStepSize and G4ForceCondition* are not used. @@ -99,7 +99,7 @@ class G4AnnihiToMuPair : public G4VDiscreteProcess // It is invoked by the ProcessManager of the Particle. G4VParticleChange* PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep); + const G4Step& aStep) override; // It computes the final state of the process (at end of step), // returned as a ParticleChange object. // This function overloads a virtual function of the base class. @@ -108,8 +108,8 @@ class G4AnnihiToMuPair : public G4VDiscreteProcess private: // hide assignment operator as private - G4AnnihiToMuPair& operator=(const G4AnnihiToMuPair &right); - G4AnnihiToMuPair(const G4AnnihiToMuPair& ); + G4AnnihiToMuPair& operator=(const G4AnnihiToMuPair &right) = delete; + G4AnnihiToMuPair(const G4AnnihiToMuPair& ) = delete; G4double LowestEnergyLimit; // Energy threshold of e+ G4double HighestEnergyLimit; // Limit of validity of the model diff --git a/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh b/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh index 2fa4bda490..89870f16be 100644 --- a/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BetheBlochNoDeltaModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4BetheBlochNoDeltaModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -56,7 +56,7 @@ class G4BetheBlochNoDeltaModel : public G4BetheBlochModel public: - G4BetheBlochNoDeltaModel(const G4ParticleDefinition* p = 0, + explicit G4BetheBlochNoDeltaModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "BetheBlochNoD"); virtual ~G4BetheBlochNoDeltaModel(); @@ -64,19 +64,20 @@ public: virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; private: // hide assignment operator - G4BetheBlochNoDeltaModel & operator=(const G4BetheBlochNoDeltaModel &right); - G4BetheBlochNoDeltaModel(const G4BetheBlochNoDeltaModel&); + G4BetheBlochNoDeltaModel & + operator=(const G4BetheBlochNoDeltaModel &right) = delete; + G4BetheBlochNoDeltaModel(const G4BetheBlochNoDeltaModel&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh b/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh index 9ce8f86e7c..cd15b86c84 100644 --- a/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BraggNoDeltaModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4BraggNoDeltaModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -56,7 +56,7 @@ class G4BraggNoDeltaModel : public G4BraggIonModel public: - G4BraggNoDeltaModel(const G4ParticleDefinition* p = 0, + explicit G4BraggNoDeltaModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "BraggNoD"); virtual ~G4BraggNoDeltaModel(); @@ -64,18 +64,18 @@ public: virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; private: // hide assignment operator - G4BraggNoDeltaModel & operator=(const G4BraggNoDeltaModel &right); - G4BraggNoDeltaModel(const G4BraggNoDeltaModel&); + G4BraggNoDeltaModel & operator=(const G4BraggNoDeltaModel &right) = delete; + G4BraggNoDeltaModel(const G4BraggNoDeltaModel&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh b/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh index 1e650ebd11..babce62654 100644 --- a/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh +++ b/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GammaConversionToMuons.hh 83660 2014-09-08 09:57:12Z gcosmo $ +// $Id: G4GammaConversionToMuons.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 @@ -63,15 +63,16 @@ class G4GammaConversionToMuons : public G4VDiscreteProcess { public: // with description - G4GammaConversionToMuons(const G4String& processName ="GammaToMuPair", - G4ProcessType type = fElectromagnetic); + explicit G4GammaConversionToMuons( + const G4String& processName ="GammaToMuPair", + G4ProcessType type = fElectromagnetic); ~G4GammaConversionToMuons(); - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; // true for Gamma only. - void BuildPhysicsTable(const G4ParticleDefinition&); + void BuildPhysicsTable(const G4ParticleDefinition&) override; // here dummy, the total cross section parametrization is used rather // than tables, just calling PrintInfoDefinition @@ -88,7 +89,7 @@ class G4GammaConversionToMuons : public G4VDiscreteProcess G4double GetMeanFreePath(const G4Track& aTrack, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; // It returns the MeanFreePath of the process for the current track : // (energy, material) // The previousStepSize and G4ForceCondition* are not used. @@ -96,12 +97,12 @@ class G4GammaConversionToMuons : public G4VDiscreteProcess // It is invoked by the ProcessManager of the Particle. G4double GetCrossSectionPerAtom(const G4DynamicParticle* aDynamicGamma, - G4Element* anElement); + G4Element* anElement); // It returns the total CrossSectionPerAtom of the process, // for the current DynamicGamma (energy), in anElement. G4VParticleChange* PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep); + const G4Step& aStep) override; // It computes the final state of the process (at end of step), // returned as a ParticleChange object. // This function overloads a virtual function of the base class. @@ -109,7 +110,7 @@ class G4GammaConversionToMuons : public G4VDiscreteProcess virtual G4double ComputeCrossSectionPerAtom(G4double GammaEnergy, - G4double AtomicZ,G4double AtomicA); + G4double AtomicZ,G4double AtomicA); G4double ComputeMeanFreePath (G4double GammaEnergy, G4Material* aMaterial); @@ -122,8 +123,9 @@ class G4GammaConversionToMuons : public G4VDiscreteProcess private: // hide assignment operator as private - G4GammaConversionToMuons& operator=(const G4GammaConversionToMuons &right); - G4GammaConversionToMuons(const G4GammaConversionToMuons& ); + G4GammaConversionToMuons& + operator=(const G4GammaConversionToMuons &right) = delete; + G4GammaConversionToMuons(const G4GammaConversionToMuons& ) = delete; private: diff --git a/source/processes/electromagnetic/highenergy/include/G4ICRU73NoDeltaModel.hh b/source/processes/electromagnetic/highenergy/include/G4ICRU73NoDeltaModel.hh index ddd7421a5e..bf270c90e1 100644 --- a/source/processes/electromagnetic/highenergy/include/G4ICRU73NoDeltaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4ICRU73NoDeltaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ICRU73NoDeltaModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4ICRU73NoDeltaModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -56,7 +56,7 @@ class G4ICRU73NoDeltaModel : public G4ICRU73QOModel public: - G4ICRU73NoDeltaModel(const G4ParticleDefinition* p = 0, + explicit G4ICRU73NoDeltaModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "ICRU73QONoD"); virtual ~G4ICRU73NoDeltaModel(); @@ -64,18 +64,19 @@ public: virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; private: // hide assignment operator - G4ICRU73NoDeltaModel & operator=(const G4ICRU73NoDeltaModel &right); - G4ICRU73NoDeltaModel(const G4ICRU73NoDeltaModel&); + G4ICRU73NoDeltaModel & + operator=(const G4ICRU73NoDeltaModel &right) = delete; + G4ICRU73NoDeltaModel(const G4ICRU73NoDeltaModel&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh b/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh index 75899a88b4..d633197fa7 100644 --- a/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh +++ b/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Vee2hadrons.hh 83000 2014-07-24 10:27:23Z gcosmo $ +// $Id: G4Vee2hadrons.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,7 +65,7 @@ class G4Vee2hadrons public: - G4Vee2hadrons(G4eeCrossSections* cr, + explicit G4Vee2hadrons(G4eeCrossSections* cr, G4double vlowEnergy, G4double vhighEnergy, G4double vdelta) : cross(cr) @@ -98,8 +98,8 @@ public: private: // hide assignment operator - G4Vee2hadrons & operator=(const G4Vee2hadrons &right); - G4Vee2hadrons(const G4Vee2hadrons&); + G4Vee2hadrons & operator=(const G4Vee2hadrons &right) = delete; + G4Vee2hadrons(const G4Vee2hadrons&) = delete; // parameters of the table G4double lowEnergy; diff --git a/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh b/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh index 9cd7f342c9..e8904c63b3 100644 --- a/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ee2KChargedModel.hh 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4ee2KChargedModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,16 +61,16 @@ class G4ee2KChargedModel : public G4Vee2hadrons public: - G4ee2KChargedModel(G4eeCrossSections*,G4double,G4double); + explicit G4ee2KChargedModel(G4eeCrossSections*,G4double,G4double); virtual ~G4ee2KChargedModel(); - virtual G4double PeakEnergy() const; + virtual G4double PeakEnergy() const override; - virtual G4double ComputeCrossSection(G4double) const; + virtual G4double ComputeCrossSection(G4double) const override; virtual void SampleSecondaries(std::vector*, - G4double, const G4ThreeVector&); + G4double, const G4ThreeVector&) override; private: diff --git a/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh b/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh index 2fdf7aed2e..35713a4b8f 100644 --- a/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ee2KNeutralModel.hh 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4ee2KNeutralModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,22 +61,22 @@ class G4ee2KNeutralModel : public G4Vee2hadrons public: - G4ee2KNeutralModel(G4eeCrossSections*,G4double,G4double); + explicit G4ee2KNeutralModel(G4eeCrossSections*,G4double,G4double); virtual ~G4ee2KNeutralModel(); - virtual G4double PeakEnergy() const; + virtual G4double PeakEnergy() const override; - virtual G4double ComputeCrossSection(G4double) const; + virtual G4double ComputeCrossSection(G4double) const override; virtual void SampleSecondaries(std::vector*, - G4double, const G4ThreeVector&); + G4double, const G4ThreeVector&) override; private: // hide assignment operator - G4ee2KNeutralModel & operator=(const G4ee2KNeutralModel &right); - G4ee2KNeutralModel(const G4ee2KNeutralModel&); + G4ee2KNeutralModel & operator=(const G4ee2KNeutralModel &right) = delete; + G4ee2KNeutralModel(const G4ee2KNeutralModel&) = delete; G4double massK; G4double massPhi; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh b/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh index a82fa154a1..88555ae1a8 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeCrossSections.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eeCrossSections.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -104,8 +104,8 @@ private: std::complex DpPhi(G4double e); // hide assignment operator - G4eeCrossSections & operator=(const G4eeCrossSections &right); - G4eeCrossSections(const G4eeCrossSections&); + G4eeCrossSections & operator=(const G4eeCrossSections &right) = delete; + G4eeCrossSections(const G4eeCrossSections&) = delete; G4double MsPi, MsPi0, MsEta, MsEtap, MsKs, MsKc, MsRho, MsOm; G4double MsF0, MsA0, MsPhi, MsK892, MsK0892; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh index 269cc77a2b..d2d9dde3ab 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeTo3PiModel.hh 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4eeTo3PiModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,22 +61,22 @@ class G4eeTo3PiModel : public G4Vee2hadrons public: - G4eeTo3PiModel(G4eeCrossSections*,G4double,G4double); + explicit G4eeTo3PiModel(G4eeCrossSections*,G4double,G4double); virtual ~G4eeTo3PiModel(); - virtual G4double PeakEnergy() const; + virtual G4double PeakEnergy() const override; - virtual G4double ComputeCrossSection(G4double) const; + virtual G4double ComputeCrossSection(G4double) const override; virtual void SampleSecondaries(std::vector*, - G4double, const G4ThreeVector&); + G4double, const G4ThreeVector&) override; private: // hide assignment operator - G4eeTo3PiModel & operator=(const G4eeTo3PiModel &right); - G4eeTo3PiModel(const G4eeTo3PiModel&); + G4eeTo3PiModel & operator=(const G4eeTo3PiModel &right) = delete; + G4eeTo3PiModel(const G4eeTo3PiModel&) = delete; G4double massPi; G4double massPi0; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh b/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh index 2850aaeb07..2c9c22b425 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToHadrons.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eeToHadrons.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,29 +61,29 @@ class G4eeToHadrons : public G4VEmProcess public: - G4eeToHadrons(const G4String& name = "ee2hadr"); + explicit G4eeToHadrons(const G4String& name = "ee2hadr"); virtual ~G4eeToHadrons(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; // Set the factor to artificially increase the crossSection (default 1) void SetCrossSecFactor(G4double fac); protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: std::vector* GenerateSecondaries(const G4DynamicParticle*); // hide assignment operator - G4eeToHadrons & operator=(const G4eeToHadrons &right); - G4eeToHadrons(const G4eeToHadrons&); + G4eeToHadrons & operator=(const G4eeToHadrons &right) = delete; + G4eeToHadrons(const G4eeToHadrons&) = delete; G4eeToHadronsMultiModel* multimodel; G4double csFactor; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh index d975094c74..19047037b4 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToHadronsModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eeToHadronsModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,37 +61,38 @@ class G4eeToHadronsModel : public G4VEmModel public: - G4eeToHadronsModel(G4Vee2hadrons*, G4int ver=0, + explicit G4eeToHadronsModel(G4Vee2hadrons*, G4int ver=0, const G4String& nam = "eeToHadrons"); virtual ~G4eeToHadronsModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeCrossSectionPerAtom( - const G4ParticleDefinition*, - G4double kineticEnergy, - G4double Z, G4double A, - G4double cutEnergy = 0.0, - G4double maxEnergy = DBL_MAX); + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double Z, G4double A, + G4double cutEnergy = 0.0, + G4double maxEnergy = DBL_MAX) override; virtual G4double ComputeCrossSectionPerElectron( - const G4ParticleDefinition*, - G4double kineticEnergy, - G4double cutEnergy = 0.0, - G4double maxEnergy = DBL_MAX); + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy = 0.0, + G4double maxEnergy = DBL_MAX); virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin = 0.0, - G4double maxEnergy = DBL_MAX); + G4double maxEnergy = DBL_MAX) override; G4DynamicParticle* GenerateCMPhoton(G4double); @@ -102,8 +103,8 @@ private: void ComputeCMCrossSectionPerElectron(); // hide assignment operator - G4eeToHadronsModel & operator=(const G4eeToHadronsModel &right); - G4eeToHadronsModel(const G4eeToHadronsModel&); + G4eeToHadronsModel & operator=(const G4eeToHadronsModel &right) = delete; + G4eeToHadronsModel(const G4eeToHadronsModel&) = delete; G4Vee2hadrons* model; G4ParticleDefinition* theGamma; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh index 7fda83dede..b90ae4ffcc 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToHadronsMultiModel.hh 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4eeToHadronsMultiModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,30 +66,32 @@ class G4eeToHadronsMultiModel : public G4VEmModel public: - G4eeToHadronsMultiModel(G4int ver=0, const G4String& nam = "eeToHadrons"); + explicit G4eeToHadronsMultiModel(G4int ver=0, + const G4String& nam = "eeToHadrons"); virtual ~G4eeToHadronsMultiModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeCrossSectionPerAtom( - const G4ParticleDefinition*, - G4double kineticEnergy, - G4double Z, G4double A, - G4double cutEnergy = 0.0, - G4double maxEnergy = DBL_MAX); + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double Z, G4double A, + G4double cutEnergy = 0.0, + G4double maxEnergy = DBL_MAX) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin = 0.0, - G4double maxEnergy = DBL_MAX); + G4double maxEnergy = DBL_MAX) override; virtual void PrintInfo(); diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh index b5f70af070..7f520ee74a 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToPGammaModel.hh 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4eeToPGammaModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -62,22 +62,23 @@ class G4eeToPGammaModel : public G4Vee2hadrons public: - G4eeToPGammaModel(G4eeCrossSections*, const G4String&,G4double,G4double); + explicit G4eeToPGammaModel(G4eeCrossSections*, const G4String&, + G4double,G4double); virtual ~G4eeToPGammaModel(); - virtual G4double PeakEnergy() const; + virtual G4double PeakEnergy() const override; - virtual G4double ComputeCrossSection(G4double) const; + virtual G4double ComputeCrossSection(G4double) const override; virtual void SampleSecondaries(std::vector*, - G4double, const G4ThreeVector&); + G4double, const G4ThreeVector&) override; private: // hide assignment operator - G4eeToPGammaModel & operator=(const G4eeToPGammaModel &right); - G4eeToPGammaModel(const G4eeToPGammaModel&); + G4eeToPGammaModel & operator=(const G4eeToPGammaModel &right) = delete; + G4eeToPGammaModel(const G4eeToPGammaModel&) = delete; G4ParticleDefinition* particle; G4ParticleDefinition* pi0; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh index 40469014a0..1bbf024043 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToTwoPiModel.hh 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4eeToTwoPiModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,22 +61,22 @@ class G4eeToTwoPiModel : public G4Vee2hadrons public: - G4eeToTwoPiModel(G4eeCrossSections*,G4double,G4double); + explicit G4eeToTwoPiModel(G4eeCrossSections*,G4double,G4double); virtual ~G4eeToTwoPiModel(); - virtual G4double PeakEnergy() const; + virtual G4double PeakEnergy() const override; - virtual G4double ComputeCrossSection(G4double) const; + virtual G4double ComputeCrossSection(G4double) const override; virtual void SampleSecondaries(std::vector*, - G4double, const G4ThreeVector&); + G4double, const G4ThreeVector&) override; private: // hide assignment operator - G4eeToTwoPiModel & operator=(const G4eeToTwoPiModel &right); - G4eeToTwoPiModel(const G4eeToTwoPiModel&); + G4eeToTwoPiModel & operator=(const G4eeToTwoPiModel &right) = delete; + G4eeToTwoPiModel(const G4eeToTwoPiModel&) = delete; G4double massPi; G4double massRho; diff --git a/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh b/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh index d8ef6b06cc..7d0c2fe0b1 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hBremsstrahlung.hh 72943 2013-08-14 13:40:29Z gcosmo $ +// $Id: G4hBremsstrahlung.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -63,21 +63,21 @@ class G4hBremsstrahlung : public G4MuBremsstrahlung { public: - G4hBremsstrahlung(const G4String& processName = "hBrems"); + explicit G4hBremsstrahlung(const G4String& processName = "hBrems"); virtual ~G4hBremsstrahlung(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; private: - G4hBremsstrahlung & operator=(const G4hBremsstrahlung &right); - G4hBremsstrahlung(const G4hBremsstrahlung&); + G4hBremsstrahlung & operator=(const G4hBremsstrahlung &right) = delete; + G4hBremsstrahlung(const G4hBremsstrahlung&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlungModel.hh b/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlungModel.hh index 3aa9931bc4..25b159407a 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlungModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlungModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hBremsstrahlungModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4hBremsstrahlungModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -58,7 +58,7 @@ class G4hBremsstrahlungModel : public G4MuBremsstrahlungModel public: - G4hBremsstrahlungModel(const G4ParticleDefinition* p = 0, + explicit G4hBremsstrahlungModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "hBrem"); virtual ~G4hBremsstrahlungModel(); @@ -67,12 +67,13 @@ protected: virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, - G4double gammaEnergy); + G4double gammaEnergy) override; private: // hide assignment operator - G4hBremsstrahlungModel & operator=(const G4hBremsstrahlungModel &right); - G4hBremsstrahlungModel(const G4hBremsstrahlungModel&); + G4hBremsstrahlungModel & + operator=(const G4hBremsstrahlungModel &right) = delete; + G4hBremsstrahlungModel(const G4hBremsstrahlungModel&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh b/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh index 6521e02d35..a2c34646f3 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hPairProduction.hh 72943 2013-08-14 13:40:29Z gcosmo $ +// $Id: G4hPairProduction.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,21 +60,21 @@ class G4hPairProduction : public G4MuPairProduction { public: - G4hPairProduction(const G4String& processName = "hPairProd"); + explicit G4hPairProduction(const G4String& processName = "hPairProd"); virtual ~G4hPairProduction(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; private: - G4hPairProduction & operator=(const G4hPairProduction &right); - G4hPairProduction(const G4hPairProduction&); + G4hPairProduction & operator=(const G4hPairProduction &right) = delete; + G4hPairProduction(const G4hPairProduction&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh b/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh index 01445fbcf1..b5247b5326 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hPairProductionModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4hPairProductionModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -58,7 +58,7 @@ class G4hPairProductionModel : public G4MuPairProductionModel public: - G4hPairProductionModel(const G4ParticleDefinition* p = 0, + explicit G4hPairProductionModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "hPairProd"); virtual ~G4hPairProductionModel(); @@ -67,12 +67,13 @@ protected: virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, - G4double pairEnergy); + G4double pairEnergy) override; private: // hide assignment operator - G4hPairProductionModel & operator=(const G4hPairProductionModel &right); - G4hPairProductionModel(const G4hPairProductionModel&); + G4hPairProductionModel & + operator=(const G4hPairProductionModel &right) = delete; + G4hPairProductionModel(const G4hPairProductionModel&) = delete; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh b/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh index 8795b61186..1b415bec45 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hhIonisation.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4hhIonisation.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -63,34 +63,34 @@ class G4hhIonisation : public G4VEnergyLossProcess public: - G4hhIonisation(const G4String& name = "hhIoni"); + explicit G4hhIonisation(const G4String& name = "hhIoni"); virtual ~G4hhIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); + const G4Material*, G4double cut) override; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; private: // hide assignment operator - G4hhIonisation & operator=(const G4hhIonisation &right); - G4hhIonisation(const G4hhIonisation&); + G4hhIonisation & operator=(const G4hhIonisation &right) = delete; + G4hhIonisation(const G4hhIonisation&) = delete; G4double mass; G4double ratio; const G4ParticleDefinition* theParticle; - const G4ParticleDefinition* theBaseParticle; + //const G4ParticleDefinition* theBaseParticle; G4VEmFluctuationModel* flucModel; G4bool isInitialised; diff --git a/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh b/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh index 7e57b91b69..fa3e821641 100644 --- a/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh +++ b/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4mplIonisation.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4mplIonisation.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,25 +66,26 @@ class G4mplIonisation : public G4VEnergyLossProcess public: - G4mplIonisation(G4double mCharge = 0.0, const G4String& name = "mplIoni"); + explicit G4mplIonisation(G4double mCharge = 0.0, + const G4String& name = "mplIoni"); virtual ~G4mplIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; private: // hide assignment operator - G4mplIonisation & operator=(const G4mplIonisation &right); - G4mplIonisation(const G4mplIonisation&); + G4mplIonisation & operator=(const G4mplIonisation &right) = delete; + G4mplIonisation(const G4mplIonisation&) = delete; G4double magneticCharge; G4bool isInitialised; diff --git a/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh b/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh index 1b12a8e442..0bed3a2bcb 100644 --- a/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4mplIonisationModel.hh 76600 2013-11-13 08:30:02Z gcosmo $ +// $Id: G4mplIonisationModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,35 +60,36 @@ class G4mplIonisationModel : public G4VEmModel, public G4VEmFluctuationModel public: - G4mplIonisationModel(G4double mCharge, + explicit G4mplIonisationModel(G4double mCharge, const G4String& nam = "mplIonisation"); virtual ~G4mplIonisationModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmax, G4double length, - G4double meanLoss); + G4double meanLoss) override; virtual G4double Dispersion(const G4Material*, const G4DynamicParticle*, G4double tmax, - G4double length); + G4double length) override; void SetParticle(const G4ParticleDefinition* p); @@ -97,8 +98,9 @@ private: G4double ComputeDEDXAhlen(const G4Material* material, G4double bg2); // hide assignment operator - G4mplIonisationModel & operator=(const G4mplIonisationModel &right); - G4mplIonisationModel(const G4mplIonisationModel&); + G4mplIonisationModel & + operator=(const G4mplIonisationModel &right) = delete; + G4mplIonisationModel(const G4mplIonisationModel&) = delete; const G4ParticleDefinition* monopole; G4ParticleChangeForLoss* fParticleChange; diff --git a/source/processes/electromagnetic/highenergy/include/G4mplIonisationWithDeltaModel.hh b/source/processes/electromagnetic/highenergy/include/G4mplIonisationWithDeltaModel.hh index be732bf89a..c75cf335df 100644 --- a/source/processes/electromagnetic/highenergy/include/G4mplIonisationWithDeltaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4mplIonisationWithDeltaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4mplIonisationWithDeltaModel.hh 76600 2013-11-13 08:30:02Z gcosmo $ +// $Id: G4mplIonisationWithDeltaModel.hh 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,17 +60,18 @@ class G4mplIonisationWithDeltaModel : public G4VEmModel, public G4VEmFluctuation public: - G4mplIonisationWithDeltaModel(G4double mCharge, + explicit G4mplIonisationWithDeltaModel(G4double mCharge, const G4String& nam = "mplIonisationWithDelta"); virtual ~G4mplIonisationWithDeltaModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -83,40 +84,41 @@ public: G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmax, G4double length, - G4double meanLoss); + G4double meanLoss) override; virtual G4double Dispersion(const G4Material*, const G4DynamicParticle*, G4double tmax, - G4double length); + G4double length) override; void SetParticle(const G4ParticleDefinition* p); protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) override; private: G4double ComputeDEDXAhlen(const G4Material* material, G4double bg2, G4double cut); // hide assignment operator - G4mplIonisationWithDeltaModel & operator=(const G4mplIonisationWithDeltaModel &right); - G4mplIonisationWithDeltaModel(const G4mplIonisationWithDeltaModel&); + G4mplIonisationWithDeltaModel & + operator=(const G4mplIonisationWithDeltaModel &right) = delete; + G4mplIonisationWithDeltaModel(const G4mplIonisationWithDeltaModel&) = delete; const G4ParticleDefinition* monopole; G4ParticleDefinition* theElectron; diff --git a/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc b/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc index 0f69c2ab71..9f364f825a 100644 --- a/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc +++ b/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4AnnihiToMuPair.cc 91869 2015-08-07 15:21:02Z gcosmo $ +// $Id: G4AnnihiToMuPair.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------ G4AnnihiToMuPair physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002 @@ -60,10 +60,10 @@ G4AnnihiToMuPair::G4AnnihiToMuPair(const G4String& processName, { //e+ Energy threshold const G4double Mu_massc2 = G4MuonPlus::MuonPlus()->GetPDGMass(); - LowestEnergyLimit = 2*Mu_massc2*Mu_massc2/electron_mass_c2 - electron_mass_c2; + LowestEnergyLimit = 2.*Mu_massc2*Mu_massc2/electron_mass_c2 - electron_mass_c2; //modele ok up to 1000 TeV due to neglected Z-interference - HighestEnergyLimit = 1000*TeV; + HighestEnergyLimit = 1000.*TeV; CurrentSigma = 0.0; CrossSecFactor = 1.; diff --git a/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc b/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc index 5daaf84dd7..462f686b54 100644 --- a/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc +++ b/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GammaConversionToMuons.cc 91869 2015-08-07 15:21:02Z gcosmo $ +// $Id: G4GammaConversionToMuons.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 @@ -57,7 +57,7 @@ G4GammaConversionToMuons::G4GammaConversionToMuons(const G4String& processName, : G4VDiscreteProcess (processName, type), Mmuon(G4MuonPlus::MuonPlus()->GetPDGMass()), Rc(elm_coupling/Mmuon), - LowestEnergyLimit (4*Mmuon), // 4*Mmuon + LowestEnergyLimit (4.*Mmuon), // 4*Mmuon HighestEnergyLimit(1e21*eV), // ok to 1e21eV=1e12GeV, then LPM suppression CrossSecFactor(1.) { @@ -156,7 +156,7 @@ G4double G4GammaConversionToMuons::ComputeCrossSectionPerAtom( // Total cross section parametrisation from H.Burkhardt // It gives a good description at any energy (from 0 to 10**21 eV) { - if(Egam <= LowestEnergyLimit) return 0 ; // below threshold return 0 + if(Egam <= LowestEnergyLimit) return 0.0 ; // below threshold return 0 G4int Z = G4lrint(ZZ); G4double CrossSection = 0.0; diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc index f515f5fa47..8528d61dff 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToHadrons.cc 85013 2014-10-23 09:45:07Z gcosmo $ +// $Id: G4eeToHadrons.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -59,7 +59,7 @@ using namespace std; G4eeToHadrons::G4eeToHadrons(const G4String& name) : G4VEmProcess(name), - multimodel(0), + multimodel(nullptr), csFactor(1.0), isInitialised(false) { diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc index 4d5ca143aa..313972a8bc 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToHadronsModel.cc 94080 2015-11-05 15:04:02Z gcosmo $ +// $Id: G4eeToHadronsModel.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -128,7 +128,7 @@ void G4eeToHadronsModel::Initialise(const G4ParticleDefinition*, ComputeCMCrossSectionPerElectron(); if(verbose>1) { - G4cout << "G4eeToHadronsModel: Cross secsions per electron" + G4cout << "G4eeToHadronsModel: Cross sections per electron" << " nbins= " << nbins << " emin(MeV)= " << emin/MeV << " emax(MeV)= " << emax/MeV @@ -279,7 +279,7 @@ void G4eeToHadronsModel::ComputeCMCrossSectionPerElectron() G4DynamicParticle* G4eeToHadronsModel::GenerateCMPhoton(G4double e) { G4double x; - G4DynamicParticle* gamma = 0; + G4DynamicParticle* gamma = nullptr; G4double LL = 2.0*G4Log(e/electron_mass_c2); G4double bt = 2.0*fine_structure_const*(LL - 1.)/pi; G4double btm1= bt - 1.0; diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc index c3c35e0e48..562d82a0ff 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToHadronsMultiModel.cc 82961 2014-07-21 09:20:49Z gcosmo $ +// $Id: G4eeToHadronsMultiModel.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -72,8 +72,8 @@ G4eeToHadronsMultiModel::G4eeToHadronsMultiModel(G4int ver, { thKineticEnergy = DBL_MAX; maxKineticEnergy = 4.521*GeV; //crresponding to 10TeV in lab - fParticleChange = 0; - cross = 0; + fParticleChange = nullptr; + cross = nullptr; delta = 1.0*MeV; //for bin width } diff --git a/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc b/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc index de0a2a472f..ffb973fa81 100644 --- a/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc +++ b/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hBremsstrahlung.cc 85013 2014-10-23 09:45:07Z gcosmo $ +// $Id: G4hBremsstrahlung.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -80,7 +80,7 @@ void G4hBremsstrahlung::InitialiseEnergyLossProcess( isInitialised = true; if (!EmModel()) { SetEmModel(new G4hBremsstrahlungModel()); } - G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = nullptr; G4EmParameters* param = G4EmParameters::Instance(); EmModel()->SetLowEnergyLimit(param->MinKinEnergy()); EmModel()->SetHighEnergyLimit(param->MaxKinEnergy()); diff --git a/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc b/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc index 7d01be55fb..d527ca2e6d 100644 --- a/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc +++ b/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hPairProduction.cc 85013 2014-10-23 09:45:07Z gcosmo $ +// $Id: G4hPairProduction.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -81,10 +81,10 @@ void G4hPairProduction::InitialiseEnergyLossProcess( theParticle = part; if (!EmModel()) { SetEmModel(new G4hPairProductionModel(part)); } - G4double limit = part->GetPDGMass()*8; + G4double limit = part->GetPDGMass()*8.; if(limit > lowestKinEnergy) { lowestKinEnergy = limit; } - G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = nullptr; G4EmParameters* param = G4EmParameters::Instance(); EmModel()->SetLowEnergyLimit(param->MinKinEnergy()); EmModel()->SetHighEnergyLimit(param->MaxKinEnergy()); diff --git a/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc b/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc index 17e06a274e..20e15b87a5 100644 --- a/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hPairProductionModel.cc 74020 2013-09-19 13:38:38Z gcosmo $ +// $Id: G4hPairProductionModel.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -100,7 +100,7 @@ G4double G4hPairProductionModel::ComputeDMicroscopicCrossSection( if( Z < 1.5 ) { bbb = bbbh ; g1 = g1h ; g2 = g2h ; } else { bbb = bbbtf; g1 = g1tf; g2 = g2tf; } - G4double zeta = 0; + G4double zeta = 0.; G4double zeta1 = 0.073*G4Log(totalEnergy/(particleMass+g1*z23*totalEnergy))-0.26; if ( zeta1 > 0.) diff --git a/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc b/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc index a184eb39a6..c9ba238e64 100644 --- a/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc +++ b/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hhIonisation.cc 85013 2014-10-23 09:45:07Z gcosmo $ +// $Id: G4hhIonisation.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -63,8 +63,8 @@ G4hhIonisation::G4hhIonisation(const G4String& name) : G4VEnergyLossProcess(name), - theParticle(0), - theBaseParticle(0), + theParticle(nullptr), + //theBaseParticle(nullptr), isInitialised(false) { SetStepFunction(0.1, 0.1*mm); @@ -73,7 +73,7 @@ G4hhIonisation::G4hhIonisation(const G4String& name) SetSecondaryParticle(G4Electron::Electron()); mass = 0.0; ratio = 0.0; - flucModel = 0; + flucModel = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -130,7 +130,7 @@ void G4hhIonisation::InitialiseEnergyLossProcess( G4int bin = G4lrint(param->NumberOfBinsPerDecade()*std::log10(emax/emin)); SetDEDXBinning(bin); - G4VEmModel* em = 0; + G4VEmModel* em = nullptr; if(part->GetPDGCharge() > 0.0) { em = new G4BraggNoDeltaModel(); } else { em = new G4ICRU73NoDeltaModel(); } em->SetLowEnergyLimit(emin); diff --git a/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc b/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc index b0d5e21627..a328a5f84f 100644 --- a/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4mplIonisationModel.cc 91869 2015-08-07 15:21:02Z gcosmo $ +// $Id: G4mplIonisationModel.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,7 +66,7 @@ using namespace std; -std::vector* G4mplIonisationModel::dedx0 = 0; +std::vector* G4mplIonisationModel::dedx0 = nullptr; G4mplIonisationModel::G4mplIonisationModel(G4double mCharge, const G4String& nam) : G4VEmModel(nam),G4VEmFluctuationModel(nam), @@ -83,8 +83,8 @@ G4mplIonisationModel::G4mplIonisationModel(G4double mCharge, const G4String& nam pi_hbarc2_over_mc2 = pi * hbarc * hbarc / electron_mass_c2; chargeSquare = magCharge * magCharge; dedxlim = 45.*nmpl*nmpl*GeV*cm2/g; - fParticleChange = 0; - monopole = 0; + fParticleChange = nullptr; + monopole = nullptr; mass = 0.0; } @@ -102,9 +102,9 @@ void G4mplIonisationModel::SetParticle(const G4ParticleDefinition* p) monopole = p; mass = monopole->GetPDGMass(); G4double emin = - std::min(LowEnergyLimit(),0.1*mass*(1/sqrt(1 - betalow*betalow) - 1)); + std::min(LowEnergyLimit(),0.1*mass*(1./sqrt(1. - betalow*betalow) - 1.)); G4double emax = - std::max(HighEnergyLimit(),10*mass*(1/sqrt(1 - beta2lim) - 1)); + std::max(HighEnergyLimit(),10.*mass*(1./sqrt(1. - beta2lim) - 1.)); SetLowEnergyLimit(emin); SetHighEnergyLimit(emax); } @@ -130,9 +130,9 @@ void G4mplIonisationModel::Initialise(const G4ParticleDefinition* p, const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); G4double eDensity = material->GetElectronDensity(); - G4double vF = electron_Compton_length*pow(3*pi*pi*eDensity,0.3333333333); + G4double vF = electron_Compton_length*pow(3.*pi*pi*eDensity,0.3333333333); (*dedx0)[i] = pi_hbarc2_over_mc2*eDensity*nmpl*nmpl* - (G4Log(2*vF/fine_structure_const) - 0.5)/vF; + (G4Log(2.*vF/fine_structure_const) - 0.5)/vF; } } } @@ -214,7 +214,7 @@ G4double G4mplIonisationModel::ComputeDEDXAhlen(const G4Material* material, // now compute the total ionization loss dedx *= pi_hbarc2_over_mc2 * eDensity * nmpl * nmpl; - if (dedx < 0.0) dedx = 0; + if (dedx < 0.0) dedx = 0.; return dedx; } diff --git a/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc b/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc index 15d03302a5..c78094976a 100644 --- a/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4mplIonisationWithDeltaModel.cc 91869 2015-08-07 15:21:02Z gcosmo $ +// $Id: G4mplIonisationWithDeltaModel.cc 97391 2016-06-02 10:08:45Z gcosmo $ // // ------------------------------------------------------------------- // @@ -68,7 +68,7 @@ using namespace std; -std::vector* G4mplIonisationWithDeltaModel::dedx0 = 0; +std::vector* G4mplIonisationWithDeltaModel::dedx0 = nullptr; G4mplIonisationWithDeltaModel::G4mplIonisationWithDeltaModel(G4double mCharge, const G4String& nam) @@ -86,11 +86,11 @@ G4mplIonisationWithDeltaModel::G4mplIonisationWithDeltaModel(G4double mCharge, pi_hbarc2_over_mc2 = pi * hbarc * hbarc / electron_mass_c2; chargeSquare = magCharge * magCharge; dedxlim = 45.*nmpl*nmpl*GeV*cm2/g; - fParticleChange = 0; + fParticleChange = nullptr; theElectron = G4Electron::Electron(); G4cout << "### Monopole ionisation model with d-electron production, Gmag= " << magCharge/eplus << G4endl; - monopole = 0; + monopole = nullptr; mass = 0.0; } @@ -108,9 +108,9 @@ void G4mplIonisationWithDeltaModel::SetParticle(const G4ParticleDefinition* p) monopole = p; mass = monopole->GetPDGMass(); G4double emin = - std::min(LowEnergyLimit(),0.1*mass*(1/sqrt(1 - betalow*betalow) - 1)); + std::min(LowEnergyLimit(),0.1*mass*(1./sqrt(1. - betalow*betalow) - 1.)); G4double emax = - std::max(HighEnergyLimit(),10*mass*(1/sqrt(1 - beta2lim) - 1)); + std::max(HighEnergyLimit(),10*mass*(1./sqrt(1. - beta2lim) - 1.)); SetLowEnergyLimit(emin); SetHighEnergyLimit(emax); } @@ -137,7 +137,7 @@ G4mplIonisationWithDeltaModel::Initialise(const G4ParticleDefinition* p, const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); G4double eDensity = material->GetElectronDensity(); - G4double vF = electron_Compton_length*pow(3*pi*pi*eDensity,0.3333333333); + G4double vF = electron_Compton_length*pow(3.*pi*pi*eDensity,0.3333333333); (*dedx0)[i] = pi_hbarc2_over_mc2*eDensity*nmpl*nmpl* (G4Log(2*vF/fine_structure_const) - 0.5)/vF; } @@ -218,7 +218,7 @@ G4mplIonisationWithDeltaModel::ComputeDEDXAhlen(const G4Material* material, // now compute the total ionization loss dedx *= pi_hbarc2_over_mc2 * eDensity * nmpl * nmpl; - if (dedx < 0.0) { dedx = 0; } + if (dedx < 0.0) { dedx = 0.; } return dedx; } diff --git a/source/processes/electromagnetic/lowenergy/History b/source/processes/electromagnetic/lowenergy/History index 2493f33eb2..9dd0334b7f 100644 --- a/source/processes/electromagnetic/lowenergy/History +++ b/source/processes/electromagnetic/lowenergy/History @@ -1,4 +1,4 @@ -$Id: History 94083 2015-11-05 15:06:58Z gcosmo $ +$Id: History 97098 2016-05-25 08:04:17Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,32 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +24.05.2015 L. Pandola, emlowen-V10-02-06 +- fix compiler warning in G4PenelopeRayleighModel by gcc-6.1 + +10.05.2016 JMCBrown, SI, emlowen-V10-02-05 +- updated G4LowEPComptonModel to fix problem 1676 + +04.05.2016 V.Ivanchenko, emlowen-V10-02-04 +- G4ecpssrBaseLixsModel - fixed gcc6.1 warning + +04-03-2016, SI, tag emlowen-V10-02-03 +-replaced std::log by G4Log in test +-replaced std::log10() by G4Log()/g4pow->logZ(10) in tests + +02.03.2016 S. Incerti, emlowen-V10-02-02 + - Replaced std::exp by G4Exp + +20.01.2016 S. Incerti, emlowen-V10-02-01 + - Fixed bugzilla 1816 + +11.12.2015 V.Ivanchenko, emlowen-V10-02-00 + - G4LivermorePolarizedPhotoElectricGDModel - fixed Coverity warning + - G4LivermorePolarizedPhotoElectricGDModel, G4LivermorePolarizedPhotoElectricModel + G4LivermorePolarizedPhotoElectricModel, G4LivermorePolarizedGammaConversionModel, + G4LivermoreGammaConversionModelRC, G4LivermoreGammaConversionModel - use nullptr, + removed commented code, improve formatting of the code + 05.11.2015 G.Cosmo, emlowen-V10-01-17 - Replaced use of variable 'L' in G4Generator2BN.cc to avoid shadowing of new volumetric units. diff --git a/source/processes/electromagnetic/lowenergy/include/G4IonDEDXScalingICRU73.hh b/source/processes/electromagnetic/lowenergy/include/G4IonDEDXScalingICRU73.hh index ad2418c1ba..8ba252abc2 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4IonDEDXScalingICRU73.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4IonDEDXScalingICRU73.hh @@ -57,7 +57,7 @@ #include "G4Material.hh" #include "G4ParticleDefinition.hh" #include - +#include "G4Exp.hh" class G4IonDEDXScalingICRU73 : public G4VIonDEDXScalingAlgorithm { @@ -192,7 +192,7 @@ inline G4double G4IonDEDXScalingICRU73::EquilibriumCharge( G4double velOverBohrVel = beta / CLHEP::fine_structure_const; - G4double q1 = 1.0 - std::exp(-velOverBohrVel / atomicNumberPow); + G4double q1 = 1.0 - G4Exp(-velOverBohrVel / atomicNumberPow); return q1 * charge; } diff --git a/source/processes/electromagnetic/lowenergy/include/G4LivermoreGammaConversionModelRC.hh b/source/processes/electromagnetic/lowenergy/include/G4LivermoreGammaConversionModelRC.hh index 13764f459f..30eff6f2ae 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LivermoreGammaConversionModelRC.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LivermoreGammaConversionModelRC.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LivermoreGammaConversionModelRC.hh 93810 2015-11-02 11:27:56Z gcosmo $ +// $Id: G4LivermoreGammaConversionModelRC.hh 94854 2015-12-11 13:54:09Z gcosmo $ // // Authors: G.Depaola & F.Longo // @@ -35,21 +35,15 @@ #include "G4LPhysicsFreeVector.hh" #include "G4ProductionCutsTable.hh" -//#include "G4Electron.hh" -//#include "G4Positron.hh" - - class G4ParticleChangeForGamma; - - class G4LivermoreGammaConversionModelRC : public G4VEmModel { public: G4LivermoreGammaConversionModelRC(const G4ParticleDefinition* p = 0, - const G4String& nam = "LivermoreGammaConversionRC_1"); + const G4String& nam = "LivermoreGammaConversionRC_1"); virtual ~G4LivermoreGammaConversionModelRC(); @@ -84,11 +78,9 @@ private: G4double lowEnergyLimit; - // G4double highEnergyLimit; G4bool isInitialised; G4int verboseLevel; - void ReadData(size_t Z, const char* path = 0); G4double ScreenFunction1(G4double screenVariable); @@ -108,8 +100,6 @@ private: G4double fbeta (G4double x); G4double Dilog (G4double x); - - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricGDModel.hh b/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricGDModel.hh index da0c55531a..acc944d751 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricGDModel.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricGDModel.hh @@ -34,9 +34,6 @@ #include "G4VEmModel.hh" #include "G4ElementData.hh" -//#include "G4Electron.hh" -//#include "G4CrossSectionHandler.hh" - class G4ParticleChangeForGamma; class G4VAtomDeexcitation; @@ -87,8 +84,6 @@ private: G4ParticleDefinition* theGamma; G4ParticleDefinition* theElectron; - G4double lowEnergyLimit; - G4double highEnergyLimit; G4int verboseLevel; G4int maxZ; @@ -110,10 +105,6 @@ private: G4double fCurrSection; std::vector fSandiaCof; -// G4VCrossSectionHandler* crossSectionHandler; -// G4VCrossSectionHandler* shellCrossSectionHandler; - - // specific methods for polarization -- FL & GD G4ThreeVector GetRandomPolarization(G4ThreeVector& direction0); // Random Polarization @@ -128,10 +119,8 @@ private: void SystemOfRefChange(G4ThreeVector& direction0, G4ThreeVector& direction1, G4ThreeVector& polarization0); - }; - inline void G4LivermorePolarizedPhotoElectricGDModel::SetLimitNumberOfShells(G4int n) { nShellLimit = n; diff --git a/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricModel.hh b/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricModel.hh index 83d04de6f7..b501ce0da2 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricModel.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedPhotoElectricModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LivermorePolarizedPhotoElectricModel.hh 93359 2015-10-19 13:42:18Z gcosmo $ +// $Id: G4LivermorePolarizedPhotoElectricModel.hh 95040 2016-01-20 11:26:14Z gcosmo $ // // Author: Sebastien Incerti // 30 October 2008 @@ -36,8 +36,8 @@ // -#ifndef G4LivermorePhotoElectricModel_h -#define G4LivermorePhotoElectricModel_h 1 +#ifndef G4LivermorePolarizedPhotoElectricModel_h +#define G4LivermorePolarizedPhotoElectricModel_h 1 #include "G4VEmModel.hh" #include "G4ElementData.hh" @@ -52,8 +52,7 @@ class G4LivermorePolarizedPhotoElectricModel : public G4VEmModel public: - G4LivermorePolarizedPhotoElectricModel( - const G4String& nam = "LivermorePolarizedPhotoElectric"); + G4LivermorePolarizedPhotoElectricModel(const G4String& nam = "LivermorePolarizedPhotoElectric"); virtual ~G4LivermorePolarizedPhotoElectricModel(); diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEPComptonModel.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEPComptonModel.hh index 6d007be185..fe87b24e15 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEPComptonModel.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEPComptonModel.hh @@ -63,6 +63,7 @@ // | Feb. 2013 JMCB - Geant4 9.6 FPE fix for bug 1426 | // | Jan. 2015 JMCB - Migration to MT (Based on Livermore | // | implementation) | +// | Feb. 2016 JMCB - Geant4 10.2 FPE fix for bug 1676 | // | | // ********************************************************************* diff --git a/source/processes/electromagnetic/lowenergy/src/G4Generator2BN.cc b/source/processes/electromagnetic/lowenergy/src/G4Generator2BN.cc index 97c9840605..6c12a3b1cb 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4Generator2BN.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4Generator2BN.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Generator2BN.cc 94083 2015-11-05 15:06:58Z gcosmo $ +// $Id: G4Generator2BN.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // ------------------------------------------------------------------- // @@ -38,25 +38,26 @@ // // Creation date: 21 June 2003 // -// Modifications: +// Modifications: // 21 Jun 2003 First implementation acording with new design // 05 Nov 2003 MGP Fixed compilation warning // 14 Mar 2004 Code optimization // -// Class Description: +// Class Description: // -// Concrete base class for Bremsstrahlung Angular Distribution Generation +// Concrete base class for Bremsstrahlung Angular Distribution Generation // 2BN Distribution // -// Class Description: End +// Class Description: End // // ------------------------------------------------------------------- -// +// #include "G4Generator2BN.hh" #include "Randomize.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" // @@ -175,9 +176,9 @@ G4Generator2BN::G4Generator2BN(const G4String&) // ConstructMajorantSurface(); } -// +// -G4Generator2BN::~G4Generator2BN() +G4Generator2BN::~G4Generator2BN() {} G4ThreeVector& G4Generator2BN::SampleDirection(const G4DynamicParticle* dp, @@ -217,7 +218,7 @@ G4ThreeVector& G4Generator2BN::SampleDirection(const G4DynamicParticle* dp, // generate k accordimg to std::pow(k,-b) trials++; - // normalization constant + // normalization constant // cte1 = (1-b)/(std::pow(kmax,(1-b))-std::pow(kmin2,(1-b))); // y = G4UniformRand(); // k = std::pow(((1-b)/cte1*y+std::pow(kmin2,(1-b))),(1/(1-b))); @@ -227,7 +228,7 @@ G4ThreeVector& G4Generator2BN::SampleDirection(const G4DynamicParticle* dp, cte2 = 2*c/std::log(1+c*pi2); y = G4UniformRand(); - t = std::sqrt((std::exp(2*c*y/cte2)-1)/c); + t = std::sqrt((G4Exp(2*c*y/cte2)-1)/c); u = G4UniformRand(); // point acceptance algorithm @@ -239,19 +240,19 @@ G4ThreeVector& G4Generator2BN::SampleDirection(const G4DynamicParticle* dp, // violation point if(ds > dmax && nwarn >= 20) { ++nwarn; - G4cout << "### WARNING in G4Generator2BN: Ekin(MeV)= " << Ek/MeV + G4cout << "### WARNING in G4Generator2BN: Ekin(MeV)= " << Ek/MeV << " D(Ekin,k)/Dmax-1= " << (ds/dmax - 1) - << " results are not reliable!" + << " results are not reliable!" << G4endl; - if(20 == nwarn) { - G4cout << " WARNING in G4Generator2BN is closed" << G4endl; + if(20 == nwarn) { + G4cout << " WARNING in G4Generator2BN is closed" << G4endl; } } } while(u*dmax > ds || t > CLHEP::pi); G4double sint = std::sin(t); - G4double phi = twopi*G4UniformRand(); + G4double phi = twopi*G4UniformRand(); fLocalDirection.set(sint*std::cos(phi), sint*std::sin(phi),std::cos(t)); fLocalDirection.rotateUz(dp->GetMomentumDirection()); @@ -380,7 +381,7 @@ void G4Generator2BN::ConstructMajorantSurface() A = 2*std::sqrt(c)*dsmax/(std::pow(kmin,-b)); } - // look for correction factor to normalization at kmin + // look for correction factor to normalization at kmin ratmin = 1.; // Volume under surfaces @@ -429,5 +430,4 @@ void G4Generator2BN::PrintGeneratorInformation() const G4cout << "\n" << G4endl; G4cout << "Bremsstrahlung Angular Generator is 2BN Generator from 2BN Koch & Motz distribution (Rev Mod Phys 31(4), 920 (1959))" << G4endl; G4cout << "\n" << G4endl; -} - +} diff --git a/source/processes/electromagnetic/lowenergy/src/G4IonDEDXHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4IonDEDXHandler.cc index c0ecff1c69..1fc44acf10 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4IonDEDXHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4IonDEDXHandler.cc @@ -34,7 +34,7 @@ // // First implementation: 11. 03. 2009 // -// Modifications: 12. 11 .2009 - Function BuildDEDXTable: Using adapted build +// Modifications: 12. 11 .2009 - Function BuildDEDXTable: Using adapted build // methods of stopping power classes according // to interface change in G4VIonDEDXTable. // Function UpdateCacheValue: Using adapted @@ -43,11 +43,11 @@ // Algorithm (AL) // // Class description: -// Ion dE/dx table handler. +// Ion dE/dx table handler. // // Comments: // -// =========================================================================== +// =========================================================================== #include @@ -58,6 +58,7 @@ #include "G4ParticleDefinition.hh" #include "G4Material.hh" #include "G4LPhysicsFreeVector.hh" +#include "G4Exp.hh" //#define PRINT_DEBUG @@ -78,19 +79,19 @@ G4IonDEDXHandler::G4IonDEDXHandler( if(table == 0) { G4cerr << "G4IonDEDXHandler::G4IonDEDXHandler() " - << " Pointer to G4VIonDEDXTable object is null-pointer." + << " Pointer to G4VIonDEDXTable object is null-pointer." << G4endl; } if(algorithm == 0) { G4cerr << "G4IonDEDXHandler::G4IonDEDXHandler() " - << " Pointer to G4VIonDEDXScalingAlgorithm object is null-pointer." + << " Pointer to G4VIonDEDXScalingAlgorithm object is null-pointer." << G4endl; } if(maxCacheEntries <= 0) { G4cerr << "G4IonDEDXHandler::G4IonDEDXHandler() " - << " Cache size <=0. Resetting to 5." + << " Cache size <=0. Resetting to 5." << G4endl; maxCacheEntries = 5; } @@ -104,7 +105,7 @@ G4IonDEDXHandler::~G4IonDEDXHandler() { // All stopping power vectors built according to Bragg's addivitiy rule // are deleted. All other stopping power vectors are expected to be - // deleted by their creator class (sub-class of G4VIonDEDXTable). + // deleted by their creator class (sub-class of G4VIonDEDXTable). // DEDXTableBraggRule::iterator iter = stoppingPowerTableBragg.begin(); // DEDXTableBraggRule::iterator iter_end = stoppingPowerTableBragg.end(); @@ -120,10 +121,10 @@ G4IonDEDXHandler::~G4IonDEDXHandler() { // ######################################################################### G4bool G4IonDEDXHandler::IsApplicable( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material) { // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material) { // Target material - G4bool isApplicable = true; + G4bool isApplicable = true; if(table == 0 || algorithm == 0) { isApplicable = false; @@ -131,36 +132,36 @@ G4bool G4IonDEDXHandler::IsApplicable( else { G4int atomicNumberIon = particle -> GetAtomicNumber(); - G4int atomicNumberBase = + G4int atomicNumberBase = algorithm -> AtomicNumberBaseIon(atomicNumberIon, material); G4IonKey key = std::make_pair(atomicNumberBase, material); DEDXTable::iterator iter = stoppingPowerTable.find(key); - if(iter == stoppingPowerTable.end()) isApplicable = false; + if(iter == stoppingPowerTable.end()) isApplicable = false; } - return isApplicable; + return isApplicable; } // ######################################################################### G4double G4IonDEDXHandler::GetDEDX( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material, // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material, // Target material G4double kineticEnergy) { // Kinetic energy of projectile G4double dedx = 0.0; - G4CacheValue value = GetCacheValue(particle, material); - + G4CacheValue value = GetCacheValue(particle, material); + if(kineticEnergy <= 0.0) dedx = 0.0; else if(value.dedxVector != 0) { - + G4bool b; G4double factor = value.density; - factor *= algorithm -> ScalingFactorDEDX(particle, + factor *= algorithm -> ScalingFactorDEDX(particle, material, kineticEnergy); G4double scaledKineticEnergy = kineticEnergy * value.energyScaling; @@ -178,10 +179,10 @@ G4double G4IonDEDXHandler::GetDEDX( else dedx = 0.0; #ifdef PRINT_DEBUG - G4cout << "G4IonDEDXHandler::GetDEDX() E = " + G4cout << "G4IonDEDXHandler::GetDEDX() E = " << kineticEnergy / MeV << " MeV * " << value.energyScaling << " = " - << kineticEnergy * value.energyScaling / MeV + << kineticEnergy * value.energyScaling / MeV << " MeV, dE/dx = " << dedx / MeV * cm << " MeV/cm" << ", material = " << material -> GetName() << G4endl; @@ -193,8 +194,8 @@ G4double G4IonDEDXHandler::GetDEDX( // ######################################################################### G4bool G4IonDEDXHandler::BuildDEDXTable( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material) { // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material) { // Target material G4int atomicNumberIon = particle -> GetAtomicNumber(); @@ -207,20 +208,20 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( // ######################################################################### G4bool G4IonDEDXHandler::BuildDEDXTable( - G4int atomicNumberIon, // Projectile (ion) - const G4Material* material) { // Target material + G4int atomicNumberIon, // Projectile (ion) + const G4Material* material) { // Target material - G4bool isApplicable = true; + G4bool isApplicable = true; if(table == 0 || algorithm == 0) { isApplicable = false; return isApplicable; } - G4int atomicNumberBase = + G4int atomicNumberBase = algorithm -> AtomicNumberBaseIon(atomicNumberIon, material); - // Checking if vector is already built, and returns if this is indeed + // Checking if vector is already built, and returns if this is indeed // the case G4IonKey key = std::make_pair(atomicNumberBase, material); @@ -234,15 +235,15 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( isApplicable = table -> BuildPhysicsVector(atomicNumberBase, chemFormula); - if(isApplicable) { - stoppingPowerTable[key] = + if(isApplicable) { + stoppingPowerTable[key] = table -> GetPhysicsVector(atomicNumberBase, chemFormula); return isApplicable; } isApplicable = table -> BuildPhysicsVector(atomicNumberBase, materialName); - if(isApplicable) { - stoppingPowerTable[key] = + if(isApplicable) { + stoppingPowerTable[key] = table -> GetPhysicsVector(atomicNumberBase, materialName); return isApplicable; } @@ -260,9 +261,9 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( isApplicable = table -> BuildPhysicsVector(atomicNumberBase, atomicNumberMat); - if(isApplicable) { + if(isApplicable) { - G4PhysicsVector* dEdx = + G4PhysicsVector* dEdx = table -> GetPhysicsVector(atomicNumberBase, atomicNumberMat); dEdxTable.push_back(dEdx); } @@ -272,7 +273,7 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( break; } } - + if(isApplicable) { if(dEdxTable.size() > 0) { @@ -281,7 +282,7 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( G4double lowerEdge = dEdxTable[0] -> GetLowEdgeEnergy(0); G4double upperEdge = dEdxTable[0] -> GetLowEdgeEnergy(nmbdEdxBins-1); - G4LPhysicsFreeVector* dEdxBragg = + G4LPhysicsFreeVector* dEdxBragg = new G4LPhysicsFreeVector(nmbdEdxBins, lowerEdge, upperEdge); @@ -295,12 +296,12 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( G4double value = 0.0; for(size_t i = 0; i < nmbElements; i++) { - + value += (dEdxTable[i] -> GetValue(edge ,b)) * massFractionVector[i]; } - dEdxBragg -> PutValues(j, edge, value); + dEdxBragg -> PutValues(j, edge, value); } dEdxBragg -> SetSpline(useSplines); @@ -316,7 +317,7 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( stoppingPowerTable[key] = dEdxBragg; stoppingPowerTableBragg[key] = dEdxBragg; } - } + } ClearCache(); @@ -326,13 +327,13 @@ G4bool G4IonDEDXHandler::BuildDEDXTable( // ######################################################################### G4CacheValue G4IonDEDXHandler::UpdateCacheValue( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material) { // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material) { // Target material G4CacheValue value; G4int atomicNumberIon = particle -> GetAtomicNumber(); - G4int atomicNumberBase = + G4int atomicNumberBase = algorithm -> AtomicNumberBaseIon(atomicNumberIon, material); G4IonKey key = std::make_pair(atomicNumberBase, material); @@ -341,30 +342,30 @@ G4CacheValue G4IonDEDXHandler::UpdateCacheValue( if(iter != stoppingPowerTable.end()) { value.dedxVector = iter -> second; - + G4double nmbNucleons = G4double(particle -> GetAtomicMass()); - value.energyScaling = + value.energyScaling = algorithm -> ScalingFactorEnergy(particle, material) / nmbNucleons; size_t nmbdEdxBins = value.dedxVector -> GetVectorLength(); value.lowerEnergyEdge = value.dedxVector -> GetLowEdgeEnergy(0); - - value.upperEnergyEdge = + + value.upperEnergyEdge = value.dedxVector -> GetLowEdgeEnergy(nmbdEdxBins-1); value.density = material -> GetDensity(); } else { value.dedxVector = 0; - value.energyScaling = 0.0; + value.energyScaling = 0.0; value.lowerEnergyEdge = 0.0; value.upperEnergyEdge = 0.0; value.density = 0.0; } #ifdef PRINT_DEBUG - G4cout << "G4IonDEDXHandler::UpdateCacheValue() for " + G4cout << "G4IonDEDXHandler::UpdateCacheValue() for " << particle -> GetParticleName() << " in " - << material -> GetName() + << material -> GetName() << G4endl; #endif @@ -374,13 +375,13 @@ G4CacheValue G4IonDEDXHandler::UpdateCacheValue( // ######################################################################### G4CacheValue G4IonDEDXHandler::GetCacheValue( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material) { // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material) { // Target material G4CacheKey key = std::make_pair(particle, material); G4CacheEntry entry; - CacheEntryList::iterator* pointerIter = + CacheEntryList::iterator* pointerIter = (CacheEntryList::iterator*) cacheKeyPointers[key]; if(!pointerIter) { @@ -389,7 +390,7 @@ G4CacheValue G4IonDEDXHandler::GetCacheValue( entry.key = key; cacheEntries.push_front(entry); - CacheEntryList::iterator* pointerIter1 = + CacheEntryList::iterator* pointerIter1 = new CacheEntryList::iterator(); *pointerIter1 = cacheEntries.begin(); cacheKeyPointers[key] = pointerIter1; @@ -397,9 +398,9 @@ G4CacheValue G4IonDEDXHandler::GetCacheValue( if(G4int(cacheEntries.size()) > maxCacheEntries) { G4CacheEntry lastEntry = cacheEntries.back(); - + void* pointerIter2 = cacheKeyPointers[lastEntry.key]; - CacheEntryList::iterator* listPointerIter = + CacheEntryList::iterator* listPointerIter = (CacheEntryList::iterator*) pointerIter2; cacheEntries.erase(*listPointerIter); @@ -410,7 +411,7 @@ G4CacheValue G4IonDEDXHandler::GetCacheValue( } else { entry = *(*pointerIter); - // Cache entries are currently not re-ordered. + // Cache entries are currently not re-ordered. // Uncomment for activating re-ordering: // cacheEntries.erase(*pointerIter); // cacheEntries.push_front(entry); @@ -425,15 +426,15 @@ void G4IonDEDXHandler::ClearCache() { CacheIterPointerMap::iterator iter = cacheKeyPointers.begin(); CacheIterPointerMap::iterator iter_end = cacheKeyPointers.end(); - + for(;iter != iter_end; iter++) { void* pointerIter = iter -> second; - CacheEntryList::iterator* listPointerIter = + CacheEntryList::iterator* listPointerIter = (CacheEntryList::iterator*) pointerIter; delete listPointerIter; } - + cacheEntries.clear(); cacheKeyPointers.clear(); } @@ -441,7 +442,7 @@ void G4IonDEDXHandler::ClearCache() { // ######################################################################### void G4IonDEDXHandler::PrintDEDXTable( - const G4ParticleDefinition* particle, // Projectile (ion) + const G4ParticleDefinition* particle, // Projectile (ion) const G4Material* material, // Target material G4double lowerBoundary, // Minimum energy per nucleon G4double upperBoundary, // Maximum energy per nucleon @@ -451,16 +452,16 @@ void G4IonDEDXHandler::PrintDEDXTable( G4double atomicMassNumber = particle -> GetAtomicMass(); G4double materialDensity = material -> GetDensity(); - G4cout << "# dE/dx table for " << particle -> GetParticleName() + G4cout << "# dE/dx table for " << particle -> GetParticleName() << " in material " << material -> GetName() << " of density " << materialDensity / g * cm3 << " g/cm3" << G4endl << "# Projectile mass number A1 = " << atomicMassNumber << G4endl - << "# Energy range (per nucleon) of tabulation: " + << "# Energy range (per nucleon) of tabulation: " << GetLowerEnergyEdge(particle, material) / atomicMassNumber / MeV - << " - " + << " - " << GetUpperEnergyEdge(particle, material) / atomicMassNumber / MeV << " MeV" << G4endl @@ -481,32 +482,32 @@ void G4IonDEDXHandler::PrintDEDXTable( << "# ------------------------------------------------------" << G4endl; - //G4CacheValue value = GetCacheValue(particle, material); + //G4CacheValue value = GetCacheValue(particle, material); G4double energyLowerBoundary = lowerBoundary * atomicMassNumber; - G4double energyUpperBoundary = upperBoundary * atomicMassNumber; + G4double energyUpperBoundary = upperBoundary * atomicMassNumber; if(logScaleEnergy) { energyLowerBoundary = std::log(energyLowerBoundary); - energyUpperBoundary = std::log(energyUpperBoundary); + energyUpperBoundary = std::log(energyUpperBoundary); } - G4double deltaEnergy = (energyUpperBoundary - energyLowerBoundary) / + G4double deltaEnergy = (energyUpperBoundary - energyLowerBoundary) / G4double(nmbBins); G4cout.precision(6); for(int i = 0; i < nmbBins + 1; i++) { G4double energy = energyLowerBoundary + i * deltaEnergy; - if(logScaleEnergy) energy = std::exp(energy); + if(logScaleEnergy) energy = G4Exp(energy); G4double loss = GetDEDX(particle, material, energy); G4cout << std::setw(14) << std::right << energy / MeV << std::setw(14) << energy / atomicMassNumber / MeV << std::setw(14) << loss / MeV * cm - << std::setw(14) << loss / materialDensity / (MeV*cm2/(0.001*g)) + << std::setw(14) << loss / materialDensity / (MeV*cm2/(0.001*g)) << G4endl; } } @@ -514,14 +515,14 @@ void G4IonDEDXHandler::PrintDEDXTable( // ######################################################################### G4double G4IonDEDXHandler::GetLowerEnergyEdge( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material) { // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material) { // Target material - G4double edge = 0.0; + G4double edge = 0.0; - G4CacheValue value = GetCacheValue(particle, material); - - if(value.energyScaling > 0) + G4CacheValue value = GetCacheValue(particle, material); + + if(value.energyScaling > 0) edge = value.lowerEnergyEdge / value.energyScaling; return edge; @@ -530,14 +531,14 @@ G4double G4IonDEDXHandler::GetLowerEnergyEdge( // ######################################################################### G4double G4IonDEDXHandler::GetUpperEnergyEdge( - const G4ParticleDefinition* particle, // Projectile (ion) - const G4Material* material) { // Target material + const G4ParticleDefinition* particle, // Projectile (ion) + const G4Material* material) { // Target material - G4double edge = 0.0; + G4double edge = 0.0; - G4CacheValue value = GetCacheValue(particle, material); - - if(value.energyScaling > 0) + G4CacheValue value = GetCacheValue(particle, material); + + if(value.energyScaling > 0) edge = value.upperEnergyEdge / value.energyScaling; return edge; diff --git a/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc b/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc index 212e9898d3..03b23ddfad 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonParametrisedLossModel.cc 87443 2014-12-04 12:26:31Z gunter $ +// $Id: G4IonParametrisedLossModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // =========================================================================== // GEANT4 class source file @@ -31,7 +31,7 @@ // Class: G4IonParametrisedLossModel // // Base class: G4VEmModel (utils) -// +// // Author: Anton Lechner (Anton.Lechner@cern.ch) // // First implementation: 10. 11. 2008 @@ -47,35 +47,35 @@ // class (G4IonStoppingData), which is capable // of reading stopping power data files stored // in G4LEDATA (requires G4EMLOW6.8 or higher). -// Simultanesouly, the upper energy limit of +// Simultanesouly, the upper energy limit of // ICRU 73 is increased to 1 GeV/nucleon. // - Removed nuclear stopping from Corrections- // AlongStep since dedicated process was created. -// - Added function for switching off scaling -// of heavy ions from ICRU 73 data -// - Minor fix in ComputeLossForStep function +// - Added function for switching off scaling +// of heavy ions from ICRU 73 data +// - Minor fix in ComputeLossForStep function // - Minor fix in ComputeDEDXPerVolume (AL) // 23. 11. 2009 - Changed energy loss limit from 0.15 to 0.01 // to improve accuracy for large steps (AL) -// 24. 11. 2009 - Bug fix: Range calculation corrected if same +// 24. 11. 2009 - Bug fix: Range calculation corrected if same // materials appears with different cuts in diff. // regions (added UpdateRangeCache function and // modified BuildRangeVector, ComputeLossForStep // functions accordingly, added new cache param.) -// - Removed GetRange function (AL) +// - Removed GetRange function (AL) // 04. 11. 2010 - Moved virtual methods to the source (VI) // // // Class description: -// Model for computing the energy loss of ions by employing a -// parameterisation of dE/dx tables (by default ICRU 73 tables). For -// ion-material combinations and/or projectile energies not covered +// Model for computing the energy loss of ions by employing a +// parameterisation of dE/dx tables (by default ICRU 73 tables). For +// ion-material combinations and/or projectile energies not covered // by this model, the G4BraggIonModel and G4BetheBloch models are // employed. // // Comments: // -// =========================================================================== +// =========================================================================== #include "G4IonParametrisedLossModel.hh" @@ -95,6 +95,7 @@ #include "G4Electron.hh" #include "G4DeltaAngle.hh" #include "Randomize.hh" +#include "G4Exp.hh" //#define PRINT_TABLE_BUILT @@ -102,7 +103,7 @@ // ######################################################################### G4IonParametrisedLossModel::G4IonParametrisedLossModel( - const G4ParticleDefinition*, + const G4ParticleDefinition*, const G4String& nam) : G4VEmModel(nam), braggIonModel(0), @@ -112,12 +113,12 @@ G4IonParametrisedLossModel::G4IonParametrisedLossModel( particleChangeLoss(0), corrFactor(1.0), energyLossLimit(0.01), - cutEnergies(0) + cutEnergies(0) { genericIon = G4GenericIon::Definition(); genericIonPDGMass = genericIon -> GetPDGMass(); corrections = G4LossTableManager::Instance() -> EmCorrections(); - + // The upper limit of the current model is set to 100 TeV SetHighEnergyLimit(100.0 * TeV); @@ -141,9 +142,9 @@ G4IonParametrisedLossModel::G4IonParametrisedLossModel( cacheChargeSquare = 0; // Cache parameters are set - rangeCacheParticle = 0; - rangeCacheMatCutsCouple = 0; - rangeCacheEnergyRange = 0; + rangeCacheParticle = 0; + rangeCacheMatCutsCouple = 0; + rangeCacheEnergyRange = 0; rangeCacheRangeEnergy = 0; // Cache parameters are set @@ -151,7 +152,7 @@ G4IonParametrisedLossModel::G4IonParametrisedLossModel( dedxCacheMaterial = 0; dedxCacheEnergyCut = 0; dedxCacheIter = lossTableList.end(); - dedxCacheTransitionEnergy = 0.0; + dedxCacheTransitionEnergy = 0.0; dedxCacheTransitionFactor = 0.0; dedxCacheGenIonMassRatio = 0.0; @@ -190,7 +191,7 @@ G4double G4IonParametrisedLossModel::MinEnergyCut( const G4ParticleDefinition*, const G4MaterialCutsCouple* couple) { - return couple -> GetMaterial() -> GetIonisation() -> + return couple -> GetMaterial() -> GetIonisation() -> GetMeanExcitationEnergy(); } @@ -201,11 +202,11 @@ G4double G4IonParametrisedLossModel::MaxSecondaryEnergy( G4double kineticEnergy) { // ############## Maximum energy of secondaries ########################## - // Function computes maximum energy of secondary electrons which are + // Function computes maximum energy of secondary electrons which are // released by an ion // // See Geant4 physics reference manual (version 9.1), section 9.1.1 - // + // // Ref.: W.M. Yao et al, Jour. of Phys. G 33 (2006) 1. // C.Caso et al. (Part. Data Group), Europ. Phys. Jour. C 3 1 (1998). // B. Rossi, High energy particles, New York, NY: Prentice-Hall (1952). @@ -216,7 +217,7 @@ G4double G4IonParametrisedLossModel::MaxSecondaryEnergy( G4double tau = kineticEnergy/cacheMass; G4double tmax = 2.0 * electron_mass_c2 * tau * (tau + 2.) / - (1. + 2.0 * (tau + 1.) * cacheElecMassRatio + + (1. + 2.0 * (tau + 1.) * cacheElecMassRatio + cacheElecMassRatio * cacheElecMassRatio); return tmax; @@ -233,7 +234,7 @@ G4double G4IonParametrisedLossModel::GetChargeSquareRatio( EffectiveChargeSquareRatio(particle, material, kineticEnergy); - corrFactor = chargeSquareRatio * + corrFactor = chargeSquareRatio * corrections -> EffectiveChargeCorrection(particle, material, kineticEnergy); @@ -245,7 +246,7 @@ G4double G4IonParametrisedLossModel::GetChargeSquareRatio( G4double G4IonParametrisedLossModel::GetParticleCharge( const G4ParticleDefinition* particle, const G4Material* material, - G4double kineticEnergy) { // Kinetic energy + G4double kineticEnergy) { // Kinetic energy return corrections -> GetParticleCharge(particle, material, kineticEnergy); } @@ -261,11 +262,11 @@ void G4IonParametrisedLossModel::Initialise( cacheMass = 0; cacheElecMassRatio = 0; cacheChargeSquare = 0; - + // Cached parameters are reset - rangeCacheParticle = 0; - rangeCacheMatCutsCouple = 0; - rangeCacheEnergyRange = 0; + rangeCacheParticle = 0; + rangeCacheMatCutsCouple = 0; + rangeCacheEnergyRange = 0; rangeCacheRangeEnergy = 0; // Cached parameters are reset @@ -273,7 +274,7 @@ void G4IonParametrisedLossModel::Initialise( dedxCacheMaterial = 0; dedxCacheEnergyCut = 0; dedxCacheIter = lossTableList.end(); - dedxCacheTransitionEnergy = 0.0; + dedxCacheTransitionEnergy = 0.0; dedxCacheTransitionFactor = 0.0; dedxCacheGenIonMassRatio = 0.0; @@ -281,7 +282,7 @@ void G4IonParametrisedLossModel::Initialise( LossTableList::iterator iterTables = lossTableList.begin(); LossTableList::iterator iterTables_end = lossTableList.end(); - for(;iterTables != iterTables_end; iterTables++) + for(;iterTables != iterTables_end; iterTables++) (*iterTables) -> ClearCache(); // Range vs energy and energy vs range vectors from previous runs are @@ -289,15 +290,15 @@ void G4IonParametrisedLossModel::Initialise( RangeEnergyTable::iterator iterRange = r.begin(); RangeEnergyTable::iterator iterRange_end = r.end(); - for(;iterRange != iterRange_end; iterRange++) { - delete iterRange->second; + for(;iterRange != iterRange_end; iterRange++) { + delete iterRange->second; } r.clear(); 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(); @@ -315,12 +316,12 @@ void G4IonParametrisedLossModel::Initialise( #ifdef PRINT_TABLE_BUILT G4cout << "G4IonParametrisedLossModel::Initialise():" << " Building dE/dx vectors:" - << G4endl; + << G4endl; #endif for (size_t i = 0; i < nmbCouples; i++) { - const G4MaterialCutsCouple* couple = + const G4MaterialCutsCouple* couple = coupleTable -> GetMaterialCutsCouple(i); const G4Material* material = couple -> GetMaterial(); @@ -331,15 +332,15 @@ void G4IonParametrisedLossModel::Initialise( LossTableList::iterator iter = lossTableList.begin(); LossTableList::iterator iter_end = lossTableList.end(); - for(;iter != iter_end; iter++) { + for(;iter != iter_end; iter++) { if(*iter == 0) { G4cout << "G4IonParametrisedLossModel::Initialise():" << " Skipping illegal table." - << G4endl; + << G4endl; } - G4bool isApplicable = + G4bool isApplicable = (*iter) -> BuildDEDXTable(atomicNumberIon, material); if(isApplicable) { @@ -347,21 +348,21 @@ void G4IonParametrisedLossModel::Initialise( G4cout << " Atomic Number Ion = " << atomicNumberIon << ", Material = " << material -> GetName() << ", Table = " << (*iter) -> GetName() - << G4endl; + << G4endl; #endif - break; + break; } } } } - // The particle change object + // The particle change object if(! particleChangeLoss) { particleChangeLoss = GetParticleChangeForLoss(); braggIonModel -> SetParticleChange(particleChangeLoss, 0); betheBlochModel -> SetParticleChange(particleChangeLoss, 0); } - + // The G4BraggIonModel and G4BetheBlochModel instances are initialised with // the same settings as the current model: braggIonModel -> Initialise(particle, cuts); @@ -373,7 +374,7 @@ void G4IonParametrisedLossModel::Initialise( G4double G4IonParametrisedLossModel::ComputeCrossSectionPerAtom( const G4ParticleDefinition* particle, G4double kineticEnergy, - G4double atomicNumber, + G4double atomicNumber, G4double, G4double cutEnergy, G4double maxKinEnergy) { @@ -382,7 +383,7 @@ G4double G4IonParametrisedLossModel::ComputeCrossSectionPerAtom( // Function computes ionization cross section per atom // // See Geant4 physics reference manual (version 9.1), section 9.1.3 - // + // // Ref.: W.M. Yao et al, Jour. of Phys. G 33 (2006) 1. // B. Rossi, High energy particles, New York, NY: Prentice-Hall (1952). // @@ -395,10 +396,10 @@ G4double G4IonParametrisedLossModel::ComputeCrossSectionPerAtom( if(cutEnergy < tmax) { G4double energy = kineticEnergy + cacheMass; - G4double betaSquared = kineticEnergy * + G4double betaSquared = kineticEnergy * (energy + cacheMass) / (energy * energy); - crosssection = 1.0 / cutEnergy - 1.0 / maxEnergy - + crosssection = 1.0 / cutEnergy - 1.0 / maxEnergy - betaSquared * std::log(maxEnergy / cutEnergy) / tmax; crosssection *= twopi_mc2_rcl2 * cacheChargeSquare / betaSquared; @@ -409,9 +410,9 @@ G4double G4IonParametrisedLossModel::ComputeCrossSectionPerAtom( << G4endl << "# G4IonParametrisedLossModel::ComputeCrossSectionPerAtom" << G4endl - << "# particle =" << particle -> GetParticleName() + << "# particle =" << particle -> GetParticleName() << G4endl - << "# cut(MeV) = " << cutEnergy/MeV + << "# cut(MeV) = " << cutEnergy/MeV << G4endl; G4cout << "#" @@ -443,8 +444,8 @@ G4double G4IonParametrisedLossModel::CrossSectionPerVolume( G4double maxEnergy) { G4double nbElecPerVolume = material -> GetTotNbOfElectPerVolume(); - G4double cross = ComputeCrossSectionPerAtom(particle, - kineticEnergy, + G4double cross = ComputeCrossSectionPerAtom(particle, + kineticEnergy, nbElecPerVolume, 0, cutEnergy, maxEnergy); @@ -463,11 +464,11 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( // ############## dE/dx ################################################## // Function computes dE/dx values, where following rules are adopted: // A. If the ion-material pair is covered by any native ion data - // parameterisation, then: - // * This parameterization is used for energies below a given energy + // parameterisation, then: + // * This parameterization is used for energies below a given energy // limit, - // * whereas above the limit the Bethe-Bloch model is applied, in - // combination with an effective charge estimate and high order + // * whereas above the limit the Bethe-Bloch model is applied, in + // combination with an effective charge estimate and high order // correction terms. // A smoothing procedure is applied to dE/dx values computed with // the second approach. The smoothing factor is based on the dE/dx @@ -479,13 +480,13 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( // obtained with the second approach. // C. If the ion-material is not covered by any ion data parameterization // then: - // * The BraggIon model is used for energies below a given energy + // * The BraggIon model is used for energies below a given energy // limit, - // * whereas above the limit the Bethe-Bloch model is applied, in - // combination with an effective charge estimate and high order + // * whereas above the limit the Bethe-Bloch model is applied, in + // combination with an effective charge estimate and high order // correction terms. - // Also in this case, a smoothing procedure is applied to dE/dx values - // computed with the second model. + // Also in this case, a smoothing procedure is applied to dE/dx values + // computed with the second model. G4double dEdx = 0.0; UpdateDEDXCache(particle, material, cutEnergy); @@ -500,16 +501,16 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( dEdx = (*iter) -> GetDEDX(particle, material, kineticEnergy); - G4double dEdxDeltaRays = DeltaRayMeanEnergyTransferRate(material, - particle, - kineticEnergy, + G4double dEdxDeltaRays = DeltaRayMeanEnergyTransferRate(material, + particle, + kineticEnergy, cutEnergy); - dEdx -= dEdxDeltaRays; + dEdx -= dEdxDeltaRays; } else { G4double massRatio = dedxCacheGenIonMassRatio; - - G4double chargeSquare = + + G4double chargeSquare = GetChargeSquareRatio(particle, material, kineticEnergy); G4double scaledKineticEnergy = kineticEnergy * massRatio; @@ -522,13 +523,13 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( dEdx = betheBlochModel -> ComputeDEDXPerVolume( material, genericIon, scaledKineticEnergy, cutEnergy); - + dEdx *= chargeSquare; - dEdx += corrections -> ComputeIonCorrections(particle, + dEdx += corrections -> ComputeIonCorrections(particle, material, kineticEnergy); - G4double factor = 1.0 + dedxCacheTransitionFactor / + G4double factor = 1.0 + dedxCacheTransitionFactor / kineticEnergy; dEdx *= factor; @@ -542,7 +543,7 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( if(particle != genericIon) { chargeSquare = GetChargeSquareRatio(particle, material, kineticEnergy); - massRatio = genericIonPDGMass / particle -> GetPDGMass(); + massRatio = genericIonPDGMass / particle -> GetPDGMass(); } G4double scaledKineticEnergy = kineticEnergy * massRatio; @@ -565,15 +566,15 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( lowEnergyLimit, cutEnergy); if(particle != genericIon) { - G4double chargeSquareLowEnergyLimit = - GetChargeSquareRatio(particle, material, + G4double chargeSquareLowEnergyLimit = + GetChargeSquareRatio(particle, material, lowEnergyLimit / massRatio); dEdxLimitParam *= chargeSquareLowEnergyLimit; dEdxLimitBetheBloch *= chargeSquareLowEnergyLimit; - dEdxLimitBetheBloch += - corrections -> ComputeIonCorrections(particle, + dEdxLimitBetheBloch += + corrections -> ComputeIonCorrections(particle, material, lowEnergyLimit / massRatio); } @@ -587,7 +588,7 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( dEdx *= chargeSquare; if(particle != genericIon) { - dEdx += corrections -> ComputeIonCorrections(particle, + dEdx += corrections -> ComputeIonCorrections(particle, material, kineticEnergy); } @@ -604,7 +605,7 @@ G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume( // ######################################################################### void G4IonParametrisedLossModel::PrintDEDXTable( - const G4ParticleDefinition* particle, // Projectile (ion) + const G4ParticleDefinition* particle, // Projectile (ion) const G4Material* material, // Absorber material G4double lowerBoundary, // Minimum energy per nucleon G4double upperBoundary, // Maximum energy per nucleon @@ -614,7 +615,7 @@ void G4IonParametrisedLossModel::PrintDEDXTable( G4double atomicMassNumber = particle -> GetAtomicMass(); G4double materialDensity = material -> GetDensity(); - G4cout << "# dE/dx table for " << particle -> GetParticleName() + G4cout << "# dE/dx table for " << particle -> GetParticleName() << " in material " << material -> GetName() << " of density " << materialDensity / g * cm3 << " g/cm3" @@ -639,28 +640,28 @@ void G4IonParametrisedLossModel::PrintDEDXTable( << G4endl; G4double energyLowerBoundary = lowerBoundary * atomicMassNumber; - G4double energyUpperBoundary = upperBoundary * atomicMassNumber; + G4double energyUpperBoundary = upperBoundary * atomicMassNumber; if(logScaleEnergy) { energyLowerBoundary = std::log(energyLowerBoundary); - energyUpperBoundary = std::log(energyUpperBoundary); + energyUpperBoundary = std::log(energyUpperBoundary); } - G4double deltaEnergy = (energyUpperBoundary - energyLowerBoundary) / + G4double deltaEnergy = (energyUpperBoundary - energyLowerBoundary) / G4double(nmbBins); for(int i = 0; i < numBins + 1; i++) { G4double energy = energyLowerBoundary + i * deltaEnergy; - if(logScaleEnergy) energy = std::exp(energy); + if(logScaleEnergy) energy = G4Exp(energy); G4double dedx = ComputeDEDXPerVolume(material, particle, energy, DBL_MAX); G4cout.precision(6); G4cout << std::setw(14) << std::right << energy / MeV << std::setw(14) << energy / atomicMassNumber / MeV << std::setw(14) << dedx / MeV * cm - << std::setw(14) << dedx / materialDensity / (MeV*cm2/(0.001*g)) + << std::setw(14) << dedx / materialDensity / (MeV*cm2/(0.001*g)) << G4endl; } } @@ -668,7 +669,7 @@ void G4IonParametrisedLossModel::PrintDEDXTable( // ######################################################################### void G4IonParametrisedLossModel::PrintDEDXTableHandlers( - const G4ParticleDefinition* particle, // Projectile (ion) + const G4ParticleDefinition* particle, // Projectile (ion) const G4Material* material, // Absorber material G4double lowerBoundary, // Minimum energy per nucleon G4double upperBoundary, // Maximum energy per nucleon @@ -678,14 +679,14 @@ void G4IonParametrisedLossModel::PrintDEDXTableHandlers( LossTableList::iterator iter = lossTableList.begin(); LossTableList::iterator iter_end = lossTableList.end(); - for(;iter != iter_end; iter++) { + for(;iter != iter_end; iter++) { G4bool isApplicable = (*iter) -> IsApplicable(particle, material); - if(isApplicable) { + if(isApplicable) { (*iter) -> PrintDEDXTable(particle, material, - lowerBoundary, upperBoundary, - numBins,logScaleEnergy); + lowerBoundary, upperBoundary, + numBins,logScaleEnergy); break; - } + } } } @@ -700,14 +701,14 @@ void G4IonParametrisedLossModel::SampleSecondaries( // ############## Sampling of secondaries ################################# - // The probability density function (pdf) of the kinetic energy T of a + // The probability density function (pdf) of the kinetic energy T of a // secondary electron may be written as: // pdf(T) = f(T) * g(T) - // where + // where // f(T) = (Tmax - Tcut) / (Tmax * Tcut) * (1 / T^2) // g(T) = 1 - beta^2 * T / Tmax // where Tmax is the maximum kinetic energy of the secondary, Tcut - // is the lower energy cut and beta is the kinetic energy of the + // is the lower energy cut and beta is the kinetic energy of the // projectile. // // Sampling of the kinetic energy of a secondary electron: @@ -725,7 +726,7 @@ void G4IonParametrisedLossModel::SampleSecondaries( // (Implementation adapted from G4BraggIonModel) G4double rossiMaxKinEnergySec = MaxSecondaryKinEnergy(particle); - G4double maxKinEnergySec = + G4double maxKinEnergySec = std::min(rossiMaxKinEnergySec, userMaxKinEnergySec); if(cutKinEnergySec >= maxKinEnergySec) return; @@ -733,7 +734,7 @@ void G4IonParametrisedLossModel::SampleSecondaries( G4double kineticEnergy = particle -> GetKineticEnergy(); G4double energy = kineticEnergy + cacheMass; - G4double betaSquared = kineticEnergy * (energy + cacheMass) + G4double betaSquared = kineticEnergy * (energy + cacheMass) / (energy * energy); G4double kinEnergySec; @@ -743,10 +744,10 @@ void G4IonParametrisedLossModel::SampleSecondaries( // Sampling kinetic energy from f(T) (using F(T)): G4double xi = G4UniformRand(); - kinEnergySec = cutKinEnergySec * maxKinEnergySec / + kinEnergySec = cutKinEnergySec * maxKinEnergySec / (maxKinEnergySec * (1.0 - xi) + cutKinEnergySec * xi); - // Deriving the value of the rejection function at the obtained kinetic + // Deriving the value of the rejection function at the obtained kinetic // energy: grej = 1.0 - betaSquared * kinEnergySec / rossiMaxKinEnergySec; @@ -763,9 +764,9 @@ void G4IonParametrisedLossModel::SampleSecondaries( G4int Z = SelectRandomAtomNumber(mat); const G4ParticleDefinition* electron = G4Electron::Electron(); - - G4DynamicParticle* delta = new G4DynamicParticle(electron, - GetAngularDistribution()->SampleDirection(particle, kinEnergySec, + + G4DynamicParticle* delta = new G4DynamicParticle(electron, + GetAngularDistribution()->SampleDirection(particle, kinEnergySec, Z, mat), kinEnergySec); @@ -793,9 +794,9 @@ void G4IonParametrisedLossModel::UpdateRangeCache( // ############## Caching ################################################## // If the ion-material-cut combination is covered by any native ion data - // parameterisation (for low energies), range vectors are computed + // parameterisation (for low energies), range vectors are computed - if(particle == rangeCacheParticle && + if(particle == rangeCacheParticle && matCutsCouple == rangeCacheMatCutsCouple) { } else{ @@ -814,11 +815,11 @@ void G4IonParametrisedLossModel::UpdateRangeCache( if(iterRange == r.end()) BuildRangeVector(particle, matCutsCouple); - rangeCacheEnergyRange = E[ionMatCouple]; + rangeCacheEnergyRange = E[ionMatCouple]; rangeCacheRangeEnergy = r[ionMatCouple]; } else { - rangeCacheEnergyRange = 0; + rangeCacheEnergyRange = 0; rangeCacheRangeEnergy = 0; } } @@ -834,12 +835,12 @@ void G4IonParametrisedLossModel::UpdateDEDXCache( // ############## Caching ################################################## // If the ion-material combination is covered by any native ion data // parameterisation (for low energies), a transition factor is computed - // which is applied to Bethe-Bloch results at higher energies to + // which is applied to Bethe-Bloch results at higher energies to // guarantee a smooth transition. // This factor only needs to be calculated for the first step an ion // performs inside a certain material. - if(particle == dedxCacheParticle && + if(particle == dedxCacheParticle && material == dedxCacheMaterial && cutEnergy == dedxCacheEnergyCut) { } @@ -859,51 +860,51 @@ void G4IonParametrisedLossModel::UpdateDEDXCache( if(iter != lossTableList.end()) { // Retrieving the transition energy from the parameterisation table - G4double transitionEnergy = - (*iter) -> GetUpperEnergyEdge(particle, material); - dedxCacheTransitionEnergy = transitionEnergy; + G4double transitionEnergy = + (*iter) -> GetUpperEnergyEdge(particle, material); + dedxCacheTransitionEnergy = transitionEnergy; - // Computing dE/dx from low-energy parameterisation at + // Computing dE/dx from low-energy parameterisation at // transition energy - G4double dEdxParam = (*iter) -> GetDEDX(particle, material, + G4double dEdxParam = (*iter) -> GetDEDX(particle, material, transitionEnergy); - - G4double dEdxDeltaRays = DeltaRayMeanEnergyTransferRate(material, - particle, - transitionEnergy, - cutEnergy); - dEdxParam -= dEdxDeltaRays; - // Computing dE/dx from Bethe-Bloch formula at transition + G4double dEdxDeltaRays = DeltaRayMeanEnergyTransferRate(material, + particle, + transitionEnergy, + cutEnergy); + dEdxParam -= dEdxDeltaRays; + + // Computing dE/dx from Bethe-Bloch formula at transition // energy - G4double transitionChargeSquare = + G4double transitionChargeSquare = GetChargeSquareRatio(particle, material, transitionEnergy); G4double scaledTransitionEnergy = transitionEnergy * massRatio; - G4double dEdxBetheBloch = + G4double dEdxBetheBloch = betheBlochModel -> ComputeDEDXPerVolume( material, genericIon, scaledTransitionEnergy, cutEnergy); dEdxBetheBloch *= transitionChargeSquare; // Additionally, high order corrections are added - dEdxBetheBloch += - corrections -> ComputeIonCorrections(particle, + dEdxBetheBloch += + corrections -> ComputeIonCorrections(particle, material, transitionEnergy); // Computing transition factor from both dE/dx values - dedxCacheTransitionFactor = + dedxCacheTransitionFactor = (dEdxParam - dEdxBetheBloch)/dEdxBetheBloch - * transitionEnergy; + * transitionEnergy; } else { - + dedxCacheParticle = particle; dedxCacheMaterial = material; dedxCacheEnergyCut = cutEnergy; - dedxCacheGenIonMassRatio = + dedxCacheGenIonMassRatio = genericIonPDGMass / particle -> GetPDGMass(); dedxCacheTransitionEnergy = 0.0; @@ -922,11 +923,11 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( G4double length) { // ############## Corrections for along step energy loss calculation ###### - // The computed energy loss (due to electronic stopping) is overwritten - // by this function if an ion data parameterization is available for the + // The computed energy loss (due to electronic stopping) is overwritten + // by this function if an ion data parameterization is available for the // current ion-material pair. - // No action on the energy loss (due to electronic stopping) is performed - // if no parameterization is available. In this case the original + // No action on the energy loss (due to electronic stopping) is performed + // if no parameterization is available. In this case the original // generic ion tables (in combination with the effective charge) are used // in the along step DoIt function. // @@ -953,22 +954,22 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( if(iter != lossTableList.end()) { // The energy loss is calculated using the ComputeDEDXPerVolume function - // and the step length (it is assumed that dE/dx does not change + // and the step length (it is assumed that dE/dx does not change // considerably along the step) - eloss = - length * ComputeDEDXPerVolume(material, particle, + eloss = + length * ComputeDEDXPerVolume(material, particle, kineticEnergy, cutEnergy); #ifdef PRINT_DEBUG - G4cout.precision(6); + G4cout.precision(6); G4cout << "########################################################" << G4endl << "# G4IonParametrisedLossModel::CorrectionsAlongStep" << G4endl - << "# cut(MeV) = " << cutEnergy/MeV + << "# cut(MeV) = " << cutEnergy/MeV << G4endl; - G4cout << "#" + G4cout << "#" << std::setw(13) << std::right << "E(MeV)" << std::setw(14) << "l(um)" << std::setw(14) << "l*dE/dx(MeV)" @@ -990,7 +991,7 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( // energy loss if(eloss > energyLossLimit * kineticEnergy) { - eloss = ComputeLossForStep(couple, particle, + eloss = ComputeLossForStep(couple, particle, kineticEnergy,length); #ifdef PRINT_DEBUG @@ -1007,7 +1008,7 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( } } - // For all corrections below a kinetic energy between the Pre- and + // For all corrections below a kinetic energy between the Pre- and // Post-step energy values is used G4double energy = kineticEnergy - eloss * 0.5; if(energy < 0.0) energy = kineticEnergy * 0.5; @@ -1016,13 +1017,13 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( EffectiveChargeSquareRatio(particle, material, energy); - GetModelOfFluctuations() -> SetParticleAndCharge(particle, + GetModelOfFluctuations() -> SetParticleAndCharge(particle, chargeSquareRatio); - // A correction is applied considering the change of the effective charge - // along the step (the parameter "corrFactor" refers to the effective + // A correction is applied considering the change of the effective charge + // along the step (the parameter "corrFactor" refers to the effective // charge at the beginning of the step). Note: the correction is not - // applied for energy loss values deriving directly from parameterized + // applied for energy loss values deriving directly from parameterized // ion stopping power tables G4double transitionEnergy = dedxCacheTransitionEnergy; @@ -1053,8 +1054,8 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( G4double lowEnergyLimit = betheBlochModel -> LowEnergyLimit(); // Corrections are only applied in the Bethe-Bloch energy region - if(scaledKineticEnergy > lowEnergyLimit) - eloss += length * + if(scaledKineticEnergy > lowEnergyLimit) + eloss += length * corrections -> IonHighOrderCorrections(particle, couple, energy); } } @@ -1079,23 +1080,23 @@ void G4IonParametrisedLossModel::BuildRangeVector( G4double logLowerEnergyEdge = std::log(lowerEnergy); G4double logUpperEnergyEdge = std::log(upperEnergy); - G4double logDeltaEnergy = (logUpperEnergyEdge - logLowerEnergyEdge) / + G4double logDeltaEnergy = (logUpperEnergyEdge - logLowerEnergyEdge) / G4double(nmbBins); - + G4double logDeltaIntegr = logDeltaEnergy / G4double(nmbSubBins); - G4LPhysicsFreeVector* energyRangeVector = + G4LPhysicsFreeVector* energyRangeVector = new G4LPhysicsFreeVector(nmbBins+1, - lowerEnergy, + lowerEnergy, upperEnergy); - G4double dedxLow = ComputeDEDXPerVolume(material, - particle, + G4double dedxLow = ComputeDEDXPerVolume(material, + particle, lowerEnergy, cutEnergy); G4double range = 2.0 * lowerEnergy / dedxLow; - + energyRangeVector -> PutValues(0, lowerEnergy, range); G4double logEnergy = std::log(lowerEnergy); @@ -1105,52 +1106,52 @@ void G4IonParametrisedLossModel::BuildRangeVector( for(size_t j = 0; j < nmbSubBins; j++) { - G4double binLowerBoundary = std::exp(logEnergyIntegr); + G4double binLowerBoundary = G4Exp(logEnergyIntegr); logEnergyIntegr += logDeltaIntegr; - - G4double binUpperBoundary = std::exp(logEnergyIntegr); + + G4double binUpperBoundary = G4Exp(logEnergyIntegr); G4double deltaIntegr = binUpperBoundary - binLowerBoundary; - + G4double energyIntegr = binLowerBoundary + 0.5 * deltaIntegr; - - G4double dedxValue = ComputeDEDXPerVolume(material, - particle, + + G4double dedxValue = ComputeDEDXPerVolume(material, + particle, energyIntegr, cutEnergy); - if(dedxValue > 0.0) range += deltaIntegr / dedxValue; + if(dedxValue > 0.0) range += deltaIntegr / dedxValue; #ifdef PRINT_DEBUG_DETAILS - G4cout << " E = "<< energyIntegr/MeV + G4cout << " E = "<< energyIntegr/MeV << " MeV -> dE = " << deltaIntegr/MeV - << " MeV -> dE/dx = " << dedxValue/MeV*mm - << " MeV/mm -> dE/(dE/dx) = " << deltaIntegr / + << " MeV -> dE/dx = " << dedxValue/MeV*mm + << " MeV/mm -> dE/(dE/dx) = " << deltaIntegr / dedxValue / mm << " mm -> range = " << range / mm << " mm " << G4endl; #endif } - + logEnergy += logDeltaEnergy; - - G4double energy = std::exp(logEnergy); + + G4double energy = G4Exp(logEnergy); energyRangeVector -> PutValues(i, energy, range); #ifdef PRINT_DEBUG_DETAILS - G4cout << "G4IonParametrisedLossModel::BuildRangeVector() bin = " + G4cout << "G4IonParametrisedLossModel::BuildRangeVector() bin = " << i <<", E = " - << energy / MeV << " MeV, R = " + << energy / MeV << " MeV, R = " << range / mm << " mm" - << G4endl; -#endif + << G4endl; +#endif } energyRangeVector -> SetSpline(true); - G4double lowerRangeEdge = + G4double lowerRangeEdge = energyRangeVector -> Value(lowerEnergy); - G4double upperRangeEdge = + G4double upperRangeEdge = energyRangeVector -> Value(upperEnergy); G4LPhysicsFreeVector* rangeEnergyVector @@ -1160,19 +1161,19 @@ void G4IonParametrisedLossModel::BuildRangeVector( for(size_t i = 0; i < nmbBins+1; i++) { G4double energy = energyRangeVector -> Energy(i); - rangeEnergyVector -> + rangeEnergyVector -> PutValues(i, energyRangeVector -> Value(energy), energy); } rangeEnergyVector -> SetSpline(true); #ifdef PRINT_DEBUG_TABLES - G4cout << *energyLossVector - << *energyRangeVector - << *rangeEnergyVector << G4endl; -#endif + G4cout << *energyLossVector + << *energyRangeVector + << *rangeEnergyVector << G4endl; +#endif - IonMatCouple ionMatCouple = std::make_pair(particle, matCutsCouple); + IonMatCouple ionMatCouple = std::make_pair(particle, matCutsCouple); E[ionMatCouple] = energyRangeVector; r[ionMatCouple] = rangeEnergyVector; @@ -1209,26 +1210,26 @@ G4double G4IonParametrisedLossModel::ComputeLossForStep( } #ifdef PRINT_DEBUG - G4cout << "G4IonParametrisedLossModel::ComputeLossForStep() range = " - << range / mm << " mm, step = " << stepLength / mm << " mm" + G4cout << "G4IonParametrisedLossModel::ComputeLossForStep() range = " + << range / mm << " mm, step = " << stepLength / mm << " mm" << G4endl; #endif // Remaining range: G4double remRange = range - stepLength; - // If range is smaller than step length, the loss is set to kinetic + // If range is smaller than step length, the loss is set to kinetic // energy if(remRange < 0.0) loss = kineticEnergy; else if(remRange < lowerRangeEdge) { - + G4double ratio = remRange / lowerRangeEdge; loss = kineticEnergy - ratio * ratio * lowerEnEdge; } else { G4double energy = rangeEnergy -> Value(range - stepLength); - loss = kineticEnergy - energy; + loss = kineticEnergy - energy; } } @@ -1241,13 +1242,13 @@ G4double G4IonParametrisedLossModel::ComputeLossForStep( G4bool G4IonParametrisedLossModel::AddDEDXTable( const G4String& nam, - G4VIonDEDXTable* table, + G4VIonDEDXTable* table, G4VIonDEDXScalingAlgorithm* algorithm) { if(table == 0) { G4cerr << "G4IonParametrisedLossModel::AddDEDXTable() Cannot " << " add table: Invalid pointer." - << G4endl; + << G4endl; return false; } @@ -1255,13 +1256,13 @@ G4bool G4IonParametrisedLossModel::AddDEDXTable( // Checking uniqueness of name LossTableList::iterator iter = lossTableList.begin(); LossTableList::iterator iter_end = lossTableList.end(); - + for(;iter != iter_end; iter++) { G4String tableName = (*iter) -> GetName(); - if(tableName == nam) { + if(tableName == nam) { G4cerr << "G4IonParametrisedLossModel::AddDEDXTable() Cannot " - << " add table: Name already exists." + << " add table: Name already exists." << G4endl; return false; @@ -1269,11 +1270,11 @@ G4bool G4IonParametrisedLossModel::AddDEDXTable( } G4VIonDEDXScalingAlgorithm* scalingAlgorithm = algorithm; - if(scalingAlgorithm == 0) - scalingAlgorithm = new G4VIonDEDXScalingAlgorithm; - - G4IonDEDXHandler* handler = - new G4IonDEDXHandler(table, scalingAlgorithm, nam); + if(scalingAlgorithm == 0) + scalingAlgorithm = new G4VIonDEDXScalingAlgorithm; + + G4IonDEDXHandler* handler = + new G4IonDEDXHandler(table, scalingAlgorithm, nam); lossTableList.push_front(handler); @@ -1287,11 +1288,11 @@ G4bool G4IonParametrisedLossModel::RemoveDEDXTable( LossTableList::iterator iter = lossTableList.begin(); LossTableList::iterator iter_end = lossTableList.end(); - + for(;iter != iter_end; iter++) { G4String tableName = (*iter) -> GetName(); - if(tableName == nam) { + if(tableName == nam) { delete (*iter); // Remove from table list @@ -1301,14 +1302,14 @@ G4bool G4IonParametrisedLossModel::RemoveDEDXTable( RangeEnergyTable::iterator iterRange = r.begin(); RangeEnergyTable::iterator iterRange_end = r.end(); - for(;iterRange != iterRange_end; iterRange++) + for(;iterRange != iterRange_end; iterRange++) delete iterRange -> second; r.clear(); 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(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4IonYangFluctuationModel.cc b/source/processes/electromagnetic/lowenergy/src/G4IonYangFluctuationModel.cc index 4ad29a5fb0..2a02a27ca3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4IonYangFluctuationModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4IonYangFluctuationModel.cc @@ -32,22 +32,22 @@ // File name: G4IonYangFluctuationModel // // Author: V.Ivanchenko (Vladimir.Ivanchenko@cern.ch) -// +// // Creation date: 18 August 2000 // -// Modifications: +// Modifications: // 18/08/2000 V.Ivanchenko First implementation -// 04/09/2000 V.Ivanchenko Rename fluctuations +// 04/09/2000 V.Ivanchenko Rename fluctuations // 03/10/2000 V.Ivanchenko CodeWizard clean up // 10/05/2001 V.Ivanchenko Clean up againist Linux compilation with -Wall // // ------------------------------------------------------------------- -// Class Description: +// Class Description: // -// The aproximation of additional ion energy loss fluctuations +// The aproximation of additional ion energy loss fluctuations // Q.Yang et al., NIM B61(1991)149-155. // -// Class Description: End +// Class Description: End // // ------------------------------------------------------------------- // @@ -61,6 +61,7 @@ #include "G4DynamicParticle.hh" #include "G4ParticleDefinition.hh" #include "G4Material.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -70,13 +71,13 @@ G4IonYangFluctuationModel::G4IonYangFluctuationModel(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4IonYangFluctuationModel::~G4IonYangFluctuationModel() +G4IonYangFluctuationModel::~G4IonYangFluctuationModel() {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4IonYangFluctuationModel::TheValue(const G4DynamicParticle* particle, - const G4Material* material) + const G4Material* material) { G4double energy = particle->GetKineticEnergy() ; G4double mass = particle->GetMass() ; @@ -91,7 +92,7 @@ G4double G4IonYangFluctuationModel::TheValue(const G4DynamicParticle* particle, G4double G4IonYangFluctuationModel::TheValue(const G4ParticleDefinition* aParticle, const G4Material* material, - G4double kineticEnergy) + G4double kineticEnergy) { G4double mass = aParticle->GetPDGMass() ; G4double charge = (aParticle->GetPDGCharge())/eplus ; @@ -133,7 +134,7 @@ G4double G4IonYangFluctuationModel::LowEnergyLimit( } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4bool G4IonYangFluctuationModel::IsInCharge(const G4DynamicParticle*, const G4Material* ) const { @@ -141,7 +142,7 @@ G4bool G4IonYangFluctuationModel::IsInCharge(const G4DynamicParticle*, } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4bool G4IonYangFluctuationModel::IsInCharge(const G4ParticleDefinition* , const G4Material* ) const { @@ -155,7 +156,7 @@ G4double G4IonYangFluctuationModel::YangFluctuationModel(const G4Material* mater G4double particleMass, G4double charge) const { - // The aproximation of energy loss fluctuations + // The aproximation of energy loss fluctuations // Q.Yang et al., NIM B61(1991)149-155. // Reduced energy in MeV/AMU @@ -177,7 +178,7 @@ G4double G4IonYangFluctuationModel::YangFluctuationModel(const G4Material* mater {0.01273, 0.03458, 0.3951, 3.812} } ; - // protons (hadrons) + // protons (hadrons) if(1.5 > charge) { if( kStateGas != material->GetState() ) i = 1 ; @@ -188,7 +189,7 @@ G4double G4IonYangFluctuationModel::YangFluctuationModel(const G4Material* mater factor = charge * std::pow(charge/zeff, 0.3333) ; if( kStateGas == material->GetState() ) { - energy /= (charge * std::sqrt(charge)) ; + energy /= (charge * std::sqrt(charge)) ; if(1 == (material->GetNumberOfElements())) { i = 2 ; @@ -197,21 +198,15 @@ G4double G4IonYangFluctuationModel::YangFluctuationModel(const G4Material* mater } } else { - energy /= (charge * std::sqrt(charge*zeff)) ; + energy /= (charge * std::sqrt(charge*zeff)) ; i = 4 ; } } - G4double x = b[i][2] * (1.0 - std::exp( - energy * b[i][3] )) ; + G4double x = b[i][2] * (1.0 - G4Exp( - energy * b[i][3] )) ; - G4double q = factor * x * b[i][0] / + G4double q = factor * x * b[i][0] / ((energy - b[i][1])*(energy - b[i][1]) + x*x) ; - return q ; + return q ; } - - - - - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc index 79e3362cec..9e872aa6a1 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc @@ -34,6 +34,7 @@ // ------------------------------------------------------------------- #include "G4LinLogInterpolation.hh" +#include "G4Exp.hh" // Constructor @@ -47,8 +48,8 @@ G4LinLogInterpolation::~G4LinLogInterpolation() { } -G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, - const G4DataVector& points, +G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, + const G4DataVector& points, const G4DataVector& data) const { //G4cout << "G4LinLogInterpolation is performed on dataset (2 arguments) " << G4endl; @@ -64,7 +65,7 @@ G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, G4double e2 = points[bin+1]; G4double d1 = std::log(data[bin]); G4double d2 = std::log(data[bin+1]); - value = std::exp(d1 + (d2 - d1)*(x - e1)/ (e2 - e1)); + value = G4Exp(d1 + (d2 - d1)*(x - e1)/ (e2 - e1)); } else { @@ -73,10 +74,10 @@ G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, return value; } -G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, +G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& points, const G4DataVector& data, - const G4DataVector& /*log_points*/, + const G4DataVector& /*log_points*/, const G4DataVector& log_data) const { //G4cout << "G4LinLogInterpolation is performed on dataset (4 arguments) " << G4endl; @@ -103,13 +104,13 @@ G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, // original energy and data values. Simple linear interpolation performed // on loagarithmic data should be equivalent to log-log interpolation //value = log_d1 + (log_d2 - log_d1)*(log_x - log_e1)/(log_e2 - log_e1); - value = std::exp(log_d1 + (log_d2 - log_d1)*(x - e1)/(e2 - e1)); + value = G4Exp(log_d1 + (log_d2 - log_d1)*(x - e1)/(e2 - e1)); } else { if (d1 == 0.0) log_d1 = -300; if (d2 == 0.0) log_d2 = -300; - value = std::exp(log_d1 + (log_d2 - log_d1)*(x - e1)/(e2 - e1)); + value = G4Exp(log_d1 + (log_d2 - log_d1)*(x - e1)/(e2 - e1)); } } else @@ -118,4 +119,3 @@ G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, } return value; } - diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModifiedModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModifiedModel.cc index e9094ea86b..897433fb22 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModifiedModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModifiedModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LivermoreComptonModifiedModel.cc 82874 2014-07-15 15:25:29Z gcosmo $ +// $Id: G4LivermoreComptonModifiedModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // // Author: Sebastien Incerti @@ -33,10 +33,10 @@ // History: // -------- // 18 Apr 2009 V Ivanchenko Cleanup initialisation and generation of secondaries: -// - apply internal high-energy limit only in constructor +// - apply internal high-energy limit only in constructor // - do not apply low-energy limit (default is 0) // - remove GetMeanFreePath method and table -// - added protection against numerical problem in energy sampling +// - added protection against numerical problem in energy sampling // - use G4ElementSelector // 26 Dec 2010 V Ivanchenko Load data tables only once to avoid memory leak // 30 May 2011 V Ivanchenko Migration to model design for deexcitation @@ -53,6 +53,7 @@ #include "G4CompositeEMDataSet.hh" #include "G4LogLogInterpolation.hh" #include "G4Gamma.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -68,13 +69,13 @@ G4LivermoreComptonModifiedModel::G4LivermoreComptonModifiedModel(const G4Particl { verboseLevel=0 ; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods - if( verboseLevel>0 ) + if( verboseLevel>0 ) G4cout << "Livermore Modified Compton model is constructed " << G4endl; //Mark this model as "applicable" for atomic deexcitation @@ -85,7 +86,7 @@ G4LivermoreComptonModifiedModel::G4LivermoreComptonModifiedModel(const G4Particl //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4LivermoreComptonModifiedModel::~G4LivermoreComptonModifiedModel() -{ +{ delete crossSectionHandler; delete scatterFunctionData; } @@ -106,7 +107,7 @@ void G4LivermoreComptonModifiedModel::Initialise(const G4ParticleDefinition* par } delete scatterFunctionData; - // Reading of data files - all materials are read + // Reading of data files - all materials are read crossSectionHandler = new G4CrossSectionHandler; G4String crossSectionFile = "comp/ce-cs-"; crossSectionHandler->LoadData(crossSectionFile); @@ -134,13 +135,13 @@ void G4LivermoreComptonModifiedModel::Initialise(const G4ParticleDefinition* par fAtomDeexcitation = G4LossTableManager::Instance()->AtomDeexcitation(); - if( verboseLevel>0 ) { + if( verboseLevel>0 ) { G4cout << "Livermore modified Compton model is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / eV << " eV - " << HighEnergyLimit() / GeV << " GeV" << G4endl; - } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -154,10 +155,10 @@ G4double G4LivermoreComptonModifiedModel::ComputeCrossSectionPerAtom( if (verboseLevel > 3) { G4cout << "Calling ComputeCrossSectionPerAtom() of G4LivermoreComptonModifiedModel" << G4endl; } - if (GammaEnergy < LowEnergyLimit()) + if (GammaEnergy < LowEnergyLimit()) { return 0.0; } - - G4double cs = crossSectionHandler->FindValue(G4int(Z), GammaEnergy); + + G4double cs = crossSectionHandler->FindValue(G4int(Z), GammaEnergy); return cs; } @@ -186,15 +187,15 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vectorGetKineticEnergy(); if (verboseLevel > 3) { - G4cout << "G4LivermoreComptonModifiedModel::SampleSecondaries() E(MeV)= " - << photonEnergy0/MeV << " in " << couple->GetMaterial()->GetName() + G4cout << "G4LivermoreComptonModifiedModel::SampleSecondaries() E(MeV)= " + << photonEnergy0/MeV << " in " << couple->GetMaterial()->GetName() << G4endl; } // do nothing below the threshold // should never get here because the XS is zero below the limit - if (photonEnergy0 < LowEnergyLimit()) - return ; + if (photonEnergy0 < LowEnergyLimit()) + return ; G4double e0m = photonEnergy0 / electron_mass_c2 ; G4ParticleMomentum photonDirection0 = aDynamicGamma->GetMomentumDirection(); @@ -217,13 +218,13 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vector G4UniformRand()) { // std::pow(epsilon0Local,G4UniformRand()) - epsilon = std::exp(-alpha1 * G4UniformRand()); + epsilon = G4Exp(-alpha1 * G4UniformRand()); epsilonSq = epsilon * epsilon; } else @@ -248,10 +249,10 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vector= (pi/2.0)); - + ePAU = pSample / std::cos(Alpha); - + // Convert to SI and the calculate electron energy in natural units - + G4double ePSI = ePAU * momentum_au_to_nat; G4double u_temp = sqrt( ((ePSI*ePSI)*(vel_c*vel_c)) / ((e_mass_kg*e_mass_kg)*(vel_c*vel_c)+(ePSI*ePSI)))/vel_c; G4double eEIncident = electron_mass_c2 / sqrt( 1 - (u_temp*u_temp)); - + //Total energy of the system systemE = eEIncident+photonEnergy0; @@ -310,19 +311,19 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vector 0.) { - G4double varSqrt = std::sqrt(var); - G4double scale = photonEnergy0 / var3; + G4double varSqrt = std::sqrt(var); + G4double scale = photonEnergy0 / var3; // Random select either root - if (G4UniformRand() < 0.5) { photonE = (var4 - varSqrt) * scale; } + if (G4UniformRand() < 0.5) { photonE = (var4 - varSqrt) * scale; } else { photonE = (var4 + varSqrt) * scale; } - } + } else { photonE = -1.; } - } while ( iteration <= maxDopplerIterations && + } while ( iteration <= maxDopplerIterations && (photonE < 0. || photonE > eMax ) ); - + // End of recalculation of photon energy with Doppler broadening // Kinematics of the scattered electron G4double eKineticEnergy = systemE - photonE - bindingE - electron_mass_c2; @@ -376,7 +377,7 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vector 0.) { fParticleChange->SetProposedKineticEnergy(photonEnergy1) ; - + if (iteration < maxDopplerIterations) { G4ThreeVector eDirection(eDirX,eDirY,eDirZ); @@ -390,7 +391,7 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vectorSetProposedKineticEnergy(0.) ; - fParticleChange->ProposeTrackStatus(fStopAndKill); + fParticleChange->ProposeTrackStatus(fStopAndKill); } // sample deexcitation @@ -406,11 +407,10 @@ void G4LivermoreComptonModifiedModel::SampleSecondaries(std::vector nbefore) { for (size_t i=nbefore; iGetKineticEnergy(); - } + } } } } if(bindingE < 0.0) { bindingE = 0.0; } fParticleChange->ProposeLocalEnergyDeposit(bindingE); } - diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc index dcd6b3348f..c965ad710e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc @@ -41,13 +41,13 @@ using namespace std; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4int G4LivermoreGammaConversionModel::maxZ = 99; -G4LPhysicsFreeVector* G4LivermoreGammaConversionModel::data[] = {0}; +G4LPhysicsFreeVector* G4LivermoreGammaConversionModel::data[] = {nullptr}; G4LivermoreGammaConversionModel::G4LivermoreGammaConversionModel (const G4ParticleDefinition*, const G4String& nam) :G4VEmModel(nam),isInitialised(false),smallEnergy(2.*MeV) { - fParticleChange = 0; + fParticleChange = nullptr; lowEnergyLimit = 2.0*electron_mass_c2; @@ -95,13 +95,10 @@ void G4LivermoreGammaConversionModel::Initialise( if(IsMaster()) { - // Initialise element selector - InitialiseElementSelectors(particle, cuts); // Access to elements - char* path = getenv("G4LEDATA"); G4ProductionCutsTable* theCoupleTable = diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModelRC.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModelRC.cc index 15cdb3d375..7b42598158 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModelRC.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModelRC.cc @@ -32,11 +32,11 @@ #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "G4Log.hh" -#include "G4Exp.hh" #include "G4Electron.hh" #include "G4Positron.hh" #include "G4Gamma.hh" #include "G4ParticleChangeForGamma.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -45,13 +45,13 @@ using namespace std; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4int G4LivermoreGammaConversionModelRC::maxZ = 99; -G4LPhysicsFreeVector* G4LivermoreGammaConversionModelRC::data[] = {0}; +G4LPhysicsFreeVector* G4LivermoreGammaConversionModelRC::data[] = {nullptr}; G4LivermoreGammaConversionModelRC::G4LivermoreGammaConversionModelRC (const G4ParticleDefinition*, const G4String& nam) :G4VEmModel(nam),isInitialised(false),smallEnergy(2.*MeV) { - fParticleChange = 0; + fParticleChange = nullptr; lowEnergyLimit = 2.0*electron_mass_c2; @@ -372,10 +372,10 @@ void G4LivermoreGammaConversionModelRC::SampleSecondaries( G4double HardPhotonThreshold = 0.08; G4double r1, r2, r3, beta=0, gbeta, sigt = 582.068, sigh, rejet; // , Pi = 2.*acos(0.); - G4double cg = (11./2.)/(exp(-11.*HardPhotonThreshold/2.)-exp(-11./2.)); + G4double cg = (11./2.)/(G4Exp(-11.*HardPhotonThreshold/2.)-G4Exp(-11./2.)); r1 = G4UniformRand(); - sigh = 1028.58*exp(-HardPhotonThreshold/0.09033) + 136.63; // sigma hard + sigh = 1028.58*G4Exp(-HardPhotonThreshold/0.09033) + 136.63; // sigma hard if (r1 > 1.- sigh/sigt) { @@ -383,8 +383,8 @@ void G4LivermoreGammaConversionModelRC::SampleSecondaries( rejet = 0.; while (r2 > rejet) { r3 = G4UniformRand(); - beta = (-2./11.)*log(exp(-0.08*11./2.)-r3*11./(2.*cg)); - gbeta = exp(-11.*beta/2.); + beta = (-2./11.)*log(G4Exp(-0.08*11./2.)-r3*11./(2.*cg)); + gbeta = G4Exp(-11.*beta/2.); rejet = fbeta(beta)/(8000.*gbeta); } HardPhotonEnergy = beta * photonEnergy; @@ -444,9 +444,7 @@ void G4LivermoreGammaConversionModelRC::SampleSecondaries( // Fix charges randomly - - - + // Scattered electron (positron) angles. ( Z - axis along the parent photon) // Universal distribution suggested by L. Urban (Geant3 manual (1993) Phys211), // derived from Tsai distribution (Rev. Mod. Phys. 49, 421 (1977) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc index aa67a05aa0..b00ccb679d 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LivermorePhotoElectricModel.cc 89826 2015-04-30 15:18:18Z gcosmo $ +// $Id: G4LivermorePhotoElectricModel.cc 94854 2015-12-11 13:54:09Z gcosmo $ // // // Author: Sebastien Incerti @@ -48,13 +48,13 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4LPhysicsFreeVector* G4LivermorePhotoElectricModel::fCrossSection[] = {0}; -G4LPhysicsFreeVector* G4LivermorePhotoElectricModel::fCrossSectionLE[] = {0}; -std::vector* G4LivermorePhotoElectricModel::fParam[] = {0}; +G4LPhysicsFreeVector* G4LivermorePhotoElectricModel::fCrossSection[] = {nullptr}; +G4LPhysicsFreeVector* G4LivermorePhotoElectricModel::fCrossSectionLE[] = {nullptr}; +std::vector* G4LivermorePhotoElectricModel::fParam[] = {nullptr}; G4int G4LivermorePhotoElectricModel::fNShells[] = {0}; G4int G4LivermorePhotoElectricModel::fNShellsUsed[] = {0}; -G4ElementData* G4LivermorePhotoElectricModel::fShellCrossSection = 0; -G4Material* G4LivermorePhotoElectricModel::fWater = 0; +G4ElementData* G4LivermorePhotoElectricModel::fShellCrossSection = nullptr; +G4Material* G4LivermorePhotoElectricModel::fWater = nullptr; G4double G4LivermorePhotoElectricModel::fWaterEnergyLimit = 0.0; using namespace std; @@ -63,9 +63,9 @@ using namespace std; G4LivermorePhotoElectricModel::G4LivermorePhotoElectricModel( const G4String& nam) - : G4VEmModel(nam),fParticleChange(0),maxZ(99), + : G4VEmModel(nam),fParticleChange(nullptr),maxZ(99), nShellLimit(100),fDeexcitationActive(false),isInitialised(false), - fAtomDeexcitation(0) + fAtomDeexcitation(nullptr) { verboseLevel= 0; // Verbosity scale: diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc index a385c60332..ef9cec19f0 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LivermorePolarizedComptonModel.cc 93359 2015-10-19 13:42:18Z gcosmo $ +// $Id: G4LivermorePolarizedComptonModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // Authors: G.Depaola & F.Longo // @@ -364,7 +364,7 @@ void G4LivermorePolarizedComptonModel::SampleSecondaries(std::vector G4UniformRand() ) { - epsilon = std::exp(-alpha1*G4UniformRand()); + epsilon = G4Exp(-alpha1*G4UniformRand()); epsilonSq = epsilon*epsilon; } else diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc index d29370acb0..8208604859 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc @@ -43,21 +43,17 @@ using namespace std; - G4int G4LivermorePolarizedGammaConversionModel::maxZ = 99; G4LPhysicsFreeVector* G4LivermorePolarizedGammaConversionModel::data[] = {0}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4LivermorePolarizedGammaConversionModel::G4LivermorePolarizedGammaConversionModel( - const G4ParticleDefinition*, const G4String& nam) + const G4ParticleDefinition*, const G4String& nam) :G4VEmModel(nam), isInitialised(false),smallEnergy(2.*MeV) { - fParticleChange = 0; + fParticleChange = nullptr; lowEnergyLimit = 2*electron_mass_c2; - //highEnergyLimit = 100 * GeV; - //SetLowEnergyLimit(lowEnergyLimit); - //SetHighEnergyLimit(highEnergyLimit); Phi=0.; Psi=0.; @@ -89,8 +85,6 @@ G4LivermorePolarizedGammaConversionModel::~G4LivermorePolarizedGammaConversionMo } } - - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4LivermorePolarizedGammaConversionModel::Initialise(const G4ParticleDefinition* particle, @@ -149,7 +143,7 @@ void G4LivermorePolarizedGammaConversionModel::Initialise(const G4ParticleDefini //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4LivermorePolarizedGammaConversionModel::InitialiseLocal( - const G4ParticleDefinition*, G4VEmModel* masterModel) + const G4ParticleDefinition*, G4VEmModel* masterModel) { SetElementSelectors(masterModel->GetElementSelectors()); } @@ -157,8 +151,7 @@ void G4LivermorePolarizedGammaConversionModel::InitialiseLocal( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4LivermorePolarizedGammaConversionModel::MinPrimaryEnergy(const G4Material*, - const G4ParticleDefinition*, - G4double) + const G4ParticleDefinition*, G4double) { return lowEnergyLimit; } @@ -223,10 +216,6 @@ void G4LivermorePolarizedGammaConversionModel::ReadData(size_t Z, const char* pa } - - - - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4LivermorePolarizedGammaConversionModel::ComputeCrossSectionPerAtom( @@ -364,7 +353,7 @@ G4LivermorePolarizedGammaConversionModel::SampleSecondaries(std::vectorGetIonisation()->GetZ3()) ; - G4double screenMax = exp ((42.24 - fZ)/8.368) - 0.952 ; + G4double screenMax = G4Exp ((42.24 - fZ)/8.368) - 0.952 ; G4double screenMin = std::min(4.*screenFactor,screenMax) ; // Limits of the energy sampling @@ -546,18 +535,7 @@ G4LivermorePolarizedGammaConversionModel::SampleSecondaries(std::vectorpush_back(particle1); fvect->push_back(particle2); - - // Kill the incident photon - - - - // Create lists of pointers to DynamicParticles (photons and electrons) - // (Is the electron vector necessary? To be checked) - // std::vector* photonVector = 0; - //std::vector electronVector; - - fParticleChange->ProposeMomentumDirection( 0., 0., 0. ); fParticleChange->SetProposedKineticEnergy(0.); fParticleChange->ProposeTrackStatus(fStopAndKill); @@ -1009,7 +987,7 @@ G4double G4LivermorePolarizedGammaConversionModel::Finvtan(G4double* p_p1, G4dou G4double a = p_p1[0]; G4double b = p_p1[1]; - value = b*(1-exp(r*cnor/a)); + value = b*(1-G4Exp(r*cnor/a)); return value; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricGDModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricGDModel.cc index 1c76597025..ea290f9702 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricGDModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricGDModel.cc @@ -38,18 +38,16 @@ #include "G4Electron.hh" #include "G4LPhysicsFreeVector.hh" #include "G4ParticleChangeForGamma.hh" -//#include "G4ProductionCutsTable.hh" #include - -G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricGDModel::fCrossSection[] = {0}; -G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricGDModel::fCrossSectionLE[] = {0}; +G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricGDModel::fCrossSection[] = {nullptr}; +G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricGDModel::fCrossSectionLE[] = {nullptr}; std::vector* G4LivermorePolarizedPhotoElectricGDModel::fParam[] = {0}; G4int G4LivermorePolarizedPhotoElectricGDModel::fNShells[] = {0}; G4int G4LivermorePolarizedPhotoElectricGDModel::fNShellsUsed[] = {0}; -G4ElementData* G4LivermorePolarizedPhotoElectricGDModel::fShellCrossSection = 0; -G4Material* G4LivermorePolarizedPhotoElectricGDModel::fWater = 0; +G4ElementData* G4LivermorePolarizedPhotoElectricGDModel::fShellCrossSection = nullptr; +G4Material* G4LivermorePolarizedPhotoElectricGDModel::fWater = nullptr; G4double G4LivermorePolarizedPhotoElectricGDModel::fWaterEnergyLimit = 0.0; @@ -61,14 +59,10 @@ using namespace std; G4LivermorePolarizedPhotoElectricGDModel::G4LivermorePolarizedPhotoElectricGDModel( const G4String& nam) - :G4VEmModel(nam),fParticleChange(0),maxZ(99), - nShellLimit(100), fDeexcitationActive(false), isInitialised(false), fAtomDeexcitation(0) - // crossSectionHandler(0), shellCrossSectionHandler(0) + :G4VEmModel(nam),fParticleChange(nullptr),maxZ(99), + nShellLimit(100), fDeexcitationActive(false), isInitialised(false), + fAtomDeexcitation(nullptr) { - - // lowEnergyLimit = 10 * eV; // SI - Could be 10 eV ? - // highEnergyLimit = 100 * GeV; - verboseLevel= 0; // Verbosity scale: // 0 = nothing @@ -80,7 +74,6 @@ G4LivermorePolarizedPhotoElectricGDModel::G4LivermorePolarizedPhotoElectricGDMod theGamma = G4Gamma::Gamma(); theElectron = G4Electron::Electron(); - SetDeexcitationFlag(true); fSandiaCof.resize(4,0.0); fCurrSection = 0.0; @@ -90,16 +83,12 @@ G4LivermorePolarizedPhotoElectricGDModel::G4LivermorePolarizedPhotoElectricGDMod << " nShellLimit " << nShellLimit << G4endl; } - - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4LivermorePolarizedPhotoElectricGDModel::~G4LivermorePolarizedPhotoElectricGDModel() { - // delete crossSectionHandler; - //delete shellCrossSectionHandler; if(IsMaster()) { delete fShellCrossSection; for(G4int i=0; ipush_back(electron); - -// Deexcitation -// Sample deexcitation + // Deexcitation + // Sample deexcitation if(shell) { G4int index = couple->GetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { @@ -443,9 +427,8 @@ void G4LivermorePolarizedPhotoElectricGDModel::SampleSecondaries( } } - - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + void G4LivermorePolarizedPhotoElectricGDModel::ReadData(G4int Z, const char* path) { if (verboseLevel > 1) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricModel.cc index dd90da46fb..1bab6fae8a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedPhotoElectricModel.cc @@ -49,13 +49,13 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricModel::fCrossSection[] = {0}; -G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricModel::fCrossSectionLE[] = {0}; -std::vector* G4LivermorePolarizedPhotoElectricModel::fParam[] = {0}; +G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricModel::fCrossSection[] = {nullptr}; +G4LPhysicsFreeVector* G4LivermorePolarizedPhotoElectricModel::fCrossSectionLE[] = {nullptr}; +std::vector* G4LivermorePolarizedPhotoElectricModel::fParam[] = {nullptr}; G4int G4LivermorePolarizedPhotoElectricModel::fNShells[] = {0}; G4int G4LivermorePolarizedPhotoElectricModel::fNShellsUsed[] = {0}; -G4ElementData* G4LivermorePolarizedPhotoElectricModel::fShellCrossSection = 0; -G4Material* G4LivermorePolarizedPhotoElectricModel::fWater = 0; +G4ElementData* G4LivermorePolarizedPhotoElectricModel::fShellCrossSection = nullptr; +G4Material* G4LivermorePolarizedPhotoElectricModel::fWater = nullptr; G4double G4LivermorePolarizedPhotoElectricModel::fWaterEnergyLimit = 0.0; using namespace std; @@ -63,9 +63,9 @@ using namespace std; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4LivermorePolarizedPhotoElectricModel::G4LivermorePolarizedPhotoElectricModel(const G4String& nam) - : G4VEmModel(nam),fParticleChange(0),maxZ(99), + : G4VEmModel(nam),fParticleChange(nullptr),maxZ(99), nShellLimit(100),fDeexcitationActive(false),isInitialised(false), - fAtomDeexcitation(0) + fAtomDeexcitation(nullptr) { verboseLevel= 0; // Verbosity scale: diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc index a1ccbe2aaf..5355fc67e9 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc @@ -63,6 +63,7 @@ // | Feb. 2013 JMCB - Geant4 9.6 FPE fix for bug 1426 | // | Jan. 2015 JMCB - Migration to MT (Based on Livermore | // | implementation) | +// | Feb. 2016 JMCB - Geant4 10.2 FPE fix for bug 1676 | // | | // ********************************************************************* @@ -549,18 +550,30 @@ void G4LowEPComptonModel::SampleSecondaries(std::vector* fve G4double X_m = (-var_Y - sqrt (diff))/(2*var_W); - // Randomly sample one of the two possible solutions and determin theta angle of ejected Compton electron + // Floating point precision protection + // Check if X_p and X_m are greater than or less than 1 or -1, if so clean up FPE + // Issue due to propagation of FPE and only impacts 8th sig fig onwards + + if(X_p >1){X_p=1;} if(X_p<-1){X_p=-1;} + if(X_m >1){X_m=1;} if(X_m<-1){X_m=-1;} + + // End of FP protection + G4double ThetaE = 0.; - G4double sol_select = G4UniformRand(); + + + // Randomly sample one of the two possible solutions and determin theta angle of ejected Compton electron + G4double sol_select = G4UniformRand(); if (sol_select < 0.5) { - ThetaE = std::acos(X_p); + ThetaE = std::acos(X_p); } if (sol_select > 0.5) { ThetaE = std::acos(X_m); } + cosThetaE = std::cos(ThetaE); sinThetaE = std::sin(ThetaE); diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc index eadb64b969..98a1ae8475 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc @@ -45,7 +45,7 @@ // | | // | The author acknowledges the work of the Geant4 collaboration | // | in developing the following algorithms that have been employed | -// | or adapeted for the present software: | +// | or adapeted for the present software: | // | | // | # sampling of photon scattering angle, | // | # target element selection in composite materials, | @@ -64,6 +64,7 @@ #include "G4LowEPPolarizedComptonModel.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" //**************************************************************************** @@ -82,8 +83,8 @@ G4LowEPPolarizedComptonModel::G4LowEPPolarizedComptonModel(const G4ParticleDefin { verboseLevel=1 ; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods @@ -172,7 +173,7 @@ void G4LowEPPolarizedComptonModel::Initialise(const G4ParticleDefinition* partic } if(isInitialised) { return; } - + fParticleChange = GetParticleChangeForGamma(); fAtomDeexcitation = G4LossTableManager::Instance()->AtomDeexcitation(); isInitialised = true; @@ -241,7 +242,7 @@ void G4LowEPPolarizedComptonModel::ReadData(size_t Z, const char* path) //**************************************************************************** -G4double +G4double G4LowEPPolarizedComptonModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double GammaEnergy, G4double Z, G4double, @@ -322,7 +323,7 @@ void G4LowEPPolarizedComptonModel::SampleSecondaries(std::vectorGetMomentumDirection(); - + // Polarisation: check orientation of photon propagation direction and polarisation // Fix if needed @@ -439,7 +440,7 @@ void G4LowEPPolarizedComptonModel::SampleSecondaries(std::vectorRandomSelectMomentum(Z,shellIdx); - // Convert to SI units + // Convert to SI units G4double ePSI = ePAU * momentum_au_to_nat; //Calculate bound electron velocity and normalise to natural units u_temp = sqrt( ((ePSI*ePSI)*(vel_c*vel_c)) / ((e_mass_kg*e_mass_kg)*(vel_c*vel_c)+(ePSI*ePSI)) )/vel_c; - // Sample incident electron direction, amorphous material, to scattering photon scattering plane + // Sample incident electron direction, amorphous material, to scattering photon scattering plane e_alpha = pi*G4UniformRand(); e_beta = twopi*G4UniformRand(); - // Total energy of system + // Total energy of system G4double eEIncident = electron_mass_c2 / sqrt( 1 - (u_temp*u_temp)); G4double systemE = eEIncident + pEIncident; @@ -492,14 +493,14 @@ void G4LowEPPolarizedComptonModel::SampleSecondaries(std::vector 1)); - // Revert to original if maximum number of iterations threshold has been reached + // Revert to original if maximum number of iterations threshold has been reached if (iteration >= maxDopplerIterations) { pERecoil = photonEnergy0 ; @@ -650,7 +651,7 @@ void G4LowEPPolarizedComptonModel::SampleSecondaries(std::vectorsize(); if(nafter > nbefore) { for (size_t i=nbefore; i= ((*fvect)[i])->GetKineticEnergy()) { //Ok, this is a valid secondary: keep it @@ -715,7 +716,7 @@ G4LowEPPolarizedComptonModel::InitialiseForElement(const G4ParticleDefinition*, //**************************************************************************** -//Fitting data to compute scattering function +//Fitting data to compute scattering function const G4double G4LowEPPolarizedComptonModel::ScatFuncFitParam[101][9] = { { 0, 0., 0., 0., 0., 0., 0., 0., 0.}, @@ -901,7 +902,7 @@ G4ThreeVector G4LowEPPolarizedComptonModel::GetPerpendicularPolarization (const G4ThreeVector& photonDirection, const G4ThreeVector& photonPolarization) const { - // + // // The polarization of a photon is always perpendicular to its momentum direction. // Therefore this function removes those vector component of photonPolarization, which // points in direction of photonDirection @@ -935,7 +936,7 @@ G4ThreeVector G4LowEPPolarizedComptonModel::SetNewPolarization(G4double LowEPPCe // "Detection of Gamma Ray Polarization Using a 3-D Position Sensitive CdZnTe Detector" // IEEE TNS, Vol. 52(4), 1160-1164, 2005. - // Determination of Theta + // Determination of Theta G4double theta; diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc index f7a14f1b72..d02c871070 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc @@ -32,12 +32,13 @@ // NIM B, vol. 288, pp. 66 - 73, 2012. // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4MicroElecElasticModel.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -52,7 +53,7 @@ G4MicroElecElasticModel::G4MicroElecElasticModel(const G4ParticleDefinition*, nistSi = G4NistManager::Instance()->FindOrBuildMaterial("G4_Si"); killBelowEnergy = 16.7 * eV; // Minimum e- energy for energy loss by excitation - lowEnergyLimit = 0 * eV; + lowEnergyLimit = 0 * eV; lowEnergyLimitOfModel = 5 * eV; // The model lower energy is 5 eV highEnergyLimit = 100. * MeV; SetLowEnergyLimit(lowEnergyLimit); @@ -60,14 +61,14 @@ G4MicroElecElasticModel::G4MicroElecElasticModel(const G4ParticleDefinition*, verboseLevel= 0; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods - - if( verboseLevel>0 ) - { + + if( verboseLevel>0 ) + { G4cout << "MicroElec Elastic model is constructed " << G4endl << "Energy range: " << lowEnergyLimit / eV << " eV - " @@ -80,9 +81,9 @@ G4MicroElecElasticModel::G4MicroElecElasticModel(const G4ParticleDefinition*, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4MicroElecElasticModel::~G4MicroElecElasticModel() -{ +{ // For total cross section - + std::map< G4String,G4MicroElecCrossSectionDataSet*,std::less >::iterator pos; for (pos = tableData.begin(); pos != tableData.end(); ++pos) { @@ -91,7 +92,7 @@ G4MicroElecElasticModel::~G4MicroElecElasticModel() } // For final state - + eVecm.clear(); } @@ -106,23 +107,23 @@ void G4MicroElecElasticModel::Initialise(const G4ParticleDefinition* /*particle* G4cout << "Calling G4MicroElecElasticModel::Initialise()" << G4endl; // Energy limits - + if (LowEnergyLimit() < lowEnergyLimit) { - G4cout << "G4MicroElecElasticModel: low energy limit increased from " << + G4cout << "G4MicroElecElasticModel: low energy limit increased from " << LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; SetLowEnergyLimit(lowEnergyLimit); } if (HighEnergyLimit() > highEnergyLimit) { - G4cout << "G4MicroElecElasticModel: high energy limit decreased from " << + G4cout << "G4MicroElecElasticModel: high energy limit decreased from " << HighEnergyLimit()/MeV << " MeV to " << highEnergyLimit/MeV << " MeV" << G4endl; SetHighEnergyLimit(highEnergyLimit); } - // Reading of data files - + // Reading of data files + G4double scaleFactor = 1e-18 * cm * cm; G4String fileElectron("microelec/sigma_elastic_e_Si"); @@ -131,7 +132,7 @@ void G4MicroElecElasticModel::Initialise(const G4ParticleDefinition* /*particle* G4String electron; // For total cross section - + electron = electronDef->GetParticleName(); tableFile[electron] = fileElectron; @@ -139,11 +140,11 @@ void G4MicroElecElasticModel::Initialise(const G4ParticleDefinition* /*particle* G4MicroElecCrossSectionDataSet* tableE = new G4MicroElecCrossSectionDataSet(new G4LogLogInterpolation, eV,scaleFactor ); tableE->LoadData(fileElectron); tableData[electron] = tableE; - + // For final state - + char *path = getenv("G4LEDATA"); - + if (!path) { G4Exception("G4MicroElecElasticModel::Initialise","em0006",FatalException,"G4LEDATA environment variable not set."); @@ -153,10 +154,10 @@ void G4MicroElecElasticModel::Initialise(const G4ParticleDefinition* /*particle* std::ostringstream eFullFileName; eFullFileName << path << "/microelec/sigmadiff_cumulated_elastic_e_Si.dat"; std::ifstream eDiffCrossSection(eFullFileName.str().c_str()); - - if (!eDiffCrossSection) + + if (!eDiffCrossSection) G4Exception("G4MicroElecElasticModel::Initialise","em0003",FatalException,"Missing data file: /microelec/sigmadiff_cumulated_elastic_e_Si.dat"); - + // October 21th, 2014 - Melanie Raine // Added clear for MT @@ -167,7 +168,7 @@ void G4MicroElecElasticModel::Initialise(const G4ParticleDefinition* /*particle* // - + eTdummyVec.push_back(0.); while(!eDiffCrossSection.eof()) @@ -178,25 +179,25 @@ void G4MicroElecElasticModel::Initialise(const G4ParticleDefinition* /*particle* // SI : mandatory eVecm initialization - if (tDummy != eTdummyVec.back()) - { - eTdummyVec.push_back(tDummy); + if (tDummy != eTdummyVec.back()) + { + eTdummyVec.push_back(tDummy); eVecm[tDummy].push_back(0.); } - + eDiffCrossSection>>eDiffCrossSectionData[tDummy][eDummy]; - + if (eDummy != eVecm[tDummy].back()) eVecm[tDummy].push_back(eDummy); - + } // End final state - - if (verboseLevel > 2) + + if (verboseLevel > 2) G4cout << "Loaded cross section files for MicroElec Elastic model" << G4endl; - if( verboseLevel>0 ) - { + if( verboseLevel>0 ) + { G4cout << "MicroElec Elastic model is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / eV << " eV - " @@ -224,7 +225,7 @@ G4double G4MicroElecElasticModel::CrossSectionPerVolume(const G4Material* materi // Calculate total cross section for model G4double sigma=0; - + G4double density = material->GetTotNbOfAtomsPerVolume(); if (material == nistSi || material->GetBaseMaterial() == nistSi) @@ -235,11 +236,11 @@ G4double G4MicroElecElasticModel::CrossSectionPerVolume(const G4Material* materi { //SI : XS must not be zero otherwise sampling of secondaries method ignored if (ekin < killBelowEnergy) return DBL_MAX; - // - + // + std::map< G4String,G4MicroElecCrossSectionDataSet*,std::less >::iterator pos; pos = tableData.find(particleName); - + if (pos != tableData.end()) { G4MicroElecCrossSectionDataSet* table = pos->second; @@ -259,11 +260,11 @@ G4double G4MicroElecElasticModel::CrossSectionPerVolume(const G4Material* materi G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl; G4cout << " - Cross section per Si atom (cm^2)=" << sigma/cm/cm << G4endl; G4cout << " - Cross section per Si atom (cm^-1)=" << sigma*density/(1./cm) << G4endl; - } + } - } - - return sigma*density; + } + + return sigma*density; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -279,7 +280,7 @@ void G4MicroElecElasticModel::SampleSecondaries(std::vector* G4cout << "Calling SampleSecondaries() of G4MicroElecElasticModel" << G4endl; G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); - + if (electronEnergy0 < killBelowEnergy) { fParticleChangeForGamma->SetProposedKineticEnergy(0.); @@ -289,9 +290,9 @@ void G4MicroElecElasticModel::SampleSecondaries(std::vector* } if (electronEnergy0>= killBelowEnergy && electronEnergy0 < highEnergyLimit) - { + { G4double cosTheta = RandomizeCosTheta(electronEnergy0); - + G4double phi = 2. * pi * G4UniformRand(); G4ThreeVector zVers = aDynamicElectron->GetMomentumDirection(); @@ -315,7 +316,7 @@ void G4MicroElecElasticModel::SampleSecondaries(std::vector* //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4MicroElecElasticModel::Theta - (G4ParticleDefinition * particleDefinition, G4double k, G4double integrDiff) + (G4ParticleDefinition * particleDefinition, G4double k, G4double integrDiff) { G4double theta = 0.; @@ -325,23 +326,23 @@ G4double G4MicroElecElasticModel::Theta G4double valueE22 = 0; G4double valueE12 = 0; G4double valueE11 = 0; - G4double xs11 = 0; - G4double xs12 = 0; - G4double xs21 = 0; - G4double xs22 = 0; + G4double xs11 = 0; + G4double xs12 = 0; + G4double xs21 = 0; + G4double xs22 = 0; - if (particleDefinition == G4Electron::ElectronDefinition()) + if (particleDefinition == G4Electron::ElectronDefinition()) { std::vector::iterator t2 = std::upper_bound(eTdummyVec.begin(),eTdummyVec.end(), k); std::vector::iterator t1 = t2-1; - + std::vector::iterator e12 = std::upper_bound(eVecm[(*t1)].begin(),eVecm[(*t1)].end(), integrDiff); std::vector::iterator e11 = e12-1; - + std::vector::iterator e22 = std::upper_bound(eVecm[(*t2)].begin(),eVecm[(*t2)].end(), integrDiff); std::vector::iterator e21 = e22-1; - + valueT1 =*t1; valueT2 =*t2; valueE21 =*e21; @@ -355,14 +356,14 @@ G4double G4MicroElecElasticModel::Theta xs22 = eDiffCrossSectionData[valueT2][valueE22]; } - + if (xs11==0 || xs12==0 ||xs21==0 ||xs22==0) return (0.); - - theta = QuadInterpolator( valueE11, valueE12, - valueE21, valueE22, - xs11, xs12, - xs21, xs22, - valueT1, valueT2, + + theta = QuadInterpolator( valueE11, valueE12, + valueE21, valueE22, + xs11, xs12, + xs21, xs22, + valueT1, valueT2, k, integrDiff ); return theta; @@ -370,24 +371,24 @@ G4double G4MicroElecElasticModel::Theta //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MicroElecElasticModel::LinLogInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4MicroElecElasticModel::LinLogInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double d1 = std::log(xs1); G4double d2 = std::log(xs2); - G4double value = std::exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); + G4double value = G4Exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); return value; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MicroElecElasticModel::LinLinInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4MicroElecElasticModel::LinLinInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double d1 = xs1; @@ -398,10 +399,10 @@ G4double G4MicroElecElasticModel::LinLinInterpolate(G4double e1, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MicroElecElasticModel::LogLogInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4MicroElecElasticModel::LogLogInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double a = (std::log10(xs2)-std::log10(xs1)) / (std::log10(e2)-std::log10(e1)); @@ -413,11 +414,11 @@ G4double G4MicroElecElasticModel::LogLogInterpolate(G4double e1, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MicroElecElasticModel::QuadInterpolator(G4double e11, G4double e12, - G4double e21, G4double e22, - G4double xs11, G4double xs12, - G4double xs21, G4double xs22, - G4double t1, G4double t2, +G4double G4MicroElecElasticModel::QuadInterpolator(G4double e11, G4double e12, + G4double e21, G4double e22, + G4double xs11, G4double xs12, + G4double xs21, G4double xs22, + G4double t1, G4double t2, G4double t, G4double e) { // Log-Log @@ -443,17 +444,17 @@ G4double G4MicroElecElasticModel::QuadInterpolator(G4double e11, G4double e12, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MicroElecElasticModel::RandomizeCosTheta(G4double k) +G4double G4MicroElecElasticModel::RandomizeCosTheta(G4double k) { G4double integrdiff=0; G4double uniformRand=G4UniformRand(); integrdiff = uniformRand; - + G4double theta=0.; G4double cosTheta=0.; theta = Theta(G4Electron::ElectronDefinition(),k/eV,integrdiff); cosTheta= std::cos(theta*pi/180); - return cosTheta; + return cosTheta; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4MuElecElasticModel.cc b/source/processes/electromagnetic/lowenergy/src/G4MuElecElasticModel.cc index a3306edf15..c34c41cab2 100755 --- a/source/processes/electromagnetic/lowenergy/src/G4MuElecElasticModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MuElecElasticModel.cc @@ -32,12 +32,13 @@ // NIM B, vol. 288, pp. 66 - 73, 2012. // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4MuElecElasticModel.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -49,7 +50,7 @@ G4MuElecElasticModel::G4MuElecElasticModel(const G4ParticleDefinition*, const G4String& nam) :G4VEmModel(nam),isInitialised(false) { - + G4cout << G4endl; G4cout << "*******************************************************************************" << G4endl; G4cout << "*******************************************************************************" << G4endl; @@ -58,11 +59,11 @@ G4MuElecElasticModel::G4MuElecElasticModel(const G4ParticleDefinition*, G4cout << "*******************************************************************************" << G4endl; G4cout << "*******************************************************************************" << G4endl; G4cout << G4endl; - + nistSi = G4NistManager::Instance()->FindOrBuildMaterial("G4_Si"); killBelowEnergy = 16.7 * eV; // Minimum e- energy for energy loss by excitation - lowEnergyLimit = 0 * eV; + lowEnergyLimit = 0 * eV; lowEnergyLimitOfModel = 5 * eV; // The model lower energy is 5 eV highEnergyLimit = 100. * MeV; SetLowEnergyLimit(lowEnergyLimit); @@ -70,14 +71,14 @@ G4MuElecElasticModel::G4MuElecElasticModel(const G4ParticleDefinition*, verboseLevel= 0; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods - - if( verboseLevel>0 ) - { + + if( verboseLevel>0 ) + { G4cout << "MuElec Elastic model is constructed " << G4endl << "Energy range: " << lowEnergyLimit / eV << " eV - " @@ -90,9 +91,9 @@ G4MuElecElasticModel::G4MuElecElasticModel(const G4ParticleDefinition*, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4MuElecElasticModel::~G4MuElecElasticModel() -{ +{ // For total cross section - + std::map< G4String,G4MuElecCrossSectionDataSet*,std::less >::iterator pos; for (pos = tableData.begin(); pos != tableData.end(); ++pos) { @@ -101,7 +102,7 @@ G4MuElecElasticModel::~G4MuElecElasticModel() } // For final state - + eVecm.clear(); } @@ -116,23 +117,23 @@ void G4MuElecElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, G4cout << "Calling G4MuElecElasticModel::Initialise()" << G4endl; // Energy limits - + if (LowEnergyLimit() < lowEnergyLimit) { - G4cout << "G4MuElecElasticModel: low energy limit increased from " << + G4cout << "G4MuElecElasticModel: low energy limit increased from " << LowEnergyLimit()/eV << " eV to " << lowEnergyLimit/eV << " eV" << G4endl; SetLowEnergyLimit(lowEnergyLimit); } if (HighEnergyLimit() > highEnergyLimit) { - G4cout << "G4MuElecElasticModel: high energy limit decreased from " << + G4cout << "G4MuElecElasticModel: high energy limit decreased from " << HighEnergyLimit()/MeV << " MeV to " << highEnergyLimit/MeV << " MeV" << G4endl; SetHighEnergyLimit(highEnergyLimit); } - // Reading of data files - + // Reading of data files + G4double scaleFactor = 1e-18 * cm * cm; G4String fileElectron("microelec/sigma_elastic_e_Si"); @@ -141,7 +142,7 @@ void G4MuElecElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, G4String electron; // For total cross section - + electron = electronDef->GetParticleName(); tableFile[electron] = fileElectron; @@ -149,11 +150,11 @@ void G4MuElecElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, G4MuElecCrossSectionDataSet* tableE = new G4MuElecCrossSectionDataSet(new G4LogLogInterpolation, eV,scaleFactor ); tableE->LoadData(fileElectron); tableData[electron] = tableE; - + // For final state - + char *path = getenv("G4LEDATA"); - + if (!path) { G4Exception("G4MuElecElasticModel::Initialise","em0006",FatalException,"G4LEDATA environment variable not set."); @@ -163,10 +164,10 @@ void G4MuElecElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, std::ostringstream eFullFileName; eFullFileName << path << "/microelec/sigmadiff_elastic_e_Si.dat"; std::ifstream eDiffCrossSection(eFullFileName.str().c_str()); - - if (!eDiffCrossSection) + + if (!eDiffCrossSection) G4Exception("G4MuElecElasticModel::Initialise","em0003",FatalException,"Missing data file: /microelec/sigmadiff_elastic_e_Si.dat"); - + eTdummyVec.push_back(0.); while(!eDiffCrossSection.eof()) @@ -176,28 +177,28 @@ void G4MuElecElasticModel::Initialise(const G4ParticleDefinition* /*particle*/, eDiffCrossSection>>tDummy>>eDummy; // SI : mandatory eVecm initialization - if (tDummy != eTdummyVec.back()) - { - eTdummyVec.push_back(tDummy); + if (tDummy != eTdummyVec.back()) + { + eTdummyVec.push_back(tDummy); eVecm[tDummy].push_back(0.); } - + eDiffCrossSection>>eDiffCrossSectionData[tDummy][eDummy]; // SI : only if not end of file reached ! if (!eDiffCrossSection.eof()) eDiffCrossSectionData[tDummy][eDummy]*=scaleFactor; - + if (eDummy != eVecm[tDummy].back()) eVecm[tDummy].push_back(eDummy); - + } // End final state - - if (verboseLevel > 2) + + if (verboseLevel > 2) G4cout << "Loaded cross section files for MuElec Elastic model" << G4endl; - if( verboseLevel>0 ) - { + if( verboseLevel>0 ) + { G4cout << "MuElec Elastic model is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / eV << " eV - " @@ -226,7 +227,7 @@ G4double G4MuElecElasticModel::CrossSectionPerVolume(const G4Material* material, // Calculate total cross section for model G4double sigma=0; - + G4double density = material->GetTotNbOfAtomsPerVolume(); if (material == nistSi || material->GetBaseMaterial() == nistSi) @@ -237,11 +238,11 @@ G4double G4MuElecElasticModel::CrossSectionPerVolume(const G4Material* material, { //SI : XS must not be zero otherwise sampling of secondaries method ignored if (ekin < lowEnergyLimitOfModel) ekin = lowEnergyLimitOfModel; - // - + // + std::map< G4String,G4MuElecCrossSectionDataSet*,std::less >::iterator pos; pos = tableData.find(particleName); - + if (pos != tableData.end()) { G4MuElecCrossSectionDataSet* table = pos->second; @@ -261,11 +262,11 @@ G4double G4MuElecElasticModel::CrossSectionPerVolume(const G4Material* material, G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl; G4cout << " - Cross section per Si atom (cm^2)=" << sigma/cm/cm << G4endl; G4cout << " - Cross section per Si atom (cm^-1)=" << sigma*density/(1./cm) << G4endl; - } + } - } - - return sigma*density; + } + + return sigma*density; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -281,7 +282,7 @@ void G4MuElecElasticModel::SampleSecondaries(std::vector* /* G4cout << "Calling SampleSecondaries() of G4MuElecElasticModel" << G4endl; G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); - + if (electronEnergy0 < killBelowEnergy) { fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); @@ -290,9 +291,9 @@ void G4MuElecElasticModel::SampleSecondaries(std::vector* /* } if (electronEnergy0>= killBelowEnergy && electronEnergy0 < highEnergyLimit) - { + { G4double cosTheta = RandomizeCosTheta(electronEnergy0); - + G4double phi = 2. * pi * G4UniformRand(); G4ThreeVector zVers = aDynamicElectron->GetMomentumDirection(); @@ -316,7 +317,7 @@ void G4MuElecElasticModel::SampleSecondaries(std::vector* /* //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4MuElecElasticModel::Theta - (G4ParticleDefinition * particleDefinition, G4double k, G4double integrDiff) + (G4ParticleDefinition * particleDefinition, G4double k, G4double integrDiff) { G4double theta = 0.; @@ -326,23 +327,23 @@ G4double G4MuElecElasticModel::Theta G4double valueE22 = 0; G4double valueE12 = 0; G4double valueE11 = 0; - G4double xs11 = 0; - G4double xs12 = 0; - G4double xs21 = 0; - G4double xs22 = 0; + G4double xs11 = 0; + G4double xs12 = 0; + G4double xs21 = 0; + G4double xs22 = 0; - if (particleDefinition == G4Electron::ElectronDefinition()) + if (particleDefinition == G4Electron::ElectronDefinition()) { std::vector::iterator t2 = std::upper_bound(eTdummyVec.begin(),eTdummyVec.end(), k); std::vector::iterator t1 = t2-1; - + std::vector::iterator e12 = std::upper_bound(eVecm[(*t1)].begin(),eVecm[(*t1)].end(), integrDiff); std::vector::iterator e11 = e12-1; - + std::vector::iterator e22 = std::upper_bound(eVecm[(*t2)].begin(),eVecm[(*t2)].end(), integrDiff); std::vector::iterator e21 = e22-1; - + valueT1 =*t1; valueT2 =*t2; valueE21 =*e21; @@ -356,14 +357,14 @@ G4double G4MuElecElasticModel::Theta xs22 = eDiffCrossSectionData[valueT2][valueE22]; } - + if (xs11==0 || xs12==0 ||xs21==0 ||xs22==0) return (0.); - - theta = QuadInterpolator( valueE11, valueE12, - valueE21, valueE22, - xs11, xs12, - xs21, xs22, - valueT1, valueT2, + + theta = QuadInterpolator( valueE11, valueE12, + valueE21, valueE22, + xs11, xs12, + xs21, xs22, + valueT1, valueT2, k, integrDiff ); return theta; @@ -371,24 +372,24 @@ G4double G4MuElecElasticModel::Theta //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuElecElasticModel::LinLogInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4MuElecElasticModel::LinLogInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double d1 = std::log(xs1); G4double d2 = std::log(xs2); - G4double value = std::exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); + G4double value = G4Exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); return value; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuElecElasticModel::LogLogInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4MuElecElasticModel::LogLogInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double a = (std::log10(xs2)-std::log10(xs1)) / (std::log10(e2)-std::log10(e1)); @@ -400,11 +401,11 @@ G4double G4MuElecElasticModel::LogLogInterpolate(G4double e1, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuElecElasticModel::QuadInterpolator(G4double e11, G4double e12, - G4double e21, G4double e22, - G4double xs11, G4double xs12, - G4double xs21, G4double xs22, - G4double t1, G4double t2, +G4double G4MuElecElasticModel::QuadInterpolator(G4double e11, G4double e12, + G4double e21, G4double e22, + G4double xs11, G4double xs12, + G4double xs21, G4double xs22, + G4double t1, G4double t2, G4double t, G4double e) { // Lin-Log @@ -416,17 +417,17 @@ G4double G4MuElecElasticModel::QuadInterpolator(G4double e11, G4double e12, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuElecElasticModel::RandomizeCosTheta(G4double k) +G4double G4MuElecElasticModel::RandomizeCosTheta(G4double k) { G4double integrdiff=0; G4double uniformRand=G4UniformRand(); integrdiff = uniformRand; - + G4double theta=0.; G4double cosTheta=0.; theta = Theta(G4Electron::ElectronDefinition(),k/eV,integrdiff); cosTheta= std::cos(theta*pi/180); - return cosTheta; + return cosTheta; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4OrlicLiXsModel.cc b/source/processes/electromagnetic/lowenergy/src/G4OrlicLiXsModel.cc index 00d2623404..f82dc8fd22 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4OrlicLiXsModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4OrlicLiXsModel.cc @@ -24,14 +24,14 @@ // ******************************************************************** // // Author: Haifa Ben Abdelouahed -// +// // // History: // ----------- // 23 Apr 2008 H. Ben Abdelouahed 1st implementation // 28 Apr 2008 MGP Major revision according to a design iteration // 21 Apr 2009 ALF Some correction for compatibility to G4VShellCrossSection -// and changed name to G4OrlicLiCrossSection +// and changed name to G4OrlicLiCrossSection // 21 Mar 2011 ALF some bug fixing (Z checks, ) // 29 Oct 2011 ALF Changed name to G4OrlicLiXsModel // @@ -47,28 +47,28 @@ #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "G4Proton.hh" - +#include "G4Exp.hh" G4OrlicLiXsModel::G4OrlicLiXsModel() -{ +{ transitionManager = G4AtomicTransitionManager::Instance(); } G4OrlicLiXsModel::~G4OrlicLiXsModel() -{ +{ } -//this L-CrossSection calculation method is done according to -//I.ORLIC, C.H.SOW and S.M.TANG,International Journal of PIXE.Vol.4(1994) 217-230 - +//this L-CrossSection calculation method is done according to +//I.ORLIC, C.H.SOW and S.M.TANG,International Journal of PIXE.Vol.4(1994) 217-230 + //******************************************************************************** G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energyIncident) - + { if ( /*(energyIncident < 0.1*MeV || energyIncident > 10*MeV) ||*/ zTarget < 41 )//fixed: no control on z! @@ -82,14 +82,14 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ /* - G4double massIncident; + G4double massIncident; G4Proton* aProtone = G4Proton::Proton(); - massIncident = aProtone->GetPDGMass(); + massIncident = aProtone->GetPDGMass(); */ - + G4double l1BindingEnergy = transitionManager->Shell(zTarget,1)->BindingEnergy()/keV; // G4double l1BindingEnergy = (transitionManager->Shell(zTarget,1)->BindingEnergy())/keV; - + G4double lamda = 1836.109; //massIncident/electron_mass_c2; G4double normalizedEnergy = (energyIncident/keV)/(lamda*l1BindingEnergy); @@ -102,31 +102,31 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ G4double a3 = 0.; G4double a4 = 0.; G4double a5 = 0.; - G4double a6 = 0.; - G4double a7 = 0.; - G4double a8 = 0.; + G4double a6 = 0.; + G4double a7 = 0.; + G4double a8 = 0.; G4double a9 = 0.; - + if ( (zTarget>=41 && zTarget<=50) && (normalizedEnergy>=0.013 && normalizedEnergy<=1) ) - { - + { + //G4cout << "Energy1 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug - + a0=11.274881; a1=-0.187401; a2=-0.943341; a3=-1.47817; a4=-1.282343; - a5=-0.386544; + a5=-0.386544; a6=-0.037932; a7=0.; a8=0.; a9=0.; } - - else if ( (zTarget>=51 && zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=0.95)) - { + + else if ( (zTarget>=51 && zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=0.95)) + { // G4cout << "Energy2 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug @@ -139,11 +139,11 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ a6=0.058885; a7=-0.155743; a8=-0.042228; - a9=-0.003371; - } - - else if ( (zTarget>=61 && zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.6) ) - { + a9=-0.003371; + } + + else if ( (zTarget>=61 && zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.6) ) + { // G4cout << "Energy3 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug @@ -152,14 +152,14 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ a2=-54.061629; a3=-56.684589; a4=-33.223367; - a5=-11.034979; + a5=-11.034979; a6=-2.042851; a7=-0.194075; a8=-0.007252; a9=0.; - } - else if ( (zTarget>=71 && zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.45) ) - { + } + else if ( (zTarget>=71 && zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.45) ) + { // G4cout << "Energy4 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug @@ -168,14 +168,14 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ a2=10.158703; a3=7.432592; a4=2.332036; - a5=0.317946; + a5=0.317946; a6=0.014479; a7=0.; a8=0.; a9=0.; - } - else if ( (zTarget>=81 && zTarget<=92) && (normalizedEnergy>=0.008 && normalizedEnergy<=0.3) ) - { + } + else if ( (zTarget>=81 && zTarget<=92) && (normalizedEnergy>=0.008 && normalizedEnergy<=0.3) ) + { // G4cout << "Energy5 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug @@ -184,7 +184,7 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ a2=58.281684; a3=34.130538; a4=10.268531; - a5=1.525302; + a5=1.525302; a6=0.08835; a7=0.; a8=0.; @@ -194,11 +194,11 @@ G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energ G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5))+(a6*std::pow(x,6))+ - (a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9*std::pow(x,9)); + (a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9*std::pow(x,9)); - G4double L1crossSection = std::exp(analyticalFunction)/(l1BindingEnergy*l1BindingEnergy); + G4double L1crossSection = G4Exp(analyticalFunction)/(l1BindingEnergy*l1BindingEnergy); if (L1crossSection >= 0) { @@ -212,207 +212,207 @@ G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::p G4double G4OrlicLiXsModel::CalculateL2CrossSection(G4int zTarget, G4double energyIncident) - + { if ( /*(energyIncident < 0.1*MeV || energyIncident > 10*MeV) ||*/zTarget < 41) //fixed: no control on z!) - + { //G4cout << "WARNING: L2 Cross-Section exist only for ZTarget between 41 and 92, zero returned " << G4endl; // G4cout << "energyIncident(MeV): " << energyIncident/MeV << G4endl; - //G4cout << "zTarget: " << zTarget << G4endl; + //G4cout << "zTarget: " << zTarget << G4endl; return 0; } - - - G4double massIncident; - + + + G4double massIncident; + G4Proton* aProtone = G4Proton::Proton(); - - massIncident = aProtone->GetPDGMass(); - + + massIncident = aProtone->GetPDGMass(); + G4double L2crossSection; - + G4double l2BindingEnergy = (transitionManager->Shell(zTarget,2)->BindingEnergy())/keV; - + G4double lamda = massIncident/electron_mass_c2; - + G4double normalizedEnergy = (energyIncident/keV)/(lamda*l2BindingEnergy); - + G4double x = std::log(normalizedEnergy); - + G4double a0 = 0.; G4double a1 = 0.; G4double a2 = 0.; G4double a3 = 0.; G4double a4 = 0.; G4double a5 = 0.; - - if ( (zTarget>=41 && zTarget<=50) && (normalizedEnergy>=0.015 && normalizedEnergy<=1.5)) - { + + if ( (zTarget>=41 && zTarget<=50) && (normalizedEnergy>=0.015 && normalizedEnergy<=1.5)) + { a0=11.194798; a1=0.178807; a2=-0.449865; a3=-0.063528; a4=-0.015364; - a5=0.; + a5=0.; } - - else if ( (zTarget>=51 && zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=1.0)) - { + + else if ( (zTarget>=51 && zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=1.0)) + { a0=11.241409; - a1=0.149635; + a1=0.149635; a2=-0.633269; a3=-0.17834; a4=-0.034743; a5=0.006474; // a little bit better if this is zero (respect to ecpssr) - - } - - else if ( (zTarget>=61 && zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.65)) - { + + } + + else if ( (zTarget>=61 && zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.65)) + { a0=11.247424; a1=0.203051; a2=-0.219083; a3=0.164514; a4=0.058692; - a5=0.007866; - } - else if ( (zTarget>=71 && zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.47)) - { + a5=0.007866; + } + else if ( (zTarget>=71 && zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.47)) + { a0=11.229924; a1=-0.087241; a2=-0.753908; a3=-0.181546; a4=-0.030406; - a5=0.; - } - else if ( (zTarget>=81 && zTarget<=92) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.35)) - { + a5=0.; + } + else if ( (zTarget>=81 && zTarget<=92) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.35)) + { a0=11.586671; a1=0.730838; a2=-0.056713; a3=0.053262; a4=-0.003672; - a5=0.; + a5=0.; } else {return 0;} - - G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); - - - L2crossSection = std::exp(analyticalFunction)/(l2BindingEnergy*l2BindingEnergy); - - - + + G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); + + + L2crossSection = G4Exp(analyticalFunction)/(l2BindingEnergy*l2BindingEnergy); + + + if (L2crossSection >= 0) { return L2crossSection * barn; } else {return 0;} - + } //***************************************************************************************************************************************** G4double G4OrlicLiXsModel::CalculateL3CrossSection(G4int zTarget, G4double energyIncident) - + { - + if ( /*(energyIncident < 0.1*MeV || energyIncident > 10*MeV) ||*/zTarget < 41) //fixed: no control on z! - + { //G4cout << "WARNING: L3 Cross-Section exist only for ZTarget between 41 and 92, zero returned " << G4endl; //G4cout << "energyIncident(MeV): " << energyIncident/MeV << G4endl; - //G4cout << "zTarget: " << zTarget << G4endl; + //G4cout << "zTarget: " << zTarget << G4endl; return 0; } - - G4double massIncident; - + + G4double massIncident; + G4Proton* aProtone = G4Proton::Proton(); - - massIncident = aProtone->GetPDGMass(); - - + + massIncident = aProtone->GetPDGMass(); + + G4double L3crossSection; - + G4double l3BindingEnergy = (transitionManager->Shell(zTarget,3)->BindingEnergy())/keV; - - + + G4double lamda = massIncident/electron_mass_c2; - + G4double normalizedEnergy = (energyIncident/keV)/(lamda*l3BindingEnergy); - + G4double x = std::log(normalizedEnergy); - - + + G4double a0 = 0.; G4double a1 = 0.; G4double a2 = 0.; G4double a3 = 0.; G4double a4 = 0.; G4double a5 = 0.; - + if ( (zTarget>=41 && zTarget<=50 ) && (normalizedEnergy>=0.015 && normalizedEnergy<=1.5)) - { + { a0=11.91837; a1=0.03064; a2=-0.657644; a3=-0.14532; a4=-0.026059; - //a5=-0.044735; Correction to Orlic model as explained in - //Abdelhwahed H Incerti S and Mantero A 2009 Nucl. Instrum. Meth.B 267 37 + //a5=-0.044735; Correction to Orlic model as explained in + //Abdelhwahed H Incerti S and Mantero A 2009 Nucl. Instrum. Meth.B 267 37 } - + else if ( (zTarget>=51 && zTarget<=60 ) && (normalizedEnergy>=0.013 && normalizedEnergy<=1.1)) - { + { a0=11.909485; a1=0.15918; a2=-0.588004; a3=-0.159466; - a4=-0.033184; - } - + a4=-0.033184; + } + else if ( (zTarget>=61 && zTarget<=70 ) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.67)) - { + { a0=11.878472; a1=-0.137007; a2=-0.959475; a3=-0.316505; - a4=-0.054154; - } + a4=-0.054154; + } else if ( (zTarget>=71 && zTarget<=80 ) && (normalizedEnergy>=0.013 && normalizedEnergy<=0.5)) - { + { a0=11.802538; a1=-0.371796; a2=-1.052238; a3=-0.28766; - a4=-0.042608; - } + a4=-0.042608; + } else if ( (zTarget>=81 && zTarget<=92 ) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.35)) - { + { a0=11.423712; a1=-1.428823; a2=-1.946979; a3=-0.585198; - a4=-0.076467; + a4=-0.076467; } else {return 0;} - - - G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); - - - L3crossSection = std::exp(analyticalFunction)/(l3BindingEnergy*l3BindingEnergy); - - + + + G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); + + + L3crossSection = G4Exp(analyticalFunction)/(l3BindingEnergy*l3BindingEnergy); + + if (L3crossSection >= 0) { return L3crossSection * barn; } else {return 0;} - - + + } diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc index 16711f2236..a7edce6660 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc @@ -23,14 +23,14 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeBremsstrahlungAngular.cc 76220 2013-11-08 10:15:00Z gcosmo $ -// +// $Id: G4PenelopeBremsstrahlungAngular.cc 95950 2016-03-03 10:42:48Z gcosmo $ +// // -------------------------------------------------------------- // // File name: G4PenelopeBremsstrahlungAngular // // Author: Luciano Pandola -// +// // Creation date: November 2010 // // History: @@ -41,8 +41,8 @@ // and update the interface accordingly // 18 Jul 2012 L. Pandola Migrated to the new basic interface of G4VEmAngularDistribution // Now returns a G4ThreeVector and takes care of the rotation -// 03 Oct 2013 L. Pandola Migrated to MT: only the master model handles tables -// 17 Oct 2013 L. Pandola Partially revert MT migration. The angular generator is kept as +// 03 Oct 2013 L. Pandola Migrated to MT: only the master model handles tables +// 17 Oct 2013 L. Pandola Partially revert MT migration. The angular generator is kept as // thread-local, and each worker has full access to it. // //---------------------------------------------------------------- @@ -56,11 +56,12 @@ #include "G4PhysicsTable.hh" #include "G4Material.hh" #include "Randomize.hh" +#include "G4Exp.hh" -G4PenelopeBremsstrahlungAngular::G4PenelopeBremsstrahlungAngular() : +G4PenelopeBremsstrahlungAngular::G4PenelopeBremsstrahlungAngular() : G4VEmAngularDistribution("Penelope"), theEffectiveZSq(0), theLorentzTables1(0),theLorentzTables2(0) - + { dataRead = false; verbosityLevel = 0; @@ -108,7 +109,7 @@ void G4PenelopeBremsstrahlungAngular::ClearTables() } delete theLorentzTables2; theLorentzTables2 = 0; - } + } if (theEffectiveZSq) { delete theEffectiveZSq; @@ -124,7 +125,7 @@ void G4PenelopeBremsstrahlungAngular::ReadDataFile() char* path = getenv("G4LEDATA"); if (!path) { - G4String excep = + G4String excep = "G4PenelopeBremsstrahlungAngular - G4LEDATA environment variable not set!"; G4Exception("G4PenelopeBremsstrahlungAngular::ReadDataFile()", "em0006",FatalException,excep); @@ -133,7 +134,7 @@ void G4PenelopeBremsstrahlungAngular::ReadDataFile() G4String pathString(path); G4String pathFile = pathString + "/penelope/bremsstrahlung/pdbrang.p08"; std::ifstream file(pathFile); - + if (!file.is_open()) { G4String excep = "G4PenelopeBremsstrahlungAngular - data file " + pathFile + " not found!"; @@ -141,14 +142,14 @@ void G4PenelopeBremsstrahlungAngular::ReadDataFile() "em0003",FatalException,excep); return; } - G4int i=0,j=0,k=0; // i=index for Z, j=index for E, k=index for K + G4int i=0,j=0,k=0; // i=index for Z, j=index for E, k=index for K - for (k=0;k> iz1 >> ie1 >> ik1 >> zr >> er >> kr >> a1 >> a2; //check the data are correct @@ -158,13 +159,13 @@ void G4PenelopeBremsstrahlungAngular::ReadDataFile() QQ2[i][j][k]=a2; } else - { + { G4ExceptionDescription ed; ed << "Corrupted data file " << pathFile << "?" << G4endl; G4Exception("G4PenelopeBremsstrahlungAngular::ReadDataFile()", - "em0005",FatalException,ed); + "em0005",FatalException,ed); } - } + } file.close(); dataRead = true; } @@ -173,24 +174,24 @@ void G4PenelopeBremsstrahlungAngular::ReadDataFile() void G4PenelopeBremsstrahlungAngular::PrepareTables(const G4Material* material,G4bool /*isMaster*/ ) { - //Unused at the moment: the G4PenelopeBremsstrahlungAngular is thread-local, so each worker + //Unused at the moment: the G4PenelopeBremsstrahlungAngular is thread-local, so each worker //builds its own version of the tables. /* - if (!isMaster) + if (!isMaster) //Should not be here! G4Exception("G4PenelopeBremsstrahlungAngular::PrepareTables()", - "em0100",FatalException,"Worker thread in this method"); + "em0100",FatalException,"Worker thread in this method"); */ //Check if data file has already been read if (!dataRead) { ReadDataFile(); - if (!dataRead) + if (!dataRead) G4Exception("G4PenelopeBremsstrahlungAngular::PrepareInterpolationTables()", "em2001",FatalException,"Unable to build interpolation table"); } - + if (!theLorentzTables1) theLorentzTables1 = new std::map; if (!theLorentzTables2) @@ -199,17 +200,17 @@ void G4PenelopeBremsstrahlungAngular::PrepareTables(const G4Material* material,G G4double Zmat = CalculateEffectiveZ(material); const G4int reducedEnergyGrid=21; - //Support arrays. + //Support arrays. G4double betas[NumberofEPoints]; //betas for interpolation //tables for interpolation G4double Q1[NumberofEPoints][NumberofKPoints]; G4double Q2[NumberofEPoints][NumberofKPoints]; //expanded tables for interpolation G4double Q1E[NumberofEPoints][reducedEnergyGrid]; - G4double Q2E[NumberofEPoints][reducedEnergyGrid]; + G4double Q2E[NumberofEPoints][reducedEnergyGrid]; G4double pZ[NumberofZPoints] = {2.0,8.0,13.0,47.0,79.0,92.0}; - G4int i=0,j=0,k=0; // i=index for Z, j=index for E, k=index for K + G4int i=0,j=0,k=0; // i=index for Z, j=index for E, k=index for K //Interpolation in Z for (i=0;iSetSpline(true); QQ2vector->SetSpline(true); - - Q1[i][j]= std::exp(QQ1vector->Value(Zmat)); + + Q1[i][j]= G4Exp(QQ1vector->Value(Zmat)); Q2[i][j]=QQ2vector->Value(Zmat); delete QQ1vector; delete QQ2vector; @@ -237,15 +238,15 @@ void G4PenelopeBremsstrahlungAngular::PrepareTables(const G4Material* material,G G4double pE[NumberofEPoints] = {1.0e-03*MeV,5.0e-03*MeV,1.0e-02*MeV,5.0e-02*MeV, 1.0e-01*MeV,5.0e-01*MeV}; G4double pK[NumberofKPoints] = {0.0,0.6,0.8,0.95}; - G4double ppK[reducedEnergyGrid]; + G4double ppK[reducedEnergyGrid]; for(i=0;iPutValue(j,pK[j],std::log(Q1[i][j])); //logarithmic + Q1vector->PutValue(j,pK[j],std::log(Q1[i][j])); //logarithmic Q2vector->PutValue(j,pK[j],Q2[i][j]); } @@ -272,25 +273,25 @@ void G4PenelopeBremsstrahlungAngular::PrepareTables(const G4Material* material,G } delete Q1vector; delete Q2vector; - } + } // //TABLES to be stored // G4PhysicsTable* theTable1 = new G4PhysicsTable(); G4PhysicsTable* theTable2 = new G4PhysicsTable(); // the table will contain reducedEnergyGrid G4PhysicsFreeVectors with different - // values of k, + // values of k, // Each of the G4PhysicsFreeVectors has a profile of // y vs. E // //reserve space of the vectors. - for (j=0;jpush_back(thevec); G4PhysicsFreeVector* thevec2 = new G4PhysicsFreeVector(NumberofEPoints); theTable2->push_back(thevec2); - } + } for (j=0;jcount(material)) - Zmat = theEffectiveZSq->find(material)->second; + Zmat = theEffectiveZSq->find(material)->second; else { G4Exception("G4PenelopeBremsstrahlungAngular::SampleDirection()", @@ -360,7 +361,7 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP if (verbosityLevel > 0) { - G4cout << "Effective for material : " << material->GetName() << + G4cout << "Effective for material : " << material->GetName() << " = " << Zmat << G4endl; } @@ -386,7 +387,7 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP cdt = (cdt+beta)/(1.0+beta*cdt); //Get primary kinematics sinTheta = std::sqrt(1. - cdt*cdt); - phi = twopi * G4UniformRand(); + phi = twopi * G4UniformRand(); fLocalDirection.set(sinTheta* std::cos(phi), sinTheta* std::sin(phi), cdt); @@ -395,7 +396,7 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP //return return fLocalDirection; } - + if (!(theLorentzTables1->count(Zmat)) || !(theLorentzTables2->count(Zmat))) { G4ExceptionDescription ed; @@ -403,14 +404,14 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP G4Exception("G4PenelopeBremsstrahlungAngular::SampleDirection()", "em2006",FatalException,ed); } - + //retrieve actual tables const G4PhysicsTable* theTable1 = theLorentzTables1->find(Zmat)->second; const G4PhysicsTable* theTable2 = theLorentzTables2->find(Zmat)->second; - + G4double RK=20.0*eGamma/ePrimary; G4int ik=std::min((G4int) RK,19); - + G4double P10=0,P11=0,P1=0; G4double P20=0,P21=0,P2=0; @@ -420,20 +421,20 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP P10 = v1->Value(beta); P11 = v2->Value(beta); P1=P10+(RK-(G4double) ik)*(P11-P10); - + //Second coefficient const G4PhysicsFreeVector* v3 = (G4PhysicsFreeVector*) (*theTable2)[ik]; const G4PhysicsFreeVector* v4 = (G4PhysicsFreeVector*) (*theTable2)[ik+1]; - P20=v3->Value(beta); + P20=v3->Value(beta); P21=v4->Value(beta); P2=P20+(RK-(G4double) ik)*(P21-P20); - + //Sampling from the Lorenz-trasformed dipole distributions - P1=std::min(std::exp(P1)/beta,1.0); + P1=std::min(G4Exp(P1)/beta,1.0); G4double betap = std::min(std::max(beta*(1.0+P2/beta),0.0),0.9999); - + G4double testf=0; - + if (G4UniformRand() < P1) { do{ @@ -452,7 +453,7 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP //Get primary kinematics sinTheta = std::sqrt(1. - cdt*cdt); - phi = twopi * G4UniformRand(); + phi = twopi * G4UniformRand(); fLocalDirection.set(sinTheta* std::cos(phi), sinTheta* std::sin(phi), cdt); @@ -460,7 +461,7 @@ G4ThreeVector& G4PenelopeBremsstrahlungAngular::SampleDirection(const G4DynamicP fLocalDirection.rotateUz(dp->GetMomentumDirection()); //return return fLocalDirection; - + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -472,7 +473,7 @@ G4double G4PenelopeBremsstrahlungAngular::PolarAngle(const G4double , G4cout << "WARNING: G4PenelopeBremsstrahlungAngular() does NOT support PolarAngle()" << G4endl; G4cout << "Please use the alternative interface SampleDirection()" << G4endl; G4Exception("G4PenelopeBremsstrahlungAngular::PolarAngle()", - "em0005",FatalException,"Unsupported interface"); + "em0005",FatalException,"Unsupported interface"); return 0; } @@ -480,9 +481,9 @@ G4double G4PenelopeBremsstrahlungAngular::PolarAngle(const G4double , G4double G4PenelopeBremsstrahlungAngular::CalculateEffectiveZ(const G4Material* material) { - if (!theEffectiveZSq) + if (!theEffectiveZSq) theEffectiveZSq = new std::map; - + //Already exists: return it if (theEffectiveZSq->count(material)) return theEffectiveZSq->find(material)->second; @@ -497,7 +498,7 @@ G4double G4PenelopeBremsstrahlungAngular::CalculateEffectiveZ(const G4Material* G4double fraction = fractionVector[i]; G4double atomicWeigth = (*elementVector)[i]->GetA()/(g/mole); StechiometricFactors->push_back(fraction/atomicWeigth); - } + } //Find max G4double MaxStechiometricFactor = 0.; for (G4int i=0;iGetZ(); sumz2 += (*StechiometricFactors)[i]*Z*Z; sums += (*StechiometricFactors)[i]; - } + } delete StechiometricFactors; - G4double ZBR = std::sqrt(sumz2/sums); + G4double ZBR = std::sqrt(sumz2/sums); theEffectiveZSq->insert(std::make_pair(material,ZBR)); return ZBR; diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc index e248768693..aeff513cbb 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeBremsstrahlungFS.cc 93359 2015-10-19 13:42:18Z gcosmo $ +// $Id: G4PenelopeBremsstrahlungFS.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // Author: Luciano Pandola // @@ -33,7 +33,7 @@ // 02 May 2011 L.Pandola Remove dependency on CLHEP::HepMatrix // 24 May 2011 L.Pandola Renamed (make v2008 as default Penelope) // 03 Oct 2013 L.Pandola Migration to MT -// 30 Oct 2013 L.Pandola Use G4Cache to avoid new/delete of the +// 30 Oct 2013 L.Pandola Use G4Cache to avoid new/delete of the // data vector on the fly in SampleGammaEnergy() // @@ -45,15 +45,16 @@ #include "Randomize.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PenelopeBremsstrahlungFS::G4PenelopeBremsstrahlungFS(G4int verbosity) : +G4PenelopeBremsstrahlungFS::G4PenelopeBremsstrahlungFS(G4int verbosity) : theReducedXSTable(0),theEffectiveZSq(0),theSamplingTable(0), thePBcut(0),fVerbosity(verbosity) { fCache.Put(0); - G4double tempvector[nBinsX] = + G4double tempvector[nBinsX] = {1.0e-12,0.025e0,0.05e0,0.075e0,0.1e0,0.15e0,0.2e0,0.25e0, 0.3e0,0.35e0,0.4e0,0.45e0,0.5e0,0.55e0,0.6e0,0.65e0,0.7e0, 0.75e0,0.8e0,0.85e0,0.9e0,0.925e0,0.95e0,0.97e0,0.99e0, @@ -65,24 +66,24 @@ G4PenelopeBremsstrahlungFS::G4PenelopeBremsstrahlungFS(G4int verbosity) : for (size_t i=0;i; + theElementData = new std::map; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4PenelopeBremsstrahlungFS::~G4PenelopeBremsstrahlungFS() { - ClearTables(); - - //The G4Physics*Vector pointers contained in the fCache are automatically deleted by - //the G4Allocator, so there is no need to take care of them manually + ClearTables(); - //Clear manually theElementData + //The G4Physics*Vector pointers contained in the fCache are automatically deleted by + //the G4Allocator, so there is no need to take care of them manually + + //Clear manually theElementData if (theElementData) - { + { std::map::iterator i; - for (i=theElementData->begin(); i != theElementData->end(); i++) - delete i->second; + for (i=theElementData->begin(); i != theElementData->end(); i++) + delete i->second; delete theElementData; theElementData = 0; } @@ -93,12 +94,12 @@ G4PenelopeBremsstrahlungFS::~G4PenelopeBremsstrahlungFS() void G4PenelopeBremsstrahlungFS::ClearTables(G4bool isMaster) -{ +{ //Just to check if (!isMaster) G4Exception("G4PenelopeBremsstrahlungFS::ClearTables()", - "em0100",FatalException,"Worker thread in this method"); - + "em0100",FatalException,"Worker thread in this method"); + std::map< std::pair ,G4PhysicsTable*>::iterator j; if (theReducedXSTable) @@ -123,16 +124,16 @@ void G4PenelopeBremsstrahlungFS::ClearTables(G4bool isMaster) } delete theSamplingTable; theSamplingTable = 0; - } + } if (thePBcut) { /* std::map< std::pair ,G4PhysicsFreeVector*>::iterator kk; - for (kk=thePBcut->begin(); kk != thePBcut->end(); kk++) + for (kk=thePBcut->begin(); kk != thePBcut->end(); kk++) delete kk->second; */ delete thePBcut; - thePBcut = 0; + thePBcut = 0; } @@ -141,7 +142,7 @@ void G4PenelopeBremsstrahlungFS::ClearTables(G4bool isMaster) delete theEffectiveZSq; theEffectiveZSq = 0; } - + return; } @@ -157,13 +158,13 @@ G4double G4PenelopeBremsstrahlungFS::GetEffectiveZSquared(const G4Material* mate "em2007",FatalException,ed); return 0; } - //found in the table: return it + //found in the table: return it if (theEffectiveZSq->count(material)) - return theEffectiveZSq->find(material)->second; + return theEffectiveZSq->find(material)->second; else { G4ExceptionDescription ed; - ed << "The value of is not properly set for material " << + ed << "The value of is not properly set for material " << material->GetName() << G4endl; //requires running of BuildScaledXSTable() G4Exception("G4PenelopeBremsstrahlungFS::GetEffectiveZSquared()", @@ -179,8 +180,8 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, { //Corresponds to subroutines EBRaW and EBRaR of PENELOPE /* - This method generates the table of the scaled energy-loss cross section from - bremsstrahlung emission for the given material. Original data are read from + This method generates the table of the scaled energy-loss cross section from + bremsstrahlung emission for the given material. Original data are read from file. The table is normalized according to the Berger-Seltzer cross section. */ @@ -191,20 +192,20 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, if (fVerbosity > 2) { - G4cout << "Entering in G4PenelopeBremsstrahlungFS::BuildScaledXSTable for " << + G4cout << "Entering in G4PenelopeBremsstrahlungFS::BuildScaledXSTable for " << material->GetName() << G4endl; - G4cout << "Threshold = " << cut/keV << " keV, isMaster= " << isMaster << + G4cout << "Threshold = " << cut/keV << " keV, isMaster= " << isMaster << G4endl; } //This method should be accessed by the master only - if (!theSamplingTable) - theSamplingTable = + if (!theSamplingTable) + theSamplingTable = new std::map< std::pair , G4PhysicsTable*>; if (!thePBcut) - thePBcut = + thePBcut = new std::map< std::pair , G4PhysicsFreeVector* >; - + //check if the container exists (if not, create it) if (!theReducedXSTable) theReducedXSTable = new std::map< std::pair , @@ -226,7 +227,7 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, G4double fraction = fractionVector[i]; G4double atomicWeigth = (*elementVector)[i]->GetA()/(g/mole); StechiometricFactors->push_back(fraction/atomicWeigth); - } + } //Find max G4double MaxStechiometricFactor = 0.; for (G4int i=0;iinsert(std::make_pair(material,ZBR2)); - + //********************************************************************* // loop on elements and read data files //********************************************************************* - G4DataVector* tempData = new G4DataVector(nBinsE); + G4DataVector* tempData = new G4DataVector(nBinsE); G4DataVector* tempMatrix = new G4DataVector(nBinsE*nBinsX,0.); for (G4int iel=0;ielcount(iZ)) { @@ -279,27 +280,27 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, } G4DataVector* atomData = theElementData->find(iZ)->second; - + for (size_t ie=0;iepush_back(new G4PhysicsFreeVector(nBinsE+1)); - + for (size_t ix=0;ixPutValue(ie+1,logene,std::log(aValue)); } - //Add fake point at 1 eV using an extrapolation with the derivative + //Add fake point at 1 eV using an extrapolation with the derivative //at the first valid point (Penelope approach) G4double derivative = ((*theVec)[2]-(*theVec)[1])/(theVec->Energy(2) - theVec->Energy(1)); G4double log1eV = std::log(1*eV); G4double val1eV = (*theVec)[1]+derivative*(log1eV-theVec->Energy(1)); //fake point at very low energy - theVec->PutValue(0,log1eV,val1eV); + theVec->PutValue(0,log1eV,val1eV); } std::pair theKey = std::make_pair(material,cut); theReducedXSTable->insert(std::make_pair(theKey,thePhysicsTable)); @@ -361,7 +362,7 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, delete tempMatrix; //Do here also the initialization of the energy sampling - if (!(theSamplingTable->count(theKey))) + if (!(theSamplingTable->count(theKey))) InitializeEnergySampling(material,cut); return; @@ -371,7 +372,7 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, void G4PenelopeBremsstrahlungFS::ReadDataFile(G4int Z) { - + char* path = getenv("G4LEDATA"); if (!path) { @@ -391,7 +392,7 @@ void G4PenelopeBremsstrahlungFS::ReadDataFile(G4int Z) std::ifstream file(ost.str().c_str()); if (!file.is_open()) { - G4String excep = "G4PenelopeBremsstrahlungFS - data file " + + G4String excep = "G4PenelopeBremsstrahlungFS - data file " + G4String(ost.str()) + " not found!"; G4Exception("G4PenelopeBremsstrahlungFS::ReadDataFile()", "em0003",FatalException,excep); @@ -444,7 +445,7 @@ G4double G4PenelopeBremsstrahlungFS::GetMomentumIntegral(G4double* y, { //Corresponds to the function RLMOM of Penelope //This method performs the calculation of the integral of (x^momOrder)*y over the interval - //from x[0] to xup, obtained by linear interpolation on a table of 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 = nBinsX; @@ -494,19 +495,19 @@ G4double G4PenelopeBremsstrahlungFS::GetMomentumIntegral(G4double* y, if (std::fabs(dx)>1e-14*std::fabs(dy)) { G4double b=dy/dx; - G4double a=y1-b*x1; - if (momOrder == -1) + G4double a=y1-b*x1; + if (momOrder == -1) ds = a*std::log(xtc/x1)+b*(xtc-x1); else if (momOrder == 0) //speed it up, not using pow() ds = a*(xtc-x1) + 0.5*b*(xtc*xtc-x1*x1); else ds = a*(std::pow(xtc,momOrder+1)-std::pow(x1,momOrder+1))/((G4double) (momOrder + 1)) - + b*(std::pow(xtc,momOrder+2)-std::pow(x1,momOrder+2))/((G4double) (momOrder + 2)); + + b*(std::pow(xtc,momOrder+2)-std::pow(x1,momOrder+2))/((G4double) (momOrder + 2)); } else ds = 0.5*(y1+y2)*(xtc-x1)*std::pow(xtc,momOrder); result += ds; - if (!loopAgain) + if (!loopAgain) return result; } return result; @@ -516,10 +517,10 @@ G4double G4PenelopeBremsstrahlungFS::GetMomentumIntegral(G4double* y, const G4PhysicsTable* G4PenelopeBremsstrahlungFS::GetScaledXSTable(const G4Material* mat, const G4double cut) const -{ +{ //check if it already contains the entry std::pair theKey = std::make_pair(mat,cut); - + if (!(theReducedXSTable->count(theKey))) { G4Exception("G4PenelopeBremsstrahlungFS::GetScaledXSTable()", @@ -533,50 +534,50 @@ const G4PhysicsTable* G4PenelopeBremsstrahlungFS::GetScaledXSTable(const G4Mater void G4PenelopeBremsstrahlungFS::InitializeEnergySampling(const G4Material* material, G4double cut) -{ +{ if (fVerbosity > 2) - G4cout << "Entering in G4PenelopeBremsstrahlungFS::InitializeEnergySampling() for " << + G4cout << "Entering in G4PenelopeBremsstrahlungFS::InitializeEnergySampling() for " << material->GetName() << G4endl; //This method should be accessed by the master only std::pair theKey = std::make_pair(material,cut); - + G4PhysicsTable* thePhysicsTable = new G4PhysicsTable(); - // the table will contain 57 G4PhysicsFreeVectors with different + // the table will contain 57 G4PhysicsFreeVectors with different // values of E. G4PhysicsFreeVector* thePBvec = new G4PhysicsFreeVector(nBinsE); - //I reserve space of the vectors. + //I reserve space of the vectors. for (size_t i=0;ipush_back(new G4PhysicsFreeVector(nBinsX)); //Retrieve the table. Must already exist at this point, because this //method is invoked by GetScaledXSTable() - if (!(theReducedXSTable->count(theKey))) + if (!(theReducedXSTable->count(theKey))) G4Exception("G4PenelopeBremsstrahlungFS::InitializeEnergySampling()", "em2013",FatalException,"Unable to retrieve the cross section table"); G4PhysicsTable* theTableReduced = theReducedXSTable->find(theKey)->second; for (size_t ie=0;iePutValue(0,theXGrid[0],value); for (size_t ix=1;ixPutValue(ie,theEGrid[ie],pbval); delete[] tempData; } @@ -607,20 +608,20 @@ void G4PenelopeBremsstrahlungFS::InitializeEnergySampling(const G4Material* mate //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4Material* mat, +G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4Material* mat, const G4double cut) const { std::pair theKey = std::make_pair(mat,cut); if (!(theSamplingTable->count(theKey)) || !(thePBcut->count(theKey))) { G4ExceptionDescription ed; - ed << "Unable to retrieve the SamplingTable: " << - theSamplingTable->count(theKey) << " " << + ed << "Unable to retrieve the SamplingTable: " << + theSamplingTable->count(theKey) << " " << thePBcut->count(theKey) << G4endl; G4Exception("G4PenelopeBremsstrahlungFS::SampleGammaEnergy()", - "em2014",FatalException,ed); + "em2014",FatalException,ed); } - + const G4PhysicsTable* theTableInte = theSamplingTable->find(theKey)->second; const G4PhysicsTable* theTableRed = theReducedXSTable->find(theKey)->second; @@ -649,7 +650,7 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M if (energy > theEGrid[k]) i = k; else - j = k; + j = k; } eBin = i; } @@ -657,56 +658,56 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M //Get the appropriate physics vector const G4PhysicsFreeVector* theVec1 = (G4PhysicsFreeVector*) (*theTableInte)[eBin]; - //Use a "temporary" vector which contains the linear interpolation of the x spectra - //in energy. The temporary vector is thread-local, so that there is no conflict. - //This is achieved via G4Cache. The theTempVect is allocated only once per thread - //(member variable), but it is overwritten at every call of this method + //Use a "temporary" vector which contains the linear interpolation of the x spectra + //in energy. The temporary vector is thread-local, so that there is no conflict. + //This is achieved via G4Cache. The theTempVect is allocated only once per thread + //(member variable), but it is overwritten at every call of this method //(because the interpolation factors change!) G4PhysicsFreeVector* theTempVec = fCache.Get(); if (!theTempVec) //First time this thread gets the cache { theTempVec = new G4PhysicsFreeVector(nBinsX); //The G4Physics*Vector pointers are automatically deleted by the G4Allocator, - //so there is no need to take care of it manually + //so there is no need to take care of it manually fCache.Put(theTempVec); if (fVerbosity > 4) G4cout << "Creating new instance of G4PhysicsFreeVector() on the worker" << G4endl; } - //theTempVect is allocated only once (member variable), but it is overwritten at + //theTempVect is allocated only once (member variable), but it is overwritten at //every call of this method (because the interpolation factors change!) if (!firstOrLastBin) - { + { const G4PhysicsFreeVector* theVec2 = (G4PhysicsFreeVector*) (*theTableInte)[eBin+1]; for (size_t iloop=0;iloopPutValue(iloop,theXGrid[iloop],val); - } + } } else //first or last bin, no interpolation { - for (size_t iloop=0;iloopPutValue(iloop,theXGrid[iloop],(*theVec1)[iloop]); + for (size_t iloop=0;iloopPutValue(iloop,theXGrid[iloop],(*theVec1)[iloop]); } //Start the game G4double pbcut = (*(thePBcut->find(theKey)->second))[eBin]; - + if (!firstOrLastBin) //linear interpolation on pbcut as well { - pbcut = (*(thePBcut->find(theKey)->second))[eBin] + + pbcut = (*(thePBcut->find(theKey)->second))[eBin] + ((*(thePBcut->find(theKey)->second))[eBin+1]-(*(thePBcut->find(theKey)->second))[eBin])* (energy-theEGrid[eBin])/(theEGrid[eBin+1]-theEGrid[eBin]); } - G4double pCumulative = (*theTempVec)[nBinsX-1]; //last value - + G4double pCumulative = (*theTempVec)[nBinsX-1]; //last value + G4double eGamma = 0; G4int nIterations = 0; do - { + { G4double pt = pbcut + G4UniformRand()*(pCumulative - pbcut); nIterations++; @@ -716,15 +717,15 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M ibin = 0; else if (pt > (*theTempVec)[nBinsX-1]) { - //We observed problems due to numerical rounding here (STT). + //We observed problems due to numerical rounding here (STT). //delta here is a tiny positive number G4double delta = pt-(*theTempVec)[nBinsX-1]; if (delta < pt*1e-10) // very small! Numerical rounding only { ibin = nBinsX-2; G4ExceptionDescription ed; - ed << "Found that (pt > (*theTempVec)[nBinsX-1]) with pt = " << pt << - " , (*theTempVec)[nBinsX-1] = " << (*theTempVec)[nBinsX-1] << " and delta = " << + ed << "Found that (pt > (*theTempVec)[nBinsX-1]) with pt = " << pt << + " , (*theTempVec)[nBinsX-1] = " << (*theTempVec)[nBinsX-1] << " and delta = " << (pt-(*theTempVec)[nBinsX-1]) << G4endl; ed << "Possible symptom of problem with numerical precision" << G4endl; G4Exception("G4PenelopeBremsstrahlungFS::SampleGammaEnergy()", @@ -733,13 +734,13 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M else //real problem { G4ExceptionDescription ed; - ed << "Crash at (pt > (*theTempVec)[nBinsX-1]) with pt = " << pt << - " , (*theTempVec)[nBinsX-1]=" << (*theTempVec)[nBinsX-1] << " and nBinsX = " << + ed << "Crash at (pt > (*theTempVec)[nBinsX-1]) with pt = " << pt << + " , (*theTempVec)[nBinsX-1]=" << (*theTempVec)[nBinsX-1] << " and nBinsX = " << nBinsX << G4endl; - ed << "Material: " << mat->GetName() << ", energy = " << energy/keV << " keV" << - G4endl; + ed << "Material: " << mat->GetName() << ", energy = " << energy/keV << " keV" << + G4endl; G4Exception("G4PenelopeBremsstrahlungFS::SampleGammaEnergy()", - "em2015",FatalException,ed); + "em2015",FatalException,ed); } } else @@ -756,33 +757,33 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M } ibin = i; } - + G4double w1 = theXGrid[ibin]; - G4double w2 = theXGrid[ibin+1]; + G4double w2 = theXGrid[ibin+1]; const G4PhysicsFreeVector* v1 = (G4PhysicsFreeVector*) (*theTableRed)[ibin]; - const G4PhysicsFreeVector* v2 = (G4PhysicsFreeVector*) (*theTableRed)[ibin+1]; + const G4PhysicsFreeVector* v2 = (G4PhysicsFreeVector*) (*theTableRed)[ibin+1]; //Remember: the table theReducedXSTable has a fake first point in energy //so, it contains one more bin than nBinsE. - G4double pdf1 = std::exp((*v1)[eBin+1]); - G4double pdf2 = std::exp((*v2)[eBin+1]); + G4double pdf1 = G4Exp((*v1)[eBin+1]); + G4double pdf2 = G4Exp((*v2)[eBin+1]); G4double deltaW = w2-w1; G4double dpdfb = pdf2-pdf1; G4double B = dpdfb/deltaW; G4double A = pdf1-B*w1; - //I already made an interpolation in energy, so I can use the actual value for the + //I already made an interpolation in energy, so I can use the actual value for the //calculation of the wbcut, instead of the grid values (except for the last bin) G4double wbcut = (cut < energy) ? cut/energy : 1.0; if (firstOrLastBin) //this is an particular case: no interpolation available wbcut = (cut < theEGrid[eBin]) ? cut/theEGrid[eBin] : 1.0; - + if (w1 < wbcut) w1 = wbcut; if (w2 < w1) { - //This configuration can happen if initially wbcut > w2 > w1. Due to the previous - //statement, (w1 = wbcut), it becomes wbcut = w1 > w2. In this case, it is not a - //real problem. It becomes a problem if w2 < w1 before the w1 = wbcut statement. Issue + //This configuration can happen if initially wbcut > w2 > w1. Due to the previous + //statement, (w1 = wbcut), it becomes wbcut = w1 > w2. In this case, it is not a + //real problem. It becomes a problem if w2 < w1 before the w1 = wbcut statement. Issue //a warning only in this specific case. if (w2 > wbcut) { @@ -796,24 +797,20 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M } return w1*energy; } - + G4double pmax = std::max(A+B*w1,A+B*w2); - G4bool loopAgain = false; + G4bool loopAgain = false; do { loopAgain = false; eGamma = w1* std::pow((w2/w1),G4UniformRand()); if (G4UniformRand()*pmax > (A+B*eGamma)) - loopAgain = true; - }while(loopAgain); + loopAgain = true; + }while(loopAgain); eGamma *= energy; if (nIterations > 100) //protection against infinite loops return eGamma; - }while(eGamma < cut); //repeat if sampled sub-cut! + }while(eGamma < cut); //repeat if sampled sub-cut! return eGamma; } - - - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc index 16755e2a9c..3824bd6068 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeBremsstrahlungModel.cc 78631 2014-01-13 11:15:27Z gcosmo $ +// $Id: G4PenelopeBremsstrahlungModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // Author: Luciano Pandola // @@ -32,10 +32,10 @@ // 23 Nov 2010 L Pandola First complete implementation, Penelope v2008 // 24 May 2011 L. Pandola Renamed (make default Penelope) // 13 Mar 2012 L. Pandola Updated the interface for the angular generator -// 18 Jul 2012 L. Pandola Migrate to the new interface of the angular generator, which +// 18 Jul 2012 L. Pandola Migrate to the new interface of the angular generator, which // now provides the G4ThreeVector and takes care of rotation // 02 Oct 2013 L. Pandola Migrated to MT -// 17 Oct 2013 L. Pandola Partially revert the MT migration: the angular generator is +// 17 Oct 2013 L. Pandola Partially revert the MT migration: the angular generator is // kept as thread-local, and created/managed by the workers. // @@ -54,33 +54,34 @@ #include "G4PenelopeOscillatorManager.hh" #include "G4PenelopeCrossSection.hh" #include "G4PhysicsFreeVector.hh" -#include "G4PhysicsLogVector.hh" +#include "G4PhysicsLogVector.hh" #include "G4PhysicsTable.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... namespace { G4Mutex PenelopeBremsstrahlungModelMutex = G4MUTEX_INITIALIZER; } - + G4PenelopeBremsstrahlungModel::G4PenelopeBremsstrahlungModel(const G4ParticleDefinition* part, const G4String& nam) :G4VEmModel(nam),fParticleChange(0),fParticle(0), - isInitialised(false),energyGrid(0), + isInitialised(false),energyGrid(0), XSTableElectron(0),XSTablePositron(0),fPenelopeFSHelper(0), fPenelopeAngular(0),fLocalTable(false) - + { fIntrinsicLowEnergyLimit = 100.0*eV; fIntrinsicHighEnergyLimit = 100.0*GeV; nBins = 200; - + if (part) SetParticle(part); - + SetHighEnergyLimit(fIntrinsicHighEnergyLimit); // oscManager = G4PenelopeOscillatorManager::GetOscillatorManager(); // verboseLevel= 0; - + // Verbosity scale: // 0 = nothing // 1 = warning for energy non-conservation @@ -94,14 +95,14 @@ G4PenelopeBremsstrahlungModel::G4PenelopeBremsstrahlungModel(const G4ParticleDef } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4PenelopeBremsstrahlungModel::~G4PenelopeBremsstrahlungModel() { - if (IsMaster() || fLocalTable) + if (IsMaster() || fLocalTable) { ClearTables(); if (fPenelopeFSHelper) - delete fPenelopeFSHelper; + delete fPenelopeFSHelper; } // This is thread-local at the moment if (fPenelopeAngular) @@ -120,44 +121,44 @@ void G4PenelopeBremsstrahlungModel::Initialise(const G4ParticleDefinition* part, if (IsMaster() && part == fParticle) { - + if (!fPenelopeFSHelper) - fPenelopeFSHelper = new G4PenelopeBremsstrahlungFS(verboseLevel); + fPenelopeFSHelper = new G4PenelopeBremsstrahlungFS(verboseLevel); if (!fPenelopeAngular) - fPenelopeAngular = new G4PenelopeBremsstrahlungAngular(); - //Clear and re-build the tables + fPenelopeAngular = new G4PenelopeBremsstrahlungAngular(); + //Clear and re-build the tables ClearTables(); - + //forces the cleaning of tables, in this specific case if (fPenelopeAngular) 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); energyGrid = new G4PhysicsLogVector(LowEnergyLimit(), - HighEnergyLimit(), + HighEnergyLimit(), nBins-1); //one hidden bin is added - - XSTableElectron = new + + XSTableElectron = new + std::map< std::pair, G4PenelopeCrossSection*>; + XSTablePositron = new std::map< std::pair, G4PenelopeCrossSection*>; - XSTablePositron = new - std::map< std::pair, G4PenelopeCrossSection*>; - G4ProductionCutsTable* theCoupleTable = + G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - + //Build tables for all materials for (size_t i=0;iGetTableSize();i++) { - const G4Material* theMat = + const G4Material* theMat = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); //Forces the building of the helper tables fPenelopeFSHelper->BuildScaledXSTable(theMat,theCuts.at(i),IsMaster()); fPenelopeAngular->PrepareTables(theMat,IsMaster()); BuildXSTable(theMat,theCuts.at(i)); - + } @@ -165,11 +166,11 @@ void G4PenelopeBremsstrahlungModel::Initialise(const G4ParticleDefinition* part, G4cout << "Penelope Bremsstrahlung model v2008 is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / keV << " keV - " - << HighEnergyLimit() / GeV << " GeV." + << HighEnergyLimit() / GeV << " GeV." << G4endl; } } - + if(isInitialised) return; fParticleChange = GetParticleChangeForLoss(); isInitialised = true; @@ -181,38 +182,38 @@ void G4PenelopeBremsstrahlungModel::InitialiseLocal(const G4ParticleDefinition* { if (verboseLevel > 3) G4cout << "Calling G4PenelopeBremsstrahlungModel::InitialiseLocal()" << G4endl; - + // - //Check that particle matches: one might have multiple master models (e.g. + //Check that particle matches: one might have multiple master models (e.g. //for e+ and e-). // if (part == fParticle) { //Get the const table pointers from the master to the workers - const G4PenelopeBremsstrahlungModel* theModel = + const G4PenelopeBremsstrahlungModel* theModel = static_cast (masterModel); - + //Copy pointers to the data tables energyGrid = theModel->energyGrid; XSTableElectron = theModel->XSTableElectron; XSTablePositron = theModel->XSTablePositron; fPenelopeFSHelper = theModel->fPenelopeFSHelper; - + //fPenelopeAngular = theModel->fPenelopeAngular; - + //created in each thread and initialized. if (!fPenelopeAngular) - fPenelopeAngular = new G4PenelopeBremsstrahlungAngular(); + fPenelopeAngular = new G4PenelopeBremsstrahlungAngular(); //forces the cleaning of tables, in this specific case if (fPenelopeAngular) fPenelopeAngular->Initialize(); - - G4ProductionCutsTable* theCoupleTable = - G4ProductionCutsTable::GetProductionCutsTable(); + + G4ProductionCutsTable* theCoupleTable = + G4ProductionCutsTable::GetProductionCutsTable(); //Build tables for all materials for (size_t i=0;iGetTableSize();i++) { - const G4Material* theMat = + const G4Material* theMat = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); fPenelopeAngular->PrepareTables(theMat,IsMaster()); } @@ -220,7 +221,7 @@ void G4PenelopeBremsstrahlungModel::InitialiseLocal(const G4ParticleDefinition* //copy the data nBins = theModel->nBins; - + //Same verbosity for all workers, as the master verboseLevel = theModel->verboseLevel; } @@ -239,7 +240,7 @@ G4double G4PenelopeBremsstrahlungModel::CrossSectionPerVolume(const G4Material* // if (verboseLevel > 3) G4cout << "Calling CrossSectionPerVolume() of G4PenelopeBremsstrahlungModel" << G4endl; - + SetupForMaterial(theParticle, material, energy); G4double crossPerMolecule = 0.; @@ -252,15 +253,15 @@ G4double G4PenelopeBremsstrahlungModel::CrossSectionPerVolume(const G4Material* G4double atomDensity = material->GetTotNbOfAtomsPerVolume(); G4double atPerMol = oscManager->GetAtomsPerMolecule(material); - + if (verboseLevel > 3) G4cout << "Material " << material->GetName() << " has " << atPerMol << "atoms per molecule" << G4endl; - G4double moleculeDensity = 0.; + G4double moleculeDensity = 0.; if (atPerMol) moleculeDensity = atomDensity/atPerMol; - + G4double crossPerVolume = crossPerMolecule*moleculeDensity; if (verboseLevel > 2) @@ -269,12 +270,12 @@ G4double G4PenelopeBremsstrahlungModel::CrossSectionPerVolume(const G4Material* G4cout << "Mean free path for gamma emission > " << cutEnergy/keV << " keV at " << energy/keV << " keV = " << (1./crossPerVolume)/mm << " mm" << G4endl; } - + return crossPerVolume; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + //This is a dummy method. Never inkoved by the tracking, it just issues //a warning if one tries to get Cross Sections per Atom via the //G4EmCalculator. @@ -301,28 +302,28 @@ G4double G4PenelopeBremsstrahlungModel::ComputeDEDXPerVolume(const G4Material* m { if (verboseLevel > 3) G4cout << "Calling ComputeDEDX() of G4PenelopeBremsstrahlungModel" << G4endl; - + G4PenelopeCrossSection* theXS = GetCrossSectionTableForCouple(theParticle,material, cutEnergy); G4double sPowerPerMolecule = 0.0; if (theXS) sPowerPerMolecule = theXS->GetSoftStoppingPower(kineticEnergy); - + G4double atomDensity = material->GetTotNbOfAtomsPerVolume(); G4double atPerMol = oscManager->GetAtomsPerMolecule(material); - - G4double moleculeDensity = 0.; + + G4double moleculeDensity = 0.; if (atPerMol) moleculeDensity = atomDensity/atPerMol; - + G4double sPowerPerVolume = sPowerPerMolecule*moleculeDensity; if (verboseLevel > 2) { G4cout << "G4PenelopeBremsstrahlungModel " << G4endl; G4cout << "Stopping power < " << cutEnergy/keV << " keV at " << - kineticEnergy/keV << " keV = " << + kineticEnergy/keV << " keV = " << sPowerPerVolume/(keV/mm) << " keV/mm" << G4endl; } return sPowerPerVolume; @@ -358,21 +359,21 @@ void G4PenelopeBremsstrahlungModel::SampleSecondaries(std::vector 3) - G4cout << "Going to sample gamma energy for: " <GetName() << " " << + G4cout << "Going to sample gamma energy for: " <GetName() << " " << "energy = " << kineticEnergy/keV << ", cut = " << cutG/keV << G4endl; //Sample gamma's energy according to the spectrum - G4double gammaEnergy = + G4double gammaEnergy = fPenelopeFSHelper->SampleGammaEnergy(kineticEnergy,material,cutG); if (verboseLevel > 3) G4cout << "Sampled gamma energy: " << gammaEnergy/keV << " keV" << G4endl; - + //Now sample the direction for the Gamma. Notice that the rotation is already done //Z is unused here, I plug 0. The information is in the material pointer - G4ThreeVector gammaDirection1 = + G4ThreeVector gammaDirection1 = fPenelopeAngular->SampleDirection(aDynamicParticle,gammaEnergy,0,material); - + if (verboseLevel > 3) G4cout << "Sampled cosTheta for e-: " << gammaDirection1.cosTheta() << G4endl; @@ -383,7 +384,7 @@ void G4PenelopeBremsstrahlungModel::SampleSecondaries(std::vectorSetProposedKineticEnergy(0.); } - + //Now produce the photon G4DynamicParticle* theGamma = new G4DynamicParticle(G4Gamma::Gamma(), gammaDirection1, gammaEnergy); fvect->push_back(theGamma); - + if (verboseLevel > 1) { G4cout << "-----------------------------------------------------------" << G4endl; @@ -413,7 +414,7 @@ void G4PenelopeBremsstrahlungModel::SampleSecondaries(std::vector 0.05*keV) - G4cout << "Warning from G4PenelopeBremsstrahlung: problem with energy conservation: " + G4cout << "Warning from G4PenelopeBremsstrahlung: problem with energy conservation: " << (residualPrimaryEnergy+gammaEnergy)/keV << " keV (final) vs. " << kineticEnergy/keV << " keV (initial)" << G4endl; - } + } return; } @@ -435,10 +436,10 @@ void G4PenelopeBremsstrahlungModel::SampleSecondaries(std::vector, G4PenelopeCrossSection*>::iterator i; if (XSTableElectron) @@ -460,13 +461,13 @@ void G4PenelopeBremsstrahlungModel::ClearTables() } delete XSTablePositron; XSTablePositron = 0; - } + } /* if (energyGrid) delete energyGrid; */ if (fPenelopeFSHelper) - fPenelopeFSHelper->ClearTables(IsMaster()); + fPenelopeFSHelper->ClearTables(IsMaster()); if (verboseLevel > 2) G4cout << "G4PenelopeBremsstrahlungModel: cleared tables" << G4endl; @@ -486,32 +487,32 @@ G4double G4PenelopeBremsstrahlungModel::MinEnergyCut(const G4ParticleDefinition* void G4PenelopeBremsstrahlungModel::BuildXSTable(const G4Material* mat,G4double cut) { - if (!IsMaster() && !fLocalTable) + if (!IsMaster() && !fLocalTable) //Should not be here! G4Exception("G4PenelopeBremsstrahlungModel::BuildXSTable()", - "em0100",FatalException,"Worker thread in this method"); + "em0100",FatalException,"Worker thread in this method"); //The key of the map - std::pair theKey = std::make_pair(mat,cut); - + std::pair theKey = std::make_pair(mat,cut); + //The table already exists if (XSTableElectron->count(theKey) && XSTablePositron->count(theKey)) return; // //This method fills the G4PenelopeCrossSection containers for electrons or positrons - //and for the given material/cut couple. + //and for the given material/cut couple. //Equivalent of subroutines EBRaT and PINaT of Penelope // if (verboseLevel > 2) { G4cout << "G4PenelopeBremsstrahlungModel: going to build cross section table " << G4endl; - G4cout << "for e+/e- in " << mat->GetName() << " for Ecut(gamma)= " << + G4cout << "for e+/e- in " << mat->GetName() << " for Ecut(gamma)= " << cut/keV << " keV " << G4endl; } //Tables have been already created (checked by GetCrossSectionTableForCouple) - if (energyGrid->GetVectorLength() != nBins) + if (energyGrid->GetVectorLength() != nBins) { G4ExceptionDescription ed; ed << "Energy Grid looks not initialized" << G4endl; @@ -526,38 +527,38 @@ void G4PenelopeBremsstrahlungModel::BuildXSTable(const G4Material* mat,G4double const G4PhysicsTable* table = fPenelopeFSHelper->GetScaledXSTable(mat,cut); - //loop on the energy grid + //loop on the energy grid for (size_t bin=0;binGetLowEdgeEnergy(bin); G4double XH0=0, XH1=0, XH2=0; G4double XS0=0, XS1=0, XS2=0; - + //Global xs factor G4double fact = fPenelopeFSHelper->GetEffectiveZSquared(mat)* ((energy+electron_mass_c2)*(energy+electron_mass_c2)/ - (energy*(energy+2.0*electron_mass_c2))); - + (energy*(energy+2.0*electron_mass_c2))); + G4double restrictedCut = cut/energy; - - //Now I need the dSigma/dX profile - interpolated on energy - for + + //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(); - G4double* tempData = new G4double[nBinsX]; + size_t nBinsX = fPenelopeFSHelper->GetNBinsX(); + G4double* tempData = new G4double[nBinsX]; G4double logene = std::log(energy); - for (size_t ix=0;ixValue(logene); - tempData[ix] = std::exp(val); //back to the real value! - } - + G4double val = (*table)[ix]->Value(logene); + tempData[ix] = G4Exp(val); //back to the real value! + } + G4double XH0A = 0.; if (restrictedCut <= 1) //calculate only if we are above threshold! XH0A = fPenelopeFSHelper->GetMomentumIntegral(tempData,1.0,-1) - fPenelopeFSHelper->GetMomentumIntegral(tempData,restrictedCut,-1); G4double XS1A = fPenelopeFSHelper->GetMomentumIntegral(tempData, - restrictedCut,0); + restrictedCut,0); G4double XS2A = fPenelopeFSHelper->GetMomentumIntegral(tempData, restrictedCut,1); G4double XH1A=0, XH2A=0; @@ -587,18 +588,18 @@ void G4PenelopeBremsstrahlungModel::BuildXSTable(const G4Material* mat,G4double XS1*posCorrection, XS2*posCorrection); } - + //Insert in the appropriate table XSTableElectron->insert(std::make_pair(theKey,XSEntry)); XSTablePositron->insert(std::make_pair(theKey,XSEntry2)); - + return; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PenelopeCrossSection* +G4PenelopeCrossSection* G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDefinition* part, const G4Material* mat, G4double cut) @@ -614,11 +615,11 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef if (part == G4Electron::Electron()) { - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked if (!XSTableElectron) { - //create a **thread-local** version of the table. Used only for G4EmCalculator and + //create a **thread-local** version of the table. Used only for G4EmCalculator and //Unit Tests G4String excep = "The Cross Section Table for e- was not initialized correctly!"; G4Exception("G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple()", @@ -628,7 +629,7 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef std::map< std::pair, G4PenelopeCrossSection*>; if (!energyGrid) energyGrid = new G4PhysicsLogVector(LowEnergyLimit(), - HighEnergyLimit(), + HighEnergyLimit(), nBins-1); //one hidden bin is added if (!fPenelopeFSHelper) fPenelopeFSHelper = new G4PenelopeBremsstrahlungFS(verboseLevel); @@ -638,13 +639,13 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef return XSTableElectron->find(theKey)->second; else { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was //not filled up. This can happen in a UnitTest or via G4EmCalculator if (verboseLevel > 0) { //G4Exception (warning) is issued only in verbose mode G4ExceptionDescription ed; - ed << "Unable to find e- table for " << mat->GetName() << " at Ecut(gamma)= " + ed << "Unable to find e- table for " << mat->GetName() << " at Ecut(gamma)= " << cut/keV << " keV " << G4endl; ed << "This can happen only in Unit Tests or via G4EmCalculator" << G4endl; G4Exception("G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple()", @@ -658,23 +659,23 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef //now it should be ok return XSTableElectron->find(theKey)->second; } - + } if (part == G4Positron::Positron()) { - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked if (!XSTablePositron) { G4String excep = "The Cross Section Table for e+ was not initialized correctly!"; G4Exception("G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple()", - "em2013",JustWarning,excep); + "em2013",JustWarning,excep); fLocalTable = true; - XSTablePositron = new + XSTablePositron = new std::map< std::pair, G4PenelopeCrossSection*>; if (!energyGrid) energyGrid = new G4PhysicsLogVector(LowEnergyLimit(), - HighEnergyLimit(), + HighEnergyLimit(), nBins-1); //one hidden bin is added if (!fPenelopeFSHelper) fPenelopeFSHelper = new G4PenelopeBremsstrahlungFS(verboseLevel); @@ -683,14 +684,14 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef if (XSTablePositron->count(theKey)) //table already built return XSTablePositron->find(theKey)->second; else - { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + { + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was //not filled up. This can happen in a UnitTest or via G4EmCalculator if (verboseLevel > 0) { //Issue a G4Exception (warning) only in verbose mode G4ExceptionDescription ed; - ed << "Unable to find e+ table for " << mat->GetName() << " at Ecut(gamma)= " + ed << "Unable to find e+ table for " << mat->GetName() << " at Ecut(gamma)= " << cut/keV << " keV " << G4endl; ed << "This can happen only in Unit Tests or via G4EmCalculator" << G4endl; G4Exception("G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple()", @@ -702,7 +703,7 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef BuildXSTable(mat,cut); lock.unlock(); //now it should be ok - return XSTablePositron->find(theKey)->second; + return XSTablePositron->find(theKey)->second; } } return NULL; @@ -715,14 +716,14 @@ G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(const G4ParticleDef G4double G4PenelopeBremsstrahlungModel::GetPositronXSCorrection(const G4Material* mat, G4double energy) { - //The electron-to-positron correction factor is set equal to the ratio of the - //radiative stopping powers for positrons and electrons, which has been calculated - //by Kim et al. (1986) (cf. Berger and Seltzer, 1982). Here, it is used an - //analytical approximation which reproduces the tabulated values with 0.5% + //The electron-to-positron correction factor is set equal to the ratio of the + //radiative stopping powers for positrons and electrons, which has been calculated + //by Kim et al. (1986) (cf. Berger and Seltzer, 1982). Here, it is used an + //analytical approximation which reproduces the tabulated values with 0.5% //accuracy G4double t=std::log(1.0+1e6*energy/ (electron_mass_c2*fPenelopeFSHelper->GetEffectiveZSquared(mat))); - G4double corr = 1.0-std::exp(-t*(1.2359e-1-t*(6.1274e-2-t* + G4double corr = 1.0-G4Exp(-t*(1.2359e-1-t*(6.1274e-2-t* (3.1516e-2-t*(7.7446e-3-t*(1.0595e-3-t* (7.0568e-5-t* 1.8080e-6))))))); @@ -734,6 +735,6 @@ G4double G4PenelopeBremsstrahlungModel::GetPositronXSCorrection(const G4Material void G4PenelopeBremsstrahlungModel::SetParticle(const G4ParticleDefinition* p) { if(!fParticle) { - fParticle = p; + fParticle = p; } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeComptonModel.cc index 68950a2d57..659713bb16 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeComptonModel.cc @@ -23,18 +23,18 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeComptonModel.cc 82874 2014-07-15 15:25:29Z gcosmo $ +// $Id: G4PenelopeComptonModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // Author: Luciano Pandola // // History: // -------- // 15 Feb 2010 L Pandola Implementation -// 18 Mar 2010 L Pandola Removed GetAtomsPerMolecule(), now demanded +// 18 Mar 2010 L Pandola Removed GetAtomsPerMolecule(), now demanded // to G4PenelopeOscillatorManager -// 01 Feb 2011 L Pandola Suppress fake energy-violation warning when Auger is +// 01 Feb 2011 L Pandola Suppress fake energy-violation warning when Auger is // active. -// Make sure that fluorescence/Auger is generated only +// Make sure that fluorescence/Auger is generated only // if above threshold // 24 May 2011 L Pandola Renamed (make v2008 as default Penelope) // 10 Jun 2011 L Pandola Migrate atomic deexcitation interface @@ -56,6 +56,7 @@ #include "G4PenelopeOscillatorManager.hh" #include "G4PenelopeOscillator.hh" #include "G4LossTableManager.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -74,11 +75,11 @@ G4PenelopeComptonModel::G4PenelopeComptonModel(const G4ParticleDefinition* part, if (part) SetParticle(part); - + verboseLevel= 0; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods @@ -115,35 +116,35 @@ void G4PenelopeComptonModel::Initialise(const G4ParticleDefinition* part, SetParticle(part); - if (IsMaster() && part == fParticle) + if (IsMaster() && part == fParticle) { - if (verboseLevel > 0) + if (verboseLevel > 0) { G4cout << "Penelope Compton model v2008 is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / keV << " keV - " - << HighEnergyLimit() / GeV << " GeV"; + << HighEnergyLimit() / GeV << " GeV"; } - //Issue a warning, if the model is going to be used down to a + //Issue a warning, if the model is going to be used down to a //energy which is outside the validity of the model itself if (LowEnergyLimit() < fIntrinsicLowEnergyLimit) { G4ExceptionDescription ed; - ed << "Using the Penelope Compton model outside its intrinsic validity range. " + ed << "Using the Penelope Compton model outside its intrinsic validity range. " << G4endl; - ed << "-> LowEnergyLimit() in process = " << LowEnergyLimit()/keV << "keV " << G4endl; - ed << "-> Instrinsic low-energy limit = " << fIntrinsicLowEnergyLimit/keV << "keV " + ed << "-> LowEnergyLimit() in process = " << LowEnergyLimit()/keV << "keV " << G4endl; + ed << "-> Instrinsic low-energy limit = " << fIntrinsicLowEnergyLimit/keV << "keV " << G4endl; ed << "Result of the simulation have to be taken with care" << G4endl; G4Exception("G4PenelopeComptonModel::Initialise()", "em2100",JustWarning,ed); } - } + } if(isInitialised) return; fParticleChange = GetParticleChangeForGamma(); - isInitialised = true; + isInitialised = true; } @@ -154,17 +155,17 @@ void G4PenelopeComptonModel::InitialiseLocal(const G4ParticleDefinition* part, { if (verboseLevel > 3) G4cout << "Calling G4PenelopeComptonModel::InitialiseLocal()" << G4endl; - + // - //Check that particle matches: one might have multiple master models (e.g. + //Check that particle matches: one might have multiple master models (e.g. //for e+ and e-). // if (part == fParticle) { //Get the const table pointers from the master to the workers - const G4PenelopeComptonModel* theModel = + const G4PenelopeComptonModel* theModel = static_cast (masterModel); - + //Same verbosity for all workers, as the master verboseLevel = theModel->verboseLevel; } @@ -183,13 +184,13 @@ G4double G4PenelopeComptonModel::CrossSectionPerVolume(const G4Material* materia { // Penelope model v2008 to calculate the Compton scattering cross section: // D. Brusa et al., Nucl. Instrum. Meth. A 379 (1996) 167 - // - // The cross section for Compton scattering is calculated according to the Klein-Nishina + // + // The cross section for Compton scattering is calculated according to the Klein-Nishina // formula for energy > 5 MeV. // For E < 5 MeV it is used a parametrization for the differential cross-section dSigma/dOmega, // which is integrated numerically in cos(theta), G4PenelopeComptonModel::DifferentialCrossSection(). - // The parametrization includes the J(p) - // distribution profiles for the atomic shells, that are tabulated from Hartree-Fock calculations + // The parametrization includes the J(p) + // distribution profiles for the atomic shells, that are tabulated from Hartree-Fock calculations // from F. Biggs et al., At. Data Nucl. Data Tables 16 (1975) 201 // if (verboseLevel > 3) @@ -199,8 +200,8 @@ G4double G4PenelopeComptonModel::CrossSectionPerVolume(const G4Material* materia G4double cs = 0; //Force null cross-section if below the low-energy edge of the table - if (energy < LowEnergyLimit()) - return cs; + if (energy < LowEnergyLimit()) + return cs; //Retrieve the oscillator table for this material G4PenelopeOscillatorTable* theTable = oscManager->GetOscillatorTableCompton(material); @@ -217,18 +218,18 @@ G4double G4PenelopeComptonModel::CrossSectionPerVolume(const G4Material* materia } else //use Klein-Nishina for E>5 MeV cs = KleinNishinaCrossSection(energy,material); - + //cross sections are in units of pi*classic_electr_radius^2 cs *= pi*classic_electr_radius*classic_electr_radius; - //Now, cs is the cross section *per molecule*, let's calculate the + //Now, cs is the cross section *per molecule*, let's calculate the //cross section per volume G4double atomDensity = material->GetTotNbOfAtomsPerVolume(); G4double atPerMol = oscManager->GetAtomsPerMolecule(material); if (verboseLevel > 3) - G4cout << "Material " << material->GetName() << " has " << atPerMol << + G4cout << "Material " << material->GetName() << " has " << atPerMol << "atoms per molecule" << G4endl; G4double moleculeDensity = 0.; @@ -237,9 +238,9 @@ G4double G4PenelopeComptonModel::CrossSectionPerVolume(const G4Material* materia moleculeDensity = atomDensity/atPerMol; G4double csvolume = cs*moleculeDensity; - + if (verboseLevel > 2) - G4cout << "Compton mean free path at " << energy/keV << " keV for material " << + G4cout << "Compton mean free path at " << energy/keV << " keV for material " << material->GetName() << " = " << (1./csvolume)/mm << " mm" << G4endl; return csvolume; } @@ -271,46 +272,46 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* G4double, G4double) { - + // Penelope model v2008 to sample the Compton scattering final state. // D. Brusa et al., Nucl. Instrum. Meth. A 379 (1996) 167 - // The model determines also the original shell from which the electron is expelled, + // The model determines also the original shell from which the electron is expelled, // in order to produce fluorescence de-excitation (from G4DeexcitationManager) - // - // The final state for Compton scattering is calculated according to the Klein-Nishina - // formula for energy > 5 MeV. In this case, the Doppler broadening is negligible and + // + // The final state for Compton scattering is calculated according to the Klein-Nishina + // formula for energy > 5 MeV. In this case, the Doppler broadening is negligible and // one can assume that the target electron is at rest. // For E < 5 MeV it is used the parametrization for the differential cross-section dSigma/dOmega, - // to sample the scattering angle and the energy of the emerging electron, which is - // G4PenelopeComptonModel::DifferentialCrossSection(). The rejection method is - // used to sample cos(theta). The efficiency increases monotonically with photon energy and is - // nearly independent on the Z; typical values are 35%, 80% and 95% for 1 keV, 1 MeV and 10 MeV, + // to sample the scattering angle and the energy of the emerging electron, which is + // G4PenelopeComptonModel::DifferentialCrossSection(). The rejection method is + // used to sample cos(theta). The efficiency increases monotonically with photon energy and is + // nearly independent on the Z; typical values are 35%, 80% and 95% for 1 keV, 1 MeV and 10 MeV, // respectively. - // The parametrization includes the J(p) distribution profiles for the atomic shells, that are - // tabulated - // from Hartree-Fock calculations from F. Biggs et al., At. Data Nucl. Data Tables 16 (1975) 201. + // The parametrization includes the J(p) distribution profiles for the atomic shells, that are + // tabulated + // from Hartree-Fock calculations from F. Biggs et al., At. Data Nucl. Data Tables 16 (1975) 201. // Doppler broadening is included. // if (verboseLevel > 3) G4cout << "Calling SampleSecondaries() of G4PenelopeComptonModel" << G4endl; - + G4double photonEnergy0 = aDynamicGamma->GetKineticEnergy(); // do nothing below the threshold // should never get here because the XS is zero below the limit - if(photonEnergy0 < LowEnergyLimit()) - return; + if(photonEnergy0 < LowEnergyLimit()) + return; G4ParticleMomentum photonDirection0 = aDynamicGamma->GetMomentumDirection(); const G4Material* material = couple->GetMaterial(); - G4PenelopeOscillatorTable* theTable = oscManager->GetOscillatorTableCompton(material); + G4PenelopeOscillatorTable* theTable = oscManager->GetOscillatorTableCompton(material); const G4int nmax = 64; G4double rn[nmax]={0.0}; G4double pac[nmax]={0.0}; - + G4double S=0.0; G4double epsilon = 0.0; G4double cosTheta = 1.0; @@ -331,32 +332,32 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* G4double TST = 0; G4double tau = 0.; - - //If the incoming photon is above 5 MeV, the quicker approach based on the + + //If the incoming photon is above 5 MeV, the quicker approach based on the //pure Klein-Nishina formula is used if (photonEnergy0 > 5*MeV) { do{ do{ if ((a2*G4UniformRand()) < a1) - tau = std::pow(taumin,G4UniformRand()); + tau = std::pow(taumin,G4UniformRand()); else - tau = std::sqrt(1.0+G4UniformRand()*(taumin*taumin-1.0)); + tau = std::sqrt(1.0+G4UniformRand()*(taumin*taumin-1.0)); //rejection function TST = (1.0+tau*(ek1+tau*(ek2+tau*eks)))/(eks*tau*(1.0+tau*tau)); }while (G4UniformRand()> TST); epsilon=tau; cosTheta = 1.0 - (1.0-tau)/(ek*tau); - //Target shell electrons + //Target shell electrons TST = oscManager->GetTotalZ(material)*G4UniformRand(); targetOscillator = numberOfOscillators-1; //last level S=0.0; G4bool levelFound = false; for (size_t j=0;jGetOscillatorStrength(); - if (S > TST) + S += (*theTable)[j]->GetOscillatorStrength(); + if (S > TST) { targetOscillator = j; levelFound = true; @@ -379,27 +380,27 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* if (photonEnergy0 > ionEnergy) { G4double aux2 = photonEnergy0*(photonEnergy0-ionEnergy)*2.0; - hartreeFunc = (*theTable)[i]->GetHartreeFactor(); + hartreeFunc = (*theTable)[i]->GetHartreeFactor(); oscStren = (*theTable)[i]->GetOscillatorStrength(); pzomc = hartreeFunc*(aux2-electron_mass_c2*ionEnergy)/ (electron_mass_c2*std::sqrt(2.0*aux2+ionEnergy*ionEnergy)); - if (pzomc > 0) - rni = 1.0-0.5*std::exp(0.5-(std::sqrt(0.5)+std::sqrt(2.0)*pzomc)* - (std::sqrt(0.5)+std::sqrt(2.0)*pzomc)); - else - rni = 0.5*std::exp(0.5-(std::sqrt(0.5)-std::sqrt(2.0)*pzomc)* - (std::sqrt(0.5)-std::sqrt(2.0)*pzomc)); + if (pzomc > 0) + rni = 1.0-0.5*G4Exp(0.5-(std::sqrt(0.5)+std::sqrt(2.0)*pzomc)* + (std::sqrt(0.5)+std::sqrt(2.0)*pzomc)); + else + rni = 0.5*G4Exp(0.5-(std::sqrt(0.5)-std::sqrt(2.0)*pzomc)* + (std::sqrt(0.5)-std::sqrt(2.0)*pzomc)); s0 += oscStren*rni; } - } + } //Sampling tau G4double cdt1 = 0.; do { - if ((G4UniformRand()*a2) < a1) - tau = std::pow(taumin,G4UniformRand()); - else - tau = std::sqrt(1.0+G4UniformRand()*(taumin*taumin-1.0)); + if ((G4UniformRand()*a2) < a1) + tau = std::pow(taumin,G4UniformRand()); + else + tau = std::sqrt(1.0+G4UniformRand()*(taumin*taumin-1.0)); cdt1 = (1.0-tau)/(ek*tau); //Incoherent scattering function S = 0.; @@ -409,24 +410,24 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* if (photonEnergy0 > ionEnergy) //sum only on excitable levels { aux = photonEnergy0*(photonEnergy0-ionEnergy)*cdt1; - hartreeFunc = (*theTable)[i]->GetHartreeFactor(); + hartreeFunc = (*theTable)[i]->GetHartreeFactor(); oscStren = (*theTable)[i]->GetOscillatorStrength(); pzomc = hartreeFunc*(aux-electron_mass_c2*ionEnergy)/ (electron_mass_c2*std::sqrt(2.0*aux+ionEnergy*ionEnergy)); - if (pzomc > 0) - rn[i] = 1.0-0.5*std::exp(0.5-(std::sqrt(0.5)+std::sqrt(2.0)*pzomc)* - (std::sqrt(0.5)+std::sqrt(2.0)*pzomc)); - else - rn[i] = 0.5*std::exp(0.5-(std::sqrt(0.5)-std::sqrt(2.0)*pzomc)* - (std::sqrt(0.5)-std::sqrt(2.0)*pzomc)); + if (pzomc > 0) + rn[i] = 1.0-0.5*G4Exp(0.5-(std::sqrt(0.5)+std::sqrt(2.0)*pzomc)* + (std::sqrt(0.5)+std::sqrt(2.0)*pzomc)); + else + rn[i] = 0.5*G4Exp(0.5-(std::sqrt(0.5)-std::sqrt(2.0)*pzomc)* + (std::sqrt(0.5)-std::sqrt(2.0)*pzomc)); S += oscStren*rn[i]; pac[i] = S; } else - pac[i] = S-1e-6; + pac[i] = S-1e-6; } //Rejection function - TST = S*(1.0+tau*(ek1+tau*(ek2+tau*eks)))/(eks*tau*(1.0+tau*tau)); + TST = S*(1.0+tau*(ek1+tau*(ek2+tau*eks)))/(eks*tau*(1.0+tau*tau)); }while ((G4UniformRand()*s0) > TST); cosTheta = 1.0 - cdt1; @@ -442,43 +443,43 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* G4bool levelFound = false; for (size_t i=0;iTST) - { + if (pac[i]>TST) + { targetOscillator = i; levelFound = true; } } A = G4UniformRand()*rn[targetOscillator]; - hartreeFunc = (*theTable)[targetOscillator]->GetHartreeFactor(); + hartreeFunc = (*theTable)[targetOscillator]->GetHartreeFactor(); oscStren = (*theTable)[targetOscillator]->GetOscillatorStrength(); - if (A < 0.5) + if (A < 0.5) pzomc = (std::sqrt(0.5)-std::sqrt(0.5-std::log(2.0*A)))/ - (std::sqrt(2.0)*hartreeFunc); - else + (std::sqrt(2.0)*hartreeFunc); + else pzomc = (std::sqrt(0.5-std::log(2.0-2.0*A))-std::sqrt(0.5))/ - (std::sqrt(2.0)*hartreeFunc); + (std::sqrt(2.0)*hartreeFunc); } while (pzomc < -1); // F(EP) rejection G4double XQC = 1.0+tau*(tau-2.0*cosTheta); G4double AF = std::sqrt(XQC)*(1.0+tau*(tau-cosTheta)/XQC); - if (AF > 0) + if (AF > 0) fpzmax = 1.0+AF*0.2; else - fpzmax = 1.0-AF*0.2; + fpzmax = 1.0-AF*0.2; fpz = 1.0+AF*std::max(std::min(pzomc,0.2),-0.2); }while ((fpzmax*G4UniformRand())>fpz); - + //Energy of the scattered photon G4double T = pzomc*pzomc; G4double b1 = 1.0-T*tau*tau; G4double b2 = 1.0-T*tau*cosTheta; - if (pzomc > 0.0) - epsilon = (tau/b1)*(b2+std::sqrt(std::abs(b2*b2-b1*(1.0-T)))); - else - epsilon = (tau/b1)*(b2-std::sqrt(std::abs(b2*b2-b1*(1.0-T)))); + if (pzomc > 0.0) + epsilon = (tau/b1)*(b2+std::sqrt(std::abs(b2*b2-b1*(1.0-T)))); + else + epsilon = (tau/b1)*(b2-std::sqrt(std::abs(b2*b2-b1*(1.0-T)))); } //energy < 5 MeV - + //Ok, the kinematics has been calculated. G4double sinTheta = std::sqrt(1-cosTheta*cosTheta); G4double phi = twopi * G4UniformRand() ; @@ -493,31 +494,31 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* G4double photonEnergy1 = epsilon * photonEnergy0; - if (photonEnergy1 > 0.) - fParticleChange->SetProposedKineticEnergy(photonEnergy1) ; + if (photonEnergy1 > 0.) + fParticleChange->SetProposedKineticEnergy(photonEnergy1) ; else { fParticleChange->SetProposedKineticEnergy(0.) ; fParticleChange->ProposeTrackStatus(fStopAndKill); } - + //Create scattered electron G4double diffEnergy = photonEnergy0*(1-epsilon); ionEnergy = (*theTable)[targetOscillator]->GetIonisationEnergy(); - G4double Q2 = + G4double Q2 = photonEnergy0*photonEnergy0+photonEnergy1*(photonEnergy1-2.0*photonEnergy0*cosTheta); G4double cosThetaE = 0.; //scattering angle for the electron - if (Q2 > 1.0e-12) - cosThetaE = (photonEnergy0-photonEnergy1*cosTheta)/std::sqrt(Q2); - else - cosThetaE = 1.0; + if (Q2 > 1.0e-12) + cosThetaE = (photonEnergy0-photonEnergy1*cosTheta)/std::sqrt(Q2); + else + cosThetaE = 1.0; G4double sinThetaE = std::sqrt(1-cosThetaE*cosThetaE); //Now, try to handle fluorescence //Notice: merged levels are indicated with Z=0 and flag=30 - G4int shFlag = (*theTable)[targetOscillator]->GetShellFlag(); + G4int shFlag = (*theTable)[targetOscillator]->GetShellFlag(); G4int Z = (G4int) (*theTable)[targetOscillator]->GetParentZ(); //initialize here, then check photons created by Atomic-Deexcitation, and the final state e- @@ -528,23 +529,23 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* if (Z > 0 && shFlag<30) { shell = fTransitionManager->Shell(Z,shFlag-1); - bindingEnergy = shell->BindingEnergy(); + bindingEnergy = shell->BindingEnergy(); } G4double ionEnergyInPenelopeDatabase = ionEnergy; //protection against energy non-conservation - ionEnergy = std::max(bindingEnergy,ionEnergyInPenelopeDatabase); + ionEnergy = std::max(bindingEnergy,ionEnergyInPenelopeDatabase); //subtract the excitation energy. If not emitted by fluorescence //the ionization energy is deposited as local energy deposition - G4double eKineticEnergy = diffEnergy - ionEnergy; - G4double localEnergyDeposit = ionEnergy; + G4double eKineticEnergy = diffEnergy - ionEnergy; + G4double localEnergyDeposit = ionEnergy; G4double energyInFluorescence = 0.; //testing purposes only G4double energyInAuger = 0; //testing purposes - if (eKineticEnergy < 0) + if (eKineticEnergy < 0) { - //It means that there was some problem/mismatch between the two databases. + //It means that there was some problem/mismatch between the two databases. //Try to make it work //In this case available Energy (diffEnergy) < ionEnergy //Full residual energy is deposited locally @@ -556,14 +557,14 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* //Notice: shell might be NULL (invalid!) if shFlag=30. Must be protected //Now, take care of fluorescence, if required if (fAtomDeexcitation && shell) - { + { G4int index = couple->GetIndex(); if (fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) - { + { size_t nBefore = fvect->size(); fAtomDeexcitation->GenerateParticles(fvect,shell,Z,index); - size_t nAfter = fvect->size(); - + size_t nAfter = fvect->size(); + if (nAfter > nBefore) //actual production of fluorescence { for (size_t j=nBefore;j* energyInFluorescence += itsEnergy; else if (((*fvect)[j])->GetParticleDefinition() == G4Electron::Definition()) energyInAuger += itsEnergy; - + } } @@ -597,13 +598,13 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* // Protection to avoid generating photons in the unphysical case of // shell binding energy > photon energy if (localEnergyDeposit > cutg || localEnergyDeposit > cute) - { + { G4DynamicParticle* aPhoton; deexcitationManager.SetCutForSecondaryPhotons(cutg); deexcitationManager.SetCutForAugerElectrons(cute); photonVector = deexcitationManager.GenerateParticles(Z,shellId); - if(photonVector) + if(photonVector) { size_t nPhotons = photonVector->size(); for (size_t k=0; k* G4bool keepIt = false; if (itsEnergy <= localEnergyDeposit) { - //check if good! + //check if good! if(aPhoton->GetDefinition() == G4Gamma::Gamma() && itsEnergy >= cutg) { keepIt = true; - energyInFluorescence += itsEnergy; + energyInFluorescence += itsEnergy; } - if (aPhoton->GetDefinition() == G4Electron::Electron() && + if (aPhoton->GetDefinition() == G4Electron::Electron() && itsEnergy >= cute) { energyInAuger += itsEnergy; @@ -634,7 +635,7 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* { localEnergyDeposit -= itsEnergy; fvect->push_back(aPhoton); - } + } else { delete aPhoton; @@ -649,10 +650,10 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* */ - //Always produce explicitely the electron + //Always produce explicitely the electron G4DynamicParticle* electron = 0; - G4double xEl = sinThetaE * std::cos(phi+pi); + G4double xEl = sinThetaE * std::cos(phi+pi); G4double yEl = sinThetaE * std::sin(phi+pi); G4double zEl = cosThetaE; G4ThreeVector eDirection(xEl,yEl,zEl); //electron direction @@ -660,17 +661,17 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* electron = new G4DynamicParticle (G4Electron::Electron(), eDirection,eKineticEnergy) ; fvect->push_back(electron); - + if (localEnergyDeposit < 0) { - G4cout << "WARNING-" + G4cout << "WARNING-" << "G4PenelopeComptonModel::SampleSecondaries - Negative energy deposit" << G4endl; localEnergyDeposit=0.; } fParticleChange->ProposeLocalEnergyDeposit(localEnergyDeposit); - + G4double electronEnergy = 0.; if (electron) electronEnergy = eKineticEnergy; @@ -688,7 +689,7 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* G4cout << "Auger electrons: " << energyInAuger/keV << " keV" << G4endl; G4cout << "Local energy deposit " << localEnergyDeposit/keV << " keV" << G4endl; G4cout << "Total final state: " << (photonEnergy1+electronEnergy+energyInFluorescence+ - localEnergyDeposit+energyInAuger)/keV << + localEnergyDeposit+energyInAuger)/keV << " keV" << G4endl; G4cout << "-----------------------------------------------------------" << G4endl; } @@ -698,11 +699,11 @@ void G4PenelopeComptonModel::SampleSecondaries(std::vector* electronEnergy+energyInFluorescence+ localEnergyDeposit+energyInAuger-photonEnergy0); if (energyDiff > 0.05*keV) - G4cout << "Warning from G4PenelopeCompton: problem with energy conservation: " << - (photonEnergy1+electronEnergy+energyInFluorescence+energyInAuger+localEnergyDeposit)/keV << - " keV (final) vs. " << + G4cout << "Warning from G4PenelopeCompton: problem with energy conservation: " << + (photonEnergy1+electronEnergy+energyInFluorescence+energyInAuger+localEnergyDeposit)/keV << + " keV (final) vs. " << photonEnergy0/keV << " keV (initial)" << G4endl; - } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -711,41 +712,41 @@ G4double G4PenelopeComptonModel::DifferentialCrossSection(G4double cosTheta,G4do G4PenelopeOscillator* osc) { // - // Penelope model v2008. Single differential cross section *per electron* - // for photon Compton scattering by - // electrons in the given atomic oscillator, differential in the direction of the - // scattering photon. This is in units of pi*classic_electr_radius**2 + // Penelope model v2008. Single differential cross section *per electron* + // for photon Compton scattering by + // electrons in the given atomic oscillator, differential in the direction of the + // scattering photon. This is in units of pi*classic_electr_radius**2 // // D. Brusa et al., Nucl. Instrum. Meth. A 379 (1996) 167 - // The parametrization includes the J(p) distribution profiles for the atomic shells, - // that are tabulated from Hartree-Fock calculations + // The parametrization includes the J(p) distribution profiles for the atomic shells, + // that are tabulated from Hartree-Fock calculations // from F. Biggs et al., At. Data Nucl. Data Tables 16 (1975) 201 // G4double ionEnergy = osc->GetIonisationEnergy(); - G4double harFunc = osc->GetHartreeFactor(); + G4double harFunc = osc->GetHartreeFactor(); static const G4double k2 = std::sqrt(2.); - static const G4double k1 = 1./k2; + static const G4double k1 = 1./k2; if (energy < ionEnergy) return 0; //energy of the Compton line G4double cdt1 = 1.0-cosTheta; - G4double EOEC = 1.0+(energy/electron_mass_c2)*cdt1; + G4double EOEC = 1.0+(energy/electron_mass_c2)*cdt1; G4double ECOE = 1.0/EOEC; //Incoherent scattering function (analytical profile) G4double aux = energy*(energy-ionEnergy)*cdt1; - G4double Pzimax = + G4double Pzimax = (aux - electron_mass_c2*ionEnergy)/(electron_mass_c2*std::sqrt(2*aux+ionEnergy*ionEnergy)); G4double sia = 0.0; G4double x = harFunc*Pzimax; - if (x > 0) - sia = 1.0-0.5*std::exp(0.5-(k1+k2*x)*(k1+k2*x)); - else - sia = 0.5*std::exp(0.5-(k1-k2*x)*(k1-k2*x)); - + if (x > 0) + sia = 1.0-0.5*G4Exp(0.5-(k1+k2*x)*(k1+k2*x)); + else + sia = 0.5*G4Exp(0.5-(k1-k2*x)*(k1-k2*x)); + //1st order correction, integral of Pz times the Compton profile. //Calculated approximately using a free-electron gas profile G4double pf = 3.0/(4.0*harFunc); @@ -771,12 +772,12 @@ G4double G4PenelopeComptonModel::DifferentialCrossSection(G4double cosTheta,G4do G4double G4PenelopeComptonModel::OscillatorTotalCrossSection(G4double energy,G4PenelopeOscillator* osc) { - //Total cross section (integrated) for the given oscillator in units of + //Total cross section (integrated) for the given oscillator in units of //pi*classic_electr_radius^2 //Integrate differential cross section for each oscillator G4double stre = osc->GetOscillatorStrength(); - + // here one uses the using the 20-point // Gauss quadrature method with an adaptive bipartition scheme const G4int npoints=10; @@ -839,26 +840,26 @@ G4double G4PenelopeComptonModel::OscillatorTotalCrossSection(G4double energy,G4P c=a*Abscissas[0]; G4double dLocal = Weights[0]* (DifferentialCrossSection(b+c,energy,osc)+DifferentialCrossSection(b-c,energy,osc)); - + for (G4int j=1;jncallsmax || LHN>nst) { G4cout << "G4PenelopeComptonModel: " << G4endl; @@ -886,7 +887,7 @@ G4double G4PenelopeComptonModel::OscillatorTotalCrossSection(G4double energy,G4P } } Err=std::abs(sumr)/std::max(std::abs(sumr+sumga),1e-35); - if (Err < Ctol || LHN == 0) + if (Err < Ctol || LHN == 0) loopAgain = false; //end of cycle LH=LHN; for (G4int i=0;i log XS0 vs. log E //(softCrossSections)[1] --> log XS1 vs. log E //(softCrossSections)[2] --> log XS2 vs. log E - + //everything is log-log for (size_t i=0;i<3;i++) softCrossSections->push_back(new G4PhysicsFreeVector(numberOfEnergyPoints)); - + //2) hard XS table hardCrossSections = new G4PhysicsTable(); - //the table contains 3 G4PhysicsFreeVectors, + //the table contains 3 G4PhysicsFreeVectors, //(hardCrossSections)[0] --> log XH0 vs. log E - //(hardCrossSections)[1] --> log XH1 vs. log E + //(hardCrossSections)[1] --> log XH1 vs. log E //(hardCrossSections)[2] --> log XH2 vs. log E - + //everything is log-log for (size_t i=0;i<3;i++) hardCrossSections->push_back(new G4PhysicsFreeVector(numberOfEnergyPoints)); - + //3) shell XS table, if it is the case if (numberOfShells) { shellCrossSections = new G4PhysicsTable(); shellNormalizedCrossSections = new G4PhysicsTable(); - //the table has to contain numberofShells G4PhysicsFreeVectors, + //the table has to contain numberofShells G4PhysicsFreeVectors, //(theTable)[ishell] --> cross section for shell #ishell - for (size_t i=0;ipush_back(new G4PhysicsFreeVector(numberOfEnergyPoints)); - shellNormalizedCrossSections->push_back(new G4PhysicsFreeVector(numberOfEnergyPoints)); + shellCrossSections->push_back(new G4PhysicsFreeVector(numberOfEnergyPoints)); + shellNormalizedCrossSections->push_back(new G4PhysicsFreeVector(numberOfEnergyPoints)); } } } @@ -100,7 +101,7 @@ G4PenelopeCrossSection::~G4PenelopeCrossSection() if (shellCrossSections) { //shellCrossSections->clearAndDestroy(); - delete shellCrossSections; + delete shellCrossSections; } if (shellNormalizedCrossSections) { @@ -121,9 +122,9 @@ G4PenelopeCrossSection::~G4PenelopeCrossSection() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo... void G4PenelopeCrossSection::AddCrossSectionPoint(size_t binNumber,G4double energy, - G4double XH0, + G4double XH0, G4double XH1, G4double XH2, - G4double XS0, G4double XS1, + G4double XS0, G4double XS1, G4double XS2) { if (!softCrossSections || !hardCrossSections) @@ -133,16 +134,16 @@ void G4PenelopeCrossSection::AddCrossSectionPoint(size_t binNumber,G4double ener G4cout << "Trying to fill un-initialized tables" << G4endl; return; } - + //fill vectors G4PhysicsFreeVector* theVector = (G4PhysicsFreeVector*) (*softCrossSections)[0]; - + if (binNumber >= numberOfEnergyPoints) { G4cout << "Something wrong in G4PenelopeCrossSection::AddCrossSectionPoint" << G4endl; G4cout << "Trying to register more points than originally declared" << G4endl; - return; + return; } G4double logEne = std::log(energy); @@ -174,7 +175,7 @@ void G4PenelopeCrossSection::AddCrossSectionPoint(size_t binNumber,G4double ener theVector = (G4PhysicsFreeVector*) (*hardCrossSections)[2]; val = std::log(std::max(XH2,1e-42*eV*eV*cm2)); //avoid log(0) theVector->PutValue(binNumber,logEne,val); - + return; } @@ -192,25 +193,25 @@ void G4PenelopeCrossSection::AddShellCrossSectionPoint(size_t binNumber, G4cout << "Trying to fill un-initialized table" << G4endl; return; } - + if (shellID >= numberOfShells) { G4cout << "Something wrong in G4PenelopeCrossSection::AddShellCrossSectionPoint" << G4endl; - G4cout << "Trying to fill shell #" << shellID << " while the maximum is " - << numberOfShells-1 << G4endl; - return; + G4cout << "Trying to fill shell #" << shellID << " while the maximum is " + << numberOfShells-1 << G4endl; + return; } //fill vector G4PhysicsFreeVector* theVector = (G4PhysicsFreeVector*) (*shellCrossSections)[shellID]; - + if (binNumber >= numberOfEnergyPoints) { G4cout << "Something wrong in G4PenelopeCrossSection::AddShellCrossSectionPoint" << G4endl; G4cout << "Trying to register more points than originally declared" << G4endl; - return; + return; } G4double logEne = std::log(energy); G4double val = std::log(std::max(xs,1e-42*cm2)); //avoid log(0) @@ -232,7 +233,7 @@ G4double G4PenelopeCrossSection::GetTotalCrossSection(G4double energy) const G4cout << "Trying to retrieve from un-initialized tables" << G4endl; return result; } - + // 1) soft part G4PhysicsFreeVector* theVector = (G4PhysicsFreeVector*) (*softCrossSections)[0]; if (theVector->GetVectorLength() < numberOfEnergyPoints) @@ -244,7 +245,7 @@ G4double G4PenelopeCrossSection::GetTotalCrossSection(G4double energy) const } G4double logene = std::log(energy); G4double logXS = theVector->Value(logene); - G4double softXS = std::exp(logXS); + G4double softXS = G4Exp(logXS); // 2) hard part theVector = (G4PhysicsFreeVector*) (*hardCrossSections)[0]; @@ -256,16 +257,16 @@ G4double G4PenelopeCrossSection::GetTotalCrossSection(G4double energy) const return result; } logXS = theVector->Value(logene); - G4double hardXS = std::exp(logXS); + G4double hardXS = G4Exp(logXS); result = hardXS + softXS; - return result; + return result; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo... -G4double G4PenelopeCrossSection::GetHardCrossSection(G4double energy) const +G4double G4PenelopeCrossSection::GetHardCrossSection(G4double energy) const { G4double result = 0; //take here XH0 @@ -276,7 +277,7 @@ G4double G4PenelopeCrossSection::GetHardCrossSection(G4double energy) const G4cout << "Trying to retrieve from un-initialized tables" << G4endl; return result; } - + G4PhysicsFreeVector* theVector = (G4PhysicsFreeVector*) (*hardCrossSections)[0]; if (theVector->GetVectorLength() < numberOfEnergyPoints) { @@ -287,7 +288,7 @@ G4double G4PenelopeCrossSection::GetHardCrossSection(G4double energy) const } G4double logene = std::log(energy); G4double logXS = theVector->Value(logene); - result = std::exp(logXS); + result = G4Exp(logXS); return result; } @@ -306,7 +307,7 @@ G4double G4PenelopeCrossSection::GetSoftStoppingPower(G4double energy) const G4cout << "Trying to retrieve from un-initialized tables" << G4endl; return result; } - + G4PhysicsFreeVector* theVector = (G4PhysicsFreeVector*) (*softCrossSections)[1]; if (theVector->GetVectorLength() < numberOfEnergyPoints) { @@ -317,7 +318,7 @@ G4double G4PenelopeCrossSection::GetSoftStoppingPower(G4double energy) const } G4double logene = std::log(energy); G4double logXS = theVector->Value(logene); - result = std::exp(logXS); + result = G4Exp(logXS); return result; } @@ -338,8 +339,8 @@ G4double G4PenelopeCrossSection::GetShellCrossSection(size_t shellID,G4double en { G4cout << "Something wrong in G4PenelopeCrossSection::GetShellCrossSection" << G4endl; - G4cout << "Trying to retrieve shell #" << shellID << " while the maximum is " - << numberOfShells-1 << G4endl; + G4cout << "Trying to retrieve shell #" << shellID << " while the maximum is " + << numberOfShells-1 << G4endl; return result; } @@ -354,7 +355,7 @@ G4double G4PenelopeCrossSection::GetShellCrossSection(size_t shellID,G4double en } G4double logene = std::log(energy); G4double logXS = theVector->Value(logene); - result = std::exp(logXS); + result = G4Exp(logXS); return result; } @@ -382,12 +383,12 @@ G4double G4PenelopeCrossSection::GetNormalizedShellCrossSection(size_t shellID,G { G4cout << "Something wrong in G4PenelopeCrossSection::GetShellCrossSection" << G4endl; - G4cout << "Trying to retrieve shell #" << shellID << " while the maximum is " - << numberOfShells-1 << G4endl; + G4cout << "Trying to retrieve shell #" << shellID << " while the maximum is " + << numberOfShells-1 << G4endl; return result; } - - const G4PhysicsFreeVector* theVector = + + const G4PhysicsFreeVector* theVector = (G4PhysicsFreeVector*) (*shellNormalizedCrossSections)[shellID]; if (theVector->GetVectorLength() < numberOfEnergyPoints) @@ -399,7 +400,7 @@ G4double G4PenelopeCrossSection::GetNormalizedShellCrossSection(size_t shellID,G } G4double logene = std::log(energy); G4double logXS = theVector->Value(logene); - result = std::exp(logXS); + result = G4Exp(logXS); return result; } @@ -426,31 +427,31 @@ void G4PenelopeCrossSection::NormalizeShellCrossSections() } for (size_t i=0;iGetLowEdgeEnergy(i); //log(XS/normFactor) = log(XS) - log(normFactor) - theVec->PutValue(i,logEnergy,previousValue-logNormFactor); + theVec->PutValue(i,logEnergy,previousValue-logNormFactor); } } @@ -462,12 +463,12 @@ void G4PenelopeCrossSection::NormalizeShellCrossSections() for (size_t shellID=0;shellIDGetLowEdgeEnergy(i); - G4cout << std::exp(logene)/MeV << " " << std::exp((*theVec)[i]) << G4endl; + G4cout << G4Exp(logene)/MeV << " " << G4Exp((*theVec)[i]) << G4endl; } } */ diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc index 468944a900..640aa84de2 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeGammaConversionModel.cc 83584 2014-09-02 08:45:37Z gcosmo $ +// $Id: G4PenelopeGammaConversionModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // Author: Luciano Pandola // @@ -31,7 +31,7 @@ // -------- // 13 Jan 2010 L Pandola First implementation (updated to Penelope08) // 24 May 2011 L Pandola Renamed (make v2008 as default Penelope) -// 18 Sep 2013 L Pandola Migration to MT paradigm. Only master model deals with +// 18 Sep 2013 L Pandola Migration to MT paradigm. Only master model deals with // data and creates shared tables // @@ -49,6 +49,7 @@ #include "G4PhysicsFreeVector.hh" #include "G4MaterialCutsCouple.hh" #include "G4AutoLock.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -59,11 +60,11 @@ G4PenelopeGammaConversionModel::G4PenelopeGammaConversionModel(const G4ParticleD fEffectiveCharge(0),fMaterialInvScreeningRadius(0), fScreeningFunction(0),isInitialised(false),fLocalTable(false) -{ +{ fIntrinsicLowEnergyLimit = 2.0*electron_mass_c2; fIntrinsicHighEnergyLimit = 100.0*GeV; fSmallEnergy = 1.1*MeV; - + InitializeScreeningRadii(); if (part) @@ -74,8 +75,8 @@ G4PenelopeGammaConversionModel::G4PenelopeGammaConversionModel(const G4ParticleD // verboseLevel= 0; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods @@ -87,12 +88,12 @@ G4PenelopeGammaConversionModel::~G4PenelopeGammaConversionModel() { //Delete shared tables, they exist only in the master model if (IsMaster() || fLocalTable) - { + { if (logAtomicCrossSection) - { + { std::map ::iterator i; for (i=logAtomicCrossSection->begin();i != logAtomicCrossSection->end();i++) - if (i->second) delete i->second; + if (i->second) delete i->second; delete logAtomicCrossSection; } if (fEffectiveCharge) @@ -137,21 +138,21 @@ void G4PenelopeGammaConversionModel::Initialise(const G4ParticleDefinition* part { delete fScreeningFunction; fScreeningFunction = 0; - } + } //and create new ones fEffectiveCharge = new std::map; fMaterialInvScreeningRadius = new std::map; fScreeningFunction = new std::map >; - - G4ProductionCutsTable* theCoupleTable = + + G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); for (size_t i=0;iGetTableSize();i++) { - const G4Material* material = + const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - + for (size_t j=0;jGetNumberOfElements();j++) { G4int iZ = (G4int) theElementVector->at(j)->GetZ(); @@ -162,11 +163,11 @@ void G4PenelopeGammaConversionModel::Initialise(const G4ParticleDefinition* part //check if material data are available if (!fEffectiveCharge->count(material)) - InitializeScreeningFunctions(material); + InitializeScreeningFunctions(material); } - if (verboseLevel > 0) { + if (verboseLevel > 0) { G4cout << "Penelope Gamma Conversion model v2008 is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / MeV << " MeV - " @@ -191,24 +192,24 @@ void G4PenelopeGammaConversionModel::InitialiseLocal(const G4ParticleDefinition* G4cout << "Calling G4PenelopeGammaConversionModel::InitialiseLocal()" << G4endl; // - //Check that particle matches: one might have multiple master models (e.g. + //Check that particle matches: one might have multiple master models (e.g. //for e+ and e-). // if (part == fParticle) { //Get the const table pointers from the master to the workers - const G4PenelopeGammaConversionModel* theModel = + const G4PenelopeGammaConversionModel* theModel = static_cast (masterModel); - + //Copy pointers to the data tables fEffectiveCharge = theModel->fEffectiveCharge; fMaterialInvScreeningRadius = theModel->fMaterialInvScreeningRadius; fScreeningFunction = theModel->fScreeningFunction; logAtomicCrossSection = theModel->logAtomicCrossSection; - + //Same verbosity for all workers, as the master verboseLevel = theModel->verboseLevel; - } + } return; } @@ -224,21 +225,21 @@ G4double G4PenelopeGammaConversionModel::ComputeCrossSectionPerAtom( { // // Penelope model v2008. - // Cross section (including triplet production) read from database and managed + // Cross section (including triplet production) read from database and managed // through the G4CrossSectionHandler utility. Cross section data are from // M.J. Berger and J.H. Hubbel (XCOM), Report NBSIR 887-3598 // - + if (energy < fIntrinsicLowEnergyLimit) return 0; G4int iZ = (G4int) Z; - - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked if (!logAtomicCrossSection) { - //create a **thread-local** version of the table. Used only for G4EmCalculator and + //create a **thread-local** version of the table. Used only for G4EmCalculator and //Unit Tests fLocalTable = true; logAtomicCrossSection = new std::map; @@ -246,20 +247,20 @@ G4double G4PenelopeGammaConversionModel::ComputeCrossSectionPerAtom( //now it should be ok if (!logAtomicCrossSection->count(iZ)) { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was //not filled up. This can happen in a UnitTest or via G4EmCalculator if (verboseLevel > 0) { //Issue a G4Exception (warning) only in verbose mode G4ExceptionDescription ed; ed << "Unable to retrieve the cross section table for Z=" << iZ << G4endl; - ed << "This can happen only in Unit Tests or via G4EmCalculator" << G4endl; + ed << "This can happen only in Unit Tests or via G4EmCalculator" << G4endl; G4Exception("G4PenelopeGammaConversionModel::ComputeCrossSectionPerAtom()", "em2018",JustWarning,ed); } //protect file reading via autolock G4AutoLock lock(&PenelopeGammaConversionModelMutex); - ReadDataFile(iZ); + ReadDataFile(iZ); lock.unlock(); } @@ -269,17 +270,17 @@ G4double G4PenelopeGammaConversionModel::ComputeCrossSectionPerAtom( G4PhysicsFreeVector* theVec = logAtomicCrossSection->find(iZ)->second; G4double logXS = theVec->Value(logene); - cs = std::exp(logXS); + cs = G4Exp(logXS); if (verboseLevel > 2) - G4cout << "Gamma conversion cross section at " << energy/MeV << " MeV for Z=" << Z << + G4cout << "Gamma conversion cross section at " << energy/MeV << " MeV for Z=" << Z << " = " << cs/barn << " barn" << G4endl; return cs; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void +void G4PenelopeGammaConversionModel::SampleSecondaries(std::vector* fvect, const G4MaterialCutsCouple* couple, const G4DynamicParticle* aDynamicGamma, @@ -292,11 +293,11 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vector 3) G4cout << "Calling SamplingSecondaries() of G4PenelopeGammaConversionModel" << G4endl; @@ -316,13 +317,13 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vectorGetMomentumDirection(); const G4Material* mat = couple->GetMaterial(); - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked if (!fEffectiveCharge) { - //create a **thread-local** version of the table. Used only for G4EmCalculator and + //create a **thread-local** version of the table. Used only for G4EmCalculator and //Unit Tests - fLocalTable = true; + fLocalTable = true; fEffectiveCharge = new std::map; fMaterialInvScreeningRadius = new std::map; fScreeningFunction = new std::map >; @@ -330,15 +331,15 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vectorcount(mat)) { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was //not filled up. This can happen in a UnitTest or via G4EmCalculator if (verboseLevel > 0) { //Issue a G4Exception (warning) only in verbose mode G4ExceptionDescription ed; - ed << "Unable to allocate the EffectiveCharge data for " << + ed << "Unable to allocate the EffectiveCharge data for " << mat->GetName() << G4endl; - ed << "This can happen only in Unit Tests" << G4endl; + ed << "This can happen only in Unit Tests" << G4endl; G4Exception("G4PenelopeGammaConversionModel::SampleSecondaries()", "em2019",JustWarning,ed); } @@ -365,7 +366,7 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vectorfind(mat)->second.second; G4double g0 = F0b + F00; G4double invRad = fMaterialInvScreeningRadius->find(mat)->second; @@ -376,7 +377,7 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vector g1) + if (G4UniformRand()*g1min > g1) loopAgain = true; } else @@ -406,20 +407,20 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vector g2) loopAgain = true; - } + } }while(loopAgain); - + } if (verboseLevel > 4) G4cout << "Sampled eps = " << eps << G4endl; G4double electronTotEnergy = eps*photonEnergy; G4double positronTotEnergy = (1.0-eps)*photonEnergy; - + // Scattered electron (positron) angles. ( Z - axis along the parent photon) //electron kinematics - G4double electronKineEnergy = std::max(0.,electronTotEnergy - electron_mass_c2) ; + G4double electronKineEnergy = std::max(0.,electronTotEnergy - electron_mass_c2) ; G4double costheta_el = G4UniformRand()*2.0-1.0; G4double kk = std::sqrt(electronKineEnergy*(electronKineEnergy+2.*electron_mass_c2)); costheta_el = (costheta_el*electronTotEnergy+kk)/(electronTotEnergy+costheta_el*kk); @@ -442,7 +443,7 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vector 0.0) { G4ThreeVector electronDirection ( dirX_el, dirY_el, dirZ_el); @@ -473,7 +474,7 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vectorProposeLocalEnergyDeposit(localEnergyDeposit); - + if (verboseLevel > 1) { G4cout << "-----------------------------------------------------------" << G4endl; @@ -481,7 +482,7 @@ G4PenelopeGammaConversionModel::SampleSecondaries(std::vector 0.05*keV) - G4cout << "Warning from G4PenelopeGammaConversion: problem with energy conservation: " + G4cout << "Warning from G4PenelopeGammaConversion: problem with energy conservation: " << (electronKineEnergy+positronKineEnergy+ - localEnergyDeposit+2.0*electron_mass_c2)/keV + localEnergyDeposit+2.0*electron_mass_c2)/keV << " keV (final) vs. " << photonEnergy/keV << " keV (initial)" << G4endl; - } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) { - if (!IsMaster()) + if (!IsMaster()) //Should not be here! G4Exception("G4PenelopeGammaConversionModel::ReadDataFile()", - "em0100",FatalException,"Worker thread in this method"); + "em0100",FatalException,"Worker thread in this method"); if (verboseLevel > 2) { G4cout << "G4PenelopeGammaConversionModel::ReadDataFile()" << G4endl; G4cout << "Going to read Gamma Conversion data files for Z=" << Z << G4endl; } - + char* path = getenv("G4LEDATA"); if (!path) { - G4String excep = + G4String excep = "G4PenelopeGammaConversionModel - G4LEDATA environment variable not set!"; G4Exception("G4PenelopeGammaConversionModel::ReadDataFile()", "em0006",FatalException,excep); return; } - + /* Read the cross section file */ @@ -541,7 +542,7 @@ void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) std::ifstream file(ost.str().c_str()); if (!file.is_open()) { - G4String excep = "G4PenelopeGammaConversionModel - data file " + + G4String excep = "G4PenelopeGammaConversionModel - data file " + G4String(ost.str()) + " not found!"; G4Exception("G4PenelopeGammaConversionModel::ReadDataFile()", "em0003",FatalException,excep); @@ -560,7 +561,7 @@ void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) file.close(); file.open(ost.str().c_str()); G4int readZ =0; - file >> readZ; + file >> readZ; if (verboseLevel > 3) G4cout << "Element Z=" << Z << G4endl; @@ -569,7 +570,7 @@ void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) if (readZ != Z) { G4ExceptionDescription ed; - ed << "Corrupted data file for Z=" << Z << G4endl; + ed << "Corrupted data file for Z=" << Z << G4endl; G4Exception("G4PenelopeGammaConversionModel::ReadDataFile()", "em0005",FatalException,ed); } @@ -584,7 +585,7 @@ void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) xs *= barn; if (xs < 1e-40*cm2) //protection against log(0) xs = 1e-40*cm2; - theVec->PutValue(i,std::log(ene),std::log(xs)); + theVec->PutValue(i,std::log(ene),std::log(xs)); } file.close(); @@ -635,10 +636,10 @@ void G4PenelopeGammaConversionModel::InitializeScreeningRadii() void G4PenelopeGammaConversionModel::InitializeScreeningFunctions(const G4Material* material) { /* - if (!IsMaster()) + if (!IsMaster()) //Should not be here! G4Exception("G4PenelopeGammaConversionModel::InitializeScreeningFunctions()", - "em01001",FatalException,"Worker thread in this method"); + "em01001",FatalException,"Worker thread in this method"); */ // This is subroutine GPPa0 of Penelope @@ -659,7 +660,7 @@ void G4PenelopeGammaConversionModel::InitializeScreeningFunctions(const G4Materi else // many elements...let's do the calculation { const G4double* fractionVector = material->GetVecNbOfAtomsPerVolume(); - + G4double atot = 0; for (G4int i=0;iGetTotNbOfAtomsPerVolume(); zeff /= (material->GetTotNbOfAtomsPerVolume()*atot); - + intZ = (G4int) (zeff+0.25); if (intZ <= 0) intZ = 1; @@ -710,12 +711,12 @@ void G4PenelopeGammaConversionModel::InitializeScreeningFunctions(const G4Materi if (verboseLevel > 2) { - G4cout << "Average Z for material " << material->GetName() << " = " << + G4cout << "Average Z for material " << material->GetName() << " = " << zeff << G4endl; - G4cout << "Effective radius for material " << material->GetName() << " = " << - fAtomicScreeningRadius[intZ-1] << " m_e*c/hbar --> BCB = " << + G4cout << "Effective radius for material " << material->GetName() << " = " << + fAtomicScreeningRadius[intZ-1] << " m_e*c/hbar --> BCB = " << matRadius << G4endl; - G4cout << "Screening parameters F0 for material " << material->GetName() << " = " << + G4cout << "Screening parameters F0 for material " << material->GetName() << " = " << f0a << "," << f0b << G4endl; } return; @@ -723,12 +724,12 @@ void G4PenelopeGammaConversionModel::InitializeScreeningFunctions(const G4Materi //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -std::pair +std::pair G4PenelopeGammaConversionModel::GetScreeningFunctions(G4double B) { // This is subroutine SCHIFF of Penelope // - // Screening Functions F1(B) and F2(B) in the Bethe-Heitler differential cross + // Screening Functions F1(B) and F2(B) in the Bethe-Heitler differential cross // section for pair production // std::pair result(0.,0.); @@ -757,7 +758,6 @@ G4PenelopeGammaConversionModel::GetScreeningFunctions(G4double B) void G4PenelopeGammaConversionModel::SetParticle(const G4ParticleDefinition* p) { if(!fParticle) { - fParticle = p; + fParticle = p; } } - diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc index 05260eb2f8..96e4b5b05b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc @@ -27,21 +27,21 @@ // // History: // ----------- -// +// // 03 Dec 2009 First working version, Luciano Pandola -// 16 Feb 2010 Added methods to store also total Z and A for the -// molecule, Luciano Pandola -// 19 Feb 2010 Scale the Hartree factors in the Compton Oscillator -// table by (1/fine_structure_const), since the models use +// 16 Feb 2010 Added methods to store also total Z and A for the +// molecule, Luciano Pandola +// 19 Feb 2010 Scale the Hartree factors in the Compton Oscillator +// table by (1/fine_structure_const), since the models use // always the ratio (hartreeFactor/fine_structure_const) // 16 Mar 2010 Added methods to calculate and store mean exc energy // and plasma energy (used for Ionisation). L Pandola -// 18 Mar 2010 Added method to retrieve number of atoms per +// 18 Mar 2010 Added method to retrieve number of atoms per // molecule. L. Pandola // 06 Sep 2011 Override the local Penelope database and use the main -// G4AtomicDeexcitation database to retrieve the shell +// G4AtomicDeexcitation database to retrieve the shell // binding energies. L. Pandola -// 15 Mar 2012 Added method to retrieve number of atom of given Z per +// 15 Mar 2012 Added method to retrieve number of atom of given Z per // molecule. Restore the original Penelope database for levels // below 100 eV. L. Pandola // @@ -55,10 +55,11 @@ #include "G4AtomicTransitionManager.hh" #include "G4AtomicShell.hh" #include "G4Material.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PenelopeOscillatorManager::G4PenelopeOscillatorManager() : +G4PenelopeOscillatorManager::G4PenelopeOscillatorManager() : oscillatorStoreIonisation(0),oscillatorStoreCompton(0),atomicNumber(0), atomicMass(0),excitationEnergy(0),plasmaSquared(0),atomsPerMolecule(0), atomTablePerMolecule(0) @@ -79,7 +80,7 @@ G4PenelopeOscillatorManager::~G4PenelopeOscillatorManager() Clear(); delete instance; } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4ThreadLocal G4PenelopeOscillatorManager* G4PenelopeOscillatorManager::instance = 0; @@ -109,7 +110,7 @@ void G4PenelopeOscillatorManager::Clear() { for (size_t k=0;ksize();k++) //clean individual oscillators { - if ((*table)[k]) + if ((*table)[k]) delete ((*table)[k]); } delete table; @@ -125,7 +126,7 @@ void G4PenelopeOscillatorManager::Clear() { for (size_t k=0;ksize();k++) //clean individual oscillators { - if ((*table)[k]) + if ((*table)[k]) delete ((*table)[k]); } delete table; @@ -161,24 +162,24 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) for (size_t k=0;ksize();k++) { G4cout << "Oscillator # " << k << " Z = " << (*theTable)[k]->GetParentZ() << - " Shell Flag = " << (*theTable)[k]->GetShellFlag() << + " Shell Flag = " << (*theTable)[k]->GetShellFlag() << " Parent shell ID = " << (*theTable)[k]->GetParentShellID() << G4endl; G4cout << "Ionisation energy = " << (*theTable)[k]->GetIonisationEnergy()/eV << " eV" << G4endl; G4cout << "Occupation number = " << (*theTable)[k]->GetOscillatorStrength() << G4endl; G4cout << "Resonance energy = " << (*theTable)[k]->GetResonanceEnergy()/eV << " eV" << G4endl; - G4cout << "Cufoff resonance energy = " << + G4cout << "Cufoff resonance energy = " << (*theTable)[k]->GetCutoffRecoilResonantEnergy()/eV << " eV" << G4endl; G4cout << "*********************************************************************" << G4endl; } for (size_t k=0;ksize();k++) - { - G4cout << k << " " << (*theTable)[k]->GetOscillatorStrength() << " " << - (*theTable)[k]->GetIonisationEnergy()/eV << " " << (*theTable)[k]->GetResonanceEnergy()/eV << " " << - (*theTable)[k]->GetParentZ() << " " << (*theTable)[k]->GetShellFlag() << " " << + { + G4cout << k << " " << (*theTable)[k]->GetOscillatorStrength() << " " << + (*theTable)[k]->GetIonisationEnergy()/eV << " " << (*theTable)[k]->GetResonanceEnergy()/eV << " " << + (*theTable)[k]->GetParentZ() << " " << (*theTable)[k]->GetShellFlag() << " " << (*theTable)[k]->GetParentShellID() << G4endl; } G4cout << "*********************************************************************" << G4endl; - + //Compton table theTable = GetOscillatorTableCompton(material); @@ -197,7 +198,7 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) for (size_t k=0;ksize();k++) { G4cout << "Oscillator # " << k << " Z = " << (*theTable)[k]->GetParentZ() << - " Shell Flag = " << (*theTable)[k]->GetShellFlag() << + " Shell Flag = " << (*theTable)[k]->GetShellFlag() << " Parent shell ID = " << (*theTable)[k]->GetParentShellID() << G4endl; G4cout << "Compton index = " << (*theTable)[k]->GetHartreeFactor() << G4endl; G4cout << "Ionisation energy = " << (*theTable)[k]->GetIonisationEnergy()/eV << " eV" << G4endl; @@ -205,14 +206,14 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) G4cout << "*********************************************************************" << G4endl; } for (size_t k=0;ksize();k++) - { - G4cout << k << " " << (*theTable)[k]->GetOscillatorStrength() << " " << - (*theTable)[k]->GetIonisationEnergy()/eV << " " << (*theTable)[k]->GetHartreeFactor() << " " << - (*theTable)[k]->GetParentZ() << " " << (*theTable)[k]->GetShellFlag() << " " << + { + G4cout << k << " " << (*theTable)[k]->GetOscillatorStrength() << " " << + (*theTable)[k]->GetIonisationEnergy()/eV << " " << (*theTable)[k]->GetHartreeFactor() << " " << + (*theTable)[k]->GetParentZ() << " " << (*theTable)[k]->GetShellFlag() << " " << (*theTable)[k]->GetParentShellID() << G4endl; } G4cout << "*********************************************************************" << G4endl; - + return; } @@ -220,30 +221,30 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) void G4PenelopeOscillatorManager::CheckForTablesCreated() { - //Tables should be created at the same time, since they are both filled + //Tables should be created at the same time, since they are both filled //simultaneously - if (!oscillatorStoreIonisation) + if (!oscillatorStoreIonisation) { oscillatorStoreIonisation = new std::map; if (!fReadElementData) ReadElementData(); - if (!oscillatorStoreIonisation) + if (!oscillatorStoreIonisation) //It should be ok now G4Exception("G4PenelopeOscillatorManager::GetOscillatorTableIonisation()", "em2034",FatalException, - "Problem in allocating the Oscillator Store for Ionisation"); + "Problem in allocating the Oscillator Store for Ionisation"); } - if (!oscillatorStoreCompton) + if (!oscillatorStoreCompton) { oscillatorStoreCompton = new std::map; if (!fReadElementData) ReadElementData(); - if (!oscillatorStoreCompton) + if (!oscillatorStoreCompton) //It should be ok now G4Exception("G4PenelopeOscillatorManager::GetOscillatorTableIonisation()", "em2034",FatalException, - "Problem in allocating the Oscillator Store for Compton"); + "Problem in allocating the Oscillator Store for Compton"); } if (!atomicNumber) @@ -271,7 +272,7 @@ G4double G4PenelopeOscillatorManager::GetTotalZ(const G4Material* mat) // (2) Check if the material has been already included if (atomicNumber->count(mat)) return atomicNumber->find(mat)->second; - + // (3) If we are here, it means that we have to create the table for the material BuildOscillatorTable(mat); @@ -281,7 +282,7 @@ G4double G4PenelopeOscillatorManager::GetTotalZ(const G4Material* mat) else { G4cout << "G4PenelopeOscillatorManager::GetTotalZ() " << G4endl; - G4cout << "Impossible to retrieve the total Z for " << mat->GetName() << G4endl; + G4cout << "Impossible to retrieve the total Z for " << mat->GetName() << G4endl; return 0; } } @@ -296,7 +297,7 @@ G4double G4PenelopeOscillatorManager::GetTotalA(const G4Material* mat) // (2) Check if the material has been already included if (atomicMass->count(mat)) return atomicMass->find(mat)->second; - + // (3) If we are here, it means that we have to create the table for the material BuildOscillatorTable(mat); @@ -306,7 +307,7 @@ G4double G4PenelopeOscillatorManager::GetTotalA(const G4Material* mat) else { G4cout << "G4PenelopeOscillatorManager::GetTotalA() " << G4endl; - G4cout << "Impossible to retrieve the total A for " << mat->GetName() << G4endl; + G4cout << "Impossible to retrieve the total A for " << mat->GetName() << G4endl; return 0; } } @@ -334,7 +335,7 @@ G4PenelopeOscillatorTable* G4PenelopeOscillatorManager::GetOscillatorTableIonisa else { G4cout << "G4PenelopeOscillatorManager::GetOscillatorTableIonisation() " << G4endl; - G4cout << "Impossible to create ionisation oscillator table for " << mat->GetName() << G4endl; + G4cout << "Impossible to create ionisation oscillator table for " << mat->GetName() << G4endl; return NULL; } } @@ -349,12 +350,12 @@ G4PenelopeOscillator* G4PenelopeOscillatorManager::GetOscillatorIonisation(const return (*theTable)[index]; else { - G4cout << "WARNING: Ionisation table for material " << material->GetName() << " has " << + G4cout << "WARNING: Ionisation table for material " << material->GetName() << " has " << theTable->size() << " oscillators" << G4endl; G4cout << "Oscillator #" << index << " cannot be retrieved" << G4endl; G4cout << "Returning null pointer" << G4endl; return NULL; - } + } } @@ -381,7 +382,7 @@ G4PenelopeOscillatorTable* G4PenelopeOscillatorManager::GetOscillatorTableCompto else { G4cout << "G4PenelopeOscillatorManager::GetOscillatorTableCompton() " << G4endl; - G4cout << "Impossible to create Compton oscillator table for " << mat->GetName() << G4endl; + G4cout << "Impossible to create Compton oscillator table for " << mat->GetName() << G4endl; return NULL; } } @@ -396,12 +397,12 @@ G4PenelopeOscillator* G4PenelopeOscillatorManager::GetOscillatorCompton(const G4 return (*theTable)[index]; else { - G4cout << "WARNING: Compton table for material " << material->GetName() << " has " << + G4cout << "WARNING: Compton table for material " << material->GetName() << " has " << theTable->size() << " oscillators" << G4endl; G4cout << "Oscillator #" << index << " cannot be retrieved" << G4endl; G4cout << "Returning null pointer" << G4endl; return NULL; - } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -432,28 +433,28 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4int nElements = material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); - - + + //At the moment, there's no way in Geant4 to know if a material //is defined with atom numbers or fraction of weigth const G4double* fractionVector = material->GetFractionVector(); - //Take always the composition by fraction of mass. For the composition by + //Take always the composition by fraction of mass. For the composition by //atoms: it is calculated by Geant4 but with some rounding to integers G4double totalZ = 0; G4double totalMolecularWeight = 0; G4double meanExcitationEnergy = 0; std::vector *StechiometricFactors = new std::vector; - + for (G4int i=0;iGetZ(); G4double fraction = fractionVector[i]; G4double atomicWeigth = (*elementVector)[i]->GetAtomicMassAmu(); StechiometricFactors->push_back(fraction/atomicWeigth); - } + } //Find max G4double MaxStechiometricFactor = 0.; for (G4int i=0;iGetTotNbOfAtomsPerVolume()/theatomsPerMolecule; //molecules per unit volume @@ -485,9 +486,9 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia { for (size_t i=0;isize();i++) { - G4cout << "Element " << (*elementVector)[i]->GetSymbol() << " (Z = " << - (*elementVector)[i]->GetZ() << ") --> " << - (*StechiometricFactors)[i] << " atoms/molecule " << G4endl; + G4cout << "Element " << (*elementVector)[i]->GetSymbol() << " (Z = " << + (*elementVector)[i]->GetZ() << ") --> " << + (*StechiometricFactors)[i] << " atoms/molecule " << G4endl; } } @@ -498,17 +499,17 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia totalZ += iZ * (*StechiometricFactors)[i]; totalMolecularWeight += (*elementVector)[i]->GetAtomicMassAmu() * (*StechiometricFactors)[i]; meanExcitationEnergy += iZ*std::log(meanAtomExcitationEnergy[iZ-1])*(*StechiometricFactors)[i]; - /* - G4cout << iZ << " " << (*StechiometricFactors)[i] << " " << totalZ << " " << - totalMolecularWeight/(g/mole) << " " << meanExcitationEnergy << " " << - meanAtomExcitationEnergy[iZ-1]/eV << + /* + G4cout << iZ << " " << (*StechiometricFactors)[i] << " " << totalZ << " " << + totalMolecularWeight/(g/mole) << " " << meanExcitationEnergy << " " << + meanAtomExcitationEnergy[iZ-1]/eV << G4endl; */ std::pair theKey = std::make_pair(material,iZ); if (!atomTablePerMolecule->count(theKey)) atomTablePerMolecule->insert(std::make_pair(theKey,(*StechiometricFactors)[i])); } - meanExcitationEnergy = std::exp(meanExcitationEnergy/totalZ); + meanExcitationEnergy = G4Exp(meanExcitationEnergy/totalZ); atomicNumber->insert(std::make_pair(material,totalZ)); atomicMass->insert(std::make_pair(material,totalMolecularWeight)); @@ -518,15 +519,15 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (verbosityLevel > 1) { - G4cout << "Calculated mean excitation energy for " << material->GetName() << + G4cout << "Calculated mean excitation energy for " << material->GetName() << " = " << meanExcitationEnergy/eV << " eV" << G4endl; } - + std::vector *helper = new std::vector; - //First Oscillator: conduction band. Tentativaly assumed to consist of valence electrons (each + //First Oscillator: conduction band. Tentativaly assumed to consist of valence electrons (each //atom contributes a number of electrons equal to its lowest chemical valence) - G4PenelopeOscillator newOsc; + G4PenelopeOscillator newOsc; newOsc.SetOscillatorStrength(0.); newOsc.SetIonisationEnergy(0*eV); newOsc.SetHartreeFactor(0); @@ -555,47 +556,47 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4double occup = elementData[2][i]; if (shellID > 0) { - + if (std::fabs(occup) > 0) { - G4PenelopeOscillator newOscLocal; + G4PenelopeOscillator newOscLocal; newOscLocal.SetOscillatorStrength(std::fabs(occup)*(*StechiometricFactors)[k]); newOscLocal.SetIonisationEnergy(elementData[3][i]); newOscLocal.SetHartreeFactor(elementData[4][i]/fine_structure_const); newOscLocal.SetParentZ(elementData[0][i]); //keep track of the origianl shell level newOscLocal.SetParentShellID((G4int)elementData[1][i]); - //register only K, L and M shells. Outer shells all grouped with + //register only K, L and M shells. Outer shells all grouped with //shellIndex = 30 if (elementData[0][i] > 6 && elementData[1][i] < 10) newOscLocal.SetShellFlag(((G4int)elementData[1][i])); else newOscLocal.SetShellFlag(30); helper->push_back(newOscLocal); - if (occup < 0) + if (occup < 0) { G4double ff = (*helper)[0].GetOscillatorStrength(); ff += std::fabs(occup)*(*StechiometricFactors)[k]; (*helper)[0].SetOscillatorStrength(ff); - } + } } } } if (elementData[0][i] > Z) - finished = true; + finished = true; } } delete StechiometricFactors; - + //NOW: sort oscillators according to increasing ionisation energy - //Notice: it works because helper is a vector of _object_, not a + //Notice: it works because helper is a vector of _object_, not a //vector to _pointers_ std::sort(helper->begin(),helper->end()); - + // Plasma energy and conduction band excitation static const G4double RydbergEnergy = 13.60569*eV; - G4double Omega = std::sqrt(4*pi*moleculeDensity*totalZ*Bohr_radius)*Bohr_radius*2.0*RydbergEnergy; + G4double Omega = std::sqrt(4*pi*moleculeDensity*totalZ*Bohr_radius)*Bohr_radius*2.0*RydbergEnergy; G4double conductionStrength = (*helper)[0].GetOscillatorStrength(); G4double plasmaEnergy = Omega*std::sqrt(conductionStrength/totalZ); @@ -606,10 +607,10 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (verbosityLevel > 1) { - G4cout << "Estimated oscillator strenght and energy of plasmon: " << - conductionStrength << " and " << plasmaEnergy/eV << " eV" << G4endl; + G4cout << "Estimated oscillator strenght and energy of plasmon: " << + conductionStrength << " and " << plasmaEnergy/eV << " eV" << G4endl; } - + if (conductionStrength < 0.01 || plasmaEnergy<1.0*eV) //this is an insulator { if (verbosityLevel >1 ) @@ -619,8 +620,8 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia } else //this is a conductor, Outer shells moved to conduction band { - if (verbosityLevel >1 ) - G4cout << material->GetName() << " is a conductor " << G4endl; + if (verbosityLevel >1 ) + G4cout << material->GetName() << " is a conductor " << G4endl; isAConductor = true; //copy the conduction strenght.. The number is going to change. G4double conductionStrengthCopy = conductionStrength; @@ -635,26 +636,26 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia (*helper)[i].SetOscillatorStrength(0.); nullOsc++; } - else //this is passed only once - no goto - + else //this is passed only once - no goto - { quit = true; (*helper)[i].SetOscillatorStrength(oscStre-conductionStrengthCopy); if (std::fabs((*helper)[i].GetOscillatorStrength()) < 1e-12) { - conductionStrength += (*helper)[i].GetOscillatorStrength(); + conductionStrength += (*helper)[i].GetOscillatorStrength(); (*helper)[i].SetOscillatorStrength(0.); nullOsc++; } } } - + //Update conduction band (*helper)[0].SetOscillatorStrength(conductionStrength); (*helper)[0].SetIonisationEnergy(0.); (*helper)[0].SetResonanceEnergy(plasmaEnergy); G4double hartree = 0.75/std::sqrt(3.0*pi*pi*moleculeDensity* Bohr_radius*Bohr_radius*Bohr_radius*conductionStrength); - (*helper)[0].SetHartreeFactor(hartree/fine_structure_const); + (*helper)[0].SetHartreeFactor(hartree/fine_structure_const); } //Check f-sum rule @@ -677,13 +678,13 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia for (size_t i=0;isize();i++) { G4double ff = (*helper)[i].GetOscillatorStrength()*fact; - (*helper)[i].SetOscillatorStrength(ff); + (*helper)[i].SetOscillatorStrength(ff); } } //Remove null items for (G4int k=0;ksize() && !exit;i++) { @@ -696,7 +697,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia } //Sternheimer's adjustment factor - G4double adjustmentFactor = 0; + G4double adjustmentFactor = 0; if (helper->size() > 1) { G4double TST = totalZ*std::log(meanExcitationEnergy/eV); @@ -708,7 +709,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4double sumLocal = 0; for (size_t i=0;isize();i++) { - if (i == 0 && isAConductor) + if (i == 0 && isAConductor) { G4double resEne = (*helper)[i].GetResonanceEnergy(); sumLocal += (*helper)[i].GetOscillatorStrength()*std::log(resEne/eV); @@ -717,22 +718,22 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia { G4double ionEne = (*helper)[i].GetIonisationEnergy(); G4double oscStre = (*helper)[i].GetOscillatorStrength(); - G4double WI2 = (adjustmentFactor*adjustmentFactor*ionEne*ionEne) + + G4double WI2 = (adjustmentFactor*adjustmentFactor*ionEne*ionEne) + 2./3.*(oscStre/totalZ)*Omega*Omega; G4double resEne = std::sqrt(WI2); - (*helper)[i].SetResonanceEnergy(resEne); + (*helper)[i].SetResonanceEnergy(resEne); sumLocal += (*helper)[i].GetOscillatorStrength()*std::log(resEne/eV); - } + } } if (sumLocal < TST) AALow = adjustmentFactor; else AAHigh = adjustmentFactor; - if (verbosityLevel > 3) - G4cout << "Sternheimer's adjustment factor loops: " << AALow << " " << AAHigh << " " << - adjustmentFactor << " " << TST << " " << + if (verbosityLevel > 3) + G4cout << "Sternheimer's adjustment factor loops: " << AALow << " " << AAHigh << " " << + adjustmentFactor << " " << TST << " " << sumLocal << G4endl; - }while((AAHigh-AALow)>(1e-14*adjustmentFactor)); + }while((AAHigh-AALow)>(1e-14*adjustmentFactor)); } else { @@ -747,7 +748,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //Check again for data consistency G4double xcheck = (*helper)[0].GetOscillatorStrength()*std::log((*helper)[0].GetResonanceEnergy()); - G4double TST = (*helper)[0].GetOscillatorStrength(); + G4double TST = (*helper)[0].GetOscillatorStrength(); for (size_t i=1;isize();i++) { xcheck += (*helper)[i].GetOscillatorStrength()*std::log((*helper)[i].GetResonanceEnergy()); @@ -761,19 +762,19 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4Exception("G4PenelopeOscillatorManager::BuildOscillatorTable()", "em2036",FatalException,ed); } - xcheck = std::exp(xcheck/totalZ); + xcheck = G4Exp(xcheck/totalZ); if (std::fabs(xcheck-meanExcitationEnergy) > 1e-8*meanExcitationEnergy) { G4ExceptionDescription ed; ed << "Error in Sterheimer factor calculation " << G4endl; ed << xcheck/eV << " " << meanExcitationEnergy/eV << G4endl; G4Exception("G4PenelopeOscillatorManager::BuildOscillatorTable()", - "em2037",FatalException,ed); + "em2037",FatalException,ed); } - //Selection of the lowest ionisation energy for inner shells. Only the K, L and M shells with - //ionisation energy less than the N1 shell of the heaviest element in the material are considered as - //inner shells. As a results, the inner/outer shell character of an atomic shell depends on the + //Selection of the lowest ionisation energy for inner shells. Only the K, L and M shells with + //ionisation energy less than the N1 shell of the heaviest element in the material are considered as + //inner shells. As a results, the inner/outer shell character of an atomic shell depends on the //composition of the material. G4double Zmax = 0; for (G4int k=0;k 1) G4cout << "Cutoff energy: " << cutEnergy/eV << " eV" << G4endl; - + // //Copy helper in the oscillatorTable for Ionisation // @@ -811,7 +812,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4PenelopeOscillatorResEnergyComparator comparator; std::sort(helper->begin(),helper->end(),comparator); - //COPY THE HELPER (vector of object) to theTable (vector of Pointers). + //COPY THE HELPER (vector of object) to theTable (vector of Pointers). for (size_t i=0;isize();i++) { //copy content --> one may need it later (e.g. to fill an other table, with variations) @@ -820,15 +821,15 @@ 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(); - + //Rgroup are grouped as a single oscillator + G4double Rgroup = 1.05; + size_t Nost = theTable->size(); + size_t firstIndex = (isAConductor) ? 1 : 0; //for conductors, skip conduction oscillator G4bool loopAgain = false; G4int removedLevels = 0; do - { + { loopAgain = false; if (Nost>firstIndex+1) { @@ -839,7 +840,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4int shellFlag = (*theTable)[i]->GetShellFlag(); G4double ionEne = (*theTable)[i]->GetIonisationEnergy(); G4double resEne = (*theTable)[i]->GetResonanceEnergy(); - G4double resEnePlus1 = (*theTable)[i+1]->GetResonanceEnergy(); + G4double resEnePlus1 = (*theTable)[i+1]->GetResonanceEnergy(); G4double oscStre = (*theTable)[i]->GetOscillatorStrength(); G4double oscStrePlus1 = (*theTable)[i+1]->GetOscillatorStrength(); //if (shellFlag < 10 && ionEne>cutEnergy) in Penelope @@ -851,7 +852,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia skipLoop = true; if (!skipLoop) { - G4double newRes = std::exp((oscStre*std::log(resEne)+ + G4double newRes = G4Exp((oscStre*std::log(resEne)+ oscStrePlus1*std::log(resEnePlus1)) /(oscStre+oscStrePlus1)); (*theTable)[i]->SetResonanceEnergy(newRes); @@ -870,23 +871,23 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (shellFlag < 10 || (*theTable)[i+1]->GetShellFlag() < 10) { G4int newFlag = std::min(shellFlag,(*theTable)[i+1]->GetShellFlag()); - (*theTable)[i]->SetShellFlag(newFlag); + (*theTable)[i]->SetShellFlag(newFlag); } else (*theTable)[i]->SetShellFlag(30); //We've lost anyway the track of the original level (*theTable)[i]->SetParentShellID((*theTable)[i]->GetShellFlag()); - + if (isize()-2) { - for (size_t ii=i+1;iisize()-1;ii++) - (*theTable)[ii] = (*theTable)[ii+1]; + for (size_t ii=i+1;iisize()-1;ii++) + (*theTable)[ii] = (*theTable)[ii+1]; } //G4cout << theTable->size() << G4endl; - theTable->erase(theTable->begin()+theTable->size()-1); //delete last element + theTable->erase(theTable->begin()+theTable->size()-1); //delete last element removedLevels++; - } + } } } if (removedLevels) @@ -918,13 +919,13 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia (*theTable)[i]->SetCutoffRecoilResonantEnergy(resEne); } else - (*theTable)[i]->SetCutoffRecoilResonantEnergy(ionEne); + (*theTable)[i]->SetCutoffRecoilResonantEnergy(ionEne); } - + //Last step oscillatorStoreIonisation->insert(std::make_pair(material,theTable)); - + /* SAME FOR COMPTON */ @@ -935,23 +936,23 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4PenelopeOscillatorTable* theTableC = new G4PenelopeOscillatorTable(); //vector of oscillator //order by ionisation energy std::sort(helper->begin(),helper->end()); - //COPY THE HELPER (vector of object) to theTable (vector of Pointers). + //COPY THE HELPER (vector of object) to theTable (vector of Pointers). for (size_t i=0;isize();i++) { //copy content --> one may need it later (e.g. to fill an other table, with variations) G4PenelopeOscillator* theOsc = new G4PenelopeOscillator((*helper)[i]); theTableC->push_back(theOsc); - } + } //Oscillators of outer shells with resonance energies differing by a factor less than - //Rgroup are grouped as a single oscillator - Rgroup = 1.5; - Nost = theTableC->size(); - + //Rgroup are grouped as a single oscillator + Rgroup = 1.5; + Nost = theTableC->size(); + firstIndex = (isAConductor) ? 1 : 0; //for conductors, skip conduction oscillator loopAgain = false; removedLevels = 0; do - { + { loopAgain = false; if (Nost>firstIndex+1) { @@ -961,17 +962,17 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4bool skipLoop = false; //G4int shellFlag = (*theTableC)[i]->GetShellFlag(); G4double ionEne = (*theTableC)[i]->GetIonisationEnergy(); - G4double ionEnePlus1 = (*theTableC)[i+1]->GetIonisationEnergy(); + G4double ionEnePlus1 = (*theTableC)[i+1]->GetIonisationEnergy(); G4double oscStre = (*theTableC)[i]->GetOscillatorStrength(); G4double oscStrePlus1 = (*theTableC)[i+1]->GetOscillatorStrength(); //if (shellFlag < 10 && ionEne>cutEnergy) in Penelope - if (ionEne>cutEnergy) + if (ionEne>cutEnergy) skipLoop = true; if (ionEne<1.0*eV || ionEnePlus1<1.0*eV) skipLoop = true; if (ionEnePlus1 > Rgroup*ionEne) skipLoop = true; - + if (!skipLoop) { G4double newIon = (oscStre*ionEne+ @@ -985,18 +986,18 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia (oscStre+oscStrePlus1); (*theTableC)[i]->SetHartreeFactor(newHartree); if ((*theTableC)[i]->GetParentZ() != (*theTableC)[i+1]->GetParentZ()) - (*theTableC)[i]->SetParentZ(0.); + (*theTableC)[i]->SetParentZ(0.); (*theTableC)[i]->SetShellFlag(30); (*theTableC)[i]->SetParentShellID((*theTableC)[i]->GetShellFlag()); if (isize()-2) { - for (size_t ii=i+1;iisize()-1;ii++) - (*theTableC)[ii] = (*theTableC)[ii+1]; + for (size_t ii=i+1;iisize()-1;ii++) + (*theTableC)[ii] = (*theTableC)[ii+1]; } theTableC->erase(theTableC->begin()+theTableC->size()-1); //delete last element removedLevels++; - } + } } } if (removedLevels) @@ -1019,11 +1020,11 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //Last step oscillatorStoreCompton->insert(std::make_pair(material,theTableC)); - + /* //TESTING PURPOSES if (verbosityLevel > 1) { - G4cout << "The table contains " << helper->size() << " oscillators " << G4endl; + G4cout << "The table contains " << helper->size() << " oscillators " << G4endl; for (size_t k=0;ksize();k++) { G4cout << "Oscillator # " << k << G4endl; @@ -1034,19 +1035,19 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia G4cout << "Occupation number = " << (*helper)[k].GetOscillatorStrength() << G4endl; G4cout << "Resonance energy = " << (*helper)[k].GetResonanceEnergy()/eV << " eV" << G4endl; } - + for (size_t k=0;ksize();k++) { - G4cout << k << " " << (*helper)[k].GetOscillatorStrength() << " " << - (*helper)[k].GetIonisationEnergy()/eV << " " << (*helper)[k].GetResonanceEnergy()/eV << " " << - (*helper)[k].GetParentZ() << " " << (*helper)[k].GetShellFlag() << " " << - (*helper)[k].GetHartreeFactor() << G4endl; + G4cout << k << " " << (*helper)[k].GetOscillatorStrength() << " " << + (*helper)[k].GetIonisationEnergy()/eV << " " << (*helper)[k].GetResonanceEnergy()/eV << " " << + (*helper)[k].GetParentZ() << " " << (*helper)[k].GetShellFlag() << " " << + (*helper)[k].GetHartreeFactor() << G4endl; } - } + } */ - - //CLEAN UP theHelper and its content + + //CLEAN UP theHelper and its content delete helper; if (verbosityLevel > 1) Dump(material); @@ -1082,9 +1083,9 @@ void G4PenelopeOscillatorManager::ReadElementData() "em0003",FatalException,excep); } - G4AtomicTransitionManager* theTransitionManager = + G4AtomicTransitionManager* theTransitionManager = G4AtomicTransitionManager::Instance(); - theTransitionManager->Initialise(); + theTransitionManager->Initialise(); //Read header (22 lines) @@ -1121,18 +1122,18 @@ void G4PenelopeOscillatorManager::ReadElementData() if (shellCounterShell(Z,shellCounter); - bindingEnergy = shell->BindingEnergy(); + bindingEnergy = shell->BindingEnergy(); } - //Valid level found in the G4AtomicTransition database: keep it, otherwise use - //the ionisation energy found in the Penelope database - elementData[3][i] = (bindingEnergy>100*eV) ? bindingEnergy : ionisationEnergy*eV; - //elementData[3][i] = ionisationEnergy*eV; + //Valid level found in the G4AtomicTransition database: keep it, otherwise use + //the ionisation energy found in the Penelope database + elementData[3][i] = (bindingEnergy>100*eV) ? bindingEnergy : ionisationEnergy*eV; + //elementData[3][i] = ionisationEnergy*eV; elementData[4][i] = hartreeProfile; shellCounter++; } } file.close(); - + if (verbosityLevel > 1) { G4cout << "G4PenelopeOscillatorManager::ReadElementData(): Data file read" << G4endl; @@ -1151,7 +1152,7 @@ G4double G4PenelopeOscillatorManager::GetMeanExcitationEnergy(const G4Material* // (2) Check if the material has been already included if (excitationEnergy->count(mat)) return excitationEnergy->find(mat)->second; - + // (3) If we are here, it means that we have to create the table for the material BuildOscillatorTable(mat); @@ -1161,7 +1162,7 @@ G4double G4PenelopeOscillatorManager::GetMeanExcitationEnergy(const G4Material* else { G4cout << "G4PenelopeOscillatorManager::GetMolecularExcitationEnergy() " << G4endl; - G4cout << "Impossible to retrieve the excitation energy for " << mat->GetName() << G4endl; + G4cout << "Impossible to retrieve the excitation energy for " << mat->GetName() << G4endl; return 0; } } @@ -1175,7 +1176,7 @@ G4double G4PenelopeOscillatorManager::GetPlasmaEnergySquared(const G4Material* m // (2) Check if the material has been already included if (plasmaSquared->count(mat)) return plasmaSquared->find(mat)->second; - + // (3) If we are here, it means that we have to create the table for the material BuildOscillatorTable(mat); @@ -1185,7 +1186,7 @@ G4double G4PenelopeOscillatorManager::GetPlasmaEnergySquared(const G4Material* m else { G4cout << "G4PenelopeOscillatorManager::GetPlasmaEnergySquared() " << G4endl; - G4cout << "Impossible to retrieve the plasma energy for " << mat->GetName() << G4endl; + G4cout << "Impossible to retrieve the plasma energy for " << mat->GetName() << G4endl; return 0; } } @@ -1200,7 +1201,7 @@ G4double G4PenelopeOscillatorManager::GetAtomsPerMolecule(const G4Material* mat) // (2) Check if the material has been already included if (atomsPerMolecule->count(mat)) return atomsPerMolecule->find(mat)->second; - + // (3) If we are here, it means that we have to create the table for the material BuildOscillatorTable(mat); @@ -1210,8 +1211,8 @@ G4double G4PenelopeOscillatorManager::GetAtomsPerMolecule(const G4Material* mat) else { G4cout << "G4PenelopeOscillatorManager::GetAtomsPerMolecule() " << G4endl; - G4cout << "Impossible to retrieve the number of atoms per molecule for " - << mat->GetName() << G4endl; + G4cout << "Impossible to retrieve the number of atoms per molecule for " + << mat->GetName() << G4endl; return 0; } } @@ -1227,7 +1228,7 @@ G4double G4PenelopeOscillatorManager::GetNumberOfZAtomsPerMolecule(const G4Mater std::pair theKey = std::make_pair(mat,Z); if (atomTablePerMolecule->count(theKey)) return atomTablePerMolecule->find(theKey)->second; - + // (3) If we are here, it means that we have to create the table for the material BuildOscillatorTable(mat); @@ -1237,8 +1238,8 @@ G4double G4PenelopeOscillatorManager::GetNumberOfZAtomsPerMolecule(const G4Mater else { G4cout << "G4PenelopeOscillatorManager::GetAtomsPerMolecule() " << G4endl; - G4cout << "Impossible to retrieve the number of atoms per molecule for Z = " - << Z << " in material " << mat->GetName() << G4endl; + G4cout << "Impossible to retrieve the number of atoms per molecule for Z = " + << Z << " in material " << mat->GetName() << G4endl; return 0; } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc index 6fc29ecea3..e879f92e32 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc @@ -23,21 +23,21 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopePhotoElectricModel.cc 81067 2014-05-20 09:19:32Z gcosmo $ +// $Id: G4PenelopePhotoElectricModel.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // Author: Luciano Pandola // // History: // -------- // 08 Jan 2010 L Pandola First implementation -// 01 Feb 2011 L Pandola Suppress fake energy-violation warning when Auger +// 01 Feb 2011 L Pandola Suppress fake energy-violation warning when Auger // is active. -// Make sure that fluorescence/Auger is generated +// Make sure that fluorescence/Auger is generated // only if above threshold // 25 May 2011 L Pandola Renamed (make v2008 as default Penelope) // 10 Jun 2011 L Pandola Migrate atomic deexcitation interface // 07 Oct 2011 L Pandola Bug fix (potential violation of energy conservation) -// 27 Sep 2013 L Pandola Migrate to MT paradigm, only master model manages +// 27 Sep 2013 L Pandola Migrate to MT paradigm, only master model manages // tables. // 02 Oct 2013 L Pandola Rewrite sampling algorithm of SelectRandomShell() // to improve CPU performances @@ -59,6 +59,7 @@ #include "G4Electron.hh" #include "G4AutoLock.hh" #include "G4LossTableManager.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -78,8 +79,8 @@ G4PenelopePhotoElectricModel::G4PenelopePhotoElectricModel(const G4ParticleDefin verboseLevel= 0; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods @@ -93,7 +94,7 @@ G4PenelopePhotoElectricModel::G4PenelopePhotoElectricModel(const G4ParticleDefin //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4PenelopePhotoElectricModel::~G4PenelopePhotoElectricModel() -{ +{ if (IsMaster() || fLocalTable) { std::map ::iterator i; @@ -132,35 +133,35 @@ void G4PenelopePhotoElectricModel::Initialise(const G4ParticleDefinition* partic SetParticle(particle); //Only the master model creates/fills/destroys the tables - if (IsMaster() && particle == fParticle) + if (IsMaster() && particle == fParticle) { // logAtomicShellXS is created only once, since it is never cleared if (!logAtomicShellXS) logAtomicShellXS = new std::map; - - G4ProductionCutsTable* theCoupleTable = + + G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - + for (size_t i=0;iGetTableSize();i++) { - const G4Material* material = + const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - + for (size_t j=0;jGetNumberOfElements();j++) { G4int iZ = (G4int) theElementVector->at(j)->GetZ(); //read data files only in the master if (!logAtomicShellXS->count(iZ)) - ReadDataFile(iZ); + ReadDataFile(iZ); } } - - InitialiseElementSelectors(particle,cuts); - - if (verboseLevel > 0) { + + InitialiseElementSelectors(particle,cuts); + + if (verboseLevel > 0) { G4cout << "Penelope Photo-Electric model v2008 is initialized " << G4endl << "Energy range: " << LowEnergyLimit() / MeV << " MeV - " @@ -179,9 +180,9 @@ void G4PenelopePhotoElectricModel::InitialiseLocal(const G4ParticleDefinition* p { if (verboseLevel > 3) G4cout << "Calling G4PenelopePhotoElectricModel::InitialiseLocal()" << G4endl; - + // - //Check that particle matches: one might have multiple master models (e.g. + //Check that particle matches: one might have multiple master models (e.g. //for e+ and e-). // if (part == fParticle) @@ -189,11 +190,11 @@ void G4PenelopePhotoElectricModel::InitialiseLocal(const G4ParticleDefinition* p SetElementSelectors(masterModel->GetElementSelectors()); //Get the const table pointers from the master to the workers - const G4PenelopePhotoElectricModel* theModel = + const G4PenelopePhotoElectricModel* theModel = static_cast (masterModel); - + logAtomicShellXS = theModel->logAtomicShellXS; - + //Same verbosity for all workers, as the master verboseLevel = theModel->verboseLevel; } @@ -218,23 +219,23 @@ G4double G4PenelopePhotoElectricModel::ComputeCrossSectionPerAtom( G4int iZ = (G4int) Z; - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked if (!logAtomicShellXS) { - //create a **thread-local** version of the table. Used only for G4EmCalculator and + //create a **thread-local** version of the table. Used only for G4EmCalculator and //Unit Tests fLocalTable = true; logAtomicShellXS = new std::map; } //now it should be ok - if (!logAtomicShellXS->count(iZ)) + if (!logAtomicShellXS->count(iZ)) { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was //not filled up. This can happen in a UnitTest or via G4EmCalculator if (verboseLevel > 0) - { + { //Issue a G4Exception (warning) only in verbose mode G4ExceptionDescription ed; ed << "Unable to retrieve the shell cross section table for Z=" << iZ << G4endl; @@ -246,7 +247,7 @@ G4double G4PenelopePhotoElectricModel::ComputeCrossSectionPerAtom( G4AutoLock lock(&PenelopePhotoElectricModelMutex); ReadDataFile(iZ); lock.unlock(); - + } G4double cross = 0; @@ -258,13 +259,13 @@ G4double G4PenelopePhotoElectricModel::ComputeCrossSectionPerAtom( { G4Exception("G4PenelopePhotoElectricModel::ComputeCrossSectionPerAtom()", "em2039",FatalException, - "Unable to retrieve the total cross section table"); + "Unable to retrieve the total cross section table"); return 0; } G4double logene = std::log(energy); G4double logXS = totalXSLog->Value(logene); - cross = std::exp(logXS); - + cross = G4Exp(logXS); + if (verboseLevel > 2) G4cout << "Photoelectric cross section at " << energy/MeV << " MeV for Z=" << Z << " = " << cross/barn << " barn" << G4endl; @@ -282,14 +283,14 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectorGetZ(); if (verboseLevel > 2) G4cout << "Selected " << anElement->GetName() << G4endl; - + // Select the ionised shell in the current atom according to shell cross sections //shellIndex = 0 --> K shell // 1-3 --> L shells @@ -335,12 +336,12 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectormaxID, it sets the shellID to the last valid shell. + //has a shellID>maxID, it sets the shellID to the last valid shell. size_t numberOfShells = (size_t) transitionManager->NumberOfShells(Z); if (shellIndex >= numberOfShells) shellIndex = numberOfShells-1; @@ -349,10 +350,10 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectorBindingEnergy(); //G4int shellId = shell->ShellId(); - //Penelope considers only K, L and M shells. Cross sections of outer shells are - //not included in the Penelope database. If SelectRandomShell() returns - //shellIndex = 9, it means that an outer shell was ionized. In this case the - //Penelope recipe is to set bindingEnergy = 0 (the energy is entirely assigned + //Penelope considers only K, L and M shells. Cross sections of outer shells are + //not included in the Penelope database. If SelectRandomShell() returns + //shellIndex = 9, it means that an outer shell was ionized. In this case the + //Penelope recipe is to set bindingEnergy = 0 (the energy is entirely assigned //to the electron) and to disregard fluorescence. if (shellIndex == 9) bindingEnergy = 0.*eV; @@ -363,7 +364,7 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vector photon energy // In such cases do not generate secondaries if (eKineticEnergy > 0.) @@ -378,26 +379,26 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectorpush_back(electron); - } - else + } + else bindingEnergy = photonEnergy; G4double energyInFluorescence = 0; //testing purposes G4double energyInAuger = 0; //testing purposes - + //Now, take care of fluorescence, if required. According to the Penelope - //recipe, I have to skip fluoresence completely if shellIndex == 9 + //recipe, I have to skip fluoresence completely if shellIndex == 9 //(= sampling of a shell outer than K,L,M) if (fAtomDeexcitation && shellIndex<9) - { + { G4int index = couple->GetIndex(); if (fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) - { + { size_t nBefore = fvect->size(); fAtomDeexcitation->GenerateParticles(fvect,shell,Z,index); size_t nAfter = fvect->size(); @@ -411,7 +412,7 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectorGetParticleDefinition() == G4Gamma::Definition()) energyInFluorescence += itsEnergy; else if (((*fvect)[j])->GetParticleDefinition() == G4Electron::Definition()) - energyInAuger += itsEnergy; + energyInAuger += itsEnergy; } } } @@ -419,7 +420,7 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectorGetName() << G4endl; G4cout << "Incoming photon energy: " << photonEnergy/keV << " keV" << G4endl; G4cout << "-----------------------------------------------------------" << G4endl; @@ -445,24 +446,24 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vector 0) { - G4double energyDiff = + G4double energyDiff = std::fabs(eKineticEnergy+energyInFluorescence+localEnergyDeposit+energyInAuger-photonEnergy); if (energyDiff > 0.05*keV) { - G4cout << "Warning from G4PenelopePhotoElectric: problem with energy conservation: " << - (eKineticEnergy+energyInFluorescence+localEnergyDeposit+energyInAuger)/keV - << " keV (final) vs. " << + G4cout << "Warning from G4PenelopePhotoElectric: problem with energy conservation: " << + (eKineticEnergy+energyInFluorescence+localEnergyDeposit+energyInAuger)/keV + << " keV (final) vs. " << photonEnergy/keV << " keV (initial)" << G4endl; G4cout << "-----------------------------------------------------------" << G4endl; G4cout << "Energy balance from G4PenelopePhotoElectric" << G4endl; - G4cout << "Selected shell: " << WriteTargetShell(shellIndex) << " of element " << + G4cout << "Selected shell: " << WriteTargetShell(shellIndex) << " of element " << anElement->GetName() << G4endl; G4cout << "Incoming photon energy: " << photonEnergy/keV << " keV" << G4endl; G4cout << "-----------------------------------------------------------" << G4endl; @@ -473,8 +474,8 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vector1*GeV) return costheta; - + //1) initialize energy-dependent variables // Variable naming according to Eq. (2.24) of Penelope Manual // (pag. 44) G4double gamma = 1.0 + energy/electron_mass_c2; G4double gamma2 = gamma*gamma; G4double beta = std::sqrt((gamma2-1.0)/gamma2); - + // ac corresponds to "A" of Eq. (2.31) // G4double ac = (1.0/beta) - 1.0; G4double a1 = 0.5*beta*gamma*(gamma-1.0)*(gamma-2.0); G4double a2 = ac + 2.0; G4double gtmax = 2.0*(a1 + 1.0/ac); - + G4double tsam = 0; G4double gtr = 0; @@ -514,7 +515,7 @@ G4double G4PenelopePhotoElectricModel::SampleElectronDirection(G4double energy) gtr = (2.0 - tsam) * (a1 + 1.0/(ac+tsam)); }while(G4UniformRand()*gtmax > gtr); costheta = 1.0-tsam; - + return costheta; } @@ -523,17 +524,17 @@ G4double G4PenelopePhotoElectricModel::SampleElectronDirection(G4double energy) void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) { - if (!IsMaster()) + if (!IsMaster()) //Should not be here! G4Exception("G4PenelopePhotoElectricModel::ReadDataFile()", - "em0100",FatalException,"Worker thread in this method"); + "em0100",FatalException,"Worker thread in this method"); if (verboseLevel > 2) { G4cout << "G4PenelopePhotoElectricModel::ReadDataFile()" << G4endl; G4cout << "Going to read PhotoElectric data files for Z=" << Z << G4endl; } - + char* path = getenv("G4LEDATA"); if (!path) { @@ -542,7 +543,7 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) "em0006",FatalException,excep); return; } - + /* Read the cross section file */ @@ -589,7 +590,7 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) } G4PhysicsTable* thePhysicsTable = new G4PhysicsTable(); - //the table has to contain nShell+1 G4PhysicsFreeVectors, + //the table has to contain nShell+1 G4PhysicsFreeVectors, //(theTable)[0] --> total cross section //(theTable)[ishell] --> cross section for shell (ishell-1) @@ -611,7 +612,7 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) { file >> aValue; aValue *= barn; - G4PhysicsFreeVector* theVec = (G4PhysicsFreeVector*) ((*thePhysicsTable)[i]); + G4PhysicsFreeVector* theVec = (G4PhysicsFreeVector*) ((*thePhysicsTable)[i]); if (aValue < 1e-40*cm2) //protection against log(0) aValue = 1e-40*cm2; theVec->PutValue(k,logene,std::log(aValue)); @@ -620,12 +621,12 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) if (verboseLevel > 2) { - G4cout << "G4PenelopePhotoElectricModel: read " << k << " points for element Z = " + G4cout << "G4PenelopePhotoElectricModel: read " << k << " points for element Z = " << Z << G4endl; } logAtomicShellXS->insert(std::make_pair(Z,thePhysicsTable)); - + file.close(); return; } @@ -637,7 +638,7 @@ size_t G4PenelopePhotoElectricModel::GetNumberOfShellXS(G4int Z) if (!IsMaster()) //Should not be here! G4Exception("G4PenelopePhotoElectricModel::GetNumberOfShellXS()", - "em0100",FatalException,"Worker thread in this method"); + "em0100",FatalException,"Worker thread in this method"); //read data files if (!logAtomicShellXS->count(Z)) @@ -668,11 +669,11 @@ G4double G4PenelopePhotoElectricModel::GetShellCrossSection(G4int Z,size_t shell G4cout << "so shellID should be from 0 to " << entries-1 << G4endl; return 0; } - + G4PhysicsTable* theTable = logAtomicShellXS->find(Z)->second; //[0] is the total XS, shellID is in the element [shellID+1] G4PhysicsFreeVector* totalXSLog = (G4PhysicsFreeVector*) (*theTable)[shellID+1]; - + if (!totalXSLog) { G4Exception("G4PenelopePhotoElectricModel::GetShellCrossSection()", @@ -682,7 +683,7 @@ G4double G4PenelopePhotoElectricModel::GetShellCrossSection(G4int Z,size_t shell } G4double logene = std::log(energy); G4double logXS = totalXSLog->Value(logene); - G4double cross = std::exp(logXS); + G4double cross = G4Exp(logXS); if (cross < 2e-40*cm2) cross = 0; return cross; } @@ -710,7 +711,7 @@ G4String G4PenelopePhotoElectricModel::WriteTargetShell(size_t shellID) theShell = "M4"; else if (shellID == 8) theShell = "M5"; - + return theShell; } @@ -719,7 +720,7 @@ G4String G4PenelopePhotoElectricModel::WriteTargetShell(size_t shellID) void G4PenelopePhotoElectricModel::SetParticle(const G4ParticleDefinition* p) { if(!fParticle) { - fParticle = p; + fParticle = p; } } @@ -739,32 +740,32 @@ size_t G4PenelopePhotoElectricModel::SelectRandomShell(G4int Z,G4double energy) } // size_t shellIndex = 0; - + G4PhysicsTable* theTable = logAtomicShellXS->find(Z)->second; G4double sum = 0; G4PhysicsFreeVector* totalXSLog = (G4PhysicsFreeVector*) (*theTable)[0]; G4double logXS = totalXSLog->Value(logEnergy); - G4double totalXS = std::exp(logXS); - - //Notice: totalXS is the total cross section and it does *not* correspond to + G4double totalXS = G4Exp(logXS); + + //Notice: totalXS is the total cross section and it does *not* correspond to //the sum of partialXS's, since these include only K, L and M shells. // - // Therefore, here one have to consider the possibility of ionisation of + // Therefore, here one have to consider the possibility of ionisation of // an outer shell. Conventionally, it is indicated with id=10 in Penelope // - G4double random = G4UniformRand()*totalXS; + G4double random = G4UniformRand()*totalXS; for (size_t k=1;kentries();k++) { //Add one shell G4PhysicsFreeVector* partialXSLog = (G4PhysicsFreeVector*) (*theTable)[k]; G4double logXSLocal = partialXSLog->Value(logEnergy); - G4double partialXS = std::exp(logXSLocal); + G4double partialXS = G4Exp(logXSLocal); sum += partialXS; - if (random <= sum) - return k-1; + if (random <= sum) + return k-1; } //none of the shells K, L, M: return outer shell return 9; diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc index ac87097930..b818963354 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeRayleighModel.cc 83584 2014-09-02 08:45:37Z gcosmo $ +// $Id: G4PenelopeRayleighModel.cc 97098 2016-05-25 08:04:17Z gcosmo $ // // Author: Luciano Pandola // @@ -47,7 +47,7 @@ #include "G4Element.hh" #include "G4PhysicsFreeVector.hh" #include "G4AutoLock.hh" - +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -68,17 +68,17 @@ G4PenelopeRayleighModel::G4PenelopeRayleighModel(const G4ParticleDefinition* par // verboseLevel= 0; // Verbosity scale: - // 0 = nothing - // 1 = warning for energy non-conservation + // 0 = nothing + // 1 = warning for energy non-conservation // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms - // 4 = entering in methods + // 4 = entering in methods //build the energy grid. It is the same for all materials G4double logenergy = std::log(fIntrinsicLowEnergyLimit/2.); G4double logmaxenergy = std::log(1.5*fIntrinsicHighEnergyLimit); //finer grid below 160 keV - G4double logtransitionenergy = std::log(160*keV); + G4double logtransitionenergy = std::log(160*keV); G4double logfactor1 = std::log(10.)/250.; G4double logfactor2 = logfactor1*10; logEnergyGridPMax.push_back(logenergy); @@ -87,7 +87,7 @@ G4PenelopeRayleighModel::G4PenelopeRayleighModel(const G4ParticleDefinition* par logenergy += logfactor1; else logenergy += logfactor2; - logEnergyGridPMax.push_back(logenergy); + logEnergyGridPMax.push_back(logenergy); }while (logenergy < logmaxenergy); } @@ -102,18 +102,18 @@ G4PenelopeRayleighModel::~G4PenelopeRayleighModel() { for (i=logAtomicCrossSection->begin();i != logAtomicCrossSection->end();i++) if (i->second) delete i->second; - + delete logAtomicCrossSection; logAtomicCrossSection = 0; - } + } if (atomicFormFactor) - { + { for (i=atomicFormFactor->begin();i != atomicFormFactor->end();i++) - if (i->second) delete i->second; + if (i->second) delete i->second; delete atomicFormFactor; atomicFormFactor = 0; } - + ClearTables(); } } @@ -122,26 +122,26 @@ G4PenelopeRayleighModel::~G4PenelopeRayleighModel() void G4PenelopeRayleighModel::ClearTables() { /* - if (!IsMaster()) + if (!IsMaster()) //Should not be here! G4Exception("G4PenelopeRayleighModel::ClearTables()", - "em0100",FatalException,"Worker thread in this method"); + "em0100",FatalException,"Worker thread in this method"); */ - std::map ::iterator i; + std::map ::iterator i; if (logFormFactorTable) - { + { for (i=logFormFactorTable->begin(); i != logFormFactorTable->end(); i++) - if (i->second) delete i->second; + if (i->second) delete i->second; delete logFormFactorTable; logFormFactorTable = 0; //zero explicitely } if (pMaxTable) - { + { for (i=pMaxTable->begin(); i != pMaxTable->end(); i++) - if (i->second) delete i->second; + if (i->second) delete i->second; delete pMaxTable; pMaxTable = 0; //zero explicitely } @@ -153,7 +153,7 @@ void G4PenelopeRayleighModel::ClearTables() if (ii->second) delete ii->second; delete samplingTable; samplingTable = 0; //zero explicitely - } + } return; } @@ -169,14 +169,14 @@ void G4PenelopeRayleighModel::Initialise(const G4ParticleDefinition* part, SetParticle(part); //Only the master model creates/fills/destroys the tables - if (IsMaster() && part == fParticle) + if (IsMaster() && part == fParticle) { //clear tables depending on materials, not the atomic ones ClearTables(); if (verboseLevel > 3) G4cout << "Calling G4PenelopeRayleighModel::Initialise() [master]" << G4endl; - + //create new tables // // logAtomicCrossSection and atomicFormFactor are created only once, @@ -185,7 +185,7 @@ void G4PenelopeRayleighModel::Initialise(const G4ParticleDefinition* part, logAtomicCrossSection = new std::map; if (!atomicFormFactor) atomicFormFactor = new std::map; - + if (!logFormFactorTable) logFormFactorTable = new std::map; if (!pMaxTable) @@ -194,21 +194,21 @@ void G4PenelopeRayleighModel::Initialise(const G4ParticleDefinition* part, samplingTable = new std::map; - G4ProductionCutsTable* theCoupleTable = + G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - + for (size_t i=0;iGetTableSize();i++) { - const G4Material* material = + const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - + for (size_t j=0;jGetNumberOfElements();j++) { G4int iZ = (G4int) theElementVector->at(j)->GetZ(); //read data files only in the master if (!logAtomicCrossSection->count(iZ)) - ReadDataFile(iZ); + ReadDataFile(iZ); } //1) If the table has not been built for the material, do it! @@ -221,10 +221,10 @@ void G4PenelopeRayleighModel::Initialise(const G4ParticleDefinition* part, //3) retrieve or build the pMax data if (!pMaxTable->count(material)) - GetPMaxTable(material); + GetPMaxTable(material); } - + if (verboseLevel > 1) { G4cout << "Penelope Rayleigh model v2008 is initialized " << G4endl << "Energy range: " @@ -246,27 +246,27 @@ void G4PenelopeRayleighModel::InitialiseLocal(const G4ParticleDefinition* part, { if (verboseLevel > 3) G4cout << "Calling G4PenelopeRayleighModel::InitialiseLocal()" << G4endl; - + // - //Check that particle matches: one might have multiple master models (e.g. + //Check that particle matches: one might have multiple master models (e.g. //for e+ and e-). // if (part == fParticle) { //Get the const table pointers from the master to the workers - const G4PenelopeRayleighModel* theModel = + const G4PenelopeRayleighModel* theModel = static_cast (masterModel); - + //Copy pointers to the data tables logAtomicCrossSection = theModel->logAtomicCrossSection; atomicFormFactor = theModel->atomicFormFactor; logFormFactorTable = theModel->logFormFactorTable; pMaxTable = theModel->pMaxTable; samplingTable = theModel->samplingTable; - + //copy the G4DataVector with the grid logQSquareGrid = theModel->logQSquareGrid; - + //Same verbosity for all workers, as the master verboseLevel = theModel->verboseLevel; } @@ -284,20 +284,20 @@ G4double G4PenelopeRayleighModel::ComputeCrossSectionPerAtom(const G4ParticleDef G4double, G4double) { - // Cross section of Rayleigh scattering in Penelope v2008 is calculated by the EPDL97 - // tabulation, Cuellen et al. (1997), with non-relativistic form factors from Hubbel + // Cross section of Rayleigh scattering in Penelope v2008 is calculated by the EPDL97 + // tabulation, Cuellen et al. (1997), with non-relativistic form factors from Hubbel // et al. J. Phys. Chem. Ref. Data 4 (1975) 471; Erratum ibid. 6 (1977) 615. if (verboseLevel > 3) G4cout << "Calling CrossSectionPerAtom() of G4PenelopeRayleighModel" << G4endl; - + G4int iZ = (G4int) Z; - - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked if (!logAtomicCrossSection) { - //create a **thread-local** version of the table. Used only for G4EmCalculator and + //create a **thread-local** version of the table. Used only for G4EmCalculator and //Unit Tests fLocalTable = true; logAtomicCrossSection = new std::map; @@ -305,7 +305,7 @@ G4double G4PenelopeRayleighModel::ComputeCrossSectionPerAtom(const G4ParticleDef //now it should be ok if (!logAtomicCrossSection->count(iZ)) { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was //not filled up. This can happen in a UnitTest or via G4EmCalculator if (verboseLevel > 0) { @@ -319,7 +319,7 @@ G4double G4PenelopeRayleighModel::ComputeCrossSectionPerAtom(const G4ParticleDef //protect file reading via autolock G4AutoLock lock(&PenelopeRayleighModelMutex); ReadDataFile(iZ); - lock.unlock(); + lock.unlock(); } G4double cross = 0; @@ -335,12 +335,15 @@ G4double G4PenelopeRayleighModel::ComputeCrossSectionPerAtom(const G4ParticleDef } G4double logene = std::log(energy); G4double logXS = atom->Value(logene); - cross = std::exp(logXS); + cross = G4Exp(logXS); if (verboseLevel > 2) - G4cout << "Rayleigh cross section at " << energy/keV << " keV for Z=" << Z << - " = " << cross/barn << " barn" << G4endl; - return cross; + { + G4cout << "Rayleigh cross section at " << energy/keV << " keV for Z=" << Z << + " = " << cross/barn << " barn" << G4endl; + } + + return cross; } @@ -351,7 +354,7 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) /* 1) get composition and equivalent molecular density */ - + G4int nElements = material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* fractionVector = material->GetFractionVector(); @@ -373,7 +376,7 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) if (MaxStechiometricFactor<1e-16) { G4ExceptionDescription ed; - ed << "Inconsistent data of atomic composition for " << + ed << "Inconsistent data of atomic composition for " << material->GetName() << G4endl; G4Exception("G4PenelopeRayleighModel::BuildFormFactorTable()", "em2042",FatalException,ed); @@ -381,12 +384,12 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) //Normalize for (G4int i=0;iGetZ(); G4PhysicsFreeVector* theAtomVec = atomicFormFactor->find(iZ)->second; - G4double f = (*theAtomVec)[k]; //the q-grid is always the same + G4double f = (*theAtomVec)[k]; //the q-grid is always the same ff2 += f*f*(*StechiometricFactors)[i]; } if (ff2) @@ -409,7 +412,7 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) logFormFactorTable->insert(std::make_pair(material,theFFVec)); delete StechiometricFactors; - + return; } @@ -422,24 +425,24 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* G4double, G4double) { - // Sampling of the Rayleigh final state (namely, scattering angle of the photon) - // from the Penelope2008 model. The scattering angle is sampled from the atomic - // cross section dOmega/d(cosTheta) from Born ("Atomic Phyisics", 1969), disregarding - // anomalous scattering effects. The Form Factor F(Q) function which appears in the - // analytical cross section is retrieved via the method GetFSquared(); atomic data - // are tabulated for F(Q). Form factor for compounds is calculated according to - // the additivity rule. The sampling from the F(Q) is made via a Rational Inverse - // Transform with Aliasing (RITA) algorithm; RITA parameters are calculated once + // Sampling of the Rayleigh final state (namely, scattering angle of the photon) + // from the Penelope2008 model. The scattering angle is sampled from the atomic + // cross section dOmega/d(cosTheta) from Born ("Atomic Phyisics", 1969), disregarding + // anomalous scattering effects. The Form Factor F(Q) function which appears in the + // analytical cross section is retrieved via the method GetFSquared(); atomic data + // are tabulated for F(Q). Form factor for compounds is calculated according to + // the additivity rule. The sampling from the F(Q) is made via a Rational Inverse + // Transform with Aliasing (RITA) algorithm; RITA parameters are calculated once // for each material and managed by G4PenelopeSamplingData objects. - // The sampling algorithm (rejection method) has efficiency 67% at low energy, and - // increases with energy. For E=100 keV the efficiency is 100% and 86% for + // The sampling algorithm (rejection method) has efficiency 67% at low energy, and + // increases with energy. For E=100 keV the efficiency is 100% and 86% for // hydrogen and uranium, respectively. if (verboseLevel > 3) G4cout << "Calling SamplingSecondaries() of G4PenelopeRayleighModel" << G4endl; G4double photonEnergy0 = aDynamicGamma->GetKineticEnergy(); - + if (photonEnergy0 <= fIntrinsicLowEnergyLimit) { fParticleChange->ProposeTrackStatus(fStopAndKill); @@ -449,17 +452,17 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* } G4ParticleMomentum photonDirection0 = aDynamicGamma->GetMomentumDirection(); - + const G4Material* theMat = couple->GetMaterial(); - + //1) Verify if tables are ready - //Either Initialize() was not called, or we are in a slave and InitializeLocal() was + //Either Initialize() was not called, or we are in a slave and InitializeLocal() was //not invoked - if (!pMaxTable || !samplingTable || !logAtomicCrossSection || !atomicFormFactor || + if (!pMaxTable || !samplingTable || !logAtomicCrossSection || !atomicFormFactor || !logFormFactorTable) { - //create a **thread-local** version of the table. Used only for G4EmCalculator and + //create a **thread-local** version of the table. Used only for G4EmCalculator and //Unit Tests fLocalTable = true; if (!logAtomicCrossSection) @@ -473,18 +476,18 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* if (!samplingTable) samplingTable = new std::map; } - + if (!samplingTable->count(theMat)) { - //If we are here, it means that Initialize() was inkoved, but the MaterialTable was - //not filled up. This can happen in a UnitTest + //If we are here, it means that Initialize() was inkoved, but the MaterialTable was + //not filled up. This can happen in a UnitTest if (verboseLevel > 0) { //Issue a G4Exception (warning) only in verbose mode G4ExceptionDescription ed; - ed << "Unable to find the samplingTable data for " << + ed << "Unable to find the samplingTable data for " << theMat->GetName() << G4endl; - ed << "This can happen only in Unit Tests" << G4endl; + ed << "This can happen only in Unit Tests" << G4endl; G4Exception("G4PenelopeRayleighModel::SampleSecondaries()", "em2019",JustWarning,ed); } @@ -493,13 +496,13 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* G4AutoLock lock(&PenelopeRayleighModelMutex); for (size_t j=0;jGetNumberOfElements();j++) { - G4int iZ = (G4int) theElementVector->at(j)->GetZ(); + G4int iZ = (G4int) theElementVector->at(j)->GetZ(); if (!logAtomicCrossSection->count(iZ)) { lock.lock(); ReadDataFile(iZ); - lock.unlock(); - } + lock.unlock(); + } } lock.lock(); //1) If the table has not been built for the material, do it! @@ -509,7 +512,7 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* //2) retrieve or build the sampling table if (!(samplingTable->count(theMat))) InitializeSamplingAlgorithm(theMat); - + //3) retrieve or build the pMax data if (!pMaxTable->count(theMat)) GetPMaxTable(theMat); @@ -517,12 +520,12 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* } //Ok, restart the job - - G4PenelopeSamplingData* theDataTable = samplingTable->find(theMat)->second; + + G4PenelopeSamplingData* theDataTable = samplingTable->find(theMat)->second; G4PhysicsFreeVector* thePMax = pMaxTable->find(theMat)->second; G4double cosTheta = 1.0; - + //OK, ready to go! G4double qmax = 2.0*photonEnergy0/electron_mass_c2; //this is non-dimensional now @@ -547,15 +550,15 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* G4bool loopAgain = false; G4double MaxPValue = thePMax->Value(photonEnergy0); G4double xx=0; - - //Sampling by rejection method. The rejection function is + + //Sampling by rejection method. The rejection function is //G = 0.5*(1+cos^2(theta)) // do{ loopAgain = false; G4double RandomMax = G4UniformRand()*MaxPValue; xx = theDataTable->SampleValue(RandomMax); - //xx is a random value of q^2 in (0,q2max),sampled according to + //xx is a random value of q^2 in (0,q2max),sampled according to //F(Q^2) via the RITA algorithm if (xx > q2max) loopAgain = true; @@ -565,22 +568,22 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* loopAgain = true; }while(loopAgain); } - + G4double sinTheta = std::sqrt(1-cosTheta*cosTheta); - + // Scattered photon angles. ( Z - axis along the parent photon) G4double phi = twopi * G4UniformRand() ; G4double dirX = sinTheta*std::cos(phi); G4double dirY = sinTheta*std::sin(phi); G4double dirZ = cosTheta; - - // Update G4VParticleChange for the scattered photon + + // Update G4VParticleChange for the scattered photon G4ThreeVector photonDirection1(dirX, dirY, dirZ); photonDirection1.rotateUz(photonDirection0); fParticleChange->ProposeMomentumDirection(photonDirection1) ; fParticleChange->SetProposedKineticEnergy(photonEnergy0) ; - + return; } @@ -631,7 +634,7 @@ void G4PenelopeRayleighModel::ReadDataFile(const G4int Z) G4Exception("G4PenelopeRayleighModel::ReadDataFile()", "em0005",FatalException,ed); return; - } + } G4PhysicsFreeVector* theVec = new G4PhysicsFreeVector((size_t)nPoints); G4double ene=0,f1=0,f2=0,xs=0; for (size_t i=0;iPutValue(i,std::log(ene),std::log(xs)); if (file.eof() && i != (nPoints-1)) //file ended too early { - G4ExceptionDescription ed ; + G4ExceptionDescription ed ; ed << "Corrupted data file for Z=" << Z << G4endl; ed << "Found less than " << nPoints << "entries " <1e-10) ? std::log(QSquared) : -23.; //last value of the table G4double maxlogQ2 = logQSquareGrid[logQSquareGrid.size()-1]; - - + + //now it should be all right G4PhysicsFreeVector* theVec = logFormFactorTable->find(mat)->second; @@ -749,7 +752,7 @@ G4double G4PenelopeRayleighModel::GetFSquared(const G4Material* mat, const G4dou if (logQSquared < -20) // Q < 1e-9 { G4double logf2 = (*theVec)[0]; //first value of the table - f2 = std::exp(logf2); + f2 = G4Exp(logf2); } else if (logQSquared > maxlogQ2) f2 =0; @@ -757,12 +760,12 @@ G4double G4PenelopeRayleighModel::GetFSquared(const G4Material* mat, const G4dou { //log(Q^2) vs. log(F^2) G4double logf2 = theVec->Value(logQSquared); - f2 = std::exp(logf2); + f2 = G4Exp(logf2); } if (verboseLevel > 3) { - G4cout << "G4PenelopeRayleighModel::GetFSquared() in " << mat->GetName() << G4endl; + G4cout << "G4PenelopeRayleighModel::GetFSquared() in " << mat->GetName() << G4endl; G4cout << "Q^2 = " << QSquared << " (units of 1/(m_e*c); F^2 = " << f2 << G4endl; } return f2; @@ -779,14 +782,14 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) //G4cout << "Init N= " << logQSquareGrid.size() << G4endl; for (size_t i=1;i 1e-35) { - q2max = std::exp(logQSquareGrid[i-1]); + q2max = G4Exp(logQSquareGrid[i-1]); } //G4cout << "Q2= " << Q2 << " q2max= " << q2max << G4endl; } - + size_t nReducedPoints = np/4; //check for errors @@ -809,22 +812,22 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) //temporary vectors --> Then everything is stored in G4PenelopeSamplingData G4DataVector* x = new G4DataVector(); - + /******************************************************************************* 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); const G4int nip = 51; //hard-coded in Penelope - G4double dx = (q2max-q2min)/((G4double) NUNIF-1); - x->push_back(q2min); + G4double dx = (q2max-q2min)/((G4double) NUNIF-1); + x->push_back(q2min); for (size_t i=1;ipush_back(app); //increase + x->push_back(app); //increase } x->push_back(q2max); - + if (verboseLevel> 3) G4cout << "Vector x has " << x->size() << " points, while NUNIF = " << NUNIF << G4endl; @@ -836,7 +839,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4DataVector* err = new G4DataVector(); for (size_t i=0;ipush_back(pdfk); - pdfmax = std::max(pdfmax,pdfk); + pdfmax = std::max(pdfmax,pdfk); if (k < (nip-1)) { G4double xih = xik + 0.5*dxi; @@ -858,7 +861,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) pdfmax = std::max(pdfmax,pdfIK); } } - + //Simpson's integration G4double cons = dxi*0.5*(1./3.); sumi->push_back(0.); @@ -868,16 +871,16 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4double next = previous + cons*((*pdfi)[k-1]+4.0*(*pdfih)[k-1]+(*pdfi)[k]); sumi->push_back(next); } - + G4double lastIntegral = (*sumi)[sumi->size()-1]; area->push_back(lastIntegral); //Normalize cumulative function G4double factor = 1.0/lastIntegral; for (size_t k=0;ksize();k++) (*sumi)[k] *= factor; - + //When the PDF vanishes at one of the interval end points, its value is modified - if ((*pdfi)[0] < 1e-35) + if ((*pdfi)[0] < 1e-35) (*pdfi)[0] = 1e-5*pdfmax; if ((*pdfi)[pdfi->size()-1] < 1e-35) (*pdfi)[pdfi->size()-1] = 1e-5*pdfmax; @@ -891,7 +894,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) { a->push_back(0.); b->push_back(0.); - c->push_back(1.); + c->push_back(1.); } else { @@ -900,7 +903,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) c->push_back(C_temp); } - //OK, now get ERR(I), the integral of the absolute difference between the rational interpolation + //OK, now get ERR(I), the integral of the absolute difference between the rational interpolation //and the true pdf, extended over the interval (X(I),X(I+1)) G4int icase = 1; //loop code G4bool reLoop = false; @@ -920,9 +923,9 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) (*err)[i] += std::fabs(pap-(*pdfi)[k]); } (*err)[i] *= dxi; - + //If err(I) is too large, the pdf is approximated by a uniform distribution - if ((*err)[i] > 0.1*(*area)[i] && icase == 1) + if ((*err)[i] > 0.1*(*area)[i] && icase == 1) { (*b)[i] = 0; (*a)[i] = 0; @@ -945,7 +948,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) err->push_back(0.); area->push_back(0.); - if (x->size() != NUNIF || a->size() != NUNIF || + if (x->size() != NUNIF || a->size() != NUNIF || err->size() != NUNIF || area->size() != NUNIF) { G4ExceptionDescription ed; @@ -953,7 +956,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4Exception("G4PenelopeRayleighModel::InitializeSamplingAlgorithm()", "em2049",FatalException,ed); } - + /******************************************************************************* New grid points are added by halving the sub-intervals with the largest absolute error This is done up to np=150 points in the grid @@ -962,7 +965,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) { G4double maxError = 0.0; size_t iErrMax = 0; - for (size_t i=0;isize()-2;i++) + for (size_t i=0;isize()-2;i++) { //maxError is the lagest of the interval errors err[i] if ((*err)[i] > maxError) @@ -971,10 +974,10 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) iErrMax = i; } } - + //OK, now I have to insert one new point in the position iErrMax G4double newx = 0.5*((*x)[iErrMax]+(*x)[iErrMax+1]); - + x->insert(x->begin()+iErrMax+1,newx); //Add place-holders in the other vectors area->insert(area->begin()+iErrMax+1,0.); @@ -982,7 +985,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) b->insert(b->begin()+iErrMax+1,0.); c->insert(c->begin()+iErrMax+1,0.); err->insert(err->begin()+iErrMax+1,0.); - + //Now calculate the other parameters for (size_t i=iErrMax;i<=iErrMax+1;i++) { @@ -990,7 +993,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4DataVector* pdfi = new G4DataVector(); G4DataVector* pdfih = new G4DataVector(); G4DataVector* sumi = new G4DataVector(); - + G4double dxLocal = (*x)[i+1]-(*x)[i]; G4double dxi = ((*x)[i+1]-(*x)[i])/(G4double (nip-1)); G4double pdfmax = 0; @@ -999,7 +1002,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4double xik = (*x)[i]+k*dxi; G4double pdfk = std::max(GetFSquared(mat,xik),0.); pdfi->push_back(pdfk); - pdfmax = std::max(pdfmax,pdfk); + pdfmax = std::max(pdfmax,pdfk); if (k < (nip-1)) { G4double xih = xik + 0.5*dxi; @@ -1008,7 +1011,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) pdfmax = std::max(pdfmax,pdfIK); } } - + //Simpson's integration G4double cons = dxi*0.5*(1./3.); sumi->push_back(0.); @@ -1020,18 +1023,18 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) } G4double lastIntegral = (*sumi)[sumi->size()-1]; (*area)[i] = lastIntegral; - + //Normalize cumulative function G4double factor = 1.0/lastIntegral; for (size_t k=0;ksize();k++) (*sumi)[k] *= factor; - + //When the PDF vanishes at one of the interval end points, its value is modified - if ((*pdfi)[0] < 1e-35) + if ((*pdfi)[0] < 1e-35) (*pdfi)[0] = 1e-5*pdfmax; if ((*pdfi)[pdfi->size()-1] < 1e-35) (*pdfi)[pdfi->size()-1] = 1e-5*pdfmax; - + G4double pli = (*pdfi)[0]*factor; G4double pui = (*pdfi)[pdfi->size()-1]*factor; G4double B_temp = 1.0-1.0/(pli*pui*dxLocal*dxLocal); @@ -1049,7 +1052,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) (*b)[i] = B_temp; (*c)[i] = C_temp; } - //OK, now get ERR(I), the integral of the absolute difference between the rational interpolation + //OK, now get ERR(I), the integral of the absolute difference between the rational interpolation //and the true pdf, extended over the interval (X(I),X(I+1)) G4int icase = 1; //loop code G4bool reLoop = false; @@ -1059,7 +1062,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) (*err)[i] = 0.; //zero variable for (G4int k=0;k 0.1*(*area)[i] && icase == 1) + if ((*err)[i] > 0.1*(*area)[i] && icase == 1) { (*b)[i] = 0; (*a)[i] = 0; @@ -1085,7 +1088,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) } }while(x->size() < np); - if (x->size() != np || a->size() != np || + if (x->size() != np || a->size() != np || err->size() != np || area->size() != np) { G4Exception("G4PenelopeRayleighModel::InitializeSamplingAlgorithm()", @@ -1117,7 +1120,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) PAC->push_back(previous+(*area)[i]); } (*PAC)[PAC->size()-1] = 1.; - + /******************************************************************************* Pre-calculated limits for the initial binary search for subsequent sampling ********************************************************************************/ @@ -1137,7 +1140,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) (*ITTL)[0]=0; for (size_t i=1;i<(np-1);i++) { - G4double ptst = i*bin; + G4double ptst = i*bin; G4bool found = false; for (size_t j=(*ITTL)[i-1];j 2) { - G4cout << "*************************************************************************" << + G4cout << "*************************************************************************" << G4endl; G4cout << "Sampling table for Penelope Rayleigh scattering in " << mat->GetName() << G4endl; theTable->DumpTable(); - } + } samplingTable->insert(std::make_pair(mat,theTable)); - + //Clean up temporary vectors delete x; delete a; @@ -1193,7 +1196,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) //DONE! return; - + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -1242,13 +1245,13 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) for (size_t ie=0;ieGetX(0); G4double lastQ2 = theTable->GetX(tablePoints-1); G4double thePMax = 0; - + if (Qm2 > firstQ2) { if (Qm2 < lastQ2) @@ -1277,7 +1280,7 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) G4double qi = Q1 + k*DQ; G4double tau = (qi-Q1)/ (theTable->GetX(upperBound+1)-Q1); - G4double con1 = 2.0*theB*tau; + G4double con1 = 2.0*theB*tau; G4double ci = 1.0+theA+theB; G4double con2 = ci-theA*tau; G4double etap = 0; @@ -1295,7 +1298,7 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) G4double CONS = DQ*(1./12.); G4double HCONS = 0.5*CONS; sum->push_back(0.); - G4double secondPoint = (*sum)[0] + + G4double secondPoint = (*sum)[0] + (5.0*(*fun)[0]+8.0*(*fun)[1]-(*fun)[2])*CONS; sum->push_back(secondPoint); for (size_t hh=2;hhpush_back(last); + sum->push_back(last); thePMax = thePAC + (*sum)[sum->size()-1]; //last point delete fun; delete sum; @@ -1315,7 +1318,7 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) else { thePMax = 1.0; - } + } } else { @@ -1325,7 +1328,7 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) //Write number in the table theVec->PutValue(ie,energy,thePMax); } - + pMaxTable->insert(std::make_pair(mat,theVec)); return; @@ -1342,14 +1345,14 @@ void G4PenelopeRayleighModel::DumpFormFactorTable(const G4Material* mat) G4cout << "*****************************************************************" << G4endl; if (!logFormFactorTable->count(mat)) BuildFormFactorTable(mat); - + G4PhysicsFreeVector* theVec = logFormFactorTable->find(mat)->second; for (size_t i=0;iGetVectorLength();i++) { G4double logQ2 = theVec->GetLowEdgeEnergy(i); - G4double Q = std::exp(0.5*logQ2); + G4double Q = G4Exp(0.5*logQ2); G4double logF2 = (*theVec)[i]; - G4double F = std::exp(0.5*logF2); + G4double F = G4Exp(0.5*logF2); G4cout << Q << " " << F << G4endl; } //DONE @@ -1361,6 +1364,6 @@ void G4PenelopeRayleighModel::DumpFormFactorTable(const G4Material* mat) void G4PenelopeRayleighModel::SetParticle(const G4ParticleDefinition* p) { if(!fParticle) { - fParticle = p; + fParticle = p; } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc b/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc index ce42594949..4aafb634b2 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc @@ -32,24 +32,24 @@ // File name: G4PhotoElectricAngularGeneratorPolarized // // Author: A. C. Farinha, L. Peralta, P. Rodrigues and A. Trindade -// +// // Creation date: // -// Modifications: -// 10 January 2006 +// Modifications: +// 10 January 2006 // 06 May 2011, Replace FILE with std::ifstream // -// Class Description: +// Class Description: // -// Concrete class for PhotoElectric Electron Angular Polarized Distribution Generation +// Concrete class for PhotoElectric Electron Angular Polarized Distribution Generation // -// Class Description: +// Class Description: // PhotoElectric Electron Angular Generator based on the general Gavrila photoelectron angular distribution. // Includes polarization effects for K and L1 atomic shells, according to Gavrila (1959, 1961). -// For higher shells the L1 cross-section is used. +// For higher shells the L1 cross-section is used. // // The Gavrila photoelectron angular distribution is a complex function which can not be sampled using -// the inverse-transform method (James 1980). Instead a more general approach based on the one already +// the inverse-transform method (James 1980). Instead a more general approach based on the one already // used to sample bremsstrahlung 2BN cross section (G4Generator2BN, Peralta, 2005) was used. // // M. Gavrila, "Relativistic K-Shell Photoeffect", Phys. Rev. 113, 514-526 (1959) @@ -60,12 +60,13 @@ // // ------------------------------------------------------------------- // -// +// #include "G4PhotoElectricAngularGeneratorPolarized.hh" #include "G4PhysicalConstants.hh" #include "G4RotationMatrix.hh" #include "Randomize.hh" +#include "G4Exp.hh" G4PhotoElectricAngularGeneratorPolarized::G4PhotoElectricAngularGeneratorPolarized() :G4VEmAngularDistribution("AngularGenSauterGavrilaPolarized") @@ -113,22 +114,22 @@ G4PhotoElectricAngularGeneratorPolarized::G4PhotoElectricAngularGeneratorPolariz G4float aRead=0,cRead=0, beta=0; for(G4int i=0 ; i> beta >> aRead >> cRead; - aMajorantSurfaceParameterTable[i][level] = aRead; + infile >> beta >> aRead >> cRead; + aMajorantSurfaceParameterTable[i][level] = aRead; cMajorantSurfaceParameterTable[i][level] = cRead; } infile.close(); } } -G4PhotoElectricAngularGeneratorPolarized::~G4PhotoElectricAngularGeneratorPolarized() +G4PhotoElectricAngularGeneratorPolarized::~G4PhotoElectricAngularGeneratorPolarized() {} -G4ThreeVector& +G4ThreeVector& G4PhotoElectricAngularGeneratorPolarized::SampleDirection( const G4DynamicParticle* dp, - G4double eKinEnergy, - G4int shellId, + G4double eKinEnergy, + G4int shellId, const G4Material*) { // (shellId == 0) - K-shell - Polarized model for K-shell @@ -142,21 +143,21 @@ G4PhotoElectricAngularGeneratorPolarized::SampleDirection( const G4ThreeVector& polarization = dp->GetPolarization(); G4double theta, phi = 0; - // Majorant surface parameters + // Majorant surface parameters // function of the outgoing electron kinetic energy - G4double aBeta = 0; - G4double cBeta = 0; + G4double aBeta = 0; + G4double cBeta = 0; - // For the outgoing kinetic energy + // For the outgoing kinetic energy // find the current majorant surface parameters PhotoElectronGetMajorantSurfaceAandCParameters(shellId, beta, &aBeta, &cBeta); - // Generate pho and theta according to the shell level + // Generate pho and theta according to the shell level // and beta parameter of the electron PhotoElectronGeneratePhiAndTheta(shellId, beta, aBeta, cBeta, &phi, &theta); // Determine the rotation matrix - const G4RotationMatrix rotation = + const G4RotationMatrix rotation = PhotoElectronRotationMatrix(direction, polarization); // Compute final direction of the outgoing electron @@ -165,9 +166,9 @@ G4PhotoElectricAngularGeneratorPolarized::SampleDirection( return fLocalDirection; } -void +void G4PhotoElectricAngularGeneratorPolarized::PhotoElectronGeneratePhiAndTheta( - G4int shellLevel, G4double beta, G4double aBeta, G4double cBeta, + G4int shellLevel, G4double beta, G4double aBeta, G4double cBeta, G4double *pphi, G4double *ptheta) const { G4double rand1, rand2, rand3 = 0; @@ -185,29 +186,29 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronGeneratePhiAndTheta( rand1 = G4UniformRand(); rand2 = G4UniformRand(); rand3 = G4UniformRand(); - + phi=2*pi*rand1; if(shellLevel == 0){ // Polarized Gavrila Cross-Section for K-shell (1959) - theta=std::sqrt(((std::exp(rand2*std::log(1+cBeta*pi*pi)))-1)/cBeta); - crossSectionMajorantFunctionValue = + theta=std::sqrt(((G4Exp(rand2*std::log(1+cBeta*pi*pi)))-1)/cBeta); + crossSectionMajorantFunctionValue = CrossSectionMajorantFunction(theta, cBeta); crossSectionValue = DSigmaKshellGavrila1959(beta, theta, phi); } else { // Polarized Gavrila Cross-Section for other shells (L1-shell) (1961) - theta = std::sqrt(((std::exp(rand2*std::log(1+cBeta*pi*pi)))-1)/cBeta); - crossSectionMajorantFunctionValue = + theta = std::sqrt(((G4Exp(rand2*std::log(1+cBeta*pi*pi)))-1)/cBeta); + crossSectionMajorantFunctionValue = CrossSectionMajorantFunction(theta, cBeta); crossSectionValue = DSigmaL1shellGavrila(beta, theta, phi); } maxBeta=rand3*aBeta*crossSectionMajorantFunctionValue; - //G4cout << " crossSectionValue= " << crossSectionValue + //G4cout << " crossSectionValue= " << crossSectionValue // << " max= " << maxBeta << G4endl; if(crossSectionValue < 0.0) { crossSectionValue = maxBeta; } @@ -217,17 +218,17 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronGeneratePhiAndTheta( *ptheta = theta; } -G4double +G4double G4PhotoElectricAngularGeneratorPolarized::CrossSectionMajorantFunction( G4double theta, G4double cBeta) const { // Compute Majorant Function - G4double crossSectionMajorantFunctionValue = 0; + G4double crossSectionMajorantFunctionValue = 0; crossSectionMajorantFunctionValue = theta/(1+cBeta*theta*theta); return crossSectionMajorantFunctionValue; } -G4double +G4double G4PhotoElectricAngularGeneratorPolarized::DSigmaKshellGavrila1959( G4double beta, G4double theta, G4double phi) const { @@ -245,7 +246,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaKshellGavrila1959( G4double firstTerm = 0; G4double secondTerm = 0; - firstTerm = sinTheta2*cosPhi2/std::pow(oneBetaCosTheta,4)-(1 - sqrtOneBeta2)/(2*oneBeta2) * + firstTerm = sinTheta2*cosPhi2/std::pow(oneBetaCosTheta,4)-(1 - sqrtOneBeta2)/(2*oneBeta2) * (sinTheta2 * cosPhi2)/std::pow(oneBetaCosTheta,3) + (1-sqrtOneBeta2)* (1-sqrtOneBeta2)/(4*oneBeta2_to_3_2) * sinTheta2/std::pow(oneBetaCosTheta,3); @@ -253,7 +254,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaKshellGavrila1959( (4*beta2/sqrtOneBeta2 * sinTheta2*cosPhi2/oneBetaCosTheta + 4*beta/oneBeta2 * cosTheta * cosPhi2 - 4*(1-sqrtOneBeta2)/oneBeta2 *(1+cosPhi2) - beta2 * (1-sqrtOneBeta2)/oneBeta2 * sinTheta2/oneBetaCosTheta + 4*beta2*(1-sqrtOneBeta2)/oneBeta2_to_3_2 - 4*beta*(1-sqrtOneBeta2)*(1-sqrtOneBeta2)/oneBeta2_to_3_2 * cosTheta) - + (1-sqrtOneBeta2)/(4*beta2*oneBetaCosTheta*oneBetaCosTheta) * (beta/oneBeta2 - 2/oneBeta2 * cosTheta * cosPhi2 + + + (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) ); @@ -263,7 +264,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaKshellGavrila1959( // -G4double +G4double G4PhotoElectricAngularGeneratorPolarized::DSigmaL1shellGavrila( G4double beta, G4double theta, G4double phi) const { @@ -277,7 +278,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaL1shellGavrila( G4double sinTheta2 =std::sin(theta)*std::sin(theta); G4double cosPhi2 = std::cos(phi)*std::cos(phi); G4double oneBetaCosTheta = 1-beta*cosTheta; - + G4double dsigma = 0; G4double firstTerm = 0; G4double secondTerm = 0; @@ -290,7 +291,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaL1shellGavrila( (4*beta2/sqrtOneBeta2 * sinTheta2*cosPhi2/oneBetaCosTheta + 4*beta/oneBeta2 * cosTheta * cosPhi2 - 4*(1-sqrtOneBeta2)/oneBeta2 *(1+cosPhi2) - beta2 * (1-sqrtOneBeta2)/oneBeta2 * sinTheta2/oneBetaCosTheta + 4*beta2*(1-sqrtOneBeta2)/oneBeta2_to_3_2 - 4*beta*(1-sqrtOneBeta2)*(1-sqrtOneBeta2)/oneBeta2_to_3_2 * cosTheta) - + (1-sqrtOneBeta2)/(4*beta2*oneBetaCosTheta*oneBetaCosTheta) * (beta/oneBeta2 - 2/oneBeta2 * cosTheta * cosPhi2 + + + (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) ); @@ -298,7 +299,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaL1shellGavrila( return dsigma; } -G4RotationMatrix +G4RotationMatrix G4PhotoElectricAngularGeneratorPolarized::PhotoElectronRotationMatrix( const G4ThreeVector& direction, const G4ThreeVector& polarization) @@ -310,11 +311,11 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronRotationMatrix( if(!(polarization.isOrthogonal(direction,kTolerance)) || mS == 0){ G4ThreeVector d0 = direction.unit(); - G4ThreeVector a1 = PerpendicularVector(d0); - G4ThreeVector a0 = a1.unit(); + G4ThreeVector a1 = PerpendicularVector(d0); + G4ThreeVector a0 = a1.unit(); G4double rand1 = G4UniformRand(); - G4double angle = twopi*rand1; - G4ThreeVector b0 = d0.cross(a0); + G4double angle = twopi*rand1; + G4ThreeVector b0 = d0.cross(a0); G4ThreeVector c; c.setX(std::cos(angle)*(a0.x())+std::sin(angle)*b0.x()); c.setY(std::cos(angle)*(a0.y())+std::sin(angle)*b0.y()); @@ -325,7 +326,7 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronRotationMatrix( { if ( polarization.howOrthogonal(direction) != 0) { - polarization2 = polarization + polarization2 = polarization - polarization.dot(direction)/direction.dot(direction) * direction; } } @@ -334,21 +335,21 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronRotationMatrix( polarization2 = polarization2/mS; G4ThreeVector y = direction2.cross(polarization2); - + G4RotationMatrix R(polarization2,y,direction2); return R; } -void +void G4PhotoElectricAngularGeneratorPolarized::PhotoElectronGetMajorantSurfaceAandCParameters(G4int shellId, G4double beta, G4double *majorantSurfaceParameterA, G4double *majorantSurfaceParameterC) const { - // This member function finds for a given shell and beta value + // This member function finds for a given shell and beta value // of the outgoing electron the correct Majorant Surface parameters G4double aBeta,cBeta; G4double bMin,bStep; G4int indexMax; - G4int level = 0; + G4int level = 0; if(shellId > 0) { level = 1; } bMin = betaArray[0]; @@ -356,22 +357,22 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronGetMajorantSurfaceAandCPa indexMax = (G4int)betaArray[2]; const G4double kBias = 1e-9; - G4int k = (G4int)((beta-bMin+kBias)/bStep); - + G4int k = (G4int)((beta-bMin+kBias)/bStep); + if(k < 0) k = 0; if(k > indexMax) - k = indexMax; - - if(k == 0) + k = indexMax; + + if(k == 0) aBeta = std::max(aMajorantSurfaceParameterTable[k][level],aMajorantSurfaceParameterTable[k+1][level]); else if(k==indexMax) aBeta = std::max(aMajorantSurfaceParameterTable[k-1][level],aMajorantSurfaceParameterTable[k][level]); else{ aBeta = std::max(aMajorantSurfaceParameterTable[k-1][level],aMajorantSurfaceParameterTable[k][level]); aBeta = std::max(aBeta,aMajorantSurfaceParameterTable[k+1][level]); - } - + } + if(k == 0) cBeta = std::max(cMajorantSurfaceParameterTable[k][level],cMajorantSurfaceParameterTable[k+1][level]); else if(k == indexMax) @@ -387,7 +388,7 @@ G4PhotoElectricAngularGeneratorPolarized::PhotoElectronGetMajorantSurfaceAandCPa G4ThreeVector G4PhotoElectricAngularGeneratorPolarized::PhotoElectronComputeFinalDirection(const G4RotationMatrix& rotation, G4double theta, G4double phi) const { - //computes the photoelectron momentum unitary vector + //computes the photoelectron momentum unitary vector G4double sint = std::sin(theta); G4double px = std::cos(phi)*sint; G4double py = std::sin(phi)*sint; @@ -407,9 +408,9 @@ void G4PhotoElectricAngularGeneratorPolarized::PrintGeneratorInformation() const G4cout << "Includes polarization effects for K and L1 atomic shells, according to Gavrilla (1959, 1961)." << G4endl; G4cout << "For higher shells the L1 cross-section is used." << G4endl; G4cout << "(see Physics Reference Manual) \n" << G4endl; -} +} -G4ThreeVector +G4ThreeVector G4PhotoElectricAngularGeneratorPolarized::PerpendicularVector( const G4ThreeVector& a) const { diff --git a/source/processes/electromagnetic/lowenergy/src/G4QAOLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4QAOLowEnergyLoss.cc index 78321c50b6..4b294a720d 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4QAOLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4QAOLowEnergyLoss.cc @@ -25,12 +25,12 @@ // // // ------------------------------------------------------------- -// GEANT 4 class implementation file +// GEANT 4 class implementation file // // History: New Implementation -// +// // ---------- G4QAOLowEnergyLoss physics process ------- -// by Stephane Chauvie, 5 May 2000 +// by Stephane Chauvie, 5 May 2000 // Modified: // // 24/05/2000 MGP Modified to remove compilation warnings on Linux and DEC @@ -50,7 +50,7 @@ // // ************************************************************ // It is the Quantal Harmonic Oscillator Model for energy loss -// of slow antiproton +// of slow antiproton // ************************************************************ // -------------------------------------------------------------- @@ -63,6 +63,7 @@ #include "G4Material.hh" #include "G4ParticleDefinition.hh" #include "G4AntiProton.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -115,10 +116,10 @@ G4bool G4QAOLowEnergyLoss::IsInCharge(const G4DynamicParticle* particle, G4bool hasMaterial = false; if (material->GetNumberOfElements() == 1) hasMaterial = true; - + if ((particle->GetDefinition()) == (G4AntiProton::AntiProtonDefinition()) && hasMaterial) isInCharge = true; - + return isInCharge; } @@ -126,24 +127,24 @@ G4bool G4QAOLowEnergyLoss::IsInCharge(const G4DynamicParticle* particle, G4bool G4QAOLowEnergyLoss::IsInCharge(const G4ParticleDefinition* aParticle, const G4Material* material) const { - + G4bool isInCharge = false; - + G4bool hasMaterial = false; - + if (material->GetNumberOfElements() == 1) hasMaterial = true; - + if (aParticle == (G4AntiProton::AntiProtonDefinition()) && hasMaterial) isInCharge = true; - + return isInCharge; - + } G4double G4QAOLowEnergyLoss::TheValue(const G4DynamicParticle* particle, - const G4Material* material) + const G4Material* material) { G4double zParticle = (G4int)(particle->GetCharge())/eplus; @@ -156,7 +157,7 @@ G4double G4QAOLowEnergyLoss::TheValue(const G4DynamicParticle* particle, G4double G4QAOLowEnergyLoss::TheValue(const G4ParticleDefinition* aParticle, const G4Material* material, - G4double kineticEnergy) + G4double kineticEnergy) { G4double zParticle = (aParticle->GetPDGCharge())/eplus; @@ -169,62 +170,62 @@ G4double G4QAOLowEnergyLoss::TheValue(const G4ParticleDefinition* aParticle, G4double G4QAOLowEnergyLoss::EnergyLoss(const G4Material* material, G4double kineticEnergy, - G4double zParticle) const + G4double zParticle) const { G4int nbOfShell = GetNumberOfShell(material); if(nbOfShell < 1) nbOfShell = 1; - + //G4int iz = (G4int)(material->GetZ()); //if(iz < 1) iz = 1; //else if(iz > 100) iz = 100; //G4int nbOfShell = fNumberOfShells[iz]; - + /* if(material->GetName()=="Graphite"){ - G4cout << " E(MeV)= " << kineticEnergy/MeV << " n= " - << nbOfShell - << " for " << material->GetZ() << G4endl; + G4cout << " E(MeV)= " << kineticEnergy/MeV << " n= " + << nbOfShell + << " for " << material->GetZ() << G4endl; } */ G4double dedx=0; G4double v = c_light * std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 ); - G4double coeff = twopi * proton_mass_c2 * - (material-> GetTotNbOfElectPerVolume()) / + G4double coeff = twopi * proton_mass_c2 * + (material-> GetTotNbOfElectPerVolume()) / electron_mass_c2 ; G4double fBetheVelocity = fine_structure_const * c_light / v; - coeff *= fine_structure_const * fine_structure_const * hbarc_squared / + coeff *= fine_structure_const * fine_structure_const * hbarc_squared / kineticEnergy ; //G4double beta = std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 ); //G4double fBetheVelocity = std::sqrt( 2.0 * 25.0 * keV / proton_mass_c2 )/beta; //G4double coeff= twopi_mc2_rcl2*(material->GetElectronDensity())/(beta*beta); - + G4double l0Term = 0, l1Term = 0, l2Term = 0; - + for (G4int nos = 0 ; nos < nbOfShell ; nos++){ - + G4double l0 = 0, l1 = 0, l2 = 0; - G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * v * v ) / + G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * v * v ) / ( c_squared * GetShellEnergy(material,nos) ); - //G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * beta * beta ) / + //G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * beta * beta ) / // GetShellEnergy(material,nos); G4double shStrength = GetShellStrength(material,nos); l0 = GetL0(NormalizedEnergy); - l0Term += shStrength * l0; - + l0Term += shStrength * l0; + l1 = GetL1(NormalizedEnergy); - l1Term += shStrength * l1; - + l1Term += shStrength * l1; + l2 = GetL2(NormalizedEnergy); - l2Term += shStrength * l2; + l2Term += shStrength * l2; /* if(material->GetName()=="Graphite"){ G4cout << nos << ". " - << " E(MeV)= " << kineticEnergy/MeV + << " E(MeV)= " << kineticEnergy/MeV << " normE= " << NormalizedEnergy << " sh en= " << GetShellEnergy(material,nos) << " str= " << shStrength @@ -234,18 +235,18 @@ G4double G4QAOLowEnergyLoss::EnergyLoss(const G4Material* material, << " l2= " << l2Term << G4endl; } - */ + */ } - + dedx = coeff * zParticle * zParticle * (l0Term - + zParticle * fBetheVelocity * l1Term + + zParticle * fBetheVelocity * l1Term + zParticle * zParticle * fBetheVelocity * fBetheVelocity * l2Term); - // G4cout << " E(MeV)= " << kineticEnergy/MeV + // G4cout << " E(MeV)= " << kineticEnergy/MeV // << " dedx(Mev/mm)= " << dedx*mm/MeV << G4endl; - - return dedx ; - + + return dedx ; + } @@ -264,7 +265,7 @@ G4int G4QAOLowEnergyLoss::GetNumberOfShell(const G4Material* material) const } else nShell = fNumberOfShells[Z]; } - + return nShell; } @@ -273,12 +274,12 @@ G4int G4QAOLowEnergyLoss::GetNumberOfShell(const G4Material* material) const G4double G4QAOLowEnergyLoss::GetShellEnergy(const G4Material* material, G4int nbOfTheShell) const { - // + // G4double shellEnergy = alShellEnergy[0]; if(material->GetZ() == 13) shellEnergy = alShellEnergy[nbOfTheShell]; else if(material->GetZ() == 14)shellEnergy = siShellEnergy[nbOfTheShell]; - else if(material->GetZ() == 29)shellEnergy = cuShellEnergy[nbOfTheShell]; + else if(material->GetZ() == 29)shellEnergy = cuShellEnergy[nbOfTheShell]; else if(material->GetZ() == 73)shellEnergy = taShellEnergy[nbOfTheShell]; else if(material->GetZ() == 79)shellEnergy = auShellEnergy[nbOfTheShell]; else if(material->GetZ() == 78)shellEnergy = ptShellEnergy[nbOfTheShell]; @@ -286,7 +287,7 @@ G4double G4QAOLowEnergyLoss::GetShellEnergy(const G4Material* material, shellEnergy = GetOscillatorEnergy(material, nbOfTheShell); else G4cout << "WARNING - G4QAOLowEnergyLoss::GetShellEnergy - " << "The model is not available for " - << material->GetName() + << material->GetName() << G4endl; return shellEnergy; @@ -295,30 +296,30 @@ G4double G4QAOLowEnergyLoss::GetShellEnergy(const G4Material* material, G4double G4QAOLowEnergyLoss::GetOscillatorEnergy(const G4Material* material, G4int nbOfTheShell) const -{ - +{ + const G4Element* element = material->GetElement(0); - + G4int Z = (G4int)(element->GetZ()); - -G4double squaredPlasmonEnergy = 28.816 * 28.816 * 1e-6 + +G4double squaredPlasmonEnergy = 28.816 * 28.816 * 1e-6 * material->GetDensity()/g/cm3 * (Z/element->GetN()) ; -//G4double squaredPlasmonEnergy = 28.16 * 28.16 * 1e-6 +//G4double squaredPlasmonEnergy = 28.16 * 28.16 * 1e-6 // * (material->GetDensity()) * (cm3/g) // * Z / (element->GetN()) ; - - G4double plasmonTerm = 0.66667 * GetOccupationNumber(Z,nbOfTheShell) - * squaredPlasmonEnergy / (Z*Z) ; - - G4double ionTerm = std::exp(0.5) * (element->GetAtomicShell(nbOfTheShell)) ; + + G4double plasmonTerm = 0.66667 * GetOccupationNumber(Z,nbOfTheShell) + * squaredPlasmonEnergy / (Z*Z) ; + + G4double ionTerm = G4Exp(0.5) * (element->GetAtomicShell(nbOfTheShell)) ; ionTerm = ionTerm*ionTerm ; - + G4double oscShellEnergy = std::sqrt( ionTerm + plasmonTerm ); - + /* if(material->GetName()=="Graphite"){ - G4cout << "\t" << Z + G4cout << "\t" << Z << "\t" << nbOfTheShell << "\t" << squaredPlasmonEnergy << "\t" << plasmonTerm @@ -334,7 +335,7 @@ G4double G4QAOLowEnergyLoss::GetShellStrength(const G4Material* material, G4int nbOfTheShell) const { G4double shellStrength = alShellStrength[0]; - + if(material->GetZ() == 13) shellStrength = alShellStrength[nbOfTheShell]; else if(material->GetZ() == 14)shellStrength =siShellStrength[nbOfTheShell]; else if(material->GetZ() == 29)shellStrength =cuShellStrength[nbOfTheShell]; @@ -346,7 +347,7 @@ G4double G4QAOLowEnergyLoss::GetShellStrength(const G4Material* material, shellStrength = GetOccupationNumber(Z,nbOfTheShell) / Z ;} else G4cout << "WARNING - G4QAOLowEnergyLoss::GetShellEnergy - " << "The model is not available for " - << material->GetName() + << material->GetName() << G4endl; return shellStrength; @@ -362,10 +363,10 @@ G4double G4QAOLowEnergyLoss::GetOccupationNumber(G4int Z, G4int ShellNb) const } -G4double G4QAOLowEnergyLoss::GetL0(G4double normEnergy) const +G4double G4QAOLowEnergyLoss::GetL0(G4double normEnergy) const { G4int n; - + for(n = 0; n < sizeL0; n++) { if( normEnergy < L0[n][0] ) break; } @@ -374,10 +375,10 @@ G4double G4QAOLowEnergyLoss::GetL0(G4double normEnergy) const G4double l0 = L0[n][1]; G4double l0p = L0[n-1][1]; - G4double bethe = l0p + (l0 - l0p) * ( normEnergy - L0[n-1][0]) / + G4double bethe = l0p + (l0 - l0p) * ( normEnergy - L0[n-1][0]) / (L0[n][0] - L0[n-1][0]); return bethe ; - + } G4double G4QAOLowEnergyLoss::GetL1(G4double normEnergy) const @@ -392,11 +393,11 @@ G4double G4QAOLowEnergyLoss::GetL1(G4double normEnergy) const G4double l1 = L1[n][1]; G4double l1p = L1[n-1][1]; - G4double barkas= l1p + (l1 - l1p) * ( normEnergy - L1[n-1][0]) / + G4double barkas= l1p + (l1 - l1p) * ( normEnergy - L1[n-1][0]) / (L1[n][0] - L1[n-1][0]); - + return barkas; - + } @@ -411,9 +412,9 @@ G4double G4QAOLowEnergyLoss::GetL2(G4double normEnergy) const G4double l2 = L2[n][1]; G4double l2p = L2[n-1][1]; - G4double bloch = l2p + (l2 - l2p) * ( normEnergy - L2[n-1][0]) / + G4double bloch = l2p + (l2 - l2p) * ( normEnergy - L2[n-1][0]) / (L2[n][0] - L2[n-1][0]); - + return bloch; } @@ -428,7 +429,7 @@ const G4int G4QAOLowEnergyLoss::materialAvailable[6] = {13,14,29,73,79,78}; "Platinum"}; */ const G4int G4QAOLowEnergyLoss::nbofShellForMaterial[6] = {3,3,4,6,6,6 }; - + const G4double G4QAOLowEnergyLoss::alShellEnergy[3] ={ 2795e-6, 202e-6, 16.9e-6}; const G4double G4QAOLowEnergyLoss::alShellStrength[3]={ 0.1349, 0.6387, 0.2264}; const G4double G4QAOLowEnergyLoss::siShellEnergy[3] ={ 3179e-6, 249e-6, 20.3e-6 }; @@ -553,11 +554,11 @@ const G4double G4QAOLowEnergyLoss::L2[14][2] = {6.00, 0.23903}, {8.00, 0.20893}, {10.00, 0.10879}, - {20.00, -0.88409}, + {20.00, -0.88409}, {40.00, -1.13902} }; -const G4int G4QAOLowEnergyLoss::nbOfElectronPerSubShell[1540] = +const G4int G4QAOLowEnergyLoss::nbOfElectronPerSubShell[1540] = { 0, // consistency with G4AtomicShells 1,//------ H @@ -689,5 +690,3 @@ const G4int G4QAOLowEnergyLoss::fNumberOfShells[101] = 27 , 27 , 27 , 26 , 26 , 27 , 27 , 26 , 26 , 26 // 91 - 100 }; - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4VhElectronicStoppingPower.cc b/source/processes/electromagnetic/lowenergy/src/G4VhElectronicStoppingPower.cc index 6912f67ee1..5821d460c9 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VhElectronicStoppingPower.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VhElectronicStoppingPower.cc @@ -32,25 +32,26 @@ // File name: G4VhElectronicStoppingPower // // Author: V.Ivanchenko (Vladimir.Ivanchenko@cern.ch) -// +// // Creation date: 20 July 2000 // -// Modifications: +// Modifications: // 20/07/2000 V.Ivanchenko First implementation // -// Class Description: +// Class Description: // // Low energy hadrons/ions electronic stopping power parametrisation // -// Class Description: End +// Class Description: End // // ------------------------------------------------------------------- // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "G4VhElectronicStoppingPower.hh" +#include "G4VhElectronicStoppingPower.hh" #include "G4SystemOfUnits.hh" #include "G4UnitsTable.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -60,16 +61,16 @@ G4VhElectronicStoppingPower::G4VhElectronicStoppingPower(): //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VhElectronicStoppingPower::~G4VhElectronicStoppingPower() +G4VhElectronicStoppingPower::~G4VhElectronicStoppingPower() {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4double G4VhElectronicStoppingPower::HeEffChargeSquare( - const G4double z, + const G4double z, const G4double kineticEnergyHe) const { - // The aproximation of He effective charge from: + // The aproximation of He effective charge from: // J.F.Ziegler, J.P. Biersack, U. Littmark // The Stopping and Range of Ions in Matter, // Vol.1, Pergamon Press, 1985 @@ -77,7 +78,7 @@ G4double G4VhElectronicStoppingPower::HeEffChargeSquare( static const G4double c[6] = {0.2865, 0.1266, -0.001429, 0.02402,-0.01135, 0.001475} ; - G4double e = std::log( std::max( 1.0, kineticEnergyHe/(keV*GetHeMassAMU()))) ; + G4double e = std::log( std::max( 1.0, kineticEnergyHe/(keV*GetHeMassAMU()))) ; G4double x = c[0] ; G4double y = 1.0 ; for (G4int i=1; i<6; i++) { @@ -86,7 +87,7 @@ G4double G4VhElectronicStoppingPower::HeEffChargeSquare( } G4double w = 7.6 - e ; - w = 1.0 + (0.007 + 0.00005*z) * std::exp( -w*w ) ; - w = 4.0 * (1.0 - std::exp(-x)) * w * w ; + w = 1.0 + (0.007 + 0.00005*z) * G4Exp( -w*w ) ; + w = 4.0 * (1.0 - G4Exp(-x)) * w * w ; return w; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc index c528733702..ac2ea01704 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eBremsstrahlungSpectrum.cc 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eBremsstrahlungSpectrum.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // ------------------------------------------------------------------- // @@ -50,6 +50,7 @@ #include "G4BremsstrahlungParameters.hh" #include "Randomize.hh" #include "G4SystemOfUnits.hh" +#include "G4Exp.hh" G4eBremsstrahlungSpectrum::G4eBremsstrahlungSpectrum(const G4DataVector& bins, const G4String& name):G4VEnergySpectrum(), @@ -197,7 +198,7 @@ G4double G4eBremsstrahlungSpectrum::SampleEnergy(G4int Z, do { G4double x = amin + G4UniformRand()*(amax - amin); - tgam = std::exp(x); + tgam = G4Exp(x); fun = Function(tgam, p); if(fun > amaj) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc index f1e4d76b01..a001cdae41 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eIonisationSpectrum.cc 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eIonisationSpectrum.cc 95950 2016-03-03 10:42:48Z gcosmo $ // // ------------------------------------------------------------------- // @@ -33,18 +33,18 @@ // File name: G4eIonisationSpectrum // // Author: V.Ivanchenko (Vladimir.Ivanchenko@cern.ch) -// +// // Creation date: 29 September 2001 // -// Modifications: -// 10.10.2001 MGP Revision to improve code quality and +// Modifications: +// 10.10.2001 MGP Revision to improve code quality and // consistency with design -// 02.11.2001 VI Optimize sampling of energy -// 29.11.2001 VI New parametrisation -// 19.04.2002 VI Add protection in case of energy below binding +// 02.11.2001 VI Optimize sampling of energy +// 29.11.2001 VI New parametrisation +// 19.04.2002 VI Add protection in case of energy below binding // 30.05.2002 VI Update to 24-parameters data // 11.07.2002 VI Fix in integration over spectrum -// 23.03.2009 LP Added protection against division by zero (for +// 23.03.2009 LP Added protection against division by zero (for // faulty database files), Bug Report 1042 // // ------------------------------------------------------------------- @@ -57,7 +57,7 @@ #include "Randomize.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" - +#include "G4Exp.hh" G4eIonisationSpectrum::G4eIonisationSpectrum():G4VEnergySpectrum(), lowestE(0.1*eV), @@ -69,20 +69,20 @@ G4eIonisationSpectrum::G4eIonisationSpectrum():G4VEnergySpectrum(), } -G4eIonisationSpectrum::~G4eIonisationSpectrum() +G4eIonisationSpectrum::~G4eIonisationSpectrum() { delete theParam; } -G4double G4eIonisationSpectrum::Probability(G4int Z, - G4double tMin, - G4double tMax, +G4double G4eIonisationSpectrum::Probability(G4int Z, + G4double tMin, + G4double tMax, G4double e, G4int shell, const G4ParticleDefinition* ) const { - // Please comment what Probability does and what are the three + // Please comment what Probability does and what are the three // functions mentioned below // Describe the algorithms used @@ -106,59 +106,59 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, << "; shell= " << shell << "; E(keV)= " << e/keV << "; Eb(keV)= " << bindingEnergy/keV - << "; x1= " << x1 - << "; x2= " << x2 + << "; x1= " << x1 + << "; x2= " << x2 << G4endl; - + } G4DataVector p; // Access parameters - for (G4int i=0; iParameter(Z, shell, i, e); - if(i<4) x /= energy; - p.push_back(x); + if(i<4) x /= energy; + p.push_back(x); } if(p[3] > 0.5) p[3] = 0.5; - + G4double gLocal = energy/electron_mass_c2 + 1.; p.push_back((2.0*gLocal - 1.0)/(gLocal*gLocal)); - - //Add protection against division by zero: actually in Function() + + //Add protection against division by zero: actually in Function() //parameter p[3] appears in the denominator. Bug report 1042 if (p[3] > 0) p[iMax-1] = Function(p[3], p); else { G4cout << "WARNING: G4eIonisationSpectrum::Probability " - << "parameter p[3] <= 0. G4LEDATA dabatase might be corrupted for Z = " - << Z << ". Please check and/or update it " << G4endl; + << "parameter p[3] <= 0. G4LEDATA dabatase might be corrupted for Z = " + << Z << ". Please check and/or update it " << G4endl; } if(e >= 1. && e <= 0. && Z == 4) p.push_back(0.0); - + G4double val = IntSpectrum(x1, x2, p); G4double x0 = (lowestE + bindingEnergy)/energy; G4double nor = IntSpectrum(x0, 0.5, p); - + if(verbose > 1 || (Z==4 && e>= 1.0 && e<= 0.0)) { - G4cout << "tcut= " << tMin - << "; tMax= " << tMax - << "; x0= " << x0 - << "; x1= " << x1 - << "; x2= " << x2 - << "; val= " << val - << "; nor= " << nor - << "; sum= " << p[0] - << "; a= " << p[1] - << "; b= " << p[2] - << "; c= " << p[3] + G4cout << "tcut= " << tMin + << "; tMax= " << tMax + << "; x0= " << x0 + << "; x1= " << x1 + << "; x2= " << x2 + << "; val= " << val + << "; nor= " << nor + << "; sum= " << p[0] + << "; a= " << p[1] + << "; b= " << p[2] + << "; c= " << p[3] << G4endl; - if(shell == 1) G4cout << "============" << G4endl; + if(shell == 1) G4cout << "============" << G4endl; } p.clear(); @@ -166,18 +166,18 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, if(nor > 0.0) val /= nor; else val = 0.0; - return val; + return val; } G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, - G4double tMin, - G4double tMax, + G4double tMin, + G4double tMax, G4double e, G4int shell, const G4ParticleDefinition* ) const { - // Please comment what AverageEnergy does and what are the three + // Please comment what AverageEnergy does and what are the three // functions mentioned below // Describe the algorithms used @@ -201,18 +201,18 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, << "; shell= " << shell << "; E(keV)= " << e/keV << "; bindingE(keV)= " << bindingEnergy/keV - << "; x1= " << x1 - << "; x2= " << x2 + << "; x1= " << x1 + << "; x2= " << x2 << G4endl; } G4DataVector p; // Access parameters - for (G4int i=0; iParameter(Z, shell, i, e); - if(i<4) x /= energy; + if(i<4) x /= energy; p.push_back(x); } @@ -221,35 +221,35 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, G4double gLocal2 = energy/electron_mass_c2 + 1.; p.push_back((2.0*gLocal2 - 1.0)/(gLocal2*gLocal2)); - - //Add protection against division by zero: actually in Function() + + //Add protection against division by zero: actually in Function() //parameter p[3] appears in the denominator. Bug report 1042 if (p[3] > 0) p[iMax-1] = Function(p[3], p); else { G4cout << "WARNING: G4eIonisationSpectrum::AverageEnergy " - << "parameter p[3] <= 0. G4LEDATA dabatase might be corrupted for Z = " - << Z << ". Please check and/or update it " << G4endl; + << "parameter p[3] <= 0. G4LEDATA dabatase might be corrupted for Z = " + << Z << ". Please check and/or update it " << G4endl; } - + G4double val = AverageValue(x1, x2, p); G4double x0 = (lowestE + bindingEnergy)/energy; G4double nor = IntSpectrum(x0, 0.5, p); val *= energy; if(verbose > 1) { - G4cout << "tcut(MeV)= " << tMin/MeV - << "; tMax(MeV)= " << tMax/MeV - << "; x0= " << x0 - << "; x1= " << x1 - << "; x2= " << x2 - << "; val= " << val - << "; nor= " << nor - << "; sum= " << p[0] - << "; a= " << p[1] - << "; b= " << p[2] - << "; c= " << p[3] + G4cout << "tcut(MeV)= " << tMin/MeV + << "; tMax(MeV)= " << tMax/MeV + << "; x0= " << x0 + << "; x1= " << x1 + << "; x2= " << x2 + << "; val= " << val + << "; nor= " << nor + << "; sum= " << p[0] + << "; a= " << p[1] + << "; b= " << p[2] + << "; c= " << p[3] << G4endl; } @@ -258,13 +258,13 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, if(nor > 0.0) val /= nor; else val = 0.0; - return val; + return val; } G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, - G4double tMin, - G4double tMax, + G4double tMin, + G4double tMax, G4double e, G4int shell, const G4ParticleDefinition* ) const @@ -297,10 +297,10 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, G4DataVector p; // Access parameters - for (G4int i=0; iParameter(Z, shell, i, e); - if(i<4) x /= energy; + if(i<4) x /= energy; p.push_back(x); } @@ -309,16 +309,16 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, G4double gLocal3 = energy/electron_mass_c2 + 1.; p.push_back((2.0*gLocal3 - 1.0)/(gLocal3*gLocal3)); - - //Add protection against division by zero: actually in Function() + + //Add protection against division by zero: actually in Function() //parameter p[3] appears in the denominator. Bug report 1042 if (p[3] > 0) p[iMax-1] = Function(p[3], p); else { G4cout << "WARNING: G4eIonisationSpectrum::SampleSpectrum " - << "parameter p[3] <= 0. G4LEDATA dabatase might be corrupted for Z = " - << Z << ". Please check and/or update it " << G4endl; + << "parameter p[3] <= 0. G4LEDATA dabatase might be corrupted for Z = " + << Z << ". Please check and/or update it " << G4endl; } G4double aria1 = 0.0; @@ -335,7 +335,7 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, //======= First aria to sample ===== - if(aria <= aria1) { + if(aria <= aria1) { amaj = p[4]; for (G4int j=5; j amaj) { - G4cout << "WARNING in G4eIonisationSpectrum::SampleEnergy:" - << " Majoranta " << amaj + G4cout << "WARNING in G4eIonisationSpectrum::SampleEnergy:" + << " Majoranta " << amaj << " < " << fun << " in the first aria at x= " << x << G4endl; @@ -394,8 +394,8 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, fun = Function(x, p); if(fun > amaj) { - G4cout << "WARNING in G4eIonisationSpectrum::SampleEnergy:" - << " Majoranta " << amaj + G4cout << "WARNING in G4eIonisationSpectrum::SampleEnergy:" + << " Majoranta " << amaj << " < " << fun << " in the second aria at x= " << x << G4endl; @@ -412,25 +412,25 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, tDelta = x*energy - bindingEnergy; if(verbose > 1) { - G4cout << "tcut(MeV)= " << tMin/MeV - << "; tMax(MeV)= " << tMax/MeV - << "; x1= " << x1 - << "; x2= " << x2 - << "; a1= " << a1 - << "; a2= " << a2 - << "; x= " << x - << "; be= " << bindingEnergy - << "; e= " << e - << "; tDelta= " << tDelta + G4cout << "tcut(MeV)= " << tMin/MeV + << "; tMax(MeV)= " << tMax/MeV + << "; x1= " << x1 + << "; x2= " << x2 + << "; a1= " << a1 + << "; a2= " << a2 + << "; x= " << x + << "; be= " << bindingEnergy + << "; e= " << e + << "; tDelta= " << tDelta << G4endl; } - return tDelta; + return tDelta; } -G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, +G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, G4double xMax, const G4DataVector& p) const { @@ -447,7 +447,7 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, y1 = p[4]; G4double dx = (p[2] - p[1]) / 3.0; - G4double dx1= std::exp(std::log(p[3]/p[2]) / 16.0); + G4double dx1= G4Exp(std::log(p[3]/p[2]) / 16.0); for (size_t i=0; i<19; i++) { @@ -475,25 +475,25 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, if (xMin > x1) { xs1 = xMin; ys1 += (xs1 - x1)*(y2 - y1)/(x2 - x1); - } + } if (xMax < x2) { xs2 = xMax; ys2 += (xs2 - x2)*(y1 - y2)/(x1 - x2); - } + } if (xs2 > xs1) { - q = (ys1*xs2 - ys2*xs1)/(xs1*xs2) + q = (ys1*xs2 - ys2*xs1)/(xs1*xs2) + std::log(xs2/xs1)*(ys2 - ys1)/(xs2 - xs1); sum += q; if(p.size() == 26) G4cout << "i= " << i << " q= " << q << " sum= " << sum << G4endl; } - } + } } x1 = x2; y1 = y2; } } - // Integral over aria with parametrised formula + // Integral over aria with parametrised formula x1 = std::max(xMin, p[3]); if(x1 >= xMax) return sum; @@ -501,20 +501,20 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, xs1 = 1./x1; xs2 = 1./x2; - q = (xs1 - xs2)*(1.0 - p[0]) - - p[iMax]*std::log(x2/x1) + q = (xs1 - xs2)*(1.0 - p[0]) + - p[iMax]*std::log(x2/x1) + (1. - p[iMax])*(x2 - x1) - + 1./(1. - x2) - 1./(1. - x1) + + 1./(1. - x2) - 1./(1. - x1) + p[iMax]*std::log((1. - x2)/(1. - x1)) + 0.25*p[0]*(xs1*xs1 - xs2*xs2); sum += q; if(p.size() == 26) G4cout << "param... q= " << q << " sum= " << sum << G4endl; return sum; -} +} -G4double G4eIonisationSpectrum::AverageValue(G4double xMin, +G4double G4eIonisationSpectrum::AverageValue(G4double xMin, G4double xMax, const G4DataVector& p) const { @@ -530,7 +530,7 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, y1 = p[4]; G4double dx = (p[2] - p[1]) / 3.0; - G4double dx1= std::exp(std::log(p[3]/p[2]) / 16.0); + G4double dx1= G4Exp(std::log(p[3]/p[2]) / 16.0); for (size_t i=0; i<19; i++) { @@ -557,16 +557,16 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, if (xMin > x1) { xs1 = xMin; ys1 += (xs1 - x1)*(y2 - y1)/(x2 - x1); - } + } if (xMax < x2) { xs2 = xMax; ys2 += (xs2 - x2)*(y1 - y2)/(x1 - x2); - } + } if (xs2 > xs1) { - sum += std::log(xs2/xs1)*(ys1*xs2 - ys2*xs1)/(xs2 - xs1) + sum += std::log(xs2/xs1)*(ys1*xs2 - ys2*xs1)/(xs2 - xs1) + ys2 - ys1; } - } + } } x1 = x2; y1 = y2; @@ -574,7 +574,7 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, } } - // Integral over aria with parametrised formula + // Integral over aria with parametrised formula x1 = std::max(xMin, p[3]); if(x1 >= xMax) return sum; @@ -583,17 +583,17 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, xs1 = 1./x1; xs2 = 1./x2; - sum += std::log(x2/x1)*(1.0 - p[0]) + sum += std::log(x2/x1)*(1.0 - p[0]) + 0.5*(1. - p[iMax])*(x2*x2 - x1*x1) - + 1./(1. - x2) - 1./(1. - x1) + + 1./(1. - x2) - 1./(1. - x1) + (1. + p[iMax])*std::log((1. - x2)/(1. - x1)) + 0.5*p[0]*(xs1 - xs2); return sum; -} +} -void G4eIonisationSpectrum::PrintData() const +void G4eIonisationSpectrum::PrintData() const { theParam->PrintData(); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseKxsModel.cc b/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseKxsModel.cc index fef68ee46f..e4c9d302f8 100755 --- a/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseKxsModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseKxsModel.cc @@ -39,13 +39,14 @@ #include "G4Proton.hh" #include "G4Alpha.hh" #include "G4SemiLogInterpolation.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4ecpssrBaseKxsModel::G4ecpssrBaseKxsModel() -{ +{ verboseLevel=0; - + // Storing C coefficients for high velocity formula G4String fileC1("pixe/uf/c1"); @@ -61,7 +62,7 @@ G4ecpssrBaseKxsModel::G4ecpssrBaseKxsModel() char *path = 0; path = getenv("G4LEDATA"); - + if (!path) { G4Exception("G4ecpssrBaseKxsModel::G4ecpssrBaseKxsModel()", "em0006", FatalException,"G4LEDATA environment variable not set" ); return; @@ -71,7 +72,7 @@ G4ecpssrBaseKxsModel::G4ecpssrBaseKxsModel() fileName << path << "/pixe/uf/FK.dat"; std::ifstream FK(fileName.str().c_str()); - if (!FK) + if (!FK) G4Exception("G4ecpssrBaseKxsModel::G4ecpssrBaseKxsModel()", "em0003", FatalException,"error opening FK data file" ); dummyVec.push_back(0.); @@ -80,20 +81,20 @@ G4ecpssrBaseKxsModel::G4ecpssrBaseKxsModel() { double x; double y; - + FK>>x>>y; // Mandatory vector initialization - if (x != dummyVec.back()) - { - dummyVec.push_back(x); + if (x != dummyVec.back()) + { + dummyVec.push_back(x); aVecMap[x].push_back(-1.); } - + FK>>FKData[x][y]; if (y != aVecMap[x].back()) aVecMap[x].push_back(y); - + } tableC1->LoadData(fileC1); @@ -111,7 +112,7 @@ void print (G4double elem) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4ecpssrBaseKxsModel::~G4ecpssrBaseKxsModel() -{ +{ delete tableC1; delete tableC2; @@ -148,7 +149,7 @@ G4double G4ecpssrBaseKxsModel::ExpIntFunction(G4int n,G4double x) G4cout << n << ", " << x << G4endl; } else { - if (n==0) ans=std::exp(-x)/x; + if (n==0) ans=G4Exp(-x)/x; else { if (x==0.0) ans=1.0/nm1; else { @@ -165,7 +166,7 @@ G4double G4ecpssrBaseKxsModel::ExpIntFunction(G4int n,G4double x) del=c*d; h *=del; if (std::fabs(del-1.0) < eps) { - ans=h*std::exp(-x); + ans=h*G4Exp(-x); return ans; } } @@ -191,39 +192,39 @@ return ans; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double massIncident, G4double energyIncident) - + +G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double massIncident, G4double energyIncident) + { - // this K-CrossSection calculation method is done according to W.Brandt and G.Lapicki, Phys.Rev.A23(1981)// - - G4NistManager* massManager = G4NistManager::Instance(); + // this K-CrossSection calculation method is done according to W.Brandt and G.Lapicki, Phys.Rev.A23(1981)// + + G4NistManager* massManager = G4NistManager::Instance(); G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); - G4double zIncident = 0; + G4double zIncident = 0; G4Proton* aProtone = G4Proton::Proton(); G4Alpha* aAlpha = G4Alpha::Alpha(); if (massIncident == aProtone->GetPDGMass() ) { - zIncident = (aProtone->GetPDGCharge())/eplus; + zIncident = (aProtone->GetPDGCharge())/eplus; } else { if (massIncident == aAlpha->GetPDGMass()) { - zIncident = (aAlpha->GetPDGCharge())/eplus; + zIncident = (aAlpha->GetPDGCharge())/eplus; } else - { + { G4cout << "*** WARNING in G4ecpssrBaseKxsModel::CalculateCrossSection : we can treat only Proton or Alpha incident particles " << G4endl; return 0; } } - + if (verboseLevel>0) G4cout << " massIncident=" << massIncident<< G4endl; G4double kBindingEnergy = transitionManager->Shell(zTarget,0)->BindingEnergy(); @@ -231,11 +232,11 @@ G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double mass if (verboseLevel>0) G4cout << " kBindingEnergy=" << kBindingEnergy/eV<< G4endl; G4double massTarget = (massManager->GetAtomicMassAmu(zTarget))*amu_c2; - + if (verboseLevel>0) G4cout << " massTarget=" << massTarget<< G4endl; - - G4double systemMass =((massIncident*massTarget)/(massIncident+massTarget))/electron_mass_c2; //the mass of the system (projectile, target) - + + G4double systemMass =((massIncident*massTarget)/(massIncident+massTarget))/electron_mass_c2; //the mass of the system (projectile, target) + if (verboseLevel>0) G4cout << " systemMass=" << systemMass<< G4endl; const G4double zkshell= 0.3; @@ -245,41 +246,41 @@ G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double mass // *** see Brandt, Phys Rev A23, p 1727 const G4double rydbergMeV= 13.6056923e-6; - + G4double tetaK = kBindingEnergy/((screenedzTarget*screenedzTarget)*rydbergMeV); //tetaK denotes the reduced binding energy of the electron - // *** see Rice, ADANDT 20, p 504, f 2 - + // *** see Rice, ADANDT 20, p 504, f 2 + if (verboseLevel>0) G4cout << " tetaK=" << tetaK<< G4endl; G4double velocity =(2./(tetaK*screenedzTarget))*std::pow(((energyIncident*electron_mass_c2)/(massIncident*rydbergMeV)),0.5); // *** also called xiK // *** see Brandt, Phys Rev A23, p 1727 // *** see Basbas, Phys Rev A17, p 1656, f4 - + if (verboseLevel>0) G4cout << " velocity=" << velocity<< G4endl; - const G4double bohrPow2Barn=(Bohr_radius*Bohr_radius)/barn ; - + const G4double bohrPow2Barn=(Bohr_radius*Bohr_radius)/barn ; + if (verboseLevel>0) G4cout << " bohrPow2Barn=" << bohrPow2Barn<< G4endl; G4double sigma0 = 8.*pi*(zIncident*zIncident)*bohrPow2Barn*std::pow(screenedzTarget,-4.); //sigma0 is the initial cross section of K shell at stable state // *** see Benka, ADANDT 22, p 220, f2, for protons // *** see Basbas, Phys Rev A7, p 1000 - + if (verboseLevel>0) G4cout << " sigma0=" << sigma0<< G4endl; - const G4double kAnalyticalApproximation= 1.5; + const G4double kAnalyticalApproximation= 1.5; G4double x = kAnalyticalApproximation/velocity; // *** see Brandt, Phys Rev A23, p 1727 // *** see Brandt, Phys Rev A20, p 469, f16 in expression of h - + if (verboseLevel>0) G4cout << " x=" << x<< G4endl; - G4double electrIonizationEnergy; + G4double electrIonizationEnergy; // *** see Basbas, Phys Rev A17, p1665, f27 // *** see Brandt, Phys Rev A20, p469 // *** see Liu, Comp Phys Comm 97, p325, f A5 - + if ((0.< x) && (x <= 0.035)) { electrIonizationEnergy= 0.75*pi*(std::log(1./(x*x))-1.); @@ -288,14 +289,14 @@ G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double mass { if ( (0.035 < x) && (x <=3.)) { - electrIonizationEnergy =std::exp(-2.*x)/(0.031+(0.213*std::pow(x,0.5))+(0.005*x)-(0.069*std::pow(x,3./2.))+(0.324*x*x)); + electrIonizationEnergy =G4Exp(-2.*x)/(0.031+(0.213*std::pow(x,0.5))+(0.005*x)-(0.069*std::pow(x,3./2.))+(0.324*x*x)); } else { if ( (3.< x) && (x<=11.)) { - electrIonizationEnergy =2.*std::exp(-2.*x)/std::pow(x,1.6); + electrIonizationEnergy =2.*G4Exp(-2.*x)/std::pow(x,1.6); } else electrIonizationEnergy =0.; @@ -306,63 +307,63 @@ G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double mass G4double hFunction =(electrIonizationEnergy*2.)/(tetaK*std::pow(velocity,3)); //hFunction represents the correction for polarization effet // *** see Brandt, Phys Rev A20, p 469, f16 - + if (verboseLevel>0) G4cout << " hFunction=" << hFunction<< G4endl; - + G4double gFunction = (1.+(9.*velocity)+(31.*velocity*velocity)+(98.*std::pow(velocity,3.))+(12.*std::pow(velocity,4.))+(25.*std::pow(velocity,5.)) +(4.2*std::pow(velocity,6.))+(0.515*std::pow(velocity,7.)))/std::pow(1.+velocity,9.); //gFunction represents the correction for binding effet // *** see Brandt, Phys Rev A20, p 469, f19 - + if (verboseLevel>0) G4cout << " gFunction=" << gFunction<< G4endl; - + //----------------------------------------------------------------------------------------------------------------------------- G4double sigmaPSS = 1.+(((2.*zIncident)/(screenedzTarget*tetaK))*(gFunction-hFunction)); //describes the perturbed stationnairy state of the affected atomic electon // *** also called dzeta // *** also called epsilon // *** see Basbas, Phys Rev A17, p1667, f45 - + if (verboseLevel>0) G4cout << " sigmaPSS=" << sigmaPSS<< G4endl; - + if (verboseLevel>0) G4cout << " sigmaPSS*tetaK=" << sigmaPSS*tetaK<< G4endl; //---------------------------------------------------------------------------------------------------------------------------- - + const G4double cNaturalUnit= 1/fine_structure_const; // it's the speed of light according to Atomic-Unit-System - + if (verboseLevel>0) G4cout << " cNaturalUnit=" << cNaturalUnit<< G4endl; - + G4double ykFormula=0.4*(screenedzTarget/cNaturalUnit)*(screenedzTarget/cNaturalUnit)/(velocity/sigmaPSS); // *** also called yS // *** see Brandt, Phys Rev A20, p467, f6 // *** see Brandt, Phys Rev A23, p1728 - + if (verboseLevel>0) G4cout << " ykFormula=" << ykFormula<< G4endl; - + G4double relativityCorrection = std::pow((1.+(1.1*ykFormula*ykFormula)),0.5)+ykFormula;// the relativistic correction parameter // *** also called mRS // *** see Brandt, Phys Rev A20, p467, f6 - + if (verboseLevel>0) G4cout << " relativityCorrection=" << relativityCorrection<< G4endl; - G4double reducedVelocity = velocity*std::pow(relativityCorrection,0.5); // presents the reduced collision velocity parameter + G4double reducedVelocity = velocity*std::pow(relativityCorrection,0.5); // presents the reduced collision velocity parameter // *** also called xiR // *** see Brandt, Phys Rev A20, p468, f7 // *** see Brandt, Phys Rev A23, p1728 - + if (verboseLevel>0) G4cout << " reducedVelocity=" << reducedVelocity<< G4endl; G4double etaOverTheta2 = (energyIncident*electron_mass_c2)/(massIncident*rydbergMeV*screenedzTarget*screenedzTarget) /(sigmaPSS*tetaK)/(sigmaPSS*tetaK); // *** see Benka, ADANDT 22, p220, f4 for eta // then we use sigmaPSS*tetaK == epsilon*tetaK - + if (verboseLevel>0) G4cout << " etaOverTheta2=" << etaOverTheta2<< G4endl; G4double universalFunction = 0; - + // low velocity formula - // ***************** + // ***************** if ( velocity < 1. ) // OR //if ( reducedVelocity/sigmaPSS < 1.) @@ -371,163 +372,163 @@ G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double mass // ***************** { if (verboseLevel>0) G4cout << " Notice : FK is computed from low velocity formula" << G4endl; - + universalFunction = (std::pow(2.,9.)/45.)*std::pow(reducedVelocity/sigmaPSS,8.)*std::pow((1.+(1.72*(reducedVelocity/sigmaPSS)*(reducedVelocity/sigmaPSS))),-4.);// is the reduced universal cross section // *** see Brandt, Phys Rev A23, p1728 - + if (verboseLevel>0) G4cout << " universalFunction by Brandt 1981 =" << universalFunction<< G4endl; } else - + { - + if ( etaOverTheta2 > 86.6 && (sigmaPSS*tetaK) > 0.4 && (sigmaPSS*tetaK) < 2.9996 ) { // High and medium energies. Method from Rice ADANDT 20, p506, 1977 on tables from Benka 1978 - + if (verboseLevel>0) G4cout << " Notice : FK is computed from high velocity formula" << G4endl; if (verboseLevel>0) G4cout << " sigmaPSS*tetaK=" << sigmaPSS*tetaK << G4endl; - + G4double C1= tableC1->FindValue(sigmaPSS*tetaK); G4double C2= tableC2->FindValue(sigmaPSS*tetaK); G4double C3= tableC3->FindValue(sigmaPSS*tetaK); - + if (verboseLevel>0) G4cout << " C1=" << C1 << G4endl; if (verboseLevel>0) G4cout << " C2=" << C2 << G4endl; if (verboseLevel>0) G4cout << " C3=" << C3 << G4endl; - + G4double etaK = (energyIncident*electron_mass_c2)/(massIncident*rydbergMeV*screenedzTarget*screenedzTarget); // *** see Benka, ADANDT 22, p220, f4 for eta - + if (verboseLevel>0) G4cout << " etaK=" << etaK << G4endl; G4double etaT = (sigmaPSS*tetaK)*(sigmaPSS*tetaK)*(86.6); // at any theta, the largest tabulated etaOverTheta2 is 86.6 // *** see Rice, ADANDT 20, p506 - + if (verboseLevel>0) G4cout << " etaT=" << etaT << G4endl; - + G4double fKT = FunctionFK((sigmaPSS*tetaK),86.6)*(etaT/(sigmaPSS*tetaK)); // *** see Rice, ADANDT 20, p506 - if (FunctionFK((sigmaPSS*tetaK),86.6)<=0.) + if (FunctionFK((sigmaPSS*tetaK),86.6)<=0.) { - G4cout << + G4cout << "*** WARNING in G4ecpssrBaseKxsModel::CalculateCrossSection : unable to interpolate FK function in high velocity region ! ***" << G4endl; return 0; } if (verboseLevel>0) G4cout << " FunctionFK=" << FunctionFK((sigmaPSS*tetaK),86.6) << G4endl; - + if (verboseLevel>0) G4cout << " fKT=" << fKT << G4endl; - + G4double GK = C2/(4*etaK) + C3/(32*etaK*etaK); - + if (verboseLevel>0) G4cout << " GK=" << GK << G4endl; - + G4double GT = C2/(4*etaT) + C3/(32*etaT*etaT); - + if (verboseLevel>0) G4cout << " GT=" << GT << G4endl; - + G4double DT = fKT - C1*std::log(etaT) + GT; - + if (verboseLevel>0) G4cout << " DT=" << DT << G4endl; G4double fKK = C1*std::log(etaK) + DT - GK; - + if (verboseLevel>0) G4cout << " fKK=" << fKK << G4endl; - + G4double universalFunction3= fKK/(etaK/tetaK); // *** see Rice, ADANDT 20, p505, f7 - + if (verboseLevel>0) G4cout << " universalFunction3=" << universalFunction3 << G4endl; universalFunction=universalFunction3; - + } - + else if ( etaOverTheta2 >= 1.e-3 && etaOverTheta2 <= 86.6 && (sigmaPSS*tetaK) >= 0.4 && (sigmaPSS*tetaK) <= 2.9996 ) { // From Benka 1978 - + if (verboseLevel>0) G4cout << " Notice : FK is computed from INTERPOLATED data" << G4endl; - + G4double universalFunction2 = FunctionFK((sigmaPSS*tetaK),etaOverTheta2); - if (universalFunction2<=0) + if (universalFunction2<=0) { - G4cout << + G4cout << "*** WARNING : G4ecpssrBaseKxsModel::CalculateCrossSection is unable to interpolate FK function in medium velocity region ! ***" << G4endl; return 0; } - + if (verboseLevel>0) G4cout << " universalFunction2=" << universalFunction2 << " for theta=" << sigmaPSS*tetaK << " and etaOverTheta2=" << etaOverTheta2 << G4endl; - + universalFunction=universalFunction2; } - + } - + //---------------------------------------------------------------------------------------------------------------------- G4double sigmaPSSR = (sigma0/(sigmaPSS*tetaK))*universalFunction; //sigmaPSSR is the straight-line K-shell ionization cross section // *** see Benka, ADANDT 22, p220, f1 - + if (verboseLevel>0) G4cout << " sigmaPSSR=" << sigmaPSSR<< G4endl; - + //----------------------------------------------------------------------------------------------------------------------- G4double pssDeltaK = (4./(systemMass*sigmaPSS*tetaK))*(sigmaPSS/velocity)*(sigmaPSS/velocity); // *** also called dzetaK*deltaK // *** see Brandt, Phys Rev A23, p1727, f B2 - + if (verboseLevel>0) G4cout << " pssDeltaK=" << pssDeltaK<< G4endl; if (pssDeltaK>1) return 0.; - G4double energyLoss = std::pow(1-pssDeltaK,0.5); //energyLoss incorporates the straight-line energy-loss + G4double energyLoss = std::pow(1-pssDeltaK,0.5); //energyLoss incorporates the straight-line energy-loss // *** also called zK // *** see Brandt, Phys Rev A23, p1727, after f B2 - + if (verboseLevel>0) G4cout << " energyLoss=" << energyLoss<< G4endl; - G4double energyLossFunction = (std::pow(2.,-9)/8.)*((((9.*energyLoss)-1.)*std::pow(1.+energyLoss,9.))+(((9.*energyLoss)+1.)*std::pow(1.-energyLoss,9.)));//energy loss function + G4double energyLossFunction = (std::pow(2.,-9)/8.)*((((9.*energyLoss)-1.)*std::pow(1.+energyLoss,9.))+(((9.*energyLoss)+1.)*std::pow(1.-energyLoss,9.)));//energy loss function // *** also called fs // *** see Brandt, Phys Rev A23, p1718, f7 - + if (verboseLevel>0) G4cout << " energyLossFunction=" << energyLossFunction<< G4endl; //---------------------------------------------------------------------------------------------------------------------------------------------- - G4double coulombDeflection = (4.*pi*zIncident/systemMass)*std::pow(tetaK*sigmaPSS,-2.)*std::pow(velocity/sigmaPSS,-3.)*(zTarget/screenedzTarget); //incorporates Coulomb deflection parameter + G4double coulombDeflection = (4.*pi*zIncident/systemMass)*std::pow(tetaK*sigmaPSS,-2.)*std::pow(velocity/sigmaPSS,-3.)*(zTarget/screenedzTarget); //incorporates Coulomb deflection parameter // *** see Brandt, Phys Rev A23, p1727, f B3 - + if (verboseLevel>0) G4cout << " cParameter-short=" << coulombDeflection<< G4endl; G4double cParameter = 2.*coulombDeflection/(energyLoss*(energyLoss+1.)); // *** see Brandt, Phys Rev A23, p1727, f B4 - + if (verboseLevel>0) G4cout << " cParameter-full=" << cParameter<< G4endl; G4double coulombDeflectionFunction = 9.*ExpIntFunction(10,cParameter); //this function describes Coulomb-deflection effect // *** see Brandt, Phys Rev A23, p1727 - + if (verboseLevel>0) G4cout << " ExpIntFunction(10,cParameter) =" << ExpIntFunction(10,cParameter) << G4endl; - + if (verboseLevel>0) G4cout << " coulombDeflectionFunction =" << coulombDeflectionFunction << G4endl; //-------------------------------------------------------------------------------------------------------------------------------------------------- - + G4double crossSection = 0; - + crossSection = energyLossFunction* coulombDeflectionFunction*sigmaPSSR; //this ECPSSR cross section is estimated at perturbed-stationnairy-state(PSS) //and it's reduced by the energy-loss(E),the Coulomb deflection(C), //and the relativity(R) effects - //-------------------------------------------------------------------------------------------------------------------------------------------------- + //-------------------------------------------------------------------------------------------------------------------------------------------------- if (crossSection >= 0) { return crossSection * barn; @@ -538,7 +539,7 @@ G4double G4ecpssrBaseKxsModel::CalculateCrossSection(G4int zTarget,G4double mass //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4ecpssrBaseKxsModel::FunctionFK(G4double k, G4double theta) +G4double G4ecpssrBaseKxsModel::FunctionFK(G4double k, G4double theta) { G4double sigma = 0.; @@ -548,20 +549,20 @@ G4double G4ecpssrBaseKxsModel::FunctionFK(G4double k, G4double theta) G4double valueE22 = 0; G4double valueE12 = 0; G4double valueE11 = 0; - G4double xs11 = 0; - G4double xs12 = 0; - G4double xs21 = 0; - G4double xs22 = 0; + G4double xs11 = 0; + G4double xs12 = 0; + G4double xs21 = 0; + G4double xs22 = 0; - // PROTECTION TO ALLOW INTERPOLATION AT MINIMUM AND MAXIMUM EtaK/Theta2 values + // PROTECTION TO ALLOW INTERPOLATION AT MINIMUM AND MAXIMUM EtaK/Theta2 values // (in particular for FK computation at 8.66EXX for high velocity formula) - + if ( theta==8.66e-3 || theta==8.66e-2 || theta==8.66e-1 || theta==8.66e+0 || - theta==8.66e+1 + theta==8.66e+1 ) theta=theta-1e-12; if ( @@ -573,16 +574,16 @@ G4double G4ecpssrBaseKxsModel::FunctionFK(G4double k, G4double theta) ) theta=theta+1e-12; // END PROTECTION - + std::vector::iterator t2 = std::upper_bound(dummyVec.begin(),dummyVec.end(), k); std::vector::iterator t1 = t2-1; - + std::vector::iterator e12 = std::upper_bound(aVecMap[(*t1)].begin(),aVecMap[(*t1)].end(), theta); - std::vector::iterator e11 = e12-1; - + std::vector::iterator e11 = e12-1; + std::vector::iterator e22 = std::upper_bound(aVecMap[(*t2)].begin(),aVecMap[(*t2)].end(), theta); std::vector::iterator e21 = e22-1; - + valueT1 =*t1; valueT2 =*t2; valueE21 =*e21; @@ -607,33 +608,33 @@ G4double G4ecpssrBaseKxsModel::FunctionFK(G4double k, G4double theta) std::for_each (aVecMap[(*t2)].begin(),aVecMap[(*t2)].end(), print); G4cout << G4endl; - G4cout - << " " + G4cout + << " " << valueT1 << " " << valueT2 << " " << valueE11 << " " << valueE12 << " " << valueE21<< " " - << valueE22 << " " - << xs11 << " " - << xs12 << " " - << xs21 << " " - << xs22 << " " + << valueE22 << " " + << xs11 << " " + << xs12 << " " + << xs21 << " " + << xs22 << " " << G4endl; } */ G4double xsProduct = xs11 * xs12 * xs21 * xs22; - + if (xs11==0 || xs12==0 ||xs21==0 ||xs22==0) return (0.); - + if (xsProduct != 0.) { - sigma = QuadInterpolator( valueE11, valueE12, - valueE21, valueE22, - xs11, xs12, - xs21, xs22, - valueT1, valueT2, + sigma = QuadInterpolator( valueE11, valueE12, + valueE21, valueE22, + xs11, xs12, + xs21, xs22, + valueT1, valueT2, k, theta ); } @@ -642,24 +643,24 @@ G4double G4ecpssrBaseKxsModel::FunctionFK(G4double k, G4double theta) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4ecpssrBaseKxsModel::LinLogInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4ecpssrBaseKxsModel::LinLogInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double d1 = std::log(xs1); G4double d2 = std::log(xs2); - G4double value = std::exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); + G4double value = G4Exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); return value; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4ecpssrBaseKxsModel::LogLogInterpolate(G4double e1, - G4double e2, - G4double e, - G4double xs1, +G4double G4ecpssrBaseKxsModel::LogLogInterpolate(G4double e1, + G4double e2, + G4double e, + G4double xs1, G4double xs2) { G4double a = (std::log10(xs2)-std::log10(xs1)) / (std::log10(e2)-std::log10(e1)); @@ -671,11 +672,11 @@ G4double G4ecpssrBaseKxsModel::LogLogInterpolate(G4double e1, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4ecpssrBaseKxsModel::QuadInterpolator(G4double e11, G4double e12, - G4double e21, G4double e22, - G4double xs11, G4double xs12, - G4double xs21, G4double xs22, - G4double t1, G4double t2, +G4double G4ecpssrBaseKxsModel::QuadInterpolator(G4double e11, G4double e12, + G4double e21, G4double e22, + G4double xs11, G4double xs12, + G4double xs21, G4double xs22, + G4double t1, G4double t2, G4double t, G4double e) { // Log-Log @@ -691,8 +692,3 @@ G4double G4ecpssrBaseKxsModel::QuadInterpolator(G4double e11, G4double e12, */ return value; } - - - - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseLixsModel.cc b/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseLixsModel.cc index 2025c44463..5db7ff3489 100755 --- a/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseLixsModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ecpssrBaseLixsModel.cc @@ -24,7 +24,6 @@ // ******************************************************************** // -#include #include #include "G4ecpssrBaseLixsModel.hh" @@ -37,79 +36,79 @@ #include "G4Proton.hh" #include "G4Alpha.hh" #include "G4LinLogInterpolation.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4ecpssrBaseLixsModel::G4ecpssrBaseLixsModel() { - verboseLevel=0; + verboseLevel=0; - // Storing FLi data needed for 0.2 to 3.0 velocities region + // Storing FLi data needed for 0.2 to 3.0 velocities region - char *path = getenv("G4LEDATA"); - - if (!path) { - G4Exception("G4ecpssrLCrossSection::G4ecpssrBaseLixsModel()","em0006", FatalException ,"G4LEDATA environment variable not set"); - return; - } - std::ostringstream fileName1; - std::ostringstream fileName2; + char *path = getenv("G4LEDATA"); - fileName1 << path << "/pixe/uf/FL1.dat"; - fileName2 << path << "/pixe/uf/FL2.dat"; + if (!path) { + G4Exception("G4ecpssrLCrossSection::G4ecpssrBaseLixsModel()","em0006", FatalException ,"G4LEDATA environment variable not set"); + return; + } + std::ostringstream fileName1; + std::ostringstream fileName2; - // Reading of FL1.dat + fileName1 << path << "/pixe/uf/FL1.dat"; + fileName2 << path << "/pixe/uf/FL2.dat"; - std::ifstream FL1(fileName1.str().c_str()); - if (!FL1) G4Exception("G4ecpssrLCrossSection::G4ecpssrBaseLixsModel()","em0003",FatalException, "error opening FL1 data file"); - - dummyVec1.push_back(0.); + // Reading of FL1.dat - while(!FL1.eof()) + std::ifstream FL1(fileName1.str().c_str()); + if (!FL1) G4Exception("G4ecpssrLCrossSection::G4ecpssrBaseLixsModel()","em0003",FatalException, "error opening FL1 data file"); + + dummyVec1.push_back(0.); + + while(!FL1.eof()) { - double x1; - double y1; + double x1; + double y1; - FL1>>x1>>y1; + FL1>>x1>>y1; - // Mandatory vector initialization - if (x1 != dummyVec1.back()) + // Mandatory vector initialization + if (x1 != dummyVec1.back()) { dummyVec1.push_back(x1); aVecMap1[x1].push_back(-1.); } - FL1>>FL1Data[x1][y1]; + FL1>>FL1Data[x1][y1]; - if (y1 != aVecMap1[x1].back()) aVecMap1[x1].push_back(y1); + if (y1 != aVecMap1[x1].back()) aVecMap1[x1].push_back(y1); } - // Reading of FL2.dat - - std::ifstream FL2(fileName2.str().c_str()); - if (!FL2) G4Exception("G4ecpssrLCrossSection::G4ecpssrBaseLixsModel()","em0003", FatalException," error opening FL2 data file"); - - dummyVec2.push_back(0.); + // Reading of FL2.dat - while(!FL2.eof()) + std::ifstream FL2(fileName2.str().c_str()); + if (!FL2) G4Exception("G4ecpssrLCrossSection::G4ecpssrBaseLixsModel()","em0003", FatalException," error opening FL2 data file"); + + dummyVec2.push_back(0.); + + while(!FL2.eof()) { - double x2; - double y2; + double x2; + double y2; - FL2>>x2>>y2; + FL2>>x2>>y2; - // Mandatory vector initialization - if (x2 != dummyVec2.back()) + // Mandatory vector initialization + if (x2 != dummyVec2.back()) { dummyVec2.push_back(x2); aVecMap2[x2].push_back(-1.); } - FL2>>FL2Data[x2][y2]; + FL2>>FL2Data[x2][y2]; - if (y2 != aVecMap2[x2].back()) aVecMap2[x2].push_back(y2); + if (y2 != aVecMap2[x2].back()) aVecMap2[x2].push_back(y2); } - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -136,55 +135,55 @@ G4double G4ecpssrBaseLixsModel::ExpIntFunction(G4int n,G4double x) G4double h; G4double psi; G4double ans = 0; - const G4double euler= 0.5772156649; - const G4int maxit= 100; - const G4double fpmin = 1.0e-30; - const G4double eps = 1.0e-7; + static const G4double euler= 0.5772156649; + static const G4int maxit= 100; + static const G4double fpmin = 1.0e-30; + static const G4double eps = 1.0e-7; nm1=n-1; if (n<0 || x<0.0 || (x==0.0 && (n==0 || n==1))) - G4cout << "*** WARNING in G4ecpssrBaseLixsModel::ExpIntFunction: bad arguments in ExpIntFunction" + G4cout << "*** WARNING in G4ecpssrBaseLixsModel::ExpIntFunction: bad arguments in ExpIntFunction" << G4endl; else { - if (n==0) ans=std::exp(-x)/x; - else { - if (x==0.0) ans=1.0/nm1; - else { - if (x > 1.0) { - b=x+n; - c=1.0/fpmin; - d=1.0/b; - h=d; - for (i=1;i<=maxit;i++) { - a=-i*(nm1+i); - b +=2.0; - d=1.0/(a*d+b); - c=b+a/c; - del=c*d; - h *=del; - if (std::fabs(del-1.0) < eps) { - ans=h*std::exp(-x); - return ans; - } - } - } else { - ans = (nm1!=0 ? 1.0/nm1 : -std::log(x)-euler); - fact=1.0; - for (i=1;i<=maxit;i++) { - fact *=-x/i; - if (i !=nm1) del = -fact/(i-nm1); - else { - psi = -euler; - for (ii=1;ii<=nm1;ii++) psi +=1.0/ii; - del=fact*(-std::log(x)+psi); - } - ans += del; - if (std::fabs(del) < std::fabs(ans)*eps) return ans; - } - } - } + if (n==0) ans=G4Exp(-x)/x; + else { + if (x==0.0) ans=1.0/nm1; + else { + if (x > 1.0) { + b=x+n; + c=1.0/fpmin; + d=1.0/b; + h=d; + for (i=1;i<=maxit;i++) { + a=-i*(nm1+i); + b +=2.0; + d=1.0/(a*d+b); + c=b+a/c; + del=c*d; + h *=del; + if (std::fabs(del-1.0) < eps) { + ans=h*G4Exp(-x); + return ans; + } + } + } else { + ans = (nm1!=0 ? 1.0/nm1 : -std::log(x)-euler); + fact=1.0; + for (i=1;i<=maxit;i++) { + fact *=-x/i; + if (i !=nm1) del = -fact/(i-nm1); + else { + psi = -euler; + for (ii=1;ii<=nm1;ii++) psi +=1.0/ii; + del=fact*(-std::log(x)+psi); + } + ans += del; + if (std::fabs(del) < std::fabs(ans)*eps) return ans; + } } + } + } } -return ans; + return ans; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -194,8 +193,8 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m if (zTarget <=4) return 0.; - //this L1-CrossSection calculation method is done according to Werner Brandt and Grzegorz Lapicki, Phys.Rev.A20 N2 (1979), - //and using data tables of O. Benka et al. At.Data Nucl.Data Tables Vol.22 No.3 (1978). + //this L1-CrossSection calculation method is done according to Werner Brandt and Grzegorz Lapicki, Phys.Rev.A20 N2 (1979), + //and using data tables of O. Benka et al. At.Data Nucl.Data Tables Vol.22 No.3 (1978). G4NistManager* massManager = G4NistManager::Instance(); @@ -206,15 +205,15 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m G4Alpha* aAlpha = G4Alpha::Alpha(); if (massIncident == aProtone->GetPDGMass() ) - - zIncident = (aProtone->GetPDGCharge())/eplus; - + { + zIncident = (aProtone->GetPDGCharge())/eplus; + } else { - if (massIncident == aAlpha->GetPDGMass()) - + if (massIncident == aAlpha->GetPDGMass()) + { zIncident = (aAlpha->GetPDGCharge())/eplus; - + } else { G4cout << "*** WARNING in G4ecpssrBaseLixsModel::CalculateL1CrossSection : Proton or Alpha incident particles only. " << G4endl; @@ -224,31 +223,25 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m } G4double l1BindingEnergy = transitionManager->Shell(zTarget,1)->BindingEnergy(); //Observed binding energy of L1-subshell - G4double massTarget = (massManager->GetAtomicMassAmu(zTarget))*amu_c2; - G4double systemMass =((massIncident*massTarget)/(massIncident+massTarget))/electron_mass_c2; //Mass of the system (projectile, target) - - const G4double zlshell= 4.15; + static const G4double zlshell= 4.15; // *** see Benka, ADANDT 22, p 223 - G4double screenedzTarget = zTarget-zlshell; //Effective nuclear charge as seen by electrons in L1-sub shell + static const G4double rydbergMeV= 13.6056923e-6; - const G4double rydbergMeV= 13.6056923e-6; - - const G4double nl= 2.; + static const G4double nl= 2.; // *** see Benka, ADANDT 22, p 220, f3 - G4double tetal1 = (l1BindingEnergy*nl*nl)/((screenedzTarget*screenedzTarget)*rydbergMeV); //Screening parameter // *** see Benka, ADANDT 22, p 220, f3 - if (verboseLevel>0) G4cout << " tetal1=" << tetal1<< G4endl; + if (verboseLevel>0) G4cout << " tetal1=" << tetal1<< G4endl; G4double reducedEnergy = (energyIncident*electron_mass_c2)/(massIncident*rydbergMeV*screenedzTarget*screenedzTarget); // *** also called etaS // *** see Benka, ADANDT 22, p 220, f3 - const G4double bohrPow2Barn=(Bohr_radius*Bohr_radius)/barn ; //Bohr radius of hydrogen + static const G4double bohrPow2Barn=(Bohr_radius*Bohr_radius)/barn ; //Bohr radius of hydrogen G4double sigma0 = 8.*pi*(zIncident*zIncident)*bohrPow2Barn*std::pow(screenedzTarget,-4.); // *** see Benka, ADANDT 22, p 220, f2, for protons @@ -256,14 +249,14 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m G4double velocityl1 = CalculateVelocity(1, zTarget, massIncident, energyIncident); // Scaled velocity - if (verboseLevel>0) G4cout << " velocityl1=" << velocityl1<< G4endl; + if (verboseLevel>0) G4cout << " velocityl1=" << velocityl1<< G4endl; - const G4double l1AnalyticalApproximation= 1.5; + static const G4double l1AnalyticalApproximation= 1.5; G4double x1 =(nl*l1AnalyticalApproximation)/velocityl1; // *** 1.5 is cK = cL1 (it is 1.25 for L2 & L3) // *** see Brandt, Phys Rev A20, p 469, f16 in expression of h - - if (verboseLevel>0) G4cout << " x1=" << x1<< G4endl; + + if (verboseLevel>0) G4cout << " x1=" << x1<< G4endl; G4double electrIonizationEnergyl1=0.; // *** see Basbas, Phys Rev A17, p1665, f27 @@ -274,39 +267,39 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m else { if ( x1<=3.) - electrIonizationEnergyl1 =std::exp(-2.*x1)/(0.031+(0.213*std::pow(x1,0.5))+(0.005*x1)-(0.069*std::pow(x1,3./2.))+(0.324*x1*x1)); + electrIonizationEnergyl1 =G4Exp(-2.*x1)/(0.031+(0.213*std::pow(x1,0.5))+(0.005*x1)-(0.069*std::pow(x1,3./2.))+(0.324*x1*x1)); else - {if ( x1<=11.) electrIonizationEnergyl1 =2.*std::exp(-2.*x1)/std::pow(x1,1.6);} + {if ( x1<=11.) electrIonizationEnergyl1 =2.*G4Exp(-2.*x1)/std::pow(x1,1.6);} } G4double hFunctionl1 =(electrIonizationEnergyl1*2.*nl)/(tetal1*std::pow(velocityl1,3)); //takes into account the polarization effect // *** see Brandt, Phys Rev A20, p 469, f16 - if (verboseLevel>0) G4cout << " hFunctionl1=" << hFunctionl1<< G4endl; + if (verboseLevel>0) G4cout << " hFunctionl1=" << hFunctionl1<< G4endl; G4double gFunctionl1 = (1.+(9.*velocityl1)+(31.*velocityl1*velocityl1)+(49.*std::pow(velocityl1,3.))+(162.*std::pow(velocityl1,4.))+(63.*std::pow(velocityl1,5.))+(18.*std::pow(velocityl1,6.))+(1.97*std::pow(velocityl1,7.)))/std::pow(1.+velocityl1,9.);//takes into account the reduced binding effect // *** see Brandt, Phys Rev A20, p 469, f19 - if (verboseLevel>0) G4cout << " gFunctionl1=" << gFunctionl1<< G4endl; + if (verboseLevel>0) G4cout << " gFunctionl1=" << gFunctionl1<< G4endl; G4double sigmaPSS_l1 = 1.+(((2.*zIncident)/(screenedzTarget*tetal1))*(gFunctionl1-hFunctionl1)); //Binding-polarization factor // *** also called dzeta // *** also called epsilon // *** see Basbas, Phys Rev A17, p1667, f45 - if (verboseLevel>0) G4cout << "sigmaPSS_l1 =" << sigmaPSS_l1<< G4endl; + if (verboseLevel>0) G4cout << "sigmaPSS_l1 =" << sigmaPSS_l1<< G4endl; const G4double cNaturalUnit= 137.; - + G4double yl1Formula=0.4*(screenedzTarget/cNaturalUnit)*(screenedzTarget/cNaturalUnit)/(nl*velocityl1/sigmaPSS_l1); // *** also called yS // *** see Brandt, Phys Rev A20, p467, f6 // *** see Brandt, Phys Rev A23, p1728 - + G4double l1relativityCorrection = std::pow((1.+(1.1*yl1Formula*yl1Formula)),0.5)+yl1Formula; // Relativistic correction parameter // *** also called mRS // *** see Brandt, Phys Rev A20, p467, f6 - + //G4double reducedVelocity_l1 = velocityl1*std::pow(l1relativityCorrection,0.5); //Reduced velocity parameter G4double L1etaOverTheta2; @@ -316,7 +309,7 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m G4double sigmaPSSR_l1; // low velocity formula - // ***************** + // ***************** if ( velocityl1 <20. ) { @@ -325,32 +318,26 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m // *** 2) sigma_PSS_l1 ADDED // *** reducedEnergy is etaS, l1relativityCorrection is mRS // *** see Phys Rev A20, p468, top - + if ( ((tetal1*sigmaPSS_l1) >=0.2) && ((tetal1*sigmaPSS_l1) <=2.6670) && (L1etaOverTheta2>=0.1e-3) && (L1etaOverTheta2<=0.866e2) ) - universalFunction_l1 = FunctionFL1((tetal1*sigmaPSS_l1),L1etaOverTheta2); - if (verboseLevel>0) G4cout << "at low velocity range, universalFunction_l1 =" << universalFunction_l1 << G4endl; + if (verboseLevel>0) G4cout << "at low velocity range, universalFunction_l1 =" << universalFunction_l1 << G4endl; sigmaPSSR_l1 = (sigma0/(tetal1*sigmaPSS_l1))*universalFunction_l1;// Plane-wave Born -Aproximation L1-subshell ionisation Cross Section // *** see Benka, ADANDT 22, p220, f1 - if (verboseLevel>0) G4cout << " at low velocity range, sigma PWBA L1 CS = " << sigmaPSSR_l1<< G4endl; - - } - + if (verboseLevel>0) G4cout << " at low velocity range, sigma PWBA L1 CS = " << sigmaPSSR_l1<< G4endl; + } else - { - L1etaOverTheta2 = reducedEnergy/(tetal1*tetal1); // Medium & high velocity // *** 1) NO RELATIVISTIC CORRECTION // *** 2) NO sigma_PSS_l1 // *** see Benka, ADANDT 22, p223 - if ( (tetal1 >=0.2) && (tetal1 <=2.6670) && (L1etaOverTheta2>=0.1e-3) && (L1etaOverTheta2<=0.866e2) ) - + if ( (tetal1 >=0.2) && (tetal1 <=2.6670) && (L1etaOverTheta2>=0.1e-3) && (L1etaOverTheta2<=0.866e2) ) universalFunction_l1 = FunctionFL1(tetal1,L1etaOverTheta2); if (verboseLevel>0) G4cout << "at medium and high velocity range, universalFunction_l1 =" << universalFunction_l1 << G4endl; @@ -358,14 +345,14 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m sigmaPSSR_l1 = (sigma0/tetal1)*universalFunction_l1;// Plane-wave Born -Aproximation L1-subshell ionisation Cross Section // *** see Benka, ADANDT 22, p220, f1 - if (verboseLevel>0) G4cout << " sigma PWBA L1 CS at medium and high velocity range = " << sigmaPSSR_l1<< G4endl; + if (verboseLevel>0) G4cout << " sigma PWBA L1 CS at medium and high velocity range = " << sigmaPSSR_l1<< G4endl; } - + G4double pssDeltal1 = (4./(systemMass *sigmaPSS_l1*tetal1))*(sigmaPSS_l1/velocityl1)*(sigmaPSS_l1/velocityl1); // *** also called dzeta*delta // *** see Brandt, Phys Rev A23, p1727, f B2 - if (verboseLevel>0) G4cout << " pssDeltal1=" << pssDeltal1<< G4endl; + if (verboseLevel>0) G4cout << " pssDeltal1=" << pssDeltal1<< G4endl; if (pssDeltal1>1) return 0.; @@ -373,11 +360,11 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m // *** also called z // *** see Brandt, Phys Rev A23, p1727, after f B2 - if (verboseLevel>0) G4cout << " energyLossl1=" << energyLossl1<< G4endl; + if (verboseLevel>0) G4cout << " energyLossl1=" << energyLossl1<< G4endl; - G4double coulombDeflectionl1 = + G4double coulombDeflectionl1 = (8.*pi*zIncident/systemMass)*std::pow(tetal1*sigmaPSS_l1,-2.)*std::pow(velocityl1/sigmaPSS_l1,-3.)*(zTarget/screenedzTarget); - // *** see Brandt, Phys Rev A20, v2s and f2 and B2 + // *** see Brandt, Phys Rev A20, v2s and f2 and B2 // *** with factor n2 compared to Brandt, Phys Rev A23, p1727, f B3 G4double cParameterl1 =2.* coulombDeflectionl1/(energyLossl1*(energyLossl1+1.)); @@ -385,20 +372,20 @@ G4double G4ecpssrBaseLixsModel::CalculateL1CrossSection(G4int zTarget,G4double m G4double coulombDeflectionFunction_l1 = 9.*ExpIntFunction(10,cParameterl1); //Coulomb-deflection effect correction - if (verboseLevel>0) G4cout << " coulombDeflectionFunction_l1 =" << coulombDeflectionFunction_l1 << G4endl; + if (verboseLevel>0) G4cout << " coulombDeflectionFunction_l1 =" << coulombDeflectionFunction_l1 << G4endl; G4double crossSection_L1 = coulombDeflectionFunction_l1 * sigmaPSSR_l1; //ECPSSR L1 -subshell cross section is estimated at perturbed-stationnairy-state(PSS) //and reduced by the energy-loss(E),the Coulomb deflection(C),and the relativity(R) effects - if (verboseLevel>0) G4cout << " crossSection_L1 =" << crossSection_L1 << G4endl; + if (verboseLevel>0) G4cout << " crossSection_L1 =" << crossSection_L1 << G4endl; - if (crossSection_L1 >= 0) + if (crossSection_L1 >= 0) { return crossSection_L1 * barn; } - + else {return 0;} } @@ -417,19 +404,17 @@ G4double G4ecpssrBaseLixsModel::CalculateL2CrossSection(G4int zTarget,G4double m G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); G4double zIncident = 0; - + G4Proton* aProtone = G4Proton::Proton(); G4Alpha* aAlpha = G4Alpha::Alpha(); if (massIncident == aProtone->GetPDGMass() ) - zIncident = (aProtone->GetPDGCharge())/eplus; else { if (massIncident == aAlpha->GetPDGMass()) - - zIncident = (aAlpha->GetPDGCharge())/eplus; + zIncident = (aAlpha->GetPDGCharge())/eplus; else { @@ -455,9 +440,9 @@ G4double G4ecpssrBaseLixsModel::CalculateL2CrossSection(G4int zTarget,G4double m G4double tetal2 = (l2BindingEnergy*nl*nl)/((screenedzTarget*screenedzTarget)*rydbergMeV); //Screening parameter - if (verboseLevel>0) G4cout << " tetal2=" << tetal2<< G4endl; + if (verboseLevel>0) G4cout << " tetal2=" << tetal2<< G4endl; - G4double reducedEnergy = (energyIncident*electron_mass_c2)/(massIncident*rydbergMeV*screenedzTarget*screenedzTarget); + G4double reducedEnergy = (energyIncident*electron_mass_c2)/(massIncident*rydbergMeV*screenedzTarget*screenedzTarget); const G4double bohrPow2Barn=(Bohr_radius*Bohr_radius)/barn ; //Bohr radius of hydrogen @@ -465,13 +450,13 @@ G4double G4ecpssrBaseLixsModel::CalculateL2CrossSection(G4int zTarget,G4double m G4double velocityl2 = CalculateVelocity(2, zTarget, massIncident, energyIncident); // Scaled velocity - if (verboseLevel>0) G4cout << " velocityl2=" << velocityl2<< G4endl; + if (verboseLevel>0) G4cout << " velocityl2=" << velocityl2<< G4endl; const G4double l23AnalyticalApproximation= 1.25; G4double x2 = (nl*l23AnalyticalApproximation)/velocityl2; - - if (verboseLevel>0) G4cout << " x2=" << x2<< G4endl; + + if (verboseLevel>0) G4cout << " x2=" << x2<< G4endl; G4double electrIonizationEnergyl2=0.; @@ -479,89 +464,87 @@ G4double G4ecpssrBaseLixsModel::CalculateL2CrossSection(G4int zTarget,G4double m else { if ( x2<=3.) - electrIonizationEnergyl2 =std::exp(-2.*x2)/(0.031+(0.213*std::pow(x2,0.5))+(0.005*x2)-(0.069*std::pow(x2,3./2.))+(0.324*x2*x2)); + electrIonizationEnergyl2 =G4Exp(-2.*x2)/(0.031+(0.213*std::pow(x2,0.5))+(0.005*x2)-(0.069*std::pow(x2,3./2.))+(0.324*x2*x2)); else - {if ( x2<=11.) electrIonizationEnergyl2 =2.*std::exp(-2.*x2)/std::pow(x2,1.6); } + {if ( x2<=11.) electrIonizationEnergyl2 =2.*G4Exp(-2.*x2)/std::pow(x2,1.6); } } G4double hFunctionl2 =(electrIonizationEnergyl2*2.*nl)/(tetal2*std::pow(velocityl2,3)); //takes into account the polarization effect - if (verboseLevel>0) G4cout << " hFunctionl2=" << hFunctionl2<< G4endl; + if (verboseLevel>0) G4cout << " hFunctionl2=" << hFunctionl2<< G4endl; G4double gFunctionl2 = (1.+(10.*velocityl2)+(45.*velocityl2*velocityl2)+(102.*std::pow(velocityl2,3.))+(331.*std::pow(velocityl2,4.))+(6.7*std::pow(velocityl2,5.))+(58.*std::pow(velocityl2,6.))+(7.8*std::pow(velocityl2,7.))+ (0.888*std::pow(velocityl2,8.)) )/std::pow(1.+velocityl2,10.); //takes into account the reduced binding effect - if (verboseLevel>0) G4cout << " gFunctionl2=" << gFunctionl2<< G4endl; + if (verboseLevel>0) G4cout << " gFunctionl2=" << gFunctionl2<< G4endl; G4double sigmaPSS_l2 = 1.+(((2.*zIncident)/(screenedzTarget*tetal2))*(gFunctionl2-hFunctionl2)); //Binding-polarization factor - if (verboseLevel>0) G4cout << " sigmaPSS_l2=" << sigmaPSS_l2<< G4endl; + if (verboseLevel>0) G4cout << " sigmaPSS_l2=" << sigmaPSS_l2<< G4endl; const G4double cNaturalUnit= 137.; - + G4double yl2Formula=0.15*(screenedzTarget/cNaturalUnit)*(screenedzTarget/cNaturalUnit)/(velocityl2/sigmaPSS_l2); - + G4double l2relativityCorrection = std::pow((1.+(1.1*yl2Formula*yl2Formula)),0.5)+yl2Formula; // Relativistic correction parameter - + G4double L2etaOverTheta2; G4double universalFunction_l2 = 0.; G4double sigmaPSSR_l2 ; - + if ( velocityl2 < 20. ) { L2etaOverTheta2 = (reducedEnergy*l2relativityCorrection)/((sigmaPSS_l2*tetal2)*(sigmaPSS_l2*tetal2)); if ( (tetal2*sigmaPSS_l2>=0.2) && (tetal2*sigmaPSS_l2<=2.6670) && (L2etaOverTheta2>=0.1e-3) && (L2etaOverTheta2<=0.866e2) ) - universalFunction_l2 = FunctionFL2((tetal2*sigmaPSS_l2),L2etaOverTheta2); sigmaPSSR_l2 = (sigma0/(tetal2*sigmaPSS_l2))*universalFunction_l2; if (verboseLevel>0) G4cout << " sigma PWBA L2 CS at low velocity range = " << sigmaPSSR_l2<< G4endl; - } + } else - { - + { + L2etaOverTheta2 = reducedEnergy /(tetal2*tetal2); if ( (tetal2>=0.2) && (tetal2<=2.6670) && (L2etaOverTheta2>=0.1e-3) && (L2etaOverTheta2<=0.866e2) ) - universalFunction_l2 = FunctionFL2((tetal2),L2etaOverTheta2); - + sigmaPSSR_l2 = (sigma0/tetal2)*universalFunction_l2; - if (verboseLevel>0) G4cout << " sigma PWBA L2 CS at medium and high velocity range = " << sigmaPSSR_l2<< G4endl; + if (verboseLevel>0) G4cout << " sigma PWBA L2 CS at medium and high velocity range = " << sigmaPSSR_l2<< G4endl; } - + G4double pssDeltal2 = (4./(systemMass*sigmaPSS_l2*tetal2))*(sigmaPSS_l2/velocityl2)*(sigmaPSS_l2/velocityl2); if (pssDeltal2>1) return 0.; G4double energyLossl2 = std::pow(1-pssDeltal2,0.5); - + if (verboseLevel>0) G4cout << " energyLossl2=" << energyLossl2<< G4endl; - G4double coulombDeflectionl2 + G4double coulombDeflectionl2 =(8.*pi*zIncident/systemMass)*std::pow(tetal2*sigmaPSS_l2,-2.)*std::pow(velocityl2/sigmaPSS_l2,-3.)*(zTarget/screenedzTarget); G4double cParameterl2 = 2.*coulombDeflectionl2/(energyLossl2*(energyLossl2+1.)); G4double coulombDeflectionFunction_l2 = 11.*ExpIntFunction(12,cParameterl2); //Coulomb-deflection effect correction // *** see Brandt, Phys Rev A10, p477, f25 - - if (verboseLevel>0) G4cout << " coulombDeflectionFunction_l2 =" << coulombDeflectionFunction_l2 << G4endl; + + if (verboseLevel>0) G4cout << " coulombDeflectionFunction_l2 =" << coulombDeflectionFunction_l2 << G4endl; G4double crossSection_L2 = coulombDeflectionFunction_l2 * sigmaPSSR_l2; //ECPSSR L2 -subshell cross section is estimated at perturbed-stationnairy-state(PSS) //and reduced by the energy-loss(E),the Coulomb deflection(C),and the relativity(R) effects - if (verboseLevel>0) G4cout << " crossSection_L2 =" << crossSection_L2 << G4endl; + if (verboseLevel>0) G4cout << " crossSection_L2 =" << crossSection_L2 << G4endl; - if (crossSection_L2 >= 0) + if (crossSection_L2 >= 0) { return crossSection_L2 * barn; } @@ -645,10 +628,10 @@ G4double G4ecpssrBaseLixsModel::CalculateL3CrossSection(G4int zTarget,G4double m if ( x3<=0.035) electrIonizationEnergyl3= 0.75*pi*(std::log(1./(x3*x3))-1.); else { - if ( x3<=3.) electrIonizationEnergyl3 =std::exp(-2.*x3)/(0.031+(0.213*std::pow(x3,0.5))+(0.005*x3)-(0.069*std::pow(x3,3./2.))+(0.324*x3*x3)); + if ( x3<=3.) electrIonizationEnergyl3 =G4Exp(-2.*x3)/(0.031+(0.213*std::pow(x3,0.5))+(0.005*x3)-(0.069*std::pow(x3,3./2.))+(0.324*x3*x3)); else { - if ( x3<=11.) electrIonizationEnergyl3 =2.*std::exp(-2.*x3)/std::pow(x3,1.6);} + if ( x3<=11.) electrIonizationEnergyl3 =2.*G4Exp(-2.*x3)/std::pow(x3,1.6);} } G4double hFunctionl3 =(electrIonizationEnergyl3*2.*nl)/(tetal3*std::pow(velocityl3,3));//takes into account the polarization effect @@ -665,15 +648,15 @@ G4double G4ecpssrBaseLixsModel::CalculateL3CrossSection(G4int zTarget,G4double m if (verboseLevel>0) G4cout << "sigmaPSS_l3 =" << sigmaPSS_l3<< G4endl; const G4double cNaturalUnit= 137.; - + G4double yl3Formula=0.15*(screenedzTarget/cNaturalUnit)*(screenedzTarget/cNaturalUnit)/(velocityl3/sigmaPSS_l3); - + G4double l3relativityCorrection = std::pow((1.+(1.1*yl3Formula*yl3Formula)),0.5)+yl3Formula; // Relativistic correction parameter - + G4double L3etaOverTheta2; - + G4double universalFunction_l3 = 0.; - + G4double sigmaPSSR_l3; if ( velocityl3 < 20. ) @@ -691,21 +674,21 @@ G4double G4ecpssrBaseLixsModel::CalculateL3CrossSection(G4int zTarget,G4double m } - else + else { L3etaOverTheta2 = reducedEnergy/(tetal3*tetal3); - if ( (tetal3>=0.2) && (tetal3<=2.6670) && (L3etaOverTheta2>=0.1e-3) && (L3etaOverTheta2<=0.866e2) ) - + if ( (tetal3>=0.2) && (tetal3<=2.6670) && (L3etaOverTheta2>=0.1e-3) && (L3etaOverTheta2<=0.866e2) ) + universalFunction_l3 = 2.*FunctionFL2(tetal3, L3etaOverTheta2 ); sigmaPSSR_l3 = (sigma0/tetal3)*universalFunction_l3; if (verboseLevel>0) G4cout << " sigma PWBA L3 CS at medium and high velocity range = " << sigmaPSSR_l3<< G4endl; } - + G4double pssDeltal3 = (4./(systemMass*sigmaPSS_l3*tetal3))*(sigmaPSS_l3/velocityl3)*(sigmaPSS_l3/velocityl3); if (verboseLevel>0) G4cout << " pssDeltal3=" << pssDeltal3<< G4endl; @@ -716,7 +699,7 @@ G4double G4ecpssrBaseLixsModel::CalculateL3CrossSection(G4int zTarget,G4double m if (verboseLevel>0) G4cout << " energyLossl3=" << energyLossl3<< G4endl; - G4double coulombDeflectionl3 = + G4double coulombDeflectionl3 = (8.*pi*zIncident/systemMass)*std::pow(tetal3*sigmaPSS_l3,-2.)*std::pow(velocityl3/sigmaPSS_l3,-3.)*(zTarget/screenedzTarget); G4double cParameterl3 = 2.*coulombDeflectionl3/(energyLossl3*(energyLossl3+1.)); @@ -731,8 +714,8 @@ G4double G4ecpssrBaseLixsModel::CalculateL3CrossSection(G4int zTarget,G4double m //and reduced by the energy-loss(E),the Coulomb deflection(C),and the relativity(R) effects if (verboseLevel>0) G4cout << " crossSection_L3 =" << crossSection_L3 << G4endl; - - if (crossSection_L3 >= 0) + + if (crossSection_L3 >= 0) { return crossSection_L3 * barn; } @@ -773,7 +756,7 @@ G4double G4ecpssrBaseLixsModel::CalculateVelocity(G4int subShell, G4int zTarget, G4double velocity = 2.*nl*std::pow(reducedEnergy,0.5)/tetali; // *** see Brandt, Phys Rev A10, p10, f4 - + return velocity; } @@ -837,8 +820,8 @@ G4double G4ecpssrBaseLixsModel::FunctionFL1(G4double k, G4double theta) xs21 = FL1Data[valueT2][valueE21]; xs22 = FL1Data[valueT2][valueE22]; - if (verboseLevel>0) - G4cout + if (verboseLevel>0) + G4cout << valueT1 << " " << valueT2 << " " << valueE11 << " " @@ -928,8 +911,8 @@ G4double G4ecpssrBaseLixsModel::FunctionFL2(G4double k, G4double theta) xs21 = FL2Data[valueT2][valueE21]; xs22 = FL2Data[valueT2][valueE22]; - if (verboseLevel>0) - G4cout + if (verboseLevel>0) + G4cout << valueT1 << " " << valueT2 << " " << valueE11 << " " @@ -981,7 +964,7 @@ G4double G4ecpssrBaseLixsModel::LinLogInterpolate(G4double e1, { G4double d1 = std::log(xs1); G4double d2 = std::log(xs2); - G4double value = std::exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); + G4double value = G4Exp(d1 + (d2 - d1)*(e - e1)/ (e2 - e1)); return value; } @@ -1030,4 +1013,3 @@ G4double G4ecpssrBaseLixsModel::QuadInterpolator(G4double e11, G4double e12, return value; } - diff --git a/source/processes/electromagnetic/lowenergy/src/G4hICRU49He.cc b/source/processes/electromagnetic/lowenergy/src/G4hICRU49He.cc index 1121302844..593fe41b0a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hICRU49He.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hICRU49He.cc @@ -32,22 +32,22 @@ // File name: G4hICRU49He // // Author: V.Ivanchenko (Vladimir.Ivanchenko@cern.ch) -// +// // Creation date: 20 July 2000 // -// Modifications: +// Modifications: // 20/07/2000 V.Ivanchenko First implementation // 18/09/2000 V.Ivanchenko clean up - all variable are the same as in ICRU // 03/10/2000 V.Ivanchenko clean up accoding to CodeWizard // 10/05/2001 V.Ivanchenko Clean up againist Linux compilation with -Wall // 26/08/2004 V.Ivanchenko Fix a problem of effective charge // -// Class Description: +// Class Description: // // Electronic stopping power parametrised according to // ICRU Report N49, 1993. J.F. Ziegler model for He ion. // -// Class Description: End +// Class Description: End // // ------------------------------------------------------------------- // @@ -60,22 +60,23 @@ #include "G4SystemOfUnits.hh" #include "G4UnitsTable.hh" #include "G4Material.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4hICRU49He::G4hICRU49He():G4VhElectronicStoppingPower(), +G4hICRU49He::G4hICRU49He():G4VhElectronicStoppingPower(), rateMass(4.0026/1.007276), iMolecula(0) {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4hICRU49He::~G4hICRU49He() +G4hICRU49He::~G4hICRU49He() {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool G4hICRU49He::HasMaterial(const G4Material* material) +G4bool G4hICRU49He::HasMaterial(const G4Material* material) { G4String chFormula = material->GetChemicalFormula() ; G4String myFormula = G4String(" "); @@ -86,17 +87,17 @@ G4bool G4hICRU49He::HasMaterial(const G4Material* material) } // ICRU Report N49, 1993. Power's model for He. - const size_t numberOfMolecula = 30 ; + const size_t numberOfMolecula = 30 ; static const G4String name[numberOfMolecula] = { "H_2", "Be-Solid", "C-Solid", "Graphite", "N_2", "O_2", "Al-Solid", "Si-Solid", "Ar-Solid", "Cu-Solid", "Ge", "W-Solid", "Au-Solid", "Pb-Solid", "C_2H_2", "CO_2", "Cellulose-Nitrat", "C_2H_4", "LiF", "CH_4", "Nylon", "Polycarbonate", "(CH_2)_N-Polyetilene", "PMMA", - "(C_8H_8)_N", "SiO_2", "CsI", "H_2O", "H_2O-Gas"}; - + "(C_8H_8)_N", "SiO_2", "CsI", "H_2O", "H_2O-Gas"}; + // Special treatment for water in gas state - + myFormula = G4String("H_2O") ; const G4State theState = material->GetState() ; if( theState == kStateGas && myFormula == chFormula) { @@ -116,23 +117,23 @@ G4bool G4hICRU49He::HasMaterial(const G4Material* material) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4hICRU49He::StoppingPower(const G4Material* material, - G4double kineticEnergy) + G4double kineticEnergy) { G4double ionloss = 0.0 ; // pure material (normally not the case for this function) if(1 == (material->GetNumberOfElements())) { G4double z = material->GetZ() ; - ionloss = ElectronicStoppingPower( z, kineticEnergy ) ; + ionloss = ElectronicStoppingPower( z, kineticEnergy ) ; - // The data and the fit from: + // The data and the fit from: // ICRU Report N49, 1993. Power's model for He. } else if ( iMolecula < 30 ) { - // Reduced kinetic energy + // Reduced kinetic energy // in internal units of parametrisation formula (MeV) - G4double T = kineticEnergy*rateMass/MeV ; - + G4double T = kineticEnergy*rateMass/MeV ; + static const G4double c[30][7] = { {8.0080, 3.6287, 23.0700, 14.9900, 0.8507, 0.60, 2.0 },{ 13.3100, 3.7432, 39.4130, 12.1990, 1.0950, 0.38, 1.4 @@ -170,26 +171,26 @@ G4double G4hICRU49He::StoppingPower(const G4Material* material, // Free electron gas model if ( T < 0.001 ) { G4double T0 = 0.001 ; - a1 = 1.0 - std::exp(-c[iMolecula][1]*std::pow(T0,-2.0+c[iMolecula][5])) ; + a1 = 1.0 - G4Exp(-c[iMolecula][1]*std::pow(T0,-2.0+c[iMolecula][5])) ; a2 = (c[iMolecula][0]*std::log(T0)/T0 + c[iMolecula][2]/T0) * - std::exp(-c[iMolecula][4]*std::pow(T0,-c[iMolecula][6])) + + G4Exp(-c[iMolecula][4]*std::pow(T0,-c[iMolecula][6])) + c[iMolecula][3]/(T0*T0) ; - ionloss *= std::sqrt(T/T0) ; - + ionloss *= std::sqrt(T/T0) ; + // Main parametrisation } else { - a1 = 1.0 - std::exp(-c[iMolecula][1]*std::pow(T,-2.0+c[iMolecula][5])) ; + a1 = 1.0 - G4Exp(-c[iMolecula][1]*std::pow(T,-2.0+c[iMolecula][5])) ; a2 = (c[iMolecula][0]*std::log(T)/T + c[iMolecula][2]/T) * - std::exp(-c[iMolecula][4]*std::pow(T,-c[iMolecula][6])) + + G4Exp(-c[iMolecula][4]*std::pow(T,-c[iMolecula][6])) + c[iMolecula][3]/(T*T) ; } // He effective charge - G4double z = (material->GetTotNbOfElectPerVolume()) / + G4double z = (material->GetTotNbOfElectPerVolume()) / (material->GetTotNbOfAtomsPerVolume()) ; - ionloss = a1*a2 / HeEffChargeSquare(z, kineticEnergy*rateMass) ; + ionloss = a1*a2 / HeEffChargeSquare(z, kineticEnergy*rateMass) ; if ( ionloss < 0.0) ionloss = 0.0 ; } @@ -206,14 +207,14 @@ G4double G4hICRU49He::ElectronicStoppingPower(G4double z, G4int i = G4int(z)-1 ; // index of atom if(i < 0) i = 0 ; if(i > 91) i = 91 ; - - // The data and the fit from: + + // The data and the fit from: // ICRU Report 49, 1993. Ziegler's type of parametrisations - // Reduced kinetic energy + // Reduced kinetic energy // He energy in internal units of parametrisation formula (MeV) - G4double T = kineticEnergy*rateMass/MeV ; - + G4double T = kineticEnergy*rateMass/MeV ; + static const G4double a[92][5] = { {0.35485, 0.6456, 6.01525, 20.8933, 4.3515 },{ 0.58, 0.59, 6.3, 130.0, 44.07 @@ -265,13 +266,13 @@ G4double G4hICRU49He::ElectronicStoppingPower(G4double z, },{ 3.55, 0.6068, 124.7, 1.112, 3.119 },{ 3.6, 0.62, 105.8, 0.1692, 6.026 },{ 5.4, 0.53, 103.1, 3.931, 7.767 - },{ 3.97, 0.6459, 131.8, 0.2233, 2.723 + },{ 3.97, 0.6459, 131.8, 0.2233, 2.723 },{ 3.65, 0.64, 126.8, 0.6834, 3.411 },{ 3.118, 0.6519, 164.9, 1.208, 1.51 },{ 3.949, 0.6209, 200.5, 1.878, 0.9126 },{ 14.4, 0.3923, 152.5, 8.354, 2.597 },{ 10.99, 0.4599, 138.4, 4.811, 3.726 - },{ 16.6, 0.3773, 224.1, 6.28, 0.9121 + },{ 16.6, 0.3773, 224.1, 6.28, 0.9121 },{ 10.54, 0.4533, 159.3, 4.832, 2.529 },{ 10.33, 0.4502, 162.0, 5.132, 2.444 },{ 10.15, 0.4471, 165.6, 5.378, 2.328 @@ -308,38 +309,26 @@ G4double G4hICRU49He::ElectronicStoppingPower(G4double z, },{ 5.408, 0.5811, 235.7, 3.961, 1.358 },{ 5.218, 0.5828, 245.0, 3.838, 1.25} }; - + // Free electron gas model if ( T < 0.001 ) { G4double slow = a[i][0] ; - G4double shigh = std::log( 1.0 + a[i][3]*1000.0 + a[i][4]*0.001 ) + G4double shigh = std::log( 1.0 + a[i][3]*1000.0 + a[i][4]*0.001 ) * a[i][2]*1000.0 ; - ionloss = slow*shigh / (slow + shigh) ; - ionloss *= std::sqrt(T*1000.0) ; - + ionloss = slow*shigh / (slow + shigh) ; + ionloss *= std::sqrt(T*1000.0) ; + // Main parametrisation } else { G4double slow = a[i][0] * std::pow((T*1000.0), a[i][1]) ; G4double shigh = std::log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ; - ionloss = slow*shigh / (slow + shigh) ; - + ionloss = slow*shigh / (slow + shigh) ; + } if ( ionloss < 0.0) ionloss = 0.0 ; // He effective charge - ionloss /= HeEffChargeSquare(z, kineticEnergy*rateMass) ; - + ionloss /= HeEffChargeSquare(z, kineticEnergy*rateMass) ; + return ionloss; } - - - - - - - - - - - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc b/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc index ad9bd36b21..0e70359253 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc @@ -32,22 +32,22 @@ // File name: G4hIonEffChargeSquare // // Author: V.Ivanchenko (Vladimir.Ivanchenko@cern.ch) -// +// // Creation date: 20 July 2000 // -// Modifications: +// Modifications: // 20/07/2000 V.Ivanchenko First implementation // 18/06/2001 V.Ivanchenko Continuation for eff.charge (small change of y) -// 08/10/2002 V.Ivanchenko The charge of the nucleus is used not charge of +// 08/10/2002 V.Ivanchenko The charge of the nucleus is used not charge of // DynamicParticle // -// Class Description: +// Class Description: // // Ion effective charge model // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, // Nucl. Inst. & Meth. in Phys. Res. B35 (1988) 215-228. // -// Class Description: End +// Class Description: End // // ------------------------------------------------------------------- // @@ -60,23 +60,24 @@ #include "G4ParticleDefinition.hh" #include "G4Material.hh" #include "G4Element.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4hIonEffChargeSquare::G4hIonEffChargeSquare(const G4String& name) - : G4VLowEnergyModel(name), + : G4VLowEnergyModel(name), theHeMassAMU(4.0026) {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4hIonEffChargeSquare::~G4hIonEffChargeSquare() +G4hIonEffChargeSquare::~G4hIonEffChargeSquare() {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4hIonEffChargeSquare::TheValue(const G4DynamicParticle* particle, - const G4Material* material) + const G4Material* material) { G4double energy = particle->GetKineticEnergy() ; G4double particleMass = particle->GetMass() ; @@ -91,7 +92,7 @@ G4double G4hIonEffChargeSquare::TheValue(const G4DynamicParticle* particle, G4double G4hIonEffChargeSquare::TheValue(const G4ParticleDefinition* aParticle, const G4Material* material, - G4double kineticEnergy) + G4double kineticEnergy) { // SetRateMass(aParticle) ; G4double particleMass = aParticle->GetPDGMass() ; @@ -137,7 +138,7 @@ G4double G4hIonEffChargeSquare::LowEnergyLimit( } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4bool G4hIonEffChargeSquare::IsInCharge(const G4DynamicParticle* , const G4Material* ) const { @@ -145,7 +146,7 @@ G4bool G4hIonEffChargeSquare::IsInCharge(const G4DynamicParticle* , } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4bool G4hIonEffChargeSquare::IsInCharge(const G4ParticleDefinition* , const G4Material* ) const { @@ -160,7 +161,7 @@ G4double G4hIonEffChargeSquare::IonEffChargeSquare( G4double particleMass, G4double ionCharge) const { - // The aproximation of ion effective charge from: + // The aproximation of ion effective charge from: // J.F.Ziegler, J.P. Biersack, U. Littmark // The Stopping and Range of Ions in Matter, // Vol.1, Pergamon Press, 1985 @@ -168,7 +169,7 @@ G4double G4hIonEffChargeSquare::IonEffChargeSquare( // Fast ions or hadrons G4double reducedEnergy = kineticEnergy * proton_mass_c2/particleMass ; if(reducedEnergy < 1.0*keV) reducedEnergy = 1.0*keV; - if( (reducedEnergy > ionCharge * 10.0 * MeV) || + if( (reducedEnergy > ionCharge * 10.0 * MeV) || (ionCharge < 1.5) ) return ionCharge*ionCharge ; static const G4double vFermi[92] = { @@ -189,24 +190,24 @@ G4double G4hIonEffChargeSquare::IonEffChargeSquare( 0.98, 0.97, 0.96, 0.93, 0.91, 0.9, 0.88, 0.9, 0.9, 0.9, 0.9, 0.85, 0.9, 0.9, 0.91, 0.92, 0.9, 0.9, 0.9, 0.9, 0.9, 0.88, 0.9, 0.88, 0.88, 0.9, 0.9, 0.88, 0.9, 0.9, - 0.9, 0.9, 0.96, 1.2, 0.9, 0.88, 0.88, 0.85, 0.9, 0.9, + 0.9, 0.9, 0.96, 1.2, 0.9, 0.88, 0.88, 0.85, 0.9, 0.9, 0.92, 0.95, 0.99, 1.03, 1.05, 1.07, 1.08, 1.1, 1.08, 1.08, 1.08, 1.08, 1.09, 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, 1.17, 1.2, 1.18, 1.17, 1.17, 1.16, 1.16, 1.16, 1.16, 1.16, - 1.16, 1.16} ; + 1.16, 1.16} ; static const G4double c[6] = {0.2865, 0.1266, -0.001429, 0.02402,-0.01135, 0.001475} ; // get elements in the actual material, const G4ElementVector* theElementVector = material->GetElementVector() ; - const G4double* theAtomicNumDensityVector = + const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector() ; const G4int NumberOfElements = material->GetNumberOfElements() ; - + // loop for the elements in the material // to find out average values Z, vF, lF - G4double z = 0.0, vF = 0.0, lF = 0.0, norm = 0.0 ; + G4double z = 0.0, vF = 0.0, lF = 0.0, norm = 0.0 ; if( 1 == NumberOfElements ) { z = material->GetZ() ; @@ -238,16 +239,16 @@ G4double G4hIonEffChargeSquare::IonEffChargeSquare( // Helium ion case if( ionCharge < 2.5 ) { - G4double e = std::log(std::max(1.0, kineticEnergy / (keV*theHeMassAMU) )) ; + G4double e = std::log(std::max(1.0, kineticEnergy / (keV*theHeMassAMU) )) ; G4double x = c[0] ; G4double y = 1.0 ; for (G4int i=1; i<6; i++) { y *= e ; x += y * c[i] ; } - G4double q = 7.6 - e ; - q = 1.0 + ( 0.007 + 0.00005 * z ) * std::exp( -q*q ) ; - return 4.0 * q * q * (1.0 - std::exp(-x)) ; + G4double q = 7.6 - e ; + q = 1.0 + ( 0.007 + 0.00005 * z ) * G4Exp( -q*q ) ; + return 4.0 * q * q * (1.0 - G4Exp(-x)) ; // Heavy ion case } else { @@ -267,12 +268,12 @@ G4double G4hIonEffChargeSquare::IonEffChargeSquare( } G4double y3 = std::pow(y, 0.3) ; - G4double q = 1.0 - std::exp( 0.803*y3 - 1.3167*y3*y3 - - 0.38157*y - 0.008983*y*y ) ; + G4double q = 1.0 - G4Exp( 0.803*y3 - 1.3167*y3*y3 - + 0.38157*y - 0.008983*y*y ) ; if( q < 0.0 ) q = 0.0 ; - G4double sLocal = 7.6 - std::log(std::max(1.0, reducedEnergy/keV)) ; - sLocal = 1.0 + ( 0.18 + 0.0015 * z ) * std::exp( -sLocal*sLocal )/ (ionCharge*ionCharge) ; + G4double sLocal = 7.6 - std::log(std::max(1.0, reducedEnergy/keV)) ; + sLocal = 1.0 + ( 0.18 + 0.0015 * z ) * G4Exp( -sLocal*sLocal )/ (ionCharge*ionCharge) ; // Screen length according to // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, @@ -281,9 +282,7 @@ G4double G4hIonEffChargeSquare::IonEffChargeSquare( G4double lambda = 10.0 * vF * std::pow(1.0-q, 0.6667) / (z13 * (6.0 + q)) ; G4double qeff = ionCharge * sLocal * ( q + 0.5*(1.0-q) * std::log(1.0 + lambda*lambda) / (vF*vF) ) ; - if( 0.1 > qeff ) qeff = 0.1 ; - return qeff*qeff ; + if( 0.1 > qeff ) qeff = 0.1 ; + return qeff*qeff ; } } - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc index 24ff3ff469..0567716388 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc @@ -32,10 +32,10 @@ // File name: G4hParametrisedLossModel // // Author: V.Ivanchenko (Vladimir.Ivanchenko@cern.ch) -// +// // Creation date: 20 July 2000 // -// Modifications: +// Modifications: // 20/07/2000 V.Ivanchenko First implementation // 18/08/2000 V.Ivanchenko TRIM85 model is added // 03/10/2000 V.Ivanchenko CodeWizard clean up @@ -67,6 +67,7 @@ #include "G4ParticleDefinition.hh" #include "G4ElementVector.hh" #include "G4Material.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -108,7 +109,7 @@ void G4hParametrisedLossModel::InitializeMe() eStopingPowerTable = new G4hICRU49p(); highEnergyLimit = 2.0*MeV; lowEnergyLimit = 1.0*keV; - G4cout << "G4hParametrisedLossModel Warning: <" << modelName + G4cout << "G4hParametrisedLossModel Warning: <" << modelName << "> is unknown - default <" << ir49p << ">" << " is used for Electronic Stopping" << G4endl; @@ -296,22 +297,22 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( G4String myFormula = G4String(" ") ; const G4String chFormula = material->GetChemicalFormula() ; if (myFormula == chFormula ) return false ; - + // There are no evidence for difference of stopping power depended on - // phase of the compound except for water. The stopping power of the + // phase of the compound except for water. The stopping power of the // water in gas phase can be predicted using Bragg's rule. - // - // No chemical factor for water-gas - + // + // No chemical factor for water-gas + myFormula = G4String("H_2O") ; const G4State theState = material->GetState() ; if( theState == kStateGas && myFormula == chFormula) return false ; - + const size_t numberOfMolecula = 53 ; // The coffecient from Table.4 of Ziegler & Manoyan - static const G4double HeEff = 2.8735 ; - + static const G4double HeEff = 2.8735 ; + static const G4String name[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", @@ -325,9 +326,9 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( "(C_3H_6)_N","(C_8H_8)_N", "C_3H_8", "C_3H_6-Propylene", "C_3H_6O", "C_3H_6S", "C_4H_4S", "C_7H_8" }; - + static const G4double expStopping[numberOfMolecula] = { - 66.1, 190.4, 258.7, 42.2, 141.5, + 66.1, 190.4, 258.7, 42.2, 141.5, 210.9, 279.6, 198.8, 31.0, 267.5, 122.8, 311.4, 260.3, 328.9, 391.3, 206.6, 374.0, 422.0, 432.0, 398.0, @@ -341,7 +342,7 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( } ; static const G4double expCharge[numberOfMolecula] = { - HeEff, HeEff, HeEff, 1.0, HeEff, + HeEff, HeEff, HeEff, 1.0, HeEff, HeEff, HeEff, HeEff, 1.0, 1.0, 1.0, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, @@ -355,7 +356,7 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( } ; static const G4double numberOfAtomsPerMolecula[numberOfMolecula] = { - 3.0, 7.0, 10.0, 4.0, 6.0, + 3.0, 7.0, 10.0, 4.0, 6.0, 9.0, 12.0, 7.0, 4.0, 24.0, 12.0, 14.0, 10.0, 13.0, 5.0, 5.0, 14.0, 18.0, 17.0, 17.0, @@ -370,16 +371,16 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( // Search for the compaund in the table for (size_t i=0; iGetTotNbOfAtomsPerVolume()) / (expCharge[i] * numberOfAtomsPerMolecula[i]) ; SetExpStopPower125(exp125) ; return true ; } } - + return false ; } @@ -391,18 +392,18 @@ G4double G4hParametrisedLossModel::ChemicalFactor( // Approximation of Chemical Factor according to // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, // Nucl. Inst. & Meth. in Phys. Res. B35 (1988) 215-228. - - G4double gamma = 1.0 + kineticEnergy/proton_mass_c2 ; + + G4double gamma = 1.0 + kineticEnergy/proton_mass_c2 ; G4double gamma25 = 1.0 + 25.0*keV /proton_mass_c2 ; G4double gamma125 = 1.0 + 125.0*keV/proton_mass_c2 ; G4double beta = std::sqrt(1.0 - 1.0/(gamma*gamma)) ; G4double beta25 = std::sqrt(1.0 - 1.0/(gamma25*gamma25)) ; G4double beta125 = std::sqrt(1.0 - 1.0/(gamma125*gamma125)) ; - + G4double factor = 1.0 + (expStopPower125/eloss125 - 1.0) * - (1.0 + std::exp( 1.48 * ( beta125/beta25 - 7.0 ) ) ) / - (1.0 + std::exp( 1.48 * ( beta/beta25 - 7.0 ) ) ) ; - + (1.0 + G4Exp( 1.48 * ( beta125/beta25 - 7.0 ) ) ) / + (1.0 + G4Exp( 1.48 * ( beta/beta25 - 7.0 ) ) ) ; + return factor ; } diff --git a/source/processes/electromagnetic/muons/History b/source/processes/electromagnetic/muons/History index b093ef5891..5b205a6e89 100644 --- a/source/processes/electromagnetic/muons/History +++ b/source/processes/electromagnetic/muons/History @@ -1,4 +1,4 @@ -$Id: History 91743 2015-08-04 11:49:58Z gcosmo $ +$Id: History 97740 2016-06-08 09:23:36Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,22 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +07 June 16: V.Ivant (emmuons-V10-02-04) +- G4MuMultipleScattering - roll back previous + version to avoid necessity to change user code + +02 June 16: V.Ivant (emmuons-V10-02-03) +- G4MuMultipleScattering - fixed model initialisation (do not + create extra unneccesary objects) + +1 June 16: D.Sawkey (emmuons-V10-02-02) +- Most files: use C++11 features explicit, override, delete, nullptr + +18 March 16: V.Ivant (emmuons-V10-02-01) +18 March 16: V.Ivant (emmuons-V10-02-00) +- G4ePairProduction - new process e+e- pair production by e+- +- G4MuPairProduction, G4MuPairProductionModel - c++11 keywards added + 03 August 15: V.Ivant (emmuons-V10-01-01) - Technical tag: substitute tabs by spaces, add comments to do/while and while loops diff --git a/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh b/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh index 06b771e172..416501f344 100644 --- a/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh +++ b/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EnergyLossForExtrapolator.hh 86978 2014-11-21 12:08:34Z gcosmo $ +// $Id: G4EnergyLossForExtrapolator.hh 97392 2016-06-02 10:10:32Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -68,7 +68,7 @@ class G4EnergyLossForExtrapolator { public: - G4EnergyLossForExtrapolator(G4int verb = 1); + explicit G4EnergyLossForExtrapolator(G4int verb = 1); ~G4EnergyLossForExtrapolator(); diff --git a/source/processes/electromagnetic/muons/include/G4ErrorEnergyLoss.hh b/source/processes/electromagnetic/muons/include/G4ErrorEnergyLoss.hh index 86570c88a7..f2137c3cba 100644 --- a/source/processes/electromagnetic/muons/include/G4ErrorEnergyLoss.hh +++ b/source/processes/electromagnetic/muons/include/G4ErrorEnergyLoss.hh @@ -49,23 +49,23 @@ class G4ErrorEnergyLoss : public G4VContinuousProcess public: - G4ErrorEnergyLoss(const G4String& processName = "G4ErrorEnergyLoss", + explicit G4ErrorEnergyLoss(const G4String& processName = "G4ErrorEnergyLoss", G4ProcessType type = fElectromagnetic); virtual ~G4ErrorEnergyLoss(); - G4bool IsApplicable(const G4ParticleDefinition& aParticleType); + G4bool IsApplicable(const G4ParticleDefinition& aParticleType) override; // Returns true -> 'is applicable', for all charged particles. G4double GetContinuousStepLimit(const G4Track& aTrack, G4double , G4double currentMinimumStep, - G4double& ); + G4double& ) override; // Returns DBL_MAX as continuous step limit G4VParticleChange* AlongStepDoIt(const G4Track& aTrack, - const G4Step& aStep); + const G4Step& aStep) override; // This is the method implementing the energy loss process. // Get and Set methods @@ -78,8 +78,8 @@ private: // Create the G4EnergyLossForExtrapolator // copy constructor and hide assignment operator - G4ErrorEnergyLoss(G4ErrorEnergyLoss &); - G4ErrorEnergyLoss & operator=(const G4ErrorEnergyLoss &right); + G4ErrorEnergyLoss(G4ErrorEnergyLoss &) = delete; + G4ErrorEnergyLoss & operator=(const G4ErrorEnergyLoss &right) = delete; private: G4EnergyLossForExtrapolator* theELossForExtrapolator; diff --git a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh index 5a5400a3f9..352f4adc93 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuBetheBlochModel.hh 68035 2013-03-13 14:12:34Z gcosmo $ +// $Id: G4MuBetheBlochModel.hh 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,15 +71,16 @@ class G4MuBetheBlochModel : public G4VEmModel public: - G4MuBetheBlochModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "MuBetheBloch"); + explicit G4MuBetheBlochModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "MuBetheBloch"); virtual ~G4MuBetheBlochModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double MinEnergyCut(const G4ParticleDefinition*, - const G4MaterialCutsCouple*); + const G4MaterialCutsCouple*) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -92,37 +93,37 @@ public: G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) override; private: inline void SetParticle(const G4ParticleDefinition* p); // hide assignment operator - G4MuBetheBlochModel & operator=(const G4MuBetheBlochModel &right); - G4MuBetheBlochModel(const G4MuBetheBlochModel&); + G4MuBetheBlochModel & operator=(const G4MuBetheBlochModel &right) = delete; + G4MuBetheBlochModel(const G4MuBetheBlochModel&) = delete; const G4ParticleDefinition* particle; G4ParticleDefinition* theElectron; @@ -135,8 +136,8 @@ private: G4double massSquare; G4double ratio; G4double twoln10; - G4double bg2lim; - G4double taulim; + //G4double bg2lim; + //G4double taulim; G4double alphaprime; static G4double xgi[8],wgi[8]; }; diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh index 5cf6416484..88af0a904b 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuBremsstrahlung.hh 72942 2013-08-14 13:37:37Z gcosmo $ +// $Id: G4MuBremsstrahlung.hh 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -80,29 +80,29 @@ class G4MuBremsstrahlung : public G4VEnergyLossProcess { public: - G4MuBremsstrahlung(const G4String& processName = "muBrems"); + explicit G4MuBremsstrahlung(const G4String& processName = "muBrems"); virtual ~G4MuBremsstrahlung(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, const G4Material*, - G4double cut); + G4double cut) override; - virtual void PrintInfo(); + virtual void PrintInfo() override; inline void SetLowestKineticEnergy(G4double e); protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; private: - G4MuBremsstrahlung & operator=(const G4MuBremsstrahlung &right); - G4MuBremsstrahlung(const G4MuBremsstrahlung&); + G4MuBremsstrahlung & operator=(const G4MuBremsstrahlung &right) = delete; + G4MuBremsstrahlung(const G4MuBremsstrahlung&) = delete; protected: diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh index 5e82257e3c..f1cec9de5e 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuBremsstrahlungModel.hh 72114 2013-07-10 09:37:26Z gcosmo $ +// $Id: G4MuBremsstrahlungModel.hh 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -74,41 +74,43 @@ class G4MuBremsstrahlungModel : public G4VEmModel public: - G4MuBremsstrahlungModel(const G4ParticleDefinition* p = 0, + explicit G4MuBremsstrahlungModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "MuBrem"); virtual ~G4MuBremsstrahlungModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double MinEnergyCut(const G4ParticleDefinition*, - const G4MaterialCutsCouple*); + const G4MaterialCutsCouple*) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; inline void SetLowestKineticEnergy(G4double e); virtual G4double MinPrimaryEnergy(const G4Material*, - const G4ParticleDefinition*, G4double); + const G4ParticleDefinition*, + G4double) override; protected: @@ -127,8 +129,9 @@ protected: private: // hide assignment operator - G4MuBremsstrahlungModel & operator=(const G4MuBremsstrahlungModel &right); - G4MuBremsstrahlungModel(const G4MuBremsstrahlungModel&); + G4MuBremsstrahlungModel & + operator=(const G4MuBremsstrahlungModel &right) = delete; + G4MuBremsstrahlungModel(const G4MuBremsstrahlungModel&) = delete; protected: diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh index 568dd49b6c..b31ce29f64 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuIonisation.hh 68035 2013-03-13 14:12:34Z gcosmo $ +// $Id: G4MuIonisation.hh 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -87,28 +87,28 @@ class G4MuIonisation : public G4VEnergyLossProcess public: - G4MuIonisation(const G4String& name = "muIoni"); + explicit G4MuIonisation(const G4String& name = "muIoni"); virtual ~G4MuIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); + const G4Material*, G4double cut) override; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; private: // hide assignment operator - G4MuIonisation & operator=(const G4MuIonisation &right); - G4MuIonisation(const G4MuIonisation&); + G4MuIonisation & operator=(const G4MuIonisation &right) = delete; + G4MuIonisation(const G4MuIonisation&) = delete; G4double mass; G4double ratio; diff --git a/source/processes/electromagnetic/muons/include/G4MuMultipleScattering.hh b/source/processes/electromagnetic/muons/include/G4MuMultipleScattering.hh index 930caca646..d0873f350a 100644 --- a/source/processes/electromagnetic/muons/include/G4MuMultipleScattering.hh +++ b/source/processes/electromagnetic/muons/include/G4MuMultipleScattering.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuMultipleScattering.hh 68035 2013-03-13 14:12:34Z gcosmo $ +// $Id: G4MuMultipleScattering.hh 97392 2016-06-02 10:10:32Z gcosmo $ // // ----------------------------------------------------------------------------- // @@ -62,26 +62,27 @@ class G4MuMultipleScattering : public G4VMultipleScattering { public: // with description - G4MuMultipleScattering(const G4String& processName="muMsc"); + explicit G4MuMultipleScattering(const G4String& processName="muMsc"); virtual ~G4MuMultipleScattering(); // returns true for charged particles, false otherwise - G4bool IsApplicable (const G4ParticleDefinition& p); + G4bool IsApplicable (const G4ParticleDefinition& p) override; // Print few lines of informations about the process: validity range, - void PrintInfo(); + void PrintInfo() override; protected: // This function initialise models - void InitialiseProcess(const G4ParticleDefinition*); + void InitialiseProcess(const G4ParticleDefinition*) override; private: // data members // hide assignment operator - G4MuMultipleScattering & operator=(const G4MuMultipleScattering &right); - G4MuMultipleScattering(const G4MuMultipleScattering&); + G4MuMultipleScattering & + operator=(const G4MuMultipleScattering &right) = delete; + G4MuMultipleScattering(const G4MuMultipleScattering&) = delete; G4bool isInitialized; diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh index ee8d3c29b4..1129c39ec7 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuPairProduction.hh 72942 2013-08-14 13:37:37Z gcosmo $ +// $Id: G4MuPairProduction.hh 96156 2016-03-21 08:10:21Z gcosmo $ // // ------------------------------------------------------------------- // @@ -75,28 +75,29 @@ class G4MuPairProduction : public G4VEnergyLossProcess { public: - G4MuPairProduction(const G4String& processName = "muPairProd"); + explicit G4MuPairProduction(const G4String& processName = "muPairProd"); virtual ~G4MuPairProduction(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); + const G4Material*, G4double cut) override; - virtual void PrintInfo(); + virtual void PrintInfo() override; inline void SetLowestKineticEnergy(G4double e); protected: - virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + virtual void + InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; private: - G4MuPairProduction & operator=(const G4MuPairProduction &right); - G4MuPairProduction(const G4MuPairProduction&); + G4MuPairProduction & operator=(const G4MuPairProduction &right) = delete; + G4MuPairProduction(const G4MuPairProduction&) = delete; protected: diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh index 333e36ab40..0e311bbb69 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuPairProductionModel.hh 74544 2013-10-14 12:40:29Z gcosmo $ +// $Id: G4MuPairProductionModel.hh 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -74,37 +74,38 @@ class G4MuPairProductionModel : public G4VEmModel { public: - G4MuPairProductionModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "muPairProd"); + explicit G4MuPairProductionModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "muPairProd"); virtual ~G4MuPairProductionModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double MinPrimaryEnergy(const G4Material*, const G4ParticleDefinition*, - G4double); + G4double) override; inline void SetLowestKineticEnergy(G4double e); @@ -119,9 +120,9 @@ protected: G4double Z, G4double cut); - virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, - G4double Z, - G4double pairEnergy); + virtual G4double + ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, + G4double pairEnergy); inline G4double MaxSecondaryEnergyForElement(G4double kineticEnergy, G4double Z); @@ -136,8 +137,8 @@ private: G4double yymin, G4double yymax); // hide assignment operator - G4MuPairProductionModel & operator=(const G4MuPairProductionModel &right); - G4MuPairProductionModel(const G4MuPairProductionModel&); + G4MuPairProductionModel & operator=(const G4MuPairProductionModel &right) = delete; + G4MuPairProductionModel(const G4MuPairProductionModel&) = delete; protected: @@ -173,9 +174,6 @@ private: G4double dy; G4double emin; G4double emax; - - static const G4int zdat[5]; - static const G4double adat[5]; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/muons/include/G4TablesForExtrapolator.hh b/source/processes/electromagnetic/muons/include/G4TablesForExtrapolator.hh index fd4347fe7b..123eaff9fb 100644 --- a/source/processes/electromagnetic/muons/include/G4TablesForExtrapolator.hh +++ b/source/processes/electromagnetic/muons/include/G4TablesForExtrapolator.hh @@ -76,7 +76,7 @@ class G4TablesForExtrapolator { public: - G4TablesForExtrapolator(G4int verb, G4int bins, G4double e1, G4double e2); + explicit G4TablesForExtrapolator(G4int verb, G4int bins, G4double e1, G4double e2); ~G4TablesForExtrapolator(); @@ -101,8 +101,8 @@ private: G4PhysicsTable* table); // hide assignment operator - G4TablesForExtrapolator & operator=(const G4TablesForExtrapolator &right); - G4TablesForExtrapolator(const G4TablesForExtrapolator&); + G4TablesForExtrapolator & operator=(const G4TablesForExtrapolator &right) = delete; + G4TablesForExtrapolator(const G4TablesForExtrapolator&) = delete; const G4ParticleDefinition* currentParticle; const G4ParticleDefinition* electron; diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh b/source/processes/electromagnetic/muons/include/G4ePairProduction.hh similarity index 58% rename from source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh rename to source/processes/electromagnetic/muons/include/G4ePairProduction.hh index 15e02dee52..7cb253e9b7 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh +++ b/source/processes/electromagnetic/muons/include/G4ePairProduction.hh @@ -23,74 +23,80 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EnergyLossMessenger.hh 90095 2015-05-13 12:10:25Z gcosmo $ +// $Id: G4ePairProduction.hh 72895 2013-08-09 11:34:16Z vnivanch $ // // ------------------------------------------------------------------- // -// GEANT4 Class file +// GEANT4 Class header file // -// File name: G4EnergyLossMessenger // -// Author: Michel Maire +// File name: G4ePairProduction // -// Creation date: 22-06-2000 +// Author: Vladimir Ivanchenko +// +// Creation date: 17.03.2016 // // Modifications: -// 10-01-06 SetStepLimits -> SetStepFunction (V.Ivantchenko) -// 10-05-06 Add command MscStepLimit (V.Ivantchenko) -// 10-11-06 Add command binsDEDX (V.Ivantchenko) -// 12-02-07 Add SetSkin, SetLinearLossLimit (V.Ivanchenko) -// 16-03-07 modify /process/eLoss/minsubsec command (V.Ivanchenko) -// 18-05-07 add /process/msc directory and commands (V.Ivanchenko) -// 11-03-08 add /process/em directory and commands (V.Ivanchenko) // +// Class Description: +// +// This class manages the PairProduction process for e+-. +// it inherites from G4VEnergyLossProcess. +// + // ------------------------------------------------------------------- // -// Class Description: -// This is a messenger class to interface to exchange information -// between G4VEm and UI. -// +#ifndef G4ePairProduction_h +#define G4ePairProduction_h 1 -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef G4EnergyLossMessenger_h -#define G4EnergyLossMessenger_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "globals.hh" -#include "G4UImessenger.hh" +#include "G4VEnergyLossProcess.hh" -class G4UIdirectory; -class G4UIcommand; -class G4UIcmdWithABool; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADouble; -class G4UIcmdWithADoubleAndUnit; -class G4EmProcessOptions; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class G4EnergyLossMessenger: public G4UImessenger +class G4ePairProduction : public G4VEnergyLossProcess { -public: // with description - - G4EnergyLossMessenger(); - virtual ~G4EnergyLossMessenger(); +public: - void SetNewValue(G4UIcommand*, G4String); + explicit G4ePairProduction(const G4String& processName = "ePairProd"); + + virtual ~G4ePairProduction(); + + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut) override; + + virtual void PrintInfo() override; + + inline void SetLowestKineticEnergy(G4double e); + +protected: + + virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; private: - G4EmProcessOptions* opt; - G4UIcmdWithABool* SubSecCmd; - G4UIcommand* StepFuncCmd; - G4UIcommand* deexCmd; - G4UIcmdWithABool* IntegCmd; - G4UIcommand* bfCmd; - G4UIcommand* fiCmd; - G4UIcommand* brCmd; + G4ePairProduction & operator=(const G4ePairProduction &right) = delete; + G4ePairProduction(const G4ePairProduction&) = delete; + +protected: + + const G4ParticleDefinition* theParticle; + G4double lowestKinEnergy; + G4bool isInitialised; + }; -#endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +inline void G4ePairProduction::SetLowestKineticEnergy(G4double e) +{ + lowestKinEnergy = e; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/muons/sources.cmake b/source/processes/electromagnetic/muons/sources.cmake index 0e4df64471..dc192db2bb 100644 --- a/source/processes/electromagnetic/muons/sources.cmake +++ b/source/processes/electromagnetic/muons/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 85247 2014-10-27 08:27:24Z gcosmo $ +# $Id: sources.cmake 96156 2016-03-21 08:10:21Z gcosmo $ # #------------------------------------------------------------------------------ @@ -53,6 +53,7 @@ GEANT4_DEFINE_MODULE(NAME G4muons G4MuPairProduction.hh G4MuPairProductionModel.hh G4TablesForExtrapolator.hh + G4ePairProduction.hh SOURCES G4EnergyLossForExtrapolator.cc G4ErrorEnergyLoss.cc @@ -64,6 +65,7 @@ GEANT4_DEFINE_MODULE(NAME G4muons G4MuPairProduction.cc G4MuPairProductionModel.cc G4TablesForExtrapolator.cc + G4ePairProduction.cc GRANULAR_DEPENDENCIES G4baryons G4bosons diff --git a/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc b/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc index cfb74062be..c6bf3d024c 100644 --- a/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc +++ b/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EnergyLossForExtrapolator.cc 87062 2014-11-24 11:45:21Z gcosmo $ +// $Id: G4EnergyLossForExtrapolator.cc 97392 2016-06-02 10:10:32Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -62,13 +62,13 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4TablesForExtrapolator* G4EnergyLossForExtrapolator::tables = 0; +G4TablesForExtrapolator* G4EnergyLossForExtrapolator::tables = nullptr; G4EnergyLossForExtrapolator::G4EnergyLossForExtrapolator(G4int verb) : maxEnergyTransfer(DBL_MAX), verbose(verb) { - currentParticle = 0; - currentMaterial = 0; + currentParticle = nullptr; + currentMaterial = nullptr; linLossLimit = 0.01; emin = 1.*MeV; @@ -86,7 +86,7 @@ G4EnergyLossForExtrapolator::G4EnergyLossForExtrapolator(G4int verb) = idxInvRangeElectron = idxInvRangePositron = idxInvRangeMuon = idxInvRangeProton = idxMscElectron = 0; - electron = positron = proton = muonPlus = muonMinus = 0; + electron = positron = proton = muonPlus = muonMinus = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -220,7 +220,7 @@ G4EnergyLossForExtrapolator::SetupKinematics(const G4ParticleDefinition* part, const G4ParticleDefinition* G4EnergyLossForExtrapolator::FindParticle(const G4String& name) { - const G4ParticleDefinition* p = 0; + const G4ParticleDefinition* p = nullptr; if(name != currentParticleName) { p = G4ParticleTable::GetParticleTable()->FindParticle(name); if(!p) { @@ -307,8 +307,8 @@ void G4EnergyLossForExtrapolator::Initialisation() if(verbose>1) { G4cout << "### G4EnergyLossForExtrapolator::Initialisation" << G4endl; } - currentParticle = 0; - currentMaterial = 0; + currentParticle = nullptr; + currentMaterial = nullptr; kineticEnergy = 0.0; electron = G4Electron::Electron(); @@ -347,7 +347,7 @@ G4EnergyLossForExtrapolator::~G4EnergyLossForExtrapolator() { G4AutoLock l(&G4EnergyLossForExtrapolatorMutex); delete tables; - tables = 0; + tables = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc index cf51642ff8..33acca9830 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuBetheBlochModel.cc 91743 2015-08-04 11:49:58Z gcosmo $ +// $Id: G4MuBetheBlochModel.cc 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -79,17 +79,17 @@ using namespace std; G4MuBetheBlochModel::G4MuBetheBlochModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), - particle(0), + particle(nullptr), limitKinEnergy(100.*keV), logLimitKinEnergy(G4Log(limitKinEnergy)), twoln10(2.0*G4Log(10.0)), - bg2lim(0.0169), - taulim(8.4146e-3), + //bg2lim(0.0169), + //taulim(8.4146e-3), alphaprime(fine_structure_const/twopi) { theElectron = G4Electron::Electron(); corr = G4LossTableManager::Instance()->EmCorrections(); - fParticleChange = 0; + fParticleChange = nullptr; // initial initialisation of memeber should be overwritten // by SetParticle diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc index 14f1d09a6a..95655f9033 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuBremsstrahlung.cc 85023 2014-10-23 09:56:39Z gcosmo $ +// $Id: G4MuBremsstrahlung.cc 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -116,7 +116,7 @@ void G4MuBremsstrahlung::InitialiseEnergyLossProcess( if (!EmModel()) { SetEmModel(new G4MuBremsstrahlungModel()); } - G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = nullptr; G4EmParameters* param = G4EmParameters::Instance(); EmModel()->SetLowEnergyLimit(param->MinKinEnergy()); EmModel()->SetHighEnergyLimit(param->MaxKinEnergy()); diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc index 8969384a8b..3451588071 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuBremsstrahlungModel.cc 91743 2015-08-04 11:49:58Z gcosmo $ +// $Id: G4MuBremsstrahlungModel.cc 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -91,13 +91,13 @@ G4double G4MuBremsstrahlungModel::fDN[] = {0.0}; G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), - particle(0), + particle(nullptr), sqrte(sqrt(G4Exp(1.))), bh(202.4), bh1(446.), btf(183.), btf1(1429.), - fParticleChange(0), + fParticleChange(nullptr), lowestKinEnergy(1.0*GeV), minThreshold(0.9*keV) { diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc index 3ab17d2f86..ac87993560 100644 --- a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuIonisation.cc 85023 2014-10-23 09:56:39Z gcosmo $ +// $Id: G4MuIonisation.cc 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -98,8 +98,8 @@ using namespace std; G4MuIonisation::G4MuIonisation(const G4String& name) : G4VEnergyLossProcess(name), - theParticle(0), - theBaseParticle(0), + theParticle(nullptr), + theBaseParticle(nullptr), isInitialised(false) { mass = ratio = 0; diff --git a/source/processes/electromagnetic/muons/src/G4MuMultipleScattering.cc b/source/processes/electromagnetic/muons/src/G4MuMultipleScattering.cc index 8a3267033a..9e8860031d 100644 --- a/source/processes/electromagnetic/muons/src/G4MuMultipleScattering.cc +++ b/source/processes/electromagnetic/muons/src/G4MuMultipleScattering.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuMultipleScattering.cc 88678 2015-03-05 08:34:20Z gcosmo $ +// $Id: G4MuMultipleScattering.cc 97740 2016-06-08 09:23:36Z gcosmo $ // // ----------------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc index 8e47012266..5921317c7c 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuPairProduction.cc 85023 2014-10-23 09:56:39Z gcosmo $ +// $Id: G4MuPairProduction.cc 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -83,7 +83,7 @@ using namespace std; G4MuPairProduction::G4MuPairProduction(const G4String& name) : G4VEnergyLossProcess(name), - theParticle(0), + theParticle(nullptr), lowestKinEnergy(1.*GeV), isInitialised(false) { @@ -124,16 +124,17 @@ void G4MuPairProduction::InitialiseEnergyLossProcess( theParticle = part; - if (!EmModel()) { SetEmModel(new G4MuPairProductionModel(part)); } + G4MuPairProductionModel* mod = new G4MuPairProductionModel(part); + SetEmModel(mod, 1); - G4double limit = part->GetPDGMass()*8; - if(limit > lowestKinEnergy) { lowestKinEnergy = limit; } + lowestKinEnergy = std::max(lowestKinEnergy, part->GetPDGMass()*8.0); + mod->SetLowestKineticEnergy(lowestKinEnergy); - G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = nullptr; G4EmParameters* param = G4EmParameters::Instance(); - EmModel()->SetLowEnergyLimit(param->MinKinEnergy()); - EmModel()->SetHighEnergyLimit(param->MaxKinEnergy()); - AddEmModel(1, EmModel(), fm); + mod->SetLowEnergyLimit(param->MinKinEnergy()); + mod->SetHighEnergyLimit(param->MaxKinEnergy()); + AddEmModel(1, mod, fm); } } diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc index 92c587841a..10c6c1c861 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MuPairProductionModel.cc 91743 2015-08-04 11:49:58Z gcosmo $ +// $Id: G4MuPairProductionModel.cc 97392 2016-06-02 10:10:32Z gcosmo $ // // ------------------------------------------------------------------- // @@ -90,12 +90,14 @@ // static members // -const G4int G4MuPairProductionModel::zdat[]={1, 4, 13, 29, 92}; -const G4double G4MuPairProductionModel::adat[]={1.01, 9.01,26.98, 63.55, 238.03}; -const G4double G4MuPairProductionModel::xgi[]={ 0.0199, 0.1017, 0.2372, 0.4083, - 0.5917, 0.7628, 0.8983, 0.9801 }; -const G4double G4MuPairProductionModel::wgi[]={ 0.0506, 0.1112, 0.1569, 0.1813, - 0.1813, 0.1569, 0.1112, 0.0506 }; +static const G4double ak1 = 6.9; +static const G4double ak2 = 1.0; +static const G4int zdat[5] = {1, 4, 13, 29, 92}; + +const G4double G4MuPairProductionModel::xgi[] = + { 0.0199, 0.1017, 0.2372, 0.4083, 0.5917, 0.7628, 0.8983, 0.9801 }; +const G4double G4MuPairProductionModel::wgi[8] = + { 0.0506, 0.1112, 0.1569, 0.1813, 0.1813, 0.1569, 0.1112, 0.0506 }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -104,12 +106,12 @@ using namespace std; G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), - particle(0), + particle(nullptr), factorForCross(4.*fine_structure_const*fine_structure_const *classic_electr_radius*classic_electr_radius/(3.*pi)), sqrte(sqrt(G4Exp(1.))), currentZ(0), - fParticleChange(0), + fParticleChange(nullptr), minPairEnergy(4.*electron_mass_c2), lowestKinEnergy(1.0*GeV), nzdat(5), @@ -124,16 +126,15 @@ G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition* p, theElectron = G4Electron::Electron(); thePositron = G4Positron::Positron(); - particleMass = lnZ = z13 = z23 = 0; + particleMass = lnZ = z13 = z23 = 0.; // setup lowest limit dependent on particle mass if(p) { SetParticle(p); - G4double limit = p->GetPDGMass()*8; - if(limit > lowestKinEnergy) { lowestKinEnergy = limit; } + lowestKinEnergy = std::max(lowestKinEnergy,p->GetPDGMass()*8.0); } emin = lowestKinEnergy; - emax = 10*TeV; + emax = 10.*TeV; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -216,7 +217,7 @@ G4double G4MuPairProductionModel::ComputeDEDXPerVolume( G4double loss = ComputMuPairLoss(Z, kineticEnergy, cutEnergy, tmax); dedx += loss*theAtomicNumDensityVector[i]; } - if (dedx < 0.) { dedx = 0.; } + dedx = std::max(dedx, 0.0); return dedx; } @@ -234,8 +235,6 @@ G4double G4MuPairProductionModel::ComputMuPairLoss(G4double Z, // calculate the rectricted loss // numerical integration in log(PairEnergy) - G4double ak1=6.9; - G4double ak2=1.0; G4double aaa = G4Log(minPairEnergy); G4double bbb = G4Log(cut); @@ -257,7 +256,7 @@ G4double G4MuPairProductionModel::ComputMuPairLoss(G4double Z, x += hhh; } loss *= hhh; - if (loss < 0.) loss = 0.; + loss = std::max(loss, 0.0); return loss; } @@ -273,8 +272,8 @@ G4double G4MuPairProductionModel::ComputeMicroscopicCrossSection( G4double cut = std::max(cutEnergy, minPairEnergy); if (tmax <= cut) { return cross; } - G4double ak1=6.9 ; - G4double ak2=1.0 ; + // G4double ak1=6.9 ; + // G4double ak2=1.0 ; G4double aaa = G4Log(cut); G4double bbb = G4Log(tmax); G4int kkk = (G4int)((bbb-aaa)/ak1 + ak2); @@ -295,7 +294,7 @@ G4double G4MuPairProductionModel::ComputeMicroscopicCrossSection( } cross *= hhh; - if(cross < 0.0) { cross = 0.0; } + cross = std::max(cross, 0.0); return cross; } @@ -305,9 +304,9 @@ G4double G4MuPairProductionModel::ComputeDMicroscopicCrossSection( G4double tkin, G4double Z, G4double pairEnergy) - // Calculates the differential (D) microscopic cross section - // using the cross section formula of R.P. Kokoulin (18/01/98) - // Code modified by R.P. Kokoulin, V.N. Ivanchenko (27/01/04) +// Calculates the differential (D) microscopic cross section +// using the cross section formula of R.P. Kokoulin (18/01/98) +// Code modified by R.P. Kokoulin, V.N. Ivanchenko (27/01/04) { static const G4double bbbtf= 183. ; static const G4double bbbh = 202.4 ; @@ -318,8 +317,8 @@ G4double G4MuPairProductionModel::ComputeDMicroscopicCrossSection( G4double totalEnergy = tkin + particleMass; G4double residEnergy = totalEnergy - pairEnergy; - G4double massratio = particleMass/electron_mass_c2 ; - G4double massratio2 = massratio*massratio ; + G4double massratio = particleMass/electron_mass_c2; + G4double massratio2 = massratio*massratio; G4double cross = 0.; G4double c3 = 0.75*sqrte*particleMass; @@ -408,7 +407,7 @@ G4double G4MuPairProductionModel::ComputeDMicroscopicCrossSection( } cross = -tmn*sum*factorForCross*z2*residEnergy/(totalEnergy*pairEnergy); - if(cross < 0.0) { cross = 0.0; } + cross = std::max(cross, 0.0); return cross; } diff --git a/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc b/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc index 8cd13945dc..00c15dd825 100644 --- a/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc +++ b/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc @@ -119,7 +119,7 @@ G4TablesForExtrapolator:: ~G4TablesForExtrapolator() const G4PhysicsTable* G4TablesForExtrapolator::GetPhysicsTable(ExtTableType type) const { - const G4PhysicsTable* table = 0; + const G4PhysicsTable* table = nullptr; switch (type) { case fDedxElectron: @@ -171,7 +171,7 @@ void G4TablesForExtrapolator::Initialisation() if(verbose>1) { G4cout << "### G4TablesForExtrapolator::Initialisation" << G4endl; } - currentParticle = 0; + currentParticle = nullptr; electron = G4Electron::Electron(); positron = G4Positron::Positron(); diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc b/source/processes/electromagnetic/muons/src/G4ePairProduction.cc similarity index 50% rename from examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc rename to source/processes/electromagnetic/muons/src/G4ePairProduction.cc index d1a8136181..0a19531058 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc +++ b/source/processes/electromagnetic/muons/src/G4ePairProduction.cc @@ -23,114 +23,119 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file electromagnetic/TestEm10/src/Em10CalorimeterSD.cc -/// \brief Implementation of the Em10CalorimeterSD class +// $Id: G4ePairProduction.cc 84953 2014-10-22 15:08:57Z vnivanch $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file // // -// $Id: Em10CalorimeterSD.cc 66241 2012-12-13 18:34:42Z gunter $ +// File name: G4ePairProduction +// +// Author: Vladimir Ivanchenko +// +// Creation date: 17.03.2016 +// +// Modifications: +// +// ------------------------------------------------------------------- // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "Em10CalorimeterSD.hh" - -#include "Em10CalorHit.hh" -#include "Em10DetectorConstruction.hh" - -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" - -#include "G4ios.hh" +#include "G4ePairProduction.hh" +#include "G4SystemOfUnits.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4VEmModel.hh" +#include "G4VEmFluctuationModel.hh" +#include "G4MuPairProductionModel.hh" +#include "G4ElementData.hh" +#include "G4EmParameters.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em10CalorimeterSD::Em10CalorimeterSD(G4String name, - Em10DetectorConstruction* det) -:G4VSensitiveDetector(name),Detector(det) +using namespace std; + +G4ePairProduction::G4ePairProduction(const G4String& name) + : G4VEnergyLossProcess(name), + theParticle(nullptr), + lowestKinEnergy(100.*MeV), + isInitialised(false) { - collectionName.insert("CalCollection"); - HitID = new G4int[500]; + SetProcessSubType(fPairProdByCharged); + SetSecondaryParticle(G4Positron::Positron()); + SetIonisation(false); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em10CalorimeterSD::~Em10CalorimeterSD() +G4ePairProduction::~G4ePairProduction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4ePairProduction::IsApplicable(const G4ParticleDefinition& p) { - delete [] HitID; + return (G4Electron::Electron() == &p || G4Positron::Positron() == &p); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void Em10CalorimeterSD::Initialize(G4HCofThisEvent*) +G4double G4ePairProduction::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double) { - CalCollection = new Em10CalorHitsCollection - (SensitiveDetectorName,collectionName[0]); - for (G4int j=0;j<1; j++) {HitID[j] = -1;}; + return lowestKinEnergy; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool Em10CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) +void G4ePairProduction::InitialiseEnergyLossProcess( + const G4ParticleDefinition* part, + const G4ParticleDefinition*) { - G4double edep = aStep->GetTotalEnergyDeposit(); - - G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) - stepl = aStep->GetStepLength(); - - if ((edep==0.)&&(stepl==0.)) return false; + if (!isInitialised) { + isInitialised = true; - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4VPhysicalVolume* physVol = theTouchable->GetVolume(); - //theTouchable->MoveUpHistory(); - G4int Em10Number = 0 ; + theParticle = part; - if (HitID[Em10Number]==-1) - { - Em10CalorHit* calHit = new Em10CalorHit(); - if (physVol == Detector->GetAbsorber()) calHit->AddAbs(edep,stepl); - HitID[Em10Number] = CalCollection->insert(calHit) - 1; - if (verboseLevel>0) - G4cout << " New Calorimeter Hit on Em10: " << Em10Number << G4endl; + G4MuPairProductionModel* mod = new G4MuPairProductionModel(part); + SetEmModel(mod, 1); + + lowestKinEnergy = std::max(lowestKinEnergy, part->GetPDGMass()*8.0); + mod->SetLowestKineticEnergy(lowestKinEnergy); + + G4VEmFluctuationModel* fm = nullptr; + G4EmParameters* param = G4EmParameters::Instance(); + mod->SetLowEnergyLimit(param->MinKinEnergy()); + mod->SetHighEnergyLimit(param->MaxKinEnergy()); + AddEmModel(1, mod, fm); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4ePairProduction::PrintInfo() +{ + G4ElementData* ed = EmModel(1)->GetElementData(); + if(ed) { + for(G4int Z=1; Z<93; ++Z) { + G4Physics2DVector* pv = ed->GetElement2DData(Z); + if(pv) { + G4cout << " Sampling table " << pv->GetLengthY() + << "x" << pv->GetLengthX() << "; from " + << G4Exp(pv->GetY(0))/GeV << " GeV to " + << G4Exp(pv->GetY(pv->GetLengthY()-1))/TeV + << " TeV " << G4endl; + break; + } } - else - { - if (physVol == Detector->GetAbsorber()) - (*CalCollection)[HitID[Em10Number]]->AddAbs(edep,stepl); - if (verboseLevel>0) - G4cout << " Energy added to Em10: " << Em10Number << G4endl; - } - - return true; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void Em10CalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } - HCE->AddHitsCollection(HCID,CalCollection); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10CalorimeterSD::clear() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void Em10CalorimeterSD::PrintAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/polarisation/History b/source/processes/electromagnetic/polarisation/History index 59d18c50fb..7139188cdd 100644 --- a/source/processes/electromagnetic/polarisation/History +++ b/source/processes/electromagnetic/polarisation/History @@ -1,4 +1,4 @@ -$Id: History 93316 2015-10-16 12:36:02Z gcosmo $ +$Id: History 97384 2016-06-02 09:59:17Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +1 Jun 16: D.Sawkey (empolar-V10-02-04) +- G4PolarizationManager: C++11 range-based for loop; +- G4PolarizationManager, G4ePolarizedBremsstrahlungModel: nullptr + +26 May 16: D.Sawkey (empolar-V10-02-03) +- G4PolarizedCompton, G4eplusPolarizedAnnihilation, G4ePolarisedIonisation + In PostStepGPIL, use cached values of currentInteractionLength; fixes + problem at boundaries where updated value incorrectly used + +16 March 16: D.Sawkey (empolar-V10-02-02) +- G4PolarizedAnnihilationModel, G4PolarizedPEEffectModel + try again; use the previous unused variables (verbosity) + +15 March 16: D.Sawkey (empolar-V10-02-01) +- G4PolarizedAnnihilationModel.hh, G4PolarizedPEEffectModel.hh + Remove unused private variables; plus retry of previous changes + +14 March 16: D.Sawkey (empolar-V10-02-00) +- C++11 migrations (most files): explicit, override, delete operators on + function declarations (except G4StokesVector ctor); remaining nullptr; + write floats/doubles with '.' + 16 October 15: V.Ivanchenko (empolar-V10-01-02) - G4PolarizedComptonModel - fixed Coverity warning, use vector of random numbers in sampling of final state diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizationManager.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizationManager.hh index a6299f0ebb..738a59fdec 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizationManager.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizationManager.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizationManager.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizationManager.hh 97384 2016-06-02 09:59:17Z gcosmo $ // // GEANT4 Class header file // @@ -52,7 +52,6 @@ #include class G4LogicalVolume; -class G4PolarizationManager; class G4PolarizationMessenger; typedef std::map PolarizationMap; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizationMessenger.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizationMessenger.hh index 3f6e64858d..661cf0af78 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizationMessenger.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizationMessenger.hh @@ -25,7 +25,7 @@ // // ------------------------------------------------------------------- // -// $Id: G4PolarizationMessenger.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizationMessenger.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class header file // @@ -61,12 +61,12 @@ class G4UIcommand; class G4PolarizationMessenger: public G4UImessenger { public: - G4PolarizationMessenger(G4PolarizationManager* runMgr); + explicit G4PolarizationMessenger(G4PolarizationManager* runMgr); ~G4PolarizationMessenger(); public: - void SetNewValue(G4UIcommand * command,G4String newValues); - G4String GetCurrentValue(G4UIcommand * command); + void SetNewValue(G4UIcommand * command,G4String newValues) override; + G4String GetCurrentValue(G4UIcommand * command) override; private: G4PolarizationManager * polarizationManager; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationCrossSection.hh index 2b42087da9..961f0ce3aa 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationCrossSection.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // ------------------------------------------------------------------- -// $Id: G4PolarizedAnnihilationCrossSection.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedAnnihilationCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // ------------------------------------------------------------------- // // GEANT4 Class file @@ -60,22 +60,22 @@ public: public: virtual void Initialize(G4double eps, G4double gamma, G4double phi, const G4StokesVector & p0,const G4StokesVector & p1, - G4int flag=0); + G4int flag=0) override; G4double DiceEpsilon(); virtual G4double XSection(const G4StokesVector & pol2, - const G4StokesVector & pol3); + const G4StokesVector & pol3) override; virtual G4double TotalXSection(G4double xmin, G4double xmax, G4double y, const G4StokesVector & pol0, - const G4StokesVector & pol1); + const G4StokesVector & pol1) override; // return expected mean polarisation - G4StokesVector GetPol2(); - G4StokesVector GetPol3(); + G4StokesVector GetPol2() override; + G4StokesVector GetPol3() override; - virtual G4double GetXmin(G4double y); // minimal energy fraction in TotalXSection - virtual G4double GetXmax(G4double y); // maximal energy fraction in TotalXSection + virtual G4double GetXmin(G4double y) override; // minimal energy fraction in TotalXSection + virtual G4double GetXmax(G4double y) override; // maximal energy fraction in TotalXSection G4double getVar(G4int ); // test routine diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationModel.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationModel.hh index 17e5aa8c0d..6e570e5dc6 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationModel.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedAnnihilationModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedAnnihilationModel.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedAnnihilationModel.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,18 +65,18 @@ class G4PolarizedAnnihilationModel : public G4eeToTwoGammaModel public: - G4PolarizedAnnihilationModel(const G4ParticleDefinition* p = 0, + explicit G4PolarizedAnnihilationModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "Polarized-Annihilation"); virtual ~G4PolarizedAnnihilationModel(); virtual void Initialise(const G4ParticleDefinition*, - const G4DataVector&); + const G4DataVector&) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, G4double kinEnergy, G4double cut, - G4double emax); + G4double emax) override; void ComputeAsymmetriesPerElectron(G4double gammaEnergy, G4double & valueX, G4double & valueA, @@ -86,7 +86,7 @@ public: const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // polarized routines inline void SetTargetPolarization(const G4ThreeVector & pTarget); @@ -98,8 +98,9 @@ public: private: // hide assignment operator - G4PolarizedAnnihilationModel & operator=(const G4PolarizedAnnihilationModel &right); - G4PolarizedAnnihilationModel(const G4PolarizedAnnihilationModel&); + G4PolarizedAnnihilationModel & + operator=(const G4PolarizedAnnihilationModel &right) = delete; + G4PolarizedAnnihilationModel(const G4PolarizedAnnihilationModel&) = delete; G4PolarizedAnnihilationCrossSection * crossSectionCalculator; // incomming diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedBhabhaCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedBhabhaCrossSection.hh index 3feb96c711..2de68b1a47 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedBhabhaCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedBhabhaCrossSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedBhabhaCrossSection.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedBhabhaCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -57,15 +57,15 @@ public: public: void Initialize(G4double x, G4double y, G4double phi, const G4StokesVector & p0,const G4StokesVector & p1, - G4int flag=0); + G4int flag=0) override; - G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3); + G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3) override; G4double TotalXSection(G4double xmin, G4double xmax, G4double y, const G4StokesVector & pol0, - const G4StokesVector & pol1); + const G4StokesVector & pol1) override; // return expected mean polarisation - G4StokesVector GetPol2(); - G4StokesVector GetPol3(); + G4StokesVector GetPol2() override; + G4StokesVector GetPol3() override; private: G4double phi0; // - part depending on the polarization of the final positron diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedBremsstrahlungCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedBremsstrahlungCrossSection.hh index 517c3a44f0..51f1489e52 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedBremsstrahlungCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedBremsstrahlungCrossSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedBremsstrahlungCrossSection.hh 77295 2013-11-22 11:02:41Z gcosmo $ +// $Id: G4PolarizedBremsstrahlungCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -58,13 +58,13 @@ class G4PolarizedBremsstrahlungCrossSection : public G4VPolarizedCrossSection virtual void Initialize(G4double eps, G4double X, G4double phi, const G4StokesVector & p0, const G4StokesVector & p1, - G4int flag=0); + G4int flag=0) override; virtual G4double XSection(const G4StokesVector & pol2, - const G4StokesVector & pol3); + const G4StokesVector & pol3) override; // return expected mean polarisation - G4StokesVector GetPol2(); // electron/positron - G4StokesVector GetPol3(); // photon + G4StokesVector GetPol2() override; // electron/positron + G4StokesVector GetPol3() override; // photon private: G4StokesVector theFinalLeptonPolarization; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedCompton.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedCompton.hh index f84d3560a7..c94b17441e 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedCompton.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedCompton.hh @@ -74,34 +74,34 @@ class G4PolarizedCompton : public G4VEmProcess { public: // with description - G4PolarizedCompton(const G4String& processName ="pol-compt", + explicit G4PolarizedCompton(const G4String& processName ="pol-compt", G4ProcessType type = fElectromagnetic); virtual ~G4PolarizedCompton(); // true for Gamma only. - virtual G4bool IsApplicable(const G4ParticleDefinition&); + virtual G4bool IsApplicable(const G4ParticleDefinition&) override; // Print few lines of informations about the process: validity range, - virtual void PrintInfo(); + virtual void PrintInfo() override; void SetModel(const G4String& name); protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; // added for polarization treatment of polarized media: - virtual void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void BuildPhysicsTable(const G4ParticleDefinition&) override; virtual G4double GetMeanFreePath(const G4Track& aTrack, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; private: @@ -117,8 +117,8 @@ private: G4double ComputeSaturationFactor(const G4Track& aTrack); - G4PolarizedCompton& operator=(const G4PolarizedCompton &right); - G4PolarizedCompton(const G4PolarizedCompton& ); + G4PolarizedCompton& operator=(const G4PolarizedCompton &right) = delete; + G4PolarizedCompton(const G4PolarizedCompton& ) = delete; G4bool buildAsymmetryTable; G4bool useAsymmetryTable; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonCrossSection.hh index e235cf91f4..9c8fe80111 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonCrossSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedComptonCrossSection.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedComptonCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -62,29 +62,30 @@ public: public: // prepares the ingredients for the calculation of a polarization // dependent differential cross section - // the kinematics is fixed (X - incoming photon energy in units of electron mass, eps - outgoing photon energy in unit of incoming photon energy, + // the kinematics is fixed (X - incoming photon energy in units of electron mass, + // eps - outgoing photon energy in unit of incoming photon energy, // and polarization of the incoming particles fixed (p0, p1) // a flag specifies the extent to which polarization is taken // into account virtual void Initialize(G4double eps, G4double X, G4double phi, const G4StokesVector & p0, const G4StokesVector & p1, - G4int flag=0); + G4int flag=0) override; // returns the differential cross section for a given polarisation state // of the final state particles to be used in the calculation of the // polarization transfer // the calculation has to be initialised by calling Initialize() // prior to the first call of this function (see above) - G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3); + G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3) override; // total cross section G4double TotalXSection(G4double xmin, G4double xmax, G4double y, - const G4StokesVector & pol0,const G4StokesVector & pol1); + const G4StokesVector & pol0,const G4StokesVector & pol1) override; public: // return expected mean polarisation - G4StokesVector GetPol2(); - G4StokesVector GetPol3(); + G4StokesVector GetPol2() override; + G4StokesVector GetPol3() override; private: void DefineCoefficients(const G4StokesVector & pol0, const G4StokesVector & pol1); diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonModel.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonModel.hh index 3a7e369cae..3d02e90b28 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonModel.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedComptonModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedComptonModel.hh 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4PolarizedComptonModel.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -63,7 +63,7 @@ class G4PolarizedComptonModel : public G4KleinNishinaCompton public: - G4PolarizedComptonModel(const G4ParticleDefinition* p = 0, + explicit G4PolarizedComptonModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "Polarized-Compton"); virtual G4double ComputeCrossSectionPerAtom( @@ -72,7 +72,7 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) override; G4double ComputeAsymmetryPerAtom(G4double gammaEnergy, G4double Z); virtual ~G4PolarizedComptonModel(); @@ -80,7 +80,7 @@ public: const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // polarized routines inline void SetTargetPolarization(const G4ThreeVector & pTarget); @@ -95,8 +95,8 @@ private: G4double onecos, G4double phi, const G4String) const; // hide assignment operator - G4PolarizedComptonModel & operator=(const G4PolarizedComptonModel &right); - G4PolarizedComptonModel(const G4PolarizedComptonModel&); + G4PolarizedComptonModel & operator=(const G4PolarizedComptonModel &right) = delete; + G4PolarizedComptonModel(const G4PolarizedComptonModel&) = delete; G4PolarizedComptonCrossSection * crossSectionCalculator; // incomming diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversion.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversion.hh index 2f5bf33ccd..2cf1ce340f 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversion.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversion.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PolarizedGammaConversion.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedGammaConversion.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,26 +64,27 @@ class G4PolarizedGammaConversion : public G4VEmProcess { public: // with description - G4PolarizedGammaConversion(const G4String& processName ="pol-conv", + explicit G4PolarizedGammaConversion(const G4String& processName ="pol-conv", G4ProcessType type = fElectromagnetic); virtual ~G4PolarizedGammaConversion(); // true for Gamma only. - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; // Print few lines of informations about the process: validity range, - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: // hide assignment operator as private - G4PolarizedGammaConversion& operator=(const G4PolarizedGammaConversion &right); - G4PolarizedGammaConversion(const G4PolarizedGammaConversion& ); + G4PolarizedGammaConversion& + operator=(const G4PolarizedGammaConversion &right) = delete; + G4PolarizedGammaConversion(const G4PolarizedGammaConversion& ) = delete; G4bool isInitialised; }; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversionModel.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversionModel.hh index 145d3ed1b4..687841a98d 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversionModel.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedGammaConversionModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedGammaConversionModel.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedGammaConversionModel.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,18 +60,18 @@ class G4PolarizedGammaConversionModel : public G4BetheHeitlerModel public: - G4PolarizedGammaConversionModel(const G4ParticleDefinition* p = 0, + explicit G4PolarizedGammaConversionModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "polConv"); virtual ~G4PolarizedGammaConversionModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; inline const G4Element* SelectedAtom(); diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerBhabhaModel.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerBhabhaModel.hh index c628015cc2..26d2f8671b 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerBhabhaModel.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerBhabhaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedMollerBhabhaModel.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedMollerBhabhaModel.hh 96114 2016-03-16 18:51:33Z gcosmo $ // ------------------------------------------------------------------- // // GEANT4 Class header file @@ -61,7 +61,7 @@ class G4PolarizedMollerBhabhaModel : public G4MollerBhabhaModel public: - G4PolarizedMollerBhabhaModel(const G4ParticleDefinition* p =0, + explicit G4PolarizedMollerBhabhaModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "PolarizedMollerBhabha"); virtual ~G4PolarizedMollerBhabhaModel(); @@ -70,13 +70,13 @@ public: const G4ParticleDefinition*, G4double kinEnergy, G4double cut, - G4double emax); + G4double emax) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // polarization access routines (may go if using a modified ParticleChange) @@ -108,8 +108,9 @@ public: private: // copy constructor and hide assignment operator - G4PolarizedMollerBhabhaModel(G4PolarizedMollerBhabhaModel &); - G4PolarizedMollerBhabhaModel & operator=(const G4PolarizedMollerBhabhaModel &right); + G4PolarizedMollerBhabhaModel(G4PolarizedMollerBhabhaModel &) = delete; + G4PolarizedMollerBhabhaModel & + operator=(const G4PolarizedMollerBhabhaModel &right) = delete; G4StokesVector theBeamPolarization; G4StokesVector theTargetPolarization; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerCrossSection.hh index 74425b7d64..5167b48e8a 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedMollerCrossSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedMollerCrossSection.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedMollerCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -58,14 +58,14 @@ public: public: void Initialize(G4double x, G4double y, G4double phi, const G4StokesVector & p0,const G4StokesVector & p1, - G4int flag=0); + G4int flag=0) override; - G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3); + G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3) override; G4double TotalXSection(G4double xmin, G4double xmax, G4double y, - const G4StokesVector & pol0,const G4StokesVector & pol1); + const G4StokesVector & pol0,const G4StokesVector & pol1) override; // return expected mean polarisation - G4StokesVector GetPol2(); - G4StokesVector GetPol3(); + G4StokesVector GetPol2() override; + G4StokesVector GetPol3() override; private: G4double phi0; // - part depending on the polarization of the final electron P1 diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectCrossSection.hh index 798c175950..c4db1aded2 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectCrossSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedPEEffectCrossSection.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedPEEffectCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -56,14 +56,15 @@ public: virtual void Initialize(G4double aGammaE, G4double aLept0E, G4double sintheta, const G4StokesVector & beamPol, const G4StokesVector & , - G4int flag=0); + G4int flag=0) override; - G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3); + G4double XSection(const G4StokesVector & pol2, + const G4StokesVector & pol3) override; public: // return expected mean polarisation - G4StokesVector GetPol2(); - G4StokesVector GetPol3(); + G4StokesVector GetPol2() override; + G4StokesVector GetPol3() override; private: G4StokesVector theFinalElectronPolarization; }; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectModel.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectModel.hh index 18ec86c7c3..85bbfcc5e8 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectModel.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedPEEffectModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedPEEffectModel.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedPEEffectModel.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,17 +66,18 @@ class G4PolarizedPEEffectModel : public G4PEEffectFluoModel public: - G4PolarizedPEEffectModel(const G4ParticleDefinition* p = 0, + explicit G4PolarizedPEEffectModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "Polarized-PhotoElectric"); - void Initialise(const G4ParticleDefinition* pd, const G4DataVector& dv); + void Initialise(const G4ParticleDefinition* pd, + const G4DataVector& dv) override; virtual ~G4PolarizedPEEffectModel(); virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // polarized routines /* @@ -90,8 +91,9 @@ public: private: // hide assignment operator - G4PolarizedPEEffectModel & operator=(const G4PolarizedPEEffectModel &right); - G4PolarizedPEEffectModel(const G4PolarizedPEEffectModel&); + G4PolarizedPEEffectModel & + operator=(const G4PolarizedPEEffectModel &right) = delete; + G4PolarizedPEEffectModel(const G4PolarizedPEEffectModel&) = delete; G4PolarizedPEEffectCrossSection * crossSectionCalculator; // incomming diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedPairProductionCrossSection.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedPairProductionCrossSection.hh index c4063473da..4cc0ae10d0 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedPairProductionCrossSection.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedPairProductionCrossSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedPairProductionCrossSection.hh 77295 2013-11-22 11:02:41Z gcosmo $ +// $Id: G4PolarizedPairProductionCrossSection.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -57,13 +57,13 @@ class G4PolarizedPairProductionCrossSection : public G4VPolarizedCrossSection virtual void Initialize(G4double eps, G4double X, G4double phi, const G4StokesVector & p0, const G4StokesVector & p1, - G4int flag=0); + G4int flag=0) override; virtual G4double XSection(const G4StokesVector & pol2, - const G4StokesVector & pol3); + const G4StokesVector & pol3) override; // return expected mean polarisation - G4StokesVector GetPol2(); // electron/positron - G4StokesVector GetPol3(); // photon + G4StokesVector GetPol2() override; // electron/positron + G4StokesVector GetPol3() override; // photon private: G4StokesVector theFinalElectronPolarization; diff --git a/source/processes/electromagnetic/polarisation/include/G4PolarizedPhotoElectricEffect.hh b/source/processes/electromagnetic/polarisation/include/G4PolarizedPhotoElectricEffect.hh index 037fa2a7e3..941af3cd77 100644 --- a/source/processes/electromagnetic/polarisation/include/G4PolarizedPhotoElectricEffect.hh +++ b/source/processes/electromagnetic/polarisation/include/G4PolarizedPhotoElectricEffect.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PolarizedPhotoElectricEffect.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedPhotoElectricEffect.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // //------------------ G4PolarizedPhotoElectricEffect physics process ------------------ @@ -87,20 +87,20 @@ class G4PolarizedPhotoElectricEffect : public G4VEmProcess { public: // with description - G4PolarizedPhotoElectricEffect(const G4String& processName ="pol-phot", + explicit G4PolarizedPhotoElectricEffect(const G4String& processName ="pol-phot", G4ProcessType type = fElectromagnetic); virtual ~G4PolarizedPhotoElectricEffect(); // true for Gamma only. - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; // Print few lines of informations about the process: validity range, - void PrintInfo(); + void PrintInfo() override; protected: - void InitialiseProcess(const G4ParticleDefinition*); + void InitialiseProcess(const G4ParticleDefinition*) override; private: diff --git a/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlung.hh b/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlung.hh index 4a8b6e2b2a..7db078140e 100644 --- a/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlung.hh +++ b/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlung.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ePolarizedBremsstrahlung.hh 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4ePolarizedBremsstrahlung.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -53,12 +53,12 @@ class G4ePolarizedBremsstrahlung : public G4eBremsstrahlung public: - G4ePolarizedBremsstrahlung(const G4String& name = "pol-eBrem"); + explicit G4ePolarizedBremsstrahlung(const G4String& name = "pol-eBrem"); protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; }; #endif diff --git a/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlungModel.hh b/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlungModel.hh index 80c6f2fab5..bc5fee7208 100644 --- a/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlungModel.hh +++ b/source/processes/electromagnetic/polarisation/include/G4ePolarizedBremsstrahlungModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ePolarizedBremsstrahlungModel.hh 75601 2013-11-04 13:08:15Z gcosmo $ +// $Id: G4ePolarizedBremsstrahlungModel.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,18 +60,18 @@ class G4ePolarizedBremsstrahlungModel : public G4SeltzerBergerModel public: - G4ePolarizedBremsstrahlungModel(const G4ParticleDefinition* p=0, + explicit G4ePolarizedBremsstrahlungModel(const G4ParticleDefinition* p=nullptr, const G4String& nam = "PolBrem"); virtual ~G4ePolarizedBremsstrahlungModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; inline const G4Element* SelectedAtom(); diff --git a/source/processes/electromagnetic/polarisation/include/G4ePolarizedIonisation.hh b/source/processes/electromagnetic/polarisation/include/G4ePolarizedIonisation.hh index f12aeeb50e..fb1f2cbd6f 100644 --- a/source/processes/electromagnetic/polarisation/include/G4ePolarizedIonisation.hh +++ b/source/processes/electromagnetic/polarisation/include/G4ePolarizedIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ePolarizedIonisation.hh 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4ePolarizedIonisation.hh 96114 2016-03-16 18:51:33Z gcosmo $ // ------------------------------------------------------------------- // // GEANT4 Class header file @@ -68,34 +68,34 @@ class G4ePolarizedIonisation : public G4VEnergyLossProcess public: - G4ePolarizedIonisation(const G4String& name = "pol-eIoni"); + explicit G4ePolarizedIonisation(const G4String& name = "pol-eIoni"); virtual ~G4ePolarizedIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + const G4ParticleDefinition*) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, G4double cut); + const G4Material*, G4double cut) override; // for polarization virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; virtual G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; - virtual void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void BuildPhysicsTable(const G4ParticleDefinition&) override; protected: @@ -115,8 +115,9 @@ private: G4double ComputeSaturationFactor(const G4Track& aTrack); - G4ePolarizedIonisation & operator=(const G4ePolarizedIonisation &right); - G4ePolarizedIonisation(const G4ePolarizedIonisation&); + G4ePolarizedIonisation & + operator=(const G4ePolarizedIonisation &right) = delete; + G4ePolarizedIonisation(const G4ePolarizedIonisation&) = delete; G4ParticleDefinition* theElectron; G4VEmFluctuationModel* flucModel; diff --git a/source/processes/electromagnetic/polarisation/include/G4eplusPolarizedAnnihilation.hh b/source/processes/electromagnetic/polarisation/include/G4eplusPolarizedAnnihilation.hh index f34aed1976..7424d8c365 100644 --- a/source/processes/electromagnetic/polarisation/include/G4eplusPolarizedAnnihilation.hh +++ b/source/processes/electromagnetic/polarisation/include/G4eplusPolarizedAnnihilation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eplusPolarizedAnnihilation.hh 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4eplusPolarizedAnnihilation.hh 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,23 +65,23 @@ class G4eplusPolarizedAnnihilation : public G4eplusAnnihilation public: - G4eplusPolarizedAnnihilation(const G4String& name = "pol-annihil"); + explicit G4eplusPolarizedAnnihilation(const G4String& name = "pol-annihil"); virtual ~G4eplusPolarizedAnnihilation(); // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; virtual G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; - virtual void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void BuildPhysicsTable(const G4ParticleDefinition&) override; private: diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc index b2d9d9f867..fa6d161eb3 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizationHelper.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizationHelper.cc 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizationHelper.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -155,7 +155,7 @@ void G4PolarizationHelper::TestInteractionFrame() G4ThreeVector dir0=G4ThreeVector(0.,0.,1.); G4ThreeVector dir2=G4ThreeVector(std::sin(theta),0.,std::cos(theta)); - + G4StokesVector pol0=G4ThreeVector(0.,0.,1.); G4StokesVector pol1=G4ThreeVector(0.,0.,1.); diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc index bcc99c12ca..a327040ca1 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizationManager.cc 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizationManager.cc 97384 2016-06-02 09:59:17Z gcosmo $ // // GEANT4 Class file // @@ -47,25 +47,25 @@ #include "G4LogicalVolume.hh" -G4ThreadLocal G4PolarizationManager * G4PolarizationManager::instance = 0; +G4ThreadLocal G4PolarizationManager * G4PolarizationManager::instance = nullptr; G4PolarizationManager* G4PolarizationManager::GetInstance() { - if (instance == 0) instance = new G4PolarizationManager(); + if (instance == nullptr) instance = new G4PolarizationManager(); return instance; } void G4PolarizationManager::Dispose() { - if (instance != 0) + if (instance != nullptr) { delete instance; - instance = 0; + instance = nullptr; } } G4PolarizationManager::G4PolarizationManager() - : messenger(0), verboseLevel(0), activated(true) + : messenger(nullptr), verboseLevel(0), activated(true) { messenger = new G4PolarizationMessenger(this); } @@ -81,9 +81,8 @@ void G4PolarizationManager::ListVolumes() <<" registered volume(s) : "<first->GetName()<<" : "<second<GetName() << " : " << vp.second << G4endl; } } @@ -97,10 +96,9 @@ void G4PolarizationManager::SetVolumePolarization(G4LogicalVolume* lVol, const G void G4PolarizationManager::SetVolumePolarization(const G4String & lVolName, const G4ThreeVector & pol) { - for (PolarizationMap::iterator it=volumePolarizations.begin(); - it!=volumePolarizations.end();it++) { - if (it->first->GetName()==lVolName) { - it->second=pol; + for (auto& vp : volumePolarizations) { + if (vp.first->GetName()==lVolName) { + vp.second=pol; if (verboseLevel>=1) G4cout<<" SetVolumePolarization " <IsPolarized(aLVolume); theTargetPolarization = polarizationManager->GetVolumePolarization(aLVolume); + if (verboseLevel >= 1) { + G4cout << "G4PolarizedComptonModel::SampleSecondaries in " + << aLVolume->GetName() << G4endl; + } + // transfer target electron polarization in frame of positron if (targetIsPolarized) theTargetPolarization.rotateUz(dp->GetMomentumDirection()); diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungCrossSection.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungCrossSection.cc index cdd97a348f..e179b92e24 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungCrossSection.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungCrossSection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedBremsstrahlungCrossSection.cc 77295 2013-11-22 11:02:41Z gcosmo $ +// $Id: G4PolarizedBremsstrahlungCrossSection.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -132,11 +132,11 @@ void G4PolarizedBremsstrahlungCrossSection::Initialize( } } else { - G4double alpha_sc = (111 * std::pow(theZ, -1./3.)) / Xsi; - GG = std::log(alpha_sc)- 2 - fCoul; + G4double alpha_sc = (111. * std::pow(theZ, -1./3.)) / Xsi; + GG = std::log(alpha_sc)- 2. - fCoul; } - if(GG<-1) GG=-1; // *KL* do we need this ?! + if(GG<-1.) GG=-1.; // *KL* do we need this ?! G4double I_Lept = (Lept0E2 + Lept1E2) * (3.+2.*GG) - 2 * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG); G4double F_Lept = Lept1E * 4. * GammaE * u * Xsi * (1. - 2 * Xsi) * GG / I_Lept; @@ -166,14 +166,14 @@ void G4PolarizedBremsstrahlungCrossSection::Initialize( } - G4double I_Gamma = (Lept0E2 + Lept1E2)*(3+2*GG) - 2 * Lept0E * Lept1E * (1 + 4 * u2 * Xsi2 * GG); - G4double D_Gamma = 8 * Lept0E * Lept1E * u2 * Xsi2 * GG / I_Gamma; - G4double L_Gamma = GammaE * ((Lept0E + Lept1E) * (3 + 2 * GG) - - 2 * Lept1E * (1 + 4 * u2 * Xsi2 * GG))/I_Gamma; - G4double T_Gamma = 4 * GammaE * Lept1E * Xsi * u * (2 * Xsi - 1) * GG / I_Gamma ; + G4double I_Gamma = (Lept0E2 + Lept1E2)*(3.+2.*GG) - 2. * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG); + G4double D_Gamma = 8. * Lept0E * Lept1E * u2 * Xsi2 * GG / I_Gamma; + G4double L_Gamma = GammaE * ((Lept0E + Lept1E) * (3. + 2. * GG) + - 2. * Lept1E * (1. + 4. * u2 * Xsi2 * GG))/I_Gamma; + G4double T_Gamma = 4. * GammaE * Lept1E * Xsi * u * (2. * Xsi - 1.) * GG / I_Gamma ; G4double Stokes_P1 = D_Gamma ; - G4double Stokes_P2 = 0 ; + G4double Stokes_P2 = 0.; G4double Stokes_P3 = (Stokes_S3*L_Gamma + Stokes_S1*T_Gamma) ; theFinalGammaPolarization.SetPhoton(); @@ -196,7 +196,7 @@ G4double G4PolarizedBremsstrahlungCrossSection::XSection(const G4StokesVector & const G4StokesVector & /*pol3*/) { G4cout<<"ERROR dummy routine G4PolarizedBremsstrahlungCrossSection::XSection called \n"; - return 0; + return 0.; } // return expected mean polarisation diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc index 9acce6d8e9..4cfb58954b 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PolarizedCompton.cc 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4PolarizedCompton.cc 97175 2016-05-27 12:42:05Z gcosmo $ // // // File name: G4PolarizedCompton @@ -175,26 +175,34 @@ G4double G4PolarizedCompton::PostStepGetPhysicalInteractionLength( G4double previousStepSize, G4ForceCondition* condition) { - // save previous value + // save previous values G4double nLength = theNumberOfInteractionLengthLeft; + G4double iLength = currentInteractionLength; - // *** compute uppolarized step limit *** + // *** compute unpolarized step limit *** + // this changes theNumberOfInteractionLengthLeft and currentInteractionLength G4double x = G4VEmProcess::PostStepGetPhysicalInteractionLength(aTrack, previousStepSize, condition); - + G4double x0 = x; + G4double satFact = 1.0; + // *** add corrections on polarisation *** if (theAsymmetryTable && useAsymmetryTable && x < DBL_MAX) { - G4double curLength = currentInteractionLength*ComputeSaturationFactor(aTrack); + satFact = ComputeSaturationFactor(aTrack); + G4double curLength = currentInteractionLength*satFact; + G4double prvLength = iLength*satFact; if(nLength > 0.0) { theNumberOfInteractionLengthLeft = - std::max(nLength - previousStepSize/curLength, 0.0); + std::max(nLength - previousStepSize/prvLength, 0.0); } x = theNumberOfInteractionLengthLeft * curLength; } if (verboseLevel>=2) { - G4cout << "G4PolarizedCompton::PostStepGetPhysicalInteractionLength: " - << x/mm << " mm " << G4endl; + G4cout << "G4PolarizedCompton::PostStepGPIL: " + << std::setprecision(8) << x/mm << " mm;" << G4endl + << " unpolarized value: " + << std::setprecision(8) << x0/mm << " mm." << G4endl; } return x; } @@ -297,8 +305,8 @@ void G4PolarizedCompton::BuildAsymmetryTable(const G4ParticleDefinition& part) G4int nbins = LambdaBinning(); G4double emin = MinKinEnergy(); G4double emax = MaxKinEnergy(); - G4PhysicsLogVector* aVector = 0; - G4PhysicsLogVector* bVector = 0; + G4PhysicsLogVector* aVector = nullptr; + G4PhysicsLogVector* bVector = nullptr; for(size_t i=0; iGetFlag(i)) { diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonCrossSection.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonCrossSection.cc index e9a77aa986..4134c12da1 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonCrossSection.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonCrossSection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedComptonCrossSection.cc 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedComptonCrossSection.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // GEANT4 Class file // @@ -189,7 +189,7 @@ G4double G4PolarizedComptonCrossSection::TotalXSection(G4double /*xmin*/, G4doub { // G4double k0 = gammaEnergy / electron_mass_c2 ; - G4double k1 = 1 + 2*k0 ; + G4double k1 = 1. + 2.*k0 ; // // pi*re^2 // G4double re=2.81794e-15; //m diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonModel.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonModel.cc index 90553654bd..ac191c9c28 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonModel.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedComptonModel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PolarizedComptonModel.cc 93316 2015-10-16 12:36:02Z gcosmo $ +// $Id: G4PolarizedComptonModel.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,7 +71,7 @@ static const G4int nlooplim = 10000; G4PolarizedComptonModel::G4PolarizedComptonModel(const G4ParticleDefinition*, const G4String& nam) - : G4KleinNishinaCompton(0,nam), + : G4KleinNishinaCompton(nullptr,nam), verboseLevel(0) { crossSectionCalculator = new G4PolarizedComptonCrossSection(); @@ -91,7 +91,7 @@ G4double G4PolarizedComptonModel::ComputeAsymmetryPerAtom G4double asymmetry = 0.0 ; G4double k0 = gammaEnergy / electron_mass_c2 ; - G4double k1 = 1 + 2*k0 ; + G4double k1 = 1. + 2.*k0 ; asymmetry = -k0; asymmetry *= (k0 + 1.)*sqr(k1)*G4Log(k1) - 2.*k0*(5.*sqr(k0) + 4.*k0 + 1.); diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedGammaConversionModel.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedGammaConversionModel.cc index f126f3d1af..b2522fdeab 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedGammaConversionModel.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedGammaConversionModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedGammaConversionModel.cc 68046 2013-03-13 14:31:38Z gcosmo $ +// $Id: G4PolarizedGammaConversionModel.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -67,7 +67,7 @@ G4PolarizedGammaConversionModel::G4PolarizedGammaConversionModel(const G4ParticleDefinition* pd, const G4String& nam) - : G4BetheHeitlerModel(pd,nam), crossSectionCalculator(0) + : G4BetheHeitlerModel(pd,nam), crossSectionCalculator(nullptr) { } diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedMollerBhabhaModel.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedMollerBhabhaModel.cc index 804453286f..2b01aff98a 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedMollerBhabhaModel.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedMollerBhabhaModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedMollerBhabhaModel.cc 91742 2015-08-04 11:48:51Z gcosmo $ +// $Id: G4PolarizedMollerBhabhaModel.cc 96114 2016-03-16 18:51:33Z gcosmo $ // ------------------------------------------------------------------- // // GEANT4 Class file @@ -70,7 +70,7 @@ G4PolarizedMollerBhabhaModel::G4PolarizedMollerBhabhaModel(const G4ParticleDefin // G4cout<<" particle==electron "<<(p==theElectron)< // std::vector* vdp = G4PEEffectFluoModel::SampleSecondaries(vdp,couple, dp, tmin, maxEnergy); + if (verboseLevel >= 1) { + G4cout << "G4PolarizedPEEffectModel::SampleSecondaries" << G4endl; + } + if(vdp && vdp->size()>0) { G4double gamEnergy0 = dp->GetKineticEnergy(); G4double lepEnergy1 = (*vdp)[0]->GetKineticEnergy(); diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedPairProductionCrossSection.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedPairProductionCrossSection.cc index a9fa7327ee..10934c0170 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedPairProductionCrossSection.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedPairProductionCrossSection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PolarizedPairProductionCrossSection.cc 77295 2013-11-22 11:02:41Z gcosmo $ +// $Id: G4PolarizedPairProductionCrossSection.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -111,34 +111,34 @@ void G4PolarizedPairProductionCrossSection::Initialize(G4double aGammaE, if(delta < 0.5) { GG = std::log(2.* Lept0E * Lept1E / GammaE) - 2. - fCoul; } - else if ( delta < 120) { + else if ( delta < 120.) { for (G4int j=2; j<=19; j++) { if(SCRN[1][j] >= delta) { - GG =std::log(2 * Lept0E * Lept1E / GammaE) - 2 - fCoul + GG =std::log(2. * Lept0E * Lept1E / GammaE) - 2. - fCoul -(SCRN[2][j-1]+(delta-SCRN[1][j-1])*(SCRN[2][j]-SCRN[2][j-1])/(SCRN[1][j]-SCRN[1][j-1])); break; } } } else { - G4double alpha_sc = (111 * std::pow(theZ, -1./3.)) / Xsi; - GG = std::log(alpha_sc)- 2 - fCoul; + G4double alpha_sc = (111. * std::pow(theZ, -1./3.)) / Xsi; + GG = std::log(alpha_sc)- 2. - fCoul; } - if(GG<-1) GG=-1; // *KL* do we need this ?! + if(GG<-1.) GG=-1.; // *KL* do we need this ?! - G4double I_Lepton = (Lept0E2 + Lept1E2)*(3+2*GG) + 2 * Lept0E * Lept1E * (1 + 4 * u2 * Xsi2 * GG); + G4double I_Lepton = (Lept0E2 + Lept1E2)*(3+2*GG) + 2. * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG); // G4double D_Lepton1 = -8 * Lept0E * Lept1E * u2 * Xsi2 * GG / I_Lepton; - G4double L_Lepton1 = GammaE * ((Lept0E - Lept1E) * (3. + 2. * GG)+2 * Lept1E * (1 + 4 * u2 * Xsi2 * GG))/I_Lepton; + G4double L_Lepton1 = GammaE * ((Lept0E - Lept1E) * (3. + 2. * GG)+2 * Lept1E * (1. + 4. * u2 * Xsi2 * GG))/I_Lepton; - G4double T_Lepton1 = 4 * GammaE * Lept1E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton ; + G4double T_Lepton1 = 4. * GammaE * Lept1E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton ; G4double Stokes_S1 = (Stokes_P3 * T_Lepton1) ; - G4double Stokes_S2 = 0; + G4double Stokes_S2 = 0.; G4double Stokes_S3 = (Stokes_P3 * L_Lepton1) ; @@ -146,26 +146,26 @@ void G4PolarizedPairProductionCrossSection::Initialize(G4double aGammaE, theFinalElectronPolarization.setY(Stokes_S2); theFinalElectronPolarization.setZ(Stokes_S3); - if(theFinalElectronPolarization.mag2()>1) { + if(theFinalElectronPolarization.mag2()>1.) { G4cout<<" WARNING in pol-conv theFinalElectronPolarization \n"; G4cout <<"\t"<1) theFinalElectronPolarization.setZ(1); + if(Stokes_S3>1.) theFinalElectronPolarization.setZ(1.); } - G4double L_Lepton2 = GammaE * ((Lept1E - Lept0E) * (3. + 2. * GG)+2 * Lept0E * (1 + 4 * u2 * Xsi2 * GG))/I_Lepton; + G4double L_Lepton2 = GammaE * ((Lept1E - Lept0E) * (3. + 2. * GG)+2 * Lept0E * (1. + 4. * u2 * Xsi2 * GG))/I_Lepton; - G4double T_Lepton2 = 4 * GammaE * Lept0E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton ; + G4double T_Lepton2 = 4. * GammaE * Lept0E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton ; G4double Stokes_SS1 = (Stokes_P3 * T_Lepton2) ; - G4double Stokes_SS2 = 0; + G4double Stokes_SS2 = 0.; G4double Stokes_SS3 = (Stokes_P3 * L_Lepton2) ; theFinalPositronPolarization.SetPhoton(); @@ -174,7 +174,7 @@ void G4PolarizedPairProductionCrossSection::Initialize(G4double aGammaE, theFinalPositronPolarization.setY(Stokes_SS2); theFinalPositronPolarization.setZ(Stokes_SS3); - if(theFinalPositronPolarization.mag2()>1) { + if(theFinalPositronPolarization.mag2()>1.) { G4cout<<" WARNING in pol-conv theFinalPositronPolarization \n"; G4cout <<"\t"<1.+1.e-8 || cosphi<-1.-1.e-8) { G4cout<<" warning G4StokesVector::RotateAz cosphi>1 or cosphi<-1\n"; } - if (cosphi>1) cosphi=1.; - else if (cosphi<-1)cosphi=-1.; + if (cosphi>1.) cosphi=1.; + else if (cosphi<-1.)cosphi=-1.; // check sign once more! G4double hel=(yParticleFrame.cross(nInteractionFrame)*particleDirection)>0?1.:-1.; diff --git a/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlung.cc b/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlung.cc index cb11d21d47..e69a4d87a1 100644 --- a/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlung.cc +++ b/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlung.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ePolarizedBremsstrahlung.cc 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4ePolarizedBremsstrahlung.cc 96114 2016-03-16 18:51:33Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,7 +71,7 @@ void G4ePolarizedBremsstrahlung::InitialiseEnergyLossProcess( SetSecondaryParticle(G4Gamma::Gamma()); SetIonisation(false); - G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = nullptr; //G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); G4VEmModel* em = new G4ePolarizedBremsstrahlungModel; diff --git a/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlungModel.cc b/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlungModel.cc index 5ea090315b..1ba09b0ffb 100644 --- a/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/polarisation/src/G4ePolarizedBremsstrahlungModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ePolarizedBremsstrahlungModel.cc 75601 2013-11-04 13:08:15Z gcosmo $ +// $Id: G4ePolarizedBremsstrahlungModel.cc 97384 2016-06-02 09:59:17Z gcosmo $ // // ------------------------------------------------------------------- // @@ -56,7 +56,7 @@ G4ePolarizedBremsstrahlungModel::G4ePolarizedBremsstrahlungModel( const G4ParticleDefinition* p, const G4String& nam) : G4SeltzerBergerModel(p,nam), - crossSectionCalculator(0) + crossSectionCalculator(nullptr) { } diff --git a/source/processes/electromagnetic/polarisation/src/G4ePolarizedIonisation.cc b/source/processes/electromagnetic/polarisation/src/G4ePolarizedIonisation.cc index 1610ad748a..a24bec1e31 100644 --- a/source/processes/electromagnetic/polarisation/src/G4ePolarizedIonisation.cc +++ b/source/processes/electromagnetic/polarisation/src/G4ePolarizedIonisation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ePolarizedIonisation.cc 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4ePolarizedIonisation.cc 97175 2016-05-27 12:42:05Z gcosmo $ // ------------------------------------------------------------------- // // GEANT4 Class file @@ -176,23 +176,32 @@ G4double G4ePolarizedIonisation::PostStepGetPhysicalInteractionLength(const G4Tr G4double step, G4ForceCondition* cond) { - // save previous value + // save previous values G4double nLength = theNumberOfInteractionLengthLeft; + G4double iLength = currentInteractionLength; - // *** get unploarised mean free path from lambda table *** + // *** get unpolarised mean free path from lambda table *** + // this changes theNumberOfInteractionLengthLeft and currentInteractionLength G4double x = G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(track, step, cond); - + G4double x0 = x; + G4double satFact = 1.; + + // *** add corrections on polarisation *** if(theAsymmetryTable && theTransverseAsymmetryTable && x < DBL_MAX) { - G4double curLength = currentInteractionLength*ComputeSaturationFactor(track); + satFact = ComputeSaturationFactor(track); + G4double curLength = currentInteractionLength*satFact; + G4double prvLength = iLength*satFact; if(nLength > 0.0) { theNumberOfInteractionLengthLeft = - std::max(nLength - step/curLength, 0.0); + std::max(nLength - step/prvLength, 0.0); } x = theNumberOfInteractionLengthLeft * curLength; } if (verboseLevel>=2) { - G4cout << "G4ePolarizedIonisation::PostStepGetPhysicalInteractionLength: " - << x/mm << " mm " << G4endl; + G4cout << "G4ePolarizedIonisation::PostStepGPIL: " + << std::setprecision(8) << x/mm << " mm;" << G4endl + << " unpolarized value: " + << std::setprecision(8) << x0/mm << " mm." << G4endl; } return x; } diff --git a/source/processes/electromagnetic/polarisation/src/G4eplusPolarizedAnnihilation.cc b/source/processes/electromagnetic/polarisation/src/G4eplusPolarizedAnnihilation.cc index 1a3bf3ab6b..f51b508ea5 100644 --- a/source/processes/electromagnetic/polarisation/src/G4eplusPolarizedAnnihilation.cc +++ b/source/processes/electromagnetic/polarisation/src/G4eplusPolarizedAnnihilation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eplusPolarizedAnnihilation.cc 93113 2015-10-07 07:49:04Z gcosmo $ +// $Id: G4eplusPolarizedAnnihilation.cc 97175 2016-05-27 12:42:05Z gcosmo $ // // ------------------------------------------------------------------- // @@ -128,25 +128,34 @@ G4double G4eplusPolarizedAnnihilation::PostStepGetPhysicalInteractionLength( G4double previousStepSize, G4ForceCondition* condition) { - // save previous value + // save previous values G4double nLength = theNumberOfInteractionLengthLeft; + G4double iLength = currentInteractionLength; - // *** compute uppolarized step limit *** + // *** compute unpolarized step limit *** + // this changes theNumberOfInteractionLengthLeft and currentInteractionLength G4double x = G4VEmProcess::PostStepGetPhysicalInteractionLength(track, previousStepSize, condition); - + G4double x0 = x; + G4double satFact = 1.0; + + // *** add corrections on polarisation *** if(theAsymmetryTable && theTransverseAsymmetryTable && x < DBL_MAX) { - G4double curLength = currentInteractionLength*ComputeSaturationFactor(track); + satFact = ComputeSaturationFactor(track); + G4double curLength = currentInteractionLength*satFact; + G4double prvLength = iLength*satFact; if(nLength > 0.0) { theNumberOfInteractionLengthLeft = - std::max(nLength - previousStepSize/curLength, 0.0); + std::max(nLength - previousStepSize/prvLength, 0.0); } x = theNumberOfInteractionLengthLeft * curLength; } if (verboseLevel>=2) { - G4cout << "G4eplusPolarizedAnnihilation::PostStepGetPhysicalInteractionLength: " - << x/mm << " mm " << G4endl; + G4cout << "G4eplusPolarizedAnnihilation::PostStepGPIL: " + << std::setprecision(8) << x/mm << " mm;" << G4endl + << " unpolarized value: " + << std::setprecision(8) << x0/mm << " mm." << G4endl; } return x; } diff --git a/source/processes/electromagnetic/standard/History b/source/processes/electromagnetic/standard/History index ed598c877c..a4098c670e 100644 --- a/source/processes/electromagnetic/standard/History +++ b/source/processes/electromagnetic/standard/History @@ -1,4 +1,4 @@ -$Id: History 94237 2015-11-09 11:01:24Z gcosmo $ +$Id: History 97798 2016-06-13 12:10:14Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -18,7 +18,100 @@ committal in the CVS repository ! ---------------------------------------------------------- -09 October 15: V.Ivanchenko (emstand-V10-01-41) +13 June 16: V.Ivanchenko (emstand-V10-02-22) +- G4SeltzerBergerModel - fixed data handling for Z > 92 + (problem report #1870 - invalid read of data in run time) + +09 June 16: V.Ivanchenko (emstand-V10-02-21) +- G4UrbanMscModel - roll back selection of lateral displacement, + by default use old algorithm, for Opt3,4 - new + +07 June 16: V.Ivanchenko (emstand-V10-02-20) +- G4eMultipleScattering, G4hMultipleScattering - roll back previous + version to avoid necessity to change user code + +02 June 16: V.Ivanchenko (emstand-V10-02-19) +- G4eMultipleScattering, G4hMultipleScattering - fixed model + initialisation (do not create extra unneccesary objects) + +31 May 16: M. Novak (emstand-V10-02-18) +- G4eBremsstrahlungRelModel - change LPM constant such that it gives + suppression variable that consistent to Migdal's one; fix small + bug in LPM function computation; + +23 May 16: V.Ivanchenko (emstand-V10-02-17) +- G4UrbanMscModel - use new displacement in all PhysList + +17 May 16: V.Ivanchenko (emstand-V10-02-16) + Added c++11 keywords: explicit, final, override, delete; + use nullptr and use G4Element::GetZasInt(); + +22 April 16: M.Novak (emstand-V10-02-15) +- G4GoudsmitSaundersonMscModel - change some variable names + +11 April 16: L.Urban (emstand-V10-02-14) +- G4UrbanMscModel - randomisation of "true path length" is modified + +11 March 16: V.Ivanchenko (emstand-V10-02-13) +- G4alphaIonisation, G4hIonisation, G4ionIonisation - do not define + StepFunction in constructor + +02 March 16: V.Ivanchenko (emstand-V10-02-12) +- G4eSingleCoulombScatteringModel, G4ScreeningMottCrossSection + (Mauro Tacconi) - fixed initialisation of classes allowing + to use precomputed cross sections (problem 1823) + +26 February 16: V.Ivanchenko (emstand-V10-02-11) +- Extra attempt to fix VC14 compillation warnings + +25 February 16: V.Ivanchenko (emstand-V10-02-10) +- Attempt to fix clang and VC14 compillation warnings + +25 February 16: V.Ivanchenko (emstand-V10-02-09) +- G4UniversalFluctuation - (L.Urban) fixed bug introduced in -06 +- G4UniversalFluctuations, G4BohrFulatuations, G4IonFluctuations + added c++11 keywords explicit, override, delete, final + +24 February 16: V.Ivanchenko (emstand-V10-02-08) +- G4BetheBlochModel - removed unused class members to address clang + warnings + +24 February 16: V.Ivanchenko (emstand-V10-02-07) +- G4BraggModel, G4BraggIonModel, G4BetheBlochModel - use float for + local static data, introduced C++11 keyword "delete" + +23 February 16: V.Ivanchenko (emstand-V10-02-06) +- G4UniversalFluctuation - two private inline method are made and + some code cleanup done +23 February 16: L.Urban +- G4UniversalFluctuation - fixed bug in Glandz part, Gaussian sampling. + The sampling is symmetrical around emean now + +12 February 16: V.Ivanchenko (emstand-V10-02-05) +- G4eSingleCoulombScatteringModel - fixed sampling of scattering + angle (problem report #1823) + +11 February 16: M.Novak (emstand-V10-02-04) +- G4GoudsmitSaundersonMscModel - handle special case (when gun is on + the boundary) in the step limitation + +10 February 16: V.Ivanchenko (emstand-V10-02-03) +- G4ASTARStopping, G4PSTARStopping, G4NISTStoppingData, + G4BraggModel - data arrays become float, computation is left double + +23 January 16: V.Ivanchenko (emstand-V10-02-02) +- G4ScreeningMottCrossSection - a bit cleanup the code to be + more fast: keep fixed static array of angles, use G4Pow::powN + method instead of pow (Mauro Tacconi) + +17 December 15: M.Novak (emstand-V10-02-01) +- G4GoudsmitSaundersonMscModel G4GoudsmitSaundersonTable - updated step + limitations, fixed coverity problems and improved comments. + +17 December 15: V.Ivanchenko (emstand-V10-02-00) +- G4ScreeningMottCrossSection - fixed FPE problem (Mauro Tacconi) + +09 November 15: V.Ivanchenko (emstand-V10-01-41) - G4ScreeningMottCrossSection - fixed Coverity report 28 October 15: V.Ivanchenko (emstand-V10-01-40) diff --git a/source/processes/electromagnetic/standard/include/G4ASTARStopping.hh b/source/processes/electromagnetic/standard/include/G4ASTARStopping.hh index 81c8bc90d2..3f70f9b9bb 100644 --- a/source/processes/electromagnetic/standard/include/G4ASTARStopping.hh +++ b/source/processes/electromagnetic/standard/include/G4ASTARStopping.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ASTARStopping.hh 91612 2015-07-29 08:51:51Z gcosmo $ +// $Id: G4ASTARStopping.hh 96934 2016-05-18 09:10:41Z gcosmo $ #ifndef G4ASTARStopping_h #define G4ASTARStopping_h 1 @@ -49,6 +49,8 @@ // Data on Stopping Powers of the He atoms from the NIST Data Base // http://physics.nist.gov/PhysRefData/STAR/Text/ASTAR.html // +// Current ASTAR database is available via url: +// http://physics.nist.gov/PhysRefData/Star/Text/ASTAR.html //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,7 +63,7 @@ class G4ASTARStopping { public: - G4ASTARStopping(); + explicit G4ASTARStopping(); ~G4ASTARStopping(); @@ -77,15 +79,15 @@ public: private: - void AddData(const G4double* s, const G4Material*); + void AddData(const G4float* s, const G4Material*); void FindData(G4int idx, const G4Material*); void PrintWarning(G4int idx) const; // hide assignment operator - G4ASTARStopping & operator=(const G4ASTARStopping &right); - G4ASTARStopping(const G4ASTARStopping&); + G4ASTARStopping & operator=(const G4ASTARStopping &right) = delete; + G4ASTARStopping(const G4ASTARStopping&) = delete; size_t nvectors; G4double emin; diff --git a/source/processes/electromagnetic/standard/include/G4BetheBlochIonGasModel.hh b/source/processes/electromagnetic/standard/include/G4BetheBlochIonGasModel.hh index bd9bfb406b..446e745554 100644 --- a/source/processes/electromagnetic/standard/include/G4BetheBlochIonGasModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BetheBlochIonGasModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BetheBlochIonGasModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4BetheBlochIonGasModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -57,22 +57,23 @@ class G4BetheBlochIonGasModel : public G4BetheBlochModel public: - G4BetheBlochIonGasModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "BetheBlochGasIon"); + explicit G4BetheBlochIonGasModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "BetheBlochGasIon"); virtual ~G4BetheBlochIonGasModel(); - virtual G4double ChargeSquareRatio(const G4Track& track); + virtual G4double ChargeSquareRatio(const G4Track& track) final; virtual G4double GetParticleCharge(const G4ParticleDefinition* p, const G4Material* mat, - G4double kineticEnergy); + G4double kineticEnergy) final; private: // hide assignment operator - G4BetheBlochIonGasModel & operator=(const G4BetheBlochIonGasModel &right); - G4BetheBlochIonGasModel(const G4BetheBlochIonGasModel&); + G4BetheBlochIonGasModel & operator= + (const G4BetheBlochIonGasModel &right) = delete; + G4BetheBlochIonGasModel(const G4BetheBlochIonGasModel&) = delete; G4double currentCharge; }; diff --git a/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh b/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh index c60cc2de57..31f43fd17b 100644 --- a/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BetheBlochModel.hh 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4BetheBlochModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -74,15 +74,16 @@ class G4BetheBlochModel : public G4VEmModel public: - G4BetheBlochModel(const G4ParticleDefinition* p = nullptr, - const G4String& nam = "BetheBloch"); + explicit G4BetheBlochModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "BetheBloch"); virtual ~G4BetheBlochModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double MinEnergyCut(const G4ParticleDefinition*, - const G4MaterialCutsCouple* couple); + const G4MaterialCutsCouple* couple) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -95,43 +96,43 @@ public: G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual G4double GetChargeSquareRatio(const G4ParticleDefinition* p, const G4Material* mat, - G4double kineticEnergy); + G4double kineticEnergy) override; virtual G4double GetParticleCharge(const G4ParticleDefinition* p, const G4Material* mat, - G4double kineticEnergy); + G4double kineticEnergy) override; virtual void CorrectionsAlongStep(const G4MaterialCutsCouple* couple, const G4DynamicParticle* dp, G4double& eloss, G4double&, - G4double length); + G4double length) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) override; inline G4double GetChargeSquareRatio() const; @@ -146,8 +147,8 @@ private: inline void SetGenericIon(const G4ParticleDefinition* p); // hide assignment operator - G4BetheBlochModel & operator=(const G4BetheBlochModel &right); - G4BetheBlochModel(const G4BetheBlochModel&); + G4BetheBlochModel & operator=(const G4BetheBlochModel &right) = delete; + G4BetheBlochModel(const G4BetheBlochModel&) = delete; const G4ParticleDefinition* particle; G4ParticleDefinition* theElectron; @@ -163,11 +164,8 @@ private: G4double ratio; G4double formfact; G4double twoln10; - G4double bg2lim; - G4double taulim; G4double corrFactor; G4bool isIon; - G4bool isInitialised; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -176,7 +174,7 @@ inline void G4BetheBlochModel::SetParticle(const G4ParticleDefinition* p) { if(particle != p) { particle = p; - if(p->GetBaryonNumber() > 3 || p->GetPDGCharge() > 1.5*CLHEP::eplus) + if(p->GetBaryonNumber() > 3 || p->GetPDGCharge() > CLHEP::eplus) { isIon = true; } SetupParameters(); } diff --git a/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh b/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh index bc9fad63bd..23cff5c16b 100644 --- a/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BetheHeitlerModel.hh 74581 2013-10-15 12:03:25Z gcosmo $ +// $Id: G4BetheHeitlerModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -62,15 +62,16 @@ class G4BetheHeitlerModel : public G4VEmModel public: - G4BetheHeitlerModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "BetheHeitler"); + explicit G4BetheHeitlerModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "BetheHeitler"); virtual ~G4BetheHeitlerModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -78,13 +79,13 @@ public: G4double Z, G4double A=0., G4double cut=0., - G4double emax=DBL_MAX); + G4double emax=DBL_MAX) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; private: @@ -93,8 +94,8 @@ private: G4double ScreenFunction2(G4double ScreenVariable); // hide assignment operator - G4BetheHeitlerModel & operator=(const G4BetheHeitlerModel &right); - G4BetheHeitlerModel(const G4BetheHeitlerModel&); + G4BetheHeitlerModel & operator=(const G4BetheHeitlerModel &right) = delete; + G4BetheHeitlerModel(const G4BetheHeitlerModel&) = delete; G4Pow* g4pow; G4ParticleDefinition* theGamma; diff --git a/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh b/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh index de79715667..1f7eb01954 100644 --- a/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh +++ b/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BohrFluctuations.hh 72048 2013-07-04 12:39:58Z gcosmo $ +// $Id: G4BohrFluctuations.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,28 +60,25 @@ class G4BohrFluctuations : public G4VEmFluctuationModel public: - G4BohrFluctuations(const G4String& nam = "BohrFluc"); + explicit G4BohrFluctuations(const G4String& nam = "BohrFluc"); virtual ~G4BohrFluctuations(); - G4double SampleFluctuations(const G4MaterialCutsCouple*, + virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double, G4double, G4double) override; + + virtual G4double Dispersion(const G4Material*, const G4DynamicParticle*, - G4double, - G4double, - G4double); + G4double, G4double) override; - G4double Dispersion( const G4Material*, - const G4DynamicParticle*, - G4double, - G4double); - - void InitialiseMe(const G4ParticleDefinition*); + virtual void InitialiseMe(const G4ParticleDefinition*) override; private: // hide assignment operator - G4BohrFluctuations & operator=(const G4BohrFluctuations &right); - G4BohrFluctuations(const G4BohrFluctuations&); + G4BohrFluctuations & operator=(const G4BohrFluctuations &right) = delete; + G4BohrFluctuations(const G4BohrFluctuations&) = delete; const G4ParticleDefinition* particle; diff --git a/source/processes/electromagnetic/standard/include/G4BraggIonGasModel.hh b/source/processes/electromagnetic/standard/include/G4BraggIonGasModel.hh index 0d22f7a836..758d11e4fe 100644 --- a/source/processes/electromagnetic/standard/include/G4BraggIonGasModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BraggIonGasModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BraggIonGasModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4BraggIonGasModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -59,24 +59,24 @@ class G4BraggIonGasModel : public G4BraggModel public: - G4BraggIonGasModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "BraggIonGas"); + explicit G4BraggIonGasModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "BraggIonGas"); virtual ~G4BraggIonGasModel(); // Access ion effective charge square ratio to unit charge - virtual G4double ChargeSquareRatio(const G4Track&); + virtual G4double ChargeSquareRatio(const G4Track&) final; // Access ion effective charge virtual G4double GetParticleCharge(const G4ParticleDefinition*, const G4Material* mat, - G4double kineticEnergy); + G4double kineticEnergy) final; private: // hide assignment operator - G4BraggIonGasModel & operator=(const G4BraggIonGasModel &right); - G4BraggIonGasModel(const G4BraggIonGasModel&); + G4BraggIonGasModel & operator=(const G4BraggIonGasModel &right) = delete; + G4BraggIonGasModel(const G4BraggIonGasModel&) = delete; G4double currentCharge; }; diff --git a/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh b/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh index 893a49d8db..6224c0db69 100644 --- a/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BraggIonModel.hh 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4BraggIonModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -70,15 +70,16 @@ class G4BraggIonModel : public G4VEmModel public: - G4BraggIonModel(const G4ParticleDefinition* p = nullptr, - const G4String& nam = "BraggIon"); + explicit G4BraggIonModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "BraggIon"); virtual ~G4BraggIonModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double MinEnergyCut(const G4ParticleDefinition*, - const G4MaterialCutsCouple* couple); + const G4MaterialCutsCouple* couple) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -91,45 +92,45 @@ public: G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // Compute ion charge virtual G4double GetChargeSquareRatio(const G4ParticleDefinition*, const G4Material*, - G4double kineticEnergy); + G4double kineticEnergy) override; virtual G4double GetParticleCharge(const G4ParticleDefinition* p, const G4Material* mat, - G4double kineticEnergy); + G4double kineticEnergy) override; // add correction to energy loss and ompute non-ionizing energy loss virtual void CorrectionsAlongStep(const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double& eloss, G4double& niel, - G4double length); + G4double length) override; protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) final; private: @@ -138,8 +139,8 @@ private: G4double HeEffChargeSquare(G4double z, G4double kinEnergyInMeV) const; // hide assignment operator - G4BraggIonModel & operator=(const G4BraggIonModel &right); - G4BraggIonModel(const G4BraggIonModel&); + G4BraggIonModel & operator=(const G4BraggIonModel &right) = delete; + G4BraggIonModel(const G4BraggIonModel&) = delete; G4bool HasMaterial(const G4Material* material); @@ -176,7 +177,6 @@ private: G4int iMolecula; // index in the molecula's table G4int iASTAR; // index in ASTAR G4bool isIon; - G4bool isInitialised; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4BraggModel.hh b/source/processes/electromagnetic/standard/include/G4BraggModel.hh index 91a0b5cb46..318e808540 100644 --- a/source/processes/electromagnetic/standard/include/G4BraggModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BraggModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BraggModel.hh 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4BraggModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,12 +73,13 @@ class G4BraggModel : public G4VEmModel public: - G4BraggModel(const G4ParticleDefinition* p = nullptr, - const G4String& nam = "Bragg"); + explicit G4BraggModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "Bragg"); virtual ~G4BraggModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -91,38 +92,38 @@ public: G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // Compute ion charge virtual G4double GetChargeSquareRatio(const G4ParticleDefinition*, const G4Material*, - G4double kineticEnergy); + G4double kineticEnergy) override; virtual G4double GetParticleCharge(const G4ParticleDefinition* p, const G4Material* mat, - G4double kineticEnergy); + G4double kineticEnergy) override; protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) final; inline G4double GetChargeSquareRatio() const; @@ -146,11 +147,9 @@ private: G4double ChemicalFactor(G4double kineticEnergy, G4double eloss125) const; - void SetExpStopPower125(G4double value) {expStopPower125 = value;}; - // hide assignment operator - G4BraggModel & operator=(const G4BraggModel &right); - G4BraggModel(const G4BraggModel&); + G4BraggModel & operator=(const G4BraggModel &right) = delete; + G4BraggModel(const G4BraggModel&) = delete; G4EmCorrections* corr; @@ -174,7 +173,6 @@ private: G4int iMolecula; // index in the molecula's table G4int iPSTAR; // index in PSTAR G4bool isIon; - G4bool isInitialised; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh index 608f0248a9..98c476aa98 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ComptonScattering.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4ComptonScattering.hh 96934 2016-05-18 09:10:41Z gcosmo $ // //------------------ G4ComptonScattering physics process ----------------------- // by Michel Maire, April 1996 @@ -73,23 +73,26 @@ class G4ComptonScattering : public G4VEmProcess { public: // with description - G4ComptonScattering(const G4String& processName ="compt", - G4ProcessType type = fElectromagnetic); + explicit G4ComptonScattering(const G4String& processName ="compt", + G4ProcessType type = fElectromagnetic); virtual ~G4ComptonScattering(); // true for Gamma only. - virtual G4bool IsApplicable(const G4ParticleDefinition&); + virtual G4bool IsApplicable(const G4ParticleDefinition&) final; // Print few lines of informations about the process: validity range, - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: + G4ComptonScattering & operator=(const G4ComptonScattering &right) = delete; + G4ComptonScattering(const G4ComptonScattering&) = delete; + G4bool isInitialised; }; diff --git a/source/processes/electromagnetic/standard/include/G4CoulombScattering.hh b/source/processes/electromagnetic/standard/include/G4CoulombScattering.hh index 548ed861f1..279863006b 100644 --- a/source/processes/electromagnetic/standard/include/G4CoulombScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4CoulombScattering.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4CoulombScattering.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4CoulombScattering.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -57,27 +57,27 @@ class G4CoulombScattering : public G4VEmProcess public: - G4CoulombScattering(const G4String& name = "CoulombScat"); + explicit G4CoulombScattering(const G4String& name = "CoulombScat"); virtual ~G4CoulombScattering(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) final; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*); + const G4Material*) final; private: // hide assignment operator - G4CoulombScattering & operator=(const G4CoulombScattering &right); - G4CoulombScattering(const G4CoulombScattering&); + G4CoulombScattering & operator=(const G4CoulombScattering &right) = delete; + G4CoulombScattering(const G4CoulombScattering&) = delete; G4double q2Max; G4bool isInitialised; diff --git a/source/processes/electromagnetic/standard/include/G4DeltaAngle.hh b/source/processes/electromagnetic/standard/include/G4DeltaAngle.hh index 2160e6414b..07e3381c73 100644 --- a/source/processes/electromagnetic/standard/include/G4DeltaAngle.hh +++ b/source/processes/electromagnetic/standard/include/G4DeltaAngle.hh @@ -59,28 +59,27 @@ class G4DeltaAngle : public G4VEmAngularDistribution public: - G4DeltaAngle(const G4String& name = ""); + explicit G4DeltaAngle(const G4String& name = ""); virtual ~G4DeltaAngle(); virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp, - G4double kinEnergyFinal, - G4int Z, - const G4Material* mat = 0); + G4double kinEnergyFinal, G4int Z, + const G4Material* mat = nullptr) final; virtual G4ThreeVector& SampleDirectionForShell( const G4DynamicParticle* dp, G4double kinEnergyFinal, G4int Z, G4int shellIdx, - const G4Material* mat = 0); + const G4Material* mat = nullptr) final; - void PrintGeneratorInformation() const; + virtual void PrintGeneratorInformation() const final; private: // hide assignment operator - G4DeltaAngle & operator=(const G4DeltaAngle &right); - G4DeltaAngle(const G4DeltaAngle&); + G4DeltaAngle & operator=(const G4DeltaAngle &right) = delete; + G4DeltaAngle(const G4DeltaAngle&) = delete; const G4ParticleDefinition* fElectron; std::vector prob; diff --git a/source/processes/electromagnetic/standard/include/G4DeltaAngleFreeScat.hh b/source/processes/electromagnetic/standard/include/G4DeltaAngleFreeScat.hh index f2dbb518ce..d24031e345 100644 --- a/source/processes/electromagnetic/standard/include/G4DeltaAngleFreeScat.hh +++ b/source/processes/electromagnetic/standard/include/G4DeltaAngleFreeScat.hh @@ -56,22 +56,22 @@ class G4DeltaAngleFreeScat : public G4VEmAngularDistribution public: - G4DeltaAngleFreeScat(const G4String& name = ""); + explicit G4DeltaAngleFreeScat(const G4String& name = ""); virtual ~G4DeltaAngleFreeScat(); virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp, G4double kinEnergyFinal, G4int Z, - const G4Material* mat = 0); + const G4Material* mat = nullptr) final; - void PrintGeneratorInformation() const; + virtual void PrintGeneratorInformation() const final; private: // hide assignment operator - G4DeltaAngleFreeScat & operator=(const G4DeltaAngleFreeScat &right); - G4DeltaAngleFreeScat(const G4DeltaAngleFreeScat&); + G4DeltaAngleFreeScat & operator=(const G4DeltaAngleFreeScat &right) = delete; + G4DeltaAngleFreeScat(const G4DeltaAngleFreeScat&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4DipBustGenerator.hh b/source/processes/electromagnetic/standard/include/G4DipBustGenerator.hh index f9b36e059c..2da7a534da 100644 --- a/source/processes/electromagnetic/standard/include/G4DipBustGenerator.hh +++ b/source/processes/electromagnetic/standard/include/G4DipBustGenerator.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DipBustGenerator.hh 74581 2013-10-15 12:03:25Z gcosmo $ +// $Id: G4DipBustGenerator.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -57,26 +57,25 @@ class G4DipBustGenerator : public G4VEmAngularDistribution public: - G4DipBustGenerator(const G4String& name = ""); + explicit G4DipBustGenerator(const G4String& name = ""); virtual ~G4DipBustGenerator(); virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp, - G4double out_energy, - G4int Z, - const G4Material* mat = 0); + G4double out_energy, G4int Z, + const G4Material* mat = nullptr) final; G4double PolarAngle(const G4double initial_energy, const G4double final_energy, const G4int Z); - void PrintGeneratorInformation() const; + virtual void PrintGeneratorInformation() const final; private: // hide assignment operator - G4DipBustGenerator & operator=(const G4DipBustGenerator &right); - G4DipBustGenerator(const G4DipBustGenerator&); + G4DipBustGenerator & operator=(const G4DipBustGenerator &right) = delete; + G4DipBustGenerator(const G4DipBustGenerator&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4ESTARStopping.hh b/source/processes/electromagnetic/standard/include/G4ESTARStopping.hh index fdf4f91b43..2d2196a102 100644 --- a/source/processes/electromagnetic/standard/include/G4ESTARStopping.hh +++ b/source/processes/electromagnetic/standard/include/G4ESTARStopping.hh @@ -63,7 +63,7 @@ class G4ESTARStopping { public: - G4ESTARStopping(const G4String& datatype = ""); + explicit G4ESTARStopping(const G4String& datatype = ""); ~G4ESTARStopping(); @@ -80,8 +80,8 @@ private: void AddData(const G4double* e, const G4double* s, G4int idx); // hide assignment operator - G4ESTARStopping & operator=(const G4ESTARStopping &right); - G4ESTARStopping(const G4ESTARStopping&); + G4ESTARStopping & operator=(const G4ESTARStopping &right) = delete; + G4ESTARStopping(const G4ESTARStopping&) = delete; char* dirPath; diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh index 08ab279a56..2694b942a4 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GammaConversion.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4GammaConversion.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // //------------------ G4GammaConversion physics process------------------------ @@ -77,26 +77,29 @@ class G4GammaConversion : public G4VEmProcess { public: // with description - G4GammaConversion(const G4String& processName ="conv", - G4ProcessType type = fElectromagnetic); + explicit G4GammaConversion(const G4String& processName ="conv", + G4ProcessType type = fElectromagnetic); virtual ~G4GammaConversion(); // true for Gamma only. - virtual G4bool IsApplicable(const G4ParticleDefinition&); + virtual G4bool IsApplicable(const G4ParticleDefinition&) final; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*); + const G4Material*) override; // Print few lines of informations about the process: validity range, - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: + G4GammaConversion & operator=(const G4GammaConversion &right) = delete; + G4GammaConversion(const G4GammaConversion&) = delete; + G4bool isInitialised; }; diff --git a/source/processes/electromagnetic/standard/include/G4GoudsmitSaundersonMscModel.hh b/source/processes/electromagnetic/standard/include/G4GoudsmitSaundersonMscModel.hh index addb242793..e133de0800 100755 --- a/source/processes/electromagnetic/standard/include/G4GoudsmitSaundersonMscModel.hh +++ b/source/processes/electromagnetic/standard/include/G4GoudsmitSaundersonMscModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GoudsmitSaundersonMscModel.hh 93663 2015-10-28 09:50:49Z gcosmo $ +// $Id: G4GoudsmitSaundersonMscModel.hh 94933 2015-12-18 09:22:52Z gcosmo $ // // ---------------------------------------------------------------------------- // @@ -158,7 +158,7 @@ private: G4double currentRange; G4double fr,rangeinit,geombig,geomlimit; - G4double lambdalimit,tlimit; + G4double lambdalimit,tlimit,tgeom; G4int charge,currentMaterialIndex; G4bool firstStep; @@ -196,9 +196,11 @@ private: G4bool fIsEverythingWasDone; G4bool fIsNoScatteringInMSC; G4bool fIsNoDisplace; + G4bool fIsInsideSkin; + G4bool fIsWasOnBoundary; + G4bool fIsFirstRealStep; // static G4bool fgIsUseAccurate; - static G4bool fgIsCorrectRestriction; static G4bool fgIsOptimizationOn; }; diff --git a/source/processes/electromagnetic/standard/include/G4HeatedKleinNishinaCompton.hh b/source/processes/electromagnetic/standard/include/G4HeatedKleinNishinaCompton.hh index 636259a580..4bfb817fcf 100644 --- a/source/processes/electromagnetic/standard/include/G4HeatedKleinNishinaCompton.hh +++ b/source/processes/electromagnetic/standard/include/G4HeatedKleinNishinaCompton.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HeatedKleinNishinaCompton.hh 82754 2014-07-08 14:06:13Z gcosmo $ +// $Id: G4HeatedKleinNishinaCompton.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -59,8 +59,8 @@ class G4HeatedKleinNishinaCompton : public G4KleinNishinaCompton public: - G4HeatedKleinNishinaCompton(const G4ParticleDefinition* p = 0, - const G4String& nam = "Heated-Klein-Nishina"); + explicit G4HeatedKleinNishinaCompton(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "Heated-Klein-Nishina"); virtual ~G4HeatedKleinNishinaCompton(); @@ -68,7 +68,7 @@ public: const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) final; inline void SetElectronTemperature(G4double t){ fTemperature = t; }; inline G4double GetElectronTemperature() { return fTemperature; }; @@ -76,8 +76,9 @@ public: private: // hide assignment operator - G4HeatedKleinNishinaCompton & operator=(const G4HeatedKleinNishinaCompton &right); - G4HeatedKleinNishinaCompton(const G4HeatedKleinNishinaCompton&); + G4HeatedKleinNishinaCompton & operator= + (const G4HeatedKleinNishinaCompton &right) = delete; + G4HeatedKleinNishinaCompton(const G4HeatedKleinNishinaCompton&) = delete; G4double fTemperature; // electron temperature in energy units diff --git a/source/processes/electromagnetic/standard/include/G4ICRU49NuclearStoppingModel.hh b/source/processes/electromagnetic/standard/include/G4ICRU49NuclearStoppingModel.hh index e2e74d092b..98ef7f650d 100644 --- a/source/processes/electromagnetic/standard/include/G4ICRU49NuclearStoppingModel.hh +++ b/source/processes/electromagnetic/standard/include/G4ICRU49NuclearStoppingModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ICRU49NuclearStoppingModel.hh 67990 2013-03-13 10:56:28Z gcosmo $ +// $Id: G4ICRU49NuclearStoppingModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,43 +64,40 @@ class G4ICRU49NuclearStoppingModel : public G4VEmModel public: - G4ICRU49NuclearStoppingModel(const G4String& nam = "ICRU49NucStopping"); + explicit G4ICRU49NuclearStoppingModel(const G4String& nam = + "ICRU49NucStopping"); virtual ~G4ICRU49NuclearStoppingModel(); virtual void Initialise(const G4ParticleDefinition*, - const G4DataVector&); + const G4DataVector&) final; // main method to compute dEdx virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy = DBL_MAX); + G4double cutEnergy = DBL_MAX) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, - G4double, G4double); + G4double, G4double) final; inline void SetFluctuationFlag(G4bool); private: - void InitialiseNuclearStopping(); - G4double NuclearStoppingPower(G4double kineticEnergy, G4double Z1, G4double Z2, G4double A1, G4double A2); // hide assignment operator - G4ICRU49NuclearStoppingModel & operator=(const G4ICRU49NuclearStoppingModel &right); - G4ICRU49NuclearStoppingModel(const G4ICRU49NuclearStoppingModel&); + G4ICRU49NuclearStoppingModel & operator= + (const G4ICRU49NuclearStoppingModel &right) = delete; + G4ICRU49NuclearStoppingModel(const G4ICRU49NuclearStoppingModel&) = delete; G4Pow* g4pow; - static G4double ed[104]; - static G4double ad[104]; - G4double theZieglerFactor; // flags diff --git a/source/processes/electromagnetic/standard/include/G4ICRU73QOModel.hh b/source/processes/electromagnetic/standard/include/G4ICRU73QOModel.hh index e97d3ef3c2..026ef0b02a 100644 --- a/source/processes/electromagnetic/standard/include/G4ICRU73QOModel.hh +++ b/source/processes/electromagnetic/standard/include/G4ICRU73QOModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ICRU73QOModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4ICRU73QOModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,67 +73,68 @@ class G4ICRU73QOModel : public G4VEmModel public: - G4ICRU73QOModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "ICRU73QO"); + explicit G4ICRU73QOModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "ICRU73QO"); virtual ~G4ICRU73QOModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) final; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double); + G4double) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; // add correction to energy loss and compute non-ionizing energy loss virtual void CorrectionsAlongStep(const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double& eloss, G4double& niel, - G4double length); - + G4double length) override; + protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) final; private: inline void SetParticle(const G4ParticleDefinition* p); - inline void SetLowestKinEnergy(const G4double val); + inline void SetLowestKinEnergy(G4double val); G4double DEDX(const G4Material* material, G4double kineticEnergy); G4double DEDXPerElement(G4int Z, G4double kineticEnergy); // hide assignment operator - G4ICRU73QOModel & operator=(const G4ICRU73QOModel &right); - G4ICRU73QOModel(const G4ICRU73QOModel&); + G4ICRU73QOModel & operator=(const G4ICRU73QOModel &right) = delete; + G4ICRU73QOModel(const G4ICRU73QOModel&) = delete; const G4ParticleDefinition* particle; G4ParticleDefinition* theElectron; @@ -248,7 +249,7 @@ G4ICRU73QOModel::GetShellStrength(G4int Z, G4int nbOfTheShell) const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void G4ICRU73QOModel::SetLowestKinEnergy(const G4double val) +inline void G4ICRU73QOModel::SetLowestKinEnergy(G4double val) { lowestKinEnergy = val; } diff --git a/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh b/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh index bc276d2420..fd38e8a045 100644 --- a/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh +++ b/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4InitXscPAI.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4InitXscPAI.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // // G4InitXscPAI.hh -- header file @@ -49,7 +49,7 @@ class G4InitXscPAI { public: // Constructors - G4InitXscPAI( const G4MaterialCutsCouple* matCC); + explicit G4InitXscPAI( const G4MaterialCutsCouple* matCC); virtual ~G4InitXscPAI() ; @@ -121,8 +121,8 @@ protected : private : - G4InitXscPAI & operator=(const G4InitXscPAI &right); - G4InitXscPAI(const G4InitXscPAI&); + G4InitXscPAI & operator=(const G4InitXscPAI &right) = delete; + G4InitXscPAI(const G4InitXscPAI&) = delete; // Local class constants diff --git a/source/processes/electromagnetic/standard/include/G4IonCoulombCrossSection.hh b/source/processes/electromagnetic/standard/include/G4IonCoulombCrossSection.hh index 9fd4c906e3..ad22dabb89 100644 --- a/source/processes/electromagnetic/standard/include/G4IonCoulombCrossSection.hh +++ b/source/processes/electromagnetic/standard/include/G4IonCoulombCrossSection.hh @@ -70,7 +70,7 @@ class G4IonCoulombCrossSection { public: - G4IonCoulombCrossSection(); + explicit G4IonCoulombCrossSection(); virtual ~G4IonCoulombCrossSection(); @@ -92,8 +92,9 @@ private: void SetScreenRSquare(G4int iz); - G4IonCoulombCrossSection & operator=(const G4IonCoulombCrossSection &right); - G4IonCoulombCrossSection(const G4IonCoulombCrossSection&); + G4IonCoulombCrossSection & operator= + (const G4IonCoulombCrossSection &right) = delete; + G4IonCoulombCrossSection(const G4IonCoulombCrossSection&) = delete; const G4ParticleDefinition* theProton; @@ -149,7 +150,7 @@ void G4IonCoulombCrossSection::SetupParticle(const G4ParticleDefinition* p) mass = particle->GetPDGMass(); spin = particle->GetPDGSpin(); if(0.0 != spin) { spin = 0.5; } - G4double q = std::fabs(particle->GetPDGCharge()/CLHEP::eplus); + G4double q = particle->GetPDGCharge()/CLHEP::eplus; chargeSquare = q*q; tkin = 0.0; } diff --git a/source/processes/electromagnetic/standard/include/G4IonCoulombScatteringModel.hh b/source/processes/electromagnetic/standard/include/G4IonCoulombScatteringModel.hh index b0977e3407..1e0cfbbf96 100644 --- a/source/processes/electromagnetic/standard/include/G4IonCoulombScatteringModel.hh +++ b/source/processes/electromagnetic/standard/include/G4IonCoulombScatteringModel.hh @@ -72,11 +72,13 @@ class G4IonCoulombScatteringModel : public G4VEmModel { public: - G4IonCoulombScatteringModel(const G4String& nam = "IonCoulombScattering"); + explicit G4IonCoulombScatteringModel(const G4String& nam = + "IonCoulombScattering"); virtual ~G4IonCoulombScatteringModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) final; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -84,13 +86,13 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) final; @@ -109,8 +111,9 @@ private: inline void SetupParticle(const G4ParticleDefinition*); // hide assignment operator - G4IonCoulombScatteringModel & operator=(const G4IonCoulombScatteringModel &right); - G4IonCoulombScatteringModel(const G4IonCoulombScatteringModel&); + G4IonCoulombScatteringModel & operator= + (const G4IonCoulombScatteringModel &right) = delete; + G4IonCoulombScatteringModel(const G4IonCoulombScatteringModel&) = delete; //protected: diff --git a/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh b/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh index 994d097e94..c7fa26fe2f 100644 --- a/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh +++ b/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonFluctuations.hh 73339 2013-08-26 06:54:49Z gcosmo $ +// $Id: G4IonFluctuations.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -63,28 +63,29 @@ class G4IonFluctuations : public G4VEmFluctuationModel public: - G4IonFluctuations(const G4String& nam = "IonFluc"); + explicit G4IonFluctuations(const G4String& nam = "IonFluc"); virtual ~G4IonFluctuations(); // Sample fluctuations - G4double SampleFluctuations(const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double tmax, - G4double length, - G4double meanLoss); + virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmax, + G4double length, + G4double meanLoss) override; // Compute dispertion - G4double Dispersion(const G4Material*, - const G4DynamicParticle*, - G4double tmax, - G4double length); + virtual G4double Dispersion(const G4Material*, + const G4DynamicParticle*, + G4double tmax, + G4double length) override; // Initialisation prerun - void InitialiseMe(const G4ParticleDefinition*); + virtual void InitialiseMe(const G4ParticleDefinition*) override; // Initialisation prestep - void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2); + virtual void SetParticleAndCharge(const G4ParticleDefinition*, + G4double q2) override; private: @@ -92,8 +93,8 @@ private: G4double RelativisticFactor(const G4Material*, G4double Zeff); // hide assignment operator - G4IonFluctuations & operator=(const G4IonFluctuations &right); - G4IonFluctuations(const G4IonFluctuations&); + G4IonFluctuations & operator=(const G4IonFluctuations &right) = delete; + G4IonFluctuations(const G4IonFluctuations&) = delete; G4UniversalFluctuation uniFluct; const G4ParticleDefinition* particle; @@ -107,7 +108,6 @@ private: // data members to speed up the fluctuation calculation G4double parameter; - G4double minNumberInteractionsBohr; G4double theBohrBeta2; G4double minFraction; G4double xmin; diff --git a/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh b/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh index 02d855a96e..107b20ca61 100644 --- a/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh +++ b/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4KleinNishinaCompton.hh 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4KleinNishinaCompton.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,15 +60,16 @@ class G4KleinNishinaCompton : public G4VEmModel public: - G4KleinNishinaCompton(const G4ParticleDefinition* p = nullptr, - const G4String& nam = "Klein-Nishina"); + explicit G4KleinNishinaCompton(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "Klein-Nishina"); virtual ~G4KleinNishinaCompton(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -76,13 +77,13 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; protected: @@ -94,8 +95,9 @@ protected: private: // hide assignment operator - G4KleinNishinaCompton & operator=(const G4KleinNishinaCompton &right); - G4KleinNishinaCompton(const G4KleinNishinaCompton&); + G4KleinNishinaCompton & operator= + (const G4KleinNishinaCompton &right) = delete; + G4KleinNishinaCompton(const G4KleinNishinaCompton&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4KleinNishinaModel.hh b/source/processes/electromagnetic/standard/include/G4KleinNishinaModel.hh index 8e3d449c02..41adb9ff82 100644 --- a/source/processes/electromagnetic/standard/include/G4KleinNishinaModel.hh +++ b/source/processes/electromagnetic/standard/include/G4KleinNishinaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4KleinNishinaModel.hh 82754 2014-07-08 14:06:13Z gcosmo $ +// $Id: G4KleinNishinaModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,14 +61,15 @@ class G4KleinNishinaModel : public G4VEmModel public: - G4KleinNishinaModel(const G4String& nam = "KleinNishina"); + explicit G4KleinNishinaModel(const G4String& nam = "KleinNishina"); virtual ~G4KleinNishinaModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -76,13 +77,13 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; protected: @@ -94,8 +95,8 @@ protected: private: // hide assignment operator - G4KleinNishinaModel & operator=(const G4KleinNishinaModel &right); - G4KleinNishinaModel(const G4KleinNishinaModel&); + G4KleinNishinaModel & operator=(const G4KleinNishinaModel &right) = delete; + G4KleinNishinaModel(const G4KleinNishinaModel&) = delete; G4LorentzVector lv1, lv2; G4ThreeVector bst; diff --git a/source/processes/electromagnetic/standard/include/G4ModifiedTsai.hh b/source/processes/electromagnetic/standard/include/G4ModifiedTsai.hh index b1961bcd5c..25430ca936 100644 --- a/source/processes/electromagnetic/standard/include/G4ModifiedTsai.hh +++ b/source/processes/electromagnetic/standard/include/G4ModifiedTsai.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ModifiedTsai.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4ModifiedTsai.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,22 +65,21 @@ class G4ModifiedTsai : public G4VEmAngularDistribution public: - G4ModifiedTsai(const G4String& name = ""); + explicit G4ModifiedTsai(const G4String& name = ""); virtual ~G4ModifiedTsai(); virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp, - G4double out_energy, - G4int Z, - const G4Material* mat = 0); + G4double out_energy, G4int Z, + const G4Material* mat = nullptr) final; - void PrintGeneratorInformation() const; + virtual void PrintGeneratorInformation() const final; private: // hide assignment operator - G4ModifiedTsai & operator=(const G4ModifiedTsai &right); - G4ModifiedTsai(const G4ModifiedTsai&); + G4ModifiedTsai & operator=(const G4ModifiedTsai &right) = delete; + G4ModifiedTsai(const G4ModifiedTsai&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh index d79a3b49fc..348aca5f46 100644 --- a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh +++ b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MollerBhabhaModel.hh 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4MollerBhabhaModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,12 +65,13 @@ class G4MollerBhabhaModel : public G4VEmModel public: - G4MollerBhabhaModel(const G4ParticleDefinition* p = nullptr, - const G4String& nam = "MollerBhabha"); + explicit G4MollerBhabhaModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "MollerBhabha"); virtual ~G4MollerBhabhaModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -83,31 +84,31 @@ public: G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + G4double kinEnergy) final; - inline void SetParticle(const G4ParticleDefinition* p); + inline void SetParticle(const G4ParticleDefinition* p); const G4ParticleDefinition* particle; G4ParticleDefinition* theElectron; @@ -120,8 +121,8 @@ protected: private: // hide assignment operator - G4MollerBhabhaModel & operator=(const G4MollerBhabhaModel &right); - G4MollerBhabhaModel(const G4MollerBhabhaModel&); + G4MollerBhabhaModel & operator=(const G4MollerBhabhaModel &right) = delete; + G4MollerBhabhaModel(const G4MollerBhabhaModel&) = delete; G4bool isInitialised; diff --git a/source/processes/electromagnetic/standard/include/G4MottCoefficients.hh b/source/processes/electromagnetic/standard/include/G4MottCoefficients.hh index fcd85fde6f..399e535c2c 100644 --- a/source/processes/electromagnetic/standard/include/G4MottCoefficients.hh +++ b/source/processes/electromagnetic/standard/include/G4MottCoefficients.hh @@ -69,7 +69,7 @@ class G4MottCoefficients public: - G4MottCoefficients(); + explicit G4MottCoefficients(); virtual ~G4MottCoefficients(); @@ -77,8 +77,8 @@ public: private: - G4MottCoefficients & operator=(const G4MottCoefficients &right); - G4MottCoefficients(const G4MottCoefficients&); + G4MottCoefficients & operator=(const G4MottCoefficients &right) = delete; + G4MottCoefficients(const G4MottCoefficients&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4NISTStoppingData.hh b/source/processes/electromagnetic/standard/include/G4NISTStoppingData.hh index 80ba5006a3..d106f7c2b7 100644 --- a/source/processes/electromagnetic/standard/include/G4NISTStoppingData.hh +++ b/source/processes/electromagnetic/standard/include/G4NISTStoppingData.hh @@ -86,6 +86,27 @@ static const G4int molecularIndex[numberOfMolecula] = { static const G4double fac = CLHEP::MeV*CLHEP::cm2/CLHEP::g; +static const G4double mvx = CLHEP::MeV; + +static const G4double T0[78] = { + 0.001*mvx, 0.0015*mvx, 0.002*mvx, 0.0025*mvx, 0.003*mvx, + 0.004*mvx, 0.005*mvx, 0.006*mvx, 0.007*mvx, 0.008*mvx, + 0.009*mvx, 0.01*mvx, 0.0125*mvx,0.015*mvx, 0.0175*mvx, + 0.02*mvx, 0.0225*mvx, 0.025*mvx, 0.0275*mvx, 0.03*mvx, + 0.035*mvx, 0.04*mvx, 0.045*mvx, 0.05*mvx, 0.055*mvx, + 0.06*mvx, 0.065*mvx, 0.07*mvx, 0.075*mvx, 0.08*mvx, + 0.085*mvx, 0.09*mvx, 0.095*mvx, 0.1*mvx, 0.125*mvx, + 0.15*mvx, 0.175*mvx, 0.2*mvx, 0.225*mvx, 0.25*mvx, + 0.275*mvx, 0.3*mvx, 0.35*mvx, 0.4*mvx, 0.45*mvx, + 0.5*mvx, 0.55*mvx, 0.6*mvx, 0.65*mvx, 0.7*mvx, + 0.75*mvx, 0.8*mvx, 0.85*mvx, 0.9*mvx, 0.95*mvx, + 1.*mvx, 1.25*mvx, 1.5*mvx, 1.75*mvx, 2.*mvx, + 2.25*mvx, 2.5*mvx, 2.75*mvx, 3.*mvx, 3.5*mvx, + 4.*mvx, 4.5*mvx, 5.*mvx, 5.5*mvx, 6.*mvx, + 6.5*mvx, 7.*mvx, 7.5*mvx, 8.*mvx, 8.5*mvx, + 9.*mvx, 9.5*mvx, 10.*mvx }; + + #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4NuclearStopping.hh b/source/processes/electromagnetic/standard/include/G4NuclearStopping.hh index 3df46b0e6a..6c1e1f8256 100644 --- a/source/processes/electromagnetic/standard/include/G4NuclearStopping.hh +++ b/source/processes/electromagnetic/standard/include/G4NuclearStopping.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NuclearStopping.hh 78837 2014-01-28 08:44:36Z gcosmo $ +// $Id: G4NuclearStopping.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ----------------------------------------------------------------------------- // @@ -68,37 +68,37 @@ class G4NuclearStopping : public G4VEmProcess public: // with description - G4NuclearStopping(const G4String& processName="nuclearStopping"); + explicit G4NuclearStopping(const G4String& processName="nuclearStopping"); virtual ~G4NuclearStopping(); // returns true for charged particles, false otherwise - G4bool IsApplicable (const G4ParticleDefinition& p); + G4bool IsApplicable (const G4ParticleDefinition& p) final; // implementation of pure virtual method G4double AlongStepGetPhysicalInteractionLength(const G4Track& track, G4double previousStepSize, G4double currentMinimumStep, G4double& proposedSafety, - G4GPILSelection* selection); + G4GPILSelection* selection) final; // implementation of energy loss along step G4VParticleChange* AlongStepDoIt(const G4Track& track, - const G4Step& step); + const G4Step& step) final; // Print few lines of informations about the process: validity range, - void PrintInfo(); + virtual void PrintInfo() final; protected: // This function initialise process - void InitialiseProcess(const G4ParticleDefinition*); + void InitialiseProcess(const G4ParticleDefinition*) final; private: // copy constructor and hide assignment operator - G4NuclearStopping(G4NuclearStopping &); - G4NuclearStopping & operator=(const G4NuclearStopping &right); + G4NuclearStopping(G4NuclearStopping &) = delete; + G4NuclearStopping & operator=(const G4NuclearStopping &right) = delete; G4ParticleChangeForLoss nParticleChange; diff --git a/source/processes/electromagnetic/standard/include/G4PAIModel.hh b/source/processes/electromagnetic/standard/include/G4PAIModel.hh index 74ee8e838a..2cb362bd34 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PAIModel.hh 89821 2015-04-30 14:56:43Z gcosmo $ +// $Id: G4PAIModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,44 +71,46 @@ class G4PAIModel : public G4VEmModel, public G4VEmFluctuationModel public: - G4PAIModel(const G4ParticleDefinition* p = 0, const G4String& nam = "PAI"); + explicit G4PAIModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "PAI"); virtual ~G4PAIModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) final; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) final; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) final; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) final; virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double, G4double, - G4double); + G4double) final; virtual G4double Dispersion( const G4Material*, const G4DynamicParticle*, G4double, - G4double); + G4double) final; - void DefineForRegion(const G4Region* r); + virtual void DefineForRegion(const G4Region* r) final; inline G4PAIModelData* GetPAIModelData(); @@ -120,8 +122,8 @@ public: protected: - G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy) final; private: @@ -130,8 +132,8 @@ private: inline void SetParticle(const G4ParticleDefinition* p); // hide assignment operator - G4PAIModel & operator=(const G4PAIModel &right); - G4PAIModel(const G4PAIModel&); + G4PAIModel & operator=(const G4PAIModel &right) = delete; + G4PAIModel(const G4PAIModel&) = delete; G4int fVerbose; diff --git a/source/processes/electromagnetic/standard/include/G4PAIModelData.hh b/source/processes/electromagnetic/standard/include/G4PAIModelData.hh index 873b98653b..1854f55eba 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIModelData.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIModelData.hh @@ -70,7 +70,7 @@ class G4PAIModelData public: - G4PAIModelData(G4double tmin, G4double tmax, G4int verbose); + explicit G4PAIModelData(G4double tmin, G4double tmax, G4int verbose); ~G4PAIModelData(); @@ -97,8 +97,8 @@ private: G4double position) const; // hide assignment operator - G4PAIModelData & operator=(const G4PAIModelData &right); - G4PAIModelData(const G4PAIModelData&); + G4PAIModelData & operator=(const G4PAIModelData &right) = delete; + G4PAIModelData(const G4PAIModelData&) = delete; G4int fTotBin; G4double fLowestKineticEnergy; @@ -112,16 +112,7 @@ private: std::vector fPAIxscBank; std::vector fPAIdEdxBank; std::vector fdEdxTable; - // std::vector fdNdxCutTable; - //std::vector fdEdxCutTable; - }; #endif - - - - - - diff --git a/source/processes/electromagnetic/standard/include/G4PAIPhotData.hh b/source/processes/electromagnetic/standard/include/G4PAIPhotData.hh index e39bd22817..78dbc9cbd1 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIPhotData.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIPhotData.hh @@ -68,7 +68,7 @@ class G4PAIPhotData public: - G4PAIPhotData(G4double tmin, G4double tmax, G4int verbose); + explicit G4PAIPhotData(G4double tmin, G4double tmax, G4int verbose); ~G4PAIPhotData(); @@ -109,8 +109,8 @@ private: G4double position) const; // hide assignment operator - G4PAIPhotData & operator=(const G4PAIPhotData &right); - G4PAIPhotData(const G4PAIPhotData&); + G4PAIPhotData & operator=(const G4PAIPhotData &right) = delete; + G4PAIPhotData(const G4PAIPhotData&) = delete; G4int fTotBin; G4double fLowestKineticEnergy; diff --git a/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh b/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh index 53c8d9e2b3..cfde6a7b42 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh @@ -66,44 +66,46 @@ class G4PAIPhotModel : public G4VEmModel, public G4VEmFluctuationModel public: - G4PAIPhotModel(const G4ParticleDefinition* p = 0, const G4String& nam = "PAI"); + explicit G4PAIPhotModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "PAI"); virtual ~G4PAIPhotModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) final; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) final; virtual G4double ComputeDEDXPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) final; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) final; virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double, G4double, - G4double); + G4double) final; virtual G4double Dispersion( const G4Material*, const G4DynamicParticle*, G4double, - G4double); + G4double) final; - void DefineForRegion(const G4Region* r); + virtual void DefineForRegion(const G4Region* r) final; inline G4PAIPhotData* GetPAIPhotData(); @@ -115,8 +117,8 @@ public: protected: - G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kinEnergy); + virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy) final; private: @@ -125,8 +127,8 @@ private: inline void SetParticle(const G4ParticleDefinition* p); // hide assignment operator - G4PAIPhotModel & operator=(const G4PAIPhotModel &right); - G4PAIPhotModel(const G4PAIPhotModel&); + G4PAIPhotModel & operator=(const G4PAIPhotModel &right) = delete; + G4PAIPhotModel(const G4PAIPhotModel&) = delete; G4int fVerbose; diff --git a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh index 3d814c558e..f273af4fe8 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PAIxSection.hh 75582 2013-11-04 12:13:01Z gcosmo $ +// $Id: G4PAIxSection.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // // G4PAIxSection.hh -- header file @@ -84,165 +84,153 @@ public: G4double maxEnergyTransfer, G4double betaGammaSq ); - // G4PAIxSection(const G4PAIxSection& right); - - // Destructor - - ~G4PAIxSection(); + ~G4PAIxSection(); - void Initialize(const G4Material* material, - G4double maxEnergyTransfer, G4double betaGammaSq, G4SandiaTable*); + void Initialize(const G4Material* material, G4double maxEnergyTransfer, + G4double betaGammaSq, G4SandiaTable*); - // Operators - // G4PAIxSection& operator=(const G4PAIxSection& right); - // G4int operator==(const G4PAIxSection& right)const; - // G4int operator!=(const G4PAIxSection& right)const; - - // Methods - - // General control functions + // General control functions void ComputeLowEnergyCof(const G4Material* material); - void ComputeLowEnergyCof(); + void ComputeLowEnergyCof(); - void InitPAI(); + void InitPAI(); - void NormShift( G4double betaGammaSq ); + void NormShift( G4double betaGammaSq ); - void SplainPAI( G4double betaGammaSq ); + void SplainPAI( G4double betaGammaSq ); - // Physical methods + // Physical methods + G4double RutherfordIntegral( G4int intervalNumber, + G4double limitLow, + G4double limitHigh ); - G4double RutherfordIntegral( G4int intervalNumber, - G4double limitLow, - G4double limitHigh ); + G4double ImPartDielectricConst( G4int intervalNumber, + G4double energy ); - G4double ImPartDielectricConst( G4int intervalNumber, - G4double energy ); + G4double GetPhotonRange( G4double energy ); + G4double GetElectronRange( G4double energy ); - G4double GetPhotonRange( G4double energy ); - G4double GetElectronRange( G4double energy ); + G4double RePartDielectricConst(G4double energy); - G4double RePartDielectricConst(G4double energy); + G4double DifPAIxSection( G4int intervalNumber, + G4double betaGammaSq ); - G4double DifPAIxSection( G4int intervalNumber, - G4double betaGammaSq ); + G4double PAIdNdxCerenkov( G4int intervalNumber, + G4double betaGammaSq ); + G4double PAIdNdxMM( G4int intervalNumber, + G4double betaGammaSq ); - G4double PAIdNdxCerenkov( G4int intervalNumber, - G4double betaGammaSq ); - G4double PAIdNdxMM( G4int intervalNumber, - G4double betaGammaSq ); + G4double PAIdNdxPlasmon( G4int intervalNumber, + G4double betaGammaSq ); - G4double PAIdNdxPlasmon( G4int intervalNumber, - G4double betaGammaSq ); - - G4double PAIdNdxResonance( G4int intervalNumber, - G4double betaGammaSq ); + G4double PAIdNdxResonance( G4int intervalNumber, + G4double betaGammaSq ); - void IntegralPAIxSection(); - void IntegralCerenkov(); - void IntegralMM(); - void IntegralPlasmon(); - void IntegralResonance(); + void IntegralPAIxSection(); + void IntegralCerenkov(); + void IntegralMM(); + void IntegralPlasmon(); + void IntegralResonance(); - G4double SumOverInterval(G4int intervalNumber); - G4double SumOverIntervaldEdx(G4int intervalNumber); - G4double SumOverInterCerenkov(G4int intervalNumber); - G4double SumOverInterMM(G4int intervalNumber); - G4double SumOverInterPlasmon(G4int intervalNumber); - G4double SumOverInterResonance(G4int intervalNumber); + G4double SumOverInterval(G4int intervalNumber); + G4double SumOverIntervaldEdx(G4int intervalNumber); + G4double SumOverInterCerenkov(G4int intervalNumber); + G4double SumOverInterMM(G4int intervalNumber); + G4double SumOverInterPlasmon(G4int intervalNumber); + G4double SumOverInterResonance(G4int intervalNumber); - G4double SumOverBorder( G4int intervalNumber, - G4double energy ); - G4double SumOverBorderdEdx( G4int intervalNumber, - G4double energy ); - G4double SumOverBordCerenkov( G4int intervalNumber, - G4double energy ); - G4double SumOverBordMM( G4int intervalNumber, - G4double energy ); - G4double SumOverBordPlasmon( G4int intervalNumber, - G4double energy ); - G4double SumOverBordResonance( G4int intervalNumber, - G4double energy ); + G4double SumOverBorder( G4int intervalNumber, + G4double energy ); + G4double SumOverBorderdEdx( G4int intervalNumber, + G4double energy ); + G4double SumOverBordCerenkov( G4int intervalNumber, + G4double energy ); + G4double SumOverBordMM( G4int intervalNumber, + G4double energy ); + G4double SumOverBordPlasmon( G4int intervalNumber, + G4double energy ); + G4double SumOverBordResonance( G4int intervalNumber, + G4double energy ); - G4double GetStepEnergyLoss( G4double step ); - G4double GetStepCerenkovLoss( G4double step ); - G4double GetStepMMLoss( G4double step ); - G4double GetStepPlasmonLoss( G4double step ); - G4double GetStepResonanceLoss( G4double step ); + G4double GetStepEnergyLoss( G4double step ); + G4double GetStepCerenkovLoss( G4double step ); + G4double GetStepMMLoss( G4double step ); + G4double GetStepPlasmonLoss( G4double step ); + G4double GetStepResonanceLoss( G4double step ); - G4double GetEnergyTransfer(); - G4double GetCerenkovEnergyTransfer(); - G4double GetMMEnergyTransfer(); - G4double GetPlasmonEnergyTransfer(); - G4double GetResonanceEnergyTransfer(); - G4double GetRutherfordEnergyTransfer(); + G4double GetEnergyTransfer(); + G4double GetCerenkovEnergyTransfer(); + G4double GetMMEnergyTransfer(); + G4double GetPlasmonEnergyTransfer(); + G4double GetResonanceEnergyTransfer(); + G4double GetRutherfordEnergyTransfer(); - // Inline access functions + // Inline access functions - G4int GetNumberOfGammas() const { return fNumberOfGammas; } + G4int GetNumberOfGammas() const { return fNumberOfGammas; } - G4int GetSplineSize() const { return fSplineNumber; } + G4int GetSplineSize() const { return fSplineNumber; } - G4int GetIntervalNumber() const { return fIntervalNumber; } + G4int GetIntervalNumber() const { return fIntervalNumber; } - G4double GetEnergyInterval(G4int i){ return fEnergyInterval[i]; } + G4double GetEnergyInterval(G4int i){ return fEnergyInterval[i]; } - G4double GetDifPAIxSection(G4int i){ return fDifPAIxSection[i]; } - G4double GetPAIdNdxCerenkov(G4int i){ return fdNdxCerenkov[i]; } - G4double GetPAIdNdxMM(G4int i){ return fdNdxMM[i]; } - G4double GetPAIdNdxPlasmon(G4int i){ return fdNdxPlasmon[i]; } - G4double GetPAIdNdxResonance(G4int i){ return fdNdxResonance[i]; } + G4double GetDifPAIxSection(G4int i){ return fDifPAIxSection[i]; } + G4double GetPAIdNdxCerenkov(G4int i){ return fdNdxCerenkov[i]; } + G4double GetPAIdNdxMM(G4int i){ return fdNdxMM[i]; } + G4double GetPAIdNdxPlasmon(G4int i){ return fdNdxPlasmon[i]; } + G4double GetPAIdNdxResonance(G4int i){ return fdNdxResonance[i]; } - G4double GetMeanEnergyLoss() const {return fIntegralPAIxSection[0]; } - G4double GetMeanCerenkovLoss() const {return fIntegralCerenkov[0]; } - G4double GetMeanMMLoss() const {return fIntegralMM[0]; } - G4double GetMeanPlasmonLoss() const {return fIntegralPlasmon[0]; } - G4double GetMeanResonanceLoss() const {return fIntegralResonance[0]; } + G4double GetMeanEnergyLoss() const {return fIntegralPAIxSection[0]; } + G4double GetMeanCerenkovLoss() const {return fIntegralCerenkov[0]; } + G4double GetMeanMMLoss() const {return fIntegralMM[0]; } + G4double GetMeanPlasmonLoss() const {return fIntegralPlasmon[0]; } + G4double GetMeanResonanceLoss() const {return fIntegralResonance[0]; } - G4double GetNormalizationCof() const { return fNormalizationCof; } + G4double GetNormalizationCof() const { return fNormalizationCof; } - G4double GetLowEnergyCof() const { return fLowEnergyCof; } + G4double GetLowEnergyCof() const { return fLowEnergyCof; } void SetVerbose(G4int v){fVerbose=v;}; - inline G4double GetPAItable(G4int i,G4int j) const; - - inline G4double GetLorentzFactor(G4int i) const; + inline G4double GetPAItable(G4int i,G4int j) const; + + inline G4double GetLorentzFactor(G4int i) const; - inline G4double GetSplineEnergy(G4int i) const; + inline G4double GetSplineEnergy(G4int i) const; - inline G4double GetIntegralPAIxSection(G4int i) const; - inline G4double GetIntegralPAIdEdx(G4int i) const; - inline G4double GetIntegralCerenkov(G4int i) const; - inline G4double GetIntegralMM(G4int i) const; - inline G4double GetIntegralPlasmon(G4int i) const; - inline G4double GetIntegralResonance(G4int i) const; + inline G4double GetIntegralPAIxSection(G4int i) const; + inline G4double GetIntegralPAIdEdx(G4int i) const; + inline G4double GetIntegralCerenkov(G4int i) const; + inline G4double GetIntegralMM(G4int i) const; + inline G4double GetIntegralPlasmon(G4int i) const; + inline G4double GetIntegralResonance(G4int i) const; private : void CallError(G4int i, const G4String& methodName) const; - G4PAIxSection & operator=(const G4PAIxSection &right); - G4PAIxSection(const G4PAIxSection&); + G4PAIxSection & operator=(const G4PAIxSection &right) = delete; + G4PAIxSection(const G4PAIxSection&) = delete; -// Local class constants + // Local class constants -static const G4double fDelta; // energy shift from interval border = 0.001 -static const G4double fError; // error in lin-log approximation = 0.005 + static const G4double fDelta; // energy shift from interval border = 0.001 + static const G4double fError; // error in lin-log approximation = 0.005 -static G4int fNumberOfGammas; // = 111; -static const G4double fLorentzFactor[112]; // static gamma array + static G4int fNumberOfGammas; // = 111; + static const G4double fLorentzFactor[112]; // static gamma array -static -const G4int fRefGammaNumber ; // The number of gamma for creation of spline (15) + static + const G4int fRefGammaNumber; //The number of gamma for creation of spline (15) -G4int fIntervalNumber ; // The number of energy intervals -G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection + G4int fIntervalNumber ; // The number of energy intervals + G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection -// G4double fBetaGammaSq; // (beta*gamma)^2 + // G4double fBetaGammaSq; // (beta*gamma)^2 G4int fMaterialIndex; // current material index G4double fDensity; // Current density @@ -251,7 +239,7 @@ G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection G4int fSplineNumber; // Current size of spline G4int fVerbose; // verbose flag -// Arrays of Sandia coefficients + // Arrays of Sandia coefficients G4OrderedTable* fMatSandiaMatrix; @@ -263,9 +251,8 @@ G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection G4DataVector fA3; G4DataVector fA4; -static -const G4int fMaxSplineSize ; // Max size of output splain arrays = 500 - + static + const G4int fMaxSplineSize ; // Max size of output splain arrays = 500 G4DataVector fSplineEnergy; // energy points of splain G4DataVector fRePartDielectricConst; // Real part of dielectric const @@ -284,9 +271,7 @@ const G4int fMaxSplineSize ; // Max size of output splain arrays = 50 G4DataVector fIntegralMM; // Integral MM N>omega ? G4DataVector fIntegralResonance; // Integral resonance N>omega ? - - -G4double fPAItable[500][112]; // Output array + G4double fPAItable[500][112]; // Output array }; diff --git a/source/processes/electromagnetic/standard/include/G4PAIySection.hh b/source/processes/electromagnetic/standard/include/G4PAIySection.hh index 1e34a808ea..9eaf05560c 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIySection.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIySection.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PAIySection.hh 70170 2013-05-24 13:32:33Z gcosmo $ +// $Id: G4PAIySection.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // // G4PAIySection.hh -- header file @@ -53,14 +53,14 @@ class G4PAIySection { public: - G4PAIySection(); + explicit G4PAIySection(); ~G4PAIySection(); - void Initialize(const G4Material* material, - G4double maxEnergyTransfer, G4double betaGammaSq, G4SandiaTable*); + void Initialize(const G4Material* material, G4double maxEnergyTransfer, + G4double betaGammaSq, G4SandiaTable*); - void ComputeLowEnergyCof(const G4Material* material); + void ComputeLowEnergyCof(const G4Material* material); void InitPAI(); @@ -151,20 +151,23 @@ private : static const G4double fDelta; // energy shift from interval border = 0.001 static const G4double fError; // error in lin-log approximation = 0.005 - static G4int fNumberOfGammas; // = 111; + static G4int fNumberOfGammas; // = 111; static const G4double fLorentzFactor[112]; // static gamma array static - const G4int fRefGammaNumber ; // The number of gamma for creation of spline (15) + const G4int fRefGammaNumber; // The number of gamma for creation of spline (15) - G4int fIntervalNumber ; // The number of energy intervals - G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection + G4int fIntervalNumber ; // The number of energy intervals + G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection + + G4double betaBohr; + G4double betaBohr4; G4double fDensity; // Current density G4double fElectronDensity; // Current electron (number) density - G4double fLowEnergyCof; // Correction cof for low energy region + G4double fLowEnergyCof; // Correction cof for low energy region G4int fSplineNumber; // Current size of spline - G4int fVerbose; // verbose flag + G4int fVerbose; // verbose flag G4SandiaTable* fSandia; @@ -175,29 +178,24 @@ private : G4DataVector fA4; static - const G4int fMaxSplineSize ; // Max size of output splain arrays = 500 + const G4int fMaxSplineSize; // Max size of output splain arrays = 500 - G4DataVector fSplineEnergy; // energy points of splain - G4DataVector fRePartDielectricConst; // Real part of dielectric const - G4DataVector fImPartDielectricConst; // Imaginary part of dielectric const - G4DataVector fIntegralTerm; // Integral term in PAI cross section - G4DataVector fDifPAIySection; // Differential PAI cross section - G4DataVector fdNdxCerenkov; // dNdx of Cerenkov collisions - G4DataVector fdNdxPlasmon; // dNdx of Plasmon collisions + G4DataVector fSplineEnergy; // energy points of splain + G4DataVector fRePartDielectricConst; // Real part of dielectric const + G4DataVector fImPartDielectricConst; // Imaginary part of dielectric const + G4DataVector fIntegralTerm; // Integral term in PAI cross section + G4DataVector fDifPAIySection; // Differential PAI cross section + G4DataVector fdNdxCerenkov; // dNdx of Cerenkov collisions + G4DataVector fdNdxPlasmon; // dNdx of Plasmon collisions - G4DataVector fIntegralPAIySection; // Integral PAI cross section ? - G4DataVector fIntegralPAIdEdx; // Integral PAI dEdx ? - G4DataVector fIntegralCerenkov; // Integral Cerenkov N>omega ? - G4DataVector fIntegralPlasmon; // Integral Plasmon N>omega ? - - G4double fPAItable[500][112]; // Output array + G4DataVector fIntegralPAIySection; // Integral PAI cross section ? + G4DataVector fIntegralPAIdEdx; // Integral PAI dEdx ? + G4DataVector fIntegralCerenkov; // Integral Cerenkov N>omega ? + G4DataVector fIntegralPlasmon; // Integral Plasmon N>omega ? + G4double fPAItable[500][112]; // Output array }; -//////////////// Inline methods ////////////////////////////////// -// - - inline G4double G4PAIySection::GetPAItable(G4int i, G4int j) const { return fPAItable[i][j]; diff --git a/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh b/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh index b6b55dd4a4..c7ef44daad 100644 --- a/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PEEffectFluoModel.hh 84397 2014-10-15 07:19:14Z gcosmo $ +// $Id: G4PEEffectFluoModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,35 +60,35 @@ class G4PEEffectFluoModel : public G4VEmModel public: - G4PEEffectFluoModel(const G4String& nam = "PhotoElectric"); + explicit G4PEEffectFluoModel(const G4String& nam = "PhotoElectric"); virtual ~G4PEEffectFluoModel(); virtual - void Initialise(const G4ParticleDefinition*, const G4DataVector&); + void Initialise(const G4ParticleDefinition*, const G4DataVector&) override; virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double kinEnergy, G4double Z, G4double A, - G4double, G4double); + G4double, G4double) override; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; private: - G4PEEffectFluoModel & operator=(const G4PEEffectFluoModel &right); - G4PEEffectFluoModel(const G4PEEffectFluoModel&); + G4PEEffectFluoModel & operator=(const G4PEEffectFluoModel &right) = delete; + G4PEEffectFluoModel(const G4PEEffectFluoModel&) = delete; G4ParticleDefinition* theGamma; G4ParticleDefinition* theElectron; diff --git a/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh b/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh index 57d0e01604..6d9fd6630d 100644 --- a/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh +++ b/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PSTARStopping.hh 83008 2014-07-24 14:49:52Z gcosmo $ +// $Id: G4PSTARStopping.hh 96934 2016-05-18 09:10:41Z gcosmo $ #ifndef G4PSTARStopping_h #define G4PSTARStopping_h 1 @@ -48,6 +48,9 @@ // // Data on Stopping Powers from the NIST Data Base // http://physics.nist.gov/PhysRefData/STAR/Text/PSTAR.html +// +// Current PSTAR database is available via url: +// http://physics.nist.gov/PhysRefData/Star/Text/PSTAR.html // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,7 +64,7 @@ class G4PSTARStopping { public: - G4PSTARStopping(); + explicit G4PSTARStopping(); ~G4PSTARStopping(); @@ -77,17 +80,17 @@ public: private: - void AddData(const G4double* s, const G4Material*); + void AddData(const G4float* s, const G4Material*); void FindData(G4int idx, const G4Material*); void PrintWarning(G4int idx) const; // hide assignment operator - G4PSTARStopping & operator=(const G4PSTARStopping &right); - G4PSTARStopping(const G4PSTARStopping&); + G4PSTARStopping & operator=(const G4PSTARStopping &right) = delete; + G4PSTARStopping(const G4PSTARStopping&) = delete; - size_t nvectors; + G4int nvectors; G4double emin; std::vector materials; std::vector sdata; @@ -98,7 +101,7 @@ private: inline G4int G4PSTARStopping:: GetIndex (const G4Material* mat) const { G4int idx = -1; - for (size_t i=0; iGetName()){ idx = i; break; @@ -127,9 +130,9 @@ inline G4double G4PSTARStopping::GetElectronicDEDX(G4int idx, G4double energy) const { G4double res = 0.0; - if (idx<0 || idx>= G4int(nvectors)) { PrintWarning(idx); } - if(energy < emin) { res = (*(sdata[idx]))[0]*std::sqrt(energy/emin); } - else { res = sdata[idx]->Value(energy); } + if (idx<0 || idx>= nvectors) { PrintWarning(idx); } + else if(energy < emin) { res = (*(sdata[idx]))[0]*std::sqrt(energy/emin); } + else { res = sdata[idx]->Value(energy); } return res; } diff --git a/source/processes/electromagnetic/standard/include/G4PairProductionRelModel.hh b/source/processes/electromagnetic/standard/include/G4PairProductionRelModel.hh index a0496bda7c..9977c0a1f5 100644 --- a/source/processes/electromagnetic/standard/include/G4PairProductionRelModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PairProductionRelModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PairProductionRelModel.hh 73607 2013-09-02 10:04:03Z gcosmo $ +// $Id: G4PairProductionRelModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -63,15 +63,16 @@ class G4PairProductionRelModel : public G4VEmModel public: - G4PairProductionRelModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "BetheHeitlerLPM"); + explicit G4PairProductionRelModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "BetheHeitlerLPM"); virtual ~G4PairProductionRelModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -79,19 +80,19 @@ public: G4double Z, G4double A=0., G4double cut=0., - G4double emax=DBL_MAX); + G4double emax=DBL_MAX) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; virtual void SetupForMaterial(const G4ParticleDefinition*, - const G4Material*,G4double); + const G4Material*,G4double) override; // * fast inline functions * - inline void SetCurrentElement(G4double /*Z*/); + inline void SetCurrentElement(G4double Z); // set / get methods inline void SetLPMconstant(G4double val); @@ -119,8 +120,9 @@ protected: G4double ComputeRelDXSectionPerAtom(G4double eplusEnergy, G4double totalEnergy, G4double Z); // hide assignment operator - G4PairProductionRelModel & operator=(const G4PairProductionRelModel &right); - G4PairProductionRelModel(const G4PairProductionRelModel&); + G4PairProductionRelModel & operator= + (const G4PairProductionRelModel &right) = delete; + G4PairProductionRelModel(const G4PairProductionRelModel&) = delete; G4NistManager* nist; @@ -150,7 +152,7 @@ protected: static const G4double facFel; static const G4double facFinel; - static const G4double preS1, logTwo; + static const G4double preS1, logTwo, xsfactor, Egsmall; }; @@ -194,7 +196,7 @@ inline void G4PairProductionRelModel::SetCurrentElement(G4double Z) if(Z != currentZ) { currentZ = Z; - G4int iz = G4int(Z); + G4int iz = G4lrint(Z); z13 = nist->GetZ13(iz); z23 = z13*z13; lnZ = nist->GetLOGZ(iz); diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh index 413a3237c4..0c1742c0cd 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PhotoElectricEffect.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4PhotoElectricEffect.hh 96934 2016-05-18 09:10:41Z gcosmo $ // //------------------ G4PhotoElectricEffect physics process ------------------ // by Michel Maire, 24 May 1996 @@ -81,20 +81,20 @@ class G4PhotoElectricEffect : public G4VEmProcess { public: // with description - G4PhotoElectricEffect(const G4String& processName ="phot", - G4ProcessType type = fElectromagnetic); + explicit G4PhotoElectricEffect(const G4String& processName ="phot", + G4ProcessType type = fElectromagnetic); virtual ~G4PhotoElectricEffect(); // true for Gamma only. - virtual G4bool IsApplicable(const G4ParticleDefinition&); + virtual G4bool IsApplicable(const G4ParticleDefinition&) final; // Print few lines of informations about the process: validity range, - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: diff --git a/source/processes/electromagnetic/standard/include/G4SauterGavrilaAngularDistribution.hh b/source/processes/electromagnetic/standard/include/G4SauterGavrilaAngularDistribution.hh index 408ec380fc..98da9b1899 100644 --- a/source/processes/electromagnetic/standard/include/G4SauterGavrilaAngularDistribution.hh +++ b/source/processes/electromagnetic/standard/include/G4SauterGavrilaAngularDistribution.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4SauterGavrilaAngularDistribution.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4SauterGavrilaAngularDistribution.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -57,22 +57,23 @@ class G4SauterGavrilaAngularDistribution : public G4VEmAngularDistribution public: - G4SauterGavrilaAngularDistribution(); + explicit G4SauterGavrilaAngularDistribution(); virtual ~G4SauterGavrilaAngularDistribution(); virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp, G4double e = 0.0, G4int shellId = 0, - const G4Material* mat = 0); + const G4Material* mat = 0) final; - void PrintGeneratorInformation() const; + virtual void PrintGeneratorInformation() const final; private: // hide assignment operator - G4SauterGavrilaAngularDistribution & operator=(const G4SauterGavrilaAngularDistribution &right); - G4SauterGavrilaAngularDistribution(const G4SauterGavrilaAngularDistribution&); + G4SauterGavrilaAngularDistribution & operator= + (const G4SauterGavrilaAngularDistribution &right) = delete; + G4SauterGavrilaAngularDistribution(const G4SauterGavrilaAngularDistribution&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4ScreeningMottCrossSection.hh b/source/processes/electromagnetic/standard/include/G4ScreeningMottCrossSection.hh index 3f6a6d174b..55bf7e4d0c 100644 --- a/source/processes/electromagnetic/standard/include/G4ScreeningMottCrossSection.hh +++ b/source/processes/electromagnetic/standard/include/G4ScreeningMottCrossSection.hh @@ -79,16 +79,18 @@ #include "G4Pow.hh" #include "G4LossTableManager.hh" -class G4ParticleDefinition; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +static const G4int DIM = 750; + +class G4ParticleDefinition; + class G4ScreeningMottCrossSection { public: - G4ScreeningMottCrossSection(); + explicit G4ScreeningMottCrossSection(); virtual ~G4ScreeningMottCrossSection(); @@ -100,7 +102,7 @@ public: inline void SetupParticle(const G4ParticleDefinition*); - void SetupKinematic(G4double kinEnergy ,G4double Z); + void SetupKinematic(G4double kinEnergy ,G4int Z); G4double NuclearCrossSection(); G4ThreeVector GetNewDirection(); @@ -165,7 +167,7 @@ private: // target nucleus - G4double targetZ; + G4int targetZ; G4double targetA; G4double targetMass; G4double Trec; @@ -178,11 +180,6 @@ private: G4double e2; //angle - static const G4int DIM = 950; - - G4double angle[DIM]; - G4double tet[DIM]; - G4double dangle[DIM]; G4double cross[DIM]; }; diff --git a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh index 393237b7ca..a5cbee645e 100644 --- a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh +++ b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4UniversalFluctuation.hh 81365 2014-05-27 12:56:32Z gcosmo $ +// $Id: G4UniversalFluctuation.hh 95832 2016-02-26 11:12:31Z gcosmo $ // // ------------------------------------------------------------------- // @@ -43,7 +43,7 @@ // 07-02-03 change signature (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) // 16-10-03 Changed interface to Initialisation (V.Ivanchenko) -// 07-02-05 define problim = 5.e-3 (mma) +// 07-02-05 define problem = 5.e-3 (mma) // // Class Description: // @@ -58,37 +58,48 @@ #include "G4VEmFluctuationModel.hh" #include "G4ParticleDefinition.hh" +#include "G4Poisson.hh" +#include class G4UniversalFluctuation : public G4VEmFluctuationModel { public: - G4UniversalFluctuation(const G4String& nam = "UniFluc"); + explicit G4UniversalFluctuation(const G4String& nam = "UniFluc"); virtual ~G4UniversalFluctuation(); virtual G4double SampleFluctuations(const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double, - G4double, - G4double); + const G4DynamicParticle*, + G4double, + G4double, + G4double) override; - virtual G4double Dispersion( const G4Material*, - const G4DynamicParticle*, - G4double, - G4double); + virtual G4double Dispersion(const G4Material*, + const G4DynamicParticle*, + G4double, + G4double) override; - virtual void InitialiseMe(const G4ParticleDefinition*); + virtual void InitialiseMe(const G4ParticleDefinition*) final; // Initialisation prestep - virtual void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2); + virtual void SetParticleAndCharge(const G4ParticleDefinition*, + G4double q2) final; private: + inline void AddExcitation(CLHEP::HepRandomEngine* rndm, + G4double a, G4double e, G4double& eav, + G4double& eloss, G4double& esig2); + + inline void SampleGauss(CLHEP::HepRandomEngine* rndm, + G4double eav, G4double esig2, + G4double& eloss); + // hide assignment operator - G4UniversalFluctuation & operator=(const G4UniversalFluctuation &right); - G4UniversalFluctuation(const G4UniversalFluctuation&); + G4UniversalFluctuation & operator=(const G4UniversalFluctuation &right) = delete; + G4UniversalFluctuation(const G4UniversalFluctuation&) = delete; const G4ParticleDefinition* particle; const G4Material* lastMaterial; @@ -117,7 +128,6 @@ private: G4double e1,e2; G4double minNumberInteractionsBohr; - G4double theBohrBeta2; G4double minLoss; G4double nmaxCont; G4double rate,fw; @@ -129,5 +139,42 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void +G4UniversalFluctuation::AddExcitation(CLHEP::HepRandomEngine* rndm, + G4double ax, G4double ex, G4double& eav, + G4double& eloss, G4double& esig2) +{ + if(ax > nmaxCont) { + eav += ax*ex; + esig2 += ax*ex*ex; + } else if(ax > 0.) { + G4double p = G4double(G4Poisson(ax)); + eloss += p*ex; + if(p > 0.) { eloss += (1.-2.*rndm->flat())*ex; } + } +} + +inline void +G4UniversalFluctuation::SampleGauss(CLHEP::HepRandomEngine* rndm, + G4double eav, G4double esig2, + G4double& eloss) +{ + G4double x = eav; + if(esig2 > 0.0) { + G4double sig = sqrt(esig2); + G4double deltae = std::min(4.*sig, eav); + if(deltae < 0.25*sig) { + x += (2.*rndm->flat() - 1.)*deltae; + } else { + do { + x = G4RandGauss::shoot(rndm, eav, sig); + } while (x < eav-deltae || x > eav+deltae); + // Loop checking, 23-Feb-2016, Vladimir Ivanchenko + } + } + eloss += x; +} + #endif diff --git a/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh b/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh index ec56ab7750..7f72e01bcd 100644 --- a/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh +++ b/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh @@ -67,8 +67,6 @@ class G4ParticleChangeForMSC; class G4SafetyHelper; class G4LossTableManager; -static const G4double c_highland = 13.6*CLHEP::MeV ; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class G4UrbanMscModel : public G4VMscModel @@ -76,29 +74,33 @@ class G4UrbanMscModel : public G4VMscModel public: - G4UrbanMscModel(const G4String& nam = "UrbanMsc"); + explicit G4UrbanMscModel(const G4String& nam = "UrbanMsc"); virtual ~G4UrbanMscModel(); - void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; - void StartTracking(G4Track*); + virtual void StartTracking(G4Track*) override; - G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition* particle, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicWeight=0., - G4double cut =0., - G4double emax=DBL_MAX); + virtual G4double + ComputeCrossSectionPerAtom(const G4ParticleDefinition* particle, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicWeight=0., + G4double cut =0., + G4double emax=DBL_MAX) override; - G4ThreeVector& SampleScattering(const G4ThreeVector&, G4double safety); + virtual G4ThreeVector& SampleScattering(const G4ThreeVector&, + G4double safety) override; - G4double ComputeTruePathLengthLimit(const G4Track& track, - G4double& currentMinimalStep); + virtual G4double + ComputeTruePathLengthLimit(const G4Track& track, + G4double& currentMinimalStep) override; - G4double ComputeGeomPathLength(G4double truePathLength); + virtual G4double ComputeGeomPathLength(G4double truePathLength) override; - G4double ComputeTrueStepLength(G4double geomStepLength); + virtual G4double ComputeTrueStepLength(G4double geomStepLength) override; G4double ComputeTheta0(G4double truePathLength, G4double KineticEnergy); @@ -121,8 +123,8 @@ private: inline G4double SimpleScattering(G4double xmeanth, G4double x2meanth); // hide assignment operator - G4UrbanMscModel & operator=(const G4UrbanMscModel &right); - G4UrbanMscModel(const G4UrbanMscModel&); + G4UrbanMscModel & operator=(const G4UrbanMscModel &right) = delete; + G4UrbanMscModel(const G4UrbanMscModel&) = delete; CLHEP::HepRandomEngine* rndmEngineMod; @@ -207,45 +209,46 @@ void G4UrbanMscModel::SetParticle(const G4ParticleDefinition* p) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline -G4double G4UrbanMscModel::Randomizetlimit() + +inline G4double G4UrbanMscModel::Randomizetlimit() { G4double temptlimit = tlimit; if(tlimit > tlimitmin) { + G4double delta = tlimit-tlimitmin; do { - temptlimit = G4RandGauss::shoot(rndmEngineMod,tlimit,0.3*tlimit); - // Loop checking, 03-Aug-2015, Vladimir Ivanchenko - } while ((temptlimit < tlimitmin) || - (temptlimit > 2.*tlimit-tlimitmin)); + temptlimit = G4RandGauss::shoot(rndmEngineMod,tlimit,0.1*delta); + // Loop checking, 10-Apr-2016, Laszlo Urban + } while ((temptlimit < tlimit-delta) || + (temptlimit > tlimit+delta)); } - else temptlimit = tlimitmin; + else { temptlimit = tlimitmin; } return temptlimit; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline -void G4UrbanMscModel::UpdateCache() + +inline void G4UrbanMscModel::UpdateCache() { - lnZ = G4Log(Zeff); - // correction in theta0 formula - G4double w = G4Exp(lnZ/6.); - G4double facz = 0.990395+w*(-0.168386+w*0.093286) ; - coeffth1 = facz*(1. - 8.7780e-2/Zeff); - coeffth2 = facz*(4.0780e-2 + 1.7315e-4*Zeff); + lnZ = G4Log(Zeff); + // correction in theta0 formula + G4double w = G4Exp(lnZ/6.); + G4double facz = 0.990395+w*(-0.168386+w*0.093286) ; + coeffth1 = facz*(1. - 8.7780e-2/Zeff); + coeffth2 = facz*(4.0780e-2 + 1.7315e-4*Zeff); - // tail parameters - G4double Z13 = w*w; - coeffc1 = 2.3785 - Z13*(4.1981e-1 - Z13*6.3100e-2); - coeffc2 = 4.7526e-1 + Z13*(1.7694 - Z13*3.3885e-1); - coeffc3 = 2.3683e-1 - Z13*(1.8111 - Z13*3.2774e-1); - coeffc4 = 1.7888e-2 + Z13*(1.9659e-2 - Z13*2.6664e-3); + // tail parameters + G4double Z13 = w*w; + coeffc1 = 2.3785 - Z13*(4.1981e-1 - Z13*6.3100e-2); + coeffc2 = 4.7526e-1 + Z13*(1.7694 - Z13*3.3885e-1); + coeffc3 = 2.3683e-1 - Z13*(1.8111 - Z13*3.2774e-1); + coeffc4 = 1.7888e-2 + Z13*(1.9659e-2 - Z13*2.6664e-3); - Z2 = Zeff*Zeff; - Z23 = Z13*Z13; + Z2 = Zeff*Zeff; + Z23 = Z13*Z13; - Zold = Zeff; + Zold = Zeff; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4WaterStopping.hh b/source/processes/electromagnetic/standard/include/G4WaterStopping.hh index 6957acbdbe..c469498855 100644 --- a/source/processes/electromagnetic/standard/include/G4WaterStopping.hh +++ b/source/processes/electromagnetic/standard/include/G4WaterStopping.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WaterStopping.hh 83008 2014-07-24 14:49:52Z gcosmo $ +// $Id: G4WaterStopping.hh 96934 2016-05-18 09:10:41Z gcosmo $ #ifndef G4WaterStopping_h #define G4WaterStopping_h 1 @@ -58,7 +58,7 @@ class G4WaterStopping { public: - G4WaterStopping(G4EmCorrections* corr = 0, G4bool splineFlag = true); + explicit G4WaterStopping(G4EmCorrections* corr = 0, G4bool splineFlag = true); ~G4WaterStopping(); @@ -72,12 +72,12 @@ private: G4double factor); // hide assignment operator - G4WaterStopping & operator=(const G4WaterStopping &right); - G4WaterStopping(const G4WaterStopping&); + G4WaterStopping & operator=(const G4WaterStopping &right) = delete; + G4WaterStopping(const G4WaterStopping&) = delete; G4bool spline; - G4int Z[17]; - G4double A[17]; + static const G4int Z[17]; + static const G4double A[17]; G4double emin; std::vector dedx; }; diff --git a/source/processes/electromagnetic/standard/include/G4WentzelOKandVIxSection.hh b/source/processes/electromagnetic/standard/include/G4WentzelOKandVIxSection.hh index f04349d77a..3171f8255f 100644 --- a/source/processes/electromagnetic/standard/include/G4WentzelOKandVIxSection.hh +++ b/source/processes/electromagnetic/standard/include/G4WentzelOKandVIxSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelOKandVIxSection.hh 80656 2014-05-06 08:31:39Z gcosmo $ +// $Id: G4WentzelOKandVIxSection.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,13 +73,13 @@ class G4WentzelOKandVIxSection public: - G4WentzelOKandVIxSection(G4bool combined = true); + explicit G4WentzelOKandVIxSection(G4bool combined = true); virtual ~G4WentzelOKandVIxSection(); void Initialise(const G4ParticleDefinition*, G4double CosThetaLim); - void SetupParticle(const G4ParticleDefinition*); + void SetupParticle(const G4ParticleDefinition*) ; // return cos(ThetaMax) for msc and cos(thetaMin) for single scattering // cut = DBL_MAX means no scattering off electrons @@ -114,8 +114,9 @@ private: void ComputeMaxElectronScattering(G4double cut); // hide assignment operator - G4WentzelOKandVIxSection & operator=(const G4WentzelOKandVIxSection &right); - G4WentzelOKandVIxSection(const G4WentzelOKandVIxSection&); + G4WentzelOKandVIxSection & operator= + (const G4WentzelOKandVIxSection &right) = delete; + G4WentzelOKandVIxSection(const G4WentzelOKandVIxSection&) = delete; const G4ParticleDefinition* theProton; const G4ParticleDefinition* theElectron; diff --git a/source/processes/electromagnetic/standard/include/G4WentzelVIModel.hh b/source/processes/electromagnetic/standard/include/G4WentzelVIModel.hh index 26445e8dad..859544f498 100644 --- a/source/processes/electromagnetic/standard/include/G4WentzelVIModel.hh +++ b/source/processes/electromagnetic/standard/include/G4WentzelVIModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelVIModel.hh 89893 2015-05-04 07:29:17Z gcosmo $ +// $Id: G4WentzelVIModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -68,33 +68,36 @@ class G4WentzelVIModel : public G4VMscModel public: - G4WentzelVIModel(G4bool comb = true, const G4String& nam = "WentzelVIUni"); + explicit G4WentzelVIModel(G4bool comb = true, + const G4String& nam = "WentzelVIUni"); virtual ~G4WentzelVIModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; - void StartTracking(G4Track*); + virtual void StartTracking(G4Track*) override; virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double KineticEnergy, G4double AtomicNumber, G4double AtomicWeight=0., G4double cut = DBL_MAX, - G4double emax= DBL_MAX); + G4double emax= DBL_MAX) override; virtual G4ThreeVector& SampleScattering(const G4ThreeVector&, - G4double safety); + G4double safety) override; - virtual G4double ComputeTruePathLengthLimit(const G4Track& track, - G4double& currentMinimalStep); + virtual G4double + ComputeTruePathLengthLimit(const G4Track& track, + G4double& currentMinimalStep) override; - virtual G4double ComputeGeomPathLength(G4double truePathLength); + virtual G4double ComputeGeomPathLength(G4double truePathLength) override; - virtual G4double ComputeTrueStepLength(G4double geomStepLength); + virtual G4double ComputeTrueStepLength(G4double geomStepLength) override; // defines low energy limit on energy transfer to atomic electron inline void SetFixedCut(G4double); @@ -131,8 +134,8 @@ private: inline void SetupParticle(const G4ParticleDefinition*); // hide assignment operator - G4WentzelVIModel & operator=(const G4WentzelVIModel &right); - G4WentzelVIModel(const G4WentzelVIModel&); + G4WentzelVIModel & operator=(const G4WentzelVIModel &right) = delete; + G4WentzelVIModel(const G4WentzelVIModel&) = delete; protected: @@ -179,11 +182,12 @@ private: size_t idx2; // data for single scattering mode - G4double xtsec; + G4int minNCollisions; + G4int nelments; std::vector xsecn; std::vector prob; - G4int nelments; + G4double xtsec; G4double numlimit; // projectile diff --git a/source/processes/electromagnetic/standard/include/G4WentzelVIRelModel.hh b/source/processes/electromagnetic/standard/include/G4WentzelVIRelModel.hh index da74c7a486..3abeff6320 100644 --- a/source/processes/electromagnetic/standard/include/G4WentzelVIRelModel.hh +++ b/source/processes/electromagnetic/standard/include/G4WentzelVIRelModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelVIRelModel.hh 79067 2014-02-14 09:48:52Z gcosmo $ +// $Id: G4WentzelVIRelModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,30 +71,32 @@ class G4WentzelVIRelModel : public G4VMscModel public: - G4WentzelVIRelModel(G4bool combined = true); + explicit G4WentzelVIRelModel(G4bool combined = true); virtual ~G4WentzelVIRelModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; - void StartTracking(G4Track*); + virtual void StartTracking(G4Track*) override; virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double KineticEnergy, G4double AtomicNumber, G4double AtomicWeight=0., G4double cut = DBL_MAX, - G4double emax= DBL_MAX); + G4double emax= DBL_MAX) override; virtual G4ThreeVector& SampleScattering(const G4ThreeVector&, - G4double safety); + G4double safety) override; - virtual G4double ComputeTruePathLengthLimit(const G4Track& track, - G4double& currentMinimalStep); + virtual G4double + ComputeTruePathLengthLimit(const G4Track& track, + G4double& currentMinimalStep) override; - virtual G4double ComputeGeomPathLength(G4double truePathLength); + virtual G4double ComputeGeomPathLength(G4double truePathLength) override; - virtual G4double ComputeTrueStepLength(G4double geomStepLength); + virtual G4double ComputeTrueStepLength(G4double geomStepLength) override; private: @@ -105,8 +107,8 @@ private: inline void DefineMaterial(const G4MaterialCutsCouple*); // hide assignment operator - G4WentzelVIRelModel & operator=(const G4WentzelVIRelModel &right); - G4WentzelVIRelModel(const G4WentzelVIRelModel&); + G4WentzelVIRelModel & operator=(const G4WentzelVIRelModel &right) = delete; + G4WentzelVIRelModel(const G4WentzelVIRelModel&) = delete; G4LossTableManager* theManager; G4NistManager* fNistManager; diff --git a/source/processes/electromagnetic/standard/include/G4WentzelVIRelXSection.hh b/source/processes/electromagnetic/standard/include/G4WentzelVIRelXSection.hh index dc0e4a4a5b..0e9f8b8d9a 100644 --- a/source/processes/electromagnetic/standard/include/G4WentzelVIRelXSection.hh +++ b/source/processes/electromagnetic/standard/include/G4WentzelVIRelXSection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelVIRelXSection.hh 94676 2015-12-02 09:51:20Z gunter $ +// $Id: G4WentzelVIRelXSection.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,7 +73,7 @@ class G4WentzelVIRelXSection public: - G4WentzelVIRelXSection(G4bool combined = true); + explicit G4WentzelVIRelXSection(G4bool combined = true); virtual ~G4WentzelVIRelXSection(); @@ -113,8 +113,9 @@ private: void ComputeMaxElectronScattering(G4double cut); // hide assignment operator - G4WentzelVIRelXSection & operator=(const G4WentzelVIRelXSection &right); - G4WentzelVIRelXSection(const G4WentzelVIRelXSection&); + G4WentzelVIRelXSection & operator= + (const G4WentzelVIRelXSection &right) = delete; + G4WentzelVIRelXSection(const G4WentzelVIRelXSection&) = delete; const G4ParticleDefinition* theProton; const G4ParticleDefinition* theElectron; diff --git a/source/processes/electromagnetic/standard/include/G4XrayRayleighModel.hh b/source/processes/electromagnetic/standard/include/G4XrayRayleighModel.hh index fbdb8d40ec..f15c63bd81 100644 --- a/source/processes/electromagnetic/standard/include/G4XrayRayleighModel.hh +++ b/source/processes/electromagnetic/standard/include/G4XrayRayleighModel.hh @@ -44,8 +44,8 @@ class G4XrayRayleighModel : public G4VEmModel public: - G4XrayRayleighModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "XrayRayleigh"); + explicit G4XrayRayleighModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "XrayRayleigh"); virtual ~G4XrayRayleighModel(); diff --git a/source/processes/electromagnetic/standard/include/G4alphaIonisation.hh b/source/processes/electromagnetic/standard/include/G4alphaIonisation.hh index de2b8995b9..c0b892e16b 100644 --- a/source/processes/electromagnetic/standard/include/G4alphaIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4alphaIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4alphaIonisation.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4alphaIonisation.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,30 +60,31 @@ class G4alphaIonisation : public G4VEnergyLossProcess { public: - G4alphaIonisation(const G4String& name = "alphaIoni"); + explicit G4alphaIonisation(const G4String& name = "alphaIoni"); virtual ~G4alphaIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) final; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + virtual void + InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); + const G4Material*, G4double cut) final; inline G4double BetheBlochEnergyThreshold(); private: // hide assignment operator - G4alphaIonisation & operator=(const G4alphaIonisation &right); - G4alphaIonisation(const G4alphaIonisation&); + G4alphaIonisation & operator=(const G4alphaIonisation &right) = delete; + G4alphaIonisation(const G4alphaIonisation&) = delete; const G4ParticleDefinition* theParticle; diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh index d5a5cfdade..6b00bf8c22 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eBremsstrahlung.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eBremsstrahlung.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -83,27 +83,28 @@ class G4eBremsstrahlung : public G4VEnergyLossProcess public: - G4eBremsstrahlung(const G4String& name = "eBrem"); + explicit G4eBremsstrahlung(const G4String& name = "eBrem"); virtual ~G4eBremsstrahlung(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) final; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + virtual void + InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; G4bool isInitialised; private: // hide assignment operator - G4eBremsstrahlung & operator=(const G4eBremsstrahlung &right); - G4eBremsstrahlung(const G4eBremsstrahlung&); + G4eBremsstrahlung & operator=(const G4eBremsstrahlung &right) = delete; + G4eBremsstrahlung(const G4eBremsstrahlung&) = delete; }; diff --git a/source/processes/electromagnetic/standard/include/G4eCoulombScatteringModel.hh b/source/processes/electromagnetic/standard/include/G4eCoulombScatteringModel.hh index 8c9498f86d..c967cb56a7 100644 --- a/source/processes/electromagnetic/standard/include/G4eCoulombScatteringModel.hh +++ b/source/processes/electromagnetic/standard/include/G4eCoulombScatteringModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eCoulombScatteringModel.hh 91612 2015-07-29 08:51:51Z gcosmo $ +// $Id: G4eCoulombScatteringModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -80,14 +80,15 @@ class G4eCoulombScatteringModel : public G4VEmModel public: - G4eCoulombScatteringModel(G4bool combined = true); + explicit G4eCoulombScatteringModel(G4bool combined = true); virtual ~G4eCoulombScatteringModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -95,17 +96,17 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double MinPrimaryEnergy(const G4Material*, const G4ParticleDefinition*, - G4double); + G4double) final; // defines low energy limit of the model inline void SetLowEnergyThreshold(G4double val); @@ -128,8 +129,9 @@ protected: private: // hide assignment operator - G4eCoulombScatteringModel & operator=(const G4eCoulombScatteringModel &right); - G4eCoulombScatteringModel(const G4eCoulombScatteringModel&); + G4eCoulombScatteringModel & operator= + (const G4eCoulombScatteringModel &right) = delete; + G4eCoulombScatteringModel(const G4eCoulombScatteringModel&) = delete; //protected: diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.hh b/source/processes/electromagnetic/standard/include/G4eIonisation.hh index 95c490cbbe..a53d612f04 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4eIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eIonisation.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eIonisation.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -82,28 +82,29 @@ class G4eIonisation : public G4VEnergyLossProcess public: - G4eIonisation(const G4String& name = "eIoni"); + explicit G4eIonisation(const G4String& name = "eIoni"); virtual ~G4eIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) final; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + virtual void + InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, G4double cut); + const G4Material*, G4double cut) final; private: // hide assignment operator - G4eIonisation & operator=(const G4eIonisation &right); - G4eIonisation(const G4eIonisation&); + G4eIonisation & operator=(const G4eIonisation &right) = delete; + G4eIonisation(const G4eIonisation&) = delete; const G4ParticleDefinition* theElectron; diff --git a/source/processes/electromagnetic/standard/include/G4eMultipleScattering.hh b/source/processes/electromagnetic/standard/include/G4eMultipleScattering.hh index 0f7860a7a9..d5f99fa5d1 100644 --- a/source/processes/electromagnetic/standard/include/G4eMultipleScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4eMultipleScattering.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eMultipleScattering.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eMultipleScattering.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ----------------------------------------------------------------------------- // @@ -62,20 +62,20 @@ class G4eMultipleScattering : public G4VMultipleScattering { public: // with description - G4eMultipleScattering(const G4String& processName = "msc"); + explicit G4eMultipleScattering(const G4String& processName = "msc"); virtual ~G4eMultipleScattering(); // returns true for charged particles, false otherwise - G4bool IsApplicable (const G4ParticleDefinition& p); + G4bool IsApplicable (const G4ParticleDefinition& p) final; // Print few lines of informations about the process: validity range, - void PrintInfo(); + void PrintInfo() override; protected: // This function initialise models - void InitialiseProcess(const G4ParticleDefinition*); + void InitialiseProcess(const G4ParticleDefinition*) override; private: // data members diff --git a/source/processes/electromagnetic/standard/include/G4eSingleCoulombScatteringModel.hh b/source/processes/electromagnetic/standard/include/G4eSingleCoulombScatteringModel.hh index 9037379834..b015f8049d 100644 --- a/source/processes/electromagnetic/standard/include/G4eSingleCoulombScatteringModel.hh +++ b/source/processes/electromagnetic/standard/include/G4eSingleCoulombScatteringModel.hh @@ -68,11 +68,15 @@ class G4eSingleCoulombScatteringModel : public G4VEmModel public: - G4eSingleCoulombScatteringModel(const G4String& nam = "eSingleCoulombScat"); + explicit G4eSingleCoulombScatteringModel(const G4String& nam = "eSingleCoulombScat"); virtual ~G4eSingleCoulombScatteringModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) final; + + virtual void InitialiseLocal(const G4ParticleDefinition*, + G4VEmModel* masterModel) final; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -80,13 +84,13 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) final; inline void SetRecoilThreshold(G4double eth); @@ -97,8 +101,9 @@ private: inline void SetupParticle(const G4ParticleDefinition*); // hide assignment operator - G4eSingleCoulombScatteringModel & operator=(const G4eSingleCoulombScatteringModel &right); - G4eSingleCoulombScatteringModel(const G4eSingleCoulombScatteringModel&); + G4eSingleCoulombScatteringModel & operator= + (const G4eSingleCoulombScatteringModel &right) = delete; + G4eSingleCoulombScatteringModel(const G4eSingleCoulombScatteringModel&) = delete; G4IonTable* theIonTable; G4ParticleChangeForGamma* fParticleChange; @@ -119,9 +124,6 @@ private: G4double mass; G4double lowEnergyLimit; - //private: - G4bool isInitialised; - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh b/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh index a23eb6d79a..2b73a9c8f4 100644 --- a/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh +++ b/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToTwoGammaModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4eeToTwoGammaModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -62,12 +62,13 @@ class G4eeToTwoGammaModel : public G4VEmModel public: - G4eeToTwoGammaModel(const G4ParticleDefinition* p = 0, - const G4String& nam = "eplus2gg"); + explicit G4eeToTwoGammaModel(const G4ParticleDefinition* p = 0, + const G4String& nam = "eplus2gg"); virtual ~G4eeToTwoGammaModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual G4double ComputeCrossSectionPerElectron( const G4ParticleDefinition*, @@ -81,25 +82,25 @@ public: G4double Z, G4double A = 0., G4double cutEnergy = 0., - G4double maxEnergy = DBL_MAX); + G4double maxEnergy = DBL_MAX) final; virtual G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy); + G4double maxEnergy) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; private: // hide assignment operator - G4eeToTwoGammaModel & operator=(const G4eeToTwoGammaModel &right); - G4eeToTwoGammaModel(const G4eeToTwoGammaModel&); + G4eeToTwoGammaModel & operator=(const G4eeToTwoGammaModel &right) = delete; + G4eeToTwoGammaModel(const G4eeToTwoGammaModel&) = delete; G4double pi_rcl2; G4ParticleDefinition* theGamma; diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh index afa2a9511c..284fc24c70 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eplusAnnihilation.hh 68797 2013-04-05 13:27:11Z gcosmo $ +// $Id: G4eplusAnnihilation.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -67,27 +67,27 @@ class G4eplusAnnihilation : public G4VEmProcess public: - G4eplusAnnihilation(const G4String& name = "annihil"); + explicit G4eplusAnnihilation(const G4String& name = "annihil"); virtual ~G4eplusAnnihilation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) final; virtual G4VParticleChange* AtRestDoIt( const G4Track& track, - const G4Step& stepData); + const G4Step& stepData) override; virtual G4double AtRestGetPhysicalInteractionLength( const G4Track& track, G4ForceCondition* condition - ); + ) override; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: diff --git a/source/processes/electromagnetic/standard/include/G4hCoulombScatteringModel.hh b/source/processes/electromagnetic/standard/include/G4hCoulombScatteringModel.hh index 4cc607ef61..a31cdf4c3c 100644 --- a/source/processes/electromagnetic/standard/include/G4hCoulombScatteringModel.hh +++ b/source/processes/electromagnetic/standard/include/G4hCoulombScatteringModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hCoulombScatteringModel.hh 91612 2015-07-29 08:51:51Z gcosmo $ +// $Id: G4hCoulombScatteringModel.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -69,14 +69,15 @@ class G4hCoulombScatteringModel : public G4VEmModel public: - G4hCoulombScatteringModel(G4bool combined = true); + explicit G4hCoulombScatteringModel(G4bool combined = true); virtual ~G4hCoulombScatteringModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + virtual void Initialise(const G4ParticleDefinition*, + const G4DataVector&) override; virtual void InitialiseLocal(const G4ParticleDefinition*, - G4VEmModel* masterModel); + G4VEmModel* masterModel) override; virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*, @@ -84,17 +85,17 @@ public: G4double Z, G4double A, G4double cut, - G4double emax); + G4double emax) override; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; virtual G4double MinPrimaryEnergy(const G4Material*, const G4ParticleDefinition*, - G4double); + G4double) final; // defines low energy limit of the model inline void SetLowEnergyThreshold(G4double val); @@ -117,8 +118,9 @@ protected: private: // hide assignment operator - G4hCoulombScatteringModel & operator=(const G4hCoulombScatteringModel &right); - G4hCoulombScatteringModel(const G4hCoulombScatteringModel&); + G4hCoulombScatteringModel & operator= + (const G4hCoulombScatteringModel &right) = delete; + G4hCoulombScatteringModel(const G4hCoulombScatteringModel&) = delete; G4IonTable* theIonTable; G4ParticleChangeForGamma* fParticleChange; diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.hh b/source/processes/electromagnetic/standard/include/G4hIonisation.hh index 654ceef099..56a8566e2b 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hIonisation.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4hIonisation.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -87,28 +87,29 @@ class G4hIonisation : public G4VEnergyLossProcess public: - G4hIonisation(const G4String& name = "hIoni"); + explicit G4hIonisation(const G4String& name = "hIoni"); virtual ~G4hIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); + const G4Material*, G4double cut) final; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() final; protected: - virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + virtual void + InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; private: // hide assignment operator - G4hIonisation & operator=(const G4hIonisation &right); - G4hIonisation(const G4hIonisation&); + G4hIonisation & operator=(const G4hIonisation &right) = delete; + G4hIonisation(const G4hIonisation&) = delete; G4bool isInitialised; diff --git a/source/processes/electromagnetic/standard/include/G4hMultipleScattering.hh b/source/processes/electromagnetic/standard/include/G4hMultipleScattering.hh index 10d20c8be1..c72ad4a720 100644 --- a/source/processes/electromagnetic/standard/include/G4hMultipleScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4hMultipleScattering.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hMultipleScattering.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4hMultipleScattering.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ----------------------------------------------------------------------------- // @@ -64,20 +64,20 @@ class G4hMultipleScattering : public G4VMultipleScattering { public: // with description - G4hMultipleScattering(const G4String& processName="msc"); + explicit G4hMultipleScattering(const G4String& processName="msc"); virtual ~G4hMultipleScattering(); // returns true for charged particles, false otherwise - G4bool IsApplicable (const G4ParticleDefinition& p); + virtual G4bool IsApplicable (const G4ParticleDefinition& p) final; // Print few lines of informations about the process: validity range, - void PrintInfo(); + virtual void PrintInfo() override; protected: // This function initialise models - void InitialiseProcess(const G4ParticleDefinition*); + virtual void InitialiseProcess(const G4ParticleDefinition*) override; private: // data members diff --git a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh index 21ccd24e5a..436f903122 100644 --- a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ionIonisation.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4ionIonisation.hh 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -79,14 +79,14 @@ class G4ionIonisation : public G4VEnergyLossProcess { public: - G4ionIonisation(const G4String& name = "ionIoni"); + explicit G4ionIonisation(const G4String& name = "ionIoni"); virtual ~G4ionIonisation(); - virtual G4bool IsApplicable(const G4ParticleDefinition& p); + virtual G4bool IsApplicable(const G4ParticleDefinition& p) final; // Print out of the class parameters - virtual void PrintInfo(); + virtual void PrintInfo() override; void AddStoppingData(G4int Z, G4int A, const G4String& materialName, G4PhysicsVector* dVector); @@ -95,19 +95,20 @@ public: protected: - virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, - const G4ParticleDefinition*); + virtual void + InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); + const G4Material*, G4double cut) final; inline G4double BetheBlochEnergyThreshold(); private: // hide assignment operator - G4ionIonisation & operator=(const G4ionIonisation &right); - G4ionIonisation(const G4ionIonisation&); + G4ionIonisation & operator=(const G4ionIonisation &right) = delete; + G4ionIonisation(const G4ionIonisation&) = delete; G4EmCorrections* corr; diff --git a/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc b/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc index 55810b0282..fc6b576142 100644 --- a/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc +++ b/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ASTARStopping.cc 91612 2015-07-29 08:51:51Z gcosmo $ +// $Id: G4ASTARStopping.cc 95445 2016-02-11 08:18:10Z gcosmo $ // //--------------------------------------------------------------------------- // @@ -124,153 +124,153 @@ void G4ASTARStopping::Initialise() void G4ASTARStopping::FindData(G4int j, const G4Material* mat) { -static const G4double e0[78] = { 168.8, 204.2, 233.8, 259.7, 283, 324.3, 360.4, 393, 422.8, 450.5, 476.5, 501, 557.1, 607.7, 654.1, 697.1, 737.4, 775.4, 811.5, 845.9, 910.3, 970, 1026, 1078, 1128, 1175, 1220, 1263, 1305, 1344, 1383, 1419, 1455, 1489, 1646, 1782, 1901, 2005, 2097, 2178, 2249, 2312, 2413, 2488, 2539, 2572, 2589, 2593, 2586, 2571, 2548, 2521, 2489, 2453, 2416, 2377, 2176, 1989, 1825, 1683, 1561, 1457, 1369, 1292, 1165, 1062, 978.5, 908.4, 848.8, 797.4, 752.4, 712.9, 677.7, 646.1, 617.7, 591.9, 568.4, 547 }; +static const G4float e0[78] = { 168.8f, 204.2f, 233.8f, 259.7f, 283.f, 324.3f, 360.4f, 393.f, 422.8f, 450.5f, 476.5f, 501.f, 557.1f, 607.7f, 654.1f, 697.1f, 737.4f, 775.4f, 811.5f, 845.9f, 910.3f, 970.f, 1026.f, 1078.f, 1128.f, 1175.f, 1220.f, 1263.f, 1305.f, 1344.f, 1383.f, 1419.f, 1455.f, 1489.f, 1646.f, 1782.f, 1901.f, 2005.f, 2097.f, 2178.f, 2249.f, 2312.f, 2413.f, 2488.f, 2539.f, 2572.f, 2589.f, 2593.f, 2586.f, 2571.f, 2548.f, 2521.f, 2489.f, 2453.f, 2416.f, 2377.f, 2176.f, 1989.f, 1825.f, 1683.f, 1561.f, 1457.f, 1369.f, 1292.f, 1165.f, 1062.f, 978.5f, 908.4f, 848.8f, 797.4f, 752.4f, 712.9f, 677.7f, 646.1f, 617.7f, 591.9f, 568.4f, 547.f}; -static const G4double e1[78] = { 192.2, 229.4, 260.2, 287, 311, 353.1, 389.7, 422.5, 452.4, 480.1, 506, 530.3, 585.9, 635.7, 681.2, 723.2, 762.5, 799.4, 834.3, 867.5, 929.6, 986.9, 1040, 1090, 1137, 1182, 1224, 1265, 1304, 1341, 1376, 1411, 1444, 1475, 1619, 1741, 1847, 1938, 2017, 2085, 2144, 2195, 2275, 2331, 2367, 2388, 2397, 2395, 2386, 2370, 2350, 2326, 2299, 2271, 2241, 2210, 2056, 1913, 1783, 1666, 1562, 1468, 1384, 1308, 1177, 1072, 986.8, 915.5, 855, 802.8, 757.2, 717.1, 681.4, 649.5, 620.7, 594.7, 570.9, 549.2 }; +static const G4float e1[78] = { 192.2f, 229.4f, 260.2f, 287.f, 311.f, 353.1f, 389.7f, 422.5f, 452.4f, 480.1f, 506.f, 530.3f, 585.9f, 635.7f, 681.2f, 723.2f, 762.5f, 799.4f, 834.3f, 867.5f, 929.6f, 986.9f, 1040.f, 1090.f, 1137.f, 1182.f, 1224.f, 1265.f, 1304.f, 1341.f, 1376.f, 1411.f, 1444.f, 1475.f, 1619.f, 1741.f, 1847.f, 1938.f, 2017.f, 2085.f, 2144.f, 2195.f, 2275.f, 2331.f, 2367.f, 2388.f, 2397.f, 2395.f, 2386.f, 2370.f, 2350.f, 2326.f, 2299.f, 2271.f, 2241.f, 2210.f, 2056.f, 1913.f, 1783.f, 1666.f, 1562.f, 1468.f, 1384.f, 1308.f, 1177.f, 1072.f, 986.8f, 915.5f, 855.f, 802.8f, 757.2f, 717.1f, 681.4f, 649.5f, 620.7f, 594.7f, 570.9f, 549.2f}; -static const G4double e2[78] = { 169.4, 204.2, 233.3, 258.8, 281.8, 322.4, 358.1, 390.2, 419.7, 447.2, 472.9, 497.2, 552.9, 603.2, 649.4, 692.4, 732.7, 770.7, 806.8, 841.3, 906, 966.1, 1022, 1075, 1125, 1173, 1219, 1262, 1304, 1344, 1383, 1420, 1456, 1491, 1650, 1787, 1907, 2012, 2104, 2185, 2256, 2317, 2417, 2489, 2539, 2571, 2588, 2592, 2587, 2573, 2554, 2529, 2500, 2468, 2434, 2398, 2213, 2035, 1874, 1731, 1605, 1499, 1408, 1328, 1197, 1091, 1004, 932.2, 870.7, 817.8, 771.5, 730.8, 694.5, 662.1, 632.9, 606.4, 582.3, 560.2 }; +static const G4float e2[78] = { 169.4f, 204.2f, 233.3f, 258.8f, 281.8f, 322.4f, 358.1f, 390.2f, 419.7f, 447.2f, 472.9f, 497.2f, 552.9f, 603.2f, 649.4f, 692.4f, 732.7f, 770.7f, 806.8f, 841.3f, 906.f, 966.1f, 1022.f, 1075.f, 1125.f, 1173.f, 1219.f, 1262.f, 1304.f, 1344.f, 1383.f, 1420.f, 1456.f, 1491.f, 1650.f, 1787.f, 1907.f, 2012.f, 2104.f, 2185.f, 2256.f, 2317.f, 2417.f, 2489.f, 2539.f, 2571.f, 2588.f, 2592.f, 2587.f, 2573.f, 2554.f, 2529.f, 2500.f, 2468.f, 2434.f, 2398.f, 2213.f, 2035.f, 1874.f, 1731.f, 1605.f, 1499.f, 1408.f, 1328.f, 1197.f, 1091.f, 1004.f, 932.2f, 870.7f, 817.8f, 771.5f, 730.8f, 694.5f, 662.1f, 632.9f, 606.4f, 582.3f, 560.2f}; -static const G4double e3[78] = { 31.26, 38.13, 43.91, 48.98, 53.56, 61.66, 68.79, 75.21, 81.11, 86.6, 91.74, 96.6, 107.7, 117.8, 127, 135.6, 143.6, 151.2, 158.4, 165.3, 178.2, 190.2, 201.4, 212, 222, 231.6, 240.7, 249.5, 257.9, 266, 273.9, 281.4, 288.8, 295.9, 328.8, 357.8, 383.8, 407.4, 428.8, 448.4, 466.3, 482.8, 511.8, 536.2, 556.6, 573.5, 587.3, 598.4, 607.2, 613.8, 618.5, 621.6, 623.4, 623.8, 623.3, 621.8, 604.4, 578.7, 550.8, 523.3, 497.6, 474.4, 453.6, 435, 402.7, 375.9, 353.2, 333.6, 316.9, 302, 288.8, 276.9, 266.2, 256.5, 247.7, 239.5, 232, 225.1 }; +static const G4float e3[78] = { 31.26f, 38.13f, 43.91f, 48.98f, 53.56f, 61.66f, 68.79f, 75.21f, 81.11f, 86.6f, 91.74f, 96.6f, 107.7f, 117.8f, 127.f, 135.6f, 143.6f, 151.2f, 158.4f, 165.3f, 178.2f, 190.2f, 201.4f, 212.f, 222.f, 231.6f, 240.7f, 249.5f, 257.9f, 266.f, 273.9f, 281.4f, 288.8f, 295.9f, 328.8f, 357.8f, 383.8f, 407.4f, 428.8f, 448.4f, 466.3f, 482.8f, 511.8f, 536.2f, 556.6f, 573.5f, 587.3f, 598.4f, 607.2f, 613.8f, 618.5f, 621.6f, 623.4f, 623.8f, 623.3f, 621.8f, 604.4f, 578.7f, 550.8f, 523.3f, 497.6f, 474.4f, 453.6f, 435.f, 402.7f, 375.9f, 353.2f, 333.6f, 316.9f, 302.f, 288.8f, 276.9f, 266.2f, 256.5f, 247.7f, 239.5f, 232.f, 225.1f}; -static const G4double e4[78] = { 87.5, 108.6, 126.7, 142.7, 157.3, 183.5, 206.7, 227.9, 247.5, 265.9, 283.2, 299.6, 337.7, 372.3, 404.3, 434.3, 462.6, 489.4, 515, 539.5, 585.8, 629, 669.6, 708.1, 744.8, 779.8, 813.4, 845.7, 876.8, 906.8, 935.9, 964, 991.3, 1018, 1140, 1247, 1343, 1429, 1506, 1575, 1637, 1693, 1787, 1861, 1918, 1961, 1990, 2008, 2017, 2019, 2013, 2002, 1987, 1968, 1946, 1922, 1774, 1625, 1494, 1382, 1287, 1205, 1133, 1072, 968.6, 885.9, 818, 760.7, 711.7, 669.6, 632.7, 600.2, 571.2, 545.3, 521.9, 500.6, 481.2, 463.4 }; +static const G4float e4[78] = { 87.5f, 108.6f, 126.7f, 142.7f, 157.3f, 183.5f, 206.7f, 227.9f, 247.5f, 265.9f, 283.2f, 299.6f, 337.7f, 372.3f, 404.3f, 434.3f, 462.6f, 489.4f, 515.f, 539.5f, 585.8f, 629.f, 669.6f, 708.1f, 744.8f, 779.8f, 813.4f, 845.7f, 876.8f, 906.8f, 935.9f, 964.f, 991.3f, 1018.f, 1140.f, 1247.f, 1343.f, 1429.f, 1506.f, 1575.f, 1637.f, 1693.f, 1787.f, 1861.f, 1918.f, 1961.f, 1990.f, 2008.f, 2017.f, 2019.f, 2013.f, 2002.f, 1987.f, 1968.f, 1946.f, 1922.f, 1774.f, 1625.f, 1494.f, 1382.f, 1287.f, 1205.f, 1133.f, 1072.f, 968.6f, 885.9f, 818.f, 760.7f, 711.7f, 669.6f, 632.7f, 600.2f, 571.2f, 545.3f, 521.9f, 500.6f, 481.2f, 463.4f}; -static const G4double e5[78] = { 55.8, 71.89, 86.05, 98.92, 110.9, 132.7, 152.5, 170.9, 188.2, 204.5, 220.1, 235.1, 270.1, 302.5, 332.8, 361.5, 388.6, 414.6, 439.4, 463.3, 508.4, 550.4, 589.6, 626.5, 661.1, 693.7, 724.3, 753.2, 780.3, 805.9, 830.1, 852.8, 874.3, 894.5, 980, 1045, 1096, 1136, 1168, 1195, 1216, 1234, 1262, 1280, 1291, 1297, 1298, 1297, 1293, 1286, 1279, 1269, 1259, 1248, 1237, 1225, 1161, 1098, 1039, 984.9, 937.6, 895.4, 856.8, 821, 756.1, 698.6, 647.8, 604.8, 567.8, 535.7, 507.4, 482.4, 460, 439.8, 421.6, 405.1, 389.9, 376 }; +static const G4float e5[78] = { 55.8f, 71.89f, 86.05f, 98.92f, 110.9f, 132.7f, 152.5f, 170.9f, 188.2f, 204.5f, 220.1f, 235.1f, 270.1f, 302.5f, 332.8f, 361.5f, 388.6f, 414.6f, 439.4f, 463.3f, 508.4f, 550.4f, 589.6f, 626.5f, 661.1f, 693.7f, 724.3f, 753.2f, 780.3f, 805.9f, 830.1f, 852.8f, 874.3f, 894.5f, 980.f, 1045.f, 1096.f, 1136.f, 1168.f, 1195.f, 1216.f, 1234.f, 1262.f, 1280.f, 1291.f, 1297.f, 1298.f, 1297.f, 1293.f, 1286.f, 1279.f, 1269.f, 1259.f, 1248.f, 1237.f, 1225.f, 1161.f, 1098.f, 1039.f, 984.9f, 937.6f, 895.4f, 856.8f, 821.f, 756.1f, 698.6f, 647.8f, 604.8f, 567.8f, 535.7f, 507.4f, 482.4f, 460.f, 439.8f, 421.6f, 405.1f, 389.9f, 376.f}; -static const G4double e6[78] = { 71.39, 88.59, 103.3, 116.4, 128.4, 149.9, 169, 186.5, 202.8, 218, 232.3, 246, 277.7, 306.6, 333.4, 358.5, 382.1, 404.6, 426, 446.5, 485, 520.9, 554.3, 585.8, 615.5, 643.5, 670, 695.2, 719.1, 741.9, 763.6, 784.3, 804, 822.9, 905.9, 974, 1031, 1080, 1122, 1159, 1191, 1220, 1267, 1304, 1332, 1353, 1368, 1378, 1383, 1385, 1384, 1381, 1376, 1370, 1362, 1352, 1308, 1253, 1187, 1115, 1044, 982.5, 928.4, 880, 801.2, 737, 683.4, 638.1, 599.1, 565.2, 535.4, 508.9, 485.3, 464, 444.8, 427.3, 411.4, 396.7 }; +static const G4float e6[78] = { 71.39f, 88.59f, 103.3f, 116.4f, 128.4f, 149.9f, 169.f, 186.5f, 202.8f, 218.f, 232.3f, 246.f, 277.7f, 306.6f, 333.4f, 358.5f, 382.1f, 404.6f, 426.f, 446.5f, 485.f, 520.9f, 554.3f, 585.8f, 615.5f, 643.5f, 670.f, 695.2f, 719.1f, 741.9f, 763.6f, 784.3f, 804.f, 822.9f, 905.9f, 974.f, 1031.f, 1080.f, 1122.f, 1159.f, 1191.f, 1220.f, 1267.f, 1304.f, 1332.f, 1353.f, 1368.f, 1378.f, 1383.f, 1385.f, 1384.f, 1381.f, 1376.f, 1370.f, 1362.f, 1352.f, 1308.f, 1253.f, 1187.f, 1115.f, 1044.f, 982.5f, 928.4f, 880.f, 801.2f, 737.f, 683.4f, 638.1f, 599.1f, 565.2f, 535.4f, 508.9f, 485.3f, 464.f, 444.8f, 427.3f, 411.4f, 396.7f}; -static const G4double e7[78] = { 34.54, 44.56, 53.39, 61.42, 68.88, 82.53, 94.95, 106.5, 117.3, 127.6, 137.4, 146.8, 168.8, 189.3, 208.5, 226.7, 244.1, 260.8, 276.8, 292.3, 321.9, 349.8, 376.5, 401.9, 426.4, 450, 472.8, 494.9, 516.3, 537.1, 557.3, 577, 596.1, 614.8, 702.1, 780.3, 850.8, 914.4, 971.9, 1024, 1070, 1111, 1181, 1233, 1272, 1298, 1314, 1321, 1321, 1315, 1305, 1291, 1276, 1258, 1240, 1222, 1130, 1047, 974, 911.2, 856.7, 809, 767, 729.8, 666.1, 613.2, 569.7, 532.7, 501, 473.4, 449.1, 427.4, 408.3, 391, 375.4, 361.1, 348.1, 336 }; +static const G4float e7[78] = { 34.54f, 44.56f, 53.39f, 61.42f, 68.88f, 82.53f, 94.95f, 106.5f, 117.3f, 127.6f, 137.4f, 146.8f, 168.8f, 189.3f, 208.5f, 226.7f, 244.1f, 260.8f, 276.8f, 292.3f, 321.9f, 349.8f, 376.5f, 401.9f, 426.4f, 450.f, 472.8f, 494.9f, 516.3f, 537.1f, 557.3f, 577.f, 596.1f, 614.8f, 702.1f, 780.3f, 850.8f, 914.4f, 971.9f, 1024.f, 1070.f, 1111.f, 1181.f, 1233.f, 1272.f, 1298.f, 1314.f, 1321.f, 1321.f, 1315.f, 1305.f, 1291.f, 1276.f, 1258.f, 1240.f, 1222.f, 1130.f, 1047.f, 974.f, 911.2f, 856.7f, 809.f, 767.f, 729.8f, 666.1f, 613.2f, 569.7f, 532.7f, 501.f, 473.4f, 449.1f, 427.4f, 408.3f, 391.f, 375.4f, 361.1f, 348.1f, 336.f}; -static const G4double e8[78] = { 11.5, 14.55, 17.2, 19.57, 21.76, 25.72, 29.27, 32.54, 35.59, 38.46, 41.18, 43.78, 49.83, 55.39, 60.56, 65.44, 70.06, 74.46, 78.68, 82.74, 90.45, 97.69, 104.5, 111.1, 117.3, 123.3, 129.1, 134.6, 140, 145.2, 150.3, 155.2, 160, 164.7, 186.4, 205.8, 223.5, 239.5, 254.2, 267.7, 280.1, 291.5, 311.6, 328.5, 342.6, 354.3, 363.8, 371.5, 377.5, 382.1, 385.5, 387.8, 389.1, 389.6, 389.4, 388.7, 384.4, 375.7, 362.6, 346.8, 330.5, 316.4, 304, 293, 274.1, 258.4, 245, 233.4, 223.1, 214, 205.8, 198.4, 191.6, 185.5, 179.7, 174.5, 169.6, 165 }; +static const G4float e8[78] = { 11.5f, 14.55f, 17.2f, 19.57f, 21.76f, 25.72f, 29.27f, 32.54f, 35.59f, 38.46f, 41.18f, 43.78f, 49.83f, 55.39f, 60.56f, 65.44f, 70.06f, 74.46f, 78.68f, 82.74f, 90.45f, 97.69f, 104.5f, 111.1f, 117.3f, 123.3f, 129.1f, 134.6f, 140.f, 145.2f, 150.3f, 155.2f, 160.f, 164.7f, 186.4f, 205.8f, 223.5f, 239.5f, 254.2f, 267.7f, 280.1f, 291.5f, 311.6f, 328.5f, 342.6f, 354.3f, 363.8f, 371.5f, 377.5f, 382.1f, 385.5f, 387.8f, 389.1f, 389.6f, 389.4f, 388.7f, 384.4f, 375.7f, 362.6f, 346.8f, 330.5f, 316.4f, 304.f, 293.f, 274.1f, 258.4f, 245.f, 233.4f, 223.1f, 214.f, 205.8f, 198.4f, 191.6f, 185.5f, 179.7f, 174.5f, 169.6f, 165.f}; -static const G4double e9[78] = { 138.6, 167.7, 192, 213.3, 232.4, 266.3, 296, 322.7, 347.2, 369.9, 391.2, 411.3, 457.3, 498.8, 536.8, 572, 605, 636.1, 665.7, 693.8, 746.5, 795.4, 841, 883.9, 924.5, 963.1, 999.9, 1035, 1069, 1101, 1133, 1163, 1192, 1220, 1348, 1460, 1557, 1643, 1719, 1786, 1845, 1897, 1983, 2047, 2093, 2124, 2142, 2149, 2148, 2139, 2125, 2106, 2084, 2059, 2031, 2003, 1861, 1726, 1600, 1484, 1379, 1290, 1214, 1147, 1035, 945.3, 871.8, 810, 757.7, 712.5, 672.9, 638.1, 607, 579.2, 554.1, 531.3, 510.5, 491.5 }; +static const G4float e9[78] = { 138.6f, 167.7f, 192.f, 213.3f, 232.4f, 266.3f, 296.f, 322.7f, 347.2f, 369.9f, 391.2f, 411.3f, 457.3f, 498.8f, 536.8f, 572.f, 605.f, 636.1f, 665.7f, 693.8f, 746.5f, 795.4f, 841.f, 883.9f, 924.5f, 963.1f, 999.9f, 1035.f, 1069.f, 1101.f, 1133.f, 1163.f, 1192.f, 1220.f, 1348.f, 1460.f, 1557.f, 1643.f, 1719.f, 1786.f, 1845.f, 1897.f, 1983.f, 2047.f, 2093.f, 2124.f, 2142.f, 2149.f, 2148.f, 2139.f, 2125.f, 2106.f, 2084.f, 2059.f, 2031.f, 2003.f, 1861.f, 1726.f, 1600.f, 1484.f, 1379.f, 1290.f, 1214.f, 1147.f, 1035.f, 945.3f, 871.8f, 810.f, 757.7f, 712.5f, 672.9f, 638.1f, 607.f, 579.2f, 554.1f, 531.3f, 510.5f, 491.5f}; -static const G4double e10[78] = { 146.3, 177.1, 202.9, 225.4, 245.6, 281.3, 312.5, 340.6, 366.2, 390, 412.2, 433.2, 481.1, 524.1, 563.3, 599.7, 633.6, 665.4, 695.6, 724.2, 777.7, 827, 872.7, 915.5, 955.7, 993.7, 1030, 1064, 1096, 1128, 1157, 1186, 1213, 1239, 1356, 1453, 1534, 1602, 1659, 1706, 1745, 1776, 1821, 1846, 1856, 1855, 1845, 1829, 1809, 1785, 1759, 1732, 1703, 1674, 1645, 1617, 1499, 1406, 1326, 1254, 1189, 1129, 1075, 1024, 935.3, 858.7, 792.9, 737.6, 690, 648.7, 612.5, 580.4, 552, 526.4, 503.3, 482.4, 463.3, 445.8 }; +static const G4float e10[78] = { 146.3f, 177.1f, 202.9f, 225.4f, 245.6f, 281.3f, 312.5f, 340.6f, 366.2f, 390.f, 412.2f, 433.2f, 481.1f, 524.1f, 563.3f, 599.7f, 633.6f, 665.4f, 695.6f, 724.2f, 777.7f, 827.f, 872.7f, 915.5f, 955.7f, 993.7f, 1030.f, 1064.f, 1096.f, 1128.f, 1157.f, 1186.f, 1213.f, 1239.f, 1356.f, 1453.f, 1534.f, 1602.f, 1659.f, 1706.f, 1745.f, 1776.f, 1821.f, 1846.f, 1856.f, 1855.f, 1845.f, 1829.f, 1809.f, 1785.f, 1759.f, 1732.f, 1703.f, 1674.f, 1645.f, 1617.f, 1499.f, 1406.f, 1326.f, 1254.f, 1189.f, 1129.f, 1075.f, 1024.f, 935.3f, 858.7f, 792.9f, 737.6f, 690.f, 648.7f, 612.5f, 580.4f, 552.f, 526.4f, 503.3f, 482.4f, 463.3f, 445.8f}; -static const G4double e11[78] = { 125.9, 152.6, 175, 194.8, 212.5, 244.1, 271.8, 296.8, 319.8, 341.1, 361.2, 380.2, 423.8, 463.1, 499.3, 533, 564.6, 594.5, 622.8, 649.9, 700.8, 748.1, 792.4, 834.2, 873.7, 911.4, 947.4, 981.9, 1015, 1047, 1078, 1107, 1136, 1164, 1291, 1401, 1498, 1584, 1660, 1727, 1787, 1839, 1926, 1991, 2039, 2072, 2092, 2103, 2105, 2100, 2089, 2075, 2056, 2035, 2011, 1986, 1846, 1705, 1576, 1460, 1358, 1271, 1196, 1130, 1020, 931.6, 859.4, 798.8, 747.4, 702.9, 664, 629.7, 599.1, 571.7, 547.1, 524.7, 504.3, 485.6 }; +static const G4float e11[78] = { 125.9f, 152.6f, 175.f, 194.8f, 212.5f, 244.1f, 271.8f, 296.8f, 319.8f, 341.1f, 361.2f, 380.2f, 423.8f, 463.1f, 499.3f, 533.f, 564.6f, 594.5f, 622.8f, 649.9f, 700.8f, 748.1f, 792.4f, 834.2f, 873.7f, 911.4f, 947.4f, 981.9f, 1015.f, 1047.f, 1078.f, 1107.f, 1136.f, 1164.f, 1291.f, 1401.f, 1498.f, 1584.f, 1660.f, 1727.f, 1787.f, 1839.f, 1926.f, 1991.f, 2039.f, 2072.f, 2092.f, 2103.f, 2105.f, 2100.f, 2089.f, 2075.f, 2056.f, 2035.f, 2011.f, 1986.f, 1846.f, 1705.f, 1576.f, 1460.f, 1358.f, 1271.f, 1196.f, 1130.f, 1020.f, 931.6f, 859.4f, 798.8f, 747.4f, 702.9f, 664.f, 629.7f, 599.1f, 571.7f, 547.1f, 524.7f, 504.3f, 485.6f}; -static const G4double e12[78] = { 190.6, 225.6, 254.3, 279, 300.9, 339.2, 372.1, 401.4, 427.9, 452.3, 475, 496.2, 544.3, 586.9, 625.5, 661, 693.8, 724.6, 753.5, 780.8, 831.5, 877.9, 920.8, 960.6, 998, 1033, 1066, 1098, 1128, 1156, 1184, 1210, 1235, 1259, 1366, 1455, 1531, 1595, 1650, 1698, 1738, 1772, 1825, 1862, 1886, 1900, 1906, 1906, 1901, 1892, 1880, 1866, 1850, 1833, 1814, 1795, 1684, 1571, 1466, 1372, 1288, 1213, 1145, 1085, 981.9, 898.2, 829.6, 772, 722.9, 680.4, 643.1, 610.2, 580.8, 554.4, 530.6, 509, 489.2, 471.2 }; +static const G4float e12[78] = { 190.6f, 225.6f, 254.3f, 279.f, 300.9f, 339.2f, 372.1f, 401.4f, 427.9f, 452.3f, 475.f, 496.2f, 544.3f, 586.9f, 625.5f, 661.f, 693.8f, 724.6f, 753.5f, 780.8f, 831.5f, 877.9f, 920.8f, 960.6f, 998.f, 1033.f, 1066.f, 1098.f, 1128.f, 1156.f, 1184.f, 1210.f, 1235.f, 1259.f, 1366.f, 1455.f, 1531.f, 1595.f, 1650.f, 1698.f, 1738.f, 1772.f, 1825.f, 1862.f, 1886.f, 1900.f, 1906.f, 1906.f, 1901.f, 1892.f, 1880.f, 1866.f, 1850.f, 1833.f, 1814.f, 1795.f, 1684.f, 1571.f, 1466.f, 1372.f, 1288.f, 1213.f, 1145.f, 1085.f, 981.9f, 898.2f, 829.6f, 772.f, 722.9f, 680.4f, 643.1f, 610.2f, 580.8f, 554.4f, 530.6f, 509.f, 489.2f, 471.2f}; -static const G4double e13[78] = { 192.3, 228.9, 259, 285.1, 308.3, 348.9, 384, 415.3, 443.7, 469.9, 494.2, 517, 568.9, 615.1, 657, 695.5, 731.3, 764.8, 796.3, 826.2, 881.8, 932.7, 979.8, 1024, 1065, 1104, 1141, 1175, 1209, 1240, 1271, 1300, 1327, 1354, 1473, 1574, 1658, 1731, 1793, 1845, 1890, 1929, 1987, 2027, 2051, 2063, 2065, 2060, 2049, 2034, 2015, 1993, 1969, 1944, 1917, 1891, 1751, 1620, 1502, 1400, 1310, 1231, 1161, 1099, 994.3, 909, 839.2, 780.7, 730.8, 687.6, 649.8, 616.4, 586.6, 559.8, 535.7, 513.8, 493.8, 475.5 }; +static const G4float e13[78] = { 192.3f, 228.9f, 259.f, 285.1f, 308.3f, 348.9f, 384.f, 415.3f, 443.7f, 469.9f, 494.2f, 517.f, 568.9f, 615.1f, 657.f, 695.5f, 731.3f, 764.8f, 796.3f, 826.2f, 881.8f, 932.7f, 979.8f, 1024.f, 1065.f, 1104.f, 1141.f, 1175.f, 1209.f, 1240.f, 1271.f, 1300.f, 1327.f, 1354.f, 1473.f, 1574.f, 1658.f, 1731.f, 1793.f, 1845.f, 1890.f, 1929.f, 1987.f, 2027.f, 2051.f, 2063.f, 2065.f, 2060.f, 2049.f, 2034.f, 2015.f, 1993.f, 1969.f, 1944.f, 1917.f, 1891.f, 1751.f, 1620.f, 1502.f, 1400.f, 1310.f, 1231.f, 1161.f, 1099.f, 994.3f, 909.f, 839.2f, 780.7f, 730.8f, 687.6f, 649.8f, 616.4f, 586.6f, 559.8f, 535.7f, 513.8f, 493.8f, 475.5f}; -static const G4double e14[78] = { 159.8, 195.8, 226, 252.7, 276.8, 319.7, 357.4, 391.5, 422.9, 452.1, 479.5, 505.4, 565.1, 619, 668.6, 714.8, 758.1, 799.1, 838.1, 875.3, 945.4, 1011, 1072, 1130, 1185, 1237, 1288, 1336, 1383, 1428, 1471, 1514, 1555, 1594, 1779, 1945, 2094, 2230, 2354, 2468, 2571, 2666, 2830, 2961, 3060, 3130, 3172, 3189, 3185, 3164, 3129, 3086, 3038, 2986, 2931, 2876, 2578, 2306, 2084, 1907, 1763, 1642, 1539, 1450, 1303, 1185, 1089, 1010, 941.9, 883.6, 832.8, 788.1, 748.4, 712.9, 680.9, 652, 625.7, 601.7 }; +static const G4float e14[78] = { 159.8f, 195.8f, 226.f, 252.7f, 276.8f, 319.7f, 357.4f, 391.5f, 422.9f, 452.1f, 479.5f, 505.4f, 565.1f, 619.f, 668.6f, 714.8f, 758.1f, 799.1f, 838.1f, 875.3f, 945.4f, 1011.f, 1072.f, 1130.f, 1185.f, 1237.f, 1288.f, 1336.f, 1383.f, 1428.f, 1471.f, 1514.f, 1555.f, 1594.f, 1779.f, 1945.f, 2094.f, 2230.f, 2354.f, 2468.f, 2571.f, 2666.f, 2830.f, 2961.f, 3060.f, 3130.f, 3172.f, 3189.f, 3185.f, 3164.f, 3129.f, 3086.f, 3038.f, 2986.f, 2931.f, 2876.f, 2578.f, 2306.f, 2084.f, 1907.f, 1763.f, 1642.f, 1539.f, 1450.f, 1303.f, 1185.f, 1089.f, 1010.f, 941.9f, 883.6f, 832.8f, 788.1f, 748.4f, 712.9f, 680.9f, 652.f, 625.7f, 601.7f}; -static const G4double e15[78] = { 124.1, 148.8, 169.3, 187.2, 203.3, 231.5, 256.1, 278.2, 298.4, 317.1, 334.5, 351, 388.6, 422.4, 453.2, 481.8, 508.4, 533.5, 557.3, 579.9, 622.2, 661.3, 697.8, 732, 764.3, 794.9, 824, 851.9, 878.5, 904.1, 928.7, 952.4, 975.2, 997.3, 1097, 1184, 1259, 1325, 1384, 1435, 1481, 1521, 1588, 1639, 1678, 1706, 1726, 1738, 1744, 1745, 1743, 1736, 1727, 1716, 1703, 1688, 1603, 1511, 1421, 1338, 1261, 1190, 1126, 1067, 965.5, 883.8, 816.4, 759.6, 711.1, 669.1, 632.3, 599.9, 571, 545, 521.6, 500.3, 480.9, 463.1 }; +static const G4float e15[78] = { 124.1f, 148.8f, 169.3f, 187.2f, 203.3f, 231.5f, 256.1f, 278.2f, 298.4f, 317.1f, 334.5f, 351.f, 388.6f, 422.4f, 453.2f, 481.8f, 508.4f, 533.5f, 557.3f, 579.9f, 622.2f, 661.3f, 697.8f, 732.f, 764.3f, 794.9f, 824.f, 851.9f, 878.5f, 904.1f, 928.7f, 952.4f, 975.2f, 997.3f, 1097.f, 1184.f, 1259.f, 1325.f, 1384.f, 1435.f, 1481.f, 1521.f, 1588.f, 1639.f, 1678.f, 1706.f, 1726.f, 1738.f, 1744.f, 1745.f, 1743.f, 1736.f, 1727.f, 1716.f, 1703.f, 1688.f, 1603.f, 1511.f, 1421.f, 1338.f, 1261.f, 1190.f, 1126.f, 1067.f, 965.5f, 883.8f, 816.4f, 759.6f, 711.1f, 669.1f, 632.3f, 599.9f, 571.f, 545.f, 521.6f, 500.3f, 480.9f, 463.1f}; -static const G4double e16[78] = { 93.28, 114.2, 131.9, 147.5, 161.6, 186.6, 208.6, 228.5, 246.8, 263.8, 279.8, 295, 329.8, 361.2, 390.2, 417.1, 442.4, 466.4, 489.1, 510.8, 551.8, 589.8, 625.6, 659.4, 691.5, 722.2, 751.6, 779.8, 807.1, 833.4, 858.9, 883.7, 907.7, 931.1, 1040, 1137, 1225, 1306, 1380, 1449, 1513, 1571, 1676, 1763, 1834, 1891, 1933, 1961, 1977, 1982, 1978, 1967, 1952, 1932, 1911, 1888, 1752, 1614, 1490, 1383, 1290, 1209, 1139, 1077, 973.3, 890, 821.5, 764, 714.9, 672.6, 635.5, 602.6, 573.5, 547.3, 523.7, 502.4, 482.9, 465 }; +static const G4float e16[78] = { 93.28f, 114.2f, 131.9f, 147.5f, 161.6f, 186.6f, 208.6f, 228.5f, 246.8f, 263.8f, 279.8f, 295.f, 329.8f, 361.2f, 390.2f, 417.1f, 442.4f, 466.4f, 489.1f, 510.8f, 551.8f, 589.8f, 625.6f, 659.4f, 691.5f, 722.2f, 751.6f, 779.8f, 807.1f, 833.4f, 858.9f, 883.7f, 907.7f, 931.1f, 1040.f, 1137.f, 1225.f, 1306.f, 1380.f, 1449.f, 1513.f, 1571.f, 1676.f, 1763.f, 1834.f, 1891.f, 1933.f, 1961.f, 1977.f, 1982.f, 1978.f, 1967.f, 1952.f, 1932.f, 1911.f, 1888.f, 1752.f, 1614.f, 1490.f, 1383.f, 1290.f, 1209.f, 1139.f, 1077.f, 973.3f, 890.f, 821.5f, 764.f, 714.9f, 672.6f, 635.5f, 602.6f, 573.5f, 547.3f, 523.7f, 502.4f, 482.9f, 465.f}; -static const G4double e17[78] = { 72.78, 90.74, 106.1, 119.8, 132.3, 154.7, 174.6, 192.8, 209.7, 225.5, 240.4, 254.5, 287.2, 317, 344.6, 370.4, 394.6, 417.6, 439.5, 460.5, 499.9, 536.5, 570.8, 603.1, 633.6, 662.6, 690.1, 716.4, 741.5, 765.6, 788.6, 810.8, 832.1, 852.6, 944.4, 1022, 1088, 1145, 1194, 1237, 1275, 1308, 1361, 1401, 1431, 1453, 1467, 1476, 1481, 1481, 1479, 1474, 1466, 1458, 1447, 1436, 1352, 1256, 1166, 1086, 1016, 954.4, 900.2, 852.3, 772.1, 708.1, 655.5, 610.7, 573.3, 540.6, 511.9, 486.6, 464, 443.8, 425.4, 408.7, 393.4, 379.4 }; +static const G4float e17[78] = { 72.78f, 90.74f, 106.1f, 119.8f, 132.3f, 154.7f, 174.6f, 192.8f, 209.7f, 225.5f, 240.4f, 254.5f, 287.2f, 317.f, 344.6f, 370.4f, 394.6f, 417.6f, 439.5f, 460.5f, 499.9f, 536.5f, 570.8f, 603.1f, 633.6f, 662.6f, 690.1f, 716.4f, 741.5f, 765.6f, 788.6f, 810.8f, 832.1f, 852.6f, 944.4f, 1022.f, 1088.f, 1145.f, 1194.f, 1237.f, 1275.f, 1308.f, 1361.f, 1401.f, 1431.f, 1453.f, 1467.f, 1476.f, 1481.f, 1481.f, 1479.f, 1474.f, 1466.f, 1458.f, 1447.f, 1436.f, 1352.f, 1256.f, 1166.f, 1086.f, 1016.f, 954.4f, 900.2f, 852.3f, 772.1f, 708.1f, 655.5f, 610.7f, 573.3f, 540.6f, 511.9f, 486.6f, 464.f, 443.8f, 425.4f, 408.7f, 393.4f, 379.4f}; -static const G4double e18[78] = { 99.73, 123.7, 144.1, 162.3, 178.8, 208.3, 234.6, 258.5, 280.5, 301.2, 320.6, 339.1, 381.8, 420.6, 456.5, 490, 521.6, 551.5, 580.1, 607.4, 658.9, 707, 752.2, 795, 835.7, 874.6, 911.8, 947.6, 982, 1015, 1047, 1078, 1109, 1138, 1273, 1391, 1497, 1591, 1676, 1753, 1822, 1884, 1990, 2074, 2140, 2190, 2227, 2251, 2266, 2273, 2272, 2266, 2254, 2238, 2220, 2198, 2049, 1886, 1737, 1607, 1495, 1399, 1315, 1242, 1120, 1023, 942.8, 875.6, 818.4, 769.2, 726.1, 688, 654.2, 624, 596.7, 572, 549.5, 528.9 }; +static const G4float e18[78] = { 99.73f, 123.7f, 144.1f, 162.3f, 178.8f, 208.3f, 234.6f, 258.5f, 280.5f, 301.2f, 320.6f, 339.1f, 381.8f, 420.6f, 456.5f, 490.f, 521.6f, 551.5f, 580.1f, 607.4f, 658.9f, 707.f, 752.2f, 795.f, 835.7f, 874.6f, 911.8f, 947.6f, 982.f, 1015.f, 1047.f, 1078.f, 1109.f, 1138.f, 1273.f, 1391.f, 1497.f, 1591.f, 1676.f, 1753.f, 1822.f, 1884.f, 1990.f, 2074.f, 2140.f, 2190.f, 2227.f, 2251.f, 2266.f, 2273.f, 2272.f, 2266.f, 2254.f, 2238.f, 2220.f, 2198.f, 2049.f, 1886.f, 1737.f, 1607.f, 1495.f, 1399.f, 1315.f, 1242.f, 1120.f, 1023.f, 942.8f, 875.6f, 818.4f, 769.2f, 726.1f, 688.f, 654.2f, 624.f, 596.7f, 572.f, 549.5f, 528.9f}; -static const G4double e19[78] = { 157.6, 186.4, 209.9, 230.3, 248.3, 279.7, 306.8, 330.8, 352.6, 372.6, 391.2, 408.7, 448.1, 483.2, 514.9, 544.1, 571.1, 596.4, 620.3, 642.8, 684.8, 723.2, 758.8, 792, 823.2, 852.7, 880.6, 907.2, 932.6, 956.9, 980.2, 1003, 1024, 1045, 1139, 1220, 1290, 1353, 1408, 1457, 1502, 1541, 1608, 1662, 1704, 1736, 1761, 1778, 1789, 1796, 1798, 1796, 1790, 1782, 1772, 1760, 1674, 1574, 1476, 1385, 1302, 1227, 1160, 1099, 993.8, 909.3, 839.7, 781.1, 731.2, 688.1, 650.2, 616.7, 587, 560.3, 536.2, 514.4, 494.5, 476.2 }; +static const G4float e19[78] = { 157.6f, 186.4f, 209.9f, 230.3f, 248.3f, 279.7f, 306.8f, 330.8f, 352.6f, 372.6f, 391.2f, 408.7f, 448.1f, 483.2f, 514.9f, 544.1f, 571.1f, 596.4f, 620.3f, 642.8f, 684.8f, 723.2f, 758.8f, 792.f, 823.2f, 852.7f, 880.6f, 907.2f, 932.6f, 956.9f, 980.2f, 1003.f, 1024.f, 1045.f, 1139.f, 1220.f, 1290.f, 1353.f, 1408.f, 1457.f, 1502.f, 1541.f, 1608.f, 1662.f, 1704.f, 1736.f, 1761.f, 1778.f, 1789.f, 1796.f, 1798.f, 1796.f, 1790.f, 1782.f, 1772.f, 1760.f, 1674.f, 1574.f, 1476.f, 1385.f, 1302.f, 1227.f, 1160.f, 1099.f, 993.8f, 909.3f, 839.7f, 781.1f, 731.2f, 688.1f, 650.2f, 616.7f, 587.f, 560.3f, 536.2f, 514.4f, 494.5f, 476.2f}; -static const G4double e20[78] = { 109.1, 132.8, 152.8, 170.4, 186.2, 214.4, 239.3, 261.7, 282.4, 301.6, 319.7, 336.8, 376.1, 411.7, 444.5, 475, 503.6, 530.7, 556.5, 581.1, 627.4, 670.4, 710.8, 748.9, 785, 819.4, 852.4, 883.9, 914.3, 943.5, 971.7, 999, 1025, 1051, 1168, 1270, 1360, 1440, 1511, 1574, 1630, 1680, 1763, 1826, 1872, 1905, 1927, 1939, 1943, 1941, 1933, 1921, 1905, 1887, 1866, 1844, 1720, 1593, 1475, 1369, 1274, 1193, 1123, 1062, 959.2, 877.1, 809.7, 753, 704.9, 663.4, 627, 594.9, 566.3, 540.6, 517.5, 496.5, 477.4, 459.8 }; +static const G4float e20[78] = { 109.1f, 132.8f, 152.8f, 170.4f, 186.2f, 214.4f, 239.3f, 261.7f, 282.4f, 301.6f, 319.7f, 336.8f, 376.1f, 411.7f, 444.5f, 475.f, 503.6f, 530.7f, 556.5f, 581.1f, 627.4f, 670.4f, 710.8f, 748.9f, 785.f, 819.4f, 852.4f, 883.9f, 914.3f, 943.5f, 971.7f, 999.f, 1025.f, 1051.f, 1168.f, 1270.f, 1360.f, 1440.f, 1511.f, 1574.f, 1630.f, 1680.f, 1763.f, 1826.f, 1872.f, 1905.f, 1927.f, 1939.f, 1943.f, 1941.f, 1933.f, 1921.f, 1905.f, 1887.f, 1866.f, 1844.f, 1720.f, 1593.f, 1475.f, 1369.f, 1274.f, 1193.f, 1123.f, 1062.f, 959.2f, 877.1f, 809.7f, 753.f, 704.9f, 663.4f, 627.f, 594.9f, 566.3f, 540.6f, 517.5f, 496.5f, 477.4f, 459.8f}; -static const G4double e21[78] = { 40.6, 48.54, 55.16, 60.95, 66.15, 75.33, 83.38, 90.64, 97.29, 103.5, 109.3, 114.8, 127.3, 138.7, 149.2, 158.9, 168, 176.7, 184.9, 192.8, 207.6, 221.3, 234.2, 246.4, 258, 269.1, 279.7, 289.9, 299.7, 309.2, 318.3, 327.1, 335.7, 344, 382.3, 415.8, 445.6, 472.1, 495.7, 516.7, 535.4, 551.8, 578.9, 599.2, 613.8, 623.8, 629.9, 633, 633.6, 632.3, 629.5, 625.5, 620.6, 615.1, 609.1, 602.8, 567.7, 533, 501.8, 474.4, 450.3, 429, 410.1, 393.3, 364.6, 340.9, 321, 304, 289.2, 275.9, 264.1, 253.6, 243.9, 235, 226.7, 218.9, 211.9, 205.4 }; +static const G4float e21[78] = { 40.6f, 48.54f, 55.16f, 60.95f, 66.15f, 75.33f, 83.38f, 90.64f, 97.29f, 103.5f, 109.3f, 114.8f, 127.3f, 138.7f, 149.2f, 158.9f, 168.f, 176.7f, 184.9f, 192.8f, 207.6f, 221.3f, 234.2f, 246.4f, 258.f, 269.1f, 279.7f, 289.9f, 299.7f, 309.2f, 318.3f, 327.1f, 335.7f, 344.f, 382.3f, 415.8f, 445.6f, 472.1f, 495.7f, 516.7f, 535.4f, 551.8f, 578.9f, 599.2f, 613.8f, 623.8f, 629.9f, 633.f, 633.6f, 632.3f, 629.5f, 625.5f, 620.6f, 615.1f, 609.1f, 602.8f, 567.7f, 533.f, 501.8f, 474.4f, 450.3f, 429.f, 410.1f, 393.3f, 364.6f, 340.9f, 321.f, 304.f, 289.2f, 275.9f, 264.1f, 253.6f, 243.9f, 235.f, 226.7f, 218.9f, 211.9f, 205.4f}; -static const G4double e22[78] = { 29.51, 36.49, 42.42, 47.68, 52.45, 60.98, 68.54, 75.4, 81.74, 87.65, 93.23, 98.51, 110.7, 121.8, 132, 141.5, 150.5, 159, 167.2, 174.9, 189.5, 203.2, 216, 228.1, 239.7, 250.7, 261.3, 271.4, 281.2, 290.7, 299.8, 308.7, 317.3, 325.6, 364.2, 398.4, 429.1, 456.8, 482.1, 505.1, 526.2, 545.4, 579, 607, 630.1, 649.1, 664.4, 676.6, 686.2, 693.4, 698.8, 702.4, 704.6, 705.7, 705.7, 704.9, 692.5, 672.6, 650.3, 627.6, 606, 585.6, 566.3, 548, 514, 483.4, 455.8, 431, 408.4, 388, 369.6, 353.7, 339.1, 325.7, 313.4, 302, 291.7, 282.3 }; +static const G4float e22[78] = { 29.51f, 36.49f, 42.42f, 47.68f, 52.45f, 60.98f, 68.54f, 75.4f, 81.74f, 87.65f, 93.23f, 98.51f, 110.7f, 121.8f, 132.f, 141.5f, 150.5f, 159.f, 167.2f, 174.9f, 189.5f, 203.2f, 216.f, 228.1f, 239.7f, 250.7f, 261.3f, 271.4f, 281.2f, 290.7f, 299.8f, 308.7f, 317.3f, 325.6f, 364.2f, 398.4f, 429.1f, 456.8f, 482.1f, 505.1f, 526.2f, 545.4f, 579.f, 607.f, 630.1f, 649.1f, 664.4f, 676.6f, 686.2f, 693.4f, 698.8f, 702.4f, 704.6f, 705.7f, 705.7f, 704.9f, 692.5f, 672.6f, 650.3f, 627.6f, 606.f, 585.6f, 566.3f, 548.f, 514.f, 483.4f, 455.8f, 431.f, 408.4f, 388.f, 369.6f, 353.7f, 339.1f, 325.7f, 313.4f, 302.f, 291.7f, 282.3f}; -static const G4double e23[78] = { 54.06, 65.42, 74.91, 83.2, 90.66, 103.8, 115.3, 125.6, 135.1, 143.8, 152, 159.8, 177.4, 193.3, 207.8, 221.3, 233.9, 245.7, 256.9, 267.6, 287.7, 306.2, 323.5, 339.8, 355.2, 369.8, 383.8, 397.1, 410, 422.3, 434.2, 445.7, 456.9, 467.6, 517.1, 560.6, 599.4, 634.3, 665.9, 694.6, 720.8, 744.8, 786.6, 821.5, 850.4, 874.1, 893.1, 908.1, 919.6, 928, 933.6, 936.8, 938, 937.3, 935.1, 931.5, 899.9, 856.7, 810.9, 766.9, 727.3, 691.9, 660.2, 631.5, 581.8, 540.1, 504.6, 473.9, 447.2, 423.6, 402.6, 383.5, 366.9, 352, 338.3, 325.7, 314.1, 303.6 }; +static const G4float e23[78] = { 54.06f, 65.42f, 74.91f, 83.2f, 90.66f, 103.8f, 115.3f, 125.6f, 135.1f, 143.8f, 152.f, 159.8f, 177.4f, 193.3f, 207.8f, 221.3f, 233.9f, 245.7f, 256.9f, 267.6f, 287.7f, 306.2f, 323.5f, 339.8f, 355.2f, 369.8f, 383.8f, 397.1f, 410.f, 422.3f, 434.2f, 445.7f, 456.9f, 467.6f, 517.1f, 560.6f, 599.4f, 634.3f, 665.9f, 694.6f, 720.8f, 744.8f, 786.6f, 821.5f, 850.4f, 874.1f, 893.1f, 908.1f, 919.6f, 928.f, 933.6f, 936.8f, 938.f, 937.3f, 935.1f, 931.5f, 899.9f, 856.7f, 810.9f, 766.9f, 727.3f, 691.9f, 660.2f, 631.5f, 581.8f, 540.1f, 504.6f, 473.9f, 447.2f, 423.6f, 402.6f, 383.5f, 366.9f, 352.f, 338.3f, 325.7f, 314.1f, 303.6f}; -static const G4double e24[78] = { 99.58, 123.5, 144, 162.1, 178.6, 208.1, 234.3, 258.2, 280.2, 300.8, 320.3, 338.7, 381.4, 420.2, 456, 489.5, 521, 551, 579.5, 606.8, 658.3, 706.3, 751.5, 794.2, 834.9, 873.7, 910.9, 946.6, 981, 1014, 1046, 1077, 1108, 1137, 1271, 1390, 1495, 1590, 1675, 1751, 1820, 1882, 1988, 2072, 2138, 2188, 2225, 2250, 2265, 2271, 2271, 2264, 2253, 2237, 2218, 2197, 2048, 1886, 1738, 1609, 1497, 1401, 1317, 1244, 1122, 1025, 944.6, 877.4, 820, 770.7, 727.5, 689.3, 655.4, 625.2, 597.8, 573.1, 550.5, 529.9 }; +static const G4float e24[78] = { 99.58f, 123.5f, 144.f, 162.1f, 178.6f, 208.1f, 234.3f, 258.2f, 280.2f, 300.8f, 320.3f, 338.7f, 381.4f, 420.2f, 456.f, 489.5f, 521.f, 551.f, 579.5f, 606.8f, 658.3f, 706.3f, 751.5f, 794.2f, 834.9f, 873.7f, 910.9f, 946.6f, 981.f, 1014.f, 1046.f, 1077.f, 1108.f, 1137.f, 1271.f, 1390.f, 1495.f, 1590.f, 1675.f, 1751.f, 1820.f, 1882.f, 1988.f, 2072.f, 2138.f, 2188.f, 2225.f, 2250.f, 2265.f, 2271.f, 2271.f, 2264.f, 2253.f, 2237.f, 2218.f, 2197.f, 2048.f, 1886.f, 1738.f, 1609.f, 1497.f, 1401.f, 1317.f, 1244.f, 1122.f, 1025.f, 944.6f, 877.4f, 820.f, 770.7f, 727.5f, 689.3f, 655.4f, 625.2f, 597.8f, 573.1f, 550.5f, 529.9f}; -static const G4double e25[78] = { 38.11, 45.4, 51.41, 56.61, 61.25, 69.34, 76.36, 82.61, 88.29, 93.53, 98.41, 103, 113.4, 122.7, 131.1, 138.9, 146.1, 152.9, 159.3, 165.4, 176.7, 187.1, 196.8, 205.9, 214.4, 222.5, 230.3, 237.6, 244.7, 251.5, 258, 264.3, 270.3, 276.2, 303.1, 326.6, 347.4, 366.2, 383.1, 398.5, 412.5, 425.4, 447.8, 466.5, 482.1, 494.8, 505.1, 513.2, 519.4, 523.9, 526.9, 528.6, 529.1, 528.6, 527.3, 525.2, 505.6, 481, 456.8, 434.6, 414.6, 396.6, 380.5, 366, 340.9, 319.7, 301.6, 285.8, 272, 259.8, 248.8, 239, 230.1, 222, 214.6, 207.7, 201.4, 195.6 }; +static const G4float e25[78] = { 38.11f, 45.4f, 51.41f, 56.61f, 61.25f, 69.34f, 76.36f, 82.61f, 88.29f, 93.53f, 98.41f, 103.f, 113.4f, 122.7f, 131.1f, 138.9f, 146.1f, 152.9f, 159.3f, 165.4f, 176.7f, 187.1f, 196.8f, 205.9f, 214.4f, 222.5f, 230.3f, 237.6f, 244.7f, 251.5f, 258.f, 264.3f, 270.3f, 276.2f, 303.1f, 326.6f, 347.4f, 366.2f, 383.1f, 398.5f, 412.5f, 425.4f, 447.8f, 466.5f, 482.1f, 494.8f, 505.1f, 513.2f, 519.4f, 523.9f, 526.9f, 528.6f, 529.1f, 528.6f, 527.3f, 525.2f, 505.6f, 481.f, 456.8f, 434.6f, 414.6f, 396.6f, 380.5f, 366.f, 340.9f, 319.7f, 301.6f, 285.8f, 272.f, 259.8f, 248.8f, 239.f, 230.1f, 222.f, 214.6f, 207.7f, 201.4f, 195.6f}; -static const G4double e26[78] = { 47.65, 57.57, 65.83, 73.05, 79.53, 90.94, 100.9, 109.9, 118, 125.6, 132.7, 139.4, 154.6, 168.3, 180.8, 192.3, 203.1, 213.3, 222.9, 232, 249.1, 264.8, 279.5, 293.2, 306.1, 318.4, 330, 341.1, 351.7, 361.8, 371.5, 380.8, 389.8, 398.4, 437.2, 469.9, 497.8, 521.7, 542.3, 560.1, 575.5, 588.9, 610.7, 627.4, 640.1, 649.9, 657.3, 662.8, 666.8, 669.6, 671.4, 672.3, 672.4, 671.9, 670.9, 669.4, 656.9, 639.5, 619.8, 599.4, 578.4, 557.6, 537.5, 518.5, 483.6, 452.9, 425.8, 401.8, 380.5, 361.5, 344.3, 328.6, 315.1, 303.1, 292.1, 282, 272.6, 263.8 }; +static const G4float e26[78] = { 47.65f, 57.57f, 65.83f, 73.05f, 79.53f, 90.94f, 100.9f, 109.9f, 118.f, 125.6f, 132.7f, 139.4f, 154.6f, 168.3f, 180.8f, 192.3f, 203.1f, 213.3f, 222.9f, 232.f, 249.1f, 264.8f, 279.5f, 293.2f, 306.1f, 318.4f, 330.f, 341.1f, 351.7f, 361.8f, 371.5f, 380.8f, 389.8f, 398.4f, 437.2f, 469.9f, 497.8f, 521.7f, 542.3f, 560.1f, 575.5f, 588.9f, 610.7f, 627.4f, 640.1f, 649.9f, 657.3f, 662.8f, 666.8f, 669.6f, 671.4f, 672.3f, 672.4f, 671.9f, 670.9f, 669.4f, 656.9f, 639.5f, 619.8f, 599.4f, 578.4f, 557.6f, 537.5f, 518.5f, 483.6f, 452.9f, 425.8f, 401.8f, 380.5f, 361.5f, 344.3f, 328.6f, 315.1f, 303.1f, 292.1f, 282.f, 272.6f, 263.8f}; -static const G4double e27[78] = { 83.85, 102.1, 117.5, 131, 143.3, 165, 184.1, 201.3, 217.2, 232, 245.9, 259, 289.2, 316.5, 341.5, 364.8, 386.7, 407.4, 427.1, 445.8, 481.1, 513.8, 544.4, 573.2, 600.6, 626.6, 651.5, 675.3, 698.1, 720.1, 741.3, 761.7, 781.5, 800.6, 888, 963.9, 1031, 1090, 1142, 1189, 1231, 1268, 1330, 1378, 1414, 1441, 1460, 1473, 1481, 1485, 1484, 1481, 1475, 1466, 1456, 1445, 1389, 1323, 1249, 1171, 1095, 1029, 971.4, 920.7, 835.9, 768, 711.5, 663.8, 622.8, 587.4, 556.1, 528.4, 503.7, 481.5, 461.4, 443.2, 426.5, 411.2 }; +static const G4float e27[78] = { 83.85f, 102.1f, 117.5f, 131.f, 143.3f, 165.f, 184.1f, 201.3f, 217.2f, 232.f, 245.9f, 259.f, 289.2f, 316.5f, 341.5f, 364.8f, 386.7f, 407.4f, 427.1f, 445.8f, 481.1f, 513.8f, 544.4f, 573.2f, 600.6f, 626.6f, 651.5f, 675.3f, 698.1f, 720.1f, 741.3f, 761.7f, 781.5f, 800.6f, 888.f, 963.9f, 1031.f, 1090.f, 1142.f, 1189.f, 1231.f, 1268.f, 1330.f, 1378.f, 1414.f, 1441.f, 1460.f, 1473.f, 1481.f, 1485.f, 1484.f, 1481.f, 1475.f, 1466.f, 1456.f, 1445.f, 1389.f, 1323.f, 1249.f, 1171.f, 1095.f, 1029.f, 971.4f, 920.7f, 835.9f, 768.f, 711.5f, 663.8f, 622.8f, 587.4f, 556.1f, 528.4f, 503.7f, 481.5f, 461.4f, 443.2f, 426.5f, 411.2f}; -static const G4double e28[78] = { 212, 275.4, 331.7, 383, 430.9, 518.8, 599.2, 674, 744.5, 811.5, 875.6, 937.1, 1082, 1217, 1344, 1465, 1580, 1691, 1798, 1901, 2098, 2285, 2463, 2634, 2798, 2956, 3108, 3256, 3399, 3538, 3674, 3805, 3933, 4058, 4637, 5152, 5610, 6019, 6383, 6705, 6988, 7235, 7632, 7915, 8100, 8203, 8240, 8222, 8161, 8067, 7947, 7808, 7655, 7494, 7327, 7157, 6345, 5647, 5068, 4588, 4188, 3860, 3585, 3351, 2971, 2675, 2438, 2242, 2078, 1939, 1818, 1713, 1620, 1538, 1464, 1398, 1337, 1283 }; +static const G4float e28[78] = { 212.f, 275.4f, 331.7f, 383.f, 430.9f, 518.8f, 599.2f, 674.f, 744.5f, 811.5f, 875.6f, 937.1f, 1082.f, 1217.f, 1344.f, 1465.f, 1580.f, 1691.f, 1798.f, 1901.f, 2098.f, 2285.f, 2463.f, 2634.f, 2798.f, 2956.f, 3108.f, 3256.f, 3399.f, 3538.f, 3674.f, 3805.f, 3933.f, 4058.f, 4637.f, 5152.f, 5610.f, 6019.f, 6383.f, 6705.f, 6988.f, 7235.f, 7632.f, 7915.f, 8100.f, 8203.f, 8240.f, 8222.f, 8161.f, 8067.f, 7947.f, 7808.f, 7655.f, 7494.f, 7327.f, 7157.f, 6345.f, 5647.f, 5068.f, 4588.f, 4188.f, 3860.f, 3585.f, 3351.f, 2971.f, 2675.f, 2438.f, 2242.f, 2078.f, 1939.f, 1818.f, 1713.f, 1620.f, 1538.f, 1464.f, 1398.f, 1337.f, 1283.f}; -static const G4double e29[78] = { 87.26, 110.8, 131.3, 149.8, 166.8, 197.7, 225.5, 251.1, 275, 297.5, 318.9, 339.4, 387, 430.9, 471.8, 510.4, 547, 581.9, 615.3, 647.5, 708.7, 766.1, 820.5, 872.3, 921.8, 969.3, 1015, 1059, 1102, 1143, 1183, 1221, 1259, 1296, 1465, 1614, 1748, 1867, 1975, 2071, 2156, 2233, 2361, 2460, 2535, 2588, 2624, 2644, 2652, 2650, 2639, 2621, 2598, 2571, 2540, 2507, 2323, 2139, 1976, 1832, 1706, 1593, 1493, 1402, 1249, 1130, 1033, 953.8, 886.8, 829.5, 779.8, 736.4, 697.9, 663.7, 632.9, 605.2, 580, 557 }; +static const G4float e29[78] = { 87.26f, 110.8f, 131.3f, 149.8f, 166.8f, 197.7f, 225.5f, 251.1f, 275.f, 297.5f, 318.9f, 339.4f, 387.f, 430.9f, 471.8f, 510.4f, 547.f, 581.9f, 615.3f, 647.5f, 708.7f, 766.1f, 820.5f, 872.3f, 921.8f, 969.3f, 1015.f, 1059.f, 1102.f, 1143.f, 1183.f, 1221.f, 1259.f, 1296.f, 1465.f, 1614.f, 1748.f, 1867.f, 1975.f, 2071.f, 2156.f, 2233.f, 2361.f, 2460.f, 2535.f, 2588.f, 2624.f, 2644.f, 2652.f, 2650.f, 2639.f, 2621.f, 2598.f, 2571.f, 2540.f, 2507.f, 2323.f, 2139.f, 1976.f, 1832.f, 1706.f, 1593.f, 1493.f, 1402.f, 1249.f, 1130.f, 1033.f, 953.8f, 886.8f, 829.5f, 779.8f, 736.4f, 697.9f, 663.7f, 632.9f, 605.2f, 580.f, 557.f}; -static const G4double e30[78] = { 165.5, 197.6, 224.2, 247.2, 267.8, 304, 335.4, 363.5, 389.1, 412.8, 434.8, 455.6, 502.9, 545.2, 583.8, 619.4, 652.6, 683.8, 713.3, 741.2, 793.5, 841.6, 886.3, 928.2, 967.7, 1005, 1041, 1074, 1107, 1138, 1167, 1196, 1223, 1250, 1369, 1471, 1560, 1636, 1703, 1762, 1812, 1857, 1928, 1981, 2018, 2042, 2056, 2062, 2061, 2054, 2043, 2028, 2010, 1990, 1969, 1946, 1819, 1688, 1565, 1451, 1350, 1264, 1190, 1125, 1017, 929.8, 858.3, 798.2, 747, 702.8, 664, 629.8, 599.3, 571.9, 547.2, 524.8, 504.4, 485.7 }; +static const G4float e30[78] = { 165.5f, 197.6f, 224.2f, 247.2f, 267.8f, 304.f, 335.4f, 363.5f, 389.1f, 412.8f, 434.8f, 455.6f, 502.9f, 545.2f, 583.8f, 619.4f, 652.6f, 683.8f, 713.3f, 741.2f, 793.5f, 841.6f, 886.3f, 928.2f, 967.7f, 1005.f, 1041.f, 1074.f, 1107.f, 1138.f, 1167.f, 1196.f, 1223.f, 1250.f, 1369.f, 1471.f, 1560.f, 1636.f, 1703.f, 1762.f, 1812.f, 1857.f, 1928.f, 1981.f, 2018.f, 2042.f, 2056.f, 2062.f, 2061.f, 2054.f, 2043.f, 2028.f, 2010.f, 1990.f, 1969.f, 1946.f, 1819.f, 1688.f, 1565.f, 1451.f, 1350.f, 1264.f, 1190.f, 1125.f, 1017.f, 929.8f, 858.3f, 798.2f, 747.f, 702.8f, 664.f, 629.8f, 599.3f, 571.9f, 547.2f, 524.8f, 504.4f, 485.7f}; -static const G4double e31[78] = { 10.15, 13.69, 16.93, 19.96, 22.84, 28.23, 33.29, 38.08, 42.66, 47.08, 51.35, 55.5, 65.43, 74.84, 83.85, 92.52, 100.9, 109.1, 117, 124.7, 139.7, 154.1, 168, 181.5, 194.6, 207.4, 219.9, 232.1, 244, 255.7, 267.2, 278.4, 289.5, 300.3, 351.9, 399.6, 443.7, 484.4, 522.1, 556.7, 588.4, 617.2, 666.6, 705.7, 735.5, 757, 771.4, 779.9, 783.4, 783, 779.4, 773.6, 765.9, 757, 747.2, 736.9, 683.7, 635.6, 595.2, 561.5, 533, 508.6, 487.3, 468.5, 439.9, 417.9, 398.8, 381.4, 364.9, 349.2, 334.2, 319.8, 306.2, 293.7, 282.8, 272.8, 263.6, 255.2 }; +static const G4float e31[78] = { 10.15f, 13.69f, 16.93f, 19.96f, 22.84f, 28.23f, 33.29f, 38.08f, 42.66f, 47.08f, 51.35f, 55.5f, 65.43f, 74.84f, 83.85f, 92.52f, 100.9f, 109.1f, 117.f, 124.7f, 139.7f, 154.1f, 168.f, 181.5f, 194.6f, 207.4f, 219.9f, 232.1f, 244.f, 255.7f, 267.2f, 278.4f, 289.5f, 300.3f, 351.9f, 399.6f, 443.7f, 484.4f, 522.1f, 556.7f, 588.4f, 617.2f, 666.6f, 705.7f, 735.5f, 757.f, 771.4f, 779.9f, 783.4f, 783.f, 779.4f, 773.6f, 765.9f, 757.f, 747.2f, 736.9f, 683.7f, 635.6f, 595.2f, 561.5f, 533.f, 508.6f, 487.3f, 468.5f, 439.9f, 417.9f, 398.8f, 381.4f, 364.9f, 349.2f, 334.2f, 319.8f, 306.2f, 293.7f, 282.8f, 272.8f, 263.6f, 255.2f}; -static const G4double e32[78] = { 132.7, 159.4, 181.6, 200.9, 218.2, 248.6, 275, 298.7, 320.4, 340.4, 359.1, 376.6, 416.8, 452.7, 485.5, 515.8, 544, 570.6, 595.8, 619.7, 664.3, 705.6, 743.9, 779.9, 813.9, 846.1, 876.8, 906.1, 934.2, 961.1, 987, 1012, 1036, 1059, 1166, 1258, 1338, 1410, 1474, 1531, 1583, 1628, 1706, 1767, 1814, 1849, 1874, 1891, 1899, 1902, 1899, 1891, 1875, 1852, 1825, 1795, 1638, 1494, 1375, 1276, 1193, 1121, 1058, 1002, 908.8, 833.2, 770.5, 717.6, 672.4, 633.2, 598.8, 568.3, 541.2, 516.9, 494.8, 474.9, 456.6, 439.9 }; +static const G4float e32[78] = { 132.7f, 159.4f, 181.6f, 200.9f, 218.2f, 248.6f, 275.f, 298.7f, 320.4f, 340.4f, 359.1f, 376.6f, 416.8f, 452.7f, 485.5f, 515.8f, 544.f, 570.6f, 595.8f, 619.7f, 664.3f, 705.6f, 743.9f, 779.9f, 813.9f, 846.1f, 876.8f, 906.1f, 934.2f, 961.1f, 987.f, 1012.f, 1036.f, 1059.f, 1166.f, 1258.f, 1338.f, 1410.f, 1474.f, 1531.f, 1583.f, 1628.f, 1706.f, 1767.f, 1814.f, 1849.f, 1874.f, 1891.f, 1899.f, 1902.f, 1899.f, 1891.f, 1875.f, 1852.f, 1825.f, 1795.f, 1638.f, 1494.f, 1375.f, 1276.f, 1193.f, 1121.f, 1058.f, 1002.f, 908.8f, 833.2f, 770.5f, 717.6f, 672.4f, 633.2f, 598.8f, 568.3f, 541.2f, 516.9f, 494.8f, 474.9f, 456.6f, 439.9f}; -static const G4double e33[78] = { 118.7, 142.6, 162.5, 179.7, 195.2, 222.4, 246, 267.2, 286.5, 304.3, 321, 336.6, 372.4, 404.4, 433.5, 460.4, 485.5, 509.1, 531.4, 552.6, 592.1, 628.5, 662.4, 694.1, 724.1, 752.4, 779.4, 805.1, 829.6, 853.2, 875.9, 897.6, 918.7, 938.9, 1031, 1110, 1179, 1240, 1294, 1341, 1383, 1421, 1483, 1530, 1566, 1592, 1610, 1621, 1627, 1627, 1624, 1618, 1609, 1598, 1585, 1571, 1483, 1387, 1296, 1214, 1140, 1074, 1015, 962.2, 872, 799.7, 739.5, 688.5, 644.8, 606.9, 573.7, 544.4, 518.3, 494.9, 473.6, 454.3, 436.7, 420.6 }; +static const G4float e33[78] = { 118.7f, 142.6f, 162.5f, 179.7f, 195.2f, 222.4f, 246.f, 267.2f, 286.5f, 304.3f, 321.f, 336.6f, 372.4f, 404.4f, 433.5f, 460.4f, 485.5f, 509.1f, 531.4f, 552.6f, 592.1f, 628.5f, 662.4f, 694.1f, 724.1f, 752.4f, 779.4f, 805.1f, 829.6f, 853.2f, 875.9f, 897.6f, 918.7f, 938.9f, 1031.f, 1110.f, 1179.f, 1240.f, 1294.f, 1341.f, 1383.f, 1421.f, 1483.f, 1530.f, 1566.f, 1592.f, 1610.f, 1621.f, 1627.f, 1627.f, 1624.f, 1618.f, 1609.f, 1598.f, 1585.f, 1571.f, 1483.f, 1387.f, 1296.f, 1214.f, 1140.f, 1074.f, 1015.f, 962.2f, 872.f, 799.7f, 739.5f, 688.5f, 644.8f, 606.9f, 573.7f, 544.4f, 518.3f, 494.9f, 473.6f, 454.3f, 436.7f, 420.6f}; -static const G4double e34[78] = { 173.6, 209, 238.5, 264.3, 287.6, 328.7, 364.7, 397.1, 426.9, 454.5, 480.4, 504.9, 561, 611.6, 658, 701.1, 741.6, 779.8, 816, 850.6, 915.4, 975.6, 1032, 1085, 1135, 1182, 1228, 1271, 1313, 1353, 1392, 1429, 1465, 1499, 1657, 1792, 1910, 2012, 2101, 2179, 2247, 2305, 2398, 2463, 2507, 2533, 2544, 2544, 2534, 2517, 2494, 2468, 2437, 2405, 2371, 2335, 2154, 1981, 1825, 1686, 1564, 1460, 1372, 1295, 1167, 1064, 980.4, 910.2, 850.4, 798.9, 753.8, 714.2, 678.9, 647.3, 618.8, 593, 569.4, 547.9 }; +static const G4float e34[78] = { 173.6f, 209.f, 238.5f, 264.3f, 287.6f, 328.7f, 364.7f, 397.1f, 426.9f, 454.5f, 480.4f, 504.9f, 561.f, 611.6f, 658.f, 701.1f, 741.6f, 779.8f, 816.f, 850.6f, 915.4f, 975.6f, 1032.f, 1085.f, 1135.f, 1182.f, 1228.f, 1271.f, 1313.f, 1353.f, 1392.f, 1429.f, 1465.f, 1499.f, 1657.f, 1792.f, 1910.f, 2012.f, 2101.f, 2179.f, 2247.f, 2305.f, 2398.f, 2463.f, 2507.f, 2533.f, 2544.f, 2544.f, 2534.f, 2517.f, 2494.f, 2468.f, 2437.f, 2405.f, 2371.f, 2335.f, 2154.f, 1981.f, 1825.f, 1686.f, 1564.f, 1460.f, 1372.f, 1295.f, 1167.f, 1064.f, 980.4f, 910.2f, 850.4f, 798.9f, 753.8f, 714.2f, 678.9f, 647.3f, 618.8f, 593.f, 569.4f, 547.9f}; -static const G4double e35[78] = { 163.5, 196.6, 224.1, 248.2, 269.8, 308, 341.4, 371.4, 398.9, 424.4, 448.3, 470.9, 522.5, 569, 611.6, 651.1, 688, 722.9, 756, 787.5, 846.6, 901.2, 952.3, 1000, 1046, 1089, 1130, 1169, 1207, 1243, 1278, 1311, 1344, 1375, 1516, 1638, 1744, 1836, 1916, 1986, 2048, 2101, 2185, 2247, 2288, 2314, 2327, 2330, 2325, 2312, 2295, 2273, 2249, 2222, 2193, 2163, 2002, 1845, 1703, 1575, 1463, 1368, 1286, 1215, 1097, 1001, 923.2, 857.7, 802, 753.9, 711.7, 674.6, 641.6, 611.9, 585.2, 561, 539, 518.8 }; +static const G4float e35[78] = { 163.5f, 196.6f, 224.1f, 248.2f, 269.8f, 308.f, 341.4f, 371.4f, 398.9f, 424.4f, 448.3f, 470.9f, 522.5f, 569.f, 611.6f, 651.1f, 688.f, 722.9f, 756.f, 787.5f, 846.6f, 901.2f, 952.3f, 1000.f, 1046.f, 1089.f, 1130.f, 1169.f, 1207.f, 1243.f, 1278.f, 1311.f, 1344.f, 1375.f, 1516.f, 1638.f, 1744.f, 1836.f, 1916.f, 1986.f, 2048.f, 2101.f, 2185.f, 2247.f, 2288.f, 2314.f, 2327.f, 2330.f, 2325.f, 2312.f, 2295.f, 2273.f, 2249.f, 2222.f, 2193.f, 2163.f, 2002.f, 1845.f, 1703.f, 1575.f, 1463.f, 1368.f, 1286.f, 1215.f, 1097.f, 1001.f, 923.2f, 857.7f, 802.f, 753.9f, 711.7f, 674.6f, 641.6f, 611.9f, 585.2f, 561.f, 539.f, 518.8f}; -static const G4double e36[78] = { 197.5, 241.8, 279.3, 312.2, 342, 394.9, 441.5, 483.7, 522.4, 558.5, 592.4, 624.4, 698.1, 764.8, 826, 883.1, 936.6, 987.3, 1035, 1081, 1168, 1249, 1324, 1396, 1464, 1529, 1591, 1650, 1708, 1764, 1818, 1870, 1920, 1970, 2198, 2402, 2586, 2754, 2907, 3047, 3175, 3291, 3492, 3652, 3773, 3856, 3905, 3921, 3899, 3849, 3783, 3708, 3627, 3544, 3460, 3378, 2998, 2685, 2432, 2226, 2055, 1911, 1789, 1683, 1508, 1370, 1257, 1163, 1084, 1015, 955.9, 903.7, 857.5, 816.2, 779.1, 745.5, 714.9, 687.1 }; +static const G4float e36[78] = { 197.5f, 241.8f, 279.3f, 312.2f, 342.f, 394.9f, 441.5f, 483.7f, 522.4f, 558.5f, 592.4f, 624.4f, 698.1f, 764.8f, 826.f, 883.1f, 936.6f, 987.3f, 1035.f, 1081.f, 1168.f, 1249.f, 1324.f, 1396.f, 1464.f, 1529.f, 1591.f, 1650.f, 1708.f, 1764.f, 1818.f, 1870.f, 1920.f, 1970.f, 2198.f, 2402.f, 2586.f, 2754.f, 2907.f, 3047.f, 3175.f, 3291.f, 3492.f, 3652.f, 3773.f, 3856.f, 3905.f, 3921.f, 3899.f, 3849.f, 3783.f, 3708.f, 3627.f, 3544.f, 3460.f, 3378.f, 2998.f, 2685.f, 2432.f, 2226.f, 2055.f, 1911.f, 1789.f, 1683.f, 1508.f, 1370.f, 1257.f, 1163.f, 1084.f, 1015.f, 955.9f, 903.7f, 857.5f, 816.2f, 779.1f, 745.5f, 714.9f, 687.1f}; -static const G4double e37[78] = { 58.22, 68.98, 77.79, 85.4, 92.16, 103.9, 114.1, 123.1, 131.3, 138.8, 145.8, 152.4, 167.3, 180.5, 192.5, 203.5, 213.8, 223.4, 232.4, 241, 256.9, 271.6, 285.1, 297.8, 309.8, 321.1, 331.8, 342.1, 351.9, 361.3, 370.3, 379, 387.4, 395.5, 432.4, 464.5, 492.9, 518.2, 541, 561.6, 580.4, 597.4, 626.9, 651.2, 671.2, 687.3, 700.1, 710, 717.3, 722.3, 725.4, 726.7, 726.5, 725, 722.3, 718.8, 690.9, 655, 617.8, 582.6, 552.1, 525.7, 502.3, 481.5, 445.5, 415.5, 389.9, 367.7, 348.1, 330.6, 314.8, 300.9, 288.6, 277.3, 266.9, 257.6, 249, 241.2 }; +static const G4float e37[78] = { 58.22f, 68.98f, 77.79f, 85.4f, 92.16f, 103.9f, 114.1f, 123.1f, 131.3f, 138.8f, 145.8f, 152.4f, 167.3f, 180.5f, 192.5f, 203.5f, 213.8f, 223.4f, 232.4f, 241.f, 256.9f, 271.6f, 285.1f, 297.8f, 309.8f, 321.1f, 331.8f, 342.1f, 351.9f, 361.3f, 370.3f, 379.f, 387.4f, 395.5f, 432.4f, 464.5f, 492.9f, 518.2f, 541.f, 561.6f, 580.4f, 597.4f, 626.9f, 651.2f, 671.2f, 687.3f, 700.1f, 710.f, 717.3f, 722.3f, 725.4f, 726.7f, 726.5f, 725.f, 722.3f, 718.8f, 690.9f, 655.f, 617.8f, 582.6f, 552.1f, 525.7f, 502.3f, 481.5f, 445.5f, 415.5f, 389.9f, 367.7f, 348.1f, 330.6f, 314.8f, 300.9f, 288.6f, 277.3f, 266.9f, 257.6f, 249.f, 241.2f}; -static const G4double e38[78] = { 111.7, 137.5, 159.4, 178.8, 196.5, 227.9, 255.7, 281, 304.4, 326.2, 346.7, 366.2, 411.2, 452, 489.7, 525, 558.1, 589.5, 619.5, 648.1, 702.2, 752.5, 799.9, 844.6, 887.2, 927.9, 966.8, 1004, 1040, 1075, 1108, 1141, 1172, 1203, 1343, 1467, 1576, 1674, 1762, 1841, 1912, 1975, 2081, 2165, 2230, 2277, 2310, 2331, 2342, 2344, 2339, 2329, 2313, 2293, 2270, 2244, 2074, 1896, 1739, 1607, 1494, 1398, 1314, 1241, 1120, 1022, 942.4, 875.3, 818.1, 768.9, 725.8, 687.7, 653.9, 623.7, 596.4, 571.7, 549.2, 528.6 }; +static const G4float e38[78] = { 111.7f, 137.5f, 159.4f, 178.8f, 196.5f, 227.9f, 255.7f, 281.f, 304.4f, 326.2f, 346.7f, 366.2f, 411.2f, 452.f, 489.7f, 525.f, 558.1f, 589.5f, 619.5f, 648.1f, 702.2f, 752.5f, 799.9f, 844.6f, 887.2f, 927.9f, 966.8f, 1004.f, 1040.f, 1075.f, 1108.f, 1141.f, 1172.f, 1203.f, 1343.f, 1467.f, 1576.f, 1674.f, 1762.f, 1841.f, 1912.f, 1975.f, 2081.f, 2165.f, 2230.f, 2277.f, 2310.f, 2331.f, 2342.f, 2344.f, 2339.f, 2329.f, 2313.f, 2293.f, 2270.f, 2244.f, 2074.f, 1896.f, 1739.f, 1607.f, 1494.f, 1398.f, 1314.f, 1241.f, 1120.f, 1022.f, 942.4f, 875.3f, 818.1f, 768.9f, 725.8f, 687.7f, 653.9f, 623.7f, 596.4f, 571.7f, 549.2f, 528.6f}; -static const G4double e39[78] = { 108.2, 133.5, 155, 174.1, 191.4, 222.4, 249.8, 274.8, 297.8, 319.3, 339.6, 358.9, 403.3, 443.7, 481, 515.9, 548.7, 579.8, 609.5, 637.9, 691.4, 741.4, 788.3, 832.7, 875, 915.3, 953.9, 991.1, 1027, 1061, 1095, 1127, 1158, 1189, 1328, 1451, 1560, 1658, 1745, 1824, 1895, 1958, 2065, 2150, 2215, 2263, 2298, 2320, 2332, 2335, 2331, 2321, 2306, 2287, 2265, 2240, 2075, 1901, 1746, 1613, 1501, 1404, 1320, 1247, 1125, 1027, 946.2, 878.8, 821.4, 772, 728.6, 690.4, 656.4, 626.1, 598.7, 573.9, 551.3, 530.6 }; +static const G4float e39[78] = { 108.2f, 133.5f, 155.f, 174.1f, 191.4f, 222.4f, 249.8f, 274.8f, 297.8f, 319.3f, 339.6f, 358.9f, 403.3f, 443.7f, 481.f, 515.9f, 548.7f, 579.8f, 609.5f, 637.9f, 691.4f, 741.4f, 788.3f, 832.7f, 875.f, 915.3f, 953.9f, 991.1f, 1027.f, 1061.f, 1095.f, 1127.f, 1158.f, 1189.f, 1328.f, 1451.f, 1560.f, 1658.f, 1745.f, 1824.f, 1895.f, 1958.f, 2065.f, 2150.f, 2215.f, 2263.f, 2298.f, 2320.f, 2332.f, 2335.f, 2331.f, 2321.f, 2306.f, 2287.f, 2265.f, 2240.f, 2075.f, 1901.f, 1746.f, 1613.f, 1501.f, 1404.f, 1320.f, 1247.f, 1125.f, 1027.f, 946.2f, 878.8f, 821.4f, 772.f, 728.6f, 690.4f, 656.4f, 626.1f, 598.7f, 573.9f, 551.3f, 530.6f}; -static const G4double e40[78] = { 104.5, 129.2, 150.2, 168.8, 185.8, 216.1, 242.9, 267.4, 290, 311.1, 331, 349.8, 393.5, 433.1, 469.7, 503.9, 536.2, 566.7, 595.9, 623.7, 676.3, 725.4, 771.5, 815.1, 856.6, 896.2, 934.1, 970.6, 1006, 1040, 1072, 1104, 1135, 1165, 1302, 1422, 1530, 1626, 1712, 1790, 1860, 1922, 2029, 2113, 2178, 2228, 2263, 2286, 2299, 2304, 2302, 2293, 2280, 2262, 2242, 2218, 2059, 1888, 1735, 1604, 1492, 1396, 1312, 1240, 1118, 1021, 941.1, 874.1, 817, 767.9, 724.9, 686.8, 653.1, 622.9, 595.7, 571, 548.6, 528 }; +static const G4float e40[78] = { 104.5f, 129.2f, 150.2f, 168.8f, 185.8f, 216.1f, 242.9f, 267.4f, 290.f, 311.1f, 331.f, 349.8f, 393.5f, 433.1f, 469.7f, 503.9f, 536.2f, 566.7f, 595.9f, 623.7f, 676.3f, 725.4f, 771.5f, 815.1f, 856.6f, 896.2f, 934.1f, 970.6f, 1006.f, 1040.f, 1072.f, 1104.f, 1135.f, 1165.f, 1302.f, 1422.f, 1530.f, 1626.f, 1712.f, 1790.f, 1860.f, 1922.f, 2029.f, 2113.f, 2178.f, 2228.f, 2263.f, 2286.f, 2299.f, 2304.f, 2302.f, 2293.f, 2280.f, 2262.f, 2242.f, 2218.f, 2059.f, 1888.f, 1735.f, 1604.f, 1492.f, 1396.f, 1312.f, 1240.f, 1118.f, 1021.f, 941.1f, 874.1f, 817.f, 767.9f, 724.9f, 686.8f, 653.1f, 622.9f, 595.7f, 571.f, 548.6f, 528.f}; -static const G4double e41[78] = { 104.7, 129.4, 150.5, 169.2, 186.2, 216.5, 243.4, 267.9, 290.5, 311.7, 331.6, 350.5, 394.2, 433.9, 470.6, 504.9, 537.2, 567.8, 596.9, 624.9, 677.5, 726.7, 772.8, 816.5, 858.1, 897.8, 935.8, 972.3, 1007, 1041, 1074, 1106, 1137, 1167, 1304, 1425, 1532, 1629, 1715, 1793, 1863, 1925, 2032, 2116, 2181, 2230, 2265, 2289, 2302, 2306, 2304, 2295, 2282, 2264, 2244, 2220, 2063, 1894, 1742, 1611, 1498, 1401, 1318, 1244, 1123, 1025, 944.5, 877.2, 819.9, 770.6, 727.3, 689.2, 655.3, 625, 597.7, 572.9, 550.4, 529.7 }; +static const G4float e41[78] = { 104.7f, 129.4f, 150.5f, 169.2f, 186.2f, 216.5f, 243.4f, 267.9f, 290.5f, 311.7f, 331.6f, 350.5f, 394.2f, 433.9f, 470.6f, 504.9f, 537.2f, 567.8f, 596.9f, 624.9f, 677.5f, 726.7f, 772.8f, 816.5f, 858.1f, 897.8f, 935.8f, 972.3f, 1007.f, 1041.f, 1074.f, 1106.f, 1137.f, 1167.f, 1304.f, 1425.f, 1532.f, 1629.f, 1715.f, 1793.f, 1863.f, 1925.f, 2032.f, 2116.f, 2181.f, 2230.f, 2265.f, 2289.f, 2302.f, 2306.f, 2304.f, 2295.f, 2282.f, 2264.f, 2244.f, 2220.f, 2063.f, 1894.f, 1742.f, 1611.f, 1498.f, 1401.f, 1318.f, 1244.f, 1123.f, 1025.f, 944.5f, 877.2f, 819.9f, 770.6f, 727.3f, 689.2f, 655.3f, 625.f, 597.7f, 572.9f, 550.4f, 529.7f}; -static const G4double e42[78] = { 82.8, 103.7, 121.6, 137.7, 152.3, 178.7, 202.3, 223.8, 243.8, 262.5, 280.2, 297.1, 336.2, 372, 405.1, 436.2, 465.5, 493.4, 520.1, 545.7, 594.1, 639.3, 682, 722.5, 761, 797.9, 833.4, 867.4, 900.3, 932, 962.8, 992.5, 1021, 1049, 1179, 1293, 1395, 1486, 1567, 1640, 1706, 1765, 1864, 1940, 1999, 2041, 2069, 2086, 2093, 2091, 2083, 2069, 2051, 2030, 2005, 1978, 1819, 1660, 1522, 1406, 1308, 1224, 1151, 1088, 982.9, 898.5, 829.5, 771.1, 721.3, 678.5, 641, 608, 578.6, 552.3, 528.5, 506.9, 487.2, 469.1 }; +static const G4float e42[78] = { 82.8f, 103.7f, 121.6f, 137.7f, 152.3f, 178.7f, 202.3f, 223.8f, 243.8f, 262.5f, 280.2f, 297.1f, 336.2f, 372.f, 405.1f, 436.2f, 465.5f, 493.4f, 520.1f, 545.7f, 594.1f, 639.3f, 682.f, 722.5f, 761.f, 797.9f, 833.4f, 867.4f, 900.3f, 932.f, 962.8f, 992.5f, 1021.f, 1049.f, 1179.f, 1293.f, 1395.f, 1486.f, 1567.f, 1640.f, 1706.f, 1765.f, 1864.f, 1940.f, 1999.f, 2041.f, 2069.f, 2086.f, 2093.f, 2091.f, 2083.f, 2069.f, 2051.f, 2030.f, 2005.f, 1978.f, 1819.f, 1660.f, 1522.f, 1406.f, 1308.f, 1224.f, 1151.f, 1088.f, 982.9f, 898.5f, 829.5f, 771.1f, 721.3f, 678.5f, 641.f, 608.f, 578.6f, 552.3f, 528.5f, 506.9f, 487.2f, 469.1f}; -static const G4double e43[78] = { 35.86, 44.19, 51.24, 57.48, 63.13, 73.21, 82.12, 90.2, 97.64, 104.6, 111.1, 117.3, 131.6, 144.5, 156.4, 167.6, 178, 187.9, 197.3, 206.3, 223.3, 239.1, 253.9, 268, 281.3, 294, 306.2, 317.9, 329.2, 340.1, 350.6, 360.8, 370.6, 380.2, 424.5, 463.5, 498.4, 529.9, 558.2, 583.8, 607, 627.8, 663.4, 691.6, 713.4, 729.6, 740.9, 748.1, 751.7, 752.4, 750.7, 747, 741.7, 735.1, 727.6, 719.5, 664.4, 611.2, 569.4, 538.3, 514, 491.6, 472.1, 454, 422.9, 393.7, 370.2, 349.6, 331.4, 315.3, 301.2, 288.5, 276.8, 266.1, 256.3, 247.1, 238.9, 231.5 }; +static const G4float e43[78] = { 35.86f, 44.19f, 51.24f, 57.48f, 63.13f, 73.21f, 82.12f, 90.2f, 97.64f, 104.6f, 111.1f, 117.3f, 131.6f, 144.5f, 156.4f, 167.6f, 178.f, 187.9f, 197.3f, 206.3f, 223.3f, 239.1f, 253.9f, 268.f, 281.3f, 294.f, 306.2f, 317.9f, 329.2f, 340.1f, 350.6f, 360.8f, 370.6f, 380.2f, 424.5f, 463.5f, 498.4f, 529.9f, 558.2f, 583.8f, 607.f, 627.8f, 663.4f, 691.6f, 713.4f, 729.6f, 740.9f, 748.1f, 751.7f, 752.4f, 750.7f, 747.f, 741.7f, 735.1f, 727.6f, 719.5f, 664.4f, 611.2f, 569.4f, 538.3f, 514.f, 491.6f, 472.1f, 454.f, 422.9f, 393.7f, 370.2f, 349.6f, 331.4f, 315.3f, 301.2f, 288.5f, 276.8f, 266.1f, 256.3f, 247.1f, 238.9f, 231.5f}; -static const G4double e44[78] = { 68.73, 83.7, 96.26, 107.3, 117.2, 134.8, 150.3, 164.2, 177, 188.8, 199.9, 210.4, 234.5, 256.2, 276.1, 294.6, 311.9, 328.3, 343.8, 358.6, 386.3, 412, 436.1, 458.8, 480.3, 500.8, 520.3, 539.1, 557.1, 574.5, 591.2, 607.5, 623.2, 638.4, 708.4, 770.3, 825.6, 875.7, 921.2, 962.8, 1001, 1036, 1098, 1150, 1194, 1230, 1260, 1285, 1304, 1319, 1330, 1338, 1343, 1344, 1344, 1341, 1296, 1229, 1160, 1095, 1035, 981.4, 932.6, 888.5, 812.1, 748.3, 695.6, 650.4, 611.3, 577, 546.8, 520, 496, 474.4, 454.8, 437, 420.7, 405.7 }; +static const G4float e44[78] = { 68.73f, 83.7f, 96.26f, 107.3f, 117.2f, 134.8f, 150.3f, 164.2f, 177.f, 188.8f, 199.9f, 210.4f, 234.5f, 256.2f, 276.1f, 294.6f, 311.9f, 328.3f, 343.8f, 358.6f, 386.3f, 412.f, 436.1f, 458.8f, 480.3f, 500.8f, 520.3f, 539.1f, 557.1f, 574.5f, 591.2f, 607.5f, 623.2f, 638.4f, 708.4f, 770.3f, 825.6f, 875.7f, 921.2f, 962.8f, 1001.f, 1036.f, 1098.f, 1150.f, 1194.f, 1230.f, 1260.f, 1285.f, 1304.f, 1319.f, 1330.f, 1338.f, 1343.f, 1344.f, 1344.f, 1341.f, 1296.f, 1229.f, 1160.f, 1095.f, 1035.f, 981.4f, 932.6f, 888.5f, 812.1f, 748.3f, 695.6f, 650.4f, 611.3f, 577.f, 546.8f, 520.f, 496.f, 474.4f, 454.8f, 437.f, 420.7f, 405.7f}; -static const G4double e45[78] = { 167.4, 201.6, 230.3, 255.4, 278, 317.9, 352.9, 384.4, 413.4, 440.3, 465.5, 489.3, 544, 593.3, 638.6, 680.6, 720.1, 757.3, 792.7, 826.4, 889.7, 948.5, 1003, 1055, 1104, 1151, 1195, 1238, 1279, 1318, 1356, 1392, 1427, 1461, 1617, 1750, 1867, 1969, 2059, 2138, 2207, 2267, 2363, 2433, 2482, 2512, 2527, 2531, 2525, 2511, 2491, 2467, 2439, 2408, 2375, 2340, 2160, 1987, 1830, 1690, 1567, 1463, 1374, 1297, 1169, 1066, 981.3, 910.8, 850.9, 799.3, 754.1, 714.4, 679, 647.4, 618.9, 593, 569.5, 547.9 }; +static const G4float e45[78] = { 167.4f, 201.6f, 230.3f, 255.4f, 278.f, 317.9f, 352.9f, 384.4f, 413.4f, 440.3f, 465.5f, 489.3f, 544.f, 593.3f, 638.6f, 680.6f, 720.1f, 757.3f, 792.7f, 826.4f, 889.7f, 948.5f, 1003.f, 1055.f, 1104.f, 1151.f, 1195.f, 1238.f, 1279.f, 1318.f, 1356.f, 1392.f, 1427.f, 1461.f, 1617.f, 1750.f, 1867.f, 1969.f, 2059.f, 2138.f, 2207.f, 2267.f, 2363.f, 2433.f, 2482.f, 2512.f, 2527.f, 2531.f, 2525.f, 2511.f, 2491.f, 2467.f, 2439.f, 2408.f, 2375.f, 2340.f, 2160.f, 1987.f, 1830.f, 1690.f, 1567.f, 1463.f, 1374.f, 1297.f, 1169.f, 1066.f, 981.3f, 910.8f, 850.9f, 799.3f, 754.1f, 714.4f, 679.f, 647.4f, 618.9f, 593.f, 569.5f, 547.9f}; -static const G4double e46[78] = { 1.058E+02, 1.283E+02, 1.471E+02, 1.636E+02, 1.784E+02, 2.046E+02, 2.275E+02, 2.481E+02, 2.670E+02, 2.845E+02, 3.009E+02, 3.163E+02, 3.518E+02, 3.836E+02, 4.127E+02, 4.398E+02, 4.650E+02, 4.889E+02, 5.115E+02, 5.330E+02, 5.733E+02, 6.106E+02, 6.455E+02, 6.783E+02, 7.094E+02, 7.389E+02, 7.671E+02, 7.941E+02, 8.200E+02, 8.450E+02, 8.690E+02, 8.923E+02, 9.147E+02, 9.365E+02, 1.036E+03, 1.124E+03, 1.202E+03, 1.272E+03, 1.335E+03, 1.392E+03, 1.444E+03, 1.491E+03, 1.573E+03, 1.639E+03, 1.693E+03, 1.735E+03, 1.768E+03, 1.792E+03, 1.808E+03, 1.818E+03, 1.821E+03, 1.820E+03, 1.814E+03, 1.805E+03, 1.792E+03, 1.777E+03, 1.667E+03, 1.544E+03, 1.430E+03, 1.329E+03, 1.241E+03, 1.164E+03, 1.097E+03, 1.038E+03, 9.395E+02, 8.602E+02, 7.947E+02, 7.395E+02, 6.924E+02, 6.519E+02, 6.161E+02, 5.845E+02, 5.564E+02, 5.313E+02, 5.086E+02, 4.880E+02, 4.692E+02, 4.520E+02}; +static const G4float e46[78] = { 1.058E+02f, 1.283E+02f, 1.471E+02f, 1.636E+02f, 1.784E+02f, 2.046E+02f, 2.275E+02f, 2.481E+02f, 2.670E+02f, 2.845E+02f, 3.009E+02f, 3.163E+02f, 3.518E+02f, 3.836E+02f, 4.127E+02f, 4.398E+02f, 4.650E+02f, 4.889E+02f, 5.115E+02f, 5.330E+02f, 5.733E+02f, 6.106E+02f, 6.455E+02f, 6.783E+02f, 7.094E+02f, 7.389E+02f, 7.671E+02f, 7.941E+02f, 8.200E+02f, 8.450E+02f, 8.690E+02f, 8.923E+02f, 9.147E+02f, 9.365E+02f, 1.036E+03f, 1.124E+03f, 1.202E+03f, 1.272E+03f, 1.335E+03f, 1.392E+03f, 1.444E+03f, 1.491E+03f, 1.573E+03f, 1.639E+03f, 1.693E+03f, 1.735E+03f, 1.768E+03f, 1.792E+03f, 1.808E+03f, 1.818E+03f, 1.821E+03f, 1.820E+03f, 1.814E+03f, 1.805E+03f, 1.792E+03f, 1.777E+03f, 1.667E+03f, 1.544E+03f, 1.430E+03f, 1.329E+03f, 1.241E+03f, 1.164E+03f, 1.097E+03f, 1.038E+03f, 9.395E+02f, 8.602E+02f, 7.947E+02f, 7.395E+02f, 6.924E+02f, 6.519E+02f, 6.161E+02f, 5.845E+02f, 5.564E+02f, 5.313E+02f, 5.086E+02f, 4.880E+02f, 4.692E+02f, 4.520E+02}; -static const G4double e47[78] = { 193.8, 233, 265.8, 294.4, 320.3, 365.9, 405.9, 441.9, 475, 505.7, 534.5, 561.7, 624.2, 680.6, 732.3, 780.4, 825.5, 868.2, 908.6, 947.2, 1020, 1087, 1150, 1209, 1265, 1319, 1370, 1419, 1465, 1510, 1554, 1595, 1636, 1675, 1852, 2004, 2137, 2253, 2354, 2442, 2518, 2584, 2688, 2762, 2810, 2837, 2848, 2845, 2831, 2810, 2782, 2749, 2713, 2674, 2633, 2592, 2381, 2184, 2007, 1851, 1714, 1598, 1500, 1414, 1272, 1158, 1066, 988.4, 922.7, 866.1, 816.7, 773.2, 734.5, 699.9, 668.8, 640.6, 614.9, 591.4 }; +static const G4float e47[78] = { 193.8f, 233.f, 265.8f, 294.4f, 320.3f, 365.9f, 405.9f, 441.9f, 475.f, 505.7f, 534.5f, 561.7f, 624.2f, 680.6f, 732.3f, 780.4f, 825.5f, 868.2f, 908.6f, 947.2f, 1020.f, 1087.f, 1150.f, 1209.f, 1265.f, 1319.f, 1370.f, 1419.f, 1465.f, 1510.f, 1554.f, 1595.f, 1636.f, 1675.f, 1852.f, 2004.f, 2137.f, 2253.f, 2354.f, 2442.f, 2518.f, 2584.f, 2688.f, 2762.f, 2810.f, 2837.f, 2848.f, 2845.f, 2831.f, 2810.f, 2782.f, 2749.f, 2713.f, 2674.f, 2633.f, 2592.f, 2381.f, 2184.f, 2007.f, 1851.f, 1714.f, 1598.f, 1500.f, 1414.f, 1272.f, 1158.f, 1066.f, 988.4f, 922.7f, 866.1f, 816.7f, 773.2f, 734.5f, 699.9f, 668.8f, 640.6f, 614.9f, 591.4f}; -static const G4double e48[78] = { 17.96, 22.18, 25.76, 28.92, 31.8, 36.93, 41.47, 45.6, 49.4, 52.95, 56.3, 59.46, 66.77, 73.41, 79.52, 85.23, 90.6, 95.69, 100.5, 105.2, 113.9, 122, 129.7, 136.9, 143.8, 150.3, 156.6, 162.7, 168.5, 174.1, 179.5, 184.8, 189.9, 194.9, 217.7, 237.9, 256, 272.3, 287, 300.4, 312.6, 323.6, 342.6, 358.2, 370.7, 380.6, 388.3, 394.2, 398.4, 401.3, 403.1, 404, 404.1, 403.5, 402.4, 401, 392.5, 380.4, 365.3, 348.6, 332, 317.6, 304.9, 293.7, 274.4, 258.3, 244.7, 232.9, 222.5, 213.2, 205, 197.5, 190.7, 184.4, 178.7, 173.4, 168.4, 163.9 }; +static const G4float e48[78] = { 17.96f, 22.18f, 25.76f, 28.92f, 31.8f, 36.93f, 41.47f, 45.6f, 49.4f, 52.95f, 56.3f, 59.46f, 66.77f, 73.41f, 79.52f, 85.23f, 90.6f, 95.69f, 100.5f, 105.2f, 113.9f, 122.f, 129.7f, 136.9f, 143.8f, 150.3f, 156.6f, 162.7f, 168.5f, 174.1f, 179.5f, 184.8f, 189.9f, 194.9f, 217.7f, 237.9f, 256.f, 272.3f, 287.f, 300.4f, 312.6f, 323.6f, 342.6f, 358.2f, 370.7f, 380.6f, 388.3f, 394.2f, 398.4f, 401.3f, 403.1f, 404.f, 404.1f, 403.5f, 402.4f, 401.f, 392.5f, 380.4f, 365.3f, 348.6f, 332.f, 317.6f, 304.9f, 293.7f, 274.4f, 258.3f, 244.7f, 232.9f, 222.5f, 213.2f, 205.f, 197.5f, 190.7f, 184.4f, 178.7f, 173.4f, 168.4f, 163.9f}; -static const G4double e49[78] = { 46.69, 57.18, 66.06, 73.91, 81.04, 93.75, 105, 115.2, 124.7, 133.5, 141.8, 149.6, 167.8, 184.3, 199.6, 213.8, 227.3, 240, 252.1, 263.8, 285.7, 306.2, 325.4, 343.6, 361, 377.5, 393.4, 408.7, 423.3, 437.5, 451.2, 464.5, 477.3, 489.8, 547, 597.3, 641.7, 681.2, 716.3, 747.6, 775.5, 800.2, 841.5, 873.5, 897.8, 915.8, 928.6, 937.1, 940, 938.4, 933.8, 927, 918.6, 909.2, 899.1, 888.5, 833.7, 781.8, 735.1, 693.7, 657.1, 624.6, 595.5, 569.4, 524.5, 487.2, 455.6, 428.5, 404.9, 383.9, 365.2, 348.6, 333.8, 320.5, 308.3, 297.2, 287, 277.8 }; +static const G4float e49[78] = { 46.69f, 57.18f, 66.06f, 73.91f, 81.04f, 93.75f, 105.f, 115.2f, 124.7f, 133.5f, 141.8f, 149.6f, 167.8f, 184.3f, 199.6f, 213.8f, 227.3f, 240.f, 252.1f, 263.8f, 285.7f, 306.2f, 325.4f, 343.6f, 361.f, 377.5f, 393.4f, 408.7f, 423.3f, 437.5f, 451.2f, 464.5f, 477.3f, 489.8f, 547.f, 597.3f, 641.7f, 681.2f, 716.3f, 747.6f, 775.5f, 800.2f, 841.5f, 873.5f, 897.8f, 915.8f, 928.6f, 937.1f, 940.f, 938.4f, 933.8f, 927.f, 918.6f, 909.2f, 899.1f, 888.5f, 833.7f, 781.8f, 735.1f, 693.7f, 657.1f, 624.6f, 595.5f, 569.4f, 524.5f, 487.2f, 455.6f, 428.5f, 404.9f, 383.9f, 365.2f, 348.6f, 333.8f, 320.5f, 308.3f, 297.2f, 287.f, 277.8f}; -static const G4double e50[78] = { 192.4, 229.8, 260.8, 287.8, 312, 354.4, 391.4, 424.6, 454.8, 482.8, 509, 533.7, 590, 640.5, 686.6, 729.3, 769.2, 806.7, 842.2, 876, 939.2, 997.5, 1052, 1103, 1151, 1197, 1240, 1281, 1321, 1359, 1395, 1430, 1464, 1497, 1644, 1769, 1878, 1971, 2053, 2123, 2184, 2236, 2319, 2377, 2414, 2436, 2445, 2443, 2433, 2417, 2396, 2371, 2343, 2314, 2283, 2251, 2091, 1936, 1791, 1657, 1537, 1435, 1349, 1273, 1148, 1047, 964.8, 895.9, 837.3, 786.7, 742.4, 703.5, 668.8, 637.7, 609.7, 584.3, 561.2, 540 }; +static const G4float e50[78] = { 192.4f, 229.8f, 260.8f, 287.8f, 312.f, 354.4f, 391.4f, 424.6f, 454.8f, 482.8f, 509.f, 533.7f, 590.f, 640.5f, 686.6f, 729.3f, 769.2f, 806.7f, 842.2f, 876.f, 939.2f, 997.5f, 1052.f, 1103.f, 1151.f, 1197.f, 1240.f, 1281.f, 1321.f, 1359.f, 1395.f, 1430.f, 1464.f, 1497.f, 1644.f, 1769.f, 1878.f, 1971.f, 2053.f, 2123.f, 2184.f, 2236.f, 2319.f, 2377.f, 2414.f, 2436.f, 2445.f, 2443.f, 2433.f, 2417.f, 2396.f, 2371.f, 2343.f, 2314.f, 2283.f, 2251.f, 2091.f, 1936.f, 1791.f, 1657.f, 1537.f, 1435.f, 1349.f, 1273.f, 1148.f, 1047.f, 964.8f, 895.9f, 837.3f, 786.7f, 742.4f, 703.5f, 668.8f, 637.7f, 609.7f, 584.3f, 561.2f, 540.f}; -static const G4double e51[78] = { 146.3, 178.1, 204.7, 228.1, 249.2, 286.4, 319.1, 348.5, 375.5, 400.6, 424.1, 446.2, 497, 542.8, 584.7, 623.5, 659.9, 694.2, 726.6, 757.6, 815.5, 869.1, 919, 965.9, 1010, 1052, 1092, 1130, 1167, 1202, 1235, 1268, 1299, 1329, 1465, 1581, 1681, 1768, 1843, 1908, 1965, 2013, 2090, 2144, 2180, 2201, 2210, 2209, 2202, 2188, 2170, 2149, 2125, 2099, 2072, 2044, 1912, 1785, 1661, 1543, 1433, 1340, 1261, 1191, 1076, 982.4, 906, 842, 787.5, 740.5, 699.2, 662.9, 630.5, 601.5, 575.3, 551.6, 529.9, 510.1 }; +static const G4float e51[78] = { 146.3f, 178.1f, 204.7f, 228.1f, 249.2f, 286.4f, 319.1f, 348.5f, 375.5f, 400.6f, 424.1f, 446.2f, 497.f, 542.8f, 584.7f, 623.5f, 659.9f, 694.2f, 726.6f, 757.6f, 815.5f, 869.1f, 919.f, 965.9f, 1010.f, 1052.f, 1092.f, 1130.f, 1167.f, 1202.f, 1235.f, 1268.f, 1299.f, 1329.f, 1465.f, 1581.f, 1681.f, 1768.f, 1843.f, 1908.f, 1965.f, 2013.f, 2090.f, 2144.f, 2180.f, 2201.f, 2210.f, 2209.f, 2202.f, 2188.f, 2170.f, 2149.f, 2125.f, 2099.f, 2072.f, 2044.f, 1912.f, 1785.f, 1661.f, 1543.f, 1433.f, 1340.f, 1261.f, 1191.f, 1076.f, 982.4f, 906.f, 842.f, 787.5f, 740.5f, 699.2f, 662.9f, 630.5f, 601.5f, 575.3f, 551.6f, 529.9f, 510.1f}; -static const G4double e52[78] = { 168.2, 205.8, 237.5, 265.4, 290.7, 335.4, 374.8, 410.5, 443.2, 473.7, 502.3, 529.3, 591.4, 647.6, 699.1, 747.1, 792.1, 834.6, 874.9, 913.5, 985.9, 1053, 1116, 1175, 1232, 1285, 1336, 1385, 1432, 1478, 1521, 1564, 1604, 1644, 1825, 1983, 2122, 2246, 2355, 2453, 2539, 2615, 2740, 2833, 2899, 2940, 2962, 2967, 2958, 2938, 2908, 2871, 2829, 2782, 2732, 2681, 2418, 2183, 1987, 1826, 1691, 1577, 1480, 1396, 1257, 1145, 1053, 977.1, 912.4, 856.5, 807.8, 764.9, 726.7, 692.6, 661.8, 633.9, 608.6, 585.4 }; +static const G4float e52[78] = { 168.2f, 205.8f, 237.5f, 265.4f, 290.7f, 335.4f, 374.8f, 410.5f, 443.2f, 473.7f, 502.3f, 529.3f, 591.4f, 647.6f, 699.1f, 747.1f, 792.1f, 834.6f, 874.9f, 913.5f, 985.9f, 1053.f, 1116.f, 1175.f, 1232.f, 1285.f, 1336.f, 1385.f, 1432.f, 1478.f, 1521.f, 1564.f, 1604.f, 1644.f, 1825.f, 1983.f, 2122.f, 2246.f, 2355.f, 2453.f, 2539.f, 2615.f, 2740.f, 2833.f, 2899.f, 2940.f, 2962.f, 2967.f, 2958.f, 2938.f, 2908.f, 2871.f, 2829.f, 2782.f, 2732.f, 2681.f, 2418.f, 2183.f, 1987.f, 1826.f, 1691.f, 1577.f, 1480.f, 1396.f, 1257.f, 1145.f, 1053.f, 977.1f, 912.4f, 856.5f, 807.8f, 764.9f, 726.7f, 692.6f, 661.8f, 633.9f, 608.6f, 585.4f}; -static const G4double e53[78] = { 163.2, 195.3, 221.8, 244.9, 265.6, 301.9, 333.5, 361.8, 387.6, 411.5, 433.8, 454.8, 502.7, 545.7, 584.8, 621, 654.8, 686.6, 716.7, 745.3, 798.7, 847.9, 893.8, 936.8, 977.4, 1016, 1052, 1087, 1121, 1153, 1183, 1213, 1241, 1269, 1393, 1500, 1593, 1673, 1744, 1806, 1860, 1908, 1985, 2042, 2083, 2110, 2126, 2133, 2133, 2126, 2115, 2100, 2082, 2061, 2038, 2014, 1874, 1731, 1599, 1482, 1379, 1290, 1215, 1148, 1038, 948.5, 875.3, 813.8, 761.5, 716.3, 676.6, 641.6, 610.5, 582.5, 557.3, 534.4, 513.6, 494.5 }; +static const G4float e53[78] = { 163.2f, 195.3f, 221.8f, 244.9f, 265.6f, 301.9f, 333.5f, 361.8f, 387.6f, 411.5f, 433.8f, 454.8f, 502.7f, 545.7f, 584.8f, 621.f, 654.8f, 686.6f, 716.7f, 745.3f, 798.7f, 847.9f, 893.8f, 936.8f, 977.4f, 1016.f, 1052.f, 1087.f, 1121.f, 1153.f, 1183.f, 1213.f, 1241.f, 1269.f, 1393.f, 1500.f, 1593.f, 1673.f, 1744.f, 1806.f, 1860.f, 1908.f, 1985.f, 2042.f, 2083.f, 2110.f, 2126.f, 2133.f, 2133.f, 2126.f, 2115.f, 2100.f, 2082.f, 2061.f, 2038.f, 2014.f, 1874.f, 1731.f, 1599.f, 1482.f, 1379.f, 1290.f, 1215.f, 1148.f, 1038.f, 948.5f, 875.3f, 813.8f, 761.5f, 716.3f, 676.6f, 641.6f, 610.5f, 582.5f, 557.3f, 534.4f, 513.6f, 494.5f}; -static const G4double e54[78] = { 118.7, 146.6, 170.3, 191.4, 210.4, 244.5, 274.7, 302.1, 327.3, 350.9, 373.1, 394.2, 442.7, 486.8, 527.4, 565.2, 600.9, 634.6, 666.7, 697.4, 755.1, 808.9, 859.3, 906.9, 952, 995, 1036, 1075, 1113, 1150, 1185, 1219, 1252, 1283, 1428, 1554, 1665, 1762, 1848, 1923, 1990, 2049, 2144, 2216, 2266, 2300, 2320, 2328, 2327, 2318, 2302, 2282, 2259, 2232, 2203, 2173, 2008, 1847, 1702, 1574, 1464, 1369, 1288, 1217, 1099, 1004, 925.6, 860.1, 804.4, 756.3, 714.1, 676.9, 643.8, 614.2, 587.4, 563.2, 541.1, 520.8 }; +static const G4float e54[78] = { 118.7f, 146.6f, 170.3f, 191.4f, 210.4f, 244.5f, 274.7f, 302.1f, 327.3f, 350.9f, 373.1f, 394.2f, 442.7f, 486.8f, 527.4f, 565.2f, 600.9f, 634.6f, 666.7f, 697.4f, 755.1f, 808.9f, 859.3f, 906.9f, 952.f, 995.f, 1036.f, 1075.f, 1113.f, 1150.f, 1185.f, 1219.f, 1252.f, 1283.f, 1428.f, 1554.f, 1665.f, 1762.f, 1848.f, 1923.f, 1990.f, 2049.f, 2144.f, 2216.f, 2266.f, 2300.f, 2320.f, 2328.f, 2327.f, 2318.f, 2302.f, 2282.f, 2259.f, 2232.f, 2203.f, 2173.f, 2008.f, 1847.f, 1702.f, 1574.f, 1464.f, 1369.f, 1288.f, 1217.f, 1099.f, 1004.f, 925.6f, 860.1f, 804.4f, 756.3f, 714.1f, 676.9f, 643.8f, 614.2f, 587.4f, 563.2f, 541.1f, 520.8f}; -static const G4double e55[78] = { 193.7, 232.8, 265.4, 293.9, 319.6, 365, 404.8, 440.6, 473.4, 503.9, 532.5, 559.6, 621.6, 677.5, 728.8, 776.5, 821.2, 863.4, 903.5, 941.8, 1014, 1080, 1142, 1201, 1257, 1309, 1360, 1408, 1454, 1499, 1541, 1583, 1622, 1661, 1836, 1986, 2117, 2231, 2331, 2417, 2492, 2557, 2660, 2732, 2779, 2806, 2817, 2814, 2801, 2780, 2752, 2720, 2684, 2646, 2606, 2565, 2359, 2165, 1991, 1836, 1700, 1585, 1488, 1403, 1263, 1150, 1058, 981.3, 916.1, 860, 810.9, 767.8, 729.5, 695.1, 664.3, 636.2, 610.8, 587.5 }; +static const G4float e55[78] = { 193.7f, 232.8f, 265.4f, 293.9f, 319.6f, 365.f, 404.8f, 440.6f, 473.4f, 503.9f, 532.5f, 559.6f, 621.6f, 677.5f, 728.8f, 776.5f, 821.2f, 863.4f, 903.5f, 941.8f, 1014.f, 1080.f, 1142.f, 1201.f, 1257.f, 1309.f, 1360.f, 1408.f, 1454.f, 1499.f, 1541.f, 1583.f, 1622.f, 1661.f, 1836.f, 1986.f, 2117.f, 2231.f, 2331.f, 2417.f, 2492.f, 2557.f, 2660.f, 2732.f, 2779.f, 2806.f, 2817.f, 2814.f, 2801.f, 2780.f, 2752.f, 2720.f, 2684.f, 2646.f, 2606.f, 2565.f, 2359.f, 2165.f, 1991.f, 1836.f, 1700.f, 1585.f, 1488.f, 1403.f, 1263.f, 1150.f, 1058.f, 981.3f, 916.1f, 860.f, 810.9f, 767.8f, 729.5f, 695.1f, 664.3f, 636.2f, 610.8f, 587.5f}; -static const G4double e56[78] = { 153, 187.5, 216.6, 242.2, 265.3, 306.5, 342.7, 375.5, 405.6, 433.6, 460, 484.9, 542.1, 593.8, 641.3, 685.4, 726.9, 766, 803.1, 838.5, 905, 966.6, 1024, 1078, 1130, 1178, 1225, 1269, 1312, 1352, 1392, 1429, 1466, 1501, 1661, 1797, 1915, 2017, 2106, 2183, 2249, 2305, 2394, 2454, 2492, 2511, 2516, 2509, 2494, 2471, 2443, 2410, 2376, 2339, 2301, 2262, 2070, 1895, 1742, 1609, 1493, 1395, 1312, 1239, 1119, 1021, 941.4, 874.6, 817.8, 768.7, 725.7, 687.9, 654.1, 623.9, 596.6, 571.9, 549.4, 528.7 }; +static const G4float e56[78] = { 153.f, 187.5f, 216.6f, 242.2f, 265.3f, 306.5f, 342.7f, 375.5f, 405.6f, 433.6f, 460.f, 484.9f, 542.1f, 593.8f, 641.3f, 685.4f, 726.9f, 766.f, 803.1f, 838.5f, 905.f, 966.6f, 1024.f, 1078.f, 1130.f, 1178.f, 1225.f, 1269.f, 1312.f, 1352.f, 1392.f, 1429.f, 1466.f, 1501.f, 1661.f, 1797.f, 1915.f, 2017.f, 2106.f, 2183.f, 2249.f, 2305.f, 2394.f, 2454.f, 2492.f, 2511.f, 2516.f, 2509.f, 2494.f, 2471.f, 2443.f, 2410.f, 2376.f, 2339.f, 2301.f, 2262.f, 2070.f, 1895.f, 1742.f, 1609.f, 1493.f, 1395.f, 1312.f, 1239.f, 1119.f, 1021.f, 941.4f, 874.6f, 817.8f, 768.7f, 725.7f, 687.9f, 654.1f, 623.9f, 596.6f, 571.9f, 549.4f, 528.7f}; -static const G4double e57[78] = { 82.7, 99.97, 114.4, 127.1, 138.4, 158.5, 176.2, 192, 206.5, 220, 232.6, 244.5, 271.9, 296.4, 319, 339.8, 359.4, 377.8, 395.3, 412, 443.3, 472.2, 499.3, 524.7, 548.8, 571.7, 593.6, 614.5, 634.6, 653.9, 672.5, 690.4, 707.8, 724.6, 801.6, 868.9, 928.6, 981.9, 1030, 1073, 1112, 1148, 1209, 1260, 1301, 1334, 1361, 1382, 1397, 1408, 1415, 1419, 1420, 1418, 1414, 1409, 1399, 1373, 1319, 1246, 1165, 1095, 1034, 979.4, 887.4, 813.7, 752.5, 700.8, 656.5, 618.1, 584.5, 554.8, 528.3, 504.6, 483, 463.5, 445.6, 429.3 }; +static const G4float e57[78] = { 82.7f, 99.97f, 114.4f, 127.1f, 138.4f, 158.5f, 176.2f, 192.f, 206.5f, 220.f, 232.6f, 244.5f, 271.9f, 296.4f, 319.f, 339.8f, 359.4f, 377.8f, 395.3f, 412.f, 443.3f, 472.2f, 499.3f, 524.7f, 548.8f, 571.7f, 593.6f, 614.5f, 634.6f, 653.9f, 672.5f, 690.4f, 707.8f, 724.6f, 801.6f, 868.9f, 928.6f, 981.9f, 1030.f, 1073.f, 1112.f, 1148.f, 1209.f, 1260.f, 1301.f, 1334.f, 1361.f, 1382.f, 1397.f, 1408.f, 1415.f, 1419.f, 1420.f, 1418.f, 1414.f, 1409.f, 1399.f, 1373.f, 1319.f, 1246.f, 1165.f, 1095.f, 1034.f, 979.4f, 887.4f, 813.7f, 752.5f, 700.8f, 656.5f, 618.1f, 584.5f, 554.8f, 528.3f, 504.6f, 483.f, 463.5f, 445.6f, 429.3f}; -static const G4double e58[78] = { 94.27, 114.4, 131.3, 146.3, 159.9, 184, 205.5, 224.9, 242.9, 259.7, 275.5, 290.5, 325.3, 357, 386.3, 413.7, 439.5, 464.1, 487.6, 510.1, 552.6, 592.4, 629.9, 665.5, 699.4, 731.8, 762.9, 792.9, 821.8, 849.7, 876.7, 902.9, 928.2, 952.9, 1067, 1167, 1255, 1335, 1405, 1468, 1525, 1574, 1657, 1719, 1764, 1795, 1814, 1823, 1824, 1818, 1807, 1792, 1774, 1753, 1731, 1708, 1591, 1482, 1385, 1299, 1222, 1153, 1092, 1037, 941.7, 862.4, 795.8, 739.8, 692.3, 651.2, 615.4, 583.7, 555.6, 530.3, 507.5, 486.9, 468, 450.8 }; +static const G4float e58[78] = { 94.27f, 114.4f, 131.3f, 146.3f, 159.9f, 184.f, 205.5f, 224.9f, 242.9f, 259.7f, 275.5f, 290.5f, 325.3f, 357.f, 386.3f, 413.7f, 439.5f, 464.1f, 487.6f, 510.1f, 552.6f, 592.4f, 629.9f, 665.5f, 699.4f, 731.8f, 762.9f, 792.9f, 821.8f, 849.7f, 876.7f, 902.9f, 928.2f, 952.9f, 1067.f, 1167.f, 1255.f, 1335.f, 1405.f, 1468.f, 1525.f, 1574.f, 1657.f, 1719.f, 1764.f, 1795.f, 1814.f, 1823.f, 1824.f, 1818.f, 1807.f, 1792.f, 1774.f, 1753.f, 1731.f, 1708.f, 1591.f, 1482.f, 1385.f, 1299.f, 1222.f, 1153.f, 1092.f, 1037.f, 941.7f, 862.4f, 795.8f, 739.8f, 692.3f, 651.2f, 615.4f, 583.7f, 555.6f, 530.3f, 507.5f, 486.9f, 468.f, 450.8f}; -static const G4double e59[78] = { 194.5, 234.7, 268.4, 298, 324.7, 372, 413.6, 451.2, 485.8, 518, 548.2, 576.8, 642.6, 702.2, 756.9, 808, 855.9, 901.2, 944.4, 985.6, 1063, 1135, 1203, 1267, 1327, 1385, 1440, 1492, 1543, 1592, 1639, 1684, 1728, 1770, 1964, 2131, 2277, 2404, 2516, 2613, 2698, 2771, 2887, 2969, 3022, 3053, 3065, 3061, 3046, 3021, 2990, 2953, 2912, 2868, 2822, 2775, 2564, 2372, 2191, 2022, 1868, 1739, 1629, 1534, 1377, 1252, 1150, 1065, 993, 931.1, 877.2, 829.9, 787.8, 750.2, 716.4, 685.8, 658, 632.5 }; +static const G4float e59[78] = { 194.5f, 234.7f, 268.4f, 298.f, 324.7f, 372.f, 413.6f, 451.2f, 485.8f, 518.f, 548.2f, 576.8f, 642.6f, 702.2f, 756.9f, 808.f, 855.9f, 901.2f, 944.4f, 985.6f, 1063.f, 1135.f, 1203.f, 1267.f, 1327.f, 1385.f, 1440.f, 1492.f, 1543.f, 1592.f, 1639.f, 1684.f, 1728.f, 1770.f, 1964.f, 2131.f, 2277.f, 2404.f, 2516.f, 2613.f, 2698.f, 2771.f, 2887.f, 2969.f, 3022.f, 3053.f, 3065.f, 3061.f, 3046.f, 3021.f, 2990.f, 2953.f, 2912.f, 2868.f, 2822.f, 2775.f, 2564.f, 2372.f, 2191.f, 2022.f, 1868.f, 1739.f, 1629.f, 1534.f, 1377.f, 1252.f, 1150.f, 1065.f, 993.f, 931.1f, 877.2f, 829.9f, 787.8f, 750.2f, 716.4f, 685.8f, 658.f, 632.5f}; -static const G4double e60[78] = { 14.45, 17.87, 20.78, 23.37, 25.71, 29.9, 33.61, 36.99, 40.1, 43.01, 45.75, 48.35, 54.36, 59.81, 64.84, 69.54, 73.97, 78.17, 82.17, 86, 93.22, 99.96, 106.3, 112.3, 118, 123.5, 128.7, 133.8, 138.7, 143.4, 147.9, 152.4, 156.7, 160.8, 180.3, 197.6, 213.3, 227.7, 240.9, 253, 264.3, 274.7, 293.2, 309, 322.4, 333.7, 343.1, 350.7, 356.8, 361.6, 365.1, 367.6, 369.1, 369.8, 369.9, 369.3, 364.7, 357, 347.3, 336.6, 325.5, 314.4, 303.6, 293.2, 274.3, 258.5, 245.1, 233.4, 223.1, 214, 205.8, 198.4, 191.6, 185.4, 179.7, 174.4, 169.5, 164.9 }; +static const G4float e60[78] = { 14.45f, 17.87f, 20.78f, 23.37f, 25.71f, 29.9f, 33.61f, 36.99f, 40.1f, 43.01f, 45.75f, 48.35f, 54.36f, 59.81f, 64.84f, 69.54f, 73.97f, 78.17f, 82.17f, 86.f, 93.22f, 99.96f, 106.3f, 112.3f, 118.f, 123.5f, 128.7f, 133.8f, 138.7f, 143.4f, 147.9f, 152.4f, 156.7f, 160.8f, 180.3f, 197.6f, 213.3f, 227.7f, 240.9f, 253.f, 264.3f, 274.7f, 293.2f, 309.f, 322.4f, 333.7f, 343.1f, 350.7f, 356.8f, 361.6f, 365.1f, 367.6f, 369.1f, 369.8f, 369.9f, 369.3f, 364.7f, 357.f, 347.3f, 336.6f, 325.5f, 314.4f, 303.6f, 293.2f, 274.3f, 258.5f, 245.1f, 233.4f, 223.1f, 214.f, 205.8f, 198.4f, 191.6f, 185.4f, 179.7f, 174.4f, 169.5f, 164.9f}; -static const G4double e61[78] = { 47.32, 61.63, 74.34, 85.98, 96.82, 116.8, 135.1, 152.1, 168.2, 183.4, 198.1, 212.1, 245.3, 276.1, 305.2, 332.7, 359.1, 384.4, 408.7, 432.2, 477, 519.3, 559.4, 597.5, 633.9, 668.6, 701.9, 733.7, 764.3, 793.5, 821.6, 848.5, 874.4, 899.1, 1008, 1097, 1168, 1225, 1270, 1307, 1336, 1359, 1390, 1408, 1416, 1417, 1413, 1405, 1395, 1383, 1370, 1356, 1341, 1326, 1310, 1295, 1218, 1146, 1081, 1023, 970.6, 923.9, 881.4, 842.4, 773.1, 713.1, 661.2, 617.4, 579.7, 547, 518.2, 492.7, 470, 449.5, 430.9, 414, 398.6, 384.4 }; +static const G4float e61[78] = { 47.32f, 61.63f, 74.34f, 85.98f, 96.82f, 116.8f, 135.1f, 152.1f, 168.2f, 183.4f, 198.1f, 212.1f, 245.3f, 276.1f, 305.2f, 332.7f, 359.1f, 384.4f, 408.7f, 432.2f, 477.f, 519.3f, 559.4f, 597.5f, 633.9f, 668.6f, 701.9f, 733.7f, 764.3f, 793.5f, 821.6f, 848.5f, 874.4f, 899.1f, 1008.f, 1097.f, 1168.f, 1225.f, 1270.f, 1307.f, 1336.f, 1359.f, 1390.f, 1408.f, 1416.f, 1417.f, 1413.f, 1405.f, 1395.f, 1383.f, 1370.f, 1356.f, 1341.f, 1326.f, 1310.f, 1295.f, 1218.f, 1146.f, 1081.f, 1023.f, 970.6f, 923.9f, 881.4f, 842.4f, 773.1f, 713.1f, 661.2f, 617.4f, 579.7f, 547.f, 518.2f, 492.7f, 470.f, 449.5f, 430.9f, 414.f, 398.6f, 384.4f}; -static const G4double e62[78] = { 68.9, 85.1, 98.85, 111, 122.1, 141.8, 159.3, 175.1, 189.8, 203.4, 216.3, 228.5, 256.6, 282.1, 305.7, 327.6, 348.3, 367.9, 386.5, 404.4, 437.9, 469.2, 498.5, 526.3, 552.6, 577.7, 601.7, 624.7, 646.9, 668.2, 688.8, 708.7, 728, 746.7, 832.2, 906.8, 972.6, 1031, 1083, 1129, 1170, 1207, 1268, 1315, 1351, 1377, 1396, 1409, 1417, 1421, 1421, 1419, 1414, 1406, 1397, 1387, 1349, 1301, 1237, 1163, 1087, 1021, 964, 913.7, 829.4, 762.2, 706.3, 659, 618.4, 583.3, 552.3, 524.9, 500.4, 478.4, 458.5, 440.4, 423.9, 408.7 }; +static const G4float e62[78] = { 68.9f, 85.1f, 98.85f, 111.f, 122.1f, 141.8f, 159.3f, 175.1f, 189.8f, 203.4f, 216.3f, 228.5f, 256.6f, 282.1f, 305.7f, 327.6f, 348.3f, 367.9f, 386.5f, 404.4f, 437.9f, 469.2f, 498.5f, 526.3f, 552.6f, 577.7f, 601.7f, 624.7f, 646.9f, 668.2f, 688.8f, 708.7f, 728.f, 746.7f, 832.2f, 906.8f, 972.6f, 1031.f, 1083.f, 1129.f, 1170.f, 1207.f, 1268.f, 1315.f, 1351.f, 1377.f, 1396.f, 1409.f, 1417.f, 1421.f, 1421.f, 1419.f, 1414.f, 1406.f, 1397.f, 1387.f, 1349.f, 1301.f, 1237.f, 1163.f, 1087.f, 1021.f, 964.f, 913.7f, 829.4f, 762.2f, 706.3f, 659.f, 618.4f, 583.3f, 552.3f, 524.9f, 500.4f, 478.4f, 458.5f, 440.4f, 423.9f, 408.7f}; -static const G4double e63[78] = { 192, 228.9, 259.4, 286, 309.7, 351.2, 387.4, 419.7, 449.2, 476.4, 501.9, 525.8, 580.4, 629.2, 673.8, 714.9, 753.3, 789.4, 823.5, 856, 916.5, 972.3, 1024, 1073, 1119, 1162, 1203, 1243, 1280, 1316, 1351, 1384, 1416, 1446, 1585, 1703, 1805, 1892, 1968, 2034, 2090, 2139, 2215, 2268, 2303, 2323, 2331, 2330, 2321, 2307, 2287, 2265, 2240, 2212, 2184, 2155, 1995, 1841, 1703, 1582, 1477, 1385, 1305, 1233, 1113, 1015, 936, 869.6, 813, 764.1, 721.3, 683.7, 650.1, 620, 592.9, 568.3, 545.9, 525.4 }; +static const G4float e63[78] = { 192.f, 228.9f, 259.4f, 286.f, 309.7f, 351.2f, 387.4f, 419.7f, 449.2f, 476.4f, 501.9f, 525.8f, 580.4f, 629.2f, 673.8f, 714.9f, 753.3f, 789.4f, 823.5f, 856.f, 916.5f, 972.3f, 1024.f, 1073.f, 1119.f, 1162.f, 1203.f, 1243.f, 1280.f, 1316.f, 1351.f, 1384.f, 1416.f, 1446.f, 1585.f, 1703.f, 1805.f, 1892.f, 1968.f, 2034.f, 2090.f, 2139.f, 2215.f, 2268.f, 2303.f, 2323.f, 2331.f, 2330.f, 2321.f, 2307.f, 2287.f, 2265.f, 2240.f, 2212.f, 2184.f, 2155.f, 1995.f, 1841.f, 1703.f, 1582.f, 1477.f, 1385.f, 1305.f, 1233.f, 1113.f, 1015.f, 936.f, 869.6f, 813.f, 764.1f, 721.3f, 683.7f, 650.1f, 620.f, 592.9f, 568.3f, 545.9f, 525.4f}; -static const G4double e64[78] = { 59.24, 72.81, 84.28, 94.41, 103.6, 119.9, 134.3, 147.4, 159.4, 170.6, 181.1, 191.1, 214, 234.7, 253.8, 271.6, 288.3, 304.1, 319.1, 333.5, 360.5, 385.5, 409, 431.2, 452.2, 472.2, 491.4, 509.7, 527.3, 544.3, 560.6, 576.4, 591.7, 606.5, 674.2, 733.1, 785, 831, 871.7, 907.9, 940, 968.3, 1015, 1051, 1077, 1095, 1106, 1112, 1114, 1112, 1107, 1100, 1092, 1082, 1071, 1059, 995.6, 933.7, 877.6, 827.9, 785.2, 747.8, 714.5, 684.4, 631.9, 587.1, 548.3, 514.3, 484.2, 457.3, 433.4, 412.5, 393.7, 376.7, 361.5, 347.6, 334.9, 323.2 }; +static const G4float e64[78] = { 59.24f, 72.81f, 84.28f, 94.41f, 103.6f, 119.9f, 134.3f, 147.4f, 159.4f, 170.6f, 181.1f, 191.1f, 214.f, 234.7f, 253.8f, 271.6f, 288.3f, 304.1f, 319.1f, 333.5f, 360.5f, 385.5f, 409.f, 431.2f, 452.2f, 472.2f, 491.4f, 509.7f, 527.3f, 544.3f, 560.6f, 576.4f, 591.7f, 606.5f, 674.2f, 733.1f, 785.f, 831.f, 871.7f, 907.9f, 940.f, 968.3f, 1015.f, 1051.f, 1077.f, 1095.f, 1106.f, 1112.f, 1114.f, 1112.f, 1107.f, 1100.f, 1092.f, 1082.f, 1071.f, 1059.f, 995.6f, 933.7f, 877.6f, 827.9f, 785.2f, 747.8f, 714.5f, 684.4f, 631.9f, 587.1f, 548.3f, 514.3f, 484.2f, 457.3f, 433.4f, 412.5f, 393.7f, 376.7f, 361.5f, 347.6f, 334.9f, 323.2f}; -static const G4double e65[78] = { 27.39, 33.96, 39.55, 44.52, 49.04, 57.11, 64.28, 70.8, 76.82, 82.45, 87.76, 92.79, 104.4, 115, 124.8, 133.9, 142.5, 150.6, 158.4, 165.8, 179.8, 192.9, 205.2, 216.8, 227.8, 238.4, 248.4, 258.1, 267.4, 276.4, 285.1, 293.5, 301.6, 309.5, 345.7, 377.3, 405.3, 430.1, 452.1, 471.8, 489.3, 504.8, 530.7, 550.9, 566.3, 577.9, 586.3, 592.2, 596.1, 598.4, 599.3, 599.1, 598.1, 596.4, 594.2, 591.5, 573.8, 552.8, 531.2, 510.1, 488.3, 467, 447, 428.6, 396.3, 369.4, 346.8, 327.7, 311.4, 297.1, 283.9, 271.9, 260.8, 250.6, 241.7, 233.6, 226, 218.9 }; +static const G4float e65[78] = { 27.39f, 33.96f, 39.55f, 44.52f, 49.04f, 57.11f, 64.28f, 70.8f, 76.82f, 82.45f, 87.76f, 92.79f, 104.4f, 115.f, 124.8f, 133.9f, 142.5f, 150.6f, 158.4f, 165.8f, 179.8f, 192.9f, 205.2f, 216.8f, 227.8f, 238.4f, 248.4f, 258.1f, 267.4f, 276.4f, 285.1f, 293.5f, 301.6f, 309.5f, 345.7f, 377.3f, 405.3f, 430.1f, 452.1f, 471.8f, 489.3f, 504.8f, 530.7f, 550.9f, 566.3f, 577.9f, 586.3f, 592.2f, 596.1f, 598.4f, 599.3f, 599.1f, 598.1f, 596.4f, 594.2f, 591.5f, 573.8f, 552.8f, 531.2f, 510.1f, 488.3f, 467.f, 447.f, 428.6f, 396.3f, 369.4f, 346.8f, 327.7f, 311.4f, 297.1f, 283.9f, 271.9f, 260.8f, 250.6f, 241.7f, 233.6f, 226.f, 218.9f}; -static const G4double e66[78] = { 135.1, 165.6, 191.3, 213.9, 234.4, 270.7, 302.8, 331.8, 358.4, 383.2, 406.5, 428.6, 479.3, 525.2, 567.4, 606.7, 643.6, 678.5, 711.7, 743.4, 803.1, 858.6, 910.7, 960.1, 1007, 1052, 1095, 1136, 1176, 1214, 1251, 1287, 1322, 1356, 1514, 1655, 1783, 1899, 2006, 2104, 2193, 2275, 2418, 2535, 2626, 2693, 2737, 2760, 2764, 2752, 2728, 2695, 2655, 2612, 2566, 2519, 2278, 2060, 1878, 1727, 1602, 1494, 1403, 1323, 1191, 1085, 998.2, 926, 864.6, 811.7, 765.6, 724.9, 688.8, 656.5, 627.4, 601.1, 577.1, 555.2 }; +static const G4float e66[78] = { 135.1f, 165.6f, 191.3f, 213.9f, 234.4f, 270.7f, 302.8f, 331.8f, 358.4f, 383.2f, 406.5f, 428.6f, 479.3f, 525.2f, 567.4f, 606.7f, 643.6f, 678.5f, 711.7f, 743.4f, 803.1f, 858.6f, 910.7f, 960.1f, 1007.f, 1052.f, 1095.f, 1136.f, 1176.f, 1214.f, 1251.f, 1287.f, 1322.f, 1356.f, 1514.f, 1655.f, 1783.f, 1899.f, 2006.f, 2104.f, 2193.f, 2275.f, 2418.f, 2535.f, 2626.f, 2693.f, 2737.f, 2760.f, 2764.f, 2752.f, 2728.f, 2695.f, 2655.f, 2612.f, 2566.f, 2519.f, 2278.f, 2060.f, 1878.f, 1727.f, 1602.f, 1494.f, 1403.f, 1323.f, 1191.f, 1085.f, 998.2f, 926.f, 864.6f, 811.7f, 765.6f, 724.9f, 688.8f, 656.5f, 627.4f, 601.1f, 577.1f, 555.2f}; -static const G4double e67[78] = { 149.7, 181.5, 208.2, 231.7, 252.8, 290.4, 323.5, 353.4, 380.9, 406.5, 430.5, 453.3, 505.7, 553, 596.6, 637.2, 675.4, 711.5, 745.8, 778.6, 840.4, 897.8, 951.6, 1003, 1051, 1097, 1141, 1183, 1224, 1263, 1301, 1337, 1372, 1407, 1563, 1701, 1822, 1929, 2024, 2109, 2185, 2252, 2362, 2446, 2507, 2549, 2573, 2583, 2581, 2569, 2550, 2524, 2494, 2461, 2426, 2389, 2211, 2043, 1887, 1744, 1616, 1507, 1415, 1334, 1201, 1094, 1006, 933.3, 871.4, 818.1, 771.5, 730.5, 694.1, 661.5, 632.1, 605.6, 581.4, 559.3 }; +static const G4float e67[78] = { 149.7f, 181.5f, 208.2f, 231.7f, 252.8f, 290.4f, 323.5f, 353.4f, 380.9f, 406.5f, 430.5f, 453.3f, 505.7f, 553.f, 596.6f, 637.2f, 675.4f, 711.5f, 745.8f, 778.6f, 840.4f, 897.8f, 951.6f, 1003.f, 1051.f, 1097.f, 1141.f, 1183.f, 1224.f, 1263.f, 1301.f, 1337.f, 1372.f, 1407.f, 1563.f, 1701.f, 1822.f, 1929.f, 2024.f, 2109.f, 2185.f, 2252.f, 2362.f, 2446.f, 2507.f, 2549.f, 2573.f, 2583.f, 2581.f, 2569.f, 2550.f, 2524.f, 2494.f, 2461.f, 2426.f, 2389.f, 2211.f, 2043.f, 1887.f, 1744.f, 1616.f, 1507.f, 1415.f, 1334.f, 1201.f, 1094.f, 1006.f, 933.3f, 871.4f, 818.1f, 771.5f, 730.5f, 694.1f, 661.5f, 632.1f, 605.6f, 581.4f, 559.3f}; -static const G4double e68[78] = { 192.5, 230, 261, 288.1, 312.3, 354.9, 392, 425.3, 455.6, 483.7, 510, 534.8, 591.3, 642.1, 688.4, 731.3, 771.4, 809.1, 844.8, 878.8, 942.4, 1001, 1056, 1107, 1155, 1201, 1245, 1287, 1327, 1365, 1401, 1437, 1471, 1504, 1652, 1779, 1888, 1983, 2065, 2136, 2197, 2250, 2333, 2392, 2430, 2452, 2461, 2459, 2449, 2433, 2411, 2386, 2358, 2328, 2296, 2264, 2109, 1960, 1817, 1683, 1560, 1456, 1368, 1291, 1163, 1060, 976.6, 906.6, 847.1, 795.7, 750.8, 711.3, 676.1, 644.6, 616.2, 590.5, 567, 545.6 }; +static const G4float e68[78] = { 192.5f, 230.f, 261.f, 288.1f, 312.3f, 354.9f, 392.f, 425.3f, 455.6f, 483.7f, 510.f, 534.8f, 591.3f, 642.1f, 688.4f, 731.3f, 771.4f, 809.1f, 844.8f, 878.8f, 942.4f, 1001.f, 1056.f, 1107.f, 1155.f, 1201.f, 1245.f, 1287.f, 1327.f, 1365.f, 1401.f, 1437.f, 1471.f, 1504.f, 1652.f, 1779.f, 1888.f, 1983.f, 2065.f, 2136.f, 2197.f, 2250.f, 2333.f, 2392.f, 2430.f, 2452.f, 2461.f, 2459.f, 2449.f, 2433.f, 2411.f, 2386.f, 2358.f, 2328.f, 2296.f, 2264.f, 2109.f, 1960.f, 1817.f, 1683.f, 1560.f, 1456.f, 1368.f, 1291.f, 1163.f, 1060.f, 976.6f, 906.6f, 847.1f, 795.7f, 750.8f, 711.3f, 676.1f, 644.6f, 616.2f, 590.5f, 567.f, 545.6f}; -static const G4double e69[78] = { 13.2, 16.72, 19.77, 22.52, 25.04, 29.61, 33.73, 37.51, 41.03, 44.35, 47.5, 50.51, 57.52, 63.96, 69.97, 75.62, 80.99, 86.11, 91.01, 95.73, 104.7, 113.1, 121.1, 128.7, 136, 143, 149.8, 156.3, 162.6, 168.8, 174.7, 180.5, 186.2, 191.7, 217.4, 240.5, 261.5, 280.8, 298.5, 314.8, 329.8, 343.7, 368, 388.4, 405.3, 419, 429.8, 438.1, 444.2, 448.4, 450.8, 451.8, 451.6, 450.3, 448.2, 445.4, 420, 390.1, 362.9, 339.6, 319.8, 303.1, 288.9, 276.7, 256.9, 241.7, 229.4, 218.6, 209.1, 200.6, 193, 186.1, 179.8, 174, 168.6, 163.7, 159.1, 154.8 }; +static const G4float e69[78] = { 13.2f, 16.72f, 19.77f, 22.52f, 25.04f, 29.61f, 33.73f, 37.51f, 41.03f, 44.35f, 47.5f, 50.51f, 57.52f, 63.96f, 69.97f, 75.62f, 80.99f, 86.11f, 91.01f, 95.73f, 104.7f, 113.1f, 121.1f, 128.7f, 136.f, 143.f, 149.8f, 156.3f, 162.6f, 168.8f, 174.7f, 180.5f, 186.2f, 191.7f, 217.4f, 240.5f, 261.5f, 280.8f, 298.5f, 314.8f, 329.8f, 343.7f, 368.f, 388.4f, 405.3f, 419.f, 429.8f, 438.1f, 444.2f, 448.4f, 450.8f, 451.8f, 451.6f, 450.3f, 448.2f, 445.4f, 420.f, 390.1f, 362.9f, 339.6f, 319.8f, 303.1f, 288.9f, 276.7f, 256.9f, 241.7f, 229.4f, 218.6f, 209.1f, 200.6f, 193.f, 186.1f, 179.8f, 174.f, 168.6f, 163.7f, 159.1f, 154.8f}; -static const G4double e70[78] = { 20.75, 25.23, 28.99, 32.29, 35.26, 40.51, 45.11, 49.26, 53.06, 56.59, 59.9, 63.02, 70.18, 76.63, 82.54, 88.02, 93.16, 98.01, 102.6, 107, 115.2, 122.9, 130, 136.7, 143.1, 149.2, 155, 160.6, 165.9, 171.1, 176.1, 180.9, 185.6, 190.1, 211.1, 229.6, 246.2, 261.3, 275.1, 287.7, 299.3, 310, 328.8, 344.7, 358.1, 369.2, 378.3, 385.6, 391.3, 395.6, 398.7, 400.6, 401.7, 401.9, 401.4, 400.4, 389.5, 374.8, 359.5, 344.8, 331, 318.3, 306.5, 295.7, 276.7, 260.8, 247.3, 235.5, 225.2, 216.1, 207.8, 200.3, 193.5, 187.3, 181.5, 176.2, 171.3, 166.7 }; +static const G4float e70[78] = { 20.75f, 25.23f, 28.99f, 32.29f, 35.26f, 40.51f, 45.11f, 49.26f, 53.06f, 56.59f, 59.9f, 63.02f, 70.18f, 76.63f, 82.54f, 88.02f, 93.16f, 98.01f, 102.6f, 107.f, 115.2f, 122.9f, 130.f, 136.7f, 143.1f, 149.2f, 155.f, 160.6f, 165.9f, 171.1f, 176.1f, 180.9f, 185.6f, 190.1f, 211.1f, 229.6f, 246.2f, 261.3f, 275.1f, 287.7f, 299.3f, 310.f, 328.8f, 344.7f, 358.1f, 369.2f, 378.3f, 385.6f, 391.3f, 395.6f, 398.7f, 400.6f, 401.7f, 401.9f, 401.4f, 400.4f, 389.5f, 374.8f, 359.5f, 344.8f, 331.f, 318.3f, 306.5f, 295.7f, 276.7f, 260.8f, 247.3f, 235.5f, 225.2f, 216.1f, 207.8f, 200.3f, 193.5f, 187.3f, 181.5f, 176.2f, 171.3f, 166.7f}; -static const G4double e71[78] = { 98.91, 122.7, 143.1, 161.1, 177.5, 206.9, 233, 256.8, 278.8, 299.3, 318.6, 337, 379.5, 418.1, 453.8, 487.1, 518.6, 548.3, 576.7, 603.9, 655.2, 703, 748, 790.5, 831, 869.6, 906.6, 942.2, 976.4, 1009, 1041, 1072, 1102, 1131, 1265, 1383, 1488, 1582, 1666, 1743, 1811, 1873, 1978, 2062, 2128, 2178, 2215, 2240, 2255, 2262, 2262, 2256, 2245, 2230, 2211, 2190, 2050, 1896, 1752, 1624, 1511, 1414, 1329, 1255, 1132, 1034, 952.7, 884.8, 826.9, 777.1, 733.4, 694.9, 660.7, 630.1, 602.5, 577.6, 554.8, 534 }; +static const G4float e71[78] = { 98.91f, 122.7f, 143.1f, 161.1f, 177.5f, 206.9f, 233.f, 256.8f, 278.8f, 299.3f, 318.6f, 337.f, 379.5f, 418.1f, 453.8f, 487.1f, 518.6f, 548.3f, 576.7f, 603.9f, 655.2f, 703.f, 748.f, 790.5f, 831.f, 869.6f, 906.6f, 942.2f, 976.4f, 1009.f, 1041.f, 1072.f, 1102.f, 1131.f, 1265.f, 1383.f, 1488.f, 1582.f, 1666.f, 1743.f, 1811.f, 1873.f, 1978.f, 2062.f, 2128.f, 2178.f, 2215.f, 2240.f, 2255.f, 2262.f, 2262.f, 2256.f, 2245.f, 2230.f, 2211.f, 2190.f, 2050.f, 1896.f, 1752.f, 1624.f, 1511.f, 1414.f, 1329.f, 1255.f, 1132.f, 1034.f, 952.7f, 884.8f, 826.9f, 777.1f, 733.4f, 694.9f, 660.7f, 630.1f, 602.5f, 577.6f, 554.8f, 534.f}; -static const G4double e72[78] = { 126.3, 154.7, 178.7, 199.8, 218.8, 252.7, 282.5, 309.5, 334.3, 357.3, 379, 399.5, 446.7, 489.3, 528.5, 565, 599.2, 631.6, 662.4, 691.9, 747.3, 798.8, 847.2, 892.9, 936.3, 977.8, 1018, 1056, 1093, 1128, 1163, 1196, 1228, 1260, 1405, 1535, 1652, 1758, 1855, 1942, 2022, 2094, 2216, 2309, 2377, 2422, 2446, 2455, 2453, 2446, 2436, 2423, 2409, 2392, 2371, 2346, 2169, 1971, 1797, 1653, 1537, 1437, 1351, 1275, 1149, 1049, 965.8, 896.6, 837.6, 786.9, 742.5, 703.3, 668.6, 637.5, 609.5, 584.2, 561.1, 539.9 }; +static const G4float e72[78] = { 126.3f, 154.7f, 178.7f, 199.8f, 218.8f, 252.7f, 282.5f, 309.5f, 334.3f, 357.3f, 379.f, 399.5f, 446.7f, 489.3f, 528.5f, 565.f, 599.2f, 631.6f, 662.4f, 691.9f, 747.3f, 798.8f, 847.2f, 892.9f, 936.3f, 977.8f, 1018.f, 1056.f, 1093.f, 1128.f, 1163.f, 1196.f, 1228.f, 1260.f, 1405.f, 1535.f, 1652.f, 1758.f, 1855.f, 1942.f, 2022.f, 2094.f, 2216.f, 2309.f, 2377.f, 2422.f, 2446.f, 2455.f, 2453.f, 2446.f, 2436.f, 2423.f, 2409.f, 2392.f, 2371.f, 2346.f, 2169.f, 1971.f, 1797.f, 1653.f, 1537.f, 1437.f, 1351.f, 1275.f, 1149.f, 1049.f, 965.8f, 896.6f, 837.6f, 786.9f, 742.5f, 703.3f, 668.6f, 637.5f, 609.5f, 584.2f, 561.1f, 539.9f}; -static const G4double e73[78] = { 18.11, 23.3, 27.86, 31.99, 35.83, 42.84, 49.2, 55.1, 60.63, 65.87, 70.87, 75.65, 86.89, 97.3, 107.1, 116.3, 125.1, 133.5, 141.7, 149.5, 164.4, 178.6, 192, 204.9, 217.3, 229.2, 240.7, 251.8, 262.6, 273.1, 283.4, 293.3, 303, 312.5, 356.7, 396.5, 432.5, 465.2, 494.9, 521.8, 546.1, 567.9, 604.7, 633.2, 654.5, 669.3, 678.8, 683.6, 684.6, 682.5, 678, 671.7, 663.9, 655.1, 645.6, 635.6, 584.6, 538.7, 500.4, 468.8, 446.7, 430.5, 417.1, 405.3, 383.9, 364, 344.9, 326.8, 309.7, 294.6, 281.3, 269.5, 258.7, 248.8, 239.6, 231.1, 223.2, 216.2 }; +static const G4float e73[78] = { 18.11f, 23.3f, 27.86f, 31.99f, 35.83f, 42.84f, 49.2f, 55.1f, 60.63f, 65.87f, 70.87f, 75.65f, 86.89f, 97.3f, 107.1f, 116.3f, 125.1f, 133.5f, 141.7f, 149.5f, 164.4f, 178.6f, 192.f, 204.9f, 217.3f, 229.2f, 240.7f, 251.8f, 262.6f, 273.1f, 283.4f, 293.3f, 303.f, 312.5f, 356.7f, 396.5f, 432.5f, 465.2f, 494.9f, 521.8f, 546.1f, 567.9f, 604.7f, 633.2f, 654.5f, 669.3f, 678.8f, 683.6f, 684.6f, 682.5f, 678.f, 671.7f, 663.9f, 655.1f, 645.6f, 635.6f, 584.6f, 538.7f, 500.4f, 468.8f, 446.7f, 430.5f, 417.1f, 405.3f, 383.9f, 364.f, 344.9f, 326.8f, 309.7f, 294.6f, 281.3f, 269.5f, 258.7f, 248.8f, 239.6f, 231.1f, 223.2f, 216.2f}; if(0 == j) { AddData(e0, mat); } else if(1 == j) { AddData(e1, mat); } @@ -350,12 +350,10 @@ static const G4double e73[78] = { 18.11, 23.3, 27.86, 31.99, 35.83, 42.84, 49.2, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4ASTARStopping::AddData(const G4double* stop, const G4Material* mat) +void G4ASTARStopping::AddData(const G4float* stop, const G4Material* mat) { - static const G4double T0[78] = { 0.001, 0.0015, 0.002, 0.0025, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.0125, 0.015, 0.0175, 0.02, 0.0225, 0.025, 0.0275, 0.03, 0.035, 0.04, 0.045, 0.05, 0.055, 0.06, 0.065, 0.07, 0.075, 0.08, 0.085, 0.09, 0.095, 0.1, 0.125, 0.15, 0.175, 0.2, 0.225, 0.25, 0.275, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10. }; - - G4LPhysicsFreeVector* v = new G4LPhysicsFreeVector(78, T0[0]*CLHEP::MeV, T0[77]*CLHEP::MeV); - for(size_t i=0; i<78; ++i) { v->PutValues(i, T0[i]*CLHEP::MeV, stop[i]*fac); } + G4LPhysicsFreeVector* v = new G4LPhysicsFreeVector(78, T0[0], T0[77]); + for(size_t i=0; i<78; ++i) { v->PutValues(i, T0[i], ((G4double)stop[i])*fac); } v->SetSpline(true); v->FillSecondDerivatives(); materials.push_back(mat); diff --git a/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc b/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc index 5daf69c6e1..c231a0a91c 100644 --- a/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BetheBlochModel.cc 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4BetheBlochModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -78,10 +78,7 @@ G4BetheBlochModel::G4BetheBlochModel(const G4ParticleDefinition* p, particle(nullptr), tlimit(DBL_MAX), twoln10(2.0*G4Log(10.0)), - bg2lim(0.0169), - taulim(8.4146e-3), - isIon(false), - isInitialised(false) + isIon(false) { fParticleChange = nullptr; theElectron = G4Electron::Electron(); @@ -116,8 +113,7 @@ void G4BetheBlochModel::Initialise(const G4ParticleDefinition* p, // always false before the run SetDeexcitationFlag(false); - if(!isInitialised) { - isInitialised = true; + if(nullptr == fParticleChange) { fParticleChange = GetParticleChangeForLoss(); if(UseAngularGeneratorFlag() && !GetAngularDistribution()) { SetAngularDistribution(new G4DeltaAngle()); @@ -206,12 +202,6 @@ G4BetheBlochModel::ComputeCrossSectionPerElectron(const G4ParticleDefinition* p, // +term for spin=1/2 particle if( 0.0 < spin ) { cross += 0.5*(maxEnergy - cutEnergy)/energy2; } - // High order correction different for hadrons and ions - // nevetheless they are applied to reduce high energy transfers - // if(!isIon) - //cross += corr->FiniteSizeCorrectionXS(p,currentMaterial, - // kineticEnergy,cutEnergy); - cross *= twopi_mc2_rcl2*chargeSquare/beta2; } @@ -295,7 +285,7 @@ G4double G4BetheBlochModel::ComputeDEDXPerVolume(const G4Material* material, dedx += corr->HighOrderCorrections(p,material,kineticEnergy,cutEnergy); } - if (dedx < 0.0) { dedx = 0.0; } + dedx = std::max(dedx, 0.0); //G4cout << "E(MeV)= " << kineticEnergy/MeV << " dedx= " << dedx // << " " << material->GetName() << G4endl; diff --git a/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc b/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc index 0fb9ce9d0b..b0aa8ee56c 100644 --- a/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BetheHeitlerModel.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4BetheHeitlerModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,27 +66,13 @@ using namespace std; -static const G4double GammaEnergyLimit = 1.5*MeV; -static const G4double Egsmall=2.*MeV; -static const G4double - a0= 8.7842e+2*microbarn, a1=-1.9625e+3*microbarn, a2= 1.2949e+3*microbarn, - a3=-2.0028e+2*microbarn, a4= 1.2575e+1*microbarn, a5=-2.8333e-1*microbarn; - -static const G4double - b0=-1.0342e+1*microbarn, b1= 1.7692e+1*microbarn, b2=-8.2381 *microbarn, - b3= 1.3063 *microbarn, b4=-9.0815e-2*microbarn, b5= 2.3586e-3*microbarn; - -static const G4double - c0=-4.5263e+2*microbarn, c1= 1.1161e+3*microbarn, c2=-8.6749e+2*microbarn, - c3= 2.1773e+2*microbarn, c4=-2.0467e+1*microbarn, c5= 6.5372e-1*microbarn; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4BetheHeitlerModel::G4BetheHeitlerModel(const G4ParticleDefinition*, const G4String& nam) : G4VEmModel(nam) { - fParticleChange = 0; + fParticleChange = nullptr; theGamma = G4Gamma::Gamma(); thePositron = G4Positron::Positron(); theElectron = G4Electron::Electron(); @@ -131,6 +117,18 @@ G4BetheHeitlerModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double xSection = 0.0 ; if ( Z < 0.9 || GammaEnergy <= 2.0*electron_mass_c2 ) { return xSection; } + static const G4double GammaEnergyLimit = 1.5*MeV; + static const G4double + a0= 8.7842e+2*microbarn, a1=-1.9625e+3*microbarn, a2= 1.2949e+3*microbarn, + a3=-2.0028e+2*microbarn, a4= 1.2575e+1*microbarn, a5=-2.8333e-1*microbarn; + + static const G4double + b0=-1.0342e+1*microbarn, b1= 1.7692e+1*microbarn, b2=-8.2381 *microbarn, + b3= 1.3063 *microbarn, b4=-9.0815e-2*microbarn, b5= 2.3586e-3*microbarn; + + static const G4double + c0=-4.5263e+2*microbarn, c1= 1.1161e+3*microbarn, c2=-8.6749e+2*microbarn, + c3= 2.1773e+2*microbarn, c4=-2.0467e+1*microbarn, c5= 6.5372e-1*microbarn; G4double GammaEnergySave = GammaEnergy; if (GammaEnergy < GammaEnergyLimit) { GammaEnergy = GammaEnergyLimit; } @@ -150,7 +148,7 @@ G4BetheHeitlerModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, xSection *= X*X; } - if (xSection < 0.) { xSection = 0.; } + xSection = std::max(xSection, 0.); return xSection; } @@ -185,10 +183,12 @@ void G4BetheHeitlerModel::SampleSecondaries(std::vector* fve // do it fast if GammaEnergy < Egsmall // select randomly one element constituing the material - const G4Element* anElement = SelectRandomAtom(aMaterial, theGamma, GammaEnergy); + const G4Element* anElement = + SelectRandomAtom(aMaterial, theGamma, GammaEnergy); CLHEP::HepRandomEngine* rndmEngine = G4Random::getTheEngine(); + static const G4double Egsmall=2.*MeV; if (GammaEnergy < Egsmall) { epsil = epsil0 + (0.5-epsil0)*rndmEngine->flat(); diff --git a/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc b/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc index bd6307b48a..586da650c8 100644 --- a/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BraggIonModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4BraggIonModel.cc 95832 2016-02-26 11:12:31Z gcosmo $ // // ------------------------------------------------------------------- // @@ -84,8 +84,7 @@ G4BraggIonModel::G4BraggIonModel(const G4ParticleDefinition* p, currentMaterial(nullptr), iMolecula(-1), iASTAR(-1), - isIon(false), - isInitialised(false) + isIon(false) { SetHighEnergyLimit(2.0*MeV); @@ -119,8 +118,12 @@ void G4BraggIonModel::Initialise(const G4ParticleDefinition* p, // always false before the run SetDeexcitationFlag(false); - if(!isInitialised) { - isInitialised = true; + if(IsMaster()) { + if(nullptr == fASTAR) { fASTAR = new G4ASTARStopping(); } + if(particle->GetPDGMass() < GeV) { fASTAR->Initialise(); } + } + + if(nullptr == fParticleChange) { if(UseAngularGeneratorFlag() && !GetAngularDistribution()) { SetAngularDistribution(new G4DeltaAngle()); @@ -134,9 +137,7 @@ void G4BraggIonModel::Initialise(const G4ParticleDefinition* p, corr = G4LossTableManager::Instance()->EmCorrections(); fParticleChange = GetParticleChangeForLoss(); - if(!fASTAR) { fASTAR = new G4ASTARStopping(); } } - if(IsMaster() && particle->GetPDGMass() < GeV) { fASTAR->Initialise(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -262,8 +263,7 @@ G4double G4BraggIonModel::ComputeDEDXPerVolume(const G4Material* material, // now compute the total ionization loss - if (dedx < 0.0) dedx = 0.0 ; - + dedx = std::max(dedx, 0.0); dedx *= chargeSquare; /* G4cout << "Bragg: tkin(MeV) = " << tkin/MeV << " dedx(MeVxcm^2/g) = " @@ -431,37 +431,42 @@ G4double G4BraggIonModel::StoppingPower(const G4Material* material, G4double T = kineticEnergy*rateMassHe2p/MeV ; - static const G4double a[11][5] = { - {9.43672, 0.54398, 84.341, 1.3705, 57.422}, - {67.1503, 0.41409, 404.512, 148.97, 20.99}, - {5.11203, 0.453, 36.718, 50.6, 28.058}, - {61.793, 0.48445, 361.537, 57.889, 50.674}, - {7.83464, 0.49804, 160.452, 3.192, 0.71922}, - {19.729, 0.52153, 162.341, 58.35, 25.668}, - {26.4648, 0.50112, 188.913, 30.079, 16.509}, - {7.8655, 0.5205, 63.96, 51.32, 67.775}, - {8.8965, 0.5148, 339.36, 1.7205, 0.70423}, - {2.959, 0.53255, 34.247, 60.655, 15.153}, - {3.80133, 0.41590, 12.9966, 117.83, 242.28} }; + static const G4float a[11][5] = { + {9.43672f, 0.54398f, 84.341f, 1.3705f, 57.422f}, + {67.1503f, 0.41409f, 404.512f, 148.97f, 20.99f}, + {5.11203f, 0.453f, 36.718f, 50.6f, 28.058f}, + {61.793f, 0.48445f, 361.537f, 57.889f, 50.674f}, + {7.83464f, 0.49804f, 160.452f, 3.192f, 0.71922f}, + {19.729f, 0.52153f, 162.341f, 58.35f, 25.668f}, + {26.4648f, 0.50112f, 188.913f, 30.079f, 16.509f}, + {7.8655f, 0.5205f, 63.96f, 51.32f, 67.775f}, + {8.8965f, 0.5148f, 339.36f, 1.7205f, 0.70423f}, + {2.959f, 0.53255f, 34.247f, 60.655f, 15.153f}, + {3.80133f, 0.41590f, 12.9966f, 117.83f, 242.28f} }; static const G4double atomicWeight[11] = { - 101.96128, 44.0098, 16.0426, 28.0536, 42.0804, - 104.1512, 44.665, 60.0843, 18.0152, 18.0152, 12.0}; + 101.96128f, 44.0098f, 16.0426f, 28.0536f, 42.0804f, + 104.1512f, 44.665f, 60.0843f, 18.0152f, 18.0152f, 12.0f}; G4int i = iMolecula; + G4double slow = (G4double)(a[i][0]); + + G4double x1 = (G4double)(a[i][1]); + G4double x2 = (G4double)(a[i][2]); + G4double x3 = (G4double)(a[i][3]); + G4double x4 = (G4double)(a[i][4]); + // Free electron gas model if ( T < 0.001 ) { - G4double slow = a[i][0] ; - G4double shigh = G4Log( 1.0 + a[i][3]*1000.0 + a[i][4]*0.001 ) - * a[i][2]*1000.0 ; + G4double shigh = G4Log( 1.0 + x3*1000.0 + x4*0.001 ) *x2*1000.0; ionloss = slow*shigh / (slow + shigh) ; ionloss *= sqrt(T*1000.0) ; // Main parametrisation } else { - G4double slow = a[i][0] * G4Exp(G4Log(T*1000.0)*a[i][1]) ; - G4double shigh = G4Log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ; + slow *= G4Exp(G4Log(T*1000.0)*x1) ; + G4double shigh = G4Log( 1.0 + x3/T + x4*T ) * x2/T ; ionloss = slow*shigh / (slow + shigh) ; /* G4cout << "## " << i << ". T= " << T << " slow= " << slow @@ -471,10 +476,10 @@ G4double G4BraggIonModel::StoppingPower(const G4Material* material, << G4endl; */ } - if ( ionloss < 0.0) ionloss = 0.0 ; + ionloss = std::max(ionloss, 0.0); // He effective charge - G4double aa = atomicWeight[iMolecula]; + G4double aa = (G4double)atomicWeight[iMolecula]; ionloss /= (HeEffChargeSquare(0.5*aa, T)*aa); // pure material (normally not the case for this function) @@ -500,127 +505,132 @@ G4double G4BraggIonModel::ElectronicStoppingPower(G4double z, // ICRU Report 49, 1993. Ziegler's type of parametrisations. // Proton kinetic energy for parametrisation (keV/amu) - // He energy in internal units of parametrisation formula (MeV) + // He energy in internal units of parametrisation formula (MeV) G4double T = kineticEnergy*rateMassHe2p/MeV ; - static const G4double a[92][5] = { - {0.35485, 0.6456, 6.01525, 20.8933, 4.3515 - },{ 0.58, 0.59, 6.3, 130.0, 44.07 - },{ 1.42, 0.49, 12.25, 32.0, 9.161 - },{ 2.206, 0.51, 15.32, 0.25, 8.995 //Be Ziegler77 - // },{ 2.1895, 0.47183,7.2362, 134.30, 197.96 //Be from ICRU - },{ 3.691, 0.4128, 18.48, 50.72, 9.0 - },{ 3.83523, 0.42993,12.6125, 227.41, 188.97 - },{ 1.9259, 0.5550, 27.15125, 26.0665, 6.2768 - },{ 2.81015, 0.4759, 50.0253, 10.556, 1.0382 - },{ 1.533, 0.531, 40.44, 18.41, 2.718 - },{ 2.303, 0.4861, 37.01, 37.96, 5.092 + static const G4float a[92][5] = { + { 0.35485f, 0.6456f, 6.01525f, 20.8933f, 4.3515f + },{ 0.58f, 0.59f, 6.3f, 130.0f, 44.07f + },{ 1.42f, 0.49f, 12.25f, 32.0f, 9.161f + },{ 2.206f, 0.51f, 15.32f, 0.25f, 8.995f //Be Ziegler77 + // },{ 2.1895f, 0.47183,7.2362f, 134.30f, 197.96f //Be from ICRU + },{ 3.691f, 0.4128f, 18.48f, 50.72f, 9.0f + },{ 3.83523f, 0.42993f,12.6125f, 227.41f, 188.97f + // },{ 1.9259f, 0.5550f, 27.15125f, 26.0665f, 6.2768f //too many digits + },{ 1.9259f, 0.5550f, 27.1513f, 26.0665f, 6.2768f + },{ 2.81015f, 0.4759f, 50.0253f, 10.556f, 1.0382f + },{ 1.533f, 0.531f, 40.44f, 18.41f, 2.718f + },{ 2.303f, 0.4861f, 37.01f, 37.96f, 5.092f // Z= 11-20 - },{ 9.894, 0.3081, 23.65, 0.384, 92.93 - },{ 4.3, 0.47, 34.3, 3.3, 12.74 - },{ 2.5, 0.625, 45.7, 0.1, 4.359 - },{ 2.1, 0.65, 49.34, 1.788, 4.133 - },{ 1.729, 0.6562, 53.41, 2.405, 3.845 - },{ 1.402, 0.6791, 58.98, 3.528, 3.211 - },{ 1.117, 0.7044, 69.69, 3.705, 2.156 - },{ 2.291, 0.6284, 73.88, 4.478, 2.066 - },{ 8.554, 0.3817, 83.61, 11.84, 1.875 - },{ 6.297, 0.4622, 65.39, 10.14, 5.036 + },{ 9.894f, 0.3081f, 23.65f, 0.384f, 92.93f + },{ 4.3f, 0.47f, 34.3f, 3.3f, 12.74f + },{ 2.5f, 0.625f, 45.7f, 0.1f, 4.359f + },{ 2.1f, 0.65f, 49.34f, 1.788f, 4.133f + },{ 1.729f, 0.6562f, 53.41f, 2.405f, 3.845f + },{ 1.402f, 0.6791f, 58.98f, 3.528f, 3.211f + },{ 1.117f, 0.7044f, 69.69f, 3.705f, 2.156f + },{ 2.291f, 0.6284f, 73.88f, 4.478f, 2.066f + },{ 8.554f, 0.3817f, 83.61f, 11.84f, 1.875f + },{ 6.297f, 0.4622f, 65.39f, 10.14f, 5.036f // Z= 21-30 - },{ 5.307, 0.4918, 61.74, 12.4, 6.665 - },{ 4.71, 0.5087, 65.28, 8.806, 5.948 - },{ 6.151, 0.4524, 83.0, 18.31, 2.71 - },{ 6.57, 0.4322, 84.76, 15.53, 2.779 - },{ 5.738, 0.4492, 84.6, 14.18, 3.101 - },{ 5.013, 0.4707, 85.8, 16.55, 3.211 - },{ 4.32, 0.4947, 76.14, 10.85, 5.441 - },{ 4.652, 0.4571, 80.73, 22.0, 4.952 - },{ 3.114, 0.5236, 76.67, 7.62, 6.385 - },{ 3.114, 0.5236, 76.67, 7.62, 7.502 + },{ 5.307f, 0.4918f, 61.74f, 12.4f, 6.665f + },{ 4.71f, 0.5087f, 65.28f, 8.806f, 5.948f + },{ 6.151f, 0.4524f, 83.0f, 18.31f, 2.71f + },{ 6.57f, 0.4322f, 84.76f, 15.53f, 2.779f + },{ 5.738f, 0.4492f, 84.6f, 14.18f, 3.101f + },{ 5.013f, 0.4707f, 85.8f, 16.55f, 3.211f + },{ 4.32f, 0.4947f, 76.14f, 10.85f, 5.441f + },{ 4.652f, 0.4571f, 80.73f, 22.0f, 4.952f + },{ 3.114f, 0.5236f, 76.67f, 7.62f, 6.385f + },{ 3.114f, 0.5236f, 76.67f, 7.62f, 7.502f // Z= 31-40 - },{ 3.114, 0.5236, 76.67, 7.62, 8.514 - },{ 5.746, 0.4662, 79.24, 1.185, 7.993 - },{ 2.792, 0.6346, 106.1, 0.2986, 2.331 - },{ 4.667, 0.5095, 124.3, 2.102, 1.667 - },{ 2.44, 0.6346, 105.0, 0.83, 2.851 - },{ 1.413, 0.7377, 147.9, 1.466, 1.016 - },{ 11.72, 0.3826, 102.8, 9.231, 4.371 - },{ 7.126, 0.4804, 119.3, 5.784, 2.454 - },{ 11.61, 0.3955, 146.7, 7.031, 1.423 - },{ 10.99, 0.41, 163.9, 7.1, 1.052 + },{ 3.114f, 0.5236f, 76.67f, 7.62f, 8.514f + },{ 5.746f, 0.4662f, 79.24f, 1.185f, 7.993f + },{ 2.792f, 0.6346f, 106.1f, 0.2986f, 2.331f + },{ 4.667f, 0.5095f, 124.3f, 2.102f, 1.667f + },{ 2.44f, 0.6346f, 105.0f, 0.83f, 2.851f + },{ 1.413f, 0.7377f, 147.9f, 1.466f, 1.016f + },{ 11.72f, 0.3826f, 102.8f, 9.231f, 4.371f + },{ 7.126f, 0.4804f, 119.3f, 5.784f, 2.454f + },{ 11.61f, 0.3955f, 146.7f, 7.031f, 1.423f + },{ 10.99f, 0.41f, 163.9f, 7.1f, 1.052f // Z= 41-50 - },{ 9.241, 0.4275, 163.1, 7.954, 1.102 - },{ 9.276, 0.418, 157.1, 8.038, 1.29 - },{ 3.999, 0.6152, 97.6, 1.297, 5.792 - },{ 4.306, 0.5658, 97.99, 5.514, 5.754 - },{ 3.615, 0.6197, 86.26, 0.333, 8.689 - },{ 5.8, 0.49, 147.2, 6.903, 1.289 - },{ 5.6, 0.49, 130.0, 10.0, 2.844 - },{ 3.55, 0.6068, 124.7, 1.112, 3.119 - },{ 3.6, 0.62, 105.8, 0.1692, 6.026 - },{ 5.4, 0.53, 103.1, 3.931, 7.767 + },{ 9.241f, 0.4275f, 163.1f, 7.954f, 1.102f + },{ 9.276f, 0.418f, 157.1f, 8.038f, 1.29f + },{ 3.999f, 0.6152f, 97.6f, 1.297f, 5.792f + },{ 4.306f, 0.5658f, 97.99f, 5.514f, 5.754f + },{ 3.615f, 0.6197f, 86.26f, 0.333f, 8.689f + },{ 5.8f, 0.49f, 147.2f, 6.903f, 1.289f + },{ 5.6f, 0.49f, 130.0f, 10.0f, 2.844f + },{ 3.55f, 0.6068f, 124.7f, 1.112f, 3.119f + },{ 3.6f, 0.62f, 105.8f, 0.1692f, 6.026f + },{ 5.4f, 0.53f, 103.1f, 3.931f, 7.767f // Z= 51-60 - },{ 3.97, 0.6459, 131.8, 0.2233, 2.723 - },{ 3.65, 0.64, 126.8, 0.6834, 3.411 - },{ 3.118, 0.6519, 164.9, 1.208, 1.51 - },{ 3.949, 0.6209, 200.5, 1.878, 0.9126 - },{ 14.4, 0.3923, 152.5, 8.354, 2.597 - },{ 10.99, 0.4599, 138.4, 4.811, 3.726 - },{ 16.6, 0.3773, 224.1, 6.28, 0.9121 - },{ 10.54, 0.4533, 159.3, 4.832, 2.529 - },{ 10.33, 0.4502, 162.0, 5.132, 2.444 - },{ 10.15, 0.4471, 165.6, 5.378, 2.328 + },{ 3.97f, 0.6459f, 131.8f, 0.2233f, 2.723f + },{ 3.65f, 0.64f, 126.8f, 0.6834f, 3.411f + },{ 3.118f, 0.6519f, 164.9f, 1.208f, 1.51f + },{ 3.949f, 0.6209f, 200.5f, 1.878f, 0.9126f + },{ 14.4f, 0.3923f, 152.5f, 8.354f, 2.597f + },{ 10.99f, 0.4599f, 138.4f, 4.811f, 3.726f + },{ 16.6f, 0.3773f, 224.1f, 6.28f, 0.9121f + },{ 10.54f, 0.4533f, 159.3f, 4.832f, 2.529f + },{ 10.33f, 0.4502f, 162.0f, 5.132f, 2.444f + },{ 10.15f, 0.4471f, 165.6f, 5.378f, 2.328f // Z= 61-70 - },{ 9.976, 0.4439, 168.0, 5.721, 2.258 - },{ 9.804, 0.4408, 176.2, 5.675, 1.997 - },{ 14.22, 0.363, 228.4, 7.024, 1.016 - },{ 9.952, 0.4318, 233.5, 5.065, 0.9244 - },{ 9.272, 0.4345, 210.0, 4.911, 1.258 - },{ 10.13, 0.4146, 225.7, 5.525, 1.055 - },{ 8.949, 0.4304, 213.3, 5.071, 1.221 - },{ 11.94, 0.3783, 247.2, 6.655, 0.849 - },{ 8.472, 0.4405, 195.5, 4.051, 1.604 - },{ 8.301, 0.4399, 203.7, 3.667, 1.459 + },{ 9.976f, 0.4439f, 168.0f, 5.721f, 2.258f + },{ 9.804f, 0.4408f, 176.2f, 5.675f, 1.997f + },{ 14.22f, 0.363f, 228.4f, 7.024f, 1.016f + },{ 9.952f, 0.4318f, 233.5f, 5.065f, 0.9244f + },{ 9.272f, 0.4345f, 210.0f, 4.911f, 1.258f + },{ 10.13f, 0.4146f, 225.7f, 5.525f, 1.055f + },{ 8.949f, 0.4304f, 213.3f, 5.071f, 1.221f + },{ 11.94f, 0.3783f, 247.2f, 6.655f, 0.849f + },{ 8.472f, 0.4405f, 195.5f, 4.051f, 1.604f + },{ 8.301f, 0.4399f, 203.7f, 3.667f, 1.459f // Z= 71-80 - },{ 6.567, 0.4858, 193.0, 2.65, 1.66 - },{ 5.951, 0.5016, 196.1, 2.662, 1.589 - },{ 7.495, 0.4523, 251.4, 3.433, 0.8619 - },{ 6.335, 0.4825, 255.1, 2.834, 0.8228 - },{ 4.314, 0.5558, 214.8, 2.354, 1.263 - },{ 4.02, 0.5681, 219.9, 2.402, 1.191 - },{ 3.836, 0.5765, 210.2, 2.742, 1.305 - },{ 4.68, 0.5247, 244.7, 2.749, 0.8962 - },{ 2.892, 0.6204, 208.6, 2.415, 1.416 //Au Z77 - // },{ 3.223, 0.5883, 232.7, 2.954, 1.05 //Au ICRU - },{ 2.892, 0.6204, 208.6, 2.415, 1.416 + },{ 6.567f, 0.4858f, 193.0f, 2.65f, 1.66f + },{ 5.951f, 0.5016f, 196.1f, 2.662f, 1.589f + },{ 7.495f, 0.4523f, 251.4f, 3.433f, 0.8619f + },{ 6.335f, 0.4825f, 255.1f, 2.834f, 0.8228f + },{ 4.314f, 0.5558f, 214.8f, 2.354f, 1.263f + },{ 4.02f, 0.5681f, 219.9f, 2.402f, 1.191f + },{ 3.836f, 0.5765f, 210.2f, 2.742f, 1.305f + },{ 4.68f, 0.5247f, 244.7f, 2.749f, 0.8962f + },{ 2.892f, 0.6204f, 208.6f, 2.415f, 1.416f //Au Z77 + // },{ 3.223f, 0.5883f, 232.7f, 2.954f, 1.05 //Au ICRU + },{ 2.892f, 0.6204f, 208.6f, 2.415f, 1.416f // Z= 81-90 - },{ 4.728, 0.5522, 217.0, 3.091, 1.386 - },{ 6.18, 0.52, 170.0, 4.0, 3.224 - },{ 9.0, 0.47, 198.0, 3.8, 2.032 - },{ 2.324, 0.6997, 216.0, 1.599, 1.399 - },{ 1.961, 0.7286, 223.0, 1.621, 1.296 - },{ 1.75, 0.7427, 350.1, 0.9789, 0.5507 - },{ 10.31, 0.4613, 261.2, 4.738, 0.9899 - },{ 7.962, 0.519, 235.7, 4.347, 1.313 - },{ 6.227, 0.5645, 231.9, 3.961, 1.379 - },{ 5.246, 0.5947, 228.6, 4.027, 1.432 + },{ 4.728f, 0.5522f, 217.0f, 3.091f, 1.386f + },{ 6.18f, 0.52f, 170.0f, 4.0f, 3.224f + },{ 9.0f, 0.47f, 198.0f, 3.8f, 2.032f + },{ 2.324f, 0.6997f, 216.0f, 1.599f, 1.399f + },{ 1.961f, 0.7286f, 223.0f, 1.621f, 1.296f + },{ 1.75f, 0.7427f, 350.1f, 0.9789f, 0.5507f + },{ 10.31f, 0.4613f, 261.2f, 4.738f, 0.9899f + },{ 7.962f, 0.519f, 235.7f, 4.347f, 1.313f + },{ 6.227f, 0.5645f, 231.9f, 3.961f, 1.379f + },{ 5.246f, 0.5947f, 228.6f, 4.027f, 1.432f // Z= 91-92 - },{ 5.408, 0.5811, 235.7, 3.961, 1.358 - },{ 5.218, 0.5828, 245.0, 3.838, 1.25} + },{ 5.408f, 0.5811f, 235.7f, 3.961f, 1.358f + },{ 5.218f, 0.5828f, 245.0f, 3.838f, 1.25f} }; + G4double slow = (G4double)(a[i][0]); + + G4double x1 = (G4double)(a[i][1]); + G4double x2 = (G4double)(a[i][2]); + G4double x3 = (G4double)(a[i][3]); + G4double x4 = (G4double)(a[i][4]); + // Free electron gas model if ( T < 0.001 ) { - G4double slow = a[i][0] ; - G4double shigh = G4Log( 1.0 + a[i][3]*1000.0 + a[i][4]*0.001 ) - * a[i][2]*1000.0 ; - ionloss = slow*shigh / (slow + shigh) ; - ionloss *= sqrt(T*1000.0) ; + G4double shigh = G4Log( 1.0 + x3*1000.0 + x4*0.001 )* x2*1000.0; + ionloss = slow*shigh*sqrt(T*1000.0) / (slow + shigh) ; // Main parametrisation } else { - G4double slow = a[i][0] * G4Exp(G4Log(T*1000.0)*a[i][1]) ; - G4double shigh = G4Log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ; + slow *= G4Exp(G4Log(T*1000.0)*x1); + G4double shigh = G4Log( 1.0 + x3/T + x4*T ) * x2/T; ionloss = slow*shigh / (slow + shigh) ; /* G4cout << "## " << i << ". T= " << T << " slow= " << slow @@ -630,7 +640,7 @@ G4double G4BraggIonModel::ElectronicStoppingPower(G4double z, << G4endl; */ } - if ( ionloss < 0.0) { ionloss = 0.0; } + ionloss = std::max(ionloss, 0.0); // He effective charge ionloss /= HeEffChargeSquare(z, T); @@ -708,8 +718,8 @@ G4double G4BraggIonModel::HeEffChargeSquare(G4double z, G4double x = c[0] ; G4double y = 1.0 ; for (G4int i=1; i<6; ++i) { - y *= e ; - x += y * c[i] ; + y *= e; + x += y * c[i]; } G4double w = 7.6 - e ; diff --git a/source/processes/electromagnetic/standard/src/G4BraggModel.cc b/source/processes/electromagnetic/standard/src/G4BraggModel.cc index 74177b4a2b..1a6e17456e 100644 --- a/source/processes/electromagnetic/standard/src/G4BraggModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BraggModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4BraggModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4BraggModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -79,8 +79,7 @@ using namespace std; -static const G4double invLog10 = 1.0/G4Log(10.); -G4PSTARStopping* G4BraggModel::fPSTAR = 0; +G4PSTARStopping* G4BraggModel::fPSTAR = nullptr; G4BraggModel::G4BraggModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), @@ -89,10 +88,9 @@ G4BraggModel::G4BraggModel(const G4ParticleDefinition* p, const G4String& nam) protonMassAMU(1.007276), iMolecula(-1), iPSTAR(-1), - isIon(false), - isInitialised(false) + isIon(false) { - fParticleChange = 0; + fParticleChange = nullptr; SetHighEnergyLimit(2.0*MeV); lowestKinEnergy = 1.0*keV; @@ -109,7 +107,7 @@ G4BraggModel::G4BraggModel(const G4ParticleDefinition* p, const G4String& nam) G4BraggModel::~G4BraggModel() { - if(IsMaster()) { delete fPSTAR; fPSTAR = 0; } + if(IsMaster()) { delete fPSTAR; fPSTAR = nullptr; } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -122,8 +120,12 @@ void G4BraggModel::Initialise(const G4ParticleDefinition* p, // always false before the run SetDeexcitationFlag(false); - if(!isInitialised) { - isInitialised = true; + if(IsMaster()) { + if(nullptr == fPSTAR) { fPSTAR = new G4PSTARStopping(); } + if(particle->GetPDGMass() < GeV) { fPSTAR->Initialise(); } + } + + if(nullptr == fParticleChange) { if(UseAngularGeneratorFlag() && !GetAngularDistribution()) { SetAngularDistribution(new G4DeltaAngle()); @@ -135,9 +137,7 @@ void G4BraggModel::Initialise(const G4ParticleDefinition* p, pname != "hydrogen") { isIon = true; } fParticleChange = GetParticleChangeForLoss(); - if(!fPSTAR) { fPSTAR = new G4PSTARStopping(); } } - if(IsMaster() && particle->GetPDGMass() < GeV) { fPSTAR->Initialise(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -251,9 +251,7 @@ G4double G4BraggModel::ComputeDEDXPerVolume(const G4Material* material, // now compute the total ionization loss - if (dedx < 0.0) { dedx = 0.0; } - - dedx *= chargeSquare; + dedx = std::max(dedx, 0.0) * chargeSquare; //G4cout << "E(MeV)= " << tkin/MeV << " dedx= " << dedx // << " " << material->GetName() << G4endl; @@ -394,35 +392,40 @@ G4double G4BraggModel::StoppingPower(const G4Material* material, G4double T = kineticEnergy/(keV*protonMassAMU) ; - static const G4double a[11][5] = { - {1.187E+1, 1.343E+1, 1.069E+4, 7.723E+2, 2.153E-2}, - {7.802E+0, 8.814E+0, 8.303E+3, 7.446E+2, 7.966E-3}, - {7.294E+0, 8.284E+0, 5.010E+3, 4.544E+2, 8.153E-3}, - {8.646E+0, 9.800E+0, 7.066E+3, 4.581E+2, 9.383E-3}, - {1.286E+1, 1.462E+1, 5.625E+3, 2.621E+3, 3.512E-2}, - {3.229E+1, 3.696E+1, 8.918E+3, 3.244E+3, 1.273E-1}, - {1.604E+1, 1.825E+1, 6.967E+3, 2.307E+3, 3.775E-2}, - {8.049E+0, 9.099E+0, 9.257E+3, 3.846E+2, 1.007E-2}, - {4.015E+0, 4.542E+0, 3.955E+3, 4.847E+2, 7.904E-3}, - {4.571E+0, 5.173E+0, 4.346E+3, 4.779E+2, 8.572E-3}, - {2.631E+0, 2.601E+0, 1.701E+3, 1.279E+3, 1.638E-2} }; + static const G4float a[11][5] = { + {1.187E+1f, 1.343E+1f, 1.069E+4f, 7.723E+2f, 2.153E-2f}, + {7.802E+0f, 8.814E+0f, 8.303E+3f, 7.446E+2f, 7.966E-3f}, + {7.294E+0f, 8.284E+0f, 5.010E+3f, 4.544E+2f, 8.153E-3f}, + {8.646E+0f, 9.800E+0f, 7.066E+3f, 4.581E+2f, 9.383E-3f}, + {1.286E+1f, 1.462E+1f, 5.625E+3f, 2.621E+3f, 3.512E-2f}, + {3.229E+1f, 3.696E+1f, 8.918E+3f, 3.244E+3f, 1.273E-1f}, + {1.604E+1f, 1.825E+1f, 6.967E+3f, 2.307E+3f, 3.775E-2f}, + {8.049E+0f, 9.099E+0f, 9.257E+3f, 3.846E+2f, 1.007E-2f}, + {4.015E+0f, 4.542E+0f, 3.955E+3f, 4.847E+2f, 7.904E-3f}, + {4.571E+0f, 5.173E+0f, 4.346E+3f, 4.779E+2f, 8.572E-3f}, + {2.631E+0f, 2.601E+0f, 1.701E+3f, 1.279E+3f, 1.638E-2f} }; - static const G4double atomicWeight[11] = { - 101.96128, 44.0098, 16.0426, 28.0536, 42.0804, - 104.1512, 44.665, 60.0843, 18.0152, 18.0152, 12.0}; + static const G4float atomicWeight[11] = { + 101.96128f, 44.0098f, 16.0426f, 28.0536f, 42.0804f, + 104.1512f, 44.665f, 60.0843f, 18.0152f, 18.0152f, 12.0f}; if ( T < 10.0 ) { - ionloss = a[iMolecula][0] * sqrt(T) ; + ionloss = ((G4double)(a[iMolecula][0])) * sqrt(T) ; } else if ( T < 10000.0 ) { - G4double slow = a[iMolecula][1] * G4Exp(G4Log(T)* 0.45); - G4double shigh = G4Log( 1.0 + a[iMolecula][3]/T - + a[iMolecula][4]*T ) * a[iMolecula][2]/T ; + G4double x1 = (G4double)(a[iMolecula][1]); + G4double x2 = (G4double)(a[iMolecula][2]); + G4double x3 = (G4double)(a[iMolecula][3]); + G4double x4 = (G4double)(a[iMolecula][4]); + G4double slow = x1 * G4Exp(G4Log(T)* 0.45); + G4double shigh = G4Log( 1.0 + x3/T + x4*T ) * x2/T; ionloss = slow*shigh / (slow + shigh) ; } - if ( ionloss < 0.0) ionloss = 0.0 ; + ionloss = std::max(ionloss, 0.0); if ( 10 == iMolecula ) { + static const G4double invLog10 = 1.0/G4Log(10.); + if (T < 100.0) { ionloss *= (1.0+0.023+0.0066*G4Log(T)*invLog10); } @@ -433,7 +436,7 @@ G4double G4BraggModel::StoppingPower(const G4Material* material, ionloss *=(1.0+0.089-0.0248*G4Log(700.-99.)*invLog10); } } - ionloss /= atomicWeight[iMolecula]; + ionloss /= (G4double)atomicWeight[iMolecula]; // pure material (normally not the case for this function) } else if(1 == (material->GetNumberOfElements())) { @@ -460,131 +463,135 @@ G4double G4BraggModel::ElectronicStoppingPower(G4double z, G4double T = kineticEnergy/(keV*protonMassAMU) ; - static const G4double a[92][5] = { - {1.254E+0, 1.440E+0, 2.426E+2, 1.200E+4, 1.159E-1}, - {1.229E+0, 1.397E+0, 4.845E+2, 5.873E+3, 5.225E-2}, - {1.411E+0, 1.600E+0, 7.256E+2, 3.013E+3, 4.578E-2}, - {2.248E+0, 2.590E+0, 9.660E+2, 1.538E+2, 3.475E-2}, - {2.474E+0, 2.815E+0, 1.206E+3, 1.060E+3, 2.855E-2}, - {2.631E+0, 2.601E+0, 1.701E+3, 1.279E+3, 1.638E-2}, - {2.954E+0, 3.350E+0, 1.683E+3, 1.900E+3, 2.513E-2}, - {2.652E+0, 3.000E+0, 1.920E+3, 2.000E+3, 2.230E-2}, - {2.085E+0, 2.352E+0, 2.157E+3, 2.634E+3, 1.816E-2}, - {1.951E+0, 2.199E+0, 2.393E+3, 2.699E+3, 1.568E-2}, + static const G4float a[92][5] = { + {1.254E+0f, 1.440E+0f, 2.426E+2f, 1.200E+4f, 1.159E-1f}, + {1.229E+0f, 1.397E+0f, 4.845E+2f, 5.873E+3f, 5.225E-2f}, + {1.411E+0f, 1.600E+0f, 7.256E+2f, 3.013E+3f, 4.578E-2f}, + {2.248E+0f, 2.590E+0f, 9.660E+2f, 1.538E+2f, 3.475E-2f}, + {2.474E+0f, 2.815E+0f, 1.206E+3f, 1.060E+3f, 2.855E-2f}, + {2.631E+0f, 2.601E+0f, 1.701E+3f, 1.279E+3f, 1.638E-2f}, + {2.954E+0f, 3.350E+0f, 1.683E+3f, 1.900E+3f, 2.513E-2f}, + {2.652E+0f, 3.000E+0f, 1.920E+3f, 2.000E+3f, 2.230E-2f}, + {2.085E+0f, 2.352E+0f, 2.157E+3f, 2.634E+3f, 1.816E-2f}, + {1.951E+0f, 2.199E+0f, 2.393E+3f, 2.699E+3f, 1.568E-2f}, // Z= 11-20 - {2.542E+0, 2.869E+0, 2.628E+3, 1.854E+3, 1.472E-2}, - {3.791E+0, 4.293E+0, 2.862E+3, 1.009E+3, 1.397E-2}, - {4.154E+0, 4.739E+0, 2.766E+3, 1.645E+2, 2.023E-2}, - {4.914E+0, 5.598E+0, 3.193E+3, 2.327E+2, 1.419E-2}, - {3.232E+0, 3.647E+0, 3.561E+3, 1.560E+3, 1.267E-2}, - {3.447E+0, 3.891E+0, 3.792E+3, 1.219E+3, 1.211E-2}, - {5.301E+0, 6.008E+0, 3.969E+3, 6.451E+2, 1.183E-2}, - {5.731E+0, 6.500E+0, 4.253E+3, 5.300E+2, 1.123E-2}, - {5.152E+0, 5.833E+0, 4.482E+3, 5.457E+2, 1.129E-2}, - {5.521E+0, 6.252E+0, 4.710E+3, 5.533E+2, 1.112E-2}, + {2.542E+0f, 2.869E+0f, 2.628E+3f, 1.854E+3f, 1.472E-2f}, + {3.791E+0f, 4.293E+0f, 2.862E+3f, 1.009E+3f, 1.397E-2f}, + {4.154E+0f, 4.739E+0f, 2.766E+3f, 1.645E+2f, 2.023E-2f}, + {4.914E+0f, 5.598E+0f, 3.193E+3f, 2.327E+2f, 1.419E-2f}, + {3.232E+0f, 3.647E+0f, 3.561E+3f, 1.560E+3f, 1.267E-2f}, + {3.447E+0f, 3.891E+0f, 3.792E+3f, 1.219E+3f, 1.211E-2f}, + {5.301E+0f, 6.008E+0f, 3.969E+3f, 6.451E+2f, 1.183E-2f}, + {5.731E+0f, 6.500E+0f, 4.253E+3f, 5.300E+2f, 1.123E-2f}, + {5.152E+0f, 5.833E+0f, 4.482E+3f, 5.457E+2f, 1.129E-2f}, + {5.521E+0f, 6.252E+0f, 4.710E+3f, 5.533E+2f, 1.112E-2f}, // Z= 21-30 - {5.201E+0, 5.884E+0, 4.938E+3, 5.609E+2, 9.995E-3}, - {4.858E+0, 5.489E+0, 5.260E+3, 6.511E+2, 8.930E-3}, - {4.479E+0, 5.055E+0, 5.391E+3, 9.523E+2, 9.117E-3}, - {3.983E+0, 4.489E+0, 5.616E+3, 1.336E+3, 8.413E-3}, - {3.469E+0, 3.907E+0, 5.725E+3, 1.461E+3, 8.829E-3}, - {3.519E+0, 3.963E+0, 6.065E+3, 1.243E+3, 7.782E-3}, - {3.140E+0, 3.535E+0, 6.288E+3, 1.372E+3, 7.361E-3}, - {3.553E+0, 4.004E+0, 6.205E+3, 5.551E+2, 8.763E-3}, - {3.696E+0, 4.194E+0, 4.649E+3, 8.113E+1, 2.242E-2}, - {4.210E+0, 4.750E+0, 6.953E+3, 2.952E+2, 6.809E-3}, + {5.201E+0f, 5.884E+0f, 4.938E+3f, 5.609E+2f, 9.995E-3f}, + {4.858E+0f, 5.489E+0f, 5.260E+3f, 6.511E+2f, 8.930E-3f}, + {4.479E+0f, 5.055E+0f, 5.391E+3f, 9.523E+2f, 9.117E-3f}, + {3.983E+0f, 4.489E+0f, 5.616E+3f, 1.336E+3f, 8.413E-3f}, + {3.469E+0f, 3.907E+0f, 5.725E+3f, 1.461E+3f, 8.829E-3f}, + {3.519E+0f, 3.963E+0f, 6.065E+3f, 1.243E+3f, 7.782E-3f}, + {3.140E+0f, 3.535E+0f, 6.288E+3f, 1.372E+3f, 7.361E-3f}, + {3.553E+0f, 4.004E+0f, 6.205E+3f, 5.551E+2f, 8.763E-3f}, + {3.696E+0f, 4.194E+0f, 4.649E+3f, 8.113E+1f, 2.242E-2f}, + {4.210E+0f, 4.750E+0f, 6.953E+3f, 2.952E+2f, 6.809E-3f}, // Z= 31-40 - {5.041E+0, 5.697E+0, 7.173E+3, 2.026E+2, 6.725E-3}, - {5.554E+0, 6.300E+0, 6.496E+3, 1.100E+2, 9.689E-3}, - {5.323E+0, 6.012E+0, 7.611E+3, 2.925E+2, 6.447E-3}, - {5.874E+0, 6.656E+0, 7.395E+3, 1.175E+2, 7.684E-3}, - {6.658E+0, 7.536E+0, 7.694E+3, 2.223E+2, 6.509E-3}, - {6.413E+0, 7.240E+0, 1.185E+4, 1.537E+2, 2.880E-3}, - {5.694E+0, 6.429E+0, 8.478E+3, 2.929E+2, 6.087E-3}, - {6.339E+0, 7.159E+0, 8.693E+3, 3.303E+2, 6.003E-3}, - {6.407E+0, 7.234E+0, 8.907E+3, 3.678E+2, 5.889E-3}, - {6.734E+0, 7.603E+0, 9.120E+3, 4.052E+2, 5.765E-3}, + {5.041E+0f, 5.697E+0f, 7.173E+3f, 2.026E+2f, 6.725E-3f}, + {5.554E+0f, 6.300E+0f, 6.496E+3f, 1.100E+2f, 9.689E-3f}, + {5.323E+0f, 6.012E+0f, 7.611E+3f, 2.925E+2f, 6.447E-3f}, + {5.874E+0f, 6.656E+0f, 7.395E+3f, 1.175E+2f, 7.684E-3f}, + {6.658E+0f, 7.536E+0f, 7.694E+3f, 2.223E+2f, 6.509E-3f}, + {6.413E+0f, 7.240E+0f, 1.185E+4f, 1.537E+2f, 2.880E-3f}, + {5.694E+0f, 6.429E+0f, 8.478E+3f, 2.929E+2f, 6.087E-3f}, + {6.339E+0f, 7.159E+0f, 8.693E+3f, 3.303E+2f, 6.003E-3f}, + {6.407E+0f, 7.234E+0f, 8.907E+3f, 3.678E+2f, 5.889E-3f}, + {6.734E+0f, 7.603E+0f, 9.120E+3f, 4.052E+2f, 5.765E-3f}, // Z= 41-50 - {6.901E+0, 7.791E+0, 9.333E+3, 4.427E+2, 5.587E-3}, - {6.424E+0, 7.248E+0, 9.545E+3, 4.802E+2, 5.376E-3}, - {6.799E+0, 7.671E+0, 9.756E+3, 5.176E+2, 5.315E-3}, - {6.109E+0, 6.887E+0, 9.966E+3, 5.551E+2, 5.151E-3}, - {5.924E+0, 6.677E+0, 1.018E+4, 5.925E+2, 4.919E-3}, - {5.238E+0, 5.900E+0, 1.038E+4, 6.300E+2, 4.758E-3}, - // {5.623, 6.354, 7160.0, 337.6, 0.013940}, // Ag Ziegler77 - {5.345E+0, 6.038E+0, 6.790E+3, 3.978E+2, 1.676E-2}, // Ag ICRU49 - {5.814E+0, 6.554E+0, 1.080E+4, 3.555E+2, 4.626E-3}, - {6.229E+0, 7.024E+0, 1.101E+4, 3.709E+2, 4.540E-3}, - {6.409E+0, 7.227E+0, 1.121E+4, 3.864E+2, 4.474E-3}, + {6.901E+0f, 7.791E+0f, 9.333E+3f, 4.427E+2f, 5.587E-3f}, + {6.424E+0f, 7.248E+0f, 9.545E+3f, 4.802E+2f, 5.376E-3f}, + {6.799E+0f, 7.671E+0f, 9.756E+3f, 5.176E+2f, 5.315E-3f}, + {6.109E+0f, 6.887E+0f, 9.966E+3f, 5.551E+2f, 5.151E-3f}, + {5.924E+0f, 6.677E+0f, 1.018E+4f, 5.925E+2f, 4.919E-3f}, + {5.238E+0f, 5.900E+0f, 1.038E+4f, 6.300E+2f, 4.758E-3f}, + // {5.623f, 6.354f, 7160.0f, 337.6f, 0.013940f}, // Ag Ziegler77 + {5.345E+0f, 6.038E+0f, 6.790E+3f, 3.978E+2f, 1.676E-2f}, // Ag ICRU49 + {5.814E+0f, 6.554E+0f, 1.080E+4f, 3.555E+2f, 4.626E-3f}, + {6.229E+0f, 7.024E+0f, 1.101E+4f, 3.709E+2f, 4.540E-3f}, + {6.409E+0f, 7.227E+0f, 1.121E+4f, 3.864E+2f, 4.474E-3f}, // Z= 51-60 - {7.500E+0, 8.480E+0, 8.608E+3, 3.480E+2, 9.074E-3}, - {6.979E+0, 7.871E+0, 1.162E+4, 3.924E+2, 4.402E-3}, - {7.725E+0, 8.716E+0, 1.183E+4, 3.948E+2, 4.376E-3}, - {8.337E+0, 9.425E+0, 1.051E+4, 2.696E+2, 6.206E-3}, - {7.287E+0, 8.218E+0, 1.223E+4, 3.997E+2, 4.447E-3}, - {7.899E+0, 8.911E+0, 1.243E+4, 4.021E+2, 4.511E-3}, - {8.041E+0, 9.071E+0, 1.263E+4, 4.045E+2, 4.540E-3}, - {7.488E+0, 8.444E+0, 1.283E+4, 4.069E+2, 4.420E-3}, - {7.291E+0, 8.219E+0, 1.303E+4, 4.093E+2, 4.298E-3}, - {7.098E+0, 8.000E+0, 1.323E+4, 4.118E+2, 4.182E-3}, + {7.500E+0f, 8.480E+0f, 8.608E+3f, 3.480E+2f, 9.074E-3f}, + {6.979E+0f, 7.871E+0f, 1.162E+4f, 3.924E+2f, 4.402E-3f}, + {7.725E+0f, 8.716E+0f, 1.183E+4f, 3.948E+2f, 4.376E-3f}, + {8.337E+0f, 9.425E+0f, 1.051E+4f, 2.696E+2f, 6.206E-3f}, + {7.287E+0f, 8.218E+0f, 1.223E+4f, 3.997E+2f, 4.447E-3f}, + {7.899E+0f, 8.911E+0f, 1.243E+4f, 4.021E+2f, 4.511E-3f}, + {8.041E+0f, 9.071E+0f, 1.263E+4f, 4.045E+2f, 4.540E-3f}, + {7.488E+0f, 8.444E+0f, 1.283E+4f, 4.069E+2f, 4.420E-3f}, + {7.291E+0f, 8.219E+0f, 1.303E+4f, 4.093E+2f, 4.298E-3f}, + {7.098E+0f, 8.000E+0f, 1.323E+4f, 4.118E+2f, 4.182E-3f}, // Z= 61-70 - {6.909E+0, 7.786E+0, 1.343E+4, 4.142E+2, 4.058E-3}, - {6.728E+0, 7.580E+0, 1.362E+4, 4.166E+2, 3.976E-3}, - {6.551E+0, 7.380E+0, 1.382E+4, 4.190E+2, 3.877E-3}, - {6.739E+0, 7.592E+0, 1.402E+4, 4.214E+2, 3.863E-3}, - {6.212E+0, 6.996E+0, 1.421E+4, 4.239E+2, 3.725E-3}, - {5.517E+0, 6.210E+0, 1.440E+4, 4.263E+2, 3.632E-3}, - {5.220E+0, 5.874E+0, 1.460E+4, 4.287E+2, 3.498E-3}, - {5.071E+0, 5.706E+0, 1.479E+4, 4.330E+2, 3.405E-3}, - {4.926E+0, 5.542E+0, 1.498E+4, 4.335E+2, 3.342E-3}, - {4.788E+0, 5.386E+0, 1.517E+4, 4.359E+2, 3.292E-3}, + {6.909E+0f, 7.786E+0f, 1.343E+4f, 4.142E+2f, 4.058E-3f}, + {6.728E+0f, 7.580E+0f, 1.362E+4f, 4.166E+2f, 3.976E-3f}, + {6.551E+0f, 7.380E+0f, 1.382E+4f, 4.190E+2f, 3.877E-3f}, + {6.739E+0f, 7.592E+0f, 1.402E+4f, 4.214E+2f, 3.863E-3f}, + {6.212E+0f, 6.996E+0f, 1.421E+4f, 4.239E+2f, 3.725E-3f}, + {5.517E+0f, 6.210E+0f, 1.440E+4f, 4.263E+2f, 3.632E-3f}, + {5.220E+0f, 5.874E+0f, 1.460E+4f, 4.287E+2f, 3.498E-3f}, + {5.071E+0f, 5.706E+0f, 1.479E+4f, 4.330E+2f, 3.405E-3f}, + {4.926E+0f, 5.542E+0f, 1.498E+4f, 4.335E+2f, 3.342E-3f}, + {4.788E+0f, 5.386E+0f, 1.517E+4f, 4.359E+2f, 3.292E-3f}, // Z= 71-80 - {4.893E+0, 5.505E+0, 1.536E+4, 4.384E+2, 3.243E-3}, - {5.028E+0, 5.657E+0, 1.555E+4, 4.408E+2, 3.195E-3}, - {4.738E+0, 5.329E+0, 1.574E+4, 4.432E+2, 3.186E-3}, - {4.587E+0, 5.160E+0, 1.541E+4, 4.153E+2, 3.406E-3}, - {5.201E+0, 5.851E+0, 1.612E+4, 4.416E+2, 3.122E-3}, - {5.071E+0, 5.704E+0, 1.630E+4, 4.409E+2, 3.082E-3}, - {4.946E+0, 5.563E+0, 1.649E+4, 4.401E+2, 2.965E-3}, - {4.477E+0, 5.034E+0, 1.667E+4, 4.393E+2, 2.871E-3}, - // {4.856, 5.460, 18320.0, 438.5, 0.002542}, //Ziegler77 - {4.844E+0, 5.458E+0, 7.852E+3, 9.758E+2, 2.077E-2}, //ICRU49 - {4.307E+0, 4.843E+0, 1.704E+4, 4.878E+2, 2.882E-3}, + {4.893E+0f, 5.505E+0f, 1.536E+4f, 4.384E+2f, 3.243E-3f}, + {5.028E+0f, 5.657E+0f, 1.555E+4f, 4.408E+2f, 3.195E-3f}, + {4.738E+0f, 5.329E+0f, 1.574E+4f, 4.432E+2f, 3.186E-3f}, + {4.587E+0f, 5.160E+0f, 1.541E+4f, 4.153E+2f, 3.406E-3f}, + {5.201E+0f, 5.851E+0f, 1.612E+4f, 4.416E+2f, 3.122E-3f}, + {5.071E+0f, 5.704E+0f, 1.630E+4f, 4.409E+2f, 3.082E-3f}, + {4.946E+0f, 5.563E+0f, 1.649E+4f, 4.401E+2f, 2.965E-3f}, + {4.477E+0f, 5.034E+0f, 1.667E+4f, 4.393E+2f, 2.871E-3f}, + // {4.856f, 5.460f, 18320.0f, 438.5f, 0.002542f}, //Ziegler77 + {4.844E+0f, 5.458E+0f, 7.852E+3f, 9.758E+2f, 2.077E-2f}, //ICRU49 + {4.307E+0f, 4.843E+0f, 1.704E+4f, 4.878E+2f, 2.882E-3f}, // Z= 81-90 - {4.723E+0, 5.311E+0, 1.722E+4, 5.370E+2, 2.913E-3}, - {5.319E+0, 5.982E+0, 1.740E+4, 5.863E+2, 2.871E-3}, - {5.956E+0, 6.700E+0, 1.780E+4, 6.770E+2, 2.660E-3}, - {6.158E+0, 6.928E+0, 1.777E+4, 5.863E+2, 2.812E-3}, - {6.203E+0, 6.979E+0, 1.795E+4, 5.863E+2, 2.776E-3}, - {6.181E+0, 6.954E+0, 1.812E+4, 5.863E+2, 2.748E-3}, - {6.949E+0, 7.820E+0, 1.830E+4, 5.863E+2, 2.737E-3}, - {7.506E+0, 8.448E+0, 1.848E+4, 5.863E+2, 2.727E-3}, - {7.648E+0, 8.609E+0, 1.866E+4, 5.863E+2, 2.697E-3}, - {7.711E+0, 8.679E+0, 1.883E+4, 5.863E+2, 2.641E-3}, + {4.723E+0f, 5.311E+0f, 1.722E+4f, 5.370E+2f, 2.913E-3f}, + {5.319E+0f, 5.982E+0f, 1.740E+4f, 5.863E+2f, 2.871E-3f}, + {5.956E+0f, 6.700E+0f, 1.780E+4f, 6.770E+2f, 2.660E-3f}, + {6.158E+0f, 6.928E+0f, 1.777E+4f, 5.863E+2f, 2.812E-3f}, + {6.203E+0f, 6.979E+0f, 1.795E+4f, 5.863E+2f, 2.776E-3f}, + {6.181E+0f, 6.954E+0f, 1.812E+4f, 5.863E+2f, 2.748E-3f}, + {6.949E+0f, 7.820E+0f, 1.830E+4f, 5.863E+2f, 2.737E-3f}, + {7.506E+0f, 8.448E+0f, 1.848E+4f, 5.863E+2f, 2.727E-3f}, + {7.648E+0f, 8.609E+0f, 1.866E+4f, 5.863E+2f, 2.697E-3f}, + {7.711E+0f, 8.679E+0f, 1.883E+4f, 5.863E+2f, 2.641E-3f}, // Z= 91-92 - {7.407E+0, 8.336E+0, 1.901E+4, 5.863E+2, 2.603E-3}, - {7.290E+0, 8.204E+0, 1.918E+4, 5.863E+2, 2.673E-3} + {7.407E+0f, 8.336E+0f, 1.901E+4f, 5.863E+2f, 2.603E-3f}, + {7.290E+0f, 8.204E+0f, 1.918E+4f, 5.863E+2f, 2.673E-3f} }; G4double fac = 1.0 ; // Carbon specific case for E < 40 keV if ( T < 40.0 && 5 == i) { - fac = sqrt(T/40.0) ; - T = 40.0 ; + fac = sqrt(T*0.025); + T = 40.0; // Free electron gas model } else if ( T < 10.0 ) { fac = sqrt(T*0.1) ; - T =10.0 ; + T = 10.0; } // Main parametrisation - G4double slow = a[i][1] * G4Exp(G4Log(T) * 0.45) ; - G4double shigh = G4Log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ; - ionloss = slow*shigh*fac / (slow + shigh) ; + G4double x1 = (G4double)(a[i][1]); + G4double x2 = (G4double)(a[i][2]); + G4double x3 = (G4double)(a[i][3]); + G4double x4 = (G4double)(a[i][4]); + G4double slow = x1 * G4Exp(G4Log(T) * 0.45); + G4double shigh = G4Log( 1.0 + x3/T + x4*T ) * x2/T; + ionloss = slow*shigh*fac / (slow + shigh); - if ( ionloss < 0.0) { ionloss = 0.0; } + ionloss = std::max(ionloss, 0.0); return ionloss; } @@ -637,7 +644,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) @@ -655,7 +662,7 @@ G4double G4BraggModel::DEDX(const G4Material* material, G4double kineticEnergy) material->GetElementVector() ; // loop for the elements in the material - for (G4int i=0; iGetZ(), kineticEnergy) @@ -689,10 +696,10 @@ G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) // The coffecient from Table.4 of Ziegler & Manoyan - static const G4double HeEff = 2.8735 ; + static const G4float HeEff = 2.8735f; static const size_t numberOfMolecula = 53; - static const G4String nameOfMol[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", "C_6H_6", "C_4H_10", "C_4H_6", "C_4H_8O", "CCl_4", @@ -706,60 +713,56 @@ G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) "C_3H_6S", "C_4H_4S", "C_7H_8" }; - static const G4double expStopping[numberOfMolecula] = { - 66.1, 190.4, 258.7, 42.2, 141.5, - 210.9, 279.6, 198.8, 31.0, 267.5, - 122.8, 311.4, 260.3, 328.9, 391.3, - 206.6, 374.0, 422.0, 432.0, 398.0, - 554.0, 353.0, 326.0, 74.6, 220.5, - 197.4, 362.0, 170.0, 330.5, 211.3, - 262.3, 349.6, 51.3, 187.0, 236.9, - 121.9, 35.8, 247.0, 292.6, 268.0, - 262.3, 49.0, 398.9, 444.0, 22.91, - 68.0, 155.0, 84.0, 74.2, 254.7, - 306.8, 324.4, 420.0 + static const G4float expStopping[numberOfMolecula] = { + 66.1f, 190.4f, 258.7f, 42.2f, 141.5f, + 210.9f, 279.6f, 198.8f, 31.0f, 267.5f, + 122.8f, 311.4f, 260.3f, 328.9f, 391.3f, + 206.6f, 374.0f, 422.0f, 432.0f, 398.0f, + 554.0f, 353.0f, 326.0f, 74.6f, 220.5f, + 197.4f, 362.0f, 170.0f, 330.5f, 211.3f, + 262.3f, 349.6f, 51.3f, 187.0f, 236.9f, + 121.9f, 35.8f, 247.0f, 292.6f, 268.0f, + 262.3f, 49.0f, 398.9f, 444.0f, 22.91f, + 68.0f, 155.0f, 84.0f, 74.2f, 254.7f, + 306.8f, 324.4f, 420.0f } ; - static const G4double expCharge[53] = { - HeEff, HeEff, HeEff, 1.0, HeEff, - HeEff, HeEff, HeEff, 1.0, 1.0, - 1.0, HeEff, HeEff, HeEff, HeEff, + static const G4float expCharge[53] = { + HeEff, HeEff, HeEff, 1.0f, HeEff, + HeEff, HeEff, HeEff, 1.0f, 1.0f, + 1.0f, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, - HeEff, HeEff, HeEff, 1.0, HeEff, + HeEff, HeEff, HeEff, 1.0f, HeEff, HeEff, HeEff, HeEff, HeEff, HeEff, - HeEff, HeEff, 1.0, HeEff, HeEff, - HeEff, 1.0, HeEff, HeEff, HeEff, - HeEff, 1.0, HeEff, HeEff, 1.0, - 1.0, 1.0, 1.0, 1.0, HeEff, + HeEff, HeEff, 1.0f, HeEff, HeEff, + HeEff, 1.0f, HeEff, HeEff, HeEff, + HeEff, 1.0f, HeEff, HeEff, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, HeEff, HeEff, HeEff, HeEff } ; - static const G4double numberOfAtomsPerMolecula[53] = { - 3.0, 7.0, 10.0, 4.0, 6.0, - 9.0, 12.0, 7.0, 4.0, 24.0, - 12.0, 14.0, 10.0, 13.0, 5.0, - 5.0, 14.0, 18.0, 17.0, 17.0, - 24.0, 15.0, 13.0, 9.0, 8.0, - 6.0, 14.0, 8.0, 8.0, 9.0, - 10.0, 15.0, 6.0, 7.0, 7.0, - 3.0, 5.0, 5.0, 5.0, 5.0, - 9.0, 3.0, 16.0, 14.0, 3.0, - 9.0, 16.0, 11.0, 9.0, 10.0, - 10.0, 9.0, 15.0 - } ; + static const G4int numberOfAtomsPerMolecula[53] = { + 3, 7, 10, 4, 6, + 9, 12, 7, 4, 24, + 12,14, 10, 13, 5, + 5, 14, 18, 17, 17, + 24,15, 13, 9, 8, + 6, 14, 8, 8, 9, + 10,15, 6, 7, 7, + 3, 5, 5, 5, 5, + 9, 3, 16, 14, 3, + 9, 16, 11, 9, 10, + 10, 9, 15}; // Search for the compaund in the table - for (size_t i=0; iGetTotNbOfAtomsPerVolume()) / - (expCharge[i] * numberOfAtomsPerMolecula[i]) ; - SetExpStopPower125(exp125); - return true; - } + for (size_t i=0; iGetTotNbOfAtomsPerVolume()) / + ((G4double)(expCharge[i] * numberOfAtomsPerMolecula[i])); + return true; } - + } return false; } @@ -771,17 +774,18 @@ G4double G4BraggModel::ChemicalFactor(G4double kineticEnergy, // Approximation of Chemical Factor according to // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, // Nucl. Inst. & Meth. in Phys. Res. B35 (1988) 215-228. + + static const G4double gamma25 = 1.0 + 25.0*keV /proton_mass_c2; + static const G4double gamma125 = 1.0 + 125.0*keV/proton_mass_c2; + static const G4double beta25 = sqrt(1.0 - 1.0/(gamma25*gamma25)); + static const G4double beta125 = sqrt(1.0 - 1.0/(gamma125*gamma125)); + static const G4double f12525 = 1.0 + G4Exp( 1.48*(beta125/beta25 - 7.0) ); - G4double gamma = 1.0 + kineticEnergy/proton_mass_c2 ; - G4double gamma25 = 1.0 + 25.0*keV /proton_mass_c2 ; - G4double gamma125 = 1.0 + 125.0*keV/proton_mass_c2 ; - G4double beta = sqrt(1.0 - 1.0/(gamma*gamma)) ; - G4double beta25 = sqrt(1.0 - 1.0/(gamma25*gamma25)) ; - G4double beta125 = sqrt(1.0 - 1.0/(gamma125*gamma125)) ; + G4double gamma = 1.0 + kineticEnergy/proton_mass_c2; + G4double beta = sqrt(1.0 - 1.0/(gamma*gamma)); - G4double factor = 1.0 + (expStopPower125/eloss125 - 1.0) * - (1.0 + G4Exp( 1.48 * ( beta125/beta25 - 7.0 ) ) ) / - (1.0 + G4Exp( 1.48 * ( beta/beta25 - 7.0 ) ) ) ; + G4double factor = 1.0 + (expStopPower125/eloss125 - 1.0) * f12525/ + (1.0 + G4Exp( 1.48 * ( beta/beta25 - 7.0 ) ) ); return factor ; } diff --git a/source/processes/electromagnetic/standard/src/G4DeltaAngle.cc b/source/processes/electromagnetic/standard/src/G4DeltaAngle.cc index afa9944c40..7361fab5ba 100644 --- a/source/processes/electromagnetic/standard/src/G4DeltaAngle.cc +++ b/source/processes/electromagnetic/standard/src/G4DeltaAngle.cc @@ -165,9 +165,9 @@ G4DeltaAngle::SampleDirection(const G4DynamicParticle* dp, G4double x2 = totEnergy*(eTotEnergy - e) - e*eTotEnergy - totMomentum*eTotMomentum*costet + electron_mass_c2*electron_mass_c2; G4double y = -x2/x0; - if(std::fabs(y) <= 1.0) { + if(std::abs(y) <= 1.0) { cost = -(x2 + x1*sqrt(1. - y*y))/x0; - if(std::fabs(cost) <= 1.0) { isOK = true; } + if(std::abs(cost) <= 1.0) { isOK = true; } else { cost = 1.0; } } diff --git a/source/processes/electromagnetic/standard/src/G4ESTARStopping.cc b/source/processes/electromagnetic/standard/src/G4ESTARStopping.cc index 22041338df..715345a6e3 100644 --- a/source/processes/electromagnetic/standard/src/G4ESTARStopping.cc +++ b/source/processes/electromagnetic/standard/src/G4ESTARStopping.cc @@ -50,8 +50,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -static const G4double fac = MeV*cm2/g; - G4ESTARStopping::G4ESTARStopping(const G4String& datatype) { currentMaterial = 0; @@ -964,6 +962,8 @@ void G4ESTARStopping::AddData(const G4double* ekin, const G4double* stop, //G4cout << "G4ESTARStopping::AddData: idx= " << idx << G4endl; G4double x1, x2, x3, x4, x5, x6, x7; + static const G4double fac = MeV*cm2/g; + // hardtyped data if(0 == type) { sdata[idx] = new G4LPhysicsFreeVector(25, ekin[0]*MeV, ekin[24]*MeV); diff --git a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc index ed69a0ddfb..82331e4437 100755 --- a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc +++ b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GoudsmitSaundersonMscModel.cc 93663 2015-10-28 09:50:49Z gcosmo $ +// $Id: G4GoudsmitSaundersonMscModel.cc 96561 2016-04-22 14:24:58Z gcosmo $ // // ---------------------------------------------------------------------------- // @@ -132,12 +132,15 @@ G4GoudsmitSaundersonMscModel::G4GoudsmitSaundersonMscModel(const G4String& nam) rangeinit = 0.; geombig = 1.e50*mm; geomlimit = geombig; + tgeom = geombig; tlimit = 1.e+10*mm; presafety = 0.*mm; - particle = 0; - theManager = G4LossTableManager::Instance(); - firstStep = true; + particle = 0; + theManager = G4LossTableManager::Instance(); + firstStep = true; + currentKinEnergy = 0.0; + currentRange = 0.0; tlimitminfix2 = 1.*nm; par1=par2=par3= 0.0; @@ -170,11 +173,17 @@ G4GoudsmitSaundersonMscModel::G4GoudsmitSaundersonMscModel(const G4String& nam) fIsEndedUpOnBoundary = false; fIsNoScatteringInMSC = false; fIsNoDisplace = false; + fIsInsideSkin = false; + fIsWasOnBoundary = false; + fIsFirstRealStep = false; fZeff = 1.; -//+++++++++++++ + //+++++++++++++ rndmEngineMod = G4Random::getTheEngine(); + + //=================== base + facsafety = 0.6; } //////////////////////////////////////////////////////////////////////////////// @@ -194,11 +203,9 @@ G4GoudsmitSaundersonMscModel::~G4GoudsmitSaundersonMscModel(){ //////////////////////////////////////////////////////////////////////////////// void G4GoudsmitSaundersonMscModel::Initialise(const G4ParticleDefinition* p, - const G4DataVector&){ - //skindepth=skin*stepmin; + const G4DataVector&){ SetParticle(p); fParticleChange = GetParticleChangeForMSC(p); - // // -create static GoudsmitSaundersonTable and PWATotalXsecTable is necessary // @@ -280,18 +287,18 @@ G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(const G4ParticleDefinitio fScrA = fgGSTable->GetScreeningParam(fG1); } else { // Get SCREENING FROM MOLIER - // total mometum square in Geant4 internal energy2 units which is MeV2 // below 1 keV it can give bananas so prevet (1 keV) if(efEnergy<0.001) efEnergy = 0.001; + // 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(); G4double bc = fgGSTable->GetMoliereBc(matindx); fScrA = fgGSTable->GetMoliereXc2(matindx)/(4.0*pt2*bc); // total elastic mean free path in Geant4 internal lenght units - fLambda0 = beta2/bc/(1.+fScrA); + fLambda0 = beta2/bc;//*(1.+fScrA); fG1 = 2.0*fScrA*((1.0+fScrA)*G4Log(1.0/fScrA+1.0)-1.0); fLambda1 = fLambda0/fG1; } @@ -326,32 +333,27 @@ G4GoudsmitSaundersonMscModel::GetTransportMeanFreePathOnly(const G4ParticleDefin ->GetPWATotalXsecEnergyBinIndex(efEnergy); for(G4int i=0;iGetZ()); - // total elastic scattering cross section in Geant4 internal length2 units -// int indx = (G4int)(1.5 + charge*1.5); // specify that want to get the total elastic scattering xsection -// double elxsec = (fgPWAXsecTable->GetPWATotalXsecForZet(zet))->GetInterpXsec(efEnergy,elowindx,indx); // first transport cross section in Geant4 internal length2 units int indx = (G4int)(2.5 + charge*1.5); // specify that want to get the first tarnsport xsection double t1xsec = (fgPWAXsecTable->GetPWATotalXsecForZet(zet))->GetInterpXsec(efEnergy,elowindx,indx); -// fLambda0 += (theAtomNumDensityVector[i]*elxsec); lambda1 += (theAtomNumDensityVector[i]*t1xsec); } -// if(fLambda0>0.0) { fLambda0 =1./fLambda0; } if(lambda1>0.0) { lambda1 =1./lambda1; } } else { // Get SCREENING FROM MOLIER - // total mometum square in Geant4 internal energy2 units which is MeV2 // below 1 keV it can give bananas so prevet (1 keV) if(efEnergy<0.001) efEnergy = 0.001; + // 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(); G4double bc = fgGSTable->GetMoliereBc(matindx); scrA = fgGSTable->GetMoliereXc2(matindx)/(4.0*pt2*bc); // total elastic mean free path in Geant4 internal lenght units - lambda0 = beta2/bc/(1.+scrA); + lambda0 = beta2/bc;//*(1.+scrA); g1 = 2.0*scrA*((1.0+scrA)*G4Log(1.0/scrA+1.0)-1.0); lambda1 = lambda0/g1; } @@ -364,6 +366,7 @@ void G4GoudsmitSaundersonMscModel::StartTracking(G4Track* track) { SetParticle(track->GetDynamicParticle()->GetDefinition()); firstStep = true; + tlimit = tgeom = rangeinit = geombig; } @@ -371,11 +374,6 @@ void G4GoudsmitSaundersonMscModel::StartTracking(G4Track* track) G4double G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit( const G4Track& track, G4double& currentMinimalStep){ - // some constant - const G4double almostZero = 1.e-8; - const G4double almostOne = 1.-almostZero; - const G4double mlogAlmostZero = -1.*G4Log(almostZero); - const G4double onemExpmOne = 1.-G4Exp(-1.0); G4double skindepth = 0.; @@ -419,185 +417,250 @@ G4double G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit( // get pre-step point safety presafety = sp->GetSafety(); - fZeff = currentCouple->GetMaterial()->GetTotNbOfElectPerVolume()/ - currentCouple->GetMaterial()->GetTotNbOfAtomsPerVolume(); + // Zeff = TotNbOfElectPerVolume/TotNbOfAtomsPerVolume + fZeff = currentCouple->GetMaterial()->GetIonisation()->GetZeffective(); + + // distance will take into account max-fluct. G4double distance = currentRange; distance *= (1.20-fZeff*(1.62e-2-9.22e-5*fZeff)); - // In G4VMscModel there is a member G4MscStepLimitType steppingAlgoritm; - if( steppingAlgorithm == fUseDistanceToBoundary || steppingAlgorithm == fUseSafety ) { - // Possible optimization : if the range is samller than the safety -> the - // particle will never leave this volume -> dispalcement and angular - // deflection as the effects of multiple elastic scattering can be skipped - // Only true->geometrical->true pathlength conversion is done based on mean - // values. In order to be able to do this, only the maximum geometrical step - // length will be checked. - // Important : this optimization can cause problems if one does scoring - // in a bigger volume since MSC won't be done deep inside the volume when - // range < safety so don't use optimized-mode in such case. - if( fgIsOptimizationOn && (distance < presafety) ) { - // Do path length conversion using the means and do NOT sample dispalcement. - // :: according to optimized-mode: - // restrict the true step length such that the corresponding - // transport length is not longer than the first transport mean free path: - // -this is important for the g->t conversion (i.e. fTheZPathLenght -> - // fTheTrueStepLenght) that will be invoked later based on the mean - // values. However, it leads to fTheTrueStepLenght >> lambda1 and - // the MSC model as condensed simulation model is valid about - // fTheTrueStepLenght ~ lambda1 that corresponds to ~ 1 rad - // in one sub-step if we divide the true step length into two parts when - // sampling the angular distribution. - fTheTrueStepLenght = std::min(fTheTrueStepLenght, fLambda1*mlogAlmostZero); - fTheZPathLenght = fLambda1*(1.-G4Exp(-fTheTrueStepLenght/fLambda1)); - // Indicate that we need to do MSC after transportation and no dispalcement. - fIsMultipleSacettring = true; - fIsNoDisplace = true; - } else { - if(steppingAlgorithm == fUseDistanceToBoundary) { - geomlimit = ComputeGeomLimit(track, presafety, currentRange); - } else { - presafety = ComputeSafety(sp->GetPosition(),fTheTrueStepLenght); - geomlimit = presafety; - } + // + // Possible optimization : if the distance is samller than the safety -> the + // particle will never leave this volume -> dispalcement + // as the effect of multiple elastic scattering can be skipped + // Important : this optimization can cause problems if one does scoring + // in a bigger volume since MSC won't be done deep inside the volume when + // distance < safety so don't use optimized-mode in such case. + if( fgIsOptimizationOn && (distance < presafety) ) { + // Indicate that we need to do MSC after transportation and no dispalcement. + fIsMultipleSacettring = true; + fIsNoDisplace = true; + } else if( steppingAlgorithm == fUseDistanceToBoundary ){ + //Compute geomlimit (and presafety) : + // - geomlimit will be: + // == the straight line distance to the boundary if currentRange is + // longer than that + // == a big value [geombig = 1.e50*mm] if currentRange is shorter than + // the straight line distance to the boundary + // - presafety will be updated as well + // So the particle can travell 'gemlimit' distance (along a straight + // line!) in its current direction: + // (1) before reaching a boundary (geomlimit < geombig) OR + // (2) before reaching its current range (geomlimit == geombig) + geomlimit = ComputeGeomLimit(track, presafety, currentRange); - // Set limit from range factor even in non-optimized mode. - // Important: At lower energies the energy loss process continuous limit - // will converge to range. - // In this case, we will limit the step to 'facrange x range' as long - // as the range is higher than safety i.e. the particle can leave the - // current volume. One can completely eliminate this limit by setting - // 'facrange = 1.' . - if(currentRange > presafety) - fTheTrueStepLenght = std::min(facrange*currentRange, fTheTrueStepLenght); + // Record that the particle is on a boundary + if( (stepStatus==fGeomBoundary) || (stepStatus==fUndefined && presafety==0.0)) + fIsWasOnBoundary = true; - // Compute skin-depth; fLambda0(elastic-mfp) was already set in - // GetTransportMeanFreePath(...) - skindepth = skin*fLambda0; + // Set skin depth = skin x elastic_mean_free_path + skindepth = skin*fLambda0; + // Init the flag that indicates that the particle are within a skindepth + // distance from a boundary + fIsInsideSkin = false; + // Check if we can try Single Scattering because we are within skindepth + // distance from/to a boundary OR the current minimum true-step-length is + // shorter than skindepth. NOTICE: the latest has only efficieny reasons + // because the MSC angular sampling is fine for any short steps but much + // faster to try single scattering in case of short steps. + if( (stepStatus == fGeomBoundary) || (presafety < skindepth) || (fTheTrueStepLenght < skindepth)){ + // check if we are within skindepth distance from a boundary + if( (stepStatus == fGeomBoundary) || (presafety < skindepth)) + fIsInsideSkin = true; + //Try single scattering: + // - sample distance to next single scattering interaction (sslimit) + // - compare to current minimum length + // == if sslimit is the shorter: + // - set the step length to sslimit + // - indicate that single scattering needs to be done + // == else : nothing to do + //- in both cases, the step length was very short so geometrical and + // true path length are the same + G4double sslimit = -1.*fLambda0*G4Log(rndmEngineMod->flat()); + // compare to current minimum step length + if(sslimit < fTheTrueStepLenght) { + fTheTrueStepLenght = sslimit; + fIsSingleScattering = true; + } - // Limit the true step -length to the first transport mean free path that - // is the limit of the MSC model. Note: if the true step lenght is about - // half transport mean free path i.e. t = 0.5 x lambda_1 the corresponding - // mean angular deflection = exp(-t/lambda_1) -> \theta ~ - // 0.919 radian (52.6 degree) that is the aplicability limit of any - // condensed history techniques. The result will be more and more - // questionable when condensed history techniques are applied for even - // longer true step lengts. -// if( (currentKinEnergy > 0.3) || !fgIsOptimizationOn) - fTheTrueStepLenght = std::min(fTheTrueStepLenght, fLambda1*almostOne); + // short step -> true step length equal to geometrical path length + fTheZPathLenght = fTheTrueStepLenght; + // Set taht everything is done in step-limit phase so no MSC call + // We will check if we need to perform the single-scattering angular + // sampling i.e. if single elastic scattering was the winer! + fIsEverythingWasDone = true; + } else { + // After checking we know that we cannot try single scattering so we will + // need to make an MSC step + // Indicate that we need to make and MSC step. We do not check if we can + // do it now i.e. if presafety>final_true_step_length so we let the + // fIsEverythingWasDone = false which indicates that we will perform + // MSC after transportation. + fIsMultipleSacettring = true; - // Check if we are within skin depth to/from boundary or making a step - // that is shorter than skindepth distance => try single scattering:: - // - if stepStatus is fGeomBoundary -> pre-step point is on boundary - // - in case of initStep pre-step point status is fUndefined: - // at the moment I always call the navigator CheckNextStep even from - // the WORLD that will set presafety; if presafety = 0 then we are on - // the boundary at initStep - // - if the currentMinimalStep is already shorter than skindepth we do - // single scattering. NOTICE: it has only efficieny reasons because - // the angular sampling is fine for any short steps but much faster to - // try single scattering in case of short steps. - if( (stepStatus == fGeomBoundary) || (presafety < skindepth) || (fTheTrueStepLenght < skindepth)){ - //Try single scattering: - // - sample distance to next single scattering interaction - // - compare to current minimum length - // * if ss-length is the shorter: - // - set the step length to the ss-length - // - indicate that single scattering needs to be done - // * else : nothing to do - G4double sslimit = -1.*fLambda0*G4Log(G4UniformRand()); - // compare to current minimum step length - if(sslimit < fTheTrueStepLenght) { - fTheTrueStepLenght = sslimit; - fIsSingleScattering = true; - // zPathLength = tPathLength - // single scattering needs to be done - } //else { - //- tPathLength = tPathLength - //- zPathLength = tPathLength - //-> nothing to do - //} + // Init the first-real-step falg: it will indicate if we do the first + // non-single scattering step in this volume with this particle + fIsFirstRealStep = false; + // If previously the partcile was on boundary it was within skin as + // well. When it is not within skin anymore it has just left the skin + // so we make the first real MSC step with the particle. + if(fIsWasOnBoundary && !fIsInsideSkin){ + // reset the 'was on boundary' indicator flag + fIsWasOnBoundary = false; + fIsFirstRealStep = true; + } - // short step -> true step length equal to geometrical path length - fTheZPathLenght = fTheTrueStepLenght; - //set taht everything is done in step-limit phase - fIsEverythingWasDone = true; - } else { - // Compare the true step length to presafty to see if we can do safe MSC step - // - if yes, then performe MSC here - // - if no, postpone MSC sampling after transportation - if(fTheTrueStepLenght < presafety) { - // => we can do safe MSC step because for sure we don't reach boundary - // do multiple scattering: MSC will give the corresponding transport - // length i.e. fTheZPathLenght (and new direction, displacement) - fIsMultipleSacettring = true; - //set taht everything was done in step-limit phase - fIsEverythingWasDone = true; + // If this is the first-real msc step (the partcile has just left the + // skin) or this is the first step with the particle (was born or + // primary): + // - set the initial range that will be used later to limit its step + // (only in this volume, because after boundary crossing at the + // first-real MSC step we will reset) + // - don't let the partcile to cross the volume just in one step + if(firstStep || fIsFirstRealStep){ + rangeinit = currentRange; + // If geomlimit < geombig than the particle might reach the boundary + // along its initial direction before losing its energy (in this step) + // Otherwise we can be sure that the particle will lose it energy + // before reaching the boundary along a starigth line so there is no + // geometrical limit appalied. [However, tgeom is set only in the + // first or the first-real MSC step. After the first or first real + // MSC step the direction will change tgeom won't guaranty anything! + // But we will try to end up within skindepth from the boundary using + // the actual value of geomlimit(See later at step reduction close to + // boundary).] + if(geomlimit < geombig){ + // transfrom straight line distance to the boundary to real step + // length based on the mean values (using the prestep point + // first-transport mean free path i.e. no energy loss correction) + if((1.-geomlimit/fLambda1) > 0.) + geomlimit = -fLambda1*G4Log(1.-geomlimit/fLambda1); + // the 2-different case that could lead us here + if(firstStep) + tgeom = 2.*geomlimit/facgeom; + else + tgeom = geomlimit/facgeom; } else { - // => we cannot be sure at this point what will be the true step length - // because transportation can hit boundary. The two step limit version - // will be different but both case MSC will need to be done: - // before(fUseSafety) OR after(fUseDistanceToBoundary) transportation. - fIsMultipleSacettring = true; - // Important that fIsEverythingWasDone remains false here; - - // two versions will be different here - if(geomlimit > presafety) { - // => It can happen only if fUseDistanceToBoundary stepping is used - // - limit geomlimit to a geometrical value, that corresponds - // to the maximum true step length i.e. to lambda1 - // - convert the limited geomlimit to true length - // - take minimum of this and the current minimal true step length - - // if geom limit is not huge(real distance to boundary) then shorten it by almost skindepth - // => we try to end up within the skindepth to the boundary and not on the boundary. - if( geomlimit < geombig ) - geomlimit -= 0.999*skindepth; - - // Set a maximum geometrical limit: a straight line distance that - // corresponds to the maximal true step length i.e. lambda1 of - // the MSC model (it is set based on the mean value). - geomlimit = std::min(geomlimit, fLambda1*onemExpmOne); - // convert to true-one - geomlimit = -fLambda1*G4Log(1.-geomlimit/fLambda1); - fTheTrueStepLenght = std::min(fTheTrueStepLenght,geomlimit); - } else { - // => It can happen only if geomlimit is the safety i.e. fUseSafety - // steppingAlgorithm. - // - if we are here, then presafety is for sure shorther than lambda1 so - // we don't need to restrict - // -limit the true step-length to presafety: for sure we can - // perform MSC before transportation. - fTheTrueStepLenght = presafety; // geomlimit = presafty - fIsEverythingWasDone = true; - } + tgeom = geombig; } - } + } + + // True step length limit from range factor. Noteice, that the initial + // range is used that was set at the first step or first-real MSC step + // in this volume with this particle. + tlimit = facrange*rangeinit; + // Take the minimum of the true step length limits coming from + // geometrical constraint or range-factor limitation + tlimit = std::min(tlimit,tgeom); + + // Step reduction close to boundary: we try to end up within skindepth + // from the boundary ( Notice: in case of mag. field it might not work + // because geomlimit is the straigth line distance to the boundary in + // the currect direction (if geomlimitgeom. + if(geomlimit < geombig) + tlimit = std::min(tlimit, geomlimit-0.999*skindepth); + + // randomize 1st step or 1st 'normal' step in volume + if(firstStep || fIsFirstRealStep) { + fTheTrueStepLenght = std::min(fTheTrueStepLenght, Randomizetlimit()); + } else { + fTheTrueStepLenght = std::min(fTheTrueStepLenght, tlimit); + } + } + } else if (steppingAlgorithm == fUseSafety) { // THE ERROR_FREE stepping alg. + presafety = ComputeSafety(sp->GetPosition(),fTheTrueStepLenght); + geomlimit = presafety; + + // Set skin depth = skin x elastic_mean_free_path + skindepth = skin*fLambda0; + // Check if we can try Single Scattering because we are within skindepth + // distance from/to a boundary OR the current minimum true-step-length is + // shorter than skindepth. NOTICE: the latest has only efficieny reasons + // because the MSC angular sampling is fine for any short steps but much + // faster to try single scattering in case of short steps. + if( (stepStatus == fGeomBoundary) || (presafety < skindepth) || (fTheTrueStepLenght < skindepth)){ + //Try single scattering: + // - sample distance to next single scattering interaction (sslimit) + // - compare to current minimum length + // == if sslimit is the shorter: + // - set the step length to sslimit + // - indicate that single scattering needs to be done + // == else : nothing to do + //- in both cases, the step length was very short so geometrical and + // true path length are the same + G4double sslimit = -1.*fLambda0*G4Log(rndmEngineMod->flat()); + // compare to current minimum step length + if(sslimit < fTheTrueStepLenght) { + fTheTrueStepLenght = sslimit; + fIsSingleScattering = true; } + + // short step -> true step length equal to geometrical path length + fTheZPathLenght = fTheTrueStepLenght; + // Set taht everything is done in step-limit phase so no MSC call + // We will check if we need to perform the single-scattering angular + // sampling i.e. if single elastic scattering was the winer! + fIsEverythingWasDone = true; + } else { + // After checking we know that we cannot try single scattering so we will + // need to make an MSC step + // Indicate that we need to make and MSC step. + fIsMultipleSacettring = true; + fIsEverythingWasDone = true; + + // limit from range factor + fTheTrueStepLenght = std::min(fTheTrueStepLenght, facrange*currentRange); + + // never let the particle go further than the safety if we are out of the skin + // if we are here we are out of the skin, presafety > 0. + if(fTheTrueStepLenght > presafety) + fTheTrueStepLenght = std::min(fTheTrueStepLenght, presafety); + + // make sure that we are still within the aplicability of condensed histry model + // i.e. true step length is not longer than first transport mean free path. + // We schould take into account energy loss along 0.5x lambda_transport1 + // step length as well. So let it 0.4 x lambda_transport1 + fTheTrueStepLenght = std::min(fTheTrueStepLenght, fLambda1*0.4); + } } else { // This is the default stepping algorithm: the fastest but the least // accurate that corresponds to fUseSafety in Urban model. Note, that GS // model can handle any short steps so we do not need the minimum limits + + // NO single scattering in case of skin or short steps (by defult the MSC + // model will be single or even no scattering in case of short steps + // compared to the elastic mean free path.) + + // indicate that MSC needs to be done (always and always after transportation) + fIsMultipleSacettring = true; + if( stepStatus != fGeomBoundary ) { presafety = ComputeSafety(sp->GetPosition(),fTheTrueStepLenght); } // Far from boundary-> in optimized mode do not sample dispalcement. - if( (currentRange < presafety) && (fgIsOptimizationOn)) { -// fTheTrueStepLenght = std::min(fTheTrueStepLenght, fLambda1*mlogAlmostZero); -// fTheZPathLenght = fLambda1*(1.-G4Exp(-fTheTrueStepLenght/fLambda1)); + if( (distance < presafety) && (fgIsOptimizationOn)) { fIsNoDisplace = true; } else { // Urban like if(firstStep || (stepStatus == fGeomBoundary)) { rangeinit = currentRange; fr = facrange; - rangeinit = std::max(rangeinit, fLambda1); - if(fLambda1 > lambdalimit) { - fr *= (0.75+0.25*fLambda1/lambdalimit); - } +// We don't use this: we won't converge to the single scattering results with +// decreasing range-factor. +// rangeinit = std::max(rangeinit, fLambda1); +// if(fLambda1 > lambdalimit) { +// fr *= (0.75+0.25*fLambda1/lambdalimit); +// } + } //step limit @@ -609,15 +672,7 @@ G4double G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit( } else { fTheTrueStepLenght = std::min(fTheTrueStepLenght, tlimit); } - - // Do not let the true step length to be longer than the one that has a - // corresponding geometrical length almost one first transport mean free - // path. It is important for the g->t conversion. - fTheTrueStepLenght = std::min(fTheTrueStepLenght, fLambda1*mlogAlmostZero); } - - // indicate that MSC needs to be done (always after transportation) - fIsMultipleSacettring = true; } // unset first-step @@ -629,7 +684,7 @@ G4double G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit( // sample single scattering G4double cost,sint,cosPhi,sinPhi; SingleScattering(cost, sint); - G4double phi = CLHEP::twopi*G4UniformRand(); + G4double phi = CLHEP::twopi*rndmEngineMod->flat(); sinPhi = std::sin(phi); cosPhi = std::cos(phi); fTheNewDirection.set(sint*cosPhi,sint*sinPhi,cost); @@ -696,9 +751,8 @@ G4double G4GoudsmitSaundersonMscModel::ComputeGeomPathLength(G4double) G4Pow *g4pow = G4Pow::GetInstance(); fTheZPathLenght = 1./(par1*par3) * (1.-g4pow->powA(1.-par1*fTheTrueStepLenght,par3)); } - - fTheZPathLenght = std::min(fTheZPathLenght, fLambda1); } + fTheZPathLenght = std::min(fTheZPathLenght, fLambda1); return fTheZPathLenght; } @@ -721,6 +775,12 @@ G4double G4GoudsmitSaundersonMscModel::ComputeTrueStepLength(G4double geomStepLe fTheZPathLenght = geomStepLength; + // was a short single scattering step + if(fIsEverythingWasDone && !fIsMultipleSacettring) { + fTheTrueStepLenght = geomStepLength; + return fTheTrueStepLenght; + } + // t = z for very small step if(geomStepLength < tlimitminfix2) { fTheTrueStepLenght = geomStepLength; @@ -748,40 +808,57 @@ G4double G4GoudsmitSaundersonMscModel::ComputeTrueStepLength(G4double geomStepLe //////////////////////////////////////////////////////////////////////////////// G4ThreeVector& -G4GoudsmitSaundersonMscModel::SampleScattering(const G4ThreeVector& oldDirection, - G4double) -{ - - - if(fIsEndedUpOnBoundary && ( (steppingAlgorithm == fUseSafety) || (steppingAlgorithm == fUseDistanceToBoundary) )){ - // transportation was the winer => do nothing - fTheDisplacementVector.set(0.,0.,0.); - return fTheDisplacementVector; - } else if(fIsEverythingWasDone) { - // everything was done in the step limit => rotate and return - // but do it only something happend in the MSC - if(!fIsNoScatteringInMSC) { +G4GoudsmitSaundersonMscModel::SampleScattering(const G4ThreeVector& oldDirection, G4double) { + if(steppingAlgorithm == fUseDistanceToBoundary && fIsEverythingWasDone && fIsSingleScattering){ // ONLY single scattering is done in advance + // single scattering was and scattering happend fTheNewDirection.rotateUz(oldDirection); - fTheDisplacementVector.rotateUz(oldDirection); +// fTheDisplacementVector.set(0.,0.,0.); fParticleChange->ProposeMomentumDirection(fTheNewDirection); - } - return fTheDisplacementVector; - } + return fTheDisplacementVector; + } else if(steppingAlgorithm == fUseSafety) { + if(fIsEndedUpOnBoundary) {// do nothing +// fTheDisplacementVector.set(0.,0.,0.); + return fTheDisplacementVector; + } else if(fIsEverythingWasDone) {// evrything is done if not optimizations case !!! + // check single scattering and see if it happened + if(fIsSingleScattering) { + fTheNewDirection.rotateUz(oldDirection); + // fTheDisplacementVector.set(0.,0.,0.); + fParticleChange->ProposeMomentumDirection(fTheNewDirection); + return fTheDisplacementVector; + } - //else { - // MSC needs to be done here: cause we went further than safety but did not hit boundary + // check if multiple scattering happened and do things only if scattering was really happening + if(fIsMultipleSacettring && !fIsNoScatteringInMSC){ + fTheNewDirection.rotateUz(oldDirection); + fTheDisplacementVector.rotateUz(oldDirection); + fParticleChange->ProposeMomentumDirection(fTheNewDirection); + } + // The only thing that could happen if we are here (fUseSafety and fIsEverythingWasDone) + // is that single scattering was tried but did not win so scattering did not happen. + // So no displacement and no scattering + return fTheDisplacementVector; + } + // + // The only thing that could still happen with fUseSafety is that we are in the + // optimization branch: so sample MSC angle here (no displacement) + } + + //else + // MSC needs to be done here SampleMSC(); if(!fIsNoScatteringInMSC) { fTheNewDirection.rotateUz(oldDirection); - fTheDisplacementVector.rotateUz(oldDirection); fParticleChange->ProposeMomentumDirection(fTheNewDirection); + if(!fIsNoDisplace) + fTheDisplacementVector.rotateUz(oldDirection); } return fTheDisplacementVector; } void G4GoudsmitSaundersonMscModel::SingleScattering(G4double &cost, G4double &sint){ - G4double rand1 = G4UniformRand(); + G4double rand1 = rndmEngineMod->flat(); // sampling 1-cos(theta) G4double dum0 = 2.0*fScrA*rand1/(1.0 - rand1 + fScrA); // add protections @@ -793,7 +870,6 @@ void G4GoudsmitSaundersonMscModel::SingleScattering(G4double &cost, G4double &si } - //////////////////////////////////////////////////////////////////////////////// void G4GoudsmitSaundersonMscModel::SampleMSC(){ fIsNoScatteringInMSC = false; @@ -803,12 +879,12 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ /////////////////////////////////////////// // Energy loss correction: 2 version G4double eloss = 0.0; - if (fTheTrueStepLenght > currentRange*dtrl) { +// if (fTheTrueStepLenght > currentRange*dtrl) { eloss = kineticEnergy - GetEnergy(particle,currentRange-fTheTrueStepLenght,currentCouple); - } else { - eloss = fTheTrueStepLenght*GetDEDX(particle,kineticEnergy,currentCouple); - } +// } else { +// eloss = fTheTrueStepLenght*GetDEDX(particle,kineticEnergy,currentCouple); +// } G4double tau = 0.;// = kineticEnergy/electron_mass_c2; // where kinEnergy is the mean kinetic energy @@ -821,8 +897,8 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ G4double efEnergy = kineticEnergy; G4double efStep = fTheTrueStepLenght; + G4double kineticEnergy0 = kineticEnergy; if(fgIsUseAccurate) { // - use accurate energy loss correction - G4double kineticEnergy0 = kineticEnergy; kineticEnergy -= 0.5*eloss; // mean energy along the full step // other parameters for energy loss corrections @@ -830,24 +906,20 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ tau2 = tau*tau; eps0 = eloss/kineticEnergy0; // energy loss fraction to the begin step energy epsm = eloss/kineticEnergy; // energy loss fraction to the mean step energy -// efEnergy = kineticEnergy0 * (1.0 - epsm*(6.0+10.0*tau+5.0*tau2)/(24.0*tau2+72.0*tau+48.0)); - efEnergy = kineticEnergy0 * ( 1.0 - 0.5*eps0 - eps0*eps0/(12.0*(2.0-eps0))* ( (5.*tau2 +10.*tau +6.)/( (tau+1.)*(tau+2.) ) ) ); - // the real efStep will be s*(1-efStep) - // G4double efStep = 0.166666*epsilon*epsilonp*(tau2*tau2+4.0*tau2*tau+7.0*tau2+6.0*tau+4.0)/((tau2+3.0*tau+2)2); - -// efStep = 0.166666*eps0*epsm*(4.0+tau*(6.0+tau*(7.0+tau*(4.0+tau)))); -// efStep /= ((tau2+3.0*tau+2)*(tau2+3.0*tau+2)); -// efStep = fTheTrueStepLenght*(1.0-efStep); - efStep = (1.-eps0*eps0/(3.*(2.-eps0))* (tau2*tau2 + 4.*tau2*tau + 7.*tau2 +6.*tau +4.)/( ((tau+1.)*(tau+2.))*((tau+1.)*(tau+2.)) ) ); - efStep *=fTheTrueStepLenght; + efEnergy = kineticEnergy * (1. - epsm*epsm*(6.+10.*tau+5.*tau2)/(24.*tau2+48.*tau+72.)); + G4double dum = 0.166666*(4.+tau*(6.+tau*(7.+tau*(4.+tau))))* + (epsm/((tau+1.)*(tau+2.)))*(epsm/((tau+1.)*(tau+2.))); + efStep =fTheTrueStepLenght*(1.-dum); } else { // - take only mean energy - kineticEnergy -= 0.5*eloss; // mean energy along the full step - efEnergy = kineticEnergy; - efStep = fTheTrueStepLenght; + kineticEnergy -= 0.5*eloss; // mean energy along the full step + efEnergy = kineticEnergy; + G4double factor = 1./(1. + 0.9784671*kineticEnergy); //0.9784671 = 1/(2*rm) + eps0= eloss/kineticEnergy0; + epsm= eps0/(1.-0.5*eps0); + G4double temp = 0.3*(1. - factor*(1. - 0.333333*factor))*eps0*eps0; + efStep = fTheTrueStepLenght*(1. + temp); } - ///////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////// // Compute elastic mfp, first transport mfp, screening parameter, and G1 @@ -863,27 +935,29 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ return; } + // correction from neglected term 1+A (only for Moliere parameter) + if(!fIsUsePWATotalXsecData) + lambdan = lambdan/(1.+fScrA); + G4double Qn1 = lambdan *fG1;//2.* lambdan *scrA*((1.+scrA)*log(1.+1./scrA)-1.); ///////////////////////////////////////////////////////////////////////////// // Sample scattering angles - // new direction, relative to the orriginal one is in {us,vs,ws} + // new direction, relative to the orriginal one is in {uss,vss,wss} G4double cosTheta1 =1.0,sinTheta1 =0.0, cosTheta2 =1.0, sinTheta2 =0.0; G4double cosPhi1=1.0,sinPhi1=0.0, cosPhi2 =1.0, sinPhi2 =0.0; - G4double us=0.0,vs=0.0,ws=1.0,x_coord=0.0,y_coord=0.0,z_coord=1.0; + G4double uss=0.0,vss=0.0,wss=1.0,x_coord=0.0,y_coord=0.0,z_coord=1.0; G4double u2=0.0,v2=0.0; // if we are above the upper grid limit with lambdaxG1=true-length/first-trans-mfp - // => izotropic distribution: lambG1_max =7.992 - if(0.5*Qn1 > 7.99){ - cosTheta1 = 1.-2.*G4UniformRand(); - sinTheta1 = std::sqrt((1.-cosTheta1)*(1.+cosTheta1)); - G4double phi1 = CLHEP::twopi*G4UniformRand(); - sinPhi1 = std::sin(phi1); - cosPhi1 = std::cos(phi1); - us = sinTheta1*cosPhi1; - vs = sinTheta1*sinPhi1; - ws = cosTheta1; + // => izotropic distribution: lambG1_max =7.992 but set it to 7 + if(0.5*Qn1 > 7.0){ + G4double vrand[2]; + rndmEngineMod->flatArray(2,vrand); //get 2 random number + cosTheta1 = 1.-2.*vrand[0]; + sinTheta1 = std::sqrt((1.-cosTheta1)*(1.+cosTheta1)); + cosTheta2 = 1.-2.*vrand[1]; + sinTheta2 = std::sqrt((1.-cosTheta2)*(1.+cosTheta2)); } else { // sample 2 scattering cost1, sint1, cost2 and sint2 for half path fgGSTable->Sampling(0.5*lambdan, 0.5*Qn1, fScrA, cosTheta1, sinTheta1); @@ -894,23 +968,279 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ fIsNoScatteringInMSC = true; return; } - - // sample 2 azimuthal angles - G4double phi1 = CLHEP::twopi*G4UniformRand(); - sinPhi1 = std::sin(phi1); - cosPhi1 = std::cos(phi1); - G4double phi2 = CLHEP::twopi*G4UniformRand(); - sinPhi2 = std::sin(phi2); - cosPhi2 = std::cos(phi2); - - // compute final direction realtive to z-dir - u2 = sinTheta2*cosPhi2; - v2 = sinTheta2*sinPhi2; - G4double u2p = cosTheta1*u2 + sinTheta1*cosTheta2; - us = u2p*cosPhi1 - v2*sinPhi1; - vs = u2p*sinPhi1 + v2*cosPhi1; - ws = cosTheta1*cosTheta2 - sinTheta1*u2; } + // sample 2 azimuthal angles + G4double vrand[2]; + rndmEngineMod->flatArray(2,vrand); //get 2 random number + G4double phi1 = CLHEP::twopi*vrand[0]; + sinPhi1 = std::sin(phi1); + cosPhi1 = std::cos(phi1); + G4double phi2 = CLHEP::twopi*vrand[1]; + sinPhi2 = std::sin(phi2); + cosPhi2 = std::cos(phi2); + + // compute final direction realtive to z-dir + u2 = sinTheta2*cosPhi2; + v2 = sinTheta2*sinPhi2; + G4double u2p = cosTheta1*u2 + sinTheta1*cosTheta2; + uss = u2p*cosPhi1 - v2*sinPhi1; + vss = u2p*sinPhi1 + v2*cosPhi1; + wss = cosTheta1*cosTheta2 - sinTheta1*u2; + + //////////////////////////////////////////////////////////////////// + fTheNewDirection.set(uss,vss,wss); + + // set the fTheZPathLenght if we don't sample displacement and + // we should do everything at the step-limit-phase before we return + if(fIsNoDisplace && fIsEverythingWasDone) + fTheZPathLenght = fTheTrueStepLenght; + + // in optimized-mode if the current-safety > current-range we do not use dispalcement + if(fIsNoDisplace) + return; + + ////////////////////////////////////////////////////////////////////// + // Compute final position + if(fgIsUseAccurate) { + // correction parameter + G4double par =1.; + if(Qn1<0.7) par = 1.; + else if (Qn1<7.0) par = -0.031376*Qn1+1.01356; + else par = 0.79; + + // Moments with energy loss correction + // --first the uncorrected (for energy loss) values of gamma, eta, a1=a2=0.5*(1-eta), delta + // gamma = G_2/G_1 based on G2 computed from A by using the Wentzel DCS form of G2 + G4double loga = G4Log(1.0+1.0/fScrA); + G4double gamma = 6.0*fScrA*(1.0 + fScrA)*(loga*(1.0 + 2.0*fScrA) - 2.0)/fG1; + // sample eta from p(eta)=2*eta i.e. P(eta) = eta_square ;-> P(eta) = rand --> eta = sqrt(rand) + G4double eta = std::sqrt(rndmEngineMod->flat()); + G4double eta1 = 0.5*(1 - eta); // used more than once + // 0.5 +sqrt(6)/6 = 0.9082483; + // 1/(4*sqrt(6)) = 0.1020621; + // (4-sqrt(6)/(24*sqrt(6))) = 0.026374715 + // delta = 0.9082483-(0.1020621-0.0263747*gamma)*Qn1 without energy loss cor. + G4double delta = 0.9082483-(0.1020621-0.0263747*gamma)*Qn1; + + // compute alpha1 and alpha2 for energy loss correction + G4double temp1 = 2.0 + tau; + G4double temp = (2.0+tau*temp1)/((tau+1.0)*temp1); + //Take logarithmic dependence + temp = temp - (tau+1.0)/((tau+2.0)*(loga*(1.0+fScrA)-1.0)); + temp = temp * epsm; + temp1 = 1.0 - temp; + delta = delta + 0.40824829*(eps0*(tau+1.0)/((tau+2.0)* + (loga*(1.0+fScrA)-1.0)*(loga*(1.0+2.0*fScrA)-2.0)) - 0.25*temp*temp); + G4double b = eta*delta; + G4double c = eta*(1.0-delta); + + //Calculate transport direction cosines: + // ut,vt,wt is the final position divided by the true step length + G4double w1v2 = cosTheta1*v2; + G4double ut = b*sinTheta1*cosPhi1 + c*(cosPhi1*u2 - sinPhi1*w1v2) + eta1*uss*temp1; + G4double vt = b*sinTheta1*sinPhi1 + c*(sinPhi1*u2 + cosPhi1*w1v2) + eta1*vss*temp1; + G4double wt = eta1*(1+temp) + b*cosTheta1 + c*cosTheta2 + eta1*wss*temp1; + + // long step correction + ut *=par; + vt *=par; + wt *=par; + + // final position relative to the pre-step point in the scattering frame + // ut = x_f/s so needs to multiply by s + x_coord = ut*fTheTrueStepLenght; + y_coord = vt*fTheTrueStepLenght; + z_coord = wt*fTheTrueStepLenght; + + if(fIsEverythingWasDone){ + // We sample in the step limit so set fTheZPathLenght = transportDistance + // and lateral displacement (x_coord,y_coord,z_coord-transportDistance) + //Calculate transport distance + G4double transportDistance = std::sqrt(x_coord*x_coord+y_coord*y_coord+z_coord*z_coord); + // protection + if(transportDistance>fTheTrueStepLenght) + transportDistance = fTheTrueStepLenght; + fTheZPathLenght = transportDistance; + } + // else:: we sample in the DoIt so + // the fTheZPathLenght was already set and was taken as transport along zet + fTheDisplacementVector.set(x_coord,y_coord,z_coord-fTheZPathLenght); + } else { + // compute zz = /tPathLength + // s -> true-path-length + // z -> geom-path-length:: when PRESTA is used z =(def.) + // r -> lateral displacement = s/2 sin(theta) => x_f = r cos(phi); y_f = r sin(phi) + G4double zz = 0.0; + if(fIsEverythingWasDone){ + // We sample in the step limit so set fTheZPathLenght = transportDistance + // and lateral displacement (x_coord,y_coord,z_coord-transportDistance) + if(Qn1<0.1) { // use 3-order Taylor approximation of (1-exp(-x))/x around x=0 + zz = 1.0 - Qn1*(0.5 - Qn1*(0.166666667 - 0.041666667*Qn1)); // 1/6 =0.166..7 ; 1/24=0.041.. + } else { + zz = (1.-G4Exp(-Qn1))/Qn1; + } + } else { + // we sample in the DoIt so + // the fTheZPathLenght was already set and was taken as transport along zet + zz = fTheZPathLenght/fTheTrueStepLenght; + } + + G4double rr = (1.-zz*zz)/(1.-wss*wss); // s^2 >= ^2+r^2 :: where r^2 = s^2/4 sin^2(theta) + if(rr >= 0.25) rr = 0.25; // (1-^2/s^2)/sin^2(theta) >= r^2/(s^2 sin^2(theta)) = 1/4 must hold + G4double rperp = fTheTrueStepLenght*std::sqrt(rr); // this is r/sint + x_coord = rperp*uss; + y_coord = rperp*vss; + z_coord = zz*fTheTrueStepLenght; + + if(fIsEverythingWasDone){ + G4double transportDistance = std::sqrt(x_coord*x_coord + y_coord*y_coord + z_coord*z_coord); + fTheZPathLenght = transportDistance; + } + + fTheDisplacementVector.set(x_coord,y_coord,z_coord- fTheZPathLenght); + } +} + +/* +//////////////////////////////////////////////////////////////////////////////// +void G4GoudsmitSaundersonMscModel::SampleMSC(){ + fIsNoScatteringInMSC = false; + // kinetic energy is assumed to be in Geant4 internal energy unit which is MeV + G4double kineticEnergy = currentKinEnergy; + + /////////////////////////////////////////// + // Energy loss correction: 2 versions + G4double eloss = 0.0; +// if (fTheTrueStepLenght > currentRange*dtrl) { + eloss = kineticEnergy - + GetEnergy(particle,currentRange-fTheTrueStepLenght,currentCouple); +// } else { +// eloss = fTheTrueStepLenght*GetDEDX(particle,kineticEnergy,currentCouple); +// } +//eloss*=2.; + + G4double tau = 0.;// = kineticEnergy/electron_mass_c2; // where kinEnergy is the mean kinetic energy + G4double tau2 = 0.;// = tau*tau; + G4double eps0 = 0.;// = eloss/kineticEnergy0; // energy loss fraction to the begin step energy + G4double epsm = 0.;// = eloss/kineticEnergy; // energy loss fraction to the mean step energy + + + // - init. + G4double efEnergy = kineticEnergy; + G4double efStep = fTheTrueStepLenght; + + G4double kineticEnergy0 = kineticEnergy; + if(fgIsUseAccurate) { // - use accurate energy loss correction + kineticEnergy -= 0.5*eloss; // mean energy along the full step + + // other parameters for energy loss corrections + tau = kineticEnergy/electron_mass_c2; // where kinEnergy is the mean kinetic energy + tau2 = tau*tau; + eps0 = eloss/kineticEnergy0; // energy loss fraction to the begin step energy + epsm = eloss/kineticEnergy; // energy loss fraction to the mean step energy + + +// efEnergy = kineticEnergy0 * ( 1.0 - 0.5*eps0 - eps0*eps0/(12.0*(2.0-eps0))* ( (5.*tau2 +10.*tau +6.)/( (tau+1.)*(tau+2.) ) ) ); +//EGSnrc +efEnergy = kineticEnergy * (1. - epsm*epsm*(6.+10.*tau+5.*tau2)/(24.*tau2+48.*tau+72.)); + + // the real efStep will be s*(1-efStep) + // G4double efStep = 0.166666*epsilon*epsilonp*(tau2*tau2+4.0*tau2*tau+7.0*tau2+6.0*tau+4.0)/((tau2+3.0*tau+2)2); + +// efStep = 0.166666*eps0*epsm*(4.0+tau*(6.0+tau*(7.0+tau*(4.0+tau)))); +// efStep /= ((tau2+3.0*tau+2)*(tau2+3.0*tau+2)); +// efStep = fTheTrueStepLenght*(1.0-efStep); + + +// efStep = (1.-eps0*eps0/(3.*(2.-eps0))* (tau2*tau2 + 4.*tau2*tau + 7.*tau2 +6.*tau +4.)/( ((tau+1.)*(tau+2.))*((tau+1.)*(tau+2.)) ) ); +// efStep *=fTheTrueStepLenght; +// EGSnrc +G4double dum = 0.166666*(4.+tau*(6.+tau*(7.+tau*(4.+tau))))* + (epsm/((tau+1.)*(tau+2.)))*(epsm/((tau+1.)*(tau+2.))); + efStep =fTheTrueStepLenght*(1.-dum); + } else { // - take only mean energy + kineticEnergy -= 0.5*eloss; // mean energy along the full step + efEnergy = kineticEnergy; + //Account for energy loss in the MS distribution + G4double factor = 1./(1. + 0.9784671*kineticEnergy); //0.9784671 = 1/(2*rm) + eps0= eloss/kineticEnergy0; + epsm= eps0/(1.-0.5*eps0); + G4double temp = 0.3*(1. - factor*(1. - 0.333333*factor))*eps0*eps0; + efStep = fTheTrueStepLenght*(1. + temp); + } + ///////////////////////////////////////////////////////////////////////// +//efEnergy = kineticEnergy0; +//efStep = fTheTrueStepLenght; +//eps0 =0.; +//epsm =0.; + /////////////////////////////////////////// + // Compute elastic mfp, first transport mfp, screening parameter, and G1 + fLambda1 = GetTransportMeanFreePath(particle,efEnergy); + + G4double lambdan=0.; + + if(fLambda0>0.0) { lambdan=efStep/fLambda0; } + if(lambdan<=1.0e-12) { + if(fIsEverythingWasDone) + fTheZPathLenght = fTheTrueStepLenght; + fIsNoScatteringInMSC = true; + return; + } + +// correction from neglected term 1+A + lambdan = lambdan/(1.+fScrA); + + G4double Qn1 = lambdan *fG1;//2.* lambdan *scrA*((1.+scrA)*log(1.+1./scrA)-1.); + +//if(Qn1>0.5 && !fIsNoDisplace){ + //G4cout<<" Qn1 = "< izotropic distribution: lambG1_max =7.992 but set it to 7 + if(0.5*Qn1 > 7.0){ + G4double vrand[2]; + rndmEngineMod->flatArray(2,vrand); //get 2 random number + cosTheta1 = 1.-2.*vrand[0]; + sinTheta1 = std::sqrt((1.-cosTheta1)*(1.+cosTheta1)); + cosTheta2 = 1.-2.*vrand[1]; + sinTheta2 = std::sqrt((1.-cosTheta2)*(1.+cosTheta2)); + } else { + // sample 2 scattering cost1, sint1, cost2 and sint2 for half path + fgGSTable->Sampling(0.5*lambdan, 0.5*Qn1, fScrA, cosTheta1, sinTheta1); + fgGSTable->Sampling(0.5*lambdan, 0.5*Qn1, fScrA, cosTheta2, sinTheta2); + if(cosTheta1 + cosTheta2 == 2.) { // no scattering happened + if(fIsEverythingWasDone) + fTheZPathLenght = fTheTrueStepLenght; + fIsNoScatteringInMSC = true; + return; + } + } + // sample 2 azimuthal angles + G4double vrand[2]; + rndmEngineMod->flatArray(2,vrand); //get 2 random number + G4double phi1 = CLHEP::twopi*vrand[0]; + sinPhi1 = std::sin(phi1); + cosPhi1 = std::cos(phi1); + G4double phi2 = CLHEP::twopi*vrand[1]; + sinPhi2 = std::sin(phi2); + cosPhi2 = std::cos(phi2); + + // compute final direction realtive to z-dir + u2 = sinTheta2*cosPhi2; + v2 = sinTheta2*sinPhi2; + G4double u2p = cosTheta1*u2 + sinTheta1*cosTheta2; + us = u2p*cosPhi1 - v2*sinPhi1; + vs = u2p*sinPhi1 + v2*cosPhi1; + ws = cosTheta1*cosTheta2 - sinTheta1*u2; //////////////////////////////////////////////////////////////////// fTheNewDirection.set(us,vs,ws); @@ -930,14 +1260,15 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ // correction parameters G4double par =1.; - if(Qn1<1.0) par = 1.; - else if (Qn1<7.8) par = -0.031376*Qn1+1.01356; - else par = 0.76; + if(Qn1<0.7) par = 1.; + else if (Qn1<7.0) par = -0.031376*Qn1+1.01356; + else par = 0.79; // // Compute elastic mfp, first transport mfp, screening parameter, and G1 // for the initial energy - fLambda1 = GetTransportMeanFreePath(particle,currentKinEnergy); +//!!! +//1 fLambda1 = GetTransportMeanFreePath(particle,currentKinEnergy); // Moments with energy loss correction // --first the uncorrected (for energy loss) values of gamma, eta, a1=a2=0.5*(1-eta), delta @@ -945,14 +1276,14 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ G4double loga = G4Log(1.0+1.0/fScrA); G4double gamma = 6.0*fScrA*(1.0 + fScrA)*(loga*(1.0 + 2.0*fScrA) - 2.0)/fG1; // sample eta from p(eta)=2*eta i.e. P(eta) = eta_square ;-> P(eta) = rand --> eta = sqrt(rand) - G4double rand1 = G4UniformRand(); - G4double eta = std::sqrt(rand1); + G4double eta = std::sqrt(rndmEngineMod->flat()); G4double eta1 = 0.5*(1 - eta); // used more than once // 0.5 +sqrt(6)/6 = 0.9082483; // 1/(4*sqrt(6)) = 0.1020621; // (4-sqrt(6)/(24*sqrt(6))) = 0.026374715 // delta = 0.9082483-(0.1020621-0.0263747*gamma)*Qn1 without energy loss cor. - Qn1=fTheTrueStepLenght/fLambda0*fG1; // without energy loss +//!!! +// Qn1=fTheTrueStepLenght/fLambda0*fG1; // without energy loss G4double delta = 0.9082483-(0.1020621-0.0263747*gamma)*Qn1; // compute alpha1 and alpha2 for energy loss correction @@ -1033,3 +1364,4 @@ void G4GoudsmitSaundersonMscModel::SampleMSC(){ fTheDisplacementVector.set(x_coord,y_coord,z_coord- fTheZPathLenght); } } +*/ diff --git a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc index 71809706f6..f0faa0a4dc 100644 --- a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc +++ b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GoudsmitSaundersonTable.cc 93663 2015-10-28 09:50:49Z gcosmo $ +// $Id: G4GoudsmitSaundersonTable.cc 94933 2015-12-18 09:22:52Z gcosmo $ // // ----------------------------------------------------------------------------- // @@ -389,6 +389,13 @@ G4double G4GoudsmitSaundersonTable::SampleCosThetaII(G4double lambdavalue, G4dou if(rndm2 > probOfLamG1J) ++lamg1indx; + // protection against cases when the sampled lamG1 values are not possible due + // to the fact that G1<=1 (G1 = lam_el/lam_tr1) + // -- in theory it should never happen when lamg1indx=0 but check it just to be sure + if(fgLamG1ValuesII[lamg1indx]>lambdavalue && lamg1indx>0) + --lamg1indx; + + G4int begin = lambdaindx*(fgNumLamG1II*fgNumUvalues)+lamg1indx*fgNumUvalues; // sample bin diff --git a/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc b/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc index fb7a084b56..8b5898e0cd 100644 --- a/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc +++ b/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ICRU49NuclearStoppingModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4ICRU49NuclearStoppingModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -62,9 +62,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4ICRU49NuclearStoppingModel::ad[] = {0.0}; -G4double G4ICRU49NuclearStoppingModel::ed[] = {0.0}; - using namespace std; G4ICRU49NuclearStoppingModel::G4ICRU49NuclearStoppingModel(const G4String& nam) @@ -72,7 +69,6 @@ G4ICRU49NuclearStoppingModel::G4ICRU49NuclearStoppingModel(const G4String& nam) { theZieglerFactor = eV*cm2*1.0e-15; g4pow = G4Pow::GetInstance(); - if(ad[0] == 0.0) { InitialiseNuclearStopping(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -152,41 +148,7 @@ G4ICRU49NuclearStoppingModel::NuclearStoppingPower(G4double kineticEnergy, G4double er = 32.536 * mass2 * energy / ( z12 * rm ) ; // reduced energy - if (er >= ed[0]) { nloss = ad[0]; } - else { - // the table is inverse in energy - for (G4int i=102; i>=0; --i) - { - if (er <= ed[i]) { - nloss = (ad[i] - ad[i+1])*(er - ed[i+1])/(ed[i] - ed[i+1]) + ad[i+1]; - break; - } - } - } - - // Stragling - if(lossFlucFlag) { - // G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)* - // (4.0 + 0.197*std::pow(er,-1.6991)+6.584*std::pow(er,-1.0494))) ; - G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)* - (4.0 + 0.197/(er*er) + 6.584/er)); - - nloss *= G4RandGauss::shoot(1.0,sig); - lossFlucFlag = false; - } - - nloss *= 8.462 * z12 * mass1 / rm; // Return to [ev/(10^15 atoms/cm^2] - - if ( nloss < 0.0) { nloss = 0.0; } - - return nloss; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4ICRU49NuclearStoppingModel::InitialiseNuclearStopping() -{ - const G4double nuca[104][2] = { + static const G4double nuca[104][2] = { { 1.0E+8, 5.831E-8}, { 8.0E+7, 7.288E-8}, { 6.0E+7, 9.719E-8}, @@ -305,10 +267,34 @@ void G4ICRU49NuclearStoppingModel::InitialiseNuclearStopping() { 0.0, 3.166E-3} }; - for(G4int i=0; i<104; ++i) { - ed[i] = nuca[i][0]; - ad[i] = nuca[i][1]; + if (er >= nuca[0][0]) { nloss = nuca[0][1]; } + else { + // the table is inverse in energy + for (G4int i=102; i>=0; --i) { + G4double edi = nuca[i][0]; + if (er <= edi) { + G4double edi1 = nuca[i+1][0]; + G4double ai = nuca[i][1]; + G4double ai1 = nuca[i+1][1]; + nloss = (ai - ai1)*(er - edi1)/(edi - edi1) + ai1; + break; + } + } } + + // Stragling + if(lossFlucFlag) { + G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)* + (4.0 + 0.197/(er*er) + 6.584/er)); + + nloss *= G4RandGauss::shoot(1.0,sig); + lossFlucFlag = false; + } + + nloss *= 8.462 * z12 * mass1 / rm; // Return to [ev/(10^15 atoms/cm^2] + + nloss = std::max(nloss, 0.0); + return nloss; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc b/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc index 37c8fe6a74..b48fe56099 100644 --- a/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc +++ b/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ICRU73QOModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4ICRU73QOModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,7 +66,7 @@ using namespace std; G4ICRU73QOModel::G4ICRU73QOModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), - particle(0), + particle(nullptr), isInitialised(false) { mass = charge = chargeSquare = massRate = ratio = 0.0; @@ -91,8 +91,8 @@ G4ICRU73QOModel::G4ICRU73QOModel(const G4ParticleDefinition* p, const G4String& indexZ[ZElementAvailable[i]] = i; } } - fParticleChange = 0; - denEffData = 0; + fParticleChange = nullptr; + denEffData = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -225,8 +225,8 @@ G4double G4ICRU73QOModel::DEDX(const G4Material* material, for (G4int i=0; iGetZ()), kineticEnergy) - * theAtomicNumDensityVector[i] * G4int(element->GetZ()); + eloss += DEDXPerElement(element->GetZasInt(), kineticEnergy) + * theAtomicNumDensityVector[i] * element->GetZ(); } return eloss; } @@ -291,7 +291,8 @@ G4double G4ICRU73QOModel::GetOscillatorEnergy(G4int Z, * G4AtomicShells::GetNumberOfElectrons(Z,nbOfTheShell) * PlasmaEnergy2 / (Z*Z) ; - G4double ionTerm = G4Exp(0.5) * + static const G4double exphalf = G4Exp(0.5); + G4double ionTerm = exphalf * (G4AtomicShells::GetBindingEnergy(Z,nbOfTheShell)) ; G4double ionTerm2 = ionTerm*ionTerm ; @@ -459,17 +460,20 @@ G4double G4ICRU73QOModel::MaxSecondaryEnergy(const G4ParticleDefinition* pd, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -const G4int G4ICRU73QOModel::ZElementAvailable[NQOELEM] = {1,2,4,6,7,8,10,13,14,-18, - 22,26,28,29,32,36,42,47, - 50,54,73,74,78,79,82,92}; +const G4int G4ICRU73QOModel::ZElementAvailable[NQOELEM] = + {1,2,4,6,7,8,10,13,14,-18, + 22,26,28,29,32,36,42,47, + 50,54,73,74,78,79,82,92}; -const G4int G4ICRU73QOModel::nbofShellsForElement[NQOELEM] = {1,1,2,3,3,3,3,4,5,4, - 5,5,5,5,6,4,6,6, - 7,6,6,8,7,7,9,9}; +const G4int G4ICRU73QOModel::nbofShellsForElement[NQOELEM] = + {1,1,2,3,3,3,3,4,5,4, + 5,5,5,5,6,4,6,6, + 7,6,6,8,7,7,9,9}; -const G4int G4ICRU73QOModel::startElemIndex[NQOELEM] = {0,1,2,4,7,10,13,16,20,25, - 29,34,39,44,49,55,59,65, - 71,78,84,90,98,105,112,121}; +const G4int G4ICRU73QOModel::startElemIndex[NQOELEM] = + {0,1,2,4,7,10,13,16,20,25, + 29,34,39,44,49,55,59,65, + 71,78,84,90,98,105,112,121}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc b/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc index b1452ba326..554a556dfe 100644 --- a/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc +++ b/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4InitXscPAI.cc 68797 2013-04-05 13:27:11Z gcosmo $ +// $Id: G4InitXscPAI.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // // G4InitXscPAI.cc -- class implementation file @@ -68,12 +68,12 @@ const G4double G4InitXscPAI::fSolidDensity = 0.05*g/cm3 ; // ~gas-solid border using namespace std; G4InitXscPAI::G4InitXscPAI( const G4MaterialCutsCouple* matCC) - : fPAIxscVector(NULL), - fPAIdEdxVector(NULL), - fPAIphotonVector(NULL), - fPAIelectronVector(NULL), - fChCosSqVector(NULL), - fChWidthVector(NULL) + : fPAIxscVector(nullptr), + fPAIdEdxVector(nullptr), + fPAIphotonVector(nullptr), + fPAIelectronVector(nullptr), + fChCosSqVector(nullptr), + fChWidthVector(nullptr) { G4int i, j, matIndex; diff --git a/source/processes/electromagnetic/standard/src/G4IonCoulombScatteringModel.cc b/source/processes/electromagnetic/standard/src/G4IonCoulombScatteringModel.cc index acad0e86d1..9057d2c578 100644 --- a/source/processes/electromagnetic/standard/src/G4IonCoulombScatteringModel.cc +++ b/source/processes/electromagnetic/standard/src/G4IonCoulombScatteringModel.cc @@ -80,11 +80,11 @@ G4IonCoulombScatteringModel::G4IonCoulombScatteringModel(const G4String& nam) theIonTable = G4ParticleTable::GetParticleTable()->GetIonTable(); theProton = G4Proton::Proton(); - pCuts=0; - currentMaterial = 0; - currentElement = 0; - currentCouple = 0; - fParticleChange = 0; + pCuts = nullptr; + currentMaterial = nullptr; + currentElement = nullptr; + currentCouple = nullptr; + fParticleChange = nullptr; recoilThreshold = 0.*eV; heavycorr =0; @@ -134,7 +134,7 @@ G4double G4IonCoulombScatteringModel::ComputeCrossSectionPerAtom( DefineMaterial(CurrentCouple()); - G4int iz = G4int(Z); + G4int iz = G4lrint(Z); //from lab to pCM & mu_rel of effective particle G4double tmass = proton_mass_c2; @@ -166,14 +166,13 @@ void G4IonCoulombScatteringModel::SampleSecondaries( // Choose nucleus currentElement = SelectRandomAtom(couple, particle, kinEnergy); - G4double Z = currentElement->GetZ(); - G4int iz = G4int(Z); + G4int iz = currentElement->GetZasInt(); G4int ia = SelectIsotopeNumber(currentElement); G4double mass2 = G4NucleiProperties::GetNuclearMass(ia, iz); ioncross->SetupKinematic(kinEnergy, mass2); - ioncross->SetupTarget(Z, kinEnergy, heavycorr); + ioncross->SetupTarget(currentElement->GetZ(), kinEnergy, heavycorr); //scattering angle, z1 == (1-cost) G4double z1 = ioncross->SampleCosineTheta(); diff --git a/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc b/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc index eaeb0800ce..ec12cb0242 100644 --- a/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc +++ b/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4IonFluctuations.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4IonFluctuations.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,16 +73,15 @@ using namespace std; G4IonFluctuations::G4IonFluctuations(const G4String& nam) : G4VEmFluctuationModel(nam), particle(0), - particleMass(proton_mass_c2), + particleMass(CLHEP::proton_mass_c2), charge(1.0), chargeSquare(1.0), effChargeSquare(1.0), parameter(10.0*CLHEP::MeV/CLHEP::proton_mass_c2), - minNumberInteractionsBohr(0.0), theBohrBeta2(50.0*keV/CLHEP::proton_mass_c2), minFraction(0.2), xmin(0.2), - minLoss(0.001*eV) + minLoss(0.001*CLHEP::eV) { kineticEnergy = 0.0; beta2 = 0.0; @@ -110,17 +109,17 @@ void G4IonFluctuations::InitialiseMe(const G4ParticleDefinition* part) G4double G4IonFluctuations::SampleFluctuations(const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double tmax, - G4double length, - G4double meanLoss) + const G4DynamicParticle* dp, + G4double tmax, + G4double length, + G4double meanLoss) { // G4cout << "### meanLoss= " << meanLoss << G4endl; if(meanLoss <= minLoss) return meanLoss; //G4cout << "G4IonFluctuations::SampleFluctuations E(MeV)= " // << dp->GetKineticEnergy() - // << " Elim(MeV)= " << parameter*charge*particleMass << G4endl; + // << " Elim(MeV)= " << parameter*charge*particleMass << G4endl; // Vavilov fluctuations if(dp->GetKineticEnergy() > parameter*charge*particleMass) { @@ -177,9 +176,9 @@ G4IonFluctuations::SampleFluctuations(const G4MaterialCutsCouple* couple, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4IonFluctuations::Dispersion(const G4Material* material, - const G4DynamicParticle* dp, - G4double tmax, - G4double length) + const G4DynamicParticle* dp, + G4double tmax, + G4double length) { kineticEnergy = dp->GetKineticEnergy(); G4double etot = kineticEnergy + particleMass; @@ -189,8 +188,8 @@ G4double G4IonFluctuations::Dispersion(const G4Material* material, /* G4cout << "e= " << kineticEnergy << " m= " << particleMass - << " tmax= " << tmax << " l= " << length - << " q^2= " << effChargeSquare << " beta2=" << beta2<< G4endl; + << " tmax= " << tmax << " l= " << length + << " q^2= " << effChargeSquare << " beta2=" << beta2<< G4endl; */ G4double siga = (1. - beta2*0.5)*tmax*length*electronDensity* twopi_mc2_rcl2*chargeSquare/beta2; @@ -218,7 +217,7 @@ G4double G4IonFluctuations::Dispersion(const G4Material* material, } //G4cout << "siga(keV)= " << sqrt(siga)/keV << " fac= " << fac - // << " f1= " << f1 << G4endl; + // << " f1= " << f1 << G4endl; return siga; } @@ -380,12 +379,11 @@ G4double G4IonFluctuations::Factor(const G4Material* material, G4double Z) // protons (hadrons) if(1.5 > charge) { - if( kStateGas != material->GetState() ) i = 1 ; + if( kStateGas != material->GetState() ) { i = 1; } // ions } else { - // factor = charge * pow(charge/Z, 0.33333333); factor = charge * g4pow->A13(charge/Z); if( kStateGas == material->GetState() ) { @@ -414,7 +412,7 @@ G4double G4IonFluctuations::Factor(const G4Material* material, G4double Z) G4double s2 = factor * x * b[i][0] / (y*y + x*x); /* G4cout << "s1= " << s1 << " s2= " << s2 << " q^2= " << effChargeSquare - << " e= " << energy << G4endl; + << " e= " << energy << G4endl; */ return s1*effChargeSquare/chargeSquare + s2; } @@ -422,7 +420,7 @@ G4double G4IonFluctuations::Factor(const G4Material* material, G4double Z) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4IonFluctuations::RelativisticFactor(const G4Material* mat, - G4double Z) + G4double Z) { G4double eF = mat->GetIonisation()->GetFermiEnergy(); G4double I = mat->GetIonisation()->GetMeanExcitationEnergy(); @@ -434,7 +432,7 @@ G4double G4IonFluctuations::RelativisticFactor(const G4Material* mat, else f *= G4Log(4.0*eF/I); // G4cout << "f= " << f << " beta2= " << beta2 - // << " bf2= " << bF2 << " q^2= " << chargeSquare << G4endl; + // << " bf2= " << bF2 << " q^2= " << chargeSquare << G4endl; return 1.0 + f; } @@ -442,7 +440,7 @@ G4double G4IonFluctuations::RelativisticFactor(const G4Material* mat, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4IonFluctuations::SetParticleAndCharge(const G4ParticleDefinition* part, - G4double q2) + G4double q2) { if(part != particle) { particle = part; diff --git a/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc b/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc index 2e5ae3b72c..bef1a70b01 100644 --- a/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc +++ b/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4KleinNishinaCompton.cc 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4KleinNishinaCompton.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -62,15 +62,6 @@ using namespace std; -static const G4double - d1= 2.7965e-1*CLHEP::barn, d2=-1.8300e-1*CLHEP::barn, - d3= 6.7527 *CLHEP::barn, d4=-1.9798e+1*CLHEP::barn, - e1= 1.9756e-5*CLHEP::barn, e2=-1.0205e-2*CLHEP::barn, - e3=-7.3913e-2*CLHEP::barn, e4= 2.7079e-2*CLHEP::barn, - f1=-3.9178e-7*CLHEP::barn, f2= 6.8241e-5*CLHEP::barn, - f3= 6.0480e-5*CLHEP::barn, f4= 3.0274e-4*CLHEP::barn; -static const G4int nlooplim = 1000; - G4KleinNishinaCompton::G4KleinNishinaCompton(const G4ParticleDefinition*, const G4String& nam) : G4VEmModel(nam) @@ -117,6 +108,14 @@ G4double G4KleinNishinaCompton::ComputeCrossSectionPerAtom( if (GammaEnergy <= LowEnergyLimit()) { return xSection; } static const G4double a = 20.0 , b = 230.0 , c = 440.0; + + static const G4double + d1= 2.7965e-1*CLHEP::barn, d2=-1.8300e-1*CLHEP::barn, + d3= 6.7527 *CLHEP::barn, d4=-1.9798e+1*CLHEP::barn, + e1= 1.9756e-5*CLHEP::barn, e2=-1.0205e-2*CLHEP::barn, + e3=-7.3913e-2*CLHEP::barn, e4= 2.7079e-2*CLHEP::barn, + f1=-3.9178e-7*CLHEP::barn, f2= 6.8241e-5*CLHEP::barn, + f3= 6.0480e-5*CLHEP::barn, f4= 3.0274e-4*CLHEP::barn; G4double p1Z = Z*(d1 + e1*Z + f1*Z*Z), p2Z = Z*(d2 + e2*Z + f2*Z*Z), p3Z = Z*(d3 + e3*Z + f3*Z*Z), p4Z = Z*(d4 + e4*Z + f4*Z*Z); @@ -181,6 +180,7 @@ void G4KleinNishinaCompton::SampleSecondaries( CLHEP::HepRandomEngine* rndmEngineMod = G4Random::getTheEngine(); G4double rndm[3]; + static const G4int nlooplim = 1000; G4int nloop = 0; do { ++nloop; diff --git a/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc b/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc index c216bb9caa..3f25c96fc9 100644 --- a/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4KleinNishinaModel.cc 93362 2015-10-19 13:45:19Z gcosmo $ +// $Id: G4KleinNishinaModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,16 +64,6 @@ using namespace std; -static const G4double - d1= 2.7965e-1*CLHEP::barn, d2=-1.8300e-1*CLHEP::barn, - d3= 6.7527 *CLHEP::barn, d4=-1.9798e+1*CLHEP::barn, - e1= 1.9756e-5*CLHEP::barn, e2=-1.0205e-2*CLHEP::barn, - e3=-7.3913e-2*CLHEP::barn, e4= 2.7079e-2*CLHEP::barn, - f1=-3.9178e-7*CLHEP::barn, f2= 6.8241e-5*CLHEP::barn, - f3= 6.0480e-5*CLHEP::barn, f4= 3.0274e-4*CLHEP::barn; -static const G4double dT0 = keV; -static const G4int nlooplim = 1000; - G4KleinNishinaModel::G4KleinNishinaModel(const G4String& nam) : G4VEmModel(nam), lv1(0.,0.,0.,0.), @@ -127,6 +117,14 @@ G4KleinNishinaModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, if (gammaEnergy <= LowEnergyLimit()) { return xSection; } static const G4double a = 20.0 , b = 230.0 , c = 440.0; + +static const G4double + d1= 2.7965e-1*CLHEP::barn, d2=-1.8300e-1*CLHEP::barn, + d3= 6.7527 *CLHEP::barn, d4=-1.9798e+1*CLHEP::barn, + e1= 1.9756e-5*CLHEP::barn, e2=-1.0205e-2*CLHEP::barn, + e3=-7.3913e-2*CLHEP::barn, e4= 2.7079e-2*CLHEP::barn, + f1=-3.9178e-7*CLHEP::barn, f2= 6.8241e-5*CLHEP::barn, + f3= 6.0480e-5*CLHEP::barn, f4= 3.0274e-4*CLHEP::barn; G4double p1Z = Z*(d1 + e1*Z + f1*Z*Z), p2Z = Z*(d2 + e2*Z + f2*Z*Z), p3Z = Z*(d3 + e3*Z + f3*Z*Z), p4Z = Z*(d4 + e4*Z + f4*Z*Z); @@ -139,6 +137,7 @@ G4KleinNishinaModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, + (p2Z + p3Z*X + p4Z*X*X)/(1. + a*X + b*X*X + c*X*X*X); // modification for low energy. (special case for Hydrogen) + static const G4double dT0 = keV; if (gammaEnergy < T0) { X = (T0+dT0) / electron_mass_c2 ; G4double sigma = p1Z*G4Log(1.+2*X)/X @@ -189,6 +188,7 @@ void G4KleinNishinaModel::SampleSecondaries( } // Loop on sampling + static const G4int nlooplim = 1000; G4int nloop = 0; G4double bindingEnergy, ePotEnergy, eKinEnergy; @@ -375,7 +375,7 @@ void G4KleinNishinaModel::SampleSecondaries( edep -= esec; } } - if(fabs(energy - gamEnergy1 - eKinEnergy - esec - edep) > eV) { + if(std::abs(energy - gamEnergy1 - eKinEnergy - esec - edep) > eV) { G4cout << "### G4KleinNishinaModel dE(eV)= " << (energy - gamEnergy1 - eKinEnergy - esec - edep)/eV << " shell= " << i diff --git a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc index 66980ab19a..c5e0521b34 100644 --- a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4MollerBhabhaModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4MollerBhabhaModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -213,11 +213,7 @@ G4double G4MollerBhabhaModel::ComputeDEDXPerVolume( G4double Zeff = material->GetIonisation()->GetZeffective(); G4double th = 0.25*sqrt(Zeff)*keV; - // G4double cut; - // if(isElectron) { cut = std::max(th*0.5, cutEnergy); } - // else { cut = std::max(th, cutEnergy); } - G4double tkin = kineticEnergy; - if (kineticEnergy < th) { tkin = th; } + G4double tkin = std::max(kineticEnergy, th); G4double tau = tkin/electron_mass_c2; G4double gam = tau + 1.0; diff --git a/source/processes/electromagnetic/standard/src/G4NuclearStopping.cc b/source/processes/electromagnetic/standard/src/G4NuclearStopping.cc index 08253720a6..c57f47bef2 100644 --- a/source/processes/electromagnetic/standard/src/G4NuclearStopping.cc +++ b/source/processes/electromagnetic/standard/src/G4NuclearStopping.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NuclearStopping.cc 78837 2014-01-28 08:44:36Z gcosmo $ +// $Id: G4NuclearStopping.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ----------------------------------------------------------------------------- // @@ -61,7 +61,7 @@ G4NuclearStopping::G4NuclearStopping(const G4String& processName) SetBuildTableFlag(false); enableAlongStepDoIt = true; enablePostStepDoIt = false; - modelICRU49 = 0; + modelICRU49 = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4PAIModel.cc b/source/processes/electromagnetic/standard/src/G4PAIModel.cc index 11eefe7682..1667cfe58f 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PAIModel.cc 89893 2015-05-04 07:29:17Z gcosmo $ +// $Id: G4PAIModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -77,13 +77,13 @@ using namespace std; G4PAIModel::G4PAIModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam),G4VEmFluctuationModel(nam), fVerbose(0), - fModelData(0), - fParticle(0) + fModelData(nullptr), + fParticle(nullptr) { fElectron = G4Electron::Electron(); fPositron = G4Positron::Positron(); - fParticleChange = 0; + fParticleChange = nullptr; if(p) { SetParticle(p); } else { SetParticle(fElectron); } diff --git a/source/processes/electromagnetic/standard/src/G4PAIModelData.cc b/source/processes/electromagnetic/standard/src/G4PAIModelData.cc index 0060d068f6..4abb52744d 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIModelData.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIModelData.cc @@ -124,7 +124,7 @@ void G4PAIModelData::Initialise(const G4MaterialCutsCouple* couple, G4double Tmin = fSandia.GetSandiaMatTablePAI(0,0); // energy safety - const G4double deltaLow = 100.*eV; + static const G4double deltaLow = 100.*eV; for (G4int i = 0; i <= fTotBin; ++i) { diff --git a/source/processes/electromagnetic/standard/src/G4PAIPhotModel.cc b/source/processes/electromagnetic/standard/src/G4PAIPhotModel.cc index ec15f0161f..d796690e29 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIPhotModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIPhotModel.cc @@ -73,13 +73,13 @@ using namespace std; G4PAIPhotModel::G4PAIPhotModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam),G4VEmFluctuationModel(nam), fVerbose(0), - fModelData(0), - fParticle(0) + fModelData(nullptr), + fParticle(nullptr) { fElectron = G4Electron::Electron(); fPositron = G4Positron::Positron(); - fParticleChange = 0; + fParticleChange = nullptr; if(p) { SetParticle(p); } else { SetParticle(fElectron); } @@ -93,7 +93,7 @@ G4PAIPhotModel::G4PAIPhotModel(const G4ParticleDefinition* p, const G4String& na G4PAIPhotModel::~G4PAIPhotModel() { //G4cout << "G4PAIPhotModel::~G4PAIPhotModel() " << this << G4endl; - if(IsMaster()) { delete fModelData; fModelData = 0; } + if(IsMaster()) { delete fModelData; fModelData = nullptr; } } //////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/standard/src/G4PAIySection.cc b/source/processes/electromagnetic/standard/src/G4PAIySection.cc index 4abeaf90c2..a1147ec4c4 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIySection.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIySection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PAIySection.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4PAIySection.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // // G4PAIySection.cc -- class implementation file @@ -55,6 +55,8 @@ #include "G4Material.hh" #include "G4MaterialCutsCouple.hh" #include "G4SandiaTable.hh" +#include "G4Exp.hh" +#include "G4Log.hh" using namespace std; @@ -66,11 +68,6 @@ const G4double G4PAIySection::fError = 0.005; // error in lin-log approximation const G4int G4PAIySection::fMaxSplineSize = 500; // Max size of output spline // arrays -static const G4double betaBohr = fine_structure_const; -static const G4double cofBetaBohr = 4.0; -static const G4double betaBohr2 = fine_structure_const*fine_structure_const; -static const G4double betaBohr4 = betaBohr2*betaBohr2*cofBetaBohr; - ////////////////////////////////////////////////////////////////// // // Constructor @@ -82,7 +79,12 @@ G4PAIySection::G4PAIySection() fDensity = fElectronDensity = fNormalizationCof = fLowEnergyCof = 0.0; fIntervalNumber = fSplineNumber = 0; fVerbose = 0; - + + betaBohr = fine_structure_const; + G4double cofBetaBohr = 4.0; + G4double betaBohr2 = fine_structure_const*fine_structure_const; + betaBohr4 = betaBohr2*betaBohr2*cofBetaBohr; + fSplineEnergy = G4DataVector(fMaxSplineSize,0.0); fRePartDielectricConst = G4DataVector(fMaxSplineSize,0.0); fImPartDielectricConst = G4DataVector(fMaxSplineSize,0.0); @@ -97,7 +99,7 @@ G4PAIySection::G4PAIySection() for( G4int i = 0; i < 500; ++i ) { - for( G4int j = 0; j < 112; ++j ) fPAItable[i][j] = 0.0; + for( G4int j = 0; j < 112; ++j ) { fPAItable[i][j] = 0.0; } } } @@ -362,8 +364,9 @@ void G4PAIySection::NormShift(G4double betaGammaSq) } // G4cout<powN(sin(tet[i]*0.5),2); G4double func=1./(den*den); G4double fatt= targetZ/(mu_rel*gamma*beta*beta); @@ -356,8 +342,8 @@ G4double G4ScreeningMottCrossSection::AngleDistribution(G4double anglein) } G4double y=twopi*sin(anglein)*R*FormFactor2ExpHof(anglein)/ - ( (2*As+2.*G4Exp(G4Log(sin(anglein*0.5))*2.))*(2.*As+2.*G4Exp(G4Log(sin(anglein*0.5))*2.)) ); - + ( (2*As+2.*fG4pow->powN(sin(anglein*0.5),2))*(2.*As+2.*fG4pow->powN(sin(anglein*0.5),2)) ); + //G4cout<<"AngleDistribution Total Cross: "<=y-dy && r<=y+dy ){ + if(r >=y-dy && r* vdp, // majoranta G4double x0 = cut/kineticEnergy; - G4double vmax = dataSB[Z]->Value(x0, y, idx, idy)*1.02; - // G4double invbeta1 = 0; + G4double vmax; + if(Z <= 92) { + vmax = dataSB[Z]->Value(x0, y, idx, idy)*1.02; + } else { + idx = idy = 0; + vmax = dataSB[Z]->Value(x0, y, idx, idy)*1.2; + } // majoranta corrected for e- if(isElectron && x0 < 0.97 && diff --git a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc index 4e4660f88e..8ff1ae4d81 100644 --- a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc +++ b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4UniversalFluctuation.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4UniversalFluctuation.cc 95832 2016-02-26 11:12:31Z gcosmo $ // // ------------------------------------------------------------------- // @@ -87,7 +87,6 @@ G4UniversalFluctuation::G4UniversalFluctuation(const G4String& nam) :G4VEmFluctuationModel(nam), particle(0), minNumberInteractionsBohr(10.0), - theBohrBeta2(50.0*keV/proton_mass_c2), minLoss(10.*eV), nmaxCont(16.), rate(0.55), @@ -228,11 +227,10 @@ G4UniversalFluctuation::SampleFluctuations(const G4MaterialCutsCouple* couple, } } + G4double a1, a2, a3; for (G4int istep=0; istep < nstep; ++istep) { - loss = 0.; - - G4double a1 = 0. , a2 = 0., a3 = 0. ; + loss = a1 = a2 = a3 = 0.; if(tmax > ipotFluct) { G4double w2 = G4Log(2.*electron_mass_c2*beta2*gam2)-beta2; @@ -279,50 +277,21 @@ G4UniversalFluctuation::SampleFluctuations(const G4MaterialCutsCouple* couple, } //'nearly' Gaussian fluctuation if a1>nmaxCont&&a2>nmaxCont&&a3>nmaxCont G4double emean = 0.; - G4double sig2e = 0., sige = 0.; - G4double p1 = 0., p2 = 0., p3 = 0.; + G4double sig2e = 0.; // excitation of type 1 - if(a1 > nmaxCont) - { - emean += a1*e1; - sig2e += a1*e1*e1; - } - else if(a1 > 0.) - { - p1 = G4double(G4Poisson(a1)); - loss += p1*e1; - if(p1 > 0.) { - loss += (1.-2.*rndmEngineF->flat())*e1; - } - } + AddExcitation(rndmEngineF, a1, e1, emean, loss, sig2e); // excitation of type 2 - if(a2 > nmaxCont) - { - emean += a2*e2; - sig2e += a2*e2*e2; - } - else if(a2 > 0.) - { - p2 = G4double(G4Poisson(a2)); - loss += p2*e2; - if(p2 > 0.) - loss += (1.-2.*rndmEngineF->flat())*e2; - } - if(emean > 0.) - { - sige = sqrt(sig2e); - loss += max(0.,G4RandGauss::shoot(rndmEngineF,emean,sige)); - } + AddExcitation(rndmEngineF, a2, e2, emean, loss, sig2e); + + if(emean > 0.0) { SampleGauss(rndmEngineF, emean, sig2e, loss); } // ionisation - G4double lossc = 0.; if(a3 > 0.) { emean = 0.; sig2e = 0.; - sige = 0.; - p3 = a3; + G4double p3 = a3; G4double alfa = 1.; if(a3 > nmaxCont) { @@ -336,26 +305,20 @@ G4UniversalFluctuation::SampleFluctuations(const G4MaterialCutsCouple* couple, G4double w2 = alfa*e0; G4double w = (tmax-w2)/tmax; - const G4int nb = G4Poisson(p3); - if(nb > 0) { - if(nb > sizearray) { - sizearray = nb; - delete [] rndmarray; - rndmarray = new G4double[nb]; + if(w > 0.0) { + const G4int nb = G4Poisson(p3); + if(nb > 0) { + if(nb > sizearray) { + sizearray = nb; + delete [] rndmarray; + rndmarray = new G4double[nb]; + } + rndmEngineF->flatArray(nb, rndmarray); + for (G4int k=0; kflatArray(nb, rndmarray); - for (G4int k=0; k 0.) - { - sige = sqrt(sig2e); - lossc += max(0.,G4RandGauss::shoot(rndmEngineF,emean,sige)); } + if(emean > 0.0) { SampleGauss(rndmEngineF, emean, sig2e, loss); } } - - loss += lossc; - losstot += loss; } //G4cout << "Vavilov: " << losstot << " Nstep= " << nstep << G4endl; diff --git a/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc b/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc index 33ddbe9347..782e388aae 100644 --- a/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc +++ b/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc @@ -75,43 +75,6 @@ using namespace std; -static const G4double Tlim = 10.*CLHEP::MeV; -static const G4double sigmafactor = - CLHEP::twopi*CLHEP::classic_electr_radius*CLHEP::classic_electr_radius; -static const G4double epsfactor = 2.*CLHEP::electron_mass_c2* - CLHEP::electron_mass_c2*CLHEP::Bohr_radius*CLHEP::Bohr_radius - /(CLHEP::hbarc*CLHEP::hbarc); -static const G4double beta2lim = Tlim*(Tlim+2.*CLHEP::electron_mass_c2)/ - ((Tlim+CLHEP::electron_mass_c2)*(Tlim+CLHEP::electron_mass_c2)); -static const G4double bg2lim = Tlim*(Tlim+2.*CLHEP::electron_mass_c2)/ - (CLHEP::electron_mass_c2*CLHEP::electron_mass_c2); - -static const G4double sig0[15] = { - 0.2672*CLHEP::barn, 0.5922*CLHEP::barn, 2.653*CLHEP::barn, 6.235*CLHEP::barn, - 11.69*CLHEP::barn , 13.24*CLHEP::barn , 16.12*CLHEP::barn, 23.00*CLHEP::barn, - 35.13*CLHEP::barn , 39.95*CLHEP::barn , 50.85*CLHEP::barn, 67.19*CLHEP::barn, - 91.15*CLHEP::barn , 104.4*CLHEP::barn , 113.1*CLHEP::barn}; - -static const G4double Tdat[22] = { - 100*CLHEP::eV, 200*CLHEP::eV, 400*CLHEP::eV, 700*CLHEP::eV, - 1*CLHEP::keV, 2*CLHEP::keV, 4*CLHEP::keV, 7*CLHEP::keV, - 10*CLHEP::keV, 20*CLHEP::keV, 40*CLHEP::keV, 70*CLHEP::keV, - 100*CLHEP::keV, 200*CLHEP::keV, 400*CLHEP::keV, 700*CLHEP::keV, - 1*CLHEP::MeV, 2*CLHEP::MeV, 4*CLHEP::MeV, 7*CLHEP::MeV, - 10*CLHEP::MeV, 20*CLHEP::MeV}; - -static const G4double reps = 1.e-6; -static const G4double rp0 = 2.2747e+4; -static const G4double rp1 = 4.5980e+0; -static const G4double rp2 = 1.5580e+1; -static const G4double rp3 = 7.1287e-1; -static const G4double rp4 =-5.7069e-1; - -static const G4double theta0max = CLHEP::pi/6.; -static const G4double rellossmax= 0.50; -static const G4double invmev = 1.0/CLHEP::MeV; -static const G4double third = 1./3.; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4UrbanMscModel::G4UrbanMscModel(const G4String& nam) @@ -174,8 +137,8 @@ G4UrbanMscModel::G4UrbanMscModel(const G4String& nam) = zPathLength = par1 = par2 = par3 = 0; currentMaterialIndex = -1; - fParticleChange = 0; - couple = 0; + fParticleChange = nullptr; + couple = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -346,6 +309,9 @@ G4double G4UrbanMscModel::ComputeCrossSectionPerAtom( G4double bg2 = eKineticEnergy*(eTotalEnergy+electron_mass_c2) /(electron_mass_c2*electron_mass_c2); + static const G4double epsfactor = 2.*CLHEP::electron_mass_c2* + CLHEP::electron_mass_c2*CLHEP::Bohr_radius*CLHEP::Bohr_radius + /(CLHEP::hbarc*CLHEP::hbarc); G4double eps = epsfactor*bg2/Z23; if (eps skin) && !insideskin) { tPathLength = min(tPathLength, Randomizetlimit()); } @@ -655,8 +644,9 @@ G4double G4UrbanMscModel::ComputeTruePathLengthLimit( //lower limit for tlimit tlimit = max(tlimit, tlimitmin); - - if(firstStep || stepStatus == fGeomBoundary) + + // randomise if step determined by msc + if(tlimit < tPathLength) { tPathLength = min(tPathLength, Randomizetlimit()); } @@ -722,7 +712,8 @@ G4double G4UrbanMscModel::ComputeTruePathLengthLimit( } } - if(firstStep || stepStatus == fGeomBoundary) + // randomise if step determined by msc + if(tPathLength < tlimit) { tPathLength = min(tPathLength, Randomizetlimit()); } @@ -739,7 +730,8 @@ G4double G4UrbanMscModel::ComputeTruePathLengthLimit( tlimit = max(tlimit, tlimitmin); } - if(firstStep || stepStatus == fGeomBoundary) + // randomise if step determined by msc + if(tlimit < tPathLength) { tPathLength = min(tPathLength, Randomizetlimit()); } @@ -951,6 +943,7 @@ G4double G4UrbanMscModel::SampleCosineTheta(G4double trueStepLength, // too large step of low-energy particle G4double relloss = 1. - KineticEnergy/currentKinEnergy; + static const G4double rellossmax= 0.50; if(relloss > rellossmax) { return SimpleScattering(xmeanth,x2meanth); } @@ -965,6 +958,7 @@ G4double G4UrbanMscModel::SampleCosineTheta(G4double trueStepLength, extremesmallstep = true ; } + static const G4double theta0max = CLHEP::pi/6.; //G4cout << "Theta0= " << theta0 << " theta0max= " << theta0max // << " sqrt(tausmall)= " << sqrt(tausmall) << G4endl; @@ -1007,8 +1001,8 @@ G4double G4UrbanMscModel::SampleCosineTheta(G4double trueStepLength, G4double c = xsi; - if(fabs(c-3.) < 0.001) { c = 3.001; } - else if(fabs(c-2.) < 0.001) { c = 2.001; } + if(std::abs(c-3.) < 0.001) { c = 3.001; } + else if(std::abs(c-2.) < 0.001) { c = 2.001; } G4double c1 = c-1.; @@ -1104,9 +1098,9 @@ G4double G4UrbanMscModel::ComputeTheta0(G4double trueStepLength, if(particle == positron) { - const G4double xl= 0.6; - const G4double xh= 0.9; - const G4double e = 113.0; + static const G4double xl= 0.6; + static const G4double xh= 0.9; + static const G4double e = 113.0; G4double corr; G4double tau = std::sqrt(currentKinEnergy*KineticEnergy)/mass; @@ -1130,6 +1124,7 @@ G4double G4UrbanMscModel::ComputeTheta0(G4double trueStepLength, y *= corr*(1.+Zeff*(1.84035e-4*Zeff-1.86427e-2)+0.41125); } + static const G4double c_highland = 13.6*CLHEP::MeV; G4double theta0 = c_highland*std::abs(charge)*std::sqrt(y)*invbetacp; // correction factor from e- scattering data @@ -1142,6 +1137,8 @@ G4double G4UrbanMscModel::ComputeTheta0(G4double trueStepLength, void G4UrbanMscModel::SampleDisplacement(G4double sth, G4double phi) { G4double rmax = sqrt((tPathLength-zPathLength)*(tPathLength+zPathLength)); + + static const G4double third = 1./3.; G4double r = rmax*G4Exp(G4Log(rndmEngineMod->flat())*third); /* G4cout << "G4UrbanMscModel::SampleSecondaries: e(MeV)= " << kineticEnergy @@ -1204,6 +1201,14 @@ void G4UrbanMscModel::SampleDisplacementNew(G4double , G4double phi) // f(u) = p0*exp(p1*log(v)-p2*v)+v*(p3+p4*v) G4double u ,v , rej; G4int count = 0; + + static const G4double reps = 1.e-6; + static const G4double rp0 = 2.2747e+4; + static const G4double rp1 = 4.5980e+0; + static const G4double rp2 = 1.5580e+1; + static const G4double rp3 = 7.1287e-1; + static const G4double rp4 =-5.7069e-1; + do { u = reps+(1.-2.*reps)*rndmEngineMod->flat(); v = 1.-u ; diff --git a/source/processes/electromagnetic/standard/src/G4WaterStopping.cc b/source/processes/electromagnetic/standard/src/G4WaterStopping.cc index 96bded2170..6c03d3c3ac 100644 --- a/source/processes/electromagnetic/standard/src/G4WaterStopping.cc +++ b/source/processes/electromagnetic/standard/src/G4WaterStopping.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WaterStopping.cc 83008 2014-07-24 14:49:52Z gcosmo $ +// $Id: G4WaterStopping.cc 96934 2016-05-18 09:10:41Z gcosmo $ //--------------------------------------------------------------------------- // @@ -50,6 +50,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +const G4int G4WaterStopping::Z[17] = { + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 26}; +const G4double G4WaterStopping::A[17] = { + 7, 9, 11, 12, 14, 16, 19, 20, 23, 24, 27, 28, 31, 32, 35, 40, 56}; + G4WaterStopping::G4WaterStopping(G4EmCorrections* corr, G4bool splineFlag) { spline = splineFlag; @@ -83,7 +88,8 @@ G4double G4WaterStopping::GetElectronicDEDX(G4int iz, G4double energy) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4WaterStopping::AddData(const G4double* energy, const G4double* stoppower, +void G4WaterStopping::AddData(const G4double* energy, + const G4double* stoppower, G4double factor) { G4LPhysicsFreeVector* pv = @@ -99,14 +105,6 @@ void G4WaterStopping::AddData(const G4double* energy, const G4double* stoppower, void G4WaterStopping::Initialise(G4EmCorrections* corr) { - G4int i; - //..List of ions - static const G4int zz[17] = {3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15,16,17,18,26}; - static const G4int aa[17] = {7, 9, 11, 12, 14, 16, 19, 20, 23, 24, 27, 28,31,32, 35,40,56}; - for(i=0; i<17; ++i) { - Z[i] = zz[i]; - A[i] = G4double(aa[i]); - } //..Reduced energies static const G4double E[53] = {0.025,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1,0.15,0.2,0.25,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.5,2,2.5,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60,70,80,90,100,150,200,250,300,400,500,600,700,800,900,1000}; emin = E[0]*MeV; @@ -149,6 +147,8 @@ void G4WaterStopping::Initialise(G4EmCorrections* corr) AddData(E,G4_WATER_Fe,factor); if(corr) { - for(i=0; i<17; ++i) {corr->AddStoppingData(Z[i], aa[i], "G4_WATER", dedx[i]);} + for(G4int i=0; i<17; ++i) { + corr->AddStoppingData(Z[i], A[i], "G4_WATER", dedx[i]); + } } } diff --git a/source/processes/electromagnetic/standard/src/G4WentzelOKandVIxSection.cc b/source/processes/electromagnetic/standard/src/G4WentzelOKandVIxSection.cc index f0c203d566..85ff17d95f 100644 --- a/source/processes/electromagnetic/standard/src/G4WentzelOKandVIxSection.cc +++ b/source/processes/electromagnetic/standard/src/G4WentzelOKandVIxSection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelOKandVIxSection.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4WentzelOKandVIxSection.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -80,7 +80,7 @@ G4WentzelOKandVIxSection::G4WentzelOKandVIxSection(G4bool combined) : lowEnergyLimit = 1.0*eV; G4double p0 = electron_mass_c2*classic_electr_radius; coeff = twopi*p0*p0; - particle = 0; + particle = nullptr; // Thomas-Fermi screening radii // Formfactors from A.V. Butkevich et al., NIM A 488 (2002) 282 @@ -112,7 +112,7 @@ G4WentzelOKandVIxSection::G4WentzelOKandVIxSection(G4bool combined) : ecut = etag = DBL_MAX; targetZ = 0; targetMass = proton_mass_c2; - particle = 0; + particle = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -136,7 +136,7 @@ void G4WentzelOKandVIxSection::Initialise(const G4ParticleDefinition* p, G4double a = G4EmParameters::Instance()->FactorForAngleLimit() *CLHEP::hbarc/CLHEP::fermi; factorA2 = 0.5*a*a; - currentMaterial = 0; + currentMaterial = nullptr; //G4cout << "G4WentzelOKandVIxSection::Initialise mass= " << mass // << " " << p->GetParticleName() diff --git a/source/processes/electromagnetic/standard/src/G4WentzelVIModel.cc b/source/processes/electromagnetic/standard/src/G4WentzelVIModel.cc index 6a3da36f5b..b69d981858 100644 --- a/source/processes/electromagnetic/standard/src/G4WentzelVIModel.cc +++ b/source/processes/electromagnetic/standard/src/G4WentzelVIModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelVIModel.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4WentzelVIModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,17 +71,15 @@ using namespace std; -const G4int minNCollisions = 10; - G4WentzelVIModel::G4WentzelVIModel(G4bool combined, const G4String& nam) : G4VMscModel(nam), ssFactor(1.05), invssFactor(1.0), - currentCouple(0), + currentCouple(nullptr), singleScatteringMode(false), cosThetaMin(1.0), cosThetaMax(-1.0), - fSecondMoments(0), + fSecondMoments(nullptr), idx2(0), numlimit(0.1), isCombined(combined), @@ -98,13 +96,15 @@ G4WentzelVIModel::G4WentzelVIModel(G4bool combined, const G4String& nam) : wokvi = new G4WentzelOKandVIxSection(combined); fixedCut = -1.0; + minNCollisions = 10; + preKinEnergy = effKinEnergy = tPathLength = zPathLength = lambdaeff = currentRange = xtsec = cosTetMaxNuc = 0.0; currentMaterialIndex = 0; - fParticleChange = 0; - currentCuts = 0; - currentMaterial = 0; + fParticleChange = nullptr; + currentCuts = nullptr; + currentMaterial = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -160,8 +160,8 @@ void G4WentzelVIModel::Initialise(const G4ParticleDefinition* p, size_t numOfCouples = theCoupleTable->GetTableSize(); G4bool splineFlag = true; - G4PhysicsVector* aVector = 0; - G4PhysicsVector* bVector = 0; + G4PhysicsVector* aVector = nullptr; + G4PhysicsVector* bVector = nullptr; G4double emin = std::max(LowEnergyLimit(), LowEnergyActivationLimit()); G4double emax = std::min(HighEnergyLimit(), HighEnergyActivationLimit()); if(emin < emax) { @@ -270,7 +270,7 @@ G4double G4WentzelVIModel::ComputeTruePathLengthLimit( cosTetMaxNuc = wokvi->SetupKinematic(preKinEnergy, currentMaterial); //G4cout << "lambdaeff= " << lambdaeff << " Range= " << currentRange - // << " tlimit= " << tlimit << " 1-cost= " << 1 - cosTetMaxNuc << G4endl; + // << " tlimit= " << tlimit << " 1-cost= " << 1 - cosTetMaxNuc << G4endl; // extra check for abnormal situation // this check needed to run MSC with eIoni and eBrem inactivated @@ -606,7 +606,7 @@ G4WentzelVIModel::SampleScattering(const G4ThreeVector& oldDirection, for (; i= qsec) { break; } } } G4double cosTetM = - wokvi->SetupTarget(G4lrint((*theElementVector)[i]->GetZ()), cut); + wokvi->SetupTarget((*theElementVector)[i]->GetZasInt(), cut); //G4cout << "!!! " << cosThetaMin << " " << cosTetM << " " // << prob[i] << G4endl; temp = wokvi->SampleSingleScattering(cosThetaMin, cosTetM, prob[i]); @@ -648,16 +648,14 @@ G4WentzelVIModel::SampleScattering(const G4ThreeVector& oldDirection, // lateral displacement if (latDisplasment) { G4double rms = invsqrt12*sqrt(2*z0); - G4double r = x0*mscfac; - G4double dx = r*(0.5*vx1 + rms*G4RandGauss::shoot(rndmEngine, 0.0, 1.0)); - G4double dy = r*(0.5*vy1 + rms*G4RandGauss::shoot(rndmEngine, 0.0, 1.0)); - G4double dz; - G4double d = r*r - dx*dx - dy*dy; + G4double r = x0*mscfac; + G4double dx = r*(0.5*vx1 + rms*G4RandGauss::shoot(rndmEngine,0.0,1.0)); + G4double dy = r*(0.5*vy1 + rms*G4RandGauss::shoot(rndmEngine,0.0,1.0)); + G4double d = r*r - dx*dx - dy*dy; // change position if(d >= 0.0) { - dz = sqrt(d) - r; - temp.set(dx,dy,dz); + temp.set(dx,dy,sqrt(d) - r); temp.rotateUz(dir); fDisplacement += temp; } @@ -721,7 +719,7 @@ G4double G4WentzelVIModel::ComputeTransportXSectionPerVolume(G4double cosTheta) G4double xs = 0.0; for (G4int i=0; iSetupTarget(G4lrint((*theElementVector)[i]->GetZ()), cut); + wokvi->SetupTarget((*theElementVector)[i]->GetZasInt(), cut); G4double density = theAtomNumDensityVector[i]; G4double esec = 0.0; @@ -773,7 +771,7 @@ G4double G4WentzelVIModel:: ComputeSecondMoment(const G4ParticleDefinition* p, // loop over elements for (G4int i=0; iSetupTarget(G4lrint((*theElementVector)[i]->GetZ()), cut); + wokvi->SetupTarget((*theElementVector)[i]->GetZasInt(), cut); xs += theAtomNumDensityVector[i] *wokvi->ComputeSecondTransportMoment(costm); } diff --git a/source/processes/electromagnetic/standard/src/G4WentzelVIRelModel.cc b/source/processes/electromagnetic/standard/src/G4WentzelVIRelModel.cc index 6b5f2c0378..4b5e998afb 100644 --- a/source/processes/electromagnetic/standard/src/G4WentzelVIRelModel.cc +++ b/source/processes/electromagnetic/standard/src/G4WentzelVIRelModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelVIRelModel.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4WentzelVIRelModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,7 +73,7 @@ using namespace std; G4WentzelVIRelModel::G4WentzelVIRelModel(G4bool combined) : G4VMscModel("WentzelVIRel"), numlimit(0.1), - currentCouple(0), + currentCouple(nullptr), cosThetaMin(1.0), isCombined(combined), inside(false), @@ -96,9 +96,9 @@ G4WentzelVIRelModel::G4WentzelVIRelModel(G4bool combined) : currentMaterialIndex = 0; cosThetaMax = cosTetMaxNuc = 1.0; - fParticleChange = 0; - currentCuts = 0; - currentMaterial = 0; + fParticleChange = nullptr; + currentCuts = nullptr; + currentMaterial = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -149,17 +149,18 @@ G4double G4WentzelVIRelModel::ComputeCrossSectionPerAtom( if(!CurrentCouple()) { G4Exception("G4WentzelVIRelModel::ComputeCrossSectionPerAtom", "em0011", FatalException, " G4MaterialCutsCouple is not defined"); - return 0.0; + return cross; } DefineMaterial(CurrentCouple()); - G4int iz = G4int(Z); + G4int iz = G4lrint(Z); G4double tmass = proton_mass_c2; if(1 < iz) { tmass = fNistManager->GetAtomicMassAmu(iz)*amu_c2; } - cosTetMaxNuc = wokvi->SetupKinematic(kinEnergy, currentMaterial, cutEnergy, tmass); + cosTetMaxNuc = wokvi->SetupKinematic(kinEnergy, currentMaterial, + cutEnergy, tmass); if(cosTetMaxNuc < 1.0) { - G4double cost = wokvi->SetupTarget(G4lrint(Z), cutEnergy); + G4double cost = wokvi->SetupTarget(iz, cutEnergy); cross = wokvi->ComputeTransportCrossSectionPerAtom(cost); /* if(p->GetParticleName() == "e-") @@ -303,7 +304,8 @@ G4double G4WentzelVIRelModel::ComputeGeomPathLength(G4double truelength) e1 = GetEnergy(particle,currentRange-tPathLength,currentCouple); } e1 = 0.5*(e1 + preKinEnergy); - cosTetMaxNuc = wokvi->SetupKinematic(e1, currentMaterial, 0.0, proton_mass_c2); + cosTetMaxNuc = wokvi->SetupKinematic(e1, currentMaterial, 0.0, + proton_mass_c2); lambdaeff = GetTransportMeanFreePath(particle,e1); zPathLength = lambdaeff*(1.0 - G4Exp(-tPathLength/lambdaeff)); } @@ -356,7 +358,8 @@ G4double G4WentzelVIRelModel::ComputeTrueStepLength(G4double geomStepLength) e1 = GetEnergy(particle,currentRange-tPathLength,currentCouple); } e1 = 0.5*(e1 + preKinEnergy); - cosTetMaxNuc = wokvi->SetupKinematic(e1, currentMaterial, 0.0, proton_mass_c2); + cosTetMaxNuc = wokvi->SetupKinematic(e1, currentMaterial, 0.0, + proton_mass_c2); lambdaeff = GetTransportMeanFreePath(particle,e1); tau = zPathLength/lambdaeff; @@ -613,7 +616,7 @@ G4double G4WentzelVIRelModel::ComputeXSectionPerVolume() G4double xs = 0.0; for (G4int i=0; iSetupTarget(G4lrint((*theElementVector)[i]->GetZ()), cut); + wokvi->SetupTarget((*theElementVector)[i]->GetZasInt(), cut); G4double density = theAtomNumDensityVector[i]; G4double esec = 0.0; diff --git a/source/processes/electromagnetic/standard/src/G4WentzelVIRelXSection.cc b/source/processes/electromagnetic/standard/src/G4WentzelVIRelXSection.cc index 1e29e9ff92..b353f91075 100644 --- a/source/processes/electromagnetic/standard/src/G4WentzelVIRelXSection.cc +++ b/source/processes/electromagnetic/standard/src/G4WentzelVIRelXSection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4WentzelVIRelXSection.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4WentzelVIRelXSection.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -80,7 +80,7 @@ G4WentzelVIRelXSection::G4WentzelVIRelXSection(G4bool combined) : lowEnergyLimit = 1.0*eV; G4double p0 = electron_mass_c2*classic_electr_radius; coeff = twopi*p0*p0; - particle = 0; + particle = nullptr; // Thomas-Fermi screening radii // Formfactors from A.V. Butkevich et al., NIM A 488 (2002) 282 @@ -132,7 +132,7 @@ void G4WentzelVIRelXSection::Initialise(const G4ParticleDefinition* p, G4double a = G4EmParameters::Instance()->FactorForAngleLimit() *CLHEP::hbarc/CLHEP::fermi; factorA2 = 0.5*a*a; - currentMaterial = 0; + currentMaterial = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -147,7 +147,7 @@ void G4WentzelVIRelXSection::SetupParticle(const G4ParticleDefinition* p) chargeSquare = q*q; charge3 = chargeSquare*q; tkin = 0.0; - currentMaterial = 0; + currentMaterial = nullptr; targetZ = 0; } @@ -349,7 +349,9 @@ G4WentzelVIRelXSection::ComputeMaxElectronScattering(G4double cutEnergy) G4double mom22 = t1*(t1 + 2.0*mass); G4double ctm = (mom2 + mom22 - mom21)*0.5/sqrt(mom2*mom22); if(ctm < 1.0) { cosTetMaxElec = ctm; } - if(particle == theElectron && cosTetMaxElec < 0.0) { cosTetMaxElec = 0.0; } + if(particle == theElectron && cosTetMaxElec < 0.0) { + cosTetMaxElec = 0.0; + } } } } diff --git a/source/processes/electromagnetic/standard/src/G4alphaIonisation.cc b/source/processes/electromagnetic/standard/src/G4alphaIonisation.cc index 576e5f56d7..6749f82978 100644 --- a/source/processes/electromagnetic/standard/src/G4alphaIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4alphaIonisation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4alphaIonisation.cc 84598 2014-10-17 07:39:15Z gcosmo $ +// $Id: G4alphaIonisation.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,13 +65,12 @@ using namespace std; G4alphaIonisation::G4alphaIonisation(const G4String& name) : G4VEnergyLossProcess(name), - theParticle(0), + theParticle(nullptr), isInitialised(false) { G4Exception("G4alphaIonisation::G4alphaIonisation","em0007",JustWarning, " The process is not ready for use - incorrect results are expected"); SetLinearLossLimit(0.02); - SetStepFunction(0.2, 0.01*mm); SetProcessSubType(fIonisation); mass = 0.0; ratio = 0.0; @@ -114,7 +113,7 @@ void G4alphaIonisation::InitialiseEnergyLossProcess( G4String pname = part->GetParticleName(); // define base particle - const G4ParticleDefinition* theBaseParticle = 0; + const G4ParticleDefinition* theBaseParticle = nullptr; if(bpart == 0) { if(pname != "alpha") { theBaseParticle = G4Alpha::Alpha(); } } else { theBaseParticle = bpart; } diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc index b01ba84815..76055b3c87 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eBremsstrahlung.cc 84598 2014-10-17 07:39:15Z gcosmo $ +// $Id: G4eBremsstrahlung.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -123,7 +123,7 @@ G4eBremsstrahlung::InitialiseEnergyLossProcess(const G4ParticleDefinition*, G4double emin = param->MinKinEnergy(); G4double emax = param->MaxKinEnergy(); G4double energyLimit = std::min(emax, GeV); - G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = nullptr; if (!EmModel(1)) { SetEmModel(new G4SeltzerBergerModel(), 1); } EmModel(1)->SetLowEnergyLimit(emin); diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungRelModel.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungRelModel.cc index 08eae19c7e..c50bcdd5a5 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungRelModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungRelModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eBremsstrahlungRelModel.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4eBremsstrahlungRelModel.cc 97273 2016-05-31 14:16:47Z gcosmo $ // // ------------------------------------------------------------------- // @@ -41,6 +41,9 @@ // 13.11.08 add SetLPMflag and SetLPMconstant methods // 13.11.08 change default LPMconstant value // 13.10.10 add angular distributon interface (VI) +// 31.05.16 change LPMconstant such that it gives suppression variable 's' +// that consistent to Migdal's one; fix a small bug in 'logTS1' +// computation; better agreement with exp.(M.Novak) // // Main References: // Y.-S.Tsai, Rev. Mod. Phys. 46 (1974) 815; Rev. Mod. Phys. 49 (1977) 421. @@ -91,7 +94,7 @@ G4eBremsstrahlungRelModel::G4eBremsstrahlungRelModel( bremFactor(fine_structure_const*classic_electr_radius*classic_electr_radius*16./3.), isElectron(true), fMigdalConstant(classic_electr_radius*electron_Compton_length*electron_Compton_length*4.0*pi), - fLPMconstant(fine_structure_const*electron_mass_c2*electron_mass_c2/(4.*pi*hbarc)*0.5), + fLPMconstant(fine_structure_const*electron_mass_c2*electron_mass_c2/(4.*pi*hbarc)), fXiLPM(0), fPhiLPM(0), fGLPM(0), use_completescreening(false) { @@ -352,7 +355,7 @@ void G4eBremsstrahlungRelModel::CalcLPMFunctions(G4double k) G4double s1 = preS1*z23; G4double logS1 = 2./3.*lnZ-2.*facFel; - G4double logTS1 = logTwo+logS1; + G4double logTS1 = 0.5*logTwo+logS1; xiLPM = 2.; diff --git a/source/processes/electromagnetic/standard/src/G4eCoulombScatteringModel.cc b/source/processes/electromagnetic/standard/src/G4eCoulombScatteringModel.cc index e3ee673445..4ebdeaa707 100644 --- a/source/processes/electromagnetic/standard/src/G4eCoulombScatteringModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eCoulombScatteringModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eCoulombScatteringModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4eCoulombScatteringModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -83,19 +83,19 @@ G4eCoulombScatteringModel::G4eCoulombScatteringModel(G4bool combined) cosThetaMax(-1.0), isCombined(combined) { - fParticleChange = 0; + fParticleChange = nullptr; fNistManager = G4NistManager::Instance(); theIonTable = G4ParticleTable::GetParticleTable()->GetIonTable(); theProton = G4Proton::Proton(); currentMaterial = 0; fixedCut = -1.0; - pCuts = 0; + pCuts = nullptr; recoilThreshold = 0.*keV; // by default does not work - particle = 0; - currentCouple = 0; + particle = nullptr; + currentCouple = nullptr; wokvi = new G4WentzelOKandVIxSection(combined); currentMaterialIndex = 0; @@ -176,8 +176,7 @@ G4eCoulombScatteringModel::MinPrimaryEnergy(const G4Material* material, // select lightest element G4int Z = 300; for (G4int j=0; jGetZ()); - if(iz < Z) { Z = iz; } + Z = std::min(Z,(*theElementVector)[j]->GetZasInt()); } G4int A = G4lrint(fNistManager->GetAtomicMassAmu(Z)); G4double targetMass = G4NucleiProperties::GetNuclearMass(A, Z); @@ -205,7 +204,7 @@ G4double G4eCoulombScatteringModel::ComputeCrossSectionPerAtom( DefineMaterial(CurrentCouple()); G4double costmin = wokvi->SetupKinematic(kinEnergy, currentMaterial); if(cosThetaMax < costmin) { - G4int iz = G4int(Z); + G4int iz = G4lrint(Z); G4double cut = cutEnergy; if(fixedCut > 0.0) { cut = fixedCut; } costmin = wokvi->SetupTarget(iz, cut); @@ -255,8 +254,7 @@ void G4eCoulombScatteringModel::SampleSecondaries( const G4Element* currentElement = SelectRandomAtom(couple,particle,kinEnergy,cut,kinEnergy); - G4double Z = currentElement->GetZ(); - G4int iz = G4int(Z); + G4int iz = currentElement->GetZasInt(); G4double costmin = wokvi->SetupTarget(iz, cut); G4double costmax = cosThetaMax; diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation.cc b/source/processes/electromagnetic/standard/src/G4eIonisation.cc index d28d64b3a6..526bdb3262 100644 --- a/source/processes/electromagnetic/standard/src/G4eIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4eIonisation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eIonisation.cc 84598 2014-10-17 07:39:15Z gcosmo $ +// $Id: G4eIonisation.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -89,7 +89,6 @@ G4eIonisation::G4eIonisation(const G4String& name) isElectron(true), isInitialised(false) { - // SetStepFunction(0.2, 1*mm); SetProcessSubType(fIonisation); SetSecondaryParticle(theElectron); } diff --git a/source/processes/electromagnetic/standard/src/G4eMultipleScattering.cc b/source/processes/electromagnetic/standard/src/G4eMultipleScattering.cc index 5738311b19..1eb680d771 100644 --- a/source/processes/electromagnetic/standard/src/G4eMultipleScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4eMultipleScattering.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eMultipleScattering.cc 67990 2013-03-13 10:56:28Z gcosmo $ +// $Id: G4eMultipleScattering.cc 97741 2016-06-08 09:24:21Z gcosmo $ // // ----------------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4eSingleCoulombScatteringModel.cc b/source/processes/electromagnetic/standard/src/G4eSingleCoulombScatteringModel.cc index 9b91624871..c3c704899a 100644 --- a/source/processes/electromagnetic/standard/src/G4eSingleCoulombScatteringModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eSingleCoulombScatteringModel.cc @@ -74,21 +74,20 @@ using namespace std; G4eSingleCoulombScatteringModel::G4eSingleCoulombScatteringModel(const G4String& nam) : G4VEmModel(nam), - cosThetaMin(1.0), - isInitialised(false) + cosThetaMin(1.0) { fNistManager = G4NistManager::Instance(); theIonTable = G4ParticleTable::GetParticleTable()->GetIonTable(); - fParticleChange = 0; + fParticleChange = nullptr; - pCuts=0; - currentMaterial = 0; - currentElement = 0; - currentCouple = 0; + pCuts=nullptr; + currentMaterial = nullptr; + currentElement = nullptr; + currentCouple = nullptr; - lowEnergyLimit = 0*eV; + lowEnergyLimit = 0*keV; recoilThreshold = 0.*eV; - particle = 0; + particle = nullptr; mass=0; currentMaterialIndex = -1; @@ -108,21 +107,35 @@ void G4eSingleCoulombScatteringModel::Initialise(const G4ParticleDefinition* p, const G4DataVector& cuts) { SetupParticle(p); - currentCouple = 0; + currentCouple = nullptr; currentMaterialIndex = -1; //cosThetaMin = cos(PolarAngleLimit()); Mottcross->Initialise(p,cosThetaMin); pCuts = &cuts; //G4ProductionCutsTable::GetProductionCutsTable()->GetEnergyCutsVector(3); - - - if(!isInitialised) { - isInitialised = true; + + /* + G4cout << "!!! G4eSingleCoulombScatteringModel::Initialise for " + << part->GetParticleName() << " cos(TetMin)= " << cosThetaMin + << " cos(TetMax)= " << cosThetaMax <GetZ(); - G4int iz = G4int(Z); + G4int iz = currentElement->GetZasInt(); G4int ia = SelectIsotopeNumber(currentElement); G4double mass2 = G4NucleiProperties::GetNuclearMass(ia, iz); //G4cout<<"..Z: "<GetTotalCross(); + + Mottcross->SetupKinematic(kinEnergy, iz); + G4double cross= Mottcross->NuclearCrossSection(); //MODIFY TO LOAD TABLE if(cross == 0.0) { return; } + //cout<< "Energy: "<GetScatteringAngle(); G4double sint = sin(z1); diff --git a/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc b/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc index 5e5f59811a..1c595c2ee8 100644 --- a/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4eeToTwoGammaModel.cc 91726 2015-08-03 15:41:36Z gcosmo $ +// $Id: G4eeToTwoGammaModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -91,7 +91,7 @@ G4eeToTwoGammaModel::G4eeToTwoGammaModel(const G4ParticleDefinition*, isInitialised(false) { theGamma = G4Gamma::Gamma(); - fParticleChange = 0; + fParticleChange = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -177,7 +177,7 @@ void G4eeToTwoGammaModel::SampleSecondaries(vector* vdp, if(PositKinEnergy == 0.0) { G4double cost = 2.*rndmEngine->flat()-1.; G4double sint = sqrt((1. - cost)*(1. + cost)); - G4double phi = twopi * G4UniformRand(); + G4double phi = twopi * rndmEngine->flat(); G4ThreeVector dir(sint*cos(phi), sint*sin(phi), cost); phi = twopi * rndmEngine->flat(); G4ThreeVector pol(cos(phi), sin(phi), 0.0); @@ -239,7 +239,7 @@ void G4eeToTwoGammaModel::SampleSecondaries(vector* vdp, G4ThreeVector Phot1Direction(sint*cos(phi), sint*sin(phi), cost); Phot1Direction.rotateUz(PositDirection); aGamma1 = new G4DynamicParticle (theGamma,Phot1Direction, Phot1Energy); - phi = twopi * G4UniformRand(); + phi = twopi * rndmEngine->flat(); G4ThreeVector pol1(cos(phi), sin(phi), 0.0); pol1.rotateUz(Phot1Direction); aGamma1->SetPolarization(pol1.x(),pol1.y(),pol1.z()); diff --git a/source/processes/electromagnetic/standard/src/G4hCoulombScatteringModel.cc b/source/processes/electromagnetic/standard/src/G4hCoulombScatteringModel.cc index d8b24694b1..1639df0aa3 100644 --- a/source/processes/electromagnetic/standard/src/G4hCoulombScatteringModel.cc +++ b/source/processes/electromagnetic/standard/src/G4hCoulombScatteringModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hCoulombScatteringModel.cc 93567 2015-10-26 14:51:41Z gcosmo $ +// $Id: G4hCoulombScatteringModel.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,23 +73,23 @@ G4hCoulombScatteringModel::G4hCoulombScatteringModel(G4bool combined) cosThetaMax(-1.0), isCombined(combined) { - fParticleChange = 0; + fParticleChange = nullptr; fNistManager = G4NistManager::Instance(); theIonTable = G4ParticleTable::GetParticleTable()->GetIonTable(); theProton = G4Proton::Proton(); - currentMaterial = 0; + currentMaterial = nullptr; fixedCut = -1.0; pCuts = 0; - recoilThreshold = 0.*keV; // by default does not work + recoilThreshold = 0.*CLHEP::keV; // by default does not work - particle = 0; - currentCouple = 0; + particle = nullptr; + currentCouple = nullptr; wokvi = new G4WentzelVIRelXSection(combined); currentMaterialIndex = 0; - mass = proton_mass_c2; + mass = CLHEP::proton_mass_c2; elecRatio = 0.0; } @@ -242,9 +242,7 @@ void G4hCoulombScatteringModel::SampleSecondaries( const G4Element* elm = SelectRandomAtom(couple,particle, kinEnergy,cutEnergy,kinEnergy); - G4double Z = elm->GetZ(); - - G4int iz = G4int(Z); + G4int iz = elm->GetZasInt(); G4int ia = SelectIsotopeNumber(elm); G4double mass2 = G4NucleiProperties::GetNuclearMass(ia, iz); diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation.cc b/source/processes/electromagnetic/standard/src/G4hIonisation.cc index 57c8c1c318..e53c6541f1 100644 --- a/source/processes/electromagnetic/standard/src/G4hIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4hIonisation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hIonisation.cc 84598 2014-10-17 07:39:15Z gcosmo $ +// $Id: G4hIonisation.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -111,7 +111,6 @@ G4hIonisation::G4hIonisation(const G4String& name) : G4VEnergyLossProcess(name), isInitialised(false) { - SetStepFunction(0.2, 0.1*mm); SetProcessSubType(fIonisation); SetSecondaryParticle(G4Electron::Electron()); mass = 0.0; @@ -151,7 +150,7 @@ void G4hIonisation::InitialiseEnergyLossProcess( { if(!isInitialised) { - const G4ParticleDefinition* theBaseParticle = 0; + const G4ParticleDefinition* theBaseParticle = nullptr; G4String pname = part->GetParticleName(); G4double q = part->GetPDGCharge(); @@ -165,10 +164,10 @@ void G4hIonisation::InitialiseEnergyLossProcess( pname == "kaon+" || pname == "kaon-" || pname == "GenericIon" || pname == "He3" || pname == "alpha") { - theBaseParticle = 0; + theBaseParticle = nullptr; } // select base particle - else if(bpart == 0) { + else if(bpart == nullptr) { if(part->GetPDGSpin() == 0.0) { if(q > 0.0) { theBaseParticle = G4KaonPlus::KaonPlus(); } diff --git a/source/processes/electromagnetic/standard/src/G4hMultipleScattering.cc b/source/processes/electromagnetic/standard/src/G4hMultipleScattering.cc index c1e7da3207..e2876f0c67 100644 --- a/source/processes/electromagnetic/standard/src/G4hMultipleScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4hMultipleScattering.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4hMultipleScattering.cc 88677 2015-03-05 08:33:15Z gcosmo $ +// $Id: G4hMultipleScattering.cc 97741 2016-06-08 09:24:21Z gcosmo $ // // ----------------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc index 63cce3f525..dcc1785809 100644 --- a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ionIonisation.cc 84598 2014-10-17 07:39:15Z gcosmo $ +// $Id: G4ionIonisation.cc 96934 2016-05-18 09:10:41Z gcosmo $ // // ------------------------------------------------------------------- // @@ -83,12 +83,11 @@ using namespace std; G4ionIonisation::G4ionIonisation(const G4String& name) : G4VEnergyLossProcess(name), - theParticle(0), + theParticle(nullptr), isInitialised(false), stopDataActive(false) { SetLinearLossLimit(0.02); - SetStepFunction(0.1, 0.01*mm); SetProcessSubType(fIonisation); SetSecondaryParticle(G4Electron::Electron()); corr = G4LossTableManager::Instance()->EmCorrections(); @@ -131,11 +130,11 @@ void G4ionIonisation::InitialiseEnergyLossProcess( theParticle = part; // define base particle - const G4ParticleDefinition* theBaseParticle = 0; + const G4ParticleDefinition* theBaseParticle = nullptr; - if(part == ion) { theBaseParticle = 0; } - else if(bpart == 0) { theBaseParticle = ion; } - else { theBaseParticle = bpart; } + if(part == ion) { theBaseParticle = nullptr; } + else if(bpart == nullptr) { theBaseParticle = ion; } + else { theBaseParticle = bpart; } SetBaseParticle(theBaseParticle); diff --git a/source/processes/electromagnetic/utils/History b/source/processes/electromagnetic/utils/History index 499636da94..419ebb61f7 100644 --- a/source/processes/electromagnetic/utils/History +++ b/source/processes/electromagnetic/utils/History @@ -1,4 +1,4 @@ -$Id: History 94233 2015-11-09 10:55:01Z gcosmo $ +$Id: History 97742 2016-06-08 09:24:54Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,103 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +07 June 16: V.Ivant (emutils-V10-02-23) +- G4LossTableManager - removed debug printout + +07 June 16: V.Ivant (emutils-V10-02-22) +- G4VEmModel - fixed destruction in MT mode +- G4VMultipleScattering, G4EmModelManager, G4LossTableManager + improved debug printout + +02 June 16: V.Ivant (emutils-V10-02-21) +- G4VAtomicDeexcitation - extended printout at initialisation + +02 June 16: V.Ivant (emutils-V10-02-20) +- G4EmModelManager - review and fix model configuration (mainly + for DNA models) +- G4DummyModel - set default low-enegry limit to 0.0 (needed for DNA) +- G4VMultipleScattering - added method NumberOfModels() +- G4EmConfigurator - minor cleanup + +11 May 16: V.Ivant (emutils-V10-02-19) +- G4VEmModel, G4VAtomDeexcitation, G4EmCalculator - use new method + G4Element::GetZasInt() +- G4VEmModel - fixed SelectRandomAtomNumber() method + +01 May 16: V.Ivant (emutils-V10-02-18) +29 April 16: V.Ivant (emutils-V10-02-17) +- G4EmCorrections - fixed Coverity warning +- G4VAtomDeexcitation - fixed possible data race at initialistion + +25 April 16: V.Ivant (emutils-V10-02-16) +25 April 16: V.Ivant (emutils-V10-02-14) +- G4AtomicShell - make the class pure inlined, use a default destructors +- G4LossTableManager, G4VEmModel, G4VMultipleScattering - minor + cleanup of static const data +- G4EmCorrections - make part of data static, make internal vectors + static, shared between threads + +15 April 16: V.Ivant (emutils-V10-02-13) +- G4EmParameters - allow to change parameters only from the master thread + and only at PreInit or Idle states + +15 April 16: V.Ivant (emutils-V10-02-12) +- G4VAtomDeexcitation - complete migration to G4EmParameters interface; + addresing data race in MT mode + +11 April 16: V.Ivant (emutils-V10-02-11) +- G4VMultipleScattering - move position change to AlongStep + +17 March 16: V.Ivant (emutils-V10-02-10) +- G4VEnergyLossProcess - return back removed method to fix compillation + of reverse MC example + +15 March 16: V.Ivant (emutils-V10-02-09) +- removed commented lines left from the previous tag +- G4EmCalculator - added protection against zero cut value - use + lowest electron energy (fixed problem #1845) + +11 March 16: V.Ivant (emutils-V10-02-08) +- G4EmParameters, G4EmParametersMessenger - moved remaining + parameters from G4EmProcessOptions, which become obsolete +- G4EmCalculator, G4LossTableBuilder, G4LossTableManager, G4VMscModel, + G4VEmModel, G4VEmProcess, G4VEnergyLossProcess - use only + G4EmParameters class interfaces for initialisation +- G4NuclearFormfactorType - added new enumerator + +17 February 16: V.Ivant (emutils-V10-02-07) +- G4EmMultiModel - changed "override" by "final" + +17 February 16: V.Ivant (emutils-V10-02-06) +- G4VEnegryLossProcess, G4EmCorrections - removed unused class members +- G4VEmModel, G4EmMultiModel - address clang warnings + +16 February 16: D.Sawkey (emutils-V10-02-05) +- Again, added more overrides, to remove clang warnings in previous tag +- put deleted copy/assignment operators back in private section + +12 February 16: D.Sawkey (emutils-V10-02-04) +- added more overrides, to remove clang warnings in previous tag + +11 February 16: D.Sawkey (emutils-V10-02-03) +- partial C++11 migration in header files: explicit, override, delete + keywords; nullptr + +10 February 16: V.Ivant +- G4VEmProcess, G4EmModelManager - added extra methods to access models + +22 January 16: V.Ivant (emutils-V10-02-01) +- G4LossTableManager - avoid double addition of He3 and alpha to the + loss table map (should not have any effect on results) +- G4EmCalculator - fixed computation of dEdx and range for He3 and + alpha (problem #1808) + +14 January 16: V.Ivant (emutils-V10-02-00) +- G4EmSaturation - fixed #1807 by changing method name from + VisibleEnergyDeposition(..) to VisibleEnergyDepositionAtAStep(..) + This fix change user interface in order to allow overload virtual + method + 09 November 15: V.Ivant (emutils-V10-01-40) - G4EmParameters - fixed typo in name of the new method diff --git a/source/processes/electromagnetic/utils/include/G4AngleDirect.hh b/source/processes/electromagnetic/utils/include/G4AngleDirect.hh index 2389e5ac35..4dfb653bd5 100644 --- a/source/processes/electromagnetic/utils/include/G4AngleDirect.hh +++ b/source/processes/electromagnetic/utils/include/G4AngleDirect.hh @@ -66,13 +66,13 @@ public: // as the direction of primary virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp, G4double, G4int, - const G4Material*); + const G4Material*) override; private: // hide assignment operator - G4AngleDirect & operator=(const G4AngleDirect &right); - G4AngleDirect(const G4AngleDirect&); + G4AngleDirect & operator=(const G4AngleDirect &right) = delete; + G4AngleDirect(const G4AngleDirect&) = delete; }; diff --git a/source/processes/electromagnetic/utils/include/G4AtomicShell.hh b/source/processes/electromagnetic/utils/include/G4AtomicShell.hh index fe0e9f462b..b6e393fecf 100644 --- a/source/processes/electromagnetic/utils/include/G4AtomicShell.hh +++ b/source/processes/electromagnetic/utils/include/G4AtomicShell.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4AtomicShell.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4AtomicShell.hh 96626 2016-04-27 08:36:27Z gcosmo $ // // ------------------------------------------------------------------- // @@ -59,10 +59,8 @@ public: // The data and the methods of this class are relative to // a given shell - G4AtomicShell(G4int id, G4double bindingEnergy); + explicit G4AtomicShell(G4int id, G4double e):identifier(id),bindingEnergy(e){}; - ~G4AtomicShell(); - // Returns the binding energy of the shell inline G4double BindingEnergy() const; @@ -71,6 +69,9 @@ public: private: + G4AtomicShell & operator=(const G4AtomicShell &right) = delete; + G4AtomicShell(const G4AtomicShell&) = delete; + G4int identifier; G4double bindingEnergy; diff --git a/source/processes/electromagnetic/utils/include/G4DummyModel.hh b/source/processes/electromagnetic/utils/include/G4DummyModel.hh index 8198f47825..2b3e5a6b2d 100644 --- a/source/processes/electromagnetic/utils/include/G4DummyModel.hh +++ b/source/processes/electromagnetic/utils/include/G4DummyModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DummyModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4DummyModel.hh 96139 2016-03-17 14:10:31Z gcosmo $ // // ------------------------------------------------------------------- // @@ -56,23 +56,23 @@ class G4DummyModel : public G4VMscModel public: - G4DummyModel(const G4String& nam = "DummyModel"); + explicit G4DummyModel(const G4String& nam = "DummyModel"); virtual ~G4DummyModel(); - void Initialise(const G4ParticleDefinition*, const G4DataVector&); + void Initialise(const G4ParticleDefinition*, const G4DataVector&) final; void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double tmax); + G4double tmax) final; -private: +private: // hide assignment operator - G4DummyModel & operator=(const G4DummyModel &right); - G4DummyModel(const G4DummyModel&); + G4DummyModel & operator=(const G4DummyModel &right) = delete; + G4DummyModel(const G4DummyModel&) = delete; }; #endif diff --git a/source/processes/electromagnetic/utils/include/G4ElectronIonPair.hh b/source/processes/electromagnetic/utils/include/G4ElectronIonPair.hh index e3182c4f64..4ad069a87e 100755 --- a/source/processes/electromagnetic/utils/include/G4ElectronIonPair.hh +++ b/source/processes/electromagnetic/utils/include/G4ElectronIonPair.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ElectronIonPair.hh 81058 2014-05-20 09:04:28Z gcosmo $ +// $Id: G4ElectronIonPair.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // #ifndef G4ElectronIonPair_h @@ -75,7 +75,7 @@ class G4ElectronIonPair { public: - G4ElectronIonPair(G4int verb); + explicit G4ElectronIonPair(G4int verb); virtual ~G4ElectronIonPair(); @@ -95,7 +95,7 @@ public: // compute number of holes in the atom after PostStep interaction G4int ResidualeChargePostStep(const G4ParticleDefinition*, - const G4TrackVector* secondary = 0, + const G4TrackVector* secondary = nullptr, G4int processSubType = -1) const; inline G4int ResidualeChargePostStep(const G4Step*) const; @@ -118,10 +118,10 @@ private: G4double FindMeanEnergyPerIonPair(const G4Material*) const; // hide assignment operator - G4ElectronIonPair & operator=(const G4ElectronIonPair &right); - G4ElectronIonPair(const G4ElectronIonPair&); + G4ElectronIonPair & operator=(const G4ElectronIonPair &right) = delete; + G4ElectronIonPair(const G4ElectronIonPair&) = delete; - // cash + // cache const G4Material* curMaterial; G4double curMeanEnergy; diff --git a/source/processes/electromagnetic/utils/include/G4EmBiasingManager.hh b/source/processes/electromagnetic/utils/include/G4EmBiasingManager.hh index 83a4bac9e0..9889baccdc 100644 --- a/source/processes/electromagnetic/utils/include/G4EmBiasingManager.hh +++ b/source/processes/electromagnetic/utils/include/G4EmBiasingManager.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmBiasingManager.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4EmBiasingManager.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -137,9 +137,9 @@ private: inline G4double ApplyRussianRoulette(std::vector& vd, G4int index); - // copy constructor and hide assignment operator - G4EmBiasingManager(G4EmBiasingManager &); - G4EmBiasingManager & operator=(const G4EmBiasingManager &right); + // hide copy constructor and assignment operator + G4EmBiasingManager(G4EmBiasingManager &) = delete; + G4EmBiasingManager & operator=(const G4EmBiasingManager &right) = delete; G4int nForcedRegions; G4int nSecBiasedRegions; @@ -200,7 +200,7 @@ G4EmBiasingManager::ApplyRussianRoulette(std::vector& vd, if(G4UniformRand()*weight > 1.0) { const G4DynamicParticle* dp = vd[k]; delete dp; - vd[k] = 0; + vd[k] = nullptr; } } return weight; diff --git a/source/processes/electromagnetic/utils/include/G4EmCalculator.hh b/source/processes/electromagnetic/utils/include/G4EmCalculator.hh index d9d0e7f34e..8c00e9f814 100644 --- a/source/processes/electromagnetic/utils/include/G4EmCalculator.hh +++ b/source/processes/electromagnetic/utils/include/G4EmCalculator.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmCalculator.hh 90333 2015-05-26 08:28:09Z gcosmo $ +// $Id: G4EmCalculator.hh 96834 2016-05-12 09:19:10Z gcosmo $ // // // ------------------------------------------------------------------- @@ -76,6 +76,7 @@ class G4ionEffectiveCharge; class G4Region; class G4Element; class G4EmCorrections; +class G4EmParameters; class G4IonTable; class G4EmCalculator @@ -94,7 +95,7 @@ public: G4double GetDEDX(G4double kinEnergy, const G4ParticleDefinition*, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetDEDX(G4double kinEnergy, const G4String& part, const G4String& mat, const G4String& s = "world"); @@ -102,7 +103,7 @@ public: G4double GetRangeFromRestricteDEDX(G4double kinEnergy, const G4ParticleDefinition*, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetRangeFromRestricteDEDX(G4double kinEnergy, const G4String& part, const G4String& mat, @@ -110,21 +111,21 @@ public: G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition*, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetCSDARange(G4double kinEnergy, const G4String& part, const G4String& mat, const G4String& s = "world"); G4double GetRange(G4double kinEnergy, const G4ParticleDefinition*, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetRange(G4double kinEnergy, const G4String& part, const G4String& mat, const G4String& s = "world"); G4double GetKinEnergy(G4double range, const G4ParticleDefinition*, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetKinEnergy(G4double range, const G4String& part, const G4String& mat, const G4String& s = "world"); @@ -132,7 +133,7 @@ public: G4double GetCrossSectionPerVolume( G4double kinEnergy, const G4ParticleDefinition*, const G4String& processName, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetCrossSectionPerVolume( G4double kinEnergy, const G4String& part, const G4String& proc, const G4String& mat, const G4String& s = "world"); @@ -144,7 +145,7 @@ public: G4double GetMeanFreePath(G4double kinEnergy, const G4ParticleDefinition*, const G4String& processName, const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); inline G4double GetMeanFreePath(G4double kinEnergy, const G4String& part, const G4String& proc, const G4String& mat, const G4String& s = "world"); @@ -225,7 +226,7 @@ public: const G4String& part, G4int Z, G4AtomicShellEnumerator shell, G4double kinEnergy, - const G4Material* mat = 0); + const G4Material* mat = nullptr); G4double ComputeMeanFreePath( G4double kinEnergy, const G4ParticleDefinition*, @@ -255,7 +256,7 @@ public: const G4Region* FindRegion(const G4String&); const G4MaterialCutsCouple* FindCouple(const G4Material*, - const G4Region* r = 0); + const G4Region* r = nullptr); G4VProcess* FindProcess(const G4ParticleDefinition* part, const G4String& processName); @@ -300,12 +301,14 @@ private: void CheckMaterial(G4int Z); - G4EmCalculator & operator=(const G4EmCalculator &right); - G4EmCalculator(const G4EmCalculator&); + // hide copy and assign + G4EmCalculator & operator=(const G4EmCalculator &right) = delete; + G4EmCalculator(const G4EmCalculator&) = delete; std::vector localMaterials; std::vector localCouples; + G4EmParameters* theParameters; G4LossTableManager* manager; G4NistManager* nist; G4IonTable* ionTable; @@ -315,7 +318,7 @@ private: G4int verbose; - // cash + // cache G4int currentCoupleIndex; const G4MaterialCutsCouple* currentCouple; const G4Material* currentMaterial; @@ -524,7 +527,7 @@ inline G4double G4EmCalculator::ComputeCrossSectionPerShell( G4int shellIdx, G4double cut) { return ComputeCrossSectionPerShell(kinEnergy, FindParticle(part), - processName, G4lrint(elm->GetZ()), + processName, elm->GetZasInt(), shellIdx, cut); } diff --git a/source/processes/electromagnetic/utils/include/G4EmConfigurator.hh b/source/processes/electromagnetic/utils/include/G4EmConfigurator.hh index eccf7ed071..af00eac1a5 100644 --- a/source/processes/electromagnetic/utils/include/G4EmConfigurator.hh +++ b/source/processes/electromagnetic/utils/include/G4EmConfigurator.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmConfigurator.hh 91566 2015-07-27 12:20:23Z gcosmo $ +// $Id: G4EmConfigurator.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,7 +64,7 @@ class G4EmConfigurator { public: - G4EmConfigurator(G4int verboseLevel = 1); + explicit G4EmConfigurator(G4int verboseLevel = 1); ~G4EmConfigurator(); @@ -78,7 +78,7 @@ public: const G4String& regionName = "", G4double emin = 0.0, G4double emax = DBL_MAX, - G4VEmFluctuationModel* fm = 0); + G4VEmFluctuationModel* fm = nullptr); // Add all previously declared models to corresponding processes // Can be called in ConstructPhysics @@ -116,8 +116,8 @@ private: G4double emin, G4double emax); // hide assignment operator - G4EmConfigurator & operator=(const G4EmConfigurator &right); - G4EmConfigurator(const G4EmConfigurator&); + G4EmConfigurator & operator=(const G4EmConfigurator &right) = delete; + G4EmConfigurator(const G4EmConfigurator&) = delete; std::vector models; std::vector flucModels; diff --git a/source/processes/electromagnetic/utils/include/G4EmCorrections.hh b/source/processes/electromagnetic/utils/include/G4EmCorrections.hh index c67507cc20..833da26aab 100644 --- a/source/processes/electromagnetic/utils/include/G4EmCorrections.hh +++ b/source/processes/electromagnetic/utils/include/G4EmCorrections.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmCorrections.hh 91745 2015-08-04 11:51:12Z gcosmo $ +// $Id: G4EmCorrections.hh 96698 2016-05-02 07:19:24Z gcosmo $ // // ------------------------------------------------------------------- // @@ -60,7 +60,7 @@ #include "G4ionEffectiveCharge.hh" #include "G4Material.hh" #include "G4ParticleDefinition.hh" -#include "G4NistManager.hh" +#include "G4Pow.hh" class G4VEmModel; class G4PhysicsVector; @@ -73,7 +73,7 @@ class G4EmCorrections public: - G4EmCorrections(G4int verb); + explicit G4EmCorrections(G4int verb); virtual ~G4EmCorrections(); @@ -160,9 +160,10 @@ public: G4double kineticEnergy); // ionisation models for ions - inline void SetIonisationModels(G4VEmModel* m1 = 0, G4VEmModel* m2 = 0); + inline void SetIonisationModels(G4VEmModel* m1 = nullptr, + G4VEmModel* m2 = nullptr); - inline G4int GetNumberOfStoppingVectors(); + inline G4int GetNumberOfStoppingVectors() const; inline void SetVerbose(G4int verb); @@ -180,68 +181,46 @@ private: G4double LShell(G4double theta, G4double eta); - G4int Index(G4double x, G4double* y, G4int n); + G4int Index(G4double x, const G4double* y, G4int n) const; G4double Value(G4double xv, G4double x1, G4double x2, - G4double y1, G4double y2); + G4double y1, G4double y2) const; G4double Value2(G4double xv, G4double yv, G4double x1, G4double x2, - G4double y1, G4double y2, - G4double z11, G4double z21, G4double z12, G4double z22); + G4double y1, G4double y2, G4double z11, G4double z21, + G4double z12, G4double z22) const; G4double NuclearStoppingPower(G4double e, G4double z1, G4double z2, G4double m1, G4double m2); // hide assignment operator - G4EmCorrections & operator=(const G4EmCorrections &right); - G4EmCorrections(const G4EmCorrections&); + G4EmCorrections & operator=(const G4EmCorrections &right) = delete; + G4EmCorrections(const G4EmCorrections&) = delete; + + G4Pow* g4pow; static const G4double inveplus; + static const G4double ZD[11]; + static const G4double UK[20]; + static const G4double VK[20]; + static G4double ZK[20]; + static const G4double Eta[29]; + static G4double CK[20][29]; + static G4double CL[26][28]; + static const G4double UL[26]; + static G4double VL[26]; + + static G4LPhysicsFreeVector* BarkasCorr; + static G4LPhysicsFreeVector* ThetaK; + static G4LPhysicsFreeVector* ThetaL; - G4double ed[104]; - G4double a[104]; G4double theZieglerFactor; G4double alpha2; G4bool lossFlucFlag; - G4int verbose; - - G4int nK; - G4int nL; - G4int nEtaK; - G4int nEtaL; - - G4double COSEB[14]; - G4double COSXI[14]; - G4double ZD[11]; - - G4double TheK[20]; - G4double SK[20]; - G4double TK[20]; - G4double UK[20]; - G4double VK[20]; - G4double ZK[20]; - - G4double TheL[26]; - G4double SL[26]; - G4double TL[26]; - G4double UL[26]; - G4double VL[26]; - - G4double Eta[29]; - G4double CK[20][29]; - G4double CL[26][28]; - G4double HM[53]; - G4double HN[31]; - G4double Z23[100]; - - G4LPhysicsFreeVector* BarkasCorr; - G4LPhysicsFreeVector* ThetaK; - G4LPhysicsFreeVector* ThetaL; - std::vector currmat; std::map< G4int, std::vector > thcorr; - size_t ncouples; + size_t ncouples; const G4ParticleDefinition* particle; const G4ParticleDefinition* curParticle; @@ -250,11 +229,15 @@ private: const G4ElementVector* theElementVector; const G4double* atomDensity; - G4int numberOfElements; + G4PhysicsVector* curVector; + + G4IonTable* ionTable; + G4VEmModel* ionLEModel; + G4VEmModel* ionHEModel; + G4double kinEnergy; G4double mass; G4double massFactor; - G4double formfact; G4double eth; G4double tau; G4double gamma; @@ -267,14 +250,16 @@ private: G4double q2; G4double eCorrMin; G4double eCorrMax; + + G4int verbose; + + G4int nK; + G4int nL; + G4int nEtaK; + G4int nEtaL; + G4int nbinCorr; - - G4ionEffectiveCharge effCharge; - - G4NistManager* nist; - G4IonTable* ionTable; - G4VEmModel* ionLEModel; - G4VEmModel* ionHEModel; + G4int numberOfElements; // Ion stopping data G4int nIons; @@ -288,10 +273,13 @@ private: std::vector materialList; std::vector stopData; - G4PhysicsVector* curVector; + + G4bool isMaster; + G4ionEffectiveCharge effCharge; }; -inline G4int G4EmCorrections::Index(G4double x, G4double* y, G4int n) +inline G4int +G4EmCorrections::Index(G4double x, const G4double* y, G4int n) const { G4int iddd = n-1; // Loop checking, 03-Aug-2015, Vladimir Ivanchenko @@ -300,7 +288,7 @@ inline G4int G4EmCorrections::Index(G4double x, G4double* y, G4int n) } inline G4double G4EmCorrections::Value(G4double xv, G4double x1, G4double x2, - G4double y1, G4double y2) + G4double y1, G4double y2) const { return y1 + (y2 - y1)*(xv - x1)/(x2 - x1); } @@ -309,7 +297,7 @@ inline G4double G4EmCorrections::Value2(G4double xv, G4double yv, G4double x1, G4double x2, G4double y1, G4double y2, G4double z11, G4double z21, - G4double z12, G4double z22) + G4double z12, G4double z22) const { return (z11*(x2-xv)*(y2-yv) + z22*(xv-x1)*(yv-y1) + 0.5*(z12*((x2-xv)*(yv-y1)+(xv-x1)*(y2-yv))+ @@ -324,7 +312,7 @@ G4EmCorrections::SetIonisationModels(G4VEmModel* mod1, G4VEmModel* mod2) if(mod2) { ionHEModel = mod2; } } -inline G4int G4EmCorrections::GetNumberOfStoppingVectors() +inline G4int G4EmCorrections::GetNumberOfStoppingVectors() const { return nIons; } diff --git a/source/processes/electromagnetic/utils/include/G4EmElementSelector.hh b/source/processes/electromagnetic/utils/include/G4EmElementSelector.hh index 79a9f8e112..68e1a3274a 100644 --- a/source/processes/electromagnetic/utils/include/G4EmElementSelector.hh +++ b/source/processes/electromagnetic/utils/include/G4EmElementSelector.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmElementSelector.hh 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4EmElementSelector.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -73,7 +73,7 @@ public: void Initialise(const G4ParticleDefinition*, G4double cut = 0.0); - void Dump(const G4ParticleDefinition* p = 0); + void Dump(const G4ParticleDefinition* p = nullptr); inline const G4Element* SelectRandomAtom(G4double kineticEnergy) const; @@ -82,8 +82,8 @@ public: private: // hide assignment operator - G4EmElementSelector & operator=(const G4EmElementSelector &right); - G4EmElementSelector(const G4EmElementSelector&); + G4EmElementSelector & operator=(const G4EmElementSelector &right) = delete; + G4EmElementSelector(const G4EmElementSelector&) = delete; G4VEmModel* model; const G4Material* material; diff --git a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh index 1dc8f12c21..bbd7dc0e52 100644 --- a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh +++ b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmModelManager.hh 91745 2015-08-04 11:51:12Z gcosmo $ +// $Id: G4EmModelManager.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -119,8 +119,8 @@ private: return theRegion; }; - G4RegionModels(G4RegionModels &); - G4RegionModels & operator=(const G4RegionModels &right); + G4RegionModels(G4RegionModels &) = delete; + G4RegionModels & operator=(const G4RegionModels &right) = delete; const G4Region* theRegion; G4int nModelsForRegion; @@ -162,22 +162,35 @@ public: G4bool startFromNull = true, G4EmTableType t = fRestricted); - G4VEmModel* GetModel(G4int, G4bool ver = false); + void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel*, const G4Region*); - void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel*, const G4Region*); - - void UpdateEmModel(const G4String&, G4double, G4double); + void UpdateEmModel(const G4String& model_name, G4double emin, G4double emax); + // Get model pointer from the model list + G4VEmModel* GetModel(G4int idx, G4bool ver = false); + + // 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); + + // total number of models for material cut couples + // no check on material cuts couple index + G4int NumberOfRegionModels(size_t index_couple) const; + + // Automatic documentation void DumpModelList(G4int verb); + // Select model for given material cuts couple index inline G4VEmModel* SelectModel(G4double& energy, size_t& index); + // Access to cuts inline const G4DataVector* Cuts() const; - inline const G4DataVector* SubCutoff() const; + // Set flag of fluorescence inline void SetFluoFlag(G4bool val); + // total number of models inline G4int NumberOfModels() const; private: @@ -190,8 +203,8 @@ private: // hide assignment operator - G4EmModelManager(G4EmModelManager &); - G4EmModelManager & operator=(const G4EmModelManager &right); + G4EmModelManager(G4EmModelManager &) = delete; + G4EmModelManager & operator=(const G4EmModelManager &right) = delete; // ===================================================================== diff --git a/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh b/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh index bfe9220369..a489c2e217 100644 --- a/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh +++ b/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmMultiModel.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4EmMultiModel.hh 95681 2016-02-18 09:44:18Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,19 +61,19 @@ class G4EmMultiModel : public G4VEmModel public: - G4EmMultiModel(const G4String& nam = "MultiModel"); + explicit G4EmMultiModel(const G4String& nam = "MultiModel"); virtual ~G4EmMultiModel(); void AddModel(G4VEmModel*); virtual void Initialise(const G4ParticleDefinition*, - const G4DataVector&); + const G4DataVector&) final; virtual G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, - G4double cutEnergy); + G4double cutEnergy) final; // main method to compute cross section per atom virtual @@ -82,19 +82,19 @@ public: G4double Z, G4double A = 0., /* amu */ G4double cutEnergy = 0.0, - G4double maxEnergy = DBL_MAX); + G4double maxEnergy = DBL_MAX) final; virtual void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double tmax); + G4double tmax) final; private: // hide assignment operator - G4EmMultiModel & operator=(const G4EmMultiModel &right); - G4EmMultiModel(const G4EmMultiModel&); + G4EmMultiModel & operator=(const G4EmMultiModel &right) = delete; + G4EmMultiModel(const G4EmMultiModel&) = delete; G4int nModels; std::vector model; diff --git a/source/processes/electromagnetic/utils/include/G4EmParameters.hh b/source/processes/electromagnetic/utils/include/G4EmParameters.hh index 668260b8a7..1be50e9d39 100644 --- a/source/processes/electromagnetic/utils/include/G4EmParameters.hh +++ b/source/processes/electromagnetic/utils/include/G4EmParameters.hh @@ -59,9 +59,14 @@ #include "globals.hh" #include "G4ios.hh" #include "G4MscStepLimitType.hh" +#include "G4NuclearFormfactorType.hh" #include class G4EmParametersMessenger; +class G4VEnergyLossProcess; +class G4VEmProcess; +class G4VAtomDeexcitation; +class G4StateManager; class G4EmParameters { @@ -130,6 +135,9 @@ public: void SetUseMottCorrection(G4bool val); G4bool UseMottCorrection() const; + void SetIntegral(G4bool val); + G4bool Integral() const; + // double parameters with values void SetMinSubRange(G4double val); G4double MinSubRange() const; @@ -176,6 +184,10 @@ public: void SetMscSkin(G4double val); G4double MscSkin() const; + void SetStepFunction(G4double v1, G4double v2); + + void SetStepFunctionMuHad(G4double v1, G4double v2); + // integer parameters void SetNumberOfBins(G4int val); G4int NumberOfBins() const; @@ -195,6 +207,9 @@ public: void SetMscMuHadStepLimitType(G4MscStepLimitType val); G4MscStepLimitType MscMuHadStepLimitType() const; + void SetNuclearFormfactorType(G4NuclearFormfactorType val); + G4NuclearFormfactorType NuclearFormfactorType() const; + // string parameters void SetPIXECrossSectionModel(const G4String&); const G4String& PIXECrossSectionModel(); @@ -202,6 +217,7 @@ public: void SetPIXEElectronCrossSectionModel(const G4String&); const G4String& PIXEElectronCrossSectionModel(); + // parameters per region or per process void AddPAIModel(const G4String& particle, const G4String& region, const G4String& type); @@ -216,21 +232,51 @@ public: const std::vector& RegionsDNA() const; const std::vector& TypesDNA() const; + void SetSubCutoff(G4bool val, const G4String& region = ""); + + void SetDeexActiveRegion(const G4String& region, G4bool fdeex, + G4bool fauger, G4bool fpixe); + + void SetProcessBiasingFactor(const G4String& procname, + G4double val, G4bool wflag); + + void ActivateForcedInteraction(const G4String& procname, + const G4String& region, + G4double length, + G4bool wflag); + + void ActivateSecondaryBiasing(const G4String& name, + const G4String& region, + G4double factor, + G4double energyLimit); + + // initialisation methods + void DefineRegParamForLoss(G4VEnergyLossProcess*, + G4bool isElectron) const; + void DefineRegParamForEM(G4VEmProcess*) const; + void DefineRegParamForDeex(G4VAtomDeexcitation*) const; + private: G4EmParameters(); - void PrintWarning(G4ExceptionDescription& ed); + G4bool IsLocked() const; + + G4String CheckRegion(const G4String&) const; + + void PrintWarning(G4ExceptionDescription& ed) const; static G4EmParameters* theInstance; G4EmParametersMessenger* theMessenger; + G4StateManager* fStateManager; + G4bool lossFluctuation; G4bool buildCSDARange; G4bool flagLPM; G4bool spline; - G4bool finalRange; + G4bool cutAsFinalRange; G4bool applyCuts; G4bool fluo; G4bool beardenFluoDir; @@ -243,6 +289,7 @@ private: G4bool latDisplacementBeyondSafety; G4bool useAngGeneratorForIonisation; G4bool useMottCorrection; + G4bool integral; G4double minSubRange; G4double minKinEnergy; @@ -259,6 +306,10 @@ private: G4double rangeFactorMuHad; G4double geomFactor; G4double skin; + G4double dRoverRange; + G4double finalRange; + G4double dRoverRangeMuHad; + G4double finalRangeMuHad; G4int nbins; G4int nbinsPerDecade; @@ -267,6 +318,7 @@ private: G4MscStepLimitType mscStepLimit; G4MscStepLimitType mscStepLimitMuHad; + G4NuclearFormfactorType nucFormfactor; G4String namePIXE; G4String nameElectronPIXE; @@ -280,6 +332,28 @@ private: std::vector m_regnamesDNA; std::vector m_typesDNA; + std::vector m_regnamesSubCut; + std::vector m_subCuts; + + std::vector m_regnamesDeex; + std::vector m_fluo; + std::vector m_auger; + std::vector m_pixe; + + std::vector m_procBiasedXS; + std::vector m_factBiasedXS; + std::vector m_weightBiasedXS; + + std::vector m_procForced; + std::vector m_regnamesForced; + std::vector m_lengthForced; + std::vector m_weightForced; + + std::vector m_procBiasedSec; + std::vector m_regnamesBiasedSec; + std::vector m_factBiasedSec; + std::vector m_elimBiasedSec; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh b/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh index 06465a3e8a..df4009f279 100644 --- a/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh +++ b/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh @@ -69,10 +69,10 @@ class G4EmParametersMessenger: public G4UImessenger { public: // with description - G4EmParametersMessenger(G4EmParameters*); + explicit G4EmParametersMessenger(G4EmParameters*); virtual ~G4EmParametersMessenger(); - virtual void SetNewValue(G4UIcommand*, G4String); + virtual void SetNewValue(G4UIcommand*, G4String) override; private: @@ -133,6 +133,17 @@ private: G4UIcmdWithAString* meCmd; G4UIcommand* dnaCmd; G4UIcommand* dumpCmd; + + G4UIcommand* SubSecCmd; + G4UIcommand* StepFuncCmd; + G4UIcommand* StepFuncCmd1; + G4UIcmdWithABool* IntegCmd; + G4UIcommand* deexCmd; + G4UIcommand* bfCmd; + G4UIcommand* fiCmd; + G4UIcommand* bsCmd; + G4UIcmdWithAString* nffCmd; + }; #endif diff --git a/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh b/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh index 2bc7693c3b..991d20fc95 100644 --- a/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh +++ b/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmProcessOptions.hh 84398 2014-10-15 07:20:18Z gcosmo $ +// $Id: G4EmProcessOptions.hh 96088 2016-03-14 16:03:38Z gcosmo $ // // // ------------------------------------------------------------------- @@ -59,7 +59,6 @@ class G4EmParameters; class G4LossTableManager; -class G4Region; class G4EmProcessOptions { @@ -134,7 +133,7 @@ public: void SetMscStepLimitation(G4MscStepLimitType val); - void SetSubCutoff(G4bool val, const G4Region* r=0); + void SetSubCutoff(G4bool val, const G4String& r = ""); void SetIntegral(G4bool val); @@ -165,10 +164,9 @@ public: private: - G4EmProcessOptions & operator=(const G4EmProcessOptions &right); - G4EmProcessOptions(const G4EmProcessOptions&); + G4EmProcessOptions & operator=(const G4EmProcessOptions &right) = delete; + G4EmProcessOptions(const G4EmProcessOptions&) = delete; - G4LossTableManager* theManager; G4EmParameters* theParameters; }; diff --git a/source/processes/electromagnetic/utils/include/G4EmSaturation.hh b/source/processes/electromagnetic/utils/include/G4EmSaturation.hh index fe1d1f861c..429427289b 100755 --- a/source/processes/electromagnetic/utils/include/G4EmSaturation.hh +++ b/source/processes/electromagnetic/utils/include/G4EmSaturation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmSaturation.hh 81936 2014-06-06 15:42:55Z gcosmo $ +// $Id: G4EmSaturation.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // #ifndef G4EmSaturation_h @@ -73,7 +73,7 @@ class G4EmSaturation { public: - G4EmSaturation(G4int verb); + explicit G4EmSaturation(G4int verb); virtual ~G4EmSaturation(); // this method may be overwritten in the derived class @@ -84,25 +84,25 @@ public: G4double edepTotal, G4double edepNIEL = 0.0); - // this method should not be overwitten - inline G4double VisibleEnergyDeposition(const G4Step*); - // find and Birks coefficient G4double FindG4BirksCoefficient(const G4Material*); - inline void SetVerbose(G4int); - // dump coeffitients used in run time void DumpBirksCoefficients(); // dump G4 list void DumpG4BirksCoefficients(); + // this method should not be overwitten + inline G4double VisibleEnergyDepositionAtAStep(const G4Step*); + + inline void SetVerbose(G4int); + private: // hide assignment operator - G4EmSaturation & operator=(const G4EmSaturation &right); - G4EmSaturation(const G4EmSaturation&); + G4EmSaturation & operator=(const G4EmSaturation &right) = delete; + G4EmSaturation(const G4EmSaturation&) = delete; inline G4double FindBirksCoefficient(const G4Material*); @@ -115,7 +115,7 @@ private: G4LossTableManager* manager; G4NistManager* nist; - // cash + // cache const G4Material* curMaterial; G4double curBirks; G4double curRatio; @@ -146,7 +146,7 @@ inline void G4EmSaturation::SetVerbose(G4int val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4EmSaturation::VisibleEnergyDeposition( +inline G4double G4EmSaturation::VisibleEnergyDepositionAtAStep( const G4Step* step) { G4Track* track = step->GetTrack(); diff --git a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh index a2e9cfe6c4..7bd0355981 100644 --- a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh +++ b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LossTableBuilder.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4LossTableBuilder.hh 96088 2016-03-14 16:03:38Z gcosmo $ // // // ------------------------------------------------------------------- @@ -57,6 +57,7 @@ class G4VEmModel; class G4ParticleDefinition; +class G4EmParameters; class G4LossTableBuilder { @@ -107,8 +108,10 @@ private: void InitialiseCouples(); - G4LossTableBuilder & operator=(const G4LossTableBuilder &right); - G4LossTableBuilder(const G4LossTableBuilder&); + G4LossTableBuilder & operator=(const G4LossTableBuilder &right) = delete; + G4LossTableBuilder(const G4LossTableBuilder&) = delete; + + G4EmParameters* theParameters; G4bool splineFlag; G4bool isInitialized; diff --git a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh index 0368e6051e..8523f8f345 100644 --- a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh +++ b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LossTableManager.hh 91566 2015-07-27 12:20:23Z gcosmo $ +// $Id: G4LossTableManager.hh 96115 2016-03-16 18:53:00Z gcosmo $ // // // ------------------------------------------------------------------- @@ -81,7 +81,6 @@ #include #include "globals.hh" #include "G4ThreadLocalSingleton.hh" -#include "G4EmParameters.hh" #include "G4VEnergyLossProcess.hh" #include "G4EmCorrections.hh" #include "G4LossTableBuilder.hh" @@ -90,7 +89,6 @@ class G4PhysicsTable; class G4MaterialCutsCouple; -class G4EnergyLossMessenger; class G4ParticleDefinition; class G4Region; class G4EmSaturation; @@ -204,36 +202,6 @@ public: void RegisterExtraParticle(const G4ParticleDefinition* aParticle, G4VEnergyLossProcess* p); - void SetLossFluctuations(G4bool val); - - void SetSubCutoff(G4bool val, const G4Region* r=0); - - void SetIntegral(G4bool val); - - void SetRandomStep(G4bool val); - - void SetMinSubRange(G4double val); - - void SetMinEnergy(G4double val); - - void SetMaxEnergy(G4double val); - - void SetMaxEnergyForCSDARange(G4double val); - - void SetMaxEnergyForMuons(G4double val); - - void SetDEDXBinning(G4int val); - - void SetDEDXBinningForCSDARange(G4int val); - - void SetLambdaBinning(G4int val); - - void SetStepFunction(G4double v1, G4double v2); - - void SetBuildCSDARange(G4bool val); - - void SetLinearLossLimit(G4double val); - void SetVerbose(G4int val); void SetAtomDeexcitation(G4VAtomDeexcitation*); @@ -244,18 +212,8 @@ public: // Access methods //------------------------------------------------- - G4EnergyLossMessenger* GetMessenger(); - - inline G4bool BuildCSDARange() const; - inline G4bool IsMaster() const; - inline G4double MinKinEnergy() const; - - inline G4double MaxKinEnergy() const; - - inline G4int GetNumberOfBinsPerDecade() const; - inline G4VEnergyLossProcess* GetEnergyLossProcess(const G4ParticleDefinition*); @@ -296,15 +254,12 @@ private: void ParticleHaveNoLoss(const G4ParticleDefinition* aParticle); - void SetParameters(const G4ParticleDefinition* aParticle, - G4VEnergyLossProcess*); - void CopyDEDXTables(); void PrintEWarning(G4String, G4double); - G4LossTableManager(G4LossTableManager &); - G4LossTableManager & operator=(const G4LossTableManager &right); + G4LossTableManager(G4LossTableManager &) = delete; + G4LossTableManager & operator=(const G4LossTableManager &right) = delete; static G4ThreadLocal G4LossTableManager* instance; @@ -325,7 +280,7 @@ private: std::vector mod_vector; std::vector fmod_vector; - // cash + // cache G4VEnergyLossProcess* currentLoss; PD currentParticle; PD theElectron; @@ -337,18 +292,8 @@ private: G4bool all_tables_are_built; G4bool startInitialisation; - - G4bool subCutoffFlag; - G4bool integral; - G4bool integralActive; - G4bool stepFunctionActive; G4bool isMaster; - - G4double maxRangeVariation; - G4double maxFinalStep; - G4LossTableBuilder* tableBuilder; - G4EnergyLossMessenger* theMessenger; G4EmCorrections* emCorrections; G4EmSaturation* emSaturation; G4EmConfigurator* emConfigurator; @@ -368,8 +313,8 @@ private: inline G4VEnergyLossProcess* G4LossTableManager::GetEnergyLossProcess(const G4ParticleDefinition *aParticle) { - //G4cout << aParticle << " " << currentParticle - //<< " " << currentLoss << G4endl; + //G4cout << "G4LossTableManager::GetEnergyLossProcess: " + //<< aParticle << " " << currentParticle << " " << currentLoss << G4endl; if(aParticle != currentParticle) { currentParticle = aParticle; std::map >::const_iterator pos; @@ -377,10 +322,8 @@ G4LossTableManager::GetEnergyLossProcess(const G4ParticleDefinition *aParticle) currentLoss = (*pos).second; } else { currentLoss = 0; - //if(aParticle->GetParticleType() == "nucleus") { if ((pos = loss_map.find(theGenericIon)) != loss_map.end()) { currentLoss = (*pos).second; - //} } } } @@ -485,13 +428,6 @@ G4double G4LossTableManager::GetDEDXDispersion( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -inline G4bool G4LossTableManager::BuildCSDARange() const -{ - return theParameters->BuildCSDARange(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - inline G4bool G4LossTableManager::IsMaster() const { return isMaster; @@ -499,27 +435,6 @@ inline G4bool G4LossTableManager::IsMaster() const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4LossTableManager::MinKinEnergy() const -{ - return theParameters->MinKinEnergy(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline G4double G4LossTableManager::MaxKinEnergy() const -{ - return theParameters->MaxKinEnergy(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -G4int G4LossTableManager::GetNumberOfBinsPerDecade() const -{ - return theParameters->NumberOfBinsPerDecade(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - inline G4EmCorrections* G4LossTableManager::EmCorrections() { return emCorrections; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc b/source/processes/electromagnetic/utils/include/G4NuclearFormfactorType.hh similarity index 74% rename from source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc rename to source/processes/electromagnetic/utils/include/G4NuclearFormfactorType.hh index 8153f47a16..c7db0bc106 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc +++ b/source/processes/electromagnetic/utils/include/G4NuclearFormfactorType.hh @@ -23,21 +23,34 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VFermiBreakUp.cc 67983 2013-03-13 10:42:03Z gcosmo $ // -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Nov 1998) +// $Id: G4NuclearFormfactorType.hh 84082 2014-10-06 14:33:09Z urban $ // +//--------------------------------------------------------------- +// +// G4NuclearFormfactorType.hh +// +// Class Description: +// This is an enumerator to define type nuclear formfactor +// parameterisation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 9.03.2016 // Modifications: -// 01.04.2011 General cleanup by V.Ivanchenko +// +//--------------------------------------------------------------- -#include "G4VFermiBreakUp.hh" - -G4VFermiBreakUp::G4VFermiBreakUp() -{} - -G4VFermiBreakUp::~G4VFermiBreakUp() -{} +#ifndef G4NuclearFormfactorType_h +#define G4NuclearFormfactorType_h 1 +enum G4NuclearFormfactorType +{ + fNoneNF = 0, + fExponentialNF, + fGaussianNF, + fFlatNF +}; +#endif diff --git a/source/processes/electromagnetic/utils/include/G4VAtomDeexcitation.hh b/source/processes/electromagnetic/utils/include/G4VAtomDeexcitation.hh index 1cb4137123..224dd206fb 100755 --- a/source/processes/electromagnetic/utils/include/G4VAtomDeexcitation.hh +++ b/source/processes/electromagnetic/utils/include/G4VAtomDeexcitation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VAtomDeexcitation.hh 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4VAtomDeexcitation.hh 96698 2016-05-02 07:19:24Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,7 +64,7 @@ class G4MaterialCutsCouple; class G4VAtomDeexcitation { public: - G4VAtomDeexcitation(const G4String& modname = "Deexcitation"); + explicit G4VAtomDeexcitation(const G4String& modname = "Deexcitation"); virtual ~G4VAtomDeexcitation(); @@ -142,15 +142,16 @@ public: G4int Z, G4AtomicShellEnumerator shell, G4double kinE, - const G4Material* mat = 0) = 0; + const G4Material* mat = nullptr) = 0; // access or compute PIXE cross section virtual G4double - ComputeShellIonisationCrossSectionPerAtom(const G4ParticleDefinition*, - G4int Z, - G4AtomicShellEnumerator shell, - G4double kinE, - const G4Material* mat = 0) = 0; + ComputeShellIonisationCrossSectionPerAtom( + const G4ParticleDefinition*, + G4int Z, + G4AtomicShellEnumerator shell, + G4double kinE, + const G4Material* mat = nullptr) = 0; // Sampling of PIXE for ionisation processes void AlongStepDeexcitation(std::vector& tracks, @@ -161,8 +162,8 @@ public: private: // copy constructor and hide assignment operator - G4VAtomDeexcitation(G4VAtomDeexcitation &); - G4VAtomDeexcitation & operator=(const G4VAtomDeexcitation &right); + G4VAtomDeexcitation(G4VAtomDeexcitation &) = delete; + G4VAtomDeexcitation & operator=(const G4VAtomDeexcitation &right) = delete; G4EmParameters* theParameters; const G4ParticleDefinition* gamma; @@ -170,11 +171,18 @@ private: G4ProductionCutsTable* theCoupleTable; G4int verbose; G4String name; + G4bool isActive; G4bool flagAuger; G4bool flagAugerCascade; G4bool flagPIXE; G4bool ignoreCuts; + + G4bool isActiveLocked; + G4bool isAugerLocked; + G4bool isAugerCascadeLocked; + G4bool isPIXELocked; + std::vector activeZ; std::vector activeDeexcitationMedia; std::vector activeAugerMedia; @@ -191,8 +199,7 @@ private: inline void G4VAtomDeexcitation::SetFluo(G4bool val) { - isActive = val; - theParameters->SetFluo(val); + if(!isActiveLocked) { isActive = val; isActiveLocked = true; } } inline G4bool G4VAtomDeexcitation::IsFluoActive() const @@ -202,9 +209,7 @@ inline G4bool G4VAtomDeexcitation::IsFluoActive() const inline void G4VAtomDeexcitation::SetAuger(G4bool val) { - flagAuger = val; - if(val) { isActive = true; } - theParameters->SetAuger(val); + if(!isAugerLocked) { flagAuger = val; isAugerLocked = true; } } inline G4bool G4VAtomDeexcitation::IsAugerActive() const @@ -214,9 +219,7 @@ inline G4bool G4VAtomDeexcitation::IsAugerActive() const inline void G4VAtomDeexcitation::SetAugerCascade(G4bool val) { - flagAugerCascade = val; - if(val) { isActive = true; } - theParameters->SetAugerCascade(val); + if(!isAugerCascadeLocked) { flagAugerCascade = val; isAugerCascadeLocked = true; } } inline G4bool G4VAtomDeexcitation::IsAugerCascadeActive() const @@ -226,9 +229,7 @@ inline G4bool G4VAtomDeexcitation::IsAugerCascadeActive() const inline void G4VAtomDeexcitation::SetPIXE(G4bool val) { - flagPIXE = val; - if(val) { isActive = true; } - theParameters->SetPixe(val); + if(!isPIXELocked) { flagPIXE = val; isPIXELocked = true; } } inline G4bool G4VAtomDeexcitation::IsPIXEActive() const diff --git a/source/processes/electromagnetic/utils/include/G4VEmAngularDistribution.hh b/source/processes/electromagnetic/utils/include/G4VEmAngularDistribution.hh index b037e7061d..a5ab6f4431 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmAngularDistribution.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmAngularDistribution.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEmAngularDistribution.hh 73847 2013-09-13 14:32:39Z gcosmo $ +// $Id: G4VEmAngularDistribution.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -61,7 +61,7 @@ class G4VEmAngularDistribution { public: - G4VEmAngularDistribution(const G4String& name); + explicit G4VEmAngularDistribution(const G4String& name); virtual ~G4VEmAngularDistribution(); @@ -91,9 +91,10 @@ protected: private: - // hide assignment operator - G4VEmAngularDistribution & operator=(const G4VEmAngularDistribution &right); - G4VEmAngularDistribution(const G4VEmAngularDistribution&); + // hide assignment operator + G4VEmAngularDistribution & + operator=(const G4VEmAngularDistribution &right) = delete; + G4VEmAngularDistribution(const G4VEmAngularDistribution&) = delete; G4String fName; }; diff --git a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh index 3171a8a38a..1a31612b3c 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEmFluctuationModel.hh 89820 2015-04-30 14:54:53Z gcosmo $ +// $Id: G4VEmFluctuationModel.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -71,7 +71,7 @@ class G4VEmFluctuationModel public: - G4VEmFluctuationModel(const G4String& nam); + explicit G4VEmFluctuationModel(const G4String& nam); virtual ~G4VEmFluctuationModel(); @@ -107,8 +107,9 @@ public: private: // hide assignment operator - G4VEmFluctuationModel & operator=(const G4VEmFluctuationModel &right); - G4VEmFluctuationModel(const G4VEmFluctuationModel&); + G4VEmFluctuationModel & + operator=(const G4VEmFluctuationModel &right) = delete; + G4VEmFluctuationModel(const G4VEmFluctuationModel&) = delete; const G4String name; G4LossTableManager* fManager; diff --git a/source/processes/electromagnetic/utils/include/G4VEmModel.hh b/source/processes/electromagnetic/utils/include/G4VEmModel.hh index af79fc2646..458f4c20a4 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEmModel.hh 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VEmModel.hh 97742 2016-06-08 09:24:54Z gcosmo $ // // ------------------------------------------------------------------- // @@ -106,7 +106,7 @@ class G4VEmModel public: - G4VEmModel(const G4String& nam); + explicit G4VEmModel(const G4String& nam); virtual ~G4VEmModel(); @@ -157,10 +157,9 @@ public: // method to get partial cross section virtual G4double GetPartialCrossSection(const G4Material*, - G4int /*level*/, + G4int level, const G4ParticleDefinition*, - G4double /*kineticEnergy*/) - { return 0;} + G4double kineticEnergy); // main method to compute cross section per atom virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, @@ -223,7 +222,7 @@ public: virtual void DefineForRegion(const G4Region*); // for automatic documentation - virtual void ModelDescription(std::ostream& outFile) const; //=0; + virtual void ModelDescription(std::ostream& outFile) const; protected: @@ -254,7 +253,7 @@ public: inline void SetElementSelectors(std::vector*); // dEdx per unit length - inline G4double ComputeDEDX(const G4MaterialCutsCouple*, + virtual inline G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy = DBL_MAX); @@ -304,7 +303,7 @@ public: // Get/Set methods //------------------------------------------------------------------------ - void SetParticleChange(G4VParticleChange*, G4VEmFluctuationModel* f=0); + void SetParticleChange(G4VParticleChange*, G4VEmFluctuationModel* f=nullptr); void SetCrossSectionTable(G4PhysicsTable*, G4bool isLocal); @@ -387,11 +386,11 @@ protected: private: // hide assignment operator - G4VEmModel & operator=(const G4VEmModel &right); - G4VEmModel(const G4VEmModel&); + G4VEmModel & operator=(const G4VEmModel &right) = delete; + G4VEmModel(const G4VEmModel&) = delete; // ======== Parameters of the class fixed at construction ========= - + G4VEmFluctuationModel* flucModel; G4VEmAngularDistribution* anglModel; const G4String name; @@ -415,6 +414,7 @@ private: G4bool isLocked; G4int nSelectors; std::vector* elmSelectors; + G4LossTableManager* fEmManager; protected: @@ -426,11 +426,10 @@ protected: size_t idxTable; const static G4double inveplus; - // ======== Cashed values - may be state dependent ================ + // ======== Cached values - may be state dependent ================ private: - G4LossTableManager* fManager; const G4MaterialCutsCouple* fCurrentCouple; const G4Element* fCurrentElement; const G4Isotope* fCurrentIsotope; @@ -459,7 +458,7 @@ inline const G4MaterialCutsCouple* G4VEmModel::CurrentCouple() const inline void G4VEmModel::SetCurrentElement(const G4Element* elm) { fCurrentElement = elm; - fCurrentIsotope = 0; + fCurrentIsotope = nullptr; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -518,10 +517,8 @@ G4double G4VEmModel::ComputeMeanFreePath(const G4ParticleDefinition* part, G4double emin, G4double emax) { - G4double mfp = DBL_MAX; G4double cross = CrossSectionPerVolume(material,part,ekin,emin,emax); - if (cross > DBL_MIN) { mfp = 1./cross; } - return mfp; + return cross > 0.0 ? 1./cross : DBL_MAX; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -555,7 +552,7 @@ G4VEmModel::SelectRandomAtom(const G4MaterialCutsCouple* couple, fCurrentElement = SelectRandomAtom(couple->GetMaterial(),part,kinEnergy, cutEnergy,maxEnergy); } - fCurrentIsotope = 0; + fCurrentIsotope = nullptr; return fCurrentElement; } @@ -567,14 +564,16 @@ inline G4int G4VEmModel::SelectRandomAtomNumber(const G4Material* mat) // number electrons multiplied by number of atoms size_t nn = mat->GetNumberOfElements(); const G4ElementVector* elmv = mat->GetElementVector(); - G4int Z = G4lrint((*elmv)[0]->GetZ()); + G4int Z = (*elmv)[0]->GetZasInt(); if(1 < nn) { const G4double* at = mat->GetVecNbOfAtomsPerVolume(); G4double tot = mat->GetTotNbOfAtomsPerVolume()*G4UniformRand(); for( size_t i=0; iGetZ()); - tot -= Z*at[i]; - if(tot <= 0.0) { break; } + tot -= at[i]; + if(tot <= 0.0) { + Z = (*elmv)[i]->GetZasInt(); + break; + } } } return Z; @@ -587,7 +586,7 @@ inline G4int G4VEmModel::SelectIsotopeNumber(const G4Element* elm) SetCurrentElement(elm); G4int N = G4lrint(elm->GetN()); G4int ni = elm->GetNumberOfIsotopes(); - fCurrentIsotope = 0; + fCurrentIsotope = nullptr; if(ni > 0) { G4int idx = 0; if(ni > 1) { diff --git a/source/processes/electromagnetic/utils/include/G4VEmProcess.hh b/source/processes/electromagnetic/utils/include/G4VEmProcess.hh index 2c87fe62d5..a57b9d1a97 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmProcess.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmProcess.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEmProcess.hh 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VEmProcess.hh 95657 2016-02-17 13:03:36Z gcosmo $ // // ------------------------------------------------------------------- // @@ -103,7 +103,7 @@ public: // Virtual methods to be implemented in concrete processes //------------------------------------------------------------------------ - virtual G4bool IsApplicable(const G4ParticleDefinition& p) = 0; + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override = 0; virtual void PrintInfo() = 0; @@ -127,28 +127,29 @@ protected: public: // Initialise for build of tables - virtual void PreparePhysicsTable(const G4ParticleDefinition&); + virtual void PreparePhysicsTable(const G4ParticleDefinition&) override; // Build physics table during initialisation - virtual void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void BuildPhysicsTable(const G4ParticleDefinition&) override; // Called before tracking of each new G4Track - virtual void StartTracking(G4Track*); + virtual void StartTracking(G4Track*) override; // implementation of virtual method, specific for G4VEmProcess virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; // implementation of virtual method, specific for G4VEmProcess - virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* PostStepDoIt(const G4Track&, + const G4Step&) override; // Store PhysicsTable in a file. // Return false in case of failure at I/O virtual G4bool StorePhysicsTable(const G4ParticleDefinition*, const G4String& directory, - G4bool ascii = false); + G4bool ascii = false) override; // Retrieve Physics from a file. // (return true if the Physics Table can be build by using file) @@ -157,7 +158,7 @@ public: // should be placed under the directory specifed by the argument. virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition*, const G4String& directory, - G4bool ascii); + G4bool ascii) override; //------------------------------------------------------------------------ // Specific methods for Discrete EM post step simulation @@ -220,7 +221,7 @@ public: // Add model for region, smaller value of order defines which // model will be selected for a given energy interval - void AddEmModel(G4int, G4VEmModel*, const G4Region* region = 0); + void AddEmModel(G4int, G4VEmModel*, const G4Region* region = nullptr); // return the assigned model G4VEmModel* EmModel(G4int index = 1) const; @@ -232,14 +233,17 @@ public: void UpdateEmModel(const G4String&, G4double, G4double); // Access to models + G4int GetNumberOfModels() const; + G4int GetNumberOfRegionModels(size_t couple_index) const; + G4VEmModel* GetRegionModel(G4int idx, size_t couple_index) const; G4VEmModel* GetModelByIndex(G4int idx = 0, G4bool ver = false) const; - // access atom on which interaction happens - const G4Element* GetCurrentElement() const; - - // access to active model + // Access to active model inline const G4VEmModel* GetCurrentModel() const; + // Access to the current G4Element + const G4Element* GetCurrentElement() const; + // Biasing parameters void SetCrossSectionBiasingFactor(G4double f, G4bool flag = true); inline G4double CrossSectionBiasingFactor() const; @@ -264,7 +268,7 @@ protected: virtual G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; G4PhysicsVector* LambdaPhysicsVector(const G4MaterialCutsCouple*); @@ -326,9 +330,9 @@ private: inline G4double ComputeCurrentLambda(G4double kinEnergy); - // copy constructor and hide assignment operator - G4VEmProcess(G4VEmProcess &); - G4VEmProcess & operator=(const G4VEmProcess &right); + // hide copy constructor and assignment operator + G4VEmProcess(G4VEmProcess &) = delete; + G4VEmProcess & operator=(const G4VEmProcess &right) = delete; // ======== Parameters of the class fixed at construction ========= @@ -396,7 +400,7 @@ private: const G4ParticleDefinition* particle; const G4ParticleDefinition* currentParticle; - // cash + // cache const G4Material* baseMaterial; const G4Material* currentMaterial; const G4MaterialCutsCouple* currentCouple; diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh index ad693d3954..d07e407572 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEnergyLossProcess.hh 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VEnergyLossProcess.hh 96139 2016-03-17 14:10:31Z gcosmo $ // GEANT4 tag $Name: // // ------------------------------------------------------------------- @@ -139,7 +139,7 @@ private: //------------------------------------------------------------------------ public: - virtual G4bool IsApplicable(const G4ParticleDefinition& p) = 0; + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override = 0; virtual void PrintInfo() = 0; @@ -165,10 +165,10 @@ protected: public: // prepare all tables - virtual void PreparePhysicsTable(const G4ParticleDefinition&); + virtual void PreparePhysicsTable(const G4ParticleDefinition&) override; // build all tables - virtual void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void BuildPhysicsTable(const G4ParticleDefinition&) override; // build a table G4PhysicsTable* BuildDEDXTable(G4EmTableType tType = fRestricted); @@ -180,7 +180,7 @@ public: void PrintInfoDefinition(const G4ParticleDefinition& part); // Called before tracking of each new G4Track - virtual void StartTracking(G4Track*); + virtual void StartTracking(G4Track*) override; // Step limit from AlongStep virtual G4double AlongStepGetPhysicalInteractionLength( @@ -188,16 +188,17 @@ public: G4double previousStepSize, G4double currentMinimumStep, G4double& currentSafety, - G4GPILSelection* selection); + G4GPILSelection* selection) override; // Step limit from cross section virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; // AlongStep computations - virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* AlongStepDoIt(const G4Track&, + const G4Step&) override; // Sampling of secondaries in vicinity of geometrical boundary // Return sum of secodaries energy @@ -205,20 +206,21 @@ public: G4VEmModel* model, G4int matIdx); // PostStep sampling of secondaries - virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* PostStepDoIt(const G4Track&, + const G4Step&) override; // Store all PhysicsTable in files. // Return false in case of any fatal failure at I/O virtual G4bool StorePhysicsTable(const G4ParticleDefinition*, const G4String& directory, - G4bool ascii = false); + G4bool ascii = false) override; // Retrieve all Physics from a files. // Return true if all the Physics Table are built. // Return false if any fatal failure. virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition*, const G4String& directory, - G4bool ascii); + G4bool ascii) override; private: // store a table @@ -264,13 +266,13 @@ protected: // implementation of the pure virtual method virtual G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; // implementation of the pure virtual method virtual G4double GetContinuousStepLimit(const G4Track& track, G4double previousStepSize, G4double currentMinimumStep, - G4double& currentSafety); + G4double& currentSafety) override; //------------------------------------------------------------------------ // Run time method which may be also used by derived processes @@ -299,7 +301,7 @@ public: // energy interval void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel* fluc = 0, - const G4Region* region = 0); + const G4Region* region = nullptr); // Define new energy range for the model identified by the name void UpdateEmModel(const G4String&, G4double, G4double); @@ -340,13 +342,13 @@ public: //------------------------------------------------------------------------ // Add subcutoff option for the region - void ActivateSubCutoff(G4bool val, const G4Region* region = 0); + void ActivateSubCutoff(G4bool val, const G4Region* region = nullptr); // Activate biasing void SetCrossSectionBiasingFactor(G4double f, G4bool flag = true); - void ActivateForcedInteraction(G4double length = 0.0, - const G4String& region = "", + void ActivateForcedInteraction(G4double length, + const G4String& region, G4bool flag = true); void ActivateSecondaryBiasing(const G4String& region, G4double factor, @@ -367,7 +369,7 @@ public: // Redefine parameteters for stepping control void SetLinearLossLimit(G4double val); - void SetStepFunction(G4double v1, G4double v2); + void SetStepFunction(G4double v1, G4double v2, G4bool lock=true); void SetLowestEnergyLimit(G4double); inline G4int NumberOfSubCutoffRegions() const; @@ -464,8 +466,8 @@ private: inline void ComputeLambdaForScaledEnergy(G4double scaledKinEnergy); // hide assignment operator - G4VEnergyLossProcess(G4VEnergyLossProcess &); - G4VEnergyLossProcess & operator=(const G4VEnergyLossProcess &right); + G4VEnergyLossProcess(G4VEnergyLossProcess &) = delete; + G4VEnergyLossProcess & operator=(const G4VEnergyLossProcess &right) = delete; // ======== Parameters of the class fixed at construction ========= @@ -557,6 +559,8 @@ private: G4bool biasFlag; G4bool weightFlag; G4bool isMaster; + G4bool actIntegral; + G4bool actStepFunc; G4bool actLinLossLimit; G4bool actLossFluc; G4bool actBinning; @@ -583,8 +587,6 @@ private: size_t basedCoupleIndex; size_t lastIdx; - G4int nWarnings; - G4double massRatio; G4double fFactor; G4double reduceFactor; @@ -940,6 +942,7 @@ G4VEnergyLossProcess::SecondaryParticle() const inline void G4VEnergyLossProcess::SetLossFluctuations(G4bool val) { lossFluctuationFlag = val; + actLossFluc = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -947,6 +950,7 @@ inline void G4VEnergyLossProcess::SetLossFluctuations(G4bool val) inline void G4VEnergyLossProcess::SetIntegral(G4bool val) { integral = val; + actIntegral = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/include/G4VMscModel.hh b/source/processes/electromagnetic/utils/include/G4VMscModel.hh index 2dcd5ebd31..8bb64f01e3 100644 --- a/source/processes/electromagnetic/utils/include/G4VMscModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VMscModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VMscModel.hh 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VMscModel.hh 96626 2016-04-27 08:36:27Z gcosmo $ // // ------------------------------------------------------------------- // @@ -58,7 +58,6 @@ #include "G4Track.hh" #include "G4SafetyHelper.hh" #include "G4VEnergyLossProcess.hh" -#include "G4LossTableManager.hh" #include "G4PhysicsTable.hh" #include "G4ThreeVector.hh" #include @@ -70,7 +69,7 @@ class G4VMscModel : public G4VEmModel public: - G4VMscModel(const G4String& nam); + explicit G4VMscModel(const G4String& nam); virtual ~G4VMscModel(); @@ -89,7 +88,7 @@ public: const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double tmax); + G4double tmax) override; //================================================================ // Set parameters of multiple scattering models @@ -125,7 +124,7 @@ protected: // initialisation of the ParticleChange for the model // initialisation of interface with geometry and ionisation G4ParticleChangeForMSC* - GetParticleChangeForMSC(const G4ParticleDefinition* p = 0); + GetParticleChangeForMSC(const G4ParticleDefinition* p = nullptr); // convert true length to geometry length inline G4double ConvertTrueToGeom(G4double& tLength, G4double& gLength); @@ -160,13 +159,12 @@ public: private: // hide assignment operator - G4VMscModel & operator=(const G4VMscModel &right); - G4VMscModel(const G4VMscModel&); + G4VMscModel & operator=(const G4VMscModel &right) = delete; + G4VMscModel(const G4VMscModel&) = delete; G4SafetyHelper* safetyHelper; G4VEnergyLossProcess* ionisation; const G4ParticleDefinition* currentPart; - G4LossTableManager* man; G4double dedx; G4double localtkin; @@ -258,16 +256,6 @@ inline G4double G4VMscModel::ComputeGeomLimit(const G4Track& track, G4double& presafety, G4double limit) { - /* - G4double res = geomMax; - if(track.GetVolume() != safetyHelper->GetWorldVolume()) { - G4double res = safetyHelper->CheckNextStep( - track.GetStep()->GetPreStepPoint()->GetPosition(), - track.GetMomentumDirection(), - limit, presafety); - } - return res; - */ return safetyHelper->CheckNextStep( track.GetStep()->GetPreStepPoint()->GetPosition(), track.GetMomentumDirection(), @@ -361,8 +349,7 @@ G4VMscModel::GetTransportMeanFreePath(const G4ParticleDefinition* part, x = CrossSectionPerVolume(CurrentCouple()->GetMaterial(), part, ekin, 0.0, DBL_MAX); } - if(0.0 >= x) { x = DBL_MAX; } - else { x = 1.0/x; } + x = (x > 0.0) ? 1.0/x : DBL_MAX; return x; } diff --git a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh index 67a594f947..8d74b11607 100644 --- a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VMultipleScattering.hh 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VMultipleScattering.hh 97432 2016-06-03 07:23:39Z gcosmo $ // // ------------------------------------------------------------------- // @@ -102,7 +102,7 @@ public: // Virtual methods to be implemented for the concrete model //------------------------------------------------------------------------ - virtual G4bool IsApplicable(const G4ParticleDefinition& p) = 0; + virtual G4bool IsApplicable(const G4ParticleDefinition& p) override = 0; virtual void PrintInfo() = 0; @@ -119,10 +119,10 @@ public: //------------------------------------------------------------------------ // Initialise for build of tables - void PreparePhysicsTable(const G4ParticleDefinition&); + void PreparePhysicsTable(const G4ParticleDefinition&) override; // Build physics table during initialisation - void BuildPhysicsTable(const G4ParticleDefinition&); + void BuildPhysicsTable(const G4ParticleDefinition&) override; // Print out of generic class parameters void PrintInfoDefinition(); @@ -131,7 +131,7 @@ public: // Return false in case of failure at I/O G4bool StorePhysicsTable(const G4ParticleDefinition*, const G4String& directory, - G4bool ascii = false); + G4bool ascii = false) override; // Retrieve Physics from a file. // (return true if the Physics Table can be build by using file) @@ -140,33 +140,33 @@ public: // should be placed under the directory specifed by the argument. G4bool RetrievePhysicsTable(const G4ParticleDefinition*, const G4String& directory, - G4bool ascii); + G4bool ascii) override; // This is called in the beginning of tracking for a new track - void StartTracking(G4Track*); + void StartTracking(G4Track*) override; // The function overloads the corresponding function of the base // class.It limits the step near to boundaries only // and invokes the method GetMscContinuousStepLimit at every step. G4double AlongStepGetPhysicalInteractionLength( - const G4Track&, - G4double previousStepSize, - G4double currentMinimalStep, - G4double& currentSafety, - G4GPILSelection* selection); + const G4Track&, + G4double previousStepSize, + G4double currentMinimalStep, + G4double& currentSafety, + G4GPILSelection* selection) override; // The function overloads the corresponding function of the base // class. G4double PostStepGetPhysicalInteractionLength( - const G4Track&, - G4double previousStepSize, - G4ForceCondition* condition); + const G4Track&, + G4double previousStepSize, + G4ForceCondition* condition) override; // Along step actions - G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); + G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&) override; // Post step actions - G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + 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, @@ -185,7 +185,7 @@ public: // Add model for region, smaller value of order defines which // model will be selected for a given energy interval - void AddEmModel(G4int order, G4VEmModel*, const G4Region* region = 0); + void AddEmModel(G4int order, G4VEmModel*, const G4Region* region = nullptr); // Assign a model to a process void SetEmModel(G4VMscModel*, G4int index = 1); @@ -234,19 +234,23 @@ protected: // This method is not used for tracking, it returns mean free path value G4double GetMeanFreePath(const G4Track& track, G4double, - G4ForceCondition* condition); + G4ForceCondition* condition) override; // This method is not used for tracking, it returns step limit G4double GetContinuousStepLimit(const G4Track& track, G4double previousStepSize, G4double currentMinimalStep, - G4double& currentSafety); + G4double& currentSafety) override ; + + // return number of already added models + inline size_t NumberOfModels() const; private: // hide assignment operator - G4VMultipleScattering(G4VMultipleScattering &); - G4VMultipleScattering & operator=(const G4VMultipleScattering &right); + G4VMultipleScattering(G4VMultipleScattering &) = delete; + G4VMultipleScattering & + operator=(const G4VMultipleScattering &right) = delete; // ======== Parameters of the class fixed at construction ========= @@ -285,6 +289,8 @@ private: G4VMscModel* currentModel; G4VEnergyLossProcess* fIonisation; + G4double geomMin; + G4double minDisplacement2; G4double physStepLimit; G4double tPathLength; G4double gPathLength; @@ -403,4 +409,11 @@ inline const G4ParticleDefinition* G4VMultipleScattering::FirstParticle() const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +inline size_t G4VMultipleScattering::NumberOfModels() const +{ + return modelManager->NumberOfModels(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + #endif diff --git a/source/processes/electromagnetic/utils/include/G4VSubCutProducer.hh b/source/processes/electromagnetic/utils/include/G4VSubCutProducer.hh index d42c04d1a6..57141d1217 100644 --- a/source/processes/electromagnetic/utils/include/G4VSubCutProducer.hh +++ b/source/processes/electromagnetic/utils/include/G4VSubCutProducer.hh @@ -59,7 +59,7 @@ class G4VSubCutProducer { public: - G4VSubCutProducer(const G4String& name) : fName(name) {}; + explicit G4VSubCutProducer(const G4String& name) : fName(name) {}; virtual ~G4VSubCutProducer() {}; @@ -76,8 +76,8 @@ public: private: // hide assignment operator - G4VSubCutProducer & operator=(const G4VSubCutProducer &right); - G4VSubCutProducer(const G4VSubCutProducer&); + G4VSubCutProducer & operator=(const G4VSubCutProducer &right) = delete; + G4VSubCutProducer(const G4VSubCutProducer&) = delete; G4String fName; }; diff --git a/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh b/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh index 4c99fd277d..1cf297ab75 100644 --- a/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh +++ b/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ionEffectiveCharge.hh 79394 2014-02-27 08:51:38Z gcosmo $ +// $Id: G4ionEffectiveCharge.hh 96626 2016-04-27 08:36:27Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,7 +64,7 @@ class G4ionEffectiveCharge public: - G4ionEffectiveCharge(); + explicit G4ionEffectiveCharge(); virtual ~G4ionEffectiveCharge(); @@ -80,8 +80,8 @@ public: private: // hide assignment operator - G4ionEffectiveCharge & operator=(const G4ionEffectiveCharge &right); - G4ionEffectiveCharge(const G4ionEffectiveCharge&); + G4ionEffectiveCharge & operator=(const G4ionEffectiveCharge &right) = delete; + G4ionEffectiveCharge(const G4ionEffectiveCharge&) = delete; static const G4double inveplus; G4Pow* g4pow; diff --git a/source/processes/electromagnetic/utils/sources.cmake b/source/processes/electromagnetic/utils/sources.cmake index 5fb3bb93e8..80c23c0399 100644 --- a/source/processes/electromagnetic/utils/sources.cmake +++ b/source/processes/electromagnetic/utils/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 84398 2014-10-15 07:20:18Z gcosmo $ +# $Id: sources.cmake 96626 2016-04-27 08:36:27Z gcosmo $ # #------------------------------------------------------------------------------ @@ -61,11 +61,11 @@ GEANT4_DEFINE_MODULE(NAME G4emutils G4EmProcessSubType.hh G4EmSaturation.hh G4EmTableType.hh - G4EnergyLossMessenger.hh G4EnergyLossTables.hh G4LossTableBuilder.hh G4LossTableManager.hh G4MscStepLimitType.hh + G4NuclearFormfactorType.hh G4VAtomDeexcitation.hh G4VEmAngularDistribution.hh G4VEmFluctuationModel.hh @@ -78,7 +78,6 @@ GEANT4_DEFINE_MODULE(NAME G4emutils G4ionEffectiveCharge.hh SOURCES G4AngleDirect.cc - G4AtomicShell.cc G4DummyModel.cc G4ElectronIonPair.cc G4EmBiasingManager.cc @@ -92,7 +91,6 @@ GEANT4_DEFINE_MODULE(NAME G4emutils G4EmParametersMessenger.cc G4EmProcessOptions.cc G4EmSaturation.cc - G4EnergyLossMessenger.cc G4EnergyLossTables.cc G4LossTableBuilder.cc G4LossTableManager.cc diff --git a/source/processes/electromagnetic/utils/src/G4DummyModel.cc b/source/processes/electromagnetic/utils/src/G4DummyModel.cc index 261f8e511d..e468980583 100644 --- a/source/processes/electromagnetic/utils/src/G4DummyModel.cc +++ b/source/processes/electromagnetic/utils/src/G4DummyModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DummyModel.cc 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4DummyModel.cc 97432 2016-06-03 07:23:39Z gcosmo $ // // ------------------------------------------------------------------- // @@ -51,7 +51,10 @@ G4DummyModel::G4DummyModel(const G4String& nam) : G4VMscModel(nam) -{} +{ + // Dummy model by default cover all energies + SetLowEnergyLimit(0.0); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4EmCalculator.cc b/source/processes/electromagnetic/utils/src/G4EmCalculator.cc index a1bd44ec67..2249de89ee 100644 --- a/source/processes/electromagnetic/utils/src/G4EmCalculator.cc +++ b/source/processes/electromagnetic/utils/src/G4EmCalculator.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmCalculator.cc 93291 2015-10-15 10:04:27Z gcosmo $ +// $Id: G4EmCalculator.cc 96834 2016-05-12 09:19:10Z gcosmo $ // // ------------------------------------------------------------------- // @@ -65,6 +65,7 @@ #include "G4EmCalculator.hh" #include "G4SystemOfUnits.hh" #include "G4LossTableManager.hh" +#include "G4EmParameters.hh" #include "G4NistManager.hh" #include "G4VEmProcess.hh" #include "G4VEnergyLossProcess.hh" @@ -93,6 +94,7 @@ G4EmCalculator::G4EmCalculator() { manager = G4LossTableManager::Instance(); nist = G4NistManager::Instance(); + theParameters = G4EmParameters::Instance(); corr = manager->EmCorrections(); nLocalMaterials = 0; verbose = 0; @@ -110,7 +112,7 @@ G4EmCalculator::G4EmCalculator() massRatio = 1.0; mass = 0.0; currentCut = 0.0; - cutenergy[0] = cutenergy[1] = cutenergy[2] = DBL_MAX; + cutenergy[0] = cutenergy[1] = cutenergy[2] = DBL_MAX; currentParticleName= ""; currentMaterialName= ""; currentName = ""; @@ -184,8 +186,9 @@ G4double G4EmCalculator::GetRangeFromRestricteDEDX(G4double kinEnergy, const G4MaterialCutsCouple* couple = FindCouple(mat,region); if(couple && UpdateParticle(p, kinEnergy)) { res = manager->GetRangeFromRestricteDEDX(p, kinEnergy, couple); - if(verbose>0) { - G4cout << "G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/MeV + if(verbose>1) { + G4cout << " G4EmCalculator::GetRangeFromRestrictedDEDX: E(MeV)= " + << kinEnergy/MeV << " range(mm)= " << res/mm << " " << p->GetParticleName() << " in " << mat->GetName() @@ -203,7 +206,7 @@ G4double G4EmCalculator::GetCSDARange(G4double kinEnergy, const G4Region* region) { G4double res = 0.0; - if(!G4LossTableManager::Instance()->BuildCSDARange()) { + if(!theParameters->BuildCSDARange()) { G4ExceptionDescription ed; ed << "G4EmCalculator::GetCSDARange: CSDA table is not built; " << " use UI command: /process/eLoss/CSDARange true"; @@ -215,8 +218,8 @@ G4double G4EmCalculator::GetCSDARange(G4double kinEnergy, const G4MaterialCutsCouple* couple = FindCouple(mat,region); if(couple && UpdateParticle(p, kinEnergy)) { res = manager->GetCSDARange(p, kinEnergy, couple); - if(verbose>0) { - G4cout << "G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/MeV + if(verbose>1) { + G4cout << " G4EmCalculator::GetCSDARange: E(MeV)= " << kinEnergy/MeV << " range(mm)= " << res/mm << " " << p->GetParticleName() << " in " << mat->GetName() @@ -234,16 +237,10 @@ G4double G4EmCalculator::GetRange(G4double kinEnergy, const G4Region* region) { G4double res = 0.0; - const G4MaterialCutsCouple* couple = FindCouple(mat,region); - if(couple && UpdateParticle(p, kinEnergy)) { - res = manager->GetRange(p, kinEnergy, couple); - if(verbose>0) { - G4cout << "G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/MeV - << " range(mm)= " << res/mm - << " " << p->GetParticleName() - << " in " << mat->GetName() - << G4endl; - } + if(theParameters->BuildCSDARange()) { + res = GetCSDARange(kinEnergy, p, mat, region); + } else { + res = GetRangeFromRestricteDEDX(kinEnergy, p, mat, region); } return res; } @@ -612,17 +609,18 @@ G4double G4EmCalculator::ComputeCrossSectionPerVolume( if(UpdateParticle(p, kinEnergy)) { if(FindEmModel(p, processName, kinEnergy)) { G4double e = kinEnergy; + G4double aCut = std::max(cut, theParameters->LowestElectronEnergy()); if(baseParticle) { e *= kinEnergy*massRatio; res = currentModel->CrossSectionPerVolume( - mat, baseParticle, e, cut, e) * chargeSquare; + mat, baseParticle, e, aCut, e) * chargeSquare; } else { - res = currentModel->CrossSectionPerVolume(mat, p, e, cut, e); + res = currentModel->CrossSectionPerVolume(mat, p, e, aCut, e); } if(verbose>0) { G4cout << "G4EmCalculator::ComputeXSPerVolume: E(MeV)= " << kinEnergy/MeV << " cross(cm-1)= " << res*cm - << " cut(keV)= " << cut/keV + << " cut(keV)= " << aCut/keV << " " << p->GetParticleName() << " in " << mat->GetName() << G4endl; @@ -643,23 +641,26 @@ G4double G4EmCalculator::ComputeCrossSectionPerAtom( { G4double res = 0.0; if(UpdateParticle(p, kinEnergy)) { - CheckMaterial(G4lrint(Z)); + G4int iz = G4lrint(Z); + CheckMaterial(iz); if(FindEmModel(p, processName, kinEnergy)) { G4double e = kinEnergy; + G4double aCut = std::max(cut, theParameters->LowestElectronEnergy()); if(baseParticle) { e *= kinEnergy*massRatio; - currentModel->InitialiseForElement(baseParticle, G4lrint(Z)); + currentModel->InitialiseForElement(baseParticle, iz); res = currentModel->ComputeCrossSectionPerAtom( - baseParticle, e, Z, A, cut) * chargeSquare; + baseParticle, e, Z, A, aCut) * chargeSquare; } else { - currentModel->InitialiseForElement(p, G4lrint(Z)); - res = currentModel->ComputeCrossSectionPerAtom(p, e, Z, A, cut); + currentModel->InitialiseForElement(p, iz); + res = currentModel->ComputeCrossSectionPerAtom(p, e, Z, A, aCut); } if(verbose>0) { G4cout << "E(MeV)= " << kinEnergy/MeV << " cross(barn)= " << res/barn << " " << p->GetParticleName() << " Z= " << Z << " A= " << A/(g/mole) << " g/mole" + << " cut(keV)= " << aCut/keV << G4endl; } } @@ -680,20 +681,23 @@ G4double G4EmCalculator::ComputeCrossSectionPerShell(G4double kinEnergy, CheckMaterial(Z); if(FindEmModel(p, processName, kinEnergy)) { G4double e = kinEnergy; + G4double aCut = std::max(cut, theParameters->LowestElectronEnergy()); if(baseParticle) { e *= kinEnergy*massRatio; currentModel->InitialiseForElement(baseParticle, Z); res = currentModel->ComputeCrossSectionPerShell(baseParticle, Z, shellIdx, - e, cut) * chargeSquare; + e, aCut) * chargeSquare; } else { currentModel->InitialiseForElement(p, Z); - res = currentModel->ComputeCrossSectionPerAtom(p, Z, shellIdx, e, cut); + res = currentModel->ComputeCrossSectionPerAtom(p, Z, shellIdx, e, aCut); } if(verbose>0) { G4cout << "E(MeV)= " << kinEnergy/MeV << " cross(barn)= " << res/barn << " " << p->GetParticleName() - << " Z= " << Z << " shellIdx= " << shellIdx << G4endl; + << " Z= " << Z << " shellIdx= " << shellIdx + << " cut(keV)= " << aCut/keV + << G4endl; } } } @@ -809,9 +813,12 @@ G4bool G4EmCalculator::UpdateParticle(const G4ParticleDefinition* p, isIon = true; massRatio = theGenericIon->GetPDGMass()/p->GetPDGMass(); baseParticle = theGenericIon; - // G4cout << p->GetParticleName() - // << " in " << currentMaterial->GetName() - // << " e= " << kinEnergy << G4endl; + if(verbose>1) { + G4cout << "\n G4EmCalculator::UpdateParticle: isIon 1 " + << p->GetParticleName() + << " in " << currentMaterial->GetName() + << " e= " << kinEnergy << G4endl; + } } } } @@ -823,8 +830,10 @@ G4bool G4EmCalculator::UpdateParticle(const G4ParticleDefinition* p, * corr->EffectiveChargeCorrection(p,currentMaterial,kinEnergy); if(currentProcess) { currentProcess->SetDynamicMassCharge(massRatio,chargeSquare); - //G4cout <<"NewP: massR= "<< massRatio << " q2= " - // << chargeSquare << G4endl; + if(verbose>1) { + G4cout <<"\n NewIon: massR= "<< massRatio << " q2= " + << chargeSquare << " " << currentProcess << G4endl; + } } } return true; @@ -1120,12 +1129,19 @@ G4VEnergyLossProcess* G4EmCalculator::FindEnergyLossProcess( if(p->GetParticleType() == "nucleus" && currentParticleName != "deuteron" && currentParticleName != "triton" + && currentParticleName != "He3" + && currentParticleName != "alpha" && currentParticleName != "alpha+" && currentParticleName != "helium" && currentParticleName != "hydrogen" ) { part = theGenericIon; } - elp = G4LossTableManager::Instance()->GetEnergyLossProcess(part); + elp = manager->GetEnergyLossProcess(part); + /* + G4cout << "\n G4EmCalculator::FindEnergyLossProcess: for " << p->GetParticleName() + << " found " << elp->GetProcessName() << " of " + << elp->Particle()->GetParticleName() << " " << elp << G4endl; + */ return elp; } @@ -1137,7 +1153,7 @@ G4EmCalculator::FindEnLossProcess(const G4ParticleDefinition* part, { G4VEnergyLossProcess* proc = 0; const std::vector v = - G4LossTableManager::Instance()->GetEnergyLossProcessVector(); + manager->GetEnergyLossProcessVector(); G4int n = v.size(); for(G4int i=0; iGetProcessName() == processName) { @@ -1159,7 +1175,7 @@ G4EmCalculator::FindDiscreteProcess(const G4ParticleDefinition* part, { G4VEmProcess* proc = 0; const std::vector v = - G4LossTableManager::Instance()->GetEmProcessVector(); + manager->GetEmProcessVector(); G4int n = v.size(); for(G4int i=0; iGetProcessName() == processName) { @@ -1181,7 +1197,7 @@ G4EmCalculator::FindMscProcess(const G4ParticleDefinition* part, { G4VMultipleScattering* proc = 0; const std::vector v = - G4LossTableManager::Instance()->GetMultipleScatteringVector(); + manager->GetMultipleScatteringVector(); G4int n = v.size(); for(G4int i=0; iGetProcessName() == processName) { @@ -1260,7 +1276,7 @@ void G4EmCalculator::CheckMaterial(G4int Z) if(currentMaterial) { size_t nn = currentMaterial->GetNumberOfElements(); for(size_t i=0; iGetElement(i)->GetZ())) { + if(Z == currentMaterial->GetElement(i)->GetZasInt()) { isFound = true; break; } diff --git a/source/processes/electromagnetic/utils/src/G4EmConfigurator.cc b/source/processes/electromagnetic/utils/src/G4EmConfigurator.cc index 863e82b428..4ce4322c65 100644 --- a/source/processes/electromagnetic/utils/src/G4EmConfigurator.cc +++ b/source/processes/electromagnetic/utils/src/G4EmConfigurator.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmConfigurator.cc 91745 2015-08-04 11:51:12Z gcosmo $ +// $Id: G4EmConfigurator.cc 97432 2016-06-03 07:23:39Z gcosmo $ // // ------------------------------------------------------------------- // @@ -82,6 +82,7 @@ void G4EmConfigurator::SetExtraEmModel(const G4String& particleName, G4double emax, G4VEmFluctuationModel* fm) { + if(!mod) { return; } if(1 < verbose) { G4cout << " G4EmConfigurator::SetExtraEmModel " << mod->GetName() << " for " << particleName @@ -91,15 +92,12 @@ void G4EmConfigurator::SetExtraEmModel(const G4String& particleName, << " Emax(MeV)= " << emax/MeV << G4endl; } - if(mod) { - models.push_back(mod); - flucModels.push_back(fm); - emax = std::min(emax, mod->HighEnergyLimit()); - mod->SetActivationHighEnergyLimit(emax); - } else { - models.push_back(new G4DummyModel()); - flucModels.push_back(0); - } + + models.push_back(mod); + flucModels.push_back(fm); + emin = std::max(emin, mod->LowEnergyLimit()); + emax = std::min(emax, mod->HighEnergyLimit()); + mod->SetActivationHighEnergyLimit(emax); particles.push_back(particleName); processes.push_back(processName); @@ -198,7 +196,6 @@ void G4EmConfigurator::SetModelForRegion(G4VEmModel* mod, G4cout << "### Added msc model order= " << index << " for " << particleName << " and " << processName << G4endl; } - return; } else if(2 <= ii && 4 >= ii) { G4VEnergyLossProcess* p = static_cast(proc); if(!mod && fm) { @@ -210,7 +207,6 @@ void G4EmConfigurator::SetModelForRegion(G4VEmModel* mod, << particleName << " and " << processName << G4endl; } } - return; } else if(mod) { G4VEmProcess* p = static_cast(proc); p->AddEmModel(index,mod,reg); @@ -218,10 +214,8 @@ void G4EmConfigurator::SetModelForRegion(G4VEmModel* mod, G4cout << "### Added em model order= " << index << " for " << particleName << " and " << processName << G4endl; } - return; - } else { - return; - } + } + return; } } } diff --git a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc index 31a871de86..e814a58e8c 100644 --- a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc +++ b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmCorrections.cc 93566 2015-10-26 14:50:09Z gcosmo $ +// $Id: G4EmCorrections.cc 96698 2016-05-02 07:19:24Z gcosmo $ // // ------------------------------------------------------------------- // @@ -74,11 +74,39 @@ #include "G4Log.hh" #include "G4Exp.hh" #include "G4Pow.hh" +#include "G4Threading.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... const G4double G4EmCorrections::inveplus = 1.0/CLHEP::eplus; -static const G4double twoln10 = 2.0*G4Log(10.0); +const G4double G4EmCorrections::ZD[11] = + {0., 0., 0., 1.72, 2.09, 2.48, 2.82, 3.16, 3.53, 3.84, 4.15}; +const G4double G4EmCorrections::UK[20] = {1.9999, 2.0134, 2.0258, 2.0478, 2.0662, + 2.0817, 2.0945, 2.0999, 2.1049, 2.1132, + 2.1197, 2.1246, 2.1280, 2.1292, 2.1301, + 2.1310, 2.1310, 2.1300, 2.1283, 2.1271}; +const G4double G4EmCorrections::VK[20] = {8.3410, 8.3373, 8.3340, 8.3287, 8.3247, + 8.3219, 8.3201, 8.3194, 8.3191, 8.3188, + 8.3191, 8.3199, 8.3211, 8.3218, 8.3226, + 8.3244, 8.3264, 8.3285, 8.3308, 8.3320}; +G4double G4EmCorrections::ZK[] = {0.0}; +const G4double G4EmCorrections::Eta[29] = {0.005, 0.007, 0.01, 0.015, 0.02, + 0.03, 0.04, 0.05, 0.06, 0.08, + 0.1, 0.15, 0.2, 0.3, 0.4, + 0.5, 0.6, 0.7, 0.8, 1.0, + 1.2, 1.4, 1.5, 1.7, 2.0, 3.0, 5.0, 7.0, 10.}; +G4double G4EmCorrections::CK[20][29]; +G4double G4EmCorrections::CL[26][28]; +const G4double G4EmCorrections::UL[] = {0.1215, 0.5265, 0.8411, 1.0878, 1.2828, + 1.4379, 1.5032, 1.5617, 1.6608, 1.7401, + 1.8036, 1.8543, 1.8756, 1.8945, 1.9262, + 1.9508, 1.9696, 1.9836, 1.9890, 1.9935, + 2.0001, 2.0039, 2.0053, 2.0049, 2.0040, 2.0028}; +G4double G4EmCorrections::VL[] = {0.0}; + +G4LPhysicsFreeVector* G4EmCorrections::BarkasCorr = nullptr; +G4LPhysicsFreeVector* G4EmCorrections::ThetaK = nullptr; +G4LPhysicsFreeVector* G4EmCorrections::ThetaL = nullptr; G4EmCorrections::G4EmCorrections(G4int verb) { @@ -86,22 +114,43 @@ G4EmCorrections::G4EmCorrections(G4int verb) curParticle= nullptr; material = nullptr; curMaterial= nullptr; + theElementVector = nullptr; + atomDensity= nullptr; curVector = nullptr; - kinEnergy = 0.0; ionLEModel = nullptr; ionHEModel = nullptr; - nIons = 0; + + kinEnergy = 0.0; verbose = verb; - ncouples = 0; massFactor = 1.0; - eth = 2.0*MeV; + eth = 2.0*CLHEP::MeV; nbinCorr = 20; - eCorrMin = 25.*keV; - eCorrMax = 250.*MeV; - nist = G4NistManager::Instance(); + eCorrMin = 25.*CLHEP::keV; + eCorrMax = 250.*CLHEP::MeV; + ionTable = G4ParticleTable::GetParticleTable()->GetIonTable(); - BarkasCorr = ThetaK = ThetaL = 0; - Initialise(); + g4pow = G4Pow::GetInstance(); + + nIons = ncouples = numberOfElements = idx = currentZ = 0; + mass = tau = gamma = bg2 = beta2 = beta = ba2 = tmax = charge = q2 = 0.0; + + // Constants + theZieglerFactor = CLHEP::eV*CLHEP::cm2*1.0e-15; + alpha2 = CLHEP::fine_structure_const*CLHEP::fine_structure_const; + lossFlucFlag = true; + + // G.S. Khandelwal Nucl. Phys. A116(1968)97 - 111. + // "Shell corrections for K- and L- electrons + + nK = 20; + nL = 26; + nEtaK = 29; + nEtaL = 28; + + isMaster = false; + + // fill vectors + if(BarkasCorr == nullptr) { Initialise(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -109,9 +158,12 @@ G4EmCorrections::G4EmCorrections(G4int verb) G4EmCorrections::~G4EmCorrections() { for(G4int i=0; i nmax) { eshell /= norm; + + static const G4double HM[53] = { + 12.0, 12.0, 12.0, 12.0, 11.9, 11.7, 11.5, 11.2, 10.8, 10.4, + 10.0, 9.51, 8.97, 8.52, 8.03, 7.46, 6.95, 6.53, 6.18, 5.87, + 5.61, 5.39, 5.19, 5.01, 4.86, 4.72, 4.62, 4.53, 4.44, 4.38, + 4.32, 4.26, 4.20, 4.15, 4.1, 4.04, 4.00, 3.95, 3.93, 3.91, + 3.90, 3.89, 3.89, 3.88, 3.88, 3.88, 3.88, 3.88, 3.89, 3.89, + 3.90, 3.92, 3.93 }; + static const G4double HN[31] = { + 75.5, 61.9, 52.2, 45.1, 39.6, 35.4, 31.9, 29.1, 27.2, 25.8, + 24.5, 23.6, 22.7, 22.0, 21.4, 20.9, 20.5, 20.2, 19.9, 19.7, + 19.5, 19.3, 19.2, 19.1, 18.4, 18.8, 18.7, 18.6, 18.5, 18.4, + 18.2}; + // Add M-shell if(28 > iz) { res += f*(iz - 10)*LShell(eshell,HM[iz-11]*eta); @@ -568,6 +644,7 @@ G4double G4EmCorrections::DensityCorrection(const G4ParticleDefinition* p, G4double dedx = 0.0; // density correction + static const G4double twoln10 = 2.0*G4Log(10.0); G4double x = G4Log(bg2)/twoln10; if ( x >= x0den ) { dedx = twoln10*x - cden ; @@ -628,9 +705,6 @@ G4double G4EmCorrections::BarkasCorrection(const G4ParticleDefinition* p, BarkasTerm *= 1.29*charge/material->GetTotNbOfAtomsPerVolume(); - // temporary protection - //if(charge < -7.0 ) { BarkasTerm *= (-7.0/charge); } - return BarkasTerm; } @@ -655,9 +729,6 @@ G4double G4EmCorrections::BlochCorrection(const G4ParticleDefinition* p, } while (del > 0.01*term); G4double res = -y2*term; - // temporary protection - //if(q2 > 49. && res < -0.2) { res = -0.2; } - return res; } @@ -707,277 +778,16 @@ G4double G4EmCorrections::NuclearStoppingPower(G4double kineticEnergy, G4double z1, G4double z2, G4double mass1, G4double mass2) { - G4double energy = kineticEnergy/keV ; // energy in keV + G4double energy = kineticEnergy/CLHEP::keV ; // energy in keV G4double nloss = 0.0; G4double rm; - if(z1 > 1.5) rm = (mass1 + mass2) * ( Z23[G4lrint(z1)] + Z23[G4lrint(z2)] ) ; - else rm = (mass1 + mass2) * nist->GetZ13(G4lrint(z2)); + if(z1 > 1.5) rm = (mass1 + mass2) * ( g4pow->Z23(G4lrint(z1)) + g4pow->Z23(G4lrint(z2)) ) ; + else rm = (mass1 + mass2) * g4pow->Z13(G4lrint(z2)); G4double er = 32.536 * mass2 * energy / ( z1 * z2 * rm ) ; // reduced energy - if (er >= ed[0]) { nloss = a[0]; } - else { - // the table is inverse in energy - for (G4int i=102; i>=0; --i) { - if (er <= ed[i]) { - nloss = (a[i] - a[i+1])*(er - ed[i+1])/(ed[i] - ed[i+1]) + a[i+1]; - break; - } - } - } - - // Stragling - if(lossFlucFlag) { - G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)* - (4.0 + 0.197/(er*er) + 6.584/er)); - - nloss *= G4RandGauss::shoot(1.0,sig) ; - } - - nloss *= 8.462 * z1 * z2 * mass1 / rm ; // Return to [ev/(10^15 atoms/cm^2] - - if ( nloss < 0.0) nloss = 0.0 ; - - return nloss; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double -G4EmCorrections::EffectiveChargeCorrection(const G4ParticleDefinition* p, - const G4Material* mat, - G4double ekin) -{ - G4double factor = 1.0; - if(p->GetPDGCharge() <= 2.5*CLHEP::eplus || nIons <= 0) { return factor; } - /* - if(verbose > 1) { - G4cout << "EffectiveChargeCorrection: " << p->GetParticleName() - << " in " << mat->GetName() - << " ekin(MeV)= " << ekin/MeV << G4endl; - } - */ - if(p != curParticle || mat != curMaterial) { - curParticle = p; - curMaterial = mat; - curVector = 0; - currentZ = p->GetAtomicNumber(); - if(verbose > 1) { - G4cout << "G4EmCorrections::EffectiveChargeCorrection: Zion= " - << currentZ << " Aion= " << p->GetPDGMass()/amu_c2 << G4endl; - } - massFactor = proton_mass_c2/p->GetPDGMass(); - idx = -1; - - for(G4int i=0; iGetParticleName() << " in " - << materialName[idx] << " Ion Z= " << Z << " A= " << A - << " massRatio= " << massRatio << G4endl; - } - - G4PhysicsLogVector* vv = - new G4PhysicsLogVector(eCorrMin,eCorrMax,nbinCorr); - vv->SetSpline(true); - G4double e, eion, dedx, dedx1; - G4double eth0 = v->Energy(0); - G4double escal = eth/massRatio; - G4double qe = - effCharge.EffectiveChargeSquareRatio(ion, curMaterial, escal); - G4double dedxt = - ionLEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe; - G4double dedx1t = - ionHEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe - + ComputeIonCorrections(curParticle, curMaterial, escal); - G4double rest = escal*(dedxt - dedx1t); - //G4cout << "Escal(MeV)= "<GetTableSize(); - if(currmat.size() != ncouples) { - currmat.resize(ncouples); - for(std::map< G4int, std::vector >::iterator it = - thcorr.begin(); it != thcorr.end(); ++it){ - (it->second).clear(); - } - thcorr.clear(); - for(size_t i=0; iGetMaterialCutsCouple(i)->GetMaterial(); - G4String nam = currmat[i]->GetName(); - for(G4int j=0; jPutValues(i, fTable[i][0], fTable[i][1]); } - BarkasCorr->SetSpline(true); - - const G4double nuca[104][2] = { + static const G4double nuca[104][2] = { { 1.0E+8, 5.831E-8}, { 8.0E+7, 7.288E-8}, { 6.0E+7, 9.719E-8}, @@ -1096,89 +906,293 @@ void G4EmCorrections::Initialise() { 0.0, 3.166E-3} }; - for(i=0; i<104; ++i) { - ed[i] = nuca[i][0]; - a[i] = nuca[i][1]; + if (er >= nuca[0][0]) { nloss = nuca[0][1]; } + else { + // the table is inverse in energy + for (G4int i=102; i>=0; --i) { + G4double edi = nuca[i][0]; + if (er <= edi) { + G4double edi1 = nuca[i+1][0]; + G4double ai = nuca[i][1]; + G4double ai1 = nuca[i+1][1]; + nloss = (ai - ai1)*(er - edi1)/(edi - edi1) + ai1; + break; + } + } } - // Constants - theZieglerFactor = eV*cm2*1.0e-15 ; - alpha2 = fine_structure_const*fine_structure_const; - lossFlucFlag = true; + // Stragling + if(lossFlucFlag) { + G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)* + (4.0 + 0.197/(er*er) + 6.584/er)); - // G.S. Khandelwal Nucl. Phys. A116(1968)97 - 111. - // "Shell corrections for K- and L- electrons + nloss *= G4RandGauss::shoot(1.0,sig) ; + } + + nloss *= 8.462 * z1 * z2 * mass1 / rm ; // Return to [ev/(10^15 atoms/cm^2] - nK = 20; - nL = 26; - nEtaK = 29; - nEtaL = 28; + nloss = std::max(nloss, 0.0); - const G4double d[11] = - {0., 0., 0., 1.72, 2.09, 2.48, 2.82, 3.16, 3.53, 3.84, 4.15}; - const G4double thek[20] = - {0.64, 0.65, 0.66, 0.68, 0.70, 0.72, 0.74, 0.75, 0.76, 0.78, - 0.80, 0.82, 0.84, 0.85, 0.86, 0.88, 0.90, 0.92, 0.94, 0.95}; - const G4double sk[20] = {1.9477, 1.9232, 1.8996, 1.8550, 1.8137, + return nloss; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double +G4EmCorrections::EffectiveChargeCorrection(const G4ParticleDefinition* p, + const G4Material* mat, + G4double ekin) +{ + G4double factor = 1.0; + if(p->GetPDGCharge() <= 2.5*CLHEP::eplus || nIons <= 0) { return factor; } + + if(verbose > 1) { + G4cout << "EffectiveChargeCorrection: " << p->GetParticleName() + << " in " << mat->GetName() + << " ekin(MeV)= " << ekin/MeV << G4endl; + } + + if(p != curParticle || mat != curMaterial) { + curParticle = p; + curMaterial = mat; + curVector = nullptr; + currentZ = p->GetAtomicNumber(); + if(verbose > 1) { + G4cout << "G4EmCorrections::EffectiveChargeCorrection: Zion= " + << currentZ << " Aion= " << p->GetPDGMass()/amu_c2 << G4endl; + } + massFactor = proton_mass_c2/p->GetPDGMass(); + idx = -1; + + for(G4int i=0; iGetParticleName() << " in " + << materialName[idx] << " Ion Z= " << Z << " A= " << A + << " massRatio= " << massRatio << G4endl; + } + + G4PhysicsLogVector* vv = + new G4PhysicsLogVector(eCorrMin,eCorrMax,nbinCorr); + vv->SetSpline(true); + G4double e, eion, dedx, dedx1; + G4double eth0 = v->Energy(0); + G4double escal = eth/massRatio; + G4double qe = + effCharge.EffectiveChargeSquareRatio(ion, curMaterial, escal); + G4double dedxt = + ionLEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe; + G4double dedx1t = + ionHEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe + + ComputeIonCorrections(curParticle, curMaterial, escal); + G4double rest = escal*(dedxt - dedx1t); + //G4cout << "Escal(MeV)= "<GetTableSize(); + if(currmat.size() != ncouples) { + currmat.resize(ncouples); + for(std::map< G4int, std::vector >::iterator it = + thcorr.begin(); it != thcorr.end(); ++it){ + (it->second).clear(); + } + thcorr.clear(); + for(size_t i=0; iGetMaterialCutsCouple(i)->GetMaterial(); + G4String nam = currmat[i]->GetName(); + for(G4int j=0; jPutValues(i, fTable[i][0], fTable[i][1]); } + BarkasCorr->SetSpline(true); + + static const G4double SK[20] = {1.9477, 1.9232, 1.8996, 1.8550, 1.8137, 1.7754, 1.7396, 1.7223, 1.7063, 1.6752, 1.6461, 1.6189, 1.5933, 1.5811, 1.5693, 1.5467, 1.5254, 1.5053, 1.4863, 1.4772}; - const G4double tk[20] = {2.5222, 2.5125, 2.5026, 2.4821, 2.4608, + static const G4double TK[20] = {2.5222, 2.5125, 2.5026, 2.4821, 2.4608, 2.4388, 2.4163, 2.4044, 2.3933, 2.3701, 2.3466, 2.3229, 2.2992, 2.2872, 2.2753, 2.2515, 2.2277, 2.2040, 2.1804, 2.1686}; - const G4double uk[20] = {1.9999, 2.0134, 2.0258, 2.0478, 2.0662, - 2.0817, 2.0945, 2.0999, 2.1049, 2.1132, - 2.1197, 2.1246, 2.1280, 2.1292, 2.1301, - 2.1310, 2.1310, 2.1300, 2.1283, 2.1271}; - const G4double vk[20] = {8.3410, 8.3373, 8.3340, 8.3287, 8.3247, - 8.3219, 8.3201, 8.3194, 8.3191, 8.3188, - 8.3191, 8.3199, 8.3211, 8.3218, 8.3226, - 8.3244, 8.3264, 8.3285, 8.3308, 8.3320}; - for(i=0; i<11; ++i) { ZD[i] = d[i];} - - for(i=0; iPutValues(i, xzl[i], yzl[i]); } ThetaK->SetSpline(true); ThetaL->SetSpline(true); - - const G4double coseb[14] = {0.0,0.05,0.1,0.15,0.2,0.3,0.4,0.5,0.6,0.8, - 1.0,1.2,1.5,2.0}; - const G4double cosxi[14] = {1.0000, 0.9905, 0.9631, 0.9208, 0.8680, - 0.7478, 0.6303, 0.5290, 0.4471, 0.3323, - 0.2610, 0.2145, 0.1696, 0.1261}; - for(i=0; i<14; ++i) { - COSEB[i] = coseb[i]; - COSXI[i] = cosxi[i]; - } - - G4Pow* g4pow = G4Pow::GetInstance(); - for(i=1; i<100; ++i) { - Z23[i] = G4Exp(g4pow->logZ(i)*0.23); - } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc index a8781437a8..8696327198 100644 --- a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc +++ b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmModelManager.cc 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4EmModelManager.cc 97742 2016-06-08 09:24:54Z gcosmo $ // // ------------------------------------------------------------------- // @@ -162,7 +162,7 @@ void G4EmModelManager::Clear() if(n > 0) { for(size_t i=0; i= 0 && i < nEmModels) { model = models[i]; } + if(i < nEmModels) { model = models[i]; } else if(verboseLevel > 0 && ver) { G4cout << "G4EmModelManager::GetModel WARNING: " << "index " << i << " is wrong Nmodels= " << nEmModels; - if(particle) G4cout << " for " << particle->GetParticleName(); + if(particle) { G4cout << " for " << particle->GetParticleName(); } G4cout<< G4endl; } return model; @@ -223,6 +223,23 @@ G4VEmModel* G4EmModelManager::GetModel(G4int i, G4bool ver) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +G4VEmModel* G4EmModelManager::GetRegionModel(G4int k, size_t idx) +{ + G4RegionModels* rm = setOfRegionModels[idxOfRegionModels[idx]]; + G4VEmModel* mod = models[rm->ModelIndex(k)]; + return mod; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4int G4EmModelManager::NumberOfRegionModels(size_t idx) const +{ + G4RegionModels* rm = setOfRegionModels[idxOfRegionModels[idx]]; + return rm->NumberOfModels(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, const G4ParticleDefinition* secondaryParticle, @@ -231,11 +248,9 @@ G4EmModelManager::Initialise(const G4ParticleDefinition* p, { verboseLevel = val; G4String partname = p->GetParticleName(); - // if(partname == "proton") verboseLevel = 2; - //else verboseLevel = 0; if(1 < verboseLevel) { G4cout << "G4EmModelManager::Initialise() for " - << partname << G4endl; + << partname << " Nmodels= " << nEmModels << G4endl; } // Are models defined? if(nEmModels < 1) { @@ -335,9 +350,12 @@ G4EmModelManager::Initialise(const G4ParticleDefinition* p, << " tmin(MeV)= " << tmin/MeV << "; tmax(MeV)= " << tmax/MeV << "; order= " << ord + << "; tminAct= " << model->LowEnergyActivationLimit()/MeV + << "; tmaxAct= " << model->HighEnergyActivationLimit()/MeV << G4endl; } + static const G4double limitdelta = 0.01*eV; if(n > 0) { // extend energy range to previous models @@ -346,7 +364,7 @@ G4EmModelManager::Initialise(const G4ParticleDefinition* p, //G4cout << "tmin= " << tmin << " tmax= " // << tmax << " ord= " << ord <= modelOrd[k]) { - if(tmin < eHigh[k] && tmin >= eLow[k]) tmin = eHigh[k]; - if(tmax <= eHigh[k] && tmax > eLow[k]) tmax = eLow[k]; + if(tmin < eHigh[k] && tmin >= eLow[k]) { tmin = eHigh[k]; } + if(tmax <= eHigh[k] && tmax > eLow[k]) { tmax = eLow[k]; } if(tmax > eHigh[k] && tmin < eLow[k]) { - if(tmax - eHigh[k] > eLow[k] - tmin) tmin = eHigh[k]; - else tmax = eLow[k]; + if(tmax - eHigh[k] > eLow[k] - tmin) { tmin = eHigh[k]; } + else { tmax = eLow[k]; } } - if( tmax - tmin <= eV) { + if( tmax - tmin <= limitdelta) { push = false; break; } } } + // this model has lower order parameter than possible + // other models, with which there may be intersections + // so, appliction area of such models may be reduced //G4cout << "tmin= " << tmin << " tmax= " - // << tmax << " push= " << push << " idx= " << idx < eLow[n-1] && tmax >= eHigh[n-1]) { - eHigh[n-1] = tmin; - // first energy interval - } else if(tmin <= eLow[0] && tmax < eHigh[0]) { - eLow[0] = tmax; - push = false; - insert = true; - idx = 0; - } else { - // find energy interval to replace - for(G4int k=0; k= eHigh[k]) { + // << tmax << " push= " << push << " idx= " << idx <GetName(); } G4cout << "> Elow(MeV)= "; - for(G4int ii=0; ii<=n; ++ii) {G4cout << eLow[ii]/MeV << " ";} + for(G4int iii=0; iii<=n; ++iii) {G4cout << eLow[iii]/MeV << " ";} G4cout << G4endl; } G4RegionModels* rm = new G4RegionModels(n, modelAtRegion, eLow, region); @@ -733,32 +814,34 @@ void G4EmModelManager::DumpModelList(G4int verb) std::max(r->LowEdgeEnergy(j),model->LowEnergyActivationLimit()); G4double emax = std::min(r->LowEdgeEnergy(j+1),model->HighEnergyActivationLimit()); - G4cout << std::setw(20); - G4cout << model->GetName() << " : Emin= " - << std::setw(8) << G4BestUnit(emin,"Energy") - << " Emax= " - << std::setw(8) << G4BestUnit(emax,"Energy"); - G4PhysicsTable* table = model->GetCrossSectionTable(); - if(table) { - size_t kk = table->size(); - for(size_t k=0; kGetVectorLength() - 1; - G4cout << " Table with " << nn << " bins Emin= " - << std::setw(6) << G4BestUnit(v->Energy(0),"Energy") - << " Emax= " - << std::setw(6) << G4BestUnit(v->Energy(nn),"Energy"); - break; - } + if(emax > emin) { + G4cout << std::setw(20); + G4cout << model->GetName() << " : Emin= " + << std::setw(8) << G4BestUnit(emin,"Energy") + << " Emax= " + << std::setw(8) << G4BestUnit(emax,"Energy"); + G4PhysicsTable* table = model->GetCrossSectionTable(); + if(table) { + size_t kk = table->size(); + for(size_t k=0; kGetVectorLength() - 1; + G4cout << " Table with " << nn << " bins Emin= " + << std::setw(6) << G4BestUnit(v->Energy(0),"Energy") + << " Emax= " + << std::setw(6) << G4BestUnit(v->Energy(nn),"Energy"); + break; + } + } } - } - G4VEmAngularDistribution* an = model->GetAngularDistribution(); - if(an) { G4cout << " " << an->GetName(); } - if(fluoFlag && model->DeexcitationFlag()) { - G4cout << " FluoActive"; - } - G4cout << G4endl; + G4VEmAngularDistribution* an = model->GetAngularDistribution(); + if(an) { G4cout << " " << an->GetName(); } + if(fluoFlag && model->DeexcitationFlag()) { + G4cout << " FluoActive"; + } + G4cout << G4endl; + } } } if(1 == nEmModels) { break; } diff --git a/source/processes/electromagnetic/utils/src/G4EmParameters.cc b/source/processes/electromagnetic/utils/src/G4EmParameters.cc index af3518be43..35d68a578d 100644 --- a/source/processes/electromagnetic/utils/src/G4EmParameters.cc +++ b/source/processes/electromagnetic/utils/src/G4EmParameters.cc @@ -49,10 +49,18 @@ #include "G4PhysicalConstants.hh" #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" +#include "G4VEmProcess.hh" +#include "G4VEnergyLossProcess.hh" +#include "G4VAtomDeexcitation.hh" #include "G4EmParametersMessenger.hh" #include "G4NistManager.hh" +#include "G4RegionStore.hh" +#include "G4Region.hh" +#include "G4ApplicationState.hh" +#include "G4StateManager.hh" +#include "G4Threading.hh" -G4EmParameters* G4EmParameters::theInstance = 0; +G4EmParameters* G4EmParameters::theInstance = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -79,21 +87,19 @@ G4EmParameters::G4EmParameters() G4NistManager::Instance(); theMessenger = new G4EmParametersMessenger(this); + fStateManager = G4StateManager::GetStateManager(); SetDefaults(); } -#include "G4AutoLock.hh" -namespace { G4Mutex EmParametersMutex = G4MUTEX_INITIALIZER; } - void G4EmParameters::SetDefaults() { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } lossFluctuation = true; buildCSDARange = false; flagLPM = true; spline = true; - finalRange = false; + cutAsFinalRange = false; applyCuts = false; fluo = false; beardenFluoDir = false; @@ -106,13 +112,14 @@ void G4EmParameters::SetDefaults() latDisplacementBeyondSafety = false; useAngGeneratorForIonisation = false; useMottCorrection = false; + integral = true; minSubRange = 1.0; - minKinEnergy = 0.1*keV; - maxKinEnergy = 10.0*TeV; - maxKinEnergyCSDA = 1.0*GeV; - lowestElectronEnergy = 1.0*keV; - lowestMuHadEnergy = 1.0*keV; + minKinEnergy = 0.1*CLHEP::keV; + maxKinEnergy = 10.0*CLHEP::TeV; + maxKinEnergyCSDA = 1.0*CLHEP::GeV; + lowestElectronEnergy = 1.0*CLHEP::keV; + lowestMuHadEnergy = 1.0*CLHEP::keV; linLossLimit = 0.01; bremsTh = maxKinEnergy; lambdaFactor = 0.8; @@ -122,6 +129,10 @@ void G4EmParameters::SetDefaults() rangeFactorMuHad = 0.2; geomFactor = 2.5; skin = 1.0; + dRoverRange = 0.2; + finalRange = CLHEP::mm; + dRoverRangeMuHad = 0.2; + finalRangeMuHad = 0.1*CLHEP::mm; nbins = 77; nbinsPerDecade = 7; @@ -130,6 +141,7 @@ void G4EmParameters::SetDefaults() mscStepLimit = fUseSafety; mscStepLimitMuHad = fMinimal; + nucFormfactor = fExponentialNF; namePIXE = "Empirical"; nameElectronPIXE = "Livermore"; @@ -137,7 +149,7 @@ void G4EmParameters::SetDefaults() void G4EmParameters::SetLossFluctuations(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } lossFluctuation = val; } @@ -148,7 +160,7 @@ G4bool G4EmParameters::LossFluctuation() const void G4EmParameters::SetBuildCSDARange(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } buildCSDARange = val; } @@ -159,7 +171,7 @@ G4bool G4EmParameters::BuildCSDARange() const void G4EmParameters::SetLPM(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } flagLPM = val; } @@ -170,7 +182,7 @@ G4bool G4EmParameters::LPM() const void G4EmParameters::SetSpline(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } spline = val; } @@ -181,18 +193,18 @@ G4bool G4EmParameters::Spline() const void G4EmParameters::SetUseCutAsFinalRange(G4bool val) { - G4AutoLock l(&EmParametersMutex); - finalRange = val; + if(IsLocked()) { return; } + cutAsFinalRange = val; } G4bool G4EmParameters::UseCutAsFinalRange() const { - return finalRange; + return cutAsFinalRange; } void G4EmParameters::SetApplyCuts(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } applyCuts = val; } @@ -203,7 +215,7 @@ G4bool G4EmParameters::ApplyCuts() const void G4EmParameters::SetFluo(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } fluo = val; } @@ -214,7 +226,7 @@ G4bool G4EmParameters::Fluo() const void G4EmParameters::SetBeardenFluoDir(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } beardenFluoDir = val; } @@ -225,7 +237,7 @@ G4bool G4EmParameters::BeardenFluoDir() const void G4EmParameters::SetAuger(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } auger = val; if(val) { fluo = true; } } @@ -237,7 +249,7 @@ G4bool G4EmParameters::Auger() const void G4EmParameters::SetAugerCascade(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } augerCascade = val; if(val) { fluo = true; auger = true; } } @@ -249,7 +261,7 @@ G4bool G4EmParameters::AugerCascade() const void G4EmParameters::SetPixe(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } pixe = val; if(val) { fluo = true; } } @@ -261,7 +273,7 @@ G4bool G4EmParameters::Pixe() const void G4EmParameters::SetDeexcitationIgnoreCut(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } deexIgnoreCut = val; } @@ -272,7 +284,7 @@ G4bool G4EmParameters::DeexcitationIgnoreCut() const void G4EmParameters::SetLateralDisplacement(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } lateralDisplacement = val; } @@ -283,7 +295,7 @@ G4bool G4EmParameters::LateralDisplacement() const void G4EmParameters::SetMuHadLateralDisplacement(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } muhadLateralDisplacement = val; } @@ -294,7 +306,7 @@ G4bool G4EmParameters::MuHadLateralDisplacement() const void G4EmParameters::SetLatDisplacementBeyondSafety(G4bool val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } latDisplacementBeyondSafety = val; } @@ -305,6 +317,7 @@ G4bool G4EmParameters::LatDisplacementBeyondSafety() const void G4EmParameters::ActivateAngularGeneratorForIonisation(G4bool val) { + if(IsLocked()) { return; } useAngGeneratorForIonisation = val; } @@ -315,6 +328,7 @@ G4bool G4EmParameters::UseAngularGeneratorForIonisation() const void G4EmParameters::SetUseMottCorrection(G4bool val) { + if(IsLocked()) { return; } useMottCorrection = val; } @@ -323,9 +337,20 @@ G4bool G4EmParameters::UseMottCorrection() const return useMottCorrection; } +void G4EmParameters::SetIntegral(G4bool val) +{ + if(IsLocked()) { return; } + integral = val; +} + +G4bool G4EmParameters::Integral() const +{ + return integral; +} + void G4EmParameters::SetMinSubRange(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0 && val < 1.0) { minSubRange = val; } else { @@ -343,7 +368,7 @@ G4double G4EmParameters::MinSubRange() const void G4EmParameters::SetMinEnergy(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 1.e-3*eV && val < maxKinEnergy) { minKinEnergy = val; nbins = nbinsPerDecade*G4lrint(std::log10(maxKinEnergy/minKinEnergy)); @@ -362,7 +387,7 @@ G4double G4EmParameters::MinKinEnergy() const void G4EmParameters::SetMaxEnergy(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > minKinEnergy && val < 1.e+7*TeV) { maxKinEnergy = val; nbins = nbinsPerDecade*G4lrint(std::log10(maxKinEnergy/minKinEnergy)); @@ -381,7 +406,7 @@ G4double G4EmParameters::MaxKinEnergy() const void G4EmParameters::SetMaxEnergyForCSDARange(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > minKinEnergy && val <= 100*TeV) { maxKinEnergyCSDA = val; } else { @@ -399,7 +424,7 @@ G4double G4EmParameters::MaxEnergyForCSDARange() const void G4EmParameters::SetLowestElectronEnergy(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 0.0) { lowestElectronEnergy = val; } else { @@ -417,7 +442,7 @@ G4double G4EmParameters::LowestElectronEnergy() const void G4EmParameters::SetLowestMuHadEnergy(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 0.0) { lowestMuHadEnergy = val; } else { @@ -435,7 +460,7 @@ G4double G4EmParameters::LowestMuHadEnergy() const void G4EmParameters::SetLinearLossLimit(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0 && val < 0.5) { linLossLimit = val; } else { @@ -453,7 +478,7 @@ G4double G4EmParameters::LinearLossLimit() const void G4EmParameters::SetBremsstrahlungTh(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0) { bremsTh = val; } else { @@ -471,7 +496,7 @@ G4double G4EmParameters::BremsstrahlungTh() const void G4EmParameters::SetLambdaFactor(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0 && val < 1.0) { lambdaFactor = val; } else { @@ -489,7 +514,7 @@ G4double G4EmParameters::LambdaFactor() const void G4EmParameters::SetFactorForAngleLimit(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0) { factorForAngleLimit = val; } else { @@ -507,7 +532,7 @@ G4double G4EmParameters::FactorForAngleLimit() const void G4EmParameters::SetMscThetaLimit(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 0.0 && val <= pi) { thetaLimit = val; } else { @@ -525,9 +550,8 @@ G4double G4EmParameters::MscThetaLimit() const void G4EmParameters::SetMscRangeFactor(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0 && val < 1.0) { - //G4cout << " G4EmParameters::SetMscRangeFactor: " << val << G4endl; rangeFactor = val; } else { G4ExceptionDescription ed; @@ -544,7 +568,7 @@ G4double G4EmParameters::MscRangeFactor() const void G4EmParameters::SetMscMuHadRangeFactor(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val > 0.0 && val < 1.0) { rangeFactorMuHad = val; } else { @@ -562,7 +586,7 @@ G4double G4EmParameters::MscMuHadRangeFactor() const void G4EmParameters::SetMscGeomFactor(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 1.0) { geomFactor = val; } else { @@ -580,7 +604,7 @@ G4double G4EmParameters::MscGeomFactor() const void G4EmParameters::SetMscSkin(G4double val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 1.0) { skin = val; } else { @@ -596,9 +620,37 @@ G4double G4EmParameters::MscSkin() const return skin; } +void G4EmParameters::SetStepFunction(G4double v1, G4double v2) +{ + if(IsLocked()) { return; } + if(v1 > 0.0 && v1 <= 1.0 && v2 > 0.0) { + dRoverRange = v1; + finalRange = v2; + } else { + G4ExceptionDescription ed; + ed << "Values of step function are out of range: " + << v1 << ", " << v2/CLHEP::mm << " mm - are ignored"; + PrintWarning(ed); + } +} + +void G4EmParameters::SetStepFunctionMuHad(G4double v1, G4double v2) +{ + if(IsLocked()) { return; } + if(v1 > 0.0 && v1 <= 1.0 && v2 > 0.0) { + dRoverRangeMuHad = v1; + finalRangeMuHad = v2; + } else { + G4ExceptionDescription ed; + ed << "Values of step function are out of range: " + << v1 << ", " << v2/CLHEP::mm << " mm - are ignored"; + PrintWarning(ed); + } +} + void G4EmParameters::SetNumberOfBins(G4int val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 5 && val < 10000000) { nbins = val; nbinsPerDecade = G4lrint(nbins/std::log10(maxKinEnergy/minKinEnergy)); @@ -617,7 +669,7 @@ G4int G4EmParameters::NumberOfBins() const void G4EmParameters::SetNumberOfBinsPerDecade(G4int val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } if(val >= 5 && val < 1000000) { nbinsPerDecade = val; nbins = nbinsPerDecade*G4lrint(std::log10(maxKinEnergy/minKinEnergy)); @@ -636,7 +688,7 @@ G4int G4EmParameters::NumberOfBinsPerDecade() const void G4EmParameters::SetVerbose(G4int val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } verbose = val; workerVerbose = std::min(workerVerbose, verbose); } @@ -648,7 +700,7 @@ G4int G4EmParameters::Verbose() const void G4EmParameters::SetWorkerVerbose(G4int val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } workerVerbose = val; } @@ -659,7 +711,7 @@ G4int G4EmParameters::WorkerVerbose() const void G4EmParameters::SetMscStepLimitType(G4MscStepLimitType val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } mscStepLimit = val; } @@ -670,7 +722,7 @@ G4MscStepLimitType G4EmParameters::MscStepLimitType() const void G4EmParameters::SetMscMuHadStepLimitType(G4MscStepLimitType val) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } mscStepLimitMuHad = val; } @@ -679,10 +731,22 @@ G4MscStepLimitType G4EmParameters::MscMuHadStepLimitType() const return mscStepLimitMuHad; } +void +G4EmParameters::SetNuclearFormfactorType(G4NuclearFormfactorType val) +{ + if(IsLocked()) { return; } + nucFormfactor = val; +} + +G4NuclearFormfactorType G4EmParameters::NuclearFormfactorType() const +{ + return nucFormfactor; +} + void G4EmParameters::SetPIXECrossSectionModel(const G4String& sss) { G4cout << "G4EmParameters::SetPIXECrossSectionModel " << sss << G4endl; - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } namePIXE = sss; } @@ -693,7 +757,7 @@ const G4String& G4EmParameters::PIXECrossSectionModel() void G4EmParameters::SetPIXEElectronCrossSectionModel(const G4String& sss) { - G4AutoLock l(&EmParametersMutex); + if(IsLocked()) { return; } nameElectronPIXE = sss; } @@ -702,17 +766,25 @@ const G4String& G4EmParameters::PIXEElectronCrossSectionModel() return nameElectronPIXE; } -void G4EmParameters::PrintWarning(G4ExceptionDescription& ed) +void G4EmParameters::PrintWarning(G4ExceptionDescription& ed) const { G4Exception("G4EmParameters", "em0044", JustWarning, ed); } +G4String G4EmParameters::CheckRegion(const G4String& reg) const +{ + G4String r = reg; + if(r == "" || r == "world" || r == "World") { + r = "DefaultRegionForTheWorld"; + } + return r; +} + void G4EmParameters::AddPAIModel(const G4String& particle, const G4String& region, const G4String& type) { - G4String r = region; - if(r == "" || r == "world" || r == "World") r = "DefaultRegionForTheWorld"; + G4String r = CheckRegion(region); G4int nreg = m_regnamesPAI.size(); for(G4int i=0; i& G4EmParameters::TypesPAI() const void G4EmParameters::AddMicroElec(const G4String& region) { - G4String r = region; - if(r == "" || r == "world" || r == "World") r = "DefaultRegionForTheWorld"; + G4String r = CheckRegion(region); G4int nreg = m_regnamesME.size(); for(G4int i=0; i& G4EmParameters::RegionsMicroElec() const void G4EmParameters::AddDNA(const G4String& region, const G4String& type) { - G4String r = region; - if(r == "" || r == "world" || r == "World") r = "DefaultRegionForTheWorld"; + G4String r = CheckRegion(region); G4int nreg = m_regnamesDNA.size(); for(G4int i=0; i& G4EmParameters::TypesDNA() const return m_typesDNA; } +void G4EmParameters::SetSubCutoff(G4bool val, const G4String& region) +{ + if(IsLocked()) { return; } + 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 && energyLimit >= 0.0) { + G4int n = m_procBiasedSec.size(); + for(G4int i=0; iSetStepFunction(dRoverRange, finalRange, false); } + else { ptr->SetStepFunction(dRoverRangeMuHad, finalRangeMuHad, false); } + + G4RegionStore* regionStore = G4RegionStore::GetInstance(); + G4int n = m_regnamesSubCut.size(); + for(G4int i=0; iGetRegion(m_regnamesSubCut[i], false); + if(reg) { ptr->ActivateSubCutoff(m_subCuts[i], reg); } + } + n = m_procBiasedXS.size(); + for(G4int i=0; iGetProcessName() == m_procBiasedXS[i]) { + ptr->SetCrossSectionBiasingFactor(m_factBiasedXS[i], + m_weightBiasedXS[i]); + break; + } + } + n = m_procForced.size(); + for(G4int i=0; iGetProcessName() == m_procForced[i]) { + ptr->ActivateForcedInteraction(m_lengthForced[i], + m_regnamesForced[i], + m_weightForced[i]); + break; + } + } + n = m_procBiasedSec.size(); + for(G4int i=0; iGetProcessName() == m_procBiasedSec[i]) { + ptr->ActivateSecondaryBiasing(m_regnamesBiasedSec[i], + m_factBiasedSec[i], + m_elimBiasedSec[i]); + break; + } + } +} + +void G4EmParameters::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]); + break; + } + } + n = m_procForced.size(); + for(G4int i=0; iGetProcessName() == m_procForced[i]) { + ptr->ActivateForcedInteraction(m_lengthForced[i], + m_regnamesForced[i], + m_weightForced[i]); + break; + } + } + n = m_procBiasedSec.size(); + for(G4int i=0; iGetProcessName() == m_procBiasedSec[i]) { + ptr->ActivateSecondaryBiasing(m_regnamesBiasedSec[i], + m_factBiasedSec[i], + m_elimBiasedSec[i]); + break; + } + } +} + +void G4EmParameters::DefineRegParamForDeex(G4VAtomDeexcitation* ptr) const +{ + G4int n = m_regnamesDeex.size(); + for(G4int i=0; iSetDeexcitationActiveRegion(m_regnamesDeex[i], + m_fluo[i], m_auger[i], m_pixe[i]); + } +} + std::ostream& G4EmParameters::StreamInfo(std::ostream& os) const { G4int prec = os.precision(5); @@ -811,6 +1081,8 @@ std::ostream& G4EmParameters::StreamInfo(std::ostream& os) const <GetCurrentState() != G4State_PreInit && + fStateManager->GetCurrentState() != G4State_Idle)); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc b/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc index 42df984b87..d0fb3fc0aa 100644 --- a/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc +++ b/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc @@ -44,7 +44,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4EmParametersMessenger.hh" - #include "G4UIdirectory.hh" #include "G4UIcommand.hh" #include "G4UIparameter.hh" @@ -55,6 +54,7 @@ #include "G4UIcmdWithAString.hh" #include "G4UImanager.hh" #include "G4MscStepLimitType.hh" +#include "G4NuclearFormfactorType.hh" #include "G4EmParameters.hh" #include @@ -96,7 +96,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) splCmd->AvailableForStates(G4State_PreInit,G4State_Idle); rsCmd = new G4UIcmdWithABool("/process/eLoss/useCutAsFinalRange",this); - rsCmd->SetGuidance("Enable?disable use of cut in range as a final range"); + rsCmd->SetGuidance("Enable/disable use of cut in range as a final range"); rsCmd->SetParameterName("choice",true); rsCmd->SetDefaultValue(false); rsCmd->AvailableForStates(G4State_PreInit,G4State_Idle); @@ -308,7 +308,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) msc1Cmd = new G4UIcmdWithAString("/process/msc/StepLimitMuHad",this); msc1Cmd->SetGuidance("Set msc step limitation type for muons/hadrons"); msc1Cmd->SetParameterName("StepLim1",true); - msc1Cmd->SetCandidates("fMinimal fUseSafety fUseSafetyPlus fUseDistanceToBoundary"); + msc1Cmd->SetCandidates("Minimal UseSafety UseSafetyPlus UseDistanceToBoundary"); msc1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); pixeXsCmd = new G4UIcmdWithAString("/process/em/pixeXSmodel",this); @@ -328,6 +328,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) paiCmd->SetGuidance(" partName : particle name (default - all)"); paiCmd->SetGuidance(" regName : G4Region name"); paiCmd->SetGuidance(" paiType : PAI, PAIphoton"); + paiCmd->AvailableForStates(G4State_PreInit); G4UIparameter* part = new G4UIparameter("partName",'s',false); paiCmd->SetParameter(part); @@ -347,6 +348,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) dnaCmd->SetGuidance("Activate DNA in the G4Region."); dnaCmd->SetGuidance(" regName : G4Region name"); dnaCmd->SetGuidance(" dnaType : opt0, opt1, opt2"); + dnaCmd->AvailableForStates(G4State_PreInit); G4UIparameter* regName = new G4UIparameter("regName",'s',false); dnaCmd->SetParameter(regName); @@ -357,6 +359,149 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) dumpCmd = new G4UIcommand("/process/em/printParameters",this); dumpCmd->SetGuidance("Print all EM parameters."); + SubSecCmd = new G4UIcommand("/process/eLoss/subsec",this); + SubSecCmd->SetGuidance("Switch true/false the subcutoff generation per region."); + SubSecCmd->SetGuidance(" subSec : true/false"); + SubSecCmd->SetGuidance(" Region : region name"); + SubSecCmd->AvailableForStates(G4State_PreInit); + + G4UIparameter* subSec = new G4UIparameter("subSec",'s',false); + SubSecCmd->SetParameter(subSec); + + G4UIparameter* subSecReg = new G4UIparameter("Region",'s',false); + SubSecCmd->SetParameter(subSecReg); + + StepFuncCmd = new G4UIcommand("/process/eLoss/StepFunction",this); + StepFuncCmd->SetGuidance("Set the energy loss step limitation parameters for e+-."); + StepFuncCmd->SetGuidance(" dRoverR : max Range variation per step"); + StepFuncCmd->SetGuidance(" finalRange: range for final step"); + StepFuncCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + G4UIparameter* dRoverRPrm = new G4UIparameter("dRoverR",'d',false); + dRoverRPrm->SetParameterRange("dRoverR>0. && dRoverR<=1."); + StepFuncCmd->SetParameter(dRoverRPrm); + + G4UIparameter* finalRangePrm = new G4UIparameter("finalRange",'d',false); + finalRangePrm->SetParameterRange("finalRange>0."); + StepFuncCmd->SetParameter(finalRangePrm); + + G4UIparameter* unitPrm = new G4UIparameter("unit",'s',true); + unitPrm->SetDefaultValue("mm"); + StepFuncCmd->SetParameter(unitPrm); + + StepFuncCmd1 = new G4UIcommand("/process/eLoss/StepFunctionMuHad",this); + StepFuncCmd1->SetGuidance("Set the energy loss step limitation parameters for muon/hadron."); + StepFuncCmd1->SetGuidance(" dRoverR : max Range variation per step"); + StepFuncCmd1->SetGuidance(" finalRange: range for final step"); + StepFuncCmd1->AvailableForStates(G4State_PreInit,G4State_Idle); + + G4UIparameter* dRoverRPrm1 = new G4UIparameter("dRoverRMuHad",'d',false); + dRoverRPrm1->SetParameterRange("dRoverRMuHad>0. && dRoverRMuHad<=1."); + StepFuncCmd1->SetParameter(dRoverRPrm1); + + G4UIparameter* finalRangePrm1 = new G4UIparameter("finalRangeMuHad",'d',false); + finalRangePrm1->SetParameterRange("finalRangeMuHad>0."); + StepFuncCmd1->SetParameter(finalRangePrm1); + + G4UIparameter* unitPrm1 = new G4UIparameter("unit",'s',true); + unitPrm1->SetDefaultValue("mm"); + StepFuncCmd1->SetParameter(unitPrm1); + + IntegCmd = new G4UIcmdWithABool("/process/eLoss/integral",this); + IntegCmd->SetGuidance("Switch true/false the integral option"); + IntegCmd->SetParameterName("integ",true); + IntegCmd->SetDefaultValue(true); + IntegCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + deexCmd = new G4UIcommand("/process/em/deexcitation",this); + deexCmd->SetGuidance("Set deexcitation flags per G4Region."); + deexCmd->SetGuidance(" regName : G4Region name"); + deexCmd->SetGuidance(" flagFluo : Fluorescence"); + deexCmd->SetGuidance(" flagAuger : Auger"); + deexCmd->SetGuidance(" flagPIXE : PIXE"); + deexCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + G4UIparameter* regNameD = new G4UIparameter("regName",'s',false); + deexCmd->SetParameter(regNameD); + + G4UIparameter* flagFluo = new G4UIparameter("flagFluo",'s',false); + deexCmd->SetParameter(flagFluo); + + G4UIparameter* flagAuger = new G4UIparameter("flagAuger",'s',false); + deexCmd->SetParameter(flagAuger); + + G4UIparameter* flagPIXE = new G4UIparameter("flagPIXE",'s',false); + deexCmd->SetParameter(flagPIXE); + + bfCmd = new G4UIcommand("/process/em/setBiasingFactor",this); + bfCmd->SetGuidance("Set factor for the process cross section."); + bfCmd->SetGuidance(" procName : process name"); + bfCmd->SetGuidance(" procFact : factor"); + bfCmd->SetGuidance(" flagFact : flag to change weight"); + bfCmd->AvailableForStates(G4State_Idle,G4State_Idle); + + G4UIparameter* procName = new G4UIparameter("procName",'s',false); + bfCmd->SetParameter(procName); + + G4UIparameter* procFact = new G4UIparameter("procFact",'d',false); + bfCmd->SetParameter(procFact); + + G4UIparameter* flagFact = new G4UIparameter("flagFact",'s',false); + bfCmd->SetParameter(flagFact); + + fiCmd = new G4UIcommand("/process/em/setForcedInteraction",this); + fiCmd->SetGuidance("Set factor for the process cross section."); + fiCmd->SetGuidance(" procNam : process name"); + fiCmd->SetGuidance(" regNam : region name"); + fiCmd->SetGuidance(" tlength : fixed target length"); + fiCmd->SetGuidance(" unitT : length unit"); + fiCmd->SetGuidance(" tflag : flag to change weight"); + fiCmd->AvailableForStates(G4State_Idle,G4State_Idle); + + G4UIparameter* procNam = new G4UIparameter("procNam",'s',false); + fiCmd->SetParameter(procNam); + + G4UIparameter* regNam = new G4UIparameter("regNam",'s',false); + fiCmd->SetParameter(regNam); + + G4UIparameter* tlength = new G4UIparameter("tlength",'d',false); + fiCmd->SetParameter(tlength); + + G4UIparameter* unitT = new G4UIparameter("unitT",'s',true); + fiCmd->SetParameter(unitT); + + G4UIparameter* flagT = new G4UIparameter("tflag",'s',true); + fiCmd->SetParameter(flagT); + + bsCmd = new G4UIcommand("/process/em/setSecBiasing",this); + bsCmd->SetGuidance("Set bremsstrahlung or delta-e- splitting/Russian roullette per region."); + bsCmd->SetGuidance(" bProcNam : process name"); + bsCmd->SetGuidance(" bRegNam : region name"); + bsCmd->SetGuidance(" bFactor : number of splitted gamma or probability of Russian roulette"); + bsCmd->SetGuidance(" bEnergy : max energy of a secondary for this biasing method"); + bsCmd->SetGuidance(" bUnit : energy unit"); + bsCmd->AvailableForStates(G4State_Idle,G4State_Idle); + + G4UIparameter* bProcNam = new G4UIparameter("bProcNam",'s',false); + bsCmd->SetParameter(bProcNam); + + G4UIparameter* bRegNam = new G4UIparameter("bRegNam",'s',false); + bsCmd->SetParameter(bRegNam); + + G4UIparameter* bFactor = new G4UIparameter("bFactor",'d',false); + bsCmd->SetParameter(bFactor); + + G4UIparameter* bEnergy = new G4UIparameter("bEnergy",'d',false); + bsCmd->SetParameter(bEnergy); + + G4UIparameter* bUnit = new G4UIparameter("bUnit",'s',true); + bsCmd->SetParameter(bUnit); + + nffCmd = new G4UIcmdWithAString("/process/em/setNuclearFormFactor",this); + nffCmd->SetGuidance("Define typy of nuclear form-factor"); + nffCmd->SetParameterName("NucFF",true); + nffCmd->SetCandidates("None Exponential Gaussian Flat"); + nffCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -418,6 +563,16 @@ G4EmParametersMessenger::~G4EmParametersMessenger() delete meCmd; delete dnaCmd; delete dumpCmd; + + delete SubSecCmd; + delete StepFuncCmd; + delete StepFuncCmd1; + delete IntegCmd; + delete deexCmd; + delete bfCmd; + delete fiCmd; + delete bsCmd; + delete nffCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -576,6 +731,72 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command, theParameters->AddDNA(s1, s2); } else if (command == dumpCmd) { theParameters->Dump(); + } else if (command == SubSecCmd) { + G4String s1, s2; + std::istringstream is(newValue); + is >> s1 >> s2; + G4bool yes = false; + if(s1 == "true") { yes = true; } + theParameters->SetSubCutoff(yes,s2); + } else if (command == StepFuncCmd || command == StepFuncCmd1) { + G4double v1,v2; + G4String unt; + std::istringstream is(newValue); + is >> v1 >> v2 >> unt; + v2 *= G4UIcommand::ValueOf(unt); + if(command == StepFuncCmd) { + theParameters->SetStepFunction(v1,v2); + } else { + theParameters->SetStepFunctionMuHad(v1,v2); + } + physicsModified = true; + } else if (command == IntegCmd) { + theParameters->SetIntegral(IntegCmd->GetNewBoolValue(newValue)); + physicsModified = true; + } else if (command == deexCmd) { + G4String s1 (""), s2(""), s3(""), s4(""); + G4bool b2(false), b3(false), b4(false); + std::istringstream is(newValue); + is >> s1 >> s2 >> s3 >> s4; + if(s2 == "true") { b2 = true; } + if(s3 == "true") { b3 = true; } + if(s4 == "true") { b4 = true; } + theParameters->SetDeexActiveRegion(s1,b2,b3,b4); + physicsModified = true; + } else if (command == bfCmd) { + G4double v1(1.0); + G4String s0(""),s1(""); + std::istringstream is(newValue); + is >> s0 >> v1 >> s1; + G4bool yes = false; + if(s1 == "true") { yes = true; } + theParameters->SetProcessBiasingFactor(s0,v1,yes); + physicsModified = true; + } else if (command == fiCmd) { + G4double v1(0.0); + G4String s1(""),s2(""),s3(""),unt("mm"); + std::istringstream is(newValue); + is >> s1 >> s2 >> v1 >> unt >> s3; + G4bool yes = false; + if(s3 == "true") { yes = true; } + v1 *= G4UIcommand::ValueOf(unt); + theParameters->ActivateForcedInteraction(s1,s2,v1,yes); + physicsModified = true; + } else if (command == bsCmd) { + G4double fb(1.0),en(1.e+30); + G4String s1(""),s2(""),unt("MeV"); + std::istringstream is(newValue); + is >> s1 >> s2 >> fb >> en >> unt; + en *= G4UIcommand::ValueOf(unt); + theParameters->ActivateSecondaryBiasing(s1,s2,fb,en); + physicsModified = true; + } else if (command == nffCmd) { + G4NuclearFormfactorType x = fNoneNF; + if(newValue == "Exponential") { x = fExponentialNF; } + else if(newValue == "Gaussian") { x = fGaussianNF; } + else if(newValue == "Flat") { x = fFlatNF; } + theParameters->SetNuclearFormfactorType(x); + physicsModified = true; } if(physicsModified) { G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified"); diff --git a/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc b/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc index 4175dd3543..84f7c7fd95 100644 --- a/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc +++ b/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EmProcessOptions.cc 92766 2015-09-15 15:21:42Z gcosmo $ +// $Id: G4EmProcessOptions.cc 96088 2016-03-14 16:03:38Z gcosmo $ // // ------------------------------------------------------------------- // @@ -55,20 +55,22 @@ #include "G4EmProcessOptions.hh" #include "G4EmParameters.hh" #include "G4SystemOfUnits.hh" -#include "G4LossTableManager.hh" #include "G4VEmProcess.hh" #include "G4VEnergyLossProcess.hh" -#include "G4VMultipleScattering.hh" +#include "G4VAtomDeexcitation.hh" #include "G4Region.hh" #include "G4RegionStore.hh" -#include "G4VAtomDeexcitation.hh" #include "G4Threading.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4EmProcessOptions::G4EmProcessOptions() { - theManager = G4LossTableManager::Instance(); + G4cout << "### WARNING: G4EmProcessOptions class is obsolete and " + << "will be removed in the next public release \n" + << " Please, try to use G4EmParameters class and/or UI " + << "interface to EM parameters" + << G4endl; theParameters = G4EmParameters::Instance(); } @@ -301,38 +303,34 @@ void G4EmProcessOptions::SetMscStepLimitation(G4MscStepLimitType val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4EmProcessOptions::SetSubCutoff(G4bool val, const G4Region* r) +void G4EmProcessOptions::SetSubCutoff(G4bool val, const G4String& r) { - theManager->SetSubCutoff(val, r); + theParameters->SetSubCutoff(val, r); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EmProcessOptions::SetIntegral(G4bool val) { - theManager->SetIntegral(val); + theParameters->SetIntegral(val); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EmProcessOptions::SetStepFunction(G4double v1, G4double v2) { - theManager->SetStepFunction(v1, v2); + theParameters->SetStepFunction(v1, v2); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EmProcessOptions::SetDeexcitationActiveRegion(const G4String& rname, - G4bool valDeexcitation, + G4bool valDeex, G4bool valAuger, G4bool valPIXE) { - G4VAtomDeexcitation* ad = theManager-> AtomDeexcitation(); - if(ad) { - ad->SetDeexcitationActiveRegion(rname, valDeexcitation, - valAuger,valPIXE); - } + theParameters->SetDeexActiveRegion(rname, valDeex, valAuger, valPIXE); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -356,28 +354,7 @@ void G4EmProcessOptions::SetProcessBiasingFactor(const G4String& name, G4double val, G4bool flag) { - const std::vector& v = - theManager->GetEnergyLossProcessVector(); - std::vector::const_iterator itr; - for(itr = v.begin(); itr != v.end(); ++itr) { - G4VEnergyLossProcess* p = *itr; - if(p) { - if (p->GetProcessName() == name) { - p->SetCrossSectionBiasingFactor(val, flag); - } - } - } - const std::vector& w = - theManager->GetEmProcessVector(); - std::vector::const_iterator itp; - for(itp = w.begin(); itp != w.end(); itp++) { - G4VEmProcess* q = *itp; - if(q) { - if (q->GetProcessName() == name) { - q->SetCrossSectionBiasingFactor(val, flag); - } - } - } + theParameters->SetProcessBiasingFactor(name, val, flag); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -388,28 +365,7 @@ G4EmProcessOptions::ActivateForcedInteraction(const G4String& name, const G4String& region, G4bool flag) { - const std::vector& v = - theManager->GetEnergyLossProcessVector(); - std::vector::const_iterator itr; - for(itr = v.begin(); itr != v.end(); ++itr) { - G4VEnergyLossProcess* p = *itr; - if(p) { - if (p->GetProcessName() == name) { - p->ActivateForcedInteraction(length,region,flag); - } - } - } - const std::vector& w = - theManager->GetEmProcessVector(); - std::vector::const_iterator itp; - for(itp = w.begin(); itp != w.end(); itp++) { - G4VEmProcess* q = *itp; - if(q) { - if (q->GetProcessName() == name) { - q->ActivateForcedInteraction(length,region,flag); - } - } - } + theParameters->ActivateForcedInteraction(name, region, length, flag); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -420,18 +376,7 @@ G4EmProcessOptions::ActivateSecondaryBiasing(const G4String& name, G4double factor, G4double energyLimit) { - if(0.0 > factor) { return; } - const std::vector& v = - theManager->GetEnergyLossProcessVector(); - std::vector::const_iterator itr; - for(itr = v.begin(); itr != v.end(); ++itr) { - G4VEnergyLossProcess* p = *itr; - if(p) { - if (p->GetProcessName() == name) { - p->ActivateSecondaryBiasing(region, factor, energyLimit); - } - } - } + theParameters->ActivateSecondaryBiasing(name, region, factor, energyLimit); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -442,18 +387,7 @@ G4EmProcessOptions::ActivateSecondaryBiasingForGamma(const G4String& name, G4double factor, G4double energyLimit) { - if(0.0 > factor) { return; } - const std::vector& v = - theManager->GetEmProcessVector(); - std::vector::const_iterator itr; - for(itr = v.begin(); itr != v.end(); ++itr) { - G4VEmProcess* p = *itr; - if(p) { - if (p->GetProcessName() == name) { - p->ActivateSecondaryBiasing(region, factor, energyLimit); - } - } - } + theParameters->ActivateSecondaryBiasing(name, region, factor, energyLimit); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc deleted file mode 100644 index 4bda94a564..0000000000 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc +++ /dev/null @@ -1,275 +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. * -// ******************************************************************** -// -// $Id: G4EnergyLossMessenger.cc 90095 2015-05-13 12:10:25Z gcosmo $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// File name: G4EnergyLossMessenger -// -// Author: Michel Maire -// -// Creation date: 17-03-2011 (original version of 22-06-2000) -// -// Modifications: -// 10-01-06 SetStepLimits -> SetStepFunction (V.Ivanchenko) -// 10-01-06 PreciseRange -> CSDARange (V.Ivanchenko) -// 10-05-06 Add command MscStepLimit (V.Ivanchenko) -// 10-10-06 Add DEDXBinning command (V.Ivanchenko) -// 07-02-07 Add MscLateralDisplacement command (V.Ivanchenko) -// 12-02-07 Add SetSkin, SetLinearLossLimit (V.Ivanchenko) -// 15-03-07 Send a message "/run/physicsModified" if reinitialisation -// is needed after the command (V.Ivanchenko) -// 16-03-07 modify /process/eLoss/minsubsec command (V.Ivanchenko) -// 18-05-07 add /process/msc directory and commands (V.Ivanchenko) -// 11-03-08 add /process/em directory and commands (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4EnergyLossMessenger.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" -#include "G4UIcmdWithABool.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithAString.hh" -#include "G4EmProcessOptions.hh" -#include "G4UImanager.hh" -#include "G4MscStepLimitType.hh" -#include "G4EmProcessOptions.hh" - -#include - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4EnergyLossMessenger::G4EnergyLossMessenger() -{ - - opt = 0; - SubSecCmd = new G4UIcmdWithABool("/process/eLoss/subsec",this); - SubSecCmd->SetGuidance("Switch true/false the subcutoff generation."); - SubSecCmd->SetParameterName("choice",true); - SubSecCmd->SetDefaultValue(true); - SubSecCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - StepFuncCmd = new G4UIcommand("/process/eLoss/StepFunction",this); - StepFuncCmd->SetGuidance("Set the energy loss step limitation parameters."); - StepFuncCmd->SetGuidance(" dRoverR : max Range variation per step"); - StepFuncCmd->SetGuidance(" finalRange: range for final step"); - - G4UIparameter* dRoverRPrm = new G4UIparameter("dRoverR",'d',false); - dRoverRPrm->SetGuidance("max Range variation per step (fractional number)"); - dRoverRPrm->SetParameterRange("dRoverR>0. && dRoverR<=1."); - StepFuncCmd->SetParameter(dRoverRPrm); - - G4UIparameter* finalRangePrm = new G4UIparameter("finalRange",'d',false); - finalRangePrm->SetGuidance("range for final step"); - finalRangePrm->SetParameterRange("finalRange>0."); - StepFuncCmd->SetParameter(finalRangePrm); - - G4UIparameter* unitPrm = new G4UIparameter("unit",'s',true); - unitPrm->SetGuidance("unit of finalRange"); - unitPrm->SetDefaultValue("mm"); - G4String unitCandidates = - G4UIcommand::UnitsList(G4UIcommand::CategoryOf("mm")); - unitPrm->SetParameterCandidates(unitCandidates); - - StepFuncCmd->SetParameter(unitPrm); - StepFuncCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - IntegCmd = new G4UIcmdWithABool("/process/eLoss/integral",this); - IntegCmd->SetGuidance("Switch true/false the integral option"); - IntegCmd->SetParameterName("integ",true); - IntegCmd->SetDefaultValue(true); - IntegCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - deexCmd = new G4UIcommand("/process/em/deexcitation",this); - deexCmd->SetGuidance("Set deexcitation flags per G4Region."); - deexCmd->SetGuidance(" regName : G4Region name"); - deexCmd->SetGuidance(" flagFluo : Fluorescence"); - deexCmd->SetGuidance(" flagAuger : Auger"); - deexCmd->SetGuidance(" flagPIXE : PIXE"); - - G4UIparameter* regName = new G4UIparameter("regName",'s',false); - deexCmd->SetParameter(regName); - - G4UIparameter* flagFluo = new G4UIparameter("flagFluo",'s',false); - deexCmd->SetParameter(flagFluo); - - G4UIparameter* flagAuger = new G4UIparameter("flagAuger",'s',false); - deexCmd->SetParameter(flagAuger); - - G4UIparameter* flagPIXE = new G4UIparameter("flagPIXE",'s',false); - deexCmd->SetParameter(flagPIXE); - - bfCmd = new G4UIcommand("/process/em/setBiasingFactor",this); - bfCmd->SetGuidance("Set factor for the process cross section."); - bfCmd->SetGuidance(" procName : process name"); - bfCmd->SetGuidance(" procFact : factor"); - bfCmd->SetGuidance(" flagFact : flag to change weight"); - - G4UIparameter* procName = new G4UIparameter("procName",'s',false); - bfCmd->SetParameter(procName); - - G4UIparameter* procFact = new G4UIparameter("procFact",'d',false); - bfCmd->SetParameter(procFact); - - G4UIparameter* flagFact = new G4UIparameter("flagFact",'s',false); - bfCmd->SetParameter(flagFact); - bfCmd->AvailableForStates(G4State_Idle); - - fiCmd = new G4UIcommand("/process/em/setForcedInteraction",this); - fiCmd->SetGuidance("Set factor for the process cross section."); - fiCmd->SetGuidance(" procNam : process name"); - fiCmd->SetGuidance(" regNam : region name"); - fiCmd->SetGuidance(" tlength : fixed target length"); - fiCmd->SetGuidance(" tflag : flag to change weight"); - - G4UIparameter* procNam = new G4UIparameter("procNam",'s',false); - fiCmd->SetParameter(procNam); - - G4UIparameter* regNam = new G4UIparameter("regNam",'s',false); - fiCmd->SetParameter(regNam); - - G4UIparameter* tlength = new G4UIparameter("tlength",'d',false); - fiCmd->SetParameter(tlength); - - G4UIparameter* unitT = new G4UIparameter("unitT",'s',true); - fiCmd->SetParameter(unitT); - unitT->SetGuidance("unit of tlength"); - - G4UIparameter* flagT = new G4UIparameter("tflag",'s',true); - fiCmd->SetParameter(flagT); - fiCmd->AvailableForStates(G4State_Idle); - - brCmd = new G4UIcommand("/process/em/setSecBiasing",this); - brCmd->SetGuidance("Set bremsstrahlung or delta-e- splitting/Russian roullette per region."); - brCmd->SetGuidance(" bProcNam : process name"); - brCmd->SetGuidance(" bRegNam : region name"); - brCmd->SetGuidance(" bFactor : number of splitted gamma or probability of Russian roulette"); - brCmd->SetGuidance(" bEnergy : max energy of a secondary for this biasing method"); - - G4UIparameter* bProcNam = new G4UIparameter("bProcNam",'s',false); - brCmd->SetParameter(bProcNam); - - G4UIparameter* bRegNam = new G4UIparameter("bRegNam",'s',false); - brCmd->SetParameter(bRegNam); - - G4UIparameter* bFactor = new G4UIparameter("bFactor",'d',false); - brCmd->SetParameter(bFactor); - - G4UIparameter* bEnergy = new G4UIparameter("bEnergy",'d',false); - brCmd->SetParameter(bEnergy); - - G4UIparameter* bUnit = new G4UIparameter("bUnit",'s',true); - brCmd->SetParameter(bUnit); - brCmd->SetGuidance("unit of energy"); - - brCmd->AvailableForStates(G4State_Idle); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4EnergyLossMessenger::~G4EnergyLossMessenger() -{ - delete opt; - delete SubSecCmd; - delete StepFuncCmd; - delete IntegCmd; - delete bfCmd; - delete fiCmd; - delete brCmd; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4EnergyLossMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if(!opt) { opt = new G4EmProcessOptions(); } - - if(command == SubSecCmd) { - opt->SetSubCutoff(SubSecCmd->GetNewBoolValue(newValue)); - G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified"); - } else if (command == StepFuncCmd) { - G4double v1,v2; - G4String unt; - std::istringstream is(newValue); - is >> v1 >> v2 >> unt; - v2 *= G4UIcommand::ValueOf(unt); - opt->SetStepFunction(v1,v2); - } else if (command == deexCmd) { - G4String s1 (""), s2(""), s3(""), s4(""); - G4bool b2(false), b3(false), b4(false); - std::istringstream is(newValue); - is >> s1 >> s2 >> s3 >> s4; - if(s2 == "true") { b2 = true; } - if(s3 == "true") { b3 = true; } - if(s4 == "true") { b4 = true; } - opt->SetDeexcitationActiveRegion(s1,b2,b3,b4); - G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified"); - } else if (command == IntegCmd) { - opt->SetIntegral(IntegCmd->GetNewBoolValue(newValue)); - } else if (command == bfCmd) { - G4double v1(1.0); - G4String s0(""),s1(""); - std::istringstream is(newValue); - is >> s0 >> v1 >> s1; - G4bool yes = false; - if(s1 == "true") { yes = true; } - opt->SetProcessBiasingFactor(s0,v1,yes); - G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified"); - } else if (command == fiCmd) { - G4double v1(0.0); - G4String s1(""),s2(""),s3(""),unt("mm"); - std::istringstream is(newValue); - is >> s1 >> s2 >> v1 >> unt >> s3; - G4bool yes = false; - if(s3 == "true") { yes = true; } - v1 *= G4UIcommand::ValueOf(unt); - opt->ActivateForcedInteraction(s1,v1,s2,yes); - G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified"); - } else if (command == brCmd) { - G4double fb(1.0),en(1.e+30); - G4String s1(""),s2(""),unt("MeV"); - std::istringstream is(newValue); - is >> s1 >> s2 >> fb >> en >> unt; - en *= G4UIcommand::ValueOf(unt); - if (s1=="phot"||s1=="compt"||s1=="conv") - opt->ActivateSecondaryBiasingForGamma(s1,s2,fb,en); - else opt->ActivateSecondaryBiasing(s1,s2,fb,en); - G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified"); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc index daae856631..bc8320bb38 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LossTableBuilder.cc 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4LossTableBuilder.cc 96088 2016-03-14 16:03:38Z gcosmo $ // // ------------------------------------------------------------------- // @@ -66,11 +66,13 @@ #include "G4VEmModel.hh" #include "G4ParticleDefinition.hh" #include "G4LossTableManager.hh" +#include "G4EmParameters.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4LossTableBuilder::G4LossTableBuilder() { + theParameters = G4EmParameters::Instance(); splineFlag = true; isInitialized = false; @@ -419,7 +421,7 @@ G4LossTableBuilder::BuildTableForModel(G4PhysicsTable* aTable, } InitialiseBaseMaterials(table); - G4int nbins = G4LossTableManager::Instance()->GetNumberOfBinsPerDecade(); + G4int nbins = theParameters->NumberOfBinsPerDecade(); // Access to materials const G4ProductionCutsTable* theCoupleTable= diff --git a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc index 277443c434..ab3d387850 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4LossTableManager.cc 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4LossTableManager.cc 97742 2016-06-08 09:24:54Z gcosmo $ // // ------------------------------------------------------------------- // @@ -83,11 +83,11 @@ #include "G4LossTableManager.hh" #include "G4SystemOfUnits.hh" -#include "G4EnergyLossMessenger.hh" #include "G4VMultipleScattering.hh" #include "G4VEmProcess.hh" +#include "G4EmParameters.hh" #include "G4EmSaturation.hh" #include "G4EmConfigurator.hh" #include "G4ElectronIonPair.hh" @@ -107,7 +107,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -G4ThreadLocal G4LossTableManager* G4LossTableManager::instance = 0; +G4ThreadLocal G4LossTableManager* G4LossTableManager::instance = nullptr; G4LossTableManager* G4LossTableManager::Instance() { @@ -122,7 +122,7 @@ G4LossTableManager* G4LossTableManager::Instance() G4LossTableManager::~G4LossTableManager() { - //G4cout << "### G4LossTableManager::~G4LossTableManager()" << G4endl; + //G4cout << "### G4LossTableManager::~G4LossTableManager() "<< this << G4endl; for (G4int i=0; iVerbose(); - theMessenger = new G4EnergyLossMessenger(); theElectron = G4Electron::Electron(); theGenericIon= nullptr; if(G4Threading::IsWorkerThread()) { @@ -243,10 +239,6 @@ void G4LossTableManager::Register(G4VEnergyLossProcess* p) tables_are_built.push_back(false); isActive.push_back(true); all_tables_are_built = false; - if(subCutoffFlag) { p->ActivateSubCutoff(true); } - if(stepFunctionActive) { p->SetStepFunction(maxRangeVariation, - maxFinalStep); } - if(integralActive) { p->SetIntegral(integral); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -340,7 +332,7 @@ void G4LossTableManager::Register(G4VEmModel* p) mod_vector.push_back(p); if(verbose > 1) { G4cout << "G4LossTableManager::Register G4VEmModel : " - << p->GetName() << G4endl; + << p->GetName() << " " << p << " " << mod_vector.size() << G4endl; } } @@ -348,9 +340,13 @@ void G4LossTableManager::Register(G4VEmModel* p) void G4LossTableManager::DeRegister(G4VEmModel* p) { + //G4cout << "G4LossTableManager::DeRegister G4VEmModel : " << p << G4endl; size_t n = mod_vector.size(); for (size_t i=0; i 1) { G4cout << "G4LossTableManager::Register G4VEmFluctuationModel : " - << p->GetName() << G4endl; + << p->GetName() << " " << fmod_vector.size() << G4endl; } } @@ -530,7 +526,6 @@ void G4LossTableManager::LocalPhysicsTables( if(startInitialisation) { ++run; - SetVerbose(verbose); if(1 < verbose) { G4cout << "===== G4LossTableManager::LocalPhysicsTable() for run " << run << " =====" << G4endl; @@ -559,7 +554,9 @@ void G4LossTableManager::LocalPhysicsTables( range_vector[i] = p->RangeTableForLoss(); inv_range_vector[i] = p->InverseRangeTable(); if(0 == run && p->IsIonisationProcess()) { - loss_map[part_vector[i]] = loss_vector[i]; + loss_map[part_vector[i]] = p; + //G4cout << "G4LossTableManager::LocalPhysicsTable " << part_vector[i]->GetParticleName() + // << " added to map " << p << G4endl; } if(1 < verbose) { @@ -578,9 +575,6 @@ void G4LossTableManager::LocalPhysicsTables( } } - // Set run time parameters - SetParameters(aParticle, p); - if(1 < verbose) { G4cout << "### G4LossTableManager::LocalPhysicsTable end" << G4endl; @@ -663,10 +657,7 @@ void G4LossTableManager::BuildPhysicsTable( } } - // Set run time parameters - SetParameters(aParticle, p); - - if (all_tables_are_built) { return; } + if (all_tables_are_built) { return; } // Build tables for given particle all_tables_are_built = true; @@ -676,19 +667,25 @@ void G4LossTableManager::BuildPhysicsTable( const G4ParticleDefinition* curr_part = part_vector[i]; if(1 < verbose) { G4cout << "### Build Table for " << p->GetProcessName() - << " and " << curr_part->GetParticleName() << G4endl; + << " and " << curr_part->GetParticleName() + << " " << tables_are_built[i] << " " << base_part_vector[i] << G4endl; } G4VEnergyLossProcess* curr_proc = BuildTables(curr_part); - if(curr_proc) { CopyTables(curr_part, curr_proc); } + if(curr_proc) { + CopyTables(curr_part, curr_proc); + if(p == curr_proc && 0 == run && p->IsIonisationProcess()) { + loss_map[aParticle] = p; + //G4cout << "G4LossTableManager::BuildPhysicsTable: " << aParticle->GetParticleName() + // << " added to map " << p << G4endl; + } + } } if ( !tables_are_built[i] ) { all_tables_are_built = false; } } - if(0 == run && p->IsIonisationProcess()) { loss_map[aParticle] = p; } - if(1 < verbose) { G4cout << "### G4LossTableManager::BuildPhysicsTable end: " - << "all_tables_are_built= " << all_tables_are_built - << G4endl; + << "all_tables_are_built= " << all_tables_are_built << " " + << aParticle->GetParticleName() << " proc: " << p << G4endl; } if(all_tables_are_built) { if(1 < verbose) { @@ -722,12 +719,14 @@ void G4LossTableManager::CopyTables(const G4ParticleDefinition* part, range_vector[j] = base_proc->RangeTableForLoss(); inv_range_vector[j] = base_proc->InverseRangeTable(); loss_map[part_vector[j]] = proc; + //G4cout << "G4LossTableManager::CopyTable " << part_vector[j]->GetParticleName() + // << " added to map " << proc << G4endl; } if (1 < verbose) { G4cout << "For " << proc->GetProcessName() << " for " << part_vector[j]->GetParticleName() << " base_part= " << part->GetParticleName() - << " tables are assigned " + << " tables are assigned" << G4endl; } } @@ -925,13 +924,6 @@ G4VEnergyLossProcess* G4LossTableManager::BuildTables( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -G4EnergyLossMessenger* G4LossTableManager::GetMessenger() -{ - return theMessenger; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - void G4LossTableManager::ParticleHaveNoLoss( const G4ParticleDefinition* aParticle) { @@ -944,144 +936,11 @@ void G4LossTableManager::ParticleHaveNoLoss( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -void G4LossTableManager::SetLossFluctuations(G4bool /*val*/) +void G4LossTableManager::SetVerbose(G4int val) { + verbose = val; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetSubCutoff(G4bool val, const G4Region* r) -{ - subCutoffFlag = val; - for(G4int i=0; iActivateSubCutoff(val, r); } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetIntegral(G4bool val) -{ - integral = val; - integralActive = true; - for(G4int i=0; iSetIntegral(val); } - } - size_t emp = emp_vector.size(); - for (size_t k=0; kSetIntegral(val); } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetMinSubRange(G4double /*val*/) -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetRandomStep(G4bool /*val*/) -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetMinEnergy(G4double val) -{ - theParameters->SetMinEnergy(val); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetMaxEnergy(G4double val) -{ - theParameters->SetMaxEnergy(val); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetMaxEnergyForCSDARange(G4double val) -{ - theParameters->SetMaxEnergyForCSDARange(val); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetMaxEnergyForMuons(G4double val) -{ - theParameters->SetMaxEnergy(val); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetDEDXBinning(G4int val) -{ - theParameters->SetNumberOfBins(val); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetDEDXBinningForCSDARange(G4int /*n*/) -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetLambdaBinning(G4int val) -{ - theParameters->SetNumberOfBins(val); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetVerbose(G4int /*val*/) -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetStepFunction(G4double v1, G4double v2) -{ - if(0.0 < v1 && 0.0 < v2 && v2 < 1.e+50) { - stepFunctionActive = true; - maxRangeVariation = v1; - maxFinalStep = v2; - for(G4int i=0; iSetStepFunction(v1, v2); } - } - } else if(v1 <= 0.0) { - PrintEWarning("SetStepFunction", v1); - } else { - PrintEWarning("SetStepFunction", v2); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetLinearLossLimit(G4double /*val*/) -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void G4LossTableManager::SetBuildCSDARange(G4bool /*val*/) -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - -void -G4LossTableManager::SetParameters(const G4ParticleDefinition* /*aParticle*/, - G4VEnergyLossProcess* p) -{ - if(stepFunctionActive) { - p->SetStepFunction(maxRangeVariation, maxFinalStep); - } - if(integralActive) { p->SetIntegral(integral); } -} - - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... const std::vector& diff --git a/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc b/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc index 73a991b6c5..03393479e1 100755 --- a/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc +++ b/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VAtomDeexcitation.cc 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4VAtomDeexcitation.cc 97432 2016-06-03 07:23:39Z gcosmo $ // // ------------------------------------------------------------------- // @@ -68,9 +68,10 @@ G4int G4VAtomDeexcitation::pixeIDg = -1; G4int G4VAtomDeexcitation::pixeIDe = -1; G4VAtomDeexcitation::G4VAtomDeexcitation(const G4String& modname) - : verbose(1), name(modname), isActive(false), - flagAuger(false),flagAugerCascade(false), - flagPIXE(false), ignoreCuts(false) + : verbose(1), name(modname), isActive(false), flagAuger(false), + flagAugerCascade(false), flagPIXE(false), ignoreCuts(false), + isActiveLocked(false), isAugerLocked(false), + isAugerCascadeLocked(false), isPIXELocked(false) { theParameters = G4EmParameters::Instance(); vdyn.reserve(5); @@ -103,10 +104,11 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() activeZ.resize(93, false); // initialisation of flags and options - isActive = theParameters->Fluo(); - flagAuger = theParameters->Auger(); - flagAugerCascade = theParameters->AugerCascade(); - flagPIXE = theParameters->Pixe(); + // normally there is no locksed flags + if(!isActiveLocked) { isActive = theParameters->Fluo(); } + if(!isAugerLocked) { flagAuger = theParameters->Auger(); } + if(!isAugerCascadeLocked) { flagAugerCascade = theParameters->AugerCascade(); } + if(!isPIXELocked) { flagPIXE = theParameters->Pixe(); } ignoreCuts = theParameters->DeexcitationIgnoreCut(); // check if deexcitation is active for the given run @@ -135,7 +137,9 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() if(reg && 0 < numOfCouples) { const G4ProductionCuts* rpcuts = reg->GetProductionCuts(); if(0 < verbose) { - G4cout << " " << activeRegions[j] << G4endl; + G4cout << " " << activeRegions[j] + << " " << deRegions[j] << " " << AugerRegions[j] + << " " << PIXERegions[j] << G4endl; } for(G4int i=0; iGetZ()); + G4int Z = (*(G4Element::GetElementTable()))[k]->GetZasInt(); if(Z > 5 && Z < 93) { activeZ[Z] = true; //G4cout << "!!! Active de-excitation Z= " << Z << G4endl; @@ -161,6 +165,14 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() // Initialise derived class InitialiseForNewRun(); + if(0 < verbose && flagAuger) { + G4cout << "### === Auger cascade flag: " << flagAugerCascade + << G4endl; + } + if(0 < verbose) { + G4cout << "### === Ignore cuts flag: " << ignoreCuts + << G4endl; + } if(0 < verbose && flagPIXE) { G4cout << "### === PIXE model for hadrons: " << theParameters->PIXECrossSectionModel() @@ -265,7 +277,7 @@ G4VAtomDeexcitation::AlongStepDeexcitation(std::vector& tracks, // loop over deexcitations for(G4int i=0; iGetZ()); + G4int Z = (*theElementVector)[i]->GetZasInt(); if(activeZ[Z] && Z < 93) { G4int nshells = std::min(9,(*theElementVector)[i]->GetNbOfAtomicShells()); diff --git a/source/processes/electromagnetic/utils/src/G4VEmModel.cc b/source/processes/electromagnetic/utils/src/G4VEmModel.cc index cebc5e2530..f7bf0915d3 100644 --- a/source/processes/electromagnetic/utils/src/G4VEmModel.cc +++ b/source/processes/electromagnetic/utils/src/G4VEmModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEmModel.cc 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VEmModel.cc 97742 2016-06-08 09:24:54Z gcosmo $ // // ------------------------------------------------------------------- // @@ -64,7 +64,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... const G4double G4VEmModel::inveplus = 1.0/CLHEP::eplus; -const G4double log106 = 6*G4Log(10.); G4VEmModel::G4VEmModel(const G4String& nam): flucModel(nullptr),anglModel(nullptr), name(nam), lowLimit(0.1*CLHEP::keV), @@ -84,8 +83,8 @@ G4VEmModel::G4VEmModel(const G4String& nam): isLocked = false; idxTable = 0; - fManager = G4LossTableManager::Instance(); - fManager->Register(this); + fEmManager = G4LossTableManager::Instance(); + fEmManager->Register(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -111,8 +110,7 @@ G4VEmModel::~G4VEmModel() delete fElementData; fElementData = nullptr; } - - fManager->DeRegister(this); + fEmManager->DeRegister(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -151,7 +149,6 @@ void G4VEmModel::InitialiseElementSelectors(const G4ParticleDefinition* part, // using spline for element selectors should be investigated in details // because small number of points may provide biased results // large number of points requires significant increase of memory - //G4bool spline = fManager->SplineFlag(); G4bool spline = false; //G4cout << "IES: for " << GetName() << " Emin(MeV)= " << lowLimit/MeV @@ -161,6 +158,8 @@ void G4VEmModel::InitialiseElementSelectors(const G4ParticleDefinition* part, // so correspondingly is more smooth if(highLimit <= lowLimit) { return; } + G4int nbinsPerDec = G4EmParameters::Instance()->NumberOfBinsPerDecade(); + G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); G4int numOfCouples = theCoupleTable->GetTableSize(); @@ -195,8 +194,8 @@ void G4VEmModel::InitialiseElementSelectors(const G4ParticleDefinition* part, G4double emin = std::max(lowLimit, MinPrimaryEnergy(material, part, cuts[i])); G4double emax = std::max(highLimit, 10*emin); - G4int nbins = G4int(fManager->GetNumberOfBinsPerDecade() - *G4Log(emax/emin)/log106); + static const G4double invlog106 = 1.0/(6*G4Log(10.)); + G4int nbins = (G4int)(nbinsPerDec*G4Log(emax/emin)*invlog106); nbins = std::max(nbins, 3); (*elmSelectors)[i] = new G4EmElementSelector(this,material,nbins, @@ -229,7 +228,7 @@ void G4VEmModel::InitialiseForMaterial(const G4ParticleDefinition* part, const G4ElementVector* theElementVector = material->GetElementVector(); G4int n = material->GetNumberOfElements(); for(G4int i=0; iGetZ()); + G4int Z = ((*theElementVector)[i])->GetZasInt(); InitialiseForElement(part, Z); } } else { @@ -281,6 +280,15 @@ G4double G4VEmModel::CrossSectionPerVolume(const G4Material* material, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +G4double G4VEmModel::GetPartialCrossSection(const G4Material*, G4int, + const G4ParticleDefinition*, + G4double) +{ + return 0.0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + void G4VEmModel::StartTracking(G4Track*) {} diff --git a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc index bc8416d598..35a87af726 100644 --- a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc +++ b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEmProcess.cc 93264 2015-10-14 09:30:04Z gcosmo $ +// $Id: G4VEmProcess.cc 96115 2016-03-16 18:53:00Z gcosmo $ // // ------------------------------------------------------------------- // @@ -114,10 +114,7 @@ G4VEmProcess::G4VEmProcess(const G4String& name, G4ProcessType type): maxKinEnergy = 10.0*TeV; nLambdaBins = 77; minKinEnergyPrim = DBL_MAX; - actBinning = false; - actSpline = false; - actMinKinEnergy = false; - actMaxKinEnergy = false; + actBinning = actSpline = actMinKinEnergy = actMaxKinEnergy = false; // default lambda factor lambdaFactor = 0.8; @@ -216,7 +213,9 @@ void G4VEmProcess::AddEmModel(G4int order, G4VEmModel* p, void G4VEmProcess::SetEmModel(G4VEmModel* p, G4int index) { G4int n = emModels.size(); - if(index >= n) { for(G4int i=n; i<=index; ++i) {emModels.push_back(0);} } + if(index >= n) { + for(G4int i=n; i<=index; ++i) {emModels.push_back(nullptr);} + } emModels[index] = p; } @@ -239,6 +238,27 @@ void G4VEmProcess::UpdateEmModel(const G4String& nam, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +G4int G4VEmProcess::GetNumberOfModels() const +{ + return modelManager->NumberOfModels(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4int G4VEmProcess::GetNumberOfRegionModels(size_t couple_index) const +{ + return modelManager->NumberOfRegionModels(couple_index); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VEmModel* G4VEmProcess::GetRegionModel(G4int idx, size_t couple_index) const +{ + return modelManager->GetRegionModel(idx, couple_index); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + G4VEmModel* G4VEmProcess::GetModelByIndex(G4int idx, G4bool ver) const { return modelManager->GetModel(idx, ver); @@ -295,10 +315,13 @@ void G4VEmProcess::PreparePhysicsTable(const G4ParticleDefinition& part) // initialisation of the process if(!actMinKinEnergy) { minKinEnergy = theParameters->MinKinEnergy(); } if(!actMaxKinEnergy) { maxKinEnergy = theParameters->MaxKinEnergy(); } + if(!actSpline) { splineFlag = theParameters->Spline(); } + if(isMaster) { SetVerboseLevel(theParameters->Verbose()); } else { SetVerboseLevel(theParameters->WorkerVerbose()); } applyCuts = theParameters->ApplyCuts(); lambdaFactor = theParameters->LambdaFactor(); + theParameters->DefineRegParamForEM(this); // initialisation of models numberOfModels = modelManager->NumberOfModels(); @@ -450,7 +473,6 @@ void G4VEmProcess::BuildLambdaTable() G4int nbin = theParameters->NumberOfBins(); if(actBinning) { nbin = std::max(nbin, nLambdaBins); } G4double emax1 = std::min(maxKinEnergy, minKinEnergyPrim); - if(!actSpline) { splineFlag = theParameters->Spline(); } for(size_t i=0; iIntegral(); } if(!actLossFluc) { lossFluctuationFlag = theParameters->LossFluctuation(); } rndmStepFlag = theParameters->UseCutAsFinalRange(); if(!actMinKinEnergy) { minKinEnergy = theParameters->MinKinEnergy(); } @@ -538,6 +537,10 @@ G4VEnergyLossProcess::PreparePhysicsTable(const G4ParticleDefinition& part) if(isMaster) { SetVerboseLevel(theParameters->Verbose()); } else { SetVerboseLevel(theParameters->WorkerVerbose()); } + G4bool isElec = true; + if(particle->GetPDGMass() > CLHEP::MeV) { isElec = false; } + theParameters->DefineRegParamForLoss(this, isElec); + G4double initialCharge = particle->GetPDGCharge(); G4double initialMass = particle->GetPDGMass(); @@ -578,7 +581,7 @@ G4VEnergyLossProcess::PreparePhysicsTable(const G4ParticleDefinition& part) G4PhysicsTableHelper::PreparePhysicsTable(theDEDXSubTable); } - if (lManager->BuildCSDARange()) { + if (theParameters->BuildCSDARange()) { theDEDXunRestrictedTable = G4PhysicsTableHelper::PreparePhysicsTable(theDEDXunRestrictedTable); theCSDARangeTable = @@ -1060,7 +1063,6 @@ void G4VEnergyLossProcess::ActivateSubCutoff(G4bool val, const G4Region* r) } } } - // new region if(val) { scoffRegions.push_back(reg); @@ -1570,7 +1572,6 @@ G4VEnergyLossProcess::SampleSubCutSecondaries(std::vector& tracks, G4ThreeVector dr = postStepPoint->GetPosition() - prepoint; G4double pretime = preStepPoint->GetGlobalTime(); G4double dt = postStepPoint->GetGlobalTime() - pretime; - //G4double dt = length/preStepPoint->GetVelocity(); G4double fragment = 0.0; do { @@ -1648,14 +1649,13 @@ G4VParticleChange* G4VEnergyLossProcess::PostStepDoIt(const G4Track& track, if (integral) { G4double lx = GetLambdaForScaledEnergy(postStepScaledEnergy); /* - if(preStepLambdaGetParticleName() << " and " << GetProcessName() << " E(MeV)= " << finalT/MeV << " preLambda= " << preStepLambda << " < " << lx << " (postLambda) " << G4endl; - ++nWarnings; } */ if(lx <= 0.0 || preStepLambda*G4UniformRand() > lx) { @@ -2346,8 +2346,11 @@ void G4VEnergyLossProcess::SetIonisation(G4bool val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossProcess::SetStepFunction(G4double v1, G4double v2) +void +G4VEnergyLossProcess::SetStepFunction(G4double v1, G4double v2, G4bool lock) { + if(actStepFunc) { return; } + actStepFunc = lock; if(0.0 < v1 && 0.0 < v2 && v2 < 1.e+50) { dRoverRange = std::min(1.0, v1); finalRange = v2; diff --git a/source/processes/electromagnetic/utils/src/G4VMscModel.cc b/source/processes/electromagnetic/utils/src/G4VMscModel.cc index 14e105f1ea..8df6e1bacb 100644 --- a/source/processes/electromagnetic/utils/src/G4VMscModel.cc +++ b/source/processes/electromagnetic/utils/src/G4VMscModel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VMscModel.cc 92921 2015-09-21 15:06:51Z gcosmo $ +// $Id: G4VMscModel.cc 96115 2016-03-16 18:53:00Z gcosmo $ // // ------------------------------------------------------------------- // @@ -50,7 +50,9 @@ #include "G4SystemOfUnits.hh" #include "G4ParticleChangeForMSC.hh" #include "G4TransportationManager.hh" +#include "G4LossTableManager.hh" #include "G4LossTableBuilder.hh" +#include "G4EmParameters.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -75,7 +77,6 @@ G4VMscModel::G4VMscModel(const G4String& nam): dedx = 2.0*CLHEP::MeV*CLHEP::cm2/CLHEP::g; localrange = DBL_MAX; localtkin = 0.0; - man = G4LossTableManager::Instance(); currentPart = 0; } @@ -114,13 +115,15 @@ G4VMscModel::GetParticleChangeForMSC(const G4ParticleDefinition* p) // table is always built for low mass particles } else if(p->GetPDGMass() < 4.5*GeV || ForceBuildTableFlag()) { + G4EmParameters* param = G4EmParameters::Instance(); idxTable = 0; - G4LossTableBuilder* builder = man->GetTableBuilder(); + G4LossTableBuilder* builder = + G4LossTableManager::Instance()->GetTableBuilder(); if(IsMaster()) { G4double emin = std::max(LowEnergyLimit(), LowEnergyActivationLimit()); G4double emax = std::min(HighEnergyLimit(), HighEnergyActivationLimit()); - emin = std::max(emin, man->MinKinEnergy()); - emax = std::min(emax, man->MaxKinEnergy()); + emin = std::max(emin, param->MinKinEnergy()); + emax = std::min(emax, param->MaxKinEnergy()); if(emin < emax) { xSectionTable = builder->BuildTableForModel(xSectionTable, this, p, emin, emax, true); diff --git a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc index 3bdd311da6..0b5cb7086a 100644 --- a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VMultipleScattering.cc 94120 2015-11-06 09:18:03Z gcosmo $ +// $Id: G4VMultipleScattering.cc 97742 2016-06-08 09:24:54Z gcosmo $ // // ------------------------------------------------------------------- // @@ -88,13 +88,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -static const G4double minSafety = 1.20*CLHEP::nm; -static const G4double geomMin = 0.05*CLHEP::nm; -static const G4double minDisplacement2 = geomMin*geomMin; - -G4VMultipleScattering::G4VMultipleScattering(const G4String& name, - G4ProcessType): - G4VContinuousDiscreteProcess("msc", fElectromagnetic), +G4VMultipleScattering::G4VMultipleScattering(const G4String& name, G4ProcessType) + : G4VContinuousDiscreteProcess("msc", fElectromagnetic), numberOfModels(0), firstParticle(nullptr), currParticle(nullptr), @@ -116,6 +111,9 @@ G4VMultipleScattering::G4VMultipleScattering(const G4String& name, physStepLimit = gPathLength = tPathLength = 0.0; fIonisation = nullptr; + geomMin = 0.05*CLHEP::nm; + minDisplacement2 = geomMin*geomMin; + pParticleChange = &fParticleChange; safetyHelper = nullptr; fPositionChanged = false; @@ -254,6 +252,13 @@ G4VMultipleScattering::PreparePhysicsTable(const G4ParticleDefinition& part) // initialisation of models numberOfModels = modelManager->NumberOfModels(); + /* + G4cout << "### G4VMultipleScattering::PreparePhysicsTable() for " + << GetProcessName() + << " and particle " << part.GetParticleName() + << " Nmod= " << numberOfModels << " " << this + << G4endl; + */ for(G4int i=0; i(modelManager->GetModel(i)); msc->SetIonisation(0, firstParticle); @@ -313,8 +318,8 @@ void G4VMultipleScattering::BuildPhysicsTable(const G4ParticleDefinition& part) // initialisation of models G4bool printing = true; numberOfModels = modelManager->NumberOfModels(); - /* - G4cout << "### G4VMultipleScattering::SlaveBuildPhysicsTable() for " + /* + G4cout << "### G4VMultipleScattering::BuildPhysicsTable() for " << GetProcessName() << " and particle " << num << " Nmod= " << numberOfModels << " " << this @@ -465,8 +470,8 @@ G4double G4VMultipleScattering::PostStepGetPhysicalInteractionLength( const G4Track&, G4double, G4ForceCondition* condition) { - *condition = Forced; - //*condition = NotForced; + //*condition = Forced; + *condition = NotForced; return DBL_MAX; } @@ -495,7 +500,6 @@ G4VMultipleScattering::AlongStepDoIt(const G4Track& track, const G4Step& step) tPathLength = currentModel->ComputeTrueStepLength(geomLength); - // protection against wrong t->g->t conversion /* if(currParticle->GetPDGMass() > 0.9*GeV) G4cout << "G4VMsc::AlongStepDoIt: GeomLength= " @@ -505,11 +509,15 @@ G4VMultipleScattering::AlongStepDoIt(const G4Track& track, const G4Step& step) << " dr= " << range - tPathLength << " ekin= " << track.GetKineticEnergy() << G4endl; */ + // protection against wrong t->g->t conversion tPathLength = std::min(tPathLength, physStepLimit); // do not sample scattering at the last or at a small step if(tPathLength < range && tPathLength > geomMin) { + static const G4double minSafety = 1.20*CLHEP::nm; + static const G4double sFact = 0.99; + G4ThreeVector displacement = currentModel->SampleScattering( step.GetPostStepPoint()->GetMomentumDirection(),minSafety); @@ -519,21 +527,17 @@ G4VMultipleScattering::AlongStepDoIt(const G4Track& track, const G4Step& step) if(r2 > minDisplacement2) { fPositionChanged = true; - const G4double sFact = 0.99; + G4double dispR = std::sqrt(r2); G4double postSafety = - sFact*(step.GetPreStepPoint()->GetSafety() - geomLength); - //G4cout<<" R= "< 'is applicable', for all charged particles - // except short-lived particles. + G4bool IsApplicable(const G4ParticleDefinition& aParticleType) override; + // Returns true -> 'is applicable', for all charged particles + // except short-lived particles. - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - // Build table at a right time + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType) override; + // Build table at a right time - G4double GetMeanFreePath(const G4Track& aTrack, - G4double , - G4ForceCondition* ); - // Returns the discrete step limit and sets the 'StronglyForced' - // condition for the DoIt to be invoked at every step. + G4double GetMeanFreePath(const G4Track& aTrack, + G4double, G4ForceCondition* ); + // Returns the discrete step limit and sets the 'StronglyForced' + // condition for the DoIt to be invoked at every step. - G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double , - G4ForceCondition* ); - // Returns the discrete step limit and sets the 'StronglyForced' - // condition for the DoIt to be invoked at every step. + G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double , + G4ForceCondition* ) override; + // Returns the discrete step limit and sets the 'StronglyForced' + // condition for the DoIt to be invoked at every step. - G4VParticleChange* PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep); - // This is the method implementing the Cerenkov process. + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) override; + // This is the method implementing the Cerenkov process. - // no operation in AtRestDoIt and AlongStepDoIt - virtual G4double AlongStepGetPhysicalInteractionLength( - const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection* - ) { return -1.0; }; + // no operation in AtRestDoIt and AlongStepDoIt + virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection* + ) override { return -1.0; }; - virtual G4double AtRestGetPhysicalInteractionLength( - const G4Track& , - G4ForceCondition* - ) { return -1.0; }; + virtual G4double AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition* + ) override { return -1.0; }; - // no operation in AtRestDoIt and AlongStepDoIt - virtual G4VParticleChange* AtRestDoIt( - const G4Track& , - const G4Step& - ) {return 0;}; + // no operation in AtRestDoIt and AlongStepDoIt + virtual G4VParticleChange* AtRestDoIt(const G4Track& , const G4Step& ) + override {return nullptr;}; - virtual G4VParticleChange* AlongStepDoIt( - const G4Track& , - const G4Step& - ) {return 0;}; + virtual G4VParticleChange* AlongStepDoIt(const G4Track& , const G4Step&) + override {return nullptr;}; - void SetTrackSecondariesFirst(const G4bool state); - // If set, the primary particle tracking is interrupted and any - // produced Cerenkov photons are tracked next. When all have - // been tracked, the tracking of the primary resumes. + void SetTrackSecondariesFirst(const G4bool state); + // If set, the primary particle tracking is interrupted and any + // produced Cerenkov photons are tracked next. When all have + // been tracked, the tracking of the primary resumes. - G4bool GetTrackSecondariesFirst() const; - // Returns the boolean flag for tracking secondaries first. + G4bool GetTrackSecondariesFirst() const; + // Returns the boolean flag for tracking secondaries first. - void SetMaxBetaChangePerStep(const G4double d); - // Set the maximum allowed change in beta = v/c in % (perCent) - // per step. + void SetMaxBetaChangePerStep(const G4double d); + // Set the maximum allowed change in beta = v/c in % (perCent) + // per step. - G4double GetMaxBetaChangePerStep() const; - // Returns the maximum allowed change in beta = v/c in % (perCent) + G4double GetMaxBetaChangePerStep() const; + // Returns the maximum allowed change in beta = v/c in % (perCent) - void SetMaxNumPhotonsPerStep(const G4int NumPhotons); - // Set the maximum number of Cerenkov photons allowed to be - // generated during a tracking step. This is an average ONLY; - // the actual number will vary around this average. If invoked, - // the maximum photon stack will roughly be of the size set. - // If not called, the step is not limited by the number of - // photons generated. + void SetMaxNumPhotonsPerStep(const G4int NumPhotons); + // Set the maximum number of Cerenkov photons allowed to be + // generated during a tracking step. This is an average ONLY; + // the actual number will vary around this average. If invoked, + // the maximum photon stack will roughly be of the size set. + // If not called, the step is not limited by the number of + // photons generated. - G4int GetMaxNumPhotonsPerStep() const; - // Returns the maximum number of Cerenkov photons allowed to be - // generated during a tracking step. + G4int GetMaxNumPhotonsPerStep() const; + // Returns the maximum number of Cerenkov photons allowed to be + // generated during a tracking step. - G4PhysicsTable* GetPhysicsTable() const; - // Returns the address of the physics table. + G4PhysicsTable* GetPhysicsTable() const; + // Returns the address of the physics table. - void DumpPhysicsTable() const; - // Prints the physics table. + void DumpPhysicsTable() const; + // Prints the physics table. private: - void BuildThePhysicsTable(); + void BuildThePhysicsTable(); - ///////////////////// - // Helper Functions - ///////////////////// + ///////////////////// + // Helper Functions + ///////////////////// - G4double GetAverageNumberOfPhotons(const G4double charge, - const G4double beta, - const G4Material *aMaterial, - G4MaterialPropertyVector* Rindex) const; + G4double GetAverageNumberOfPhotons(const G4double charge, + const G4double beta, + const G4Material *aMaterial, + G4MaterialPropertyVector* Rindex) const; - /////////////////////// - // Class Data Members - /////////////////////// + /////////////////////// + // Class Data Members + /////////////////////// protected: - G4PhysicsTable* thePhysicsTable; - // A Physics Table can be either a cross-sections table or - // an energy table (or can be used for other specific - // purposes). + G4PhysicsTable* thePhysicsTable; + // A Physics Table can be either a cross-sections table or + // an energy table (or can be used for other specific + // purposes). private: - G4bool fTrackSecondariesFirst; - G4double fMaxBetaChange; - G4int fMaxPhotons; + G4bool fTrackSecondariesFirst; + G4double fMaxBetaChange; + G4int fMaxPhotons; }; -//////////////////// -// Inline methods -//////////////////// + //////////////////// + // Inline methods + //////////////////// inline G4bool G4Cerenkov::GetTrackSecondariesFirst() const { - return fTrackSecondariesFirst; + return fTrackSecondariesFirst; } inline G4double G4Cerenkov::GetMaxBetaChangePerStep() const { - return fMaxBetaChange; + return fMaxBetaChange; } inline G4int G4Cerenkov::GetMaxNumPhotonsPerStep() const { - return fMaxPhotons; + return fMaxPhotons; } inline void G4Cerenkov::DumpPhysicsTable() const { - G4int PhysicsTableSize = thePhysicsTable->entries(); - G4PhysicsOrderedFreeVector *v; + G4int PhysicsTableSize = thePhysicsTable->entries(); + G4PhysicsOrderedFreeVector *v; - for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) - { - v = (G4PhysicsOrderedFreeVector*)(*thePhysicsTable)[i]; - v->DumpValues(); - } + for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) { + v = (G4PhysicsOrderedFreeVector*)(*thePhysicsTable)[i]; + v->DumpValues(); + } } inline diff --git a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh index d277bcaa4d..bcb220921a 100644 --- a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh +++ b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ForwardXrayTR.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4ForwardXrayTR.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // G4ForwardXrayTR // @@ -69,11 +69,11 @@ public: // Constructors - G4ForwardXrayTR( const G4String& matName1, // G4Material* pMat1, + explicit G4ForwardXrayTR( const G4String& matName1, // G4Material* pMat1, const G4String& matName2, // G4Material* pMat2, const G4String& processName="XrayTR" ); - G4ForwardXrayTR( const G4String& processName="XrayTR" ); + explicit G4ForwardXrayTR( const G4String& processName="XrayTR" ); // Destructor // virtual @@ -84,10 +84,10 @@ public: void BuildXrayTRtables(); G4double GetMeanFreePath(const G4Track&, G4double, - G4ForceCondition* condition); + G4ForceCondition* condition) override; - G4VParticleChange* PostStepDoIt( const G4Track& aTrack, - const G4Step& aStep ); + G4VParticleChange* PostStepDoIt( const G4Track& aTrack, + const G4Step& aStep ) override; G4double GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const; @@ -98,7 +98,7 @@ public: // G4double SpectralAngleTRdensity( G4double energy, - G4double varAngle ) const; + G4double varAngle ) const override; G4double AngleDensity( G4double energy, G4double varAngle ) const; @@ -176,9 +176,9 @@ G4double fSigma2; // plasma energy Sq of matter2 private: // Operators - G4ForwardXrayTR(const G4ForwardXrayTR& right) ; + G4ForwardXrayTR(const G4ForwardXrayTR& right) = delete; - G4ForwardXrayTR& operator=(const G4ForwardXrayTR& right); + G4ForwardXrayTR& operator=(const G4ForwardXrayTR& right) = delete; // G4int operator==(const G4ForwardXrayTR& right)const; // G4int operator!=(const G4ForwardXrayTR& right)const; diff --git a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh index 3ad826bf15..6b4aeb323d 100644 --- a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GammaXTRadiator.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4GammaXTRadiator.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // /////////////////////////////////////////////////////////////////////////// @@ -58,7 +58,7 @@ class G4GammaXTRadiator : public G4VXTRenergyLoss { public: - G4GammaXTRadiator (G4LogicalVolume *anEnvelope, + explicit G4GammaXTRadiator (G4LogicalVolume *anEnvelope, G4double,G4double, G4Material*,G4Material*, G4double,G4double,G4int, @@ -67,7 +67,8 @@ public: // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor( G4double energy, G4double gamma, + G4double varAngle) override; private: diff --git a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh index 45185759ce..96bad5e0eb 100644 --- a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4RegularXTRadiator.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4RegularXTRadiator.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // /////////////////////////////////////////////////////////////////////////// @@ -51,16 +51,18 @@ class G4RegularXTRadiator : public G4VXTRenergyLoss { public: - G4RegularXTRadiator (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + explicit G4RegularXTRadiator (G4LogicalVolume *anEnvelope, + G4Material*,G4Material*, G4double,G4double,G4int, const G4String & processName = "XTRegularRadiator"); ~G4RegularXTRadiator (); - G4double SpectralXTRdEdx(G4double energy); + G4double SpectralXTRdEdx(G4double energy) override; // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor( G4double energy, G4double gamma, + G4double varAngle) override; }; #endif diff --git a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh index 890cffc884..3ba909e313 100644 --- a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh +++ b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Scintillation.hh 85355 2014-10-28 09:58:59Z gcosmo $ +// $Id: G4Scintillation.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // //////////////////////////////////////////////////////////////////////// @@ -94,19 +94,19 @@ public: // Constructors and Destructor //////////////////////////////// - G4Scintillation(const G4String& processName = "Scintillation", + explicit G4Scintillation(const G4String& processName = "Scintillation", G4ProcessType type = fElectromagnetic); ~G4Scintillation(); private: - G4Scintillation(const G4Scintillation &right); + G4Scintillation(const G4Scintillation &right) = delete; ////////////// // Operators ////////////// - G4Scintillation& operator=(const G4Scintillation &right); + G4Scintillation& operator=(const G4Scintillation &right) = delete; public: @@ -118,30 +118,32 @@ public: // deposition of particles in flight) and AtRestDoIt (for energy // given to the medium by particles at rest) - G4bool IsApplicable(const G4ParticleDefinition& aParticleType); + G4bool IsApplicable( + const G4ParticleDefinition& aParticleType) override; // Returns true -> 'is applicable', for any particle type except // for an 'opticalphoton' and for short-lived particles - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + void BuildPhysicsTable( + const G4ParticleDefinition& aParticleType) override; // Build table at the right time - G4double GetMeanFreePath(const G4Track& aTrack, - G4double , - G4ForceCondition* ); + G4double GetMeanFreePath(const G4Track& aTrack, + G4double , + G4ForceCondition* ) override; // Returns infinity; i. e. the process does not limit the step, // but sets the 'StronglyForced' condition for the DoIt to be // invoked at every step. G4double GetMeanLifeTime(const G4Track& aTrack, - G4ForceCondition* ); + G4ForceCondition* ) override; // Returns infinity; i. e. the process does not limit the time, // but sets the 'StronglyForced' condition for the DoIt to be // invoked at every step. - G4VParticleChange* PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep); + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) override; G4VParticleChange* AtRestDoIt (const G4Track& aTrack, - const G4Step& aStep); + const G4Step& aStep) override; G4double GetScintillationYieldByParticleType(const G4Track &aTrack, const G4Step &aStep); @@ -156,13 +158,13 @@ public: // produced scintillation photons are tracked next. When all // have been tracked, the tracking of the primary resumes. + G4bool GetTrackSecondariesFirst() const; + // Returns the boolean flag for tracking secondaries first. + void SetFiniteRiseTime(const G4bool state); // If set, the G4Scintillation process expects the user to have // set the constant material property FAST/SLOWSCINTILLATIONRISETIME. - G4bool GetTrackSecondariesFirst() const; - // Returns the boolean flag for tracking secondaries first. - G4bool GetFiniteRiseTime() const; // Returns the boolean flag for a finite scintillation rise time. @@ -189,24 +191,31 @@ public: G4PhysicsTable* GetSlowIntegralTable() const; // Returns the address of the slow scintillation integral table. - void AddSaturation(G4EmSaturation* ); + void AddSaturation(G4EmSaturation* sat); // Adds Birks Saturation to the process. void RemoveSaturation(); // Removes the Birks Saturation from the process. - G4EmSaturation* GetSaturation() const { return fEmSaturation; } + G4EmSaturation* GetSaturation() const; // Returns the Birks Saturation. void SetScintillationByParticleType(const G4bool ); // Called by the user to set the scintillation yield as a function // of energy deposited by particle type - G4bool GetScintillationByParticleType() const - { return fScintillationByParticleType; } + G4bool GetScintillationByParticleType() const; // Return the boolean that determines the method of scintillation // production + void SetScintillationTrackInfo(const G4bool trackType); + // Call by the user to set the G4ScintillationTrackInformation + // to scintillation photon track + + G4bool GetScintillationTrackInfo() const; + // Return the boolean for whether or not the + // G4ScintillationTrackInformation is set to the scint. photon track + void DumpPhysicsTable() const; // Prints the fast and slow scintillation integral tables. @@ -234,6 +243,8 @@ private: G4bool fScintillationByParticleType; + G4bool fScintillationTrackInfo; + #ifdef G4DEBUG_SCINTILLATION G4double ScintTrackEDep, ScintTrackYield; #endif @@ -261,24 +272,48 @@ G4bool G4Scintillation::IsApplicable(const G4ParticleDefinition& aParticleType) return true; } +inline +void G4Scintillation::SetTrackSecondariesFirst(const G4bool state) +{ + fTrackSecondariesFirst = state; +} + inline G4bool G4Scintillation::GetTrackSecondariesFirst() const { return fTrackSecondariesFirst; } +inline +void G4Scintillation::SetFiniteRiseTime(const G4bool state) +{ + fFiniteRiseTime = state; +} + inline G4bool G4Scintillation::GetFiniteRiseTime() const { return fFiniteRiseTime; } +inline +void G4Scintillation::SetScintillationYieldFactor(const G4double yieldfactor) +{ + fYieldFactor = yieldfactor; +} + inline G4double G4Scintillation::GetScintillationYieldFactor() const { return fYieldFactor; } +inline +void G4Scintillation::SetScintillationExcitationRatio(const G4double ratio) +{ + fExcitationRatio = ratio; +} + inline G4double G4Scintillation::GetScintillationExcitationRatio() const { @@ -297,6 +332,42 @@ G4PhysicsTable* G4Scintillation::GetFastIntegralTable() const return fFastIntegralTable; } +inline +void G4Scintillation::AddSaturation(G4EmSaturation* sat) +{ + fEmSaturation = sat; +} + +inline +void G4Scintillation::RemoveSaturation() +{ + fEmSaturation = nullptr; +} + +inline +G4EmSaturation* G4Scintillation::GetSaturation() const +{ + return fEmSaturation; +} + +inline +G4bool G4Scintillation::GetScintillationByParticleType() const +{ + return fScintillationByParticleType; +} + +inline +void G4Scintillation::SetScintillationTrackInfo(const G4bool trackType) +{ + fScintillationTrackInfo = trackType; +} + +inline +G4bool G4Scintillation::GetScintillationTrackInfo() const +{ + return fScintillationTrackInfo; +} + inline void G4Scintillation::DumpPhysicsTable() const { diff --git a/source/processes/electromagnetic/xrays/include/G4ScintillationTrackInformation.hh b/source/processes/electromagnetic/xrays/include/G4ScintillationTrackInformation.hh new file mode 100644 index 0000000000..116e841839 --- /dev/null +++ b/source/processes/electromagnetic/xrays/include/G4ScintillationTrackInformation.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: G4ScintillationTrackInformation.hh ????? 2016-01-21 ??:??:??? ?????? $ +// +// Author : Valentin Libioulle valentin.libioulle@usherbrooke.ca (3IT - GRAMS) +// +//--------------------------------------------------------------- +// +// G4ScintillationTrackInformation +// +// Class Description: +// +// Concrete class of G4VUserTrackInformation used to store information +// linked to the track generated in a scintillation process. +// + +#ifndef G4SCINTILLATIONTRACKINFORMATION_H +#define G4SCINTILLATIONTRACKINFORMATION_H + +#include "G4VUserTrackInformation.hh" + +// Represents the scintillation type used to create the track (opticalphoton). +enum G4ScintillationType {Fast, Slow}; + +class G4ScintillationTrackInformation : public G4VUserTrackInformation +{ + public: + + explicit G4ScintillationTrackInformation(const G4ScintillationType& aType = Slow); + virtual ~G4ScintillationTrackInformation(); + + // Required by G4VUserTrackInformation + void *operator new(size_t); + void operator delete(void *aScintillationTI); + + // Copy Constructor/instruction + G4ScintillationTrackInformation(const G4ScintillationTrackInformation&); + G4ScintillationTrackInformation& operator=(const G4ScintillationTrackInformation&); + + virtual void Print() const override; + + const G4ScintillationType& GetScintillationType() const {return scintillationType;} + + // Static class allowing to check if a G4VUserTrackInformation is a + // G4ScintillationTrackInformation and cast it without changing the + // pointer of the pointed data. + static G4bool IsScintillationTrackInformation(const G4VUserTrackInformation* const); + static G4ScintillationTrackInformation* Cast(const G4VUserTrackInformation* const); + + private: + + G4ScintillationType scintillationType; + // String given to G4VUserTrackInformation to identify this concrete class + static const G4String BaseType; +}; + +/// +// Inline methods +/// + +#include "G4Allocator.hh" + +// Forward declaration for the Allocator +class G4ScintillationTrackInformation; + +#if defined G4EM_ALLOC_EXPORT +extern G4DLLEXPORT G4ThreadLocal G4Allocator *aScintillationTIAllocator; +#else +extern G4DLLIMPORT G4ThreadLocal G4Allocator *aScintillationTIAllocator; +#endif + +inline void* G4ScintillationTrackInformation::operator new(size_t) +{ + if (!aScintillationTIAllocator) aScintillationTIAllocator = new G4Allocator; + return (void *) aScintillationTIAllocator->MallocSingle(); +} + +inline void G4ScintillationTrackInformation::operator delete(void *aScintillationTI) +{ + aScintillationTIAllocator->FreeSingle((G4ScintillationTrackInformation *) aScintillationTI); +} + +#endif // G4SCINTILLATIONTRACKINFORMATION_H diff --git a/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh index d94dffcaa7..cd0061a17c 100644 --- a/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4StrawTubeXTRadiator.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4StrawTubeXTRadiator.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // /////////////////////////////////////////////////////////////////////////// @@ -54,9 +54,9 @@ class G4StrawTubeXTRadiator : public G4VXTRenergyLoss { public: - G4StrawTubeXTRadiator (G4LogicalVolume* anEnvelope, G4Material*, G4Material*, - G4double,G4double,G4Material*,G4bool unishut = false, - const G4String & processName = "StrawTubeXTRadiator"); + explicit G4StrawTubeXTRadiator (G4LogicalVolume* anEnvelope, G4Material*, + G4Material*, G4double,G4double,G4Material*,G4bool unishut = false, + const G4String & processName = "StrawTubeXTRadiator"); virtual ~G4StrawTubeXTRadiator (); // Auxiliary functions for plate/gas material parameters @@ -67,7 +67,8 @@ public: G4complex GetMediumComplexFZ(G4double,G4double,G4double) ; // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor(G4double energy, G4double gamma, + G4double varAngle) override; protected: diff --git a/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiation.hh b/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiation.hh index aff209bf21..44f1bc3c30 100644 --- a/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SynchrotronRadiation.hh 83424 2014-08-21 15:39:44Z gcosmo $ +// $Id: G4SynchrotronRadiation.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // ------------------------------------------------------------ // GEANT 4 class header file @@ -65,17 +65,17 @@ class G4SynchrotronRadiation : public G4VDiscreteProcess { public: - G4SynchrotronRadiation(const G4String& pName = "SynRad", + explicit G4SynchrotronRadiation(const G4String& pName = "SynRad", G4ProcessType type = fElectromagnetic); virtual ~G4SynchrotronRadiation(); virtual G4double GetMeanFreePath( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition ); + G4ForceCondition* condition ) override; virtual G4VParticleChange *PostStepDoIt( const G4Track& track, - const G4Step& Step ); + const G4Step& Step ) override; G4double GetPhotonEnergy( const G4Track& trackData, const G4Step& stepData ); @@ -86,16 +86,17 @@ public: G4double Chebyshev(G4double a,G4double b,const G4double c[], G4int n, G4double x); - virtual G4bool IsApplicable(const G4ParticleDefinition&); - virtual void BuildPhysicsTable(const G4ParticleDefinition& ); + virtual G4bool IsApplicable(const G4ParticleDefinition&) override; + virtual void BuildPhysicsTable(const G4ParticleDefinition& ) override; virtual void PrintInfoDefinition(); void SetAngularGenerator(G4VEmAngularDistribution* p); private: - G4SynchrotronRadiation & operator=(const G4SynchrotronRadiation &right); - G4SynchrotronRadiation(const G4SynchrotronRadiation&); + G4SynchrotronRadiation & + operator=(const G4SynchrotronRadiation &right) = delete; + G4SynchrotronRadiation(const G4SynchrotronRadiation&) = delete; G4VEmAngularDistribution* genAngle; @@ -114,7 +115,7 @@ G4SynchrotronRadiation::Chebyshev(G4double a, G4double b, const G4double c[], { G4double y; G4double y2=2.0*(y=(2.0*x-a-b)/(b-a)); // Change of variable. - G4double d=0,dd=0; + G4double d=0.,dd=0.; for (G4int j=n-1;j>=1;--j) // Clenshaw's recurrence. { G4double sv=d; d=y2*d-dd+c[j]; diff --git a/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiationInMat.hh b/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiationInMat.hh index 75ce93056e..4919c6b60f 100644 --- a/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiationInMat.hh +++ b/source/processes/electromagnetic/xrays/include/G4SynchrotronRadiationInMat.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SynchrotronRadiationInMat.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4SynchrotronRadiationInMat.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // ------------------------------------------------------------ // GEANT 4 class header file @@ -69,7 +69,7 @@ class G4SynchrotronRadiationInMat : public G4VDiscreteProcess { public: - G4SynchrotronRadiationInMat(const G4String& processName = + explicit G4SynchrotronRadiationInMat(const G4String& processName = "SynchrotronRadiation", G4ProcessType type = fElectromagnetic); @@ -77,17 +77,18 @@ public: private: - G4SynchrotronRadiationInMat & operator=(const G4SynchrotronRadiationInMat &right); - G4SynchrotronRadiationInMat(const G4SynchrotronRadiationInMat&); + G4SynchrotronRadiationInMat & + operator=(const G4SynchrotronRadiationInMat &right) = delete; + G4SynchrotronRadiationInMat(const G4SynchrotronRadiationInMat&) = delete; public: ///////////////// Post Step functions ////////////////////////// G4double GetMeanFreePath( const G4Track& track, G4double previousStepSize, - G4ForceCondition* condition ); + G4ForceCondition* condition ) override; G4VParticleChange *PostStepDoIt( const G4Track& track, - const G4Step& Step ); + const G4Step& Step ) override; G4double GetPhotonEnergy( const G4Track& trackData, const G4Step& stepData ); @@ -104,7 +105,7 @@ public: ///////////////// Post Step functions ////////////////////////// G4double GetAngleK( G4double ); G4double GetAngleNumberAtGammaKsi( G4double ); - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; static G4double GetLambdaConst(){ return fLambdaConst; }; static G4double GetEnergyConst(){ return fEnergyConst; }; @@ -127,10 +128,10 @@ private: const G4double LowestKineticEnergy; // low energy limit of the cross-section formula - const G4double - HighestKineticEnergy; // high energy limit of the cross-section formula + //const G4double + //HighestKineticEnergy; // high energy limit of the cross-section formula - G4int TotBin; // number of bins in the tables + //G4int TotBin; // number of bins in the tables G4double CutInRange; @@ -138,10 +139,10 @@ private: const G4ParticleDefinition* theElectron; const G4ParticleDefinition* thePositron; - const G4double* GammaCutInKineticEnergy; - const G4double* ElectronCutInKineticEnergy; - const G4double* PositronCutInKineticEnergy; - const G4double* ParticleCutInKineticEnergy; + //const G4double* GammaCutInKineticEnergy; + //const G4double* ElectronCutInKineticEnergy; + //const G4double* PositronCutInKineticEnergy; + //const G4double* ParticleCutInKineticEnergy; G4double GammaCutInKineticEnergyNow; diff --git a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh index 62ff1bc281..c4442d5564 100644 --- a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TransitionRadiation.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4TransitionRadiation.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // G4TransitionRadiation -- header file // @@ -58,19 +58,20 @@ class G4TransitionRadiation : public G4VDiscreteProcess { public: - G4TransitionRadiation( const G4String& processName = "TR", + explicit G4TransitionRadiation( const G4String& processName = "TR", G4ProcessType type = fElectromagnetic) ; virtual ~G4TransitionRadiation() ; // Methods - G4bool IsApplicable(const G4ParticleDefinition& aParticleType); + G4bool IsApplicable(const G4ParticleDefinition& aParticleType) override; - G4double GetMeanFreePath(const G4Track&, G4double, - G4ForceCondition* condition); + virtual G4double GetMeanFreePath(const G4Track&, G4double, + G4ForceCondition* condition) override; - G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* PostStepDoIt(const G4Track&, + const G4Step&) override; virtual G4double SpectralAngleTRdensity( G4double energy, @@ -120,8 +121,9 @@ protected : private: // Operators - G4TransitionRadiation(const G4TransitionRadiation& right) ; - G4TransitionRadiation& operator=(const G4TransitionRadiation& right) ; + G4TransitionRadiation(const G4TransitionRadiation& right) = delete; + G4TransitionRadiation& + operator=(const G4TransitionRadiation& right) = delete; }; diff --git a/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh index 7c78d9ac58..e646673424 100644 --- a/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4TransparentRegXTRadiator.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4TransparentRegXTRadiator.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // /////////////////////////////////////////////////////////////////////////// @@ -52,18 +52,18 @@ class G4TransparentRegXTRadiator : public G4VXTRenergyLoss { public: - G4TransparentRegXTRadiator (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, - G4double,G4double,G4int, + explicit G4TransparentRegXTRadiator (G4LogicalVolume *anEnvelope, + G4Material*,G4Material*, G4double,G4double,G4int, const G4String & processName = "TransparentRegXTRadiator"); ~G4TransparentRegXTRadiator (); // reimplementation of base class function in analytical way - G4double SpectralXTRdEdx(G4double energy); + G4double SpectralXTRdEdx(G4double energy) override; // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle) override; }; #endif diff --git a/source/processes/electromagnetic/xrays/include/G4VTRModel.hh b/source/processes/electromagnetic/xrays/include/G4VTRModel.hh index ccbeb85d50..9fcd5a204b 100644 --- a/source/processes/electromagnetic/xrays/include/G4VTRModel.hh +++ b/source/processes/electromagnetic/xrays/include/G4VTRModel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VTRModel.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4VTRModel.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // G4VTRModel -- header file // @@ -53,7 +53,7 @@ public: // Constructors - G4VTRModel( const G4String& modelName) {fName = modelName;}; + explicit G4VTRModel( const G4String& modelName) {fName = modelName;}; // Destructor @@ -74,8 +74,8 @@ public: // hide assignment operator - G4VTRModel & operator=(const G4VTRModel &right); - G4VTRModel(const G4VTRModel&); + G4VTRModel & operator=(const G4VTRModel &right) = delete; + G4VTRModel(const G4VTRModel&) = delete; protected: diff --git a/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh index 0b1dfaa780..97d0cb1717 100644 --- a/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VTransitionRadiation.hh 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4VTransitionRadiation.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // G4VTransitionRadiation -- header file // @@ -54,20 +54,21 @@ class G4VTransitionRadiation : public G4VDiscreteProcess public: // Constructors - G4VTransitionRadiation( const G4String& processName = "TR", + explicit G4VTransitionRadiation( const G4String& processName = "TR", G4ProcessType type = fElectromagnetic); // Destructor virtual ~G4VTransitionRadiation() ; - virtual G4bool IsApplicable(const G4ParticleDefinition& aParticleType); + virtual G4bool + IsApplicable(const G4ParticleDefinition& aParticleType) override; virtual G4double GetMeanFreePath(const G4Track& track, G4double, - G4ForceCondition* condition); + G4ForceCondition* condition) override; virtual G4VParticleChange* PostStepDoIt(const G4Track& track, - const G4Step& step); + const G4Step& step) override; virtual void PrintInfoDefinition(); // Print out of the class parameters @@ -81,8 +82,9 @@ public: void Clear(); // hide assignment operator - G4VTransitionRadiation & operator=(const G4VTransitionRadiation &right); - G4VTransitionRadiation(const G4VTransitionRadiation&); + G4VTransitionRadiation & + operator=(const G4VTransitionRadiation &right) = delete; + G4VTransitionRadiation(const G4VTransitionRadiation&) = delete; std::vector materials; std::vector steps; diff --git a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh index d01bd39cd1..419c79ea9f 100644 --- a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh +++ b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VXTRenergyLoss.hh 83661 2014-09-08 09:58:34Z gcosmo $ +// $Id: G4VXTRenergyLoss.hh 97385 2016-06-02 09:59:53Z gcosmo $ // // /////////////////////////////////////////////////////////////////////////// @@ -75,8 +75,8 @@ class G4VXTRenergyLoss : public G4VDiscreteProcess // G4VContinuousProcess { public: - G4VXTRenergyLoss (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, - G4double,G4double,G4int, + explicit G4VXTRenergyLoss (G4LogicalVolume *anEnvelope,G4Material*, + G4Material*, G4double,G4double,G4int, const G4String & processName = "XTRenergyLoss", G4ProcessType type = fElectromagnetic); virtual ~G4VXTRenergyLoss (); @@ -86,16 +86,16 @@ public: virtual G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle ); - G4bool IsApplicable(const G4ParticleDefinition&); + virtual G4bool IsApplicable(const G4ParticleDefinition&) override; - G4VParticleChange* PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep); + virtual G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) override; - G4double GetMeanFreePath(const G4Track& aTrack, + virtual G4double GetMeanFreePath(const G4Track& aTrack, G4double previousStepSize, - G4ForceCondition* condition); + G4ForceCondition* condition) override; - void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void BuildPhysicsTable(const G4ParticleDefinition&) override; void BuildEnergyTable() ; void BuildAngleForEnergyBank() ; @@ -237,8 +237,8 @@ protected: private: // copy constructor and hide assignment operator - G4VXTRenergyLoss(G4VXTRenergyLoss &); - G4VXTRenergyLoss & operator=(const G4VXTRenergyLoss &right); + G4VXTRenergyLoss(G4VXTRenergyLoss &) = delete; + G4VXTRenergyLoss & operator=(const G4VXTRenergyLoss &right) = delete; }; diff --git a/source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh b/source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh index afcb1f745a..50139d2f9d 100644 --- a/source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh +++ b/source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh @@ -57,7 +57,7 @@ class G4XTRGammaRadModel : public G4VXTRenergyLoss { public: - G4XTRGammaRadModel (G4LogicalVolume *anEnvelope, + explicit G4XTRGammaRadModel (G4LogicalVolume *anEnvelope, G4double,G4double, G4Material*,G4Material*, G4double,G4double,G4int, @@ -66,7 +66,8 @@ public: // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor(G4double energy, G4double gamma, + G4double varAngle) override; private: diff --git a/source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh b/source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh index e0e433fdda..1775b7cc4f 100644 --- a/source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh +++ b/source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh @@ -50,16 +50,17 @@ class G4XTRRegularRadModel : public G4VXTRenergyLoss { public: - G4XTRRegularRadModel (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, - G4double,G4double,G4int, + explicit G4XTRRegularRadModel (G4LogicalVolume *anEnvelope,G4Material*, + G4Material*, G4double,G4double,G4int, const G4String & processName = "XTRegularModel"); virtual ~G4XTRRegularRadModel (); - G4double SpectralXTRdEdx(G4double energy); + G4double SpectralXTRdEdx(G4double energy) override; // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor(G4double energy, G4double gamma, + G4double varAngle) override; }; #endif diff --git a/source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh b/source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh index cb21ff7adc..d3c5937ef0 100644 --- a/source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh +++ b/source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh @@ -49,18 +49,19 @@ class G4XTRTransparentRegRadModel : public G4VXTRenergyLoss { public: - G4XTRTransparentRegRadModel (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, - G4double,G4double,G4int, + explicit G4XTRTransparentRegRadModel (G4LogicalVolume *anEnvelope,G4Material*, + G4Material*, G4double,G4double,G4int, const G4String & processName = "XTRTransparentRegRadModel"); ~G4XTRTransparentRegRadModel (); // reimplementation of base class function in analytical way - G4double SpectralXTRdEdx(G4double energy); + G4double SpectralXTRdEdx(G4double energy) override; // Pure virtual function from base class - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + G4double GetStackFactor(G4double energy, G4double gamma, + G4double varAngle) override; }; #endif diff --git a/source/processes/electromagnetic/xrays/sources.cmake b/source/processes/electromagnetic/xrays/sources.cmake index 458114747c..23bee05d97 100644 --- a/source/processes/electromagnetic/xrays/sources.cmake +++ b/source/processes/electromagnetic/xrays/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 74582 2013-10-15 12:06:25Z gcosmo $ +# $Id: sources.cmake 95093 2016-01-25 08:48:23Z gcosmo $ # #------------------------------------------------------------------------------ @@ -51,6 +51,7 @@ GEANT4_DEFINE_MODULE(NAME G4xrays G4GammaXTRadiator.hh G4RegularXTRadiator.hh G4Scintillation.hh + G4ScintillationTrackInformation.hh G4StrawTubeXTRadiator.hh G4SynchrotronRadiation.hh G4SynchrotronRadiationInMat.hh @@ -68,6 +69,7 @@ GEANT4_DEFINE_MODULE(NAME G4xrays G4GammaXTRadiator.cc G4RegularXTRadiator.cc G4Scintillation.cc + G4ScintillationTrackInformation.cc G4StrawTubeXTRadiator.cc G4SynchrotronRadiation.cc G4SynchrotronRadiationInMat.cc diff --git a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc index b51ffcfa9d..414114bb0d 100644 --- a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc +++ b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc @@ -24,16 +24,16 @@ // ******************************************************************** // // -// $Id: G4Cerenkov.cc 92046 2015-08-14 07:22:07Z gcosmo $ +// $Id: G4Cerenkov.cc 97385 2016-06-02 09:59:53Z gcosmo $ // //////////////////////////////////////////////////////////////////////// // Cerenkov Radiation Class Implementation //////////////////////////////////////////////////////////////////////// // -// File: G4Cerenkov.cc +// File: G4Cerenkov.cc // Description: Discrete Process -- Generation of Cerenkov Photons // Version: 2.1 -// Created: 1996-02-21 +// Created: 1996-02-21 // Author: Juliet Armstrong // Updated: 2007-09-30 by Peter Gumplinger // > change inheritance to G4VDiscreteProcess @@ -43,10 +43,10 @@ // > change variable name MeanNumPhotons -> MeanNumberOfPhotons // 2005-07-28 by Peter Gumplinger // > add G4ProcessType to constructor -// 2001-09-17, migration of Materials to pure STL (mma) +// 2001-09-17, migration of Materials to pure STL (mma) // 2000-11-12 by Peter Gumplinger // > add check on CerenkovAngleIntegrals->IsFilledVectorExist() -// in method GetAverageNumberOfPhotons +// in method GetAverageNumberOfPhotons // > and a test for MeanNumberOfPhotons <= 0.0 in DoIt // 2000-09-18 by Peter Gumplinger // > change: aSecondaryPosition=x0+rand*aStep.GetDeltaPosition(); @@ -77,90 +77,87 @@ // Class Implementation ///////////////////////// - ////////////////////// - // static data members - ////////////////////// - //G4bool G4Cerenkov::fTrackSecondariesFirst = false; //G4double G4Cerenkov::fMaxBetaChange = 0.; //G4int G4Cerenkov::fMaxPhotons = 0; - ////////////// - // Operators - ////////////// + ////////////// + // Operators + ////////////// // G4Cerenkov::operator=(const G4Cerenkov &right) // { // } - ///////////////// - // Constructors - ///////////////// + ///////////////// + // Constructors + ///////////////// G4Cerenkov::G4Cerenkov(const G4String& processName, G4ProcessType type) - : G4VProcess(processName, type) , - fTrackSecondariesFirst(false), - fMaxBetaChange(0), - fMaxPhotons(0) + : G4VProcess(processName, type), + fTrackSecondariesFirst(false), + fMaxBetaChange(0.0), + fMaxPhotons(0) { - SetProcessSubType(fCerenkov); + SetProcessSubType(fCerenkov); - thePhysicsTable = NULL; + thePhysicsTable = nullptr; - if (verboseLevel>0) { - G4cout << GetProcessName() << " is created " << G4endl; - } + if (verboseLevel>0) { + G4cout << GetProcessName() << " is created " << G4endl; + } } // G4Cerenkov::G4Cerenkov(const G4Cerenkov &right) // { // } - //////////////// - // Destructors - //////////////// + //////////////// + // Destructors + //////////////// -G4Cerenkov::~G4Cerenkov() +G4Cerenkov::~G4Cerenkov() { - if (thePhysicsTable != NULL) { - thePhysicsTable->clearAndDestroy(); - delete thePhysicsTable; - } + if (thePhysicsTable != nullptr) { + thePhysicsTable->clearAndDestroy(); + delete thePhysicsTable; + } } - //////////// - // Methods - //////////// + //////////// + // Methods + //////////// G4bool G4Cerenkov::IsApplicable(const G4ParticleDefinition& aParticleType) { - G4bool result = false; - if (aParticleType.GetPDGCharge() != 0.0 && - aParticleType.GetPDGMass() != 0.0 && - aParticleType.GetParticleName() != "chargedgeantino" && - !aParticleType.IsShortLived() ) { result = true; } + G4bool result = false; - return result; + if (aParticleType.GetPDGCharge() != 0.0 && + aParticleType.GetPDGMass() != 0.0 && + aParticleType.GetParticleName() != "chargedgeantino" && + !aParticleType.IsShortLived() ) { result = true; } + + return result; } void G4Cerenkov::SetTrackSecondariesFirst(const G4bool state) { - fTrackSecondariesFirst = state; + fTrackSecondariesFirst = state; } void G4Cerenkov::SetMaxBetaChangePerStep(const G4double value) { - fMaxBetaChange = value*CLHEP::perCent; + fMaxBetaChange = value*CLHEP::perCent; } void G4Cerenkov::SetMaxNumPhotonsPerStep(const G4int NumPhotons) { - fMaxPhotons = NumPhotons; + fMaxPhotons = NumPhotons; } void G4Cerenkov::BuildPhysicsTable(const G4ParticleDefinition&) { - if (!thePhysicsTable) BuildThePhysicsTable(); + if (!thePhysicsTable) BuildThePhysicsTable(); } // PostStepDoIt @@ -172,218 +169,215 @@ G4Cerenkov::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) // This routine is called for each tracking Step of a charged particle // in a radiator. A Poisson-distributed number of photons is generated // according to the Cerenkov formula, distributed evenly along the track -// segment and uniformly azimuth w.r.t. the particle direction. The -// parameters are then transformed into the Master Reference System, and -// they are added to the particle change. +// segment and uniformly azimuth w.r.t. the particle direction. The +// parameters are then transformed into the Master Reference System, and +// they are added to the particle change. { - ////////////////////////////////////////////////////// - // Should we ensure that the material is dispersive? - ////////////////////////////////////////////////////// + //////////////////////////////////////////////////// + // Should we ensure that the material is dispersive? + //////////////////////////////////////////////////// - aParticleChange.Initialize(aTrack); + aParticleChange.Initialize(aTrack); - const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); - const G4Material* aMaterial = aTrack.GetMaterial(); + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + const G4Material* aMaterial = aTrack.GetMaterial(); - G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint(); - G4StepPoint* pPostStepPoint = aStep.GetPostStepPoint(); + G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint(); + G4StepPoint* pPostStepPoint = aStep.GetPostStepPoint(); - G4ThreeVector x0 = pPreStepPoint->GetPosition(); - G4ThreeVector p0 = aStep.GetDeltaPosition().unit(); - G4double t0 = pPreStepPoint->GetGlobalTime(); + G4ThreeVector x0 = pPreStepPoint->GetPosition(); + G4ThreeVector p0 = aStep.GetDeltaPosition().unit(); + G4double t0 = pPreStepPoint->GetGlobalTime(); - G4MaterialPropertiesTable* aMaterialPropertiesTable = + G4MaterialPropertiesTable* aMaterialPropertiesTable = aMaterial->GetMaterialPropertiesTable(); - if (!aMaterialPropertiesTable) return pParticleChange; + if (!aMaterialPropertiesTable) return pParticleChange; - G4MaterialPropertyVector* Rindex = + G4MaterialPropertyVector* Rindex = aMaterialPropertiesTable->GetProperty("RINDEX"); - if (!Rindex) return pParticleChange; + if (!Rindex) return pParticleChange; - // particle charge - G4double charge = aParticle->GetDefinition()->GetPDGCharge(); + // particle charge + G4double charge = aParticle->GetDefinition()->GetPDGCharge(); - // particle beta - G4double beta = (pPreStepPoint ->GetBeta() + - pPostStepPoint->GetBeta())*0.5; + // particle beta + G4double beta = (pPreStepPoint->GetBeta() + pPostStepPoint->GetBeta())*0.5; - G4double MeanNumberOfPhotons = - GetAverageNumberOfPhotons(charge,beta,aMaterial,Rindex); + G4double MeanNumberOfPhotons = + GetAverageNumberOfPhotons(charge,beta,aMaterial,Rindex); - if (MeanNumberOfPhotons <= 0.0) { + if (MeanNumberOfPhotons <= 0.0) { - // return unchanged particle and no secondaries + // return unchanged particle and no secondaries - aParticleChange.SetNumberOfSecondaries(0); + aParticleChange.SetNumberOfSecondaries(0); - return pParticleChange; + return pParticleChange; - } + } - G4double step_length; - step_length = aStep.GetStepLength(); + G4double step_length = aStep.GetStepLength(); - MeanNumberOfPhotons = MeanNumberOfPhotons * step_length; + MeanNumberOfPhotons = MeanNumberOfPhotons * step_length; - G4int NumPhotons = (G4int) G4Poisson(MeanNumberOfPhotons); + G4int NumPhotons = (G4int) G4Poisson(MeanNumberOfPhotons); - if (NumPhotons <= 0) { + if (NumPhotons <= 0) { - // return unchanged particle and no secondaries + // return unchanged particle and no secondaries - aParticleChange.SetNumberOfSecondaries(0); - - return pParticleChange; - } + aParticleChange.SetNumberOfSecondaries(0); - //////////////////////////////////////////////////////////////// + return pParticleChange; - aParticleChange.SetNumberOfSecondaries(NumPhotons); + } - if (fTrackSecondariesFirst) { - if (aTrack.GetTrackStatus() == fAlive ) - aParticleChange.ProposeTrackStatus(fSuspend); - } - - //////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////// - G4double Pmin = Rindex->GetMinLowEdgeEnergy(); - G4double Pmax = Rindex->GetMaxLowEdgeEnergy(); - G4double dp = Pmax - Pmin; + aParticleChange.SetNumberOfSecondaries(NumPhotons); - G4double nMax = Rindex->GetMaxValue(); + if (fTrackSecondariesFirst) { + if (aTrack.GetTrackStatus() == fAlive ) + aParticleChange.ProposeTrackStatus(fSuspend); + } - G4double BetaInverse = 1./beta; + //////////////////////////////////////////////////////////////// - G4double maxCos = BetaInverse / nMax; - G4double maxSin2 = (1.0 - maxCos) * (1.0 + maxCos); + G4double Pmin = Rindex->GetMinLowEdgeEnergy(); + G4double Pmax = Rindex->GetMaxLowEdgeEnergy(); + G4double dp = Pmax - Pmin; - G4double beta1 = pPreStepPoint ->GetBeta(); - G4double beta2 = pPostStepPoint->GetBeta(); + G4double nMax = Rindex->GetMaxValue(); - G4double MeanNumberOfPhotons1 = + G4double BetaInverse = 1./beta; + + G4double maxCos = BetaInverse / nMax; + G4double maxSin2 = (1.0 - maxCos) * (1.0 + maxCos); + + G4double beta1 = pPreStepPoint ->GetBeta(); + G4double beta2 = pPostStepPoint->GetBeta(); + + G4double MeanNumberOfPhotons1 = GetAverageNumberOfPhotons(charge,beta1,aMaterial,Rindex); - G4double MeanNumberOfPhotons2 = + G4double MeanNumberOfPhotons2 = GetAverageNumberOfPhotons(charge,beta2,aMaterial,Rindex); - - for (G4int i = 0; i < NumPhotons; i++) { - // Determine photon energy + for (G4int i = 0; i < NumPhotons; i++) { - G4double rand; - G4double sampledEnergy, sampledRI; - G4double cosTheta, sin2Theta; - - // sample an energy + // Determine photon energy - do { - rand = G4UniformRand(); - sampledEnergy = Pmin + rand * dp; - sampledRI = Rindex->Value(sampledEnergy); - cosTheta = BetaInverse / sampledRI; + G4double rand; + G4double sampledEnergy, sampledRI; + G4double cosTheta, sin2Theta; - sin2Theta = (1.0 - cosTheta)*(1.0 + cosTheta); - rand = G4UniformRand(); + // sample an energy - // Loop checking, 07-Aug-2015, Vladimir Ivanchenko - } while (rand*maxSin2 > sin2Theta); + do { + rand = G4UniformRand(); + sampledEnergy = Pmin + rand * dp; + sampledRI = Rindex->Value(sampledEnergy); + cosTheta = BetaInverse / sampledRI; - // Generate random position of photon on cone surface - // defined by Theta + sin2Theta = (1.0 - cosTheta)*(1.0 + cosTheta); + rand = G4UniformRand(); - rand = G4UniformRand(); + // Loop checking, 07-Aug-2015, Vladimir Ivanchenko + } while (rand*maxSin2 > sin2Theta); - G4double phi = twopi*rand; - G4double sinPhi = std::sin(phi); - G4double cosPhi = std::cos(phi); + // Generate random position of photon on cone surface + // defined by Theta - // calculate x,y, and z components of photon energy - // (in coord system with primary particle direction - // aligned with the z axis) + rand = G4UniformRand(); - G4double sinTheta = std::sqrt(sin2Theta); - G4double px = sinTheta*cosPhi; - G4double py = sinTheta*sinPhi; - G4double pz = cosTheta; + G4double phi = twopi*rand; + G4double sinPhi = std::sin(phi); + G4double cosPhi = std::cos(phi); - // Create photon momentum direction vector - // The momentum direction is still with respect - // to the coordinate system where the primary - // particle direction is aligned with the z axis + // calculate x,y, and z components of photon energy + // (in coord system with primary particle direction + // aligned with the z axis) - G4ParticleMomentum photonMomentum(px, py, pz); + G4double sinTheta = std::sqrt(sin2Theta); + G4double px = sinTheta*cosPhi; + G4double py = sinTheta*sinPhi; + G4double pz = cosTheta; - // Rotate momentum direction back to global reference - // system + // Create photon momentum direction vector + // The momentum direction is still with respect + // to the coordinate system where the primary + // particle direction is aligned with the z axis - photonMomentum.rotateUz(p0); + G4ParticleMomentum photonMomentum(px, py, pz); - // Determine polarization of new photon + // Rotate momentum direction back to global reference + // system - G4double sx = cosTheta*cosPhi; - G4double sy = cosTheta*sinPhi; - G4double sz = -sinTheta; + photonMomentum.rotateUz(p0); - G4ThreeVector photonPolarization(sx, sy, sz); + // Determine polarization of new photon - // Rotate back to original coord system + G4double sx = cosTheta*cosPhi; + G4double sy = cosTheta*sinPhi; + G4double sz = -sinTheta; - photonPolarization.rotateUz(p0); - - // Generate a new photon: + G4ThreeVector photonPolarization(sx, sy, sz); - G4DynamicParticle* aCerenkovPhoton = - new G4DynamicParticle(G4OpticalPhoton::OpticalPhoton(), - photonMomentum); - aCerenkovPhoton->SetPolarization - (photonPolarization.x(), - photonPolarization.y(), - photonPolarization.z()); + // Rotate back to original coord system - aCerenkovPhoton->SetKineticEnergy(sampledEnergy); + photonPolarization.rotateUz(p0); - // Generate new G4Track object: + // Generate a new photon: - G4double NumberOfPhotons, N; + G4DynamicParticle* aCerenkovPhoton = + new G4DynamicParticle(G4OpticalPhoton::OpticalPhoton(),photonMomentum); - do { - rand = G4UniformRand(); - NumberOfPhotons = MeanNumberOfPhotons1 - rand * + aCerenkovPhoton->SetPolarization(photonPolarization.x(), + photonPolarization.y(), + photonPolarization.z()); + + aCerenkovPhoton->SetKineticEnergy(sampledEnergy); + + // Generate new G4Track object: + + G4double NumberOfPhotons, N; + + do { + rand = G4UniformRand(); + NumberOfPhotons = MeanNumberOfPhotons1 - rand * (MeanNumberOfPhotons1-MeanNumberOfPhotons2); - N = G4UniformRand() * - std::max(MeanNumberOfPhotons1,MeanNumberOfPhotons2); - // Loop checking, 07-Aug-2015, Vladimir Ivanchenko - } while (N > NumberOfPhotons); + N = G4UniformRand() * + std::max(MeanNumberOfPhotons1,MeanNumberOfPhotons2); + // Loop checking, 07-Aug-2015, Vladimir Ivanchenko + } while (N > NumberOfPhotons); - G4double delta = rand * aStep.GetStepLength(); + G4double delta = rand * aStep.GetStepLength(); - G4double deltaTime = delta / (pPreStepPoint->GetVelocity()+ + G4double deltaTime = delta / (pPreStepPoint->GetVelocity()+ rand*(pPostStepPoint->GetVelocity()- pPreStepPoint->GetVelocity())*0.5); - G4double aSecondaryTime = t0 + deltaTime; + G4double aSecondaryTime = t0 + deltaTime; - G4ThreeVector aSecondaryPosition = - x0 + rand * aStep.GetDeltaPosition(); + G4ThreeVector aSecondaryPosition = x0 + rand * aStep.GetDeltaPosition(); - G4Track* aSecondaryTrack = - new G4Track(aCerenkovPhoton,aSecondaryTime,aSecondaryPosition); + G4Track* aSecondaryTrack = + new G4Track(aCerenkovPhoton,aSecondaryTime,aSecondaryPosition); - aSecondaryTrack->SetTouchableHandle( - aStep.GetPreStepPoint()->GetTouchableHandle()); + aSecondaryTrack->SetTouchableHandle( + aStep.GetPreStepPoint()->GetTouchableHandle()); - aSecondaryTrack->SetParentID(aTrack.GetTrackID()); + aSecondaryTrack->SetParentID(aTrack.GetTrackID()); - aParticleChange.AddSecondary(aSecondaryTrack); - } + aParticleChange.AddSecondary(aSecondaryTrack); + } - if (verboseLevel>0) { - G4cout <<"\n Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = " - << aParticleChange.GetNumberOfSecondaries() << G4endl; - } + if (verboseLevel>0) { + G4cout <<"\n Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = " + << aParticleChange.GetNumberOfSecondaries() << G4endl; + } - return pParticleChange; + return pParticleChange; } // BuildThePhysicsTable for the Cerenkov process @@ -392,97 +386,92 @@ G4Cerenkov::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) void G4Cerenkov::BuildThePhysicsTable() { - if (thePhysicsTable) return; + if (thePhysicsTable) return; - const G4MaterialTable* theMaterialTable= - G4Material::GetMaterialTable(); - G4int numOfMaterials = G4Material::GetNumberOfMaterials(); + const G4MaterialTable* theMaterialTable= + G4Material::GetMaterialTable(); + G4int numOfMaterials = G4Material::GetNumberOfMaterials(); - // create new physics table + // create new physics table - thePhysicsTable = new G4PhysicsTable(numOfMaterials); + thePhysicsTable = new G4PhysicsTable(numOfMaterials); - // loop for materials + // loop for materials - for (G4int i=0 ; i < numOfMaterials; i++) - { - G4PhysicsOrderedFreeVector* aPhysicsOrderedFreeVector = 0; + for (G4int i=0 ; i < numOfMaterials; i++) { - // Retrieve vector of refraction indices for the material - // from the material's optical properties table + G4PhysicsOrderedFreeVector* aPhysicsOrderedFreeVector = 0; - G4Material* aMaterial = (*theMaterialTable)[i]; + // Retrieve vector of refraction indices for the material + // from the material's optical properties table - G4MaterialPropertiesTable* aMaterialPropertiesTable = - aMaterial->GetMaterialPropertiesTable(); + G4Material* aMaterial = (*theMaterialTable)[i]; - if (aMaterialPropertiesTable) { + G4MaterialPropertiesTable* aMaterialPropertiesTable = + aMaterial->GetMaterialPropertiesTable(); - aPhysicsOrderedFreeVector = new G4PhysicsOrderedFreeVector(); - G4MaterialPropertyVector* theRefractionIndexVector = - aMaterialPropertiesTable->GetProperty("RINDEX"); + if (aMaterialPropertiesTable) { + aPhysicsOrderedFreeVector = new G4PhysicsOrderedFreeVector(); + G4MaterialPropertyVector* theRefractionIndexVector = + aMaterialPropertiesTable->GetProperty("RINDEX"); - if (theRefractionIndexVector) { - - // Retrieve the first refraction index in vector - // of (photon energy, refraction index) pairs + if (theRefractionIndexVector) { - G4double currentRI = (*theRefractionIndexVector)[0]; + // Retrieve the first refraction index in vector + // of (photon energy, refraction index) pairs - if (currentRI > 1.0) { + G4double currentRI = (*theRefractionIndexVector)[0]; - // Create first (photon energy, Cerenkov Integral) - // pair + if (currentRI > 1.0) { - G4double currentPM = theRefractionIndexVector-> - Energy(0); - G4double currentCAI = 0.0; + // Create first (photon energy, Cerenkov Integral) + // pair - aPhysicsOrderedFreeVector-> - InsertValues(currentPM , currentCAI); + G4double currentPM = theRefractionIndexVector->Energy(0); + G4double currentCAI = 0.0; - // Set previous values to current ones prior to loop + aPhysicsOrderedFreeVector->InsertValues(currentPM , currentCAI); - G4double prevPM = currentPM; - G4double prevCAI = currentCAI; - G4double prevRI = currentRI; + // Set previous values to current ones prior to loop - // loop over all (photon energy, refraction index) - // pairs stored for this material + G4double prevPM = currentPM; + G4double prevCAI = currentCAI; + G4double prevRI = currentRI; - for (size_t ii = 1; - ii < theRefractionIndexVector->GetVectorLength(); - ++ii) - { - currentRI = (*theRefractionIndexVector)[ii]; - currentPM = theRefractionIndexVector->Energy(ii); + // loop over all (photon energy, refraction index) + // pairs stored for this material - currentCAI = 0.5*(1.0/(prevRI*prevRI) + - 1.0/(currentRI*currentRI)); + for (size_t ii = 1; + ii < theRefractionIndexVector->GetVectorLength(); + ++ii) { + currentRI = (*theRefractionIndexVector)[ii]; + currentPM = theRefractionIndexVector->Energy(ii); - currentCAI = prevCAI + - (currentPM - prevPM) * currentCAI; + currentCAI = 0.5*(1.0/(prevRI*prevRI) + + 1.0/(currentRI*currentRI)); - aPhysicsOrderedFreeVector-> - InsertValues(currentPM, currentCAI); + currentCAI = prevCAI + (currentPM - prevPM) * currentCAI; - prevPM = currentPM; - prevCAI = currentCAI; - prevRI = currentRI; - } + aPhysicsOrderedFreeVector-> + InsertValues(currentPM, currentCAI); - } - } - } + prevPM = currentPM; + prevCAI = currentCAI; + prevRI = currentRI; + } - // The Cerenkov integral for a given material - // will be inserted in thePhysicsTable - // according to the position of the material in - // the material table. + } + } + } - thePhysicsTable->insertAt(i,aPhysicsOrderedFreeVector); + // The Cerenkov integral for a given material + // will be inserted in thePhysicsTable + // according to the position of the material in + // the material table. - } + thePhysicsTable->insertAt(i,aPhysicsOrderedFreeVector); + + } } // GetMeanFreePath @@ -493,7 +482,7 @@ G4double G4Cerenkov::GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*) { - return 1.; + return 1.; } G4double G4Cerenkov::PostStepGetPhysicalInteractionLength( @@ -501,194 +490,188 @@ G4double G4Cerenkov::PostStepGetPhysicalInteractionLength( G4double, G4ForceCondition* condition) { - *condition = NotForced; - G4double StepLimit = DBL_MAX; + *condition = NotForced; + G4double StepLimit = DBL_MAX; - const G4Material* aMaterial = aTrack.GetMaterial(); - G4int materialIndex = aMaterial->GetIndex(); + const G4Material* aMaterial = aTrack.GetMaterial(); + G4int materialIndex = aMaterial->GetIndex(); - // If Physics Vector is not defined no Cerenkov photons - // this check avoid string comparison below - if(!(*thePhysicsTable)[materialIndex]) { return StepLimit; } + // If Physics Vector is not defined no Cerenkov photons + // this check avoid string comparison below - const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); - const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); + if(!(*thePhysicsTable)[materialIndex]) { return StepLimit; } - G4double kineticEnergy = aParticle->GetKineticEnergy(); - const G4ParticleDefinition* particleType = aParticle->GetDefinition(); - G4double mass = particleType->GetPDGMass(); + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); - // particle beta - G4double beta = aParticle->GetTotalMomentum() / - aParticle->GetTotalEnergy(); - // particle gamma - G4double gamma = aParticle->GetTotalEnergy()/mass; + G4double kineticEnergy = aParticle->GetKineticEnergy(); + const G4ParticleDefinition* particleType = aParticle->GetDefinition(); + G4double mass = particleType->GetPDGMass(); - G4MaterialPropertiesTable* aMaterialPropertiesTable = - aMaterial->GetMaterialPropertiesTable(); + // particle beta + G4double beta = aParticle->GetTotalMomentum() / + aParticle->GetTotalEnergy(); + // particle gamma + G4double gamma = aParticle->GetTotalEnergy()/mass; - G4MaterialPropertyVector* Rindex = NULL; + G4MaterialPropertiesTable* aMaterialPropertiesTable = + aMaterial->GetMaterialPropertiesTable(); - if (aMaterialPropertiesTable) + G4MaterialPropertyVector* Rindex = NULL; + + if (aMaterialPropertiesTable) Rindex = aMaterialPropertiesTable->GetProperty("RINDEX"); - G4double nMax; - if (Rindex) { - nMax = Rindex->GetMaxValue(); - } else { - return StepLimit; - } + G4double nMax; + if (Rindex) { + nMax = Rindex->GetMaxValue(); + } else { + return StepLimit; + } - G4double BetaMin = 1./nMax; - if ( BetaMin >= 1. ) return StepLimit; + G4double BetaMin = 1./nMax; + if ( BetaMin >= 1. ) return StepLimit; - G4double GammaMin = 1./std::sqrt(1.-BetaMin*BetaMin); + G4double GammaMin = 1./std::sqrt(1.-BetaMin*BetaMin); - if (gamma < GammaMin ) return StepLimit; + if (gamma < GammaMin ) return StepLimit; - G4double kinEmin = mass*(GammaMin-1.); + G4double kinEmin = mass*(GammaMin-1.); - G4double RangeMin = G4LossTableManager::Instance()-> - GetRange(particleType, - kinEmin, - couple); - G4double Range = G4LossTableManager::Instance()-> - GetRange(particleType, - kineticEnergy, - couple); + G4double RangeMin = G4LossTableManager::Instance()->GetRange(particleType, + kinEmin, + couple); + G4double Range = G4LossTableManager::Instance()->GetRange(particleType, + kineticEnergy, + couple); - G4double Step = Range - RangeMin; - if (Step < 1.*um ) return StepLimit; + G4double Step = Range - RangeMin; +// if (Step < 1.*um ) return StepLimit; - if (Step > 0. && Step < StepLimit) StepLimit = Step; + if (Step > 0. && Step < StepLimit) StepLimit = Step; - // If user has defined an average maximum number of photons to - // be generated in a Step, then calculate the Step length for - // that number of photons. + // If user has defined an average maximum number of photons to + // be generated in a Step, then calculate the Step length for + // that number of photons. - if (fMaxPhotons > 0) { + if (fMaxPhotons > 0) { - // particle charge - const G4double charge = aParticle-> - GetDefinition()->GetPDGCharge(); + // particle charge + const G4double charge = aParticle->GetDefinition()->GetPDGCharge(); - G4double MeanNumberOfPhotons = - GetAverageNumberOfPhotons(charge,beta,aMaterial,Rindex); + G4double MeanNumberOfPhotons = + GetAverageNumberOfPhotons(charge,beta,aMaterial,Rindex); - Step = 0.; - if (MeanNumberOfPhotons > 0.0) Step = fMaxPhotons / - MeanNumberOfPhotons; + Step = 0.; + if (MeanNumberOfPhotons > 0.0) Step = fMaxPhotons / MeanNumberOfPhotons; - if (Step > 0. && Step < StepLimit) StepLimit = Step; - } + if (Step > 0. && Step < StepLimit) StepLimit = Step; + } - // If user has defined an maximum allowed change in beta per step - if (fMaxBetaChange > 0.) { + // If user has defined an maximum allowed change in beta per step + if (fMaxBetaChange > 0.) { - G4double dedx = G4LossTableManager::Instance()-> - GetDEDX(particleType, - kineticEnergy, - couple); + G4double dedx = G4LossTableManager::Instance()->GetDEDX(particleType, + kineticEnergy, + couple); - G4double deltaGamma = gamma - - 1./std::sqrt(1.-beta*beta* - (1.-fMaxBetaChange)* - (1.-fMaxBetaChange)); + G4double deltaGamma = gamma - 1./std::sqrt(1.-beta*beta* + (1.-fMaxBetaChange)* + (1.-fMaxBetaChange)); - Step = mass * deltaGamma / dedx; + Step = mass * deltaGamma / dedx; - if (Step > 0. && Step < StepLimit) StepLimit = Step; + if (Step > 0. && Step < StepLimit) StepLimit = Step; - } + } - *condition = StronglyForced; - return StepLimit; + *condition = StronglyForced; + return StepLimit; } // GetAverageNumberOfPhotons // ------------------------- // This routine computes the number of Cerenkov photons produced per -// GEANT-unit (millimeter) in the current medium. +// GEANT-unit (millimeter) in the current medium. // ^^^^^^^^^^ -G4double -G4Cerenkov::GetAverageNumberOfPhotons(const G4double charge, - const G4double beta, - const G4Material* aMaterial, - G4MaterialPropertyVector* Rindex) const +G4double + G4Cerenkov::GetAverageNumberOfPhotons(const G4double charge, + const G4double beta, + const G4Material* aMaterial, + G4MaterialPropertyVector* Rindex) const { - const G4double Rfact = 369.81/(eV * cm); + const G4double Rfact = 369.81/(eV * cm); - if(beta <= 0.0)return 0.0; + if(beta <= 0.0)return 0.0; - G4double BetaInverse = 1./beta; + G4double BetaInverse = 1./beta; - // Vectors used in computation of Cerenkov Angle Integral: - // - Refraction Indices for the current material - // - new G4PhysicsOrderedFreeVector allocated to hold CAI's + // Vectors used in computation of Cerenkov Angle Integral: + // - Refraction Indices for the current material + // - new G4PhysicsOrderedFreeVector allocated to hold CAI's - G4int materialIndex = aMaterial->GetIndex(); + G4int materialIndex = aMaterial->GetIndex(); - // Retrieve the Cerenkov Angle Integrals for this material + // Retrieve the Cerenkov Angle Integrals for this material - G4PhysicsOrderedFreeVector* CerenkovAngleIntegrals = - (G4PhysicsOrderedFreeVector*)((*thePhysicsTable)(materialIndex)); + G4PhysicsOrderedFreeVector* CerenkovAngleIntegrals = + (G4PhysicsOrderedFreeVector*)((*thePhysicsTable)(materialIndex)); - if(!(CerenkovAngleIntegrals->IsFilledVectorExist()))return 0.0; + if(!(CerenkovAngleIntegrals->IsFilledVectorExist()))return 0.0; - // Min and Max photon energies - G4double Pmin = Rindex->GetMinLowEdgeEnergy(); - G4double Pmax = Rindex->GetMaxLowEdgeEnergy(); + // Min and Max photon energies + G4double Pmin = Rindex->GetMinLowEdgeEnergy(); + G4double Pmax = Rindex->GetMaxLowEdgeEnergy(); - // Min and Max Refraction Indices - G4double nMin = Rindex->GetMinValue(); - G4double nMax = Rindex->GetMaxValue(); + // Min and Max Refraction Indices + G4double nMin = Rindex->GetMinValue(); + G4double nMax = Rindex->GetMaxValue(); - // Max Cerenkov Angle Integral - G4double CAImax = CerenkovAngleIntegrals->GetMaxValue(); + // Max Cerenkov Angle Integral + G4double CAImax = CerenkovAngleIntegrals->GetMaxValue(); - G4double dp, ge; + G4double dp, ge; - // If n(Pmax) < 1/Beta -- no photons generated + // If n(Pmax) < 1/Beta -- no photons generated - if (nMax < BetaInverse) { - dp = 0; - ge = 0; - } + if (nMax < BetaInverse) { + dp = 0.0; + ge = 0.0; + } - // otherwise if n(Pmin) >= 1/Beta -- photons generated + // otherwise if n(Pmin) >= 1/Beta -- photons generated - else if (nMin > BetaInverse) { - dp = Pmax - Pmin; - ge = CAImax; - } + else if (nMin > BetaInverse) { + dp = Pmax - Pmin; + ge = CAImax; + } - // If n(Pmin) < 1/Beta, and n(Pmax) >= 1/Beta, then - // we need to find a P such that the value of n(P) == 1/Beta. - // Interpolation is performed by the GetEnergy() and - // Value() methods of the G4MaterialPropertiesTable and - // the GetValue() method of G4PhysicsVector. + // If n(Pmin) < 1/Beta, and n(Pmax) >= 1/Beta, then + // we need to find a P such that the value of n(P) == 1/Beta. + // Interpolation is performed by the GetEnergy() and + // Value() methods of the G4MaterialPropertiesTable and + // the GetValue() method of G4PhysicsVector. - else { - Pmin = Rindex->GetEnergy(BetaInverse); - dp = Pmax - Pmin; + else { + Pmin = Rindex->GetEnergy(BetaInverse); + dp = Pmax - Pmin; - // need boolean for current implementation of G4PhysicsVector - // ==> being phased out - G4bool isOutRange; - G4double CAImin = CerenkovAngleIntegrals-> - GetValue(Pmin, isOutRange); - ge = CAImax - CAImin; + // need boolean for current implementation of G4PhysicsVector + // ==> being phased out + G4bool isOutRange; + G4double CAImin = CerenkovAngleIntegrals->GetValue(Pmin, isOutRange); + ge = CAImax - CAImin; - if (verboseLevel>0) { - G4cout << "CAImin = " << CAImin << G4endl; - G4cout << "ge = " << ge << G4endl; - } - } + if (verboseLevel>0) { + G4cout << "CAImin = " << CAImin << G4endl; + G4cout << "ge = " << ge << G4endl; + } + } - // Calculate number of photons - G4double NumPhotons = Rfact * charge/eplus * charge/eplus * + // Calculate number of photons + G4double NumPhotons = Rfact * charge/eplus * charge/eplus * (dp - ge * BetaInverse*BetaInverse); - return NumPhotons; + return NumPhotons; } diff --git a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc index 4c6cbf0c53..74b1ead01b 100644 --- a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc +++ b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ForwardXrayTR.cc 87013 2014-11-21 16:22:53Z gcosmo $ +// $Id: G4ForwardXrayTR.cc 97385 2016-06-02 09:59:53Z gcosmo $ // // G4ForwardXrayTR class -- implementation file // @@ -85,12 +85,12 @@ G4ForwardXrayTR( const G4String& matName1, // G4Material* pMat1, const G4String& processName ) : G4TransitionRadiation(processName) { - fPtrGamma = 0; - fGammaCutInKineticEnergy = 0; + fPtrGamma = nullptr; + fGammaCutInKineticEnergy = nullptr; fGammaTkinCut = fMinEnergyTR = fMaxEnergyTR = fMaxThetaTR = fGamma = fSigma1 = fSigma2 = 0.0; - fAngleDistrTable = 0; - fEnergyDistrTable = 0; + fAngleDistrTable = nullptr; + fEnergyDistrTable = nullptr; fMatIndex1 = fMatIndex2 = 0; // Proton energy vector initialization @@ -147,12 +147,12 @@ G4ForwardXrayTR:: G4ForwardXrayTR( const G4String& processName ) : G4TransitionRadiation(processName) { - fPtrGamma = 0; - fGammaCutInKineticEnergy = 0; + fPtrGamma = nullptr; + fGammaCutInKineticEnergy = nullptr; fGammaTkinCut = fMinEnergyTR = fMaxEnergyTR = fMaxThetaTR = fGamma = fSigma1 = fSigma2 = 0.0; - fAngleDistrTable = 0; - fEnergyDistrTable = 0; + fAngleDistrTable = nullptr; + fEnergyDistrTable = nullptr; fMatIndex1 = fMatIndex2 = 0; // Proton energy vector initialization diff --git a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc index 6b663cf985..ffc085a63d 100644 --- a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GammaXTRadiator.cc 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4GammaXTRadiator.cc 97385 2016-06-02 09:59:53Z gcosmo $ // #include @@ -46,7 +46,7 @@ G4GammaXTRadiator::G4GammaXTRadiator(G4LogicalVolume* anEnvelope, const G4String& processName) : G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName) { - G4cout<<"Gammma distributed X-ray TR radiator model is called"<0) { G4cout << GetProcessName() << " is created " << G4endl; @@ -136,11 +139,11 @@ G4Scintillation::G4Scintillation(const G4String& processName, G4Scintillation::~G4Scintillation() { - if (fFastIntegralTable != NULL) { + if (fFastIntegralTable != nullptr) { fFastIntegralTable->clearAndDestroy(); delete fFastIntegralTable; } - if (fSlowIntegralTable != NULL) { + if (fSlowIntegralTable != nullptr) { fSlowIntegralTable->clearAndDestroy(); delete fSlowIntegralTable; } @@ -152,15 +155,15 @@ G4Scintillation::~G4Scintillation() void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&) { - if (fFastIntegralTable != NULL) { + if (fFastIntegralTable != nullptr) { fFastIntegralTable->clearAndDestroy(); delete fFastIntegralTable; - fFastIntegralTable = NULL; + fFastIntegralTable = nullptr; } - if (fSlowIntegralTable != NULL) { + if (fSlowIntegralTable != nullptr) { fSlowIntegralTable->clearAndDestroy(); delete fSlowIntegralTable; - fSlowIntegralTable = NULL; + fSlowIntegralTable = nullptr; } BuildThePhysicsTable(); } @@ -257,7 +260,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) MeanNumberOfPhotons = ScintillationYield; else if (fEmSaturation) MeanNumberOfPhotons = ScintillationYield* - (fEmSaturation->VisibleEnergyDeposition(&aStep)); + (fEmSaturation->VisibleEnergyDepositionAtAStep(&aStep)); else MeanNumberOfPhotons = ScintillationYield*TotalEnergyDeposit; @@ -304,7 +307,8 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) G4double ScintillationTime = 0.*ns; G4double ScintillationRiseTime = 0.*ns; - G4PhysicsOrderedFreeVector* ScintillationIntegral = NULL; + G4PhysicsOrderedFreeVector* ScintillationIntegral = nullptr; + G4ScintillationType ScintillationType = Slow; if (scnt == 1) { if (nscnt == 1) { @@ -315,6 +319,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) ScintillationRiseTime = aMaterialPropertiesTable-> GetConstProperty("FASTSCINTILLATIONRISETIME"); } + ScintillationType = Fast; ScintillationIntegral = (G4PhysicsOrderedFreeVector*) ((*fFastIntegralTable)(materialIndex)); @@ -326,6 +331,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) ScintillationRiseTime = aMaterialPropertiesTable-> GetConstProperty("SLOWSCINTILLATIONRISETIME"); } + ScintillationType = Slow; ScintillationIntegral = (G4PhysicsOrderedFreeVector*) ((*fSlowIntegralTable)(materialIndex)); @@ -346,6 +352,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) ScintillationRiseTime = aMaterialPropertiesTable-> GetConstProperty("FASTSCINTILLATIONRISETIME"); } + ScintillationType = Fast; ScintillationIntegral = (G4PhysicsOrderedFreeVector*) ((*fFastIntegralTable)(materialIndex)); @@ -359,6 +366,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) ScintillationRiseTime = aMaterialPropertiesTable-> GetConstProperty("SLOWSCINTILLATIONRISETIME"); } + ScintillationType = Slow; ScintillationIntegral = (G4PhysicsOrderedFreeVector*) ((*fSlowIntegralTable)(materialIndex)); @@ -469,6 +477,9 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) aSecondaryTrack->SetParentID(aTrack.GetTrackID()); + if (fScintillationTrackInfo) aSecondaryTrack-> + SetUserInformation(new G4ScintillationTrackInformation(ScintillationType)); + aParticleChange.AddSecondary(aSecondaryTrack); } @@ -639,28 +650,6 @@ void G4Scintillation::BuildThePhysicsTable() } } -void G4Scintillation::SetTrackSecondariesFirst(const G4bool state) -{ - fTrackSecondariesFirst = state; -} - -void G4Scintillation::SetFiniteRiseTime(const G4bool state) -{ - fFiniteRiseTime = state; -} - -void G4Scintillation::SetScintillationYieldFactor(const G4double yieldfactor) -{ - fYieldFactor = yieldfactor; -} - -void G4Scintillation::SetScintillationExcitationRatio(const G4double excitationratio) { - fExcitationRatio = excitationratio; -} - -// Called by the user to set the scintillation yield as a function -// of energy deposited by particle type - void G4Scintillation::SetScintillationByParticleType(const G4bool scintType) { if (fEmSaturation) { @@ -671,16 +660,6 @@ void G4Scintillation::SetScintillationByParticleType(const G4bool scintType) fScintillationByParticleType = scintType; } -void G4Scintillation::AddSaturation(G4EmSaturation* sat) -{ - fEmSaturation = sat; -} - -void G4Scintillation::RemoveSaturation() -{ - fEmSaturation = NULL; -} - // GetMeanFreePath // --------------- // @@ -739,7 +718,7 @@ GetScintillationYieldByParticleType(const G4Track &aTrack, const G4Step &aStep) G4ParticleDefinition *pDef = aTrack.GetDynamicParticle()->GetDefinition(); - G4MaterialPropertyVector *Scint_Yield_Vector = NULL; + G4MaterialPropertyVector *Scint_Yield_Vector = nullptr; G4MaterialPropertiesTable *aMaterialPropertiesTable = aTrack.GetMaterial()->GetMaterialPropertiesTable(); diff --git a/source/processes/electromagnetic/xrays/src/G4ScintillationTrackInformation.cc b/source/processes/electromagnetic/xrays/src/G4ScintillationTrackInformation.cc new file mode 100644 index 0000000000..311f359bf8 --- /dev/null +++ b/source/processes/electromagnetic/xrays/src/G4ScintillationTrackInformation.cc @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4ScintillationTrackInformation.cc ????? 2016-01-21 ??:??:??? ?????? $ +// +// Author : Valentin Libioulle valentin.libioulle@usherbrooke.ca (3IT - GRAMS) +// + +#include "G4ScintillationTrackInformation.hh" + +G4ThreadLocal G4Allocator *aScintillationTIAllocator = nullptr; +const G4String G4ScintillationTrackInformation::BaseType = "G4ScintillationTrackInformation"; + +G4ScintillationTrackInformation::G4ScintillationTrackInformation(const G4ScintillationType& aType) +: G4VUserTrackInformation(BaseType), +scintillationType(aType) +{ +} + +G4ScintillationTrackInformation::~G4ScintillationTrackInformation() +{ +} + +G4ScintillationTrackInformation::G4ScintillationTrackInformation(const G4ScintillationTrackInformation& right) +: G4VUserTrackInformation(right), +scintillationType(right.scintillationType) +{ +} + +G4ScintillationTrackInformation& G4ScintillationTrackInformation::operator=(const G4ScintillationTrackInformation& right) +{ + G4VUserTrackInformation::operator=(right); + this->scintillationType = right.scintillationType; + return *this; +} + +void G4ScintillationTrackInformation::Print() const +{ + G4cout << "The user track information is a scintillation" << G4endl; +} + +G4bool G4ScintillationTrackInformation::IsScintillationTrackInformation(const G4VUserTrackInformation* const aTI) +{ + G4bool isSTI = (aTI && aTI->GetType() == BaseType.c_str()); + return isSTI; +} + +G4ScintillationTrackInformation* G4ScintillationTrackInformation::Cast(const G4VUserTrackInformation* const aTI) +{ + G4ScintillationTrackInformation* STI = nullptr; + if(IsScintillationTrackInformation(aTI)) + { + // No change will be done to the pointer and to the pointed data + G4VUserTrackInformation* temp = const_cast(aTI); + STI = dynamic_cast(temp); + } + return STI; +} diff --git a/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc b/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc index 2f08c78c0d..e352f6f368 100644 --- a/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc +++ b/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SynchrotronRadiation.cc 83424 2014-08-21 15:39:44Z gcosmo $ +// $Id: G4SynchrotronRadiation.cc 97385 2016-06-02 09:59:53Z gcosmo $ // // -------------------------------------------------------------- // GEANT 4 class implementation file @@ -67,7 +67,7 @@ G4SynchrotronRadiation::G4SynchrotronRadiation(const G4String& processName, verboseLevel = 1; FirstTime = true; FirstTime1 = true; - genAngle = 0; + genAngle = nullptr; SetAngularGenerator(new G4DipBustGenerator()); } @@ -127,18 +127,18 @@ G4SynchrotronRadiation::GetMeanFreePath(const G4Track& trackData, { G4ThreeVector FieldValue; - const G4Field* pField = 0; + const G4Field* pField = nullptr; G4bool fieldExertsForce = false; G4FieldManager* fieldMgr = fFieldPropagator->FindAndSetFieldManager(trackData.GetVolume()); - if ( fieldMgr != 0 ) + if ( fieldMgr != nullptr ) { // If the field manager has no field, there is no field ! - fieldExertsForce = ( fieldMgr->GetDetectorField() != 0 ); + fieldExertsForce = ( fieldMgr->GetDetectorField() != nullptr ); } if ( fieldExertsForce ) @@ -227,16 +227,16 @@ G4SynchrotronRadiation::PostStepDoIt(const G4Track& trackData, } G4ThreeVector FieldValue; - const G4Field* pField = 0; + const G4Field* pField = nullptr; G4bool fieldExertsForce = false; G4FieldManager* fieldMgr = fFieldPropagator->FindAndSetFieldManager(trackData.GetVolume()); - if ( fieldMgr != 0 ) + if ( fieldMgr != nullptr ) { // If the field manager has no field, there is no field ! - fieldExertsForce = ( fieldMgr->GetDetectorField() != 0 ); + fieldExertsForce = ( fieldMgr->GetDetectorField() != nullptr ); } if ( fieldExertsForce ) diff --git a/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiationInMat.cc b/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiationInMat.cc index 095bbaaee6..396a743968 100644 --- a/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiationInMat.cc +++ b/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiationInMat.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SynchrotronRadiationInMat.cc 91871 2015-08-07 15:22:30Z gcosmo $ +// $Id: G4SynchrotronRadiationInMat.cc 97385 2016-06-02 09:59:53Z gcosmo $ // // -------------------------------------------------------------- // GEANT 4 class implementation file @@ -123,15 +123,15 @@ G4SynchrotronRadiationInMat::fIntegralProbabilityOfSR[200] = G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(const G4String& processName, G4ProcessType type):G4VDiscreteProcess (processName, type), LowestKineticEnergy (10.*keV), - HighestKineticEnergy (100.*TeV), - TotBin(200), + //HighestKineticEnergy (100.*TeV), + //TotBin(200), theGamma (G4Gamma::Gamma() ), theElectron ( G4Electron::Electron() ), thePositron ( G4Positron::Positron() ), - GammaCutInKineticEnergy(0), - ElectronCutInKineticEnergy(0), - PositronCutInKineticEnergy(0), - ParticleCutInKineticEnergy(0), + //GammaCutInKineticEnergy(nullptr), + //ElectronCutInKineticEnergy(nullptr), + //PositronCutInKineticEnergy(nullptr), + //ParticleCutInKineticEnergy(nullptr), fAlpha(0.0), fRootNumber(80), fVerboseLevel( verboseLevel ) { @@ -197,20 +197,20 @@ G4SynchrotronRadiationInMat::GetMeanFreePath( const G4Track& trackData, { G4ThreeVector FieldValue; - const G4Field* pField = 0; + const G4Field* pField = nullptr; - G4FieldManager* fieldMgr=0; + G4FieldManager* fieldMgr=nullptr; G4bool fieldExertsForce = false; if( (particleCharge != 0.0) ) { fieldMgr = fFieldPropagator->FindAndSetFieldManager( trackData.GetVolume() ); - if ( fieldMgr != 0 ) + if ( fieldMgr != nullptr ) { // If the field manager has no field, there is no field ! - fieldExertsForce = ( fieldMgr->GetDetectorField() != 0 ); + fieldExertsForce = ( fieldMgr->GetDetectorField() != nullptr ); } } if ( fieldExertsForce ) @@ -274,19 +274,19 @@ G4SynchrotronRadiationInMat::PostStepDoIt(const G4Track& trackData, G4double particleCharge = aDynamicParticle->GetDefinition()->GetPDGCharge(); G4ThreeVector FieldValue; - const G4Field* pField = 0 ; + const G4Field* pField = nullptr ; - G4FieldManager* fieldMgr=0; + G4FieldManager* fieldMgr=nullptr; G4bool fieldExertsForce = false; if( (particleCharge != 0.0) ) { fieldMgr = fFieldPropagator->FindAndSetFieldManager( trackData.GetVolume() ); - if ( fieldMgr != 0 ) + if ( fieldMgr != nullptr ) { // If the field manager has no field, there is no field ! - fieldExertsForce = ( fieldMgr->GetDetectorField() != 0 ); + fieldExertsForce = ( fieldMgr->GetDetectorField() != nullptr ); } } if ( fieldExertsForce ) @@ -435,15 +435,15 @@ G4SynchrotronRadiationInMat::GetPhotonEnergy( const G4Track& trackData, G4double particleCharge = aDynamicParticle->GetDefinition()->GetPDGCharge(); G4ThreeVector FieldValue; - const G4Field* pField = 0 ; + const G4Field* pField = nullptr ; - G4FieldManager* fieldMgr=0; + G4FieldManager* fieldMgr=nullptr; G4bool fieldExertsForce = false; if( (particleCharge != 0.0) ) { fieldMgr = fFieldPropagator->FindAndSetFieldManager( trackData.GetVolume() ); - if ( fieldMgr != 0 ) + if ( fieldMgr != nullptr ) { // If the field manager has no field, there is no field ! @@ -660,20 +660,20 @@ G4double G4SynchrotronRadiationInMat::GetAngleNumberAtGammaKsi( G4double gpsi) G4double result, funK, funK2, gpsi2 = gpsi*gpsi; fPsiGamma = gpsi; - fEta = 0.5*fKsi*(1 + gpsi2)*std::sqrt(1 + gpsi2); + fEta = 0.5*fKsi*(1. + gpsi2)*std::sqrt(1. + gpsi2); fOrderAngleK = 1./3.; funK = GetAngleK(fEta); funK2 = funK*funK; - result = gpsi2*funK2/(1 + gpsi2); + result = gpsi2*funK2/(1. + gpsi2); fOrderAngleK = 2./3.; funK = GetAngleK(fEta); funK2 = funK*funK; result += funK2; - result *= (1 + gpsi2)*fKsi; + result *= (1. + gpsi2)*fKsi; return result; } diff --git a/source/processes/electromagnetic/xrays/src/G4TransparentRegXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4TransparentRegXTRadiator.cc index f6a8fc5ddc..279ca3ba0f 100644 --- a/source/processes/electromagnetic/xrays/src/G4TransparentRegXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4TransparentRegXTRadiator.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4TransparentRegXTRadiator.cc 68037 2013-03-13 14:15:08Z gcosmo $ +// $Id: G4TransparentRegXTRadiator.cc 97385 2016-06-02 09:59:53Z gcosmo $ // #include @@ -135,7 +135,7 @@ G4double G4TransparentRegXTRadiator::SpectralXTRdEdx(G4double energy) <<" "< 0.) tmp /= tmp2; else continue; @@ -1004,13 +1006,13 @@ G4double G4VXTRenergyLoss::AngleXTRdEdx(G4double varAngle) { if (energy2 > fTheMaxEnergyTR || energy2 < fTheMinEnergyTR) continue; tmp1 = ( energy2*energy2*(1./fGamma/fGamma + varAngle) + fSigma1 ) - * fPlateThick/(4*hbarc*energy2); + * fPlateThick/(4.*hbarc*energy2); tmp2 = std::sin(tmp1); tmp = energy2*tmp2*tmp2; - tmp2 = fPlateThick/(4*tmp1); + tmp2 = fPlateThick/(4.*tmp1); tmp1 = hbarc*energy2/( energy2*energy2*(1./fGamma/fGamma + varAngle) + fSigma2 ); tmp *= (tmp1-tmp2)*(tmp1-tmp2); - tmp1 = cof1/(4*hbarc) - cof2/(4*hbarc*energy2*energy2); + tmp1 = cof1/(4.*hbarc) - cof2/(4.*hbarc*energy2*energy2); tmp2 = std::abs(tmp1); if(tmp2 > 0.) tmp /= tmp2; else continue; @@ -1335,7 +1337,7 @@ G4double G4VXTRenergyLoss::GetComptonPerAtom(G4double GammaEnergy, G4double Z) { G4double dT0 = 1.*keV; X = (T0+dT0) / electron_mass_c2; - G4double sigma = p1Z*std::log(1.+2*X)/X + G4double sigma = p1Z*std::log(1.+2.*X)/X + (p2Z + p3Z*X + p4Z*X*X)/(1. + a*X + b*X*X + c*X*X*X); G4double c1 = -T0*(sigma-CrossSection)/(CrossSection*dT0); G4double c2 = 0.150; diff --git a/source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc b/source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc index ed38dcf863..3cb4881642 100644 --- a/source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc +++ b/source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc @@ -47,7 +47,7 @@ G4XTRGammaRadModel::G4XTRGammaRadModel(G4LogicalVolume* anEnvelope, const G4String& processName) : G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName) { - G4cout<<"Gammma distributed X-ray TR radiator model is called"<GetName()).c_str(); - G4int len = (xSections[i]->GetName()).length(); - len = std::min(len, 9); - const G4String xname = G4String(xxx, len); - //std::cout << "G4CrossSectionDataSetRegistry::Clean " << xname - // << " " << xSections[i] << " " << this << std::endl; - if( (xname != "NeutronHP") && (xname != "ParticleH") ) { + //const char* xxx = (xSections[i]->GetName()).c_str(); + //G4int len = (xSections[i]->GetName()).length(); + //len = std::min(len, 9); + //const G4String xname = G4String(xxx, len); + ////std::cout << "G4CrossSectionDataSetRegistry::Clean " << xname + //// << " " << xSections[i] << " " << this << std::endl; + //if( (xname != "NeutronHP") && (xname != "ParticleH") ) { delete xSections[i]; - } + //} //std::cout << " done" << " " << this << std::endl; } } diff --git a/source/processes/hadronic/cross_sections/src/G4CrossSectionPairGG.cc b/source/processes/hadronic/cross_sections/src/G4CrossSectionPairGG.cc index fa4e819b4b..cd4e7bb6c2 100644 --- a/source/processes/hadronic/cross_sections/src/G4CrossSectionPairGG.cc +++ b/source/processes/hadronic/cross_sections/src/G4CrossSectionPairGG.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4CrossSectionPairGG.cc 93682 2015-10-28 10:09:49Z gcosmo $ +// $Id: G4CrossSectionPairGG.cc 94961 2016-01-08 16:31:48Z gcosmo $ // $ GEANT4 tag $Name: not supported by cvs2svn $ // // Class G4CrossSectionPairGG @@ -98,7 +98,7 @@ G4double G4CrossSectionPairGG::GetElementCrossSection( std::vector::iterator iter = scale_factors.begin(); const G4ParticleDefinition * pDef = aParticle->GetDefinition(); - while (iter != scale_factors.end() && (*iter).first != pDef) + while (iter != scale_factors.end() && (*iter).first != pDef) /* Loop checking, 08.01.2016, W. Pokorski */ { ++iter; } @@ -137,9 +137,10 @@ void G4CrossSectionPairGG::BuildPhysicsTable(const G4ParticleDefinition& pDef) { const G4ParticleDefinition * myDef = &pDef; std::vector::iterator iter; iter = scale_factors.begin(); - while (iter != scale_factors.end() && (*iter).first != myDef) { - ++iter; - } + while (iter != scale_factors.end() && (*iter).first != myDef) /* Loop checking, 08.01.2016, W. Pokorski */ + { + ++iter; + } // new particle, initialise diff --git a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc index 435e375aec..4fffb96131 100644 --- a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ElectroNuclearCrossSection.cc 94079 2015-11-05 15:03:02Z gcosmo $ +// $Id: G4ElectroNuclearCrossSection.cc 94961 2016-01-08 16:31:48Z gcosmo $ // // G4 Physics class: G4ElectroNuclearCrossSection for gamma+A cross sections // Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-01 @@ -2195,7 +2195,7 @@ lastE(0), lastSig(0), lastG(0), lastL(0), mNeut(G4NucleiProperties::GetNuclearMa G4ElectroNuclearCrossSection::~G4ElectroNuclearCrossSection() { std::vector::iterator it = cache.begin(); - while ( it != cache.end() ) + while ( it != cache.end() ) /* Loop checking, 08.01.2016, W. Pokorski */ { if ( *it ) { delete[] (*it)->J1; (*it)->J1 = 0; @@ -2452,7 +2452,7 @@ G4double G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy() if (ris < Y[lastL]) { // Search the table G4int j = lastUsedCacheEl->F; G4double Yj = Y[j]; // It must be 0 (sometimes just very small) - while (ris > Yj && j < lastL) { // Associative search + while (ris > Yj && j < lastL) { // Associative search /* Loop checking, 08.01.2016, W. Pokorski */ j++; Yj = Y[j]; // Yj is first value above ris } @@ -2530,7 +2530,7 @@ G4double G4ElectroNuclearCrossSection::GetEquivalentPhotonQ2(G4double nu) G4int maxTry=3; G4int cntTry=0; G4double Q2=Qi2; - while(cond&&cntTry1. + while(cond&&cntTry1. /* Loop checking, 08.01.2016, W. Pokorski */ { G4double R=G4UniformRand(); // Random number (0,1) Q2=Qi2*(ePy+1./(G4Exp(R*LyQa2-(1.-R)*Uy)-Fy)); diff --git a/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc b/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc index 414ad617d3..6e2d85b3ef 100644 --- a/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc +++ b/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc @@ -1337,7 +1337,7 @@ G4HadronCrossSections::CalcScatteringCrossSections( // G4int je1 = je2 -1; // je1 = je1 - 1; // For array indexing // je2 = je2 - 1; // For array indexing - + G4int je1 = 0; G4int je2 = NELAB - 1; do { @@ -1346,7 +1346,7 @@ G4HadronCrossSections::CalcScatteringCrossSections( je2 = midBin; else je1 = midBin; - } while (je2 - je1 > 1); + } while (je2 - je1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */ G4double delab = elab[je2] - elab[je1]; @@ -1369,7 +1369,7 @@ G4HadronCrossSections::CalcScatteringCrossSections( ja2 = midBin; else ja1 = midBin; - } while (ja2 - ja1 > 1); + } while (ja2 - ja1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */ G4double dnlwat = cnlwat[ja2] - cnlwat[ja1]; @@ -1419,7 +1419,7 @@ G4HadronCrossSections::CalcScatteringCrossSections( je2 = midBin; else je1 = midBin; - } while (je2 - je1 > 1); + } while (je2 - je1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */ G4int ipart1 = ipart - 1; // For array indexing @@ -1593,7 +1593,7 @@ G4HadronCrossSections::GetFissionCrossSection(const G4DynamicParticle* aParticle ie2 = midBin; else ie1 = midBin; - } while (ie2 - ie1 > 1); + } while (ie2 - ie1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */ G4int i = ie2; if (ek < ekfiss[0]) i = 0; diff --git a/source/processes/hadronic/cross_sections/src/G4PiData.cc b/source/processes/hadronic/cross_sections/src/G4PiData.cc index 7c6c7b22fd..f4d2a9a289 100644 --- a/source/processes/hadronic/cross_sections/src/G4PiData.cc +++ b/source/processes/hadronic/cross_sections/src/G4PiData.cc @@ -65,7 +65,7 @@ G4double G4PiData::ReactionXSection(G4double kineticEnergy) { G4double result = 0; G4PiData::iterator it=begin(); - while(it!=end()&&kineticEnergy>(*it).first) {it++;} + while(it!=end()&&kineticEnergy>(*it).first) {it++;} /* Loop checking, 08.01.2016, W. Pokorski */ if(it==end()) { throw G4HadronicException(__FILE__, __LINE__, @@ -87,7 +87,7 @@ G4double G4PiData::ElasticXSection(G4double kineticEnergy) { G4double result = 0; G4PiData::iterator it=begin(); - while(it!=end()&&kineticEnergy>(*it).first) {it++;} + while(it!=end()&&kineticEnergy>(*it).first) {it++;} /* Loop checking, 08.01.2016, W. Pokorski */ if(it==end()) { throw G4HadronicException(__FILE__, __LINE__, @@ -109,7 +109,7 @@ G4double G4PiData::TotalXSection(G4double kineticEnergy) { G4double result = 0; G4PiData::iterator it=begin(); - while(it!=end()&&kineticEnergy>(*it).first) {it++;} + while(it!=end()&&kineticEnergy>(*it).first) {it++;} /* Loop checking, 08.01.2016, W. Pokorski */ if(it==end()) { throw G4HadronicException(__FILE__, __LINE__, diff --git a/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc index 07e08831a3..e2bfa225a2 100644 --- a/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc @@ -487,7 +487,7 @@ G4PiNuclearCrossSection::GetElementCrossSection(const G4DynamicParticle* particl // debug.push_back(Z); size_t it = 0; - while(it < theZ.size() && Z > theZ[it]) it++; + while(it < theZ.size() && Z > theZ[it]) it++; /* Loop checking, 08.01.2016, W. Pokorski */ // debug.push_back(theZ[it]); // debug.push_back(kineticEnergy); diff --git a/source/processes/hadronic/management/History b/source/processes/hadronic/management/History index 270e2bf9fe..51f3c73dbe 100644 --- a/source/processes/hadronic/management/History +++ b/source/processes/hadronic/management/History @@ -14,7 +14,19 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +27 May 2016 V. Ivanchenko (hadr-man-V10-02-01) +--------------------------------------------------- +- G4HadronicProcess - added flag of "integral" approach to take into + account cross section change at a step; use nullptr; + do not create new materials in the method GetElementCrossSection(), + istead only try to find existing simple G4Material + +18 April 2016 V. Ivanchenko (hadr-man-V10-02-00) +--------------------------------------------------- +- G4HadronicProcessStore - call initialisation of all G4HadronicInteractions + 30 October 2015 Gunter Folger (hadr-man-V10-01-06) +--------------------------------------------------- - while loop check: G4HadronicProcess.cc has one loops, already checked with counter diff --git a/source/processes/hadronic/management/include/G4HadronicProcess.hh b/source/processes/hadronic/management/include/G4HadronicProcess.hh index 6e57ce4bfa..a2130c1b0b 100644 --- a/source/processes/hadronic/management/include/G4HadronicProcess.hh +++ b/source/processes/hadronic/management/include/G4HadronicProcess.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronicProcess.hh 90237 2015-05-21 09:04:11Z gcosmo $ +// $Id: G4HadronicProcess.hh 97172 2016-05-27 12:37:57Z gcosmo $ // // ------------------------------------------------------------------- // @@ -84,13 +84,13 @@ public: // get cross section per element G4double GetElementCrossSection(const G4DynamicParticle * part, const G4Element * elm, - const G4Material* mat = 0); + const G4Material* mat = nullptr); // obsolete method to get cross section per element inline G4double GetMicroscopicCrossSection(const G4DynamicParticle * part, const G4Element * elm, - const G4Material* mat = 0) + const G4Material* mat = nullptr) { return GetElementCrossSection(part, elm, mat); } // generic PostStepDoIt recommended for all derived classes @@ -149,6 +149,10 @@ public: void BiasCrossSectionByFactor(G4double aScale); + // Integral option + inline void SetIntegral(G4bool val) + { useIntegralXS = val; } + // Energy-momentum non-conservation limits and reporting inline void SetEpReportLevel(G4int level) { epReportLevel = level; } @@ -203,9 +207,6 @@ private: // Set E/p conservation check levels from environment variables void GetEnergyMomentumCheckEnvvars(); - // The Nist manager builds or finds a simple material from the Z of an element - G4Material* InitialiseMaterial(G4int Z); - protected: G4HadProjectile thePro; @@ -228,6 +229,10 @@ private: bool G4HadronicProcess_debug_flag; + bool useIntegralXS; + + G4int nMatWarn; + // Energy-momentum checking std::pair epCheckLevels; G4bool levelsSetByProcess; diff --git a/source/processes/hadronic/management/src/G4HadronicProcess.cc b/source/processes/hadronic/management/src/G4HadronicProcess.cc index 5ee51e5a92..267ea7e85a 100644 --- a/source/processes/hadronic/management/src/G4HadronicProcess.cc +++ b/source/processes/hadronic/management/src/G4HadronicProcess.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronicProcess.cc 93817 2015-11-02 11:33:26Z gcosmo $ +// $Id: G4HadronicProcess.cc 97172 2016-05-27 12:37:57Z gcosmo $ // // ------------------------------------------------------------------- // @@ -91,13 +91,15 @@ G4HadronicProcess::G4HadronicProcess(const G4String& processName, theTotalResult = new G4ParticleChange(); theTotalResult->SetSecondaryWeightByProcess(true); - theInteraction = 0; + theInteraction = nullptr; theCrossSectionDataStore = new G4CrossSectionDataStore(); theProcessStore = G4HadronicProcessStore::Instance(); theProcessStore->Register(this); theInitialNumberOfInteractionLength = 0.0; aScaleFactor = 1; xBiasOn = false; + nMatWarn = 0; + useIntegralXS = true; theLastCrossSection = 0.0; G4HadronicProcess_debug_flag = false; GetEnergyMomentumCheckEnvvars(); @@ -113,13 +115,15 @@ G4HadronicProcess::G4HadronicProcess(const G4String& processName, theTotalResult = new G4ParticleChange(); theTotalResult->SetSecondaryWeightByProcess(true); - theInteraction = 0; + theInteraction = nullptr; theCrossSectionDataStore = new G4CrossSectionDataStore(); theProcessStore = G4HadronicProcessStore::Instance(); theProcessStore->Register(this); theInitialNumberOfInteractionLength = 0.0; aScaleFactor = 1; xBiasOn = false; + useIntegralXS = true; + nMatWarn = 0; theLastCrossSection = 0.0; G4HadronicProcess_debug_flag = false; GetEnergyMomentumCheckEnvvars(); @@ -162,35 +166,38 @@ void G4HadronicProcess::RegisterMe( G4HadronicInteraction *a ) G4HadronicProcessStore::Instance()->RegisterInteraction(this, a); } -G4double G4HadronicProcess::GetElementCrossSection(const G4DynamicParticle * part, - const G4Element * elm, - const G4Material* mat) +G4double +G4HadronicProcess::GetElementCrossSection(const G4DynamicParticle * part, + const G4Element * elm, + const G4Material* mat) { G4Material* aMaterial = const_cast(mat); - if(! mat) + if(!aMaterial) { // Because NeutronHP needs a material pointer (for instance to get the - // temperature), we ask the Nist manager to build or find a simple material + // temperature), we ask the Nist manager to find a simple material // from the (integer) Z of the element. - // Note that repeated calls to this method are not producing multiple copies - // of the same material. But it needs to be protected against race conditions - // between different threads. - aMaterial = InitialiseMaterial(G4int(elm->GetZ())); + aMaterial = + G4NistManager::Instance()->FindSimpleMaterial(elm->GetZasInt()); + if(!aMaterial) { + ++nMatWarn; + static const G4int nmax = 5; + if(nMatWarn < nmax) { + G4ExceptionDescription ed; + ed << "Cannot compute Element x-section for " << GetProcessName() + << " because no material defined \n" + << " Please, specify material pointer or define simple material" + << " for Z= " << elm->GetZasInt(); + G4Exception("G4HadronicProcess::GetElementCrossSection", "had066", JustWarning, + ed); + } + } } - G4double x = theCrossSectionDataStore->GetCrossSection(part, elm, aMaterial); - if(x < 0.0) { x = 0.0; } + G4double x = + std::max(theCrossSectionDataStore->GetCrossSection(part, elm, aMaterial),0.0); return x; } - -namespace { G4Mutex hadronicProcessMutex = G4MUTEX_INITIALIZER; } -G4Material* G4HadronicProcess::InitialiseMaterial(G4int Z) -{ - G4AutoLock l(&hadronicProcessMutex); - return G4NistManager::Instance()->FindOrBuildSimpleMaterial(Z); -} - - void G4HadronicProcess::PreparePhysicsTable(const G4ParticleDefinition& p) { if(getenv("G4HadronicProcess_debug")) { @@ -210,7 +217,7 @@ void G4HadronicProcess::BuildPhysicsTable(const G4ParticleDefinition& p) { G4ExceptionDescription ed; aR.Report(ed); - ed << " hadronic initialisation fails" << G4endl; + ed << " hadronic initialisation fails"; G4Exception("G4HadronicProcess::BuildPhysicsTable", "had000", FatalException,ed); } @@ -237,8 +244,7 @@ GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *) G4Exception("G4HadronicProcess::GetMeanFreePath", "had002", FatalException, ed); } - G4double res = DBL_MAX; - if( theLastCrossSection > 0.0 ) { res = 1.0/theLastCrossSection; } + G4double res = (theLastCrossSection > 0.0) ? 1.0/theLastCrossSection : DBL_MAX; //G4cout << " xsection= " << res << G4endl; return res; } @@ -259,7 +265,28 @@ G4HadronicProcess::PostStepDoIt(const G4Track& aTrack, const G4Step&) const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); G4Material* aMaterial = aTrack.GetMaterial(); - G4Element* anElement = 0; + // check only for charged particles + if(aParticle->GetDefinition()->GetPDGCharge() != 0.0) { + G4double xs = 0.0; + try + { + xs = aScaleFactor*theCrossSectionDataStore->GetCrossSection(aParticle,aMaterial); + } + catch(G4HadronicException aR) + { + G4ExceptionDescription ed; + aR.Report(ed); + DumpState(aTrack,"PostStepDoIt",ed); + ed << " Cross section is not available" << G4endl; + G4Exception("G4HadronicProcess::PostStepDoIt", "had002", FatalException,ed); + } + if(xs <= 0.0 || (useIntegralXS && xs < theLastCrossSection*G4UniformRand())) { + // No interaction + return theTotalResult; + } + } + + G4Element* anElement = nullptr; try { anElement = theCrossSectionDataStore->SampleZandA(aParticle, @@ -276,14 +303,6 @@ G4HadronicProcess::PostStepDoIt(const G4Track& aTrack, const G4Step&) ed); } - // check only for charged particles - if(aParticle->GetDefinition()->GetPDGCharge() != 0.0) { - if (GetElementCrossSection(aParticle, anElement, aMaterial) <= 0.0) { - // No interaction - return theTotalResult; - } - } - // Next check for illegal track status // if (aTrack.GetTrackStatus() != fAlive && @@ -323,7 +342,7 @@ G4HadronicProcess::PostStepDoIt(const G4Track& aTrack, const G4Step&) ed); } - G4HadFinalState* result = 0; + G4HadFinalState* result = nullptr; G4int reentryCount = 0; do diff --git a/source/processes/hadronic/management/src/G4HadronicProcessStore.cc b/source/processes/hadronic/management/src/G4HadronicProcessStore.cc index 60c31d38fa..5c647b2d12 100644 --- a/source/processes/hadronic/management/src/G4HadronicProcessStore.cc +++ b/source/processes/hadronic/management/src/G4HadronicProcessStore.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronicProcessStore.cc 92691 2015-09-14 07:04:52Z gcosmo $ +// $Id: G4HadronicProcessStore.cc 96491 2016-04-19 06:58:23Z gcosmo $ // // ------------------------------------------------------------------- // @@ -563,6 +563,7 @@ void G4HadronicProcessStore::PrintInfo(const G4ParticleDefinition* part) buildTableStart = false; Dump(verbose); if (getenv("G4PhysListDocDir") ) DumpHtml(); + G4HadronicInteractionRegistry::Instance()->InitialiseModels(); } } diff --git a/source/processes/hadronic/models/abla/History b/source/processes/hadronic/models/abla/History index 73e7e6fe66..eb4d34a296 100644 --- a/source/processes/hadronic/models/abla/History +++ b/source/processes/hadronic/models/abla/History @@ -3,7 +3,7 @@ ========================================================== Geant4 - an Object-Oriented Toolkit for Physics Simulation ========================================================== -$Id: History 93742 2015-10-30 11:08:51Z gcosmo $ +$Id: History 94861 2015-12-14 10:00:31Z gcosmo $ --------------------------------------------------------------------- History file for the ABLA evaporation/fission model @@ -16,6 +16,10 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +11 December 2015 - Davide Mancusi (hadr-abla-V10-02-00) +-------------------------------------------------- +- Fix bug in de-excitation of boosted nucleon remnants. + 28 October 2015 - Davide Mancusi (hadr-abla-V10-01-01) -------------------------------------------------- - Modifications for while loop checking. diff --git a/source/processes/hadronic/models/abla/src/G4Abla.cc b/source/processes/hadronic/models/abla/src/G4Abla.cc index 56a648d987..186b21a9eb 100644 --- a/source/processes/hadronic/models/abla/src/G4Abla.cc +++ b/source/processes/hadronic/models/abla/src/G4Abla.cc @@ -224,9 +224,9 @@ void G4Abla::breakItUp(G4int nucleusA, G4int nucleusZ, G4double nucleusMass, G4d ff = 0; zf = zprf; af = aprf; - pxeva = pxrem; - pyeva = pyrem; - pleva = pzrem; + pxeva = 0.; + pyeva = 0.; + pleva = 0.; } if (ff == 1) { diff --git a/source/processes/hadronic/models/cascade/History b/source/processes/hadronic/models/cascade/History index ce4af79e07..ad2a3fa063 100644 --- a/source/processes/hadronic/models/cascade/History +++ b/source/processes/hadronic/models/cascade/History @@ -15,6 +15,18 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +14 March 2016 Dennis Wright (hadr-casc-V10-02-01) +-------------------------------------------------- +- G4InuclCollider.cc: re-instate getenv for photonuclearOkay(). This + method causes significant performance degradation and the physics needs + to be improved before it can made default + +25 January 2016 Michael Kelsey (hadr-casc-V10-02-00) +----------------------------------------------------- +- G4InuclCollider.cc: Remove envvar which enables "photonuclearOkay()" + test. This test will now be used by default, improving the match for + production of neutrons and protons in the GDR region. + 6 November 2015 Dennis Wright (hadr-casc-V10-01-13) ---------------------------------------------------- - G4CascadeKplusNChannel: extend to 9-body final states and 32 GeV using same diff --git a/source/processes/hadronic/models/coherent_elastic/History b/source/processes/hadronic/models/coherent_elastic/History index 928adea484..8140c2fa14 100644 --- a/source/processes/hadronic/models/coherent_elastic/History +++ b/source/processes/hadronic/models/coherent_elastic/History @@ -14,6 +14,11 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +14 January 2016 - A.Ribon (hadr-cohe-V10-02-00) +----------------------------------------------------------------- +- G4LMsdGenerator : hadronic internal decay scheme was restored + allowing stable decay of the Roper resonances + 13 November 2015 Gunter Folger (hadr-cohe-V10-01-19) -------------------------------------------------------- - Revert back to G4float, add "f" for initialisation. diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4LMsdGenerator.cc b/source/processes/hadronic/models/coherent_elastic/src/G4LMsdGenerator.cc index 6d58e651cb..c003f3669e 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4LMsdGenerator.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4LMsdGenerator.cc @@ -147,7 +147,7 @@ G4LMsdGenerator::ApplyYourself( const G4HadProjectile& aTrack, G4ParticleMomentum p1unit = p1.unit(); G4double Mx = SampleMx(aParticle); // in GeV - G4double t = 0.; // SampleT( aParticle, Mx); // in GeV + G4double t = SampleT( aParticle, Mx); // in GeV Mx *= CLHEP::GeV; @@ -254,11 +254,11 @@ G4LMsdGenerator::ApplyYourself( const G4HadProjectile& aTrack, // G4cout<GetParticleName()<<", "<GetPDGMass()<<" MeV; lvRes = "<operator[](i)->GetDefinition(), ddktv->operator[](i)->Get4Momentum()); + // G4cout<<" "<GetDefinition()->GetParticleName()<<", "<Get4Momentum()<operator[](i); } delete ddktv; - */ + return &theParticleChange; } diff --git a/source/processes/hadronic/models/de_excitation/History b/source/processes/hadronic/models/de_excitation/History index 3c86ec30be..e1158aaf4e 100644 --- a/source/processes/hadronic/models/de_excitation/History +++ b/source/processes/hadronic/models/de_excitation/History @@ -14,6 +14,171 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +16 June 2016 Vladimir Ivanchenko (hadr-deex-V10-02-30) +- G4PhotonEvaporation - removed debug cout + +09 June 2016 Vladimir Ivanchenko (hadr-deex-V10-02-29) +- G4DeexPrecoParameters, G4NuclearLevelData, G4ExcitationHandler, + G4PhotonEvaporation - fixed initialisation in MT mode if PhysicsList + has only radioactive decay + +09 June 2016 Vladimir Ivanchenko (hadr-deex-V10-02-28) +- G4PhotonEvaporation - fix initialisation, in the case of the + radioactive decay initialisation was incomplete, no effect on + hadron inelastic + +24 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-27) +- Fixed compillation problems of the previous tag +- Removed specific GEMCoulombBarrier classes per ion + +23 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-26) +- G4ExcitationHandler - removed G4Exception when MF model is called, + instead increase default limit on excitation energy per nucleon + to 100GeV +- Clean-up CoulombBarrier classes +- Clean-up FermiFragment classes + +17 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-25) +- G4ExcitationHandler - fixed crash at destruction introduced in the + previous tag + +17 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-24) +- G4ExcitationHandler - allowing addition of new evaporation or + FermiBreakUp models after the initialisation of the handler +- G4Evaporation - allowing change of the channel factory after + initialisation + +13 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-23) +- G4KalbachCrossSection - more smooth inverse cross section for + transitions of high enegry +- G4EvaporationProbability - use the same sampling algorithm as + in the pre-compound model (do not interpolate probability) + +07 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-22) +06 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-21) +- G4DeexPrecoParameters, Evaporation - use default channel factory +- G4NuclearLevelData, G4LevelManager - added method to access low-edge + levels +- G4EvaporationProbability - more detailed grid for probabilities +- G4NeutronRadCapture - added initialisation of G4PhotonEvaporation + +02 May 2016 Vladimir Ivanchenko (hadr-deex-V10-02-20) +- G4DeexPrecoParameters - fixed Coverity warning +- G4VEvaporation, G4Evaporation, G4VFermiBreakUp, G4FermiBreakUp, + G4PhotonEvaporation, G4ExcitationHandler - cleanup initialisation, + added G4VFermiBreakUp pure virtual methods allowing to have + alternative models + +27 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-17) +- code cleanup - many minor changes + +19 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-16) +- G4EvaporationChannel - fixed division by zero due to previous tags + +19 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-15) +- G4ExcitationHandler - fix previous tag for model level tests + +19 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-14) +- G4ExcitationHandler, G4DeexPrecoParameters, G4NeutronRadCapture - + full migration to G4DeexPrecoParameters + +15 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-13) +- G4DeexPrecoParameters - added de-excitation parameters; + allow to change parameters only from the master thread + and only at PreInit or Idle states +- G4LevelReader, G4VEvaporationChannel, G4LevelReader, + G4ExcitationHandler - removed commented lines, removed empty + descructors + +11 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-12) +- G4DeexPrecoParameters - added full list of pre-coumpound + parameters and extra de-excitation parameters +- in many headers added c++11 keywords + +08 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-11) +07 Apr 2016 Vladimir Ivanchenko (hadr-deex-V10-02-10) +---------------------------------------------------------- +- G4DeexPrecoParameters - renamed G4DeexParameters class and updated + list of parameters +- G4ExcitationHandler, G4EvaporationChannel, G4EvaporationProbability + use G4DeexPrecoParameters for initialisation; initialisation + is done ones at the first event +- G4NucLevel, G4LevelManager, G4LevelReader, G4PhotonEvaporation - + changed data structure for the transition data: instead of final + energy, index of final level, added multipolarity of the transition. + This will allow corellated gamma emission +- G4EvaporationChannel, G4EvaporationProbability - improved + initialisation of run time members +- G4NuclearLevelData - improved FindLevel method + +30 Mar 2016 Vladimir Ivanchenko (hadr-deex-V10-02-09) +---------------------------------------------------------- +- G4NuclearLevelData - added method FindLevel allowing to find discrete + level for any consumer model +- G4EvaporationProbability - fixed bug in computation of probability + density function; use this new method FindLevel when sample kinetic + energy of emitted particles; change interface for sampling method +- G4EvaporationChannel - used changed interface to the sampling of energy + +22 Mar 2016 Vladimir Ivanchenko (hadr-deex-V10-02-08) +---------------------------------------------------------- +- G4ExcitationHandler - improved warning printout for the high + energy excitation +- G4EvaporationChannel, G4EvaporationProbability - fixed kinematics + and added discrete excitation energy for the residual fragment + if the excitation is below max known level energy +- G4DeexParameters, G4NuclearLevelData - added new class for parameters + +07 Mar 2016 Vladimir Ivanchenko (hadr-deex-V10-02-07) +---------------------------------------------------------- +- G4LevelManager, G4NucLevel - asserts are substituted by G4Exception +- G4NuclearLevelData - extra methods are added allowing to acess the + max level energy per isotope in level DB +- G4ExcitationHandler - added warning for super excited fragments + +01 Mar 2016 Vladimir Ivanchenko (hadr-deex-V10-02-06) +---------------------------------------------------------- +- G4PhotonEvaporation - fixed final energy in the case of X-level +- G4ExcitationHandler - subsituted usage of iterators by simple + loop; add exception for the case of infinite loop of + evaporation + Both fixes address the problem report #1837 + +12 Feb 2016 Vladimir Ivanchenko (hadr-deex-V10-02-05) +---------------------------------------------------------- +- remove debug printout + +12 Feb 2016 Vladimir Ivanchenko (hadr-deex-V10-02-04) +---------------------------------------------------------- +- G4PhotonEvaporation, G4LevelReader, G4NucLevel - fixed treatment + of X-levels (meta-stable nuclear levels which have forbidden + gamma transition but opened beta-transitions); this fix excludes + creation of very low-energy fake gamma and provides a correct + nuclear decay sequence + +20 Jan 2016 Vladimir Ivanchenko (hadr-deex-V10-02-03) +---------------------------------------------------------- +- G4PhotonEvaporation, G4LevelManager - fixed one non-reproducibility + of the recent tag and also hidden rare old non-reproducibilty case + +19 Jan 2016 Vladimir Ivanchenko (hadr-deex-V10-02-02) +---------------------------------------------------------- +- G4PhotonEvaporation, G4LevelManager, G4LevelReader, G4NuclearLevelData + fixed remaining cases of production of excited stated (bug #1806) + +29 Dec 2015 Vladimir Ivanchenko (hadr-deex-V10-02-01) +---------------------------------------------------------- +- G4GammaTransition - add protection against rare problem in samling + of internal conversion when transition energy is lower than atomic + level energy: instead of stop of the cascade set bound level + energy to zero and produce final e-. This allowing to complete + radioactive decay cascade (bug #1806) + +16 Dec 2015 Vladimir Ivanchenko (hadr-deex-V10-02-00) +---------------------------------------------------------- +- G4PhotonEvaporation - set limit on emitted gamma energy 0.1 keV + (was 10 keV) + 20 Nov 2015 Vladimir Ivanchenko (hadr-deex-V10-01-63) ---------------------------------------------------------- - G4NuclearLevelData - protect G4MUTEXLOCK by ifdef statement, diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh index 3c8a4049ec..9ccf7709e6 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Evaporation.hh 88841 2015-03-12 10:34:14Z gcosmo $ +// $Id: G4Evaporation.hh 96931 2016-05-18 09:06:52Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -55,27 +55,26 @@ class G4VEvaporationFactory; class G4NistManager; class G4IonTable; -class G4FermiFragmentsPool; +class G4VFermiBreakUp; class G4Evaporation : public G4VEvaporation { public: - G4Evaporation(); - G4Evaporation(G4VEvaporationChannel* photoEvaporation); + explicit G4Evaporation(G4VEvaporationChannel* photoEvaporation = nullptr); virtual ~G4Evaporation(); - virtual void InitialiseChannels(); + virtual void InitialiseChannels() final; // primary fragment is copied, the copy is deleted // or is added to the list of products - G4FragmentVector * BreakItUp(const G4Fragment &theNucleus); + virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus) final; // new interface - vector of products is added to the provided vector // primary fragment is deleted or is modified and added to the list // of products - void BreakFragment(G4FragmentVector*, G4Fragment* theNucleus); + virtual void BreakFragment(G4FragmentVector*, G4Fragment* theNucleus) final; void SetDefaultChannel(); void SetGEMChannel(); @@ -83,17 +82,13 @@ public: private: - void SetParameters(); + void InitialiseChannelFactory(); - void InitialiseEvaporation(); + G4Evaporation(const G4Evaporation &right) = delete; + const G4Evaporation & operator=(const G4Evaporation &right) = delete; + G4bool operator==(const G4Evaporation &right) const = delete; + G4bool operator!=(const G4Evaporation &right) const = delete; - G4Evaporation(const G4Evaporation &right); - - const G4Evaporation & operator=(const G4Evaporation &right); - G4bool operator==(const G4Evaporation &right) const; - G4bool operator!=(const G4Evaporation &right) const; - - std::vector probabilities; size_t nChannels; G4int maxZforFBU; G4int maxAforFBU; @@ -101,7 +96,9 @@ private: G4NistManager* nist; G4IonTable* theTableOfIons; G4UnstableFragmentBreakUp unstableBreakUp; - G4FermiFragmentsPool* thePool; + G4bool isInitialised; + + std::vector probabilities; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh index ba484dfd48..187287d3fe 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EvaporationChannel.hh 90273 2015-05-22 10:20:32Z gcosmo $ +// $Id: G4EvaporationChannel.hh 96402 2016-04-12 07:30:48Z gcosmo $ // // //J.M. Quesada (August2008). Based on: @@ -42,16 +42,16 @@ #include "G4EvaporationProbability.hh" #include "G4VCoulombBarrier.hh" -class G4EvaporationLevelDensityParameter; class G4PairingCorrection; class G4EvaporationChannel : public G4VEvaporationChannel { public: - G4EvaporationChannel(G4int theA, G4int theZ, const G4String & aName, - G4EvaporationProbability * aEmissionStrategy, - G4VCoulombBarrier * aCoulombBarrier); + explicit G4EvaporationChannel(G4int A, G4int Z, + const G4String & aName, + G4EvaporationProbability*, + G4VCoulombBarrier*); virtual ~G4EvaporationChannel(); @@ -61,42 +61,33 @@ public: virtual G4Fragment* EmittedFragment(G4Fragment* theNucleus); - virtual G4FragmentVector * BreakUp(const G4Fragment & theNucleus); + virtual G4FragmentVector* BreakUp(const G4Fragment & theNucleus); private: - // This has to be removed and put in Random Generator - G4ThreeVector IsotropicVector(G4double Magnitude = 1.0); - - G4EvaporationChannel(const G4EvaporationChannel & right); - const G4EvaporationChannel & operator=(const G4EvaporationChannel & right); - G4bool operator==(const G4EvaporationChannel & right) const; - G4bool operator!=(const G4EvaporationChannel & right) const; + G4EvaporationChannel(const G4EvaporationChannel & right) = delete; + const G4EvaporationChannel & operator=(const G4EvaporationChannel & right) = delete; + G4bool operator==(const G4EvaporationChannel & right) const = delete; + G4bool operator!=(const G4EvaporationChannel & right) const = delete; private: // This data member define the channel. // They are intializated at object creation (constructor) time. - // Atomic Number of ejectile G4int theA; - - // Charge of ejectile G4int theZ; - G4double EvaporatedMass; - G4double ResidualMass; + G4double EvapMass; + G4double CoulombBarrier; // For evaporation probability calcualation G4EvaporationProbability * theProbability; - // For Level Density calculation - G4VLevelDensityParameter * theLevelDensityPtr; - // For Coulomb Barrier calculation G4VCoulombBarrier * theCoulombBarrier; - G4double CoulombBarrier; + // For pairing correction calculation G4PairingCorrection* pairingCorrection; //--------------------------------------------------- @@ -106,17 +97,17 @@ private: // takes as parameters // the atomic number, charge and excitation energy of nucleus. - // Residual Mass Number - G4int ResidualA; + G4int ResA; + G4int ResZ; - // Residual Charge - G4int ResidualZ; + G4double Mass; // Emission Probability G4double EmissionProbability; - // Maximal Kinetic Energy that can be carried by fragment - G4double MaximalKineticEnergy; + // Kinetic Energy that can be carried by fragment + G4double MinKinEnergy; + G4double MaxKinEnergy; }; diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationDefaultGEMFactory.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationDefaultGEMFactory.hh index 09f01e8579..2d677fab39 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationDefaultGEMFactory.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationDefaultGEMFactory.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EvaporationDefaultGEMFactory.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4EvaporationDefaultGEMFactory.hh 96402 2016-04-12 07:30:48Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by J. M. Quesada (July 2009) on base of V. Lara code @@ -48,7 +48,7 @@ class G4EvaporationDefaultGEMFactory : public G4VEvaporationFactory { public: - G4EvaporationDefaultGEMFactory(G4VEvaporationChannel* photoEvaporation); + explicit G4EvaporationDefaultGEMFactory(G4VEvaporationChannel* photoEvaporation); virtual ~G4EvaporationDefaultGEMFactory(); @@ -56,10 +56,10 @@ public: private: - G4EvaporationDefaultGEMFactory(const G4EvaporationDefaultGEMFactory & ); - const G4EvaporationDefaultGEMFactory & operator=(const G4EvaporationDefaultGEMFactory & val); - G4bool operator==(const G4EvaporationDefaultGEMFactory & val) const; - G4bool operator!=(const G4EvaporationDefaultGEMFactory & val) const; + G4EvaporationDefaultGEMFactory(const G4EvaporationDefaultGEMFactory & ) = delete; + const G4EvaporationDefaultGEMFactory & operator=(const G4EvaporationDefaultGEMFactory & val) = delete; + G4bool operator==(const G4EvaporationDefaultGEMFactory & val) const = delete; + G4bool operator!=(const G4EvaporationDefaultGEMFactory & val) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh index 688d782faa..a2c743ac41 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EvaporationFactory.hh 88911 2015-03-16 12:52:18Z gcosmo $ +// $Id: G4EvaporationFactory.hh 96402 2016-04-12 07:30:48Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -44,7 +44,7 @@ class G4EvaporationFactory : public G4VEvaporationFactory { public: - G4EvaporationFactory(G4VEvaporationChannel* photoEvaporation); + explicit G4EvaporationFactory(G4VEvaporationChannel* photoEvaporation); virtual ~G4EvaporationFactory(); @@ -52,10 +52,10 @@ public: private: - G4EvaporationFactory(const G4EvaporationFactory & ); - const G4EvaporationFactory & operator=(const G4EvaporationFactory & val); - G4bool operator==(const G4EvaporationFactory & val) const; - G4bool operator!=(const G4EvaporationFactory & val) const; + G4EvaporationFactory(const G4EvaporationFactory & ) = delete; + const G4EvaporationFactory & operator=(const G4EvaporationFactory & val) = delete; + G4bool operator==(const G4EvaporationFactory & val) const = delete; + G4bool operator!=(const G4EvaporationFactory & val) const = delete; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh index cbdaa57c61..8f5ef9637b 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EvaporationProbability.hh 90273 2015-05-22 10:20:32Z gcosmo $ +// $Id: G4EvaporationProbability.hh 96867 2016-05-13 13:50:58Z gcosmo $ // //J.M. Quesada (August2008). Based on: // @@ -38,13 +38,17 @@ #include "G4EvaporationLevelDensityParameter.hh" class G4VCoulombBarrier; +class G4NuclearLevelData; + +const G4int NPOINTSGL = 10; class G4EvaporationProbability : public G4VEmissionProbability { public: - G4EvaporationProbability(G4int anA, G4int aZ, G4double aGamma, - G4VCoulombBarrier *); + explicit G4EvaporationProbability(G4int anA, G4int aZ, + G4double aGamma, + G4VCoulombBarrier *); virtual ~G4EvaporationProbability(); @@ -62,7 +66,8 @@ public: G4double ProbabilityDistributionFunction(G4double K); - // Samples fragment kinetic energy. + // Samples fragment kinetic energy and excitation energy + // of the residual nucleaus G4double SampleKineticEnergy(G4double minKineticEnergy, G4double maxKineticEnergy); @@ -79,11 +84,13 @@ private: G4double CrossSection(G4double K); // Copy constructor - G4EvaporationProbability(const G4EvaporationProbability &right); + G4EvaporationProbability(const G4EvaporationProbability &right) = delete; - const G4EvaporationProbability & operator=(const G4EvaporationProbability &right); - G4bool operator==(const G4EvaporationProbability &right) const; - G4bool operator!=(const G4EvaporationProbability &right) const; + const G4EvaporationProbability & operator=(const G4EvaporationProbability &right) = delete; + G4bool operator==(const G4EvaporationProbability &right) const = delete; + G4bool operator!=(const G4EvaporationProbability &right) const = delete; + + G4NuclearLevelData* fLevelData; G4int theA; G4int theZ; @@ -98,14 +105,18 @@ private: G4double muu; G4double partMass; G4double resMass; - G4double fragMass; + G4double Mass; G4double U, delta0, delta1, a0; // Gamma is A_f(2S_f+1) factor, where A_f is fragment atomic // number and S_f is fragment spin G4double Gamma; - G4double probability[11]; + G4double probmax; + + static const G4double ws[NPOINTSGL]; + static const G4double xs[NPOINTSGL]; + }; #endif diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh index 8607ba9f9d..fa4012bb1e 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEvaporation.hh 88841 2015-03-12 10:34:14Z gcosmo $ +// $Id: G4VEvaporation.hh 96744 2016-05-03 08:04:28Z gcosmo $ // // Hadronic Process: Nuclear De-excitations interface // @@ -48,11 +48,13 @@ #include class G4VEvaporationChannel; +class G4VFermiBreakUp; class G4VEvaporation { public: - G4VEvaporation(); + + explicit G4VEvaporation(); virtual ~G4VEvaporation(); // primary fragment is copied to the new instance, the copy is deleted @@ -69,6 +71,9 @@ public: virtual void SetPhotonEvaporation(G4VEvaporationChannel* ptr); + inline void SetFermiBreakUp(G4VFermiBreakUp* ptr); + + inline G4VFermiBreakUp* GetFermiBreakUp() const; inline G4VEvaporationChannel* GetPhotonEvaporation(); inline G4VEvaporationChannel* GetFissionChannel(); @@ -82,6 +87,7 @@ protected: void CleanChannels(); G4VEvaporationChannel* thePhotonEvaporation; + G4VFermiBreakUp* theFBU; G4int OPTxs; G4bool useSICB; @@ -90,13 +96,23 @@ protected: G4VEvaporationFactory * theChannelFactory; private: - G4VEvaporation(const G4VEvaporation &right); - const G4VEvaporation & operator=(const G4VEvaporation &right); - G4bool operator==(const G4VEvaporation &right) const; - G4bool operator!=(const G4VEvaporation &right) const; + G4VEvaporation(const G4VEvaporation &right) = delete; + const G4VEvaporation & operator=(const G4VEvaporation &right) = delete; + G4bool operator==(const G4VEvaporation &right) const = delete; + G4bool operator!=(const G4VEvaporation &right) const = delete; }; +inline void G4VEvaporation::SetFermiBreakUp(G4VFermiBreakUp* ptr) +{ + theFBU = ptr; +} + +inline G4VFermiBreakUp* G4VEvaporation::GetFermiBreakUp() const +{ + return theFBU; +} + inline G4VEvaporationChannel* G4VEvaporation::GetPhotonEvaporation() { return thePhotonEvaporation; diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc index 72cc0034e8..5d4ed0ce54 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Evaporation.cc 94459 2015-11-18 14:39:46Z gcosmo $ +// $Id: G4Evaporation.cc 96931 2016-05-18 09:06:52Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -53,94 +53,86 @@ #include "G4EvaporationFactory.hh" #include "G4EvaporationGEMFactory.hh" #include "G4EvaporationDefaultGEMFactory.hh" -#include "G4HadronicException.hh" #include "G4NistManager.hh" -#include "G4FermiFragmentsPool.hh" +#include "G4VFermiBreakUp.hh" #include "G4PhotonEvaporation.hh" #include "G4PhotonEvaporationOLD.hh" #include "G4VEvaporationChannel.hh" #include "G4ParticleTable.hh" #include "G4IonTable.hh" - -G4Evaporation::G4Evaporation() - : nChannels(0) -{ - thePool = G4FermiFragmentsPool::Instance(); - - G4VEvaporationChannel* gammaEvap = 0; - char* env = getenv("G4UsePhotonEvaporationOLD"); - if(env) { gammaEvap = new G4PhotonEvaporationOLD(); } - else { gammaEvap = new G4PhotonEvaporation(); } - SetPhotonEvaporation(gammaEvap); - - theChannelFactory = new G4EvaporationDefaultGEMFactory(thePhotonEvaporation); - SetParameters(); - InitialiseEvaporation(); - theTableOfIons = G4ParticleTable::GetParticleTable()->GetIonTable(); -} +#include "G4NuclearLevelData.hh" +#include "G4DeexPrecoParameters.hh" +#include "Randomize.hh" G4Evaporation::G4Evaporation(G4VEvaporationChannel* photoEvaporation) - : nChannels(0) + : G4VEvaporation(), nChannels(0), maxZforFBU(), maxAforFBU(), + minExcitation(0.1*keV), isInitialised(false) { if(photoEvaporation) { SetPhotonEvaporation(photoEvaporation); } else { SetPhotonEvaporation(new G4PhotonEvaporation()); } - thePool = G4FermiFragmentsPool::Instance(); - theChannelFactory = new G4EvaporationDefaultGEMFactory(thePhotonEvaporation); - SetParameters(); - InitialiseEvaporation(); + theChannelFactory = new G4EvaporationFactory(thePhotonEvaporation); + theChannels = theChannelFactory->GetChannel(); + theTableOfIons = G4ParticleTable::GetParticleTable()->GetIonTable(); + nist = G4NistManager::Instance(); } G4Evaporation::~G4Evaporation() {} -void G4Evaporation::SetParameters() +void G4Evaporation::InitialiseChannels() { - nist = G4NistManager::Instance(); - minExcitation = 0.1*CLHEP::keV; - maxZforFBU = thePool->GetMaxZ(); - maxAforFBU = thePool->GetMaxA(); - probabilities.reserve(68); + if(isInitialised) { return; } + + G4DeexPrecoParameters* param = + G4NuclearLevelData::GetInstance()->GetParameters(); + minExcitation = param->GetMinExcitation(); + maxZforFBU = param->GetMaxZForFermiBreakUp(); + maxAforFBU = param->GetMaxAForFermiBreakUp(); + + G4DeexChannelType type = param->GetDeexChannels(); + if(type == fCombined) { SetCombinedChannel(); } + else if(type == fGEM) { SetGEMChannel(); } + + InitialiseChannelFactory(); + isInitialised = true; } -void G4Evaporation::InitialiseEvaporation() +void G4Evaporation::InitialiseChannelFactory() { - CleanChannels(); theChannels = theChannelFactory->GetChannel(); nChannels = theChannels->size(); probabilities.resize(nChannels, 0.0); - InitialiseChannels(); -} -void G4Evaporation::InitialiseChannels() -{ for(size_t i=0; iSetOPTxs(OPTxs); - (*theChannels)[i]->UseSICB(useSICB); (*theChannels)[i]->Initialise(); } } void G4Evaporation::SetDefaultChannel() { + CleanChannels(); delete theChannelFactory; theChannelFactory = new G4EvaporationFactory(thePhotonEvaporation); - InitialiseEvaporation(); + InitialiseChannelFactory(); } void G4Evaporation::SetGEMChannel() { + CleanChannels(); delete theChannelFactory; theChannelFactory = new G4EvaporationGEMFactory(thePhotonEvaporation); - InitialiseEvaporation(); + InitialiseChannelFactory(); } void G4Evaporation::SetCombinedChannel() { + CleanChannels(); delete theChannelFactory; theChannelFactory = new G4EvaporationDefaultGEMFactory(thePhotonEvaporation); - InitialiseEvaporation(); + InitialiseChannelFactory(); } G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) @@ -154,6 +146,8 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) void G4Evaporation::BreakFragment(G4FragmentVector* theResult, G4Fragment* theResidualNucleus) { + if(!isInitialised) { InitialiseChannels(); } + G4double totprob, prob, oldprob = 0.0; size_t maxchannel, i; @@ -171,7 +165,7 @@ void G4Evaporation::BreakFragment(G4FragmentVector* theResult, // stop deecitation loop if residual can be deexcited by FBU if(maxZforFBU > Z && maxAforFBU > A && Z > 0 && A > Z) { - if(thePool->IsApplicable(Z, A, mass+Eex)) { + if(theFBU->IsApplicable(Z, A, mass+Eex)) { theResult->push_back(theResidualNucleus); return; } @@ -199,13 +193,13 @@ void G4Evaporation::BreakFragment(G4FragmentVector* theResult, // loop over evaporation channels for(i=0; iGetEmissionProbability(theResidualNucleus); - // G4cout << " Channel# " << i << " prob= " << prob << G4endl; + //G4cout << " Channel# " << i << " prob= " << prob << G4endl; totprob += prob; probabilities[i] = totprob; // if two recent probabilities are near zero stop computations - if(i>=8) { + if(i>=8 && prob > 0.0) { if(prob <= totprob*1.e-8 && oldprob <= totprob*1.e-8) { maxchannel = i+1; break; @@ -217,7 +211,7 @@ void G4Evaporation::BreakFragment(G4FragmentVector* theResult, // photon evaporation in the case of no other channels available // do evaporation chain and reset total probability if(0.0 < totprob && probabilities[0] == totprob) { - // G4cout << "Start chain of gamma evaporation" << G4endl; + //G4cout << "Start chain of gamma evaporation" << G4endl; (*theChannels)[0]->BreakUpChain(theResult, theResidualNucleus); totprob = 0.0; } @@ -239,6 +233,7 @@ void G4Evaporation::BreakFragment(G4FragmentVector* theResult, totprob *= G4UniformRand(); // loop over evaporation channels for(i=0; i= totprob) { break; } } + if(i >= maxchannel) { i = maxchannel-1; } //G4cout << "Channel # " << i << G4endl; G4Fragment* frag = (*theChannels)[i]->EmittedFragment(theResidualNucleus); 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 5ee98754c1..001f11beeb 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4EvaporationChannel.cc 90273 2015-05-22 10:20:32Z gcosmo $ +// $Id: G4EvaporationChannel.cc 96795 2016-05-09 10:11:33Z gcosmo $ // //J.M. Quesada (August2008). Based on: // @@ -44,10 +44,10 @@ #include "G4Pow.hh" #include "G4Log.hh" #include "G4Exp.hh" -#include "G4EvaporationLevelDensityParameter.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "Randomize.hh" +#include "G4RandomDirection.hh" #include "G4Alpha.hh" G4EvaporationChannel::G4EvaporationChannel(G4int anA, G4int aZ, @@ -58,30 +58,20 @@ G4EvaporationChannel::G4EvaporationChannel(G4int anA, G4int aZ, theA(anA), theZ(aZ), theProbability(aprob), - theCoulombBarrier(barrier), - EmissionProbability(0.0), - MaximalKineticEnergy(-1000.0) + theCoulombBarrier(barrier) { - ResidualA = 0; - ResidualZ = 0; - ResidualMass = CoulombBarrier = 0.0; - EvaporatedMass = G4NucleiProperties::GetNuclearMass(theA, theZ); - theLevelDensityPtr = new G4EvaporationLevelDensityParameter; + ResA = ResZ = 0; + Mass = CoulombBarrier = MinKinEnergy = MaxKinEnergy = EmissionProbability = 0.0; + EvapMass = G4NucleiProperties::GetNuclearMass(theA, theZ); pairingCorrection = G4PairingCorrection::GetInstance(); } G4EvaporationChannel::~G4EvaporationChannel() -{ - delete theLevelDensityPtr; -} +{} void G4EvaporationChannel::Initialise() { - //for inverse cross section choice - theProbability->SetOPTxs(OPTxs); - // for superimposed Coulomb Barrier for inverse cross sections - theProbability->UseSICB(useSICB); - + theProbability->Initialise(); G4VEvaporationChannel::Initialise(); } @@ -89,70 +79,67 @@ G4double G4EvaporationChannel::GetEmissionProbability(G4Fragment* fragment) { G4int FragA = fragment->GetA_asInt(); G4int FragZ = fragment->GetZ_asInt(); - ResidualA = FragA - theA; - ResidualZ = FragZ - theZ; + ResA = FragA - theA; + ResZ = FragZ - theZ; + + G4double FragmentMass = fragment->GetGroundStateMass(); + G4double ExEnergy = fragment->GetExcitationEnergy(); + Mass = FragmentMass + ExEnergy; //G4cout << "G4EvaporationChannel::Initialize Z= " << theZ << " A= " << theA // << " FragZ= " << FragZ << " FragA= " << FragA << G4endl; EmissionProbability = 0.0; // Only channels which are physically allowed are taken into account - if (ResidualA >= ResidualZ && ResidualZ > 0 && ResidualA >= theA) { + if (ResA >= ResZ && ResZ > 0 && ResA >= theA) { //Effective excitation energy - G4double ExEnergy = fragment->GetExcitationEnergy(); + G4double ResMass = G4NucleiProperties::GetNuclearMass(ResA, ResZ); + + CoulombBarrier = theCoulombBarrier->GetCoulombBarrier(ResA,ResZ,ExEnergy); + G4double delta0 = std::max(0.0,pairingCorrection->GetPairingCorrection(FragA,FragZ)); G4double delta1 = - std::max(0.0,pairingCorrection->GetPairingCorrection(ResidualA,ResidualZ)); - ResidualMass = G4NucleiProperties::GetNuclearMass(ResidualA, ResidualZ); - G4double FragmentMass = fragment->GetGroundStateMass(); - G4double Etot = FragmentMass + ExEnergy; - G4double ResMass = ResidualMass + delta1; + std::max(0.0,pairingCorrection->GetPairingCorrection(ResA,ResZ)); + ResMass += delta1; + /* + G4cout << "ExEnergy= " << ExEnergy << " Ec= " << CoulombBarrier + << " delta0= " << delta0 << " delta1= " << delta1 + << " Free= " << Mass - ResMass - EvapMass + << G4endl; + */ + if(ExEnergy >= delta0 && Mass >= ResMass + EvapMass + CoulombBarrier) { + //if(Mass >= ResMass + EvapMass + CoulombBarrier) { - if(ExEnergy >= delta0 && Etot > ResMass + EvaporatedMass) { - - // Maximal Kinetic Energy - MaximalKineticEnergy = ((Etot-ResMass)*(Etot+ResMass) - + EvaporatedMass*EvaporatedMass)/(2.0*Etot) - EvaporatedMass; - - // The threshold for charged particle emission must be set to - // 0 if Coulomb cutoff is included in the cross sections - // Of course for OPTxs=0 we have the Coulomb barrier - - CoulombBarrier = 0.0; - if (OPTxs==0 || useSICB) { - CoulombBarrier = - theCoulombBarrier->GetCoulombBarrier(ResidualA,ResidualZ,ExEnergy); - } - if (MaximalKineticEnergy > CoulombBarrier) { - EmissionProbability = theProbability-> - TotalProbability(*fragment, CoulombBarrier, MaximalKineticEnergy); - } + G4double xm2 = (Mass - EvapMass)*(Mass - EvapMass); + G4double xm = Mass - EvapMass - CoulombBarrier; + MinKinEnergy = std::max(0.5*(xm2 - xm*xm)/Mass, 0.0); + MaxKinEnergy = 0.5*(xm2 - ResMass*ResMass)/Mass; + //G4cout << "Emin= " << MinKinEnergy << " Emax= " << MaxKinEnergy + // << " xm= " << xm - ResMass << G4endl; + EmissionProbability = theProbability-> + TotalProbability(*fragment, MinKinEnergy, MaxKinEnergy); } } //G4cout << "G4EvaporationChannel:: probability= " - // << EmissionProbability << G4endl; + // << EmissionProbability << G4endl; return EmissionProbability; } G4Fragment* G4EvaporationChannel::EmittedFragment(G4Fragment* theNucleus) { - G4Fragment* evFragment = 0; - G4double evEnergy = EvaporatedMass + - theProbability->SampleKineticEnergy(CoulombBarrier, - MaximalKineticEnergy); + G4Fragment* evFragment = nullptr; + G4double ekin = theProbability->SampleKineticEnergy(MinKinEnergy, MaxKinEnergy); - G4ThreeVector momentum(IsotropicVector - (std::sqrt((evEnergy - EvaporatedMass)*(evEnergy + EvaporatedMass)))); - - G4LorentzVector EvaporatedMomentum(momentum, evEnergy); - G4LorentzVector ResidualMomentum = theNucleus->GetMomentum(); - EvaporatedMomentum.boost(ResidualMomentum.boostVector()); - - evFragment = new G4Fragment(theA,theZ,EvaporatedMomentum); - ResidualMomentum -= EvaporatedMomentum; - theNucleus->SetZandA_asInt(ResidualZ, ResidualA); - theNucleus->SetMomentum(ResidualMomentum); + G4LorentzVector lv0 = theNucleus->GetMomentum(); + G4LorentzVector lv(std::sqrt(ekin*(ekin + 2.0*EvapMass))*G4RandomDirection(), + ekin + EvapMass); + lv.boost(lv0.boostVector()); + + evFragment = new G4Fragment(theA, theZ, lv); + lv0 -= lv; + theNucleus->SetZandA_asInt(ResZ, ResA); + theNucleus->SetMomentum(lv0); return evFragment; } @@ -166,16 +153,3 @@ G4FragmentVector * G4EvaporationChannel::BreakUp(const G4Fragment & theNucleus) theResult->push_back(frag0); return theResult; } - -G4ThreeVector G4EvaporationChannel::IsotropicVector(G4double Magnitude) - // Samples a isotropic random vectorwith a magnitud given by Magnitude. - // By default Magnitude = 1.0 -{ - G4double CosTheta = 1.0 - 2.0*G4UniformRand(); - G4double SinTheta = std::sqrt(1.0 - CosTheta*CosTheta); - G4double Phi = twopi*G4UniformRand(); - G4ThreeVector Vector(Magnitude*std::cos(Phi)*SinTheta, - Magnitude*std::sin(Phi)*SinTheta, - Magnitude*CosTheta); - return Vector; -} diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationDefaultGEMFactory.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationDefaultGEMFactory.cc index 28650457dc..af73386d29 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationDefaultGEMFactory.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationDefaultGEMFactory.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EvaporationDefaultGEMFactory.cc 92431 2015-09-01 09:11:46Z gcosmo $ +// $Id: G4EvaporationDefaultGEMFactory.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by J. M. Quesada (July 2009) on base of V. Lara code @@ -124,8 +124,8 @@ std::vector* G4EvaporationDefaultGEMFactory::GetChannel( new std::vector; theChannel->reserve(68); - theChannel->push_back( thePhotonEvaporation ); // Photon Channel - theChannel->push_back( new G4CompetitiveFission() ); // Fission Channel + theChannel->push_back( thePhotonEvaporation ); // Photon Channel + theChannel->push_back( new G4CompetitiveFission() ); // Fission Channel // JMQ 220709 standard particle evaporation channels (Z<3,A<5) theChannel->push_back( new G4NeutronEvaporationChannel() ); // n @@ -198,7 +198,7 @@ std::vector* G4EvaporationDefaultGEMFactory::GetChannel( theChannel->push_back( new G4Mg28GEMChannel() ); // Mg28 size_t nn = theChannel->size(); - for(size_t i=2; iSetPhotonEvaporation(thePhotonEvaporation); } return theChannel; diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc index a7b13af4f5..91baafbb2c 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4EvaporationFactory.cc 92431 2015-09-01 09:11:46Z gcosmo $ +// $Id: G4EvaporationFactory.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -58,7 +58,7 @@ std::vector* G4EvaporationFactory::GetChannel() theChannel->reserve(8); theChannel->push_back( thePhotonEvaporation ); // Photon Channel - theChannel->push_back( new G4CompetitiveFission() ); // Fission Channel + theChannel->push_back( new G4CompetitiveFission() ); // Fission Channel theChannel->push_back( new G4NeutronEvaporationChannel() ); // n theChannel->push_back( new G4ProtonEvaporationChannel() ); // p @@ -68,7 +68,7 @@ std::vector* G4EvaporationFactory::GetChannel() theChannel->push_back( new G4AlphaEvaporationChannel() ); // Alpha size_t nn = theChannel->size(); - for(size_t i=2; iSetPhotonEvaporation(thePhotonEvaporation); } 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 3eabbfcf74..454c58019d 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc @@ -37,6 +37,7 @@ // hbar_Planck in the denominator // #include "G4EvaporationProbability.hh" +#include "G4NuclearLevelData.hh" #include "G4VCoulombBarrier.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" @@ -49,9 +50,31 @@ using namespace std; -static const G4double explim = 350.; -static const G4double invmev = 1./CLHEP::MeV; -static const G4double ssqr3 = 1.5*std::sqrt(3.0); +// 10-Points Gauss-Legendre abcisas and weights +const G4double G4EvaporationProbability::ws[] = { + 0.0666713443086881, + 0.149451349150581, + 0.219086362515982, + 0.269266719309996, + 0.295524224714753, + 0.295524224714753, + 0.269266719309996, + 0.219086362515982, + 0.149451349150581, + 0.0666713443086881 + }; +const G4double G4EvaporationProbability::xs[] = { + -0.973906528517172, + -0.865063366688985, + -0.679409568299024, + -0.433395394129247, + -0.148874338981631, + 0.148874338981631, + 0.433395394129247, + 0.679409568299024, + 0.865063366688985, + 0.973906528517172 +}; G4EvaporationProbability::G4EvaporationProbability(G4int anA, G4int aZ, G4double aGamma, @@ -61,12 +84,12 @@ G4EvaporationProbability::G4EvaporationProbability(G4int anA, G4int aZ, Gamma(aGamma) { resZ = resA = fragA = fragZ = nbins = 0; - resA13 = muu = resMass = fragMass = U = delta0 = delta1 = a0 = 0.0; + resA13 = muu = resMass = Mass = U = delta0 = delta1 = a0 = probmax = 0.0; partMass = G4NucleiProperties::GetNuclearMass(theA, theZ); index = 0; if(1 == theZ) { index = theA; } else { index = theA + 1; } - for(G4int i=0; i<11; ++i) { probability[i] = 0.0; } + fLevelData = G4NuclearLevelData::GetInstance(); } G4EvaporationProbability::~G4EvaporationProbability() @@ -82,43 +105,43 @@ G4double G4EvaporationProbability::EmissionProbability( G4double G4EvaporationProbability::TotalProbability( const G4Fragment & fragment, G4double minEnergy, G4double maxEnergy) { - if (maxEnergy <= minEnergy) { return 0.0; } - fragA = fragment.GetA_asInt(); fragZ = fragment.GetZ_asInt(); resA = fragA - theA; resZ = fragZ - theZ; + G4double fragMass = fragment.GetGroundStateMass(); U = fragment.GetExcitationEnergy(); + Mass = fragMass + U; delta0 = std::max(0.0, fPairCorr->GetPairingCorrection(fragA,fragZ)); - if(U < delta0) { return 0.0; } - - fragMass = fragment.GetGroundStateMass(); delta1 = std::max(0.0, fPairCorr->GetPairingCorrection(resA,resZ)); resMass = G4NucleiProperties::GetNuclearMass(resA, resZ); resA13 = fG4pow->Z13(resA); + a0 = LevelDensity*fragA; + + if(U < delta0 || maxEnergy <= minEnergy) { return 0.0; } G4double Width = 0.0; if (OPTxs==0) { - G4double SystemEntropy = 2.0*std::sqrt( - theEvapLDPptr->LevelDensityParameter(fragA,fragZ,U)*(U-delta0)); + G4double SystemEntropy = 2.0*std::sqrt(a0*(U-delta0)); static const G4double RN2 = 2.25*fermi*fermi/(twopi* hbar_Planck*hbar_Planck); G4double Alpha = CalcAlphaParam(fragment); G4double Beta = CalcBetaParam(fragment); - - a0 = theEvapLDPptr->LevelDensityParameter(resA,resZ,maxEnergy); - G4double GlobalFactor = Gamma*Alpha*partMass*RN2*resA13*resA13/(a0*a0); + + // to be checked where to use a0, where - a1 + G4double a1 = LevelDensity*resA; + G4double GlobalFactor = Gamma*Alpha*partMass*RN2*resA13*resA13/(a1*a1); - G4double maxea = maxEnergy*a0; - G4double Term1 = Beta*a0 - 1.5 + maxea; - G4double Term2 = (2.0*Beta*a0-3.0)*std::sqrt(maxea) + 2*maxea; + G4double maxea = maxEnergy*a1; + G4double Term1 = Beta*a1 - 1.5 + maxea; + G4double Term2 = (2.0*Beta*a1-3.0)*std::sqrt(maxea) + 2*maxea; - G4double ExpTerm1 = 0.0; - if (SystemEntropy <= explim) { ExpTerm1 = G4Exp(-SystemEntropy); } + static const G4double explim = 350.; + G4double ExpTerm1 = (SystemEntropy <= explim) ? G4Exp(-SystemEntropy) : 0.0; G4double ExpTerm2 = 2.*std::sqrt(maxea) - SystemEntropy; ExpTerm2 = std::min(ExpTerm2, explim); @@ -128,7 +151,6 @@ G4double G4EvaporationProbability::TotalProbability( } else { - a0 = theEvapLDPptr->LevelDensityParameter(fragA,fragZ,U - delta0); // compute power once if(OPTxs <= 2) { muu = G4ChatterjeeCrossSection::ComputePowerParameter(resA, index); @@ -142,22 +164,23 @@ G4double G4EvaporationProbability::TotalProbability( return Width; } -G4double -G4EvaporationProbability::IntegrateEmissionProbability(G4double low, G4double up) +G4double G4EvaporationProbability::IntegrateEmissionProbability(G4double low, + G4double up) { + G4double del = (up - low)*0.5; + G4double avr = (up + low)*0.5; + + G4double e, y; + probmax = 0.0; G4double sum = 0.0; - G4double del = up - low; - nbins = std::min(10, G4int(del*invmev)); - nbins = std::max(nbins, 2); - del /= G4double(nbins); - G4double T = low - del*0.5; - for(G4int i=1; i<=nbins; ++i) { - T += del; - sum += ProbabilityDistributionFunction(T); - probability[i] = sum; + + for (G4int i=0; i probmax= " << probmax + << " T= " << T << " Emin= " << minKinEnergy + << " Emax= " << maxKinEnergy << " Z= " << theZ + << " A= " << theA << " FragZ= " << fragZ + << " FragA= " << fragA << " i= " << i << G4endl; + } + */ + if(probmax*rndm->flat() <= prob) { break; } + } } - //G4cout << " T= " << T << G4endl; return T; + //return fLevelData->FindLevel(resZ, resA, resMass, Mass, partMass, T); } diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc index 088ab16fb3..b0807302fe 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4He3EvaporationProbability.cc 89518 2015-04-15 14:43:30Z gcosmo $ +// $Id: G4He3EvaporationProbability.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // J.M. Quesada (August2008). Based on: // @@ -54,7 +54,7 @@ G4double G4He3EvaporationProbability::CalcAlphaParam(const G4Fragment& fragment) // G4double Calpha[5] = { 0.10, 0.10, 0.10, 0.08, 0.06}; // C for He3 is equal to C for alpha times 4/3 - G4int aZ = fragment.GetZ_asInt()-GetZ(); + G4int aZ = fragment.GetZ_asInt() - GetZ(); G4double C; if (aZ <= 30) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc index 8266b53073..3e19cf2477 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NeutronEvaporationProbability.cc 89518 2015-04-15 14:43:30Z gcosmo $ +// $Id: G4NeutronEvaporationProbability.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // J.M. Quesada (August2008). Based on: // @@ -46,12 +46,12 @@ G4NeutronEvaporationProbability::~G4NeutronEvaporationProbability() G4double G4NeutronEvaporationProbability::CalcAlphaParam(const G4Fragment& fragment) { - return 0.76+2.2/fG4pow->Z13(fragment.GetA_asInt()-GetA()); + return 0.76+2.2/fG4pow->Z13(fragment.GetA_asInt() - 1); } G4double G4NeutronEvaporationProbability::CalcBetaParam(const G4Fragment& fragment) { - return (2.12/fG4pow->Z23(fragment.GetA_asInt()-GetA()) - 0.05)*MeV/ + return (2.12/fG4pow->Z23(fragment.GetA_asInt() - 1) - 0.05)*CLHEP::MeV/ CalcAlphaParam(fragment); } diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc index 39684d6871..acc83b2f2e 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ProtonEvaporationProbability.cc 89518 2015-04-15 14:43:30Z gcosmo $ +// $Id: G4ProtonEvaporationProbability.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // J.M. Quesada (August2008). Based on: // @@ -43,7 +43,8 @@ G4ProtonEvaporationProbability::G4ProtonEvaporationProbability() : G4ProtonEvaporationProbability::~G4ProtonEvaporationProbability() {} -G4double G4ProtonEvaporationProbability::CalcAlphaParam(const G4Fragment& fragment) +G4double +G4ProtonEvaporationProbability::CalcAlphaParam(const G4Fragment& fragment) { // Data comes from // Dostrovsky, Fraenkel and Friedlander @@ -54,14 +55,10 @@ G4double G4ProtonEvaporationProbability::CalcAlphaParam(const G4Fragment& fragme // G4double Cp[5] = { 0.50, 0.28, 0.20, 0.15, 0.10}; G4int aZ = fragment.GetZ_asInt()-GetZ(); - G4double C; - - if (aZ >= 70) { - C = 0.10; - } else { - C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + G4double C = (aZ >= 70) ? 0.10 : + ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; - } + return 1.0 + C; } diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc index ff9c98d31d..12ad53d78f 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TritonEvaporationProbability.cc 89518 2015-04-15 14:43:30Z gcosmo $ +// $Id: G4TritonEvaporationProbability.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // J.M. Quesada (August2008). Based on: // @@ -55,14 +55,10 @@ G4double G4TritonEvaporationProbability::CalcAlphaParam(const G4Fragment& fragme // C for triton is equal to C for protons divided by 3 G4int aZ = fragment.GetZ_asInt()-GetZ(); - G4double C; - - if (aZ >= 70) { - C = 0.10; - } else { - C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - - 0.66612e-01)*aZ + 0.98375; - } + G4double C = (aZ >= 70) ? 0.10 : + ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ + - 0.66612e-01)*aZ + 0.98375; + return 1.0 + C/3.0; } diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc index 968a0be1d4..de1d4d55d8 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEvaporation.cc 88841 2015-03-12 10:34:14Z gcosmo $ +// $Id: G4VEvaporation.cc 96744 2016-05-03 08:04:28Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) writen from G4Evaporation.cc (May 1998) @@ -36,8 +36,8 @@ #include "G4VEvaporationChannel.hh" G4VEvaporation::G4VEvaporation() - :thePhotonEvaporation(0),OPTxs(3),useSICB(false) - ,theChannels(0),theChannelFactory(0) + :thePhotonEvaporation(nullptr),theFBU(nullptr),OPTxs(3),useSICB(true) + ,theChannels(nullptr),theChannelFactory(nullptr) {} G4VEvaporation::~G4VEvaporation() @@ -49,12 +49,13 @@ G4VEvaporation::~G4VEvaporation() void G4VEvaporation::CleanChannels() { + // clean all except photon evaporation if(theChannels) { for (size_t i=1; isize(); ++i) { delete (*theChannels)[i]; } delete theChannels; - theChannels = 0; + theChannels = nullptr; } } @@ -63,6 +64,8 @@ void G4VEvaporation::InitialiseChannels() void G4VEvaporation::SetPhotonEvaporation(G4VEvaporationChannel* ptr) { + // photon evaporation channel is the first + // G4VEvaporation is responsible for its deletion if(thePhotonEvaporation != ptr) { delete thePhotonEvaporation; thePhotonEvaporation = ptr; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh index c5c0d25a1a..4b2ebfb0b0 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4FermiBreakUp.hh 85443 2014-10-29 14:35:57Z gcosmo $ +// $Id: G4FermiBreakUp.hh 96744 2016-05-03 08:04:28Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -45,17 +45,21 @@ class G4FermiBreakUp : public G4VFermiBreakUp { public: - G4FermiBreakUp(); + explicit G4FermiBreakUp(); virtual ~G4FermiBreakUp(); + virtual void Initialise() final; + + virtual G4bool IsApplicable(G4int Z, G4int A, G4double mass) const final; + // primary fragment is copied to the new instance, the copy is deleted // or is added to the list of products - G4FragmentVector * BreakItUp(const G4Fragment &theNucleus); + virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus) final; // new interface - vector of products is added to the provided vector // primary fragment is deleted or is modified and added to the list // of products - void BreakFragment(G4FragmentVector*, G4Fragment* theNucleus); + virtual void BreakFragment(G4FragmentVector*, G4Fragment* theNucleus) final; private: @@ -66,10 +70,10 @@ private: const std::vector* SelectConfiguration(G4int Z, G4int A, G4double mass); - G4FermiBreakUp(const G4FermiBreakUp &right); - const G4FermiBreakUp & operator=(const G4FermiBreakUp &right); - G4bool operator==(const G4FermiBreakUp &right) const; - G4bool operator!=(const G4FermiBreakUp &right) const; + G4FermiBreakUp(const G4FermiBreakUp &right) = delete; + const G4FermiBreakUp & operator=(const G4FermiBreakUp &right) = delete; + G4bool operator==(const G4FermiBreakUp &right) const = delete; + G4bool operator!=(const G4FermiBreakUp &right) const = delete; G4FermiFragmentsPool* thePool; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh index d21f70638b..59a02bd011 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VFermiBreakUp.cc,v 1.5 2006-06-29 20:13:13 gunter Exp $ +// $Id: G4FermiFragmentsPool.hh,v 1.5 2006-06-29 20:13:13 gunter Exp $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -50,7 +50,7 @@ public: ~G4FermiFragmentsPool(); G4bool IsApplicable(G4int Z, G4int A, G4double mass) const; - + const std::vector* GetConfigurationList(G4int Z, G4int A, G4double mass) const; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh index ee8ca30904..47383a6d66 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4StableFermiFragment.hh 85607 2014-10-31 11:21:24Z gcosmo $ +// $Id: G4StableFermiFragment.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -40,19 +40,18 @@ class G4StableFermiFragment : public G4VFermiFragment { public: - G4StableFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE); + explicit G4StableFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE); virtual ~G4StableFermiFragment(); - virtual void FillFragment(G4FragmentVector*, const G4LorentzVector & aMomentum) const; + virtual void FillFragment(G4FragmentVector*, const G4LorentzVector & aMomentum) const final; private: - G4StableFermiFragment(const G4StableFermiFragment &right); - - const G4StableFermiFragment & operator=(const G4StableFermiFragment &right); - G4bool operator==(const G4StableFermiFragment &right) const; - G4bool operator!=(const G4StableFermiFragment &right) const; + G4StableFermiFragment(const G4StableFermiFragment &right) = delete; + const G4StableFermiFragment & operator=(const G4StableFermiFragment &right) = delete; + G4bool operator==(const G4StableFermiFragment &right) const = delete; + G4bool operator!=(const G4StableFermiFragment &right) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh index 19a94ca37b..286dfa4df9 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4UnstableFermiFragment.hh 85607 2014-10-31 11:21:24Z gcosmo $ +// $Id: G4UnstableFermiFragment.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -41,11 +41,11 @@ class G4UnstableFermiFragment : public G4VFermiFragment { public: - G4UnstableFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE); + explicit G4UnstableFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE); virtual ~G4UnstableFermiFragment(); - void FillFragment(G4FragmentVector*, const G4LorentzVector & aMomentum) const; + virtual void FillFragment(G4FragmentVector*, const G4LorentzVector & aMomentum) const final; private: diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh index 085ed6102a..0dad5fc870 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VFermiBreakUp.hh 85443 2014-10-29 14:35:57Z gcosmo $ +// $Id: G4VFermiBreakUp.hh 96744 2016-05-03 08:04:28Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -41,8 +41,12 @@ class G4VFermiBreakUp { public: - G4VFermiBreakUp(); - virtual ~G4VFermiBreakUp(); + explicit G4VFermiBreakUp() {}; + virtual ~G4VFermiBreakUp() {}; + + virtual void Initialise() = 0; + + virtual G4bool IsApplicable(G4int Z, G4int A, G4double mass) const = 0; // primary fragment is copied to the new instance, the copy is deleted // or is added to the list of products @@ -55,10 +59,10 @@ public: private: - G4VFermiBreakUp(const G4VFermiBreakUp &right); - const G4VFermiBreakUp & operator=(const G4VFermiBreakUp &right); - G4bool operator==(const G4VFermiBreakUp &right) const; - G4bool operator!=(const G4VFermiBreakUp &right) const; + G4VFermiBreakUp(const G4VFermiBreakUp &right) = delete; + const G4VFermiBreakUp & operator=(const G4VFermiBreakUp &right) = delete; + G4bool operator==(const G4VFermiBreakUp &right) const = delete; + G4bool operator!=(const G4VFermiBreakUp &right) const = delete; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh index eef21ebfde..b0cc668308 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VFermiFragment.hh 92144 2015-08-19 14:25:18Z gcosmo $ +// $Id: G4VFermiFragment.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -41,19 +41,11 @@ class G4VFermiFragment { public: - G4VFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE); + explicit G4VFermiFragment(G4int anA, G4int aZ, G4int Pol, + G4double exc, G4bool stable = true); virtual ~G4VFermiFragment(); -private: - - G4VFermiFragment(const G4VFermiFragment &right); - const G4VFermiFragment & operator=(const G4VFermiFragment &right); - G4bool operator==(const G4VFermiFragment &right) const; - G4bool operator!=(const G4VFermiFragment &right) const; - -public: - virtual void FillFragment(G4FragmentVector*, const G4LorentzVector & aMomentum) const = 0; @@ -99,7 +91,7 @@ public: return isStable; } -protected: +private: G4bool isStable; G4int A; @@ -109,6 +101,11 @@ protected: G4double ExcitEnergy; G4double fragmentMass; + G4VFermiFragment(const G4VFermiFragment &right) = delete; + const G4VFermiFragment & operator=(const G4VFermiFragment &right) = delete; + G4bool operator==(const G4VFermiFragment &right) const = delete; + G4bool operator!=(const G4VFermiFragment &right) const = delete; + }; 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 6e2f896535..ead02ac5b1 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 88709 2015-03-06 15:33:12Z gcosmo $ +# $Id: sources.cmake 96634 2016-04-27 09:31:49Z gcosmo $ # #------------------------------------------------------------------------------ @@ -65,7 +65,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_fermi_breakup G4Li5FermiFragment.cc G4StableFermiFragment.cc G4UnstableFermiFragment.cc - G4VFermiBreakUp.cc G4VFermiFragment.cc GRANULAR_DEPENDENCIES G4baryons diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc index 10275fc37e..bea8adf58b 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc @@ -38,20 +38,10 @@ #include "Randomize.hh" #include "G4Pow.hh" -// Kappa = V/V_0 it is used in calculation of Coulomb energy -const G4double Kappa = 6.0; -// Nuclear radius r0 (is a model parameter) -const G4double r0 = 1.3*CLHEP::fermi; -const G4double sqrtpi = std::sqrt(CLHEP::pi); - -G4FermiBreakUp::G4FermiBreakUp() +G4FermiBreakUp::G4FermiBreakUp() : thePool(nullptr), thePhaseSpace(nullptr) { - thePool = G4FermiFragmentsPool::Instance(); g4pow = G4Pow::GetInstance(); - Coef = 0.6*(CLHEP::elm_coupling/r0)/g4pow->Z13(1+G4int(Kappa)); - ConstCoeff = g4pow->powN(r0/hbarc,3)*Kappa/(6.0*pi*pi); - - thePhaseSpace = thePool->GetFermiPhaseSpaceDecay(); + Coef = ConstCoeff = 0.0; nmax = 16; NormalizedWeights.resize(nmax,0.0); @@ -62,6 +52,26 @@ G4FermiBreakUp::G4FermiBreakUp() G4FermiBreakUp::~G4FermiBreakUp() {} +void G4FermiBreakUp::Initialise() +{ + if(thePool != nullptr) { return; } + thePool = G4FermiFragmentsPool::Instance(); + // Kappa = V/V_0 it is used in calculation of Coulomb energy + // Nuclear radius r0 (is a model parameter) + G4double Kappa = 6.0; + G4double r0 = 1.3*CLHEP::fermi; + + Coef = 0.6*(CLHEP::elm_coupling/r0)/g4pow->Z13(1+G4int(Kappa)); + ConstCoeff = g4pow->powN(r0/hbarc,3)*Kappa/(6.0*pi*pi); + + thePhaseSpace = thePool->GetFermiPhaseSpaceDecay(); +} + +G4bool G4FermiBreakUp::IsApplicable(G4int Z, G4int A, G4double mass) const +{ + return thePool != nullptr ? thePool->IsApplicable(Z, A, mass) : false; +} + G4double G4FermiBreakUp::CoulombBarrier( const std::vector* conf) { @@ -92,6 +102,7 @@ G4FragmentVector* G4FermiBreakUp::BreakItUp(const G4Fragment &theNucleus) void G4FermiBreakUp::BreakFragment(G4FragmentVector* theResult, G4Fragment* theNucleus) { + if(thePool == nullptr) { Initialise(); } // Calculate Momenta of K fragments G4double M = theNucleus->GetMomentum().m(); const std::vector* conf = @@ -238,6 +249,8 @@ G4double G4FermiBreakUp::DecayProbability(G4int A, G4double TotalE, } else { G4int n2 = 3*K - 4; G4int n1 = n2/2; + + static const G4double sqrtpi = std::sqrt(CLHEP::pi); Gamma = sqrtpi*g4pow->factorial(n2)/ (g4pow->powN(4.0,n1)*g4pow->factorial(n1)); Energ = g4pow->powN(Energ, n1)*std::sqrt(Energ); diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc index 7d4d7af013..6ce02e9f17 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VFermiBreakUp.cc,v 1.5 2006-06-29 20:13:13 gunter Exp $ +// $Id: G4FermiFragmentsPool.cc,v 1.5 2006-06-29 20:13:13 gunter Exp $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -51,7 +51,7 @@ #include "G4He5FermiFragment.hh" #include "G4Li5FermiFragment.hh" -G4FermiFragmentsPool* G4FermiFragmentsPool::theInstance = 0; +G4FermiFragmentsPool* G4FermiFragmentsPool::theInstance = nullptr; G4FermiFragmentsPool* G4FermiFragmentsPool::Instance() { diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc index 7a359623e7..6f9a3913db 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4StableFermiFragment.cc 85607 2014-10-31 11:21:24Z gcosmo $ +// $Id: G4StableFermiFragment.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -33,8 +33,9 @@ #include "G4StableFermiFragment.hh" -G4StableFermiFragment::G4StableFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE) - : G4VFermiFragment(anA,aZ,Pol,ExE) +G4StableFermiFragment::G4StableFermiFragment(G4int anA, G4int aZ, + G4int Pol, G4double ExE) + : G4VFermiFragment(anA,aZ,Pol,ExE, true) {} G4StableFermiFragment::~G4StableFermiFragment() @@ -43,5 +44,5 @@ G4StableFermiFragment::~G4StableFermiFragment() void G4StableFermiFragment::FillFragment(G4FragmentVector* theResult, const G4LorentzVector & aMomentum) const { - theResult->push_back(new G4Fragment(A,Z,aMomentum)); + theResult->push_back(new G4Fragment(GetA(),GetZ(),aMomentum)); } diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc index 7e9d8af14c..00d64db609 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4UnstableFermiFragment.cc 85607 2014-10-31 11:21:24Z gcosmo $ +// $Id: G4UnstableFermiFragment.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -36,10 +36,8 @@ G4UnstableFermiFragment::G4UnstableFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE) - : G4VFermiFragment(anA,aZ,Pol,ExE) -{ - isStable = false; -} + : G4VFermiFragment(anA,aZ,Pol,ExE, false) +{} G4UnstableFermiFragment::~G4UnstableFermiFragment() {} diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc index d5ae5514d5..872168cda3 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VFermiFragment.cc 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VFermiFragment.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -31,12 +31,13 @@ #include "G4VFermiFragment.hh" #include "G4NucleiProperties.hh" -G4VFermiFragment::G4VFermiFragment(G4int anA, G4int aZ, G4int Pol, G4double ExE): - isStable(true), +G4VFermiFragment::G4VFermiFragment(G4int anA, G4int aZ, G4int Pol, + G4double exc, G4bool stable): + isStable(stable), A(anA), Z(aZ), Polarization(Pol), - ExcitEnergy(ExE) + ExcitEnergy(exc) { fragmentMass = 0.0; if(A > 0) { fragmentMass = G4NucleiProperties::GetNuclearMass(A, Z); } diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh index 547abcd1c7..327a9d0610 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4FissionBarrier.hh 85841 2014-11-05 15:35:06Z gcosmo $ +// $Id: G4FissionBarrier.hh 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -43,29 +43,22 @@ class G4FissionBarrier : public G4VFissionBarrier { public: - G4FissionBarrier(); + explicit G4FissionBarrier(); - ~G4FissionBarrier(); + virtual ~G4FissionBarrier(); - G4double FissionBarrier(G4int A, G4int Z, G4double U); + virtual G4double FissionBarrier(G4int A, G4int Z, G4double U) const final; private: - G4double BarashenkovFissionBarrier(G4int A, G4int Z); + G4double BarashenkovFissionBarrier(G4int A, G4int Z) const; - inline G4double SellPlusPairingCorrection(G4int Z, G4int N) - { - G4double res = 0.0; - SPtr->GetPairingCorrection(N,Z,res); - return res; - } + G4FissionBarrier(const G4FissionBarrier & right) = delete; + const G4FissionBarrier & operator=(const G4FissionBarrier & right) = delete; + G4bool operator==(const G4FissionBarrier & right) const = delete; + G4bool operator!=(const G4FissionBarrier & right) const = delete; - G4FissionBarrier(const G4FissionBarrier & right); - const G4FissionBarrier & operator=(const G4FissionBarrier & right); - G4bool operator==(const G4FissionBarrier & right) const; - G4bool operator!=(const G4FissionBarrier & right) const; - - G4CameronShellPlusPairingCorrections* SPtr; + const G4CameronShellPlusPairingCorrections* SPtr; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh index 7364197744..a1a2f7fc20 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VFissionBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VFissionBarrier.hh 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -43,14 +43,15 @@ public: virtual ~G4VFissionBarrier(); private: - G4VFissionBarrier(const G4VFissionBarrier & right); + G4VFissionBarrier(const G4VFissionBarrier & right) = delete; - const G4VFissionBarrier & operator=(const G4VFissionBarrier & right); - G4bool operator==(const G4VFissionBarrier & right) const; - G4bool operator!=(const G4VFissionBarrier & right) const; + const G4VFissionBarrier & operator=(const G4VFissionBarrier & right) = delete; + G4bool operator==(const G4VFissionBarrier & right) const = delete; + G4bool operator!=(const G4VFissionBarrier & right) const = delete; public: - virtual G4double FissionBarrier(G4int A, G4int Z,const G4double U) = 0; + + virtual G4double FissionBarrier(G4int A, G4int Z, G4double U) const = 0; }; diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc index e168845678..c5f8b3afdd 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4FissionBarrier.cc 68724 2013-04-05 09:26:32Z gcosmo $ +// $Id: G4FissionBarrier.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -46,24 +46,24 @@ G4FissionBarrier::~G4FissionBarrier() {} G4double -G4FissionBarrier::FissionBarrier(G4int A, G4int Z, G4double U) +G4FissionBarrier::FissionBarrier(G4int A, G4int Z, G4double U) const // Compute fission barrier according with Barashenkov's // prescription for A >= 65 { - if (A >= 65) { - return BarashenkovFissionBarrier(A,Z)/(1.0 + std::sqrt(U/(2.0*A))); - } else { return 100.0*GeV; } + static const G4double blimit = 100.0*CLHEP::GeV; + return (A < 65) ? blimit : + BarashenkovFissionBarrier(A,Z)/(1.0 + std::sqrt(U/(G4double)(2*A))); } G4double -G4FissionBarrier::BarashenkovFissionBarrier(G4int A, G4int Z) +G4FissionBarrier::BarashenkovFissionBarrier(G4int A, G4int Z) const // Calculates Fission Barrier heights { // Liquid drop model parameters for // surface energy of a spherical nucleus - static const G4double aSurf = 17.9439*MeV; + static const G4double aSurf = 17.9439*CLHEP::MeV; // and coulomb energy - static const G4double aCoul = 0.7053*MeV; + static const G4double aCoul = 0.7053*CLHEP::MeV; static const G4double k = 1.7826; G4int N = A - Z; @@ -76,10 +76,12 @@ G4FissionBarrier::BarashenkovFissionBarrier(G4int A, G4int Z) if (x <= 2./3.) { BF0 *= 0.38*(3./4.-x); } else { BF0 *= 0.83*(1. - x)*(1. - x)*(1. - x); } - // - G4double D = 1.248*MeV; - D *= (N - 2*(N/2) + Z - 2*(Z/2)); + G4int d = N - 2*(N/2) + Z - 2*(Z/2); - return BF0 + D - SellPlusPairingCorrection(Z,N); + G4double res = 0.0; + SPtr->GetPairingCorrection(N,Z,res); + + static const G4double D = 1.248*CLHEP::MeV; + return BF0 + D*d - res; } diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh index 7081d7f3b2..d44f32be8d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh @@ -24,46 +24,36 @@ // ******************************************************************** // // -// $Id: G4AlphaGEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4AlphaGEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // // J. M. Quesada (July 2009) coulomb barrier striclty according to Furihata's paper - #ifndef G4AlphaGEMChannel_h #define G4AlphaGEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4AlphaGEMCoulombBarrier.hh" #include "G4AlphaGEMProbability.hh" class G4AlphaGEMChannel : public G4GEMChannel { public: // only available constructor - G4AlphaGEMChannel() : G4GEMChannel(4,2,"Alpha", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4AlphaGEMChannel() + : G4GEMChannel(4,2,"He4",&theEvaporationProbability) {} - // destructor - ~G4AlphaGEMChannel() {}; + // destructor + ~G4AlphaGEMChannel() {}; private: - const G4AlphaGEMChannel & operator=(const G4AlphaGEMChannel & right); - G4AlphaGEMChannel(const G4AlphaGEMChannel & right); - G4bool operator==(const G4AlphaGEMChannel & right) const; - G4bool operator!=(const G4AlphaGEMChannel & right) const; + const G4AlphaGEMChannel & operator=(const G4AlphaGEMChannel & right) = delete; + G4AlphaGEMChannel(const G4AlphaGEMChannel & right) = delete; + G4bool operator==(const G4AlphaGEMChannel & right) const = delete; + G4bool operator!=(const G4AlphaGEMChannel & right) const = delete; -// JMQ 190709 -// G4AlphaCoulombBarrier theCoulombBarrier; - G4AlphaGEMCoulombBarrier theCoulombBarrier; - - G4AlphaGEMProbability theEvaporationProbability; + G4AlphaGEMProbability theEvaporationProbability; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMCoulombBarrier.hh deleted file mode 100644 index 9a0b863e28..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMCoulombBarrier.hh +++ /dev/null @@ -1,70 +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. * -// ******************************************************************** -// -// -// J. M. Quesada (July 2009) based on G4AlphaCoulombBarrier -// Coded strictly according to Furihata's GEM paper -// - - -#ifndef G4AlphaGEMCoulombBarrier_h -#define G4AlphaGEMCoulombBarrier_h 1 - -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -class G4AlphaGEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - G4AlphaGEMCoulombBarrier() : G4GEMCoulombBarrier(4,2) {}; - ~G4AlphaGEMCoulombBarrier() {}; - -private: - G4AlphaGEMCoulombBarrier(const G4AlphaGEMCoulombBarrier & right); - - const G4AlphaGEMCoulombBarrier & operator=(const G4AlphaGEMCoulombBarrier & right); - G4bool operator==(const G4AlphaGEMCoulombBarrier & right) const; - G4bool operator!=(const G4AlphaGEMCoulombBarrier & right) const; - -public: - G4double BarrierPenetrationFactor(G4double aZ) const - { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // (JMQ 190709: according to notes added on proof) - // dataKa = {{20, 0.81}, {30, 0.85}, {40, 0.89}, {50, 0.93}}; - // - G4double K = 1.0; - if (aZ >= 50){ - K=0.93; - } else if (aZ <= 20) { - K=0.81; - } else K=0.729802+0.00402544*aZ-1.17276*1e-6*aZ*aZ+2.31248*1e-8*aZ*aZ*aZ-1.65177*1e-10*aZ*aZ*aZ*aZ; - return K; - } -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh index 5181026c54..a96cdf5970 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4B10GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4B10GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4B10GEMChannel_h #define G4B10GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4B10GEMCoulombBarrier.hh" #include "G4B10GEMProbability.hh" class G4B10GEMChannel : public G4GEMChannel { public: // only available constructor - G4B10GEMChannel() : G4GEMChannel(10,5,"B10", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4B10GEMChannel() + : G4GEMChannel(10,5,"B10",&theEvaporationProbability) {} // destructor ~G4B10GEMChannel() {}; private: - const G4B10GEMChannel & operator=(const G4B10GEMChannel & right); + const G4B10GEMChannel & operator=(const G4B10GEMChannel & right) = delete; + G4B10GEMChannel(const G4B10GEMChannel & right) = delete; + G4bool operator==(const G4B10GEMChannel & right) const = delete; + G4bool operator!=(const G4B10GEMChannel & right) const = delete; - G4B10GEMChannel(const G4B10GEMChannel & right); - -public: - G4bool operator==(const G4B10GEMChannel & right) const; - G4bool operator!=(const G4B10GEMChannel & right) const; - -private: - - G4B10GEMCoulombBarrier theCoulombBarrier; - G4B10GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh index 20ca9e6565..9412b3157e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4B11GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4B11GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4B11GEMChannel_h #define G4B11GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4B11GEMCoulombBarrier.hh" #include "G4B11GEMProbability.hh" class G4B11GEMChannel : public G4GEMChannel { public: // only available constructor - G4B11GEMChannel() : G4GEMChannel(11,5,"B11", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4B11GEMChannel() + : G4GEMChannel(11,5,"B11",&theEvaporationProbability) {} // destructor ~G4B11GEMChannel() {}; private: - const G4B11GEMChannel & operator=(const G4B11GEMChannel & right); + const G4B11GEMChannel & operator=(const G4B11GEMChannel & right) = delete; + G4B11GEMChannel(const G4B11GEMChannel & right) = delete; + G4bool operator==(const G4B11GEMChannel & right) const = delete; + G4bool operator!=(const G4B11GEMChannel & right) const = delete; - G4B11GEMChannel(const G4B11GEMChannel & right); - -public: - G4bool operator==(const G4B11GEMChannel & right) const; - G4bool operator!=(const G4B11GEMChannel & right) const; - -private: - - G4B11GEMCoulombBarrier theCoulombBarrier; - G4B11GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh deleted file mode 100644 index e6370b5d68..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4B11GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4B11GEMCoulombBarrier_h -#define G4B11GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4B11GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4B11GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4B11GEMCoulombBarrier() : G4GEMCoulombBarrierHE(11,5) {}; - G4B11GEMCoulombBarrier() : G4GEMCoulombBarrier(11,5) {}; - ~G4B11GEMCoulombBarrier() {}; - -private: - G4B11GEMCoulombBarrier(const G4B11GEMCoulombBarrier & right); - - const G4B11GEMCoulombBarrier & operator=(const G4B11GEMCoulombBarrier & right); - G4bool operator==(const G4B11GEMCoulombBarrier & right) const; - G4bool operator!=(const G4B11GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh index af59275c51..b4aedae693 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4B12GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4B12GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4B12GEMChannel_h #define G4B12GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4B12GEMCoulombBarrier.hh" #include "G4B12GEMProbability.hh" class G4B12GEMChannel : public G4GEMChannel { public: // only available constructor - G4B12GEMChannel() : G4GEMChannel(12,5,"B12", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4B12GEMChannel() + : G4GEMChannel(12,5,"B12",&theEvaporationProbability) {} // destructor ~G4B12GEMChannel() {}; private: - const G4B12GEMChannel & operator=(const G4B12GEMChannel & right); + const G4B12GEMChannel & operator=(const G4B12GEMChannel & right) = delete; + G4B12GEMChannel(const G4B12GEMChannel & right) = delete; + G4bool operator==(const G4B12GEMChannel & right) const = delete; + G4bool operator!=(const G4B12GEMChannel & right) const = delete; - G4B12GEMChannel(const G4B12GEMChannel & right); - -public: - G4bool operator==(const G4B12GEMChannel & right) const; - G4bool operator!=(const G4B12GEMChannel & right) const; - -private: - - G4B12GEMCoulombBarrier theCoulombBarrier; - G4B12GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh deleted file mode 100644 index b318dbfd2c..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4B12GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4B12GEMCoulombBarrier_h -#define G4B12GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4B12GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4B12GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4B12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,5) {}; - G4B12GEMCoulombBarrier() : G4GEMCoulombBarrier(12,5) {}; - ~G4B12GEMCoulombBarrier() {}; - -private: - G4B12GEMCoulombBarrier(const G4B12GEMCoulombBarrier & right); - - const G4B12GEMCoulombBarrier & operator=(const G4B12GEMCoulombBarrier & right); - G4bool operator==(const G4B12GEMCoulombBarrier & right) const; - G4bool operator!=(const G4B12GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh index d87ee8603b..6c48b5f437 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4B13GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4B13GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4B13GEMChannel_h #define G4B13GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4B13GEMCoulombBarrier.hh" #include "G4B13GEMProbability.hh" class G4B13GEMChannel : public G4GEMChannel { public: // only available constructor - G4B13GEMChannel() : G4GEMChannel(13,5,"B13", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4B13GEMChannel() + : G4GEMChannel(13,5,"B13",&theEvaporationProbability) {} // destructor ~G4B13GEMChannel() {}; private: - const G4B13GEMChannel & operator=(const G4B13GEMChannel & right); + const G4B13GEMChannel & operator=(const G4B13GEMChannel & right) = delete; + G4B13GEMChannel(const G4B13GEMChannel & right) = delete; + G4bool operator==(const G4B13GEMChannel & right) const = delete; + G4bool operator!=(const G4B13GEMChannel & right) const = delete; - G4B13GEMChannel(const G4B13GEMChannel & right); - -public: - G4bool operator==(const G4B13GEMChannel & right) const; - G4bool operator!=(const G4B13GEMChannel & right) const; - -private: - - G4B13GEMCoulombBarrier theCoulombBarrier; - G4B13GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh deleted file mode 100644 index c82d12d60b..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4B13GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4B13GEMCoulombBarrier_h -#define G4B13GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4B13GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4B13GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4B13GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,5) {}; - G4B13GEMCoulombBarrier() : G4GEMCoulombBarrier(13,5) {}; - ~G4B13GEMCoulombBarrier() {}; - -private: - G4B13GEMCoulombBarrier(const G4B13GEMCoulombBarrier & right); - - const G4B13GEMCoulombBarrier & operator=(const G4B13GEMCoulombBarrier & right); - G4bool operator==(const G4B13GEMCoulombBarrier & right) const; - G4bool operator!=(const G4B13GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh index 000a3448bf..4eef8efbf7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4B8GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4B8GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4B8GEMChannel_h #define G4B8GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4B8GEMCoulombBarrier.hh" #include "G4B8GEMProbability.hh" class G4B8GEMChannel : public G4GEMChannel { public: // only available constructor - G4B8GEMChannel() : G4GEMChannel(8,5,"B8", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4B8GEMChannel() + : G4GEMChannel(8,5,"B8",&theEvaporationProbability) {} // destructor ~G4B8GEMChannel() {}; private: - const G4B8GEMChannel & operator=(const G4B8GEMChannel & right); + const G4B8GEMChannel & operator=(const G4B8GEMChannel & right) = delete; + G4B8GEMChannel(const G4B8GEMChannel & right) = delete; + G4bool operator==(const G4B8GEMChannel & right) const = delete; + G4bool operator!=(const G4B8GEMChannel & right) const = delete; - G4B8GEMChannel(const G4B8GEMChannel & right); - -public: - G4bool operator==(const G4B8GEMChannel & right) const; - G4bool operator!=(const G4B8GEMChannel & right) const; - -private: - - G4B8GEMCoulombBarrier theCoulombBarrier; - G4B8GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh deleted file mode 100644 index d8423b8153..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4B8GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4B8GEMCoulombBarrier_h -#define G4B8GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4B8GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4B8GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - //JMQ 200709 - // G4B8GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,5) {}; - G4B8GEMCoulombBarrier() : G4GEMCoulombBarrier(8,5) {}; - ~G4B8GEMCoulombBarrier() {}; - -private: - G4B8GEMCoulombBarrier(const G4B8GEMCoulombBarrier & right); - - const G4B8GEMCoulombBarrier & operator=(const G4B8GEMCoulombBarrier & right); - G4bool operator==(const G4B8GEMCoulombBarrier & right) const; - G4bool operator!=(const G4B8GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh index d8911dadf3..7325c846e4 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Be10GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Be10GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Be10GEMChannel_h #define G4Be10GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Be10GEMCoulombBarrier.hh" #include "G4Be10GEMProbability.hh" class G4Be10GEMChannel : public G4GEMChannel { public: // only available constructor - G4Be10GEMChannel() : G4GEMChannel(10,4,"Be10", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Be10GEMChannel() + : G4GEMChannel(10,4,"Be10",&theEvaporationProbability) {} // destructor ~G4Be10GEMChannel() {}; private: - const G4Be10GEMChannel & operator=(const G4Be10GEMChannel & right); + const G4Be10GEMChannel & operator=(const G4Be10GEMChannel & right) = delete; + G4Be10GEMChannel(const G4Be10GEMChannel & right) = delete; + G4bool operator==(const G4Be10GEMChannel & right) const = delete; + G4bool operator!=(const G4Be10GEMChannel & right) const = delete; - G4Be10GEMChannel(const G4Be10GEMChannel & right); - -public: - G4bool operator==(const G4Be10GEMChannel & right) const; - G4bool operator!=(const G4Be10GEMChannel & right) const; - -private: - - G4Be10GEMCoulombBarrier theCoulombBarrier; - G4Be10GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh deleted file mode 100644 index 332b41c2d2..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Be10GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Be10GEMCoulombBarrier_h -#define G4Be10GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Be10GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Be10GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Be10GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,4) {}; - G4Be10GEMCoulombBarrier() : G4GEMCoulombBarrier(10,4) {}; - ~G4Be10GEMCoulombBarrier() {}; - -private: - G4Be10GEMCoulombBarrier(const G4Be10GEMCoulombBarrier & right); - - const G4Be10GEMCoulombBarrier & operator=(const G4Be10GEMCoulombBarrier & right); - G4bool operator==(const G4Be10GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Be10GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh index 7e56e60a86..c45320fd41 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Be11GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Be11GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Be11GEMChannel_h #define G4Be11GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Be11GEMCoulombBarrier.hh" #include "G4Be11GEMProbability.hh" class G4Be11GEMChannel : public G4GEMChannel { public: // only available constructor - G4Be11GEMChannel() : G4GEMChannel(11,4,"Be11", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Be11GEMChannel() + : G4GEMChannel(11,4,"Be11",&theEvaporationProbability) {} // destructor ~G4Be11GEMChannel() {}; private: - const G4Be11GEMChannel & operator=(const G4Be11GEMChannel & right); + const G4Be11GEMChannel & operator=(const G4Be11GEMChannel & right) = delete; + G4Be11GEMChannel(const G4Be11GEMChannel & right) = delete; + G4bool operator==(const G4Be11GEMChannel & right) const = delete; + G4bool operator!=(const G4Be11GEMChannel & right) const = delete; - G4Be11GEMChannel(const G4Be11GEMChannel & right); - -public: - G4bool operator==(const G4Be11GEMChannel & right) const; - G4bool operator!=(const G4Be11GEMChannel & right) const; - -private: - - G4Be11GEMCoulombBarrier theCoulombBarrier; - G4Be11GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh deleted file mode 100644 index 693087a088..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Be11GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Be11GEMCoulombBarrier_h -#define G4Be11GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Be11GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Be11GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Be11GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,4) {}; - G4Be11GEMCoulombBarrier() : G4GEMCoulombBarrier(11,4) {}; - ~G4Be11GEMCoulombBarrier() {}; - -private: - G4Be11GEMCoulombBarrier(const G4Be11GEMCoulombBarrier & right); - - const G4Be11GEMCoulombBarrier & operator=(const G4Be11GEMCoulombBarrier & right); - G4bool operator==(const G4Be11GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Be11GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh index 177f56442e..e0f40ad7b7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Be12GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Be12GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Be12GEMChannel_h #define G4Be12GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Be12GEMCoulombBarrier.hh" #include "G4Be12GEMProbability.hh" class G4Be12GEMChannel : public G4GEMChannel { public: // only available constructor - G4Be12GEMChannel() : G4GEMChannel(12,4,"Be12", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Be12GEMChannel() + : G4GEMChannel(12,4,"Be12",&theEvaporationProbability) {} // destructor ~G4Be12GEMChannel() {}; private: - const G4Be12GEMChannel & operator=(const G4Be12GEMChannel & right); + const G4Be12GEMChannel & operator=(const G4Be12GEMChannel & right) = delete; + G4Be12GEMChannel(const G4Be12GEMChannel & right) = delete; + G4bool operator==(const G4Be12GEMChannel & right) const = delete; + G4bool operator!=(const G4Be12GEMChannel & right) const = delete; - G4Be12GEMChannel(const G4Be12GEMChannel & right); - -public: - G4bool operator==(const G4Be12GEMChannel & right) const; - G4bool operator!=(const G4Be12GEMChannel & right) const; - -private: - - G4Be12GEMCoulombBarrier theCoulombBarrier; - G4Be12GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh deleted file mode 100644 index e0168ba92f..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Be12GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Be12GEMCoulombBarrier_h -#define G4Be12GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Be12GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Be12GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Be12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,4) {}; - G4Be12GEMCoulombBarrier() : G4GEMCoulombBarrier(12,4) {}; - ~G4Be12GEMCoulombBarrier() {}; - -private: - G4Be12GEMCoulombBarrier(const G4Be12GEMCoulombBarrier & right); - - const G4Be12GEMCoulombBarrier & operator=(const G4Be12GEMCoulombBarrier & right); - G4bool operator==(const G4Be12GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Be12GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh index bf6896af1f..904540c393 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Be7GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Be7GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Be7GEMChannel_h #define G4Be7GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Be7GEMCoulombBarrier.hh" #include "G4Be7GEMProbability.hh" class G4Be7GEMChannel : public G4GEMChannel { public: // only available constructor - G4Be7GEMChannel() : G4GEMChannel(7,4,"Be7", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Be7GEMChannel() + : G4GEMChannel(7,4,"Be7",&theEvaporationProbability) {} // destructor ~G4Be7GEMChannel() {}; private: - const G4Be7GEMChannel & operator=(const G4Be7GEMChannel & right); + const G4Be7GEMChannel & operator=(const G4Be7GEMChannel & right) = delete; + G4Be7GEMChannel(const G4Be7GEMChannel & right) = delete; + G4bool operator==(const G4Be7GEMChannel & right) const = delete; + G4bool operator!=(const G4Be7GEMChannel & right) const = delete; - G4Be7GEMChannel(const G4Be7GEMChannel & right); - -public: - G4bool operator==(const G4Be7GEMChannel & right) const; - G4bool operator!=(const G4Be7GEMChannel & right) const; - -private: - - G4Be7GEMCoulombBarrier theCoulombBarrier; - G4Be7GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh deleted file mode 100644 index 96fbf452fb..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Be7GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Be7GEMCoulombBarrier_h -#define G4Be7GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Be7GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Be7GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Be7GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,4) {}; - G4Be7GEMCoulombBarrier() : G4GEMCoulombBarrier(7,4) {}; - ~G4Be7GEMCoulombBarrier() {}; - -private: - G4Be7GEMCoulombBarrier(const G4Be7GEMCoulombBarrier & right); - - const G4Be7GEMCoulombBarrier & operator=(const G4Be7GEMCoulombBarrier & right); - G4bool operator==(const G4Be7GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Be7GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh index 33106d9091..8c56fc0d91 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Be9GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Be9GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Be9GEMChannel_h #define G4Be9GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Be9GEMCoulombBarrier.hh" #include "G4Be9GEMProbability.hh" class G4Be9GEMChannel : public G4GEMChannel { public: // only available constructor - G4Be9GEMChannel() : G4GEMChannel(9,4,"Be9", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Be9GEMChannel() + : G4GEMChannel(9,4,"Be9",&theEvaporationProbability) {} // destructor ~G4Be9GEMChannel() {}; private: - const G4Be9GEMChannel & operator=(const G4Be9GEMChannel & right); + const G4Be9GEMChannel & operator=(const G4Be9GEMChannel & right) = delete; + G4Be9GEMChannel(const G4Be9GEMChannel & right) = delete; + G4bool operator==(const G4Be9GEMChannel & right) const = delete; + G4bool operator!=(const G4Be9GEMChannel & right) const = delete; - G4Be9GEMChannel(const G4Be9GEMChannel & right); - -public: - G4bool operator==(const G4Be9GEMChannel & right) const; - G4bool operator!=(const G4Be9GEMChannel & right) const; - -private: - - G4Be9GEMCoulombBarrier theCoulombBarrier; - G4Be9GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh deleted file mode 100644 index bdcf83f458..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Be9GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Be9GEMCoulombBarrier_h -#define G4Be9GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Be9GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Be9GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Be9GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,4) {}; - G4Be9GEMCoulombBarrier() : G4GEMCoulombBarrier(9,4) {}; - ~G4Be9GEMCoulombBarrier() {}; - -private: - G4Be9GEMCoulombBarrier(const G4Be9GEMCoulombBarrier & right); - - const G4Be9GEMCoulombBarrier & operator=(const G4Be9GEMCoulombBarrier & right); - G4bool operator==(const G4Be9GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Be9GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh index 76c187e4ae..52767f890e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C10GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C10GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C10GEMChannel_h #define G4C10GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C10GEMCoulombBarrier.hh" #include "G4C10GEMProbability.hh" class G4C10GEMChannel : public G4GEMChannel { public: // only available constructor - G4C10GEMChannel() : G4GEMChannel(10,6,"C10", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C10GEMChannel() + : G4GEMChannel(10,6,"C10",&theEvaporationProbability) {} // destructor ~G4C10GEMChannel() {}; private: - const G4C10GEMChannel & operator=(const G4C10GEMChannel & right); + const G4C10GEMChannel & operator=(const G4C10GEMChannel & right) = delete; + G4C10GEMChannel(const G4C10GEMChannel & right) = delete; + G4bool operator==(const G4C10GEMChannel & right) const = delete; + G4bool operator!=(const G4C10GEMChannel & right) const = delete; - G4C10GEMChannel(const G4C10GEMChannel & right); - -public: - G4bool operator==(const G4C10GEMChannel & right) const; - G4bool operator!=(const G4C10GEMChannel & right) const; - -private: - - G4C10GEMCoulombBarrier theCoulombBarrier; - G4C10GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh deleted file mode 100644 index 8b1892773b..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C10GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C10GEMCoulombBarrier_h -#define G4C10GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C10GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C10GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C10GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C10GEMCoulombBarrier() : G4GEMCoulombBarrier(10,6) {}; - ~G4C10GEMCoulombBarrier() {}; - -private: - G4C10GEMCoulombBarrier(const G4C10GEMCoulombBarrier & right); - - const G4C10GEMCoulombBarrier & operator=(const G4C10GEMCoulombBarrier & right); - G4bool operator==(const G4C10GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C10GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh index dd51dcb759..18f484b7dd 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C11GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C11GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C11GEMChannel_h #define G4C11GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C11GEMCoulombBarrier.hh" #include "G4C11GEMProbability.hh" class G4C11GEMChannel : public G4GEMChannel { public: // only available constructor - G4C11GEMChannel() : G4GEMChannel(11,6,"C11", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C11GEMChannel() + : G4GEMChannel(11,6,"C11",&theEvaporationProbability) {} // destructor ~G4C11GEMChannel() {}; private: - const G4C11GEMChannel & operator=(const G4C11GEMChannel & right); + const G4C11GEMChannel & operator=(const G4C11GEMChannel & right) = delete; + G4C11GEMChannel(const G4C11GEMChannel & right) = delete; + G4bool operator==(const G4C11GEMChannel & right) const = delete; + G4bool operator!=(const G4C11GEMChannel & right) const = delete; - G4C11GEMChannel(const G4C11GEMChannel & right); - -public: - G4bool operator==(const G4C11GEMChannel & right) const; - G4bool operator!=(const G4C11GEMChannel & right) const; - -private: - - G4C11GEMCoulombBarrier theCoulombBarrier; - G4C11GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh deleted file mode 100644 index 6b08fb71a4..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C11GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C11GEMCoulombBarrier_h -#define G4C11GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C11GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C11GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C11GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C11GEMCoulombBarrier() : G4GEMCoulombBarrier(11,6) {}; - ~G4C11GEMCoulombBarrier() {}; - -private: - G4C11GEMCoulombBarrier(const G4C11GEMCoulombBarrier & right); - - const G4C11GEMCoulombBarrier & operator=(const G4C11GEMCoulombBarrier & right); - G4bool operator==(const G4C11GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C11GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh index 89fff1b5c5..780e36f144 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C12GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C12GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C12GEMChannel_h #define G4C12GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C12GEMCoulombBarrier.hh" #include "G4C12GEMProbability.hh" class G4C12GEMChannel : public G4GEMChannel { public: // only available constructor - G4C12GEMChannel() : G4GEMChannel(12,6,"C12", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C12GEMChannel() + : G4GEMChannel(12,6,"C12",&theEvaporationProbability) {} // destructor ~G4C12GEMChannel() {}; private: - const G4C12GEMChannel & operator=(const G4C12GEMChannel & right); + const G4C12GEMChannel & operator=(const G4C12GEMChannel & right) = delete; + G4C12GEMChannel(const G4C12GEMChannel & right) = delete; + G4bool operator==(const G4C12GEMChannel & right) const = delete; + G4bool operator!=(const G4C12GEMChannel & right) const = delete; - G4C12GEMChannel(const G4C12GEMChannel & right); - -public: - G4bool operator==(const G4C12GEMChannel & right) const; - G4bool operator!=(const G4C12GEMChannel & right) const; - -private: - - G4C12GEMCoulombBarrier theCoulombBarrier; - G4C12GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh deleted file mode 100644 index c1d09c5c26..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C12GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C12GEMCoulombBarrier_h -#define G4C12GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C12GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C12GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C12GEMCoulombBarrier() : G4GEMCoulombBarrier(12,6) {}; - ~G4C12GEMCoulombBarrier() {}; - -private: - G4C12GEMCoulombBarrier(const G4C12GEMCoulombBarrier & right); - - const G4C12GEMCoulombBarrier & operator=(const G4C12GEMCoulombBarrier & right); - G4bool operator==(const G4C12GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C12GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh index ff58df5ae9..8417b7fec0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C13GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C13GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C13GEMChannel_h #define G4C13GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C13GEMCoulombBarrier.hh" #include "G4C13GEMProbability.hh" class G4C13GEMChannel : public G4GEMChannel { public: // only available constructor - G4C13GEMChannel() : G4GEMChannel(13,6,"C13", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C13GEMChannel() + : G4GEMChannel(13,6,"C13",&theEvaporationProbability) {} // destructor ~G4C13GEMChannel() {}; private: - const G4C13GEMChannel & operator=(const G4C13GEMChannel & right); + const G4C13GEMChannel & operator=(const G4C13GEMChannel & right) = delete; + G4C13GEMChannel(const G4C13GEMChannel & right) = delete; + G4bool operator==(const G4C13GEMChannel & right) const = delete; + G4bool operator!=(const G4C13GEMChannel & right) const = delete; - G4C13GEMChannel(const G4C13GEMChannel & right); - -public: - G4bool operator==(const G4C13GEMChannel & right) const; - G4bool operator!=(const G4C13GEMChannel & right) const; - -private: - - G4C13GEMCoulombBarrier theCoulombBarrier; - G4C13GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh deleted file mode 100644 index f8111c77a0..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C13GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C13GEMCoulombBarrier_h -#define G4C13GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C13GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C13GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C13GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C13GEMCoulombBarrier() : G4GEMCoulombBarrier(13,6) {}; - ~G4C13GEMCoulombBarrier() {}; - -private: - G4C13GEMCoulombBarrier(const G4C13GEMCoulombBarrier & right); - - const G4C13GEMCoulombBarrier & operator=(const G4C13GEMCoulombBarrier & right); - G4bool operator==(const G4C13GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C13GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh index d1c256d68d..ef992239db 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C14GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C14GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C14GEMChannel_h #define G4C14GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C14GEMCoulombBarrier.hh" #include "G4C14GEMProbability.hh" class G4C14GEMChannel : public G4GEMChannel { public: // only available constructor - G4C14GEMChannel() : G4GEMChannel(14,6,"C14", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C14GEMChannel() + : G4GEMChannel(14,6,"C14",&theEvaporationProbability) {} // destructor ~G4C14GEMChannel() {}; private: - const G4C14GEMChannel & operator=(const G4C14GEMChannel & right); + const G4C14GEMChannel & operator=(const G4C14GEMChannel & right) = delete; + G4C14GEMChannel(const G4C14GEMChannel & right) = delete; + G4bool operator==(const G4C14GEMChannel & right) const = delete; + G4bool operator!=(const G4C14GEMChannel & right) const = delete; - G4C14GEMChannel(const G4C14GEMChannel & right); - -public: - G4bool operator==(const G4C14GEMChannel & right) const; - G4bool operator!=(const G4C14GEMChannel & right) const; - -private: - - G4C14GEMCoulombBarrier theCoulombBarrier; - G4C14GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh deleted file mode 100644 index afdba9b371..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C14GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C14GEMCoulombBarrier_h -#define G4C14GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C14GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C14GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C14GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C14GEMCoulombBarrier() : G4GEMCoulombBarrier(14,6) {}; - ~G4C14GEMCoulombBarrier() {}; - -private: - G4C14GEMCoulombBarrier(const G4C14GEMCoulombBarrier & right); - - const G4C14GEMCoulombBarrier & operator=(const G4C14GEMCoulombBarrier & right); - G4bool operator==(const G4C14GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C14GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh index c178dcc5ee..9a22420595 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C15GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C15GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C15GEMChannel_h #define G4C15GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C15GEMCoulombBarrier.hh" #include "G4C15GEMProbability.hh" class G4C15GEMChannel : public G4GEMChannel { public: // only available constructor - G4C15GEMChannel() : G4GEMChannel(15,6,"C15", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C15GEMChannel() + : G4GEMChannel(15,6,"C15",&theEvaporationProbability) {} // destructor ~G4C15GEMChannel() {}; private: - const G4C15GEMChannel & operator=(const G4C15GEMChannel & right); + const G4C15GEMChannel & operator=(const G4C15GEMChannel & right) = delete; + G4C15GEMChannel(const G4C15GEMChannel & right) = delete; + G4bool operator==(const G4C15GEMChannel & right) const = delete; + G4bool operator!=(const G4C15GEMChannel & right) const = delete; - G4C15GEMChannel(const G4C15GEMChannel & right); - -public: - G4bool operator==(const G4C15GEMChannel & right) const; - G4bool operator!=(const G4C15GEMChannel & right) const; - -private: - - G4C15GEMCoulombBarrier theCoulombBarrier; - G4C15GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh deleted file mode 100644 index 3a412dc747..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C15GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C15GEMCoulombBarrier_h -#define G4C15GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C15GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C15GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C15GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C15GEMCoulombBarrier() : G4GEMCoulombBarrier(15,6) {}; - ~G4C15GEMCoulombBarrier() {}; - -private: - G4C15GEMCoulombBarrier(const G4C15GEMCoulombBarrier & right); - - const G4C15GEMCoulombBarrier & operator=(const G4C15GEMCoulombBarrier & right); - G4bool operator==(const G4C15GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C15GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh index 457d66a5ee..89de52e555 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4C16GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4C16GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4C16GEMChannel_h #define G4C16GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4C16GEMCoulombBarrier.hh" #include "G4C16GEMProbability.hh" class G4C16GEMChannel : public G4GEMChannel { public: // only available constructor - G4C16GEMChannel() : G4GEMChannel(16,6,"C16", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4C16GEMChannel() + : G4GEMChannel(16,6,"C16",&theEvaporationProbability) {} // destructor ~G4C16GEMChannel() {}; private: - const G4C16GEMChannel & operator=(const G4C16GEMChannel & right); + const G4C16GEMChannel & operator=(const G4C16GEMChannel & right) = delete; + G4C16GEMChannel(const G4C16GEMChannel & right) = delete; + G4bool operator==(const G4C16GEMChannel & right) const = delete; + G4bool operator!=(const G4C16GEMChannel & right) const = delete; - G4C16GEMChannel(const G4C16GEMChannel & right); - -public: - G4bool operator==(const G4C16GEMChannel & right) const; - G4bool operator!=(const G4C16GEMChannel & right) const; - -private: - - G4C16GEMCoulombBarrier theCoulombBarrier; - G4C16GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh deleted file mode 100644 index 6ed7e5d5c9..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4C16GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4C16GEMCoulombBarrier_h -#define G4C16GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrierHE.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4C16GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4C16GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4C16GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; - G4C16GEMCoulombBarrier() : G4GEMCoulombBarrier(16,6) {}; - ~G4C16GEMCoulombBarrier() {}; - -private: - G4C16GEMCoulombBarrier(const G4C16GEMCoulombBarrier & right); - - const G4C16GEMCoulombBarrier & operator=(const G4C16GEMCoulombBarrier & right); - G4bool operator==(const G4C16GEMCoulombBarrier & right) const; - G4bool operator!=(const G4C16GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh index bfbccc193d..d30b5560cd 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DeuteronGEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4DeuteronGEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) @@ -35,39 +35,26 @@ #define G4DeuteronGEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4DeuteronGEMCoulombBarrier.hh" #include "G4DeuteronGEMProbability.hh" class G4DeuteronGEMChannel : public G4GEMChannel { public: // only available constructor - G4DeuteronGEMChannel() : G4GEMChannel(2,1,"deuteron", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - - } + explicit G4DeuteronGEMChannel() + : G4GEMChannel(2,1,"d",&theEvaporationProbability) {} + // destructor ~G4DeuteronGEMChannel() {}; private: - const G4DeuteronGEMChannel & operator=(const G4DeuteronGEMChannel & right); - - G4DeuteronGEMChannel(const G4DeuteronGEMChannel & right); - -public: - G4bool operator==(const G4DeuteronGEMChannel & right) const; - G4bool operator!=(const G4DeuteronGEMChannel & right) const; - -private: - // JMQ 190709 -// G4DeuteronCoulombBarrier theCoulombBarrier; - G4DeuteronGEMCoulombBarrier theCoulombBarrier; + const G4DeuteronGEMChannel & operator=(const G4DeuteronGEMChannel & right) = delete; + G4DeuteronGEMChannel(const G4DeuteronGEMChannel & right) = delete; + G4bool operator==(const G4DeuteronGEMChannel & right) const = delete; + G4bool operator!=(const G4DeuteronGEMChannel & right) const = delete; - G4DeuteronGEMProbability theEvaporationProbability; + G4DeuteronGEMProbability theEvaporationProbability; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMCoulombBarrier.hh deleted file mode 100644 index af60835925..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// J. M. Quesada (July 2009) based on G4DeuteronCoulombBarrier -// Coded strictly according to Furihata's GEM paper -// - -#ifndef G4DeuteronGEMCoulombBarrier_h -#define G4DeuteronGEMCoulombBarrier_h 1 - -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -class G4DeuteronGEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - G4DeuteronGEMCoulombBarrier() : G4GEMCoulombBarrier(2,1) {}; - ~G4DeuteronGEMCoulombBarrier() {}; - -private: - G4DeuteronGEMCoulombBarrier(const G4DeuteronGEMCoulombBarrier & right); - - const G4DeuteronGEMCoulombBarrier & operator=(const G4DeuteronGEMCoulombBarrier & right); - G4bool operator==(const G4DeuteronGEMCoulombBarrier & right) const; - G4bool operator!=(const G4DeuteronGEMCoulombBarrier & right) const; - -public: - - G4double BarrierPenetrationFactor(G4double aZ) const - { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // (JMQ 190709: according to notes added on proof) - //dataK = {{20, 0.51}, {30, 0.60}, {40, 0.66}, {50, 0.68}}; - // - G4double K = 1.0; - if (aZ >= 50){ - K=0.68; - } else if (aZ <= 20) { - K=0.51; - } else K=0.28445+0.0115956*aZ+0.000026329*aZ*aZ-2.18583*1e-6*aZ*aZ*aZ+3.7083*1e-9*aZ*aZ*aZ*aZ; - return K+0.06; - } - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh index b73283f4fc..2970fcc337 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4F17GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4F17GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4F17GEMChannel_h #define G4F17GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4F17GEMCoulombBarrier.hh" #include "G4F17GEMProbability.hh" class G4F17GEMChannel : public G4GEMChannel { public: // only available constructor - G4F17GEMChannel() : G4GEMChannel(17,9,"F17", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4F17GEMChannel() + : G4GEMChannel(17,9,"F17",&theEvaporationProbability) {} // destructor ~G4F17GEMChannel() {}; private: - const G4F17GEMChannel & operator=(const G4F17GEMChannel & right); + const G4F17GEMChannel & operator=(const G4F17GEMChannel & right) = delete; + G4F17GEMChannel(const G4F17GEMChannel & right) = delete; + G4bool operator==(const G4F17GEMChannel & right) const = delete; + G4bool operator!=(const G4F17GEMChannel & right) const = delete; - G4F17GEMChannel(const G4F17GEMChannel & right); - -public: - G4bool operator==(const G4F17GEMChannel & right) const; - G4bool operator!=(const G4F17GEMChannel & right) const; - -private: - - G4F17GEMCoulombBarrier theCoulombBarrier; - G4F17GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh deleted file mode 100644 index fdf354c98a..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4F17GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4F17GEMCoulombBarrier_h -#define G4F17GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4F17GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4F17GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4F17GEMCoulombBarrier() : G4GEMCoulombBarrierHE(17,9) {}; - G4F17GEMCoulombBarrier() : G4GEMCoulombBarrier(17,9) {}; - ~G4F17GEMCoulombBarrier() {}; - -private: - G4F17GEMCoulombBarrier(const G4F17GEMCoulombBarrier & right); - - const G4F17GEMCoulombBarrier & operator=(const G4F17GEMCoulombBarrier & right); - G4bool operator==(const G4F17GEMCoulombBarrier & right) const; - G4bool operator!=(const G4F17GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh index 0fa3e393c4..be06e15126 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4F18GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4F18GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4F18GEMChannel_h #define G4F18GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4F18GEMCoulombBarrier.hh" #include "G4F18GEMProbability.hh" class G4F18GEMChannel : public G4GEMChannel { public: // only available constructor - G4F18GEMChannel() : G4GEMChannel(18,9,"F18", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4F18GEMChannel() + : G4GEMChannel(18,9,"F18",&theEvaporationProbability) {} // destructor ~G4F18GEMChannel() {}; private: - const G4F18GEMChannel & operator=(const G4F18GEMChannel & right); + const G4F18GEMChannel & operator=(const G4F18GEMChannel & right) = delete; + G4F18GEMChannel(const G4F18GEMChannel & right) = delete; + G4bool operator==(const G4F18GEMChannel & right) const = delete; + G4bool operator!=(const G4F18GEMChannel & right) const = delete; - G4F18GEMChannel(const G4F18GEMChannel & right); - -public: - G4bool operator==(const G4F18GEMChannel & right) const; - G4bool operator!=(const G4F18GEMChannel & right) const; - -private: - - G4F18GEMCoulombBarrier theCoulombBarrier; - G4F18GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh deleted file mode 100644 index fb1caa8707..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4F18GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4F18GEMCoulombBarrier_h -#define G4F18GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4F18GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4F18GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4F18GEMCoulombBarrier() : G4GEMCoulombBarrierHE(18,9) {}; - G4F18GEMCoulombBarrier() : G4GEMCoulombBarrier(18,9) {}; - ~G4F18GEMCoulombBarrier() {}; - -private: - G4F18GEMCoulombBarrier(const G4F18GEMCoulombBarrier & right); - - const G4F18GEMCoulombBarrier & operator=(const G4F18GEMCoulombBarrier & right); - G4bool operator==(const G4F18GEMCoulombBarrier & right) const; - G4bool operator!=(const G4F18GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh index 7658e797ad..648ee1cecf 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4F19GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4F19GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4F19GEMChannel_h #define G4F19GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4F19GEMCoulombBarrier.hh" #include "G4F19GEMProbability.hh" class G4F19GEMChannel : public G4GEMChannel { public: // only available constructor - G4F19GEMChannel() : G4GEMChannel(19,9,"F19", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4F19GEMChannel() + : G4GEMChannel(19,9,"F19",&theEvaporationProbability) {} // destructor ~G4F19GEMChannel() {}; private: - const G4F19GEMChannel & operator=(const G4F19GEMChannel & right); + const G4F19GEMChannel & operator=(const G4F19GEMChannel & right) = delete; + G4F19GEMChannel(const G4F19GEMChannel & right) = delete; + G4bool operator==(const G4F19GEMChannel & right) const = delete; + G4bool operator!=(const G4F19GEMChannel & right) const = delete; - G4F19GEMChannel(const G4F19GEMChannel & right); - -public: - G4bool operator==(const G4F19GEMChannel & right) const; - G4bool operator!=(const G4F19GEMChannel & right) const; - -private: - - G4F19GEMCoulombBarrier theCoulombBarrier; - G4F19GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh deleted file mode 100644 index fa491171e2..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4F19GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4F19GEMCoulombBarrier_h -#define G4F19GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4F19GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4F19GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4F19GEMCoulombBarrier() : G4GEMCoulombBarrierHE(19,9) {}; - G4F19GEMCoulombBarrier() : G4GEMCoulombBarrier(19,9) {}; - ~G4F19GEMCoulombBarrier() {}; - -private: - G4F19GEMCoulombBarrier(const G4F19GEMCoulombBarrier & right); - - const G4F19GEMCoulombBarrier & operator=(const G4F19GEMCoulombBarrier & right); - G4bool operator==(const G4F19GEMCoulombBarrier & right) const; - G4bool operator!=(const G4F19GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh index 5a72fecd78..17ec073b32 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4F20GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4F20GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4F20GEMChannel_h #define G4F20GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4F20GEMCoulombBarrier.hh" #include "G4F20GEMProbability.hh" class G4F20GEMChannel : public G4GEMChannel { public: // only available constructor - G4F20GEMChannel() : G4GEMChannel(20,9,"F20", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4F20GEMChannel() + : G4GEMChannel(20,9,"F20",&theEvaporationProbability) {} // destructor ~G4F20GEMChannel() {}; private: - const G4F20GEMChannel & operator=(const G4F20GEMChannel & right); + const G4F20GEMChannel & operator=(const G4F20GEMChannel & right) = delete; + G4F20GEMChannel(const G4F20GEMChannel & right) = delete; + G4bool operator==(const G4F20GEMChannel & right) const = delete; + G4bool operator!=(const G4F20GEMChannel & right) const = delete; - G4F20GEMChannel(const G4F20GEMChannel & right); - -public: - G4bool operator==(const G4F20GEMChannel & right) const; - G4bool operator!=(const G4F20GEMChannel & right) const; - -private: - - G4F20GEMCoulombBarrier theCoulombBarrier; - G4F20GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh deleted file mode 100644 index 41900e1e4b..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4F20GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4F20GEMCoulombBarrier_h -#define G4F20GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4F20GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4F20GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4F20GEMCoulombBarrier() : G4GEMCoulombBarrierHE(20,9) {}; - G4F20GEMCoulombBarrier() : G4GEMCoulombBarrier(20,9) {}; - ~G4F20GEMCoulombBarrier() {}; - -private: - G4F20GEMCoulombBarrier(const G4F20GEMCoulombBarrier & right); - - const G4F20GEMCoulombBarrier & operator=(const G4F20GEMCoulombBarrier & right); - G4bool operator==(const G4F20GEMCoulombBarrier & right) const; - G4bool operator!=(const G4F20GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh index b7fb930c31..d16a4ba1d6 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4F21GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4F21GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4F21GEMChannel_h #define G4F21GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4F21GEMCoulombBarrier.hh" #include "G4F21GEMProbability.hh" class G4F21GEMChannel : public G4GEMChannel { public: // only available constructor - G4F21GEMChannel() : G4GEMChannel(21,9,"F21", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4F21GEMChannel() + : G4GEMChannel(21,9,"F21",&theEvaporationProbability) {} // destructor ~G4F21GEMChannel() {}; private: - const G4F21GEMChannel & operator=(const G4F21GEMChannel & right); + const G4F21GEMChannel & operator=(const G4F21GEMChannel & right) = delete; + G4F21GEMChannel(const G4F21GEMChannel & right) = delete; + G4bool operator==(const G4F21GEMChannel & right) const = delete; + G4bool operator!=(const G4F21GEMChannel & right) const = delete; - G4F21GEMChannel(const G4F21GEMChannel & right); - -public: - G4bool operator==(const G4F21GEMChannel & right) const; - G4bool operator!=(const G4F21GEMChannel & right) const; - -private: - - G4F21GEMCoulombBarrier theCoulombBarrier; - G4F21GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh deleted file mode 100644 index fae43192cd..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.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. * -// ******************************************************************** -// -// -// $Id: G4F21GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// - -#ifndef G4F21GEMCoulombBarrier_h -#define G4F21GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4F21GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4F21GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4F21GEMCoulombBarrier() : G4GEMCoulombBarrierHE(21,9) {}; - G4F21GEMCoulombBarrier() : G4GEMCoulombBarrier(21,9) {}; - ~G4F21GEMCoulombBarrier() {}; - -private: - G4F21GEMCoulombBarrier(const G4F21GEMCoulombBarrier & right); - - const G4F21GEMCoulombBarrier & operator=(const G4F21GEMCoulombBarrier & right); - G4bool operator==(const G4F21GEMCoulombBarrier & right) const; - G4bool operator!=(const G4F21GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh index 8296a748de..0cd8d665db 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh @@ -24,20 +24,17 @@ // ******************************************************************** // // -// $Id: G4GEMChannel.hh 86986 2014-11-21 13:00:05Z gcosmo $ +// $Id: G4GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) // - - #ifndef G4GEMChannel_h #define G4GEMChannel_h 1 #include "G4VEvaporationChannel.hh" #include "G4GEMProbability.hh" #include "G4VLevelDensityParameter.hh" -#include "G4VCoulombBarrier.hh" #include "G4EvaporationLevelDensityParameter.hh" #include "G4NucleiProperties.hh" #include "Randomize.hh" @@ -45,14 +42,14 @@ class G4Pow; class G4PairingCorrection; +class G4VCoulombBarrier; class G4GEMChannel : public G4VEvaporationChannel { public: - G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName, - G4GEMProbability * aEmissionStrategy, - G4VCoulombBarrier * aCoulombBarrier); + explicit G4GEMChannel(G4int theA, G4int theZ, const G4String & aName, + G4GEMProbability * aEmissionStrategy); // destructor virtual ~G4GEMChannel(); @@ -80,10 +77,10 @@ private: // This has to be removed and put in Random Generator G4ThreeVector IsotropicVector(G4double Magnitude = 1.0); - G4GEMChannel(const G4GEMChannel & right); - const G4GEMChannel & operator=(const G4GEMChannel & right); - G4bool operator==(const G4GEMChannel & right) const; - G4bool operator!=(const G4GEMChannel & right) const; + G4GEMChannel(const G4GEMChannel & right) = delete; + const G4GEMChannel & operator=(const G4GEMChannel & right) = delete; + G4bool operator==(const G4GEMChannel & right) const = delete; + G4bool operator!=(const G4GEMChannel & right) const = delete; // Data Members ************ // This data member define the channel. diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrier.hh index 8e743795b2..3aeefa0d63 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrier.hh @@ -30,34 +30,29 @@ #ifndef G4GEMCoulombBarrier_h #define G4GEMCoulombBarrier_h 1 -#include "G4VCoulombBarrier.hh" +#include "G4CoulombBarrier.hh" #include "globals.hh" -class G4GEMCoulombBarrier : public G4VCoulombBarrier +class G4GEMCoulombBarrier : public G4CoulombBarrier { public: - G4GEMCoulombBarrier(G4int anA, G4int aZ); + explicit G4GEMCoulombBarrier(G4int anA, G4int aZ); virtual ~G4GEMCoulombBarrier(); - G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const; + virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const; private: - G4GEMCoulombBarrier(); - G4GEMCoulombBarrier(const G4GEMCoulombBarrier & right); - const G4GEMCoulombBarrier & operator=(const G4GEMCoulombBarrier & right); - G4bool operator==(const G4GEMCoulombBarrier & right) const; - G4bool operator!=(const G4GEMCoulombBarrier & right) const; + G4GEMCoulombBarrier(const G4GEMCoulombBarrier & right) = delete; + const G4GEMCoulombBarrier & operator=(const G4GEMCoulombBarrier & right) = delete; + G4bool operator==(const G4GEMCoulombBarrier & right) const = delete; + G4bool operator!=(const G4GEMCoulombBarrier & right) const = delete; -public: - - virtual G4double BarrierPenetrationFactor(G4double /*aZ*/) const - {return 1.0;}; - G4double CalcCompoundRadius(G4int ARes) const; + G4double AejectOneThird; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh index f2a06e6b21..1df17ea764 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4He3GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4He3GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) @@ -35,36 +35,23 @@ #define G4He3GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4He3GEMCoulombBarrier.hh" #include "G4He3GEMProbability.hh" class G4He3GEMChannel : public G4GEMChannel { public: - // only available constructor - G4He3GEMChannel() : G4GEMChannel(3,2,"He3", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + // only available constructor + explicit G4He3GEMChannel() + : G4GEMChannel(3,2,"He3",&theEvaporationProbability) {} // destructor ~G4He3GEMChannel() {}; private: - const G4He3GEMChannel & operator=(const G4He3GEMChannel & right); - - G4He3GEMChannel(const G4He3GEMChannel & right); - -public: - G4bool operator==(const G4He3GEMChannel & right) const; - G4bool operator!=(const G4He3GEMChannel & right) const; - -private: - // JMQ 190709 -// G4He3CoulombBarrier theCoulombBarrier; - G4He3GEMCoulombBarrier theCoulombBarrier; + const G4He3GEMChannel & operator=(const G4He3GEMChannel & right) = delete; + G4He3GEMChannel(const G4He3GEMChannel & right) = delete; + G4bool operator==(const G4He3GEMChannel & right) const = delete; + G4bool operator!=(const G4He3GEMChannel & right) const = delete; G4He3GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMCoulombBarrier.hh deleted file mode 100644 index 8cb0696493..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMCoulombBarrier.hh +++ /dev/null @@ -1,70 +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. * -// ******************************************************************** -// -// -// J. M. Quesada (July 2009) based on G4He3CoulombBarrier -// Coded strictly according to Furihata's GEM paper -// - - -#ifndef G4He3GEMCoulombBarrier_h -#define G4He3GEMCoulombBarrier_h 1 - -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -class G4He3GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - G4He3GEMCoulombBarrier() : G4GEMCoulombBarrier(3,2) {} - ~G4He3GEMCoulombBarrier() {} - -private: - G4He3GEMCoulombBarrier(const G4He3GEMCoulombBarrier & right); - - const G4He3GEMCoulombBarrier & operator=(const G4He3GEMCoulombBarrier & right); - G4bool operator==(const G4He3GEMCoulombBarrier & right) const; - G4bool operator!=(const G4He3GEMCoulombBarrier & right) const; - -private: - G4double BarrierPenetrationFactor(const G4double aZ) const - { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // (JMQ 190709: according to notes added on proof) - // dataKa = {{20, 0.81}, {30, 0.85}, {40, 0.89}, {50, 0.93}}; - // - G4double K = 1.0; - if (aZ >= 50){ - K=0.93; - } else if (aZ <= 20) { - K=0.81; - } else K=0.729802+0.00402544*aZ-1.17276*1e-6*aZ*aZ+2.31248*1e-8*aZ*aZ*aZ-1.65177*1e-10*aZ*aZ*aZ*aZ; - return K-0.06; - } -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh index d0b2b6a4a1..1bf3efb5a9 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4He6GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4He6GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4He6GEMChannel_h #define G4He6GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4He6GEMCoulombBarrier.hh" #include "G4He6GEMProbability.hh" class G4He6GEMChannel : public G4GEMChannel { public: // only available constructor - G4He6GEMChannel() : G4GEMChannel(6,2,"He6", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4He6GEMChannel() + : G4GEMChannel(6,2,"He6",&theEvaporationProbability) {} // destructor ~G4He6GEMChannel() {}; private: - const G4He6GEMChannel & operator=(const G4He6GEMChannel & right); + const G4He6GEMChannel & operator=(const G4He6GEMChannel & right) = delete; + G4He6GEMChannel(const G4He6GEMChannel & right) = delete; + G4bool operator==(const G4He6GEMChannel & right) const = delete; + G4bool operator!=(const G4He6GEMChannel & right) const = delete; - G4He6GEMChannel(const G4He6GEMChannel & right); - -public: - G4bool operator==(const G4He6GEMChannel & right) const; - G4bool operator!=(const G4He6GEMChannel & right) const; - -private: - - G4He6GEMCoulombBarrier theCoulombBarrier; - G4He6GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh deleted file mode 100644 index 78883c0df6..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4He6GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4He6GEMCoulombBarrier_h -#define G4He6GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4He6GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4He6GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4He6GEMCoulombBarrier() : G4GEMCoulombBarrierHE(6,2) {}; - G4He6GEMCoulombBarrier() : G4GEMCoulombBarrier(6,2) {}; - ~G4He6GEMCoulombBarrier() {}; - -private: - G4He6GEMCoulombBarrier(const G4He6GEMCoulombBarrier & right); - - const G4He6GEMCoulombBarrier & operator=(const G4He6GEMCoulombBarrier & right); - G4bool operator==(const G4He6GEMCoulombBarrier & right) const; - G4bool operator!=(const G4He6GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh index 51207e46fc..ac23ef0c04 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4He8GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4He8GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4He8GEMChannel_h #define G4He8GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4He8GEMCoulombBarrier.hh" #include "G4He8GEMProbability.hh" class G4He8GEMChannel : public G4GEMChannel { public: // only available constructor - G4He8GEMChannel() : G4GEMChannel(8,2,"He8", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4He8GEMChannel() + : G4GEMChannel(8,2,"He8",&theEvaporationProbability) {} // destructor ~G4He8GEMChannel() {}; private: - const G4He8GEMChannel & operator=(const G4He8GEMChannel & right); + const G4He8GEMChannel & operator=(const G4He8GEMChannel & right) = delete; + G4He8GEMChannel(const G4He8GEMChannel & right) = delete; + G4bool operator==(const G4He8GEMChannel & right) const = delete; + G4bool operator!=(const G4He8GEMChannel & right) const = delete; - G4He8GEMChannel(const G4He8GEMChannel & right); - -public: - G4bool operator==(const G4He8GEMChannel & right) const; - G4bool operator!=(const G4He8GEMChannel & right) const; - -private: - - G4He8GEMCoulombBarrier theCoulombBarrier; - G4He8GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh deleted file mode 100644 index 221a6b6bb3..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4He8GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4He8GEMCoulombBarrier_h -#define G4He8GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4He8GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4He8GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4He8GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,2) {}; - G4He8GEMCoulombBarrier() : G4GEMCoulombBarrier(8,2) {}; - ~G4He8GEMCoulombBarrier() {}; - -private: - G4He8GEMCoulombBarrier(const G4He8GEMCoulombBarrier & right); - - const G4He8GEMCoulombBarrier & operator=(const G4He8GEMCoulombBarrier & right); - G4bool operator==(const G4He8GEMCoulombBarrier & right) const; - G4bool operator!=(const G4He8GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh index 2c91e89a6a..b6ef4b3d7a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Li6GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Li6GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Li6GEMChannel_h #define G4Li6GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Li6GEMCoulombBarrier.hh" #include "G4Li6GEMProbability.hh" class G4Li6GEMChannel : public G4GEMChannel { public: // only available constructor - G4Li6GEMChannel() : G4GEMChannel(6,3,"Li6", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Li6GEMChannel() + : G4GEMChannel(6,3,"Li6",&theEvaporationProbability) {} // destructor ~G4Li6GEMChannel() {}; private: - const G4Li6GEMChannel & operator=(const G4Li6GEMChannel & right); + const G4Li6GEMChannel & operator=(const G4Li6GEMChannel & right) = delete; + G4Li6GEMChannel(const G4Li6GEMChannel & right) = delete; + G4bool operator==(const G4Li6GEMChannel & right) const = delete; + G4bool operator!=(const G4Li6GEMChannel & right) const = delete; - G4Li6GEMChannel(const G4Li6GEMChannel & right); - -public: - G4bool operator==(const G4Li6GEMChannel & right) const; - G4bool operator!=(const G4Li6GEMChannel & right) const; - -private: - - G4Li6GEMCoulombBarrier theCoulombBarrier; - G4Li6GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh deleted file mode 100644 index bedb1d2389..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Li6GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Li6GEMCoulombBarrier_h -#define G4Li6GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Li6GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Li6GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Li6GEMCoulombBarrier() : G4GEMCoulombBarrierHE(6,3) {}; - G4Li6GEMCoulombBarrier() : G4GEMCoulombBarrier(6,3) {}; - ~G4Li6GEMCoulombBarrier() {}; - -private: - G4Li6GEMCoulombBarrier(const G4Li6GEMCoulombBarrier & right); - - const G4Li6GEMCoulombBarrier & operator=(const G4Li6GEMCoulombBarrier & right); - G4bool operator==(const G4Li6GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Li6GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh index 473173dff7..da24d5ca15 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Li7GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Li7GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Li7GEMChannel_h #define G4Li7GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Li7GEMCoulombBarrier.hh" #include "G4Li7GEMProbability.hh" class G4Li7GEMChannel : public G4GEMChannel { public: // only available constructor - G4Li7GEMChannel() : G4GEMChannel(7,3,"Li7", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Li7GEMChannel() + : G4GEMChannel(7,3,"Li7",&theEvaporationProbability) {} // destructor ~G4Li7GEMChannel() {}; private: - const G4Li7GEMChannel & operator=(const G4Li7GEMChannel & right); + const G4Li7GEMChannel & operator=(const G4Li7GEMChannel & right) = delete; + G4Li7GEMChannel(const G4Li7GEMChannel & right) = delete; + G4bool operator==(const G4Li7GEMChannel & right) const = delete; + G4bool operator!=(const G4Li7GEMChannel & right) const = delete; - G4Li7GEMChannel(const G4Li7GEMChannel & right); - -public: - G4bool operator==(const G4Li7GEMChannel & right) const; - G4bool operator!=(const G4Li7GEMChannel & right) const; - -private: - - G4Li7GEMCoulombBarrier theCoulombBarrier; - G4Li7GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh deleted file mode 100644 index 8f8b28d79e..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Li7GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Li7GEMCoulombBarrier_h -#define G4Li7GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Li7GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Li7GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Li7GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,3) {}; - G4Li7GEMCoulombBarrier() : G4GEMCoulombBarrier(7,3) {}; - ~G4Li7GEMCoulombBarrier() {}; - -private: - G4Li7GEMCoulombBarrier(const G4Li7GEMCoulombBarrier & right); - - const G4Li7GEMCoulombBarrier & operator=(const G4Li7GEMCoulombBarrier & right); - G4bool operator==(const G4Li7GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Li7GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh index f684c3597a..a58fda2416 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Li8GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Li8GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Li8GEMChannel_h #define G4Li8GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Li8GEMCoulombBarrier.hh" #include "G4Li8GEMProbability.hh" class G4Li8GEMChannel : public G4GEMChannel { public: // only available constructor - G4Li8GEMChannel() : G4GEMChannel(8,3,"Li8", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Li8GEMChannel() + : G4GEMChannel(8,3,"Li8",&theEvaporationProbability) {} // destructor ~G4Li8GEMChannel() {}; private: - const G4Li8GEMChannel & operator=(const G4Li8GEMChannel & right); + const G4Li8GEMChannel & operator=(const G4Li8GEMChannel & right) = delete; + G4Li8GEMChannel(const G4Li8GEMChannel & right) = delete; + G4bool operator==(const G4Li8GEMChannel & right) const = delete; + G4bool operator!=(const G4Li8GEMChannel & right) const = delete; - G4Li8GEMChannel(const G4Li8GEMChannel & right); - -public: - G4bool operator==(const G4Li8GEMChannel & right) const; - G4bool operator!=(const G4Li8GEMChannel & right) const; - -private: - - G4Li8GEMCoulombBarrier theCoulombBarrier; - G4Li8GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh deleted file mode 100644 index d5fa7bd47d..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Li8GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Li8GEMCoulombBarrier_h -#define G4Li8GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Li8GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Li8GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Li8GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,3) {}; - G4Li8GEMCoulombBarrier() : G4GEMCoulombBarrier(8,3) {}; - ~G4Li8GEMCoulombBarrier() {}; - -private: - G4Li8GEMCoulombBarrier(const G4Li8GEMCoulombBarrier & right); - - const G4Li8GEMCoulombBarrier & operator=(const G4Li8GEMCoulombBarrier & right); - G4bool operator==(const G4Li8GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Li8GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh index 80dd5b7dbb..2dba569e57 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Li9GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Li9GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Li9GEMChannel_h #define G4Li9GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Li9GEMCoulombBarrier.hh" #include "G4Li9GEMProbability.hh" class G4Li9GEMChannel : public G4GEMChannel { public: // only available constructor - G4Li9GEMChannel() : G4GEMChannel(9,3,"Li9", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Li9GEMChannel() + : G4GEMChannel(9,3,"Li9",&theEvaporationProbability) {} // destructor ~G4Li9GEMChannel() {}; private: - const G4Li9GEMChannel & operator=(const G4Li9GEMChannel & right); + const G4Li9GEMChannel & operator=(const G4Li9GEMChannel & right) = delete; + G4Li9GEMChannel(const G4Li9GEMChannel & right) = delete; + G4bool operator==(const G4Li9GEMChannel & right) const = delete; + G4bool operator!=(const G4Li9GEMChannel & right) const = delete; - G4Li9GEMChannel(const G4Li9GEMChannel & right); - -public: - G4bool operator==(const G4Li9GEMChannel & right) const; - G4bool operator!=(const G4Li9GEMChannel & right) const; - -private: - - G4Li9GEMCoulombBarrier theCoulombBarrier; - G4Li9GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh deleted file mode 100644 index 6114b96567..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Li9GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Li9GEMCoulombBarrier_h -#define G4Li9GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Li9GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Li9GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Li9GEMCoulombBarrier() : G4GEMCoulombBarrierHE(9,3) {}; - G4Li9GEMCoulombBarrier() : G4GEMCoulombBarrier(9,3) {}; - ~G4Li9GEMCoulombBarrier() {}; - -private: - G4Li9GEMCoulombBarrier(const G4Li9GEMCoulombBarrier & right); - - const G4Li9GEMCoulombBarrier & operator=(const G4Li9GEMCoulombBarrier & right); - G4bool operator==(const G4Li9GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Li9GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh index 4c22599efe..3c97a4ae4f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg22GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg22GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg22GEMChannel_h #define G4Mg22GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg22GEMCoulombBarrier.hh" #include "G4Mg22GEMProbability.hh" class G4Mg22GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg22GEMChannel() : G4GEMChannel(22,12,"Mg22", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg22GEMChannel() + : G4GEMChannel(22,12,"Mg22",&theEvaporationProbability) {} // destructor ~G4Mg22GEMChannel() {}; private: - const G4Mg22GEMChannel & operator=(const G4Mg22GEMChannel & right); + const G4Mg22GEMChannel & operator=(const G4Mg22GEMChannel & right) = delete; + G4Mg22GEMChannel(const G4Mg22GEMChannel & right) = delete; + G4bool operator==(const G4Mg22GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg22GEMChannel & right) const = delete; - G4Mg22GEMChannel(const G4Mg22GEMChannel & right); - -public: - G4bool operator==(const G4Mg22GEMChannel & right) const; - G4bool operator!=(const G4Mg22GEMChannel & right) const; - -private: - - G4Mg22GEMCoulombBarrier theCoulombBarrier; - G4Mg22GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh deleted file mode 100644 index 2832b395f2..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg22GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg22GEMCoulombBarrier_h -#define G4Mg22GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg22GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg22GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg22GEMCoulombBarrier() : G4GEMCoulombBarrierHE(22,12) {}; - G4Mg22GEMCoulombBarrier() : G4GEMCoulombBarrier(22,12) {}; - ~G4Mg22GEMCoulombBarrier() {}; - -private: - G4Mg22GEMCoulombBarrier(const G4Mg22GEMCoulombBarrier & right); - - const G4Mg22GEMCoulombBarrier & operator=(const G4Mg22GEMCoulombBarrier & right); - G4bool operator==(const G4Mg22GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg22GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh index 2b8d600568..9b0297cd04 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg23GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg23GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg23GEMChannel_h #define G4Mg23GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg23GEMCoulombBarrier.hh" #include "G4Mg23GEMProbability.hh" class G4Mg23GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg23GEMChannel() : G4GEMChannel(23,12,"Mg23", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg23GEMChannel() + : G4GEMChannel(23,12,"Mg23",&theEvaporationProbability) {} // destructor ~G4Mg23GEMChannel() {}; private: - const G4Mg23GEMChannel & operator=(const G4Mg23GEMChannel & right); + const G4Mg23GEMChannel & operator=(const G4Mg23GEMChannel & right) = delete; + G4Mg23GEMChannel(const G4Mg23GEMChannel & right) = delete; + G4bool operator==(const G4Mg23GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg23GEMChannel & right) const = delete; - G4Mg23GEMChannel(const G4Mg23GEMChannel & right); - -public: - G4bool operator==(const G4Mg23GEMChannel & right) const; - G4bool operator!=(const G4Mg23GEMChannel & right) const; - -private: - - G4Mg23GEMCoulombBarrier theCoulombBarrier; - G4Mg23GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh deleted file mode 100644 index 1b11d33373..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg23GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg23GEMCoulombBarrier_h -#define G4Mg23GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg23GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg23GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg23GEMCoulombBarrier() : G4GEMCoulombBarrierHE(23,12) {}; - G4Mg23GEMCoulombBarrier() : G4GEMCoulombBarrier(23,12) {}; - ~G4Mg23GEMCoulombBarrier() {}; - -private: - G4Mg23GEMCoulombBarrier(const G4Mg23GEMCoulombBarrier & right); - - const G4Mg23GEMCoulombBarrier & operator=(const G4Mg23GEMCoulombBarrier & right); - G4bool operator==(const G4Mg23GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg23GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh index 7f14b49ae9..567399e4ef 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg24GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg24GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg24GEMChannel_h #define G4Mg24GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg24GEMCoulombBarrier.hh" #include "G4Mg24GEMProbability.hh" class G4Mg24GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg24GEMChannel() : G4GEMChannel(24,12,"Mg24", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg24GEMChannel() + : G4GEMChannel(24,12,"Mg24",&theEvaporationProbability) {} // destructor ~G4Mg24GEMChannel() {}; private: - const G4Mg24GEMChannel & operator=(const G4Mg24GEMChannel & right); + const G4Mg24GEMChannel & operator=(const G4Mg24GEMChannel & right) = delete; + G4Mg24GEMChannel(const G4Mg24GEMChannel & right) = delete; + G4bool operator==(const G4Mg24GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg24GEMChannel & right) const = delete; - G4Mg24GEMChannel(const G4Mg24GEMChannel & right); - -public: - G4bool operator==(const G4Mg24GEMChannel & right) const; - G4bool operator!=(const G4Mg24GEMChannel & right) const; - -private: - - G4Mg24GEMCoulombBarrier theCoulombBarrier; - G4Mg24GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh deleted file mode 100644 index e8f90423de..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg24GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg24GEMCoulombBarrier_h -#define G4Mg24GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg24GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg24GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg24GEMCoulombBarrier() : G4GEMCoulombBarrierHE(24,12) {}; - G4Mg24GEMCoulombBarrier() : G4GEMCoulombBarrier(24,12) {}; - ~G4Mg24GEMCoulombBarrier() {}; - -private: - G4Mg24GEMCoulombBarrier(const G4Mg24GEMCoulombBarrier & right); - - const G4Mg24GEMCoulombBarrier & operator=(const G4Mg24GEMCoulombBarrier & right); - G4bool operator==(const G4Mg24GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg24GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh index 3b5336b6e0..c533115cd7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg25GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg25GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg25GEMChannel_h #define G4Mg25GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg25GEMCoulombBarrier.hh" #include "G4Mg25GEMProbability.hh" class G4Mg25GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg25GEMChannel() : G4GEMChannel(25,12,"Mg25", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg25GEMChannel() + : G4GEMChannel(25,12,"Mg25",&theEvaporationProbability) {} // destructor ~G4Mg25GEMChannel() {}; private: - const G4Mg25GEMChannel & operator=(const G4Mg25GEMChannel & right); + const G4Mg25GEMChannel & operator=(const G4Mg25GEMChannel & right) = delete; + G4Mg25GEMChannel(const G4Mg25GEMChannel & right) = delete; + G4bool operator==(const G4Mg25GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg25GEMChannel & right) const = delete; - G4Mg25GEMChannel(const G4Mg25GEMChannel & right); - -public: - G4bool operator==(const G4Mg25GEMChannel & right) const; - G4bool operator!=(const G4Mg25GEMChannel & right) const; - -private: - - G4Mg25GEMCoulombBarrier theCoulombBarrier; - G4Mg25GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh deleted file mode 100644 index 078f4bd611..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg25GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg25GEMCoulombBarrier_h -#define G4Mg25GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg25GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg25GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg25GEMCoulombBarrier() : G4GEMCoulombBarrierHE(25,12) {}; - G4Mg25GEMCoulombBarrier() : G4GEMCoulombBarrier(25,12) {}; - ~G4Mg25GEMCoulombBarrier() {}; - -private: - G4Mg25GEMCoulombBarrier(const G4Mg25GEMCoulombBarrier & right); - - const G4Mg25GEMCoulombBarrier & operator=(const G4Mg25GEMCoulombBarrier & right); - G4bool operator==(const G4Mg25GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg25GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh index a2afdf4bb9..46d805191a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg26GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg26GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg26GEMChannel_h #define G4Mg26GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg26GEMCoulombBarrier.hh" #include "G4Mg26GEMProbability.hh" class G4Mg26GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg26GEMChannel() : G4GEMChannel(26,12,"Mg26", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg26GEMChannel() + : G4GEMChannel(26,12,"Mg26",&theEvaporationProbability) {} // destructor ~G4Mg26GEMChannel() {}; private: - const G4Mg26GEMChannel & operator=(const G4Mg26GEMChannel & right); + const G4Mg26GEMChannel & operator=(const G4Mg26GEMChannel & right) = delete; + G4Mg26GEMChannel(const G4Mg26GEMChannel & right) = delete; + G4bool operator==(const G4Mg26GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg26GEMChannel & right) const = delete; - G4Mg26GEMChannel(const G4Mg26GEMChannel & right); - -public: - G4bool operator==(const G4Mg26GEMChannel & right) const; - G4bool operator!=(const G4Mg26GEMChannel & right) const; - -private: - - G4Mg26GEMCoulombBarrier theCoulombBarrier; - G4Mg26GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh deleted file mode 100644 index d52a092983..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg26GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg26GEMCoulombBarrier_h -#define G4Mg26GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg26GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg26GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg26GEMCoulombBarrier() : G4GEMCoulombBarrierHE(26,12) {}; - G4Mg26GEMCoulombBarrier() : G4GEMCoulombBarrier(26,12) {}; - ~G4Mg26GEMCoulombBarrier() {}; - -private: - G4Mg26GEMCoulombBarrier(const G4Mg26GEMCoulombBarrier & right); - - const G4Mg26GEMCoulombBarrier & operator=(const G4Mg26GEMCoulombBarrier & right); - G4bool operator==(const G4Mg26GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg26GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh index 80cf9be7c4..2d37e128b9 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg27GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg27GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg27GEMChannel_h #define G4Mg27GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg27GEMCoulombBarrier.hh" #include "G4Mg27GEMProbability.hh" class G4Mg27GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg27GEMChannel() : G4GEMChannel(27,12,"Mg27", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg27GEMChannel() + : G4GEMChannel(27,12,"Mg27",&theEvaporationProbability) {} // destructor ~G4Mg27GEMChannel() {}; private: - const G4Mg27GEMChannel & operator=(const G4Mg27GEMChannel & right); + const G4Mg27GEMChannel & operator=(const G4Mg27GEMChannel & right) = delete; + G4Mg27GEMChannel(const G4Mg27GEMChannel & right) = delete; + G4bool operator==(const G4Mg27GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg27GEMChannel & right) const = delete; - G4Mg27GEMChannel(const G4Mg27GEMChannel & right); - -public: - G4bool operator==(const G4Mg27GEMChannel & right) const; - G4bool operator!=(const G4Mg27GEMChannel & right) const; - -private: - - G4Mg27GEMCoulombBarrier theCoulombBarrier; - G4Mg27GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh deleted file mode 100644 index 1fd1231c5e..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg27GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg27GEMCoulombBarrier_h -#define G4Mg27GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg27GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg27GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg27GEMCoulombBarrier() : G4GEMCoulombBarrierHE(27,12) {}; - G4Mg27GEMCoulombBarrier() : G4GEMCoulombBarrier(27,12) {}; - ~G4Mg27GEMCoulombBarrier() {}; - -private: - G4Mg27GEMCoulombBarrier(const G4Mg27GEMCoulombBarrier & right); - - const G4Mg27GEMCoulombBarrier & operator=(const G4Mg27GEMCoulombBarrier & right); - G4bool operator==(const G4Mg27GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg27GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh index edbb1f90b7..9a3eb40132 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Mg28GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Mg28GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Mg28GEMChannel_h #define G4Mg28GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Mg28GEMCoulombBarrier.hh" #include "G4Mg28GEMProbability.hh" class G4Mg28GEMChannel : public G4GEMChannel { public: // only available constructor - G4Mg28GEMChannel() : G4GEMChannel(28,12,"Mg28", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Mg28GEMChannel() + : G4GEMChannel(28,12,"Mg28",&theEvaporationProbability) {} // destructor ~G4Mg28GEMChannel() {}; private: - const G4Mg28GEMChannel & operator=(const G4Mg28GEMChannel & right); + const G4Mg28GEMChannel & operator=(const G4Mg28GEMChannel & right) = delete; + G4Mg28GEMChannel(const G4Mg28GEMChannel & right) = delete; + G4bool operator==(const G4Mg28GEMChannel & right) const = delete; + G4bool operator!=(const G4Mg28GEMChannel & right) const = delete; - G4Mg28GEMChannel(const G4Mg28GEMChannel & right); - -public: - G4bool operator==(const G4Mg28GEMChannel & right) const; - G4bool operator!=(const G4Mg28GEMChannel & right) const; - -private: - - G4Mg28GEMCoulombBarrier theCoulombBarrier; - G4Mg28GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh deleted file mode 100644 index 5afda970d2..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Mg28GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Mg28GEMCoulombBarrier_h -#define G4Mg28GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Mg28GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Mg28GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Mg28GEMCoulombBarrier() : G4GEMCoulombBarrierHE(28,12) {}; - G4Mg28GEMCoulombBarrier() : G4GEMCoulombBarrier(28,12) {}; - ~G4Mg28GEMCoulombBarrier() {}; - -private: - G4Mg28GEMCoulombBarrier(const G4Mg28GEMCoulombBarrier & right); - - const G4Mg28GEMCoulombBarrier & operator=(const G4Mg28GEMCoulombBarrier & right); - G4bool operator==(const G4Mg28GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Mg28GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh index 75f74860ae..a3a34c9f4f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4N12GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4N12GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4N12GEMChannel_h #define G4N12GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4N12GEMCoulombBarrier.hh" #include "G4N12GEMProbability.hh" class G4N12GEMChannel : public G4GEMChannel { public: // only available constructor - G4N12GEMChannel() : G4GEMChannel(12,7,"N12", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4N12GEMChannel() + : G4GEMChannel(12,7,"N12",&theEvaporationProbability) {} // destructor ~G4N12GEMChannel() {}; private: - const G4N12GEMChannel & operator=(const G4N12GEMChannel & right); + const G4N12GEMChannel & operator=(const G4N12GEMChannel & right) = delete; + G4N12GEMChannel(const G4N12GEMChannel & right) = delete; + G4bool operator==(const G4N12GEMChannel & right) const = delete; + G4bool operator!=(const G4N12GEMChannel & right) const = delete; - G4N12GEMChannel(const G4N12GEMChannel & right); - -public: - G4bool operator==(const G4N12GEMChannel & right) const; - G4bool operator!=(const G4N12GEMChannel & right) const; - -private: - - G4N12GEMCoulombBarrier theCoulombBarrier; - G4N12GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh deleted file mode 100644 index 9f3ed8a4c7..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4N12GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4N12GEMCoulombBarrier_h -#define G4N12GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4N12GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4N12GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4N12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(12,7) {}; - G4N12GEMCoulombBarrier() : G4GEMCoulombBarrier(12,7) {}; - ~G4N12GEMCoulombBarrier() {}; - -private: - G4N12GEMCoulombBarrier(const G4N12GEMCoulombBarrier & right); - - const G4N12GEMCoulombBarrier & operator=(const G4N12GEMCoulombBarrier & right); - G4bool operator==(const G4N12GEMCoulombBarrier & right) const; - G4bool operator!=(const G4N12GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh index bba8a541fe..e4a820893a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4N13GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4N13GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4N13GEMChannel_h #define G4N13GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4N13GEMCoulombBarrier.hh" #include "G4N13GEMProbability.hh" class G4N13GEMChannel : public G4GEMChannel { public: // only available constructor - G4N13GEMChannel() : G4GEMChannel(13,7,"N13", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4N13GEMChannel() + : G4GEMChannel(13,7,"N13",&theEvaporationProbability) {} // destructor ~G4N13GEMChannel() {}; private: - const G4N13GEMChannel & operator=(const G4N13GEMChannel & right); + const G4N13GEMChannel & operator=(const G4N13GEMChannel & right) = delete; + G4N13GEMChannel(const G4N13GEMChannel & right) = delete; + G4bool operator==(const G4N13GEMChannel & right) const = delete; + G4bool operator!=(const G4N13GEMChannel & right) const = delete; - G4N13GEMChannel(const G4N13GEMChannel & right); - -public: - G4bool operator==(const G4N13GEMChannel & right) const; - G4bool operator!=(const G4N13GEMChannel & right) const; - -private: - - G4N13GEMCoulombBarrier theCoulombBarrier; - G4N13GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh deleted file mode 100644 index 3c39e48aa1..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4N13GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4N13GEMCoulombBarrier_h -#define G4N13GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4N13GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4N13GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4N13GEMCoulombBarrier() : G4GEMCoulombBarrierHE(13,7) {}; - G4N13GEMCoulombBarrier() : G4GEMCoulombBarrier(13,7) {}; - ~G4N13GEMCoulombBarrier() {}; - -private: - G4N13GEMCoulombBarrier(const G4N13GEMCoulombBarrier & right); - - const G4N13GEMCoulombBarrier & operator=(const G4N13GEMCoulombBarrier & right); - G4bool operator==(const G4N13GEMCoulombBarrier & right) const; - G4bool operator!=(const G4N13GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh index 78134d7fec..ee50149bde 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4N14GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4N14GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4N14GEMChannel_h #define G4N14GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4N14GEMCoulombBarrier.hh" #include "G4N14GEMProbability.hh" class G4N14GEMChannel : public G4GEMChannel { public: // only available constructor - G4N14GEMChannel() : G4GEMChannel(14,7,"N14", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4N14GEMChannel() + : G4GEMChannel(14,7,"N14",&theEvaporationProbability) {} // destructor ~G4N14GEMChannel() {}; private: - const G4N14GEMChannel & operator=(const G4N14GEMChannel & right); + const G4N14GEMChannel & operator=(const G4N14GEMChannel & right) = delete; + G4N14GEMChannel(const G4N14GEMChannel & right) = delete; + G4bool operator==(const G4N14GEMChannel & right) const = delete; + G4bool operator!=(const G4N14GEMChannel & right) const = delete; - G4N14GEMChannel(const G4N14GEMChannel & right); - -public: - G4bool operator==(const G4N14GEMChannel & right) const; - G4bool operator!=(const G4N14GEMChannel & right) const; - -private: - - G4N14GEMCoulombBarrier theCoulombBarrier; - G4N14GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh deleted file mode 100644 index e9f7d31be9..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4N14GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4N14GEMCoulombBarrier_h -#define G4N14GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4N14GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4N14GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4N14GEMCoulombBarrier() : G4GEMCoulombBarrierHE(14,7) {}; - G4N14GEMCoulombBarrier() : G4GEMCoulombBarrier(14,7) {}; - ~G4N14GEMCoulombBarrier() {}; - -private: - G4N14GEMCoulombBarrier(const G4N14GEMCoulombBarrier & right); - - const G4N14GEMCoulombBarrier & operator=(const G4N14GEMCoulombBarrier & right); - G4bool operator==(const G4N14GEMCoulombBarrier & right) const; - G4bool operator!=(const G4N14GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh index 816c24d234..1d1c09e51b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh @@ -24,46 +24,32 @@ // ******************************************************************** // // -// $Id: G4N15GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4N15GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4N15GEMChannel_h #define G4N15GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4N15GEMCoulombBarrier.hh" #include "G4N15GEMProbability.hh" class G4N15GEMChannel : public G4GEMChannel { public: // only available constructor - G4N15GEMChannel() : G4GEMChannel(15,7,"N15", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4N15GEMChannel() + : G4GEMChannel(15,7,"N15",&theEvaporationProbability) {} // destructor ~G4N15GEMChannel() {}; private: - const G4N15GEMChannel & operator=(const G4N15GEMChannel & right); - - G4N15GEMChannel(const G4N15GEMChannel & right); - -public: - G4bool operator==(const G4N15GEMChannel & right) const; - G4bool operator!=(const G4N15GEMChannel & right) const; - -private: - - G4N15GEMCoulombBarrier theCoulombBarrier; + const G4N15GEMChannel & operator=(const G4N15GEMChannel & right) = delete; + G4N15GEMChannel(const G4N15GEMChannel & right) = delete; + G4bool operator==(const G4N15GEMChannel & right) const = delete; + G4bool operator!=(const G4N15GEMChannel & right) const = delete; G4N15GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh deleted file mode 100644 index 804235f5a5..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4N15GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4N15GEMCoulombBarrier_h -#define G4N15GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4N15GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4N15GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4N15GEMCoulombBarrier() : G4GEMCoulombBarrierHE(15,7) {}; - G4N15GEMCoulombBarrier() : G4GEMCoulombBarrier(15,7) {}; - ~G4N15GEMCoulombBarrier() {}; - -private: - G4N15GEMCoulombBarrier(const G4N15GEMCoulombBarrier & right); - - const G4N15GEMCoulombBarrier & operator=(const G4N15GEMCoulombBarrier & right); - G4bool operator==(const G4N15GEMCoulombBarrier & right) const; - G4bool operator!=(const G4N15GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh index 69ec65b0b6..d6dca9e3f7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4N16GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4N16GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4N16GEMChannel_h #define G4N16GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4N16GEMCoulombBarrier.hh" #include "G4N16GEMProbability.hh" class G4N16GEMChannel : public G4GEMChannel { public: // only available constructor - G4N16GEMChannel() : G4GEMChannel(16,7,"N16", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4N16GEMChannel() + : G4GEMChannel(16,7,"N16",&theEvaporationProbability) {} // destructor ~G4N16GEMChannel() {}; private: - const G4N16GEMChannel & operator=(const G4N16GEMChannel & right); + const G4N16GEMChannel & operator=(const G4N16GEMChannel & right) = delete; + G4N16GEMChannel(const G4N16GEMChannel & right) = delete; + G4bool operator==(const G4N16GEMChannel & right) const = delete; + G4bool operator!=(const G4N16GEMChannel & right) const = delete; - G4N16GEMChannel(const G4N16GEMChannel & right); - -public: - G4bool operator==(const G4N16GEMChannel & right) const; - G4bool operator!=(const G4N16GEMChannel & right) const; - -private: - - G4N16GEMCoulombBarrier theCoulombBarrier; - G4N16GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh deleted file mode 100644 index 50117acef6..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4N16GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4N16GEMCoulombBarrier_h -#define G4N16GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4N16GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4N16GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4N16GEMCoulombBarrier() : G4GEMCoulombBarrierHE(16,7) {}; - G4N16GEMCoulombBarrier() : G4GEMCoulombBarrier(16,7) {}; - ~G4N16GEMCoulombBarrier() {}; - -private: - G4N16GEMCoulombBarrier(const G4N16GEMCoulombBarrier & right); - - const G4N16GEMCoulombBarrier & operator=(const G4N16GEMCoulombBarrier & right); - G4bool operator==(const G4N16GEMCoulombBarrier & right) const; - G4bool operator!=(const G4N16GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh index b4ef7d32ea..afb0d93700 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh @@ -24,47 +24,34 @@ // ******************************************************************** // // -// $Id: G4N17GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4N17GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4N17GEMChannel_h #define G4N17GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4N17GEMCoulombBarrier.hh" #include "G4N17GEMProbability.hh" class G4N17GEMChannel : public G4GEMChannel { public: // only available constructor - G4N17GEMChannel() : G4GEMChannel(17,7,"N17", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4N17GEMChannel() + : G4GEMChannel(17,7,"N17",&theEvaporationProbability) {} // destructor ~G4N17GEMChannel() {}; private: - const G4N17GEMChannel & operator=(const G4N17GEMChannel & right); + const G4N17GEMChannel & operator=(const G4N17GEMChannel & right) = delete; + G4N17GEMChannel(const G4N17GEMChannel & right) = delete; + G4bool operator==(const G4N17GEMChannel & right) const = delete; + G4bool operator!=(const G4N17GEMChannel & right) const = delete; - G4N17GEMChannel(const G4N17GEMChannel & right); - -public: - G4bool operator==(const G4N17GEMChannel & right) const; - G4bool operator!=(const G4N17GEMChannel & right) const; - -private: - - G4N17GEMCoulombBarrier theCoulombBarrier; - G4N17GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh deleted file mode 100644 index ddea466e57..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4N17GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4N17GEMCoulombBarrier_h -#define G4N17GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4N17GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4N17GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4N17GEMCoulombBarrier() : G4GEMCoulombBarrierHE(17,7) {}; - G4N17GEMCoulombBarrier() : G4GEMCoulombBarrier(17,7) {}; - ~G4N17GEMCoulombBarrier() {}; - -private: - G4N17GEMCoulombBarrier(const G4N17GEMCoulombBarrier & right); - - const G4N17GEMCoulombBarrier & operator=(const G4N17GEMCoulombBarrier & right); - G4bool operator==(const G4N17GEMCoulombBarrier & right) const; - G4bool operator!=(const G4N17GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh index 460f469d64..2dd8d07b92 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Na21GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Na21GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Na21GEMChannel_h #define G4Na21GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Na21GEMCoulombBarrier.hh" #include "G4Na21GEMProbability.hh" class G4Na21GEMChannel : public G4GEMChannel { public: // only available constructor - G4Na21GEMChannel() : G4GEMChannel(21,11,"Na21", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Na21GEMChannel() + : G4GEMChannel(21,11,"Na21",&theEvaporationProbability) {} // destructor ~G4Na21GEMChannel() {}; private: - const G4Na21GEMChannel & operator=(const G4Na21GEMChannel & right); + const G4Na21GEMChannel & operator=(const G4Na21GEMChannel & right) = delete; + G4Na21GEMChannel(const G4Na21GEMChannel & right) = delete; + G4bool operator==(const G4Na21GEMChannel & right) const = delete; + G4bool operator!=(const G4Na21GEMChannel & right) const = delete; - G4Na21GEMChannel(const G4Na21GEMChannel & right); - -public: - G4bool operator==(const G4Na21GEMChannel & right) const; - G4bool operator!=(const G4Na21GEMChannel & right) const; - -private: - - G4Na21GEMCoulombBarrier theCoulombBarrier; - G4Na21GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh index 8b50f09f1f..6b35cc9b78 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Na22GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Na22GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Na22GEMChannel_h #define G4Na22GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Na22GEMCoulombBarrier.hh" #include "G4Na22GEMProbability.hh" class G4Na22GEMChannel : public G4GEMChannel { public: // only available constructor - G4Na22GEMChannel() : G4GEMChannel(22,11,"Na22", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Na22GEMChannel() + : G4GEMChannel(22,11,"Na22",&theEvaporationProbability) {} // destructor ~G4Na22GEMChannel() {}; private: - const G4Na22GEMChannel & operator=(const G4Na22GEMChannel & right); + const G4Na22GEMChannel & operator=(const G4Na22GEMChannel & right) = delete; + G4Na22GEMChannel(const G4Na22GEMChannel & right) = delete; + G4bool operator==(const G4Na22GEMChannel & right) const = delete; + G4bool operator!=(const G4Na22GEMChannel & right) const = delete; - G4Na22GEMChannel(const G4Na22GEMChannel & right); - -public: - G4bool operator==(const G4Na22GEMChannel & right) const; - G4bool operator!=(const G4Na22GEMChannel & right) const; - -private: - - G4Na22GEMCoulombBarrier theCoulombBarrier; - G4Na22GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh deleted file mode 100644 index f369843a4a..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Na22GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Na22GEMCoulombBarrier_h -#define G4Na22GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Na22GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Na22GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Na22GEMCoulombBarrier() : G4GEMCoulombBarrierHE(22,11) {}; - G4Na22GEMCoulombBarrier() : G4GEMCoulombBarrier(22,11) {}; - ~G4Na22GEMCoulombBarrier() {}; - -private: - G4Na22GEMCoulombBarrier(const G4Na22GEMCoulombBarrier & right); - - const G4Na22GEMCoulombBarrier & operator=(const G4Na22GEMCoulombBarrier & right); - G4bool operator==(const G4Na22GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Na22GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh index fc80821c22..123880e774 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh @@ -24,46 +24,33 @@ // ******************************************************************** // // -// $Id: G4Na23GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Na23GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4Na23GEMChannel_h #define G4Na23GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Na23GEMCoulombBarrier.hh" #include "G4Na23GEMProbability.hh" class G4Na23GEMChannel : public G4GEMChannel { public: // only available constructor - G4Na23GEMChannel() : G4GEMChannel(23,11,"Na23", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Na23GEMChannel() + : G4GEMChannel(23,11,"Na23",&theEvaporationProbability) {} // destructor ~G4Na23GEMChannel() {}; private: - const G4Na23GEMChannel & operator=(const G4Na23GEMChannel & right); - - G4Na23GEMChannel(const G4Na23GEMChannel & right); - -public: - G4bool operator==(const G4Na23GEMChannel & right) const; - G4bool operator!=(const G4Na23GEMChannel & right) const; - -private: - - G4Na23GEMCoulombBarrier theCoulombBarrier; + const G4Na23GEMChannel & operator=(const G4Na23GEMChannel & right) = delete; + G4Na23GEMChannel(const G4Na23GEMChannel & right) = delete; + G4bool operator==(const G4Na23GEMChannel & right) const = delete; + G4bool operator!=(const G4Na23GEMChannel & right) const = delete; G4Na23GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh deleted file mode 100644 index fd395087f1..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Na23GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Na23GEMCoulombBarrier_h -#define G4Na23GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Na23GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Na23GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Na23GEMCoulombBarrier() : G4GEMCoulombBarrierHE(23,11) {}; - G4Na23GEMCoulombBarrier() : G4GEMCoulombBarrier(23,11) {}; - ~G4Na23GEMCoulombBarrier() {}; - -private: - G4Na23GEMCoulombBarrier(const G4Na23GEMCoulombBarrier & right); - - const G4Na23GEMCoulombBarrier & operator=(const G4Na23GEMCoulombBarrier & right); - G4bool operator==(const G4Na23GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Na23GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh index b3339d8194..79130489ba 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Na24GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Na24GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Na24GEMChannel_h #define G4Na24GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Na24GEMCoulombBarrier.hh" #include "G4Na24GEMProbability.hh" class G4Na24GEMChannel : public G4GEMChannel { public: // only available constructor - G4Na24GEMChannel() : G4GEMChannel(24,11,"Na24", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Na24GEMChannel() + : G4GEMChannel(24,11,"Na24",&theEvaporationProbability) {} // destructor ~G4Na24GEMChannel() {}; private: - const G4Na24GEMChannel & operator=(const G4Na24GEMChannel & right); + const G4Na24GEMChannel & operator=(const G4Na24GEMChannel & right) = delete; + G4Na24GEMChannel(const G4Na24GEMChannel & right) = delete; + G4bool operator==(const G4Na24GEMChannel & right) const = delete; + G4bool operator!=(const G4Na24GEMChannel & right) const = delete; - G4Na24GEMChannel(const G4Na24GEMChannel & right); - -public: - G4bool operator==(const G4Na24GEMChannel & right) const; - G4bool operator!=(const G4Na24GEMChannel & right) const; - -private: - - G4Na24GEMCoulombBarrier theCoulombBarrier; - G4Na24GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh deleted file mode 100644 index 894f07c10f..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Na24GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Na24GEMCoulombBarrier_h -#define G4Na24GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Na24GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Na24GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Na24GEMCoulombBarrier() : G4GEMCoulombBarrierHE(24,11) {}; - G4Na24GEMCoulombBarrier() : G4GEMCoulombBarrier(24,11) {}; - ~G4Na24GEMCoulombBarrier() {}; - -private: - G4Na24GEMCoulombBarrier(const G4Na24GEMCoulombBarrier & right); - - const G4Na24GEMCoulombBarrier & operator=(const G4Na24GEMCoulombBarrier & right); - G4bool operator==(const G4Na24GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Na24GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh index eb6902bb64..bc52a91619 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Na25GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Na25GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Na25GEMChannel_h #define G4Na25GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Na25GEMCoulombBarrier.hh" #include "G4Na25GEMProbability.hh" class G4Na25GEMChannel : public G4GEMChannel { public: // only available constructor - G4Na25GEMChannel() : G4GEMChannel(25,11,"Na25", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Na25GEMChannel() + : G4GEMChannel(25,11,"Na25",&theEvaporationProbability) {} // destructor ~G4Na25GEMChannel() {}; private: - const G4Na25GEMChannel & operator=(const G4Na25GEMChannel & right); + const G4Na25GEMChannel & operator=(const G4Na25GEMChannel & right) = delete; + G4Na25GEMChannel(const G4Na25GEMChannel & right) = delete; + G4bool operator==(const G4Na25GEMChannel & right) const = delete; + G4bool operator!=(const G4Na25GEMChannel & right) const = delete; - G4Na25GEMChannel(const G4Na25GEMChannel & right); - -public: - G4bool operator==(const G4Na25GEMChannel & right) const; - G4bool operator!=(const G4Na25GEMChannel & right) const; - -private: - - G4Na25GEMCoulombBarrier theCoulombBarrier; - G4Na25GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh deleted file mode 100644 index 4324a1423d..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Na25GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Na25GEMCoulombBarrier_h -#define G4Na25GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Na25GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Na25GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Na25GEMCoulombBarrier() : G4GEMCoulombBarrierHE(25,11) {}; - G4Na25GEMCoulombBarrier() : G4GEMCoulombBarrier(25,11) {}; - ~G4Na25GEMCoulombBarrier() {}; - -private: - G4Na25GEMCoulombBarrier(const G4Na25GEMCoulombBarrier & right); - - const G4Na25GEMCoulombBarrier & operator=(const G4Na25GEMCoulombBarrier & right); - G4bool operator==(const G4Na25GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Na25GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh index df356eef8a..136f9ec3a4 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh @@ -24,47 +24,34 @@ // ******************************************************************** // // -// $Id: G4Ne18GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne18GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4Ne18GEMChannel_h #define G4Ne18GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne18GEMCoulombBarrier.hh" #include "G4Ne18GEMProbability.hh" class G4Ne18GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne18GEMChannel() : G4GEMChannel(18,10,"Ne18", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne18GEMChannel() + : G4GEMChannel(18,10,"Ne18",&theEvaporationProbability) {} // destructor ~G4Ne18GEMChannel() {}; private: - const G4Ne18GEMChannel & operator=(const G4Ne18GEMChannel & right); + const G4Ne18GEMChannel & operator=(const G4Ne18GEMChannel & right) = delete; + G4Ne18GEMChannel(const G4Ne18GEMChannel & right) = delete; + G4bool operator==(const G4Ne18GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne18GEMChannel & right) const = delete; - G4Ne18GEMChannel(const G4Ne18GEMChannel & right); - -public: - G4bool operator==(const G4Ne18GEMChannel & right) const; - G4bool operator!=(const G4Ne18GEMChannel & right) const; - -private: - - G4Ne18GEMCoulombBarrier theCoulombBarrier; - G4Ne18GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh deleted file mode 100644 index 946ec292b5..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne18GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne18GEMCoulombBarrier_h -#define G4Ne18GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne18GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne18GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne18GEMCoulombBarrier() : G4GEMCoulombBarrierHE(18,10) {}; - G4Ne18GEMCoulombBarrier() : G4GEMCoulombBarrier(18,10) {}; - ~G4Ne18GEMCoulombBarrier() {}; - -private: - G4Ne18GEMCoulombBarrier(const G4Ne18GEMCoulombBarrier & right); - - const G4Ne18GEMCoulombBarrier & operator=(const G4Ne18GEMCoulombBarrier & right); - G4bool operator==(const G4Ne18GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne18GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh index ca143da075..3474aa7f1d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh @@ -24,46 +24,32 @@ // ******************************************************************** // // -// $Id: G4Ne19GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne19GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Ne19GEMChannel_h #define G4Ne19GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne19GEMCoulombBarrier.hh" #include "G4Ne19GEMProbability.hh" class G4Ne19GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne19GEMChannel() : G4GEMChannel(19,10,"Ne19", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne19GEMChannel() + : G4GEMChannel(19,10,"Ne19",&theEvaporationProbability) {} // destructor ~G4Ne19GEMChannel() {}; private: - const G4Ne19GEMChannel & operator=(const G4Ne19GEMChannel & right); - - G4Ne19GEMChannel(const G4Ne19GEMChannel & right); - -public: - G4bool operator==(const G4Ne19GEMChannel & right) const; - G4bool operator!=(const G4Ne19GEMChannel & right) const; - -private: - - G4Ne19GEMCoulombBarrier theCoulombBarrier; + const G4Ne19GEMChannel & operator=(const G4Ne19GEMChannel & right) = delete; + G4Ne19GEMChannel(const G4Ne19GEMChannel & right) = delete; + G4bool operator==(const G4Ne19GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne19GEMChannel & right) const = delete; G4Ne19GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh deleted file mode 100644 index f272e6f288..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne19GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne19GEMCoulombBarrier_h -#define G4Ne19GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne19GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne19GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne19GEMCoulombBarrier() : G4GEMCoulombBarrierHE(19,10) {}; - G4Ne19GEMCoulombBarrier() : G4GEMCoulombBarrier(19,10) {}; - ~G4Ne19GEMCoulombBarrier() {}; - -private: - G4Ne19GEMCoulombBarrier(const G4Ne19GEMCoulombBarrier & right); - - const G4Ne19GEMCoulombBarrier & operator=(const G4Ne19GEMCoulombBarrier & right); - G4bool operator==(const G4Ne19GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne19GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh index c403a21953..c905cb1615 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh @@ -24,46 +24,33 @@ // ******************************************************************** // // -// $Id: G4Ne20GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne20GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4Ne20GEMChannel_h #define G4Ne20GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne20GEMCoulombBarrier.hh" #include "G4Ne20GEMProbability.hh" class G4Ne20GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne20GEMChannel() : G4GEMChannel(20,10,"Ne20", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne20GEMChannel() + : G4GEMChannel(20,10,"Ne20",&theEvaporationProbability) {} // destructor ~G4Ne20GEMChannel() {}; private: - const G4Ne20GEMChannel & operator=(const G4Ne20GEMChannel & right); - - G4Ne20GEMChannel(const G4Ne20GEMChannel & right); - -public: - G4bool operator==(const G4Ne20GEMChannel & right) const; - G4bool operator!=(const G4Ne20GEMChannel & right) const; - -private: - - G4Ne20GEMCoulombBarrier theCoulombBarrier; + const G4Ne20GEMChannel & operator=(const G4Ne20GEMChannel & right) = delete; + G4Ne20GEMChannel(const G4Ne20GEMChannel & right) = delete; + G4bool operator==(const G4Ne20GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne20GEMChannel & right) const = delete; G4Ne20GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh deleted file mode 100644 index 8da34f6c85..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne20GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne20GEMCoulombBarrier_h -#define G4Ne20GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne20GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne20GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne20GEMCoulombBarrier() : G4GEMCoulombBarrierHE(20,10) {}; - G4Ne20GEMCoulombBarrier() : G4GEMCoulombBarrier(20,10) {}; - ~G4Ne20GEMCoulombBarrier() {}; - -private: - G4Ne20GEMCoulombBarrier(const G4Ne20GEMCoulombBarrier & right); - - const G4Ne20GEMCoulombBarrier & operator=(const G4Ne20GEMCoulombBarrier & right); - G4bool operator==(const G4Ne20GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne20GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh index c3bc26ea4e..3ec489e0eb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh @@ -24,47 +24,34 @@ // ******************************************************************** // // -// $Id: G4Ne21GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne21GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4Ne21GEMChannel_h #define G4Ne21GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne21GEMCoulombBarrier.hh" #include "G4Ne21GEMProbability.hh" class G4Ne21GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne21GEMChannel() : G4GEMChannel(21,10,"Ne21", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne21GEMChannel() + : G4GEMChannel(21,10,"Ne21",&theEvaporationProbability) {} // destructor ~G4Ne21GEMChannel() {}; private: - const G4Ne21GEMChannel & operator=(const G4Ne21GEMChannel & right); + const G4Ne21GEMChannel & operator=(const G4Ne21GEMChannel & right) = delete; + G4Ne21GEMChannel(const G4Ne21GEMChannel & right) = delete; + G4bool operator==(const G4Ne21GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne21GEMChannel & right) const = delete; - G4Ne21GEMChannel(const G4Ne21GEMChannel & right); - -public: - G4bool operator==(const G4Ne21GEMChannel & right) const; - G4bool operator!=(const G4Ne21GEMChannel & right) const; - -private: - - G4Ne21GEMCoulombBarrier theCoulombBarrier; - G4Ne21GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh deleted file mode 100644 index 9bf1e47b84..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne21GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne21GEMCoulombBarrier_h -#define G4Ne21GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne21GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne21GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne21GEMCoulombBarrier() : G4GEMCoulombBarrierHE(21,10) {}; - G4Ne21GEMCoulombBarrier() : G4GEMCoulombBarrier(21,10) {}; - ~G4Ne21GEMCoulombBarrier() {}; - -private: - G4Ne21GEMCoulombBarrier(const G4Ne21GEMCoulombBarrier & right); - - const G4Ne21GEMCoulombBarrier & operator=(const G4Ne21GEMCoulombBarrier & right); - G4bool operator==(const G4Ne21GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne21GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh index fa31ed9c66..65ed39141a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4Ne22GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne22GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4Ne22GEMChannel_h #define G4Ne22GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne22GEMCoulombBarrier.hh" #include "G4Ne22GEMProbability.hh" class G4Ne22GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne22GEMChannel() : G4GEMChannel(22,10,"Ne22", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne22GEMChannel() + : G4GEMChannel(22,10,"Ne22",&theEvaporationProbability) {} // destructor ~G4Ne22GEMChannel() {}; private: - const G4Ne22GEMChannel & operator=(const G4Ne22GEMChannel & right); + const G4Ne22GEMChannel & operator=(const G4Ne22GEMChannel & right) = delete; + G4Ne22GEMChannel(const G4Ne22GEMChannel & right) = delete; + G4bool operator==(const G4Ne22GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne22GEMChannel & right) const = delete; - G4Ne22GEMChannel(const G4Ne22GEMChannel & right); - -public: - G4bool operator==(const G4Ne22GEMChannel & right) const; - G4bool operator!=(const G4Ne22GEMChannel & right) const; - -private: - - G4Ne22GEMCoulombBarrier theCoulombBarrier; - G4Ne22GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh deleted file mode 100644 index fff673e652..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne22GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne22GEMCoulombBarrier_h -#define G4Ne22GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne22GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne22GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne22GEMCoulombBarrier() : G4GEMCoulombBarrierHE(22,10) {}; - G4Ne22GEMCoulombBarrier() : G4GEMCoulombBarrier(22,10) {}; - ~G4Ne22GEMCoulombBarrier() {}; - -private: - G4Ne22GEMCoulombBarrier(const G4Ne22GEMCoulombBarrier & right); - - const G4Ne22GEMCoulombBarrier & operator=(const G4Ne22GEMCoulombBarrier & right); - G4bool operator==(const G4Ne22GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne22GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh index 83c7a8e546..6d5c5a4b91 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh @@ -24,47 +24,34 @@ // ******************************************************************** // // -// $Id: G4Ne23GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne23GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4Ne23GEMChannel_h #define G4Ne23GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne23GEMCoulombBarrier.hh" #include "G4Ne23GEMProbability.hh" class G4Ne23GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne23GEMChannel() : G4GEMChannel(23,10,"Ne23", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne23GEMChannel() + : G4GEMChannel(23,10,"Ne23",&theEvaporationProbability) {} // destructor ~G4Ne23GEMChannel() {}; private: - const G4Ne23GEMChannel & operator=(const G4Ne23GEMChannel & right); + const G4Ne23GEMChannel & operator=(const G4Ne23GEMChannel & right) = delete; + G4Ne23GEMChannel(const G4Ne23GEMChannel & right) = delete; + G4bool operator==(const G4Ne23GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne23GEMChannel & right) const = delete; - G4Ne23GEMChannel(const G4Ne23GEMChannel & right); - -public: - G4bool operator==(const G4Ne23GEMChannel & right) const; - G4bool operator!=(const G4Ne23GEMChannel & right) const; - -private: - - G4Ne23GEMCoulombBarrier theCoulombBarrier; - G4Ne23GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh deleted file mode 100644 index d10d8760c1..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne23GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne23GEMCoulombBarrier_h -#define G4Ne23GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne23GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne23GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne23GEMCoulombBarrier() : G4GEMCoulombBarrierHE(23,10) {}; - G4Ne23GEMCoulombBarrier() : G4GEMCoulombBarrier(23,10) {}; - ~G4Ne23GEMCoulombBarrier() {}; - -private: - G4Ne23GEMCoulombBarrier(const G4Ne23GEMCoulombBarrier & right); - - const G4Ne23GEMCoulombBarrier & operator=(const G4Ne23GEMCoulombBarrier & right); - G4bool operator==(const G4Ne23GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne23GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh index 75440c9ac5..8fa8645ec2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh @@ -24,47 +24,34 @@ // ******************************************************************** // // -// $Id: G4Ne24GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4Ne24GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4Ne24GEMChannel_h #define G4Ne24GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4Ne24GEMCoulombBarrier.hh" #include "G4Ne24GEMProbability.hh" class G4Ne24GEMChannel : public G4GEMChannel { public: // only available constructor - G4Ne24GEMChannel() : G4GEMChannel(24,10,"Ne24", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4Ne24GEMChannel() + : G4GEMChannel(24,10,"Ne24",&theEvaporationProbability) {} // destructor ~G4Ne24GEMChannel() {}; private: - const G4Ne24GEMChannel & operator=(const G4Ne24GEMChannel & right); + const G4Ne24GEMChannel & operator=(const G4Ne24GEMChannel & right) = delete; + G4Ne24GEMChannel(const G4Ne24GEMChannel & right) = delete; + G4bool operator==(const G4Ne24GEMChannel & right) const = delete; + G4bool operator!=(const G4Ne24GEMChannel & right) const = delete; - G4Ne24GEMChannel(const G4Ne24GEMChannel & right); - -public: - G4bool operator==(const G4Ne24GEMChannel & right) const; - G4bool operator!=(const G4Ne24GEMChannel & right) const; - -private: - - G4Ne24GEMCoulombBarrier theCoulombBarrier; - G4Ne24GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh deleted file mode 100644 index afaef633a2..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Ne24GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4Ne24GEMCoulombBarrier_h -#define G4Ne24GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4Ne24GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4Ne24GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4Ne24GEMCoulombBarrier() : G4GEMCoulombBarrierHE(24,10) {}; - G4Ne24GEMCoulombBarrier() : G4GEMCoulombBarrier(24,10) {}; - ~G4Ne24GEMCoulombBarrier() {}; - -private: - G4Ne24GEMCoulombBarrier(const G4Ne24GEMCoulombBarrier & right); - - const G4Ne24GEMCoulombBarrier & operator=(const G4Ne24GEMCoulombBarrier & right); - G4bool operator==(const G4Ne24GEMCoulombBarrier & right) const; - G4bool operator!=(const G4Ne24GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh index 464e45b448..c79ac31695 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh @@ -24,43 +24,34 @@ // ******************************************************************** // // -// $Id: G4NeutronGEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4NeutronGEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4NeutronGEMChannel_h #define G4NeutronGEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4NeutronCoulombBarrier.hh" #include "G4NeutronGEMProbability.hh" class G4NeutronGEMChannel : public G4GEMChannel { public: // only available constructor - G4NeutronGEMChannel() : G4GEMChannel(1,0,"neutron", - &theEvaporationProbability, - &theCoulombBarrier) {}; + explicit G4NeutronGEMChannel() + : G4GEMChannel(1,0,"neutron",&theEvaporationProbability) {} + // destructor ~G4NeutronGEMChannel() {}; private: - const G4NeutronGEMChannel & operator=(const G4NeutronGEMChannel & right); + const G4NeutronGEMChannel & operator=(const G4NeutronGEMChannel & right) = delete; + G4NeutronGEMChannel(const G4NeutronGEMChannel & right) = delete; + G4bool operator==(const G4NeutronGEMChannel & right) const = delete; + G4bool operator!=(const G4NeutronGEMChannel & right) const = delete; - G4NeutronGEMChannel(const G4NeutronGEMChannel & right); - -public: - G4bool operator==(const G4NeutronGEMChannel & right) const; - G4bool operator!=(const G4NeutronGEMChannel & right) const; - -private: - - G4NeutronCoulombBarrier theCoulombBarrier; - G4NeutronGEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh index d638e78a16..ca60dc1e9a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh @@ -24,46 +24,33 @@ // ******************************************************************** // // -// $Id: G4O14GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O14GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4O14GEMChannel_h #define G4O14GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O14GEMCoulombBarrier.hh" #include "G4O14GEMProbability.hh" class G4O14GEMChannel : public G4GEMChannel { public: // only available constructor - G4O14GEMChannel() : G4GEMChannel(14,8,"O14", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O14GEMChannel() + : G4GEMChannel(14,8,"O14",&theEvaporationProbability) {} // destructor ~G4O14GEMChannel() {}; private: - const G4O14GEMChannel & operator=(const G4O14GEMChannel & right); - - G4O14GEMChannel(const G4O14GEMChannel & right); - -public: - G4bool operator==(const G4O14GEMChannel & right) const; - G4bool operator!=(const G4O14GEMChannel & right) const; - -private: - - G4O14GEMCoulombBarrier theCoulombBarrier; + + const G4O14GEMChannel & operator=(const G4O14GEMChannel & right) = delete; + G4O14GEMChannel(const G4O14GEMChannel & right) = delete; + G4bool operator==(const G4O14GEMChannel & right) const = delete; + G4bool operator!=(const G4O14GEMChannel & right) const = delete; G4O14GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh deleted file mode 100644 index b889df75d5..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O14GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O14GEMCoulombBarrier_h -#define G4O14GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O14GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O14GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O14GEMCoulombBarrier() : G4GEMCoulombBarrierHE(14,8) {}; - G4O14GEMCoulombBarrier() : G4GEMCoulombBarrier(14,8) {}; - ~G4O14GEMCoulombBarrier() {}; - -private: - G4O14GEMCoulombBarrier(const G4O14GEMCoulombBarrier & right); - - const G4O14GEMCoulombBarrier & operator=(const G4O14GEMCoulombBarrier & right); - G4bool operator==(const G4O14GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O14GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh index 9920ef15ee..f06a947fe5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh @@ -24,47 +24,33 @@ // ******************************************************************** // // -// $Id: G4O15GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O15GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4O15GEMChannel_h #define G4O15GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O15GEMCoulombBarrier.hh" #include "G4O15GEMProbability.hh" class G4O15GEMChannel : public G4GEMChannel { public: // only available constructor - G4O15GEMChannel() : G4GEMChannel(15,8,"O15", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O15GEMChannel() + : G4GEMChannel(15,8,"O15",&theEvaporationProbability) {} // destructor ~G4O15GEMChannel() {}; private: - const G4O15GEMChannel & operator=(const G4O15GEMChannel & right); + const G4O15GEMChannel & operator=(const G4O15GEMChannel & right) = delete; + G4O15GEMChannel(const G4O15GEMChannel & right) = delete; + G4bool operator==(const G4O15GEMChannel & right) const = delete; + G4bool operator!=(const G4O15GEMChannel & right) const = delete; - G4O15GEMChannel(const G4O15GEMChannel & right); - -public: - G4bool operator==(const G4O15GEMChannel & right) const; - G4bool operator!=(const G4O15GEMChannel & right) const; - -private: - - G4O15GEMCoulombBarrier theCoulombBarrier; - G4O15GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh deleted file mode 100644 index be4ac00d36..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O15GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O15GEMCoulombBarrier_h -#define G4O15GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O15GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O15GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O15GEMCoulombBarrier() : G4GEMCoulombBarrierHE(15,8) {}; - G4O15GEMCoulombBarrier() : G4GEMCoulombBarrier(15,8) {}; - ~G4O15GEMCoulombBarrier() {}; - -private: - G4O15GEMCoulombBarrier(const G4O15GEMCoulombBarrier & right); - - const G4O15GEMCoulombBarrier & operator=(const G4O15GEMCoulombBarrier & right); - G4bool operator==(const G4O15GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O15GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh index c967ce025d..8f667e0420 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh @@ -24,46 +24,33 @@ // ******************************************************************** // // -// $Id: G4O16GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O16GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4O16GEMChannel_h #define G4O16GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O16GEMCoulombBarrier.hh" #include "G4O16GEMProbability.hh" class G4O16GEMChannel : public G4GEMChannel { public: // only available constructor - G4O16GEMChannel() : G4GEMChannel(16,8,"O16", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O16GEMChannel() + : G4GEMChannel(16,8,"O16",&theEvaporationProbability) {} // destructor ~G4O16GEMChannel() {}; private: - const G4O16GEMChannel & operator=(const G4O16GEMChannel & right); - - G4O16GEMChannel(const G4O16GEMChannel & right); - -public: - G4bool operator==(const G4O16GEMChannel & right) const; - G4bool operator!=(const G4O16GEMChannel & right) const; - -private: - - G4O16GEMCoulombBarrier theCoulombBarrier; + const G4O16GEMChannel & operator=(const G4O16GEMChannel & right) = delete; + G4O16GEMChannel(const G4O16GEMChannel & right) = delete; + G4bool operator==(const G4O16GEMChannel & right) const = delete; + G4bool operator!=(const G4O16GEMChannel & right) const = delete; G4O16GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh deleted file mode 100644 index a96f0a5d8d..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O16GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O16GEMCoulombBarrier_h -#define G4O16GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O16GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O16GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O16GEMCoulombBarrier() : G4GEMCoulombBarrierHE(16,8) {}; - G4O16GEMCoulombBarrier() : G4GEMCoulombBarrier(16,8) {}; - ~G4O16GEMCoulombBarrier() {}; - -private: - G4O16GEMCoulombBarrier(const G4O16GEMCoulombBarrier & right); - - const G4O16GEMCoulombBarrier & operator=(const G4O16GEMCoulombBarrier & right); - G4bool operator==(const G4O16GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O16GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh index 61b6d23787..445b13c135 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh @@ -24,46 +24,34 @@ // ******************************************************************** // // -// $Id: G4O17GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O17GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - #ifndef G4O17GEMChannel_h #define G4O17GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O17GEMCoulombBarrier.hh" #include "G4O17GEMProbability.hh" class G4O17GEMChannel : public G4GEMChannel { public: // only available constructor - G4O17GEMChannel() : G4GEMChannel(17,8,"O17", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O17GEMChannel() + : G4GEMChannel(17,8,"O17", &theEvaporationProbability) {} // destructor ~G4O17GEMChannel() {}; private: - const G4O17GEMChannel & operator=(const G4O17GEMChannel & right); - - G4O17GEMChannel(const G4O17GEMChannel & right); - -public: - G4bool operator==(const G4O17GEMChannel & right) const; - G4bool operator!=(const G4O17GEMChannel & right) const; - -private: - - G4O17GEMCoulombBarrier theCoulombBarrier; + + const G4O17GEMChannel & operator=(const G4O17GEMChannel & right) = delete; + G4O17GEMChannel(const G4O17GEMChannel & right) = delete; + G4bool operator==(const G4O17GEMChannel & right) const = delete; + G4bool operator!=(const G4O17GEMChannel & right) const = delete; G4O17GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh deleted file mode 100644 index bb7255aef8..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O17GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O17GEMCoulombBarrier_h -#define G4O17GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O17GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O17GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O17GEMCoulombBarrier() : G4GEMCoulombBarrierHE(17,8) {}; - G4O17GEMCoulombBarrier() : G4GEMCoulombBarrier(17,8) {}; - ~G4O17GEMCoulombBarrier() {}; - -private: - G4O17GEMCoulombBarrier(const G4O17GEMCoulombBarrier & right); - - const G4O17GEMCoulombBarrier & operator=(const G4O17GEMCoulombBarrier & right); - G4bool operator==(const G4O17GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O17GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh index 8bb5106282..8668f03028 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4O18GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O18GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) @@ -35,36 +35,24 @@ #define G4O18GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O18GEMCoulombBarrier.hh" #include "G4O18GEMProbability.hh" class G4O18GEMChannel : public G4GEMChannel { public: // only available constructor - G4O18GEMChannel() : G4GEMChannel(18,8,"O18", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O18GEMChannel() + : G4GEMChannel(18,8,"O18",&theEvaporationProbability) {} // destructor ~G4O18GEMChannel() {}; private: - const G4O18GEMChannel & operator=(const G4O18GEMChannel & right); + const G4O18GEMChannel & operator=(const G4O18GEMChannel & right) = delete; + G4O18GEMChannel(const G4O18GEMChannel & right) = delete; + G4bool operator==(const G4O18GEMChannel & right) const = delete; + G4bool operator!=(const G4O18GEMChannel & right) const = delete; - G4O18GEMChannel(const G4O18GEMChannel & right); - -public: - G4bool operator==(const G4O18GEMChannel & right) const; - G4bool operator!=(const G4O18GEMChannel & right) const; - -private: - - G4O18GEMCoulombBarrier theCoulombBarrier; - G4O18GEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh deleted file mode 100644 index 83a4cc3a6c..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O18GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O18GEMCoulombBarrier_h -#define G4O18GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O18GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O18GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O18GEMCoulombBarrier() : G4GEMCoulombBarrierHE(18,8) {}; - G4O18GEMCoulombBarrier() : G4GEMCoulombBarrier(18,8) {}; - ~G4O18GEMCoulombBarrier() {}; - -private: - G4O18GEMCoulombBarrier(const G4O18GEMCoulombBarrier & right); - - const G4O18GEMCoulombBarrier & operator=(const G4O18GEMCoulombBarrier & right); - G4bool operator==(const G4O18GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O18GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh index d8714e3928..40a0d56b54 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4O19GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O19GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) @@ -35,35 +35,23 @@ #define G4O19GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O19GEMCoulombBarrier.hh" #include "G4O19GEMProbability.hh" class G4O19GEMChannel : public G4GEMChannel { public: // only available constructor - G4O19GEMChannel() : G4GEMChannel(19,8,"O19", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O19GEMChannel() + : G4GEMChannel(19,8,"O19",&theEvaporationProbability) {} // destructor ~G4O19GEMChannel() {}; private: - const G4O19GEMChannel & operator=(const G4O19GEMChannel & right); - - G4O19GEMChannel(const G4O19GEMChannel & right); - -public: - G4bool operator==(const G4O19GEMChannel & right) const; - G4bool operator!=(const G4O19GEMChannel & right) const; - -private: - - G4O19GEMCoulombBarrier theCoulombBarrier; + const G4O19GEMChannel & operator=(const G4O19GEMChannel & right) = delete; + G4O19GEMChannel(const G4O19GEMChannel & right) = delete; + G4bool operator==(const G4O19GEMChannel & right) const = delete; + G4bool operator!=(const G4O19GEMChannel & right) const = delete; G4O19GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh deleted file mode 100644 index ec32031c50..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O19GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O19GEMCoulombBarrier_h -#define G4O19GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O19GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O19GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O19GEMCoulombBarrier() : G4GEMCoulombBarrierHE(19,8) {}; - G4O19GEMCoulombBarrier() : G4GEMCoulombBarrier(19,8) {}; - ~G4O19GEMCoulombBarrier() {}; - -private: - G4O19GEMCoulombBarrier(const G4O19GEMCoulombBarrier & right); - - const G4O19GEMCoulombBarrier & operator=(const G4O19GEMCoulombBarrier & right); - G4bool operator==(const G4O19GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O19GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh index fade0fab52..3f30466bcf 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh @@ -24,46 +24,32 @@ // ******************************************************************** // // -// $Id: G4O20GEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4O20GEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) // - - #ifndef G4O20GEMChannel_h #define G4O20GEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4O20GEMCoulombBarrier.hh" #include "G4O20GEMProbability.hh" class G4O20GEMChannel : public G4GEMChannel { public: // only available constructor - G4O20GEMChannel() : G4GEMChannel(20,8,"O20", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4O20GEMChannel() + : G4GEMChannel(20,8,"O20",&theEvaporationProbability) {} // destructor ~G4O20GEMChannel() {}; private: - const G4O20GEMChannel & operator=(const G4O20GEMChannel & right); - - G4O20GEMChannel(const G4O20GEMChannel & right); - -public: - G4bool operator==(const G4O20GEMChannel & right) const; - G4bool operator!=(const G4O20GEMChannel & right) const; - -private: - - G4O20GEMCoulombBarrier theCoulombBarrier; + const G4O20GEMChannel & operator=(const G4O20GEMChannel & right) = delete; + G4O20GEMChannel(const G4O20GEMChannel & right) = delete; + G4bool operator==(const G4O20GEMChannel & right) const = delete; + G4bool operator!=(const G4O20GEMChannel & right) const = delete; G4O20GEMProbability theEvaporationProbability; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh deleted file mode 100644 index 6f84b2ce6a..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4O20GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) -// -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report -// -#ifndef G4O20GEMCoulombBarrier_h -#define G4O20GEMCoulombBarrier_h 1 - -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -//class G4O20GEMCoulombBarrier : public G4GEMCoulombBarrierHE -class G4O20GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: -//JMQ 200709 -// G4O20GEMCoulombBarrier() : G4GEMCoulombBarrierHE(20,8) {}; - G4O20GEMCoulombBarrier() : G4GEMCoulombBarrier(20,8) {}; - ~G4O20GEMCoulombBarrier() {}; - -private: - G4O20GEMCoulombBarrier(const G4O20GEMCoulombBarrier & right); - - const G4O20GEMCoulombBarrier & operator=(const G4O20GEMCoulombBarrier & right); - G4bool operator==(const G4O20GEMCoulombBarrier & right) const; - G4bool operator!=(const G4O20GEMCoulombBarrier & right) const; - - -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh index ea9a6a8953..0a84ba9804 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ProtonGEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4ProtonGEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) @@ -35,37 +35,24 @@ #define G4ProtonGEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4ProtonGEMCoulombBarrier.hh" #include "G4ProtonGEMProbability.hh" class G4ProtonGEMChannel : public G4GEMChannel { public: // only available constructor - G4ProtonGEMChannel() : G4GEMChannel(1,1,"proton", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4ProtonGEMChannel() + : G4GEMChannel(1,1,"proton",&theEvaporationProbability) {} // destructor ~G4ProtonGEMChannel() {}; private: - const G4ProtonGEMChannel & operator=(const G4ProtonGEMChannel & right); + const G4ProtonGEMChannel & operator=(const G4ProtonGEMChannel & right) = delete; + G4ProtonGEMChannel(const G4ProtonGEMChannel & right) = delete; + G4bool operator==(const G4ProtonGEMChannel & right) const = delete; + G4bool operator!=(const G4ProtonGEMChannel & right) const = delete; - G4ProtonGEMChannel(const G4ProtonGEMChannel & right); - -public: - G4bool operator==(const G4ProtonGEMChannel & right) const; - G4bool operator!=(const G4ProtonGEMChannel & right) const; - -private: - // JMQ 190709 -// G4ProtonCoulombBarrier theCoulombBarrier; - G4ProtonGEMCoulombBarrier theCoulombBarrier; - G4ProtonGEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMCoulombBarrier.hh deleted file mode 100644 index 9fc5bb0c4a..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// J. M. Quesada (July 2009) based on G4ProtonCoulombBarrier -// Coded strictly according to Furihata's GEM paper -// - -#ifndef G4ProtonGEMCoulombBarrier_h -#define G4ProtonGEMCoulombBarrier_h 1 - -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -class G4ProtonGEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - G4ProtonGEMCoulombBarrier() : G4GEMCoulombBarrier(1,1) {} - ~G4ProtonGEMCoulombBarrier() {} - -private: - G4ProtonGEMCoulombBarrier(const G4ProtonGEMCoulombBarrier & right); - - const G4ProtonGEMCoulombBarrier & operator=(const G4ProtonGEMCoulombBarrier & right); - G4bool operator==(const G4ProtonGEMCoulombBarrier & right) const; - G4bool operator!=(const G4ProtonGEMCoulombBarrier & right) const; - -private: - G4double BarrierPenetrationFactor(const G4double aZ) const { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // (JMQ 190709: according to notes added on proof) - //dataK = {{20, 0.51}, {30, 0.60}, {40, 0.66}, {50, 0.68}}; - // - G4double K = 1.0; - if (aZ >= 50){ - K=0.68; - } else if (aZ <= 20) { - K=0.51; - } else K=0.28445+0.0115956*aZ+0.000026329*aZ*aZ-2.18583*1e-6*aZ*aZ*aZ+3.7083*1e-9*aZ*aZ*aZ*aZ; - return K; - } -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh index 4e40daf5bb..264c195388 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TritonGEMChannel.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4TritonGEMChannel.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) @@ -34,31 +34,24 @@ #define G4TritonGEMChannel_h 1 #include "G4GEMChannel.hh" -#include "G4TritonGEMCoulombBarrier.hh" #include "G4TritonGEMProbability.hh" class G4TritonGEMChannel : public G4GEMChannel { public: // only available constructor - G4TritonGEMChannel() : G4GEMChannel(3,1,"triton", - &theEvaporationProbability, - &theCoulombBarrier) - { - theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); - } + explicit G4TritonGEMChannel() + : G4GEMChannel(3,1,"t",&theEvaporationProbability) {} // destructor ~G4TritonGEMChannel() {}; private: - const G4TritonGEMChannel & operator=(const G4TritonGEMChannel & right); - G4TritonGEMChannel(const G4TritonGEMChannel & right); - G4bool operator==(const G4TritonGEMChannel & right) const; - G4bool operator!=(const G4TritonGEMChannel & right) const; + const G4TritonGEMChannel & operator=(const G4TritonGEMChannel & right) = delete; + G4TritonGEMChannel(const G4TritonGEMChannel & right) = delete; + G4bool operator==(const G4TritonGEMChannel & right) const = delete; + G4bool operator!=(const G4TritonGEMChannel & right) const = delete; - // JMQ 190709 - G4TritonGEMCoulombBarrier theCoulombBarrier; G4TritonGEMProbability theEvaporationProbability; }; diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMCoulombBarrier.hh deleted file mode 100644 index 371a3261b4..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMCoulombBarrier.hh +++ /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. * -// ******************************************************************** -// -// -// J. M. Quesada (July 2009) based on G4TritonCoulombBarrier -// Coded strictly according to Furihata's GEM paper -// - -#ifndef G4TritonGEMCoulombBarrier_h -#define G4TritonGEMCoulombBarrier_h 1 - -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" - -class G4TritonGEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - - G4TritonGEMCoulombBarrier() : G4GEMCoulombBarrier(3,1) {} - ~G4TritonGEMCoulombBarrier() {} - -private: - G4TritonGEMCoulombBarrier(const G4TritonGEMCoulombBarrier & right); - - const G4TritonGEMCoulombBarrier & operator=(const G4TritonGEMCoulombBarrier & right); - G4bool operator==(const G4TritonGEMCoulombBarrier & right) const; - G4bool operator!=(const G4TritonGEMCoulombBarrier & right) const; - -private: - - G4double BarrierPenetrationFactor(G4double aZ) const - { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // (JMQ 190709: according to notes added on proof) - //dataK = {{20, 0.51}, {30, 0.60}, {40, 0.66}, {50, 0.68}}; - // - G4double K = 1.0; - if (aZ >= 50){ - K=0.68; - } else if (aZ <= 20) { - K=0.51; - } else K=0.28445+0.0115956*aZ+0.000026329*aZ*aZ-2.18583*1e-6*aZ*aZ*aZ+3.7083*1e-9*aZ*aZ*aZ*aZ; - return K+0.12; - } -}; - -#endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/sources.cmake b/source/processes/hadronic/models/de_excitation/gem_evaporation/sources.cmake index 9b61c4727c..17861a15a9 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 88406 2015-02-18 09:13:29Z gcosmo $ +# $Id: sources.cmake 97097 2016-05-25 07:50:31Z gcosmo $ # #------------------------------------------------------------------------------ @@ -48,204 +48,138 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_gem_evaporation G4C16GEMChannel.hh G4AlphaGEMChannel.hh G4F17GEMChannel.hh - G4AlphaGEMCoulombBarrier.hh G4F18GEMChannel.hh G4AlphaGEMProbability.hh G4F19GEMChannel.hh G4B10GEMChannel.hh G4F20GEMChannel.hh - G4B10GEMCoulombBarrier.hh G4F21GEMChannel.hh G4B10GEMProbability.hh G4GEMChannel.hh G4B11GEMChannel.hh G4GEMProbability.hh - G4B11GEMCoulombBarrier.hh G4He3GEMChannel.hh G4B11GEMProbability.hh G4He6GEMChannel.hh G4B12GEMChannel.hh G4He8GEMChannel.hh - G4B12GEMCoulombBarrier.hh G4Li6GEMChannel.hh G4B12GEMProbability.hh G4Li7GEMChannel.hh G4B13GEMChannel.hh G4Li8GEMChannel.hh - G4B13GEMCoulombBarrier.hh G4Li9GEMChannel.hh G4B13GEMProbability.hh G4Mg22GEMChannel.hh G4B8GEMChannel.hh G4Mg23GEMChannel.hh - G4B8GEMCoulombBarrier.hh G4Mg24GEMChannel.hh G4B8GEMProbability.hh G4Mg25GEMChannel.hh G4Be10GEMChannel.hh G4Mg26GEMChannel.hh - G4Be10GEMCoulombBarrier.hh G4Mg27GEMChannel.hh G4Be10GEMProbability.hh G4Mg28GEMChannel.hh G4Be11GEMChannel.hh G4N12GEMChannel.hh - G4Be11GEMCoulombBarrier.hh G4N13GEMChannel.hh G4Be11GEMProbability.hh G4N14GEMChannel.hh G4Be12GEMChannel.hh G4N15GEMChannel.hh - G4Be12GEMCoulombBarrier.hh G4N16GEMChannel.hh G4Be12GEMProbability.hh G4N17GEMChannel.hh G4Be7GEMChannel.hh G4Na21GEMChannel.hh - G4Be7GEMCoulombBarrier.hh G4Na22GEMChannel.hh G4Be7GEMProbability.hh G4Na23GEMChannel.hh G4Be9GEMChannel.hh G4Na24GEMChannel.hh - G4Be9GEMCoulombBarrier.hh G4Na25GEMChannel.hh G4Be9GEMProbability.hh G4Ne18GEMChannel.hh G4C10GEMChannel.hh G4Ne19GEMChannel.hh - G4C10GEMCoulombBarrier.hh G4Ne20GEMChannel.hh G4C10GEMProbability.hh G4Ne21GEMChannel.hh G4C11GEMChannel.hh G4Ne22GEMChannel.hh - G4C11GEMCoulombBarrier.hh G4Ne23GEMChannel.hh G4C11GEMProbability.hh G4Ne24GEMChannel.hh G4C12GEMChannel.hh G4O14GEMChannel.hh - G4C12GEMCoulombBarrier.hh G4O15GEMChannel.hh G4C12GEMProbability.hh G4O16GEMChannel.hh G4C13GEMChannel.hh G4O17GEMChannel.hh - G4C13GEMCoulombBarrier.hh G4O18GEMChannel.hh G4C13GEMProbability.hh G4O19GEMChannel.hh G4C14GEMChannel.hh G4O20GEMChannel.hh - G4C14GEMCoulombBarrier.hh G4ProtonGEMChannel.hh G4C14GEMProbability.hh G4TritonGEMChannel.hh G4C15GEMChannel.hh - G4C15GEMCoulombBarrier.hh G4C15GEMProbability.hh - G4C16GEMCoulombBarrier.hh G4C16GEMProbability.hh G4DeuteronGEMChannel.hh - G4DeuteronGEMCoulombBarrier.hh G4DeuteronGEMProbability.hh G4EvaporationGEMFactory.hh - G4F17GEMCoulombBarrier.hh G4F17GEMProbability.hh - G4F18GEMCoulombBarrier.hh G4F18GEMProbability.hh - G4F19GEMCoulombBarrier.hh G4F19GEMProbability.hh - G4F20GEMCoulombBarrier.hh G4F20GEMProbability.hh - G4F21GEMCoulombBarrier.hh G4F21GEMProbability.hh G4GEMCoulombBarrier.hh - G4GEMCoulombBarrierHE.hh - G4He3GEMCoulombBarrier.hh G4He3GEMProbability.hh - G4He6GEMCoulombBarrier.hh G4He6GEMProbability.hh - G4He8GEMCoulombBarrier.hh G4He8GEMProbability.hh - G4Li6GEMCoulombBarrier.hh G4Li6GEMProbability.hh - G4Li7GEMCoulombBarrier.hh G4Li7GEMProbability.hh - G4Li8GEMCoulombBarrier.hh G4Li8GEMProbability.hh - G4Li9GEMCoulombBarrier.hh G4Li9GEMProbability.hh - G4Mg22GEMCoulombBarrier.hh G4Mg22GEMProbability.hh - G4Mg23GEMCoulombBarrier.hh G4Mg23GEMProbability.hh - G4Mg24GEMCoulombBarrier.hh G4Mg24GEMProbability.hh - G4Mg25GEMCoulombBarrier.hh G4Mg25GEMProbability.hh - G4Mg26GEMCoulombBarrier.hh G4Mg26GEMProbability.hh - G4Mg27GEMCoulombBarrier.hh G4Mg27GEMProbability.hh - G4Mg28GEMCoulombBarrier.hh G4Mg28GEMProbability.hh - G4N12GEMCoulombBarrier.hh G4N12GEMProbability.hh - G4N13GEMCoulombBarrier.hh G4N13GEMProbability.hh - G4N14GEMCoulombBarrier.hh G4N14GEMProbability.hh - G4N15GEMCoulombBarrier.hh G4N15GEMProbability.hh - G4N16GEMCoulombBarrier.hh G4N16GEMProbability.hh - G4N17GEMCoulombBarrier.hh G4N17GEMProbability.hh - G4Na21GEMCoulombBarrier.hh G4Na21GEMProbability.hh - G4Na22GEMCoulombBarrier.hh G4Na22GEMProbability.hh - G4Na23GEMCoulombBarrier.hh G4Na23GEMProbability.hh - G4Na24GEMCoulombBarrier.hh G4Na24GEMProbability.hh - G4Na25GEMCoulombBarrier.hh G4Na25GEMProbability.hh - G4Ne18GEMCoulombBarrier.hh G4Ne18GEMProbability.hh - G4Ne19GEMCoulombBarrier.hh G4Ne19GEMProbability.hh - G4Ne20GEMCoulombBarrier.hh G4Ne20GEMProbability.hh - G4Ne21GEMCoulombBarrier.hh G4Ne21GEMProbability.hh - G4Ne22GEMCoulombBarrier.hh G4Ne22GEMProbability.hh - G4Ne23GEMCoulombBarrier.hh G4Ne23GEMProbability.hh - G4Ne24GEMCoulombBarrier.hh G4Ne24GEMProbability.hh G4NeutronGEMChannel.hh G4NeutronGEMProbability.hh - G4O14GEMCoulombBarrier.hh G4O14GEMProbability.hh - G4O15GEMCoulombBarrier.hh G4O15GEMProbability.hh - G4O16GEMCoulombBarrier.hh G4O16GEMProbability.hh - G4O17GEMCoulombBarrier.hh G4O17GEMProbability.hh - G4O18GEMCoulombBarrier.hh G4O18GEMProbability.hh - G4O19GEMCoulombBarrier.hh G4O19GEMProbability.hh - G4O20GEMCoulombBarrier.hh G4O20GEMProbability.hh - G4ProtonGEMCoulombBarrier.hh G4ProtonGEMProbability.hh - G4TritonGEMCoulombBarrier.hh G4TritonGEMProbability.hh SOURCES G4AlphaGEMChannel.cc @@ -279,7 +213,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_gem_evaporation G4F21GEMProbability.cc G4GEMChannel.cc G4GEMCoulombBarrier.cc - G4GEMCoulombBarrierHE.cc G4GEMProbability.cc G4He3GEMChannel.cc G4He3GEMProbability.cc diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc index d6816f6ce4..f4ae06756a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GEMChannel.cc 91834 2015-08-07 07:24:22Z gcosmo $ +// $Id: G4GEMChannel.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -36,6 +36,8 @@ // J. M. Quesada (October 2009) fixed bug in CoulombBarrier calculation #include "G4GEMChannel.hh" +#include "G4VCoulombBarrier.hh" +#include "G4GEMCoulombBarrier.hh" #include "G4PairingCorrection.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" @@ -44,16 +46,16 @@ #include "G4Exp.hh" G4GEMChannel::G4GEMChannel(G4int theA, G4int theZ, const G4String & aName, - G4GEMProbability * aEmissionStrategy, - G4VCoulombBarrier * aCoulombBarrier) : + G4GEMProbability * aEmissionStrategy) : G4VEvaporationChannel(aName), A(theA), Z(theZ), theEvaporationProbabilityPtr(aEmissionStrategy), - theCoulombBarrierPtr(aCoulombBarrier), EmissionProbability(0.0), MaximalKineticEnergy(-CLHEP::GeV) { + theCoulombBarrierPtr = new G4GEMCoulombBarrier(theA, theZ); + theEvaporationProbabilityPtr->SetCoulomBarrier(theCoulombBarrierPtr); theLevelDensityPtr = new G4EvaporationLevelDensityParameter; MyOwnLevelDensity = true; EvaporatedMass = G4NucleiProperties::GetNuclearMass(A, Z); @@ -66,6 +68,7 @@ G4GEMChannel::G4GEMChannel(G4int theA, G4int theZ, const G4String & aName, G4GEMChannel::~G4GEMChannel() { if (MyOwnLevelDensity) { delete theLevelDensityPtr; } + delete theCoulombBarrierPtr; } G4double G4GEMChannel::GetEmissionProbability(G4Fragment* fragment) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrier.cc index e4ba5dd98b..e6878012f9 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrier.cc @@ -34,32 +34,26 @@ #include "G4SystemOfUnits.hh" G4GEMCoulombBarrier::G4GEMCoulombBarrier(G4int anA, G4int aZ) : - G4VCoulombBarrier(anA,aZ) -{} + G4CoulombBarrier(anA,aZ) +{ + AejectOneThird = g4pow->Z13(anA); +} G4GEMCoulombBarrier::~G4GEMCoulombBarrier() {} -G4double G4GEMCoulombBarrier::GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const +G4double G4GEMCoulombBarrier::GetCoulombBarrier(G4int ARes, G4int ZRes, + G4double U) const // Calculation of Coulomb potential energy (barrier) for outgoing fragment { G4double Barrier = 0.0; - if (ZRes > ARes || ARes < 1) { - G4cout << "G4GEMCoulombBarrier::GetCoulombBarrier: " - << "Wrong values for " - << "residual nucleus A = " << ARes << " " - << "and residual nucleus Z = " << ZRes << G4endl; - throw G4HadronicException(__FILE__, __LINE__,"FATAL error"); - } - if (GetZ() == 0) { - Barrier = 0.0; // If there is no charge there is neither barrier + if (GetZ() > 0 && ZRes > 0) { - } else { G4double CompoundRadius = CalcCompoundRadius(ARes); - Barrier = ( elm_coupling * GetZ() * ZRes)/CompoundRadius; + Barrier = CLHEP::elm_coupling * (GetZ() * ZRes)/CompoundRadius; // Barrier penetration coeficient - if(GetA() <= 4) { Barrier *= BarrierPenetrationFactor(G4double(ZRes)); } + if(GetA() <= 4) { Barrier *= BarrierPenetrationFactor(ZRes); } //JMQ 200709 effective decrease of barrier with E* (Barashenkov) // (not inclued in original Furihata's formulation) @@ -70,10 +64,8 @@ G4double G4GEMCoulombBarrier::GetCoulombBarrier(G4int ARes, G4int ZRes, G4double G4double G4GEMCoulombBarrier::CalcCompoundRadius(G4int ARes) const { - G4Pow* g4pow = G4Pow::GetInstance(); G4double AresOneThird = g4pow->Z13(ARes); G4int A = GetA(); - G4double AejectOneThird = g4pow->Z13(A); G4double Result = 0.0; if(A == 1){ diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc deleted file mode 100644 index 31b4ab21ec..0000000000 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.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. * -// ******************************************************************** -// -// $Id: G4GEMCoulombBarrierHE.cc 67983 2013-03-13 10:42:03Z gcosmo $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) - -#include "G4GEMCoulombBarrierHE.hh" -#include "G4HadronicException.hh" -#include "G4Pow.hh" -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" - -G4GEMCoulombBarrierHE::G4GEMCoulombBarrierHE(G4int anA, G4int aZ) : - G4VCoulombBarrier(anA,aZ) -{} - -G4GEMCoulombBarrierHE::~G4GEMCoulombBarrierHE() -{} - -G4double G4GEMCoulombBarrierHE::GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const - // Calculation of Coulomb potential energy (barrier) for outgoing fragment -{ - G4double Barrier = 0.0; - if (ZRes > ARes || ARes < 1) { - G4cout << "G4GEMCoulombBarrierHE::GetCoulombBarrier: " - << "Wrong values for " - << "residual nucleus A = " << ARes << " " - << "and residual nucleus Z = " << ZRes << G4endl; - throw G4HadronicException(__FILE__, __LINE__,"FATAL error"); - } - if (GetZ() == 0) { - Barrier = 0.0; // If there is no charge there is neither barrier - } else { - G4double CompoundRadius = CalcCompoundRadius(ARes); - Barrier = ( elm_coupling * GetZ() * ZRes)/(CompoundRadius+3.75*fermi); - - // Barrier penetration coeficient - // G4double K = BarrierPenetrationFactor(ZRes); - // Barrier *= K; - - Barrier /= (1.0 + std::sqrt(U/static_cast(2*ARes))); - } - return Barrier; -} - - -G4double G4GEMCoulombBarrierHE::CalcCompoundRadius(G4int ARes) const -{ - G4Pow* g4pow = G4Pow::GetInstance(); - G4double AresOneThird = g4pow->Z13(ARes); - G4double AejectOneThird = g4pow->Z13(GetA()); - - G4double Result = 1.12*(AresOneThird + AejectOneThird) - - 0.86*(AresOneThird+AejectOneThird)/(AresOneThird*AejectOneThird); - - return Result*fermi; -} - - diff --git a/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh b/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh index c5273b85d0..c2e278f87e 100644 --- a/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh +++ b/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ExcitationHandler.hh 88849 2015-03-12 16:19:38Z gcosmo $ +// $Id: G4ExcitationHandler.hh 96931 2016-05-18 09:06:52Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -58,33 +58,36 @@ class G4VMultiFragmentation; class G4VFermiBreakUp; class G4VEvaporation; class G4VEvaporationChannel; -class G4FermiFragmentsPool; class G4NistManager; class G4ExcitationHandler { public: - G4ExcitationHandler(); + explicit G4ExcitationHandler(); ~G4ExcitationHandler(); G4ReactionProductVector* BreakItUp(const G4Fragment &theInitialState); + // short model description used for automatic web documentation + void ModelDescription(std::ostream& outFile) const; + + void Initialise(); + // user defined sub-models - // deletion is responsibility of this handler - void SetEvaporation(G4VEvaporation* ptr); + // deletion is responsibility of this handler if isLocal=true + void SetEvaporation(G4VEvaporation* ptr, G4bool isLocal=false); void SetMultiFragmentation(G4VMultiFragmentation* ptr); void SetFermiModel(G4VFermiBreakUp* ptr); void SetPhotonEvaporation(G4VEvaporationChannel* ptr); - // parameters of sub-models - void SetMaxZForFermiBreakUp(G4int aZ); - void SetMaxAForFermiBreakUp(G4int anA); - void SetMaxAandZForFermiBreakUp(G4int anA,G4int aZ); - void SetMinEForMultiFrag(G4double anE); + //======== Obsolete methods to be removed ===== - // short model description used for automatic web documentation - void ModelDescription(std::ostream& outFile) const; + // parameters of sub-models + inline void SetMaxZForFermiBreakUp(G4int aZ); + inline void SetMaxAForFermiBreakUp(G4int anA); + inline void SetMaxAandZForFermiBreakUp(G4int anA,G4int aZ); + inline void SetMinEForMultiFrag(G4double anE); // access methods inline G4VEvaporation* GetEvaporation(); @@ -97,22 +100,23 @@ public: // for superimposed Coulomb Barrir for inverse cross sections inline void UseSICB(); + //============================================== + private: void SetParameters(); - G4ExcitationHandler(const G4ExcitationHandler &right); - const G4ExcitationHandler & operator=(const G4ExcitationHandler &right); - G4bool operator==(const G4ExcitationHandler &right) const; - G4bool operator!=(const G4ExcitationHandler &right) const; + G4ExcitationHandler(const G4ExcitationHandler &right) = delete; + const G4ExcitationHandler & operator + =(const G4ExcitationHandler &right) = delete; + G4bool operator==(const G4ExcitationHandler &right) const = delete; + G4bool operator!=(const G4ExcitationHandler &right) const = delete; G4VEvaporation* theEvaporation; G4VMultiFragmentation* theMultiFragmentation; G4VFermiBreakUp* theFermiModel; G4VEvaporationChannel* thePhotonEvaporation; - G4FermiFragmentsPool* thePool; - G4int maxZForFermiBreakUp; G4int maxAForFermiBreakUp; G4double minEForMultiFrag; @@ -121,8 +125,7 @@ private: G4IonTable* theTableOfIons; G4NistManager* nist; - G4int OPTxs; - G4bool useSICB; + G4bool isInitialised; G4bool isEvapLocal; // list of fragments to store final result @@ -138,6 +141,27 @@ private: std::vector theEvapList; }; +inline void G4ExcitationHandler::SetMaxZForFermiBreakUp(G4int aZ) +{ + maxZForFermiBreakUp = aZ; +} + +inline void G4ExcitationHandler::SetMaxAForFermiBreakUp(G4int anA) +{ + maxAForFermiBreakUp = anA; +} + +inline void G4ExcitationHandler::SetMaxAandZForFermiBreakUp(G4int anA, G4int aZ) +{ + SetMaxAForFermiBreakUp(anA); + SetMaxZForFermiBreakUp(aZ); +} + +inline void G4ExcitationHandler::SetMinEForMultiFrag(G4double anE) +{ + minEForMultiFrag = anE; +} + inline G4VEvaporation* G4ExcitationHandler::GetEvaporation() { return theEvaporation; @@ -158,16 +182,10 @@ inline G4VEvaporationChannel* G4ExcitationHandler::GetPhotonEvaporation() return thePhotonEvaporation; } -inline void G4ExcitationHandler::SetOPTxs(G4int opt) -{ - OPTxs = opt; - SetParameters(); -} +inline void G4ExcitationHandler::SetOPTxs(G4int) +{} inline void G4ExcitationHandler::UseSICB() -{ - useSICB = true; - SetParameters(); -} +{} #endif diff --git a/source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc b/source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc index 46e99c8213..dcdc6daa26 100644 --- a/source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc +++ b/source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ExcitationHandler.cc 94381 2015-11-13 10:17:06Z gcosmo $ +// $Id: G4ExcitationHandler.cc 97785 2016-06-10 08:43:00Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -78,27 +78,26 @@ #include "G4Evaporation.hh" #include "G4StatMF.hh" #include "G4FermiBreakUp.hh" -#include "G4FermiFragmentsPool.hh" +#include "G4NuclearLevelData.hh" #include "G4Pow.hh" -G4ExcitationHandler::G4ExcitationHandler(): - maxZForFermiBreakUp(9),maxAForFermiBreakUp(17),minEForMultiFrag(400*GeV), - minExcitation(0.1*keV),OPTxs(3),useSICB(false),isEvapLocal(true) +G4ExcitationHandler::G4ExcitationHandler() + : isInitialised(false),isEvapLocal(true) { theTableOfIons = G4ParticleTable::GetParticleTable()->GetIonTable(); nist = G4NistManager::Instance(); - theMultiFragmentation = new G4StatMF(); - theFermiModel = new G4FermiBreakUp(); + theMultiFragmentation = nullptr; + theFermiModel = nullptr; + G4NuclearLevelData::GetInstance()->GetParameters()->Dump(); + G4Pow::GetInstance(); theEvaporation = new G4Evaporation(); thePhotonEvaporation = theEvaporation->GetPhotonEvaporation(); - thePool = G4FermiFragmentsPool::Instance(); + theResults.reserve(60); + results.reserve(30); + theEvapList.reserve(30); + thePhotoEvapList.reserve(10); SetParameters(); - G4Pow::GetInstance(); - theResults.resize(60,0); - results.resize(30,0); - theEvapList.resize(30,0); - thePhotoEvapList.resize(10,0); //G4cout << "### New handler " << this << G4endl; } @@ -118,8 +117,10 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) G4Fragment * theInitialStatePtr = new G4Fragment(theInitialState); //G4cout << theInitialState << G4endl; + if(!isInitialised) { Initialise(); } + // pointer to fragment vector which receives temporal results - G4FragmentVector * theTempResult = 0; + G4FragmentVector * theTempResult = nullptr; theResults.clear(); thePhotoEvapList.clear(); @@ -193,7 +194,7 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) } } } - /* + /* G4cout << "## After first step " << theEvapList.size() << " for evap; " << thePhotoEvapList.size() << " for photo-evap; " << theResults.size() << " results. " << G4endl; @@ -202,19 +203,31 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) // FermiBreakUp and De-excitation loop // ----------------------------------- - std::vector::iterator iList; - for (iList = theEvapList.begin(); iList != theEvapList.end(); ++iList) { + static const G4int countmax = 1000; + G4Fragment* frag; + size_t kk; + for (kk=0; kk= countmax) { + G4ExceptionDescription ed; + ed << "Infinite loop in the de-excitation module: " << kk + << " iterations \n" + << " Initial fragment: \n" << theInitialState + << "\n Current fragment: \n" << *frag; + G4Exception("G4ExcitationHandler::BreakItUp","had0333",FatalException, + ed,"Stop execution"); + + } A = frag->GetA_asInt(); Z = frag->GetZ_asInt(); results.clear(); // Fermi Break-Up - if(A < maxAForFermiBreakUp && Z < maxZForFermiBreakUp && Z > 0 && A > Z) { + if(A < maxAForFermiBreakUp && Z < maxZForFermiBreakUp) { G4double etot = frag->GetExcitationEnergy() + frag->GetGroundStateMass(); - if(thePool->IsApplicable(Z, A, etot)) { + if(theFermiModel->IsApplicable(Z, A, etot)) { theFermiModel->BreakFragment(&results, frag); size_t nsec = results.size(); //G4cout << "FermiBreakUp Nsec= " << nsec << G4endl; @@ -227,7 +240,7 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) for(size_t j=0; jGetExcitationEnergy(); if(exEnergy < minExcitation) { theResults.push_back(results[j]); } - else { thePhotoEvapList.push_back(results[j]); } + else { thePhotoEvapList.push_back(results[j]); } } continue; } @@ -274,7 +287,7 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) } } // end of loop on secondary } // end of the loop over theEvapList - /* + /* G4cout << "## After 2nd step " << theEvapList.size() << " was evap; " << thePhotoEvapList.size() << " for photo-evap; " << theResults.size() << " results. " << G4endl; @@ -284,18 +297,20 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) // ----------------------- // at this point only photon evaporation is possible - for(iList = thePhotoEvapList.begin(); iList != thePhotoEvapList.end(); ++iList) { + size_t kkmax = thePhotoEvapList.size(); + for (kk=0; kkGetExcitationEnergy(); + //G4cout << *frag << G4endl; + exEnergy = frag->GetExcitationEnergy(); // photon de-excitation only for hot fragments if(exEnergy > minExcitation) { - thePhotonEvaporation->BreakUpChain(&theResults, *iList); + thePhotonEvaporation->BreakUpChain(&theResults, frag); } // priamry fragment is kept - theResults.push_back(*iList); + theResults.push_back(frag); } // end of photon-evaporation loop /* @@ -314,16 +329,18 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) //G4cout << "### ExcitationHandler provides " << theResults.size() // << " evaporated products:" << G4endl; - for (iList = theResults.begin(); iList != theResults.end(); ++iList) { - //G4cout << (*iList) << G4endl; + kkmax = theResults.size(); + for (kk=0; kkGetA_asInt(); - theFragmentZ = (*iList)->GetZ_asInt(); - G4double etot= (*iList)->GetMomentum().e(); + theFragmentA = frag->GetA_asInt(); + theFragmentZ = frag->GetZ_asInt(); + G4double etot= frag->GetMomentum().e(); G4double eexc = 0.0; const G4ParticleDefinition* theKindOfFragment = 0; if (theFragmentA == 0) { // photon or e- - theKindOfFragment = (*iList)->GetParticleDefinition(); + theKindOfFragment = frag->GetParticleDefinition(); } else if (theFragmentA == 1 && theFragmentZ == 0) { // neutron theKindOfFragment = G4Neutron::NeutronDefinition(); } else if (theFragmentA == 1 && theFragmentZ == 1) { // proton @@ -339,20 +356,22 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) } else { // fragment - eexc = (*iList)->GetExcitationEnergy(); + eexc = frag->GetExcitationEnergy(); if(eexc < minExcitation) { eexc = 0.0; } - theKindOfFragment = theTableOfIons->GetIon(theFragmentZ,theFragmentA,eexc); + theKindOfFragment = + theTableOfIons->GetIon(theFragmentZ,theFragmentA,eexc); /* G4cout << "### Find ion Z= " << theFragmentZ << " A= " << theFragmentA - << " Eexc(MeV)= " << eexc/MeV << " " << theKindOfFragment << G4endl; + << " Eexc(MeV)= " << eexc/MeV << " " << theKindOfFragment + << G4endl; */ } // fragment identified if(theKindOfFragment) { G4ReactionProduct * theNew = new G4ReactionProduct(theKindOfFragment); - theNew->SetMomentum((*iList)->GetMomentum().vect()); + theNew->SetMomentum(frag->GetMomentum().vect()); theNew->SetTotalEnergy(etot); - theNew->SetFormationTime((*iList)->GetCreationTime()); + theNew->SetFormationTime(frag->GetCreationTime()); theReactionProductVector->push_back(theNew); // fragment not found out ground state is created @@ -365,12 +384,12 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) etot = ionmass; } else { G4double ptot = std::sqrt((etot - ionmass)*(etot + ionmass)); - mom = ((*iList)->GetMomentum().vect().unit())*ptot; + mom = (frag->GetMomentum().vect().unit())*ptot; } G4ReactionProduct * theNew = new G4ReactionProduct(theKindOfFragment); theNew->SetMomentum(mom); theNew->SetTotalEnergy(etot); - theNew->SetFormationTime((*iList)->GetCreationTime()); + theNew->SetFormationTime(frag->GetCreationTime()); theReactionProductVector->push_back(theNew); /* G4cout << "### Find ion Z= " << theFragmentZ << " A= " << theFragmentA @@ -381,28 +400,41 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) */ } } - delete (*iList); + delete frag; } return theReactionProductVector; } void G4ExcitationHandler::SetParameters() { - //for inverse cross section choice - theEvaporation->SetOPTxs(OPTxs); - //for the choice of superimposed Coulomb Barrier for inverse cross sections - theEvaporation->UseSICB(useSICB); + G4DeexPrecoParameters* param = + G4NuclearLevelData::GetInstance()->GetParameters(); + maxZForFermiBreakUp = param->GetMaxZForFermiBreakUp(); + maxAForFermiBreakUp = param->GetMaxAForFermiBreakUp(); + minEForMultiFrag = param->GetMinExPerNucleounForMF(); + minExcitation = param->GetMinExcitation(); + if(!theFermiModel) { theFermiModel = new G4FermiBreakUp(); } + theEvaporation->SetFermiBreakUp(theFermiModel); +} + +void G4ExcitationHandler::Initialise() +{ + if(isInitialised) { return; } + //G4cout << "G4ExcitationHandler::Initialise() started" << G4endl; + isInitialised = true; + SetParameters(); + theMultiFragmentation = new G4StatMF(); + theFermiModel->Initialise(); theEvaporation->InitialiseChannels(); } -void G4ExcitationHandler::SetEvaporation(G4VEvaporation* ptr) +void G4ExcitationHandler::SetEvaporation(G4VEvaporation* ptr, G4bool flag) { if(ptr && ptr != theEvaporation) { delete theEvaporation; theEvaporation = ptr; thePhotonEvaporation = ptr->GetPhotonEvaporation(); - SetParameters(); - isEvapLocal = false; + isEvapLocal = flag; } } @@ -429,39 +461,18 @@ G4ExcitationHandler::SetPhotonEvaporation(G4VEvaporationChannel* ptr) if(ptr && ptr != thePhotonEvaporation) { thePhotonEvaporation = ptr; theEvaporation->SetPhotonEvaporation(ptr); - ptr->Initialise(); } } -void G4ExcitationHandler::SetMaxZForFermiBreakUp(G4int aZ) -{ - maxZForFermiBreakUp = aZ; -} - -void G4ExcitationHandler::SetMaxAForFermiBreakUp(G4int anA) -{ - maxAForFermiBreakUp = anA; -} - -void G4ExcitationHandler::SetMaxAandZForFermiBreakUp(G4int anA, G4int aZ) -{ - SetMaxAForFermiBreakUp(anA); - SetMaxZForFermiBreakUp(aZ); -} - -void G4ExcitationHandler::SetMinEForMultiFrag(G4double anE) -{ - minEForMultiFrag = anE; -} void G4ExcitationHandler::ModelDescription(std::ostream& outFile) const { - outFile << "G4ExcitationHandler description\n" - << "This class samples de-excitation of excited nucleus using\n" - << "Fermi Break-up model for light fragments (Z < 9, A < 17), " - << "evaporation, fission, and photo-evaporation models. Evaporated\n" - << "particle may be proton, neutron, and other light fragment \n" - << "(Z < 13, A < 29). During photon evaporation produced gamma \n" - << "or electrons due to internal conversion \n"; + outFile << "G4ExcitationHandler description\n" + << "This class samples de-excitation of excited nucleus using\n" + << "Fermi Break-up model for light fragments (Z < 9, A < 17), " + << "evaporation, fission, and photo-evaporation models. Evaporated\n" + << "particle may be proton, neutron, and other light fragment \n" + << "(Z < 13, A < 29). During photon evaporation produced gamma \n" + << "or electrons due to internal conversion \n"; } diff --git a/source/processes/hadronic/models/de_excitation/management/GNUmakefile b/source/processes/hadronic/models/de_excitation/management/GNUmakefile index 12e989491f..bb656a6580 100644 --- a/source/processes/hadronic/models/de_excitation/management/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/management/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile 88406 2015-02-18 09:13:29Z gcosmo $ +# $Id: GNUmakefile 96348 2016-04-08 14:33:41Z gcosmo $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -19,6 +19,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4DeexPrecoParameters.hh b/source/processes/hadronic/models/de_excitation/management/include/G4DeexPrecoParameters.hh new file mode 100644 index 0000000000..01f4a7bb39 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/management/include/G4DeexPrecoParameters.hh @@ -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. * +// ******************************************************************** +// +// $Id: G4DeexPrecoParameters.hh 68028 2013-03-13 13:48:15Z gcosmo $ +// +// 15.03.2016 V.Ivanchenko +// +// List of parameters of the pre-compound model +// and the deexcitation module +// + +#ifndef G4DeexPrecoParameters_h +#define G4DeexPrecoParameters_h 1 + +#include "globals.hh" +#include "G4Threading.hh" + +enum G4DeexChannelType +{ + fEvaporation = 0, + fGEM, + fCombined +}; + +class G4StateManager; + +class G4DeexPrecoParameters +{ +public: + + explicit G4DeexPrecoParameters(); + + void SetDefaults(); + + // printing + std::ostream& StreamInfo(std::ostream& os) const; + void Dump() const; + friend std::ostream& operator<< (std::ostream& os, + const G4DeexPrecoParameters&); + + // inline access methods + + inline G4double GetLevelDensity() const; + + inline G4double GetR0() const; + + inline G4double GetTransitionsR0() const; + + inline G4double GetFermiEnergy() const; + + inline G4double GetPrecoLowEnergy() const; + + inline G4double GetPhenoFactor() const; + + inline G4double GetMinExcitation() const; + + inline G4double GetMaxLifeTime() const; + + inline G4double GetMinExPerNucleounForMF() const; + + inline G4int GetMaxZForFermiBreakUp() const; + + inline G4int GetMaxAForFermiBreakUp() const; + + inline G4int GetMinZForPreco() const; + + inline G4int GetMinAForPreco() const; + + inline G4int GetPrecoModelType() const; + + inline G4int GetDeexModelType() const; + + inline G4bool NeverGoBack() const; + + inline G4bool UseSoftCutoff() const; + + inline G4bool UseCEM() const; + + inline G4bool UseGNASH() const; + + inline G4bool UseHETC() const; + + inline G4bool UseAngularGen() const; + + inline G4DeexChannelType GetDeexChannels() const; + + // Set methods + + void SetLevelDensity(G4double); + + void SetR0(G4double); + + void SetTransitionsR0(G4double); + + void SetFermiEnergy(G4double); + + void SetPrecoLowEnergy(G4double); + + void SetPhenoFactor(G4double); + + void SetMinExcitation(G4double); + + void SetMaxLifeTime(G4double); + + void SetMinExPerNucleounForMF(G4double); + + void SetMinEForMultiFrag(G4double); + + void SetMaxZForFermiBreakUp(G4int); + + void SetMaxAForFermiBreakUp(G4int); + + void SetMinZForPreco(G4int); + + void SetMinAForPreco(G4int); + + void SetPrecoModelType(G4int); + + void SetDeexModelType(G4int); + + void SetNeverGoBack(G4bool); + + void SetUseSoftCutoff(G4bool); + + void SetUseCEM(G4bool); + + void SetUseGNASH(G4bool); + + void SetUseHETC(G4bool); + + void SetUseAngularGen(G4bool); + + void SetDeexChannels(G4DeexChannelType); + +private: + + G4bool IsLocked() const; + + G4DeexPrecoParameters(const G4DeexPrecoParameters & right) = delete; + const G4DeexPrecoParameters& operator=(const G4DeexPrecoParameters &right) = delete; + G4bool operator==(const G4DeexPrecoParameters &right) const = delete; + G4bool operator!=(const G4DeexPrecoParameters &right) const = delete; + + G4StateManager* fStateManager; + + // Level density parameter + G4double fLevelDensity; + + // Nuclear radius r0 + G4double fR0; + + // Nuclear radius r0 for transitions + G4double fTransitionsR0; + + // Fermi energy level + G4double fFermiEnergy; + + // Low-energy excitation per nucleon limit + G4double fPrecoLowEnergy; + + // Preco phenomenological factor + G4double fPhenoFactor; + + // Excitation handler + G4double fMinExcitation; + G4double fMaxLifeTime; + + // Multi-fragmentation model + G4double fMinExPerNucleounForMF; + + // Fermi Break-up model + G4int fMaxZForFermiBreakUp; + G4int fMaxAForFermiBreakUp; + + // Preco model + G4int fMinZForPreco; + G4int fMinAForPreco; + + // Cross section type + G4int fPrecoType; + G4int fDeexType; + + // Preco flags + G4bool fNeverGoBack; + G4bool fUseSoftCutoff; + G4bool fUseCEM; + G4bool fUseGNASH; + G4bool fUseHETC; + G4bool fUseAngularGen; + + // De-excitation flag + + // type of a set of e-exitation channels + G4DeexChannelType fDeexChannelType; + +#ifdef G4MULTITHREADED + static G4Mutex deexPrecoMutex; +#endif +}; + +inline G4double G4DeexPrecoParameters::GetLevelDensity() const +{ + return fLevelDensity; +} + +inline G4double G4DeexPrecoParameters::GetR0() const +{ + return fR0; +} + +inline G4double G4DeexPrecoParameters::GetTransitionsR0() const +{ + return fTransitionsR0; +} + +inline G4double G4DeexPrecoParameters::GetFermiEnergy() const +{ + return fFermiEnergy; +} + +inline G4double G4DeexPrecoParameters::GetPrecoLowEnergy() const +{ + return fPrecoLowEnergy; +} + +inline G4double G4DeexPrecoParameters::GetPhenoFactor() const +{ + return fPhenoFactor; +} + +inline G4double G4DeexPrecoParameters::GetMinExcitation() const +{ + return fMinExcitation; +} + +inline G4double G4DeexPrecoParameters::GetMaxLifeTime() const +{ + return fMaxLifeTime; +} + +inline G4double G4DeexPrecoParameters::GetMinExPerNucleounForMF() const +{ + return fMinExPerNucleounForMF; +} + +inline G4int G4DeexPrecoParameters::GetMaxZForFermiBreakUp() const +{ + return fMaxZForFermiBreakUp; +} + +inline G4int G4DeexPrecoParameters::GetMaxAForFermiBreakUp() const +{ + return fMaxAForFermiBreakUp; +} + +inline G4int G4DeexPrecoParameters::GetMinZForPreco() const +{ + return fMinZForPreco; +} + +inline G4int G4DeexPrecoParameters::GetMinAForPreco() const +{ + return fMinAForPreco; +} + +inline G4int G4DeexPrecoParameters::GetPrecoModelType() const +{ + return fPrecoType; +} + +inline G4int G4DeexPrecoParameters::GetDeexModelType() const +{ + return fDeexType; +} + +inline G4bool G4DeexPrecoParameters::NeverGoBack() const +{ + return fNeverGoBack; +} + +inline G4bool G4DeexPrecoParameters::UseSoftCutoff() const +{ + return fUseSoftCutoff; +} + +inline G4bool G4DeexPrecoParameters::UseCEM() const +{ + return fUseCEM; +} + +inline G4bool G4DeexPrecoParameters::UseGNASH() const +{ + return fUseGNASH; +} + +inline G4bool G4DeexPrecoParameters::UseHETC() const +{ + return fUseHETC; +} + +inline G4bool G4DeexPrecoParameters::UseAngularGen() const +{ + return fUseAngularGen; +} + +inline G4DeexChannelType G4DeexPrecoParameters::GetDeexChannels() const +{ + return fDeexChannelType; +} + +#endif 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 a1310920df..92b70789ad 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4LevelManager.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4LevelManager.hh @@ -48,7 +48,6 @@ #include "globals.hh" #include "G4NucLevel.hh" -#include #include static const G4float tolerance = 0.0001f; @@ -61,6 +60,7 @@ public: // level has NULL pointer // 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 G4LevelManager(const std::vector& energies, const std::vector& lifetime, const std::vector& lifetimegamma, @@ -81,12 +81,16 @@ public: inline G4float MaxLevelEnergy() const; - inline size_t NearestLevelIndex(G4double energy, size_t index=0) const; + size_t NearestLevelIndex(G4double energy, size_t index=0) const; + + inline size_t NearestLowEdgeLevelIndex(G4double energy) const; inline const G4NucLevel* NearestLevel(G4double energy, size_t index=0) const; inline G4float NearestLevelEnergy(G4double energy, size_t index=0) const; + inline G4float NearestLowEdgeLevelEnergy(G4double energy) const; + inline G4float LifeTime(size_t i) const; inline G4float LifeTimeGamma(size_t i) const; @@ -95,10 +99,14 @@ public: private: - G4LevelManager(const G4LevelManager & right); - const G4LevelManager& operator=(const G4LevelManager &right); - G4bool operator==(const G4LevelManager &right) const; - G4bool operator!=(const G4LevelManager &right) const; +#ifdef G4VERBOSE + void PrintError(size_t idx, const G4String&) const; +#endif + + G4LevelManager(const G4LevelManager & right) = delete; + const G4LevelManager& operator=(const G4LevelManager &right) = delete; + G4bool operator==(const G4LevelManager &right) const = delete; + G4bool operator!=(const G4LevelManager &right) const = delete; const std::vector fLevelEnergy; const std::vector fLifeTime; @@ -116,13 +124,17 @@ inline size_t G4LevelManager::NumberOfTransitions() const inline const G4NucLevel* G4LevelManager::GetLevel(size_t i) const { - assert(i <= nTransitions); +#ifdef G4VERBOSE + if(i > nTransitions) { PrintError(i, "GetLevel"); } +#endif return fLevels[i]; } inline G4float G4LevelManager::LevelEnergy(size_t i) const { - assert(i <= nTransitions); +#ifdef G4VERBOSE + if(i > nTransitions) { PrintError(i, "LevelEnergy"); } +#endif return fLevelEnergy[i]; } @@ -131,28 +143,15 @@ inline G4float G4LevelManager::MaxLevelEnergy() const return fLevelEnergy[nTransitions]; } -inline size_t -G4LevelManager::NearestLevelIndex(G4double ener, size_t index) const +inline size_t G4LevelManager::NearestLowEdgeLevelIndex(G4double ener) const { - //G4cout << "index= " << index << " max= " << nTransitions << " exc= " << ener + //G4cout<< "index= " << index << " max= " << nTransitions << " exc= " << ener // << " Emax= " << fLevelEnergy[nTransitions] << G4endl; - size_t idx = std::min(index, nTransitions); - G4float energy = (G4float)ener; - if(0 < nTransitions && std::fabs(energy - fLevelEnergy[idx]) > tolerance) { - // ground state - if(energy <= fLevelEnergy[1]*0.5f) - { idx = 0; } - else if((fLevelEnergy[nTransitions] + fLevelEnergy[nTransitions-1])*0.5f <= energy) - { idx = nTransitions; } - - // if shortcuts are not working, make binary search - else { - idx = std::lower_bound(fLevelEnergy.begin(), fLevelEnergy.end(), energy) - - fLevelEnergy.begin() - 1; - if(energy - fLevelEnergy[idx] > fLevelEnergy[idx+1] - energy) { ++idx; } - //G4cout << "E= " << energy << " " << fLevelEnergy[idx-1] - //<< " " << fLevelEnergy[idx] << G4endl; - } + size_t idx = nTransitions; + G4float energy = (G4float)ener; + if(energy < fLevelEnergy[nTransitions]) { + idx = std::lower_bound(fLevelEnergy.begin(), fLevelEnergy.end(), energy) + - fLevelEnergy.begin() - 1; } return idx; } @@ -169,21 +168,32 @@ G4LevelManager::NearestLevelEnergy(G4double energy, size_t index) const return LevelEnergy(NearestLevelIndex(energy, index)); } +inline G4float G4LevelManager::NearestLowEdgeLevelEnergy(G4double energy) const +{ + return LevelEnergy(NearestLowEdgeLevelIndex(energy)); +} + inline G4float G4LevelManager::LifeTime(size_t i) const { - assert(i <= nTransitions); +#ifdef G4VERBOSE + if(i > nTransitions) { PrintError(i, "LifeTime"); } +#endif return fLifeTime[i]; } inline G4float G4LevelManager::LifeTimeGamma(size_t i) const { - assert(i <= nTransitions); +#ifdef G4VERBOSE + if(i > nTransitions) { PrintError(i, "LifeTimeGamma"); } +#endif return fLifeTimeGamma[i]; } inline G4int G4LevelManager::Spin(size_t i) const { - assert(i <= nTransitions); +#ifdef G4VERBOSE + if(i > nTransitions) { PrintError(i, "Spin"); } +#endif return fSpin[i]; } diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4LevelReader.hh b/source/processes/hadronic/models/de_excitation/management/include/G4LevelReader.hh index ffd8a39953..6ac5d7568c 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4LevelReader.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4LevelReader.hh @@ -54,9 +54,7 @@ class G4LevelReader public: - G4LevelReader(); - - ~G4LevelReader(); + explicit G4LevelReader(); // create run manager using G4LEVELGAMMADATA data const G4LevelManager* CreateLevelManager(G4int Z, G4int A); @@ -75,10 +73,10 @@ private: const std::vector* NormalizedICCProbability(G4int Z); - G4LevelReader(const G4LevelReader & right); - const G4LevelReader& operator=(const G4LevelReader &right); - G4bool operator==(const G4LevelReader &right) const; - G4bool operator!=(const G4LevelReader &right) const; + G4LevelReader(const G4LevelReader & right) = delete; + const G4LevelReader& operator=(const G4LevelReader &right) = delete; + G4bool operator==(const G4LevelReader &right) const = delete; + G4bool operator!=(const G4LevelReader &right) const = delete; G4double fMinProbability; G4double fTimeFactor; @@ -90,9 +88,6 @@ private: G4double fTime; G4double fSpin; G4double fAlpha; - G4double fNorm1; - G4double fNorm2; - G4double fNorm3; G4double fICC[10]; static G4String fTrans[10]; @@ -105,17 +100,21 @@ private: G4int fVerbose; + G4float fNorm1; + G4float fNorm2; + std::vector vEnergy; std::vector vTime; std::vector vTimeg; std::vector vSpin; std::vector vLevel; - std::vector vTransEnergy; + std::vector vIndex; + std::vector vTrans; std::vector vGammaCumProbability; std::vector vGammaECumProbability; std::vector vGammaProbability; - std::vector vTrans; + std::vector vMpRatio; std::vector*> vShellProbability; }; 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 3b6e1ed0ae..c9ffdf9434 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4NucLevel.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4NucLevel.hh @@ -47,19 +47,19 @@ #define G4NUCLEVEL_HH 1 #include "globals.hh" -#include #include class G4NucLevel { public: - G4NucLevel(const std::vector& eTransition, - const std::vector& wLevelGamma, - const std::vector& wLevelGammaE, - const std::vector& wGamma, - const std::vector& vTrans, - const std::vector*>& wShell); + explicit G4NucLevel(const std::vector& idxTrans, + const std::vector& vTrans, + const std::vector& wLevelGamma, + const std::vector& wLevelGammaE, + const std::vector& wGamma, + const std::vector& vRatio, + const std::vector*>& wShell); ~G4NucLevel(); @@ -67,11 +67,13 @@ public: inline G4bool IsXLevel() const; - inline G4float FinalExcitationEnergy(size_t idx) const; + inline size_t FinalExcitationIndex(size_t idx) const; + + inline G4int TransitionType(size_t idx) const; inline G4float GammaProbability(size_t idx) const; - inline G4int TransitionType(size_t idx) const; + inline G4float MultipolarityRatio(size_t idx) const; inline size_t SampleGammaTransition(G4double rndm) const; @@ -81,17 +83,21 @@ public: private: - G4NucLevel(const G4NucLevel &right); - G4bool operator==(const G4NucLevel &right) const; - G4bool operator!=(const G4NucLevel &right) const; - G4bool operator<(const G4NucLevel &right) const; - const G4NucLevel& operator=(const G4NucLevel &right); +#ifdef G4VERBOSE + void PrintError(size_t idx, const G4String&) const; +#endif + G4NucLevel(const G4NucLevel &right) = delete; + G4bool operator==(const G4NucLevel &right) const = delete; + G4bool operator!=(const G4NucLevel &right) const = delete; + G4bool operator<(const G4NucLevel &right) const = delete; + const G4NucLevel& operator=(const G4NucLevel &right) = delete; - std::vector fFinalEnergy; + std::vector fFinalIndex; + std::vector fTrans; std::vector fGammaCumProbability; std::vector fGammaECumProbability; std::vector fGammaProbability; - std::vector fTrans; + std::vector fMpRatio; const std::vector*> fShellProbability; size_t length; }; @@ -103,27 +109,41 @@ inline size_t G4NucLevel::NumberOfTransitions() const inline G4bool G4NucLevel::IsXLevel() const { - return (0.0 == fGammaECumProbability[0]); + return (1 == fTrans[0]); } -inline G4float G4NucLevel::FinalExcitationEnergy(size_t idx) const +inline size_t G4NucLevel::FinalExcitationIndex(size_t idx) const { - assert(idx < length); - return fFinalEnergy[idx]; -} - -inline G4float G4NucLevel::GammaProbability(size_t idx) const -{ - assert(idx < length); - return fGammaProbability[idx]; +#ifdef G4VERBOSE + if(idx >= length) { PrintError(idx, "FinalExcitationEnergy"); } +#endif + return fFinalIndex[idx]; } inline G4int G4NucLevel::TransitionType(size_t idx) const { - assert(idx < length); +#ifdef G4VERBOSE + if(idx >= length) { PrintError(idx, "TransitionType"); } +#endif return fTrans[idx]; } +inline G4float G4NucLevel::GammaProbability(size_t idx) const +{ +#ifdef G4VERBOSE + if(idx >= length) { PrintError(idx, "GammaProbability"); } +#endif + return fGammaProbability[idx]; +} + +inline G4float G4NucLevel::MultipolarityRatio(size_t idx) const +{ +#ifdef G4VERBOSE + if(idx >= length) { PrintError(idx, "GammaProbability"); } +#endif + return fMpRatio[idx]; +} + inline size_t G4NucLevel::SampleGammaTransition(G4double rndm) const { G4float x = (G4float)rndm; @@ -146,7 +166,9 @@ inline size_t G4NucLevel::SampleGammaETransition(G4double rndm) const inline size_t G4NucLevel::SampleShell(size_t idx, G4double rndm) const { - assert(idx < length); +#ifdef G4VERBOSE + if(idx >= length) { PrintError(idx, "SampleShell"); } +#endif const std::vector* prob = fShellProbability[idx]; size_t i = 0; if(prob) { diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4NuclearLevelData.hh b/source/processes/hadronic/models/de_excitation/management/include/G4NuclearLevelData.hh index dac6eb629c..bd134a753b 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4NuclearLevelData.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4NuclearLevelData.hh @@ -47,6 +47,7 @@ #define G4NUCLEARLEVELDATA_HH 1 #include "globals.hh" +#include "G4DeexPrecoParameters.hh" #include "G4Threading.hh" #include @@ -72,25 +73,47 @@ public: // add private data to isotope from master thread G4bool AddPrivateData(G4int Z, G4int A, const G4String& filename); + + // access to min/max A in the level DB + G4int GetMinA(G4int Z) const; + G4int GetMaxA(G4int Z) const; + + // check max energy of a level without upload of the data + G4double GetMaxLevelEnergy(G4int Z, G4int A) const; + + // check closest level if the energy is below the max level energy + G4double GetLevelEnergy(G4int Z, G4int A, G4double energy); + + // check closest level below given energy + G4double GetLowEdgeLevelEnergy(G4int Z, G4int A, G4double energy); + + // check if residual excitation energy corresponding to + // discrete level and if it is the case select closest level + G4double FindLevel(G4int Z, G4int A, G4double resMass, G4double Mass, + G4double partMass, G4double T); + + // access to all model parameters + G4DeexPrecoParameters* GetParameters(); private: void InitialiseForIsotope(G4int Z, G4int A); - G4NuclearLevelData(G4NuclearLevelData &); - G4NuclearLevelData & operator=(const G4NuclearLevelData &right); + G4NuclearLevelData(G4NuclearLevelData &) = delete; + G4NuclearLevelData & operator=(const G4NuclearLevelData &right) = delete; - G4LevelReader* fLevelReader; + G4DeexPrecoParameters* fDeexPrecoParameters; + G4LevelReader* fLevelReader; static const G4int ZMAX = 103; static const G4int AMIN[ZMAX]; static const G4int AMAX[ZMAX]; + static const G4int LEVELIDX[ZMAX]; std::vector fLevelManagers[ZMAX]; std::vector fLevelManagerFlags[ZMAX]; #ifdef G4MULTITHREADED -public: static G4Mutex nuclearLevelDataMutex; #endif }; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEmissionProbability.hh similarity index 85% rename from source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh rename to source/processes/hadronic/models/de_excitation/management/include/G4VEmissionProbability.hh index 4679be98e9..37fe4f0b5e 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEmissionProbability.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VEmissionProbability.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VEmissionProbability.hh 66241 2012-12-13 18:34:42Z gunter $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -42,7 +42,7 @@ #include "globals.hh" #include "G4Fragment.hh" #include "G4PairingCorrection.hh" -#include "G4EvaporationLevelDensityParameter.hh" +//#include "G4EvaporationLevelDensityParameter.hh" #include "G4Pow.hh" class G4VEmissionProbability @@ -52,15 +52,17 @@ public: virtual ~G4VEmissionProbability(); private: - G4VEmissionProbability(const G4VEmissionProbability &right); + G4VEmissionProbability(const G4VEmissionProbability &right) = delete; - const G4VEmissionProbability & operator=(const G4VEmissionProbability &right); - G4bool operator==(const G4VEmissionProbability &right) const; - G4bool operator!=(const G4VEmissionProbability &right) const; + const G4VEmissionProbability & operator=(const G4VEmissionProbability &right) = delete; + G4bool operator==(const G4VEmissionProbability &right) const = delete; + G4bool operator!=(const G4VEmissionProbability &right) const = delete; public: virtual G4double EmissionProbability(const G4Fragment & fragment, const G4double anEnergy) = 0; + void Initialise(); + // for cross section selection inline void SetOPTxs(G4int opt) { OPTxs = opt; } // for superimposed Coulomb Barrier for inverse cross sections @@ -69,10 +71,11 @@ public: protected: G4int OPTxs; G4bool useSICB; + G4double LevelDensity; G4Pow* fG4pow; G4PairingCorrection* fPairCorr; - G4EvaporationLevelDensityParameter * theEvapLDPptr; + //G4EvaporationLevelDensityParameter * theEvapLDPptr; }; diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh index 5131d1094e..e02f0378ea 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEvaporationChannel.hh 93357 2015-10-19 13:40:13Z gcosmo $ +// $Id: G4VEvaporationChannel.hh 96526 2016-04-20 08:49:53Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -51,7 +51,7 @@ class G4VEvaporationChannel { public: - G4VEvaporationChannel(const G4String & aName = ""); + explicit G4VEvaporationChannel(const G4String & aName = ""); virtual ~G4VEvaporationChannel(); // option definition @@ -115,10 +115,10 @@ protected: private: - G4VEvaporationChannel(const G4VEvaporationChannel & right); - const G4VEvaporationChannel & operator=(const G4VEvaporationChannel & right); - G4bool operator==(const G4VEvaporationChannel & right) const; - G4bool operator!=(const G4VEvaporationChannel & right) const; + G4VEvaporationChannel(const G4VEvaporationChannel & right) = delete; + const G4VEvaporationChannel & operator=(const G4VEvaporationChannel & right) = delete; + G4bool operator==(const G4VEvaporationChannel & right) const = delete; + G4bool operator!=(const G4VEvaporationChannel & right) const = delete; G4VEvaporationChannel* photonEvaporation; }; @@ -149,14 +149,10 @@ G4VEvaporationChannel::SetPhotonEvaporation(G4VEvaporationChannel* p) photonEvaporation = p; } -inline void G4VEvaporationChannel::SetOPTxs(G4int opt) -{ - OPTxs = opt; -} +inline void G4VEvaporationChannel::SetOPTxs(G4int) +{} -inline void G4VEvaporationChannel::UseSICB(G4bool use) -{ - useSICB = use; -} +inline void G4VEvaporationChannel::UseSICB(G4bool) +{} #endif diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh index bb1f0bd630..4f5d2334c9 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VEvaporationFactory.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VEvaporationFactory.hh 96402 2016-04-12 07:30:48Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -43,7 +43,7 @@ class G4VEvaporationFactory { public: - G4VEvaporationFactory(G4VEvaporationChannel* photoEvaporation); + explicit G4VEvaporationFactory(G4VEvaporationChannel* photoEvaporation); virtual ~G4VEvaporationFactory(); @@ -51,10 +51,10 @@ public: private: - G4VEvaporationFactory(const G4VEvaporationFactory & ); - const G4VEvaporationFactory & operator=(const G4VEvaporationFactory & val); - G4bool operator==(const G4VEvaporationFactory & val) const; - G4bool operator!=(const G4VEvaporationFactory & val) const; + G4VEvaporationFactory(const G4VEvaporationFactory & ) = delete; + const G4VEvaporationFactory & operator=(const G4VEvaporationFactory & val) = delete; + G4bool operator==(const G4VEvaporationFactory & val) const = delete; + G4bool operator!=(const G4VEvaporationFactory & val) const = delete; protected: diff --git a/source/processes/hadronic/models/de_excitation/management/sources.cmake b/source/processes/hadronic/models/de_excitation/management/sources.cmake index 187abbe97b..2bbe509316 100644 --- a/source/processes/hadronic/models/de_excitation/management/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/management/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 88709 2015-03-06 15:33:12Z gcosmo $ +# $Id: sources.cmake 96348 2016-04-08 14:33:41Z gcosmo $ # #------------------------------------------------------------------------------ @@ -31,6 +31,7 @@ include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include) include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include) include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include) +include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include) include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include) include_directories(${CMAKE_SOURCE_DIR}/source/track/include) @@ -41,17 +42,21 @@ include_directories(${CMAKE_SOURCE_DIR}/source/track/include) include(Geant4MacroDefineModule) GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_management HEADERS + G4DeexPrecoParameters.hh G4LevelManager.hh G4LevelReader.hh G4NuclearLevelData.hh G4NucLevel.hh + G4VEmissionProbability.hh G4VEvaporationChannel.hh G4VEvaporationFactory.hh SOURCES + G4DeexPrecoParameters.cc G4LevelManager.cc G4LevelReader.cc G4NuclearLevelData.cc G4NucLevel.cc + G4VEmissionProbability.cc G4VEvaporationChannel.cc G4VEvaporationFactory.cc GRANULAR_DEPENDENCIES @@ -59,6 +64,7 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_management G4bosons G4globman G4had_mod_util + G4hadronic_deex_util G4hadronic_mgt G4hadronic_util G4hepnumerics diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc b/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc new file mode 100644 index 0000000000..3969de857e --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc @@ -0,0 +1,245 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4DeexPrecoParameters.cc 68028 2013-03-13 13:48:15Z gcosmo $ +// +// 15.03.2016 V.Ivanchenko +// +// List of parameters of the pre-compound model +// and the deexcitation module +// + +#include "G4DeexPrecoParameters.hh" +#include "G4ApplicationState.hh" +#include "G4StateManager.hh" +#include "G4SystemOfUnits.hh" + +#ifdef G4MULTITHREADED +G4Mutex G4DeexPrecoParameters::deexPrecoMutex = G4MUTEX_INITIALIZER; +#endif + +G4DeexPrecoParameters::G4DeexPrecoParameters() +{ + fStateManager = G4StateManager::GetStateManager(); + SetDefaults(); +} + +void G4DeexPrecoParameters::SetDefaults() +{ +#ifdef G4MULTITHREADED + G4MUTEXLOCK(&G4DeexPrecoParameters::deexPrecoMutex); +#endif + fLevelDensity = 0.10/CLHEP::MeV; + fR0 = 1.5*CLHEP::fermi; + fTransitionsR0 = 0.6*CLHEP::fermi; + fFermiEnergy = 35.0*CLHEP::MeV; + fPrecoLowEnergy = 0.1*CLHEP::MeV; + fPhenoFactor = 1.0; + fMinExcitation = 0.1*CLHEP::keV; + fMaxLifeTime = DBL_MAX; + fMinExPerNucleounForMF = 100*CLHEP::GeV; + fMaxZForFermiBreakUp = 9; + fMaxAForFermiBreakUp = 17; + fMinZForPreco = 3; + fMinAForPreco = 5; + fPrecoType = 3; + fDeexType = 3; + fNeverGoBack = false; + fUseSoftCutoff = false; + fUseCEM = true; + fUseGNASH = false; + fUseHETC = false; + fUseAngularGen = true; + fDeexChannelType = fEvaporation; +#ifdef G4MULTITHREADED + G4MUTEXUNLOCK(&G4DeexPrecoParameters::deexPrecoMutex); +#endif +} + +void G4DeexPrecoParameters::SetLevelDensity(G4double val) +{ + if(IsLocked()) { return; } + fLevelDensity = val/CLHEP::MeV; +} + +void G4DeexPrecoParameters::SetR0(G4double val) +{ + if(IsLocked()) { return; } + fR0 = val; +} + +void G4DeexPrecoParameters::SetTransitionsR0(G4double val) +{ + if(IsLocked()) { return; } + fTransitionsR0 = val; +} + +void G4DeexPrecoParameters::SetFermiEnergy(G4double val) +{ + if(IsLocked()) { return; } + fFermiEnergy = val; +} + +void G4DeexPrecoParameters::SetPrecoLowEnergy(G4double val) +{ + if(IsLocked()) { return; } + fPrecoLowEnergy = val; +} + +void G4DeexPrecoParameters::SetPhenoFactor(G4double val) +{ + if(IsLocked()) { return; } + fPhenoFactor = val; +} + +void G4DeexPrecoParameters::SetMinExcitation(G4double val) +{ + if(IsLocked()) { return; } + fMinExcitation = val; +} + +void G4DeexPrecoParameters::SetMaxLifeTime(G4double val) +{ + if(IsLocked()) { return; } + fMaxLifeTime = val; +} + +void G4DeexPrecoParameters::SetMinExPerNucleounForMF(G4double val) +{ + if(IsLocked()) { return; } + fMinExPerNucleounForMF = val; +} + +void G4DeexPrecoParameters::SetMaxZForFermiBreakUp(G4int n) +{ + if(IsLocked()) { return; } + fMaxZForFermiBreakUp = n; +} + +void G4DeexPrecoParameters::SetMaxAForFermiBreakUp(G4int n) +{ + if(IsLocked()) { return; } + fMaxAForFermiBreakUp = n; +} + +void G4DeexPrecoParameters::SetMinZForPreco(G4int n) +{ + if(IsLocked()) { return; } + fMinZForPreco = n; +} + +void G4DeexPrecoParameters::SetMinAForPreco(G4int n) +{ + if(IsLocked()) { return; } + fMinAForPreco = n; +} + +void G4DeexPrecoParameters::SetPrecoModelType(G4int n) +{ + if(IsLocked()) { return; } + fPrecoType = n; +} + +void G4DeexPrecoParameters::SetDeexModelType(G4int n) +{ + if(IsLocked()) { return; } + fDeexType = n; +} + +void G4DeexPrecoParameters::SetNeverGoBack(G4bool val) +{ + if(IsLocked()) { return; } + fNeverGoBack = val; +} + +void G4DeexPrecoParameters::SetUseSoftCutoff(G4bool val) +{ + if(IsLocked()) { return; } + fUseSoftCutoff = val; +} + +void G4DeexPrecoParameters::SetUseCEM(G4bool val) +{ + if(IsLocked()) { return; } + fUseCEM = val; +} + +void G4DeexPrecoParameters::SetUseGNASH(G4bool val) +{ + if(IsLocked()) { return; } + fUseGNASH = val; +} + +void G4DeexPrecoParameters::SetUseHETC(G4bool val) +{ + if(IsLocked()) { return; } + fUseHETC = val; +} + +void G4DeexPrecoParameters::SetUseAngularGen(G4bool val) +{ + if(IsLocked()) { return; } + fUseAngularGen = val; +} + +void G4DeexPrecoParameters::SetDeexChannels(G4DeexChannelType val) +{ + if(IsLocked()) { return; } + fDeexChannelType = val; +} + +std::ostream& G4DeexPrecoParameters::StreamInfo(std::ostream& os) const +{ + G4int prec = os.precision(5); + os << "=======================================================================" << "\n"; + os << "====== Pre-compound/De-excitation Physics Parameters ========" << "\n"; + os << "=======================================================================" << "\n"; + os << "Type of pre-compound inverse x-section " << fPrecoType << "\n"; + os << "Type of de-excitation inverse x-section " << fDeexType << "\n"; + os << "Min excitation energy (keV) " + << fMinExcitation/CLHEP::keV << "\n"; + os << "Level density (1/MeV) " + << fLevelDensity*CLHEP::MeV << "\n"; + os << "=======================================================================" << "\n"; + os.precision(prec); + return os; +} + +void G4DeexPrecoParameters::Dump() const +{ + StreamInfo(G4cout); +} + +std::ostream& operator<< (std::ostream& os, const G4DeexPrecoParameters& par) +{ + return par.StreamInfo(os); +} + +G4bool G4DeexPrecoParameters::IsLocked() const +{ + return (!G4Threading::IsMasterThread() || + (fStateManager->GetCurrentState() != G4State_PreInit && + fStateManager->GetCurrentState() != G4State_Idle)); +} 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 eb9fc57041..5d39a01a13 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4LevelManager.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4LevelManager.cc @@ -41,6 +41,7 @@ // ------------------------------------------------------------------- #include "G4LevelManager.hh" +#include "G4HadronicException.hh" G4LevelManager::G4LevelManager(const std::vector& energies, const std::vector& lifetime, @@ -59,3 +60,51 @@ G4LevelManager::~G4LevelManager() { for(size_t i=0; i<=nTransitions; ++i) { delete fLevels[i]; } } + +size_t +G4LevelManager::NearestLevelIndex(G4double ener, size_t index) const +{ + //G4cout<< "index= " << index << " max= " << nTransitions << " exc= " << ener + // << " Emax= " << fLevelEnergy[nTransitions] << G4endl; + size_t idx = nTransitions; + G4float energy = (G4float)ener; + // always (nTransitions > 0) + if(energy < fLevelEnergy[nTransitions]) { + // ground state + if(energy <= tolerance) + { idx = 0; } + // take next level + else if(energy <= fLevelEnergy[1]) + { idx = 1; } + else { + idx = std::min(idx, index); + if(std::fabs(energy - fLevelEnergy[idx]) > tolerance) { + // take top level + if((fLevelEnergy[nTransitions] + fLevelEnergy[nTransitions-1])*0.5f <= energy) + { idx = nTransitions; } + + // if shortcuts are not working, make binary search + else { + idx = std::lower_bound(fLevelEnergy.begin(), fLevelEnergy.end(), energy) + - fLevelEnergy.begin() - 1; + if(energy - fLevelEnergy[idx] > fLevelEnergy[idx+1] - energy) { ++idx; } + //G4cout << "E= " << energy << " " << fLevelEnergy[idx-1] + //<< " " << fLevelEnergy[idx] << G4endl; + } + } + } + } + return idx; +} + +#ifdef G4VERBOSE +void G4LevelManager::PrintError(size_t idx, const G4String& ss) const +{ + G4String sss = "G4LevelManager::"+ss+"()"; + G4ExceptionDescription ed; + ed << "Index of a level " << idx << " > " + << nTransitions << " (number of levels)"; + G4Exception(sss,"had061",JustWarning,ed,""); + throw G4HadronicException(__FILE__, __LINE__,"FATAL Hadronic Exception"); +} +#endif diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4LevelReader.cc b/source/processes/hadronic/models/de_excitation/management/src/G4LevelReader.cc index e7a6b2a6a9..2767903b0a 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4LevelReader.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4LevelReader.cc @@ -69,16 +69,17 @@ G4LevelReader::G4LevelReader() for(G4int i=0; i<20; ++i) { buffer[i] = ' '; } bufp[0] = bufp[1] = ' '; - fEnergy = fCurrEnergy = fTrEnergy = fProb = fTime = fSpin = fAlpha - = fNorm1 = fNorm2 = fNorm3 = 0.0; + fEnergy = fCurrEnergy = fTrEnergy = fProb = fTime = fSpin = fAlpha = 0.0; + fNorm1 = fNorm2 = 0.0f; size_t nn = 10; - vTransEnergy.reserve(nn); + vIndex.reserve(nn); + vTrans.reserve(nn); vGammaCumProbability.reserve(nn); vGammaECumProbability.reserve(nn); vGammaProbability.reserve(nn); vShellProbability.reserve(nn); - vTrans.reserve(nn); + vMpRatio.reserve(nn); nn = 100; vEnergy.reserve(nn); @@ -88,9 +89,6 @@ G4LevelReader::G4LevelReader() vLevel.reserve(nn); } -G4LevelReader::~G4LevelReader() -{} - const G4LevelManager* G4LevelReader::CreateLevelManager(G4int Z, G4int A) { @@ -104,17 +102,11 @@ G4LevelReader::CreateLevelManager(G4int Z, G4int A) const G4LevelManager* G4LevelReader::MakeLevelManager(G4int Z, G4int A, const G4String& filename) { - vEnergy.clear(); - vTime.clear(); - vTimeg.clear(); - vSpin.clear(); - vLevel.clear(); - - vEnergy.push_back(0.0f); - vTime.push_back(FLT_MAX); - vTimeg.push_back(FLT_MAX); - vSpin.push_back(0); - vLevel.push_back(0); + vEnergy.resize(1,0.0f); + vTime.resize(1,FLT_MAX); + vTimeg.resize(1,FLT_MAX); + vSpin.resize(1,0); + vLevel.resize(1,nullptr); std::ifstream infile(filename, std::ios::in); @@ -136,12 +128,11 @@ G4LevelReader::MakeLevelManager(G4int Z, G4int A, const G4String& filename) // read line by line G4bool end = false; G4bool next = true; - G4int nline = 0; + G4int nline = -1; fCurrEnergy = DBL_MAX; do { - - fNorm3 = 0.0; - + fPol = " "; + ++nline; G4bool isOK = (ReadDataItem(infile,fEnergy) && ReadDataItem(infile,fTrEnergy) && ReadDataItem(infile,fProb) && @@ -162,9 +153,7 @@ G4LevelReader::MakeLevelManager(G4int Z, G4int A, const G4String& filename) end = true; next = false; } - if(!isOK && fVerbose > 1) { - G4cout << "Line #" << nline << " in file <" << filename - << " is corrupted Z= " << Z << " A= " << A << G4endl; + if(fVerbose > 1) { G4cout << "#Line " << nline << " " << fEnergy << " " << fTrEnergy << " " << fProb << " " << fPol << " " << fTime << " " << fSpin << " " << fAlpha << G4endl; @@ -174,69 +163,75 @@ G4LevelReader::MakeLevelManager(G4int Z, G4int A, const G4String& filename) } // end of nuclear level data if(end || fEnergy > fCurrEnergy) { - size_t nn = vTransEnergy.size(); - if(fVerbose > 1) { - G4cout << "Reader: new level E= " << fCurrEnergy - << " Ntransitions= " << nn << " fNorm1= " << fNorm1 - << " fNorm2= " << fNorm2 << G4endl; - } + size_t nn = vTrans.size(); if(nn > 0) { - if(fNorm1 > 0.0) { + if(fVerbose > 1) { + G4cout << "Reader: new level E= " << fEnergy + << " Ntransitions= " << nn << " fNorm1= " << fNorm1 + << " fNorm2= " << fNorm2 << G4endl; + } + if(fNorm1 > 0.0f) { --nn; - vTimeg.push_back((G4float)(fTime*fNorm2*fTimeFactor/fNorm1)); - fNorm1 = 1.0/fNorm1; - fNorm2 = 1.0/fNorm2; + fNorm1 = 1.0f/fNorm1; + vTimeg.push_back(((G4float)(fTime*fTimeFactor))*fNorm2*fNorm1); + fNorm2 = 1.0f/fNorm2; for(size_t i=0; i 0) { - G4cout << "Reader: new manager for Z= " << Z << " A= " << A - << " Nlevels= " << vEnergy.size() << " E[0]= " - << vEnergy[0]/CLHEP::MeV << " MeV Emax= " - << man->MaxLevelEnergy()/CLHEP::MeV << " MeV " - << " " << fVerbose - << G4endl; + G4LevelManager* man = nullptr; + if(vEnergy.size() >= 2) { + man = new G4LevelManager(vEnergy,vTime,vTimeg,vSpin,vLevel); + if(fVerbose > 0) { + G4cout << "=== Reader: new manager for Z= " << Z << " A= " << A + << " Nlevels= " << vEnergy.size() << " E[0]= " + << vEnergy[0]/CLHEP::MeV << " MeV Emax= " + << man->MaxLevelEnergy()/CLHEP::MeV << " MeV " + << " S: " << vEnergy.size() << " " << vTime.size() + << " " << vTimeg.size() << " " << vSpin.size() << " " << vLevel.size() + << G4endl; + } } return man; } @@ -311,7 +311,7 @@ G4bool G4LevelReader::ReadDataItem(std::istream& dataFile, G4double& x) G4bool okay = true; dataFile >> buffer; if(dataFile.fail()) { okay = false; } - else { x = strtod(buffer, nullptr); } + else { x = strtod(buffer, 0); } return okay; } 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 416105e033..53c68cb559 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4NucLevel.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4NucLevel.cc @@ -41,25 +41,37 @@ // ------------------------------------------------------------------- #include "G4NucLevel.hh" +#include "G4HadronicException.hh" -G4NucLevel::G4NucLevel(const std::vector& eTransition, - const std::vector& wLevelGamma, - const std::vector& wLevelGammaE, - const std::vector& wGamma, - const std::vector& vTrans, +G4NucLevel::G4NucLevel(const std::vector& idxTrans, + const std::vector& vTrans, + const std::vector& wLevelGamma, + const std::vector& wLevelGammaE, + const std::vector& wGamma, + const std::vector& vRatio, const std::vector*>& wShell) - :fFinalEnergy(eTransition),fGammaCumProbability(wLevelGamma), + :fFinalIndex(idxTrans),fTrans(vTrans),fGammaCumProbability(wLevelGamma), fGammaECumProbability(wLevelGammaE),fGammaProbability(wGamma), - fTrans(vTrans),fShellProbability(wShell) + fMpRatio(vRatio),fShellProbability(wShell) { - length = eTransition.size(); + length = fFinalIndex.size(); } G4NucLevel::~G4NucLevel() { - //G4cout << "G4NucLevel: length= " << length << " " - // << fGammaProbability.size() << G4endl; for(size_t i=0; i= " + << length << " (number of transitions)"; + G4Exception(sss,"had061",JustWarning,ed,""); + throw G4HadronicException(__FILE__, __LINE__,"FATAL Hadronic Exception"); +} +#endif diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc b/source/processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc index d3c7aac91c..7d4a5e7926 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc @@ -45,9 +45,9 @@ #include "G4Element.hh" #include "G4ElementTable.hh" -G4NuclearLevelData* G4NuclearLevelData::theInstance = 0; +G4NuclearLevelData* G4NuclearLevelData::theInstance = nullptr; -const G4int G4NuclearLevelData::AMIN[] = {0, +const G4int G4NuclearLevelData::AMIN[] = {1, 1,3,6,7,8,10,12,14,17,18, // Z= 1-10 21,22,23,26,27,28,32,32,36,36, // Z= 11-20 41,42,45,45,48,49,53,54,57,59, // Z= 21-30 @@ -59,7 +59,7 @@ const G4int G4NuclearLevelData::AMIN[] = {0, 181,180,187,189,196,196,206,206,212,214, // Z= 81-90 229,230,233,236,241,240,240,245,243,249, // Z= 91-100 251,251}; -const G4int G4NuclearLevelData::AMAX[] = {0, +const G4int G4NuclearLevelData::AMAX[] = {1, 3,8,9,12,13,16,21,22,27,32, // Z= 1-10 32,36,35,42,43,46,45,48,50,53, // Z= 11-20 56,58,60,64,64,68,68,76,73,78, // Z= 21-30 @@ -71,6 +71,242 @@ const G4int G4NuclearLevelData::AMAX[] = {0, 210,212,215,218,217,222,227,232,232,234, // Z= 81-90, 236,240,242,246,246,249,251,253,254,256, // Z= 91-100 251,254}; +const G4int G4NuclearLevelData::LEVELIDX[] = {0, + 0, 3, 9, 13, 19, 25, 32, 42, 51, 62, // Z= 1-10 + 77, 89, 104, 117, 134, 151, 170, 184, 201, 216, // Z= 11-20 + 234, 250, 267, 283, 303, 320, 340, 356, 379, 396, // Z= 21-30 + 416, 437, 460, 479, 500, 519, 544, 567, 594, 619, // Z= 31-40 + 648, 672, 699, 725, 752, 776, 805, 831, 864, 894, // Z= 41-50 + 928, 959, 994, 1025, 1060, 1092, 1123, 1152, 1183, 1210, // Z= 51-60 + 1239, 1264, 1295, 1318, 1345, 1372, 1403, 1432, 1461, 1492, // Z= 61-70 + 1520, 1550, 1581, 1613, 1644, 1674, 1711, 1742, 1779, 1809, // Z= 71-80 + 1846, 1876, 1909, 1938, 1968, 1990, 2017, 2039, 2066, 2087, // Z= 81-90 + 2108, 2116, 2127, 2137, 2148, 2154, 2164, 2176, 2185, 2197, // Z= 91-100 + 2205, 2206}; +// obtained from PhotonEvaporation3.2 +static const G4float LEVELMAX[2210] = {0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 5.366f, 4.63f, //1-10 + 2.255f, 2.691f,0.42908f, 27.494f, 17.495f, 7.371f,0.32004f, 0.0f, 2.32f, 17.076f, //11-20 + 8.895f, 9.2717f, 2.723f, 4.131f, 3.3537f, 10.679f, 16.57f, 15.108f, 11.306f, 0.74f, //21-30 + 4.142f, 0.0f, 15.3f, 11.05f, 13.39f,0.39727f, 5.772f, 2.6144f, 0.0f, 0.0f, //31-40 + 4.195f, 0.0f, 11.846f, 13.09f, 11.079f, 8.282f, 3.9449f, 6.555f, 3.073f, 6.936f, //41-50 + 11.193f, 7.584f, 10.411f, 6.6475f, 4.584f, 2.5722f, 6.873f, 1.8313f, 5.45f, 0.665f, //51-60 + 1.281f, 3.6164f, 4.635f, 18.43f, 11.989f, 11.533f, 4.4361f, 8.393f, 4.07f, 3.6913f, //61-70 + 0.885f, 3.904f, 0.931f, 2.235f, 0.0f, 0.722f, 4.4679f, 9.813f, 12.592f, 6.578f, //71-80 + 4.289f, 0.2336f, 9.1867f, 3.5125f, 4.166f, 2.1136f, 1.162f, 0.569f, 6.2542f, 9.596f, //81-90 + 15.15f, 13.332f, 12.479f, 5.9258f, 8.4394f, 3.9857f, 5.4129f, 3.8145f, 5.203f, 1.2424f, //91-100 + 2.12f, 0.67f, 0.66f, 0.55f, 0.4258f, 7.97f, 6.695f, 8.952f, 7.4088f, 5.9936f, //101-110 + 9.3731f, 5.1495f, 3.202f, 4.7304f, 0.657f, 1.02f, 5.677f, 8.3758f, 13.744f, 10.252f, //111-120 + 15.529f, 6.5874f, 6.705f, 4.931f, 6.0233f, 2.1682f, 3.692f, 1.437f, 1.084f, 0.0f, //121-130 + 1.831f, 0.0f, 0.77f, 1.12f, 2.104f, 8.379f, 8.0143f, 13.879f, 7.9356f, 7.9666f, //131-140 + 7.9201f, 6.2205f, 2.281f, 7.897f, 0.0f, 2.167f, 0.0f, 1.56f, 0.0f, 0.184f, //141-150 + 1.507f, 2.887f, 5.136f, 10.146f, 12.048f, 10.779f, 16.649f, 6.9861f, 7.2719f, 4.3036f, //151-160 + 6.0053f, 0.0f, 5.0094f, 0.904f, 0.89f, 0.94f, 3.257f, 0.0f, 0.952f, 5.0463f, //161-170 + 5.5484f, 8.3055f, 12.572f, 8.5798f, 17.009f, 4.836f, 4.3544f, 4.0871f, 2.451f, 3.0304f, //171-180 + 1.829f, 0.475f, 1.616f, 1.867f, 3.819f, 5.542f, 12.276f, 22.365f, 8.7912f, 21.662f, //181-190 + 5.5355f, 10.857f, 4.271f, 4.6339f, 4.2469f, 5.3515f, 4.3261f, 1.577f, 0.0f, 3.279f, //191-200 + 1.9179f, 5.0498f, 10.981f, 18.612f, 7.4724f, 9.7407f, 5.978f, 3.7142f, 2.5743f, 4.5691f, //201-210 + 1.9443f, 5.8424f, 2.177f, 2.1042f, 0.1714f, 3.045f, 3.842f, 4.3837f, 7.75f, 22.06f, //211-220 + 7.146f, 10.45f, 6.2237f, 12.188f, 4.9997f, 6.626f, 5.5034f, 9.5457f, 5.6802f, 6.8692f, //221-230 + 3.53f, 2.5631f, 2.2f, 6.148f, 6.2534f, 7.3549f, 9.1411f, 16.462f, 5.5415f, 10.31f, //231-240 + 6.6775f, 15.662f, 1.8478f, 6.184f, 4.2657f, 3.382f, 0.247f, 0.0f, 0.7749f, 3.744f, //241-250 + 3.0664f, 14.55f, 13.03f, 13.169f, 8.0051f, 9.977f, 8.8816f, 10.939f, 4.8821f, 9.0862f, //251-260 + 8.1317f, 6.4321f, 5.4631f, 4.2098f, 0.0f, 2.881f, 7.1595f, 13.631f, 15.258f, 13.282f, //261-270 + 9.1953f, 8.59f, 11.604f, 5.0389f, 4.0852f, 2.2979f, 2.1528f, 0.0f, 2.4756f, 0.114f, //271-280 + 0.0f, 0.2021f, 0.494f, 8.1625f, 10.022f, 17.378f, 10.7f, 17.958f, 9.2616f, 12.795f, //281-290 + 11.291f, 12.54f, 7.4333f, 5.6033f, 12.95f, 4.6797f, 0.503f, 4.6814f, 1.027f, 1.175f, //291-300 + 0.0f, 1.141f, 6.2931f, 10.724f, 8.2774f, 19.636f, 12.066f, 11.159f, 4.9981f, 10.559f, //301-310 + 7.4078f, 4.7103f, 9.8311f, 1.3507f, 9.235f, 2.3782f, 1.5f, 0.0f, 0.188f, 0.153f, //311-320 + 6.9944f, 12.65f, 7.3819f, 12.593f, 15.062f, 10.243f, 11.964f, 8.323f, 12.813f, 4.9852f, //321-330 + 17.956f, 0.861f, 5.474f, 2.2231f, 4.6284f, 2.2919f, 1.407f, 0.387f, 1.389f, 4.1151f, //331-340 + 10.507f, 14.882f, 18.6f, 11.292f, 8.6251f, 9.5531f, 8.1224f, 4.8042f, 2.3097f, 4.1671f, //341-350 + 1.561f, 3.2712f, 0.642f, 0.0f, 1.8165f, 6.4574f, 4.4831f, 22.459f, 8.3457f, 42.007f, //351-360 + 22.24f, 22.997f, 7.82f, 10.596f, 4.461f, 8.24f, 4.0111f, 6.5798f, 2.155f, 5.7752f, //361-370 + 2.7f, 3.3612f, 1.2734f, 3.593f, 0.0f, 1.763f, 0.0f, 2.42f, 2.398f, 22.747f, //371-380 + 31.964f, 8.1327f, 9.4062f, 10.884f, 9.8643f, 4.7634f, 8.4843f, 5.0772f, 3.4636f, 0.9563f, //381-390 + 3.828f, 1.9801f, 5.3307f, 2.5968f, 2.386f, 3.3862f, 33.899f, 32.617f, 42.521f, 9.774f, //391-400 + 24.869f, 19.887f, 7.6933f, 4.684f, 18.016f, 2.378f, 6.1158f, 2.377f, 4.7703f, 2.0089f, //401-410 + 5.628f, 5.022f, 2.9744f, 4.6053f, 3.106f, 2.903f, 6.8423f, 14.465f, 5.6291f, 15.981f, //411-420 + 5.1092f, 10.083f, 7.7252f, 10.257f, 2.8864f, 4.1652f,0.74133f, 2.9895f, 1.0857f, 4.1479f, //421-430 + 2.6024f, 3.9459f, 3.5539f, 3.3348f, 3.38f, 1.6216f, 2.285f, 0.0f, 9.2999f, 8.1524f, //431-440 + 18.08f, 4.848f, 22.959f, 9.1823f, 13.173f, 7.4159f, 8.8679f, 2.3614f, 8.3611f, 6.5056f, //441-450 + 6.0652f, 6.0714f, 5.0782f, 4.2777f, 6.1553f, 4.4705f, 4.402f, 1.9415f, 1.6704f, 9.7929f, //451-460 + 7.7913f, 8.4997f, 18.181f, 8.9417f, 9.6844f, 6.088f, 7.8614f, 1.129f, 9.399f, 1.0645f, //461-470 + 4.4563f, 2.024f, 1.9648f, 1.8731f, 3.5627f, 1.092f, 4.8418f, 1.1983f, 21.201f, 13.363f, //471-480 + 20.245f, 6.0355f, 20.798f, 10.468f, 13.202f, 10.243f, 5.4325f, 7.4197f, 5.7838f, 3.6768f, //481-490 + 7.8185f, 3.2227f, 5.6886f, 4.9884f, 6.6046f, 5.1648f, 3.302f, 0.0f, 0.0f, 21.412f, //491-500 + 14.959f, 18.968f, 25.968f, 7.6143f, 13.682f, 9.415f, 11.344f, 6.0869f, 8.8115f, 4.4501f, //501-510 + 3.7987f, 2.2433f, 5.635f, 2.7416f, 5.3906f, 3.814f, 3.9871f, 3.1541f, 23.62f, 23.237f, //511-520 + 30.936f, 19.135f, 14.735f, 17.354f, 17.296f, 11.822f, 11.484f, 5.7594f, 6.0117f, 6.3734f, //521-530 + 7.6532f, 4.7906f, 10.116f, 5.8215f, 7.9695f, 4.7073f, 5.7301f, 4.4529f, 5.0788f, 3.1999f, //531-540 + 2.52f, 0.1955f, 0.5541f, 21.612f, 32.365f, 2.0191f, 18.376f, 9.7229f, 15.984f, 13.176f, //541-550 + 10.027f, 6.0137f, 9.342f, 7.3827f, 7.1071f, 8.651f, 3.3085f, 5.905f, 7.3913f, 3.8813f, //551-560 + 6.2389f, 4.7881f, 6.7256f, 3.9442f, 0.835f, 1.1346f, 14.23f, 13.943f, 17.764f, 8.1749f, //561-570 + 21.818f, 24.46f, 18.674f, 19.803f, 15.08f, 7.5549f, 10.874f, 7.0323f, 12.026f, 7.9844f, //571-580 + 5.8279f, 5.742f, 7.363f, 6.7074f, 6.0637f, 6.176f, 7.5265f, 6.3059f, 3.6224f, 2.3208f, //581-590 + 3.3456f, 1.3629f, 0.126f, 0.787f, 5.702f, 12.46f, 17.67f, 18.897f, 19.47f, 17.8f, //591-600 + 11.099f, 12.415f, 7.0166f, 9.6184f, 11.991f, 4.8351f, 6.8961f, 4.0479f, 4.314f, 2.9699f, //601-610 + 5.8102f, 1.9836f, 3.5226f, 1.897f, 3.3895f, 1.7f, 2.6959f, 1.6896f, 3.789f, 7.7086f, //611-620 + 16.12f, 23.223f, 36.877f, 11.141f, 20.532f, 10.092f, 11.2f, 9.6011f, 13.11f, 12.773f, //621-630 + 9.7222f, 7.2941f, 8.9806f, 6.5618f, 6.8213f, 7.2959f, 6.5436f, 6.567f, 7.6149f, 6.5062f, //631-640 + 7.4517f, 4.028f, 4.2239f, 0.0f, 0.607f, 0.0f, 0.5216f, 1.18f, 1.723f, 9.093f, //641-650 + 15.145f, 20.786f, 18.374f, 9.7372f, 7.2726f, 3.0718f, 10.137f, 3.7969f, 10.955f, 6.496f, //651-660 + 8.6952f, 1.6147f, 2.2475f, 0.0f, 2.3363f, 0.7036f, 3.3966f, 2.2864f, 3.6071f, 0.5143f, //661-670 + 1.0456f, 4.2764f, 5.5996f, 12.766f, 11.838f, 14.058f, 7.5901f, 14.486f, 10.749f, 11.215f, //671-680 + 9.67f, 11.588f, 10.509f, 9.8824f, 5.5025f, 4.6101f, 8.118f, 8.1137f, 5.031f, 6.2005f, //681-690 + 6.308f, 7.2832f, 6.0757f, 7.66f, 5.057f, 5.3475f, 1.4436f, 2.5319f, 1.524f, 1.599f, //691-700 + 4.9129f, 20.291f, 11.246f, 20.862f, 7.8331f, 13.258f, 9.1864f, 14.461f, 10.047f, 8.3451f, //701-710 + 3.1294f, 4.1779f, 4.3581f, 4.231f,0.35986f, 4.069f, 1.0173f, 2.7664f, 2.3395f, 4.3206f, //711-720 + 2.359f, 4.2009f, 3.6771f, 3.9519f, 3.4808f, 6.2392f, 6.3879f, 9.63f, 11.311f, 11.95f, //721-730 + 18.321f, 12.161f, 11.601f, 17.292f, 17.237f, 19.254f, 20.198f, 9.8262f, 12.222f, 5.127f, //731-740 + 5.357f, 3.6412f, 4.4457f, 3.7652f, 5.1544f, 2.7331f, 8.1598f, 7.5439f, 7.7493f, 3.4822f, //741-750 + 4.3195f, 9.744f, 6.9245f, 10.426f, 13.876f, 5.56f, 9.2422f, 9.4964f, 10.282f, 14.519f, //751-760 + 17.234f, 15.978f, 7.9989f, 4.4759f, 4.7022f, 6.671f, 3.8021f, 2.2865f, 3.3456f, 1.7662f, //761-770 + 4.2482f, 2.7694f, 4.006f, 2.0203f, 2.2801f, 7.6629f, 7.7002f, 10.418f, 7.04f, 7.523f, //771-780 + 10.863f, 4.5178f, 16.108f, 6.4882f, 15.414f, 17.357f, 12.707f, 16.909f, 5.895f, 10.676f, //781-790 + 6.8279f, 4.958f, 4.4841f, 3.831f, 5.2219f, 4.5176f, 5.2557f, 4.0712f, 7.8188f, 3.886f, //791-800 + 3.3024f, 0.0f, 3.4705f, 0.135f, 4.86f, 0.0f, 6.9485f, 4.4757f, 7.7702f, 8.699f, //801-810 + 10.706f, 6.1075f, 8.2579f, 7.159f, 12.619f, 6.7608f, 8.7181f, 4.3106f, 5.4145f, 2.6661f, //811-820 + 2.3527f, 1.8189f,0.78316f, 1.8858f, 3.239f, 2.672f, 0.3239f,0.72042f, 0.326f, 0.8058f, //821-830 + 2.4275f, 7.0998f, 9.3882f, 7.1789f, 10.514f, 11.878f, 18.243f, 10.851f, 15.863f, 11.852f, //831-840 + 20.979f, 11.133f, 14.206f, 9.4072f, 9.3942f, 4.2015f, 4.6052f, 3.8328f, 4.9689f, 4.5389f, //841-850 + 4.367f, 3.9881f, 5.5227f, 3.3902f, 3.1702f, 2.9102f, 3.6636f, 3.6065f, 3.151f, 3.2399f, //851-860 + 1.429f, 1.94f, 2.13f, 6.0742f, 9.0586f, 6.3034f, 6.1527f, 15.283f, 5.4832f, 6.989f, //861-870 + 8.7931f, 6.3857f, 12.745f, 13.503f, 8.328f, 11.96f, 5.485f, 4.5831f, 1.4511f, 4.1875f, //871-880 + 0.2f, 4.0259f, 0.0f, 3.89f, 0.0f, 2.7235f,0.24268f, 2.8633f,0.68823f, 3.5895f, //881-890 + 1.1729f, 4.5789f, 5.3908f, 0.1717f, 1.969f, 1.7846f, 9.998f, 10.288f, 19.932f, 6.0447f, //891-900 + 25.56f, 24.742f, 11.516f, 17.813f, 12.965f, 18.22f, 17.871f, 9.0696f, 9.3219f, 4.0436f, //901-910 + 7.01f, 3.1033f, 8.993f, 3.228f, 4.2838f, 3.306f, 8.4335f, 2.6235f, 4.9902f, 3.8995f, //911-920 + 4.898f, 3.9925f, 5.2628f, 6.6536f, 7.2441f, 2.0046f, 2.5089f, 3.9738f, 6.7841f, 14.217f, //921-930 + 7.2145f, 25.458f, 27.548f, 23.013f, 18.439f, 21.104f, 16.268f, 10.306f, 4.2456f, 8.1846f, //931-940 + 2.9184f, 6.1139f, 2.8847f, 3.9728f,0.92057f, 7.3097f, 1.0596f, 5.3651f, 0.1279f, 5.3543f, //941-950 + 0.833f, 3.2807f, 2.9831f, 3.5687f, 5.1092f, 6.9509f, 5.324f, 3.263f, 0.15f, 3.127f, //951-960 + 0.721f, 10.546f, 13.752f, 20.637f, 9.9578f, 28.646f, 8.7643f, 32.926f, 14.783f, 23.721f, //961-970 + 10.426f, 11.851f, 9.6987f, 6.0391f, 8.5832f, 6.9141f, 8.0304f, 5.7514f, 3.5642f, 7.9153f, //971-980 + 6.2876f, 7.724f, 6.0824f, 7.6365f, 5.1722f, 4.8903f, 6.1635f, 7.7224f, 6.6692f, 5.16f, //981-990 + 3.6273f, 2.7603f, 2.2105f, 4.6208f, 7.075f, 13.017f, 8.7122f, 31.621f, 8.576f, 19.449f, //991-1000 + 11.403f, 21.128f, 2.8059f, 11.823f, 6.3618f, 11.143f, 8.3232f, 8.9855f, 5.5555f, 3.8679f, //1001-1010 + 1.1022f, 3.3503f, 4.1498f, 3.408f, 1.079f, 2.3522f,0.27786f, 4.0473f, 1.1065f, 5.8492f, //1011-1020 + 4.0745f, 3.8528f, 0.0f, 3.3323f, 1.8897f, 0.0f, 4.4691f, 13.218f, 34.591f, 11.183f, //1021-1030 + 23.483f, 24.255f, 15.399f, 20.542f, 12.15f, 13.651f, 13.473f, 9.4266f, 16.53f, 37.618f, //1031-1040 + 8.7448f, 9.523f, 5.5734f, 3.8291f, 6.9713f, 3.1859f, 4.1884f, 2.1237f, 3.4923f, 3.1699f, //1041-1050 + 6.6241f, 5.1702f, 5.814f, 5.0965f, 5.5036f, 3.3657f, 4.5112f, 1.9627f, 2.3027f, 6.1544f, //1051-1060 + 0.0f, 10.381f, 14.396f, 0.0f, 4.891f, 7.126f, 12.184f, 7.873f, 11.233f, 6.127f, //1061-1070 + 11.31f, 8.687f, 5.8654f, 4.9467f, 8.0995f, 4.0405f, 5.7351f, 5.6965f, 2.8342f, 2.2537f, //1071-1080 + 1.6329f, 0.0f, 5.4942f, 2.5084f, 4.2277f, 2.9303f, 4.3457f, 4.0013f, 3.1181f, 1.426f, //1081-1090 + 1.5108f, 6.446f, 19.082f, 20.601f, 9.0649f, 10.75f, 13.551f, 25.371f, 11.179f, 16.895f, //1091-1100 + 13.477f, 18.217f, 10.388f, 8.0228f, 6.4409f, 8.3104f, 8.052f, 5.2309f, 5.8502f, 4.1374f, //1101-1110 + 4.7644f, 6.4343f, 3.9508f, 5.7653f, 4.9317f, 5.2804f, 3.9443f, 5.0276f, 4.623f, 4.0718f, //1111-1120 + 2.3652f, 2.867f, 7.718f, 0.0f, 17.663f, 14.185f, 14.391f, 6.4758f, 21.268f, 9.255f, //1121-1130 + 16.478f, 9.7134f, 17.252f, 5.2166f, 6.2833f, 7.179f, 7.1596f, 5.479f, 5.9853f, 1.7885f, //1131-1140 + 8.5821f, 3.0101f, 2.7443f, 1.5393f, 4.35f, 1.2402f, 4.1525f, 2.1657f, 3.677f, 2.226f, //1141-1150 + 0.8939f, 3.6427f, 5.8331f, 11.735f, 15.066f, 16.603f, 9.8191f, 17.839f, 18.905f, 25.065f, //1151-1160 + 28.556f, 38.188f, 22.007f, 17.039f, 8.0346f, 8.6258f, 7.6612f, 8.8731f, 3.7014f, 5.6601f, //1161-1170 + 2.5231f, 6.8799f, 2.8251f, 3.9736f, 4.5905f, 4.69f, 3.47f, 5.3112f, 3.634f, 4.3673f, //1171-1180 + 2.5818f, 2.9249f, 12.279f, 17.151f, 8.429f, 9.552f, 7.858f, 12.411f, 12.757f, 15.734f, //1181-1190 + 16.356f, 13.656f, 10.745f, 7.8242f, 7.434f, 4.617f, 4.8626f, 4.718f, 8.8805f, 1.1757f, //1191-1200 + 1.3974f,0.13352f, 1.6088f,0.50295f, 2.2496f,0.76546f, 3.1859f, 0.897f, 2.5919f, 2.6538f, //1201-1210 + 15.765f, 13.081f, 16.107f, 21.847f, 19.906f, 21.007f, 21.889f, 27.517f, 23.972f, 21.439f, //1211-1220 + 6.508f, 26.69f, 9.3653f, 12.159f, 11.788f, 8.946f, 6.081f, 7.364f, 5.2072f, 3.8609f, //1221-1230 + 1.1665f, 3.2796f, 3.2208f, 4.001f, 2.9363f, 3.3993f, 0.0f, 2.737f, 6.537f, 4.9648f, //1231-1240 + 9.8777f, 7.4389f, 6.8243f, 12.955f, 6.2838f, 6.8641f, 10.592f, 5.0213f, 7.3537f, 7.0303f, //1241-1250 + 10.535f, 8.5958f, 7.2168f, 6.8764f, 7.9774f, 0.8006f, 2.1223f, 0.3693f, 2.434f, 0.6599f, //1251-1260 + 2.1725f, 1.69f, 2.7706f, 0.122f, 0.0f, 4.245f, 7.0015f, 2.594f, 12.599f, 19.618f, //1261-1270 + 9.54f, 13.31f, 11.115f, 8.1008f, 11.238f, 23.37f, 12.248f, 12.739f, 15.283f, 6.1768f, //1271-1280 + 3.4678f, 11.525f, 5.802f, 9.7369f, 4.574f, 4.7496f, 3.4675f, 6.4652f, 1.3621f, 3.335f, //1281-1290 + 1.6945f, 2.3349f, 3.142f, 2.2584f, 4.645f, 6.6324f, 7.2656f, 7.3347f, 9.0354f, 16.899f, //1291-1300 + 26.393f, 18.711f, 11.234f, 3.4709f, 21.43f, 18.293f, 7.6842f, 6.1919f, 5.7769f, 2.5922f, //1301-1310 + 4.9286f, 0.952f, 2.1987f,0.51329f, 1.4631f, 0.0f, 1.0518f, 7.443f, 10.498f, 6.4229f, //1311-1320 + 13.32f, 14.58f, 14.532f, 22.262f, 19.34f, 17.885f, 22.1f, 22.449f, 35.996f, 23.397f, //1321-1330 + 24.919f, 18.722f, 7.0352f, 7.3531f, 6.2406f, 6.5826f, 3.842f, 3.9233f, 1.5209f, 3.55f, //1331-1340 + 1.49f, 2.8571f, 0.0f, 2.3769f, 3.0429f, 6.712f, 6.7863f, 10.126f, 5.3799f, 14.119f, //1341-1350 + 2.1568f, 14.344f, 14.091f, 19.595f, 21.805f, 35.544f, 18.003f, 7.447f, 7.45f, 17.07f, //1351-1360 + 15.907f, 6.5819f, 0.3884f, 3.794f,0.76797f, 1.857f,0.44211f, 0.373f, 0.0f, 0.0f, //1361-1370 + 1.0155f, 2.1661f, 0.0f, 3.2412f, 8.4975f, 4.6021f, 2.7442f, 6.095f, 3.6506f, 14.235f, //1371-1380 + 14.233f, 16.291f, 21.825f, 34.66f, 21.565f, 22.435f, 18.45f, 30.241f, 12.72f, 7.454f, //1381-1390 + 13.897f, 7.2306f, 5.799f, 7.276f, 5.0034f, 4.2123f, 3.9791f, 3.119f, 0.0978f, 1.315f, //1391-1400 + 0.0f, 0.235f, 4.0846f, 0.0f, 0.318f, 4.6911f, 2.6816f, 0.0f, 8.6613f, 3.7894f, //1401-1410 + 5.0987f, 10.753f, 9.9587f, 12.939f, 18.466f, 5.435f, 8.5161f, 10.248f, 15.876f, 13.422f, //1411-1420 + 5.331f, 5.77f, 5.949f, 5.882f, 4.3429f, 0.581f, 4.1095f, 1.1901f, 1.919f,0.63041f, //1421-1430 + 1.5782f, 0.33f, 0.0f, 0.0f, 5.008f, 9.5907f, 3.2427f, 9.5086f, 10.287f, 14.945f, //1431-1440 + 8.4096f, 16.03f, 17.086f, 16.583f, 19.505f, 24.115f, 17.888f, 22.788f, 26.143f, 27.581f, //1441-1450 + 13.865f, 11.549f, 1.6218f, 3.498f, 3.7561f, 3.921f, 4.549f, 7.5314f, 2.1041f, 1.3967f, //1451-1460 + 3.3115f, 0.0f, 3.5235f, 0.0f, 0.0f, 0.6713f, 6.9085f, 2.555f, 9.1688f, 6.1412f, //1461-1470 + 0.6142f, 4.773f, 13.242f, 10.357f, 8.1322f, 8.635f, 11.582f, 15.865f, 14.882f, 5.8891f, //1471-1480 + 10.051f, 9.3388f, 2.799f, 4.951f, 5.5983f, 3.8641f, 1.4006f,0.79742f, 1.2129f, 0.7729f, //1481-1490 + 1.3677f, 2.448f, 2.7445f, 2.5782f, 7.6099f, 2.2813f, 10.232f, 6.9884f, 13.96f, 11.971f, //1491-1500 + 15.403f, 15.709f, 12.392f, 6.081f, 12.931f, 11.848f, 12.716f, 16.767f, 16.846f, 10.961f, //1501-1510 + 5.0848f, 4.8797f, 3.863f, 2.018f, 4.61f, 4.425f, 4.729f, 2.9788f, 2.77f, 3.9984f, //1511-1520 + 0.0f, 2.6329f, 2.4313f, 4.528f, 5.2867f, 8.5435f, 0.0f, 6.4758f, 5.1397f, 15.943f, //1521-1530 + 9.3446f, 18.436f, 19.112f, 16.462f, 4.6733f, 16.821f, 6.293f, 6.9628f, 8.3751f, 10.907f, //1531-1540 + 0.602f, 1.8369f, 1.8828f, 3.524f, 3.0213f, 2.4978f, 0.3908f, 1.5862f, 0.9816f, 2.671f, //1541-1550 + 0.0f, 5.0193f, 6.4994f, 9.1066f, 7.0098f, 7.7475f, 11.599f, 14.178f, 11.972f, 11.219f, //1551-1560 + 9.9276f, 16.006f, 11.941f, 19.176f, 15.295f, 19.1f, 14.368f, 12.644f, 15.62f, 16.46f, //1561-1570 + 26.178f, 4.8635f, 5.0647f, 5.3886f, 4.2047f, 5.0575f, 3.0969f, 4.7339f, 1.6048f, 1.2722f, //1571-1580 + 1.9116f, 0.0f, 6.764f, 0.0f, 7.2134f, 3.3507f, 6.1682f, 3.9721f, 14.483f, 5.177f, //1581-1590 + 11.993f, 4.9183f, 9.817f, 4.7857f, 4.7272f, 7.5245f, 5.6101f, 6.562f, 6.4373f, 5.8217f, //1591-1600 + 5.9537f, 4.1868f, 6.4177f, 6.0629f, 1.7843f, 0.6172f, 1.2585f, 0.0f, 0.0f, 0.0f, //1601-1610 + 0.0f, 0.175f, 4.8611f, 0.0f, 0.45f, 7.737f, 9.2967f, 7.4704f, 10.076f, 9.662f, //1611-1620 + 11.128f, 7.224f, 11.37f, 9.7766f, 9.0844f, 3.8879f, 4.6062f, 4.0387f, 6.9217f, 7.2047f, //1621-1630 + 13.394f, 6.7925f, 7.632f, 8.655f, 5.6669f, 3.6661f, 6.7601f, 3.2769f, 6.417f, 3.3438f, //1631-1640 + 1.5382f, 0.0f, 2.381f, 4.4008f, 0.0f, 0.0f, 0.0f, 0.0f, 0.175f, 0.092f, //1641-1650 + 0.3492f, 4.7279f, 0.3701f, 7.3785f, 0.9063f, 7.566f, 6.042f, 12.733f, 7.8227f, 10.824f, //1651-1660 + 5.9987f, 5.408f, 4.8181f, 7.5907f, 5.858f, 2.3926f, 2.9915f, 4.799f,0.99784f, 2.1996f, //1661-1670 +0.75766f, 0.4824f, 0.3197f, 2.1895f, 0.0f, 2.8393f, 2.6094f, 3.9108f, 3.9845f, 5.1584f, //1671-1680 + 3.625f, 6.7068f, 6.2602f, 8.6901f, 7.541f, 10.545f, 7.0075f, 6.683f, 5.612f, 13.518f, //1681-1690 + 11.02f, 11.147f, 12.741f, 13.482f, 4.1802f, 10.671f, 7.3585f, 7.7774f, 1.2104f, 4.5075f, //1691-1700 + 1.4723f, 5.1304f, 2.64f, 4.1138f, 1.4595f, 2.541f, 1.4647f, 0.0f, 0.0f, 3.1985f, //1701-1710 + 0.072f, 3.4415f, 2.0874f, 3.6317f, 0.1684f, 6.254f, 0.0f, 6.076f, 7.14f, 9.1252f, //1711-1720 + 9.2007f, 6.8299f, 5.0893f, 7.0521f, 3.8694f, 6.987f, 3.1382f, 5.0544f, 4.7856f, 5.497f, //1721-1730 + 0.9235f, 2.3332f, 1.181f, 2.3121f, 6.1981f, 2.404f,0.54259f,0.94375f,0.52237f, 0.0f, //1731-1740 + 0.1164f, 2.0332f, 0.545f, 2.6366f, 3.5166f, 4.218f, 4.085f, 3.449f, 4.231f, 6.8786f, //1741-1750 + 4.6838f, 6.6012f, 8.1748f, 7.434f, 7.0384f, 7.3969f, 5.2578f, 7.7332f, 4.9136f, 7.4078f, //1751-1760 + 5.5103f, 6.5531f, 2.8648f, 4.2143f, 6.1489f, 4.9507f,0.001642f, 4.5298f, 2.5926f, 3.4243f, //1761-1770 +0.74782f, 3.017f, 0.424f, 3.2266f, 1.4555f, 1.7885f, 0.0f, 3.153f, 1.8274f, 2.1985f, //1771-1780 + 0.0f, 5.4301f, 1.7992f, 6.1583f, 0.0f, 7.1722f, 0.0f, 5.7177f, 4.5791f, 7.8795f, //1781-1790 + 6.3223f, 7.038f, 3.954f, 7.22f, 5.3252f, 9.5804f, 5.3789f, 10.935f, 4.6355f, 4.0632f, //1791-1800 + 2.1848f, 2.792f, 1.673f, 1.242f, 1.5604f, 1.7705f,0.46871f, 1.76f, 2.2786f, 0.0f, //1801-1810 + 0.0f, 2.523f, 2.8744f, 1.7955f, 5.5345f, 5.2669f, 5.8034f, 2.9527f, 5.1081f, 4.7019f, //1811-1820 + 7.3176f, 4.7027f, 8.873f, 4.8702f, 7.9412f, 6.8197f, 10.031f, 8.7932f, 11.427f, 11.406f, //1821-1830 + 18.664f, 11.574f, 8.6523f, 4.0612f, 5.2842f, 3.0684f, 6.1621f, 1.1878f, 4.922f, 1.4883f, //1831-1840 + 3.6893f, 2.5795f, 6.2766f, 0.0f, 1.2969f, 3.657f, 0.52f, 3.915f, 0.3198f, 4.6724f, //1841-1850 + 0.9716f, 5.608f, 0.8768f, 6.3331f, 1.8545f, 6.9284f, 7.4519f, 13.772f, 6.815f, 8.8743f, //1851-1860 + 3.6298f, 3.9657f, 4.0664f, 2.6432f, 2.5481f, 2.7474f, 2.0448f, 6.4188f, 6.6548f, 8.4086f, //1861-1870 + 2.6431f, 4.418f, 1.728f, 0.8683f, 0.2536f, 2.138f, 0.0f, 2.8122f, 0.0f, 1.6634f, //1871-1880 + 0.278f, 3.3139f, 1.723f, 4.1665f, 3.1024f, 5.3303f, 5.142f, 9.6693f, 7.932f, 12.37f, //1881-1890 + 7.538f, 13.516f, 10.406f, 12.699f, 10.66f, 8.6305f, 8.6548f, 9.2054f, 5.5718f, 8.1261f, //1891-1900 + 6.8658f, 8.7056f, 7.306f, 13.675f, 4.142f, 4.133f, 5.5574f, 0.8049f, 1.063f, 0.0f, //1901-1910 + 2.973f, 0.273f, 1.7366f, 0.0f, 3.401f, 0.396f, 2.9226f, 5.4847f, 4.0248f, 3.9636f, //1911-1920 + 4.2969f, 3.5777f, 5.2835f, 7.2753f, 5.8247f, 3.809f, 6.7188f, 4.3053f, 4.5599f, 5.6266f, //1921-1930 + 7.632f, 5.996f, 6.191f, 0.4945f, 0.7589f,0.88804f, 1.9598f, 0.194f, 3.0402f, 1.671f, //1931-1940 + 2.2946f, 1.1297f, 3.3265f, 2.0207f, 3.6467f, 1.6862f, 5.1133f, 3.931f, 5.2269f, 3.7108f, //1941-1950 + 5.5289f, 4.3583f, 5.9111f, 4.6288f, 9.7247f, 4.3463f, 9.6437f, 4.3542f, 10.084f, 4.911f, //1951-1960 + 2.922f, 1.3282f, 3.2624f, 2.1595f, 2.2338f, 0.2647f, 2.2868f, 0.1579f, 0.324f, 0.0f, //1961-1970 + 0.573f, 0.344f, 2.0774f, 0.3917f, 2.7011f, 2.3462f, 4.546f, 2.9023f, 2.1495f, 4.3669f, //1971-1980 + 4.695f, 9.0673f, 10.016f, 4.7716f, 2.926f, 0.7284f, 0.517f, 0.4793f, 0.8919f, 0.0f, //1981-1990 + 0.0f, 2.3838f, 0.0f, 2.7762f, 0.0f, 2.7755f, 4.7208f, 4.5832f, 4.0594f, 4.1298f, //1991-2000 + 3.013f, 5.9306f, 7.3077f, 12.026f, 11.232f, 10.612f, 8.8319f, 5.051f, 2.2871f, 4.2997f, //2001-2010 + 0.6189f, 5.1678f, 0.7328f, 3.9615f, 0.0f, 3.6961f, 0.531f, 1.8852f, 0.827f, 0.0f, //2011-2020 + 5.292f, 8.23f, 8.5334f, 8.0948f, 8.658f, 3.4623f, 1.973f, 3.0023f, 3.0451f, 0.778f, //2021-2030 + 0.5111f, 0.8242f, 0.0f, 1.6954f, 0.0f, 1.7498f, 0.0f,0.95506f, 2.0101f, 0.0f, //2031-2040 + 2.1474f, 0.0f, 4.257f, 1.1981f, 3.9294f, 1.77f, 7.87f, 6.2832f, 6.2661f, 5.0f, //2041-2050 + 6.6788f, 4.3458f, 6.2555f, 1.3758f, 3.2877f, 1.0289f, 2.3687f, 0.7241f, 2.382f, 1.4748f, //2051-2060 + 0.0f, 1.7205f, 2.4183f, 1.7739f, 1.05f, 0.1336f, 1.884f, 0.0918f, 2.438f, 0.322f, //2061-2070 + 2.013f, 2.5077f, 3.7208f, 3.4056f, 2.5144f, 0.0f, 0.1675f, 0.452f,0.25704f, 0.0f, //2071-2080 + 0.8747f,0.03307f, 0.3355f,0.63577f, 2.9997f, 0.4785f, 2.181f, 1.4213f, 3.6814f, 0.6738f, //2081-2090 + 2.104f, 2.322f, 4.892f, 2.4215f, 5.0979f, 1.7025f, 2.864f, 2.4944f, 3.0971f, 2.1663f, //2091-2100 + 3.2834f,0.77929f, 3.819f, 1.173f, 5.164f, 4.512f, 3.7751f, 0.8408f, 0.0f, 2.14f, //2101-2110 + 0.0f, 4.0515f,0.18673f,0.75575f,0.67811f, 3.243f, 1.2681f, 2.6598f, 3.174f, 4.807f, //2111-2120 + 4.0407f, 5.077f, 4.835f, 5.513f, 3.107f, 1.2761f, 1.2433f, 0.0f, 3.401f, 0.0f, //2121-2130 + 4.6146f,0.64676f, 1.1971f, 0.2998f, 0.0f, 0.6406f, 1.786f, 1.0006f, 4.2652f, 4.413f, //2131-2140 + 6.0963f, 1.3577f, 4.172f, 5.0342f, 6.123f, 0.766f, 1.1408f, 5.9809f, 2.2f, 0.5324f, //2141-2150 + 0.8789f, 1.1856f,0.29937f, 0.038f, 0.4202f, 0.288f, 0.0874f, 1.1059f, 1.1023f, 4.0332f, //2151-2160 + 0.5817f, 5.6807f, 4.7135f, 0.24f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, //2161-2170 + 0.4894f, 0.59f, 1.2275f, 0.471f, 0.9784f, 0.055f, 0.0f, 0.738f, 0.7373f, 3.315f, //2171-2180 + 1.6952f, 1.25f, 0.9698f, 0.417f, 0.2096f, 0.0f, 0.2532f, 0.0f, 0.0f, 0.0f, //2181-2190 + 0.3532f, 0.0f, 1.357f, 0.6f, 0.435f, 0.4692f, 0.669f, 0.0f,0.55843f, 0.0f, //2191-2200 + 0.398f,0.73365f, 0.2311f, 1.5602f, 3.1278f, 1.6997f, 2.8792f, 3.465f, 2.839f //2201-2209 +}; #ifdef G4MULTITHREADED G4Mutex G4NuclearLevelData::nuclearLevelDataMutex = G4MUTEX_INITIALIZER; @@ -87,19 +323,31 @@ G4NuclearLevelData* G4NuclearLevelData::GetInstance() G4NuclearLevelData::G4NuclearLevelData() { +#ifdef G4MULTITHREADED + G4MUTEXLOCK(&G4NuclearLevelData::nuclearLevelDataMutex); +#endif + fDeexPrecoParameters = new G4DeexPrecoParameters(); fLevelReader = new G4LevelReader(); for(G4int Z=0; ZGetParameters(); + OPTxs = param->GetDeexModelType(); + LevelDensity = param->GetLevelDensity(); } diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc index 5454c549e7..cd96a8857e 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VEvaporationChannel.cc 93357 2015-10-19 13:40:13Z gcosmo $ +// $Id: G4VEvaporationChannel.cc 96348 2016-04-08 14:33:41Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -37,7 +37,7 @@ #include "G4VEvaporationChannel.hh" G4VEvaporationChannel::G4VEvaporationChannel(const G4String &) - :OPTxs(3),useSICB(false),photonEvaporation(nullptr) + :OPTxs(3),useSICB(true),photonEvaporation(nullptr) {} G4VEvaporationChannel::~G4VEvaporationChannel() diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4GammaTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4GammaTransition.hh index 1650faef60..98ff0472d5 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4GammaTransition.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4GammaTransition.hh @@ -51,7 +51,7 @@ class G4GammaTransition { public: - G4GammaTransition(); + explicit G4GammaTransition(); virtual ~G4GammaTransition(); @@ -64,11 +64,10 @@ public: private: - G4GammaTransition(const G4GammaTransition &right); - - const G4GammaTransition& operator=(const G4GammaTransition &right); - G4bool operator==(const G4GammaTransition &right) const; - G4bool operator!=(const G4GammaTransition &right) const; + G4GammaTransition(const G4GammaTransition &right) = delete; + const G4GammaTransition& operator=(const G4GammaTransition &right) = delete; + G4bool operator==(const G4GammaTransition &right) const = delete; + G4bool operator!=(const G4GammaTransition &right) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NeutronRadCapture.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NeutronRadCapture.hh index 1db3ad5072..068b93560a 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NeutronRadCapture.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NeutronRadCapture.hh @@ -53,17 +53,19 @@ class G4NeutronRadCapture : public G4HadronicInteraction { public: - G4NeutronRadCapture(); + explicit G4NeutronRadCapture(); virtual ~G4NeutronRadCapture(); - G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, - G4Nucleus & targetNucleus); + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus) final; + + virtual void InitialiseModel() final; private: - G4NeutronRadCapture & operator=(const G4NeutronRadCapture &right); - G4NeutronRadCapture(const G4NeutronRadCapture&); + G4NeutronRadCapture & operator=(const G4NeutronRadCapture &right) = delete; + G4NeutronRadCapture(const G4NeutronRadCapture&) = delete; G4double lowestEnergyLimit; G4double minExcitation; 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 60a3344e20..880dd2ba5a 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 @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PhotonEvaporation.hh 94485 2015-11-19 08:32:53Z gcosmo $ +// $Id: G4PhotonEvaporation.hh 96744 2016-05-03 08:04:28Z gcosmo $ // // ------------------------------------------------------------------- // @@ -58,40 +58,41 @@ const G4int MAXDEPOINT = 10; const G4int MAXGRDATA = 300; -class G4E1Probability; class G4GammaTransition; class G4PhotonEvaporation : public G4VEvaporationChannel { public: - G4PhotonEvaporation(G4GammaTransition* ptr=0); + explicit G4PhotonEvaporation(G4GammaTransition* ptr=nullptr); virtual ~G4PhotonEvaporation(); + virtual void Initialise() final; + // one photon or e- emission - virtual G4Fragment* EmittedFragment(G4Fragment* theNucleus); + virtual G4Fragment* EmittedFragment(G4Fragment* theNucleus) final; // returns "false", emitted gamma and e- are added to the results virtual G4bool - BreakUpChain(G4FragmentVector* theResult, G4Fragment* theNucleus); + BreakUpChain(G4FragmentVector* theResult, G4Fragment* theNucleus) final; // emitted gamma and e- are added to the results - virtual G4FragmentVector* BreakUpFragment(G4Fragment* theNucleus); + virtual G4FragmentVector* BreakUpFragment(G4Fragment* theNucleus) final; // emitted gamma, e-, and residual fragment are added to the results - virtual G4FragmentVector* BreakUp(const G4Fragment& theNucleus); + virtual G4FragmentVector* BreakUp(const G4Fragment& theNucleus) final; // emitted gamma, e-, and residual fragment are added to the results - virtual G4FragmentVector* BreakItUp(const G4Fragment& theNucleus); + virtual G4FragmentVector* BreakItUp(const G4Fragment& theNucleus) final; // compute emission probability for both continum and discrete cases // must be called before any method above - virtual G4double GetEmissionProbability(G4Fragment* theNucleus); + virtual G4double GetEmissionProbability(G4Fragment* theNucleus) final; - virtual G4double GetFinalLevelEnergy(G4int Z, G4int A, G4double energy); + virtual G4double GetFinalLevelEnergy(G4int Z, G4int A, G4double energy) final; - virtual G4double GetUpperLevelEnergy(G4int Z, G4int A); + virtual G4double GetUpperLevelEnergy(G4int Z, G4int A) final; void SetGammaTransition(G4GammaTransition*); @@ -111,8 +112,8 @@ private: inline void InitialiseLevelManager(G4int Z, G4int A); - G4PhotonEvaporation(const G4PhotonEvaporation & right); - const G4PhotonEvaporation & operator = (const G4PhotonEvaporation & right); + G4PhotonEvaporation(const G4PhotonEvaporation & right) = delete; + const G4PhotonEvaporation & operator = (const G4PhotonEvaporation & right) = delete; G4NuclearLevelData* fNuclearLevelData; const G4LevelManager* fLevelManager; @@ -133,15 +134,18 @@ private: G4double fLevelEnergyMax; G4double fExcEnergy; - G4double fFermiEnergy; G4double fProbability; G4double fStep; G4double fTimeLimit; G4double fMaxLifeTime; + G4double LevelDensity; + G4double Tolerance; + G4bool fICM; G4bool fRDM; G4bool fSampleTime; + G4bool isInitialised; }; inline void G4PhotonEvaporation::SetVerboseLevel(G4int verbose) diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizationTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizationTransition.hh index e939650aaf..5e75e2d07f 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizationTransition.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizationTransition.hh @@ -60,7 +60,7 @@ class G4PolarizationTransition typedef std::vector< std::vector > POLAR; public: - G4PolarizationTransition(); + explicit G4PolarizationTransition(); ~G4PolarizationTransition(); // generic static functions @@ -86,11 +86,15 @@ class G4PolarizationTransition private: + G4PolarizationTransition(const G4PolarizationTransition &right) = delete; + const G4PolarizationTransition& operator=(const G4PolarizationTransition &right) = delete; + inline G4double LnFactorial(int k) const { return G4Pow::GetInstance()->logfactorial(k); } G4int fTwoJ1, fTwoJ2; G4int fLbar, fL; G4double fDelta; + G4double kEps; G4PolynomialPDF kPolyPDF; G4LegendrePolynomial fgLegendrePolys; }; diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizedGammaTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizedGammaTransition.hh index f43f7b558b..1334ead036 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizedGammaTransition.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PolarizedGammaTransition.hh @@ -52,7 +52,7 @@ class G4PolarizedGammaTransition : public G4GammaTransition { public: - G4PolarizedGammaTransition(); + explicit G4PolarizedGammaTransition(); virtual ~G4PolarizedGammaTransition(); @@ -65,11 +65,10 @@ public: private: - G4PolarizedGammaTransition(const G4PolarizedGammaTransition &right); - - const G4PolarizedGammaTransition& operator=(const G4PolarizedGammaTransition &right); - G4bool operator==(const G4PolarizedGammaTransition &right) const; - G4bool operator!=(const G4PolarizedGammaTransition &right) const; + G4PolarizedGammaTransition(const G4PolarizedGammaTransition &right) = delete; + const G4PolarizedGammaTransition& operator=(const G4PolarizedGammaTransition &right) = delete; + G4bool operator==(const G4PolarizedGammaTransition &right) const = delete; + G4bool operator!=(const G4PolarizedGammaTransition &right) const = delete; G4PolarizationTransition* fPolarization; }; diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaTransition.hh index bf3c71f751..df9aa1c5bf 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaTransition.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaTransition.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VGammaTransition.hh 88709 2015-03-06 15:33:12Z gcosmo $ +// $Id: G4VGammaTransition.hh 96634 2016-04-27 09:31:49Z gcosmo $ // // ------------------------------------------------------------------- // GEANT 4 class file @@ -54,9 +54,9 @@ class G4VGammaTransition { public: - G4VGammaTransition(); + explicit G4VGammaTransition() {}; - virtual ~G4VGammaTransition(); + virtual ~G4VGammaTransition() {}; virtual void SelectGamma() = 0; virtual G4double GetGammaEnergy() = 0; @@ -65,11 +65,10 @@ public: private: - G4VGammaTransition(const G4VGammaTransition &right); - - const G4VGammaTransition& operator=(const G4VGammaTransition &right); - G4bool operator==(const G4VGammaTransition &right) const; - G4bool operator!=(const G4VGammaTransition &right) const; + G4VGammaTransition(const G4VGammaTransition &right) = delete; + const G4VGammaTransition& operator=(const G4VGammaTransition &right) = delete; + G4bool operator==(const G4VGammaTransition &right) const = delete; + G4bool operator!=(const G4VGammaTransition &right) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/sources.cmake b/source/processes/hadronic/models/de_excitation/photon_evaporation/sources.cmake index 7386744d21..1e2da358ff 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 94217 2015-11-09 08:23:51Z gcosmo $ +# $Id: sources.cmake 96634 2016-04-27 09:31:49Z gcosmo $ # #------------------------------------------------------------------------------ @@ -80,7 +80,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_photon_evaporation G4PolarizedGammaTransition.cc G4PolarizationTransition.cc G4VGammaDeexcitation.cc - G4VGammaTransition.cc GRANULAR_DEPENDENCIES G4baryons G4bosons 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 83945aee86..71e6b81f3c 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 @@ -71,10 +71,13 @@ G4GammaTransition::SampleTransition(G4Fragment* nucleus, } G4double etrans = nucleus->GetExcitationEnergy() - newExcEnergy - bond_energy; - //G4cout << "G4GammaTransition::GenerateGamma - Etrans(MeV)= " + // G4cout << "G4GammaTransition::GenerateGamma - Etrans(MeV)= " // << etrans << " Eexnew= " << newExcEnergy // << " Ebond= " << bond_energy << G4endl; - if(etrans <= 0.0) { return result; } + if(etrans <= 0.0) { + etrans += bond_energy; + bond_energy = 0.0; + } // Do complete Lorentz computation G4LorentzVector lv = nucleus->GetMomentum(); @@ -88,8 +91,7 @@ G4GammaTransition::SampleTransition(G4Fragment* nucleus, if(isGamma) { part = G4Gamma::Gamma(); } else { part = G4Electron::Electron(); - G4int ne = nucleus->GetNumberOfElectrons() - 1; - if(ne < 0) { ne = 0; } + G4int ne = std::max(nucleus->GetNumberOfElectrons() - 1, 0); nucleus->SetNumberOfElectrons(ne); lv += G4LorentzVector(0.0,0.0,0.0, CLHEP::electron_mass_c2 - bond_energy); diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NeutronRadCapture.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NeutronRadCapture.cc index 18b2c15b34..8ab5b84fe6 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NeutronRadCapture.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NeutronRadCapture.cc @@ -53,18 +53,13 @@ G4NeutronRadCapture::G4NeutronRadCapture() : G4HadronicInteraction("nRadCapture"), - lab4mom(0.,0.,0.,0.) + photonEvaporation(nullptr),lab4mom(0.,0.,0.,0.) { - lowestEnergyLimit = 10*eV; - minExcitation = 1*keV; - SetMinEnergy( 0.0*GeV ); - SetMaxEnergy( 100.*TeV ); + lowestEnergyLimit = 10*CLHEP::eV; + minExcitation = 0.1*CLHEP::keV; + SetMinEnergy( 0.0*CLHEP::GeV ); + SetMaxEnergy( 100.*CLHEP::TeV ); - char* env = getenv("G4UsePhotonEvaporationOLD"); - if(!env) { photonEvaporation = new G4PhotonEvaporation(); } - else { photonEvaporation = new G4PhotonEvaporationOLD(); } - photonEvaporation->SetICM(true); - theTableOfIons = G4ParticleTable::GetParticleTable()->GetIonTable(); } @@ -73,6 +68,21 @@ G4NeutronRadCapture::~G4NeutronRadCapture() delete photonEvaporation; } +void G4NeutronRadCapture::InitialiseModel() +{ + if(photonEvaporation != nullptr) { return; } + G4DeexPrecoParameters* param = + G4NuclearLevelData::GetInstance()->GetParameters(); + minExcitation = param->GetMinExcitation(); + + char* env = getenv("G4UsePhotonEvaporationOLD"); + if(!env) { photonEvaporation = new G4PhotonEvaporation(); } + else { photonEvaporation = new G4PhotonEvaporationOLD(); } + + photonEvaporation->Initialise(); + photonEvaporation->SetICM(true); +} + G4HadFinalState* G4NeutronRadCapture::ApplyYourself( const G4HadProjectile& aTrack, G4Nucleus& theNucleus) { 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 2984bc24ef..d85c4739cf 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 @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PhotonEvaporation.cc 94676 2015-12-02 09:51:20Z gunter $ +// $Id: G4PhotonEvaporation.cc 97869 2016-06-16 12:16:18Z gcosmo $ // // ------------------------------------------------------------------- // @@ -57,35 +57,32 @@ G4float G4PhotonEvaporation::GREnergy[] = {0.0f}; G4float G4PhotonEvaporation::GRWidth[] = {0.0f}; -const G4float GREfactor = 5.0f; -const G4float GRWfactor = 0.3f; -const G4double MinGammaEnergy = 10*CLHEP::keV; -const G4double MaxDeltaEnergy = CLHEP::MeV; -const G4double LevelDensity = 0.125/CLHEP::MeV; -const G4double NormC = 2.5*CLHEP::millibarn/(CLHEP::pi2*CLHEP::hbarc*CLHEP::hbarc); -const G4double Tolerance = 0.1*CLHEP::keV; G4PhotonEvaporation::G4PhotonEvaporation(G4GammaTransition* p) : fLevelManager(nullptr), fTransition(p), fVerbose(0), fPoints(0), vShellNumber(-1), fIndex(0), fTimeLimit(DBL_MAX), fMaxLifeTime(DBL_MAX), - fICM(false), fRDM(false), fSampleTime(true) + fICM(false), fRDM(false), fSampleTime(true), isInitialised(false) { + //G4cout << "### New G4PhotonEvaporation() " << G4endl; fNuclearLevelData = G4NuclearLevelData::GetInstance(); + LevelDensity = 0.125/CLHEP::MeV; + Tolerance = 0.1*CLHEP::keV; + if(!fTransition) { char* en = getenv("G4UseNuclearPolarization"); if(en) { fTransition = new G4PolarizedGammaTransition(); } else { fTransition = new G4GammaTransition(); } } - char* env = getenv("G4AddTimeLimitToPhotonEvaporation"); if(env) { fTimeLimit = 1.e-16*CLHEP::second; } theA = theZ = fCode = 0; - fLevelEnergyMax = fStep = fExcEnergy = fFermiEnergy = fProbability = 0.0; + fLevelEnergyMax = fStep = fExcEnergy = fProbability = 0.0; for(G4int i=0; ipowZ(A,0.2)); GRWidth[A] = GRWfactor*GREnergy[A]; @@ -98,6 +95,25 @@ G4PhotonEvaporation::~G4PhotonEvaporation() delete fTransition; } +void G4PhotonEvaporation::Initialise() +{ + if(isInitialised) { return; } + isInitialised = true; + + G4DeexPrecoParameters* param = fNuclearLevelData->GetParameters(); + LevelDensity = param->GetLevelDensity(); + Tolerance = param->GetMinExcitation(); + + if(!fTransition) { + char* en = getenv("G4UseNuclearPolarization"); + if(en) { fTransition = new G4PolarizedGammaTransition(); } + else { fTransition = new G4GammaTransition(); } + } + + char* env = getenv("G4AddTimeLimitToPhotonEvaporation"); + if(env) { fTimeLimit = 1.e-16*CLHEP::second; } +} + G4Fragment* G4PhotonEvaporation::EmittedFragment(G4Fragment* nucleus) { @@ -106,7 +122,7 @@ G4PhotonEvaporation::EmittedFragment(G4Fragment* nucleus) G4Fragment* gamma = GenerateGamma(nucleus); if(fVerbose > 0) { - G4cout << "G4PhotonEvaporation::EmittedFragment: RDM= " << fRDM << G4endl; + G4cout << "G4PhotonEvaporation::EmittedFragment: RDM= " << fRDM << G4endl; if(gamma) { G4cout << *gamma << G4endl; } G4cout << " Residual: " << *nucleus << G4endl; } @@ -175,11 +191,12 @@ G4bool G4PhotonEvaporation::BreakUpChain(G4FragmentVector* products, G4double G4PhotonEvaporation::GetEmissionProbability(G4Fragment* nucleus) { + if(!isInitialised) { Initialise(); } fProbability = 0.0; fExcEnergy = nucleus->GetExcitationEnergy(); G4int Z = nucleus->GetZ_asInt(); G4int A = nucleus->GetA_asInt(); - fCode = 1000*Z + A; + fCode = 1000*Z + A; if(fVerbose > 1) { G4cout << "G4PhotonEvaporation::GetEmissionProbability: Z=" << Z << " A=" << A << " Eexc(MeV)= " << fExcEnergy << G4endl; @@ -191,7 +208,9 @@ G4PhotonEvaporation::GetEmissionProbability(G4Fragment* nucleus) // ignore gamma de-excitation for highly excited levels if(A >= MAXGRDATA) { A = MAXGRDATA-1; } - //G4cout << " GREnergy= " << GREnergy[A] << " GRWidth= " << GRWidth[A] << G4endl; + //G4cout<<" GREnergy= "<< GREnergy[A]<<" GRWidth= "<= (G4double)(GREfactor*GRWidth[A] + GREnergy[A])) { return fProbability; } @@ -199,20 +218,21 @@ G4PhotonEvaporation::GetEmissionProbability(G4Fragment* nucleus) // probability computed assuming continium transitions // VI: continium transition are limited only to final states // below Fermi energy (this approach needs further evaluation) - fFermiEnergy = std::max(0.0, nucleus->ComputeGroundStateMass(Z, A-1) + G4double emax = std::max(0.0, nucleus->ComputeGroundStateMass(Z, A-1) + CLHEP::neutron_mass_c2 - nucleus->GetGroundStateMass()); // max energy level for continues transition - G4double emax = std::min(fFermiEnergy, fExcEnergy); + emax = std::min(emax, fExcEnergy); const G4double eexcfac = 0.99; if(0.0 == emax || fExcEnergy*eexcfac <= emax) { emax = fExcEnergy*eexcfac; } fStep = emax; + static const G4double MaxDeltaEnergy = CLHEP::MeV; fPoints = std::min((G4int)(fStep/MaxDeltaEnergy) + 2, MAXDEPOINT); fStep /= ((G4double)(fPoints - 1)); if(fVerbose > 1) { G4cout << "Emax= " << emax << " Npoints= " << fPoints - <<" Efermi= " << fFermiEnergy << " Eex= " << fExcEnergy << G4endl; + << " Eex= " << fExcEnergy << G4endl; } // integrate probabilities G4double eres = (G4double)GREnergy[A]; @@ -243,7 +263,10 @@ G4PhotonEvaporation::GetEmissionProbability(G4Fragment* nucleus) fCummProbability[i] = fProbability; p0 = p1; } - fProbability *= 0.5*fStep*NormC*A; + + static const G4double NormC = 1.25*CLHEP::millibarn + /(CLHEP::pi2*CLHEP::hbarc*CLHEP::hbarc); + fProbability *= fStep*NormC*A; if(fVerbose > 1) { G4cout << "prob= " << fProbability << G4endl; } return fProbability; } @@ -269,9 +292,10 @@ G4double G4PhotonEvaporation::GetUpperLevelEnergy(G4int Z, G4int A) G4Fragment* G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) { - G4Fragment* result = 0; + if(!isInitialised) { Initialise(); } + G4Fragment* result = nullptr; G4double eexc = nucleus->GetExcitationEnergy(); - if(eexc < MinGammaEnergy) { return result; } + if(eexc < Tolerance) { return result; } InitialiseLevelManager(nucleus->GetZ_asInt(), nucleus->GetA_asInt()); @@ -288,7 +312,9 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) if(fVerbose > 1) { G4cout << "GenerateGamma: Exc= " << eexc << " Emax= " - << fLevelEnergyMax << G4endl; + << fLevelEnergyMax << " fEx= " << fExcEnergy + << " fCode= " << fCode << " fPoints= " << fPoints + << " fProb= " << fProbability << G4endl; } // continues part if(!fLevelManager || eexc > fLevelEnergyMax + Tolerance) { @@ -296,7 +322,7 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) // we compare current excitation versus value used for probability // computation and also Z and A used for probability computation - if(fCode != 1000*theZ + theA && eexc != fExcEnergy) { + if(fCode != 1000*theZ + theA || eexc != fExcEnergy) { GetEmissionProbability(nucleus); } if(fProbability == 0.0) { return result; } @@ -321,9 +347,24 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) if(fVerbose > 1) { G4cout << "Discrete emission from level Index= " << fIndex << " Elevel= " << fLevelManager->LevelEnergy(fIndex) - << " ICM= " << fICM << G4endl; + << " RDM= " << fRDM << " ICM= " << fICM << G4endl; } if(0 == fIndex) { return result; } + const G4NucLevel* level = fLevelManager->GetLevel(fIndex); + + // radioactive decay model call transitions one by one + // for X-level corresponding gamma transition is forced + // from the previous one; this is needed, because + // X-level assumes a competition between beta amd gamma + // decay probabilities + isX = level->IsXLevel(); + // G4cout << "isX: " << isX << G4endl; + if(isX && fRDM && fIndex > 0) { + --fIndex; + level = fLevelManager->GetLevel(fIndex); + isX = level->IsXLevel(); + } + G4double ltime = 0.0; if(fICM) { ltime = (G4double)fLevelManager->LifeTime(fIndex); } else { ltime = (G4double)fLevelManager->LifeTimeGamma(fIndex); } @@ -333,12 +374,12 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) icm = true; isLongLived = true; } - const G4NucLevel* level = fLevelManager->GetLevel(fIndex); size_t ntrans = level->NumberOfTransitions(); size_t idx = 0; - isX = level->IsXLevel(); - //G4cout << "Ntrans= " << ntrans << " idx= " << idx << " isX= " << isX - // << " icm= " << icm << G4endl; + if(fVerbose > 1) { + G4cout << "Ntrans= " << ntrans << " idx= " << idx << " isX= " << isX + << " icm= " << icm << G4endl; + } if(!isX) { if(1 < ntrans) { G4double rndm = G4UniformRand(); @@ -357,8 +398,8 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) } } } - efinal = (G4double)level->FinalExcitationEnergy(idx); - fIndex = idx; + fIndex = level->FinalExcitationIndex(idx); + efinal = (G4double)fLevelManager->LevelEnergy(fIndex); if(fSampleTime && ltime > 0.0) { time -= ltime*G4Log(G4UniformRand()); @@ -371,7 +412,11 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) G4double e = std::max(mass,nucleus->GetMomentum().e()); G4double mom = std::sqrt((e - mass)*(e + mass)); v *= mom; - nucleus->SetMomentum(G4LorentzVector(v.x(),v.y(),v.z(),efinal+mass)); + nucleus->SetMomentum(G4LorentzVector(v.x(),v.y(),v.z(),e)); + if(fVerbose > 1) { + G4cout << "X-level Eexc= " << nucleus->GetExcitationEnergy() + << G4endl; + } // normal case } else { result = fTransition->SampleTransition(nucleus, efinal, @@ -383,7 +428,7 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) if(fVerbose > 1) { G4cout << "Final level E= " << efinal << " time= " << time - << " idx= " << fIndex << " isX " << isX + << " idxFinal= " << fIndex << " isX " << isX << " isGamma: " << isGamma << " isLongLived: " << isLongLived << " deltaS= " << deltaS << " shell= " << shell << G4endl; } diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporationOLD.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporationOLD.cc index cb4edccbb6..973623d465 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporationOLD.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporationOLD.cc @@ -79,6 +79,9 @@ G4PhotonEvaporationOLD::G4PhotonEvaporationOLD(const G4String & aName) verbose(0), myOwnProbAlgorithm(true), eOccupancy(0), vShellNumber(-1), gammaE(0.) { + G4Exception ("G4PhotonEvaporationOLD: ", "had001", JustWarning, + "This class is obsolete and will be removed for the next public release"); + probAlgorithm = new G4E1Probability; contDeexcitation = new G4ContinuumGammaDeexcitation; G4DiscreteGammaDeexcitation* p = new G4DiscreteGammaDeexcitation(); 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 a9fc54fdec..a203b21a18 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 @@ -45,10 +45,8 @@ using namespace std; -static const G4double kEps = 1.e-15; - G4PolarizationTransition::G4PolarizationTransition() - : fTwoJ1(0), fTwoJ2(0), fLbar(1), fL(0), fDelta(0), + : fTwoJ1(0), fTwoJ2(0), fLbar(1), fL(0), fDelta(0), kEps(1.e-15), kPolyPDF(0, nullptr, -1, 1) {} diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizedGammaTransition.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizedGammaTransition.cc index fe1ac4ba55..6b60fcdf52 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizedGammaTransition.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizedGammaTransition.cc @@ -47,7 +47,6 @@ #include "G4PolarizationTransition.hh" G4PolarizedGammaTransition::G4PolarizedGammaTransition() - : G4GammaTransition() { fPolarization = new G4PolarizationTransition(); } @@ -85,8 +84,6 @@ G4PolarizedGammaTransition::SampleTransition(G4Fragment* nucleus, G4LorentzVector lv = nucleus->GetMomentum(); G4double mass = nucleus->GetGroundStateMass() + newExcEnergy; - //G4double e0 = lv.e(); - // select secondary G4ParticleDefinition* part; @@ -147,7 +144,7 @@ G4PolarizedGammaTransition::SampleTransition(G4Fragment* nucleus, result = new G4Fragment(res4mom, part); // G4cout << " DeltaE= " << e0 - lv.e() - res4mom.e() << G4endl; - //G4cout << "G4PolarizedGammaTransition::GenerateGamma : " << thePhoton << G4endl; + //G4cout << "G4PolarizedGammaTransition::GenerateGamma : "< - #include "globals.hh" #include "G4VCoulombBarrier.hh" -#include "G4HadronicException.hh" +#include + +class G4Pow; class G4CoulombBarrier : public G4VCoulombBarrier { public: - G4CoulombBarrier(); - G4CoulombBarrier(G4int anA, G4int aZ); + explicit G4CoulombBarrier(G4int anA, G4int aZ); virtual ~G4CoulombBarrier(); G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const; private: - G4CoulombBarrier(const G4CoulombBarrier & right); - const G4CoulombBarrier & operator=(const G4CoulombBarrier & right); - G4bool operator==(const G4CoulombBarrier & right) const; - G4bool operator!=(const G4CoulombBarrier & right) const; + 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; - virtual G4double BarrierPenetrationFactor(G4double ) const; +protected: - inline G4double CalcCompoundRadius(const G4double ZRes) const - { - return 2.173*CLHEP::fermi*(1.0+0.006103*static_cast(GetZ())*ZRes)/ - (1.0+0.009443*static_cast(GetZ())*ZRes); - } + virtual G4double BarrierPenetrationFactor(G4int Eexc) const; + + G4Pow* g4pow; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh index 0eceeaf650..7f0f152a0b 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DeuteronCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4DeuteronCoulombBarrier.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -38,18 +38,17 @@ class G4DeuteronCoulombBarrier : public G4CoulombBarrier { public: - G4DeuteronCoulombBarrier(); + explicit G4DeuteronCoulombBarrier(); virtual ~G4DeuteronCoulombBarrier(); private: - G4DeuteronCoulombBarrier(const G4DeuteronCoulombBarrier & right); - - const G4DeuteronCoulombBarrier & operator=(const G4DeuteronCoulombBarrier & right); - G4bool operator==(const G4DeuteronCoulombBarrier & right) const; - G4bool operator!=(const G4DeuteronCoulombBarrier & right) const; + G4DeuteronCoulombBarrier(const G4DeuteronCoulombBarrier & right) = delete; + const G4DeuteronCoulombBarrier & operator=(const G4DeuteronCoulombBarrier & right) = delete; + G4bool operator==(const G4DeuteronCoulombBarrier & right) const = delete; + G4bool operator!=(const G4DeuteronCoulombBarrier & right) const = delete; - virtual G4double BarrierPenetrationFactor(G4double aZ) const; + virtual G4double BarrierPenetrationFactor(G4int aZ) const final; }; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh index d74cbe9f21..976b0c46ba 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4He3CoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4He3CoulombBarrier.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -39,18 +39,17 @@ class G4He3CoulombBarrier : public G4CoulombBarrier { public: - G4He3CoulombBarrier(); + explicit G4He3CoulombBarrier(); virtual ~G4He3CoulombBarrier(); private: - G4He3CoulombBarrier(const G4He3CoulombBarrier & right); - - const G4He3CoulombBarrier & operator=(const G4He3CoulombBarrier & right); - G4bool operator==(const G4He3CoulombBarrier & right) const; - G4bool operator!=(const G4He3CoulombBarrier & right) const; + G4He3CoulombBarrier(const G4He3CoulombBarrier & right) = delete; + const G4He3CoulombBarrier & operator=(const G4He3CoulombBarrier & right) = delete; + G4bool operator==(const G4He3CoulombBarrier & right) const = delete; + G4bool operator!=(const G4He3CoulombBarrier & right) const = delete; - virtual G4double BarrierPenetrationFactor(G4double aZ) const; + virtual G4double BarrierPenetrationFactor(G4int Zres) const final; }; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4KalbachCrossSection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4KalbachCrossSection.hh index 159a014b8f..1a7c1858e0 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4KalbachCrossSection.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4KalbachCrossSection.hh @@ -106,11 +106,11 @@ static G4double ComputeCrossSection(G4double K, G4double resA13, G4double amu1, if(resA < 40) { signor =0.7 + resA*0.0075; } else if(resA > 210) { signor = 1. + (resA-210)*0.004; } lambda = paramK[idx][3]/resA13 + paramK[idx][4]; - mu = paramK[idx][5]*resA13 + paramK[idx][6]*resA13*resA13; + mu = (paramK[idx][5] + paramK[idx][6]*resA13)*resA13; // JMQ 20.11.2008 very low energy behaviour corrected // (problem for A (apprx.)>60) fix for avoiding // neutron xs going to zero at very low energies - nu = std::abs(paramK[idx][7]*resA13*resA + paramK[idx][8]*resA13*resA13 + nu = std::abs((paramK[idx][7]*resA + paramK[idx][8]*resA13)*resA13 + paramK[idx][9]); } else { // parameterization for charged @@ -132,8 +132,8 @@ static G4double ComputeCrossSection(G4double K, G4double resA13, G4double amu1, G4double b = p*ecsq + mu + 2*nu/ec; G4double ecut; G4double det = a*a - 4*p*b; - if (det > 0.0) { ecut = (std::sqrt(det) - a)/(p + p); } - else { ecut = a/(p + p); } + if (det > 0.0) { ecut = (std::sqrt(det) - a)/(2*p); } + else { ecut = -a/(2*p); } // If ecut>0, sig=0 at elab=ecut if(elab > ecut) { @@ -161,8 +161,8 @@ static G4double ComputeCrossSection(G4double K, G4double resA13, G4double amu1, if(0 < Z) { etest = 0.0; xnulam = nu / lambda; - if(xnulam > spill) { xnulam= 0.0; } - else if (xnulam >= flow) { + xnulam = std::min(xnulam, spill); + if (xnulam >= flow) { if(1 == idx) { etest = std::sqrt(xnulam) + 7.; } else { etest = 1.2 *std::sqrt(xnulam); } } diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh index 24475a5607..5756503af5 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4NeutronCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4NeutronCoulombBarrier.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -38,15 +38,14 @@ class G4NeutronCoulombBarrier : public G4CoulombBarrier { public: - G4NeutronCoulombBarrier(); + explicit G4NeutronCoulombBarrier(); virtual ~G4NeutronCoulombBarrier(); private: - G4NeutronCoulombBarrier(const G4NeutronCoulombBarrier & right); - - const G4NeutronCoulombBarrier & operator=(const G4NeutronCoulombBarrier & right); - G4bool operator==(const G4NeutronCoulombBarrier & right) const; - G4bool operator!=(const G4NeutronCoulombBarrier & right) const; + G4NeutronCoulombBarrier(const G4NeutronCoulombBarrier & right) = delete; + const G4NeutronCoulombBarrier & operator=(const G4NeutronCoulombBarrier & right) = delete; + G4bool operator==(const G4NeutronCoulombBarrier & right) const = delete; + G4bool operator!=(const G4NeutronCoulombBarrier & right) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh index e100a3185e..77f7a27725 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ProtonCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4ProtonCoulombBarrier.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -39,19 +39,18 @@ class G4ProtonCoulombBarrier : public G4CoulombBarrier { public: - G4ProtonCoulombBarrier(); + explicit G4ProtonCoulombBarrier(); virtual ~G4ProtonCoulombBarrier(); private: - G4ProtonCoulombBarrier(const G4ProtonCoulombBarrier & right); - - const G4ProtonCoulombBarrier & operator=(const G4ProtonCoulombBarrier & right); - G4bool operator==(const G4ProtonCoulombBarrier & right) const; - G4bool operator!=(const G4ProtonCoulombBarrier & right) const; + G4ProtonCoulombBarrier(const G4ProtonCoulombBarrier & right) = delete; + const G4ProtonCoulombBarrier & operator=(const G4ProtonCoulombBarrier & right) = delete; + G4bool operator==(const G4ProtonCoulombBarrier & right) const = delete; + G4bool operator!=(const G4ProtonCoulombBarrier & right) const = delete; private: - virtual G4double BarrierPenetrationFactor(G4double aZ) const; + virtual G4double BarrierPenetrationFactor(G4int aZ) const; }; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh index 0b08fd16d4..2cbb9f7003 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ShellCorrection.hh 85841 2014-11-05 15:35:06Z gcosmo $ +// $Id: G4ShellCorrection.hh 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -54,9 +54,11 @@ public: ~G4ShellCorrection(); - G4CameronTruranHilfShellCorrections* GetCameronTruranHilfShellCorrections(); + const G4CameronTruranHilfShellCorrections* + GetCameronTruranHilfShellCorrections() const; - G4CameronShellPlusPairingCorrections* GetCameronShellPlusPairingCorrections(); + const G4CameronShellPlusPairingCorrections* + GetCameronShellPlusPairingCorrections() const; G4double GetShellCorrection(G4int A, G4int Z) const; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh index b3a14bd0e7..f15f909e97 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4TritonCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4TritonCoulombBarrier.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -39,17 +39,16 @@ class G4TritonCoulombBarrier : public G4CoulombBarrier { public: - G4TritonCoulombBarrier(); + explicit G4TritonCoulombBarrier(); virtual ~G4TritonCoulombBarrier(); private: - G4TritonCoulombBarrier(const G4TritonCoulombBarrier & right); - - const G4TritonCoulombBarrier & operator=(const G4TritonCoulombBarrier & right); - G4bool operator==(const G4TritonCoulombBarrier & right) const; - G4bool operator!=(const G4TritonCoulombBarrier & right) const; + G4TritonCoulombBarrier(const G4TritonCoulombBarrier & right) = delete; + const G4TritonCoulombBarrier & operator=(const G4TritonCoulombBarrier & right) = delete; + G4bool operator==(const G4TritonCoulombBarrier & right) const = delete; + G4bool operator!=(const G4TritonCoulombBarrier & right) const = delete; - virtual G4double BarrierPenetrationFactor(G4double aZ) const; + virtual G4double BarrierPenetrationFactor(G4int aZ) const final; }; 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 e64212651b..0a041d0351 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VCoulombBarrier.hh 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -38,22 +38,21 @@ class G4VCoulombBarrier { public: - G4VCoulombBarrier(G4int anA, G4int aZ); + explicit G4VCoulombBarrier(G4int anA, G4int aZ); virtual ~G4VCoulombBarrier(); virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const = 0; - G4int GetA(void) const {return theA;} - G4int GetZ(void) const {return theZ;} + inline G4int GetA(void) const {return theA;} + inline G4int GetZ(void) const {return theZ;} private: - G4VCoulombBarrier(); - G4VCoulombBarrier(const G4VCoulombBarrier & right); - const G4VCoulombBarrier & operator=(const G4VCoulombBarrier & right); - G4bool operator==(const G4VCoulombBarrier & right) const; - G4bool operator!=(const G4VCoulombBarrier & right) const; + 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; G4int theA; G4int theZ; diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh index 71fc182b6f..cf8d75f783 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VLevelDensityParameter.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VLevelDensityParameter.hh 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -38,17 +38,17 @@ class G4VLevelDensityParameter { public: - G4VLevelDensityParameter(); - virtual ~G4VLevelDensityParameter(); + explicit G4VLevelDensityParameter() {}; + virtual ~G4VLevelDensityParameter() {}; virtual G4double LevelDensityParameter(G4int A, G4int Z, G4double U) const = 0; private: - G4VLevelDensityParameter(const G4VLevelDensityParameter &right); - const G4VLevelDensityParameter & operator=(const G4VLevelDensityParameter &right); - G4bool operator==(const G4VLevelDensityParameter &right) const; - G4bool operator!=(const G4VLevelDensityParameter &right) const; + G4VLevelDensityParameter(const G4VLevelDensityParameter &right) = delete; + const G4VLevelDensityParameter & operator=(const G4VLevelDensityParameter &right) = delete; + G4bool operator==(const G4VLevelDensityParameter &right) const = delete; + G4bool operator!=(const G4VLevelDensityParameter &right) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/util/sources.cmake b/source/processes/hadronic/models/de_excitation/util/sources.cmake index 3a2edceebd..d6174ca22a 100644 --- a/source/processes/hadronic/models/de_excitation/util/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/util/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 89518 2015-04-15 14:43:30Z gcosmo $ +# $Id: sources.cmake 96634 2016-04-27 09:31:49Z gcosmo $ # #------------------------------------------------------------------------------ @@ -62,7 +62,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_util G4ShellCorrection.hh G4TritonCoulombBarrier.hh G4VCoulombBarrier.hh - G4VEmissionProbability.hh G4VLevelDensityParameter.hh SOURCES G4AlphaCoulombBarrier.cc @@ -84,8 +83,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_util G4ShellCorrection.cc G4TritonCoulombBarrier.cc G4VCoulombBarrier.cc - G4VEmissionProbability.cc - G4VLevelDensityParameter.cc GRANULAR_DEPENDENCIES G4baryons G4bosons diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc index 96770b365e..57b871e50e 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc @@ -24,33 +24,26 @@ // ******************************************************************** // // -// $Id: G4AlphaCoulombBarrier.cc 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4AlphaCoulombBarrier.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) #include "G4AlphaCoulombBarrier.hh" -#include "G4HadronicException.hh" G4AlphaCoulombBarrier::G4AlphaCoulombBarrier() : G4CoulombBarrier(4,2) {} G4AlphaCoulombBarrier::~G4AlphaCoulombBarrier() {} - -G4double G4AlphaCoulombBarrier::BarrierPenetrationFactor(G4double aZ) const +G4double G4AlphaCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // - // const G4int size = 5; - // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; - // const G4double Kalpha[size] = {0.68, 0.82, 0.91, 0.97, 0.98}; - G4double K = 1.0; - if (aZ>=70.0) { - K = 0.98; - } else { - K = (((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699; - } - return K; + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; + // const G4double Kalpha[size] = {0.68, 0.82, 0.91, 0.97, 0.98}; + return (aZ >= 70) ? 0.98 : + (((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699; } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc index 3acdf13f16..bb5ec034f8 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4CameronGilbertPairingCorrections.cc 85841 2014-11-05 15:35:06Z gcosmo $ +// $Id: G4CameronGilbertPairingCorrections.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -75,6 +75,5 @@ G4CameronGilbertPairingCorrections::G4CameronGilbertPairingCorrections() for(size_t i=0; i - #include "G4CoulombBarrier.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" -#include "G4HadronicException.hh" #include "G4Pow.hh" -G4CoulombBarrier::G4CoulombBarrier(): G4VCoulombBarrier(1,0) -{} - G4CoulombBarrier::G4CoulombBarrier(G4int anA, G4int aZ) : G4VCoulombBarrier(anA,aZ) -{} +{ + g4pow = G4Pow::GetInstance(); +} G4CoulombBarrier::~G4CoulombBarrier() {} -G4double G4CoulombBarrier::BarrierPenetrationFactor(G4double ) const -{ - return 1.0; -} - -G4double G4CoulombBarrier::GetCoulombBarrier(const G4int ARes, - const G4int ZRes, const G4double) const - // Calculation of Coulomb potential energy (barrier) for outgoing fragment +G4double G4CoulombBarrier::GetCoulombBarrier(G4int ARes, G4int ZRes, G4double) const { G4double Barrier = 0.0; - if (GetA() == 1 && GetZ() == 0) { - Barrier = 0.0; // Neutron Coulomb Barrier is 0 - } else { - + if (GetZ() > 0 && ZRes > 0) { // JMQ: old coulomb barrier commented since it does not agree with // Dostrovski's prescription // and too low barriers are obtained (for protons at least) ///New coulomb Barrier according to original Dostrovski's paper - G4double rho=1.2*fermi; - if(GetA()==1 && GetZ()==1){ rho=0.0;} + static const G4double rho0 = 1.2*CLHEP::fermi; + G4double rho = (GetA()==1 && GetZ()==1) ? 0.0 : rho0; - const G4double RN=1.5*fermi; + static const G4double RN = 1.5*fermi; // VI cleanup - Barrier=elm_coupling*(GetZ()*ZRes)/(RN * G4Pow::GetInstance()->Z13(ARes) + rho); + Barrier = CLHEP::elm_coupling*(GetZ()*ZRes)/(RN * g4pow->Z13(ARes) + rho); // Barrier penetration coeficient - G4double K = BarrierPenetrationFactor(ZRes); + Barrier *= BarrierPenetrationFactor(ZRes); - Barrier *= K; - - // JMQ : the following statement has unknown origin and dimensionally - // is meaningless( energy divided by mass number in argument of sqrt function). - // Energy dependence of Coulomb barrier penetrability should be included in - // proper way (if needed..) - // Barrier /= (1.0 + std::sqrt(U/(2.0*static_cast(ARes)))); - // } return Barrier; } +G4double G4CoulombBarrier::BarrierPenetrationFactor(G4int aZ) const +{ + G4double res = 1.0; + if(GetZ() == 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); - + } else if(GetZ() == 2 && GetA() <= 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()); + } + return res; +} diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc index 698d1302dc..0210f5d0fe 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4DeuteronCoulombBarrier.cc 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4DeuteronCoulombBarrier.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -34,22 +34,18 @@ G4DeuteronCoulombBarrier::G4DeuteronCoulombBarrier() : G4CoulombBarrier(2,1) {} G4DeuteronCoulombBarrier::~G4DeuteronCoulombBarrier() {} -G4double G4DeuteronCoulombBarrier::BarrierPenetrationFactor(G4double aZ) const +G4double G4DeuteronCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // - // const G4int size = 5; - // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; - // const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80}; - // - // K for deuteron is K for protons + 0.06 - G4double K = 1.0; - if (aZ>=70.0) { - K = 0.80; - } else { - K = (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; - } - return K+0.06; + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; + // const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80}; + // + // K for deuteron is K for protons + 0.06 + G4double K = (aZ >= 70) ? 0.80 : + (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; + return K+0.06; } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc index bb278926df..9ed91c13b6 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4He3CoulombBarrier.cc 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4He3CoulombBarrier.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -35,22 +35,18 @@ G4He3CoulombBarrier::G4He3CoulombBarrier() : G4CoulombBarrier(3,2) {} G4He3CoulombBarrier::~G4He3CoulombBarrier() {} -G4double G4He3CoulombBarrier::BarrierPenetrationFactor(G4double aZ) const +G4double G4He3CoulombBarrier::BarrierPenetrationFactor(G4int aZ) const { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // - // const G4int size = 5; - // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; - // const G4double KHe3[size] = {0.68, 0.82, 0.91, 0.97, 0.98}; - // - // K for He3 is K for alphas + 0.12 - G4double K = 1.0; - if (aZ>=70.0) { - K = 0.98; - } else { - K = (((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699; - } - return K+0.12; + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; + // const G4double KHe3[size] = {0.68, 0.82, 0.91, 0.97, 0.98}; + // + // K for He3 is K for alphas + 0.12 + G4double K = (aZ >= 70) ? 0.98 : + (((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699; + return K+0.12; } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc index ebe6b5ffad..1429218ffd 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PairingCorrection.cc 85841 2014-11-05 15:35:06Z gcosmo $ +// $Id: G4PairingCorrection.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,7 +34,7 @@ #include "G4PairingCorrection.hh" #include "G4SystemOfUnits.hh" -G4PairingCorrection* G4PairingCorrection::theInstance = 0; +G4PairingCorrection* G4PairingCorrection::theInstance = nullptr; G4PairingCorrection::G4PairingCorrection() {} @@ -59,7 +59,7 @@ G4double G4PairingCorrection::GetPairingCorrection(G4int A, G4int Z) const if(!theCameronGilbertPairingCorrections.GetPairingCorrection(N,Z,pairCorr)) { - static const G4double PairingConstant = 12.0*MeV; + static const G4double PairingConstant = 12.0*CLHEP::MeV; pairCorr = ((1 - Z + 2*(Z/2)) + (1 - N + 2*(N/2))) *PairingConstant/std::sqrt(static_cast(A)); } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc index ff2ad2ca8a..692592f8d9 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ProtonCoulombBarrier.cc 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4ProtonCoulombBarrier.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -37,20 +37,15 @@ G4ProtonCoulombBarrier::G4ProtonCoulombBarrier() : G4CoulombBarrier(1,1) G4ProtonCoulombBarrier::~G4ProtonCoulombBarrier() {} -G4double G4ProtonCoulombBarrier::BarrierPenetrationFactor(G4double aZ) const +G4double G4ProtonCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const { - // Data comes from - // Dostrovsky, Fraenkel and Friedlander - // Physical Review, vol 116, num. 3 1959 - // - // const G4int size = 5; - // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; - // const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80}; - G4double K = 1.0; - if (aZ>=70.0) { - K = 0.80; - } else { - K = (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; - } - return K; + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0}; + // const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80}; + return (aZ >= 70) ? 0.80 : + (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc index b14661881b..0979a403ee 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ShellCorrection.cc 85841 2014-11-05 15:35:06Z gcosmo $ +// $Id: G4ShellCorrection.cc 96634 2016-04-27 09:31:49Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -33,7 +33,7 @@ #include "G4ShellCorrection.hh" -G4ShellCorrection* G4ShellCorrection::theInstance = 0; +G4ShellCorrection* G4ShellCorrection::theInstance = nullptr; G4ShellCorrection::G4ShellCorrection() {} @@ -50,14 +50,14 @@ G4ShellCorrection* G4ShellCorrection::GetInstance() return theInstance; } -G4CameronTruranHilfShellCorrections* -G4ShellCorrection::GetCameronTruranHilfShellCorrections() +const G4CameronTruranHilfShellCorrections* +G4ShellCorrection::GetCameronTruranHilfShellCorrections() const { return &theCameronTruranHilfShellCorrections; } -G4CameronShellPlusPairingCorrections* -G4ShellCorrection::GetCameronShellPlusPairingCorrections() +const G4CameronShellPlusPairingCorrections* +G4ShellCorrection::GetCameronShellPlusPairingCorrections() const { return &theCameronShellPlusPairingCorrections; } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc index f55c34304f..9f6d611185 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TritonCoulombBarrier.cc 68724 2013-04-05 09:26:32Z gcosmo $ +// $Id: G4TritonCoulombBarrier.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -34,7 +34,7 @@ G4TritonCoulombBarrier::G4TritonCoulombBarrier() : G4CoulombBarrier(3,1) {} G4TritonCoulombBarrier::~G4TritonCoulombBarrier() {} -G4double G4TritonCoulombBarrier::BarrierPenetrationFactor(G4double aZ) const +G4double G4TritonCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const { // Data comes from // Dostrovsky, Fraenkel and Friedlander @@ -45,11 +45,8 @@ G4double G4TritonCoulombBarrier::BarrierPenetrationFactor(G4double aZ) const // const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80}; // // K for Triton is K for protons + 0.12 - G4double K = 1.0; - if (aZ>=70.0) { - K = 0.80; - } else { - K = (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; - } + G4double K = (aZ >= 70) ? 0.80 : + (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; + return K+0.12; } 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 158b3fd628..8ab88b3ae6 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc @@ -23,27 +23,17 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VCoulombBarrier.cc 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4VCoulombBarrier.cc 97097 2016-05-25 07:50:31Z gcosmo $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) #include "G4VCoulombBarrier.hh" -#include "G4HadronicException.hh" G4VCoulombBarrier::G4VCoulombBarrier(G4int anA, G4int aZ) { - if (anA >= aZ && anA > 0) { - theA = anA; - theZ = aZ; - } else { - std::ostringstream errOs; - G4cout << "G4VCoulombBarrier::G4VCoulombBarrier: " - << "Wrong values for " - << "A= " << anA << " " - << "and Z= " << aZ << G4endl; - throw G4HadronicException(__FILE__, __LINE__,"FATAL Exception"); - } + theA = anA; + theZ = aZ; } G4VCoulombBarrier::~G4VCoulombBarrier() diff --git a/source/processes/hadronic/models/lend/History b/source/processes/hadronic/models/lend/History index f6df6feccb..3178a86b1b 100644 --- a/source/processes/hadronic/models/lend/History +++ b/source/processes/hadronic/models/lend/History @@ -1,4 +1,4 @@ -# $Id: History 94484 2015-11-19 08:29:12Z gcosmo $ +# $Id: History 96401 2016-04-12 07:27:44Z gcosmo $ # ----------------------------------------------------------- ================================================== @@ -15,6 +15,23 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +11 April 2016 Tatsumi Koi (hadr-lend-V10-02-03) +----------------------------------------------- +-Fix problem on setting birth time of delayed neutrons + +15 January 2016 Tatsumi Koi (hadr-lend-V10-02-02) +----------------------------------------------- +-Fix problem in production of residual neutrons + +8 January 2016 Tatsumi Koi (hadr-lend-V10-02-01) +----------------------------------------------- +-Fix for Coverity #63079 and 63081 + +17 December 2015 Gabriele Cosmo (hadr-lend-V10-02-00) +----------------------------------------------- +-Corrected use of isnan() in nf_utilities.cc to std::isnan() for + compilers different than Windows/VC++. + 18 November 2015 Tatsumi Koi (hadr-lend-V10-01-14) ----------------------------------------------- -Fix of problem introduced at hadr-lend-V10-01-12 diff --git a/source/processes/hadronic/models/lend/include/G4GIDI_target.hh b/source/processes/hadronic/models/lend/include/G4GIDI_target.hh index c4f8545448..c647eb5149 100644 --- a/source/processes/hadronic/models/lend/include/G4GIDI_target.hh +++ b/source/processes/hadronic/models/lend/include/G4GIDI_target.hh @@ -52,6 +52,7 @@ struct crossSectionData_s { struct G4GIDI_Product_s { int A, Z, m; double kineticEnergy, px, py, pz; + double birthTimeSec; }; class G4GIDI_target { diff --git a/source/processes/hadronic/models/lend/src/G4GIDI_target.cc b/source/processes/hadronic/models/lend/src/G4GIDI_target.cc index dcedd8228a..f1d0fe5627 100644 --- a/source/processes/hadronic/models/lend/src/G4GIDI_target.cc +++ b/source/processes/hadronic/models/lend/src/G4GIDI_target.cc @@ -440,6 +440,7 @@ vector *G4GIDI_target::getFinalState( int nIndices, int *indices (*products)[i].px = productData->px_vx; (*products)[i].py = productData->py_vy; (*products)[i].pz = productData->pz_vz; + (*products)[i].birthTimeSec = productData->birthTimeSec; } } } diff --git a/source/processes/hadronic/models/lend/src/G4LENDFission.cc b/source/processes/hadronic/models/lend/src/G4LENDFission.cc index 8aa307cfa7..dd6103fb8a 100644 --- a/source/processes/hadronic/models/lend/src/G4LENDFission.cc +++ b/source/processes/hadronic/models/lend/src/G4LENDFission.cc @@ -63,6 +63,7 @@ G4HadFinalState * G4LENDFission::ApplyYourself(const G4HadProjectile& aTrack, G4 // << ", px = " << (*products)[j].px // << ", py = " << (*products)[j].py // << ", pz = " << (*products)[j].pz + // << ", birthTimeSec = " << (*products)[j].birthTimeSec << " [second]" // << G4endl; G4DynamicParticle* theSec = new G4DynamicParticle; @@ -83,6 +84,12 @@ G4HadFinalState * G4LENDFission::ApplyYourself(const G4HadProjectile& aTrack, G4 theSec->SetMomentum( G4ThreeVector( (*products)[j].px*MeV , (*products)[j].py*MeV , (*products)[j].pz*MeV ) ); //G4cout << theSec->GetDefinition()->GetParticleName() << G4endl; theResult->AddSecondary( theSec ); + //Set time for delayed neutrons + //Current implementation is a little tricky, + if ( (*products)[j].birthTimeSec != 0 ) { + G4double time = (*products)[j].birthTimeSec*second + aTrack.GetGlobalTime(); + theResult->GetSecondary(theResult->GetNumberOfSecondaries()-1)->SetTime(time); + } } } delete products; diff --git a/source/processes/hadronic/models/lend/src/G4LENDInelastic.cc b/source/processes/hadronic/models/lend/src/G4LENDInelastic.cc index a20eec64be..df5cebe2ce 100644 --- a/source/processes/hadronic/models/lend/src/G4LENDInelastic.cc +++ b/source/processes/hadronic/models/lend/src/G4LENDInelastic.cc @@ -142,23 +142,30 @@ G4HadFinalState * G4LENDInelastic::ApplyYourself(const G4HadProjectile& aTrack, if ( !( iTotZ == 0 && iTotA == 0 ) ) { - if ( iTotZ >= 0 && iTotA > 0 ) { - if ( needResidual ) { - G4DynamicParticle* residual = new G4DynamicParticle; - residual->SetDefinition( G4IonTable::GetIonTable()->GetIon( iTotZ , iTotA ) ); - residual->SetMomentum( proj_p - psum ); - theResult->AddSecondary( residual ); - } else { - //G4cout << "Charge or Baryon Number Error #1 iTotZ = " << iTotZ << ", iTotA = " << iTotA << G4endl; - ; - } - } else { + if ( iTotZ >= 0 && iTotA > 0 ) { + if ( needResidual ) { + G4DynamicParticle* residual = new G4DynamicParticle; + if ( iTotZ > 0 ) { + residual->SetDefinition( G4IonTable::GetIonTable()->GetIon( iTotZ , iTotA ) ); + } else if ( iTotA == 1 ) { + residual->SetDefinition( G4Neutron::Neutron() ); + } else { + //G4cout << "Charge or Baryon Number Error #3 iTotZ = " << iTotZ << ", iTotA = " << iTotA << G4endl; + ; + } + residual->SetMomentum( proj_p - psum ); + theResult->AddSecondary( residual ); + } else { + //G4cout << "Charge or Baryon Number Error #1 iTotZ = " << iTotZ << ", iTotA = " << iTotA << G4endl; + ; + } + } else { - if ( needResidual ) { - //G4cout << "Charge or Baryon Number Error #2 iTotZ = " << iTotZ << ", iTotA = " << iTotA << G4endl; - ; + if ( needResidual ) { + //G4cout << "Charge or Baryon Number Error #2 iTotZ = " << iTotZ << ", iTotA = " << iTotA << G4endl; + ; + } } - } } diff --git a/source/processes/hadronic/models/lend/src/nf_utilities.cc b/source/processes/hadronic/models/lend/src/nf_utilities.cc index 5ee9cbd050..1bbf3d1ee0 100644 --- a/source/processes/hadronic/models/lend/src/nf_utilities.cc +++ b/source/processes/hadronic/models/lend/src/nf_utilities.cc @@ -11,9 +11,11 @@ #ifdef WIN32 #include -#define isnan(a) _isnan(a) +#define is_nan(a) _isnan(a) /*#define INFINITY (DBL_MAX+DBL_MAX)*/ /*#define NAN (INFINITY-INFINITY)*/ +#else +#define is_nan(a) std::isnan(a) #endif #if defined __cplusplus @@ -58,7 +60,7 @@ double nfu_getNAN( void ) { */ int nfu_isNAN( double d ) { - return( isnan( d ) ); + return( is_nan( d ) ); } /* ************************************************************ diff --git a/source/processes/hadronic/models/lend/src/ptwXY_core.cc b/source/processes/hadronic/models/lend/src/ptwXY_core.cc index 55766d2106..c2356c7c71 100644 --- a/source/processes/hadronic/models/lend/src/ptwXY_core.cc +++ b/source/processes/hadronic/models/lend/src/ptwXY_core.cc @@ -999,10 +999,14 @@ static nfu_status ptwXY_mergeFrom( ptwXYPoints *ptwXY, int /*incY*/, int length, if( length == 0 ) return( nfu_Okay ); if( ( status = ptwXY_simpleCoalescePoints( ptwXY ) ) != nfu_Okay ) return( status ); - if( ( sortedXs = (double *) nfu_malloc( length * sizeof( double * ) ) ) == NULL ) return( nfu_mallocError ); + //if( ( sortedXs = (double *) nfu_malloc( length * sizeof( double * ) ) ) == NULL ) return( nfu_mallocError ); + //TK fixed for Coverity 63081 + if( ( sortedXs = (double *) nfu_malloc( length * sizeof( double ) ) ) == NULL ) return( nfu_mallocError ); for( i = 0, p1 = sortedXs, p2 = xs; i < length; i++, p1++, p2++ ) *p1 = *p2; - qsort( sortedXs, length, sizeof( double * ), ptwXY_mergeCompareFunction ); + //qsort( sortedXs, length, sizeof( double * ), ptwXY_mergeCompareFunction ); + //TK fixed for Coverity 63079 + qsort( sortedXs, length, sizeof( double ), ptwXY_mergeCompareFunction ); for( i = 0, p1 = sortedXs, j = 0, n = 0; i < length; i++, p1++, n++ ) { for( ; j < ptwXY->length; j++, n++ ) { diff --git a/source/processes/hadronic/models/management/History b/source/processes/hadronic/models/management/History index c20206ccae..1cd5382392 100644 --- a/source/processes/hadronic/models/management/History +++ b/source/processes/hadronic/models/management/History @@ -14,6 +14,26 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +31 May 2016 - Tatsumi Koi (hadr-modman-V10-02-03) +----------------------------------------------------------- +- "trunk" is revert to the situation at the hadr-modman-V10-02-01 + +29 May 2016 - Tatsumi Koi (hadr-modman-V10-02-02) +----------------------------------------------------------- +- G4HadronicInteractionRegistry Deleted ad-hoc trick which was added in "hadr-modman-V10-01-04" + +18 April 2016 - Vladimir Ivanchenko (hadr-modman-V10-02-01) +----------------------------------------------------------- +- G4HadronicInteractionRegistry - added InitialiseModels() method +- G4HadronicInteraction - added InitialiseModel() method +- G4VPreCompoundModel, G4VIntraNuclearTransportModel - added C++11 + keywords, minor cleanup + +18 April 2016 - Vladimir Ivanchenko (hadr-modman-V10-02-00) +----------------------------------------------------------- +- G4HadronicInteractionRegistry, G4HadronicInteraction - added C++11 + keywords, minor cleanup of BuildPhysicsTable interface + 2 November 2015 - Tatsumi Koi (hadr-modman-V10-01-07) ----------------------------------------------------------- - G4HadronicInteractionRegistry - adding same ad-hoc trick of NeutronHP to ParticleHP models to prevent problem at termination diff --git a/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh index e7fa3ad269..bc7a7faa0d 100644 --- a/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh +++ b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4HadronicInteraction.hh 88839 2015-03-12 10:30:07Z gcosmo $ +// $Id: G4HadronicInteraction.hh 96490 2016-04-19 06:57:04Z gcosmo $ // // Hadronic Interaction abstract base class // This class is the base class for the model classes. @@ -65,7 +65,7 @@ class G4HadronicInteraction { public: // With description - G4HadronicInteraction(const G4String& modelName = "HadronicModel"); + explicit G4HadronicInteraction(const G4String& modelName = "HadronicModel"); virtual ~G4HadronicInteraction(); @@ -77,10 +77,9 @@ public: // With description G4double plab, G4int Z, G4int A); // The interface to implement sampling of scattering or change exchange - - virtual G4bool IsApplicable(const G4HadProjectile &/*aTrack*/, - G4Nucleus & /*targetNucleus*/) - { return true;} + + virtual G4bool IsApplicable(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus); inline G4double GetMinEnergy() const { return theMinEnergy; } @@ -107,14 +106,11 @@ public: // With description void SetMaxEnergy( G4double anEnergy, const G4Element *anElement ); void SetMaxEnergy( G4double anEnergy, const G4Material *aMaterial ); - - inline const G4HadronicInteraction* GetMyPointer() const - { return this; } - virtual G4int GetVerboseLevel() const + inline G4int GetVerboseLevel() const { return verboseLevel; } - virtual void SetVerboseLevel( G4int value ) + inline void SetVerboseLevel( G4int value ) { verboseLevel = value; } inline const G4String& GetModelName() const @@ -146,29 +142,20 @@ public: // With description G4double GetRecoilEnergyThreshold() const { return recoilEnergyThreshold;} - inline G4bool operator==(const G4HadronicInteraction &right ) const - { return ( this == (G4HadronicInteraction *) &right ); } - - inline G4bool operator!=(const G4HadronicInteraction &right ) const - { return ( this != (G4HadronicInteraction *) &right ); } - virtual const std::pair GetFatalEnergyCheckLevels() const; virtual std::pair GetEnergyMomentumCheckLevels() const; - inline void SetEnergyMomentumCheckLevels(G4double relativeLevel, G4double absoluteLevel) + inline void + SetEnergyMomentumCheckLevels(G4double relativeLevel, G4double absoluteLevel) { epCheckLevels.first = relativeLevel; epCheckLevels.second = absoluteLevel; } virtual void ModelDescription(std::ostream& outFile) const ; //=0; // Initialisation before run - virtual void BuildPhysicsTable(const G4ParticleDefinition&){;}; - -private: - - G4HadronicInteraction(const G4HadronicInteraction &right ); - const G4HadronicInteraction& operator=(const G4HadronicInteraction &right); + virtual void BuildPhysicsTable(const G4ParticleDefinition&); + virtual void InitialiseModel(); protected: @@ -197,6 +184,11 @@ protected: G4bool isBlocked; private: + + G4HadronicInteraction(const G4HadronicInteraction &right ) = delete; + const G4HadronicInteraction& operator=(const G4HadronicInteraction &right) = delete; + G4bool operator==(const G4HadronicInteraction &right ) const = delete; + G4bool operator!=(const G4HadronicInteraction &right ) const = delete; G4HadronicInteractionRegistry* registry; diff --git a/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh b/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh index 4f7f154f29..8ec472c68b 100644 --- a/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh +++ b/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronicInteractionRegistry.hh 88839 2015-03-12 10:30:07Z gcosmo $ +// $Id: G4HadronicInteractionRegistry.hh 96490 2016-04-19 06:57:04Z gcosmo $ // // 23-Jan-2009 V.Ivanchenko make the class to be a singleton // 17-Aug-2012 V.Ivanchenko added hadronic model factories @@ -61,6 +61,9 @@ public: void Clean(); // delete all models + void InitialiseModels(); + // delete all models + G4HadronicInteraction* FindModel(const G4String& name); // find existing hadronic interaction by name @@ -74,6 +77,7 @@ private: static G4ThreadLocal G4HadronicInteractionRegistry* instance; std::vector allModels; + G4bool isInitialized; }; diff --git a/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh b/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh index dbd33a81d7..3bf6f28ece 100644 --- a/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh +++ b/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VIntraNuclearTransportModel.hh 69717 2013-05-13 09:47:57Z gcosmo $ +// $Id: G4VIntraNuclearTransportModel.hh 96490 2016-04-19 06:57:04Z gcosmo $ // // ----------------------------------------------------------------------------- // GEANT 4 class header file @@ -65,8 +65,8 @@ class G4VIntraNuclearTransportModel : public G4HadronicInteraction { public: - G4VIntraNuclearTransportModel(const G4String& modelName = "CascadeModel", - G4VPreCompoundModel* ptr = 0); + explicit G4VIntraNuclearTransportModel(const G4String& mName = "CascadeModel", + G4VPreCompoundModel* ptr = nullptr); virtual ~G4VIntraNuclearTransportModel(); @@ -92,10 +92,10 @@ public: private: - G4VIntraNuclearTransportModel(const G4VIntraNuclearTransportModel& right); - const G4VIntraNuclearTransportModel& operator=(const G4VIntraNuclearTransportModel &right); - int operator==(const G4VIntraNuclearTransportModel& right) const; - int operator!=(const G4VIntraNuclearTransportModel& right) const; + G4VIntraNuclearTransportModel(const G4VIntraNuclearTransportModel& right) = delete; + const G4VIntraNuclearTransportModel& operator=(const G4VIntraNuclearTransportModel &right) = delete; + int operator==(const G4VIntraNuclearTransportModel& right) const = delete; + int operator!=(const G4VIntraNuclearTransportModel& right) const = delete; protected: diff --git a/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh b/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh index b716908a3d..9ded85d67a 100644 --- a/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh +++ b/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundModel.hh 80131 2014-04-02 14:35:47Z gcosmo $ +// $Id: G4VPreCompoundModel.hh 96490 2016-04-19 06:57:04Z gcosmo $ // #ifndef G4VPreCompoundModel_h @@ -60,31 +60,16 @@ class G4VPreCompoundModel : public G4HadronicInteraction { public: - G4VPreCompoundModel(G4ExcitationHandler* ptr = 0, - const G4String& modelName = "PrecompoundModel"); + explicit G4VPreCompoundModel(G4ExcitationHandler* ptr = nullptr, + const G4String& modelName = "PrecompoundModel"); virtual ~G4VPreCompoundModel(); -private: - - // default constructor - //G4VPreCompoundModel(); - // copy constructor - G4VPreCompoundModel(const G4VPreCompoundModel &); - // operators - const G4VPreCompoundModel& operator=(const G4VPreCompoundModel &right); - G4bool operator==(const G4VPreCompoundModel &right) const; - G4bool operator!=(const G4VPreCompoundModel &right) const; - public: - virtual G4HadFinalState * - ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus) = 0; - virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment) = 0; - virtual void DeExciteModelDescription(std::ostream& outFile) const ; - + virtual void DeExciteModelDescription(std::ostream& outFile) const = 0; inline void SetExcitationHandler(G4ExcitationHandler* ptr); @@ -92,6 +77,11 @@ public: private: + G4VPreCompoundModel(const G4VPreCompoundModel &) = delete; + const G4VPreCompoundModel& operator=(const G4VPreCompoundModel &right) = delete; + G4bool operator==(const G4VPreCompoundModel &right) const = delete; + G4bool operator!=(const G4VPreCompoundModel &right) const = delete; + G4ExcitationHandler* theExcitationHandler; }; diff --git a/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc b/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc index 61b854c468..994fb8f185 100644 --- a/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc +++ b/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronicInteraction.cc 88839 2015-03-12 10:30:07Z gcosmo $ +// $Id: G4HadronicInteraction.cc 96490 2016-04-19 06:57:04Z gcosmo $ // // Hadronic Interaction base class // original by H.P. Wellisch @@ -53,12 +53,25 @@ G4HadronicInteraction::~G4HadronicInteraction() registry->RemoveMe(this); } +void G4HadronicInteraction::BuildPhysicsTable(const G4ParticleDefinition&) +{} + +void G4HadronicInteraction::InitialiseModel() +{} + G4double G4HadronicInteraction::SampleInvariantT(const G4ParticleDefinition*, G4double, G4int, G4int) { return 0.0; } + +G4bool G4HadronicInteraction::IsApplicable(const G4HadProjectile&, + G4Nucleus&) +{ + return true; +} + G4double G4HadronicInteraction::GetMinEnergy( const G4Material *aMaterial, const G4Element *anElement ) const diff --git a/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc b/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc index 75ed9f35fc..31ab7d0d1d 100644 --- a/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc +++ b/source/processes/hadronic/models/management/src/G4HadronicInteractionRegistry.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HadronicInteractionRegistry.cc 93882 2015-11-03 08:23:54Z gcosmo $ +// $Id: G4HadronicInteractionRegistry.cc 97302 2016-06-01 09:30:11Z gcosmo $ // // 23-Jan-2009 V.Ivanchenko make the class to be a singleton // 17-Aug-2012 V.Ivanchenko added hadronic model factories @@ -31,11 +31,11 @@ #include "G4HadronicInteractionRegistry.hh" #include "G4HadronicInteraction.hh" -G4ThreadLocal G4HadronicInteractionRegistry* G4HadronicInteractionRegistry::instance = 0; +G4ThreadLocal G4HadronicInteractionRegistry* G4HadronicInteractionRegistry::instance = nullptr; G4HadronicInteractionRegistry* G4HadronicInteractionRegistry::Instance() { - if(!instance) { + if(nullptr == instance) { static G4ThreadLocalSingleton inst; instance = inst.Instance(); } @@ -43,8 +43,9 @@ G4HadronicInteractionRegistry* G4HadronicInteractionRegistry::Instance() } G4HadronicInteractionRegistry::G4HadronicInteractionRegistry() + : isInitialized(false) { - //std::cout << "G4HadronicInteractionRegistry " << this << std::endl; + //G4cout << "G4HadronicInteractionRegistry " << this << G4endl; } G4HadronicInteractionRegistry::~G4HadronicInteractionRegistry() @@ -55,25 +56,33 @@ G4HadronicInteractionRegistry::~G4HadronicInteractionRegistry() void G4HadronicInteractionRegistry::Clean() { size_t nModels = allModels.size(); - //std::cout << "G4HadronicInteractionRegistry::Clean() start " << nModels - // << " " << this << std::endl; + //G4cout << "G4HadronicInteractionRegistry::Clean() start " << nModels + // << " " << this << G4endl; for (size_t i=0; iGetModelName()).c_str(); G4int len = (allModels[i]->GetModelName()).length(); len = std::min(len, 9); const G4String mname = G4String(xxx, len); - //std::cout << "G4HadronicInteractionRegistry: delete " << i << " " + //G4cout << "G4HadronicInteractionRegistry: delete " << i << " " // << allModels[i] << " " << mname - // << " " << this << std::endl; + // << " " << this << G4endl; if(mname != "NeutronHP" && mname != "ParticleH") { delete allModels[i]; } - // std::cout << "done " << this << std::endl; + // G4cout << "done " << this << G4endl; } } allModels.clear(); - //std::cout <<"G4HadronicInteractionRegistry::Clean() is done "<InitialiseModel(); } + } } void @@ -96,8 +105,8 @@ G4HadronicInteractionRegistry::RemoveMe(G4HadronicInteraction * aModel) size_t nModels = allModels.size(); for (size_t i=0; i " << i << std::endl; + //G4cout << "DeRegister model <" << aModel + // << "> " << i << G4endl; allModels[i] = 0; return; } diff --git a/source/processes/hadronic/models/particle_hp/GNUmakefile b/source/processes/hadronic/models/particle_hp/GNUmakefile index fc017d9852..a8762f01e5 100644 --- a/source/processes/hadronic/models/particle_hp/GNUmakefile +++ b/source/processes/hadronic/models/particle_hp/GNUmakefile @@ -11,7 +11,7 @@ endif include $(G4INSTALL)/config/architecture.gmk -CPPFLAGS += -DG4HADRONIC_ALLOC_EXPORT -DG4PHPDEBUG +CPPFLAGS += -DG4HADRONIC_ALLOC_EXPORT CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ diff --git a/source/processes/hadronic/models/particle_hp/History b/source/processes/hadronic/models/particle_hp/History index 6e1e33fd50..2f86c694f0 100644 --- a/source/processes/hadronic/models/particle_hp/History +++ b/source/processes/hadronic/models/particle_hp/History @@ -14,6 +14,101 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +8 June 2016 Tatsumi Koi (hadr-hpp-V10-02-17) +--------------------------------------------------- +- Change default option of GNUmake system "G4PHPDEBUG" was unintentionally activated. + + +2 June 2016 Tatsumi Koi (hadr-hpp-V10-02-16) +--------------------------------------------------- +- Bug fix usage of G4Nucleus::GetBiassedThermalNucleus +- Bug fix for calculation residual A and Z (Bugzilla 1815) +- Both of them effects results only in charged particle projectiles +- Bug fix in sampling of kinematic energy of scattered particle in DiscreteTwoBody (Bugzilla 1815) + + +31 May 2016 Tatsumi Koi (hadr-hpp-V10-02-15) +--------------------------------------------------- +- Bug fix in thermal scattering (Coverity 58647) +- Fix coverity issues 61922 +- Fix compilation error in GNUmake system in previous tag + + +30 May 2016 Tatsumi Koi (hadr-hpp-V10-02-14) +--------------------------------------------------- +- Fix coverity issues 58644 +- Round2 Fix coverity issues 58648 +- Fix warning message in previous tag + + +27 May 2016 Tatsumi Koi (hadr-hpp-V10-02-13) +--------------------------------------------------- +- Fix coverity issues 58622 + + +06 May 2016 Tatsumi Koi (hadr-hpp-V10-02-12) +--------------------------------------------------- +- Fix problem in deletion of models in multithreading mode + + +05 May 2016 V.Ivanchenko (hadr-hpp-V10-02-11) +29 April 2016 Tatsumi Koi (hadr-hpp-V10-02-10) +--------------------------------------------------- +- Fix a warning message from gcc 6.1 + + +30 March 2016 Tatsumi Koi (hadr-hpp-V10-02-09) +--------------------------------------------------- +-A message about a behavior under the activation of fission fragment production +was modified reflecting hyper news comment. + + +4 March 2016 Tatsumi Koi (hadr-hpp-V10-02-08) +--------------------------------------------------- +- Fix coverity issues 58701, 58702, 58703 and 58704 + + +1 March 2016 Tatsumi Koi (hadr-hpp-V10-02-07) +--------------------------------------------------- +- Fix coverity issues 58699 and 58700 + + +18 February 2016 Tatsumi Koi (hadr-hpp-V10-02-06) +--------------------------------------------------- +- Fix on problem on MT library + + +16 February 2016 Tatsumi Koi (hadr-hpp-V10-02-05) +--------------------------------------------------- +- Fixes for problem on materials which have hydrogen or helium in +charged particle hp + + +2 February 2016 Tatsumi Koi (hadr-hpp-V10-02-04) +--------------------------------------------------- +- Fix problem in deletion of cross section data set in multithreading mode + + +25 January 2016 Tatsumi Koi (hadr-hpp-V10-02-03) +--------------------------------------------------- +- Fix coverity issues 58648 and 61705 + + +15 January 2016 Tatsumi Koi (hadr-hpp-V10-02-02) +--------------------------------------------------- +- Fix coverity issues 58693, 58694 and 58695 + + +12 January 2016 Tatsumi Koi (hadr-hpp-V10-02-01) +--------------------------------------------------- +- Fix coverity issues 53477 and 53481 + + +7 January 2016 Tatsumi Koi (hadr-hpp-V10-02-00) +--------------------------------------------------- +- Fix coverity issues 58696, 58697, 58723 and 58729 + + 20 November 2015 Tatsumi Koi (hadr-hpp-V10-01-31) --------------------------------------------------- - Fix for solving reproducibility problem diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPAngularP.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPAngularP.hh index 65f14a56a3..f0e496b357 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPAngularP.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPAngularP.hh @@ -41,8 +41,10 @@ class G4ParticleHPAngularP G4ParticleHPAngularP() { - theCosTh = 0; - theProb = 0; + theCosTh = NULL; + theProb = NULL; + theEnergy = 0.; + nCoeff = 0; } ~G4ParticleHPAngularP() { diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCapture.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCapture.hh index bc4b1e7956..38ce901f65 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCapture.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCapture.hh @@ -66,7 +66,6 @@ class G4ParticleHPCapture : public G4HadronicInteraction private: - G4double * xSec; std::vector* theCapture; G4String dirName; G4int numEle; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCaptureData.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCaptureData.hh index 130a8e1491..a013f63b90 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCaptureData.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPCaptureData.hh @@ -92,6 +92,7 @@ class G4ParticleHPCaptureData : public G4VCrossSectionDataSet G4PhysicsTable * theCrossSections; G4bool onFlightDB; + G4bool instanceOfWorker; }; #endif diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContAngularPar.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContAngularPar.hh index 1b7301b470..c037f7ab89 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContAngularPar.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContAngularPar.hh @@ -50,7 +50,10 @@ class G4ParticleHPContAngularPar G4bool fresh; G4double currentMeanEnergy; G4double remaining_energy; - toBeCached():fresh(true),currentMeanEnergy(-2.0),remaining_energy(0.0){}; + G4double theTargetCode; + G4ReactionProduct* theTarget; + G4ReactionProduct* thePrimary; + toBeCached():fresh(true),currentMeanEnergy(-2.0),remaining_energy(0.0),theTargetCode(-1.0),theTarget(NULL),thePrimary(NULL){}; }; public: @@ -63,6 +66,12 @@ class G4ParticleHPContAngularPar fCache.Put(NULL); theMinEner = DBL_MAX; theMaxEner = -DBL_MAX; + theEnergy = -1; + nEnergies = -1; + nDiscreteEnergies = -1; + nAngularParameters = -1; + theProjectile = NULL; + adjustResult = true; } G4ParticleHPContAngularPar(G4ParticleDefinition* projectile); @@ -83,15 +92,15 @@ class G4ParticleHPContAngularPar void SetPrimary(G4ReactionProduct * aPrimary) { - thePrimary = aPrimary; + fCache.Get()->thePrimary = aPrimary; } void SetTarget(G4ReactionProduct * aTarget) { - theTarget = aTarget; + fCache.Get()->theTarget = aTarget; } - void SetTargetCode(G4double aTargetCode) { theTargetCode = aTargetCode; } + void SetTargetCode(G4double aTargetCode) { fCache.Get()->theTargetCode = aTargetCode; } void SetInterpolation(G4int theInterpolation) { @@ -170,9 +179,9 @@ private: G4ParticleHPInterpolator theInt; - G4double theTargetCode; - G4ReactionProduct * theTarget; - G4ReactionProduct * thePrimary; + //G4double theTargetCode; + //G4ReactionProduct * theTarget; + //G4ReactionProduct * thePrimary; //G4double currentMeanEnergy; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContEnergyAngular.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContEnergyAngular.hh index 537e145c7e..6d4650df0b 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContEnergyAngular.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPContEnergyAngular.hh @@ -52,6 +52,10 @@ class G4ParticleHPContEnergyAngular : public G4VParticleHPEnergyAngular { theAngular = 0; currentMeanEnergy.Put( -2 ); + theTargetCode = -1.0; + theAngularRep = -1; + nEnergy = -1; + theInterpolation = -1; } ~G4ParticleHPContEnergyAngular() diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElastic.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElastic.hh index 6f2c184ec2..cbbe554ce1 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElastic.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElastic.hh @@ -71,7 +71,6 @@ class G4ParticleHPElastic : public G4HadronicInteraction private: std::vector* theElastic; - G4double * xSec; G4String dirName; G4int numEle; G4bool overrideSuspension; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElasticData.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElasticData.hh index a31fb060f6..f3fffc918c 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElasticData.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPElasticData.hh @@ -91,6 +91,7 @@ class G4ParticleHPElasticData : public G4VCrossSectionDataSet G4PhysicsTable * theCrossSections; G4bool onFlightDB; + G4bool instanceOfWorker; }; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFSFissionFS.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFSFissionFS.hh index 1425b6f517..529bbea810 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFSFissionFS.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFSFissionFS.hh @@ -65,7 +65,7 @@ class G4ParticleHPFSFissionFS : public G4ParticleHPFinalState return theNew; } - inline G4double GetMass(){ return targetMass; } + inline G4double GetMass(){ return theFinalStateNeutrons.GetTargetMass(); } void SampleNeutronMult(G4int&all, G4int&Prompt, @@ -95,7 +95,7 @@ class G4ParticleHPFSFissionFS : public G4ParticleHPFinalState private: G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { return 0; } - G4double targetMass; + //G4double targetMass; G4ParticleHPParticleYield theFinalStateNeutrons; G4ParticleHPEnergyDistribution thePromptNeutronEnDis; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFission.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFission.hh index 4cd08bebce..aa7113ac2d 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFission.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFission.hh @@ -69,7 +69,6 @@ class G4ParticleHPFission : public G4HadronicInteraction private: - G4double * xSec; //G4ParticleHPChannel * theFission; std::vector* theFission; G4String dirName; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionData.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionData.hh index 1de481da1b..525a9a7733 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionData.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionData.hh @@ -86,6 +86,7 @@ class G4ParticleHPFissionData : public G4VCrossSectionDataSet G4PhysicsTable * theCrossSections; G4bool onFlightDB; + G4bool instanceOfWorker; }; #endif diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionERelease.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionERelease.hh index 7cf3917335..c0bbb3be3e 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionERelease.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFissionERelease.hh @@ -47,6 +47,7 @@ class G4ParticleHPFissionERelease , delayedNeutronKinetic( 0.0 ) , promptGammaEnergy( 0.0 ) , delayedGammaEnergy( 0.0 ) + , delayedBetaEnergy( 0.0 ) , neutrinoEnergy( 0.0 ) , reducedTotalEnergy( 0.0 ) { diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPHash.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPHash.hh index a5fd0eaebe..ba7d013fa7 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPHash.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPHash.hh @@ -50,6 +50,7 @@ public: { theIndex = aHash.theIndex; theData = aHash.theData; + prepared = aHash.prepared; if(aHash.theUpper != 0) { theUpper = new G4ParticleHPHash(*(aHash.theUpper)); diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelastic.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelastic.hh index 20ef291e65..2ac1a6d69d 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelastic.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelastic.hh @@ -105,7 +105,6 @@ class G4ParticleHPInelastic : public G4HadronicInteraction protected: - G4double * xSec; //G4ParticleHPChannelList * theInelastic; // one List per element std::vector* theInelastic; // one List per element G4String dirName; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelasticData.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelasticData.hh index d40d9f06ea..bfcdac5c4e 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelasticData.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPInelasticData.hh @@ -102,6 +102,8 @@ class G4ParticleHPInelasticData : public G4VCrossSectionDataSet G4ParticleHPData* theHPData; + G4bool instanceOfWorker; + //char envVariable[500]; }; diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPLabAngularEnergy.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPLabAngularEnergy.hh index 1d642d584b..2c4190ece1 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPLabAngularEnergy.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPLabAngularEnergy.hh @@ -49,6 +49,8 @@ class G4ParticleHPLabAngularEnergy : public G4VParticleHPEnergyAngular theData = 0; nCosTh = 0; theSecondManager = 0; + nEnergies = -1; + currentMeanEnergy = -1.0; } ~G4ParticleHPLabAngularEnergy() { diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPList.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPList.hh index daf3d64939..ebf0c6412b 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPList.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPList.hh @@ -42,6 +42,7 @@ class G4ParticleHPList theData = new G4double[2]; nPoints=2; nEntries=0; + theLabel=0.0; } ~G4ParticleHPList() diff --git a/source/processes/hadronic/models/particle_hp/src/G4FPYBiasedLightFragmentDist.cc b/source/processes/hadronic/models/particle_hp/src/G4FPYBiasedLightFragmentDist.cc index ee81a6e62c..c6240d674a 100755 --- a/source/processes/hadronic/models/particle_hp/src/G4FPYBiasedLightFragmentDist.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4FPYBiasedLightFragmentDist.cc @@ -112,6 +112,8 @@ G4FFG_FUNCTIONENTER__ IsHeavy = (Particle->GetAtomicMass() > HalfWeight_); IsNotFeasable = (Particle->GetAtomicMass() > RemainingA_ + 1 || Particle->GetAtomicNumber() > RemainingZ_ + 1); + + Counter++; } while (IsHeavy || IsNotFeasable); // Loop checking, 11.05.2015, T. Koi // Something went wrong, so figure out how to fix it diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc index 02748a67ae..a0ca7796f3 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc @@ -81,13 +81,13 @@ G4ParticleHPCapture::~G4ParticleHPCapture() { //delete [] theCapture; -// G4cout << "Leaving G4ParticleHPCapture::~G4ParticleHPCapture"<::iterator - ite = theCapture->begin() ; ite != theCapture->end() ; ite++ ) - { - delete *ite; + if ( theCapture != NULL ) { + for ( std::vector::iterator + ite = theCapture->begin() ; ite != theCapture->end() ; ite++ ) { + delete *ite; + } + theCapture->clear(); } - theCapture->clear(); } #include "G4ParticleHPThermalBoost.hh" @@ -103,7 +103,7 @@ G4int index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) { - xSec = new G4double[n]; + G4double* xSec = new G4double[n]; G4double sum=0; G4int i; const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc index be2d27e94b..d059523560 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc @@ -56,12 +56,16 @@ G4ParticleHPCaptureData::G4ParticleHPCaptureData() theCrossSections = 0; onFlightDB = true; + instanceOfWorker = false; + if ( G4Threading::IsWorkerThread() ) { + instanceOfWorker = true; + } //BuildPhysicsTable(*G4Neutron::Neutron()); } G4ParticleHPCaptureData::~G4ParticleHPCaptureData() { - if ( theCrossSections != NULL ) { + if ( theCrossSections != NULL && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; theCrossSections = NULL; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc index 5e2b7b9a6b..0f193e0e3d 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc @@ -84,14 +84,16 @@ if ( HasFSData() && !G4ParticleHPManager::GetInstance()->GetUseOnlyPhotoEvaporation() ) { //NDL has final state data - if ( hasExactMF6 ) - { + if ( hasExactMF6 ) { theMF6FinalState.SetTarget(theTarget); theMF6FinalState.SetProjectileRP(theNeutron); thePhotons = theMF6FinalState.Sample( eKinetic ); - } - else + } else { thePhotons = theFinalStatePhotons.GetPhotons(eKinetic); + } + if ( thePhotons == NULL ) { + throw G4HadronicException(__FILE__, __LINE__, "Final state data for photon is not properly allocated"); + } } else { @@ -141,7 +143,7 @@ // add them to the final state G4int nPhotons = 0; - if(thePhotons!=0) nPhotons=thePhotons->size(); + nPhotons=thePhotons->size(); ///* if ( DoNotAdjustFinalState() ) { diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc index e527c03c29..dd5a2522a5 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc @@ -57,7 +57,7 @@ #include "G4IonTable.hh" #include -G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* projectile) +G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* projectile ) { theAngular = 0; fCache.Get()->currentMeanEnergy = -2; @@ -518,12 +518,12 @@ G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* pr G4double incidentMass = theProjectile->GetPDGMass(); G4double productEnergy = fsEnergy; G4double productMass = result->GetMass(); - G4int targetZ = G4int(theTargetCode/1000); - G4int targetA = G4int(theTargetCode-1000*targetZ); + G4int targetZ = G4int(fCache.Get()->theTargetCode/1000); + G4int targetA = G4int(fCache.Get()->theTargetCode-1000*targetZ); // To correspond to natural composition (-nat-) data files. if ( targetA == 0 ) - targetA = G4int ( theTarget->GetMass()/amu_c2 + 0.5 ); - G4double targetMass = theTarget->GetMass(); + targetA = G4int ( fCache.Get()->theTarget->GetMass()/amu_c2 + 0.5 ); + G4double targetMass = fCache.Get()->theTarget->GetMass(); G4int residualA = targetA+1-A; G4int residualZ = targetZ-Z; G4double residualMass = residualZ*G4Proton::Proton()->GetPDGMass(); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc index 8580d643db..168a1e3fad 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc @@ -65,12 +65,13 @@ G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile ) theData.clear(); } -G4ParticleHPData * G4ParticleHPData::Instance(G4ParticleDefinition* projectile) + G4ParticleHPData * G4ParticleHPData::Instance(G4ParticleDefinition* projectile) { static G4ThreadLocal G4ParticleHPData *theCrossSectionData_G4MT_TLS_ = 0 ; - if (!theCrossSectionData_G4MT_TLS_) theCrossSectionData_G4MT_TLS_ = new G4ParticleHPData(projectile) ; G4ParticleHPData &theCrossSectionData = *theCrossSectionData_G4MT_TLS_; + if ( !theCrossSectionData_G4MT_TLS_ ) theCrossSectionData_G4MT_TLS_ = new G4ParticleHPData(projectile); + G4ParticleHPData &theCrossSectionData = *theCrossSectionData_G4MT_TLS_; return &theCrossSectionData; - } + } G4PhysicsVector * G4ParticleHPData::DoPhysicsVector(G4ParticleHPVector * theVector) { diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPDiscreteTwoBody.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPDiscreteTwoBody.cc index 7ecde50dac..e0462c0d4b 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPDiscreteTwoBody.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPDiscreteTwoBody.cc @@ -307,7 +307,9 @@ G4ReactionProduct * G4ParticleHPDiscreteTwoBody::Sample(G4double anEnergy, G4dou //G4double kinE = restEnergy/(1+result->GetMass()/residualMass); // non relativistic @@ G4double A1 = GetTarget()->GetMass()/GetProjectileRP()->GetMass(); G4double A1prim = result->GetMass()/GetProjectileRP()->GetMass(); - G4double E1 = (A1+1)*(A1+1)/A1/A1*anEnergy; + //G4double E1 = (A1+1)*(A1+1)/A1/A1*anEnergy; + //Bug fix Bugzilla #1815 + G4double E1 = anEnergy; G4double kinE = (A1+1-A1prim)/(A1+1)/(A1+1)*(A1*E1+(1+A1)*GetQValue()); result->SetKineticEnergy(kinE); // non relativistic @@ diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc index 252ddf31d8..9f3a138a8b 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc @@ -74,14 +74,13 @@ G4ParticleHPElastic::~G4ParticleHPElastic() { //delete [] theElastic; - /* - for ( std::vector::iterator - it = theElastic.begin() ; it != theElastic.end() ; it++ ) - { - delete *it; + if ( theElastic != NULL ) { + for ( std::vector::iterator + it = theElastic->begin() ; it != theElastic->end() ; it++ ) { + delete *it; + } + theElastic->clear(); } - */ - theElastic->clear(); } #include "G4ParticleHPThermalBoost.hh" @@ -98,7 +97,7 @@ if(n!=1) { G4int i; - xSec = new G4double[n]; + G4double* xSec = new G4double[n]; G4double sum=0; const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc index f6de364f6c..8afd646bc7 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc @@ -54,12 +54,16 @@ G4ParticleHPElasticData::G4ParticleHPElasticData() theCrossSections = 0; onFlightDB = true; + instanceOfWorker = false; + if ( G4Threading::IsWorkerThread() ) { + instanceOfWorker = true; + } // BuildPhysicsTable( *G4Neutron::Neutron() ); } G4ParticleHPElasticData::~G4ParticleHPElasticData() { - if ( theCrossSections != NULL ) { + if ( theCrossSections != NULL && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; theCrossSections = NULL; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc index bfb214302c..3aa739cc75 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc @@ -95,7 +95,7 @@ break; } } - targetMass = theFinalStateNeutrons.GetTargetMass(); + //targetMass = theFinalStateNeutrons.GetTargetMass(); //theData.close(); } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc index 896fb831be..a9fd8bbf56 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc @@ -79,12 +79,13 @@ G4ParticleHPFission::~G4ParticleHPFission() { //delete [] theFission; - for ( std::vector::iterator - it = theFission->begin() ; it != theFission->end() ; it++ ) - { - delete *it; + if ( theFission != NULL ) { + for ( std::vector::iterator + it = theFission->begin() ; it != theFission->end() ; it++ ) { + delete *it; + } + theFission->clear(); } - theFission->clear(); } #include "G4ParticleHPThermalBoost.hh" @@ -97,7 +98,7 @@ G4int index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) { - xSec = new G4double[n]; + G4double* xSec = new G4double[n]; G4double sum=0; G4int i; const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc index 7cc47396bf..be47eb8b63 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc @@ -52,12 +52,16 @@ G4ParticleHPFissionData::G4ParticleHPFissionData() theCrossSections = 0; onFlightDB = true; + instanceOfWorker = false; + if ( G4Threading::IsWorkerThread() ) { + instanceOfWorker = true; + } //BuildPhysicsTable(*G4Neutron::Neutron()); } G4ParticleHPFissionData::~G4ParticleHPFissionData() { - if ( theCrossSections != NULL ) { + if ( theCrossSections != NULL && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; theCrossSections = NULL; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc index 374dae9534..dc7d474532 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc @@ -52,13 +52,12 @@ theFF.Init(A, Z, M, dirName, aFSType, projectile); if ( G4ParticleHPManager::GetInstance()->GetProduceFissionFragments() && theFF.HasFSData() ) { - G4cout << "Activate Fission Fragments Production for the target isotope of " + G4cout << "Fission fragment production is now activated in HP package for " << "Z = " << (G4int)Z << ", A = " << (G4int)A //<< "M = " << M << G4endl; - G4cout << "As the result, delayed neutrons are omitted and they should be taken care by RadioaActiveDecay." - << G4endl; + G4cout << "As currently modeled this option precludes production of delayed neutrons from fission fragments." << G4endl; produceFissionFragments = true; } } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc index fd14da1b81..05f618d80d 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc @@ -221,12 +221,11 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w { // delete [] theInelastic; if ( theInelastic != NULL ) { - for ( std::vector::iterator - it = theInelastic->begin() ; it != theInelastic->end() ; it++ ) - { - delete *it; - } - theInelastic->clear(); + for ( std::vector::iterator + it = theInelastic->begin() ; it != theInelastic->end() ; it++ ) { + delete *it; + } + theInelastic->clear(); } } @@ -241,7 +240,7 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w G4int it=0; if(n!=1) { - xSec = new G4double[n]; + G4double* xSec = new G4double[n]; G4double sum=0; G4int i; const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); @@ -251,7 +250,7 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w { index = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; - if(aTrack.GetDefinition() == G4Neutron::Neutron() ) { + if ( aTrack.GetDefinition() == G4Neutron::Neutron() ) { xSec[i] = ((*theInelastic)[index])->GetXsec(aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature())); @@ -532,6 +531,7 @@ void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projec if ( itry == 6 ) { // No Final State at all. + /* G4bool exceptional = false; if ( (*(G4Element::GetElementTable()))[i]->GetNumberOfIsotopes() == 1 ) { @@ -541,6 +541,16 @@ void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projec 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"); } + */ + if ( G4ParticleHPManager::GetInstance()->GetVerboseLevel() > 1 ) { + 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; + } + G4cout << "No possible final state data of the element is found in " << dataDirVariable << "." << G4endl; + } } } hpmanager->RegisterInelasticFinalStates( &projectile , theInelastic ); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc index 61a609a502..115b8908ad 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc @@ -197,8 +197,10 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, G4double targetMass; G4double eps = 0.0001; targetMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))) / - theProjectile->GetPDGMass(); + //theProjectile->GetPDGMass(); + G4Neutron::Neutron()->GetPDGMass(); + //give priority to ENDF vales for target mass if(theEnergyAngData!=0) { targetMass = theEnergyAngData->GetTargetMass(); } if(theAngularDistribution!=0) @@ -210,13 +212,17 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, 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; - targetMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))) / theProjectile->GetPDGMass(); + //targetMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))) / theProjectile->GetPDGMass(); + targetMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))) / G4Neutron::Neutron()->GetPDGMass(); } G4Nucleus aNucleus; G4ReactionProduct theTarget; - G4ThreeVector neuVelo = (1./hadProjectile->GetDefinition()->GetPDGMass())*incidReactionProduct.GetMomentum(); - theTarget = aNucleus.GetBiasedThermalNucleus( targetMass, neuVelo, theTrack.GetMaterial()->GetTemperature()); + //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()); theTarget.SetDefinition( G4IonTable::GetIonTable()->GetIon( G4int(theBaseZ), G4int(theBaseA) , 0.0 ) ); @@ -280,7 +286,11 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, } G4ReactionProductVector * tmpHadrons = 0; - G4int ii = 0, dummy; +#ifdef G4PHPDEBUG + //To avoid compilation error around line 532. + G4int ii(0); +#endif + G4int dummy; unsigned int i; if(theEnergyAngData != 0) @@ -319,22 +329,24 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, G4bool * Done = new G4bool[nDef]; G4int i0; for(i0=0; i0size(); i++) - { - for(ii=0; iioperator[](i)->GetDefinition() == theDefs[ii]) - Done[ii] = true; - } +// } +// else +// { +// for(i=0; isize(); 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; +// if( getenv("G4ParticleHPDebug")) G4cout << " G4ParticleHPInelasticBaseFS::BaseApply secondary previously added " << tmpHadrons->operator[](i)->GetDefinition()->GetParticleName() << " E= " << tmpHadrons->operator[](i)->GetKineticEnergy() << G4endl; #endif - } +// } G4ReactionProduct * aHadron; G4double localMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))); G4ThreeVector bufferedDirection(0,0,0); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc index 70d15d98dd..b569f9cf50 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc @@ -246,8 +246,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile & theTrac G4double targetMass=0; G4double eps = 0.0001; - targetMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))) / - theProjectile->GetPDGMass(); + targetMass = G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps)); #ifdef G4PHPDEBUG if( getenv("G4ParticleHPDebug")) G4cout <GetDefinition()->GetParticleName() <GetTargetMass(); G4ReactionProduct theTarget; G4Nucleus aNucleus; - G4ThreeVector neuVelo = (1./hadProjectile->GetDefinition()->GetPDGMass())*incidReactionProduct.GetMomentum(); - theTarget = aNucleus.GetBiasedThermalNucleus( targetMass, neuVelo, theTrack.GetMaterial()->GetTemperature()); + //G4ThreeVector neuVelo = (1./hadProjectile->GetDefinition()->GetPDGMass())*incidReactionProduct.GetMomentum(); + //theTarget = aNucleus.GetBiasedThermalNucleus( targetMass/hadProjectile->GetDefinition()->GetPDGMass() , 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/G4Neutron::Neutron()->GetPDGMass() + , neuVelo, theTrack.GetMaterial()->GetTemperature() ); + theTarget.SetDefinition( G4IonTable::GetIonTable()->GetIon( G4int(theBaseZ), G4int(theBaseA) , 0.0 ) ); //XX // prepare the residual mass G4double residualMass=0; - G4double residualZ = theBaseZ - aDefinition->GetPDGCharge(); - G4double residualA = theBaseA - aDefinition->GetBaryonNumber()+1; - residualMass = ( G4NucleiProperties::GetNuclearMass(static_cast(residualA+eps), static_cast(residualZ+eps)) ) / - theProjectile->GetPDGMass(); + 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 G4ReactionProduct boosted; @@ -287,7 +290,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile & theTrac G4ReactionProduct aHadron; aHadron.SetDefinition(aDefinition); // what if only cross-sections exist ==> Na 23 11 @@@@ G4double availableEnergy = incidReactionProduct.GetKineticEnergy() + incidReactionProduct.GetMass() - aHadron.GetMass() + - (targetMass - residualMass)*theProjectile->GetPDGMass(); + (targetMass - residualMass); //080730c if ( availableEnergy < 0 ) { @@ -305,8 +308,8 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile & theTrac // TK Excitation level is not determined iLevel=-1; - aHadron.SetKineticEnergy(availableEnergy*residualMass*theProjectile->GetPDGMass()/ - (aHadron.GetMass()+residualMass*theProjectile->GetPDGMass())); + aHadron.SetKineticEnergy(availableEnergy*residualMass/ + (aHadron.GetMass()+residualMass)); //aHadron.SetMomentum(incidReactionProduct.GetMomentum()*(1./incidReactionProduct.GetTotalMomentum())* // std::sqrt(aHadron.GetTotalEnergy()*aHadron.GetTotalEnergy()- @@ -519,7 +522,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile & theTrac { G4ReactionProductVector * theNext = theFinalStatePhotons[j]->GetPhotons(anEnergy); - thePhotons->push_back(theNext->operator[](0)); + if ( thePhotons != NULL ) thePhotons->push_back(theNext->operator[](0)); aBaseEnergy = testEnergy-theNext->operator[](0)->GetTotalEnergy(); delete theNext; foundMatchingLevel = true; @@ -535,7 +538,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile & theTrac { G4ReactionProductVector * theNext = theFinalStatePhotons[closest]->GetPhotons(anEnergy); - thePhotons->push_back(theNext->operator[](0)); + if ( thePhotons != NULL ) thePhotons->push_back(theNext->operator[](0)); aBaseEnergy = aBaseEnergy-theNext->operator[](0)->GetTotalEnergy(); delete theNext; } @@ -777,7 +780,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile & theTrac adjust_final_state ( init_4p_lab ); // clean up the primary neutron - theResult.Get()->SetStatusChange(stopAndKill); + theResult.Get()->SetStatusChange( stopAndKill ); } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc index de305ae82d..93a66929b8 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc @@ -83,14 +83,17 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje theProjectile=projectile; theHPData = NULL; + instanceOfWorker = false; if ( G4Threading::IsMasterThread() ) { theHPData = new G4ParticleHPData( theProjectile ); + } else { + instanceOfWorker = true; } } G4ParticleHPInelasticData::~G4ParticleHPInelasticData() { - if ( theCrossSections != NULL ) { + if ( theCrossSections != NULL && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; theCrossSections = NULL; @@ -268,8 +271,7 @@ GetCrossSection(const G4DynamicParticle* projectile, const G4Element*anE, G4doub G4double theA = anE->GetN(); G4double theZ = anE->GetZ(); G4double eleMass; - eleMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theA+eps), static_cast(theZ+eps)) - ) / theProjectile->GetPDGMass(); + eleMass = G4NucleiProperties::GetNuclearMass(static_cast(theA+eps), static_cast(theZ+eps) ); G4ReactionProduct boosted; G4double aXsection; @@ -290,7 +292,9 @@ GetCrossSection(const G4DynamicParticle* projectile, const G4Element*anE, G4doub { counter ++; #endif - G4ReactionProduct aThermalNuc = aNuc.GetThermalNucleus(eleMass, aT); + //G4ReactionProduct aThermalNuc = aNuc.GetThermalNucleus( eleMass/theProjectile->GetPDGMass(), 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); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPNames.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPNames.cc index 29052a921e..e840c5114d 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPNames.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPNames.cc @@ -147,7 +147,7 @@ if(getenv("NeutronHPNames")) G4cout <<"HPWD 1 "<<*theName<find( ielement )->second->find ( v_temp.back() )->second; + pvE_p_TH = coherentFSs->find( ielement )->second->find ( v_temp.back() )->second; std::vector< G4double >::iterator itv; itv = v_temp.end(); itv--; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPVector.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPVector.cc index e17edb1cad..dd3a1b46cc 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPVector.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPVector.cc @@ -93,7 +93,6 @@ the15percentBorderCash = -DBL_MAX; the50percentBorderCash = -DBL_MAX; label = -DBL_MAX; - } G4ParticleHPVector::G4ParticleHPVector(G4int n) @@ -108,6 +107,7 @@ maxValue = -DBL_MAX; the15percentBorderCash = -DBL_MAX; the50percentBorderCash = -DBL_MAX; + label = -DBL_MAX; } G4ParticleHPVector::~G4ParticleHPVector() diff --git a/source/processes/hadronic/models/particle_hp/src/G4WendtFissionFragmentGenerator.cc b/source/processes/hadronic/models/particle_hp/src/G4WendtFissionFragmentGenerator.cc index 9bd30e427a..03c8d229f9 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4WendtFissionFragmentGenerator.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4WendtFissionFragmentGenerator.cc @@ -95,7 +95,8 @@ G4FFG_FUNCTIONENTER__ } //TK modified 131108 add next line - finalState->SetStatusChange(stopAndKill); + //TK 160112 fix for coverity #53481 + if ( finalState != NULL ) finalState->SetStatusChange(stopAndKill); G4FFG_FUNCTIONLEAVE__ return finalState; } diff --git a/source/processes/hadronic/models/parton_string/diffraction/History b/source/processes/hadronic/models/parton_string/diffraction/History index 2af386fba9..a86c77eb98 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/History +++ b/source/processes/hadronic/models/parton_string/diffraction/History @@ -1,4 +1,4 @@ -$Id: History 92048 2015-08-14 07:24:57Z gcosmo $ +$Id: History 97394 2016-06-02 10:13:06Z gcosmo $ ------------------------------------------------------------------- ========================================================== @@ -14,6 +14,35 @@ code and to keep track of all tags. --------------------------------------------------------------- * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- + 1-June-2016 V. Uzhinsky (hadr-string-diff-V10-02-04) + Fine tuning of G4DiffractiveExcitation.cc of FTFmodel has been done + to describe NA49 exp. data, especially, on Xf. + +28-May-2016 V. Uzhinsky (hadr-string-diff-V10-02-03) +- Various for diffr. and non-diffr. interactions were introduced + in G4FTFModel.cc for NA49 and NA61/SHINE exp. data. + +23-May-2016 V. Uzhinsky (hadr-string-diff-V10-02-02) +- Tunning of FTF model parameters has been done. + +17-May-2016 V. Uzhinsky (hadr-string-diff-V10-02-01) +- FTF model was essential improved: + Smearing of Delta-isobar mass was introduced; + Delta-isobars are now treated as a kinetic track; + Parameterisation the quark exchange process with excitation is improved also. + Na61/SHINE exp. data on Pi+, Pi-, K+, K- and protons in PP interactions at + 20, 31, 40, 80 and 158 GeV/c are described. The ratio of / + in PP interactions is reproduced. The kink in AA interactions does not described. + +5-May-2016 V. Uzhinsky (hadr-string-diff-V10-02-00) +- A bug was fixed in G4FTFModel for nucleus-nucleus interactions + if ( G4UniformRand() < + ( 1.0 - target->GetSoftCollisionCount() / MaxNumOfInelCollisions ) * // Uzhi March 2015 + ( 1.0 - projectile->GetSoftCollisionCount() / MaxNumOfInelCollisions ) ) { + + There are also some improvements in sampling of kinematical variables. + +- G4FTFAnnihilation was improved. Now the code create Pi0, Eta and Eta_prime. 13-Aug-2015 A. Ribon (hadr-string-diff-V10-01-14) - G4FTFModel and G4DiffractiveExcitation : Coverity fixes. 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 9afc9cafa9..eb8ec14d71 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4DiffractiveExcitation.cc 92048 2015-08-14 07:24:57Z gcosmo $ +// $Id: G4DiffractiveExcitation.cc 97394 2016-06-02 10:13:06Z gcosmo $ // // ------------------------------------------------------------ @@ -114,73 +114,76 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje G4int TargetPDGcode = target->GetDefinition()->GetPDGEncoding(); G4int absTargetPDGcode = std::abs( TargetPDGcode ); G4double M0target = Ptarget.mag(); - //G4double TargetRapidity = Ptarget.rapidity(); + G4double TargetRapidity = Ptarget.rapidity(); // Kinematical properties of the interactions - G4LorentzVector Psum = Pprojectile + Ptarget; // 4-momentum in CMS + G4LorentzVector Psum = Pprojectile + Ptarget; // Total 4-momentum in Lab. G4double S = Psum.mag2(); G4double SqrtS = std::sqrt( S ); - //Uzhi_SqrtS = std::sqrt( S ); // Check off-shellness of the participants - G4SampleResonance BrW; // Uzhi Oct. 2014 + G4SampleResonance BrW; G4bool PutOnMassShell( false ); - G4double MminProjectile(0.); // Uzhi Oct. 2014 - MminProjectile = BrW.GetMinimumMass(projectile->GetDefinition()); // Uzhi Oct. 2014 -//G4double M0projectile = MminProjectile; // With de-excitation Uzhi Oct. 2014 -//G4double M0projectile = Pprojectile.mag(); // Without de-excitation, see above + G4double MminProjectile = BrW.GetMinimumMass(projectile->GetDefinition()); +//G4double M0projectile = MminProjectile; // With de-excitation +//G4double M0projectile = Pprojectile.mag(); // Without de-excitation if ( M0projectile < MminProjectile ) { PutOnMassShell = true; - M0projectile = BrW.SampleMass(projectile->GetDefinition(),projectile->GetDefinition()->GetPDGMass() + 5.0*projectile->GetDefinition()->GetPDGWidth()); + M0projectile = BrW.SampleMass(projectile->GetDefinition(), + projectile->GetDefinition()->GetPDGMass() + + 5.0*projectile->GetDefinition()->GetPDGWidth() ); } G4double M0projectile2 = M0projectile * M0projectile; - G4double ProjectileDiffStateMinMass = theParameters->GetProjMinDiffMass(); // Uzhi Oct 2014 - G4double ProjectileNonDiffStateMinMass = theParameters->GetProjMinNonDiffMass(); // Uzhi Oct 2014 - if ( M0projectile > ProjectileDiffStateMinMass ) { // Uzhi Oct 2014 + G4double ProjectileDiffStateMinMass = theParameters->GetProjMinDiffMass(); + G4double ProjectileNonDiffStateMinMass = theParameters->GetProjMinNonDiffMass(); + if ( M0projectile > ProjectileDiffStateMinMass ) { ProjectileDiffStateMinMass = M0projectile + 220.0*MeV; ProjectileNonDiffStateMinMass = M0projectile + 220.0*MeV; - if(absProjectilePDGcode > 3000) { // Strange baryon // Uzhi Nov. 2014 - ProjectileDiffStateMinMass += 140.0*MeV; // Uzhi Nov. 2014 - ProjectileNonDiffStateMinMass += 140.0*MeV; // Uzhi Nov. 2014 - } // Uzhi Nov. 2014 + if(absProjectilePDGcode > 3000) { // Strange baryon + ProjectileDiffStateMinMass += 140.0*MeV; + ProjectileNonDiffStateMinMass += 140.0*MeV; + } } - G4double MminTarget(0.); // Uzhi Oct. 2014 - MminTarget = BrW.GetMinimumMass(target->GetDefinition()); // Uzhi Oct. 2014 + G4double MminTarget = BrW.GetMinimumMass(target->GetDefinition()); if ( M0target < MminTarget ) { PutOnMassShell = true; - M0target = BrW.SampleMass(target->GetDefinition(),target->GetDefinition()->GetPDGMass() + 5.0*target->GetDefinition()->GetPDGWidth()); + M0target = BrW.SampleMass(target->GetDefinition(), + target->GetDefinition()->GetPDGMass() + + 5.0*target->GetDefinition()->GetPDGWidth() ); } G4double M0target2 = M0target * M0target; - G4double TargetDiffStateMinMass = theParameters->GetTarMinDiffMass(); // Uzhi Oct 2014 - G4double TargetNonDiffStateMinMass = theParameters->GetTarMinNonDiffMass(); // Uzhi Oct 2014 - if ( M0target > TargetDiffStateMinMass ) { // Uzhi Oct 2014 + G4double TargetDiffStateMinMass = theParameters->GetTarMinDiffMass(); + G4double TargetNonDiffStateMinMass = theParameters->GetTarMinNonDiffMass(); + if ( M0target > TargetDiffStateMinMass ) { TargetDiffStateMinMass = M0target + 220.0*MeV; TargetNonDiffStateMinMass = M0target + 220.0*MeV; - if(absTargetPDGcode > 3000) { // Strange baryon // Uzhi Nov. 2014 - TargetDiffStateMinMass += 140.0*MeV; // Uzhi Nov. 2014 - TargetNonDiffStateMinMass += 140.0*MeV; // Uzhi Nov. 2014 - } // Uzhi Nov. 2014 + if(absTargetPDGcode > 3000) { // Strange baryon + TargetDiffStateMinMass += 140.0*MeV; + TargetNonDiffStateMinMass += 140.0*MeV; + } }; #ifdef debugFTFexictation G4cout << "Proj Targ PDGcodes " << ProjectilePDGcode << " " << TargetPDGcode << G4endl << "M0projectile Y " << M0projectile << " " << ProjectileRapidity << G4endl; - //G4cout << "M0target Y " << M0target << " " << TargetRapidity << G4endl; + G4cout << "M0target Y " << M0target << " " << TargetRapidity << G4endl; G4cout << "Pproj " << Pprojectile << G4endl << "Ptarget " << Ptarget << G4endl; #endif G4double AveragePt2 = theParameters->GetAveragePt2(); -// G4double ProbLogDistrPrD = theParameters->GetProbLogDistrPrD(); // Uzhi Oct 2014 *** + G4double DiffrAveragePt2 =theParameters->GetAvaragePt2ofElasticScattering()*1.5; + +// G4double ProbLogDistrPrD = theParameters->GetProbLogDistrPrD(); // It is not clear, is it need? G4double ProbLogDistr = theParameters->GetProbLogDistr(); - G4double SumMasses = M0projectile + M0target; // + 220.0*MeV; // Uzhi Nov. 2014 + G4double SumMasses = M0projectile + M0target; // + 220.0*MeV; // Maybe, it can be opened. // Transform momenta to cms and then rotate parallel to z axis; G4LorentzRotation toCms( -1 * Psum.boostVector() ); @@ -197,11 +200,10 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje G4double PZcms2, PZcms; #ifdef debugFTFexictation - G4cout << "SqrtS " << SqrtS << G4endl << "M0pr M0tr SumM+220 " << M0projectile << " " + G4cout << "SqrtS " << SqrtS << G4endl << "M0pr M0tr SumM " << M0projectile << " " << M0target << " " << SumMasses << G4endl; #endif - if ( SqrtS < M0projectile + M0target ) return false; if ( SqrtS < SumMasses ) return false; // The model cannot work at low energy @@ -235,14 +237,14 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje } G4double maxPtSquare(0.); // = PZcms2; - - //Uzhi_QEnex = 0; - //Uzhi_QEexc = 0; - //Uzhi_targetdiffraction = 0; - //Uzhi_projectilediffraction = 0; - //Uzhi_nondiffraction = 0; - //G4int UzhiPrD( 0 ), UzhiTrD( 0 ), UzhiND( 0 ); - +/* + Uzhi_QEnex = 0; + Uzhi_QEexc = 0; + Uzhi_targetdiffraction = 0; + Uzhi_projectilediffraction = 0; + Uzhi_nondiffraction = 0; + G4int UzhiPrD( 0 ), UzhiTrD( 0 ), UzhiND( 0 ); +*/ #ifdef debugFTFexictation G4cout << "Start --------------------" << G4endl << "Proj M0 Mdif Mndif " << M0projectile << " " << ProjectileDiffStateMinMass << " " << ProjectileNonDiffStateMinMass << G4endl @@ -254,30 +256,51 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje // Charge exchange can be possible // Getting the values needed for exchange // Check for possible quark exchange - G4double QeNoExc = theParameters->GetProcProb( 0, ProjectileRapidity ); - G4double QeExc = theParameters->GetProcProb( 1, ProjectileRapidity )*theParameters->GetProcProb( 4, ProjectileRapidity ); - G4double ProbProjectileDiffraction = theParameters->GetProcProb( 2, ProjectileRapidity ); - G4double ProbTargetDiffraction = theParameters->GetProcProb( 3, ProjectileRapidity ); + ProjectileRapidity=Pprojectile.rapidity(); // Uzhi March 2016 + TargetRapidity=Ptarget.rapidity(); // Uzhi March 2016 + // Uzhi March 2016 TargetRapidity was introduced + G4double QeNoExc = theParameters->GetProcProb( 0, ProjectileRapidity - TargetRapidity ); + G4double QeExc = theParameters->GetProcProb( 1, ProjectileRapidity - TargetRapidity)* + theParameters->GetProcProb( 4, ProjectileRapidity - TargetRapidity); + G4double ProbProjectileDiffraction = theParameters->GetProcProb( 2, ProjectileRapidity - TargetRapidity); + G4double ProbTargetDiffraction = theParameters->GetProcProb( 3, ProjectileRapidity - TargetRapidity); - if(QeNoExc+QeExc+ProbProjectileDiffraction+ProbTargetDiffraction > 1.) // Uzhi Nov. 2014 + #ifdef debugFTFexictation + G4cout << "Proc Probs " << QeNoExc << " " << QeExc << " " << ProbProjectileDiffraction + << " " << ProbTargetDiffraction << G4endl + << "ProjectileRapidity " << ProjectileRapidity << G4endl; + //G4int Uzhi; G4cin >> Uzhi; + #endif + if(QeNoExc+QeExc+ProbProjectileDiffraction+ProbTargetDiffraction > 1.) {QeNoExc=1.0-QeExc-ProbProjectileDiffraction-ProbTargetDiffraction;} +/* =================================== Apr. ========================================= Uzhi 2016 +QeNoExc = 0.; +QeExc = 0.; +ProbProjectileDiffraction = 0.0; +ProbTargetDiffraction = 0.0; +//AveragePt2 = 0.; +*/ //=================================== Apr. ========================================= Uzhi 2016 +//QeExc*=0.8; + G4double ProbExc( 0.0 ); if ( QeExc + QeNoExc != 0.0 ) ProbExc = QeExc/(QeExc + QeNoExc); G4double DeltaProbAtQuarkExchange = theParameters->GetDeltaProbAtQuarkExchange(); G4double DeltaMass = G4ParticleTable::GetParticleTable()->FindParticle( 2224 )->GetPDGMass(); +//ProbProjectileDiffraction = 0.5; // Uzhi 2016 +//ProbTargetDiffraction = 0.5; // Uzhi 2016 G4double ProbOfDiffraction = ProbProjectileDiffraction + ProbTargetDiffraction; #ifdef debugFTFexictation G4cout << "Proc Probs " << QeNoExc << " " << QeExc << " " << ProbProjectileDiffraction << " " << ProbTargetDiffraction << G4endl << "ProjectileRapidity " << ProjectileRapidity << G4endl; -// G4int Uzhi; G4cin >> Uzhi; + //G4int Uzhi; G4cin >> Uzhi; #endif - G4ParticleDefinition* TestParticle(0); // Uzhi Oct. 2014 - G4double MtestPr(0.), MtestTr(0.); // Uzhi Oct. 2014 + G4ParticleDefinition* TestParticle(0); + G4double MtestPr(0.), MtestTr(0.); if ( 1.0 - QeExc - QeNoExc > 0.0 ) { ProbProjectileDiffraction /= ( 1.0 - QeExc - QeNoExc ); @@ -320,72 +343,59 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje { // ProjQ1 is quark ProjExchangeQ = ProjQ1; //------------------------------- Exchange of non-identical quarks is allowed - G4int NpossibleStates=3; // ===================================================== -// - NpossibleStates=0; // ===================================================== + G4int NpossibleStates=0; // ===================================================== + if(ProjQ1 != TargQ1) NpossibleStates++; if(ProjQ1 != TargQ2) NpossibleStates++; if(ProjQ1 != TargQ3) NpossibleStates++; -// + G4int Nsampled = G4RandFlat::shootInt( G4long( NpossibleStates ) ) + 1; -//G4cout<<"NpossibleStates Nsampled "< 0 ) #ifdef debugFTFexictation @@ -395,9 +405,9 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje G4int aProjQ1 = std::abs( ProjQ1 ); G4int aProjQ2 = std::abs( ProjQ2 ); - G4bool ProjExcited = false; // Uzhi Oct 2014 + G4bool ProjExcited = false; - G4int attempts=0; // Uzhi Oct 2014 start + G4int attempts=0; while(attempts < 50) /* Loop checking, 10.08.2015, A.Ribon */ {// Determination of a new projectile ID which garanty energy-momentum conservation attempts++; @@ -440,8 +450,7 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje NewProjCode += 2; // Excited meson ProjExcited = true; } -// if ( aProjQ1 != aProjQ2 ) NewProjCode *= ( ProjectilePDGcode / absProjectilePDGcode ); // Uzhi 27 Nov. 2014 -// Uzhi 27 Nov. 2014 + G4int Qquarks=0; if ( aProjQ1 == 1 ) {Qquarks -= ProjQ1;} else if( aProjQ1 == 2 ) {Qquarks += ProjQ1;} @@ -452,7 +461,6 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje else {Qquarks -= ProjQ2/aProjQ2;} if( Qquarks < 0 ) NewProjCode *=(-1); -// Uzhi 27 Nov. 2014 #ifdef debugFTFexictation G4cout << "NewProjCode +2 or 0 " << NewProjCode << G4endl; @@ -465,13 +473,13 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewProjCode ); if(!TestParticle) continue; -//MminProjectile=TestParticle->GetPDGMass(); // ?????????????????????? MminProjectile=BrW.GetMinimumMass(TestParticle); if(SqrtS-M0target < MminProjectile) continue; - MtestPr = BrW.SampleMass(TestParticle, TestParticle->GetPDGMass() + 5.0*TestParticle->GetPDGWidth()); -// G4ParticleTable::GetParticleTable()->FindParticle( NewProjCode )->GetPDGMass(); // Uzhi 2014 + MtestPr = BrW.SampleMass(TestParticle, + TestParticle->GetPDGMass() + + 5.0*TestParticle->GetPDGWidth() ); #ifdef debugFTFexictation G4cout << "TestParticle Name " << NewProjCode << " " << TestParticle->GetParticleName()<< G4endl; @@ -518,24 +526,17 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje if(SqrtS-MtestPr < MminTarget) continue; - MtestTr = BrW.SampleMass(TestParticle,TestParticle->GetPDGMass() + 5.0*TestParticle->GetPDGWidth()); + MtestTr = BrW.SampleMass(TestParticle, + TestParticle->GetPDGMass() + + 5.0*TestParticle->GetPDGWidth() ); if(SqrtS > MtestPr+MtestTr) break; } // End of while(attempts < 50)//=============================== if(attempts >= 50) return false; // ============================== -/* - if ( MtestPr > Pprojectile.mag() ) {M0projectile = MtestPr;} - else - { - if ( std::abs( MtestPr - M0projectile ) //projectile->GetDefinition()->GetPDGMass() ) // Uzhi Oct. 2014 - < 140.0*MeV ) { - M0projectile = MtestPr; - } - } -*/ - if ( MtestPr >= Pprojectile.mag() ) {M0projectile = MtestPr;} // Uzhi 18 Nov. 2014 - else if (projectile->GetStatus() != 0 ) {M0projectile = MtestPr;} // Uzhi 18 Nov. 2014 + + if ( MtestPr >= Pprojectile.mag() ) {M0projectile = MtestPr;} + else if (projectile->GetStatus() != 0 ) {M0projectile = MtestPr;} #ifdef debugFTFexictation @@ -546,19 +547,9 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje ProjectileDiffStateMinMass = M0projectile + 220.0*MeV; //220 MeV=m_pi+80 MeV ProjectileNonDiffStateMinMass = M0projectile + 220.0*MeV; //220 MeV=m_pi+80 MeV - if ( MtestTr >= Ptarget.mag() ) {M0target = MtestTr;} // Uzhi 18 Nov. 2014 - else if (target->GetStatus() != 0 ) {M0target = MtestTr;} // Uzhi 18 Nov. 2014 -/* -M0target = MtestTr; // Uzhi 18 Nov. 2014 - if ( MtestTr > Ptarget.mag() ) {M0target = MtestTr;} - else - { - if ( std::abs( MtestTr - M0target ) // target->GetDefinition()->GetPDGMass() ) Uzhi Oct. 2014 - < 140.0*MeV ) { - M0target = MtestTr; - } - } -*/ + if ( MtestTr >= Ptarget.mag() ) {M0target = MtestTr;} + else if (target->GetStatus() != 0 ) {M0target = MtestTr;} + M0target2 = M0target * M0target; #ifdef debugFTFexictation @@ -569,11 +560,11 @@ M0target = MtestTr; TargetNonDiffStateMinMass = M0target + 220.0*MeV; // 220 MeV=m_pi+80 MeV; } else { // of the if ( absProjectilePDGcode < 1000 ) ; - // The projectile is baryon now + // The projectile is baryon now =========================================== G4double Same = theParameters->GetProbOfSameQuarkExchange(); //0.3; //0.5; 0. -// G4bool ProjDeltaHasCreated( false ); // Uzhi Oct. 2014 -// G4bool TargDeltaHasCreated( false ); // Uzhi Oct. 2014 +// G4bool ProjDeltaHasCreated( false ); // Uzhi 2016 +// G4bool TargDeltaHasCreated( false ); // Uzhi 2016 G4double Ksi = G4UniformRand(); if ( G4UniformRand() < 0.5 ) { // Sampling exchange quark from proj. or targ. @@ -587,18 +578,28 @@ M0target = MtestTr; ProjExchangeQ = ProjQ3; } - if ( ProjExchangeQ != TargQ1 || G4UniformRand() < Same ) { - TargExchangeQ = TargQ1; TargQ1 = ProjExchangeQ; ProjExchangeQ = TargExchangeQ; - } else { - if ( ProjExchangeQ != TargQ2 || G4UniformRand() < Same ) { - TargExchangeQ = TargQ2; TargQ2 = ProjExchangeQ; ProjExchangeQ = TargExchangeQ; + #ifdef debugFTFexictation + G4cout << "Exchange Qs Pr Tr " << ProjExchangeQ << " "; + #endif + + G4int count(0), MaxCount(100); // Uzhi Oct. 2015 ------------- + do { + if ( ProjExchangeQ != TargQ1 || G4UniformRand() < Same ) { + TargExchangeQ = TargQ1; TargQ1 = ProjExchangeQ; ProjExchangeQ = TargExchangeQ; } else { - TargExchangeQ = TargQ3; TargQ3 = ProjExchangeQ; ProjExchangeQ = TargExchangeQ; + if ( ProjExchangeQ != TargQ2 || G4UniformRand() < Same ) { + TargExchangeQ = TargQ2; TargQ2 = ProjExchangeQ; ProjExchangeQ = TargExchangeQ; + } else { + TargExchangeQ = TargQ3; TargQ3 = ProjExchangeQ; ProjExchangeQ = TargExchangeQ; + } } - } + count++; + } while((TargExchangeQ == 0) && (count < MaxCount)); + + if(count >= MaxCount) return false; // Uzhi March 2016 ------------- #ifdef debugFTFexictation - G4cout << "Exchange Qs Pr Tr " << ProjExchangeQ << " " << TargExchangeQ << G4endl; + G4cout << TargExchangeQ << G4endl; // Uzhi March 2016 #endif if ( Ksi < 0.333333 ) { @@ -618,15 +619,21 @@ M0target = MtestTr; } else { TargExchangeQ = TargQ3; } - if ( TargExchangeQ != ProjQ1 || G4UniformRand() < Same ) { - ProjExchangeQ = ProjQ1; ProjQ1 = TargExchangeQ; TargExchangeQ = ProjExchangeQ; - } else { - if ( TargExchangeQ != ProjQ2 || G4UniformRand() < Same ) { - ProjExchangeQ = ProjQ2; ProjQ2 = TargExchangeQ; TargExchangeQ = ProjExchangeQ; + + G4int count(0), MaxCount(100); // Uzhi March 2016 ------------- + do { + if ( TargExchangeQ != ProjQ1 || G4UniformRand() < Same ) { + ProjExchangeQ = ProjQ1; ProjQ1 = TargExchangeQ; TargExchangeQ = ProjExchangeQ; } else { - ProjExchangeQ = ProjQ3; ProjQ3 = TargExchangeQ; TargExchangeQ = ProjExchangeQ; + if ( TargExchangeQ != ProjQ2 || G4UniformRand() < Same ) { + ProjExchangeQ = ProjQ2; ProjQ2 = TargExchangeQ; TargExchangeQ = ProjExchangeQ; + } else { + ProjExchangeQ = ProjQ3; ProjQ3 = TargExchangeQ; TargExchangeQ = ProjExchangeQ; + } } - } + count++; + } while((ProjExchangeQ == 0) && (count < MaxCount)); + if(count >= MaxCount) return false; // Uzhi March 2016 ------------- if ( Ksi < 0.333333 ) { TargQ1 = TargExchangeQ; @@ -641,113 +648,191 @@ M0target = MtestTr; NewProjCode = NewNucleonId( ProjQ1, ProjQ2, ProjQ3 ); NewTargCode = NewNucleonId( TargQ1, TargQ2, TargQ3 ); - G4int attempts=0; // Uzhi Oct 2014 start - while(attempts < 50) /* Loop checking, 10.08.2015, A.Ribon */ - {// Determination of a new projectile ID which garanty energy-momentum conservation - attempts++; - if ( ProjQ1 == ProjQ2 && ProjQ1 == ProjQ3 ) { - NewProjCode += 2; // ProjDeltaHasCreated = true; // Uzhi Oct. 2014 + NewProjCode += 2; // ProjDeltaHasCreated = true; } else if ( projectile->GetDefinition()->GetPDGiIsospin() == 3 ) { // Projectile was Delta if ( G4UniformRand() > DeltaProbAtQuarkExchange ) { - NewProjCode += 2; //ProjDeltaHasCreated = true; // Uzhi Oct. 2014 + NewProjCode += 2; //ProjDeltaHasCreated = true; } else { - NewProjCode += 0; //ProjDeltaHasCreated = false; // Uzhi Oct. 2014 + NewProjCode += 0; //ProjDeltaHasCreated = false; } } else { // Projectile was Nucleon if ( G4UniformRand() < DeltaProbAtQuarkExchange && SqrtS > DeltaMass + M0target ) { - NewProjCode += 2; //ProjDeltaHasCreated = true; // Uzhi Oct. 2014 + NewProjCode += 2; //ProjDeltaHasCreated = true; } else { - NewProjCode += 0; //ProjDeltaHasCreated = false; // Uzhi Oct. 2014 + NewProjCode += 0; //ProjDeltaHasCreated = false; } } if ( TargQ1 == TargQ2 && TargQ1 == TargQ3 ) { - NewTargCode += 2; //TargDeltaHasCreated = true; // Uzhi Oct. 2014 + NewTargCode += 2; //TargDeltaHasCreated = true; } else if ( target->GetDefinition()->GetPDGiIsospin() == 3 ) { // Target was Delta if ( G4UniformRand() > DeltaProbAtQuarkExchange ) { - NewTargCode += 2; //TargDeltaHasCreated = true; // Uzhi Oct. 2014 + NewTargCode += 2; //TargDeltaHasCreated = true; } else { - NewTargCode += 0; //TargDeltaHasCreated = false; // Uzhi Oct. 2014 + NewTargCode += 0; //TargDeltaHasCreated = false; } } else { // Target was Nucleon if ( G4UniformRand() < DeltaProbAtQuarkExchange && SqrtS > M0projectile + DeltaMass ) { - NewTargCode += 2; //TargDeltaHasCreated = true; // Uzhi Oct. 2014 + NewTargCode += 2; //TargDeltaHasCreated = true; } else { - NewTargCode += 0; //TargDeltaHasCreated = false; // Uzhi Oct. 2014 + NewTargCode += 0; //TargDeltaHasCreated = false; } } #ifdef debugFTFexictation G4cout << "NewProjCode NewTargCode " << NewProjCode << " " << NewTargCode << G4endl; -// G4int Uzhi; G4cin >> Uzhi; + //G4int Uzhi; G4cin >> Uzhi; #endif if ( absProjectilePDGcode == NewProjCode && absTargetPDGcode == NewTargCode ) { } // Nothing was changed! It is not right!? // Forming baryons -/* - if ( G4UniformRand() > 0.5 ) { // Uzhi Oct. 2014 - ProbProjectileDiffraction = 0.0; ProbTargetDiffraction = 1.0; - } else { - ProbProjectileDiffraction = 1.0; ProbTargetDiffraction = 0.0; - } -*/ -/* - if ( ProjDeltaHasCreated ) { - if ( G4UniformRand() > 0.5 ) { - ProbProjectileDiffraction = 0.0; ProbTargetDiffraction = 1.0; - } else { - ProbProjectileDiffraction = 1.0; ProbTargetDiffraction = 0.0; +// Uzhi March 2016 - Oct. 2015 + if ( G4UniformRand() < 0.5 ) { // Determination mass of Proj + Targ, or Tart+Proj? +// --------------------------------------------------------------------------------- Proj +//G4cout<<"Pr status NoC "<GetStatus()<<" "<GetSoftCollisionCount()<GetStatus() == 1) && (projectile->GetSoftCollisionCount() == 0)) || +//2016 ((projectile->GetStatus() == 2) && (projectile->GetDefinition()->GetPDGiIsospin() == 1)) ) + if((projectile->GetStatus() == 1) || (projectile->GetStatus() == 2)) // Uzhi 2016 + { // Mass is determined only at the first quark exchange + TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewProjCode ); + if(!TestParticle) return false; +//G4cout<<"Pr "<GetParticleName()<GetPDGWidth() == 0. ) + { MtestPr = BrW.SampleMass(TestParticle,TestParticle->GetPDGMass());} + else + { + G4int attempts=0; + while(attempts < 50) + {// Determination of a new projectile mass which garanty energy-momentum conservation + attempts++; + MtestPr = BrW.SampleMass(TestParticle, + TestParticle->GetPDGMass() + + 5.0*TestParticle->GetPDGWidth() ); + if(SqrtS < MtestPr + M0target) {continue;} + else {break; } // Uzhi March 2016 +// if(SqrtS > MtestPr + M0target + 140.0*MeV) break; } - } + if(attempts >= 50) return false; + } + } // End of the projectile mass determination +// --------------------------------------------------------------------------------- Targ +//G4cout<<"Tr statusNoC "<GetStatus()<<" "<GetSoftCollisionCount()<GetStatus() == 1) && (target->GetSoftCollisionCount() == 0)) || +//2016 ((target->GetStatus() == 2) && (target->GetDefinition()->GetPDGiIsospin() == 1)) ) + if((target->GetStatus() == 1) || (target->GetStatus() == 2)) // 2016 + { // Mass is determined only at the first quark exchange + TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewTargCode ); + if(!TestParticle) return false; +//G4cout<<"Tr "<GetParticleName()< 0.5 ) { - ProbProjectileDiffraction = 1.0; ProbTargetDiffraction = 0.0; - } else { - ProbProjectileDiffraction = 0.0; ProbTargetDiffraction = 1.0; + MminTarget=BrW.GetMinimumMass(TestParticle); + if(SqrtS-MtestPr < MminTarget) return false; + + if( TestParticle->GetPDGWidth() == 0. ) + { MtestTr = BrW.SampleMass(TestParticle,TestParticle->GetPDGMass());} + else + { + G4int attempts=0; + while(attempts < 50) + {// Determination of a new target mass which garanty energy-momentum conservation + attempts++; + MtestTr = BrW.SampleMass(TestParticle, + TestParticle->GetPDGMass() + + 5.0*TestParticle->GetPDGWidth() ); + if(SqrtS < MtestPr + MtestTr) {continue;} + else {break; } // Uzhi March 2016 +// if(SqrtS > MtestPr+MtestTr+140.*MeV) break; } - } -*/ -// --------------------------------------------------------------------------------- Proj - TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewProjCode ); - if(!TestParticle) continue; + if(attempts >= 50) return false; + } + } // End of the mass determination - MminProjectile=BrW.GetMinimumMass(TestParticle); + } else { +// --------------------------------------------------------------------------------- Targ +//G4cout<<"Tr statusNoC "<GetStatus()<<" "<GetSoftCollisionCount()<GetStatus() == 1) && (target->GetSoftCollisionCount() == 0)) || +//2016 ((target->GetStatus() == 2) && (target->GetDefinition()->GetPDGiIsospin() == 1)) ) + if((target->GetStatus() == 1) || (target->GetStatus() == 2)) // 2016 + { // Mass is determined only at the first quark exchange + TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewTargCode ); + if(!TestParticle) return false; +//G4cout<<"Tr "<GetParticleName()<GetPDGMass() + 5.0*TestParticle->GetPDGWidth()); + if( TestParticle->GetPDGWidth() == 0. ) + { MtestTr = BrW.SampleMass(TestParticle,TestParticle->GetPDGMass());} + else + { + G4int attempts=0; + while(attempts < 50) + {// Determination of a new target mass which garanty energy-momentum conservation + attempts++; + MtestTr = BrW.SampleMass(TestParticle, + TestParticle->GetPDGMass() + + 5.0*TestParticle->GetPDGWidth() ); + if(SqrtS < M0projectile + MtestTr) {continue;} + else {break; } // Uzhi March 2016 +// if(SqrtS > M0projectile + MtestTr+140.*MeV) break; + } + if(attempts >= 50) return false; + } + } // End of the mass determination +// --------------------------------------------------------------------------------- Proj +//G4cout<<"Pr status NoC "<GetStatus()<<" "<GetSoftCollisionCount()<GetStatus() == 1) && (projectile->GetSoftCollisionCount() == 0)) || +//2016 ((projectile->GetStatus() == 2) && (projectile->GetDefinition()->GetPDGiIsospin() == 1)) ) + if((projectile->GetStatus() == 1) || (projectile->GetStatus() == 2)) // 2016 + { // Mass is determined only at the first quark exchange + TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewProjCode ); + if(!TestParticle) return false; +//G4cout<<"Pr "<GetParticleName()<FindParticle( NewTargCode ); - if(!TestParticle) continue; + MminProjectile=BrW.GetMinimumMass(TestParticle); + if(SqrtS-MtestTr < MminProjectile) return false; - MminTarget=BrW.GetMinimumMass(TestParticle); - - if(SqrtS-MtestPr < MminTarget) continue; - - MtestTr = BrW.SampleMass(TestParticle,TestParticle->GetPDGMass() + 5.0*TestParticle->GetPDGWidth()); - - if(SqrtS > MtestPr+MtestTr) break; - } // End of while(attempts < 50)//=============================== - - if(attempts >= 50) return false; // ============================== - - if ( MtestPr >= Pprojectile.mag() ) {M0projectile = MtestPr;} - else if (projectile->GetStatus() != 0 ) {M0projectile = MtestPr;} // Uzhi 18 Nov. 2014 - M0projectile2 = M0projectile * M0projectile; - ProjectileDiffStateMinMass = M0projectile + 220.0*MeV; //220 MeV=m_pi+80 MeV - ProjectileNonDiffStateMinMass = M0projectile + 220.0*MeV; //220 MeV=m_pi+80 MeV - - if ( MtestTr >= Ptarget.mag() ) {M0target = MtestTr;} - else if (target->GetStatus() != 0 ) {M0target = MtestTr;} // Uzhi 18 Nov. 2014 - M0target2 = M0target * M0target; - TargetDiffStateMinMass = M0target + 220.0*MeV; //220 MeV=m_pi+80 MeV; - TargetNonDiffStateMinMass = M0target + 220.0*MeV; //220 MeV=m_pi+80 MeV; + if( TestParticle->GetPDGWidth() == 0. ) + { MtestPr = BrW.SampleMass(TestParticle,TestParticle->GetPDGMass());} + else + { + G4int attempts=0; + while(attempts < 50) + {// Determination of a new projectile mass which garanty energy-momentum conservation + attempts++; + MtestPr = BrW.SampleMass(TestParticle, + TestParticle->GetPDGMass() + + 5.0*TestParticle->GetPDGWidth() ); + if(SqrtS < MtestPr + MtestTr) {continue;} // Uzhi March 2016 + else {break; } +// Uzhi if(SqrtS > MtestPr + MtestTr + 140.0*MeV) break; + } + if(attempts >= 50) return false; + } + } // End of the projectile mass determination + } +// End of Uzhi March 2016 - Oct. 2015 + if ( MtestPr != 0.) { // Uzhi March 2016 + M0projectile = MtestPr; + M0projectile2 = M0projectile * M0projectile; + ProjectileDiffStateMinMass = M0projectile + 220.0*MeV; //220 MeV=m_pi+80 MeV + ProjectileNonDiffStateMinMass = M0projectile + 220.0*MeV; //220 MeV=m_pi+80 MeV + } + + if ( MtestTr != 0.) { // Uzhi March 2016 + M0target = MtestTr; + M0target2 = M0target * M0target; + TargetDiffStateMinMass = M0target + 220.0*MeV; //220 MeV=m_pi+80 MeV; + TargetNonDiffStateMinMass = M0target + 220.0*MeV; //220 MeV=m_pi+80 MeV; + } } // End of if ( absProjectilePDGcode < 1000 ) //-------------------------------------------------------------------------------------- @@ -777,18 +862,25 @@ M0target = MtestTr; Ptarget.setPz( -PZcms ); Ptarget.setE( std::sqrt( M0target2 + PZcms2 ) ); - if(projectile->GetStatus() != 0 ) projectile->SetStatus(2); // Uzhi 18 Nov. 2014 - if(target->GetStatus() != 0 ) target->SetStatus(2); // Uzhi 18 Nov. 2014 + if(projectile->GetStatus() != 0 ) projectile->SetStatus(2); + if(target->GetStatus() != 0 ) target->SetStatus(2); #ifdef debugFTFexictation G4cout << "Proj Targ and Proj+Targ in CMS" << G4endl << Pprojectile << G4endl << Ptarget << G4endl << Pprojectile + Ptarget << G4endl; + G4cout<<"Mpr "< ProbExc ) { // Make elastic scattering @@ -819,9 +911,9 @@ M0target = MtestTr; G4cout << "Make excitation of new hadrons" << G4endl; #endif -// Redefinition of ProbOfDiffraction because the probabilities are changed due to quark exchange +// Redefinition of ProbOfDiffraction because the probabilities may be changed due to quark exchange - ProbOfDiffraction = ProbProjectileDiffraction + ProbTargetDiffraction; // Uzhi Oct. 2014 + ProbOfDiffraction = ProbProjectileDiffraction + ProbTargetDiffraction; if ( ProbOfDiffraction != 0.0 ) { ProbProjectileDiffraction /= ProbOfDiffraction; ProbTargetDiffraction /= ProbOfDiffraction; @@ -877,12 +969,12 @@ M0target = MtestTr; G4cout << "projectile diffraction" << G4endl; #endif - //UzhiPrD++; +// UzhiPrD++; do { // while ( ( Pprojectile + Qmomentum ).mag2() < ProjectileDiffStateMinMass2 ) - //Uzhi_projectilediffraction = 1; - //Uzhi_targetdiffraction = 0; +// Uzhi_projectilediffraction = 1; +// Uzhi_targetdiffraction = 0; //Uzhi_Mx2 = 1.0; // Generate pt and mass of projectile @@ -907,7 +999,8 @@ M0target = MtestTr; maxPtSquare = PZcms2; - Qmomentum = G4LorentzVector( GaussianPt( AveragePt2, maxPtSquare ), 0 ); +// Qmomentum = G4LorentzVector( GaussianPt( AveragePt2/2.*0.01, maxPtSquare ), 0 ); // Uzhi 28 May 2016 + Qmomentum = G4LorentzVector( GaussianPt( DiffrAveragePt2, maxPtSquare ), 0 ); // Uzhi 28 May 2016 Pt2 = G4ThreeVector( Qmomentum.vect() ).mag2(); ProjMassT2 = ProjectileDiffStateMinMass2 + Pt2; @@ -923,8 +1016,10 @@ M0target = MtestTr; PZcms = std::sqrt( PZcms2 ); PMinusMin = std::sqrt( ProjMassT2 + PZcms2 ) - PZcms; - PMinusMax = SqrtS - TargMassT; +// PMinusMax = PMinusMin + 2.*PZcms; // Uzhi March 2016 + PMinusMax = SqrtS - TargMassT; // Uzhi March 2016 +// PMinusNew = PMinusMax; //ChooseP( PMinusMin, PMinusMax ); ==== Apr. 19 ===== Uzhi 2016 PMinusNew = ChooseP( PMinusMin, PMinusMax ); TMinusNew = SqrtS - PMinusNew; @@ -933,15 +1028,12 @@ M0target = MtestTr; Qplus = Ptarget.plus() - TPlusNew; Qmomentum.setPz( (Qplus - Qminus)/2 ); Qmomentum.setE( (Qplus + Qminus)/2 ); - - } while ( ( Pprojectile + Qmomentum ).mag2() < ProjectileDiffStateMinMass2 ); /* Loop checking, 10.08.2015, A.Ribon */ + /* Loop checking, 10.08.2015, A.Ribon */ + } while ( ( Pprojectile + Qmomentum ).mag2() < ProjectileDiffStateMinMass2 ); +// || ( ( Pprojectile + Qmomentum ).pz() < 0.)); // Uzhi March 2016 // Repeat the sampling because there was not any excitation -// projectile->SetStatus( 1*projectile->GetStatus() ); // Uzhi Oct 2014 - - if(projectile->GetStatus() == 2) projectile->SetStatus(1); // Uzhi Oct 2014 - if((target->GetStatus() == 1) && (target->GetSoftCollisionCount() == 0)) // Uzhi Oct 2014 - target->SetStatus(2); // Uzhi Oct 2014 + projectile->SetStatus(0); } else { // Target diffraction @@ -949,12 +1041,12 @@ M0target = MtestTr; G4cout << "Target diffraction" << G4endl; #endif - //UzhiTrD++; +// UzhiTrD++; do { // while ( ( Ptarget - Qmomentum ).mag2() < TargetDiffStateMinMass2 ) - //Uzhi_projectilediffraction = 0; - //Uzhi_targetdiffraction = 1; +// Uzhi_projectilediffraction = 0; +// Uzhi_targetdiffraction = 1; //Uzhi_Mx2 = 1.0; // Generate pt and target mass @@ -981,7 +1073,8 @@ M0target = MtestTr; maxPtSquare = PZcms2; - Qmomentum = G4LorentzVector( GaussianPt( AveragePt2, maxPtSquare ), 0 ); +// Qmomentum = G4LorentzVector( GaussianPt( AveragePt2/2.*0.01, maxPtSquare ), 0 ); // Uzhi 28 May 2016 + Qmomentum = G4LorentzVector( GaussianPt( DiffrAveragePt2, maxPtSquare ), 0 ); // Uzhi 28 May 2016 Pt2 = G4ThreeVector( Qmomentum.vect() ).mag2(); ProjMassT2 = M0projectile2 + Pt2; @@ -997,8 +1090,8 @@ M0target = MtestTr; PZcms = std::sqrt( PZcms2 ); TPlusMin = std::sqrt( TargMassT2 + PZcms2 ) - PZcms; -//TPlusMax = std::sqrt( TargMassT2 + PZcms2 ) + PZcms; - TPlusMax = SqrtS - ProjMassT; +// TPlusMax = TPlusMin + 2.*PZcms; // Uzhi March 2016 + TPlusMax = SqrtS - ProjMassT; // Uzhi March 2016 TPlusNew = ChooseP( TPlusMin, TPlusMax ); //TPlusNew = TPlusMin; @@ -1009,15 +1102,12 @@ M0target = MtestTr; Qminus = PMinusNew - Pprojectile.minus(); Qmomentum.setPz( (Qplus - Qminus)/2 ); Qmomentum.setE( (Qplus + Qminus)/2 ); - - } while ( ( Ptarget - Qmomentum ).mag2() < TargetDiffStateMinMass2 ); /* Loop checking, 10.08.2015, A.Ribon */ + /* Loop checking, 10.08.2015, A.Ribon */ + } while ( ( Ptarget - Qmomentum ).mag2() < TargetDiffStateMinMass2 ); +// || ( ( Pprojectile + Qmomentum ).pz() < 0.)); //Uzhi March 2016 // Repeat the sampling because there was not any excitation -// target->SetStatus( 1*target->GetStatus() ); // Uzhi Oct 2014 - - if((projectile->GetStatus() == 1) && (projectile->GetSoftCollisionCount() == 0)) // Uzhi Oct 2014 - projectile->SetStatus(2); // Uzhi Oct 2014 - if(target->GetStatus() == 2) target->SetStatus(1); // Uzhi Oct 2014 + target->SetStatus(0); // Uzhi March 2016 } // End of if ( G4UniformRand() < ProbProjectileDiffraction ) @@ -1029,10 +1119,11 @@ M0target = MtestTr; //UzhiND++; //Uzhi_QEnex++; +//Uzhi_nondiffraction++; do { // while ( ( Pprojectile + Qmomentum ).mag2() < ProjectileNonDiffStateMinMass2 || ... - //Uzhi_projectilediffraction = 0; - //Uzhi_targetdiffraction = 0; +// Uzhi_projectilediffraction = 0; +// Uzhi_targetdiffraction = 0; //Uzhi_Mx2 = 1.0; // Generate pt and masses @@ -1057,7 +1148,7 @@ M0target = MtestTr; maxPtSquare = PZcms2; - Qmomentum = G4LorentzVector( GaussianPt( AveragePt2, maxPtSquare ), 0 ); + Qmomentum = G4LorentzVector( GaussianPt( AveragePt2, maxPtSquare ), 0 ); // 0.6 Pt2 = G4ThreeVector( Qmomentum.vect() ).mag2(); ProjMassT2 = ProjectileNonDiffStateMinMass2 + Pt2; @@ -1073,30 +1164,19 @@ M0target = MtestTr; PZcms = std::sqrt( PZcms2 ); PMinusMin = std::sqrt( ProjMassT2 + PZcms2 ) - PZcms; -//PMinusMax = std::sqrt( ProjMassT2 + PZcms2 ) + PZcms; +//PMinusMax = std::sqrt( ProjMassT2 + PZcms2 ) + PZcms; // Uzhi 2016 PMinusMax = SqrtS - TargMassT; TPlusMin = std::sqrt( TargMassT2 + PZcms2 ) - PZcms; //TPlusMax = std::sqrt( TargMassT2 + PZcms2 ) + PZcms; - TPlusMax = SqrtS - ProjMassT; // Uzhi 18 Sept. 2014 - -/* - if ( G4UniformRand() < ProbLogDistrPrD ) { // Uzhi Oct 2014 - PMinusNew = ChooseP( PMinusMin, PMinusMax ); - } else { - PMinusNew = ( PMinusMax - PMinusMin )*G4UniformRand() + PMinusMin; - } -// Qminus = PMinusNew - Pprojectile.minus(); -*/ - -// TPlusMax = SqrtS - PMinusNew; + TPlusMax = SqrtS - ProjMassT; // Uzhi 2016 if ( G4UniformRand() < ProbLogDistr ) { PMinusNew = ChooseP( PMinusMin, PMinusMax ); - TPlusNew = ChooseP( TPlusMin, TPlusMax ); + TPlusNew = ChooseP( TPlusMin, TPlusMax ); } else { PMinusNew = ( PMinusMax - PMinusMin )*G4UniformRand() + PMinusMin; - TPlusNew = ( TPlusMax - TPlusMin )*G4UniformRand() + TPlusMin; + TPlusNew = ( TPlusMax - TPlusMin )*G4UniformRand() + TPlusMin; } Qminus = PMinusNew - Pprojectile.minus(); @@ -1106,10 +1186,10 @@ M0target = MtestTr; Qmomentum.setE( (Qplus + Qminus)/2 ); #ifdef debugFTFexictation - G4cout << ( Pprojectile + Qmomentum ).mag2() << " " << ProjectileNonDiffStateMinMass2 - << G4endl << ( Ptarget - Qmomentum ).mag2() << " " - << TargetNonDiffStateMinMass2 << G4endl; - G4cout<<"To continue - enter any integer"<> Uzhi; #endif @@ -1117,8 +1197,8 @@ M0target = MtestTr; ( Ptarget - Qmomentum ).mag2() < TargetNonDiffStateMinMass2 || // ); // ( Pprojectile + Qmomentum ).pz() < 0.); /* Loop checking, 10.08.2015, A.Ribon */ - projectile->SetStatus( 0*projectile->GetStatus() ); - target->SetStatus( 0*target->GetStatus() ); + projectile->SetStatus( 0 ); // Uzhi March 2016 + target->SetStatus( 0 ); // Uzhi March 2016 } // End of if ( G4UniformRand() < ProbOfDiffraction ) @@ -1129,26 +1209,9 @@ M0target = MtestTr; Pprojectile.transform( toLab ); Ptarget.transform( toLab ); - // Calculation of the creation time - //Uzhi 9.11 projectile->SetTimeOfCreation( target->GetTimeOfCreation() ); - //Uzhi 9.11 projectile->SetPosition( target->GetPosition() ); - // Creation time and position of target nucleon were determined in - // ReggeonCascade() of G4FTFModel - // - //if ( Uzhi_projectilediffraction != 0 ) { - // Uzhi_Mx2 = Pprojectile.mag2(); Uzhi_modT = ( target->Get4Momentum() - Ptarget ).mag2(); - //} - //if ( Uzhi_targetdiffraction != 0 ) { - // Uzhi_Mx2 = Ptarget.mag2(); Uzhi_modT = ( projectile->Get4Momentum() - Pprojectile ).mag2(); - //} - //if ( Uzhi_QE != 0 ) { - // Uzhi_projectilediffraction = 0; - // Uzhi_targetdiffraction = 0; - // Uzhi_Mx2 = 1.0; - //} - #ifdef debugFTFexictation - G4cout << "Mproj " << Pprojectile.mag() << G4endl << "Mtarg " << Ptarget.mag() << G4endl; + G4cout << "Final Mproj " << Pprojectile.mag() <<" "<Set4Momentum( Pprojectile ); @@ -1156,9 +1219,9 @@ M0target = MtestTr; projectile->IncrementCollisionCount( 1 ); target->IncrementCollisionCount( 1 ); - //Uzhi_projectilediffraction = UzhiPrD; - //Uzhi_targetdiffraction = UzhiTrD; - //Uzhi_nondiffraction = UzhiND; +// Uzhi_projectilediffraction = UzhiPrD; +// Uzhi_targetdiffraction = UzhiTrD; +// Uzhi_nondiffraction = UzhiND; //G4cout << Uzhi_projectilediffraction << " " << Uzhi_targetdiffraction << " " // << Uzhi_nondiffraction << G4endl; diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4ElasticHNScattering.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4ElasticHNScattering.cc index 4b2363d26c..9bb515acb6 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4ElasticHNScattering.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4ElasticHNScattering.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ElasticHNScattering.cc 91914 2015-08-11 07:00:39Z gcosmo $ +// $Id: G4ElasticHNScattering.cc 96935 2016-05-18 09:12:22Z gcosmo $ // // ------------------------------------------------------------ @@ -49,7 +49,7 @@ #include "G4ExcitedString.hh" #include "G4FTFParameters.hh" -#include "G4SampleResonance.hh" // Uzhi Oct 2014 +#include "G4SampleResonance.hh" #include "G4Exp.hh" #include "G4Log.hh" @@ -67,18 +67,17 @@ G4bool G4ElasticHNScattering::ElasticScattering( G4VSplitableHadron* projectile, projectile->IncrementCollisionCount( 1 ); target->IncrementCollisionCount( 1 ); - G4SampleResonance BrW; // Uzhi Oct 2014 + G4SampleResonance BrW; // Projectile parameters G4LorentzVector Pprojectile = projectile->Get4Momentum(); if ( Pprojectile.z() < 0.0 ) return false; G4bool PutOnMassShell( false ); G4double M0projectile = Pprojectile.mag(); -// if ( M0projectile < projectile->GetDefinition()->GetPDGMass() ) { // Uzhi Oct 2014 - G4double MminProjectile=BrW.GetMinimumMass(projectile->GetDefinition()); // Uzhi Oct 2014 + G4double MminProjectile=BrW.GetMinimumMass(projectile->GetDefinition()); - if ( M0projectile < MminProjectile ) { // Uzhi Oct 2014 + if ( M0projectile < MminProjectile ) { PutOnMassShell = true; M0projectile = projectile->GetDefinition()->GetPDGMass(); } @@ -88,11 +87,10 @@ G4bool G4ElasticHNScattering::ElasticScattering( G4VSplitableHadron* projectile, // Target parameters G4LorentzVector Ptarget = target->Get4Momentum(); G4double M0target = Ptarget.mag(); -// if ( M0target < target->GetDefinition()->GetPDGMass() ) { // Uzhi Oct 2014 - G4double MminTarget=BrW.GetMinimumMass(target->GetDefinition()); // Uzhi Oct 2014 + G4double MminTarget=BrW.GetMinimumMass(target->GetDefinition()); - if ( M0target < MminTarget ) { // Uzhi Oct 2014 + if ( M0target < MminTarget ) { PutOnMassShell = true; M0target = target->GetDefinition()->GetPDGMass(); } 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 f7ac5758c6..7e0577a751 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFAnnihilation.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFAnnihilation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4FTFAnnihilation.cc 91914 2015-08-11 07:00:39Z gcosmo $ +// $Id: G4FTFAnnihilation.cc 96766 2016-05-04 13:31:27Z gcosmo $ // // ------------------------------------------------------------ @@ -66,10 +66,10 @@ //#include "G4ios.hh" //#include "UZHI_diffraction.hh" - +#include "G4ParticleTable.hh" // Uzhi March 2016 //============================================================================ -//define debugFTFannih +//#define debugFTFannih //============================================================================ @@ -89,6 +89,8 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, G4VSplitableHadron*& AdditionalString, G4FTFParameters* theParameters ) const { +//theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 ??? for other Anti_bar annih. + #ifdef debugFTFannih G4cout << "---------------------------- Annihilation----------------" << G4endl; #endif @@ -142,6 +144,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, G4double SqrtS = std::sqrt( S ); G4double maxPtSquare; G4double X_a( 0.0 ), X_b( 0.0 ), X_c( 0.0 ), X_d( 0.0 ); + G4double MesonProdThreshold = projectile->GetDefinition()->GetPDGMass() + target->GetDefinition()->GetPDGMass() + ( 2.0*140.0 + 16.0 )*MeV; // 2 Mpi + DeltaE @@ -235,6 +238,11 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, #endif G4double Xannihilation = X_a + X_b + X_c + X_d; +//X_a=0.; // Uzhi +//X_b=0.; +//X_c=0.; +//X_d=0.; +//Xannihilation = X_a + X_b + X_c + X_d; // Projectile unpacking G4int AQ[3]; @@ -279,14 +287,110 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, projectile->SetSecondParton( Q[0] ); projectile->SetStatus( 0 ); +// Uzhi March 2016 start +G4int aAQ, aQ; +aAQ=std::abs( AQ[0] ); aQ=std::abs( Q[0] ); +G4int NewCode; +G4double aKsi = G4UniformRand(); + +if ( aAQ == aQ ) +{ + if ( aAQ != 3 ) + { + NewCode = 111; // Pi0-meson + if ( aKsi < 0.5 ) + { + NewCode = 221; // Eta -meson + if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson + } + } else + { + NewCode = 221; // Eta -meson + if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson + } +} else +{ + if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[0]; } + else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[0]; } +} + +G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode ); +if(!TestParticle) return false; +projectile->SetDefinition( TestParticle ); + +theParameters->SetProjMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ?? +theParameters->SetProjMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ?? +// Uzhi March 2016 end + //G4cout << "String 2 " << Q[1] << " " << AQ[1] << G4endl; target->SplitUp(); target->SetFirstParton( Q[1] ); target->SetSecondParton( AQ[1] ); target->SetStatus( 0 ); +// Uzhi March 2016 Start +aAQ=std::abs( AQ[1] ); aQ=std::abs( Q[1] ); aKsi = G4UniformRand(); +if ( aAQ == aQ ) +{ + if ( aAQ != 3 ) + { + NewCode = 111; // Pi0-meson + if ( aKsi < 0.5 ) + { + NewCode = 221; // Eta -meson + if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson + } + } else + { + NewCode = 221; // Eta -meson + if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson + } +} else +{ + if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[1]; } + else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[1]; } +} +TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode ); +if(!TestParticle) return false; +target->SetDefinition( TestParticle ); + +theParameters->SetTarMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ?? +theParameters->SetTarMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ?? +// Uzhi March 2016 end + + //G4cout << "String 3 " << AQ[2] << " " << Q[2] << G4endl; AdditionalString = new G4DiffractiveSplitableHadron(); + +// Uzhi March 2016 start +aAQ=std::abs( AQ[2] ); aQ=std::abs( Q[2] ); aKsi = G4UniformRand(); + +if ( aAQ == aQ ) +{ + if ( aAQ != 3 ) + { + NewCode = 111; // Pi0-meson + if ( aKsi < 0.5 ) + { + NewCode = 221; // Eta -meson + if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson + } + } else + { + NewCode = 221; // Eta -meson + if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson + } +} else +{ + if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[2]; } + else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[2]; } +} + +TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode ); +if(!TestParticle) return false; +AdditionalString->SetDefinition( TestParticle ); +// Uzhi March 2016 end + AdditionalString->SplitUp(); AdditionalString->SetFirstParton( AQ[2] ); AdditionalString->SetSecondParton( Q[2] ); @@ -539,6 +643,8 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, AdditionalString->IncrementCollisionCount( 1 ); target->IncrementCollisionCount( 1 ); +theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 + return true; } // End of if ( Ksi < X_a / Xannihilation ) @@ -605,6 +711,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, Pprojectile.setPz( 0.0 ); Pprojectile.setE( SqrtS ); Pprojectile.transform( toLab ); +// Uzhi March 2016 if QQ_QQbar will interact Set Mmin, MdifMin // Calculation of the creation time projectile->SetTimeOfCreation( target->GetTimeOfCreation() ); @@ -619,6 +726,9 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, projectile->IncrementCollisionCount( 1 ); target->IncrementCollisionCount( 1 ); +//theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 +// In the case baryon and anti-baryon are created. Thus the antibaryon can annihilate latter. + return true; } @@ -669,12 +779,79 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, projectile->SetFirstParton( LeftAQ1 ); projectile->SetSecondParton( LeftQ1 ); projectile->SetStatus( 0 ); + +// Uzhi March 2016 start +G4int aAQ, aQ; +aAQ=std::abs( LeftAQ1 ); aQ=std::abs( LeftQ1 ); + +G4int NewCode; +G4double aKsi = G4UniformRand(); + +if ( aAQ == aQ ) +{ + if ( aAQ != 3 ) + { + NewCode = 111; // Pi0-meson + if ( aKsi < 0.5 ) + { + NewCode = 221; // Eta -meson + if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson + } + } else + { + NewCode = 221; // Eta -meson + if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson + } +} else +{ + if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ1; } + else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ1; } +} + +G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode ); +if(!TestParticle) return false; +projectile->SetDefinition( TestParticle ); +theParameters->SetProjMinDiffMass( 0.5 ); // (0.5) // GeV Uzhi March 2016 ??? +theParameters->SetProjMinNonDiffMass( 0.5 ); +// Uzhi March 2016 end + //G4cout << "String 2 " << LeftAQ2 << " " << LeftQ2 << G4endl; target->SplitUp(); target->SetFirstParton( LeftQ2 ); target->SetSecondParton( LeftAQ2 ); target->SetStatus( 0 ); +// Uzhi March 2016 start +aAQ=std::abs( LeftAQ2 ); aQ=std::abs( LeftQ2 ); aKsi = G4UniformRand(); + +if ( aAQ == aQ ) +{ + if ( aAQ != 3 ) + { + NewCode = 111; // Pi0-meson + if ( aKsi < 0.5 ) + { + NewCode = 221; // Eta -meson + if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson + } + } else + { + NewCode = 221; // Eta -meson + if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson + } +} else +{ + if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ2; } + else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ2; } +} + +TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode ); +if(!TestParticle) return false; +target->SetDefinition( TestParticle ); +theParameters->SetTarMinDiffMass( 0.5 ); // Uzhi March 2016 ??? +theParameters->SetTarMinNonDiffMass( 0.5 ); +// Uzhi March 2016 + // Sampling kinematical properties // 1 string LeftAQ1-LeftQ1// 2 string LeftAQ2-LeftQ2 G4ThreeVector Quark_Mom[4]; @@ -857,6 +1034,8 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, projectile->IncrementCollisionCount( 1 ); target->IncrementCollisionCount( 1 ); +theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 + return true; } // End of if ( CandidatsN != 0 ) @@ -920,6 +1099,42 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, projectile->SetFirstParton( LeftQ ); projectile->SetSecondParton( LeftAQ ); projectile->SetStatus( 0 ); + +// Uzhi March 2016 start +G4int aAQ, aQ; +aAQ=std::abs( LeftAQ ); aQ=std::abs( LeftQ ); + +G4int NewCode; +G4double aKsi = G4UniformRand(); + +if ( aAQ == aQ ) +{ + if ( aAQ != 3 ) + { + NewCode = 111; // Pi0-meson + if ( aKsi < 0.5 ) + { + NewCode = 221; // Eta -meson + if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson + } + } else + { + NewCode = 221; // Eta -meson + if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson + } +} else +{ + if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ; } + else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ; } +} + +G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode ); +if(!TestParticle) return false; +projectile->SetDefinition( TestParticle ); +theParameters->SetProjMinDiffMass( 0.5 ); // (0.5) // GeV Uzhi March 2016 +theParameters->SetProjMinNonDiffMass( 0.5 ); +// Uzhi March 2016 end + target->SetStatus( 4 ); // The target nucleon has annihilated 3->4 Uzhi Oct 2014 Pprojectile.setPx( 0.0 ); Pprojectile.setPy( 0.0 ); @@ -938,6 +1153,9 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile, projectile->IncrementCollisionCount( 1 ); target->IncrementCollisionCount( 1 ); + +theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 + return true; } 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 aeeb7ebefa..1589875e34 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4FTFModel.cc 94688 2015-12-02 17:15:08Z gunter $ +// $Id: G4FTFModel.cc 97044 2016-05-23 09:48:46Z gcosmo $ // GEANT4 tag $Name: $ // @@ -246,6 +246,7 @@ void G4FTFModel::Init( const G4Nucleus& aNucleus, const G4DynamicParticle& aProj // Init target nucleus theParticipants.Init( aNucleus.GetA_asInt(), aNucleus.GetZ_asInt() ); +//theParticipants.Init( aNucleus.GetA_asInt(), 0 ); //For h+neutron // Uzhi March 2016 if ( theParameters != 0 ) delete theParameters; theParameters = new G4FTFParameters( theProjectile.GetDefinition(), aNucleus.GetA_asInt(), @@ -261,8 +262,8 @@ void G4FTFModel::Init( const G4Nucleus& aNucleus, const G4DynamicParticle& aProj G4cout << "FTF end of Init" << G4endl << G4endl; #endif - if ( (std::abs( theProjectile.GetDefinition()->GetBaryonNumber() ) <= 1 ) && // Uzhi 29.05.2015 - (aNucleus.GetA_asInt() < 2) ) theParameters->SetProbabilityOfElasticScatt(0.); +// if ( (std::abs( theProjectile.GetDefinition()->GetBaryonNumber() ) <= 1 ) && // Uzhi 29.05.2015 +// (aNucleus.GetA_asInt() < 2) ) theParameters->SetProbabilityOfElasticScatt(0.); } @@ -425,8 +426,6 @@ void G4FTFModel::StoreInvolvedNucleon() { void G4FTFModel::ReggeonCascade() { // Implementation of the reggeon theory inspired model -// G4double ExcitationE = theParameters->GetExcitationEnergyPerWoundedNucleon(); // Uzhi May 2015 - #ifdef debugReggeonCascade G4cout << "G4FTFModel::ReggeonCascade -----------" << G4endl << "theProjectile.GetTotalMomentum() " << theProjectile.GetTotalMomentum() << G4endl @@ -439,7 +438,6 @@ void G4FTFModel::ReggeonCascade() { // Reggeon cascading in target nucleus for ( G4int InvTN = 0; InvTN < InitNINt; InvTN++ ) { G4Nucleon* aTargetNucleon = TheInvolvedNucleonsOfTarget[ InvTN ]; -// aTargetNucleon->SetBindingEnergy( ExcitationE ); // Uzhi April 2015 G4double CreationTime = aTargetNucleon->GetSplitableHadron()->GetTimeOfCreation(); @@ -486,7 +484,6 @@ void G4FTFModel::ReggeonCascade() { // for ( G4int InvPN = 0; InvPN < NumberOfInvolvedNucleonsOfProjectile; InvPN++ ) { for ( G4int InvPN = 0; InvPN < InitNINp; InvPN++ ) { G4Nucleon* aProjectileNucleon = TheInvolvedNucleonsOfProjectile[ InvPN ]; -// aProjectileNucleon->SetBindingEnergy( ExcitationE ); // Uzhi May 2015 G4double CreationTime = aProjectileNucleon->GetSplitableHadron()->GetTimeOfCreation(); @@ -502,7 +499,7 @@ void G4FTFModel::ReggeonCascade() { G4double impact2= sqr( XofWoundedNucleon - Neighbour->GetPosition().x() ) + sqr( YofWoundedNucleon - Neighbour->GetPosition().y() ); - if ( G4UniformRand() < theParameters->GetCofNuclearDestructionPr() * // Uzhi May 2015 + if ( G4UniformRand() < theParameters->GetCofNuclearDestructionPr() * G4Exp( -impact2 / theParameters->GetR2ofNuclearDestruction() ) ) { // The neighbour nucleon is involved in the reggeon cascade @@ -514,7 +511,7 @@ void G4FTFModel::ReggeonCascade() { Neighbour->Hit( projectileSplitable ); projectileSplitable->SetTimeOfCreation( CreationTime ); - projectileSplitable->SetStatus( 3 ); // 2->3 Uzhi Oct 2014 + projectileSplitable->SetStatus( 3 ); } } } @@ -908,6 +905,7 @@ G4bool G4FTFModel::ExciteParticipants() { if ( ! Result ) continue; } if ( G4UniformRand() < + ( 1.0 - target->GetSoftCollisionCount() / MaxNumOfInelCollisions ) * // Uzhi March 2015 ( 1.0 - projectile->GetSoftCollisionCount() / MaxNumOfInelCollisions ) ) { //if ( ! HighEnergyInter ) { // G4bool Annihilation = false; @@ -955,7 +953,7 @@ G4bool G4FTFModel::ExciteParticipants() { #ifdef debugBuildString G4cout << "Annihilation" << G4endl; #endif - +// // Uzhi March 2016 // Skipping possible interactions of the annihilated nucleons while ( theParticipants.Next() ) { /* Loop checking, 10.08.2015, A.Ribon */ G4InteractionContent& acollision = theParticipants.GetInteraction(); @@ -965,7 +963,7 @@ G4bool G4FTFModel::ExciteParticipants() { acollision.SetStatus( 0 ); } } - +// // Uzhi March 2016 // Return to the annihilation theParticipants.StartLoop(); for ( G4int I = 0; I < CurrentInteraction; I++ ) theParticipants.Next(); @@ -989,6 +987,19 @@ G4bool G4FTFModel::ExciteParticipants() { #endif if ( AdditionalString != 0 ) theAdditionalString.push_back( AdditionalString ); +/* Uzhi March 2016 +if(target->GetStatus() == 4){ + // Skipping possible interactions of the annihilated nucleons + while ( theParticipants.Next() ) { + G4InteractionContent& acollision = theParticipants.GetInteraction(); + G4VSplitableHadron* NextProjectileNucleon = acollision.GetProjectile(); + G4VSplitableHadron* NextTargetNucleon = acollision.GetTarget(); + if ( target == NextTargetNucleon ) {acollision.SetStatus( 0 );} + } +} + theParticipants.StartLoop(); + for ( G4int I = 0; I < CurrentInteraction; I++ ) theParticipants.Next(); +*/ //Uzhi March 2016 } } } @@ -2260,11 +2271,28 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { //G4cout << "primaries[ahadron] " << primaries[ahadron] << G4endl; //if ( primaries[ahadron]->GetStatus() <= 1 ) isProjectile=true; FirstString = 0; SecondString = 0; - if ( primaries[ahadron]->GetStatus() <= 1 ) // Uzhi Oct 2014 start + if ( primaries[ahadron]->GetStatus() == 0 ) // Uzhi May 2016 { theExcitation->CreateStrings( primaries[ ahadron ], isProjectile, FirstString, SecondString, theParameters ); } + else if ( primaries[ahadron]->GetStatus() == 1 + && primaries[ahadron]->GetSoftCollisionCount() != 0 ) // Uzhi May 2016 + { + theExcitation->CreateStrings( primaries[ ahadron ], isProjectile, + FirstString, SecondString, theParameters ); + } + else if ( primaries[ahadron]->GetStatus() == 1 + && primaries[ahadron]->GetSoftCollisionCount() == 0 ) // Uzhi May 2016 + { + G4LorentzVector ParticleMomentum=primaries[ahadron]->Get4Momentum(); + G4KineticTrack* aTrack=new G4KineticTrack( + primaries[ahadron]->GetDefinition(), + primaries[ahadron]->GetTimeOfCreation(), + primaries[ahadron]->GetPosition(), + ParticleMomentum); + FirstString=new G4ExcitedString(aTrack); + } else if(primaries[ahadron]->GetStatus() == 2) { G4LorentzVector ParticleMomentum=primaries[ahadron]->Get4Momentum(); @@ -2275,7 +2303,7 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { ParticleMomentum); FirstString=new G4ExcitedString(aTrack); } - else {G4cout<<"Something wrong in FTF Model Build String" << G4endl;} // Uzhi Oct 2014 end + else {G4cout<<"Something wrong in FTF Model Build String" << G4endl;} if ( FirstString != 0 ) strings->push_back( FirstString ); if ( SecondString != 0 ) strings->push_back( SecondString ); @@ -2326,18 +2354,17 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { << " " << aProjectile->GetStatus() << G4endl; #endif + FirstString = 0; SecondString = 0; if ( aProjectile->GetStatus() == 0 ) { // A nucleon took part in non-diffractive interaction #ifdef debugBuildString G4cout << "Case1 aProjectile->GetStatus() == 0 " << G4endl; #endif - FirstString = 0; SecondString = 0; theExcitation->CreateStrings( TheInvolvedNucleonsOfProjectile[ ahadron ]->GetSplitableHadron(), isProjectile, FirstString, SecondString, theParameters ); - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); + } else if ( aProjectile->GetStatus() == 1 && aProjectile->GetSoftCollisionCount() != 0 ) { // Nucleon took part in diffractive interaction @@ -2345,12 +2372,10 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { G4cout << "Case2 aProjectile->GetStatus() !=0 St==1 SoftCol!=0" << G4endl; #endif - FirstString = 0; SecondString = 0; theExcitation->CreateStrings( TheInvolvedNucleonsOfProjectile[ ahadron ]->GetSplitableHadron(), isProjectile, FirstString, SecondString, theParameters ); - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); + } else if ( aProjectile->GetStatus() == 1 && aProjectile->GetSoftCollisionCount() == 0 && HighEnergyInter ) { // Nucleon was considered as a paricipant of an interaction, @@ -2361,12 +2386,13 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { G4cout << "Case3 aProjectile->GetStatus() !=0 St==1 SoftCol==0" << G4endl; #endif - FirstString = 0; SecondString = 0; - theExcitation->CreateStrings( - TheInvolvedNucleonsOfProjectile[ ahadron ]->GetSplitableHadron(), - isProjectile, FirstString, SecondString, theParameters ); - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); + G4LorentzVector ParticleMomentum=aProjectile->Get4Momentum(); + G4KineticTrack* aTrack=new G4KineticTrack( + aProjectile->GetDefinition(), + aProjectile->GetTimeOfCreation(), + aProjectile->GetPosition(), + ParticleMomentum); + FirstString=new G4ExcitedString(aTrack); #ifdef debugBuildString G4cout << " Strings are built for nucleon marked for an interaction, but" @@ -2380,15 +2406,16 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { G4cout << "Case4 aProjectile->GetStatus() !=0 St==2 " << G4endl; #endif - FirstString = 0; SecondString = 0; - theExcitation->CreateStrings( - TheInvolvedNucleonsOfProjectile[ ahadron ]->GetSplitableHadron(), - isProjectile, FirstString, SecondString, theParameters ); - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); + G4LorentzVector ParticleMomentum=aProjectile->Get4Momentum(); + G4KineticTrack* aTrack=new G4KineticTrack( + aProjectile->GetDefinition(), + aProjectile->GetTimeOfCreation(), + aProjectile->GetPosition(), + ParticleMomentum); + FirstString=new G4ExcitedString(aTrack); #ifdef debugBuildString - G4cout << " Strings are build for involved nucleon." << G4endl; + G4cout << " A track is build for involved nucleon." << G4endl; #endif } else { @@ -2405,8 +2432,11 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { #endif } - } - } + + if ( FirstString != 0 ) strings->push_back( FirstString ); + if ( SecondString != 0 ) strings->push_back( SecondString ); + } // end of for ( G4int ahadron = 0; ahadron < NumberOfInvolvedNucleonsOfProjectile + } // ens of if ( ! GetProjectileNucleus() ) #ifdef debugBuildString G4cout << "Building of target-like strings" << G4endl; @@ -2421,25 +2451,20 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { << aNucleon->GetStatus() << " " << aNucleon->GetSoftCollisionCount()<GetStatus() == 0 ) { // A nucleon took part in non-diffractive interaction - FirstString = 0 ; SecondString = 0; + FirstString = 0 ; SecondString = 0; + + if ( aNucleon->GetStatus() == 0 ) { + // A nucleon took part in non-diffractive interaction theExcitation->CreateStrings( aNucleon, isProjectile, FirstString, SecondString, theParameters ); - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); - #ifdef debugBuildString G4cout << " 1 case A string is build" << G4endl; #endif } else if ( aNucleon->GetStatus() == 1 && aNucleon->GetSoftCollisionCount() != 0 ) { // A nucleon took part in diffractive interaction - FirstString = 0; SecondString = 0; theExcitation->CreateStrings( aNucleon, isProjectile, FirstString, SecondString, theParameters ); - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); - #ifdef debugBuildString G4cout << " 2 case A string is build, nucleon was excited." << G4endl; #endif @@ -2449,27 +2474,18 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { // A nucleon was considered as a participant but due to annihilation // its interactions were skipped. It will be considered as involved one // at high energies. - FirstString = 0; SecondString = 0; - theExcitation->CreateStrings( aNucleon, isProjectile, - FirstString, SecondString, theParameters ); - if(SecondString == 0) // Uzhi Oct 2014 start - { - G4LorentzVector ParticleMomentum=aNucleon->Get4Momentum(); - G4KineticTrack* aTrack=new G4KineticTrack( + G4LorentzVector ParticleMomentum=aNucleon->Get4Momentum(); + G4KineticTrack* aTrack=new G4KineticTrack( aNucleon->GetDefinition(), aNucleon->GetTimeOfCreation(), - FirstString->GetPosition(), + aNucleon->GetPosition(), ParticleMomentum); - delete FirstString; - FirstString=new G4ExcitedString(aTrack); - }; // Uzhi Oct 2014 end - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); + FirstString=new G4ExcitedString(aTrack); #ifdef debugBuildString - G4cout << "3 case A string is build" << G4endl; + G4cout << "3 case A track is build" << G4endl; #endif } else if ( aNucleon->GetStatus() == 1 && aNucleon->GetSoftCollisionCount() == 0 && @@ -2477,36 +2493,28 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { // A nucleon was considered as a participant but due to annihilation // its interactions were skipped. It will be returned to nucleus // at low energies energies. - aNucleon->SetStatus( 5 ); // 4->5 Uzhi Oct 2014 + aNucleon->SetStatus( 5 ); // ????????? delete aNucleon; #ifdef debugBuildString G4cout << "4 case A string is not build" << G4endl; #endif - } else if(( aNucleon->GetStatus() == 2 )|| // A nucleon took part in quark exchange Uzhi Oct 2014 + } else if(( aNucleon->GetStatus() == 2 )|| // A nucleon took part in quark exchange ( aNucleon->GetStatus() == 3 ) ){ // A nucleon was involved in Reggeon cascading - FirstString = 0; SecondString = 0; - theExcitation->CreateStrings( aNucleon, isProjectile, - FirstString, SecondString, theParameters ); - if(SecondString == 0) // Uzhi Oct 2014 start - { - G4LorentzVector ParticleMomentum=aNucleon->Get4Momentum(); - G4KineticTrack* aTrack=new G4KineticTrack( - aNucleon->GetDefinition(), - aNucleon->GetTimeOfCreation(), - aNucleon->GetPosition(), //FirstString->GetPosition(), - ParticleMomentum); - delete FirstString; + + G4LorentzVector ParticleMomentum=aNucleon->Get4Momentum(); + G4KineticTrack* aTrack=new G4KineticTrack( + aNucleon->GetDefinition(), + aNucleon->GetTimeOfCreation(), + aNucleon->GetPosition(), //FirstString->GetPosition(), + ParticleMomentum); + FirstString=new G4ExcitedString(aTrack); - }; // Uzhi Oct 2014 end - - if ( FirstString != 0 ) strings->push_back( FirstString ); - if ( SecondString != 0 ) strings->push_back( SecondString ); #ifdef debugBuildString - G4cout << "5 case A string is build" << G4endl; + G4cout << "5 case A track is build" << G4endl; #endif } else { @@ -2516,7 +2524,11 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() { #endif } - } + + if ( FirstString != 0 ) strings->push_back( FirstString ); + if ( SecondString != 0 ) strings->push_back( SecondString ); + + } // end of for ( G4int ahadron = 0; ahadron < NumberOfInvolvedNucleonsOfTarget #ifdef debugBuildString G4cout << G4endl << "theAdditionalString.size() " << theAdditionalString.size() @@ -2943,9 +2955,8 @@ ComputeNucleusProperties( G4V3DNucleus* nucleus, // input paramete + aNucleon->Get4Momentum().perp2() ); sumMasses += 20.0*MeV; // Separation energy for a nucleon -// residualExcitationEnergy += ExcitationEnergyPerWoundedNucleon; // Uzhi April 2015 residualExcitationEnergy += -ExcitationEnergyPerWoundedNucleon* - G4Log( G4UniformRand()); // Uzhi April 2015 + G4Log( G4UniformRand()); residualMassNumber--; // The absolute value below is needed only in the case of anti-nucleus. residualCharge -= std::abs( G4int( aNucleon->GetDefinition()->GetPDGCharge() ) ); @@ -2970,6 +2981,7 @@ ComputeNucleusProperties( G4V3DNucleus* nucleus, // input paramete if ( residualMassNumber == 1 ) { residualExcitationEnergy = 0.0; } + residualMass += residualExcitationEnergy; // Uzhi March 2016 ???? } sumMasses += std::sqrt( sqr( residualMass ) + residualMomentum.perp2() ); return true; @@ -3002,7 +3014,7 @@ GenerateDeltaIsobar( const G4double sqrtS, // input parameter //const G4double ProbDeltaIsobar = 0.05; // Uzhi 6.07.2012 //const G4double ProbDeltaIsobar = 0.25; // Uzhi 13.06.2013 - const G4double probDeltaIsobar = 0.10; // A.R. 07.08.2013 + const G4double probDeltaIsobar = 0.05; // A.R. 07.08.2013 0.10 -> 0.05 Uzhi March 2016 G4int maxNumberOfDeltas = G4int( (sqrtS - sumMasses)/(400.0*MeV) ); G4int numberOfDeltas = 0; @@ -3032,7 +3044,7 @@ GenerateDeltaIsobar( const G4double sqrtS, // input parameter splitableHadron->SetDefinition( old_def ); break; } else { // Change is accepted - sumMasses += ( massDelta - massNuc ); + sumMasses += ( massDelta - massNuc ); // Uzhi March 2016 ??? } } } @@ -3076,35 +3088,67 @@ SamplingNucleonKinematics( G4double averagePt2, // input param G4bool success = true; G4double SumMasses = residualMass; +/* // Uzhi March 2016 ??? for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { G4Nucleon* aNucleon = involvedNucleons[i]; if ( ! aNucleon ) continue; SumMasses += aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass(); } - +*/ const G4int maxNumberOfLoops = 1000; G4int loopCounter = 0; do { // while ( ! success ) success = true; +//======================================= Sampling of nucleon Pt =============== G4ThreeVector ptSum( 0.0, 0.0, 0.0 ); - G4double xSum = 0.0; for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { G4Nucleon* aNucleon = involvedNucleons[i]; if ( ! aNucleon ) continue; G4ThreeVector tmpPt = GaussianPt( averagePt2, maxPt2 ); ptSum += tmpPt; +// Uzhi 2016 + G4LorentzVector tmp( tmpPt.x(), tmpPt.y(), 0., 0.); + aNucleon->SetMomentum( tmp ); + } + + G4double deltaPx = ( ptSum.x() - pResidual.x() ) / numberOfInvolvedNucleons; + G4double deltaPy = ( ptSum.y() - pResidual.y() ) / numberOfInvolvedNucleons; + + SumMasses = residualMass; + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + G4double px = aNucleon->Get4Momentum().px() - deltaPx; + G4double py = aNucleon->Get4Momentum().py() - deltaPy; + G4double MtN = std::sqrt( sqr( aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass() ) + + sqr( px ) + sqr( py ) ); + SumMasses += MtN; + G4LorentzVector tmp( px, py, 0., MtN); + aNucleon->SetMomentum( tmp ); + } +//======================================== Sampling X of nucleon =============== + G4double xSum = 0.0; + + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + +// Uzhi 2016 G4ThreeVector tmpX = GaussianPt( dCor*dCor, 1.0 ); - G4double x = tmpX.x() + - aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass()/SumMasses; +// G4double x = tmpX.x() + // Uzhi 2016 +// aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass()/SumMasses; + G4double x = tmpX.x() + aNucleon->Get4Momentum().e()/SumMasses; if ( x < 0.0 || x > 1.0 ) { success = false; break; } xSum += x; //AR The energy is in the lab (instead of cms) frame but it will not be used. - G4LorentzVector tmp( tmpPt.x(), tmpPt.y(), x, aNucleon->Get4Momentum().e() ); +// G4LorentzVector tmp( tmpPt.x(), tmpPt.y(), x, aNucleon->Get4Momentum().e() ); // Uzhi + G4LorentzVector tmp( aNucleon->Get4Momentum().x(), aNucleon->Get4Momentum().y(), + x, aNucleon->Get4Momentum().e() ); aNucleon->SetMomentum( tmp ); } @@ -3112,8 +3156,8 @@ SamplingNucleonKinematics( G4double averagePt2, // input param if ( ! success ) continue; - G4double deltaPx = ( ptSum.x() - pResidual.x() ) / numberOfInvolvedNucleons; - G4double deltaPy = ( ptSum.y() - pResidual.y() ) / numberOfInvolvedNucleons; +// G4double deltaPx = ( ptSum.x() - pResidual.x() ) / numberOfInvolvedNucleons; // Uzhi 2016 +// G4double deltaPy = ( ptSum.y() - pResidual.y() ) / numberOfInvolvedNucleons; G4double delta = 0.0; if ( residualMassNumber == 0 ) { delta = ( xSum - 1.0 ) / numberOfInvolvedNucleons; @@ -3139,16 +3183,23 @@ SamplingNucleonKinematics( G4double averagePt2, // input param break; } } +/* // Uzhi 2016 G4double px = aNucleon->Get4Momentum().px() - deltaPx; G4double py = aNucleon->Get4Momentum().py() - deltaPy; mass2 += ( sqr( aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass() ) + sqr( px ) + sqr( py ) ) / x; G4LorentzVector tmp( px, py, x, aNucleon->Get4Momentum().e() ); +*/ + mass2 += sqr( aNucleon->Get4Momentum().e() ) / x; + G4LorentzVector tmp( aNucleon->Get4Momentum().px(), aNucleon->Get4Momentum().py(), + x, aNucleon->Get4Momentum().e() ); aNucleon->SetMomentum( tmp ); } - + if ( ! success ) continue; +//======================================================= if ( success && residualMassNumber != 0 ) { - mass2 += ( sqr( residualMass ) + pResidual.perp2() ) / xSum; +// mass2 += ( sqr( residualMass ) + pResidual.perp2() ) / xSum; // Uzhi 2016 + mass2 += sqr( residualMass ) / xSum; } #ifdef debugPutOnMassShell 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 3bb40b1eb4..ccb39194ca 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4FTFParameters.cc 91775 2015-08-05 14:42:39Z gcosmo $ +// $Id: G4FTFParameters.cc 97394 2016-06-02 10:13:06Z gcosmo $ // GEANT4 tag $Name: $ // @@ -513,7 +513,7 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, // Parameters of elastic scattering // Gaussian parametrization of elastic scattering amplitude assumed SetAvaragePt2ofElasticScattering( 1.0/( Xtotal*Xtotal/16.0/pi/Xelastic/0.3894 )*GeV*GeV ); - //G4cout << "AvaragePt2ofElasticScattering " << GetAvaragePt2ofElasticScattering() << G4endl; +// G4cout << "AvaragePt2ofElasticScattering " << GetAvaragePt2ofElasticScattering() << G4endl; // Parameters of excitations @@ -522,12 +522,13 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, if ( ProjectilePDGcode > 1000 ) { // Projectile is baryon // Proc# A1 B1 A2 B2 A3 Atop Ymin - SetParams( 0, 13.71, 1.75, -214.5, 4.25, 0.0, 0.5 , 1.1 ); // Qexchange without Exc. - SetParams( 1, 25.0, 1.0, -50.34, 1.5 , 0.0, 0.0 , 1.4 ); // Qexchange with Exc. +// SetParams( 0, 13.71, 1.75, -214.5, 4.25, 0.0, 0.5 , 1.1 ); // Qexchange without Exc. + SetParams( 0, 13.71, 1.75, -30.69, 3.0 , 0.0, 1.0 , 0.93 ); // Qexchange without Exc. + SetParams( 1, 25.0 , 1.0 , -50.34, 1.5 , 0.0, 0.0 , 1.4 ); // 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 , -2.01 , 0.5 , 0.0, 0.0 , 1.4 );// Qexchange with Exc. Additional multiply + SetParams( 4, 0.6 , 0.0 , -1.20, 0.5 , 0.0, 0.0 , 1.4 );// 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); @@ -550,9 +551,9 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, SetProjMinNonDiffMass( 1.16 ); // GeV SetTarMinDiffMass( 1.16 ); // GeV SetTarMinNonDiffMass( 1.16 ); // GeV - SetAveragePt2( 0.15 ); // GeV^2 // Uzhi Oct 2014 - SetProbLogDistrPrD( 0.3 ); // Uzhi Oct 2014 0.5 - SetProbLogDistr(0.3 ); // 0.5 + SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Oct 2014 + SetProbLogDistrPrD( 0.3 ); // Uzhi Oct 2014 0.5 + SetProbLogDistr(0.3); // 0.5 } else if( ProjectilePDGcode < -1000 ) { // Projectile is anti_baryon @@ -580,7 +581,7 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, SetProjMinNonDiffMass( ProjectileMass + 0.22 ); // GeV SetTarMinDiffMass( TargetMass + 0.22 ); // GeV SetTarMinNonDiffMass( TargetMass + 0.22 ); // GeV - SetAveragePt2( 0.15 ); // GeV^2 // Uzhi Oct 2014 + SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Oct 2014 SetProbLogDistrPrD( 0.3 ); // Uzhi Oct 2014 SetProbLogDistr( 0.3 ); @@ -603,7 +604,7 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, SetProjMinNonDiffMass( 0.5 ); // (0.5) // GeV SetTarMinDiffMass( 1.16 ); // GeV SetTarMinNonDiffMass( 1.16 ); // GeV - SetAveragePt2( 0.15 ); // GeV^2 // Uzhi Oct 2014 + SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Oct 2014 SetProbLogDistrPrD( 0.3 ); // Uzhi Oct 2014 SetProbLogDistr( 0.3 ); @@ -626,14 +627,15 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, SetProjMinNonDiffMass( 0.7 ); // (1.4) // (0.7) // GeV SetTarMinDiffMass( 1.16 ); // GeV SetTarMinNonDiffMass( 1.16 ); // GeV - SetAveragePt2( 0.15 ); // GeV^2 // Uzhi Oct 2014 + SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Oct 2014 SetProbLogDistrPrD( 0.5 ); // Uzhi Oct 2014 SetProbLogDistr( 0.3 ); // Uzhi 5.06.2012 } else { // Projectile is undefined, Nucleon assumed // Proc# A1 B1 A2 B2 A3 Atop Ymin - SetParams( 0, 13.71, 1.75, -214.5, 4.25, 0.0, 0.5 , 1.1 ); // Qexchange without Exc. +// SetParams( 0, 13.71, 1.75, -214.5, 4.25, 0.0, 0.5 , 1.1 ); // Qexchange without Exc. May 2016 + SetParams( 0, 13.71, 1.75, -30.69, 3.0 , 0.0, 1.0 , 0.93 ); // Qexchange without Exc. SetParams( 1, 25.0, 1.0, -50.34, 1.5 , 0.0, 0.0 , 1.4 ); // 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 @@ -654,7 +656,7 @@ G4FTFParameters::G4FTFParameters( const G4ParticleDefinition* particle, SetProjMinNonDiffMass( ProjectileMass + 0.22 ); // GeV SetTarMinDiffMass( TargetMass + 0.22 ); // GeV SetTarMinNonDiffMass( TargetMass + 0.22 ); // GeV - SetAveragePt2( 0.15 ); // GeV^2 // Uzhi Oct 2014 + SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Oct 2014 SetProbLogDistrPrD( 0.3 ); // Uzhi Oct 2014 SetProbLogDistr( 0.3 ); diff --git a/source/processes/hadronic/models/parton_string/hadronization/History b/source/processes/hadronic/models/parton_string/hadronization/History index c75113d15d..9dd5b494fa 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/History +++ b/source/processes/hadronic/models/parton_string/hadronization/History @@ -1,4 +1,4 @@ -$Id: History 92025 2015-08-13 14:17:05Z gcosmo $ +$Id: History 97675 2016-06-07 08:29:49Z gcosmo $ ------------------------------------------------------------------- ========================================================== @@ -14,6 +14,33 @@ code and to keep track of all tags. --------------------------------------------------------------- * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- + 6-June-2016 V. Uzhinsky (had-hadronization-V10-02-05) + Re-tag of previouse tag. Compilation warning is erased. + + 4-June-2016 V. Uzhinsky (had-hadronization-V10-02-04) + A solution of the baryon puzzle of NA49 data has been found! + of baryons 1/2 at a string fragmentation is setting up at 435 MeV/c, + and for barion 3/2 production - 900 MeV/c. + + 1-June-2016 V. Uzhinsky (had-hadronization-V10-02-03) + Fine tuning of G4LundStringFragmentation.cc. of mesons created at + quark fragmentation is decreased. of baryons created at quark and + diquark is increased. Fragmentation functions of qq-> B(1/2) and B(3/2) + are implemented correctly. + +28-May-2016 V. Uzhinsky (had-hadronization-V10-02-02) + is increased in 2 times in G4LundStringFragmentation.cc. + It is very important for a description of NA49 exp. data on + pp-interactions at 158 GeV/c, especially for xF and Pt distributions. + +23-May-2016 V. Uzhinsky (had-hadronization-V10-02-01) + Di-quark fragmentation into baryons is improved in LUND + string fragmentation. Description of NA49 and NA61/SHINE + exp. data on p+p->p+X is improved. + +12-May-2016 V. Uzhinsky (had-hadronization-V10-02-00) + - G4LundStringFragmentation.cc, the method SetMinimalStringMass was improved + which is important for Pbar P annihilation. 13-Aug-2015 A. Ribon (had-hadronization-V10-01-09) - G4QGSMFragmentation, G4FragmentingString : Coverity fix. 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 53fc4d39a3..f2068eab5a 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc @@ -84,17 +84,20 @@ G4KineticTrackVector *G4ExcitedStringDecay::FragmentStrings(const G4ExcitedStrin #endif for ( unsigned int astring=0; astring < theStrings->size(); astring++) +// for ( unsigned int astring=0; astring < 1; astring++) { if ( theStrings->operator[](astring)->IsExcited() ) {KTsum+= theStrings->operator[](astring)->Get4Momentum();} else {KTsum+=theStrings->operator[](astring)->GetKineticTrack()->Get4Momentum();} } - G4LorentzRotation toCms( -1 * KTsum.boostVector() ); // Uzhi 22 June 2014 - G4LorentzRotation toLab(toCms.inverse()); // Uzhi 22 June 2014 + G4LorentzRotation toCms( -1 * KTsum.boostVector() ); + G4LorentzRotation toLab(toCms.inverse()); G4LorentzVector Ptmp; KTsum=G4LorentzVector(0.,0.,0.,0.); - for ( unsigned int astring=0; astring < theStrings->size(); astring++) // Uzhi 22 June 2014 + + for ( unsigned int astring=0; astring < theStrings->size(); astring++) +// for ( unsigned int astring=0; astring < 1; astring++) { if ( theStrings->operator[](astring)->IsExcited() ) { @@ -112,7 +115,7 @@ G4KineticTrackVector *G4ExcitedStringDecay::FragmentStrings(const G4ExcitedStrin theStrings->operator[](astring)->GetKineticTrack()->Set4Momentum(Ptmp); KTsum+= theStrings->operator[](astring)->GetKineticTrack()->Get4Momentum(); } - } // Uzhi 22 June 2014 + } G4KineticTrackVector * theResult = new G4KineticTrackVector; G4int attempts(0); @@ -132,7 +135,7 @@ G4KineticTrackVector *G4ExcitedStringDecay::FragmentStrings(const G4ExcitedStrin NeedEnergyCorrector=false; for ( unsigned int astring=0; astring < theStrings->size(); astring++) -// for ( unsigned int astring=0; astring < 1; astring++) +// for ( unsigned int astring=0; astring < 1; astring++) // Vova { #ifdef debug_G4ExcitedStringDecay G4cout<<"String No "<operator[](astring)->IsExcited()<operator[](astring)); #ifdef debug_G4ExcitedStringDecay - G4cout<<"(G4ExcitedStringDecay) Number of produced hadrons = "<size()<size();aTrack++) // Uzhi 22 June 2014 + for ( unsigned int aTrack=0; aTracksize();aTrack++) { Ptmp=(*theResult)[aTrack]->Get4Momentum(); Ptmp.transform( toLab); (*theResult)[aTrack]->Set4Momentum(Ptmp); - } // Uzhi 22 June 2014 + } #ifdef debug_G4ExcitedStringDecay G4cout<<"End of the strings fragmentation (G4ExcitedStringDecay)"<Get4Momentum(); } - G4cout << "Needcorrector/success " << NeedEnergyCorrector << "/" << success << ", Corrected total 4 momentum " << KTsum1 << G4endl; + G4cout << "Needcorrector/success " << NeedEnergyCorrector << "/" << success + << ", Corrected total 4 momentum " << KTsum1 << G4endl; if ( ! success ) G4cout << "failed to correct E/p" << G4endl; G4cout<<"End of the Hadronization (G4ExcitedStringDecay)"<size(); astring++) // Uzhi 24 Oct. 2014 +// for ( unsigned int astring=0; astring < theStrings->size(); astring++) // Uzhi 24 Oct. 2014 + for ( unsigned int astring=0; astring < 1; astring++) // Uzhi 24 Oct. 2014 { if ( theStrings->operator[](astring)->IsExcited() ) { 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 2e4511e90e..69981c8fa2 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4LundStringFragmentation.cc 91857 2015-08-07 13:55:49Z gcosmo $ +// $Id: G4LundStringFragmentation.cc 97675 2016-06-07 08:29:49Z gcosmo $ // GEANT4 tag $Name: $ 1.8 // // ----------------------------------------------------------------------------- @@ -63,10 +63,12 @@ G4LundStringFragmentation::G4LundStringFragmentation() // ------ smearing sharp mass cut-off --------------------------- SmoothParam = 0.2; + SigmaQT = 0.435 * GeV; // 0.5 -> 0.471 = 0.5 GeV^2 Uzhi 28 May + SetStringTensionParameter(1.); SetDiquarkBreakProbability(0.05); - SetStrangenessSuppression(0.46); //(0.447); Uzhi 25.05.2015 - SetDiquarkSuppression(0.05); + SetStrangenessSuppression(0.45); //(0.46); //(0.447); Uzhi 25.05.2015 + SetDiquarkSuppression(0.06); // 0.05 -> 0.06 Uzhi 28 May 2016 // For treating of small string decays for(G4int i=0; i<3; i++) @@ -394,7 +396,7 @@ G4LundStringFragmentation::G4LundStringFragmentation() Prob_QQbar[0]=StrangeSuppress; // Probability of ddbar production Prob_QQbar[1]=StrangeSuppress; // Probability of uubar production Prob_QQbar[2]=1.0-2.*StrangeSuppress; // Probability of ssbar production - SetStrangenessSuppression(0.46); //(0.447); // Uzhi May 2014 + SetStrangenessSuppression(0.45); //(0.46); //(0.447); // Uzhi May 2014 //A.R. 25-Jul-2012 : Coverity fix. for ( G4int i=0 ; i<35 ; i++ ) { @@ -475,26 +477,40 @@ void G4LundStringFragmentation::SetMinimalStringMass(const G4FragmentingString // G4cout<<"Number_of_quarks "< 1880.) { // 382. Uzhi May 2016 // 2*Mn = 1880 + if(Number_of_squarks==0) {EstimatedMass += 1320.*MeV;}//560+1320=1880=2*Mn + else if(Number_of_squarks==1) {EstimatedMass += 1150.*MeV;}//920+1150=2070=M(Lam+N) + else if(Number_of_squarks==2) {EstimatedMass += 960.*MeV;}//1280+960=2240= 2*M Lam + else if(Number_of_squarks==3) {EstimatedMass += 800.*MeV;}//1640+800=2440=Mxi+Mlam + else if(Number_of_squarks==4) {EstimatedMass += 640.*MeV;}//2000+640=2640=2*Mxi + else {} + } +/* if((StringM > 1880.) && ( EstimatedMass < 2100)) {EstimatedMass = 2020.;}//1880.;} // if((StringM > 1880.) && ( EstimatedMass < 2100)) {EstimatedMass = 2051.;} else if((StringM > 2232.) && ( EstimatedMass < 2730)){EstimatedMass = 2570.;} else if((StringM > 5130.) && ( EstimatedMass < 3450)){EstimatedMass = 5130.;} +*/ else { -// VU 30 May 2014 EstimatedMass -=2.*Mass_of_string_junction; - if(EstimatedMass <= 1600.*MeV){EstimatedMass-=200.*MeV;} - else {EstimatedMass+=100.*MeV;} + if(Number_of_squarks < 3) {EstimatedMass -= 200.*MeV;} + else if(Number_of_squarks==3) {EstimatedMass -= 50.*MeV;} + else if(Number_of_squarks==4) {EstimatedMass -= 40.*MeV;} + else {} } } @@ -847,6 +863,7 @@ G4LorentzVector * G4LundStringFragmentation::SplitEandP(G4ParticleDefinition * p G4double StringMT =std::sqrt(StringMT2); G4double HadronMass = pHadron->GetPDGMass(); +// G4int AbsBaryonNumber =std::abs(pHadron->GetBaryonNumber()); // Uzhi 30 May SetMinimalStringMass(newString); @@ -874,10 +891,13 @@ G4LorentzVector * G4LundStringFragmentation::SplitEandP(G4ParticleDefinition * p G4double HadronMassT2, ResidualMassT2; //... sample Pt of the hadron + G4double InitSigmaQT=SigmaQT; // Uzhi 30 May 2016 +// if(AbsBaryonNumber > 0) SigmaQT=0.7 * GeV; // Uzhi 30 May 2016 0.66 +if(pHadron->GetPDGIsospin() >= 1.5 ) SigmaQT=0.9 * GeV; // Uzhi 30 May 2016 0.66 0.70 G4int attempt=0; do { - attempt++; if(attempt > StringLoopInterrupt) return 0; + attempt++; if(attempt > StringLoopInterrupt) {SigmaQT=InitSigmaQT; return 0;} // Uzhi 30 May 2016 HadronPt =SampleQuarkPt() + string->DecayPt(); HadronPt.setZ(0); @@ -888,6 +908,8 @@ G4LorentzVector * G4LundStringFragmentation::SplitEandP(G4ParticleDefinition * p } while(std::sqrt(HadronMassT2) + std::sqrt(ResidualMassT2) > StringMT); /* Loop checking, 07.08.2015, A.Ribon */ +// if(AbsBaryonNumber > 0) SigmaQT=InitSigmaQT; // Uzhi 30 May 2016 +if(pHadron->GetPDGIsospin() >= 1.5 ) SigmaQT=InitSigmaQT; //... sample z to define hadron longitudinal momentum and energy //... but first check the available phase space @@ -905,7 +927,7 @@ G4LorentzVector * G4LundStringFragmentation::SplitEandP(G4ParticleDefinition * p if (zMin >= zMax) return 0; // have to start all over! - G4double z = GetLightConeZ(zMin, zMax, + G4double z = GetLightConeZ(zMin, zMax, string->GetDecayParton()->GetPDGEncoding(), pHadron, HadronPt.x(), HadronPt.y()); @@ -937,13 +959,14 @@ G4double G4LundStringFragmentation::GetLightConeZ(G4double zmin, G4double zmax, G4double Px, G4double Py) { G4double Mass = pHadron->GetPDGMass(); -// G4int HadronEncoding=std::abs(pHadron->GetPDGEncoding()); + G4int HadronEncoding=std::abs(pHadron->GetPDGEncoding()); G4double Mt2 = Px*Px + Py*Py + Mass*Mass; G4double alund; G4double zOfMaxyf(0.), maxYf(1.), z(0.), yf(1.); - if(std::abs(PDGEncodingOfDecayParton) < 1000) + + if(!((std::abs(PDGEncodingOfDecayParton) > 1000) && (HadronEncoding > 1000))) { // ---------------- Quark fragmentation ---------------------- alund=0.7/GeV/GeV; // If blund get restored, you MUST adapt the calculation of zOfMaxyf. @@ -967,25 +990,12 @@ G4double G4LundStringFragmentation::GetLightConeZ(G4double zmin, G4double zmax, return z; } - if(std::abs(PDGEncodingOfDecayParton) > 1000) // Uzhi Sept. 2014 + if(std::abs(PDGEncodingOfDecayParton) > 1000) // Uzhi May. 2016 { -/* - if(HadronEncoding < 3000) - { - maxYf=(zmax-zmin); - do - { - z = zmin + G4UniformRand()*(zmax-zmin); - //yf=G4Exp(-sqr(z-Zc)/2/sqr(0.28)); // 0.42 0.632 0.28 a'la UrQMD - yf =(z-zmin); - } - while (G4UniformRand()*maxYf > yf); - } - else - { // Strange baryons -*/ - z = zmin + G4UniformRand()*(zmax-zmin); -// } + G4double an=2.5; + if(pHadron->GetPDGIsospin() > 0.5) an=0.75; + + z=zmin + (zmax-zmin)*G4Pow::GetInstance()->powA(G4UniformRand(),1./an); } return z; diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc index 6ca435dddb..2216878e06 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VLongitudinalStringDecay.cc 91773 2015-08-05 13:59:07Z gcosmo $ +// $Id: G4VLongitudinalStringDecay.cc 97393 2016-06-02 10:12:05Z gcosmo $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file @@ -72,7 +72,7 @@ G4VLongitudinalStringDecay::G4VLongitudinalStringDecay() ClusterLoopInterrupt = 500; // Changable Parameters below. - SigmaQT = 0.5 * GeV; // 0.5 0.1 + SigmaQT = 0.5 * GeV; StrangeSuppress = 0.44; // 27 % strange quarks produced, ie. u:d:s=1:1:0.27 DiquarkSuppress = 0.07; @@ -86,9 +86,9 @@ G4VLongitudinalStringDecay::G4VLongitudinalStringDecay() //... vectorMesonMix[] is quark mixing parameters for vector mesons (Variable spin = 3) vectorMesonMix.resize(6); - vectorMesonMix[0] = 0.0; //AR-20Oct2014 : it was 0.5 + vectorMesonMix[0] = 0.5; //AR-20Oct2014 : it was 0.5 vectorMesonMix[1] = 0.0; - vectorMesonMix[2] = 0.0; //AR-20Oct2014 : it was 0.5 + vectorMesonMix[2] = 0.5; //AR-20Oct2014 : it was 0.5 vectorMesonMix[3] = 0.0; vectorMesonMix[4] = 1.0; vectorMesonMix[5] = 1.0; @@ -489,7 +489,9 @@ G4VLongitudinalStringDecay::pDefPair G4VLongitudinalStringDecay::CreatePartonPai } else { // Create a Quark - AntiQuark pair, first in pair IsParticle +//G4double StrSup=StrangeSuppress; StrangeSuppress=0.5; G4int PDGcode=SampleQuarkFlavor()*NeedParticle; +//StrangeSuppress=StrSup; return pDefPair (FindParticle(PDGcode),FindParticle(-PDGcode)); } diff --git a/source/processes/hadronic/models/parton_string/management/History b/source/processes/hadronic/models/parton_string/management/History index 81a9cc3de8..871a7c7105 100644 --- a/source/processes/hadronic/models/parton_string/management/History +++ b/source/processes/hadronic/models/parton_string/management/History @@ -1,4 +1,4 @@ -$Id: History 91858 2015-08-07 13:57:22Z gcosmo $ +$Id: History 96953 2016-05-18 12:22:54Z gcosmo $ ------------------------------------------------------------------- ========================================================== @@ -15,6 +15,9 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +18-May-2016 A. Ribon hadr-partonstring-mgt-V10-02-00 +- G4PomeronCrossSection : moved into the qgsm/ directory. + 07-Aug-2015 A. Ribon hadr-partonstring-mgt-V10-01-02 - G4VPartonStringModel : checking of 'while' loops. diff --git a/source/processes/hadronic/models/parton_string/management/sources.cmake b/source/processes/hadronic/models/parton_string/management/sources.cmake index 5401b83fbc..1a951b7c0b 100644 --- a/source/processes/hadronic/models/parton_string/management/sources.cmake +++ b/source/processes/hadronic/models/parton_string/management/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 66892 2013-01-17 10:57:59Z gunter $ +# $Id: sources.cmake 96953 2016-05-18 12:22:54Z gcosmo $ # #------------------------------------------------------------------------------ @@ -49,7 +49,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_string_man G4EventGenerator.hh G4InteractionCode.hh G4InteractionContent.hh - G4PomeronCrossSection.hh G4StringModel.hh G4VParticipants.hh G4VPartonStringModel.hh @@ -59,7 +58,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_string_man SOURCES G4EventGenerator.cc G4InteractionContent.cc - G4PomeronCrossSection.cc G4StringModel.cc G4VParticipants.cc G4VPartonStringModel.cc diff --git a/source/processes/hadronic/models/parton_string/qgsm/History b/source/processes/hadronic/models/parton_string/qgsm/History index 2c6ff3768b..b378af7daa 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/History +++ b/source/processes/hadronic/models/parton_string/qgsm/History @@ -1,4 +1,4 @@ -$Id: History 93563 2015-10-26 14:46:09Z gcosmo $ +$Id: History 96952 2016-05-18 12:21:34Z gcosmo $ ------------------------------------------------------------------- ========================================================== @@ -15,6 +15,22 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +18 May 2016 Alberto Ribon (hadr-qgsm-V10-02-02) +- G4PomeronCrossSection : added class originally in the management/ + directory. + +14 April 2016 Alberto Ribon (hadr-qgsm-V10-02-01) + G4QGSMSplitableHadron : fixed bug in the case of gamma projectile + with P_minus = 0. + +04 December 2015 Alberto Ribon (hadr-qgsm-V10-02-00) + Resumed the tag hadr-qgsm-V10-01-14, i.e. the new QGS model. + The files that are changed are: G4QGSDiffractiveExcitation.hh, + G4QGSMSplitableHadron.hh, G4QGSModel.icc, G4QGSParticipants.hh, + G4QGSMSplitableHadron.cc, G4GammaParticipants.cc, G4QGSParticipants.cc, + G4SingleDiffractiveExcitation.cc, G4QGSDiffractiveExcitation.cc and + G4SPBaryon.cc . + 26 October 2015 Alberto Ribon (hadr-qgsm-V10-01-16) After bringing the QGS string formation as it was in G4 10.1 (and before) in the previous tag, check of 'while' loops and deploy the diff --git a/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4PomeronCrossSection.hh similarity index 98% rename from source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4PomeronCrossSection.hh index 79a2297a9f..86f97d612c 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4PomeronCrossSection.hh @@ -26,7 +26,7 @@ #ifndef G4PomeronCrossSection_h #define G4PomeronCrossSection_h 1 // -// $Id: G4PomeronCrossSection.hh 67999 2013-03-13 11:14:32Z gcosmo $ +// $Id: G4PomeronCrossSection.hh 96952 2016-05-18 12:21:34Z gcosmo $ // #include "G4Proton.hh" #include "G4Neutron.hh" diff --git a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSDiffractiveExcitation.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSDiffractiveExcitation.hh index 53becc777d..26b85c9071 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSDiffractiveExcitation.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSDiffractiveExcitation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4QGSDiffractiveExcitation.hh 93511 2015-10-23 13:43:49Z gcosmo $ +// $Id: G4QGSDiffractiveExcitation.hh 94750 2015-12-07 08:24:29Z gcosmo $ #ifndef G4QGSDiffractiveExcitation_h #define G4QGSDiffractiveExcitation_h 1 @@ -53,7 +53,7 @@ class G4QGSDiffractiveExcitation public: - G4QGSDiffractiveExcitation(); // Uzhi + G4QGSDiffractiveExcitation(); virtual ~G4QGSDiffractiveExcitation(); virtual G4bool ExciteParticipants (G4VSplitableHadron *aPartner, G4VSplitableHadron * bPartner) const; @@ -68,23 +68,15 @@ private: G4QGSDiffractiveExcitation(const G4QGSDiffractiveExcitation &right); - // G4double ChooseX(G4double Xmin, G4double Xmax) const; // Uzhi - G4double ChooseP(G4double Pmin, G4double Pmax) const; // Uzhi + G4double ChooseP(G4double Pmin, G4double Pmax) const; - // G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare) const; - G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const; // Uzhi + G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const; const G4QGSDiffractiveExcitation & operator=(const G4QGSDiffractiveExcitation &right); int operator==(const G4QGSDiffractiveExcitation &right) const; int operator!=(const G4QGSDiffractiveExcitation &right) const; private: - // Model Parameters: - /* // Uzhi - const G4double widthOfPtSquare; // width^2 of pt for string excitation - const G4double minExtraMass; // minimum excitation mass - const G4double minmass; // mean pion transverse mass; used for Xmin - */ // Uzhi }; #endif 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 67f8674d89..6839bd9423 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh @@ -64,6 +64,7 @@ private: void InitParameters(); void DiffractiveSplitUp(); void SoftSplitUp(); + G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare); void GetValenceQuarkFlavors(const G4ParticleDefinition * aPart, G4Parton *& Parton1, G4Parton *& Parton2); @@ -76,7 +77,12 @@ private: std::deque Color; std::deque AntiColor; +//std::deque::iterator iP; // Uzhi +//std::deque::iterator iAP; // Uzhi +unsigned int iP; // Uzhi 5.06.2015 +unsigned int iAP; // Uzhi 5.06.2015 private: + // associated classes G4MesonSplitter theMesonSplitter; G4BaryonSplitter theBaryonSplitter; @@ -95,16 +101,29 @@ private: inline G4Parton* G4QGSMSplitableHadron::GetNextParton() { if(Color.size()==0) return 0; - G4Parton * result = Color.back(); - Color.pop_back(); +//Uzhi G4Parton * result = Color.back(); +//Uzhi Color.pop_back(); +/* + G4Parton * result = *iP; + iP++; if( iP == Color.end()) iP=Color.begin(); +*/ + + G4Parton * result = Color.operator[](iP); + iP++; if(iP == Color.size()) iP=0; return result; } inline G4Parton* G4QGSMSplitableHadron::GetNextAntiParton() { if(AntiColor.size() == 0) return 0; - G4Parton * result = AntiColor.front(); - AntiColor.pop_front(); +//Uzhi G4Parton * result = AntiColor.front(); +//Uzhi AntiColor.pop_front(); +/* + G4Parton * result = *iAP; + iAP++; if( iAP == AntiColor.end()) iAP=AntiColor.begin(); +*/ + G4Parton * result = AntiColor.operator[](iAP); + iAP++; if(iAP == AntiColor.size()) iAP=0; return result; } diff --git a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.icc b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.icc index e2f1b3e935..5009fd7bd7 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.icc +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.icc @@ -58,6 +58,11 @@ template void G4QGSModel::Init(const G4Nucleus & aNucleus, const G4DynamicParticle & aProjectile) { // clean-up and consistency with design, HPW Feb 1999 +/* +G4cout<<"QGSM Init A Z "<GetParticleName()<<" "<GetBaryonNumber()<::Init(const G4Nucleus & aNucleus, const G4Dynam // this is an approximation, neglecting the motion of nucleons in the nucleus & p,n mass differences. @@@ // G4double vz_old = aProjectile.Get4Momentum().pz()/ // (aProjectile.Get4Momentum().e() + G4Proton::Proton()->GetPDGMass()); +/* //Uzhi 15.05.2015 G4double nCons = 1; if(std::abs(aProjectile.GetDefinition()->GetBaryonNumber()) !=0) { nCons = std::abs(aProjectile.GetDefinition()->GetBaryonNumber()); } - G4double pz_per_projectile = aProjectile.Get4Momentum().pz()/nCons; -// G4double e_per_projectile = aProjectile.Get4Momentum().vect()*aProjectile.Get4Momentum().vect(); -// e_per_projectile /=nCons*nCons; -// e_per_projectile += G4Proton::Proton()->GetPDGMass()*G4Proton::Proton()->GetPDGMass(); - G4double e_per_projectile = aProjectile.Get4Momentum()*aProjectile.Get4Momentum(); - e_per_projectile += aProjectile.Get4Momentum().vect()*aProjectile.Get4Momentum().vect(); - e_per_projectile /=nCons*nCons; - e_per_projectile = std::sqrt(e_per_projectile); - e_per_projectile += G4Proton::Proton()->GetPDGMass(); - G4double vz = pz_per_projectile/e_per_projectile; -//--DEBUG-- G4cout << "IncomingMomentum - vz "<GetPDGMass(); + G4double vz = 0.; //pz_per_projectile/EperHN; + theCurrentVelocity.setZ(vz); - theParticipants.DoLorentzBoost(-theCurrentVelocity); + theParticipants.DoLorentzBoost(-theCurrentVelocity); // Lorentz boost of the target nucleus G4LorentzVector Mom = aProjectile.Get4Momentum(); - Mom.boost(-theCurrentVelocity); + Mom.boost(-theCurrentVelocity); // Lorentz boost of the projectile +// End of the transformation ------------------------------------------ + G4ReactionProduct theProjectile; theProjectile.SetDefinition(aProjectile.GetDefinition()); theProjectile.SetTotalEnergy(Mom.e()); theProjectile.SetMomentum(Mom.vect()); -//--DEBUG-- G4cout << "PreInteractionMomentum "<DoLorentzBoost(theCurrentVelocity); + theParticipants.GetWoundedNucleus()->DoLorentzBoost(theCurrentVelocity); // Backward transformation } template G4ExcitedStringVector * G4QGSModel::GetStrings() { +//G4cout<<"G4ExcitedStringVector * G4QGSModel::GetStrings()"<GetCollisionType() "<GetCollisionType()<GetCollisionType() == G4PartonPair::DIFFRACTIVE) { aString = theDiffractiveStringBuilder.BuildString(aPair); - // G4cout << "diffractive "<Get4Momentum()<Get4Momentum()<Get4Momentum()<Get4Momentum()<Boost(theCurrentVelocity); theStrings->push_back(aString); delete aPair; } -//--DEBUG-- G4cout << G4endl; -// for(G4int i=0; isize(); i++) -// { -// G4cout << "String = "<operator[](i)->Get4Momentum()<DoLorentzBoost(aBoost); theBoost = aBoost; } @@ -59,11 +61,95 @@ public: void BuildInteractions(const G4ReactionProduct &thePrimary); void StartPartonPairLoop(); +//Uzhi Start copy from FTFmodel +private: +//Uzhi G4V3DNucleus* GetWoundedNucleus() const; + G4V3DNucleus* GetTargetNucleus() const; + G4V3DNucleus* GetProjectileNucleus() const; + + void PrepareInitialState( const G4ReactionProduct& thePrimary ); + void GetList( const G4ReactionProduct& thePrimary ); + + void StoreInvolvedNucleon(); + void ReggeonCascade(); + G4bool PutOnMassShell(); +//Uzhi G4bool ExciteParticipants(); +//Uzhi G4ExcitedStringVector* BuildStrings(); + void GetResiduals(); + +//Uzhi G4bool AdjustNucleons( G4VSplitableHadron* SelectedAntiBaryon, +//Uzhi G4Nucleon* ProjectileNucleon, +//Uzhi G4VSplitableHadron* SelectedTargetNucleon, +//Uzhi G4Nucleon* TargetNucleon, +//Uzhi G4bool Annihilation ); + G4ThreeVector GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const; + + G4bool ComputeNucleusProperties( G4V3DNucleus* nucleus, G4LorentzVector& nucleusMomentum, + G4LorentzVector& residualMomentum, G4double& sumMasses, + G4double& residualExcitationEnergy, G4double& residualMass, + G4int& residualMassNumber, G4int& residualCharge ); + // Utility method used by PutOnMassShell. + + G4bool GenerateDeltaIsobar( const G4double sqrtS, const G4int numberOfInvolvedNucleons, + G4Nucleon* involvedNucleons[], G4double& sumMasses ); + // Utility method used by PutOnMassShell. + + G4bool SamplingNucleonKinematics( G4double averagePt2, const G4double maxPt2, + G4double dCor, G4V3DNucleus* nucleus, + const G4LorentzVector& pResidual, + const G4double residualMass, const G4int residualMassNumber, + const G4int numberOfInvolvedNucleons, + G4Nucleon* involvedNucleons[], G4double& mass2 ); + // Utility method used by PutOnMassShell. + + G4bool CheckKinematics( const G4double sValue, const G4double sqrtS, + const G4double projectileMass2, const G4double targetMass2, + const G4double nucleusY, const G4bool isProjectileNucleus, + const G4int numberOfInvolvedNucleons, G4Nucleon* involvedNucleons[], + G4double& targetWminus, G4double& projectileWplus, G4bool& success ); + // Utility method used by PutOnMassShell. + + G4bool FinalizeKinematics( const G4double w, const G4bool isProjectileNucleus, + const G4LorentzRotation& boostFromCmsToLab, + const G4double residualMass, const G4int residualMassNumber, + const G4int numberOfInvolvedNucleons, + G4Nucleon* involvedNucleons[], + G4LorentzVector& residual4Momentum ); + // Utility method used by PutOnMassShell. + +//Uzhi End copy from FTFmodel + +void CreateStrings(); + +//Uzhi Start copy from FTFparameters +private: + // Set parameters of nuclear destruction + void SetCofNuclearDestruction( const G4double aValue ); + void SetR2ofNuclearDestruction( const G4double aValue ); + + void SetExcitationEnergyPerWoundedNucleon( const G4double aValue ); + + void SetDofNuclearDestruction( const G4double aValue ); + void SetPt2ofNuclearDestruction( const G4double aValue ); + void SetMaxPt2ofNuclearDestruction( const G4double aValue ); + + // Get parameters of nuclear destruction + G4double GetCofNuclearDestruction(); + G4double GetR2ofNuclearDestruction(); + + G4double GetExcitationEnergyPerWoundedNucleon(); + + G4double GetDofNuclearDestruction(); + G4double GetPt2ofNuclearDestruction(); + G4double GetMaxPt2ofNuclearDestruction(); +//Uzhi End copy from FTFparameters + protected: virtual G4VSplitableHadron* SelectInteractions(const G4ReactionProduct &thePrimary); void SplitHadrons(); void PerformSoftCollisions(); void PerformDiffractiveCollisions(); + G4bool DeterminePartonMomenta(); protected: struct DeleteInteractionContent {void operator()(G4InteractionContent*aC){delete aC;}}; @@ -79,7 +165,7 @@ protected: G4bool IsSingleDiffractive(); G4ThreeVector theBoost; - + G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta); protected: // model parameters HPW enum { SOFT, DIFFRACTIVE }; @@ -88,6 +174,60 @@ protected: const G4double QGSMThreshold; const G4double theNucleonRadius; + // cash theCurrentVelocity for lorentztrafo HPW + G4ThreeVector theCurrentVelocity; // Uzhi 17 Apr. 2015 + G4QGSMSplitableHadron* theProjectileSplitable; // Uzhi 21.05.2015 +private: +//Uzhi Start copy from FTFmodel + G4ReactionProduct theProjectile; +// G4QGSMSplitableHadron* theProjectileSplitable; + + G4double alpha; + G4double beta; + + G4double sigmaPt; +//Uzhi G4FTFParticipants theParticipants; + + G4Nucleon* TheInvolvedNucleonsOfTarget[250]; + G4int NumberOfInvolvedNucleonsOfTarget; + + G4Nucleon* TheInvolvedNucleonsOfProjectile[250]; + G4int NumberOfInvolvedNucleonsOfProjectile; + +//Uzhi G4FTFParameters* theParameters; +//Uzhi G4DiffractiveExcitation* theExcitation; +//Uzhi G4ElasticHNScattering* theElastic; +//Uzhi G4FTFAnnihilation* theAnnihilation; + +//Uzhi std::vector< G4VSplitableHadron* > theAdditionalString; + +//Uzhi G4double LowEnergyLimit; +//Uzhi G4bool HighEnergyInter; + + G4LorentzVector ProjectileResidual4Momentum; + G4int ProjectileResidualMassNumber; + G4int ProjectileResidualCharge; + G4double ProjectileResidualExcitationEnergy; + + G4LorentzVector TargetResidual4Momentum; + G4int TargetResidualMassNumber; + G4int TargetResidualCharge; + G4double TargetResidualExcitationEnergy; +//Uzhi End copy from FTFmodel + +//Uzhi Start copy from FTFparameters +private: + // Parameters of nuclear destruction + G4double CofNuclearDestruction; // Cnd of nuclear destruction + G4double R2ofNuclearDestruction; // R2nd + + G4double ExcitationEnergyPerWoundedNucleon; + + G4double DofNuclearDestruction; // D for momentum sampling + G4double Pt2ofNuclearDestruction; // Pt2 + G4double MaxPt2ofNuclearDestruction; // Max Pt2 +//Uzhi End copy from FTFparameters + }; @@ -113,13 +253,102 @@ inline G4PartonPair* G4QGSParticipants::GetNextPartonPair() inline void G4QGSParticipants::SplitHadrons() { +//G4cout<<"----------------------------------- SplitHadrons -------------"<GetProjectile()<<" "<GetProjectileNucleon()<<" " +// <GetTarget()<<" "<GetTargetNucleon()<GetProjectile()->GetDefinition()->GetParticleName()<GetTarget()->GetDefinition()->GetParticleName()<GetNumberOfSoftCollisions()<<" " +// <GetNumberOfHardCollisions()<<" " +// <GetNumberOfDiffractiveCollisions()<SplitHadrons(); } } +//-------------------------------------- +//Uzhi Copy from FTF Model.hh +/* +inline G4V3DNucleus* G4QGSParticipants::GetWoundedNucleus() const { + return theNucleus; +} +*/ +inline G4V3DNucleus* G4QGSParticipants::GetTargetNucleus() const { + return theNucleus; +} + +inline G4V3DNucleus* G4QGSParticipants::GetProjectileNucleus() const { + return 0; +} + +//Uzhi Start copy from FTFparameters + + +// Set parameters of nuclear destruction + +inline void G4QGSParticipants::SetCofNuclearDestruction( const G4double aValue ) { + CofNuclearDestruction = aValue; +} + +inline void G4QGSParticipants::SetR2ofNuclearDestruction( const G4double aValue ) { + R2ofNuclearDestruction = aValue; +} + +inline void G4QGSParticipants::SetExcitationEnergyPerWoundedNucleon( const G4double aValue ) { + ExcitationEnergyPerWoundedNucleon = aValue; +} + +inline void G4QGSParticipants::SetDofNuclearDestruction( const G4double aValue ) { + DofNuclearDestruction = aValue; +} + +inline void G4QGSParticipants::SetPt2ofNuclearDestruction( const G4double aValue ) { + Pt2ofNuclearDestruction = aValue; +} + +inline void G4QGSParticipants::SetMaxPt2ofNuclearDestruction( const G4double aValue ) { + MaxPt2ofNuclearDestruction = aValue; +} + +// Get parameters of nuclear destruction +inline G4double G4QGSParticipants::GetCofNuclearDestruction() { + return CofNuclearDestruction; +} + +inline G4double G4QGSParticipants::GetR2ofNuclearDestruction() { + return R2ofNuclearDestruction; +} + +inline G4double G4QGSParticipants::GetExcitationEnergyPerWoundedNucleon() { + return ExcitationEnergyPerWoundedNucleon; +} + +inline G4double G4QGSParticipants::GetDofNuclearDestruction() { + return DofNuclearDestruction; +} + +inline G4double G4QGSParticipants::GetPt2ofNuclearDestruction() { + return Pt2ofNuclearDestruction; +} + +inline G4double G4QGSParticipants::GetMaxPt2ofNuclearDestruction() { + return MaxPt2ofNuclearDestruction; +} +//Uzhi End copy from FTFparameters #endif diff --git a/source/processes/hadronic/models/parton_string/qgsm/sources.cmake b/source/processes/hadronic/models/parton_string/qgsm/sources.cmake index 873a8f6108..6e3d60a405 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/sources.cmake +++ b/source/processes/hadronic/models/parton_string/qgsm/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 66892 2013-01-17 10:57:59Z gunter $ +# $Id: sources.cmake 96952 2016-05-18 12:21:34Z gcosmo $ # #------------------------------------------------------------------------------ @@ -69,6 +69,7 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_qgstring G4SingleDiffractiveExcitation.hh G4SoftStringBuilder.hh G4VAnnihilationCrossSection.hh + G4PomeronCrossSection.hh SOURCES G4ASCCrossSection.cc G4AnnihilationCrossSection.cc @@ -85,6 +86,7 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_qgstring G4SPBaryon.cc G4SingleDiffractiveExcitation.cc G4SoftStringBuilder.cc + G4PomeronCrossSection.cc GRANULAR_DEPENDENCIES G4baryons G4bosons diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc index 46dc45d8f7..a1d89cc520 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc @@ -40,17 +40,19 @@ G4VSplitableHadron* G4GammaParticipants::SelectInteractions(const G4ReactionProduct &thePrimary) { // Check reaction threshold - goes to CheckThreshold - G4VSplitableHadron* aProjectile = new G4QGSMSplitableHadron(thePrimary, TRUE); // @@@ check the TRUE - const std::vector& theTargetNuc = theNucleus->GetNucleons(); + theProjectileSplitable = new G4QGSMSplitableHadron(thePrimary, TRUE); // @@@ check the TRUE + theProjectileSplitable->SetStatus(1); // Uzhi 21.05.2015 + G4LorentzVector aPrimaryMomentum(thePrimary.GetMomentum(), thePrimary.GetTotalEnergy()); + G4LorentzVector aTargetNMomentum(0.,0.,0.,938.); if((!(aPrimaryMomentum.e()>-1)) && (!(aPrimaryMomentum.e()<1)) ) { throw G4HadronicException(__FILE__, __LINE__, "G4GammaParticipants::SelectInteractions: primary nan energy."); } - G4double S = (aPrimaryMomentum + theTargetNuc[0].Get4Momentum()).mag2(); - G4double ThresholdMass = thePrimary.GetMass() + theTargetNuc[0].GetDefinition()->GetPDGMass(); + G4double S = (aPrimaryMomentum + aTargetNMomentum).mag2(); + G4double ThresholdMass = thePrimary.GetMass() + 938.; ModelMode = SOFT; if (sqr(ThresholdMass + ThresholdParameter) > S) { @@ -69,16 +71,26 @@ G4VSplitableHadron* G4GammaParticipants::SelectInteractions(const G4ReactionProd #ifdef debug_G4GammaParticipants G4double eK = thePrimary.GetKineticEnergy()/GeV; - G4int nucleonCount = theTargetNuc.size(); // debug + G4int nucleonCount = theNucleus->GetMassNumber(); #endif - G4int theCurrent = static_cast (theTargetNuc.size()*G4UniformRand()); - const G4Nucleon& pNucleon = theTargetNuc[theCurrent]; - G4QGSMSplitableHadron* aTarget = new G4QGSMSplitableHadron(pNucleon); - theTargets.push_back(aTarget); - const_cast(pNucleon).Hit(aTarget); - if ( (0.06 > G4UniformRand() &&(ModelMode==SOFT)) || (ModelMode==DIFFRACTIVE ) ) - { + G4int theCurrent = G4int(theNucleus->GetMassNumber()*G4UniformRand()); + G4int NucleonNo=0; + + theNucleus->StartLoop(); + G4Nucleon * pNucleon =0; // theNucleus->GetNextNucleon(); // Uzhi 27.05.2015 + + while( (pNucleon = theNucleus->GetNextNucleon()) ) /* Loop checking, 07.08.2015, A.Ribon */ + {if(NucleonNo == theCurrent) break; NucleonNo++;} + + if ( pNucleon ) { + + G4QGSMSplitableHadron* aTarget = new G4QGSMSplitableHadron(*pNucleon); + pNucleon->Hit(aTarget); + + if ( (0.06 > G4UniformRand() &&(ModelMode==SOFT)) || (ModelMode==DIFFRACTIVE ) ) + { +/* // diffractive interaction occurs if(IsSingleDiffractive()) { @@ -88,22 +100,41 @@ G4VSplitableHadron* G4GammaParticipants::SelectInteractions(const G4ReactionProd { theDiffExcitaton.ExciteParticipants(aProjectile, aTarget); } - G4InteractionContent * aInteraction = new G4InteractionContent(aProjectile); - aInteraction->SetTarget(aTarget); - theInteractions.push_back(aInteraction); - aInteraction->SetNumberOfDiffractiveCollisions(1); +*/ + G4InteractionContent * aInteraction = new G4InteractionContent(theProjectileSplitable); + theProjectileSplitable->SetStatus(1*theProjectileSplitable->GetStatus()); + + aInteraction->SetTarget(aTarget); + aInteraction->SetTargetNucleon(pNucleon); + aTarget->SetCollisionCount(0); + aTarget->SetStatus(1); + + aInteraction->SetNumberOfDiffractiveCollisions(1); + aInteraction->SetNumberOfSoftCollisions(0); + aInteraction->SetStatus(1); + + theInteractions.push_back(aInteraction); totalCuts += 1; - } - else - { + } + else + { // nondiffractive soft interaction occurs aTarget->IncrementCollisionCount(1); - aProjectile->IncrementCollisionCount(1); - G4InteractionContent * aInteraction = new G4InteractionContent(aProjectile); + aTarget->SetStatus(0); + theTargets.push_back(aTarget); + + theProjectileSplitable->IncrementCollisionCount(1); + theProjectileSplitable->SetStatus(0*theProjectileSplitable->GetStatus()); + + G4InteractionContent * aInteraction = + new G4InteractionContent(theProjectileSplitable); aInteraction->SetTarget(aTarget); + aInteraction->SetTargetNucleon(pNucleon); aInteraction->SetNumberOfSoftCollisions(1); + aInteraction->SetStatus(0); theInteractions.push_back(aInteraction); totalCuts += 1; - } - return aProjectile; + } + } + return theProjectileSplitable; //aProjectile; } diff --git a/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4PomeronCrossSection.cc similarity index 99% rename from source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4PomeronCrossSection.cc index 0be4ab6f91..b4d686a1d1 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4PomeronCrossSection.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PomeronCrossSection.cc 91774 2015-08-05 14:00:19Z gcosmo $ +// $Id: G4PomeronCrossSection.cc 96952 2016-05-18 12:21:34Z gcosmo $ // #include "G4PomeronCrossSection.hh" diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSDiffractiveExcitation.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSDiffractiveExcitation.cc index c53492677b..66e104d082 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSDiffractiveExcitation.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSDiffractiveExcitation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4QGSDiffractiveExcitation.cc 93563 2015-10-26 14:46:09Z gcosmo $ +// $Id: G4QGSDiffractiveExcitation.cc 94750 2015-12-07 08:24:29Z gcosmo $ // ------------------------------------------------------------ // GEANT 4 class implemetation file // @@ -60,8 +60,13 @@ #include "G4Log.hh" #include "G4Pow.hh" +//============================================================================ -G4QGSDiffractiveExcitation::G4QGSDiffractiveExcitation() // Uzhi +//#define debugQGSdiffExictation + +//============================================================================ + +G4QGSDiffractiveExcitation::G4QGSDiffractiveExcitation() { } @@ -73,6 +78,8 @@ G4QGSDiffractiveExcitation::~G4QGSDiffractiveExcitation() G4bool G4QGSDiffractiveExcitation:: ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) const { +G4cout<<"G4QGSDiffractiveExcitation::ExciteParticipants"<GetDefinition()->GetPDGEncoding()<<" "<GetDefinition()->GetPDGEncoding()<Get4Momentum(); @@ -122,6 +129,9 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c // -------------------- Target parameters ---------------------------------------------- G4LorentzVector Ptarget=target->Get4Momentum(); +//G4cout<<"Pr Tr 4-Mom "<GetDefinition()->GetPDGMass()) @@ -217,11 +227,8 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c G4LorentzVector Qmomentum; G4double Qminus, Qplus; - // /* Vova G4int whilecount=0; do { - // Generate pt - if (whilecount++ >= 500 && (whilecount%100)==0) // G4cout << "G4QGSDiffractiveExcitation::ExciteParticipants possibly looping" // << ", loop count/ maxPtSquare : " @@ -232,27 +239,9 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c return false; // Ignore this interaction } + // Generate pt Qmomentum=G4LorentzVector(GaussianPt(AveragePt2,maxPtSquare),0); - //G4cout << "generated Pt " << Qmomentum << G4endl; - //G4cout << "Pprojectile with pt : " << Pprojectile+Qmomentum << G4endl; - //G4cout << "Ptarget with pt : " << Ptarget-Qmomentum << G4endl; - - // Momentum transfer - /* // Uzhi - G4double Xmin = minmass / ( Pprojectile.e() + Ptarget.e() ); - G4double Xmax=1.; - G4double Xplus =ChooseX(Xmin,Xmax); - G4double Xminus=ChooseX(Xmin,Xmax); - -// G4cout << " X-plus " << Xplus << G4endl; -// G4cout << " X-minus " << Xminus << G4endl; - - G4double pt2=G4ThreeVector(Qmomentum.vect()).mag2(); - G4double Qplus =-1 * pt2 / Xminus/Ptarget.minus(); - G4double Qminus= pt2 / Xplus /Pprojectile.plus(); - */ // Uzhi * - Pt2=G4ThreeVector(Qmomentum.vect()).mag2(); ProjMassT2=Mprojectile2+Pt2; ProjMassT =std::sqrt(ProjMassT2); @@ -293,12 +282,13 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c */ // Uzhi * - } while ( /* Loop checking, 26.10.2015, A.Ribon */ - ( (Pprojectile+Qmomentum).mag2() < Mprojectile2 || // Uzhi No without excitation - (Ptarget -Qmomentum).mag2() < Mtarget2 ) || // Uzhi - ( (Pprojectile+Qmomentum).mag2() < ProjectileDiffCut2 && // Uzhi No double Diffraction - (Ptarget -Qmomentum).mag2() < NuclearNucleonDiffCut2) );// Uzhi + } while (( (Pprojectile+Qmomentum).mag2() < Mprojectile2 || // Uzhi No without excitation + (Ptarget -Qmomentum).mag2() < Mtarget2 ) || // Uzhi + ( (Pprojectile+Qmomentum).mag2() < ProjectileDiffCut2 && // Uzhi No double Diffraction + (Ptarget -Qmomentum).mag2() < NuclearNucleonDiffCut2) ); /* Loop checking, 07.08.2015, A.Ribon */ +//G4cout<<"(Ptarget-Qmomentum).mag2() < NuclearNucleonDiffCut2 "<<(Ptarget-Qmomentum).mag2() <<" "<Set4Momentum(Ptarget); - - //G4cout << "Projectile mass " << Pprojectile.mag() << G4endl; - projectile->Set4Momentum(Pprojectile); +//G4int Uzhi; G4cin>>Uzhi; return true; } @@ -364,12 +334,12 @@ String(G4VSplitableHadron * hadron, G4bool isProjectile) const hadron->SplitUp(); G4Parton *start= hadron->GetNextParton(); if ( start==NULL) - { G4cout << " G4FTFModel::String() Error:No start parton found"<< G4endl; + { G4cout << " G4QGSDiffractiveExcitation::String() Error:No start parton found"<< G4endl; return NULL; } G4Parton *end = hadron->GetNextParton(); if ( end==NULL) - { G4cout << " G4FTFModel::String() Error:No end parton found"<< G4endl; + { G4cout << " G4QGSDiffractiveExcitation::String() Error:No end parton found"<< G4endl; return NULL; } @@ -424,10 +394,10 @@ String(G4VSplitableHadron * hadron, G4bool isProjectile) const start->Set4Momentum(Pstart); end->Set4Momentum(Pend); - #ifdef G4_FTFDEBUG - G4cout << " generated string flavors " << start->GetPDGcode() << " / " << end->GetPDGcode() << G4endl; + #ifdef debugQGSdiffExictation + G4cout << " generated string flavors " << start->GetPDGcode() << " / " << end->GetPDGcode() << G4endl; G4cout << " generated string momenta: quark " << start->Get4Momentum() << "mass : " <Get4Momentum().mag()<< G4endl; - G4cout << " generated string momenta: Diquark " << end ->Get4Momentum() << "mass : " <Get4Momentum().mag()<< G4endl; + G4cout << " generated string momenta: Diquark " << end ->Get4Momentum() << "mass : " <Get4Momentum().mag()<< G4endl; G4cout << " sum of ends " << Pstart+Pend << G4endl; G4cout << " Original " << hadron->Get4Momentum() << G4endl; #endif @@ -438,13 +408,12 @@ String(G4VSplitableHadron * hadron, G4bool isProjectile) const // --------- private methods ---------------------- -G4double G4QGSDiffractiveExcitation::ChooseP(G4double Pmin, G4double Pmax) const // Uzhi +G4double G4QGSDiffractiveExcitation::ChooseP(G4double Pmin, G4double Pmax) const { // choose an x between Xmin and Xmax with P(x) ~ 1/x - // to be improved... - G4double range=Pmax-Pmin; // Uzhi + G4double range=Pmax-Pmin; if ( Pmin <= 0. || range <=0. ) { @@ -453,29 +422,17 @@ G4double G4QGSDiffractiveExcitation::ChooseP(G4double Pmin, G4double Pmax) const } G4double P; - /* // Uzhi - do { - x=Xmin + G4UniformRand() * range; - } while ( Xmin/x < G4UniformRand() ); - */ // Uzhi - - P=Pmin * G4Pow::GetInstance()->powA(Pmax/Pmin,G4UniformRand()); // Uzhi - + P=Pmin * G4Pow::GetInstance()->powA(Pmax/Pmin,G4UniformRand()); //debug-hpw cout << "DiffractiveX "< maxPtSquare); - */ // Uzhi - Pt2 = -AveragePt2 * G4Log(1. + G4UniformRand() * (G4Exp(-maxPtSquare/AveragePt2)-1.));// Uzhi + Pt2 = -AveragePt2 * G4Log(1. + G4UniformRand() * (G4Exp(-maxPtSquare/AveragePt2)-1.)); G4double Pt=std::sqrt(Pt2); diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc index 3c6a2c2c10..41bfda0d15 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc @@ -37,7 +37,6 @@ #include "G4Log.hh" #include "G4Pow.hh" - // based on prototype by Maxim Komogorov // Splitting into methods, and centralizing of model parameters HPW Feb 1999 // restructuring HPW Feb 1999 @@ -71,6 +70,8 @@ void G4QGSMSplitableHadron::InitParameters() widthOfPtSquare = 0.01*GeV*GeV; Direction = FALSE; minTransverseMass = 1*keV; +iP =0;// Color.begin(); // Uzhi +iAP =0;// AntiColor.begin(); // Uzhi } G4QGSMSplitableHadron::G4QGSMSplitableHadron() @@ -105,7 +106,22 @@ G4QGSMSplitableHadron::G4QGSMSplitableHadron(const G4Nucleon & aNucleon, G4bool Direction = aDirection; } -G4QGSMSplitableHadron::~G4QGSMSplitableHadron(){} +G4QGSMSplitableHadron::~G4QGSMSplitableHadron() +{ +/* +G4cout<<"Destructor "<GetParticleName()<SetPosition(GetPosition()); Right->SetPosition(GetPosition()); +//G4cout<<"Partons Left Right "<GetDefinition()->GetParticleName()<<" "<GetDefinition()->GetParticleName()<Set4Momentum(tmp); +Right->Set4Momentum(tmp); +Color.push_back(Left); +AntiColor.push_back(Right); +*/ // Uzhi G4LorentzVector HadronMom = Get4Momentum(); //std::cout << "DSU 1 - "<0.01) pt = GaussianPt(widthOfPtSquare, maxAvailMomentum2); //std::cout << "DSU 1.1 - "<< maxAvailMomentum2<< pt <Set4Momentum(LeftMom); Right->Set4Momentum(RightMom); +//G4cout<<"Momenta H q AntiQ"<Get4Momentum()<Get4Momentum()<GetColour(); + G4double firstPartonSpinZ = aParton->GetSpinZ(); + + aParton->Set4Momentum(tmp); + Color.push_back(aParton); + + // create anti-quark + + aParton = BuildSeaQuark(true, aPDGCode, nSeaPair); + aParton->SetSpinZ(-firstPartonSpinZ); + aParton->SetColour(-firstPartonColour); + AntiColor.push_back(aParton); + } + + // Valence quark + G4Parton* pColorParton = NULL; + G4Parton* pAntiColorParton = NULL; + GetValenceQuarkFlavors(GetDefinition(), pColorParton, pAntiColorParton); +// G4int ColorEncoding = pColorParton->GetPDGcode(); + + pColorParton->Set4Momentum(tmp); + pAntiColorParton->Set4Momentum(tmp); + +//G4cout<<"Color AntiColor "<GetPDGMass() ); - while(Xmin>=1-(2*nSeaPair+1)*Xmin) Xmin*=0.95; /* Loop checking, 26.10.2015, A.Ribon */ + while(Xmin>=1-(2*nSeaPair+1)*Xmin) Xmin*=0.95; G4int aSeaPair; for (aSeaPair = 0; aSeaPair < nSeaPair; aSeaPair++) @@ -239,6 +328,8 @@ void G4QGSMSplitableHadron::SoftSplitUp() SumPy += aParton->Get4Momentum().py(); AntiColor.push_back(aParton); } +*/ // Uzhi +/* Uzhi // Valence quark G4Parton* pColorParton = NULL; G4Parton* pAntiColorParton = NULL; @@ -280,7 +371,6 @@ void G4QGSMSplitableHadron::SoftSplitUp() if (GetDefinition() == G4PionZero::PionZeroDefinition()) aBeta = 1.; if (GetDefinition() == G4KaonPlus::KaonPlusDefinition()) aBeta = 0.; if (GetDefinition() == G4KaonMinus::KaonMinusDefinition()) aBeta = 0.; - const G4int maxNumberOfAttempts = 1000; do { SumX = 0; @@ -301,8 +391,7 @@ void G4QGSMSplitableHadron::SoftSplitUp() if (1. - SumX <= Xmin) break; } } - while ( (1. - SumX <= Xmin) && nAttempt < maxNumberOfAttempts ); /* Loop checking, 26.10.2015, A.Ribon */ - if ( nAttempt >= maxNumberOfAttempts ) return; + while (1. - SumX <= Xmin); (*(AntiColor.end()-1))->SetX(1. - SumX); // the di-quark takes the rest, then go to momentum G4double lightCone = ((!Direction) ? Get4Momentum().minus() : Get4Momentum().plus()); @@ -315,6 +404,7 @@ void G4QGSMSplitableHadron::SoftSplitUp() aParton = AntiColor[aSeaPair]; aParton->DefineMomentumInZ(lightCone, lightCone2, Direction); } +*/ // Uzhi return; } @@ -386,9 +476,11 @@ G4ThreeVector G4QGSMSplitableHadron::GaussianPt(G4double widthSquare, G4double m G4double R; const G4int maxNumberOfLoops = 1000; G4int loopCounter = -1; - while ( ((R = -widthSquare*G4Log(G4UniformRand())) > maxPtSquare) && /* Loop checking, 26.10.2015, A.Ribon */ - ++loopCounter < maxNumberOfLoops ) {;} - if ( loopCounter >= maxNumberOfLoops ) R = 0.0; + while( ((R = -widthSquare*G4Log(G4UniformRand())) > maxPtSquare) && + ++loopCounter < maxNumberOfLoops ) {;} /* Loop checking, 07.08.2015, A.Ribon */ + if ( loopCounter >= maxNumberOfLoops ) { + R = 0.99*maxPtSquare; // Just an acceptable value, without any physics consideration. + } R = std::sqrt(R); G4double phi = twopi*G4UniformRand(); return G4ThreeVector (R*std::cos(phi), R*std::sin(phi), 0.); @@ -415,32 +507,34 @@ SampleX(G4double anXmin, G4int nSea, G4int totalSea, G4double aBeta) for(G4int ii=1; ii<100; ii++) { G4double y = G4Pow::GetInstance()->powA(1./G4double(ii), alpha); - y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, alpha+1) - G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea); - y *= G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, aBeta+1) - G4Pow::GetInstance()->powA(anXmin, aBeta+1); + y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, alpha+1) - + G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea); + y *= G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, aBeta+1) - + G4Pow::GetInstance()->powA(anXmin, aBeta+1); if(y>ymax) ymax = y; } G4double y; G4double xMax=1-(totalSea+1)*anXmin; if(anXmin > xMax) { - G4cout << "anXmin = "<powA(x1, alpha); - y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, alpha+1) - G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea); - y *= G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, aBeta+1) - G4Pow::GetInstance()->powA(anXmin, aBeta+1); + y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, alpha+1) - + G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea); + y *= G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, aBeta+1) - + G4Pow::GetInstance()->powA(anXmin, aBeta+1); x2 = ymax*G4UniformRand(); } - while ( (x2>y) && ++loopCounter < maxNumberOfLoops ); /* Loop checking, 26.10.2015, A.Ribon */ + while( (x2>y) && ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */ if ( loopCounter >= maxNumberOfLoops ) { - G4ExceptionDescription ed; - ed << " Failed sampling after maxNumberOfLoops attempts : forced exit! " << G4endl; - G4Exception( "G4QGSMSplitableHadron::SampleX ", "HAD_QGS_002", JustWarning, ed ); + x1 = 0.5*( anXmin + xMax ); // Just an acceptable value, without any physics consideration. } result = x1; return result; 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 07f18e0bdf..c37e9d7947 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSParticipants.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSParticipants.cc @@ -29,6 +29,17 @@ #include "globals.hh" #include "G4SystemOfUnits.hh" #include "G4LorentzVector.hh" +#include "G4V3DNucleus.hh" // Uzhi +#include "G4ParticleTable.hh" // Uzhi +#include "G4IonTable.hh" // Uzhi +#include "G4PhysicalConstants.hh" // Uzhi + +#include "G4Exp.hh" +#include "G4Log.hh" +#include "G4Pow.hh" + +//#define debugQGSParticipants +//#define debugPutOnMassShell // Class G4QGSParticipants @@ -40,9 +51,18 @@ G4QGSParticipants::G4QGSParticipants() : theDiffExcitaton(), //0.7*GeV, 250*MeV, ModelMode(SOFT), //nCutMax(7),ThresholdParameter(0.45*GeV), nCutMax(7),ThresholdParameter(0.000*GeV), - QGSMThreshold(3*GeV),theNucleonRadius(1.5*fermi) + QGSMThreshold(3*GeV),theNucleonRadius(1.5*fermi),alpha(-0.5),beta(2.5) { +// Parameters setting + SetCofNuclearDestruction(1.); + SetR2ofNuclearDestruction( 1.5*fermi*fermi ); + SetDofNuclearDestruction( 0.3 ); + SetPt2ofNuclearDestruction( 0.075*GeV*GeV ); + SetMaxPt2ofNuclearDestruction( 1.0*GeV*GeV ); + SetExcitationEnergyPerWoundedNucleon( 40.0*MeV ); + + sigmaPt=0.5*GeV; } G4QGSParticipants::G4QGSParticipants(const G4QGSParticipants &right) @@ -50,241 +70,2220 @@ G4QGSParticipants::G4QGSParticipants(const G4QGSParticipants &right) ThresholdParameter(right.ThresholdParameter), QGSMThreshold(right.QGSMThreshold), theNucleonRadius(right.theNucleonRadius) { +// From FTF Model Make right Copy } G4QGSParticipants::~G4QGSParticipants() { +/* +// From FTF Model + // Erasing of target involved nucleons. + if ( NumberOfInvolvedNucleonsOfTarget != 0 ) { + for ( G4int i = 0; i < NumberOfInvolvedNucleonsOfTarget; i++ ) { + G4VSplitableHadron* aNucleon = TheInvolvedNucleonsOfTarget[i]->GetSplitableHadron(); + if ( aNucleon ) delete aNucleon; + } + } + + // Erasing of projectile involved nucleons. + if ( NumberOfInvolvedNucleonsOfProjectile != 0 ) { + for ( G4int i = 0; i < NumberOfInvolvedNucleonsOfProjectile; i++ ) { + G4VSplitableHadron* aNucleon = TheInvolvedNucleonsOfProjectile[i]->GetSplitableHadron(); + if ( aNucleon ) delete aNucleon; + } + } +*/ } void G4QGSParticipants::BuildInteractions(const G4ReactionProduct &thePrimary) { +// Start copy of FTF Model + theProjectile = thePrimary; - // Find the collisions and collition conditions - G4VSplitableHadron* aProjectile = SelectInteractions(thePrimary); + SetProjectileNucleus( 0 ); // Uzhi theParticipants.SetProjectileNucleus( 0 ); - // now build the parton pairs. HPW - SplitHadrons(); + NumberOfInvolvedNucleonsOfProjectile= 0; + G4LorentzVector tmp( 0.0, 0.0, 0.0, 0.0 ); + ProjectileResidualMassNumber = 0; + ProjectileResidualCharge = 0; + ProjectileResidualExcitationEnergy = 0.0; + ProjectileResidual4Momentum = tmp; - // soft collisions first HPW, ordering is vital - PerformSoftCollisions(); + NumberOfInvolvedNucleonsOfTarget= 0; // Uzhi + TargetResidualMassNumber = theNucleus->GetMassNumber(); + TargetResidualCharge = theNucleus->GetCharge(); + TargetResidualExcitationEnergy = 0.0; - // the rest is diffractive HPW - PerformDiffractiveCollisions(); + theNucleus->StartLoop(); + G4Nucleon* NuclearNucleon; + while ( ( NuclearNucleon = theNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + tmp+=NuclearNucleon->Get4Momentum(); + } + TargetResidual4Momentum = tmp; - // clean-up, if necessary - std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); - theInteractions.clear(); - std::for_each(theTargets.begin(), theTargets.end(), DeleteSplitableHadron()); - theTargets.clear(); - delete aProjectile; + if ( std::abs( theProjectile.GetDefinition()->GetBaryonNumber() ) <= 1 ) { + // Projectile is a hadron : meson or baryon + ProjectileResidualMassNumber = std::abs( theProjectile.GetDefinition()->GetBaryonNumber() ); + ProjectileResidualCharge = G4int( theProjectile.GetDefinition()->GetPDGCharge() ); + ProjectileResidualExcitationEnergy = 0.0; + ProjectileResidual4Momentum.setVect( theProjectile.GetMomentum() ); + ProjectileResidual4Momentum.setE( theProjectile.GetTotalEnergy() ); + } + + #ifdef debugQGSParticipants + G4cout <GetParticleName()<<" " + <GetMassNumber() <<" "<GetCharge()<<" " + << TargetResidual4Momentum<GetPDGEncoding()) < 100.0) + {SelectInteractions(theProjectile);} // for lepton projectile + else + {GetList( theProjectile );} // Get list of participating nucleons for hadron projectile + + StoreInvolvedNucleon(); // Store participating nucleon + + ReggeonCascade(); // Make reggeon cascading. Involve nucleons in the cascading. + + Success = PutOnMassShell(); // Ascribe momenta to the involved and participating nucleons + + if(!Success) PrepareInitialState( thePrimary ); + + } while( (!Success) && ++internalLoopCounter < maxNumberOfInternalLoops ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( internalLoopCounter >= maxNumberOfInternalLoops ) { + Success = false; + } + + if ( Success ) { + PerformDiffractiveCollisions(); // G4bool ------------------------------------- + + #ifdef debugQGSParticipants + G4cout<<"SplitHadrons();" <GetStatus() == 0) Success = DeterminePartonMomenta(); + /* + G4int attempts(0); + do + { + attempts++; if( attempts > 100 ) break; + Success = DeterminePartonMomenta(); + } while(!Success); + G4cout<<"if( attempts > 100 ) break; "<= maxNumberOfLoops ) { + Success = false; + #ifdef debugQGSParticipants + G4cout<<"NOT Success ======" <GetSplitableHadron(); +//G4cout<GetStatus() >= 1) ) delete aNucleon; + } + } + +// Erasing of projectile involved nucleons. +//G4cout<<"InvolvedProj "<GetSplitableHadron(); + if ( aNucleon ) delete aNucleon; + } + } + + #ifdef debugQGSParticipants + G4cout<<"Target nucleons from soft interactions "<>Uzhi;} + + if ( theProjectileSplitable ) { + delete theProjectileSplitable; + theProjectileSplitable = 0; + } } -G4VSplitableHadron* G4QGSParticipants::SelectInteractions(const G4ReactionProduct &thePrimary) +//=========================================================== +void G4QGSParticipants::PrepareInitialState( const G4ReactionProduct& thePrimary ) { - G4VSplitableHadron* aProjectile = new G4QGSMSplitableHadron(thePrimary, TRUE); // @@@ check the TRUE - G4PomeronCrossSection theProbability(thePrimary.GetDefinition()); // @@@ should be data member - G4double outerRadius = theNucleus->GetOuterRadius(); - // Check reaction threshold + // Clearing of the arrays + // Erasing of the projectile + G4InteractionContent* anIniteraction = theInteractions[0]; + G4VSplitableHadron* pProjectile = anIniteraction->GetProjectile(); + if( pProjectile ) delete pProjectile; - theNucleus->StartLoop(); - G4Nucleon * pNucleon = theNucleus->GetNextNucleon(); - G4LorentzVector aPrimaryMomentum(thePrimary.GetMomentum(), thePrimary.GetTotalEnergy()); - //--DEBUG--G4cout << " qgspart- " << aPrimaryMomentum << " # " << aPrimaryMomentum.mag() - //--DEBUG-- << pNucleon->Get4Momentum() << " # " << (pNucleon->Get4Momentum()).mag()<< G4endl; - G4double s_nucleus = (aPrimaryMomentum + pNucleon->Get4Momentum()).mag2(); - G4double ThresholdMass = thePrimary.GetMass() + pNucleon->GetDefinition()->GetPDGMass(); - ModelMode = SOFT; - if (sqr(ThresholdMass + ThresholdParameter) > s_nucleus) - { - ModelMode = DIFFRACTIVE; - //throw G4HadronicException(__FILE__, __LINE__, "Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); - } - if (sqr(ThresholdMass + QGSMThreshold) > s_nucleus) // thus only diffractive in cascade! - { - ModelMode = DIFFRACTIVE; - } + std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); + theInteractions.clear(); - // first find the collisions HPW - std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); - theInteractions.clear(); - G4int totalCuts = 0; + // Erasing of the envolved nucleons and target nucleons from diffraction dissociations + theNucleus->StartLoop(); + G4Nucleon* aNucleon; + while ( ( aNucleon = theNucleus->GetNextNucleon() ) ) /* Loop checking, 07.08.2015, A.Ribon */ + { + if ( aNucleon->AreYouHit() ) { + G4VSplitableHadron* splaNucleon = aNucleon->GetSplitableHadron(); + if ( (splaNucleon != 0) && (splaNucleon->GetStatus() >=1) ) delete splaNucleon; + aNucleon->Hit(0); + NumberOfInvolvedNucleonsOfTarget--; + } + } - #ifdef debug_QGS - G4double eK = thePrimary.GetKineticEnergy()/GeV; - #endif - #ifdef debug_G4QGSParticipants - G4double impactUsed = 0; - G4LorentzVector intNuclMom; - #endif + // Erasing of nuclear nucleons participated in soft interactions + std::for_each(theTargets.begin(), theTargets.end(), DeleteSplitableHadron()); + theTargets.clear(); - const G4int maxNumberOfLoops = 1000; - G4int loopCounter = -1; - while ( (theInteractions.size() == 0) && ++loopCounter < maxNumberOfLoops ) /* Loop checking, 26.10.2015, A.Ribon */ - { - // choose random impact parameter HPW - std::pair theImpactParameter; - theImpactParameter = theNucleus->ChooseImpactXandY(outerRadius+theNucleonRadius); - G4double impactX = theImpactParameter.first; - G4double impactY = theImpactParameter.second; + // Preparation to a new attempt + theProjectile = thePrimary; - // loop over nucleons to find collisions - theNucleus->StartLoop(); - G4int nucleonCount = 0; // debug - G4QGSParticipants_NPart = 0; - #ifdef debug_G4QGSParticipants - intNuclMom=aPrimaryMomentum; - #endif - while( (pNucleon = theNucleus->GetNextNucleon()) ) /* Loop checking, 26.10.2015, A.Ribon */ - { - if(totalCuts>1.5*thePrimary.GetKineticEnergy()/GeV) - { - break; - } - nucleonCount++; // debug - // Needs to be moved to Probability class @@@ - G4LorentzVector nucleonMomentum=pNucleon->Get4Momentum(); - nucleonMomentum.setE(nucleonMomentum.e()-pNucleon->GetBindingEnergy()); - G4double s_nucleon = (aPrimaryMomentum + nucleonMomentum).mag2(); - G4double Distance2 = sqr(impactX - pNucleon->GetPosition().x()) + - sqr(impactY - pNucleon->GetPosition().y()); - G4double Probability = theProbability.GetInelasticProbability(s_nucleon, Distance2); - // test for inelastic collision - G4double rndNumber = G4UniformRand(); - // ModelMode = DIFFRACTIVE; - if (Probability > rndNumber) - { - #ifdef debug_G4QGSParticipants - G4cout << "DEBUG p="<< Probability<<" r="<Get4Momentum() << " # " << (pNucleon->Get4Momentum()).mag()<< G4endl; - intNuclMom += nucleonMomentum; - #endif - pNucleon->SetMomentum(nucleonMomentum); - G4QGSMSplitableHadron* aTarget = new G4QGSMSplitableHadron(*pNucleon); - G4QGSParticipants_NPart ++; - theTargets.push_back(aTarget); - pNucleon->Hit(aTarget); - if ((theProbability.GetDiffractiveProbability(s_nucleon, Distance2)/Probability > G4UniformRand() - &&(ModelMode==SOFT)) || (ModelMode==DIFFRACTIVE )) - { - // diffractive interaction occurs - if(IsSingleDiffractive()) - { - theSingleDiffExcitation.ExciteParticipants(aProjectile, aTarget); - } - else - { - theDiffExcitaton.ExciteParticipants(aProjectile, aTarget); - } - G4InteractionContent * aInteraction = new G4InteractionContent(aProjectile); - aInteraction->SetTarget(aTarget); - theInteractions.push_back(aInteraction); - aInteraction->SetNumberOfDiffractiveCollisions(1); - totalCuts += 1; - } - else - { - // nondiffractive soft interaction occurs - // sample nCut+1 (cut Pomerons) pairs of strings can be produced - G4int nCut; - G4double * running = new G4double[nCutMax]; - running[0] = 0; - for(nCut = 0; nCut < nCutMax; nCut++) - { - running[nCut] = theProbability.GetCutPomeronProbability(s_nucleon, Distance2, nCut + 1); - if(nCut!=0) running[nCut] += running[nCut-1]; - } - G4double random = running[nCutMax-1]*G4UniformRand(); - for(nCut = 0; nCut < nCutMax; nCut++) - { - if(running[nCut] > random) break; - } - delete [] running; - nCut = 0; - aTarget->IncrementCollisionCount(nCut+1); - aProjectile->IncrementCollisionCount(nCut+1); - G4InteractionContent * aInteraction = new G4InteractionContent(aProjectile); - aInteraction->SetTarget(aTarget); - aInteraction->SetNumberOfSoftCollisions(nCut+1); - theInteractions.push_back(aInteraction); - totalCuts += nCut+1; - #ifdef debug_G4QGSParticipants - impactUsed=Distance2; - #endif - } - } - } - #ifdef debug_G4QGSParticipants - G4cout << G4endl<<"NUCLEONCOUNT "<= maxNumberOfLoops ) { - G4ExceptionDescription ed; - ed << " loopCounter exceeds maxNumberOfLoops : forced exit! " << G4endl; - G4Exception( "G4QGSParticipants::SelectInteractions ", "HAD_QGS_001", JustWarning, ed ); - } - #ifdef debug_G4QGSParticipants - G4cout << G4endl<<"CUTDEBUG "<< totalCuts <SetStatus(1); + + G4LorentzVector aPrimaryMomentum(thePrimary.GetMomentum(), thePrimary.GetTotalEnergy()); + G4PomeronCrossSection theProbability(thePrimary.GetDefinition()); // @@@ should be data member + +/* +G4cout<<"Plab Stot Sel Sin Sdif Sum Diff"<>Uzhi; +*/ +//-------------------------------------- + G4double outerRadius = theNucleus->GetOuterRadius(); + +// Check reaction threshold + + theNucleus->StartLoop(); + G4Nucleon * pNucleon = theNucleus->GetNextNucleon(); + + if ( ! pNucleon ) { + #ifdef debugQGSParticipants + G4cout << "BAD situation: pNucleon is NULL ! Leaving immediately!" << G4endl; + #endif + return; + } + + G4double s_nucleus = (aPrimaryMomentum + pNucleon->Get4Momentum()).mag2(); + G4double ThresholdMass = thePrimary.GetMass() + pNucleon->GetDefinition()->GetPDGMass(); + + ModelMode = SOFT; + if (sqr(ThresholdMass + ThresholdParameter) > s_nucleus) {ModelMode = DIFFRACTIVE;} + if (sqr(ThresholdMass + QGSMThreshold) > s_nucleus) {ModelMode = DIFFRACTIVE;} + +// first find the collisions HPW + std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); + theInteractions.clear(); + + G4int totalCuts = 0; + + const G4int maxNumberOfLoops = 1000; + G4int loopCounter = -1; + while( (theInteractions.size() == 0) && ++loopCounter < maxNumberOfLoops ) /* Loop checking, 07.08.2015, A.Ribon */ + { + // choose random impact parameter HPW + std::pair theImpactParameter; + theImpactParameter = theNucleus->ChooseImpactXandY(outerRadius+theNucleonRadius); + G4double impactX = theImpactParameter.first; + G4double impactY = theImpactParameter.second; + + #ifdef debugQGSParticipants + G4cout<<"Impact parameter (fm ) "<StartLoop(); + G4int nucleonCount = 0; + G4QGSParticipants_NPart = 0; + + while( (pNucleon = theNucleus->GetNextNucleon()) ) /* Loop checking, 07.08.2015, A.Ribon */ + { + if(totalCuts>1.5*thePrimary.GetKineticEnergy()/GeV) {break;} + + nucleonCount++; + + G4LorentzVector nucleonMomentum=pNucleon->Get4Momentum(); +//Uzhi It does not need nucleonMomentum.setE(nucleonMomentum.e()-pNucleon->GetBindingEnergy()); + G4double s_nucleon = (aPrimaryMomentum + nucleonMomentum).mag2(); + + G4double Distance2 = sqr(impactX - pNucleon->GetPosition().x()) + + sqr(impactY - pNucleon->GetPosition().y()); + G4double Probability = theProbability.GetInelasticProbability(s_nucleon, Distance2); + + #ifdef debugQGSParticipants +// G4cout << "SqrtS_hN (GeV), Prob. Inter.= "< rndNumber) + { + G4QGSParticipants_NPart ++; + G4QGSMSplitableHadron* aTarget = new G4QGSMSplitableHadron(*pNucleon); + pNucleon->Hit(aTarget); + + #ifdef debugQGSParticipants + G4cout<<"Target nucleon - "<GetDefinition()->GetParticleName()< G4UniformRand() + &&(ModelMode==SOFT)) || (ModelMode==DIFFRACTIVE )) +// +//if(false) // Uzhi + {// diffractive interaction occurs +/* Uzhi + if(IsSingleDiffractive()) + { + theSingleDiffExcitation.ExciteParticipants(theProjectileSplitable, aTarget); + } + else + { + theDiffExcitaton.ExciteParticipants(theProjectileSplitable, aTarget); + } +*/ + #ifdef debugQGSParticipants + G4cout<<"Diffractive interaction occurs"<SetStatus(1*theProjectileSplitable->GetStatus()); + + aInteraction->SetTarget(aTarget); + aInteraction->SetTargetNucleon(pNucleon); + aTarget->SetCollisionCount(0); + aTarget->SetStatus(1); + + aInteraction->SetNumberOfDiffractiveCollisions(1); + aInteraction->SetNumberOfSoftCollisions(0); + aInteraction->SetStatus(1); + + theInteractions.push_back(aInteraction); +// totalCuts += 1; No cuts for diffraction + } + else + { + // nondiffractive soft interaction occurs + // sample nCut+1 (cut Pomerons) pairs of strings can be produced + #ifdef debugQGSParticipants + G4cout<<"Non-diffractive interaction occurs, nCutMax "< random) break;} + delete [] running; +// nCut = 2; // Uzhi ??? +//nCut=1; + totalCuts += nCut + 1; + #ifdef debugQGSParticipants + G4cout<<"Number of cuts in the interaction "<IncrementCollisionCount(nCut+1); + aTarget->SetStatus(0); + theTargets.push_back(aTarget); + + theProjectileSplitable->IncrementCollisionCount(nCut+1); + theProjectileSplitable->SetStatus(0*theProjectileSplitable->GetStatus()); + + G4InteractionContent * aInteraction = + new G4InteractionContent(theProjectileSplitable); + aInteraction->SetTarget(aTarget); + aInteraction->SetTargetNucleon(pNucleon); + aInteraction->SetNumberOfSoftCollisions(nCut+1); + aInteraction->SetStatus(0); + theInteractions.push_back(aInteraction); + } + } // End of if (Probability > rndNumber) + } // End of while( (pNucleon = theNucleus->GetNextNucleon()) ) + + #ifdef debugQGSParticipants + G4cout << G4endl<<"Number of wounded nucleons "<GetNextNucleon()) ) + + if ( loopCounter >= maxNumberOfLoops ) { + #ifdef debugQGSParticipants + G4cout <<"BAD situation: forced loop exit!" << G4endl; + #endif + // Perhaps there is something to set here... + } + + #ifdef debugQGSParticipants + G4cout <<"Total number of cuts "<< totalCuts <StartLoop(); + + G4Nucleon* aNucleon; + while ( ( aNucleon = theNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + if ( aNucleon->AreYouHit() ) { + TheInvolvedNucleonsOfTarget[NumberOfInvolvedNucleonsOfTarget] = aNucleon; + NumberOfInvolvedNucleonsOfTarget++; + } + } + + #ifdef debugQGSParticipants + G4cout << G4endl<<"G4QGSParticipants::StoreInvolvedNucleon() ...."<GetSplitableHadron()->GetTimeOfCreation(); + + G4double XofWoundedNucleon = aTargetNucleon->GetPosition().x(); + G4double YofWoundedNucleon = aTargetNucleon->GetPosition().y(); + + G4V3DNucleus* theTargetNucleus = theNucleus; + theTargetNucleus->StartLoop(); + + G4Nucleon* Neighbour(0); + while ( ( Neighbour = theTargetNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + if ( ! Neighbour->AreYouHit() ) { + G4double impact2 = sqr( XofWoundedNucleon - Neighbour->GetPosition().x() ) + + sqr( YofWoundedNucleon - Neighbour->GetPosition().y() ); + + if ( G4UniformRand() < GetCofNuclearDestruction() * + G4Exp( -impact2 / GetR2ofNuclearDestruction() ) + ) { + // The neighbour nucleon is involved in the reggeon cascade + #ifdef debugQGSParticipants + G4cout<<"Target nucleon involved in reggeon cascading - " + <GetDefinition()->GetParticleName()<Hit( targetSplitable ); + targetSplitable->SetTimeOfCreation( CreationTime ); + targetSplitable->SetStatus( 2 ); + targetSplitable->SetCollisionCount(0); + + G4InteractionContent * anInteraction = new G4InteractionContent(theProjectileSplitable); + anInteraction->SetTarget(targetSplitable); + anInteraction->SetTargetNucleon(Neighbour); + + anInteraction->SetNumberOfDiffractiveCollisions(1); + anInteraction->SetNumberOfSoftCollisions(0); + anInteraction->SetStatus(2); + theInteractions.push_back(anInteraction); + } + } // End of if ( ! Neighbour->AreYouHit() ) + } // End of while ( ( Neighbour = theTargetNucleus->GetNextNucleon() ) ) + } // End of for ( G4int InvTN = 0; InvTN < InitNINt; InvTN++ ) + + #ifdef debugQGSParticipants + G4cout <<"Number of involved nucleons "<GetMassNumber() != 1 ) { + isOk = GenerateDeltaIsobar( SqrtS, NumberOfInvolvedNucleonsOfProjectile, + TheInvolvedNucleonsOfProjectile, SumMasses ); + } + if ( theTargetNucleus->GetMassNumber() != 1 ) { + isOk = isOk && + GenerateDeltaIsobar( SqrtS, NumberOfInvolvedNucleonsOfTarget, + TheInvolvedNucleonsOfTarget, SumMasses ); + } + if ( ! isOk ) return false; + + // Now we know that it is kinematically possible to produce a final state made + // of the involved nucleons (or corresponding delta-isobars) and a residual nucleus. + // We have to sample the kinematical variables which will allow to define the 4-momenta + // of the final state. The sampled kinematical variables refer to the center-of-mass frame. + // Notice that the sampling of the transverse momentum corresponds to take into account + // Fermi motion. + + G4LorentzRotation toCms( -1*Psum.boostVector() ); + G4LorentzVector Ptmp = toCms*Pprojectile; + if ( Ptmp.pz() <= 0.0 ) { // "String" moving backwards in c.m.s., abort collision! + return false; + } + + G4LorentzRotation toLab( toCms.inverse() ); + + G4double YprojectileNucleus = 0.0; + if ( isProjectileNucleus ) { + Ptmp = toCms*Pproj; + YprojectileNucleus = Ptmp.rapidity(); + } + Ptmp = toCms*Ptarget; + G4double YtargetNucleus = Ptmp.rapidity(); + + // Ascribing of the involved nucleons Pt and Xminus + G4double DcorP = 0.0; + if ( isProjectileNucleus ) { + DcorP = GetDofNuclearDestruction() / thePrNucleus->GetMassNumber(); + } + G4double DcorT = GetDofNuclearDestruction() / theTargetNucleus->GetMassNumber(); + G4double AveragePt2 = GetPt2ofNuclearDestruction(); + G4double maxPtSquare = GetMaxPt2ofNuclearDestruction(); + + #ifdef debugPutOnMassShell + if ( isProjectileNucleus ) { + G4cout << "Y projectileNucleus " << YprojectileNucleus << G4endl; + } + G4cout << "Y targetNucleus " << YtargetNucleus << G4endl + << "Dcor " << GetDofNuclearDestruction() + << " DcorP DcorT " << DcorP << " " << DcorT << " AveragePt2 " << AveragePt2 << G4endl; + #endif + + G4double M2proj = M2projectile; // Initialization needed only for hadron-nucleus collisions + G4double WplusProjectile = 0.0; + G4double M2target = 0.0; + G4double WminusTarget = 0.0; + G4int NumberOfTries = 0; + G4double ScaleFactor = 1.0; + G4bool OuterSuccess = true; + + const G4int maxNumberOfLoops = 1000; + G4int loopCounter = 0; + do { // while ( ! OuterSuccess ) + OuterSuccess = true; + const G4int maxNumberOfTries = 1000; + do { // while ( SqrtS < Mprojectile + std::sqrt( M2target ) ) + NumberOfTries++; + if ( NumberOfTries == 100*(NumberOfTries/100) ) { + // After many tries, it is convenient to reduce the values of DcorP, DcorT and + // AveragePt2, so that the sampled momenta (respectively, pz, and pt) of the + // involved nucleons (or corresponding delta-isomers) are smaller, and therefore + // it is more likely to satisfy the momentum conservation. + ScaleFactor /= 2.0; + DcorP *= ScaleFactor; + DcorT *= ScaleFactor; + AveragePt2 *= ScaleFactor; + } + if ( isProjectileNucleus ) { + // Sampling of kinematical properties of projectile nucleons + isOk = SamplingNucleonKinematics( AveragePt2, maxPtSquare, DcorP, + thePrNucleus, PprojResidual, + PrResidualMass, ProjectileResidualMassNumber, + NumberOfInvolvedNucleonsOfProjectile, + TheInvolvedNucleonsOfProjectile, M2proj ); + } + // Sampling of kinematical properties of target nucleons + isOk = isOk && + SamplingNucleonKinematics( AveragePt2, maxPtSquare, DcorT, + theTargetNucleus, PtargetResidual, + TargetResidualMass, TargetResidualMassNumber, + NumberOfInvolvedNucleonsOfTarget, + TheInvolvedNucleonsOfTarget, M2target ); + + #ifdef debugPutOnMassShell + G4cout << "SqrtS, Mp+Mt, Mp, Mt " << SqrtS/GeV << " " + << ( std::sqrt( M2proj ) + std::sqrt( M2target) )/GeV << " " + << std::sqrt( M2proj )/GeV << " " << std::sqrt( M2target )/GeV << G4endl; + #endif + + if ( ! isOk ) return false; + } while ( ( SqrtS < std::sqrt( M2proj ) + std::sqrt( M2target ) ) && + ++NumberOfTries < maxNumberOfTries ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( NumberOfTries >= maxNumberOfTries ) { + return false; + } + if ( isProjectileNucleus ) { + isOk = CheckKinematics( S, SqrtS, M2proj, M2target, YprojectileNucleus, true, + NumberOfInvolvedNucleonsOfProjectile, + TheInvolvedNucleonsOfProjectile, + WminusTarget, WplusProjectile, OuterSuccess ); + } + isOk = isOk && + CheckKinematics( S, SqrtS, M2proj, M2target, YtargetNucleus, false, + NumberOfInvolvedNucleonsOfTarget, TheInvolvedNucleonsOfTarget, + WminusTarget, WplusProjectile, OuterSuccess ); + if ( ! isOk ) return false; + } while ( ( ! OuterSuccess ) && + ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( loopCounter >= maxNumberOfLoops ) { + return false; + } + + // Now the sampling is completed, and we can determine the kinematics of the + // whole system. This is done first in the center-of-mass frame, and then it is boosted + // to the lab frame. The transverse momentum of the residual nucleus is determined as + // the recoil of each hadron (nucleon or delta) which is emitted, i.e. in such a way + // to conserve (by construction) the transverse momentum. + + if ( ! isProjectileNucleus ) { // hadron-nucleus collision + + G4double Pzprojectile = WplusProjectile/2.0 - M2projectile/2.0/WplusProjectile; + G4double Eprojectile = WplusProjectile/2.0 + M2projectile/2.0/WplusProjectile; + Pprojectile.setPz( Pzprojectile ); + Pprojectile.setE( Eprojectile ); + + #ifdef debugPutOnMassShell + G4cout << "Proj after in CMS " << Pprojectile/GeV <<" GeV"<< G4endl; + #endif + + Pprojectile.transform( toLab ); + theProjectile.SetMomentum( Pprojectile.vect() ); + theProjectile.SetTotalEnergy( Pprojectile.e() ); + + if ( theProjectileSplitable ) theProjectileSplitable->Set4Momentum(Pprojectile); // Uzhi 14.05.2015 +/* Uzhi + theParticipants.StartLoop(); + theParticipants.Next(); + G4VSplitableHadron* primary = theParticipants.GetInteraction().GetProjectile(); + primary->Set4Momentum( Pprojectile ); +*/ // Uzhi + #ifdef debugPutOnMassShell +//Uzhi G4cout << "Final proj. mom in Lab. " << primary->Get4Momentum() << G4endl; + G4cout << "Final proj. mom in Lab. " <StartLoop(); + while ( ( aNucleon = nucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + nucleusMomentum += aNucleon->Get4Momentum(); + if ( aNucleon->AreYouHit() ) { // Involved nucleons + // Consider in sumMasses the nominal, i.e. on-shell, masses of the nucleons + // (not the current masses, which could be different because the nucleons are off-shell). + sumMasses += std::sqrt( sqr( aNucleon->GetDefinition()->GetPDGMass() ) + + aNucleon->Get4Momentum().perp2() ); + sumMasses += 20.0*MeV; // Separation energy for a nucleon + +// residualExcitationEnergy += ExcitationEPerWoundedNucleon; // Uzhi April 2015 + residualExcitationEnergy += -ExcitationEPerWoundedNucleon* + G4Log( G4UniformRand()); // Uzhi April 2015 + residualMassNumber--; + // The absolute value below is needed only in the case of anti-nucleus. + residualCharge -= std::abs( G4int( aNucleon->GetDefinition()->GetPDGCharge() ) ); + } else { // Spectator nucleons + residualMomentum += aNucleon->Get4Momentum(); + } + } + #ifdef debugPutOnMassShell + G4cout << "ExcitationEnergyPerWoundedNucleon " << ExcitationEPerWoundedNucleon <<" MeV"<GetIonTable()-> + GetIonMass( residualCharge, residualMassNumber ); + if ( residualMassNumber == 1 ) { + residualExcitationEnergy = 0.0; + } + } + sumMasses += std::sqrt( sqr( residualMass ) + residualMomentum.perp2() ); + return true; +} + + +//============================================================================ + +G4bool G4QGSParticipants:: +GenerateDeltaIsobar( const G4double sqrtS, // input parameter + const G4int numberOfInvolvedNucleons, // input parameter + G4Nucleon* involvedNucleons[], // input & output parameter + G4double& sumMasses ) { // input & output parameter + + // This method, which is called only by PutOnMassShell, check whether is possible to + // re-interpret some of the involved nucleons as delta-isobars: + // - either by replacing a proton (2212) with a Delta+ (2214), + // - or by replacing a neutron (2112) with a Delta0 (2114). + // The on-shell mass of these delta-isobars is ~1232 MeV, so ~292-294 MeV heavier than + // the corresponding nucleon on-shell mass. However 400.0*MeV is considered to estimate + // the max number of deltas compatible with the available energy. + // The delta-isobars are considered with the same transverse momentum as their + // corresponding nucleons. + // This method assumes that all the parameters have been initialized by the caller; + // the action of this method consists in modifying (eventually) involveNucleons and + // sumMasses. The return value is "false" only in the case that the input parameters + // have unphysical values. + + if ( sqrtS < 0.0 || numberOfInvolvedNucleons <= 0 || sumMasses < 0.0 ) return false; + + //const G4double ProbDeltaIsobar = 0.05; // Uzhi 6.07.2012 + //const G4double ProbDeltaIsobar = 0.25; // Uzhi 13.06.2013 + const G4double probDeltaIsobar = 0.10; // A.R. 07.08.2013 + + G4int maxNumberOfDeltas = G4int( (sqrtS - sumMasses)/(400.0*MeV) ); + G4int numberOfDeltas = 0; + + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + //G4cout << "i maxNumberOfDeltas probDeltaIsobar " << i << " " << maxNumberOfDeltas + // << " " << probDeltaIsobar << G4endl; + if ( G4UniformRand() < probDeltaIsobar && numberOfDeltas < maxNumberOfDeltas ) { + numberOfDeltas++; + if ( ! involvedNucleons[i] ) continue; + G4VSplitableHadron* splitableHadron = involvedNucleons[i]->GetSplitableHadron(); + G4double massNuc = std::sqrt( sqr( splitableHadron->GetDefinition()->GetPDGMass() ) + + splitableHadron->Get4Momentum().perp2() ); + //AR The absolute value below is needed in the case of an antinucleus. + G4int pdgCode = std::abs( splitableHadron->GetDefinition()->GetPDGEncoding() ); + const G4ParticleDefinition* old_def = splitableHadron->GetDefinition(); + G4int newPdgCode = pdgCode/10; newPdgCode = newPdgCode*10 + 4; // Delta + if ( splitableHadron->GetDefinition()->GetPDGEncoding() < 0 ) newPdgCode *= -1; + const G4ParticleDefinition* ptr = + G4ParticleTable::GetParticleTable()->FindParticle( newPdgCode ); + splitableHadron->SetDefinition( ptr ); + G4double massDelta = std::sqrt( sqr( splitableHadron->GetDefinition()->GetPDGMass() ) + + splitableHadron->Get4Momentum().perp2() ); + //G4cout << i << " " << sqrtS/GeV << " " << sumMasses/GeV << " " << massDelta/GeV + // << " " << massNuc << G4endl; + if ( sqrtS < sumMasses + massDelta - massNuc ) { // Change cannot be accepted! + splitableHadron->SetDefinition( old_def ); + break; + } else { // Change is accepted + sumMasses += ( massDelta - massNuc ); + } + } + } + //G4cout << "maxNumberOfDeltas numberOfDeltas " << maxNumberOfDeltas << " " + // << numberOfDeltas << G4endl; + return true; +} + + +//============================================================================ + +G4bool G4QGSParticipants:: +SamplingNucleonKinematics( G4double averagePt2, // input parameter + const G4double maxPt2, // input parameter + G4double dCor, // input parameter + G4V3DNucleus* nucleus, // input parameter + const G4LorentzVector& pResidual, // input parameter + const G4double residualMass, // input parameter + const G4int residualMassNumber, // input parameter + const G4int numberOfInvolvedNucleons, // input parameter + G4Nucleon* involvedNucleons[], // input & output parameter + G4double& mass2 ) { // output parameter + + // This method, which is called only by PutOnMassShell, does the sampling of: + // - either the target nucleons: this for any kind of hadronic interactions + // (hadron-nucleus, nucleus-nucleus, antinucleus-nucleus); + // - or the projectile nucleons or antinucleons: this only in the case of + // nucleus-nucleus or antinucleus-nucleus interactions, respectively. + // This method assumes that all the parameters have been initialized by the caller; + // the action of this method consists in changing the properties of the nucleons + // whose pointers are in the vector involvedNucleons, as well as changing the + // variable mass2. + + if ( ! nucleus ) return false; + + if ( residualMassNumber == 0 && numberOfInvolvedNucleons == 1 ) { + dCor = 0.0; + averagePt2 = 0.0; + } + + G4bool success = true; + + G4double SumMasses = residualMass; + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + SumMasses += aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass(); + } + + const G4int maxNumberOfLoops = 1000; + G4int loopCounter = 0; + do { // while ( ! success ) + + success = true; + G4ThreeVector ptSum( 0.0, 0.0, 0.0 ); + G4double xSum = 0.0; + + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + G4ThreeVector tmpPt = GaussianPt( averagePt2, maxPt2 ); + ptSum += tmpPt; + G4ThreeVector tmpX = GaussianPt( dCor*dCor, 1.0 ); + G4double x = tmpX.x() + + aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass()/SumMasses; + if ( x < 0.0 || x > 1.0 ) { + success = false; + break; + } + xSum += x; + //AR The energy is in the lab (instead of cms) frame but it will not be used. + G4LorentzVector tmp( tmpPt.x(), tmpPt.y(), x, aNucleon->Get4Momentum().e() ); + aNucleon->SetMomentum( tmp ); + } + + if ( xSum < 0.0 || xSum > 1.0 ) success = false; + + if ( ! success ) continue; + + G4double deltaPx = ( ptSum.x() - pResidual.x() ) / numberOfInvolvedNucleons; + G4double deltaPy = ( ptSum.y() - pResidual.y() ) / numberOfInvolvedNucleons; + G4double delta = 0.0; + if ( residualMassNumber == 0 ) { + delta = ( xSum - 1.0 ) / numberOfInvolvedNucleons; + } else { + delta = 0.0; + } + + xSum = 1.0; + mass2 = 0.0; + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + G4double x = aNucleon->Get4Momentum().pz() - delta; + xSum -= x; + if ( residualMassNumber == 0 ) { + if ( x <= 0.0 || x > 1.0 ) { + success = false; + break; + } + } else { + if ( x <= 0.0 || x > 1.0 || xSum <= 0.0 || xSum > 1.0 ) { + success = false; + break; + } + } + G4double px = aNucleon->Get4Momentum().px() - deltaPx; + G4double py = aNucleon->Get4Momentum().py() - deltaPy; + mass2 += ( sqr( aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass() ) + + sqr( px ) + sqr( py ) ) / x; + G4LorentzVector tmp( px, py, x, aNucleon->Get4Momentum().e() ); + aNucleon->SetMomentum( tmp ); + } + + if ( success && residualMassNumber != 0 ) { + mass2 += ( sqr( residualMass ) + pResidual.perp2() ) / xSum; + } + + #ifdef debugPutOnMassShell + G4cout << "success " << success << G4endl << " Mt " << std::sqrt( mass2 )/GeV << G4endl; + #endif + + } while ( ( ! success ) && + ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( loopCounter >= maxNumberOfLoops ) { + success = false; + } + + return success; +} + + +//============================================================================ + +G4bool G4QGSParticipants:: +CheckKinematics( const G4double sValue, // input parameter + const G4double sqrtS, // input parameter + const G4double projectileMass2, // input parameter + const G4double targetMass2, // input parameter + const G4double nucleusY, // input parameter + const G4bool isProjectileNucleus, // input parameter + const G4int numberOfInvolvedNucleons, // input parameter + G4Nucleon* involvedNucleons[], // input parameter + G4double& targetWminus, // output parameter + G4double& projectileWplus, // output parameter + G4bool& success ) { // input & output parameter + + // This method, which is called only by PutOnMassShell, checks whether the + // kinematics is acceptable or not. + // This method assumes that all the parameters have been initialized by the caller; + // notice that the input boolean parameter isProjectileNucleus is meant to be true + // only in the case of nucleus or antinucleus projectile. + // The action of this method consists in computing targetWminus and projectileWplus + // and setting the parameter success to false in the case that the kinematics should + // be rejeted. + + G4double decayMomentum2 = sqr( sValue ) + sqr( projectileMass2 ) + sqr( targetMass2 ) + - 2.0*sValue*projectileMass2 - 2.0*sValue*targetMass2 + - 2.0*projectileMass2*targetMass2; + targetWminus = ( sValue - projectileMass2 + targetMass2 + std::sqrt( decayMomentum2 ) ) + / 2.0 / sqrtS; + projectileWplus = sqrtS - targetMass2/targetWminus; + G4double projectilePz = projectileWplus/2.0 - projectileMass2/2.0/projectileWplus; + G4double projectileE = projectileWplus/2.0 + projectileMass2/2.0/projectileWplus; + G4double projectileY(1.0e5); + if(projectileE - projectilePz > 0.) { // Uzhi 20.05.2015 + projectileY = 0.5 * G4Log( (projectileE + projectilePz)/ + (projectileE - projectilePz) ); + } + G4double targetPz = -targetWminus/2.0 + targetMass2/2.0/targetWminus; + G4double targetE = targetWminus/2.0 + targetMass2/2.0/targetWminus; + G4double targetY = 0.5 * G4Log( (targetE + targetPz)/(targetE - targetPz) ); + + #ifdef debugPutOnMassShell + G4cout << "decayMomentum2 " << decayMomentum2 << G4endl + << "\t targetWminus projectileWplus " << targetWminus << " " << projectileWplus << G4endl + << "\t projectileY targetY " << projectileY << " " << targetY << G4endl; + #endif + + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + G4LorentzVector tmp = aNucleon->Get4Momentum(); + G4double mt2 = sqr( tmp.x() ) + sqr( tmp.y() ) + + sqr( aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass() ); + G4double x = tmp.z(); + G4double pz = -targetWminus*x/2.0 + mt2/(2.0*targetWminus*x); + G4double e = targetWminus*x/2.0 + mt2/(2.0*targetWminus*x); + if ( isProjectileNucleus ) { + pz = projectileWplus*x/2.0 - mt2/(2.0*projectileWplus*x); + e = projectileWplus*x/2.0 + mt2/(2.0*projectileWplus*x); + } + G4double nucleonY = 0.5 * G4Log( (e + pz)/(e - pz) ); + + #ifdef debugPutOnMassShell + G4cout << "i nY pY nY-AY AY " << i << " " << nucleonY << " " << projectileY < 2 || + ( isProjectileNucleus && targetY > nucleonY ) || + ( ! isProjectileNucleus && projectileY < nucleonY ) ) { + success = false; + break; + } + } + return true; +} + + +//============================================================================ + +G4bool G4QGSParticipants:: +FinalizeKinematics( const G4double w, // input parameter + const G4bool isProjectileNucleus, // input parameter + const G4LorentzRotation& boostFromCmsToLab, // input parameter + const G4double residualMass, // input parameter + const G4int residualMassNumber, // input parameter + const G4int numberOfInvolvedNucleons, // input parameter + G4Nucleon* involvedNucleons[], // input & output parameter + G4LorentzVector& residual4Momentum ) { // output parameter + + // This method, which is called only by PutOnMassShell, finalizes the kinematics: + // this method is called when we are sure that the sampling of the kinematics is + // acceptable. + // This method assumes that all the parameters have been initialized by the caller; + // notice that the input boolean parameter isProjectileNucleus is meant to be true + // only in the case of nucleus or antinucleus projectile: this information is needed + // because the sign of pz (in the center-of-mass frame) in this case is opposite + // with respect to the case of a normal hadron projectile. + // The action of this method consists in modifying the momenta of the nucleons + // (in the lab frame) and computing the residual 4-momentum (in the center-of-mass + // frame). + + G4ThreeVector residual3Momentum( 0.0, 0.0, 1.0 ); + + for ( G4int i = 0; i < numberOfInvolvedNucleons; i++ ) { + G4Nucleon* aNucleon = involvedNucleons[i]; + if ( ! aNucleon ) continue; + G4LorentzVector tmp = aNucleon->Get4Momentum(); + residual3Momentum -= tmp.vect(); + G4double mt2 = sqr( tmp.x() ) + sqr( tmp.y() ) + + sqr( aNucleon->GetSplitableHadron()->GetDefinition()->GetPDGMass() ); + G4double x = tmp.z(); + G4double pz = -w * x / 2.0 + mt2 / ( 2.0 * w * x ); + G4double e = w * x / 2.0 + mt2 / ( 2.0 * w * x ); + // Reverse the sign of pz in the case of nucleus or antinucleus projectile + if ( isProjectileNucleus ) pz *= -1.0; + tmp.setPz( pz ); + tmp.setE( e ); + tmp.transform( boostFromCmsToLab ); + aNucleon->SetMomentum( tmp ); + G4VSplitableHadron* splitableHadron = aNucleon->GetSplitableHadron(); + splitableHadron->Set4Momentum( tmp ); + #ifdef debugPutOnMassShell // Uzhi 14.05.2015 + G4cout << "Target involved nucleon No, name, 4Mom " + << i<<" "<GetDefinition()->GetParticleName()<<" "<GetProjectile(); - G4Parton* aParton = aProjectile->GetNextParton(); - G4PartonPair * aPartonPair; - // projectile first HPW - if (aParton) - { - aPartonPair = new G4PartonPair(aParton, aProjectile->GetNextAntiParton(), - G4PartonPair::DIFFRACTIVE, - G4PartonPair::PROJECTILE); - #ifdef debug_G4QGSPart_PDiffColl - G4cout << "DiffPair Pro " << aPartonPair->GetParton1()->GetPDGcode() << " " - << aPartonPair->GetParton1()->Get4Momentum() << " " - << aPartonPair->GetParton1()->GetX() << " " << G4endl; - G4cout << " " << aPartonPair->GetParton2()->GetPDGcode() << " " - << aPartonPair->GetParton2()->Get4Momentum() << " " - << aPartonPair->GetParton2()->GetX() << " " << G4endl; - #endif - thePartonPairs.push_back(aPartonPair); - } - // then target HPW - G4VSplitableHadron* aTarget = anIniteraction->GetTarget(); - aParton = aTarget->GetNextParton(); - if (aParton) - { - aPartonPair = new G4PartonPair(aParton, aTarget->GetNextAntiParton(), - G4PartonPair::DIFFRACTIVE, - G4PartonPair::TARGET); - #ifdef debug_G4QGSPart_PDiffColl - G4cout << "DiffPair Tgt " << aPartonPair->GetParton1()->GetPDGcode() << " " - << aPartonPair->GetParton1()->Get4Momentum() << " " - << aPartonPair->GetParton1()->GetX() << " " << G4endl; - G4cout << " " << aPartonPair->GetParton2()->GetPDGcode() << " " - << aPartonPair->GetParton2()->Get4Momentum() << " " - << aPartonPair->GetParton2()->GetX() << " " << G4endl; - #endif - thePartonPairs.push_back(aPartonPair); - } + #ifdef debugQGSParticipants + G4cout<<"Interaction No and its status " + <GetStatus()<GetStatus() == 1) // Selection of diffractive interactions + { + G4VSplitableHadron* aTarget = anIniteraction->GetTarget(); + + #ifdef debugQGSParticipants + G4cout<<"The proj. before inter " + <Get4Momentum()<<" " + <Get4Momentum().mag()<Get4Momentum()<<" " + <Get4Momentum().mag()<>Uzhi;} + } + else + { + theDiffExcitaton.ExciteParticipants(theProjectileSplitable, aTarget); + } + + #ifdef debugQGSParticipants + G4cout<<"The proj. after inter " + <Get4Momentum()<<" " + <Get4Momentum().mag()<Get4Momentum()<<" " + <Get4Momentum().mag()<GetStatus() "<GetStatus()<GetStatus() != 0) {return false;} // There were only diffractive interactions. + + G4LorentzVector Projectile4Momentum = theProjectileSplitable->Get4Momentum(); + G4LorentzVector Psum = Projectile4Momentum; + + #ifdef debugQGSParticipants + G4cout<::iterator i; + G4int NuclNo=0; + + for(i = theTargets.begin(); i != theTargets.end(); i++ ) + { + Psum += (*i)->Get4Momentum(); + #ifdef debugQGSParticipants + G4cout<Get4Momentum()<Get4Momentum(); tmp.transform( toCms ); + (*i)->Set4Momentum( tmp ); + #ifdef debugQGSParticipants + G4cout<<"Target nucleon NuclNo, 4Mom "<<" "<Get4Momentum()<Get4Momentum(); // tmp.boost(bstToCM); + G4double Mass = tmp.mag(); + + tmp.setPz(tmp.minus()/PminusTarget); tmp.setE(Mass); + (*i)->Set4Momentum(tmp); + #ifdef debugQGSParticipants + G4cout<Get4Momentum()<GetDefinition(); + if (theProjectileDefinition == G4PionMinus::PionMinusDefinition()) aBeta = 1.; // Uzhi -0.5 + if (theProjectileDefinition == G4Gamma::GammaDefinition()) aBeta = 1.; + if (theProjectileDefinition == G4PionPlus::PionPlusDefinition()) aBeta = 1.; // Uzhi -0.5 + if (theProjectileDefinition == G4PionZero::PionZeroDefinition()) aBeta = 1.; // Uzhi -0.5 + if (theProjectileDefinition == G4KaonPlus::KaonPlusDefinition()) aBeta = 0.; + if (theProjectileDefinition == G4KaonMinus::KaonMinusDefinition()) aBeta = 0.; + + G4double Xmin = 0.; // ========================== + + G4bool Success = true; G4int attempt = 0; + const G4int maxNumberOfAttempts = 1000; + do // while(!Success) + { + attempt++; if( attempt == 100*(attempt/100) ) {SigPt/=2.;} + + + ProjSumMt=0.; ProjSumMt2perX=0.; + TargSumMt=0.; TargSumMt2perX=0.; + + Success = true; + G4int nSeaPair = theProjectileSplitable->GetSoftCollisionCount()-1; + #ifdef debugQGSParticipants + G4cout<<"attempt ------------------------ "<Get4Momentum().px() * (-1.); + G4double SumPy = 0.; //theProjectileSplitable->Get4Momentum().py() * (-1.); + G4double SumZ = 0.; + G4int NumberOfUnsampledSeaQuarks = 2*nSeaPair; + + for (G4int aSeaPair = 0; aSeaPair < nSeaPair; aSeaPair++) + { + aParton = theProjectileSplitable->GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Sea quarks: "<GetDefinition()->GetParticleName(); + #endif + aPtVector = GaussianPt(SigPt, aHugeValue); + tmp.setPx(aPtVector.x()); tmp.setPy(aPtVector.y()); + SumPx += aPtVector.x(); SumPy += aPtVector.y(); + ProjSumMt += aPtVector.mag(); + +//Sampling of Z fraction +//G4cout<<" NumberOfUnsampledSeaQuarks "<Set4Momentum(tmp); + + aParton = theProjectileSplitable->GetNextAntiParton(); // for anti-quarks + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Set4Momentum(tmp); + #ifdef debugQGSParticipants + G4cout<<" "<GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Val quark : "<<" "<GetDefinition()->GetParticleName(); + #endif + aPtVector = GaussianPt(SigPt, aHugeValue); + tmp.setPx(aPtVector.x()); tmp.setPy(aPtVector.y()); + SumPx += aPtVector.x(); SumPy += aPtVector.y(); + ProjSumMt += aPtVector.mag(); + +//Sampling of Z fraction +//G4cout<<" NumberOfUnsampledSeaQuarks "<Set4Momentum(tmp); + +// For valence di-quark + aParton = theProjectileSplitable->GetNextAntiParton(); + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Set4Momentum(tmp); + #ifdef debugQGSParticipants + G4cout<<" "<GetSoftCollisionCount()-1; + #ifdef debugQGSParticipants + G4cout<<"nSeaPair of target N "<Get4Momentum()<Get4Momentum().px() * (-1.); + SumPy = (*i)->Get4Momentum().py() * (-1.); + SumZ = 0. ; //********** + +G4double SumZw=0.; + NumberOfUnsampledSeaQuarks = 2*nSeaPair; + + for (G4int aSeaPair = 0; aSeaPair < nSeaPair; aSeaPair++) + { + aParton = (*i)->GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Sea quarks: "<GetDefinition()->GetParticleName(); + #endif + aPtVector = GaussianPt(SigPt, aHugeValue); + tmp.setPx(aPtVector.x()); tmp.setPy(aPtVector.y()); + SumPx += aPtVector.x(); SumPy += aPtVector.y(); + TargSumMt += aPtVector.mag(); +//Sampling of Z fraction +//G4cout<<" NumberOfUnsampledSeaQuarks "<Get4Momentum().pz()*tmp.pz()); +SumZw+=tmp.pz(); + NumberOfUnsampledSeaQuarks--; + TargSumMt2perX +=tmp.perp2()/tmp.pz(); + aParton->Set4Momentum(tmp); + + aParton = (*i)->GetNextAntiParton(); // for anti-quarks + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Get4Momentum().pz()*tmp.pz()); +SumZw+=tmp.pz(); + NumberOfUnsampledSeaQuarks--; + TargSumMt2perX +=tmp.perp2()/tmp.pz(); + aParton->Set4Momentum(tmp); + #ifdef debugQGSParticipants + G4cout<<" "<GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Val quark : "<<" "<GetDefinition()->GetParticleName(); + #endif + aPtVector = GaussianPt(SigPt, aHugeValue); + tmp.setPx(aPtVector.x()); tmp.setPy(aPtVector.y()); + SumPx += aPtVector.x(); SumPy += aPtVector.y(); + TargSumMt += aPtVector.mag(); +//Sampling of Z fraction +//G4cout<<" NumberOfUnsampledSeaQuarks "<Get4Momentum().pz()*tmp.pz()); +SumZw+=tmp.pz(); + TargSumMt2perX +=tmp.perp2()/tmp.pz(); + aParton->Set4Momentum(tmp); + +// Valence di-quark + aParton = (*i)->GetNextAntiParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Get4Momentum().pz()*(1.0 - SumZ)); +SumZw+=tmp.pz(); + TargSumMt2perX +=tmp.perp2()/tmp.pz(); + aParton->Set4Momentum(tmp); + #ifdef debugQGSParticipants + G4cout<<" "<Get4Momentum().pz()< SqrtS ) { +//G4cout<<"if( ProjSumMt + TargSumMt > SqrtS ) "< SqrtS ) { +//G4cout<<"if( std::sqrt(ProjSumMt2perX) + std::sqrt(TargSumMt2perX) > SqrtS ) "<>Uzhi; + + } while( (!Success) && + attempt < maxNumberOfAttempts ); /* Loop checking, 07.08.2015, A.Ribon */ + + if ( attempt >= maxNumberOfAttempts ) { + return false; + } +//+++++++++++++++++++++++++++++++++++++++++++ + + G4double DecayMomentum2 = sqr(S) + sqr(ProjSumMt2perX) + sqr(TargSumMt2perX) + - 2.0*S*ProjSumMt2perX - 2.0*S*TargSumMt2perX - 2.0*ProjSumMt2perX*TargSumMt2perX; + + G4double targetWminus=( S - ProjSumMt2perX + TargSumMt2perX + std::sqrt( DecayMomentum2 ))/2.0/SqrtS; + G4double projectileWplus = SqrtS - TargSumMt2perX/targetWminus; +//-------------------------------------- + G4LorentzVector Tmp(0.,0.,0.,0.); + G4double z(0.); + + G4int nSeaPair = theProjectileSplitable->GetSoftCollisionCount()-1; + #ifdef debugQGSParticipants + G4cout<<"Backward transformation ===================="<GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Sea quarks: "<GetDefinition()->GetParticleName(); + #endif + Tmp =aParton->Get4Momentum(); z=Tmp.z(); +//G4cout<<"Tmp.mt2() "<Set4Momentum(Tmp); + + aParton = theProjectileSplitable->GetNextAntiParton(); // for anti-quarks + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Get4Momentum(); z=Tmp.z(); + Tmp.setPz(projectileWplus*z/2.0 - Tmp.perp2()/(2.0*z*projectileWplus)); + Tmp.setE( projectileWplus*z/2.0 + Tmp.perp2()/(2.0*z*projectileWplus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + #ifdef debugQGSParticipants + G4cout<<" "<GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Val quark : "<<" "<GetDefinition()->GetParticleName(); + #endif + Tmp =aParton->Get4Momentum(); z=Tmp.z(); + Tmp.setPz(projectileWplus*z/2.0 - Tmp.perp2()/(2.0*z*projectileWplus)); + Tmp.setE( projectileWplus*z/2.0 + Tmp.perp2()/(2.0*z*projectileWplus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + +// For valence di-quark + aParton = theProjectileSplitable->GetNextAntiParton(); + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Get4Momentum(); z=Tmp.z(); + Tmp.setPz(projectileWplus*z/2.0 - Tmp.perp2()/(2.0*z*projectileWplus)); + Tmp.setE( projectileWplus*z/2.0 + Tmp.perp2()/(2.0*z*projectileWplus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + + #ifdef debugQGSParticipants + G4cout<<" "<GetSoftCollisionCount()-1; + #ifdef debugQGSParticipants + G4cout<<"nSeaPair of target N "<GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Sea quarks: "<GetDefinition()->GetParticleName(); + #endif + Tmp =aParton->Get4Momentum(); z=Tmp.z(); + Tmp.setPz(-targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.setE( targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + + aParton = (*i)->GetNextAntiParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Get4Momentum(); z=Tmp.z(); + Tmp.setPz(-targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.setE( targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + #ifdef debugQGSParticipants + G4cout<<" "<GetNextParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<"Val quark : "<<" "<GetDefinition()->GetParticleName(); + #endif + Tmp =aParton->Get4Momentum(); z=Tmp.z(); + Tmp.setPz(-targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.setE( targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + +// Valence di-quark + aParton = (*i)->GetNextAntiParton(); // for quarks + #ifdef debugQGSParticipants + G4cout<<" "<GetDefinition()->GetParticleName()<Get4Momentum(); z=Tmp.z(); + Tmp.setPz(-targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.setE( targetWminus*z/2.0 + Tmp.perp2()/(2.0*z*targetWminus)); + Tmp.transform( toLab ); // Uzhi 14.05.2015 +// Tmp.boost(-bstToCM); // Backward transformation + aParton->Set4Momentum(Tmp); + #ifdef debugQGSParticipants + G4cout<<" "<powA(Ksi1,Oalfa); + Ksi2 = G4UniformRand(); r2 = G4Pow::GetInstance()->powA(Ksi2,Obeta); + r12=r1+r2; + } while( ( r12 > 1.) && + ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( loopCounter >= maxNumberOfLoops ) { + return 0.5; // Just an acceptable value, without any physics consideration. + } + + G4double result = r1/r12; // Vova, chto ty delaesh? +//G4cout<<"Sampling results "<powA(1./G4double(ii), alpha); + y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, alpha+1) - + G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea); + y *= G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, aBeta+1) - + G4Pow::GetInstance()->powA(anXmin, aBeta+1); + if(y>ymax) ymax = y; + } + G4double y; + G4double xMax=1-(totalSea+1)*anXmin; + if(anXmin > xMax) + { + G4cout << "anXmin = "<powA(x1, alpha); + y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, alpha+1) - + G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea); + y *= G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, aBeta+1) - + G4Pow::GetInstance()->powA(anXmin, aBeta+1); + x2 = ymax*G4UniformRand(); + } + while(x2>y); + result = x1; + return result; + +} +*/ +//====================================================== +void G4QGSParticipants::CreateStrings() +{ + + #ifdef debugQGSParticipants + G4cout<<"CreateStrings() ..................."<GetStatus() "<GetStatus()<GetStatus() == 1 ) // The projectile has participated only in diffr. inter. + { +//?? unused G4double CreationTime = theProjectileSplitable->GetTimeOfCreation(); + G4ThreeVector Position = theProjectileSplitable->GetPosition(); + + G4PartonPair * aPair = new G4PartonPair(theProjectileSplitable->GetNextParton(), + theProjectileSplitable->GetNextAntiParton(), + G4PartonPair::DIFFRACTIVE, G4PartonPair::TARGET); + #ifdef debugQGSParticipants + G4cout << "Diffr. Pr. St " << aPair->GetParton1()->GetPDGcode() << " " + << aPair->GetParton1()->Get4Momentum() << " " + << aPair->GetParton1()->GetX() << " " << G4endl; + G4cout << " " << aPair->GetParton2()->GetPDGcode() << " " + << aPair->GetParton2()->Get4Momentum() << " " + << aPair->GetParton2()->GetX() << " " << G4endl; + + str4Mom += aPair->GetParton1()->Get4Momentum(); + str4Mom += aPair->GetParton2()->Get4Momentum(); + #endif + + thePartonPairs.push_back(aPair); + } + + G4int N_EnvTarg = NumberOfInvolvedNucleonsOfTarget; + + for ( G4int i = 0; i < N_EnvTarg; i++ ) { + G4Nucleon* aTargetNucleon = TheInvolvedNucleonsOfTarget[ i ]; + + G4VSplitableHadron* HitTargetNucleon = aTargetNucleon->GetSplitableHadron(); + + #ifdef debugQGSParticipants + G4cout<<"Involved Nucleon and its status "<GetStatus()<GetStatus() >= 1) // Create diffractive string + { +//unused?? G4double CreationTime = HitTargetNucleon->GetTimeOfCreation(); + G4ThreeVector Position = HitTargetNucleon->GetPosition(); + + G4PartonPair * aPair = new G4PartonPair(HitTargetNucleon->GetNextParton(), + HitTargetNucleon->GetNextAntiParton(), + G4PartonPair::DIFFRACTIVE, G4PartonPair::TARGET); + #ifdef debugQGSParticipants + G4cout << "Diffr. String " << aPair->GetParton1()->GetPDGcode() << " " + << aPair->GetParton1()->Get4Momentum() << " " + << aPair->GetParton1()->GetX() << " " << G4endl; + G4cout << " " << aPair->GetParton2()->GetPDGcode() << " " + << aPair->GetParton2()->Get4Momentum() << " " + << aPair->GetParton2()->GetX() << " " << G4endl; + + str4Mom += aPair->GetParton1()->Get4Momentum(); + str4Mom += aPair->GetParton2()->Get4Momentum(); + #endif + + thePartonPairs.push_back(aPair); + } // End of if( HitTargetNucleon->GetStatus() >= 1) + } // End of for ( G4int i = 0; i < N_EnvTarg; i++ ) + +//----------------------------------------- + #ifdef debugQGSParticipants + G4cout<<"Soft interactions"<::iterator i; +G4int IntNo=0; + i = theInteractions.begin(); + while ( i != theInteractions.end() ) /* Loop checking, 07.08.2015, A.Ribon */ + { + G4InteractionContent* anIniteraction = *i; + G4PartonPair * aPair = NULL; + + #ifdef debugQGSParticipants + G4cout<<"an interaction No soft coll. "<GetNumberOfSoftCollisions()<GetNumberOfSoftCollisions()) + { + G4VSplitableHadron* pProjectile = anIniteraction->GetProjectile(); + G4VSplitableHadron* pTarget = anIniteraction->GetTarget(); + + for (G4int j = 0; j < anIniteraction->GetNumberOfSoftCollisions(); j++) + { + aPair = new G4PartonPair(pTarget->GetNextParton(), pProjectile->GetNextAntiParton(), + G4PartonPair::SOFT, G4PartonPair::TARGET); + #ifdef debugQGSParticipants + G4cout << "SoftPair " << aPair->GetParton1()->GetPDGcode() << " " + << aPair->GetParton1()->Get4Momentum() << " " + << aPair->GetParton1()->GetX() << " " << G4endl; + G4cout << " " << aPair->GetParton2()->GetPDGcode() << " " + << aPair->GetParton2()->Get4Momentum() << " " + << aPair->GetParton2()->GetX() << " " << G4endl; + + str4Mom += aPair->GetParton1()->Get4Momentum(); + str4Mom += aPair->GetParton2()->Get4Momentum(); + #endif + + thePartonPairs.push_back(aPair); + + aPair = new G4PartonPair(pProjectile->GetNextParton(), pTarget->GetNextAntiParton(), + G4PartonPair::SOFT, G4PartonPair::PROJECTILE); + #ifdef debugQGSParticipants + G4cout << "SoftPair " << aPair->GetParton1()->GetPDGcode() << " " + << aPair->GetParton1()->Get4Momentum() << " " + << aPair->GetParton1()->GetX() << " " << G4endl; + G4cout << " " << aPair->GetParton2()->GetPDGcode() << " " + << aPair->GetParton2()->Get4Momentum() << " " + << aPair->GetParton2()->GetX() << " " << G4endl; + #endif + #ifdef debugQGSParticipants + str4Mom += aPair->GetParton1()->Get4Momentum(); + str4Mom += aPair->GetParton2()->Get4Momentum(); + #endif + + thePartonPairs.push_back(aPair); + } // End of for (G4int j = 0; j < anIniteraction->GetNumberOfSoftCollisions(); j++) + + delete *i; + i=theInteractions.erase(i); // i now points to the next interaction + } else + { + i++; + } + } // End of while ( i != theInteractions.end() ) + #ifdef debugQGSParticipants + G4cout << " string 4 mom " << str4Mom << G4endl; + #endif +} + +//============================================================================ + +void G4QGSParticipants::GetResiduals() { // Uzhi 29.05.2015 + // This method is needed for the correct application of G4PrecompoundModelInterface + + #ifdef debugQGSParticipants + G4cout << "GetResiduals(): GetProjectileNucleus()? " + << GetProjectileNucleus() << G4endl; + #endif + + #ifdef debugQGSParticipants + G4cout << "NumberOfInvolvedNucleonsOfTarget "<< NumberOfInvolvedNucleonsOfTarget << G4endl; + #endif + + G4double DeltaExcitationE = TargetResidualExcitationEnergy / + G4double( NumberOfInvolvedNucleonsOfTarget ); + G4LorentzVector DeltaPResidualNucleus = TargetResidual4Momentum / + G4double( NumberOfInvolvedNucleonsOfTarget ); + + for ( G4int i = 0; i < NumberOfInvolvedNucleonsOfTarget; i++ ) { + G4Nucleon* aNucleon = TheInvolvedNucleonsOfTarget[i]; + + #ifdef debugQGSParticipants + G4VSplitableHadron* targetSplitable = aNucleon->GetSplitableHadron(); + G4cout << i << " Hit? " << aNucleon->AreYouHit() << " " << targetSplitable << G4endl; + if ( targetSplitable ) G4cout << i << "Status " << targetSplitable->GetStatus() << G4endl; + #endif + + G4LorentzVector tmp = -DeltaPResidualNucleus; + aNucleon->SetMomentum( tmp ); + aNucleon->SetBindingEnergy( DeltaExcitationE ); + } + +//------------------------------------- Uzhi 25 May 2015 + if( TargetResidualMassNumber != 0 ) + { + G4ThreeVector bstToCM =TargetResidual4Momentum.findBoostToCM(); + + G4V3DNucleus* theTargetNucleus = GetTargetNucleus(); + G4LorentzVector residualMomentum(0.,0.,0.,0.); + G4Nucleon* aNucleon = 0; + theTargetNucleus->StartLoop(); + while ( ( aNucleon = theTargetNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + if ( !aNucleon->AreYouHit() ) { + G4LorentzVector tmp=aNucleon->Get4Momentum(); tmp.boost(bstToCM); + aNucleon->SetMomentum(tmp); + residualMomentum +=tmp; + } + } + + residualMomentum/=TargetResidualMassNumber; + + G4double Mass = TargetResidual4Momentum.mag(); + G4double SumMasses=0.; + + aNucleon = 0; + theTargetNucleus->StartLoop(); + while ( ( aNucleon = theTargetNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + if ( !aNucleon->AreYouHit() ) { + G4LorentzVector tmp=aNucleon->Get4Momentum() - residualMomentum; + G4double E=std::sqrt(tmp.vect().mag2()+ + sqr(aNucleon->GetDefinition()->GetPDGMass()-aNucleon->GetBindingEnergy())); + tmp.setE(E); aNucleon->SetMomentum(tmp); + SumMasses+=E; + } + } + + G4double Chigh=Mass/SumMasses; G4double Clow=0; G4double C; + const G4int maxNumberOfLoops = 1000; + G4int loopCounter = 0; + do + { + C=(Chigh+Clow)/2.; + + SumMasses=0.; + aNucleon = 0; + theTargetNucleus->StartLoop(); + while ( ( aNucleon = theTargetNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + if ( !aNucleon->AreYouHit() ) { + G4LorentzVector tmp=aNucleon->Get4Momentum(); + G4double E=std::sqrt(tmp.vect().mag2()*sqr(C)+ + sqr(aNucleon->GetDefinition()->GetPDGMass()-aNucleon->GetBindingEnergy())); + SumMasses+=E; + } + } + + if(SumMasses > Mass) {Chigh=C;} + else {Clow =C;} + + } while( (Chigh-Clow > 0.01) && + ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( loopCounter >= maxNumberOfLoops ) { + #ifdef debugQGSParticipants + G4cout <<"BAD situation: forced loop exit!" << G4endl; + #endif + // Perhaps there is something to set here... + } else { + + aNucleon = 0; + theTargetNucleus->StartLoop(); + while ( ( aNucleon = theTargetNucleus->GetNextNucleon() ) ) { /* Loop checking, 07.08.2015, A.Ribon */ + if ( !aNucleon->AreYouHit() ) { + G4LorentzVector tmp=aNucleon->Get4Momentum()*C; + G4double E=std::sqrt(tmp.vect().mag2()+ + sqr(aNucleon->GetDefinition()->GetPDGMass()-aNucleon->GetBindingEnergy())); + tmp.setE(E); tmp.boost(-bstToCM); + aNucleon->SetMomentum(tmp); + } + } + } + + } // End of if( TargetResidualMassNumber != 0 ) +//------------------------------------- + + #ifdef debugQGSParticipants + G4cout << "End GetResiduals -----------------" << G4endl; + #endif + +} + + +//====================================================== +void G4QGSParticipants::PerformSoftCollisions() // Uzhi It is not used { std::vector::iterator i; G4LorentzVector str4Mom; i = theInteractions.begin(); - while ( i != theInteractions.end() ) /* Loop checking, 10.08.2015, A.Ribon */ + while ( i != theInteractions.end() ) /* Loop checking, 07.08.2015, A.Ribon */ { G4InteractionContent* anIniteraction = *i; G4PartonPair * aPair = NULL; @@ -296,7 +2295,7 @@ void G4QGSParticipants::PerformSoftCollisions() { aPair = new G4PartonPair(pTarget->GetNextParton(), pProjectile->GetNextAntiParton(), G4PartonPair::SOFT, G4PartonPair::TARGET); - #ifdef debug_G4QGSPart_PSoftColl + #ifdef debugQGSParticipants G4cout << "SoftPair " << aPair->GetParton1()->GetPDGcode() << " " << aPair->GetParton1()->Get4Momentum() << " " << aPair->GetParton1()->GetX() << " " << G4endl; @@ -304,14 +2303,14 @@ void G4QGSParticipants::PerformSoftCollisions() << aPair->GetParton2()->Get4Momentum() << " " << aPair->GetParton2()->GetX() << " " << G4endl; #endif - #ifdef debug_G4QGSParticipants + #ifdef debugQGSParticipants str4Mom += aPair->GetParton1()->Get4Momentum(); str4Mom += aPair->GetParton2()->Get4Momentum(); #endif thePartonPairs.push_back(aPair); aPair = new G4PartonPair(pProjectile->GetNextParton(), pTarget->GetNextAntiParton(), G4PartonPair::SOFT, G4PartonPair::PROJECTILE); - #ifdef debug_G4QGSPart_PSoftColl + #ifdef debugQGSParticipants G4cout << "SoftPair " << aPair->GetParton1()->GetPDGcode() << " " << aPair->GetParton1()->Get4Momentum() << " " << aPair->GetParton1()->GetX() << " " << G4endl; @@ -319,7 +2318,7 @@ void G4QGSParticipants::PerformSoftCollisions() << aPair->GetParton2()->Get4Momentum() << " " << aPair->GetParton2()->GetX() << " " << G4endl; #endif - #ifdef debug_G4QGSParticipants + #ifdef debugQGSParticipants str4Mom += aPair->GetParton1()->Get4Momentum(); str4Mom += aPair->GetParton2()->Get4Momentum(); #endif @@ -331,7 +2330,116 @@ void G4QGSParticipants::PerformSoftCollisions() i++; } } - #ifdef debug_G4QGSPart_PSoftColl + #ifdef debugQGSParticipants G4cout << " string 4 mom " << str4Mom << G4endl; #endif } + + +//************************************************ +G4VSplitableHadron* G4QGSParticipants::SelectInteractions(const G4ReactionProduct &thePrimary) +{ +//G4cout<<"G4QGSParticipants::SelectInteractions "<SetStatus(1); // Uzhi 21.05.2015 + + G4LorentzVector aPrimaryMomentum(thePrimary.GetMomentum(), thePrimary.GetTotalEnergy()); + G4LorentzVector aTargetNMomentum(0.,0.,0.,938.); +//G4cout<<"aPrMom "<-1)) && (!(aPrimaryMomentum.e()<1)) ) + { + throw G4HadronicException(__FILE__, __LINE__, + "G4GammaParticipants::SelectInteractions: primary nan energy."); + } + G4double S = (aPrimaryMomentum + aTargetNMomentum).mag2(); + G4double ThresholdMass = thePrimary.GetMass() + 938.; + ModelMode = SOFT; + if (sqr(ThresholdMass + ThresholdParameter) > S) + { + ModelMode = DIFFRACTIVE; + //throw G4HadronicException(__FILE__, __LINE__, "Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); + } + if (sqr(ThresholdMass + QGSMThreshold) > S) // thus only diffractive in cascade! + { + ModelMode = DIFFRACTIVE; + } +//G4cout<<"ModelMode "<GetMassNumber(); + #endif + + G4int theCurrent = G4int(theNucleus->GetMassNumber()*G4UniformRand()); + G4int NucleonNo=0; + + theNucleus->StartLoop(); + G4Nucleon * pNucleon = 0;//theNucleus->GetNextNucleon(); + + while( (pNucleon = theNucleus->GetNextNucleon()) ) /* Loop checking, 07.08.2015, A.Ribon */ + {if(NucleonNo == theCurrent) break; NucleonNo++;} +//G4cout<<"theCurrent "<Hit(aTarget); +//G4cout<<"pNucleon->Hit(aTarget)"< G4UniformRand() &&(ModelMode==SOFT)) || (ModelMode==DIFFRACTIVE ) ) + { +/* + // diffractive interaction occurs + if(IsSingleDiffractive()) + { + theSingleDiffExcitation.ExciteParticipants(aProjectile, aTarget); + } + else + { + theDiffExcitaton.ExciteParticipants(aProjectile, aTarget); + } +*/ +//G4cout<<"Gamma List Diffraction"<SetStatus(1*theProjectileSplitable->GetStatus()); + + aInteraction->SetTarget(aTarget); + aInteraction->SetTargetNucleon(pNucleon); + aTarget->SetCollisionCount(0); + aTarget->SetStatus(1); + + aInteraction->SetNumberOfDiffractiveCollisions(1); + aInteraction->SetNumberOfSoftCollisions(0); + aInteraction->SetStatus(1); + + theInteractions.push_back(aInteraction); + totalCuts += 1; + } + else + { + // nondiffractive soft interaction occurs +//G4cout<<"Gamma List Non-Diffraction -----"<IncrementCollisionCount(1); + aTarget->SetStatus(0); + theTargets.push_back(aTarget); + + theProjectileSplitable->IncrementCollisionCount(1); + theProjectileSplitable->SetStatus(0*theProjectileSplitable->GetStatus()); + + G4InteractionContent * aInteraction = + new G4InteractionContent(theProjectileSplitable); + aInteraction->SetTarget(aTarget); + aInteraction->SetTargetNucleon(pNucleon); + aInteraction->SetNumberOfSoftCollisions(1); + aInteraction->SetStatus(0); + theInteractions.push_back(aInteraction); + totalCuts += 1; + } + } + return theProjectileSplitable; //aProjectile; +} diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4SPBaryon.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4SPBaryon.cc index e96126d8b8..8b145130fe 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4SPBaryon.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4SPBaryon.cc @@ -97,6 +97,7 @@ void G4SPBaryon:: SampleQuarkAndDiquark(G4int & quark, G4int & diQuark) const { typedef std::vector::const_iterator iter; + G4double random = G4UniformRand(); G4double sum = 0; iter i; @@ -153,9 +154,9 @@ FindDiquark(G4int quark, G4int & diQuark) const G4SPBaryon:: G4SPBaryon(G4Proton * aProton) { - theDefinition = aProton; - thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d - thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.)); // ud_1, u + theDefinition = aProton; // Uzhi + thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3./2.)); // uu_1, d + thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.*2.)); // ud_1, u thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u } @@ -171,10 +172,10 @@ G4SPBaryon(G4AntiProton * aAntiProton) G4SPBaryon:: G4SPBaryon(G4Neutron * aNeutron) { - theDefinition = aNeutron; - thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.)); // ud_1, d - thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.)); // ud_0, d - thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u + theDefinition = aNeutron; // Uzhi + thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.*2.)); // ud_1, d + thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2. )); // ud_0, d + thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3./2 )); // dd_1, u } G4SPBaryon:: @@ -348,7 +349,8 @@ G4SPBaryon(G4ParticleDefinition * aDefinition) G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0 { thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); - thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.)); +// Uzhi thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.)); + thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // Uzhi 14.05.2014 } else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0 diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4SingleDiffractiveExcitation.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4SingleDiffractiveExcitation.cc index d078ece2ba..ca5c0b0bff 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4SingleDiffractiveExcitation.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4SingleDiffractiveExcitation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SingleDiffractiveExcitation.cc 93563 2015-10-26 14:46:09Z gcosmo $ +// $Id: G4SingleDiffractiveExcitation.cc 94750 2015-12-07 08:24:29Z gcosmo $ // ------------------------------------------------------------ // GEANT 4 class implemetation file // @@ -47,6 +47,7 @@ #include "G4ExcitedString.hh" #include "G4Log.hh" +#include "G4Pow.hh" G4SingleDiffractiveExcitation::G4SingleDiffractiveExcitation(G4double sigmaPt, G4double minextraMass,G4double x0mass) @@ -61,31 +62,39 @@ G4SingleDiffractiveExcitation::~G4SingleDiffractiveExcitation() G4bool G4SingleDiffractiveExcitation:: ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) const { - +/* +G4cout<GetDefinition()->GetPDGEncoding()<<" "<GetDefinition()->GetPDGEncoding()<Get4Momentum(); - G4double Mprojectile2=sqr(projectile->GetDefinition()->GetPDGMass() + minExtraMass); + G4double Mprojectile = projectile->GetDefinition()->GetPDGMass(); + G4double Mprojectile2=sqr(projectile->GetDefinition()->GetPDGMass()); // + minExtraMass); G4LorentzVector Ptarget=target->Get4Momentum(); - G4double Mtarget2=sqr(target->GetDefinition()->GetPDGMass() + minExtraMass); - // G4cout << "E proj, target :" << Pprojectile.e() << ", " << - // Ptarget.e() << G4endl; + G4double Mtarget = target->GetDefinition()->GetPDGMass(); + G4double Mtarget2=sqr(target->GetDefinition()->GetPDGMass()); // + minExtraMass); - G4bool KeepProjectile= G4UniformRand() > 0.5; - - // reset the min.mass of the non diffractive particle to its value, ( minus a bit for rounding...) - if ( KeepProjectile ) - { - // cout << " Projectile fix" << G4endl; - Mprojectile2 = sqr(projectile->GetDefinition()->GetPDGMass() * (1-perCent) ); - } else { - // cout << " Target fix" << G4endl; - Mtarget2=sqr(target->GetDefinition()->GetPDGMass() * (1-perCent) ); - } +//G4cout<<"Pr Tr 4-Mom "<GetDefinition()->GetPDGEncoding()<<" " + <GetDefinition()->GetPDGEncoding()<<" " + < 0.5; + if ( ProjectileDiffraction ) + { // The projectile will fragment, the target will saved. + Mprojectile2=sqr(Mprojectile + 250.*MeV ); + + } else {// The target will fragment, the projectile will saved. + Mtarget2 = sqr(Mtarget + 250.*MeV ); + } + G4int whilecount=0; do { + whilecount++; + + if (whilecount > 1000 ) + { +//G4cout<<"whilecount > 1000 "<= 500 && (whilecount%100)==0) - // G4cout << "G4SingleDiffractiveExcitation::ExciteParticipants possibly looping" - // << ", loop count/ maxPtSquare : " - // << whilecount << " / " << maxPtSquare << G4endl; - if (whilecount > 1000 ) - { - Qmomentum=G4LorentzVector(0.,0.,0.,0.); - // G4cout << "G4SingleDiffractiveExcitation::ExciteParticipants: Aborting loop!" << G4endl; - return false; // Ignore this interaction - } - Qmomentum=G4LorentzVector(GaussianPt(widthOfPtSquare,maxPtSquare),0); + Pt2 = G4ThreeVector( Qmomentum.vect() ).mag2(); + ProjMassT2 = Mprojectile2 + Pt2; + ProjMassT = std::sqrt( ProjMassT2 ); + TargMassT2 = Mtarget2 + Pt2; + TargMassT = std::sqrt( TargMassT2 ); +//G4cout<GetDefinition()->GetPDGMass()) + pt2 ) - / (Pprojectile.plus() + Qplus ) - - Pprojectile.minus(); - } else - { - Qplus = Ptarget.plus() - - (sqr(target->GetDefinition()->GetPDGMass()) + pt2 ) - / (Ptarget.minus() - Qminus ); - } - - Qmomentum.setPz( (Qplus-Qminus)/2 ); - Qmomentum.setE( (Qplus+Qminus)/2 ); - - // G4cout << "Qplus / Qminus " << Qplus << " / " << Qminus<>Uzhi; target->Set4Momentum(Ptarget); projectile->Set4Momentum(Pprojectile); - return true; } @@ -207,9 +234,6 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c G4double G4SingleDiffractiveExcitation::ChooseX(G4double Xmin, G4double Xmax) const { // choose an x between Xmin and Xmax with P(x) ~ 1/x - - // to be improved... - G4double range=Xmax-Xmin; if ( Xmin <= 0. || range <=0. ) @@ -218,12 +242,7 @@ G4double G4SingleDiffractiveExcitation::ChooseX(G4double Xmin, G4double Xmax) co throw G4HadronicException(__FILE__, __LINE__, "G4SingleDiffractiveExcitation::ChooseX : Invalid arguments "); } - G4double x; - do { - x=Xmin + G4UniformRand() * range; - } while ( Xmin/x < G4UniformRand() ); /* Loop checking, 26.10.2015, A.Ribon */ - - // cout << "DiffractiveX "<powA(Xmax/Xmin, G4UniformRand() ); return x; } @@ -233,11 +252,13 @@ G4ThreeVector G4SingleDiffractiveExcitation::GaussianPt(G4double widthSquare, G4 G4double pt2; const G4int maxNumberOfLoops = 1000; - G4int loopCounter = -1; + G4int loopCounter = 0; do { - pt2=widthSquare * G4Log( G4UniformRand() ); - } while ( ( pt2 > maxPtSquare) && ++loopCounter < maxNumberOfLoops ); /* Loop checking, 26.10.2015, A.Ribon */ - if ( loopCounter >= maxNumberOfLoops ) pt2 = 0.0; + pt2=-widthSquare * G4Log( G4UniformRand() ); + } while ( ( pt2 > maxPtSquare) && ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */ + if ( loopCounter >= maxNumberOfLoops ) { + pt2 = 0.99*maxPtSquare; // Just an acceptable value, without any physics consideration. + } pt2=std::sqrt(pt2); diff --git a/source/processes/hadronic/models/pre_equilibrium/History b/source/processes/hadronic/models/pre_equilibrium/History index 4a9bbb958f..29d0c58816 100644 --- a/source/processes/hadronic/models/pre_equilibrium/History +++ b/source/processes/hadronic/models/pre_equilibrium/History @@ -14,6 +14,36 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +23-Apr-2016 V.Ivanchenko hadr-pre-V10-02-06 +- G4PreCompoundFragment - fixed problem of the previous tag + +22-Apr-2016 V.Ivanchenko hadr-pre-V10-02-05 +- G4GNASHTransitions - fixed problem in computation of probability +- G4PreCompoundFragment, G4PreCompoundFragmentVector, + G4PreCompoundIon, G4PreCompoundModel, G4PreCompoundNucleon, + G4PreCompoundTransitions, G4VPreCompoundEmissionFactory, + G4VPreCompoundFragment - use nullptr, all internal cost are static + +19-Apr-2016 V.Ivanchenko hadr-pre-V10-02-04 +19-Apr-2016 V.Ivanchenko hadr-pre-V10-02-02 +------------------------------------------------- +- G4GNASHTransitions, G4PreCompoundModel, G4VPreCompoundFragment, + G4HETCFragment, G4PreCompoundIon, G4HETCChargedFragment, + G4PreCompoundEmission, G4PreCompoundTransitions - migration from + G4PreCompoundParameters to G4DeexPrecoParameters +- G4PreCompoundParameters - removed + +21-Mar-2016 V.Ivanchenko hadr-pre-V10-02-01 +------------------------------------------------- +- Fixed division by zero due to the previous tag + +21-Mar-2016 V.Ivanchenko hadr-pre-V10-02-00 +------------------------------------------------- +- G4PreCompoundModel, G4PreCompoundParameters - changed non-equilibrium + condition to switch to the de-excitation - instead check (Z<9 || A<17) + check A<=5 || excitation<=A*Elimit (default Elimit = 0.1MeV); + This allows to perform pre-equilibrium emission for light nuclei. + 10-Nov-2015 V.Ivanchenko hadr-pre-V10-01-06 ------------------------------------------------- - G4PreCompoundFragment - an attempt to fix icc compillation problem diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4GNASHTransitions.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4GNASHTransitions.hh index 82e2c0682f..f09a120974 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4GNASHTransitions.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4GNASHTransitions.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GNASHTransitions.hh 68028 2013-03-13 13:48:15Z gcosmo $ +// $Id: G4GNASHTransitions.hh 96527 2016-04-20 08:51:00Z gcosmo $ // #ifndef G4GNASHTransitions_hh #define G4GNASHTransitions_hh 1 @@ -31,13 +31,13 @@ #include "G4VPreCompoundTransitions.hh" #include "G4Fragment.hh" -class G4PreCompoundParameters; +class G4DeexPrecoParameters; class G4GNASHTransitions : public G4VPreCompoundTransitions { public: - G4GNASHTransitions(); + explicit G4GNASHTransitions(); virtual ~G4GNASHTransitions(); @@ -47,14 +47,12 @@ public: private: -G4GNASHTransitions(const G4GNASHTransitions &); -const G4GNASHTransitions& operator=(const G4GNASHTransitions &right); + G4GNASHTransitions(const G4GNASHTransitions &) = delete; + const G4GNASHTransitions& operator=(const G4GNASHTransitions &right) = delete; + G4bool operator==(const G4GNASHTransitions &right) const = delete; + G4bool operator!=(const G4GNASHTransitions &right) const = delete; - G4bool operator==(const G4GNASHTransitions &right) const; - - G4bool operator!=(const G4GNASHTransitions &right) const; - - G4PreCompoundParameters* theParameters; + G4DeexPrecoParameters* theParameters; }; diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragment.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragment.hh index aaceb19025..609c88c4fe 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragment.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragment.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundFragment.hh 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4PreCompoundFragment.hh 96603 2016-04-25 13:29:51Z gcosmo $ // // J. M. Quesada (August 2008). // Based on previous work by V. Lara @@ -41,6 +41,8 @@ #include "G4VPreCompoundFragment.hh" +const G4int NPOINTSGL = 10; + class G4PreCompoundFragment : public G4VPreCompoundFragment { public: @@ -80,20 +82,20 @@ private: G4double GetOpt0(G4double ekin) const; - // default constructor - G4PreCompoundFragment(); // operators - G4PreCompoundFragment(const G4PreCompoundFragment &right); + G4PreCompoundFragment(const G4PreCompoundFragment &right) = delete; const G4PreCompoundFragment& - operator= (const G4PreCompoundFragment &right); - G4int operator==(const G4PreCompoundFragment &right) const; - G4int operator!=(const G4PreCompoundFragment &right) const; + operator= (const G4PreCompoundFragment &right) = delete; + G4int operator==(const G4PreCompoundFragment &right) const = delete; + G4int operator!=(const G4PreCompoundFragment &right) const = delete; G4int index; G4double muu; - G4double probability[12]; G4double probmax; + + static const G4double ws[NPOINTSGL]; + static const G4double xs[NPOINTSGL]; }; #endif diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh index 8fec36bfcd..3bb3c9acb5 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundModel.hh 80062 2014-03-31 13:41:30Z gcosmo $ +// $Id: G4PreCompoundModel.hh 96527 2016-04-20 08:51:00Z gcosmo $ // // by V. Lara // @@ -56,7 +56,6 @@ #include "G4ReactionProduct.hh" #include "G4ExcitationHandler.hh" -class G4PreCompoundParameters; class G4PreCompoundEmission; class G4VPreCompoundTransitions; class G4ParticleDefinition; @@ -65,17 +64,23 @@ class G4PreCompoundModel : public G4VPreCompoundModel { public: - G4PreCompoundModel(G4ExcitationHandler* ptr = 0); + explicit G4PreCompoundModel(G4ExcitationHandler* ptr = nullptr); virtual ~G4PreCompoundModel(); virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary, - G4Nucleus & theNucleus); + G4Nucleus & theNucleus) final; - virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment); + virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment) final; + + virtual void BuildPhysicsTable(const G4ParticleDefinition&) final; + + virtual void InitialiseModel() final; - virtual void ModelDescription(std::ostream& outFile) const; - virtual void DeExciteModelDescription(std::ostream& outFile) const; + virtual void ModelDescription(std::ostream& outFile) const final; + virtual void DeExciteModelDescription(std::ostream& outFile) const final; + + //====== obsolete Set methods ======= void UseHETCEmission(); void UseDefaultEmission(); void UseGNASHTransition(); @@ -89,6 +94,7 @@ public: void UseNGB(); void UseSCO(); void UseCEMtr(); + //====================================== private: @@ -96,11 +102,12 @@ private: void PerformEquilibriumEmission(const G4Fragment & aFragment, G4ReactionProductVector * theResult) const; - // G4PreCompoundModel(); - G4PreCompoundModel(const G4PreCompoundModel &); - const G4PreCompoundModel& operator=(const G4PreCompoundModel &right); - G4bool operator==(const G4PreCompoundModel &right) const; - G4bool operator!=(const G4PreCompoundModel &right) const; + void PrintWarning(const G4String& mname); + + G4PreCompoundModel(const G4PreCompoundModel &) = delete; + const G4PreCompoundModel& operator=(const G4PreCompoundModel &right) = delete; + G4bool operator==(const G4PreCompoundModel &right) const = delete; + G4bool operator!=(const G4PreCompoundModel &right) const = delete; //============== // Data Members @@ -113,21 +120,14 @@ private: const G4ParticleDefinition* neutron; G4double fLevelDensity; - - G4bool useHETCEmission; - G4bool useGNASHTransition; - - //for cross section options - G4int OPTxs; + G4double fLimitEnergy; //for the rest of external choices - G4bool useSICB; - G4bool useNGB; G4bool useSCO; - G4bool useCEMtr; + G4bool isInitialised; - G4int maxZ; - G4int maxA; + G4int minZ; + G4int minA; G4HadFinalState theResult; diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh index 87f18fb6cc..d0c64a5fd6 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VPreCompoundFragment.hh 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4VPreCompoundFragment.hh 96527 2016-04-20 08:51:00Z gcosmo $ // // J. M. Quesada (August 2008). // Based on previous work by V. Lara @@ -48,26 +48,18 @@ #include "G4Fragment.hh" #include "G4VCoulombBarrier.hh" #include "G4ReactionProduct.hh" -#include "G4PreCompoundParameters.hh" +#include "G4DeexPrecoParameters.hh" #include "G4Pow.hh" class G4VPreCompoundFragment { public: - // ============================ - // Constructors and destructor - // ============================ - - G4VPreCompoundFragment(const G4ParticleDefinition*, - G4VCoulombBarrier * aCoulombBarrier); + explicit G4VPreCompoundFragment(const G4ParticleDefinition*, + G4VCoulombBarrier * aCoulombBarrier); virtual ~G4VPreCompoundFragment(); - // ========== - // operators - // ========== - friend std::ostream& operator<<(std::ostream&, const G4VPreCompoundFragment*); friend std::ostream& @@ -129,12 +121,11 @@ protected: private: - G4VPreCompoundFragment(); - G4VPreCompoundFragment(const G4VPreCompoundFragment &right); + G4VPreCompoundFragment(const G4VPreCompoundFragment &right) = delete; const G4VPreCompoundFragment& - operator= (const G4VPreCompoundFragment &right); - G4int operator==(const G4VPreCompoundFragment &right) const; - G4int operator!=(const G4VPreCompoundFragment &right) const; + operator= (const G4VPreCompoundFragment &right) = delete; + G4int operator==(const G4VPreCompoundFragment &right) const = delete; + G4int operator!=(const G4VPreCompoundFragment &right) const = delete; // ============= // Data members @@ -147,7 +138,7 @@ private: protected: - G4PreCompoundParameters* theParameters; + G4DeexPrecoParameters* theParameters; G4Pow* g4pow; G4int theA; diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc index 853c9af454..0364aa5075 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundFragment.icc 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4VPreCompoundFragment.icc 96527 2016-04-20 08:51:00Z gcosmo $ // // by V. Lara // @@ -110,13 +110,11 @@ void G4VPreCompoundFragment::SetMomentum(const G4LorentzVector & value) theMomentum = value; } -//for inverse cross section choice inline void G4VPreCompoundFragment::SetOPTxs(G4int opt) { OPTxs=opt; } -//for superimposed Coulomb Barrier for inverse cross sections inline void G4VPreCompoundFragment::UseSICB(G4bool use) { useSICB=use; diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/sources.cmake b/source/processes/hadronic/models/pre_equilibrium/exciton_model/sources.cmake index bd2b460b66..d59ff6de80 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/sources.cmake +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 66892 2013-01-17 10:57:59Z gunter $ +# $Id: sources.cmake 96527 2016-04-20 08:51:00Z gcosmo $ # #------------------------------------------------------------------------------ @@ -79,7 +79,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_preequ_exciton G4PreCompoundModel.hh G4PreCompoundNeutron.hh G4PreCompoundNucleon.hh - G4PreCompoundParameters.hh G4PreCompoundProton.hh G4PreCompoundTransitions.hh G4PreCompoundTriton.hh @@ -110,7 +109,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_preequ_exciton G4PreCompoundModel.cc G4PreCompoundNeutron.cc G4PreCompoundNucleon.cc - G4PreCompoundParameters.cc G4PreCompoundProton.cc G4PreCompoundTransitions.cc G4PreCompoundTriton.cc diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4GNASHTransitions.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4GNASHTransitions.cc index 376eabcd35..7e8cba333d 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4GNASHTransitions.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4GNASHTransitions.cc @@ -23,31 +23,30 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4GNASHTransitions.cc 92145 2015-08-19 14:26:07Z gcosmo $ +// $Id: G4GNASHTransitions.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // 20.08.2010 V.Ivanchenko move constructor and destructor to the source #include "G4GNASHTransitions.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" -#include "G4PreCompoundParameters.hh" +#include "G4NuclearLevelData.hh" +#include "G4DeexPrecoParameters.hh" #include "G4HadronicException.hh" #include "Randomize.hh" G4GNASHTransitions::G4GNASHTransitions() { - theParameters = new G4PreCompoundParameters(); + theParameters = G4NuclearLevelData::GetInstance()->GetParameters(); } G4GNASHTransitions::~G4GNASHTransitions() -{ - delete theParameters; -} +{} G4double G4GNASHTransitions:: CalculateProbability(const G4Fragment & aFragment) { - static const G4double k = 135.0 * MeV*MeV*MeV; + static const G4double k = 135.0 *CLHEP::MeV*CLHEP::MeV*CLHEP::MeV; G4double E = aFragment.GetExcitationEnergy(); G4double P = aFragment.GetNumberOfParticles(); G4double H = aFragment.GetNumberOfHoles(); @@ -55,20 +54,19 @@ CalculateProbability(const G4Fragment & aFragment) G4double A = aFragment.GetA_asInt(); G4double theMatrixElement(k*N/(A*A*A*E)); - G4double x = E/N; - if ( x < 2.0*MeV ) theMatrixElement *= x/std::sqrt(14.0*MeV*MeV); - else if ( x < 7.0*MeV ) x *= std::sqrt(x/7.0*MeV); - else if ( x < 15.0*MeV ) ; - else x *= std::sqrt(15.0*MeV/x); + G4double x = E/(N*CLHEP::MeV); + static const G4double xf = std::sqrt(2.0/7.0); + if ( x < 2.0) { x *= xf; } + else if ( x < 7.0) { x *= std::sqrt(x/7.0); } + else if ( x > 15.0){ x *= std::sqrt(15.0/x); } + theMatrixElement *= x; - // gg = (6.0/pi2)*a*A G4double gg = (6.0/pi2)*theParameters->GetLevelDensity()*A; - G4double Epauli = ((P+1.0)*(P+1.0) + (H+1.0)*(H+1.0) + (P+1.0) - 3.0*(H-1.0))/4.0; + G4double Epauli = ((P+1.0)*(P+1.0) + (H+1.0)*(H+1.0) + (P+1.0) - 3.0*(H-1.0))*0.25; G4double Probability = gg*gg*gg *(E-Epauli)*(E-Epauli); - Probability /= 2.0*(N+1.0)*h_Planck; - Probability *= theMatrixElement; + Probability *= theMatrixElement/(2.0*(N+1.0)*CLHEP::h_Planck); return Probability; } diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCChargedFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCChargedFragment.cc index 2eb1b79e70..452660c73e 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCChargedFragment.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCChargedFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HETCChargedFragment.cc 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4HETCChargedFragment.cc 96527 2016-04-20 08:51:00Z gcosmo $ // // by V. Lara // @@ -35,7 +35,6 @@ #include "G4HETCChargedFragment.hh" #include "G4PhysicalConstants.hh" #include "G4VCoulombBarrier.hh" -#include "G4PreCompoundParameters.hh" G4HETCChargedFragment::G4HETCChargedFragment( const G4ParticleDefinition* pd, G4VCoulombBarrier * aCoulombBarrier) diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCFragment.cc index 3c0c6591f7..0d5b56d8dd 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCFragment.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4HETCFragment.cc 91837 2015-08-07 07:27:08Z gcosmo $ +// $Id: G4HETCFragment.cc 96527 2016-04-20 08:51:00Z gcosmo $ // // by V. Lara // @@ -33,14 +33,13 @@ #include "G4HETCFragment.hh" #include "G4PhysicalConstants.hh" -#include "G4PreCompoundParameters.hh" G4HETCFragment:: G4HETCFragment(const G4ParticleDefinition* part, G4VCoulombBarrier* aCoulombBarrier) : G4VPreCompoundFragment(part, aCoulombBarrier) { - G4double r0 = theParameters->Getr0(); + G4double r0 = theParameters->GetR0(); r2norm = r0*r0/(CLHEP::pi*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc); } diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc index 0de0f3cc4b..98f0171e68 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundEmission.cc 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4PreCompoundEmission.cc 96527 2016-04-20 08:51:00Z gcosmo $ // // ------------------------------------------------------------------- // @@ -49,10 +49,11 @@ #include "G4Exp.hh" #include "G4Log.hh" #include "Randomize.hh" -#include "G4PreCompoundParameters.hh" #include "G4PreCompoundEmissionFactory.hh" #include "G4HETCEmissionFactory.hh" #include "G4HadronicException.hh" +#include "G4NuclearLevelData.hh" +#include "G4DeexPrecoParameters.hh" G4PreCompoundEmission::G4PreCompoundEmission() { @@ -60,9 +61,10 @@ G4PreCompoundEmission::G4PreCompoundEmission() theFragmentsVector = new G4PreCompoundFragmentVector(theFragmentsFactory->GetFragmentVector()); g4pow = G4Pow::GetInstance(); - G4PreCompoundParameters param; - fLevelDensity = param.GetLevelDensity(); - fFermiEnergy = param.GetFermiEnergy(); + G4DeexPrecoParameters* param = + G4NuclearLevelData::GetInstance()->GetParameters() ; + fLevelDensity = param->GetLevelDensity(); + fFermiEnergy = param->GetFermiEnergy(); } G4PreCompoundEmission::~G4PreCompoundEmission() diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc index 9be2cdc9cd..dfdaec0013 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundFragment.cc 94281 2015-11-10 15:00:15Z gcosmo $ +// $Id: G4PreCompoundFragment.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // J. M. Quesada (August 2008). // Based on previous work by V. Lara @@ -39,9 +39,8 @@ #include "G4ChatterjeeCrossSection.hh" #include "Randomize.hh" -const G4int NPOINTSGL = 10; // 10-Points Gauss-Legendre abcisas and weights -const G4double w[NPOINTSGL] = { +const G4double G4PreCompoundFragment::ws[] = { 0.0666713443086881, 0.149451349150581, 0.219086362515982, @@ -53,7 +52,7 @@ const G4double w[NPOINTSGL] = { 0.149451349150581, 0.0666713443086881 }; -const G4double x[NPOINTSGL] = { +const G4double G4PreCompoundFragment::xs[] = { -0.973906528517172, -0.865063366688985, -0.679409568299024, @@ -66,16 +65,14 @@ const G4double x[NPOINTSGL] = { 0.973906528517172 }; -G4PreCompoundFragment:: -G4PreCompoundFragment(const G4ParticleDefinition* part, - G4VCoulombBarrier* aCoulombBarrier) - : G4VPreCompoundFragment(part,aCoulombBarrier) +G4PreCompoundFragment::G4PreCompoundFragment(const G4ParticleDefinition* p, + G4VCoulombBarrier* aCoulBarrier) + : G4VPreCompoundFragment(p, aCoulBarrier) { muu = probmax = 0.0; index = 0; if(1 == theZ) { index = theA; } else { index = theA + 1; } - for(G4int i=0; i<12; ++i) { probability[i] = 0.0; } } G4PreCompoundFragment::~G4PreCompoundFragment() @@ -88,8 +85,7 @@ CalcEmissionProbability(const G4Fragment & aFragment) // If theCoulombBarrier effect is included in the emission probabilities // Coulomb barrier is the lower limit of integration over kinetic energy - G4double LowerLimit = 0.0; - if(OPTxs==0 || useSICB) { LowerLimit = theCoulombBarrier; } + G4double LowerLimit = theCoulombBarrier; if (theMaxKinEnergy <= LowerLimit) { @@ -130,11 +126,10 @@ IntegrateEmissionProbability(G4double low, G4double up, probmax = 0.0; for (G4int i=0; iGetr0()*theResA13; + G4double r0 = theParameters->GetR0()*theResA13; // cross section is now given in mb (r0 is in mm) for the sake of consistency //with the rest of the options return 1.e+25*CLHEP::pi*r0*r0*theResA13*GetAlpha()*(1.+GetBeta()/ekin); @@ -168,8 +163,7 @@ G4double G4PreCompoundFragment::GetOpt0(G4double ekin) const G4double G4PreCompoundFragment::SampleKineticEnergy(const G4Fragment& fragment) { //let's keep this way for consistency with CalcEmissionProbability method - G4double limit = 0.0; - if(useSICB) { limit = theCoulombBarrier; } + G4double limit = theCoulombBarrier; if(theMaxKinEnergy <= limit) { return 0.0; } 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 d0655076cf..cbc97788d6 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 @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundFragmentVector.cc 68028 2013-03-13 13:48:15Z gcosmo $ +// $Id: G4PreCompoundFragmentVector.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara @@ -36,7 +36,7 @@ #include "G4PreCompoundFragmentVector.hh" G4PreCompoundFragmentVector::G4PreCompoundFragmentVector(pcfvector * avector) - : theChannels(0), nChannels(0) + : theChannels(nullptr), nChannels(0) { SetVector(avector); } diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc index a42e1275b8..c018cc51a4 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundIon.cc 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4PreCompoundIon.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // ------------------------------------------------------------------- // @@ -43,14 +43,12 @@ #include "G4PreCompoundIon.hh" #include "G4PhysicalConstants.hh" -const G4double sixoverpi2 = 6.0/CLHEP::pi2; - G4PreCompoundIon:: G4PreCompoundIon(const G4ParticleDefinition* part, G4VCoulombBarrier* aCoulombBarrier) : G4PreCompoundFragment(part,aCoulombBarrier) { - G4double r0 = theParameters->Getr0(); + G4double r0 = theParameters->GetR0(); fact = 0.75*CLHEP::millibarn/(CLHEP::pi*r0*r0*r0); } @@ -70,6 +68,7 @@ ProbabilityDistributionFunction(G4double eKin, G4int A = GetA(); G4int N = P + H; + static const G4double sixoverpi2 = 6.0/CLHEP::pi2; G4double g0 = sixoverpi2*theFragA*theParameters->GetLevelDensity(); G4double g1 = sixoverpi2*theResA*theParameters->GetLevelDensity(); 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 df9be31a03..56cabe3a14 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 @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundModel.cc 91837 2015-08-07 07:27:08Z gcosmo $ +// $Id: G4PreCompoundModel.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // by V. Lara // @@ -57,7 +57,8 @@ #include "G4Neutron.hh" #include "G4NucleiProperties.hh" -#include "G4PreCompoundParameters.hh" +#include "G4NuclearLevelData.hh" +#include "G4DeexPrecoParameters.hh" #include "Randomize.hh" #include "G4DynamicParticle.hh" #include "G4ParticleTypes.hh" @@ -68,29 +69,15 @@ //////////////////////////////////////////////////////////////////////////////// G4PreCompoundModel::G4PreCompoundModel(G4ExcitationHandler* ptr) - : G4VPreCompoundModel(ptr,"PRECO"), useHETCEmission(false), - useGNASHTransition(false), OPTxs(3), useSICB(false), - useNGB(false), useSCO(false), useCEMtr(true), maxZ(3), maxA(5) + : G4VPreCompoundModel(ptr,"PRECO"),theEmission(nullptr),theTransition(nullptr), + useSCO(false),isInitialised(false),minZ(3),minA(5) { + //G4cout << "### NEW PrecompoundModel " << this << G4endl; if(!ptr) { SetExcitationHandler(new G4ExcitationHandler()); } - G4PreCompoundParameters param; - - // 12/pi2 factor is used in real computation - fLevelDensity = param.GetLevelDensity()*12.0/CLHEP::pi2; - - theEmission = new G4PreCompoundEmission(); - if(useHETCEmission) { theEmission->SetHETCModel(); } - else { theEmission->SetDefaultModel(); } - theEmission->SetOPTxs(OPTxs); - theEmission->UseSICB(useSICB); - - if(useGNASHTransition) { theTransition = new G4GNASHTransitions; } - else { theTransition = new G4PreCompoundTransitions(); } - theTransition->UseNGB(useNGB); - theTransition->UseCEMtr(useCEMtr); proton = G4Proton::Proton(); neutron = G4Neutron::Neutron(); + fLevelDensity = fLimitEnergy = 0.0; } //////////////////////////////////////////////////////////////////////////////// @@ -104,6 +91,47 @@ G4PreCompoundModel::~G4PreCompoundModel() //////////////////////////////////////////////////////////////////////////////// +void G4PreCompoundModel::BuildPhysicsTable(const G4ParticleDefinition&) +{ + InitialiseModel(); +} + +//////////////////////////////////////////////////////////////////////////////// + +void G4PreCompoundModel::InitialiseModel() +{ + if(isInitialised) { return; } + isInitialised = true; + + //G4cout << "G4PreCompoundModel::InitialiseModel() started" << G4endl; + + G4DeexPrecoParameters* param = + G4NuclearLevelData::GetInstance()->GetParameters(); + + // 12/pi2 factor is used in real computation + fLevelDensity = param->GetLevelDensity()*12.0/CLHEP::pi2; + fLimitEnergy = param->GetPrecoLowEnergy(); + + useSCO = param->UseSoftCutoff(); + + minZ = param->GetMinZForPreco(); + minA = param->GetMinAForPreco(); + + theEmission = new G4PreCompoundEmission(); + if(param->UseHETC()) { theEmission->SetHETCModel(); } + else { theEmission->SetDefaultModel(); } + theEmission->SetOPTxs(param->GetPrecoModelType()); + + if(param->UseGNASH()) { theTransition = new G4GNASHTransitions; } + else { theTransition = new G4PreCompoundTransitions(); } + theTransition->UseNGB(param->NeverGoBack()); + theTransition->UseCEMtr(param->UseCEM()); + + GetExcitationHandler()->Initialise(); +} + +//////////////////////////////////////////////////////////////////////////////// + G4HadFinalState* G4PreCompoundModel::ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus) @@ -165,6 +193,8 @@ G4PreCompoundModel::ApplyYourself(const G4HadProjectile & thePrimary, G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment) { + if(!isInitialised) { InitialiseModel(); } + G4ReactionProductVector * Result = new G4ReactionProductVector; G4double Eex = aFragment.GetExcitationEnergy(); G4int Z = aFragment.GetZ_asInt(); @@ -174,14 +204,14 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment) //G4cout << aFragment << G4endl; // Perform Equilibrium Emission - if ((Z < maxZ && A < maxA) || Eex < MeV /*|| Eex > 3.*MeV*A*/) { + if ((Z < minZ && A < minA) || Eex < fLimitEnergy*A) { PerformEquilibriumEmission(aFragment, Result); return Result; } // main loop G4int count = 0; - const G4int countmax = 1000; + static const G4int countmax = 1000; for (;;) { //G4cout << "### PreCompound loop over fragment" << G4endl; //G4cout << aFragment << G4endl; @@ -235,7 +265,8 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment) //V.Ivanchenko (May 2011) added check on number of nucleons // to send a fragment to FermiBreakUp if(!go_ahead || P1 <= P2+P3 || - (aFragment.GetZ_asInt() < maxZ && aFragment.GetA_asInt() < maxA) ) + aFragment.GetZ_asInt() < minZ || aFragment.GetA_asInt() < minA || + (aFragment.GetExcitationEnergy() <= fLimitEnergy*aFragment.GetA_asInt())) { //G4cout<<"#4 EquilibriumEmission"<SetHETCModel(); +{ + PrintWarning("UseHETCEmission"); } void G4PreCompoundModel::UseDefaultEmission() { - useHETCEmission = false; - theEmission->SetDefaultModel(); + PrintWarning("UseDefaultEmission"); } -void G4PreCompoundModel::UseGNASHTransition() { - useGNASHTransition = true; - delete theTransition; - theTransition = new G4GNASHTransitions; - theTransition->UseNGB(useNGB); - theTransition->UseCEMtr(useCEMtr); -} - -void G4PreCompoundModel::UseDefaultTransition() { - useGNASHTransition = false; - delete theTransition; - theTransition = new G4PreCompoundTransitions(); - theTransition->UseNGB(useNGB); - theTransition->UseCEMtr(useCEMtr); -} - -void G4PreCompoundModel::SetOPTxs(G4int opt) +void G4PreCompoundModel::UseGNASHTransition() { - OPTxs = opt; - theEmission->SetOPTxs(OPTxs); + PrintWarning("UseGNASHTransition"); +} + +void G4PreCompoundModel::UseDefaultTransition() +{ + PrintWarning("UseDefaultTransition"); +} + +void G4PreCompoundModel::SetOPTxs(G4int) +{ + PrintWarning("UseOPTxs"); } void G4PreCompoundModel::UseSICB() { - useSICB = true; - theEmission->UseSICB(useSICB); + PrintWarning("UseSICB"); } void G4PreCompoundModel::UseNGB() { - useNGB = true; + PrintWarning("UseNGB"); } void G4PreCompoundModel::UseSCO() { - useSCO = true; + PrintWarning("UseSCO"); } void G4PreCompoundModel::UseCEMtr() { - useCEMtr = true; + PrintWarning("UseCEMtr"); +} + +void G4PreCompoundModel::PrintWarning(const G4String& mname) +{ + G4ExceptionDescription ed; + ed << "Obsolete method of the preCompound model is called: " + << mname << "() \n Instead a corresponding method of " + << "G4DeexPrecoParameters class should be used"; + + G4Exception("G4PreCompoundModel::ReadData()","had0803",JustWarning,ed); } //////////////////////////////////////////////////////////////////////////////// @@ -362,31 +393,31 @@ void G4PreCompoundModel::UseCEMtr() void G4PreCompoundModel::ModelDescription(std::ostream& outFile) const { - outFile << "The GEANT4 precompound model is considered as an extension of the\n" - << "hadron kinetic model. It gives a possibility to extend the low energy range\n" - << "of the hadron kinetic model for nucleon-nucleus inelastic collision and it \n" - << "provides a â€smooth†transition from kinetic stage of reaction described by the\n" - << "hadron kinetic model to the equilibrium stage of reaction described by the\n" - << "equilibrium deexcitation models.\n" - << "The initial information for calculation of pre-compound nuclear stage\n" - << "consists of the atomic mass number A, charge Z of residual nucleus, its\n" - << "four momentum P0 , excitation energy U and number of excitons n, which equals\n" - << "the sum of the number of particles p (from them p_Z are charged) and the number of\n" - << "holes h.\n" - << "At the preequilibrium stage of reaction, we follow the exciton model approach in ref. [1],\n" - << "taking into account the competition among all possible nuclear transitions\n" - << "with ∆n = +2, −2, 0 (which are deï¬ned by their associated transition probabilities) and\n" - << "the emission of neutrons, protons, deutrons, thritium and helium nuclei (also defined by\n" - << "their associated emission probabilities according to exciton model)\n" - << "\n" - << "[1] K.K. Gudima, S.G. Mashnik, V.D. Toneev, Nucl. Phys. A401 329 (1983)\n" - << "\n"; + outFile + << "The GEANT4 precompound model is considered as an extension of the\n" + << "hadron kinetic model. It gives a possibility to extend the low energy range\n" + << "of the hadron kinetic model for nucleon-nucleus inelastic collision and it \n" + << "provides a â€smooth†transition from kinetic stage of reaction described by the\n" + << "hadron kinetic model to the equilibrium stage of reaction described by the\n" + << "equilibrium deexcitation models.\n" + << "The initial information for calculation of pre-compound nuclear stage\n" + << "consists of the atomic mass number A, charge Z of residual nucleus, its\n" + << "four momentum P0 , excitation energy U and number of excitons n, which equals\n" + << "the sum of the number of particles p (from them p_Z are charged) and the number of\n" + << "holes h.\n" + << "At the preequilibrium stage of reaction, we follow the exciton model approach in ref. [1],\n" + << "taking into account the competition among all possible nuclear transitions\n" + << "with ∆n = +2, −2, 0 (which are deï¬ned by their associated transition probabilities) and\n" + << "the emission of neutrons, protons, deutrons, thritium and helium nuclei (also defined by\n" + << "their associated emission probabilities according to exciton model)\n" + << "\n" + << "[1] K.K. Gudima, S.G. Mashnik, V.D. Toneev, Nucl. Phys. A401 329 (1983)\n" + << "\n"; } void G4PreCompoundModel::DeExciteModelDescription(std::ostream& outFile) const { - outFile << "description of precompound model as used with DeExcite()" - << "\n"; + outFile << "description of precompound model as used with DeExcite()" << "\n"; } ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc index 00f122665b..ee96ad38bc 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundNucleon.cc 91837 2015-08-07 07:27:08Z gcosmo $ +// $Id: G4PreCompoundNucleon.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // ------------------------------------------------------------------- // @@ -44,12 +44,8 @@ #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" -const G4double sixoverpi2 = 6.0/CLHEP::pi2; -const G4double fact = 2*CLHEP::millibarn/(CLHEP::pi2*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc); - -G4PreCompoundNucleon:: -G4PreCompoundNucleon(const G4ParticleDefinition* part, - G4VCoulombBarrier* aCoulombBarrier) +G4PreCompoundNucleon::G4PreCompoundNucleon( + const G4ParticleDefinition* part, G4VCoulombBarrier* aCoulombBarrier) : G4PreCompoundFragment(part,aCoulombBarrier) {} @@ -65,6 +61,7 @@ ProbabilityDistributionFunction(G4double eKin, G4int H = aFragment.GetNumberOfHoles(); G4int N = P + H; + static const G4double sixoverpi2 = 6.0/CLHEP::pi2; G4double g0 = sixoverpi2*theFragA*theParameters->GetLevelDensity(); G4double g1 = sixoverpi2*theResA*theParameters->GetLevelDensity(); @@ -88,6 +85,8 @@ ProbabilityDistributionFunction(G4double eKin, throw G4HadronicException(__FILE__, __LINE__, errOs.str()); } + static const G4double fact = 2*CLHEP::millibarn + /(CLHEP::pi2*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc); G4double Probability = fact * theReducedMass * rj * xs * eKin * P * (N-1) * g4pow->powN(g1*E1/(g0*E0),N-2) * g1 / (E0*g0*g0); diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc deleted file mode 100644 index 43e54168e8..0000000000 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc +++ /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. * -// ******************************************************************** -// -// $Id: G4PreCompoundParameters.cc 68028 2013-03-13 13:48:15Z gcosmo $ -// -// by V. Lara -// -// 18.08.2010 V.Ivanchenko make this class as a standard singleton -// - -#include "G4PreCompoundParameters.hh" -#include "G4SystemOfUnits.hh" - -G4PreCompoundParameters::G4PreCompoundParameters() -{ - fLevelDensity = 0.10/MeV; - fR0 = 1.5*fermi; - fTransitions_r0 = 0.6*fermi; - fFermiEnergy = 35.0*MeV; -} - -G4PreCompoundParameters::~G4PreCompoundParameters() -{} - - diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc index 0c71f948f0..2a1c1487e6 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundTransitions.cc 89523 2015-04-16 09:56:35Z gcosmo $ +// $Id: G4PreCompoundTransitions.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // ------------------------------------------------------------------- // @@ -49,21 +49,21 @@ #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" #include "Randomize.hh" -#include "G4PreCompoundParameters.hh" +#include "G4NuclearLevelData.hh" +#include "G4DeexPrecoParameters.hh" #include "G4Fragment.hh" #include "G4Proton.hh" #include "G4Exp.hh" #include "G4Log.hh" -static const G4double sixdpi2 = 6.0/CLHEP::pi2; - G4PreCompoundTransitions::G4PreCompoundTransitions() { proton = G4Proton::Proton(); - G4PreCompoundParameters param; - FermiEnergy = param.GetFermiEnergy(); - r0 = param.GetTransitionsr0(); - aLDP = param.GetLevelDensity(); + G4DeexPrecoParameters* param = + G4NuclearLevelData::GetInstance()->GetParameters() ; + FermiEnergy = param->GetFermiEnergy(); + r0 = param->GetTransitionsR0(); + aLDP = param->GetLevelDensity(); } G4PreCompoundTransitions::~G4PreCompoundTransitions() @@ -86,9 +86,11 @@ CalculateProbability(const G4Fragment & aFragment) G4double U = aFragment.GetExcitationEnergy(); TransitionProb2 = 0.0; TransitionProb3 = 0.0; - - //G4cout << aFragment << G4endl; - + /* + G4cout << "G4PreCompoundTransitions::CalculateProbability H/P/N/Z/A= " + << H << " " << P << " " << N << " " << Z << " " << A <begin(), fragvector->end(), DeleteFragment()); delete fragvector; diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc index 2f86dc8b0b..2cb8a825f1 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VPreCompoundFragment.cc 90337 2015-05-26 08:34:27Z gcosmo $ +// $Id: G4VPreCompoundFragment.cc 96603 2016-04-25 13:29:51Z gcosmo $ // // J. M. Quesada (August 2008). Based on previous work by V. Lara // @@ -33,7 +33,8 @@ #include "G4VPreCompoundFragment.hh" #include "G4SystemOfUnits.hh" -#include "G4PreCompoundParameters.hh" +#include "G4NuclearLevelData.hh" +#include "G4DeexPrecoParameters.hh" #include "G4NucleiProperties.hh" G4VPreCompoundFragment::G4VPreCompoundFragment( @@ -46,18 +47,16 @@ G4VPreCompoundFragment::G4VPreCompoundFragment( theMaxKinEnergy(0.0),theResMass(0.0), theReducedMass(0.0), theEmissionProbability(0.0),theCoulombBarrier(0.0), - OPTxs(3),useSICB(false) + OPTxs(3),useSICB(true) { theMass = particle->GetPDGMass(); - theParameters = new G4PreCompoundParameters(); + theParameters = G4NuclearLevelData::GetInstance()->GetParameters(); g4pow = G4Pow::GetInstance(); - theResA13 = 0; + theResA13 = 0.0; } G4VPreCompoundFragment::~G4VPreCompoundFragment() -{ - delete theParameters; -} +{} std::ostream& operator << (std::ostream &out, const G4VPreCompoundFragment &theFragment) diff --git a/source/processes/hadronic/models/qmd/History b/source/processes/hadronic/models/qmd/History index 9ea50071b0..43db10f482 100644 --- a/source/processes/hadronic/models/qmd/History +++ b/source/processes/hadronic/models/qmd/History @@ -13,6 +13,10 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +10 February 2016 Tatsumi Koi (hadr-qmd-V10-02-00) +- Fix bug in handling forgiven decay + src/G4QMDCollision.cc + 3 November 2015 Tatsumi Koi (hadr-qmd-V10-01-09) - Loop checking diff --git a/source/processes/hadronic/models/qmd/src/G4QMDCollision.cc b/source/processes/hadronic/models/qmd/src/G4QMDCollision.cc index 1de58f0497..2e60abf58e 100644 --- a/source/processes/hadronic/models/qmd/src/G4QMDCollision.cc +++ b/source/processes/hadronic/models/qmd/src/G4QMDCollision.cc @@ -231,8 +231,9 @@ void G4QMDCollision::CalKinematicsOfBinaryCollisions( G4double dt ) theSystem->GetParticipant( i )->SetPosition( r0 ); theSystem->GetParticipant( i )->SetMomentum( p0 ); - for ( G4int i0i = 0 ; i0i < id-1 ; i0i++ ) - { + //for ( G4int i0i = 0 ; i0i < id-1 ; i0i++ ) + //160210 deletion must be done in descending order + for ( G4int i0i = id-2 ; 0 <= i0i ; i0i-- ) { //081118 //std::cout << "Decay Energitically Blocked deleteing " << i0i+n0 << std::endl; theSystem->DeleteParticipant( i0i+n0 ); @@ -296,6 +297,7 @@ void G4QMDCollision::CalKinematicsOfBinaryCollisions( G4double dt ) { //081118 //std::cout << "Decay Blocked deleteing " << i0i+n0 << std::endl; + //160210 adding commnet: deletion must be done in descending order theSystem->DeleteParticipant( i0+n0-i0i-1 ); } //081103 diff --git a/source/processes/hadronic/models/quasi_elastic/History b/source/processes/hadronic/models/quasi_elastic/History index a8995f7d8c..8a244d2c29 100644 --- a/source/processes/hadronic/models/quasi_elastic/History +++ b/source/processes/hadronic/models/quasi_elastic/History @@ -14,8 +14,11 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- -01-Nov-2015, W. Pokorski hadr-qelastic-V10-01-03 -- moving to G4Log, G4Exp and G4Pow +20-Apr-2016, G.Cosmo hadr-qelastic-V10-02-00 +- Fixed shadowing compilation warnings in G4QuasiElRatios for 'ps'. + +01-Nov-2015, W.Pokorski hadr-qelastic-V10-01-03 +- Moving to G4Log, G4Exp and G4Pow 15-July-2015, A.Dotti hadr-qelastic-V10-01-02 - Fix for double delete diff --git a/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc b/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc index 0713c015c5..370894e8c4 100644 --- a/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc +++ b/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4QuasiElRatios.cc 93888 2015-11-03 08:30:20Z gcosmo $ +// $Id: G4QuasiElRatios.cc 96538 2016-04-20 12:39:18Z gcosmo $ // // // G4 Physics class: G4QuasiElRatios for N+A elastic cross sections @@ -1085,14 +1085,14 @@ G4bool G4QuasiElRatios::RelDecayIn2(G4LorentzVector& theMomentum, G4LorentzVecto ct = minCost+dcost*G4UniformRand(); } G4double phi= twopi*G4UniformRand(); // @@ Change 360.*deg to M_TWOPI (?) - G4double ps=0.; - if(std::fabs(ct)<1.) ps = p * std::sqrt(1.-ct*ct); + G4double pss=0.; + if(std::fabs(ct)<1.) pss = p * std::sqrt(1.-ct*ct); else { if(ct>1.) ct=1.; if(ct<-1.) ct=-1.; } - G4ThreeVector pVect=(ps*std::sin(phi))*vz+(ps*std::cos(phi))*vy+p*ct*vx; + G4ThreeVector pVect=(pss*std::sin(phi))*vz+(pss*std::cos(phi))*vy+p*ct*vx; f4Mom.setVect(pVect); f4Mom.setE(std::sqrt(fM2+p2)); diff --git a/source/processes/hadronic/models/radioactive_decay/History b/source/processes/hadronic/models/radioactive_decay/History index 043c196857..a0d67d0ed6 100644 --- a/source/processes/hadronic/models/radioactive_decay/History +++ b/source/processes/hadronic/models/radioactive_decay/History @@ -12,7 +12,58 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * - --------------------------------------------------------- + ---------------------------------------------------------- + +16 June 2016 Vladimir Ivanchenko radioactive_decay-V10-02-07 +-------------------------------------------------------- +- G4RadioactiveDecay::BuildPhysicsTable: remove initialization of atomic + deexcitation and leave only G4Exception. Initialisation should be done + in Physics List + +15 June 2016 Dennis Wright radioactive_decay-V10-02-06 +-------------------------------------------------------- +- G4RadioactiveDecay::BuildPhysicsTable: remove initialization of atomic + deexcitation to avoid overwriting its initialization in EM. Throw + fatal exception if initialization not done somewhere. + +4 April 2016 Dennis Wright radioactive_decay-V10-02-05 +-------------------------------------------------------- +- remove obsolete class G4RIsotopeTable + +29 March 2016 Laurent Desorgher radioactive_decay-V10-02-04 +------------------------------------------------------------- +- Add production of gamma and electron spectra from deexcitation of excited levels + in the biased mode. New method G4RadioactiveDecay::AddDeexcitationSpectrumForBiasMode + +29 February 2016 Andrea Dotti radioactive_decay-V10-02-03 +----------------------------------------------------------- +- New API for G4VDecayChannel class (avoid MT data-race) + requires partciles-V10-02-08 + +16 February 2016 Dennis Wright radioactive_decay-V10-02-02 +----------------------------------------------------------- +- G4RadioactiveDecay::DoDecay: add protection for zero ptr in case of missing + decay channel + +16 December 2015 Dennis Wright radioactive_decay-V10-02-01 +----------------------------------------------------------- +- G4RadioactiveDecay: rename several methods and variables to more closely + represent their meaning: + GetTaoTime() -> ConvolveSourceTimeProfile() + taotime -> convolvedTime + theDecayTable -> summedDecayTable + rates -> Acoeff + +- added class G4BatemanParameters to eventually replace G4RadioactiveDecayRate + + 3 December 2015 Dennis Wright radioactive_decay-V10-02-00 +----------------------------------------------------------- +- retag radioactive_decay-V10-01-24 + + 2 December 2015 Dennis Wright radioactive_decay-V10-01-24 +----------------------------------------------------------- +- G4BetaMinusDecay.cc, G4RadioactiveDecay.cc: add protection for case + when endpoint energy is 0 in beta- decay. This fixes bug #1766. 18 November 2015 Dennis Wright radioactive_decay-V10-01-23 ----------------------------------------------------------- diff --git a/source/processes/hadronic/models/radioactive_decay/include/G4BatemanParameters.hh b/source/processes/hadronic/models/radioactive_decay/include/G4BatemanParameters.hh new file mode 100644 index 0000000000..34b32ad1e2 --- /dev/null +++ b/source/processes/hadronic/models/radioactive_decay/include/G4BatemanParameters.hh @@ -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. * +// ******************************************************************** +// +#ifndef G4BatemanParameters_h +#define G4BatemanParameters_h 1 + +//////////////////////////////////////////////////////////////////////////////// +// // +// File: G4BatemanParameters.hh // +// Author: D.H. Wright (SLAC) // +// Date: 15 December 2015 // +// Description: renamed and streamlined version of F. Lei and P. Truscott's // +// class G4RadioactiveDecayRate. This class contains the decay // +// times and coefficients of the extended Bateman equations for // +// the progeny of a given nuclide (Z, A, E). // +// // +//////////////////////////////////////////////////////////////////////////////// + +#include "G4ios.hh" +#include "globals.hh" +#include + +class G4BatemanParameters +{ + +public: + G4BatemanParameters(); + + virtual ~G4BatemanParameters(); + + // copy constructor and assignment operator + G4BatemanParameters(const G4BatemanParameters &); + G4BatemanParameters& operator=(const G4BatemanParameters&); + + // equality operators + G4int operator==(const G4BatemanParameters& right) const + {return (this == &right);}; + G4int operator!=(const G4BatemanParameters& right) const + {return (this != &right);}; + + void DumpInfo(); + + inline G4int GetZ() const {return Z;} + inline G4int GetA() const {return A;} + inline G4double GetE() const {return E;} + inline G4int GetGeneration() const {return generation;} + inline std::vector GetAcoefficients() const + {return Acoeffs;} + inline std::vector GetTaus() const {return taus;} + + inline void SetZ(G4int value) {Z = value;} + inline void SetA(G4int value) {A = value;} + inline void SetE(G4double value) {E = value;} + inline void SetGeneration(G4int value) {generation = value;} + inline void SetAcoefficients(std::vector value) + {Acoeffs = value;} + inline void SetTaus(std::vector value) {taus = value;} + + void SetParameters(G4int /*Z*/, G4int /*A*/, G4double /*E*/, G4int /*G*/, + std::vector /*Coeffs*/, + std::vector /*taus*/); + +private: + G4int Z; + G4int A; + G4double E; + G4int generation; + std::vector Acoeffs; + std::vector taus; + +}; +#endif diff --git a/source/processes/hadronic/models/radioactive_decay/include/G4RIsotopeTable.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RIsotopeTable.hh deleted file mode 100644 index 4e0675c511..0000000000 --- a/source/processes/hadronic/models/radioactive_decay/include/G4RIsotopeTable.hh +++ /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. * -// ******************************************************************** -// -#ifndef G4RIsotopeTable_h -#define G4RIsotopeTable_h 1 -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -// -// MODULE: G4RIsotopeTable.hh -// -// Version: 0.b.4 -// Date: 14/04/00 -// Author: F Lei & P R Truscott -// Organisation: DERA UK -// Customer: ESA/ESTEC, NOORDWIJK -// Contract: 12115/96/JG/NL Work Order No. 3 -// -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -// -// CHANGE HISTORY -// -------------- -// -// 29 February 2000, P R Truscott, DERA UK -// 0.b.3 release. -// -// 13 April 2000, F Lei, DERA UK -// 0.b.4 release. No change to this file -// -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -//////////////////////////////////////////////////////////////////////////////// -// -#include "globals.hh" -#include "G4IsotopeProperty.hh" -#include "G4VIsotopeTable.hh" -#include "G4Ions.hh" -#include "G4IonTable.hh" -#include "G4DecayTable.hh" - -#include - -//////////////////////////////////////////////////////////////////////////////// -// -class G4RIsotopeTable : public G4VIsotopeTable -{ - // class description - // G4RIsotopeTable is the table of pointers to G4IsotopeProperty. - // It is derived from the abstract base class G4VIsotopeTable - // class description - end -public: - // - typedef std::vector G4IsotopeList; - typedef std::vector G4IsotopeNameList; - -public: - // constructor - G4RIsotopeTable(); - -protected: - // Hide copy constructor and assignment operator as protected - G4RIsotopeTable(const G4RIsotopeTable& right); - G4RIsotopeTable& operator = (const G4RIsotopeTable& right); - -public: - // destructor - virtual ~G4RIsotopeTable(); - -public: - // with description - // - virtual G4bool FindIsotope(G4IsotopeProperty* property); - // The FindIsotope function will replace the pure virtual one defined in the - // abstract base class G4VIstopeTable. We don't use this fuction in this - // implementation, instead we use the next function. - // - virtual G4IsotopeProperty* GetIsotope(G4int Z, G4int A, G4double E); - // - // again it will replace the pure virtual one in the abstract base class. - // - // Z: Atomic Number - // A: Atomic Mass - // E: Excitaion energy - - - void AddUserDecayDataFile(G4int Z, G4int A,G4String filename); - //Allow the user to replace the radio-active decay data provided in Geant4 - // by its own data file for a given isotope - - -private: - - G4String GetIsotopeName(G4int Z, G4int A, G4double E); - // - // To generate a name for the isotope - G4double GetMeanLifeTime (G4int Z, G4int A, G4double& E); - // to get the mean life time and its decaytable from the database - // - G4IsotopeProperty* GetIsotope(G4int index) const; - // Return the pointer of index-th isotope in the table - - G4int GetVerboseLevel() const; - // get Verbose Level defined in G4ParticleTable - - G4int Entries() const; - -private: - - G4IsotopeList fIsotopeList; - G4IsotopeNameList fIsotopeNameList; - static const G4double levelTolerance; - - //User define radioactive decay data files replacing some files in the G4RADECAY database - std::map theUserRadioactiveDataFiles; - -}; - -inline G4int G4RIsotopeTable::Entries() const - {return fIsotopeNameList.size();} - -inline G4IsotopeProperty* G4RIsotopeTable::GetIsotope(G4int index) const -{ - if ( (index >=0 ) && (index < Entries()) ){ - return fIsotopeList[index]; - } else { - return 0; - } -} - -#endif - - - - - - diff --git a/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecay.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecay.hh index 07e061b4dc..0236a7b0a4 100644 --- a/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecay.hh +++ b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecay.hh @@ -67,7 +67,6 @@ #include "G4NucleusLimits.hh" #include "G4RadioactiveDecayRate.hh" #include "G4RadioactiveDecayRateVector.hh" -#include "G4RIsotopeTable.hh" #include "G4RadioactivityTable.hh" #include "G4ThreeVector.hh" #include "G4Threading.hh" @@ -253,12 +252,20 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess G4double GetMeanLifeTime(const G4Track& theTrack, G4ForceCondition* condition); - G4double GetTaoTime(const G4double, const G4double); + G4double ConvolveSourceTimeProfile(const G4double, const G4double); G4double GetDecayTime(); G4int GetDecayTimeBin(const G4double aDecayTime); + //Add gamma,Xray,conversion,and auger electrons for bias mode + void AddDeexcitationSpectrumForBiasMode(G4ParticleDefinition* apartDef, + G4double weight, + G4double currenTime, + std::vector& weights_v, + std::vector& times_v, + std::vector& secondaries_v); + private: G4RadioactiveDecay(const G4RadioactiveDecay &right); diff --git a/source/processes/hadronic/models/radioactive_decay/sources.cmake b/source/processes/hadronic/models/radioactive_decay/sources.cmake index 2d4790f67d..92dcb79c61 100644 --- a/source/processes/hadronic/models/radioactive_decay/sources.cmake +++ b/source/processes/hadronic/models/radioactive_decay/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 93732 2015-10-30 10:57:14Z gcosmo $ +# $Id: sources.cmake 96296 2016-04-05 09:00:17Z gcosmo $ # #------------------------------------------------------------------------------ @@ -54,6 +54,7 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_radioactivedecay HEADERS G4AlphaDecay.hh G4AlphaDecayChannel.hh + G4BatemanParameters.hh G4BetaDecayCorrections.hh G4BetaDecayType.hh G4BetaMinusDecay.hh @@ -72,7 +73,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_radioactivedecay G4NucleusLimits.hh G4ProtonDecay.hh G4ProtonDecayChannel.hh - G4RIsotopeTable.hh G4RadioactiveDecay.hh G4RadioactiveDecayMode.hh G4RadioactiveDecayRate.hh @@ -83,6 +83,7 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_radioactivedecay G4UserLimitsForRD.hh SOURCES G4AlphaDecay.cc + G4BatemanParameters.cc G4BetaDecayCorrections.cc G4BetaDecayType.cc G4BetaMinusDecay.cc @@ -94,7 +95,6 @@ GEANT4_DEFINE_MODULE(NAME G4hadronic_radioactivedecay G4NuclearDecay.cc G4NucleusLimits.cc G4ProtonDecay.cc - G4RIsotopeTable.cc G4RadioactiveDecay.cc G4RadioactiveDecayMode.cc G4RadioactiveDecayRate.cc diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4AlphaDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4AlphaDecay.cc index e037702eb5..50705ef564 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4AlphaDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4AlphaDecay.cc @@ -67,10 +67,10 @@ G4AlphaDecay::~G4AlphaDecay() G4DecayProducts* G4AlphaDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Fill G4MT_daughters with alpha and residual nucleus (stored by SetDaughter) - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); G4double alphaMass = G4MT_daughters[1]->GetPDGMass(); // Excitation energy included in PDG mass diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4BatemanParameters.cc b/source/processes/hadronic/models/radioactive_decay/src/G4BatemanParameters.cc new file mode 100644 index 0000000000..d28c4cf219 --- /dev/null +++ b/source/processes/hadronic/models/radioactive_decay/src/G4BatemanParameters.cc @@ -0,0 +1,101 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4BatemanParameters.cc // +// Author: D.H. Wright (SLAC) // +// Date: 15 December 2015 // +// // +//////////////////////////////////////////////////////////////////////////////// + +#include "G4BatemanParameters.hh" +// #include "G4ParticleDefinition.hh" +// #include "G4ParticleTable.hh" +// #include "G4DecayTable.hh" +// #include "G4DecayProducts.hh" + + +G4BatemanParameters::G4BatemanParameters() + : Z(0), A(0), E(0.0), generation(0) +{} + + +G4BatemanParameters::G4BatemanParameters(const G4BatemanParameters& right) +{ + Z = right.Z; + A = right.A; + E = right.E; + generation = right.generation; + Acoeffs = right.Acoeffs; + taus = right.taus; +} + +G4BatemanParameters& G4BatemanParameters::operator=(const G4BatemanParameters& right) +{ + if (this != &right) { + Z = right.Z; + A = right.A; + E = right.E; + generation = right.generation; + Acoeffs = right.Acoeffs; + taus = right.taus; + } + return *this; +} + + +G4BatemanParameters::~G4BatemanParameters() +{} + + +void +G4BatemanParameters::SetParameters(G4int aZ, G4int anA, G4double anE, G4int aG, + std::vector theCoeffs, + std::vector theTaus) +{ + Z = aZ; + A = anA; + E = anE; + generation = aG; + Acoeffs = theCoeffs; + taus = theTaus; +} + + +void G4BatemanParameters::DumpInfo() +{ + G4cout << " Z: " << Z << " A: " << A << " E: " << E << " Generation: " + << generation << G4endl; + + G4cout << " A coefficients: "; + for (G4int i = 0; i < G4int(Acoeffs.size()); i++) G4cout << Acoeffs[i]; + G4cout << G4endl; + + G4cout << " Mean lifes (tau): "; + for (G4int i = 0; i < G4int(taus.size()); i++) G4cout << taus[i]; + G4cout << G4endl; +} + diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4BetaMinusDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4BetaMinusDecay.cc index a1c7d7108f..6345095f4c 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4BetaMinusDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4BetaMinusDecay.cc @@ -55,7 +55,7 @@ G4BetaMinusDecay::G4BetaMinusDecay(const G4ParticleDefinition* theParentNucleus, G4IonTable* theIonTable = (G4IonTable*)(G4ParticleTable::GetParticleTable()->GetIonTable()); G4int daughterZ = theParentNucleus->GetAtomicNumber() + 1; - G4int daughterA = theParentNucleus->GetAtomicMass(); + G4int daughterA = theParentNucleus->GetAtomicMass(); SetDaughter(0, theIonTable->GetIon(daughterZ, daughterA, excitationE) ); SetDaughter(1, "e-"); SetDaughter(2, "anti_nu_e"); @@ -66,17 +66,17 @@ G4BetaMinusDecay::G4BetaMinusDecay(const G4ParticleDefinition* theParentNucleus, G4BetaMinusDecay::~G4BetaMinusDecay() { - delete spectrumSampler; + delete spectrumSampler; } G4DecayProducts* G4BetaMinusDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Fill G4MT_daughters with e-, nu and residual nucleus (stored by SetDaughter) - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); G4double parentMass = G4MT_parent->GetPDGMass(); G4double eMass = G4MT_daughters[1]->GetPDGMass(); @@ -166,23 +166,25 @@ G4BetaMinusDecay::SetUpBetaSpectrumSampler(const G4int& daughterZ, G4double e; // Total electron energy in units of electron mass G4double p; // Electron momentum in units of electron mass - G4double f; // Spectral shap function - for (G4int ptn = 0; ptn < npti; ptn++) { - // Calculate simple phase space - e = 1. + e0*(ptn + 0.5)/G4double(npti); - p = std::sqrt(e*e - 1.); - f = p*e*(e0 - e + 1.)*(e0 - e + 1.); + G4double f; // Spectral shape function - // Apply Fermi factor to get allowed shape - f *= corrections.FermiFunction(e); + if (e0 > 0) { + for (G4int ptn = 0; ptn < npti; ptn++) { + // Calculate simple phase space + e = 1. + e0*(G4double(ptn) + 0.5)/G4double(npti); + p = std::sqrt(e*e - 1.); + f = p*e*(e0 - e + 1.)*(e0 - e + 1.); - // Apply shape factor for forbidden transitions - f *= corrections.ShapeFactor(betaType, p, e0-e+1.); - pdf[ptn] = f; + // Apply Fermi factor to get allowed shape + f *= corrections.FermiFunction(e); + + // Apply shape factor for forbidden transitions + f *= corrections.ShapeFactor(betaType, p, e0-e+1.); + pdf[ptn] = f; + } + + spectrumSampler = new G4RandGeneral(pdf, npti); } - - spectrumSampler = new G4RandGeneral(pdf, npti); - delete[] pdf; } diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4BetaPlusDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4BetaPlusDecay.cc index dbab1fc118..3f376d73b5 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4BetaPlusDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4BetaPlusDecay.cc @@ -73,10 +73,10 @@ G4BetaPlusDecay::~G4BetaPlusDecay() G4DecayProducts* G4BetaPlusDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Fill G4MT_daughters with e-, nu and residual nucleus (stored by SetDaughter) - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); G4double parentMass = G4MT_parent->GetPDGMass(); G4double eMass = G4MT_daughters[1]->GetPDGMass(); diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4ECDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4ECDecay.cc index d96538e5d1..736e90c17a 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4ECDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4ECDecay.cc @@ -71,10 +71,10 @@ G4ECDecay::~G4ECDecay() G4DecayProducts* G4ECDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Fill G4MT_daughters with alpha and residual nucleus (stored by SetDaughter) - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); // Get shell number of captured electron G4int shellIndex = -1; diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc index 4d08fbec4c..07498454ba 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc @@ -73,7 +73,7 @@ G4ITDecay::~G4ITDecay() G4DecayProducts* G4ITDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Set up final state // parentParticle is set at rest here because boost with correct momentum diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4NeutronDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4NeutronDecay.cc index be16e3104f..ae6ccbc463 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4NeutronDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4NeutronDecay.cc @@ -67,10 +67,10 @@ G4NeutronDecay::~G4NeutronDecay() G4DecayProducts* G4NeutronDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Fill G4MT_daughters with neutron and residual nucleus (stored by SetDaughter) - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); G4double neutronMass = G4MT_daughters[1]->GetPDGMass(); // Excitation energy included in PDG mass diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc b/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc index c73217fc2e..aef0d44002 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc @@ -105,7 +105,7 @@ G4NuclearDecayChannel(const G4RadioactiveDecayMode& theMode, } #endif SetParent(theParentNucleus); - FillParent(); + CheckAndFillParent(); G4MT_parent_mass = theParentNucleus->GetPDGMass(); SetBR(theBR); SetNumberOfDaughters (1); @@ -113,7 +113,7 @@ G4NuclearDecayChannel(const G4RadioactiveDecayMode& theMode, halflifethreshold = nanosecond; applyICM = true; applyARM = true; - FillDaughters(); + CheckAndFillDaughters(); } // Constructor for a daughter nucleus and one other particle. @@ -137,7 +137,7 @@ G4NuclearDecayChannel(const G4RadioactiveDecayMode& theMode, } #endif SetParent(theParentNucleus); - FillParent(); + CheckAndFillParent(); G4MT_parent_mass = theParentNucleus->GetPDGMass(); SetBR(theBR); SetNumberOfDaughters (2); @@ -146,7 +146,7 @@ G4NuclearDecayChannel(const G4RadioactiveDecayMode& theMode, halflifethreshold = nanosecond; applyICM = true; applyARM = true; - FillDaughters(); + CheckAndFillDaughters(); } // Constructor for a daughter nucleus and two other particles @@ -174,7 +174,7 @@ G4NuclearDecayChannel(const G4RadioactiveDecayMode &theMode, } #endif SetParent(theParentNucleus); - FillParent(); + CheckAndFillParent(); G4MT_parent_mass = theParentNucleus->GetPDGMass(); SetBR (theBR); SetNumberOfDaughters (3); @@ -186,7 +186,7 @@ G4NuclearDecayChannel(const G4RadioactiveDecayMode &theMode, halflifethreshold = nanosecond; applyICM = true; applyARM = true; - FillDaughters(); + CheckAndFillDaughters(); } G4NuclearDecayChannel::~G4NuclearDecayChannel() diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4ProtonDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4ProtonDecay.cc index e04377d44f..7e61f1da05 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4ProtonDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4ProtonDecay.cc @@ -67,10 +67,10 @@ G4ProtonDecay::~G4ProtonDecay() G4DecayProducts* G4ProtonDecay::DecayIt(G4double) { // Fill G4MT_parent with theParentNucleus (stored by SetParent in ctor) - if (G4MT_parent == 0) FillParent(); + CheckAndFillParent(); // Fill G4MT_daughters with proton and residual nucleus (stored by SetDaughter) - if (G4MT_daughters == 0) FillDaughters(); + CheckAndFillDaughters(); G4double protonMass = G4MT_daughters[1]->GetPDGMass(); // Excitation energy included in PDG mass diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc deleted file mode 100644 index 8950893a68..0000000000 --- a/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc +++ /dev/null @@ -1,295 +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. * -// ******************************************************************** -// -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -// -// MODULE: G4RIsotopeTable.cc -// -// Version: 0.b.4 -// Date: 14/04/00 -// Author: F Lei & P R Truscott -// Organisation: DERA UK -// Customer: ESA/ESTEC, NOORDWIJK -// Contract: 12115/96/JG/NL Work Order No. 3 -// -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -// -// CHANGE HISTORY -// -------------- -// -// 29 February 2000, P R Truscott, DERA UK -// 0.b.3 release. -// -// 14 April 2000, F Lei, DERA UK -// 0.b.4 release. Minor changes to -// 1) levelTolerance = 2.0 keV -// 2) changes to verbose control -// -// 18,July 2001 F.Lei -// tidy up the print out at run level -// -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -/////////////////////////////////////////////////////////////////////////////// -// -#include "G4DecayTable.hh" -#include "G4SystemOfUnits.hh" -#include "G4ParticleTable.hh" -#include "G4IsotopeProperty.hh" -#include "G4RIsotopeTable.hh" - -#include "G4HadronicException.hh" -#include "G4NuclearLevelStore.hh" - -/* -#include "G4RadioactiveDecayMode.hh" -#include "G4ITDecayChannel.hh" -#include "G4BetaMinusDecayChannel.hh" -#include "G4BetaPlusDecayChannel.hh" -#include "G4KshellECDecayChannel.hh" -#include "G4LshellECDecayChannel.hh" -#include "G4AlphaDecayChannel.hh" -#include "G4ProtonDecayChannel.hh" -*/ -#include "G4ios.hh" -#include "globals.hh" -#include -#include -#include - -const G4double G4RIsotopeTable::levelTolerance = 2.0*keV; - - -G4RIsotopeTable::G4RIsotopeTable():G4VIsotopeTable("RIsotopeTable") -{ - // Reset the list of user defined data files - theUserRadioactiveDataFiles.clear(); -} - - -G4RIsotopeTable::~G4RIsotopeTable() -{ - for (G4int i = 0; i < G4int(fIsotopeList.size()); i++) delete fIsotopeList[i]; - fIsotopeList.clear(); - fIsotopeNameList.clear(); -} - - -G4int G4RIsotopeTable::GetVerboseLevel() const -{ - return G4ParticleTable::GetParticleTable()->GetVerboseLevel(); -} - - -G4bool G4RIsotopeTable::FindIsotope(G4IsotopeProperty* ) -{ - // do nothing, it is here just for the compiler - // it is required by the base class - return true; -} - - -G4IsotopeProperty* G4RIsotopeTable::GetIsotope(G4int Z, G4int A, G4double E) -{ - G4String fname = GetIsotopeName(Z, A, E); - G4int j = -1; - for (G4int i = 0 ; i< Entries(); i++) { - if(fIsotopeNameList[i] == fname) j = i;} - if (j >=0) { - if (GetVerboseLevel() > 1) { - G4cout <<"G4RIsotopeTable::GetIsotope No. : "; - G4cout <SetLifeTime(meanlife); - fProperty->SetAtomicNumber(Z); - fProperty->SetAtomicMass(A); - // Notic that the value of E may have been changed - fProperty->SetEnergy(E); - // The spin is not being used in the current implementation - fProperty->SetiSpin(0); - // the decaytable will be loaded later in G4RadioactiveDecay when it is needed - fProperty->SetDecayTable(0); - - fIsotopeList.push_back(fProperty); - fname = GetIsotopeName(Z, A, E); - fIsotopeNameList.push_back(fname); - if (GetVerboseLevel()>1) { - G4cout <<"G4RIsotopeTable::GetIsotope create: "; - G4cout <1) { - G4cout <<"G4RIsotopeTable::GetIsotope Name: "; - G4cout <::iterator it = theUserRadioactiveDataFiles.find(1000*A+Z); - G4String file=""; - if ( it != theUserRadioactiveDataFiles.end() ){ - file=it->second; - } - if (file ==""){ - if (!getenv("G4RADIOACTIVEDATA")) { - G4cout << "Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files." << G4endl; - throw G4HadronicException(__FILE__, __LINE__, - "Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files."); - } - G4String dirName = getenv("G4RADIOACTIVEDATA"); - - std::ostringstream os; - os <1) { - G4cout <<"G4RIsotopeTable::GetMeanLife() : " - <<"cannot find ion radioactive decay file: " - < 100000) { - G4Exception("G4RIsotopeTable::GetMeanLifeTime()", "HAD_RDM_100", JustWarning, ed); - break; - } - - inputLine = inputChars; - inputLine = inputLine.strip(1); - - if (inputChars[0] != '#' && inputLine.length() != 0) { - std::istringstream tmpstream(inputLine); - tmpstream >> recordType >> a >> b; - if (recordType == "P") { - if (std::abs(a*keV-aE) < levelTolerance) { - found_in_raddecay_data = true; - lifetime = b/0.693147*s ; - } - } - } - } - DecaySchemeFile.close(); - } - - if (!found_in_raddecay_data && aE) { - G4double half_life=-1.; - lifetime = 1.0E-20*s; - - - //added by L.Desorgher If the life time is not found in raddecay database - // then it is deduced from photo-evaporation level - const G4NuclearLevel* aLevel = - G4NuclearLevelStore::GetInstance()->GetManager(Z, A) - ->NearestLevel(aE,levelTolerance); - if (aLevel) { - half_life = aLevel->HalfLife(); - lifetime = half_life/0.693147; - } - - if (GetVerboseLevel()>1 && half_life<0) { - G4cout << "G4RIsotopeTable::GetMeanLife() : "; - G4cout << "cannot find ion of required excitation E = " << aE << G4endl; - G4cout << "state in radioactive or photoevaporation data file " << G4endl; - G4cout <<"The nucleus is assumed to be IT decayed with life = 1E-20 s" << G4endl; - G4cout <<" -----------* THIS MAY CAUSE PROBLEM IN ITS DECAY-----------" << G4endl; - } - } - - if (!found_in_raddecay_data && !aE) { - if (GetVerboseLevel()>1) { - G4cout <<"G4RIsotopeTable::GetMeanLife() : "; - G4cout <<"cannot find ion of required excitation E = " << aE << G4endl; - G4cout <<"state in radioactive or photoevaporation data file" <1) { - G4cout <<"G4RIsotopeTable::GetMeanLifeTime: "; - G4cout < #include #include +#include "G4PhotonEvaporation.hh" using namespace CLHEP; @@ -378,15 +379,16 @@ G4RadioactiveDecay::GetDecayRateTable(const G4ParticleDefinition& aParticle) #endif } -// GetTaoTime performs the convolution of the source time profile function -// with the decay constants in the decay chain. -// The time profile is treated as a step function so that the convolution -// integral can be done bin-by-bin. -// The profile function should be normalized to 1. Is it?? - -G4double G4RadioactiveDecay::GetTaoTime(const G4double t, const G4double tao) +// ConvolveSourceTimeProfile performs the convolution of the source time profile +// function with a single exponential characterized by a decay constant in the +// decay chain. The time profile is treated as a step function so that the +// convolution integral can be done bin-by-bin. +// Input time and mean life (tau) are in ns. + +G4double +G4RadioactiveDecay::ConvolveSourceTimeProfile(const G4double t, const G4double tau) { - long double taotime = 0.L; + long double convolvedTime = 0.L; G4int nbin; if ( t > SBin[NSourceBin]) { nbin = NSourceBin; @@ -399,7 +401,8 @@ G4double G4RadioactiveDecay::GetTaoTime(const G4double t, const G4double tao) while (t > SBin[nbin]) { /* Loop checking, 01.09.2015, D.Wright */ loop++; if (loop > 1000) { - G4Exception("G4RadioactiveDecay::GetTaoTime()", "HAD_RDM_100", JustWarning, ed); + G4Exception("G4RadioactiveDecay::ConvolveSourceTimeProfile()", + "HAD_RDM_100", JustWarning, ed); break; } @@ -408,29 +411,29 @@ G4double G4RadioactiveDecay::GetTaoTime(const G4double t, const G4double tao) nbin--; } long double lt = t ; - long double ltao = tao; + long double ltau = tau; if (nbin > 0) { for (G4int i = 0; i < nbin; i++) { - taotime += (long double)SProfile[i] * - (std::exp(-(lt-(long double)SBin[i+1])/ltao)-std::exp(-(lt-(long double)SBin[i])/ltao)); + convolvedTime += (long double)SProfile[i] * + (std::exp(-(lt-(long double)SBin[i+1])/ltau)-std::exp(-(lt-(long double)SBin[i])/ltau)); } } - taotime += (long double)SProfile[nbin] * (1.L-std::exp(-(lt-(long double)SBin[nbin])/ltao)); + convolvedTime += (long double)SProfile[nbin] * (1.L-std::exp(-(lt-(long double)SBin[nbin])/ltau)); // Is the above line necessary? If so, the 1.L looks incorrect - should be an exp - // Also, it looks like the final integral should be multiplied by ltao + // Also, it looks like the final integral should be multiplied by ltau - if (taotime < 0.) { - G4cout <<" Tao time =: " <1) - {G4cout <<" Tao time: " < 1) + G4cout << " Convolved time: " << convolvedTime << G4endl; #endif - return (G4double)taotime ; + return (G4double)convolvedTime ; } /* @@ -572,8 +575,8 @@ G4double G4RadioactiveDecay::GetDecayTime() rand = G4UniformRand(); decaytime = DBin[i] + rand*(DBin[i+1]-DBin[i]); #ifdef G4VERBOSE - if (GetVerboseLevel()>1) - {G4cout <<" Decay time: " < 1) + G4cout <<" Decay time: " <AtomDeexcitation(); if (!p) { - G4UAtomicDeexcitation* atomDeex = new G4UAtomicDeexcitation(); - theManager->SetAtomDeexcitation(atomDeex); - p = theManager->AtomDeexcitation(); + G4ExceptionDescription ed; + ed << " Atomic deexcitation is not defined."; + G4Exception("G4RadioactiveDecay::BuildPhysicsTable", "HAD_RDM_001", + FatalException, ed); + /* + p = new G4UAtomicDeexcitation(); + p->SetFluo(true); + p->SetAuger(true); + p->InitialiseAtomicDeexcitation(); + theManager->SetAtomDeexcitation(p); + */ } - p->SetFluo(true); - p->SetAuger(true); - p->InitialiseAtomicDeexcitation(); } } @@ -867,15 +875,13 @@ G4RadioactiveDecay::LoadDecayTable(const G4ParticleDefinition& theParentNucleus) modeFirstRecord[1] = false; modeTotalBR[1] = b; } else { - if (c > 0.) { - G4BetaMinusDecay* aBetaMinusChannel = - new G4BetaMinusDecay(&theParentNucleus, b, c*MeV, a*MeV, - betaType); -// aBetaMinusChannel->DumpNuclearInfo(); - aBetaMinusChannel->SetHLThreshold(halflifethreshold); - theDecayTable->Insert(aBetaMinusChannel); - modeSumBR[1] += b; - } // c > 0 + G4BetaMinusDecay* aBetaMinusChannel = + new G4BetaMinusDecay(&theParentNucleus, b, c*MeV, a*MeV, + betaType); +// aBetaMinusChannel->DumpNuclearInfo(); + aBetaMinusChannel->SetHLThreshold(halflifethreshold); + theDecayTable->Insert(aBetaMinusChannel); + modeSumBR[1] += b; } // if not first record } break; @@ -1090,15 +1096,16 @@ G4RadioactiveDecay::AddUserDecayDataFile(G4int Z, G4int A, G4String filename) void G4RadioactiveDecay::SetDecayRate(G4int theZ, G4int theA, G4double theE, - G4int theG, std::vector theRates, + G4int theG, std::vector theCoefficients, std::vector theTaos) +// Why not make this a method of G4RadioactiveDecayRate? (e.g. SetParameters) { //fill the decay rate vector theDecayRate.SetZ(theZ); theDecayRate.SetA(theA); theDecayRate.SetE(theE); theDecayRate.SetGeneration(theG); - theDecayRate.SetDecayRateC(theRates); + theDecayRate.SetDecayRateC(theCoefficients); theDecayRate.SetTaos(theTaos); } @@ -1106,26 +1113,25 @@ G4RadioactiveDecay::SetDecayRate(G4int theZ, G4int theA, G4double theE, void G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucleus) { - // 1) To calculate all the coefficiecies required to derive the - // radioactivities for all progeny of theParentNucleus - // - // 2) Add the coefficiencies to the decay rate table vector - // + // Use extended Bateman equation to calculate the radioactivities of all + // progeny of theParentNucleus. The coefficients required to do this are + // calculated using the method of P. Truscott (Ph.D. thesis and + // DERA Technical Note DERA/CIS/CIS2/7/36/4/10) 11 January 2000. + // Coefficients are then added to the decay rate table vector - // // Create and initialise variables used in the method. - // theDecayRateVector.clear(); G4int nGeneration = 0; - std::vector rates; + std::vector taos; - // start rate is -1. - // Eq.4.26 of the Technical Note - rates.push_back(-1.); - // - // + // Dimensionless A coefficients of Eqs. 4.24 and 4.25 of the TN + std::vector Acoeffs; + + // According to Eq. 4.26 the first coefficient (A_1:1) is -1 + Acoeffs.push_back(-1.); + G4int A = ((const G4Ions*)(&theParentNucleus))->GetAtomicMass(); G4int Z = ((const G4Ions*)(&theParentNucleus))->GetAtomicNumber(); G4double E = ((const G4Ions*)(&theParentNucleus))->GetExcitationEnergy(); @@ -1136,14 +1142,13 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle // Fill the decay rate container (G4RadioactiveDecayRate) with the parent // isotope data - SetDecayRate(Z,A,E,nGeneration,rates,taos); // Fill TP with parent lifetime + SetDecayRate(Z,A,E,nGeneration,Acoeffs,taos); // Fill TP with parent lifetime // store the decay rate in decay rate vector theDecayRateVector.push_back(theDecayRate); nEntry++; - // now start treating the sencondary generations.. - + // Now start treating the secondary generations. G4bool stable = false; G4int i; G4int j; @@ -1164,16 +1169,16 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle G4int ZD = 0; G4double EP = 0.; std::vector TP; - std::vector RP; + std::vector RP; // A coefficients of the previous generation G4ParticleDefinition *theDaughterNucleus; G4double daughterExcitation; G4ParticleDefinition *aParentNucleus; G4IonTable* theIonTable; - G4DecayTable *aTempDecayTable; + G4DecayTable* parentDecayTable; G4double theRate; G4double TaoPlus; - G4int nS = 0; - G4int nT = nEntry; + G4int nS = 0; // Running index of first decay in a given generation + G4int nT = nEntry; // Total number of decays accumulated over entire history const G4int nMode = 9; G4double brs[nMode]; // @@ -1190,7 +1195,6 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle G4Exception("G4RadioactiveDecay::AddDecayRateTable()", "HAD_RDM_100", JustWarning, ed); break; } - nGeneration++; for (j = nS; j < nT; j++) { // First time through, get data for parent nuclide @@ -1207,14 +1211,23 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle } aParentNucleus = theIonTable->GetIon(ZP,AP,EP); - aTempDecayTable = GetDecayTable(aParentNucleus); + parentDecayTable = GetDecayTable(aParentNucleus); + + G4DecayTable* summedDecayTable = new G4DecayTable(); + // This instance of G4DecayTable is for accumulating BRs and decay + // channels. It will contain one decay channel per type of decay + // (alpha, beta, etc.); its branching ratio will be the sum of all + // branching ratios for that type of decay of the parent. If the + // halflife of a particular channel is longer than some threshold, + // that channel will be inserted specifically and its branching + // ratio will not be included in the above sums. + // This instance is not used to perform actual decays. - G4DecayTable* theDecayTable = new G4DecayTable(); for (G4int k = 0; k < nMode; k++) brs[k] = 0.0; // Go through the decay table and sum all channels having the same decay mode - for (i = 0; i < aTempDecayTable->entries(); i++) { - theChannel = aTempDecayTable->GetDecayChannel(i); + for (i = 0; i < parentDecayTable->entries(); i++) { + theChannel = parentDecayTable->GetDecayChannel(i); theNuclearDecayChannel = static_cast(theChannel); theDecayMode = theNuclearDecayChannel->GetDecayMode(); daughterExcitation = theNuclearDecayChannel->GetDaughterExcitation(); @@ -1233,7 +1246,7 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle // by default, user can set it via the UI command if (level->HalfLife()*ns >= halflifethreshold){ // save the metastable nucleus - theDecayTable->Insert(theChannel); + summedDecayTable->Insert(theChannel); } else { brs[theDecayMode] += theChannel->GetBR(); } @@ -1254,41 +1267,41 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle // Decay mode is isomeric transition theITChannel = new G4ITDecay(aParentNucleus, brs[0], 0.0, 0.0); - theDecayTable->Insert(theITChannel); + summedDecayTable->Insert(theITChannel); break; case 1: // Decay mode is beta- theBetaMinusChannel = new G4BetaMinusDecay(aParentNucleus, brs[1], 0.*MeV, 0.*MeV, allowed); - theDecayTable->Insert(theBetaMinusChannel); + summedDecayTable->Insert(theBetaMinusChannel); break; case 2: // Decay mode is beta+ + EC. theBetaPlusChannel = new G4BetaPlusDecay(aParentNucleus, brs[2], // DHW: April 2015 0.*MeV, 0.*MeV, allowed); - theDecayTable->Insert(theBetaPlusChannel); + summedDecayTable->Insert(theBetaPlusChannel); break; case 6: // Decay mode is alpha. theAlphaChannel = new G4AlphaDecay(aParentNucleus, brs[6], 0.*MeV, 0.*MeV); - theDecayTable->Insert(theAlphaChannel); + summedDecayTable->Insert(theAlphaChannel); break; case 7: // Decay mode is proton. theProtonChannel = new G4ProtonDecay(aParentNucleus, brs[7], 0.*MeV, 0.*MeV); - theDecayTable->Insert(theProtonChannel); + summedDecayTable->Insert(theProtonChannel); break; case 8: // Decay mode is neutron. theNeutronChannel = new G4NeutronDecay(aParentNucleus, brs[8], 0.*MeV, 0.*MeV); - theDecayTable->Insert(theNeutronChannel); + summedDecayTable->Insert(theNeutronChannel); break; default: @@ -1296,11 +1309,10 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle } } } - - // loop over all branches in theDecayTable + // loop over all branches in summedDecayTable // - for (i = 0; i < theDecayTable->entries(); i++){ - theChannel = theDecayTable->GetDecayChannel(i); + for (i = 0; i < summedDecayTable->entries(); i++){ + theChannel = summedDecayTable->GetDecayChannel(i); theNuclearDecayChannel = static_cast(theChannel); theBR = theChannel->GetBR(); theDaughterNucleus = theNuclearDecayChannel->GetDaughterNucleus(); @@ -1316,9 +1328,9 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle if (IsApplicable(*theDaughterNucleus) && theBR && aParentNucleus != theDaughterNucleus) { // need to make sure daughter has decay table - aTempDecayTable = GetDecayTable(theDaughterNucleus); + parentDecayTable = GetDecayTable(theDaughterNucleus); - if (aTempDecayTable->entries() ) { + if (parentDecayTable->entries() ) { A = ((const G4Ions*)(theDaughterNucleus))->GetAtomicMass(); Z = ((const G4Ions*)(theDaughterNucleus))->GetAtomicNumber(); E = ((const G4Ions*)(theDaughterNucleus))->GetExcitationEnergy(); @@ -1339,7 +1351,7 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle // // they are in two parts, first the less than n ones // Eq 4.24 of the TN - rates.clear(); + Acoeffs.clear(); long double ta1,ta2; ta2 = (long double)TaoPlus; for (k = 0; k < RP.size(); k++){ @@ -1350,10 +1362,10 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle theRate = ta1/(ta1-ta2); } theRate = theRate * theBR * RP[k]; - rates.push_back(theRate); + Acoeffs.push_back(theRate); } - // the sencond part: the n:n coefficiency + // the second part: the n:n coefficiency // Eq 4.25 of the TN. Note Yn+1 is zero apart from Y1 which is -1 // as treated at line 1013 theRate = 0.; @@ -1370,20 +1382,19 @@ G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition& theParentNucle aRate1 += aRate; } theRate = -aRate1; - rates.push_back(theRate); - SetDecayRate (Z,A,E,nGeneration,rates,taos); + Acoeffs.push_back(theRate); + SetDecayRate (Z,A,E,nGeneration,Acoeffs,taos); theDecayRateVector.push_back(theDecayRate); nEntry++; } // there are entries in the table } // nuclide is OK to decay } // end of loop (i) over decay table branches - // delete theDecayTable; + // delete summedDecayTable; } // Getting contents of decay rate vector (end loop on j) nS = nT; nT = nEntry; if (nS == nT) stable = true; - } // while nuclide is not stable // end of while loop @@ -1446,8 +1457,8 @@ void G4RadioactiveDecay::SetSourceTimeProfile(G4String filename) infile.close(); #ifdef G4VERBOSE - if (GetVerboseLevel()>1) - {G4cout <<" Source Timeprofile Nbin = " << NSourceBin < 1) + G4cout <<" Source Timeprofile Nbin = " << NSourceBin <1) - {G4cout <<" Decay Bias Profile Nbin = " << NDecayBin < 1) + G4cout <<" Decay Bias Profile Nbin = " << NDecayBin <entries() == 0) { @@ -1605,7 +1615,7 @@ G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4Step&) #ifdef G4VERBOSE if (GetVerboseLevel() > 0) G4cout <<"DecayIt: Analogue MC version " << G4endl; -#endif +# endif G4DecayProducts* products = DoDecay(*theParticleDef); @@ -1750,7 +1760,8 @@ G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4Step&) // G4cout <<"PA= "<< PA << " PZ= " << PZ << " PE= "<< PE <entries(); currentTime = finalGlobalTime + theDecayTime; @@ -1817,6 +1831,11 @@ G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4Step&) ptime.push_back(currentTime); secondaryparticles.push_back(asecondaryparticle); } + //Generate gammas and XRays from excited nucleus, added by L.Desorgher + else if (((const G4Ions*)(asecondaryparticle->GetDefinition()))->GetExcitationEnergy()>0. && weight>0.){//Compute the gamma + G4ParticleDefinition* apartDef =asecondaryparticle->GetDefinition(); + AddDeexcitationSpectrumForBiasMode(apartDef,weight,currentTime,pw,ptime,secondaryparticles); + } } delete tempprods; @@ -1873,8 +1892,10 @@ G4RadioactiveDecay::DoDecay(const G4ParticleDefinition& theParticleDef) if (theDecayChannel == 0) { // Decay channel not found. - G4cerr << "G4RadioactiveDecay::DoIt : can not determine decay channel"; - G4cerr << G4endl; + G4ExceptionDescription ed; + ed << " Cannot determine decay channel for " << theParticleDef.GetParticleName() << G4endl; + G4Exception("G4RadioactiveDecay::DoDecay", "HAD_RDM_013", + FatalException, ed); } else { // A decay channel has been identified, so execute the DecayIt. #ifdef G4VERBOSE @@ -1962,3 +1983,37 @@ G4ThreeVector G4RadioactiveDecay::ChooseCollimationDirection() const { return dir; } + +//Add gamma,Xray,conversion,and auger electrons for bias mode +void G4RadioactiveDecay::AddDeexcitationSpectrumForBiasMode(G4ParticleDefinition* apartDef, + G4double weight,G4double currentTime, + std::vector& weights_v, + std::vector& times_v, + std::vector& secondaries_v) +{ G4double elevel=((const G4Ions*)(apartDef))->GetExcitationEnergy(); + G4double life_time=apartDef->GetPDGLifeTime(); + while (life_time 0.) { + G4ITDecay* anITChannel = new G4ITDecay(apartDef, 100., + elevel,elevel); + G4DecayProducts* pevap_products = anITChannel->DecayIt(0.); + G4int nb_pevapSecondaries = pevap_products->entries(); + for (G4int ind = 0; ind < nb_pevapSecondaries; ind++) { + G4DynamicParticle* a_pevap_secondary= pevap_products->PopProducts(); + //Gammas,electrons, alphas coming from excited state + if (a_pevap_secondary->GetDefinition()->GetBaryonNumber() < 5) { + weights_v.push_back(weight); + times_v.push_back(currentTime); + secondaries_v.push_back(a_pevap_secondary); + } + //New excited or ground state + else { + apartDef =a_pevap_secondary->GetDefinition(); + elevel=((const G4Ions*)(apartDef))->GetExcitationEnergy(); + life_time=apartDef->GetPDGLifeTime(); + } + } + delete anITChannel; +} +} + + diff --git a/source/processes/hadronic/models/util/History b/source/processes/hadronic/models/util/History index 7e9554a39b..bb790ff9f6 100644 --- a/source/processes/hadronic/models/util/History +++ b/source/processes/hadronic/models/util/History @@ -1,4 +1,4 @@ -$Id: History 94235 2015-11-09 10:59:16Z gcosmo $ +$Id: History 97799 2016-06-13 12:13:11Z gcosmo $ ------------------------------------------------------------------- ========================================================== @@ -15,6 +15,25 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +10 June 2016 Vladimir Ivanchenko (hadr-mod-util-V10-02-05) +- G4Fragment - real fix of the Coverity warning + +31 May 2016 Vladimir Ivanchenko (hadr-mod-util-V10-02-04) +31 May 2016 Vladimir Ivanchenko (hadr-mod-util-V10-02-03) +- G4Fragment - fixed Coverity warning + +08 April 2016 Vladimir Ivanchenko (hadr-mod-util-V10-02-02) +- G4Fragment - introduced "spin", added Get/Set interfaces needed + for INCL++ model fixing memory leak discussed in HyperNews + forum PhysicsList thread #930 + +29 February 2016 Andrea Dotti (hadr-mod-util-V10-02-01) +- Use of new G4VDecayChannel API to avoid data-race in MT. + requires particles-V10-02-08 + +27 January 2016 Alberto Ribon (hadr-mod-util-V10-02-00) +- G4KineticTrack : replaced G4cerr with a 'JustWarning' G4Exception. + 09 October 2015 Vladimir Ivanchenko (hadr-mod-util-V10-01-11) - G4PolynomialPDF - fixed Coverity report diff --git a/source/processes/hadronic/models/util/include/G4Fragment.hh b/source/processes/hadronic/models/util/include/G4Fragment.hh index d79fa27653..0041da4b80 100644 --- a/source/processes/hadronic/models/util/include/G4Fragment.hh +++ b/source/processes/hadronic/models/util/include/G4Fragment.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Fragment.hh 92198 2015-08-21 10:00:50Z gcosmo $ +// $Id: G4Fragment.hh 96383 2016-04-11 09:06:57Z gcosmo $ // //--------------------------------------------------------------------- // @@ -116,6 +116,10 @@ public: // computation of mass for any Z and A inline G4double ComputeGroundStateMass(G4int Z, G4int A) const; + // extra methods + inline G4double GetSpin() const; + inline void SetSpin(G4double value); + inline G4int GetCreatorModelType() const; inline void SetCreatorModelType(G4int value); @@ -200,6 +204,7 @@ private: const G4ParticleDefinition* theParticleDefinition; + G4double spin; G4double theCreationTime; }; @@ -227,7 +232,7 @@ inline void * G4Fragment::operator new(size_t) inline void G4Fragment::operator delete(void * aFragment) { - ((G4Fragment *)aFragment)->SetNuclearPolarization(0); + ((G4Fragment *)aFragment)->SetNuclearPolarization(nullptr); pFragmentAllocator->FreeSingle((G4Fragment *) aFragment); } @@ -391,6 +396,16 @@ inline void G4Fragment::SetCreatorModelType(G4int value) creatorModel = value; } +inline G4double G4Fragment::GetSpin() const +{ + return spin; +} + +inline void G4Fragment::SetSpin(G4double value) +{ + spin = value; +} + inline const G4ParticleDefinition* G4Fragment::GetParticleDefinition(void) const { diff --git a/source/processes/hadronic/models/util/src/G4Fragment.cc b/source/processes/hadronic/models/util/src/G4Fragment.cc index 4af3361a80..b281921600 100644 --- a/source/processes/hadronic/models/util/src/G4Fragment.cc +++ b/source/processes/hadronic/models/util/src/G4Fragment.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4Fragment.cc 92230 2015-08-24 10:57:08Z gcosmo $ +// $Id: G4Fragment.cc 97799 2016-06-13 12:13:11Z gcosmo $ // //--------------------------------------------------------------------- // @@ -45,8 +45,7 @@ //#define debug_G4Fragment -G4ThreadLocal G4Allocator *pFragmentAllocator = 0; -const G4double exclimit = -10*CLHEP::eV; +G4ThreadLocal G4Allocator *pFragmentAllocator = nullptr; // Default constructor G4Fragment::G4Fragment() : @@ -55,14 +54,15 @@ G4Fragment::G4Fragment() : theExcitationEnergy(0.0), theGroundStateMass(0.0), theMomentum(G4LorentzVector(0,0,0,0)), - thePolarization(0), + thePolarization(nullptr), creatorModel(-1), numberOfParticles(0), numberOfCharged(0), numberOfHoles(0), numberOfChargedHoles(0), numberOfShellElectrons(0), - theParticleDefinition(0), + theParticleDefinition(nullptr), + spin(0.0), theCreationTime(0.0) {} @@ -73,7 +73,7 @@ G4Fragment::G4Fragment(const G4Fragment &right) : theExcitationEnergy(right.theExcitationEnergy), theGroundStateMass(right.theGroundStateMass), theMomentum(right.theMomentum), - thePolarization(0), + thePolarization(nullptr), creatorModel(right.creatorModel), numberOfParticles(right.numberOfParticles), numberOfCharged(right.numberOfCharged), @@ -81,15 +81,18 @@ G4Fragment::G4Fragment(const G4Fragment &right) : numberOfChargedHoles(right.numberOfChargedHoles), numberOfShellElectrons(right.numberOfShellElectrons), theParticleDefinition(right.theParticleDefinition), + spin(right.spin), theCreationTime(right.theCreationTime) { - if(right.thePolarization) { - thePolarization = new G4NuclearPolarization(*(right.thePolarization)); - } + if(right.thePolarization != nullptr) { + thePolarization = new G4NuclearPolarization(*(right.thePolarization)); + } } G4Fragment::~G4Fragment() -{} +{ + delete thePolarization; +} G4Fragment::G4Fragment(G4int A, G4int Z, const G4LorentzVector& aMomentum) : theA(A), @@ -97,14 +100,15 @@ G4Fragment::G4Fragment(G4int A, G4int Z, const G4LorentzVector& aMomentum) : theExcitationEnergy(0.0), theGroundStateMass(0.0), theMomentum(aMomentum), - thePolarization(0), + thePolarization(nullptr), creatorModel(-1), numberOfParticles(0), numberOfCharged(0), numberOfHoles(0), numberOfChargedHoles(0), numberOfShellElectrons(0), - theParticleDefinition(0), + theParticleDefinition(nullptr), + spin(0.0), theCreationTime(0.0) { if(theA > 0) { @@ -120,7 +124,7 @@ G4Fragment::G4Fragment(const G4LorentzVector& aMomentum, theZ(0), theExcitationEnergy(0.0), theMomentum(aMomentum), - thePolarization(0), + thePolarization(nullptr), creatorModel(-1), numberOfParticles(0), numberOfCharged(0), @@ -128,6 +132,7 @@ G4Fragment::G4Fragment(const G4LorentzVector& aMomentum, numberOfChargedHoles(0), numberOfShellElectrons(0), theParticleDefinition(aParticleDefinition), + spin(0.0), theCreationTime(0.0) { if(aParticleDefinition->GetPDGEncoding() != 22 && @@ -147,9 +152,10 @@ G4Fragment & G4Fragment::operator=(const G4Fragment &right) theExcitationEnergy = right.theExcitationEnergy; theGroundStateMass = right.theGroundStateMass; theMomentum = right.theMomentum; - delete thePolarization; thePolarization = 0; - if(right.thePolarization) { - thePolarization = new G4NuclearPolarization(*(right.thePolarization)); + delete thePolarization; + thePolarization = nullptr; + if(right.thePolarization != nullptr) { + thePolarization = new G4NuclearPolarization(*(right.thePolarization)); } creatorModel = right.creatorModel; numberOfParticles = right.numberOfParticles; @@ -158,6 +164,7 @@ G4Fragment & G4Fragment::operator=(const G4Fragment &right) numberOfChargedHoles = right.numberOfChargedHoles; numberOfShellElectrons = right.numberOfShellElectrons; theParticleDefinition = right.theParticleDefinition; + spin = right.spin; theCreationTime = right.theCreationTime; } return *this; @@ -196,6 +203,9 @@ std::ostream& operator << (std::ostream &out, const G4Fragment *theFragment) if(theFragment->GetCreatorModelType() >= 0) { out << " creatorModelType= " << theFragment->GetCreatorModelType(); } + if(theFragment->GetCreationTime() > 0.0) { + out << " Time= " << theFragment->GetCreationTime()/CLHEP::ns << " ns"; + } out << G4endl << " P = (" << theFragment->GetMomentum().x()/CLHEP::MeV << "," @@ -215,6 +225,7 @@ std::ostream& operator << (std::ostream &out, const G4Fragment *theFragment) << ", #Charged= " << theFragment->GetNumberOfCharged() << ", #Holes= " << theFragment->GetNumberOfHoles() << ", #ChargedHoles= " << theFragment->GetNumberOfChargedHoles() + << ", #spin= " << theFragment->GetSpin() << G4endl; } out.setf(old_floatfield,std::ios::floatfield); @@ -231,6 +242,7 @@ std::ostream& operator << (std::ostream &out, const G4Fragment &theFragment) void G4Fragment::ExcitationEnergyWarning() { + const G4double exclimit = -10*CLHEP::eV; if (theExcitationEnergy < exclimit) { #ifdef G4VERBOSE @@ -259,15 +271,11 @@ void G4Fragment::NumberOfExitationWarning(const G4String& value) void G4Fragment::SetAngularMomentum(G4ThreeVector& v) { - std::vector< std::vector > pol; - pol.resize(1); - pol[0].assign(1, G4complex(v.mag(),0.0)); - thePolarization = new G4NuclearPolarization(); - thePolarization->SetPolarization(pol); + spin = v.mag(); } G4ThreeVector G4Fragment::GetAngularMomentum() const { - G4ThreeVector v(0.0,0.0,((thePolarization->GetPolarization()[0])[0]).real()); + G4ThreeVector v(0.0,0.0,spin); return v; } diff --git a/source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc b/source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc index 8c0950412e..eacd339a11 100644 --- a/source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc +++ b/source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GeneralPhaseSpaceDecay.cc 93821 2015-11-02 13:06:39Z gcosmo $ +// $Id: G4GeneralPhaseSpaceDecay.cc 95909 2016-03-02 11:01:47Z gcosmo $ // ---------------------------------------------------------------- // GEANT 4 class header file // @@ -149,8 +149,8 @@ G4DecayProducts *G4GeneralPhaseSpaceDecay::DecayIt(G4double) if (GetVerboseLevel()>1) G4cout << "G4GeneralPhaseSpaceDecay::DecayIt "; G4DecayProducts * products = NULL; - if (G4MT_parent == NULL) FillParent(); - if (G4MT_daughters == NULL) FillDaughters(); + CheckAndFillParent(); + CheckAndFillDaughters(); switch (numberOfDaughters){ case 0: diff --git a/source/processes/hadronic/models/util/src/G4KineticTrack.cc b/source/processes/hadronic/models/util/src/G4KineticTrack.cc index ad5d76270d..3e001cc062 100644 --- a/source/processes/hadronic/models/util/src/G4KineticTrack.cc +++ b/source/processes/hadronic/models/util/src/G4KineticTrack.cc @@ -658,12 +658,14 @@ G4KineticTrackVector* G4KineticTrack::Decay() G4DecayProducts* theDecayProducts = thePhaseSpaceDecayChannel.DecayIt(); if(!theDecayProducts) { - G4cerr << "Error condition encountered in G4KineticTrack::Decay()"<GetParticleName()<GetParticleName() << G4endl + << "\t the channel index is: "<< chosench << " of "<< nChannels << "channels" << G4endl + << "\t " << theNumberOfDaughters << " daughter particles: " + << theDaughtersName1 << " " << theDaughtersName2 << " " << theDaughtersName3 << " " + << theDaughtersName4 << G4endl; + G4Exception( "G4KineticTrack::Decay ", "HAD_KINTRACK_001", JustWarning, ed ); return 0; } diff --git a/source/processes/hadronic/util/History b/source/processes/hadronic/util/History index 80e9ca6e57..6a65cda3b1 100644 --- a/source/processes/hadronic/util/History +++ b/source/processes/hadronic/util/History @@ -14,6 +14,11 @@ code and to keep track of all tags. * Please list in reverse chronological order (last date on top) --------------------------------------------------------------- +10 February 2016 Alberto Ribon (hadr-util-V10-02-00) +-------------------------------------------------------- +- G4Nucleus : increased the max number of loops allowed in the method + GetBiasedThermalNucleus. + 02 November 2015 Alberto Ribon (hadr-util-V10-01-02) -------------------------------------------------------- - G4Nucleus : checking of 'while' loops. diff --git a/source/processes/hadronic/util/src/G4Nucleus.cc b/source/processes/hadronic/util/src/G4Nucleus.cc index aa40df776f..b0304a66fb 100644 --- a/source/processes/hadronic/util/src/G4Nucleus.cc +++ b/source/processes/hadronic/util/src/G4Nucleus.cc @@ -121,7 +121,7 @@ GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp) norm *= 5.; norm += velMag; norm /= velMag; - const G4int maxNumberOfLoops = 10000; + const G4int maxNumberOfLoops = 1000000; G4int loopCounter = -1; while ( (value/norm kCarTolerance ) { - PerpendicularVectorPhi = - PerpendicularVectorTheta.cross(NewMomentum); - } - else { - PerpendicularVectorTheta = NewMomentum.orthogonal(); - PerpendicularVectorPhi = - PerpendicularVectorTheta.cross(NewMomentum); - } + if (PerpendicularVectorTheta.mag() < kCarTolerance ) + PerpendicularVectorTheta = NewMomentum.orthogonal(); NewMomentum = NewMomentum.rotate(anglePhotonToNormal-thetaRad, PerpendicularVectorTheta); + PerpendicularVectorPhi = + PerpendicularVectorTheta.cross(NewMomentum); NewMomentum = NewMomentum.rotate(-phiRad,PerpendicularVectorPhi); + // Rotate Polarization too: theFacetNormal = (NewMomentum - OldMomentum).unit(); EdotN = OldPolarization * theFacetNormal; diff --git a/source/processes/scoring/History b/source/processes/scoring/History index 6b7c5b7640..e0381f1970 100644 --- a/source/processes/scoring/History +++ b/source/processes/scoring/History @@ -1,4 +1,4 @@ -$Id: History 91587 2015-07-27 13:05:01Z gcosmo $ +$Id: History 95193 2016-01-29 08:23:25Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,10 +17,14 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +January 27, 2016, M. Asai (procscore-V10-02-00) +- G4ParallelWorldProcess: change processType from fParameterized + to fParallel and set the processSubType to 491. + July 13, 2015, A. Dotti (procscore-V10-01-01) - Coverity fix #23298 -February 12, 2014, J.Apostolakis (procscore-V10-01-00) +February 12, 2015, J.Apostolakis (procscore-V10-01-00) - G4ParallelWorldProcess: verbosity to check Update of fieldtrack (protected with custom flag. ) diff --git a/source/processes/scoring/include/G4ParallelWorldProcess.hh b/source/processes/scoring/include/G4ParallelWorldProcess.hh index fe17871df7..d9774a0b2a 100755 --- a/source/processes/scoring/include/G4ParallelWorldProcess.hh +++ b/source/processes/scoring/include/G4ParallelWorldProcess.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ParallelWorldProcess.hh 68733 2013-04-05 09:45:28Z gcosmo $ +// $Id: G4ParallelWorldProcess.hh 95193 2016-01-29 08:23:25Z gcosmo $ // GEANT4 tag $Name: geant4-09-04-ref-00 $ // // @@ -79,7 +79,7 @@ public: // with description //------------------------ G4ParallelWorldProcess(const G4String& processName = "ParaWorld", - G4ProcessType theType = fParameterisation); + G4ProcessType theType = fParallel); virtual ~G4ParallelWorldProcess(); //-------------------------------------------------------------- diff --git a/source/processes/scoring/src/G4ParallelWorldProcess.cc b/source/processes/scoring/src/G4ParallelWorldProcess.cc index 7cc4222959..e8edf850dc 100755 --- a/source/processes/scoring/src/G4ParallelWorldProcess.cc +++ b/source/processes/scoring/src/G4ParallelWorldProcess.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ParallelWorldProcess.cc 88349 2015-02-16 08:47:16Z gcosmo $ +// $Id: G4ParallelWorldProcess.cc 95193 2016-01-29 08:23:25Z gcosmo $ // GEANT4 tag $Name: geant4-09-04-ref-00 $ // // @@ -60,9 +60,11 @@ G4int G4ParallelWorldProcess::GetHypNavigatorID() G4ParallelWorldProcess:: G4ParallelWorldProcess(const G4String& processName,G4ProcessType theType) -:G4VProcess(processName,theType), fGhostNavigator(0), fNavigatorID(-1), - fFieldTrack('0'),layeredMaterialFlag(false) +:G4VProcess(processName,theType),fGhostWorld(nullptr),fGhostNavigator(nullptr), + fNavigatorID(-1),fFieldTrack('0'),fGhostSafety(0.),fOnBoundary(false), + layeredMaterialFlag(false) { + SetProcessSubType(491); if(!fpHyperStep) fpHyperStep = new G4Step(); iParallelWorld = ++nParallelWorlds; @@ -77,10 +79,6 @@ G4ParallelWorldProcess(const G4String& processName,G4ProcessType theType) fPathFinder = G4PathFinder::GetInstance(); fGhostWorldName = "** NotDefined **"; - fGhostWorld = 0; - fGhostSafety = 0.; - fOnBoundary = false; - G4ParallelWorldProcessStore::GetInstance()->SetParallelWorld(this,processName); if (verboseLevel>0) diff --git a/source/run/History b/source/run/History index 5ecb863ea2..b955725206 100644 --- a/source/run/History +++ b/source/run/History @@ -1,4 +1,4 @@ -$Id: History 94420 2015-11-16 08:18:40Z gcosmo $ +$Id: History 97386 2016-06-02 10:01:40Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,72 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +June 1, 2016 M.Asai (run-V10-02-12) +- G4PhysicsListHelper.cc: Fix the default process ordering parameters + for G4UnknownDecay that should not have AtRest. + +June 1, 2016 L.Desorgher (run-V10-02-11) +- G4AdjointSimManager correction in the use of run actions to avoid + infinite loop during an adjoint simulation. +- G4AdjointPrimaryGenerationAction. Remove 3 times spliting of + primary adjoint gamma. + +Apr 15rd, 2016 V.Ivanchenko(run-V10-02-10) +- G4PhysicsListHelper - disable msc PostStep + +Feb 23rd, 2016 A.Dotti (run-V10-02-09) +- minor typos correction in output + +Feb 22nd, 2016 A.Dotti (run-V10-02-08) +- Introduce new UI command: /run/workersProcessCmds to trigger + execution of UI commands by workers even without a /run/beamOn + C++ API is G4MTRunManager::RequestWorkersProcessCommandsStack() +- When workers are terminated they execute the UI commands issued + after the last /run/beamOn + +Feb 18th, 2016 A.Dotti (run-V10-02-07) +- Fix compilation in WIN attempt #1 + +Feb 18th, 2016 A.Dotti (run-V10-02-06) +- Use new class G4MTBarrier to implement synchronization points. + +Feb 9th, 2016 A.Dotti (run-V10-02-05) +- Fix typo of G4CONDITIONBORADCAST (requires global-V10-02-03) +- use scoped enum for G4MTRunManager:: WorkerAcitonRequest and + add PROCESSUI action +- add G4MTRunManager::GetNumberActiveThreads() method +- Introduced skeleton for new functionality to force workers to + execute UI commands w/o beamOn (not functioning yet) + +Feb 5th, 2016 P.Gumplinger (run-V10-02-04) +- fix val-grind memory leakage check tool error in G4RunMessenger + +Feb 1st, 2016 A.Dotti (run-V10-02-03) +- removing automatic handling of multi-user actions + in G4RunManager::SetUserAction(XYZ) (tag run-V10-02-01) since + reverse MC needs ability to replace user-actions. + if needed, multiple user-actions must be instantiated and handled by + user code + +Jan 29th, 2016 A.Dotti (run-V10-02-02) +- Renaming all MT related exception to have code matching pattern: + Run01[0-9]{2} current maximum number Run0127 + (JIRA TASK: DEV-74) + +Jan 19th, 2016 A.Dotti (run-V10-02-01) +- Adding G4MultiRunAction to allow multiple run actions in a single + job. +- Adding G4MultiPrimaryAction to allow multiple user-primary generation + actions in a single job +- Adding hangling of multiple actions. Requires event-V10-02-01 and + tracking-V10-02-00 + +Jan 27th, 2016 M.Asai (run-V10-02-00) +- G4PhysicsListHelper: add entry for G4ParallelWorldProcess +- G4RunManager, G4WorkerRunManager: change process order index of + G4ParallelWorldProcess to 9900 to make sure it is registered + prior to G4OpBoundaryProcess. + Nov 14th, 2015 M.Asai (run-V10-01-16) - Co-working with particles-V10-01-17. Destructor of G4WorkerRunManagerKernel invokes G4ParticleTable::DestroyWorkerG4ParticleTable() to cleanly delete diff --git a/source/run/include/G4MTRunManager.hh b/source/run/include/G4MTRunManager.hh index 7139518da8..68571a0fef 100644 --- a/source/run/include/G4MTRunManager.hh +++ b/source/run/include/G4MTRunManager.hh @@ -37,6 +37,7 @@ #include "G4RunManager.hh" #include "G4Threading.hh" #include "G4RNGHelper.hh" +#include "G4MTBarrier.hh" #include #include @@ -100,6 +101,8 @@ public: //This method is invoked just before spawning the threads to //collect from UI managere the list of commands that threads //will execute. + size_t GetNumberActiveThreads() const { return threads.size(); } + //Returns number of currently active threads private: // Number of worker threads. To be set by SetNumberOfThreads() method. G4int nworkers; @@ -189,12 +192,18 @@ public: public: //Handling of more than one run per thread - enum WorkerActionRequest { + enum class WorkerActionRequest { UNDEFINED , NEXTITERATION , // There is another set of UI commands to be executed + PROCESSUI, // Process UI commands w/o a /run/beamOn ENDWORKER // Terminate thread, work finished }; - + virtual void RequestWorkersProcessCommandsStack(); + //Called to force workers to request and process the UI commands stack + //This will block untill all workers have processed UI commands + virtual void ThisWorkerProcessCommandsStackDone(); + //Called by workers to signal to master it has completed processing of + //UI commands virtual WorkerActionRequest ThisWorkerWaitForNextAction(); //Worker thread barrier //This method should be used by workers' run manager to wait, @@ -243,6 +252,12 @@ protected: public: static G4int SeedOncePerCommunication() { return seedOncePerCommunication; } static void SetSeedOncePerCommunication(G4int val) { seedOncePerCommunication = val; } +protected: + //Barriers: synch points between master and workers + G4MTBarrier beginOfEventLoopBarrier; + G4MTBarrier endOfEventLoopBarrier; + G4MTBarrier nextActionRequestBarrier; + G4MTBarrier processUIBarrier; }; #endif //G4MTRunManager_h diff --git a/source/run/include/G4MultiRunAction.hh b/source/run/include/G4MultiRunAction.hh new file mode 100644 index 0000000000..48fa21002b --- /dev/null +++ b/source/run/include/G4MultiRunAction.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4MultiRunAction.hh 90212 2016-01-27 18:33:12Z adotti $ +// +//--------------------------------------------------------------- +// +// G4MultiRunAction.hh +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// +// class description: +// This class extends G4UserRunAction and allows multiple +// user-defined tracking actions to be used in the same job. +// The class is a vector of user-defined tracking actions. +// This class owns and manages the dependent user-actions. +// Usage: +// There is no need to explicitly use this class as long as the +// user actions are set via G4UserActionInitialization::SetUserAction +// that can be called several times. Explicitly this is what is happening: +// In user-defined action initialization: +// G4MultiRunAction* action = new G4MultiRunAction; +// action->push_back( G4UserRunActionUPtr( new MyUserRunAction ); +// [... add as many as needed ...] +// SetUserAction( action ); +// --------------------------------------------------------------- +// + +#ifndef G4MULTIRUNACTION_HH_ +#define G4MULTIRUNACTION_HH_ + +#include "G4UserRunAction.hh" +#include +#include + +using G4UserRunActionUPtr=std::unique_ptr; +using G4UserRunActionVector=std::vector; + + +class G4MultiRunAction : public G4UserRunAction , public G4UserRunActionVector +{ +public: + G4MultiRunAction() = default; + virtual ~G4MultiRunAction() = default; + virtual G4Run* GenerateRun() override; + virtual void BeginOfRunAction(const G4Run* aRun) override; + virtual void EndOfRunAction(const G4Run* aRun) override; + virtual void SetMaster(G4bool val=true) override; + +}; + +#endif /* SOURCE_RUN_INCLUDE_G4MULTIRUNACTION_HH_ */ diff --git a/source/run/include/G4RNGHelper.hh b/source/run/include/G4RNGHelper.hh index a486c71dfd..5b219c63e7 100644 --- a/source/run/include/G4RNGHelper.hh +++ b/source/run/include/G4RNGHelper.hh @@ -85,7 +85,7 @@ public: G4ExceptionDescription msg; msg << "No seed number "<GetEventID(); +{ + + G4int evt_id=anEvent->GetEventID(); size_t n=ListOfPrimaryAdjParticles.size(); index_particle=size_t(evt_id)-n*(size_t(evt_id)/n); @@ -146,7 +148,7 @@ void G4AdjointPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) //The factor pi is to normalise the weight to the directional flux G4double adjoint_source_area = G4AdjointSimManager::GetInstance()->GetAdjointSourceArea(); G4double adjoint_weight = weight_correction*ComputeEnergyDistWeight(ekin,E1,E2)*adjoint_source_area*pi; - if (ListOfPrimaryFwdParticles[index_particle] ==G4Gamma::Gamma()) adjoint_weight = adjoint_weight/3.; + //if (ListOfPrimaryFwdParticles[index_particle] ==G4Gamma::Gamma()) adjoint_weight = adjoint_weight/3.; adjPrimVertex->SetWeight(adjoint_weight); @@ -155,7 +157,6 @@ void G4AdjointPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) G4AdjointSimManager::GetInstance()->SetAdjointTrackingMode(true); - /* if ( !last_generated_part_was_adjoint ) { index_particle++; @@ -309,12 +310,14 @@ void G4AdjointPrimaryGeneratorAction::UpdateListOfPrimaryParticles() G4String adj_particle_name = G4String("adj_") + fwd_particle_name; ListOfPrimaryFwdParticles.push_back(theParticleTable->FindParticle(fwd_particle_name)); ListOfPrimaryAdjParticles.push_back(theParticleTable->FindParticle(adj_particle_name)); + /* if ( fwd_particle_name == "gamma") { for (G4int i=0;i<2;i++){ ListOfPrimaryFwdParticles.push_back(theParticleTable->FindParticle(fwd_particle_name)); ListOfPrimaryAdjParticles.push_back(theParticleTable->FindParticle(adj_particle_name)); } } + */ } else { if (fwd_ion ){ diff --git a/source/run/src/G4AdjointSimManager.cc b/source/run/src/G4AdjointSimManager.cc index 71b67b629d..eca61e9832 100644 --- a/source/run/src/G4AdjointSimManager.cc +++ b/source/run/src/G4AdjointSimManager.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4AdjointSimManager.cc 86968 2014-11-21 11:52:04Z gcosmo $ +// $Id: G4AdjointSimManager.cc 97327 2016-06-01 14:24:40Z gcosmo $ // ///////////////////////////////////////////////////////////////////////////// // Class Name: G4AdjointCrossSurfChecker @@ -102,10 +102,10 @@ G4AdjointSimManager::G4AdjointSimManager(): //Define user action and set this class instance as RunAction //---------------- - DefineUserActions(); - G4RunManager* theRunManager = G4RunManager::GetRunManager(); + //DefineUserActions(); + //G4RunManager* theRunManager = G4RunManager::GetRunManager(); - theRunManager->G4RunManager::SetUserAction(this); + //theRunManager->G4RunManager::SetUserAction(this); /* #ifdef G4MULTITHREADED @@ -158,6 +158,7 @@ void G4AdjointSimManager::RunAdjointSimulation(G4int nb_evt) //------------ nb_evt_of_last_run =nb_evt; + G4cout<<"Test Sim Adjoint1"<BeamOn(nb_evt*theAdjointPrimaryGeneratorAction->GetNbOfAdjointPrimaryTypes()); //G4RunManager::GetRunManager()->BeamOn(theAdjointPrimaryGeneratorAction->GetNbOfAdjointPrimaryTypes()*2*nb_evt); @@ -233,9 +234,10 @@ void G4AdjointSimManager::SetAdjointActions() if (!user_action_already_defined) DefineUserActions(); + //Replace the user action by the adjoint actions //------------------------------------------------- - + theRunManager->G4RunManager::SetUserAction(this); theRunManager->G4RunManager::SetUserAction(theAdjointPrimaryGeneratorAction); theRunManager->G4RunManager::SetUserAction(theAdjointStackingAction); if (use_user_StackingAction) theAdjointStackingAction->SetUserFwdStackingAction(fUserStackingAction); @@ -271,7 +273,7 @@ void G4AdjointSimManager::ResetUserActions() //Restore the user defined actions //------------------------------- - + theRunManager->G4RunManager::SetUserAction(fUserRunAction); theRunManager->G4RunManager::SetUserAction(fUserEventAction); theRunManager->G4RunManager::SetUserAction(fUserSteppingAction); theRunManager->G4RunManager::SetUserAction(fUserTrackingAction); @@ -620,12 +622,16 @@ void G4AdjointSimManager::SetNbOfPrimaryFwdGammasPerEvent(G4int nb) void G4AdjointSimManager::BeginOfRunAction(const G4Run* aRun) { +/* if (!adjoint_sim_mode){ if(fUserRunAction) fUserRunAction->BeginOfRunAction(aRun); } else { if (theAdjointRunAction) theAdjointRunAction->BeginOfRunAction(aRun); } + */ +fUserRunAction->BeginOfRunAction(aRun); + } /////////////////////////////////////////////////////////////////////////////// // diff --git a/source/run/src/G4MTRunManager.cc b/source/run/src/G4MTRunManager.cc index f07d443343..cdef2a36ff 100644 --- a/source/run/src/G4MTRunManager.cc +++ b/source/run/src/G4MTRunManager.cc @@ -55,13 +55,6 @@ namespace { G4Mutex setUpEventMutex = G4MUTEX_INITIALIZER; } -//This is needed to initialize windows conditions -#if defined(WIN32) -namespace { - void InitializeWindowsConditions(); -} -#endif - G4MTRunManager* G4MTRunManager::GetMasterRunManager() { ////////#ifdef G4MULTITHREADED @@ -84,14 +77,14 @@ G4MTRunManagerKernel* G4MTRunManager::GetMTMasterRunManagerKernel() G4MTRunManager::G4MTRunManager() : G4RunManager(masterRM), nworkers(2),forcedNwokers(-1),pinAffinity(0), masterRNGEngine(0), - nextActionRequest(UNDEFINED), + nextActionRequest(WorkerActionRequest::UNDEFINED), eventModuloDef(0),eventModulo(1), nSeedsUsed(0),nSeedsFilled(0), nSeedsMax(10000),nSeedsPerEvent(2) { if ( fMasterRM ) { - G4Exception("G4MTRunManager::G4MTRunManager", "Run0035",FatalException, + G4Exception("G4MTRunManager::G4MTRunManager", "Run0110",FatalException, "Another instance of a G4MTRunManager already exists."); } fMasterRM = this; @@ -101,7 +94,7 @@ G4MTRunManager::G4MTRunManager() : G4RunManager(masterRM), msg << "Geant4 code is compiled without multi-threading support" << "(-DG4MULTITHREADED is set to off).\n"; msg << "G4MTRunManager can only be used in multi-threaded applications."; - G4Exception("G4MTRunManager::G4MTRunManager","Run0035",FatalException,msg); + G4Exception("G4MTRunManager::G4MTRunManager","Run0111",FatalException,msg); #endif G4int numberOfStaticAllocators = kernel->GetNumberOfStaticAllocators(); @@ -122,9 +115,6 @@ G4MTRunManager::G4MTRunManager() : G4RunManager(masterRM), //G4Random::getTheEngine(); //User did not specify RNG, create defaults //Now remember the master instance of the RNG Engine masterRNGEngine = G4Random::getTheEngine(); -#if defined (WIN32) - InitializeWindowsConditions(); -#endif numberOfEventToBeProcessed = 0; randDbl = new double[nSeedsPerEvent*nSeedsMax]; @@ -185,7 +175,7 @@ void G4MTRunManager::SetNumberOfThreads(G4int n ) msg << "Number of threads cannot be changed at this moment \n" << "(old threads are still alive). Method ignored."; G4Exception("G4MTRunManager::SetNumberOfThreads(G4int)", - "Run0035", JustWarning, msg); + "Run0112", JustWarning, msg); } else if ( forcedNwokers > 0 ) { @@ -194,7 +184,7 @@ void G4MTRunManager::SetNumberOfThreads(G4int n ) << " by G4FORCENUMBEROFTHREADS shell variable.\n" << "Method ignored."; G4Exception("G4MTRunManager::SetNumberOfThreads(G4int)", - "Run0035", JustWarning, msg); + "Run0113", JustWarning, msg); } else { @@ -259,7 +249,7 @@ void G4MTRunManager::CreateAndStartWorkers() } } //Signal to threads they can start a new run - NewActionRequest(NEXTITERATION); + NewActionRequest(WorkerActionRequest::NEXTITERATION); } @@ -448,31 +438,31 @@ void G4MTRunManager::SetUserAction(G4UserRunAction* userAction) void G4MTRunManager::SetUserAction(G4VUserPrimaryGeneratorAction* /*userAction*/) { - G4Exception("G4MTRunManager::SetUserAction()", "Run3011", FatalException, + G4Exception("G4MTRunManager::SetUserAction()", "Run0123", FatalException, "For multi-threaded version, define G4VUserPrimaryGeneratorAction in G4VUserActionInitialization."); } void G4MTRunManager::SetUserAction(G4UserEventAction* /*userAction*/) { - G4Exception("G4MTRunManager::SetUserAction()", "Run3011", FatalException, + G4Exception("G4MTRunManager::SetUserAction()", "Run0124", FatalException, "For multi-threaded version, define G4UserEventAction in G4VUserActionInitialization."); } void G4MTRunManager::SetUserAction(G4UserStackingAction* /*userAction*/) { - G4Exception("G4MTRunManager::SetUserAction()", "Run3011", FatalException, + G4Exception("G4MTRunManager::SetUserAction()", "Run0125", FatalException, "For multi-threaded version, define G4UserStackingAction in G4VUserActionInitialization."); } void G4MTRunManager::SetUserAction(G4UserTrackingAction* /*userAction*/) { - G4Exception("G4MTRunManager::SetUserAction()", "Run3011", FatalException, + G4Exception("G4MTRunManager::SetUserAction()", "Run0126", FatalException, "For multi-threaded version, define G4UserTrackingAction in G4VUserActionInitialization."); } void G4MTRunManager::SetUserAction(G4UserSteppingAction* /*userAction*/) { - G4Exception("G4MTRunManager::SetUserAction()", "Run3011", FatalException, + G4Exception("G4MTRunManager::SetUserAction()", "Run0127", FatalException, "For multi-threaded version, define G4UserSteppingAction in G4VUserActionInitialization."); } @@ -542,7 +532,10 @@ G4int G4MTRunManager::SetUpNEvents(G4Event* evt, G4SeedsQueue* seedsQueue,G4bool void G4MTRunManager::TerminateWorkers() { - NewActionRequest( ENDWORKER ); + //Force workers to execute (if any) all UI commands left in the stack + RequestWorkersProcessCommandsStack(); + //Ask workers to exit + NewActionRequest( WorkerActionRequest::ENDWORKER ); //Now join threads. #ifdef G4MULTITHREADED //protect here to prevent warning in compilation while ( ! threads.empty() ) @@ -578,328 +571,55 @@ void G4MTRunManager::AbortEvent() // nothing to do in the master thread } -// ===================================== -// Barriers mechanism -// ===================================== -// We want to implement barriers. -// We define a barrier has a point in which threads synchronize. -// When workers threads reach a barrier they wait for the master thread a -// signal that they can continue. The master thread broadcast this signal -// only when all worker threads have reached this point. -// Currently only three points require this sync in the life-time of a G4 applicattion: -// Just before and just after the for-loop controlling the thread event-loop. -// Between runs. -// TODO: If this mechanism is needed in other parts of the code we can provide -// the barrier mechanism as a utility class/functions to the kernel. -// Note: we need a special treatment for WIN32 -// -// The basic algorith of each barrier works like this: -// In the master: -// WaitWorkers() { -// while (true) -// { -// G4AutoLock l(&counterMutex); || Mutex is locked (1) -// if ( counter == nActiveThreads ) break; -// G4CONDITIONWAIT( &conditionOnCounter, &counterMutex); || Mutex is atomically released and wait, upon return locked (2) -// } || unlock mutex -// G4AutoLock l(&counterMutex); || lock again mutex (3) -// G4CONDITIONBROADCAST( &doSomethingCanStart ); || Here mutex is locked (4) -// } || final unlock (5) -// In the workers: -// WaitSignalFromMaster() { -// G4AutoLock l(&counterMutex); || (6) -// ++counter; -// G4CONDITIONBROADCAST(&conditionOnCounter); || (7) -// G4CONDITIONWAIT( &doSomethingCanStart , &counterMutex);|| (8) -// } -// Each barriers requires 2 conditions and one mutex, plus a counter. -// Important note: the thread calling broadcast should hold the mutex -// before calling broadcast to obtain predictible behavior -// http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_cond_broadcast.html -// Also remember that the wait for condition will atomically release the mutex -// and wait on condition, but it will lock again on mutex when returning -// Here it is how the control flows. -// Imagine master starts and only one worker (nActiveThreads==1) -// Master | Worker | counter | Who holds mutex -// Gets to (1) | Blocks on (6) | 0 | M -// Waits in (2) | | 0 | - -// | Arrives to (7) | 1 | W -// | Waits in (8) | 1 | - -// Gets to (1) | | 1 | M -// Jumps to (3) | | 1 | M -// End | | 1 | - -// | End | 1 | - -// Similarly for more than one worker threads or if worker starts - -#ifdef WIN32 -#include //For CRITICAL_SECTION objects -#endif -namespace { - //Avoid compilation warning if squenetial for unused variables -#ifdef G4MULTITHREADED - //Conditions - // Condition to signal green light for start of event loop - G4Condition beginEventLoopCondition = G4CONDITION_INITIALIZER; - // Condition to signal green light to finish event loop - // (actuallyt exit function performing event loop) - G4Condition endEventLoopCondition = G4CONDITION_INITIALIZER; - // Condition to signal the num of workers ready for event loop has changed - G4Condition numWorkersBeginEventLoopChangeCondition = G4CONDITION_INITIALIZER; - // Condition to signal the num of workers that terminated event loop - // has changed - G4Condition numWorkersEndEventLoopChangedCondition = G4CONDITION_INITIALIZER; - // This condition is to handle more than one run w/o killing threads - G4Condition requestChangeActionForWorker = G4CONDITION_INITIALIZER; - G4Condition numberOfReadyWorkersForNewActionChangedCondition = G4CONDITION_INITIALIZER; -#endif - // Counter/mutex for workers ready to begin event loop - G4Mutex numberOfReadyWorkersMutex = G4MUTEX_INITIALIZER; - G4int numberOfReadyWorkers = 0; - //Counter/mutex for workers with end of event loop - G4Mutex numberOfEndOfEventLoopWorkersMutex = G4MUTEX_INITIALIZER; - G4int numberOfEndOfEventLoopWorkers = 0; - // - //Action handling - G4Mutex nextActionRequestMutex = G4MUTEX_INITIALIZER; - G4int numberOfReadyWorkersForNewAction = 0; - G4Mutex numberOfReadyWorkersForNewActionMutex = G4MUTEX_INITIALIZER; -#ifdef WIN32 - CRITICAL_SECTION cs1; - CRITICAL_SECTION cs2; - CRITICAL_SECTION cs3; - //Note we need to use two separate counters because - //we can get a situation in which a thread is much faster then the others - //(for example if last thread has less events to process. - //We have the extreme case of some medical applications (moving setups) - //in which the number of events of a run is ~ number of threads - void InitializeWindowsConditions() - { - #ifdef G4MULTITHREADED - InitializeConditionVariable( &beginEventLoopCondition ); - InitializeConditionVariable( &endEventLoopCondition ); - InitializeConditionVariable( &numWorkersBeginEventLoopChangeCondition ); - InitializeConditionVariable( &numWorkersEndEventLoopChangedCondition ); - InitializeConditionVariable( &requestChangeActionForWorker); - InitializeConditionVariable( &numberOfReadyWorkersForNewActionChangedCondition ); - #endif - InitializeCriticalSection( &cs1 ); - InitializeCriticalSection( &cs2 ); - InitializeCriticalSection( &cs3 ); - } -#endif +void G4MTRunManager::WaitForReadyWorkers() { + beginOfEventLoopBarrier.Wait( GetNumberActiveThreads() ); + endOfEventLoopBarrier.ResetCounter(); + beginOfEventLoopBarrier.ReleaseBarrier(); } -void G4MTRunManager::WaitForReadyWorkers() -{ - while (true) //begin barrier - { -#ifndef WIN32 - G4AutoLock lockLoop(&numberOfReadyWorkersMutex); -#else - EnterCriticalSection( &cs1 ); -#endif - //Check number of workers ready to begin - G4int activethreads = threads.size(); - if (numberOfReadyWorkers == activethreads ) - { - //Ok, interrupt the loop - break; - } - //Wait for the number of workers to be changed -#ifdef WIN32 - G4CONDITIONWAIT(&numWorkersBeginEventLoopChangeCondition, - &cs1); - LeaveCriticalSection( &cs1 ); -#else - G4CONDITIONWAIT(&numWorkersBeginEventLoopChangeCondition, - &numberOfReadyWorkersMutex); -#endif - } - //Now number of workers is as expected. -////// static G4bool createIsomerOnlyOnce = false; -////// if(!createIsomerOnlyOnce) -////// { -////// createIsomerOnlyOnce = true; -////// G4ParticleDefinition* gion = G4ParticleTable::GetParticleTable()->GetGenericIon(); -////// if(gion) -////// { -////// ////G4ParticleTable::GetParticleTable()->GetIonTable()->CreateAllIsomer(); -////// G4int gionId = gion->GetParticleDefinitionID(); -////// G4ParticleTable::G4PTblDicIterator* pItr = G4ParticleTable::GetParticleTable()->GetIterator(); -////// pItr->reset(false); -////// while( (*pItr)() ) -////// { -////// G4ParticleDefinition* particle = pItr->value(); -////// if(particle->IsGeneralIon()) particle->SetParticleDefinitionID(gionId); -////// } -////// } -////// } - - //Prepare to wait for workers to end eventloop - //Reset number of workers in "EndOfEventLoop" - G4AutoLock l(&numberOfEndOfEventLoopWorkersMutex); - numberOfEndOfEventLoopWorkers = 0; - - //signal workers they can start the event-loop - G4AutoLock l2(&numberOfReadyWorkersMutex); - G4CONDTIONBROADCAST(&beginEventLoopCondition); +void G4MTRunManager::ThisWorkerReady() { + beginOfEventLoopBarrier.ThisWorkerReady(); } -void G4MTRunManager::ThisWorkerReady() -{ - //Increament number of active worker by 1 -#ifndef WIN32 - G4AutoLock lockLoop(&numberOfReadyWorkersMutex); -#else - EnterCriticalSection( &cs1 ); -#endif - ++numberOfReadyWorkers; - //Signal the number of workers has changed - G4CONDTIONBROADCAST(&numWorkersBeginEventLoopChangeCondition); - //Wait for condition to start eventloop -#ifdef WIN32 - G4CONDITIONWAIT(&beginEventLoopCondition,&cs1); - LeaveCriticalSection( &cs1 ); -#else - G4CONDITIONWAIT(&beginEventLoopCondition,&numberOfReadyWorkersMutex); -#endif - //Protects access to shared resource, guarantees we do not call this method - //while someone else is modifying its content (e.g. creating a new particle) - //G4PDefManager& pdm = const_cast(G4ParticleDefinition::GetSubInstanceManager()); - //pdm.Lock(); - //pdm.NewSubInstances(); - //pdm.UnLock(); - //const_cast(G4ParticleDefinition::GetSubInstanceManager()).NewSubInstances(); - // I believe this is not necessary and safe to remove (Makoto) - //G4ParticleTable::GetParticleTable()->WorkerG4ParticleTable(); +void G4MTRunManager::WaitForEndEventLoopWorkers() { + endOfEventLoopBarrier.Wait( GetNumberActiveThreads() ); + beginOfEventLoopBarrier.ResetCounter(); + endOfEventLoopBarrier.ReleaseBarrier(); } - -void G4MTRunManager::WaitForEndEventLoopWorkers() -{ - while (true) - { -#ifndef WIN32 - G4AutoLock l(&numberOfEndOfEventLoopWorkersMutex); -#else - EnterCriticalSection( &cs2 ); -#endif - G4int activethreads = threads.size(); - if ( numberOfEndOfEventLoopWorkers == activethreads ) - { - break; - } -#ifdef WIN32 - G4CONDITIONWAIT(&numWorkersEndEventLoopChangedCondition, - &cs2); - LeaveCriticalSection( &cs2 ); -#else - G4CONDITIONWAIT(&numWorkersEndEventLoopChangedCondition, - &numberOfEndOfEventLoopWorkersMutex); -#endif - } - //Now number of workers that reached end of event loop is as expected - //Reset number of workers in ready for work state so a new run can start - G4AutoLock l(&numberOfReadyWorkersMutex); - numberOfReadyWorkers = 0; - //Signal workers they can end event-loop - G4AutoLock l2(&numberOfEndOfEventLoopWorkersMutex); - G4CONDTIONBROADCAST(&endEventLoopCondition); +void G4MTRunManager::ThisWorkerEndEventLoop() { + endOfEventLoopBarrier.ThisWorkerReady(); } -void G4MTRunManager::ThisWorkerEndEventLoop() -{ - //Increament number of workers in end of evnet loop by 1 -#ifndef WIN32 - G4AutoLock l(&numberOfEndOfEventLoopWorkersMutex); -#else - EnterCriticalSection( &cs2 ); -#endif - ++numberOfEndOfEventLoopWorkers; - //Signale this number has changed - G4CONDTIONBROADCAST(&numWorkersEndEventLoopChangedCondition); - //Wait for condition to exit eventloop -#ifdef WIN32 - G4CONDITIONWAIT(&endEventLoopCondition,&cs2); - LeaveCriticalSection( &cs2 ); -#else - G4CONDITIONWAIT(&endEventLoopCondition,&numberOfEndOfEventLoopWorkersMutex); -#endif +void G4MTRunManager::NewActionRequest(G4MTRunManager::WorkerActionRequest newRequest) { + nextActionRequestBarrier.Wait( GetNumberActiveThreads() ); + //nextActionRequest is a shared resource, but there is no + //data-race thanks to the barrier: all threads are waiting + nextActionRequest = newRequest; + nextActionRequestBarrier.ReleaseBarrier(); } -void G4MTRunManager::NewActionRequest(G4MTRunManager::WorkerActionRequest newRequest) -{ - //Wait for all workers to be ready to accept a new action request - while (true) - { -#ifndef WIN32 - G4AutoLock l(&numberOfReadyWorkersForNewActionMutex); -#else - EnterCriticalSection( &cs3 ); -#endif - //Check the number of workers that are ready for next action - G4int activethreads = threads.size(); - if ( numberOfReadyWorkersForNewAction == activethreads ) - { - //Ok, exit the loop - break; - } - //Wait for the number of workers ready for new action to change -#ifdef WIN32 - G4CONDITIONWAIT(&numberOfReadyWorkersForNewActionChangedCondition, - &cs3); - LeaveCriticalSection( &cs3 ); -#else - G4CONDITIONWAIT(&numberOfReadyWorkersForNewActionChangedCondition, - &numberOfReadyWorkersForNewActionMutex); -#endif - } - //Now set the new action to the shared resource - G4AutoLock l(&nextActionRequestMutex); - nextActionRequest = newRequest; - l.unlock(); - //Reset counter of workers ready-for-new-action in preparation of next call - G4AutoLock l2(&numberOfReadyWorkersForNewActionMutex); - numberOfReadyWorkersForNewAction = 0; - //l2.unlock(); //<----- This thread needs to have control on mutex associated - //to condition variable (report from valgrind --tool=drd) - //see: http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Fapis%2Fusers_73.htm - //Now signal all workers that there is a new action to be performed - G4CONDTIONBROADCAST(&requestChangeActionForWorker); +G4MTRunManager::WorkerActionRequest G4MTRunManager::ThisWorkerWaitForNextAction() { + nextActionRequestBarrier.ThisWorkerReady(); + return nextActionRequest; } -G4MTRunManager::WorkerActionRequest G4MTRunManager::ThisWorkerWaitForNextAction() -{ - //This worker is ready to receive a new action request, - //increment counter by 1 - #ifndef WIN32 - G4AutoLock l(&numberOfReadyWorkersForNewActionMutex); -#else - EnterCriticalSection( &cs3 ); -#endif - ++numberOfReadyWorkersForNewAction; - //Singal the sahred resource has changed to the master - G4CONDTIONBROADCAST(&numberOfReadyWorkersForNewActionChangedCondition); - //Wait for condition that a new aciton is ready -#ifdef WIN32 - G4CONDITIONWAIT(&requestChangeActionForWorker,&cs3); - LeaveCriticalSection( &cs3 ); -#else - G4CONDITIONWAIT(&requestChangeActionForWorker,&numberOfReadyWorkersForNewActionMutex); -#endif - //Ok, if I am here it means that a new action has been requested by the master - //reads it value that is now read-only, so no mutex is needed, but you never know... - G4AutoLock l2(&nextActionRequestMutex); - WorkerActionRequest result = nextActionRequest; - return result; +void G4MTRunManager::RequestWorkersProcessCommandsStack() { + PrepareCommandsStack(); + NewActionRequest(WorkerActionRequest::PROCESSUI); + processUIBarrier.SetActiveThreads( GetNumberActiveThreads() ); + processUIBarrier.WaitForReadyWorkers(); } +void G4MTRunManager::ThisWorkerProcessCommandsStackDone() { + processUIBarrier.ThisWorkerReady(); +} void G4MTRunManager::SetPinAffinity(G4int n) { if ( n == 0 ) { G4Exception("G4MTRunManager::SetPinAffinity", - "Run0035",FatalException, + "Run0114",FatalException, "Pin affinity must be >0 or <0."); } pinAffinity = n; diff --git a/source/run/src/G4MTRunManagerKernel.cc b/source/run/src/G4MTRunManagerKernel.cc index bd695a4b8c..90d690a843 100644 --- a/source/run/src/G4MTRunManagerKernel.cc +++ b/source/run/src/G4MTRunManagerKernel.cc @@ -42,7 +42,7 @@ G4MTRunManagerKernel::G4MTRunManagerKernel() : G4RunManagerKernel(masterRMK) G4ExceptionDescription msg; msg<<"Geant4 code is compiled without multi-threading support (-DG4MULTITHREADED is set to off)."; msg<<" This type of RunManager can only be used in mult-threaded applications."; - G4Exception("G4RunManagerKernel::G4RunManagerKernel()","Run0035",FatalException,msg); + G4Exception("G4RunManagerKernel::G4RunManagerKernel()","Run0109",FatalException,msg); #endif G4AutoLock l(&workerRMMutex); if(!workerRMvector) workerRMvector = new std::vector; diff --git a/source/run/src/G4MultiRunAction.cc b/source/run/src/G4MultiRunAction.cc new file mode 100644 index 0000000000..62cd99740a --- /dev/null +++ b/source/run/src/G4MultiRunAction.cc @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4MultiRunAction.hh 90212 2016-01-27 18:33:12Z adotti $ +// +//--------------------------------------------------------------- +// +// G4MultiRunAction.hh +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// --------------------------------------------------------------- +// + +#include "G4MultiRunAction.hh" +#include "G4Run.hh" +#include + +G4Run* G4MultiRunAction::GenerateRun() { + G4Run* aRun = nullptr; + for ( auto& ru : *this ) { + auto anotherRun = ru->GenerateRun(); + if ( aRun != nullptr && anotherRun != nullptr ) { + G4Exception("G4MultiRunAction::GenerateRun()","Run0036",FatalException, + "More than one registered UserRunAction return an instance"\ + " of G4Run, not allowed."); + return nullptr; + } + aRun = anotherRun; + } + return aRun; +} + +void G4MultiRunAction::BeginOfRunAction(const G4Run* run) { + std::for_each( begin() , end() , + [run](G4UserRunActionUPtr& e) { e->BeginOfRunAction(run); } + ); +} + +void G4MultiRunAction::EndOfRunAction(const G4Run* run) { + std::for_each( begin() , end() , + [run](G4UserRunActionUPtr& e) { e->EndOfRunAction(run); } + ); +} + +void G4MultiRunAction::SetMaster(G4bool val) { + G4UserRunAction::SetMaster(val); + std::for_each( begin() , end() , + [val](G4UserRunActionUPtr& e) { e->SetMaster(val); } + ); + +} + diff --git a/source/run/src/G4PhysicsListHelper.cc b/source/run/src/G4PhysicsListHelper.cc index 6483dc551f..e8a84ab458 100644 --- a/source/run/src/G4PhysicsListHelper.cc +++ b/source/run/src/G4PhysicsListHelper.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PhysicsListHelper.cc 82663 2014-07-02 08:57:58Z gcosmo $ +// $Id: G4PhysicsListHelper.cc 97386 2016-06-02 10:01:40Z gcosmo $ // // // ------------------------------------------------------------ @@ -676,7 +676,7 @@ void G4PhysicsListHelper::ReadInDefaultOrderingParameter() tmp.processSubType = 10; tmp.ordering[0] = -1; tmp.ordering[1] = 1; - tmp.ordering[2] = 1; + tmp.ordering[2] = -1; tmp.isDuplicable = false; theTable->push_back(tmp); sizeOfTable +=1; @@ -1064,7 +1064,7 @@ void G4PhysicsListHelper::ReadInDefaultOrderingParameter() tmp.processTypeName = "DecayUnKnown"; tmp.processType = 6; tmp.processSubType = 211; - tmp.ordering[0] = 1000; + tmp.ordering[0] = -1; tmp.ordering[1] = -1; tmp.ordering[2] = 1000; tmp.isDuplicable = false; @@ -1110,6 +1110,16 @@ void G4PhysicsListHelper::ReadInDefaultOrderingParameter() tmp.isDuplicable = false; theTable->push_back(tmp); sizeOfTable +=1; + + tmp.processTypeName = "ParallelWorld"; + tmp.processType = 10; + tmp.processSubType = 491; + tmp.ordering[0] = 9900; + tmp.ordering[1] = 1; + tmp.ordering[2] = 9900; + tmp.isDuplicable = true; + theTable->push_back(tmp); + sizeOfTable +=1; } diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc index 0a5679e37c..1aa3258a85 100644 --- a/source/run/src/G4RunManager.cc +++ b/source/run/src/G4RunManager.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4RunManager.cc 90233 2015-05-21 08:56:28Z gcosmo $ +// $Id: G4RunManager.cc 95232 2016-02-01 14:31:22Z gcosmo $ // // @@ -59,10 +59,10 @@ #include "G4UImanager.hh" #include "G4ProductionCutsTable.hh" #include "G4ParallelWorldProcessStore.hh" - #include "G4ios.hh" #include + using namespace CLHEP; G4ThreadLocal G4RunManager* G4RunManager::fRunManager = 0; @@ -139,7 +139,7 @@ G4RunManager::G4RunManager( RMType rmType ) G4ExceptionDescription msg; msg<<"Geant4 code is compiled without multi-threading support (-DG4MULTITHREADED is set to off)."; msg<<" This type of RunManager can only be used in mult-threaded applications."; - G4Exception("G4RunManager::G4RunManager(G4bool)","Run0035",FatalException,msg); + G4Exception("G4RunManager::G4RunManager(G4bool)","Run0107",FatalException,msg); #endif if(fRunManager) @@ -161,7 +161,7 @@ G4RunManager::G4RunManager( RMType rmType ) default: G4ExceptionDescription msgx; msgx<<" This type of RunManager can only be used in mult-threaded applications."; - G4Exception("G4RunManager::G4RunManager(G4bool)","Run0035",FatalException,msgx); + G4Exception("G4RunManager::G4RunManager(G4bool)","Run0108",FatalException,msgx); return; } runManagerType = rmType; @@ -765,9 +765,9 @@ void G4RunManager::ConstructScoringWorlds() { pmanager->AddProcess(theParallelWorldProcess); if(theParallelWorldProcess->IsAtRestRequired(particle)) - { pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9999); } + { pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9900); } pmanager->SetProcessOrderingToSecond(theParallelWorldProcess, idxAlongStep); - pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9999); + pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9900); } } } @@ -860,10 +860,14 @@ void G4RunManager::SetUserInitialization(G4VUserActionInitialization* userInit) } void G4RunManager::SetUserAction(G4UserRunAction* userAction) -{ userRunAction = userAction; } +{ + userRunAction = userAction; +} void G4RunManager::SetUserAction(G4VUserPrimaryGeneratorAction* userAction) -{ userPrimaryGeneratorAction = userAction; } +{ + userPrimaryGeneratorAction = userAction; +} void G4RunManager::SetUserAction(G4UserEventAction* userAction) { diff --git a/source/run/src/G4RunManagerKernel.cc b/source/run/src/G4RunManagerKernel.cc index d58164a71d..6c7b9e78d5 100644 --- a/source/run/src/G4RunManagerKernel.cc +++ b/source/run/src/G4RunManagerKernel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4RunManagerKernel.cc 90233 2015-05-21 08:56:28Z gcosmo $ +// $Id: G4RunManagerKernel.cc 95232 2016-02-01 14:31:22Z gcosmo $ // // @@ -156,7 +156,7 @@ numberOfParallelWorld(0),geometryNeedsToBeClosed(true), G4ExceptionDescription msg; msg<<"Geant4 code is compiled without multi-threading support (-DG4MULTITHREADED is set to off)."; msg<<" This type of RunManagerKernel can only be used in mult-threaded applications."; - G4Exception("G4RunManagerKernel::G4RunManagerKernel(G4bool)","Run0035",FatalException,msg); + G4Exception("G4RunManagerKernel::G4RunManagerKernel(G4bool)","Run0105",FatalException,msg); #endif #ifdef G4FPE_DEBUG @@ -197,7 +197,7 @@ numberOfParallelWorld(0),geometryNeedsToBeClosed(true), defaultRegionForParallelWorld = 0; G4ExceptionDescription msgx; msgx<<" This type of RunManagerKernel can only be used in mult-threaded applications."; - G4Exception("G4RunManagerKernel::G4RunManagerKernel(G4bool)","Run0035",FatalException,msgx); + G4Exception("G4RunManagerKernel::G4RunManagerKernel(G4bool)","Run0106",FatalException,msgx); } runManagerKernelType = rmkType; diff --git a/source/run/src/G4RunMessenger.cc b/source/run/src/G4RunMessenger.cc index b03371c430..2cbb6fbc1f 100644 --- a/source/run/src/G4RunMessenger.cc +++ b/source/run/src/G4RunMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4RunMessenger.cc 94337 2015-11-12 10:02:04Z gcosmo $ +// $Id: G4RunMessenger.cc 95634 2016-02-17 08:05:21Z gcosmo $ // #include "G4RunMessenger.hh" @@ -324,6 +324,12 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) randEvtCmd->SetRange("flag>=0 && flag<3"); randEvtCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + procUICmds = new G4UIcmdWithoutParameter("/run/workersProcessCmds",this); + procUICmds->SetToBeBroadcasted(false); + procUICmds->SetGuidance("Force workers to process current stack of UI commands."); + procUICmds->SetGuidance("This commands is meaningful only in MT mode."); + procUICmds->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); + } G4RunMessenger::~G4RunMessenger() @@ -334,6 +340,7 @@ G4RunMessenger::~G4RunMessenger() delete printProgCmd; delete nThreadsCmd; delete maxThreadsCmd; + delete pinAffinityCmd; delete evModCmd; delete optCmd; delete dumpRegCmd; @@ -348,6 +355,7 @@ G4RunMessenger::~G4RunMessenger() delete physCmd; delete randEvtCmd; delete constScoreCmd; + delete procUICmds; delete seedCmd; delete savingFlagCmd; @@ -356,7 +364,7 @@ G4RunMessenger::~G4RunMessenger() delete restoreRandCmd; delete randomDirectory; delete saveEachEventCmd; - + delete randDirCmd; delete runDirectory; @@ -526,6 +534,24 @@ void G4RunMessenger::SetNewValue(G4UIcommand * command,G4String newValue) { runManager->ConstructScoringWorlds(); } else if( command==restoreRandCmdMT) { runManager->RestoreRndmEachEvent(restoreRandCmdMT->GetNewBoolValue(newValue)); } + else if ( command==procUICmds) + { + G4RunManager::RMType rmType = runManager->GetRunManagerType(); + if( rmType==G4RunManager::masterRM ) { + auto rm = dynamic_cast(runManager); + if ( rm != nullptr ) { + rm->RequestWorkersProcessCommandsStack(); + } + else { G4Exception("G4RunManager::ApplyNewCommand","Run0128",FatalException,"/run/workersProcessCmds command issued on a non-G4MTRunManager class instance."); } + } else if ( rmType==G4RunManager::sequentialRM ) { + G4cout<<"*** /run/workersProcessCmds command is issued in sequential mode." + <<"\nCommand is ignored."<WorkerG4ParticleTable(); G4ScoringManager* masterScM = G4MTRunManager::GetMasterScoringManager(); @@ -465,7 +465,7 @@ void G4WorkerRunManager::ConstructScoringWorlds() if(!pWorld) { G4ExceptionDescription ed; - ed<<"Mesh name <"<GetWorldName(iw)<<"> is not found in the masther thread."; + ed<<"Mesh name <"<GetWorldName(iw)<<"> is not found in the master thread."; G4Exception("G4WorkerRunManager::ConstructScoringWorlds()","RUN79001", FatalException,ed); } @@ -493,9 +493,9 @@ void G4WorkerRunManager::ConstructScoringWorlds() { pmanager->AddProcess(theParallelWorldProcess); if(theParallelWorldProcess->IsAtRestRequired(particle)) - { pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9999); } + { pmanager->SetProcessOrdering(theParallelWorldProcess, idxAtRest, 9900); } pmanager->SetProcessOrderingToSecond(theParallelWorldProcess, idxAlongStep); - pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9999); + pmanager->SetProcessOrdering(theParallelWorldProcess, idxPostStep, 9900); } //if(pmanager) }//while } @@ -506,25 +506,25 @@ void G4WorkerRunManager::ConstructScoringWorlds() void G4WorkerRunManager::SetUserInitialization(G4UserWorkerInitialization*) { - G4Exception("G4RunManager::SetUserInitialization(G4UserWorkerInitialization*)", "Run3021", + G4Exception("G4RunManager::SetUserInitialization(G4UserWorkerInitialization*)", "Run0118", FatalException, "This method should be used only with an instance of G4MTRunManager"); } void G4WorkerRunManager::SetUserInitialization(G4UserWorkerThreadInitialization*) { - G4Exception("G4RunManager::SetUserInitialization(G4UserWorkerThreadInitialization*)", "Run3021", + G4Exception("G4RunManager::SetUserInitialization(G4UserWorkerThreadInitialization*)", "Run0119", FatalException, "This method should be used only with an instance of G4MTRunManager"); } void G4WorkerRunManager::SetUserInitialization(G4VUserActionInitialization*) { - G4Exception("G4RunManager::SetUserInitialization(G4VUserActionInitialization*)", "Run3021", + G4Exception("G4RunManager::SetUserInitialization(G4VUserActionInitialization*)", "Run0120", FatalException, "This method should be used only with an instance of G4MTRunManager"); } void G4WorkerRunManager::SetUserInitialization(G4VUserDetectorConstruction*) { - G4Exception("G4RunManager::SetUserInitialization(G4VUserDetectorConstruction*)", "Run3021", + G4Exception("G4RunManager::SetUserInitialization(G4VUserDetectorConstruction*)", "Run0121", FatalException, "This method should be used only with an instance of G4MTRunManager"); } @@ -587,9 +587,9 @@ void G4WorkerRunManager::DoWork() { G4MTRunManager* mrm = G4MTRunManager::GetMasterRunManager(); G4MTRunManager::WorkerActionRequest nextAction = mrm->ThisWorkerWaitForNextAction(); - while( nextAction != G4MTRunManager::ENDWORKER ) + while( nextAction != G4MTRunManager::WorkerActionRequest::ENDWORKER ) { - if( nextAction == G4MTRunManager::NEXTITERATION ) // start the next run + if( nextAction == G4MTRunManager::WorkerActionRequest::NEXTITERATION ) // start the next run { //The following code deals with changing materials between runs static G4ThreadLocal G4bool skipInitialization = true; @@ -604,7 +604,7 @@ void G4WorkerRunManager::DoWork() workerContext->UpdateGeometryAndPhysicsVectorFromMaster(); } - // Execute UI commands stored in the masther UI manager + // Execute UI commands stored in the master UI manager std::vector cmds = mrm->GetCommandStack(); G4UImanager* uimgr = G4UImanager::GetUIpointer(); //TLS instance std::vector::const_iterator it = cmds.begin(); @@ -623,13 +623,20 @@ void G4WorkerRunManager::DoWork() this->BeamOn(numevents,macroFile,numSelect); } } + else if (nextAction == G4MTRunManager::WorkerActionRequest::PROCESSUI ) { + std::vector cmds = mrm->GetCommandStack(); + G4UImanager* uimgr = G4UImanager::GetUIpointer(); //TLS instance + std::vector::const_iterator it = cmds.begin(); + for(;it!=cmds.end();it++) + { uimgr->ApplyCommand(*it); } + mrm->ThisWorkerProcessCommandsStackDone(); + } else { G4ExceptionDescription d; d<<"Cannot continue, this worker has been requested an unknwon action: " - <::type>(nextAction); + G4Exception("G4WorkerRunManager::DoWork","Run0104",FatalException,d); } //Now wait for master thread to signal new action to be performed diff --git a/source/run/src/G4WorkerRunManagerKernel.cc b/source/run/src/G4WorkerRunManagerKernel.cc index b6364571c7..89e42fd13c 100644 --- a/source/run/src/G4WorkerRunManagerKernel.cc +++ b/source/run/src/G4WorkerRunManagerKernel.cc @@ -34,7 +34,7 @@ G4WorkerRunManagerKernel::G4WorkerRunManagerKernel() : G4RunManagerKernel(worker G4ExceptionDescription msg; msg<<"Geant4 code is compiled without multi-threading support (-DG4MULTITHREADED is set to off)."; msg<<" This type of RunManager can only be used in mult-threaded applications."; - G4Exception("G4RunManagerKernel::G4RunManagerKernel()","Run0035",FatalException,msg); + G4Exception("G4RunManagerKernel::G4RunManagerKernel()","Run0102",FatalException,msg); #endif } @@ -63,7 +63,7 @@ void G4WorkerRunManagerKernel::SetupShadowProcess() const msg << "Process manager or process manager shadow to master are not set.\n"; msg << "Particle : "<GetParticleName()<<" ("<GetParticleName()<<">. \n"; msg<<" size of G4ProcessVector for worker thread is "<G4Threading::G4GetNumberOfCores() ) { - G4Exception("G4WorkerThread::SetPinAffinity","Run0035", + G4Exception("G4WorkerThread::SetPinAffinity","Run0100", JustWarning, "Cannot set thread affinity, affinity parameter larger than number of cores"); return; @@ -235,7 +235,7 @@ void G4WorkerThread::SetPinAffinity(G4int affinity) const #endif G4bool success = G4Threading::G4SetPinAffinity(cpuindex,t); if ( ! success ) { - G4Exception("G4MTRunManagerKernel::StarThread","Run0035",JustWarning,"Cannot set thread affinity."); + G4Exception("G4MTRunManagerKernel::StarThread","Run0101",JustWarning,"Cannot set thread affinity."); } #endif } diff --git a/source/track/History b/source/track/History index 720ddd77b4..d1d345208a 100644 --- a/source/track/History +++ b/source/track/History @@ -1,4 +1,4 @@ -$Id: History 93028 2015-09-30 16:09:00Z gcosmo $ +$Id: History 96764 2016-05-04 13:09:31Z gcosmo $ ------------------------------------------------------------------- @@ -17,6 +17,15 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * +- May 4, 2016 H.Kurashige(track-V10-02-01) +- Use G4Log in G4VelocityTable::Value() + +- January 12, 2016 M.Asai (track-V10-02-00) +- Chnage G4VUserTrackInformation pointer in G4Track to mutable + and set-method to be const-method. This allows the user to + set his/her G4VUserTrackInformation pointer without casting + G4Track const pointer. + - September 29, 2015 H.Kurashige (track-V10-01-10) - Add GetNumberOfSecondariesInCurrrentStep method to G4Step diff --git a/source/track/include/G4Track.hh b/source/track/include/G4Track.hh index d86303e3d1..a0132fdd55 100644 --- a/source/track/include/G4Track.hh +++ b/source/track/include/G4Track.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Track.hh 91231 2015-06-26 10:40:45Z gcosmo $ +// $Id: G4Track.hh 94983 2016-01-13 11:02:33Z gcosmo $ // // //--------------------------------------------------------------- @@ -258,7 +258,7 @@ public: // With description // User information G4VUserTrackInformation* GetUserInformation() const; - void SetUserInformation(G4VUserTrackInformation* aValue); + void SetUserInformation(G4VUserTrackInformation* aValue) const; // Velocity table static void SetVelocityTableProperties(G4double t_max, G4double t_min, G4int nbin); @@ -312,7 +312,7 @@ public: // With description const G4VProcess* fpCreatorProcess; // Process which created the track G4int fCreatorModelIndex; // Index of the physics model which created the track - G4VUserTrackInformation* fpUserInformation; + mutable G4VUserTrackInformation* fpUserInformation; // cached values for CalculateVelocity mutable G4Material* prev_mat; diff --git a/source/track/include/G4Track.icc b/source/track/include/G4Track.icc index 1a1fe3e4eb..786e3a3a80 100644 --- a/source/track/include/G4Track.icc +++ b/source/track/include/G4Track.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4Track.icc 83388 2014-08-21 14:29:33Z gcosmo $ +// $Id: G4Track.icc 94983 2016-01-13 11:02:33Z gcosmo $ // //----------------------------------------------------------------- // Definitions of inline functions @@ -310,7 +310,7 @@ extern G4TRACK_DLL G4ThreadLocal G4Allocator *aTrackAllocator; // user information inline G4VUserTrackInformation* G4Track::GetUserInformation() const { return fpUserInformation; } - inline void G4Track::SetUserInformation(G4VUserTrackInformation* aValue) + inline void G4Track::SetUserInformation(G4VUserTrackInformation* aValue) const { fpUserInformation = aValue; } inline const G4Step* G4Track::GetStep() const diff --git a/source/track/src/G4VelocityTable.cc b/source/track/src/G4VelocityTable.cc index ed11762c38..659f631461 100644 --- a/source/track/src/G4VelocityTable.cc +++ b/source/track/src/G4VelocityTable.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VelocityTable.cc 69005 2013-04-15 09:26:47Z gcosmo $ +// $Id: G4VelocityTable.cc 96764 2016-05-04 13:09:31Z gcosmo $ // // //--------------------------------------------------------------- @@ -43,6 +43,7 @@ #include "G4PhysicalConstants.hh" #include "G4StateManager.hh" #include "G4ApplicationState.hh" +#include "G4Log.hh" #include "G4ios.hh" @@ -72,9 +73,10 @@ G4VelocityTable::~G4VelocityTable() void G4VelocityTable::PrepareVelocityTable() /////////////////// { + const G4double g4log10 = std::log(10.); + dataVector.clear(); binVector.clear(); - dBin = std::log10(maxT/minT)/NbinT; baseBin = std::log10(minT)/dBin; @@ -82,8 +84,6 @@ void G4VelocityTable::PrepareVelocityTable() dataVector.reserve(numberOfNodes); binVector.reserve(numberOfNodes); - const G4double g4log10 = std::log(10.); - binVector.push_back(minT); dataVector.push_back(0.0); @@ -117,7 +117,8 @@ size_t G4VelocityTable::FindBinLocation(G4double theEnergy) const // not through pointers or references. In this case, the 'inline' will // be invoked. (See R.B.Murray, "C++ Strategies and Tactics", Chap.6.6) - return size_t( std::log10(theEnergy)/dBin - baseBin ); + const G4double g4log10 = G4Log(10.); + return size_t( G4Log(theEnergy)/dBin/g4log10 - baseBin ); } G4double G4VelocityTable::Value(G4double theEnergy) diff --git a/source/tracking/History b/source/tracking/History index ff3d9690e5..d002032eaf 100644 --- a/source/tracking/History +++ b/source/tracking/History @@ -1,4 +1,4 @@ -$Id: History 91269 2015-06-29 07:05:59Z gcosmo $ +$Id: History 96231 2016-03-30 10:35:46Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,17 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +30th Jan 2016 A. Dotti (tracking-V10-02-02) +- G4VTrajectory.cc: Added std::endl at end of ShowTrajectory. + +18th Jan 2016 A. Dotti (tracking-V10-02-01) +- New G4Multi{Stepping,Tracking}Action to allow multiple user-actions in + the same job + +27th January 2016 M. Asai (tracking-V10-02-00) +- G4SteppingManager.cc: Set OriginTouchableHandle for primary track. + Addressing to Bug report #1773. + 26th June 2015 J. Allison (tracking-V10-01-01) - G4RichTrajectory.cc: Coverity fix. diff --git a/source/tracking/include/G4MultiSteppingAction.hh b/source/tracking/include/G4MultiSteppingAction.hh new file mode 100644 index 0000000000..df897c98bd --- /dev/null +++ b/source/tracking/include/G4MultiSteppingAction.hh @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4MultiSteppingAction.hh 90212 2016-01-27 18:33:12Z adotti $ +// +//--------------------------------------------------------------- +// +// G4MultiSteppingAction.hh +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// +// class description: +// This class extends G4UserSteppingAction and allows multiple +// user-defined tracking actions to be used in the same job. +// The class is a vector of user-defined tracking actions. +// This class owns and manages the dependent user-actions. +// Usage: +// There is no need to explicitly use this class as long as the +// user actions are set via G4UserActionInitialization::SetUserAction +// that can be called several times. Explicitly this is what is happening: +// In user-defined action initialization: +// G4MultiSteppingAction* action = new G4MultiSteppingAction; +// action->push_back( G4UserSteppingActionUPtr( new MyUserSteppingAction ); +// [... add as many as needed ...] +// SetUserAction( action ); +// --------------------------------------------------------------- +// + +#ifndef G4MULTISTEPPINGACTION_HH_ +#define G4MULTISTEPPINGACTION_HH_ + +#include "G4UserSteppingAction.hh" +#include +#include + +using G4UserSteppingActionUPtr=std::unique_ptr; +using G4UserSteppingActionVector=std::vector; + +class G4MultiSteppingAction : public G4UserSteppingAction , public G4UserSteppingActionVector +{ +public: + G4MultiSteppingAction() = default; + virtual ~G4MultiSteppingAction() override = default; + virtual void UserSteppingAction(const G4Step*) override; + virtual void SetSteppingManagerPointer(G4SteppingManager* pValue) override; +}; + +#endif /* SOURCE_TRACKING_INCLUDE_G4MULTISTEPPINGACTION_HH_ */ diff --git a/source/tracking/include/G4MultiTrackingAction.hh b/source/tracking/include/G4MultiTrackingAction.hh new file mode 100644 index 0000000000..743a5f71d9 --- /dev/null +++ b/source/tracking/include/G4MultiTrackingAction.hh @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on 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: G4MultiTrackingAction.hh 90212 2016-01-27 18:33:12Z adotti $ +// +//--------------------------------------------------------------- +// +// G4MultiTrackingAction.hh +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// +// class description: +// This class extends G4UserTrackingAction and allows multiple +// user-defined tracking actions to be used in the same job. +// The class is a vector of user-defined tracking actions. +// This class owns and manages the dependent user-actions. +// Usage: +// There is no need to explicitly use this class as long as the +// user actions are set via G4UserActionInitialization::SetUserAction +// that can be called several times. Explicitly this is what is happening: +// In user-defined action initialization: +// G4MultiTrackingAction* action = new G4MultiTrackingAction; +// action->push_back( G4UserTrackingActionUPtr( new MyUserTrackingAction ); +// [... add as many as needed ...] +// SetUserAction( action ); +// --------------------------------------------------------------- + +#ifndef G4MULTITRACKINGACTION_HH_ +#define G4MULTITRACKINGACTION_HH_ + +#include "G4UserTrackingAction.hh" +#include +#include + +using G4UserTrackingActionUPtr=std::unique_ptr; +using G4UserTrackingActionVector=std::vector; + +class G4MultiTrackingAction : public G4UserTrackingAction , public G4UserTrackingActionVector +{ +public: + G4MultiTrackingAction() = default; + virtual ~G4MultiTrackingAction() override = default; + virtual void SetTrackingManagerPointer(G4TrackingManager* pValue) override; + virtual void PreUserTrackingAction(const G4Track*) override; + virtual void PostUserTrackingAction(const G4Track*) override; +}; + +#endif /* G4MULTITRACKINGACTION_HH_ */ diff --git a/source/tracking/include/G4UserSteppingAction.hh b/source/tracking/include/G4UserSteppingAction.hh index 8f4a63c8bf..2670ac1af9 100644 --- a/source/tracking/include/G4UserSteppingAction.hh +++ b/source/tracking/include/G4UserSteppingAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UserSteppingAction.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4UserSteppingAction.hh 95247 2016-02-02 09:36:27Z gcosmo $ // //--------------------------------------------------------------- // @@ -61,7 +61,7 @@ public: // with description virtual ~G4UserSteppingAction(); // Member functions - void SetSteppingManagerPointer(G4SteppingManager* pValue); + virtual void SetSteppingManagerPointer(G4SteppingManager* pValue); virtual void UserSteppingAction(const G4Step*){;} //----------- diff --git a/source/tracking/include/G4UserTrackingAction.hh b/source/tracking/include/G4UserTrackingAction.hh index ea43852a73..f44e4d36c9 100644 --- a/source/tracking/include/G4UserTrackingAction.hh +++ b/source/tracking/include/G4UserTrackingAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4UserTrackingAction.hh 66241 2012-12-13 18:34:42Z gunter $ +// $Id: G4UserTrackingAction.hh 95247 2016-02-02 09:36:27Z gcosmo $ // // //--------------------------------------------------------------- @@ -64,7 +64,7 @@ public: // with description virtual ~G4UserTrackingAction(); // Member functions - void SetTrackingManagerPointer(G4TrackingManager* pValue); + virtual void SetTrackingManagerPointer(G4TrackingManager* pValue); virtual void PreUserTrackingAction(const G4Track*){;} virtual void PostUserTrackingAction(const G4Track*){;} diff --git a/source/tracking/sources.cmake b/source/tracking/sources.cmake index f728448c9e..4cb84eb813 100644 --- a/source/tracking/sources.cmake +++ b/source/tracking/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 77241 2013-11-22 09:55:47Z gcosmo $ +# $Id: sources.cmake 95247 2016-02-02 09:36:27Z gcosmo $ # #------------------------------------------------------------------------------ @@ -58,7 +58,9 @@ GEANT4_DEFINE_MODULE(NAME G4tracking G4Trajectory.hh G4TrajectoryPoint.hh G4UserSteppingAction.hh + G4MultiSteppingAction.hh G4UserTrackingAction.hh + G4MultiTrackingAction.hh G4VSteppingVerbose.hh G4VTrajectory.hh G4VTrajectoryPoint.hh @@ -79,10 +81,13 @@ GEANT4_DEFINE_MODULE(NAME G4tracking G4Trajectory.cc G4TrajectoryPoint.cc G4UserSteppingAction.cc + G4MultiSteppingAction.cc G4UserTrackingAction.cc + G4MultiTrackingAction.cc G4VSteppingVerbose.cc G4VTrajectory.cc G4VTrajectoryPoint.cc + G4MultiSteppingAction.cc GRANULAR_DEPENDENCIES G4csg G4cuts diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VGammaTransition.cc b/source/tracking/src/G4MultiSteppingAction.cc similarity index 76% rename from source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VGammaTransition.cc rename to source/tracking/src/G4MultiSteppingAction.cc index 7cecadb128..80e337cfe4 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VGammaTransition.cc +++ b/source/tracking/src/G4MultiSteppingAction.cc @@ -23,24 +23,27 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VGammaTransition.cc 85841 2014-11-05 15:35:06Z gcosmo $ // -// ------------------------------------------------------------------- -// GEANT 4 class file +// --------------------------------------------------------------- // -// CERN, Geneva, Switzerland +// G4MultiUserSteppingAction.cc // -// File name: G4VGammaTransition +// Created on: Jan 17, 2016 +// Author: adotti // -// Author V.Ivanchenko 30 October 2010 -// -// ------------------------------------------------------------------- +// --------------------------------------------------------------- -#include "G4VGammaTransition.hh" +#include +#include -G4VGammaTransition::G4VGammaTransition() -{} +void G4MultiSteppingAction::UserSteppingAction(const G4Step* step) { + std::for_each( begin() , end() , + [step](G4UserSteppingActionUPtr& e) { e->UserSteppingAction(step); } + ); +} -G4VGammaTransition::~G4VGammaTransition() -{} - +void G4MultiSteppingAction::SetSteppingManagerPointer(G4SteppingManager* pValue) { + std::for_each( begin() , end() , + [pValue](G4UserSteppingActionUPtr& e) { e->SetSteppingManagerPointer(pValue); } + ); +} diff --git a/source/tracking/src/G4MultiTrackingAction.cc b/source/tracking/src/G4MultiTrackingAction.cc new file mode 100644 index 0000000000..5be6cb6c49 --- /dev/null +++ b/source/tracking/src/G4MultiTrackingAction.cc @@ -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. * +// ******************************************************************** +// +// +// --------------------------------------------------------------- +// +// G4MultiTrackingAction.cc +// +// Created on: Jan 17, 2016 +// Author: adotti +// +// --------------------------------------------------------------- + +#include "G4MultiTrackingAction.hh" +#include + +void G4MultiTrackingAction::SetTrackingManagerPointer(G4TrackingManager* pValue) { + std::for_each( begin(), end() , + [pValue](G4UserTrackingActionUPtr& e) { e->SetTrackingManagerPointer(pValue); } + ); +} + +void G4MultiTrackingAction::PreUserTrackingAction(const G4Track* trk) { + std::for_each( begin(), end() , + [trk](G4UserTrackingActionUPtr& e) { e->PreUserTrackingAction(trk); } + ); +} + +void G4MultiTrackingAction::PostUserTrackingAction(const G4Track* trk) { + std::for_each( begin(), end() , + [trk](G4UserTrackingActionUPtr& e) { e->PostUserTrackingAction(trk); } + ); +} + diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc index ad7df76960..8a96071558 100644 --- a/source/tracking/src/G4SteppingManager.cc +++ b/source/tracking/src/G4SteppingManager.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.cc 77790 2013-11-28 09:52:16Z gcosmo $ +// $Id: G4SteppingManager.cc 95198 2016-01-29 08:28:27Z gcosmo $ // //--------------------------------------------------------------- // @@ -318,6 +318,11 @@ void G4SteppingManager::SetInitialStep(G4Track* valueTrack) fTrack->SetNextTouchableHandle( fTouchableHandle ); } } +// Set OriginTouchableHandle for primary track + if(fTrack->GetParentID()==0){ + fTrack->SetOriginTouchableHandle(fTrack->GetTouchableHandle()); + } + // Set vertex information of G4Track at here if ( fTrack->GetCurrentStepNumber() == 0 ) { fTrack->SetVertexPosition( fTrack->GetPosition() ); diff --git a/source/tracking/src/G4VTrajectory.cc b/source/tracking/src/G4VTrajectory.cc index abf75ddfb2..840e58dbe5 100644 --- a/source/tracking/src/G4VTrajectory.cc +++ b/source/tracking/src/G4VTrajectory.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VTrajectory.cc 78003 2013-12-02 08:26:54Z gcosmo $ +// $Id: G4VTrajectory.cc 96231 2016-03-30 10:35:46Z gcosmo $ // // --------------------------------------------------------------- // @@ -109,7 +109,7 @@ void G4VTrajectory::ShowTrajectory(std::ostream& os) const delete attValues; // AttValues must be deleted after use. } - os << "\n"; + os << std::endl; } void G4VTrajectory::DrawTrajectory() const diff --git a/source/visualization/History b/source/visualization/History index 0e48abe30f..24cd5327e6 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,4 +1,4 @@ -$Id: History 94590 2015-11-25 11:12:46Z gcosmo $ +$Id: History 97430 2016-06-03 07:20:11Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,107 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +1st June 2016 Laurent Garnier (vis-V10-02-03) +- gMocren-V10-02-01: Fixed coverity Win64 warning. + +1st June 2016 John Allison +- visman-V10-02-11: Introduced /vis/viewer/interpolate. +- visman-V10-02-12: + o Fixed compiler error on Windows. /vis/viewer/interpolate is not + available on Windows because it uses popen, a way of getting + output from a system command. _popen (with an underscore) is + said to be available in Windows but this has not been tried. +- opengl-V10-02-06: Fixed bug in picking output text. +- openinventor-V10-02-03: Fixed Coverity warning. + +30th May 2016 John Allison (vis-V10-02-02) +- visman-V10-02-10: Added some calls to SetView for security. +- opengl-V10-02-05: G4OpenGLXViewer: Added thread awareness regarding + glXMakeCurrent. NOTE: This will have to be done for Win32 + for multithreading on Windows. +- openinventor-V10-02-02: + o Fixed dispatching (Guy Barrand, Tom Roberts). + o setTransparencyType(SoGLRenderAction::SORTED_OBJECT_ADD). + +19th May 2016 John Allison +- VRML-V10-02-00, gMocren-V10-02-00 + Fixed gcc-6.1 warnings. + +4th May 2016 John Allison +- visman-V10-02-09: Win32 now opens with "/vis/open OGL" if Qt + is not built. + +2nd May 2016 John Allison (vis-V10-02-01) +- modeling-V10-02-04: Fixed gcc-6.1 warning. +- visman-V10-02-08: Fixed gcc-6.1 warnings. +- raytracer-V10-02-00: Fixed gcc-6.1 warning. + +2nd May 2016 John Allison (vis-V10-02-00) +- Tagged: consolidates the below improvements. + +2nd May 2016 John Allison +- visman-V10-02-07: + MT mode: moved flush to end of vis thread. This is so that all + trajectories are flushed from vis thread before switching back to + master thread. Also fixes picking in MT mode. +- opengl-V10-02-04: Xm: Ensure all items get flushed to screen, even + when eventsDrawInterval is set >1. + +23rd April 2016 John Allison +- opengl-V10-02-03: + /vis/ogl/set/eventsDrawInterval and /vis/ogl/set/displayListLimit: + Fixed some inconsistencies. + +5th April 2016 John Allison +- modeling-V10-02-03: Tidied #include statements. +- vistree-V10-02-00: + o Prevented multiple writing of the informational header on + the output file. + +22 Mar 2016 Gabriele Cosmo +- openinventor-V10-02-00 + o Corrected delete statement in + G4OpenInventorXtExaminerViewer::sortBookmarksCB(). + o Multiple improvements: 18 Dec 2015 Frederick Jones + +29th March 2016 John Allison +- visman-V10-02-06: Fixed bug in /vis/scene/add/volume. It was + preventing parallel worlds being added individually. + +11th March 2016 John Allison +- visman-V10-02-05: + o Inhibited use of BeginRun, BeginEvent, EndEvent and EndRun + when vis is not enabled, for example after /vis/disable. + In particular this prevents the start of the vis thread in + multithreading mode. + +15th February 2016 John Allison +- modeling-V10-02-02: + Introduced drawing and filtering by touched volume. I.e., + /vis/modeling/trajectories/create/drawByTouchedVolume + /vis/filtering/trajectories/create/touchedVolumeFilter +- visman-V10-02-04: + Registered drawing and filtering by touched volume. + +10th February 2016 John Allison, Laurent Garnier, Andrea Dotti +- opengl-V10-02-00: + o Various small fixes and improvements. + +26th January 2016 John Allison +- modeling-V10-02-01: Added some Set commands. +- visXXX-V10-02-00: Improved CompareForKernelVisit. + +26th January 2016 John Allison +- modeling-V10-02-00 and visman-V10-02-03: + Fix problem with OriginVolume drawing and filtering in + multithreading mode. + +19th January 2016 John Allison +- visman-V10-02-02: Improved /vis/viewer/save. + +14th January 2016 John Allison +- visman-V10-02-01: Improved error tracking: + 25th November 2015 Laurent Garnier (vis-V10-01-19) - HepRep tagged : vis-HepRep-V10-01-02 diff --git a/source/visualization/OpenGL/History b/source/visualization/OpenGL/History index e92523c097..efa6464140 100644 --- a/source/visualization/OpenGL/History +++ b/source/visualization/OpenGL/History @@ -1,4 +1,4 @@ -$Id: History 94428 2015-11-16 12:40:02Z gcosmo $ +$Id: History 97430 2016-06-03 07:20:11Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,62 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +1st June 2016 Laurent Garnier +- G4OpenGLWin32Viewer :Fixed compilation warnings on Win32 about LONG_PTR + +1st June 2016 John Allison (opengl-V10-02-06) +- G4OpenGLXViewer.cc: Fixed bug in GetPickDetails (wrong placement + of std::ostringstream oss;). + +30th May 2016 John Allison (opengl-V10-02-05) +- G4OpenGLXViewer.cc: + o G4OpenGLXViewer::SetView: Added thread awareness regarding + glXMakeCurrent. NOTE: This will have to be done for Win32 + for multithreading on Windows. +- Tidying of outdated comments. + +2nd May 2016 John Allison (opengl-V10-02-04) +- G4OpenGLXmViewer.cc: Added glXWaitGL (); glFlush (); to ShowView + to ensure all items get flushed to screen, even when + eventsDrawInterval is set >1. +- G4OpenGLSceneHandler.hh: Made Get/SetEventsDrawInterval static + to match static members changed in opengl-V10-02-03. + +23rd April 2016 John Allison (opengl-V10-02-03) +- /vis/ogl/set/eventsDrawInterval and /vis/ogl/set/displayListLimit: + Fixed some inconsistencies. + o G4OpenGLViewerMessenger.cc: eventsDrawInterval now applies also + to immediate mode. + o G4OpenGLSceneHandler.hh/cc: Made fEventsDrawInterval and + fEventsWaitingToBeFlushed static so that they apply to all + OGL scene handlers. + o G4OpenGLImmediateSceneHandler.cc: Fixed bug in EndPrimitives2D - + now calls ScaledFlush. + o G4OpenGLStoredSceneHandler.cc: Simply moved static variable + implementations to near top of file. + +10th February 2016 Andrea Dotti (opengl-V10-02-00) +- Fix typo for macro G4CONDITIONBROADCAST (requires global-V10-02-03) + +27th January 2016 John Allison +- CompareForKernelVisit: + Tested for total vis attributes modifiers instead of just for size. + +26th January 2016 John Allison +- G4OpenGLViewer::getRealPrintFilename: + o fExportFilename contains filled characters: + << setw(4) << setfill('0') << fExportFilenameIndex + so that files can easily be referenced in alphanumeric order. + +14th January 2016 John Allison +- Fix for notifying multiple OGL X views: + o Added glXMakeCurrent(dpy,win,cxMaster) to G4OpenGLXViewer::SetView. + +11th December 2015 Laurent Garnier +- G4OpenGLQtViewer: Add the "F" key to test flytrough +- G4OpenGLViewer: Fix a problem in picking, does not clean correctly + an outupt stream buffer + 5th November 2015 Laurent Garnier (opengl-V10-01-13) - G4OpenGLViewer: Fix warning with VC14 diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh index 401ebe205f..6e2131a3c3 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.hh 85263 2014-10-27 08:58:31Z gcosmo $ +// $Id: G4OpenGLSceneHandler.hh 96733 2016-05-02 11:52:48Z gcosmo $ // // // Andrew Walkden 27th March 1996 @@ -83,8 +83,8 @@ public: void AddCompound (const G4VDigi&); void AddCompound (const G4THitsMap&); - G4int GetEventsDrawInterval() {return fEventsDrawInterval;} - void SetEventsDrawInterval(G4int interval) {fEventsDrawInterval = interval;} + static G4int GetEventsDrawInterval() {return fEventsDrawInterval;} + static void SetEventsDrawInterval(G4int interval) {fEventsDrawInterval = interval;} #ifdef G4OPENGL_VERSION_2 private : @@ -147,11 +147,12 @@ protected: // Shared code to wait until we make a single glFlush void ScaledFlush () ; + // Static so that they apply to all OGL scene handlers... // Number of events to wait until we make a single glFlush - G4int fEventsDrawInterval; + static G4int fEventsDrawInterval; // Number of events waiting to be flushed - G4int fEventsWaitingToBeFlushed; - + static G4int fEventsWaitingToBeFlushed; + // True if caller of primitives is capable of processing three passes. G4bool fThreePassCapable; diff --git a/source/visualization/OpenGL/moc/G4OpenGLQtExportDialog_moc.cc b/source/visualization/OpenGL/moc/G4OpenGLQtExportDialog_moc.cc new file mode 100644 index 0000000000..5c09d37dbf --- /dev/null +++ b/source/visualization/OpenGL/moc/G4OpenGLQtExportDialog_moc.cc @@ -0,0 +1,101 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'G4OpenGLQtExportDialog.hh' +** +** Created: Fri Jun 3 09:32:38 2016 +** by: The Qt Meta Object Compiler version 63 (Qt 4.8.4) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../include/G4OpenGLQtExportDialog.hh" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'G4OpenGLQtExportDialog.hh' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.4. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_G4OpenGLQtExportDialog[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 4, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 24, 23, 23, 23, 0x0a, + 40, 23, 23, 23, 0x0a, + 58, 23, 23, 23, 0x0a, + 84, 23, 23, 23, 0x0a, + + 0 // eod +}; + +static const char qt_meta_stringdata_G4OpenGLQtExportDialog[] = { + "G4OpenGLQtExportDialog\0\0changeSizeBox()\0" + "changeVectorEPS()\0textWidthChanged(QString)\0" + "textHeightChanged(QString)\0" +}; + +void G4OpenGLQtExportDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + Q_ASSERT(staticMetaObject.cast(_o)); + G4OpenGLQtExportDialog *_t = static_cast(_o); + switch (_id) { + case 0: _t->changeSizeBox(); break; + case 1: _t->changeVectorEPS(); break; + case 2: _t->textWidthChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->textHeightChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break; + default: ; + } + } +} + +const QMetaObjectExtraData G4OpenGLQtExportDialog::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject G4OpenGLQtExportDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_G4OpenGLQtExportDialog, + qt_meta_data_G4OpenGLQtExportDialog, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &G4OpenGLQtExportDialog::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *G4OpenGLQtExportDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *G4OpenGLQtExportDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_G4OpenGLQtExportDialog)) + return static_cast(const_cast< G4OpenGLQtExportDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int G4OpenGLQtExportDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 4) + qt_static_metacall(this, _c, _id, _a); + _id -= 4; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/source/visualization/OpenGL/moc/G4OpenGLQtMovieDialog_moc.cc b/source/visualization/OpenGL/moc/G4OpenGLQtMovieDialog_moc.cc new file mode 100644 index 0000000000..ab3b050a04 --- /dev/null +++ b/source/visualization/OpenGL/moc/G4OpenGLQtMovieDialog_moc.cc @@ -0,0 +1,121 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'G4OpenGLQtMovieDialog.hh' +** +** Created: Fri Jun 3 09:32:38 2016 +** by: The Qt Meta Object Compiler version 63 (Qt 4.8.4) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../include/G4OpenGLQtMovieDialog.hh" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'G4OpenGLQtMovieDialog.hh' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.4. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_G4OpenGLQtMovieDialog[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 10, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 23, 22, 22, 22, 0x0a, + 41, 22, 22, 22, 0x0a, + 53, 22, 48, 22, 0x0a, + 80, 22, 48, 22, 0x0a, + 110, 22, 48, 22, 0x0a, + 138, 22, 22, 22, 0x08, + 164, 22, 22, 22, 0x08, + 187, 22, 22, 22, 0x08, + 214, 22, 22, 22, 0x08, + 231, 22, 22, 22, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_G4OpenGLQtMovieDialog[] = { + "G4OpenGLQtMovieDialog\0\0stopFinishClose()\0" + "save()\0bool\0checkEncoderSwParameters()\0" + "checkSaveFileNameParameters()\0" + "checkTempFolderParameters()\0" + "selectEncoderPathAction()\0" + "selectTempPathAction()\0" + "selectSaveFileNameAction()\0resetRecording()\0" + "enabledApplyButton()\0" +}; + +void G4OpenGLQtMovieDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + Q_ASSERT(staticMetaObject.cast(_o)); + G4OpenGLQtMovieDialog *_t = static_cast(_o); + switch (_id) { + case 0: _t->stopFinishClose(); break; + case 1: _t->save(); break; + case 2: { bool _r = _t->checkEncoderSwParameters(); + if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; + case 3: { bool _r = _t->checkSaveFileNameParameters(); + if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; + case 4: { bool _r = _t->checkTempFolderParameters(); + if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; + case 5: _t->selectEncoderPathAction(); break; + case 6: _t->selectTempPathAction(); break; + case 7: _t->selectSaveFileNameAction(); break; + case 8: _t->resetRecording(); break; + case 9: _t->enabledApplyButton(); break; + default: ; + } + } +} + +const QMetaObjectExtraData G4OpenGLQtMovieDialog::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject G4OpenGLQtMovieDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_G4OpenGLQtMovieDialog, + qt_meta_data_G4OpenGLQtMovieDialog, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &G4OpenGLQtMovieDialog::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *G4OpenGLQtMovieDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *G4OpenGLQtMovieDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_G4OpenGLQtMovieDialog)) + return static_cast(const_cast< G4OpenGLQtMovieDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int G4OpenGLQtMovieDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 10) + qt_static_metacall(this, _c, _id, _a); + _id -= 10; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/source/visualization/OpenGL/moc/G4OpenGLQtViewer_moc.cc b/source/visualization/OpenGL/moc/G4OpenGLQtViewer_moc.cc new file mode 100644 index 0000000000..5ed23edd05 --- /dev/null +++ b/source/visualization/OpenGL/moc/G4OpenGLQtViewer_moc.cc @@ -0,0 +1,176 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'G4OpenGLQtViewer.hh' +** +** Created: Fri Jun 3 09:32:38 2016 +** by: The Qt Meta Object Compiler version 63 (Qt 4.8.4) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../include/G4OpenGLQtViewer.hh" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'G4OpenGLQtViewer.hh' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.4. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_G4OpenGLQtViewer[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 31, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 18, 17, 17, 17, 0x0a, + 36, 17, 17, 17, 0x09, + 71, 17, 17, 17, 0x08, + 89, 17, 17, 17, 0x08, + 119, 17, 17, 17, 0x08, + 143, 17, 17, 17, 0x08, + 170, 17, 17, 17, 0x08, + 194, 17, 17, 17, 0x08, + 210, 17, 17, 17, 0x08, + 233, 17, 17, 17, 0x08, + 258, 17, 17, 17, 0x08, + 281, 17, 17, 17, 0x08, + 306, 17, 17, 17, 0x08, + 331, 17, 17, 17, 0x08, + 351, 17, 17, 17, 0x08, + 367, 17, 17, 17, 0x08, + 393, 17, 17, 17, 0x08, + 416, 17, 17, 17, 0x08, + 440, 17, 17, 17, 0x08, + 465, 17, 17, 17, 0x08, + 495, 487, 17, 17, 0x08, + 547, 17, 17, 17, 0x08, + 576, 17, 17, 17, 0x08, + 618, 17, 17, 17, 0x08, + 657, 17, 17, 17, 0x08, + 698, 17, 17, 17, 0x08, + 714, 17, 17, 17, 0x08, + 743, 17, 17, 17, 0x08, + 771, 17, 17, 17, 0x08, + 804, 795, 17, 17, 0x08, + 853, 17, 17, 17, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_G4OpenGLQtViewer[] = { + "G4OpenGLQtViewer\0\0startPauseVideo()\0" + "updateToolbarAndMouseContextMenu()\0" + "actionSaveImage()\0actionChangeBackgroundColor()\0" + "actionChangeTextColor()\0" + "actionChangeDefaultColor()\0" + "actionMovieParameters()\0showShortcuts()\0" + "toggleMouseAction(int)\0toggleSurfaceAction(int)\0" + "toggleProjection(bool)\0toggleTransparency(bool)\0" + "toggleAntialiasing(bool)\0toggleHaloing(bool)\0" + "toggleAux(bool)\0toggleHiddenMarkers(bool)\0" + "toggleFullScreen(bool)\0processEncodeFinished()\0" + "processLookForFinished()\0processEncodeStdout()\0" + "item,id\0sceneTreeComponentItemChanged(QTreeWidgetItem*,int)\0" + "toggleSceneTreeViewerInfos()\0" + "toggleSceneTreeComponentTreeWidgetInfos()\0" + "toggleSceneTreeComponentPickingInfos()\0" + "toggleSceneTreeComponentPickingCout(int)\0" + "togglePicking()\0sceneTreeComponentSelected()\0" + "changeDepthInSceneTree(int)\0" + "changeSearchSelection()\0item,val\0" + "changeColorAndTransparency(QTreeWidgetItem*,int)\0" + "tableWidgetViewerSetItemChanged(QTableWidgetItem*)\0" +}; + +void G4OpenGLQtViewer::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + Q_ASSERT(staticMetaObject.cast(_o)); + G4OpenGLQtViewer *_t = static_cast(_o); + switch (_id) { + case 0: _t->startPauseVideo(); break; + case 1: _t->updateToolbarAndMouseContextMenu(); break; + case 2: _t->actionSaveImage(); break; + case 3: _t->actionChangeBackgroundColor(); break; + case 4: _t->actionChangeTextColor(); break; + case 5: _t->actionChangeDefaultColor(); break; + case 6: _t->actionMovieParameters(); break; + case 7: _t->showShortcuts(); break; + case 8: _t->toggleMouseAction((*reinterpret_cast< int(*)>(_a[1]))); break; + case 9: _t->toggleSurfaceAction((*reinterpret_cast< int(*)>(_a[1]))); break; + case 10: _t->toggleProjection((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 11: _t->toggleTransparency((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 12: _t->toggleAntialiasing((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 13: _t->toggleHaloing((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 14: _t->toggleAux((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 15: _t->toggleHiddenMarkers((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 16: _t->toggleFullScreen((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 17: _t->processEncodeFinished(); break; + case 18: _t->processLookForFinished(); break; + case 19: _t->processEncodeStdout(); break; + case 20: _t->sceneTreeComponentItemChanged((*reinterpret_cast< QTreeWidgetItem*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 21: _t->toggleSceneTreeViewerInfos(); break; + case 22: _t->toggleSceneTreeComponentTreeWidgetInfos(); break; + case 23: _t->toggleSceneTreeComponentPickingInfos(); break; + case 24: _t->toggleSceneTreeComponentPickingCout((*reinterpret_cast< int(*)>(_a[1]))); break; + case 25: _t->togglePicking(); break; + case 26: _t->sceneTreeComponentSelected(); break; + case 27: _t->changeDepthInSceneTree((*reinterpret_cast< int(*)>(_a[1]))); break; + case 28: _t->changeSearchSelection(); break; + case 29: _t->changeColorAndTransparency((*reinterpret_cast< QTreeWidgetItem*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 30: _t->tableWidgetViewerSetItemChanged((*reinterpret_cast< QTableWidgetItem*(*)>(_a[1]))); break; + default: ; + } + } +} + +const QMetaObjectExtraData G4OpenGLQtViewer::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject G4OpenGLQtViewer::staticMetaObject = { + { &QObject::staticMetaObject, qt_meta_stringdata_G4OpenGLQtViewer, + qt_meta_data_G4OpenGLQtViewer, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &G4OpenGLQtViewer::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *G4OpenGLQtViewer::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *G4OpenGLQtViewer::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_G4OpenGLQtViewer)) + return static_cast(const_cast< G4OpenGLQtViewer*>(this)); + if (!strcmp(_clname, "G4OpenGLViewer")) + return static_cast< G4OpenGLViewer*>(const_cast< G4OpenGLQtViewer*>(this)); + return QObject::qt_metacast(_clname); +} + +int G4OpenGLQtViewer::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 31) + qt_static_metacall(this, _c, _id, _a); + _id -= 31; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc index 6eded25372..8d4f724762 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateQtViewer.cc 94206 2015-11-09 08:11:59Z gcosmo $ +// $Id: G4OpenGLImmediateQtViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Class G4OpenGLImmediateQtViewer : a class derived from G4OpenGLQtViewer and @@ -317,6 +317,8 @@ void G4OpenGLImmediateQtViewer::ShowView ( ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { + // Tentatively offered - JA + // glFlush (); fHasToRepaint = true; activateWindow(); } diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc index 7c2bdb323d..e92794913e 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateSceneHandler.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLImmediateSceneHandler.cc 96669 2016-04-29 12:03:24Z gcosmo $ // // // Andrew Walkden 10th February 1997 @@ -271,8 +271,8 @@ void G4OpenGLImmediateSceneHandler::EndPrimitives2D() glMatrixMode (GL_MODELVIEW); glPopMatrix(); - // See all primitives immediately... - glFlush (); + // See all primitives immediately... At least soon... + ScaledFlush(); G4OpenGLSceneHandler::EndPrimitives2D (); } diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc index 2c46989a96..c6b4f96bdf 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32Viewer.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4OpenGLImmediateWin32Viewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -76,9 +76,6 @@ void G4OpenGLImmediateWin32Viewer::DrawView () { G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); - //Make sure current viewer is attached and clean... - //Win32 version needed - //glXMakeCurrent (dpy, win, cx); glViewport (0, 0, getWinWidth(), getWinHeight()); if(style!=G4ViewParameters::hlr && diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc index cd70770162..90ba847edd 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXViewer.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLImmediateXViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Andrew Walkden 7th February 1997 @@ -80,18 +80,6 @@ void G4OpenGLImmediateXViewer::DrawView () { G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); -// //Make sure current viewer is attached and clean... -//#ifdef G4MULTITHREADED -// G4int thread_id = G4Threading::G4GetThreadId(); -// G4cout << "G4OpenGLImmediateXViewer::DrawView: thread " << thread_id << G4endl; -// if (thread_id < 0) { -// glXMakeCurrent (dpy, win, cxMaster); -// } else { -// glXMakeCurrent (dpy, win, cxVisSubThread); -// } -//#else -// glXMakeCurrent (dpy, win, cxMaster); -//#endif if(style!=G4ViewParameters::hlr && haloing_enabled) { diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc index 85746e96d5..f460d88fcf 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXmViewer.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLImmediateXmViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Andrew Walkden 10th February 1997 @@ -81,19 +81,6 @@ void G4OpenGLImmediateXmViewer::DrawView () { printf("G4OpenGLImmediateXmViewer::DrawView : \n"); #endif -// //Make sure current viewer is attached and clean... -//#ifdef G4MULTITHREADED -// G4int thread_id = G4Threading::G4GetThreadId(); -// G4cout << "G4OpenGLImmediateXmViewer::DrawView: thread " << thread_id << G4endl; -// if (thread_id < 0) { -// glXMakeCurrent (dpy, win, cxMaster); -// } else { -// glXMakeCurrent (dpy, win, cxVisSubThread); -// } -//#else -// glXMakeCurrent (dpy, win, cxMaster); -//#endif - if(style!=G4ViewParameters::hlr && haloing_enabled) { diff --git a/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc index c6d0b6a01f..16f11ba4b0 100644 --- a/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLQtViewer.cc 91686 2015-07-31 09:40:08Z gcosmo $ +// $Id: G4OpenGLQtViewer.cc 95635 2016-02-17 08:06:22Z gcosmo $ // // // G4OpenGLQtViewer : Class to provide Qt specific @@ -1657,7 +1657,28 @@ void G4OpenGLQtViewer::G4keyPressEvent (QKeyEvent * evnt) else if (evnt->key() == Qt::Key_Plus) { // go forward moveScene(0,0,-1,false); } - + else if (evnt->key() == Qt::Key_F) { + std::vector cameraPosition = ComputeFlyThrough(NULL); + G4Point3D targetPoint; + G4Point3D origineTargetPoint; + G4VisExtent extent; + G4double radius; + origineTargetPoint = fSceneHandler.GetScene()->GetStandardTargetPoint() + fVP.GetCurrentTargetPoint (); + + for (unsigned int a=0; aGetExtent().GetExtentRadius(); + G4Vector3D vpDirection = -(cameraPosition[a+1]-cameraPosition[a]); + fVP.SetViewpointDirection(vpDirection.unit()); + G4Vector3D newTargetPoint = cameraPosition[a] - radius * vpDirection.unit() - fSceneHandler.GetScene()->GetStandardTargetPoint(); + + fVP.SetCurrentTargetPoint(newTargetPoint); + + updateQWidget(); + } + } // escaped from full screen if (evnt->key() == Qt::Key_Escape) { toggleFullScreen(false); @@ -4625,7 +4646,7 @@ void G4OpenGLQtViewer::SwitchToVisSubThread() SetQGLContextVisSubThread(QThread::currentThread()); // - Wait for the vis thread to set its QThread - G4CONDTIONBROADCAST(&c1_VisSubThreadQtOpenGLContextInitialized); + G4CONDITIONBROADCAST(&c1_VisSubThreadQtOpenGLContextInitialized); // Unlock the vis thread if it is Qt Viewer G4CONDITIONWAIT(&c2_VisSubThreadQtOpenGLContextMoved, &mWaitForVisSubThreadQtOpenGLContextMoved); @@ -4687,7 +4708,7 @@ void G4OpenGLQtViewer::MovingToVisSubThread(){ qGLW->context()->moveToThread(fQGLContextVisSubThread); #endif - G4CONDTIONBROADCAST(&c2_VisSubThreadQtOpenGLContextMoved); + G4CONDITIONBROADCAST(&c2_VisSubThreadQtOpenGLContextMoved); } #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc index ce03ae7551..e626fa0c2f 100644 --- a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.cc 91686 2015-07-31 09:40:08Z gcosmo $ +// $Id: G4OpenGLSceneHandler.cc 96669 2016-04-29 12:03:24Z gcosmo $ // // // Andrew Walkden 27th March 1996 @@ -57,31 +57,8 @@ #include "G4AttHolder.hh" #include "G4PhysicalConstants.hh" -G4OpenGLSceneHandler::G4OpenGLSceneHandler (G4VGraphicsSystem& system, - G4int id, - const G4String& name): -G4VSceneHandler (system, id, name), -#ifdef G4OPENGL_VERSION_2 -fEmulate_GL_QUADS(false), -#endif -fPickName(0), -// glFlush take about 90% time. Dividing glFlush number by 100 will -// change the first vis time from 100% to 10+90/100 = 10,9%. -fEventsDrawInterval(1), -fEventsWaitingToBeFlushed(0), -fThreePassCapable(false), -fSecondPassForTransparencyRequested(false), -fSecondPassForTransparency(false), -fThirdPassForNonHiddenMarkersRequested(false), -fThirdPassForNonHiddenMarkers(false), -fEdgeFlag(true) -{ -} - -G4OpenGLSceneHandler::~G4OpenGLSceneHandler () -{ - ClearStore (); -} +G4int G4OpenGLSceneHandler::fEventsDrawInterval = 1; +G4int G4OpenGLSceneHandler::fEventsWaitingToBeFlushed = 0; const GLubyte G4OpenGLSceneHandler::fStippleMaskHashed [128] = { 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, @@ -102,6 +79,30 @@ const GLubyte G4OpenGLSceneHandler::fStippleMaskHashed [128] = { 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55 }; +G4OpenGLSceneHandler::G4OpenGLSceneHandler (G4VGraphicsSystem& system, + G4int id, + const G4String& name): +G4VSceneHandler (system, id, name), +#ifdef G4OPENGL_VERSION_2 +fEmulate_GL_QUADS(false), +#endif +fPickName(0), +// glFlush take about 90% time. Dividing glFlush number by 100 will +// change the first vis time from 100% to 10+90/100 = 10,9%. +fThreePassCapable(false), +fSecondPassForTransparencyRequested(false), +fSecondPassForTransparency(false), +fThirdPassForNonHiddenMarkersRequested(false), +fThirdPassForNonHiddenMarkers(false), +fEdgeFlag(true) +{ +} + +G4OpenGLSceneHandler::~G4OpenGLSceneHandler () +{ + ClearStore (); +} + void G4OpenGLSceneHandler::ClearAndDestroyAtts() { std::map::iterator i; @@ -1199,7 +1200,7 @@ void G4OpenGLSceneHandler::drawVBOArray(std::vector vertices) { #endif } - // delet the buffer + // delete the buffer #ifndef G4VIS_BUILD_OPENGLWT_DRIVER glDeleteBuffers(1,&fVertexBufferObject); #else @@ -1208,5 +1209,4 @@ void G4OpenGLSceneHandler::drawVBOArray(std::vector vertices) { } #endif - #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc index 56a514e9b5..dcccafd8e3 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredQtViewer.cc 94206 2015-11-09 08:11:59Z gcosmo $ +// $Id: G4OpenGLStoredQtViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Class G4OpenGLStoredQtViewer : a class derived from G4OpenGLQtViewer and @@ -136,8 +136,8 @@ G4bool G4OpenGLStoredQtViewer::CompareForKernelVisit(G4ViewParameters& lastVP) (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| (lastVP.IsPicking () != fVP.IsPicking ()) // || -// (lastVP.GetVisAttributesModifiers().size() != -// fVP.GetVisAttributesModifiers().size()) +// (lastVP.GetVisAttributesModifiers() != +// fVP.GetVisAttributesModifiers()) ) return true; @@ -402,11 +402,13 @@ void G4OpenGLStoredQtViewer::ShowView ( ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { + // glFlush (); // Tentativley offered by JA 29/04/16. + // Some X servers fail to draw all trajectories, particularly Mac // XQuartz. Revisit this at a future date. Meanwhile, issue an // extra... - ClearView(); - DrawView(); + ClearView(); // Necessary? JA 29/04/16 + DrawView(); // Necessary? JA 29/04/16 activateWindow(); // glFlush(); // NO NEED and as drawView will already cause a flush // that could do a double flush diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc index dd402d5ff5..581b46b922 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredSceneHandler.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLStoredSceneHandler.cc 96669 2016-04-29 12:03:24Z gcosmo $ // // // Andrew Walkden 10th February 1997 @@ -51,6 +51,12 @@ #include +G4int G4OpenGLStoredSceneHandler::fSceneIdCount = 0; + +G4int G4OpenGLStoredSceneHandler::fDisplayListId = 0; +G4bool G4OpenGLStoredSceneHandler::fMemoryForDisplayLists = true; +G4int G4OpenGLStoredSceneHandler::fDisplayListLimit = 50000; + G4OpenGLStoredSceneHandler::PO::PO(): fDisplayListId(0), fPickName(0), @@ -626,10 +632,5 @@ void G4OpenGLStoredSceneHandler::ClearTransientStore () } } -G4int G4OpenGLStoredSceneHandler::fSceneIdCount = 0; - -G4int G4OpenGLStoredSceneHandler::fDisplayListId = 0; -G4bool G4OpenGLStoredSceneHandler::fMemoryForDisplayLists = true; -G4int G4OpenGLStoredSceneHandler::fDisplayListLimit = 50000; #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc index 153c4d5e26..929aed9ef0 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredViewer.cc 91686 2015-07-31 09:40:08Z gcosmo $ +// $Id: G4OpenGLStoredViewer.cc 95635 2016-02-17 08:06:22Z gcosmo $ // // // Andrew Walkden 7th February 1997 @@ -93,8 +93,8 @@ G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) { fVP.GetDefaultTextVisAttributes()->GetColour()) || (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| (lastVP.IsPicking () != fVP.IsPicking ()) || - (lastVP.GetVisAttributesModifiers().size() != - fVP.GetVisAttributesModifiers().size()) + (lastVP.GetVisAttributesModifiers() != + fVP.GetVisAttributesModifiers()) ) return true; diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc index b39b6ea0bf..e16f0aaba7 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32Viewer.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4OpenGLStoredWin32Viewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -67,9 +67,6 @@ void G4OpenGLStoredWin32Viewer::Initialise () { void G4OpenGLStoredWin32Viewer::DrawView () { - //Make sure current viewer is attached and clean... - //Win32 version needed - // glXMakeCurrent (dpy, win, cx); glViewport (0, 0, getWinWidth(), getWinHeight()); G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc index 48e0b7dbd3..ec48ec7498 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXViewer.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLStoredXViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Andrew Walkden 7th February 1997 @@ -78,18 +78,6 @@ void G4OpenGLStoredXViewer::DrawView () { #ifdef G4DEBUG_VIS_OGL printf("G4OpenGLStoredXViewer::DrawView\n"); #endif -// //Make sure current viewer is attached and clean... -//#ifdef G4MULTITHREADED -// G4int thread_id = G4Threading::G4GetThreadId(); -// G4cout << "G4OpenGLStoredXViewer::DrawView: thread " << thread_id << G4endl; -// if (thread_id < 0) { -// glXMakeCurrent (dpy, win, cxMaster); -// } else { -// glXMakeCurrent (dpy, win, cxVisSubThread); -// } -//#else -// glXMakeCurrent (dpy, win, cxMaster); -//#endif G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc index ee5139b3ec..610d22e556 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXmViewer.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLStoredXmViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Andrew Walkden 10th February 1997 @@ -78,19 +78,6 @@ void G4OpenGLStoredXmViewer::DrawView () { printf("G4OpenGLStoredXmViewer::DrawView \n"); #endif -// //Make sure current viewer is attached and clean... -//#ifdef G4MULTITHREADED -// G4int thread_id = G4Threading::G4GetThreadId(); -// G4cout << "G4OpenGLStoredXmViewer::DrawView: thread " << thread_id << G4endl; -// if (thread_id < 0) { -// glXMakeCurrent (dpy, win, cxMaster); -// } else { -// glXMakeCurrent (dpy, win, cxVisSubThread); -// } -//#else -// glXMakeCurrent (dpy, win, cxMaster); -//#endif - G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); //See if things have changed from last time and remake if necessary... diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc index 033df1fa0e..3ee4274910 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.cc 94428 2015-11-16 12:40:02Z gcosmo $ +// $Id: G4OpenGLViewer.cc 97315 2016-06-01 12:12:25Z gcosmo $ // // // Andrew Walkden 27th March 1996 @@ -60,6 +60,7 @@ #include #include +#include G4OpenGLViewer::G4OpenGLViewer (G4OpenGLSceneHandler& scene): G4VViewer (scene, -1), @@ -503,7 +504,6 @@ std::vector < G4OpenGLViewerPickMap* > G4OpenGLViewer::GetPickDetails(GLdouble x { std::vector < G4OpenGLViewerPickMap* > pickMapVector; - std::ostringstream oss; const G4int BUFSIZE = 512; GLuint selectBuffer[BUFSIZE]; glSelectBuffer(BUFSIZE, selectBuffer); @@ -540,7 +540,6 @@ std::vector < G4OpenGLViewerPickMap* > G4OpenGLViewer::GetPickDetails(GLdouble x p++; p++; for (GLuint j = 0; j < nnames; ++j) { - oss.clear(); GLuint name = *p++; pickMap->setHitNumber(i); pickMap->setSubHitNumber(j); @@ -552,6 +551,7 @@ std::vector < G4OpenGLViewerPickMap* > G4OpenGLViewer::GetPickDetails(GLdouble x if(attHolder && attHolder->GetAttDefs().size()) { for (size_t iAtt = 0; iAtt < attHolder->GetAttDefs().size(); ++iAtt) { + std::ostringstream oss; oss << G4AttCheck(attHolder->GetAttValues()[iAtt], attHolder->GetAttDefs()[iAtt]); pickMap->addAttributes(oss.str()); @@ -1036,7 +1036,7 @@ std::string G4OpenGLViewer::getRealPrintFilename() { if (fExportFilenameIndex != -1) { temp += std::string("_"); std::ostringstream os; - os << fExportFilenameIndex; + os << std::setw(4) << std::setfill('0') << fExportFilenameIndex; std::string nb_str = os.str(); temp += nb_str; } diff --git a/source/visualization/OpenGL/src/G4OpenGLViewerMessenger.cc b/source/visualization/OpenGL/src/G4OpenGLViewerMessenger.cc index e9a65670c4..1d58f82a97 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewerMessenger.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewerMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewerMessenger.cc 82764 2014-07-08 14:24:04Z gcosmo $ +// $Id: G4OpenGLViewerMessenger.cc 96669 2016-04-29 12:03:24Z gcosmo $ #ifdef G4VIS_BUILD_OPENGL_DRIVER @@ -173,7 +173,7 @@ G4OpenGLViewerMessenger::G4OpenGLViewerMessenger() fpCommandEventsDrawInterval = new G4UIcmdWithAnInteger("/vis/ogl/set/eventsDrawInterval", this); fpCommandEventsDrawInterval->SetGuidance - ("Set number of events allowed in drawing pipeline - speeds drawing"); + ("Set number of events allowed in drawing pipeline - speeds drawing."); fpCommandEventsDrawInterval->SetGuidance ("By default, the screen is updated at the end of every event." "\nAllowing OpenGL to buffer several events can make a big improvement" @@ -316,7 +316,6 @@ void G4OpenGLViewerMessenger::SetNewValue G4VisManager* pVisManager = G4VisManager::GetInstance(); G4VViewer* pViewer = pVisManager->GetCurrentViewer(); - if (!pViewer) { G4cout << "G4OpenGLViewerMessenger::SetNewValue: No current viewer." @@ -325,8 +324,18 @@ void G4OpenGLViewerMessenger::SetNewValue return; } + G4VSceneHandler* pSceneHandler = pViewer->GetSceneHandler(); + if (!pSceneHandler) { + G4cout << + "G4OpenGLViewerMessenger::SetNewValue: This viewer has no scene handler." + "\n Shouldn't happen - please report circumstances." + "\n (Viewer is \"" << pViewer->GetName() << "\".)" + "\n Try \"/vis/open\", or similar, to get one." + << G4endl; + return; + } + G4OpenGLViewer* pOGLViewer = dynamic_cast(pViewer); - if (!pOGLViewer) { G4cout << "G4OpenGLViewerMessenger::SetNewValue: Current viewer is not of type" @@ -337,6 +346,19 @@ void G4OpenGLViewerMessenger::SetNewValue return; } + G4OpenGLSceneHandler* pOGLSceneHandler = + dynamic_cast(pSceneHandler); + if (!pOGLSceneHandler) { + G4cout << + "G4OpenGLViewerMessenger::SetNewValue: Current scene handler is not of type" + "\n OGL. (Viewer is \"" << pViewer->GetName() << "\".)" + "\n (Scene handler is \"" << pSceneHandler->GetName() << "\".)" + "\n Use \"/vis/sceneHandler/list\" and \"/vis/sceneHandler/select\"" + "\n or \"/vis/open\"." + << G4endl; + return; + } + if (command == fpCommandPrintEPS) { pOGLViewer->setExportImageFormat("eps",true); @@ -406,6 +428,14 @@ void G4OpenGLViewerMessenger::SetNewValue return; } + if (command == fpCommandEventsDrawInterval) + { + G4int eventsDrawInterval = + fpCommandEventsDrawInterval->GetNewIntValue(newValue); + pOGLSceneHandler->SetEventsDrawInterval(eventsDrawInterval); + return; + } + G4OpenGLStoredViewer* pOGLSViewer = dynamic_cast(pViewer); @@ -507,40 +537,6 @@ void G4OpenGLViewerMessenger::SetNewValue return; } - G4VSceneHandler* pSceneHandler = pViewer->GetSceneHandler(); - - if (!pSceneHandler) { - G4cout << - "G4OpenGLViewerMessenger::SetNewValue: This viewer has no scene handler." - "\n Shouldn't happen - please report circumstances." - "\n (Viewer is \"" << pViewer->GetName() << "\".)" - "\n Try \"/vis/open\", or similar, to get one." - << G4endl; - return; - } - - G4OpenGLSceneHandler* pOGLSceneHandler = - dynamic_cast(pSceneHandler); - - if (!pOGLSceneHandler) { - G4cout << - "G4OpenGLViewerMessenger::SetNewValue: Current scene handler is not of type" - "\n OGL. (Viewer is \"" << pViewer->GetName() << "\".)" - "\n (Scene handler is \"" << pSceneHandler->GetName() << "\".)" - "\n Use \"/vis/sceneHandler/list\" and \"/vis/sceneHandler/select\"" - "\n or \"/vis/open\"." - << G4endl; - return; - } - - if (command == fpCommandEventsDrawInterval) - { - G4int eventsDrawInterval = - fpCommandEventsDrawInterval->GetNewIntValue(newValue); - pOGLSceneHandler->SetEventsDrawInterval(eventsDrawInterval); - return; - } - G4OpenGLStoredSceneHandler* pOGLSSceneHandler = dynamic_cast(pViewer->GetSceneHandler()); diff --git a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc index fae7d47a75..980afdf320 100644 --- a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLWin32Viewer.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4OpenGLWin32Viewer.cc 97430 2016-06-03 07:20:11Z gcosmo $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific @@ -136,7 +136,7 @@ void G4OpenGLWin32Viewer::CreateMainWindow ( NULL); if(!fWindow) return; - ::SetWindowLongPtr(fWindow,GWLP_USERDATA,LONG(this)); + ::SetWindowLongPtr(fWindow,GWLP_USERDATA,LONG_PTR(this)); // initialize OpenGL rendering : fHDC = ::GetDC(fWindow); diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc index c70ddefea5..6ff284ffac 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.cc 92942 2015-09-22 07:31:39Z gcosmo $ +// $Id: G4OpenGLXViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // // Andrew Walkden 7th February 1997 @@ -92,6 +92,15 @@ extern "C" { } void G4OpenGLXViewer::SetView () { +#ifdef G4MULTITHREADED + if (G4Threading::IsMasterThread()) { + glXMakeCurrent (dpy, win, cxMaster); + } else { + glXMakeCurrent (dpy, win, cxVisSubThread); + } +#else + glXMakeCurrent (dpy, win, cxMaster); +#endif G4OpenGLViewer::SetView (); } diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc index 84331212fc..fd2742b7a4 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmViewer.cc 87695 2014-12-17 09:35:24Z gcosmo $ +// $Id: G4OpenGLXmViewer.cc 96733 2016-05-02 11:52:48Z gcosmo $ // // // Andrew Walkden 10th February 1997 @@ -59,6 +59,10 @@ void G4OpenGLXmViewer::ShowView () { + glXWaitGL (); //Wait for effects of all previous OpenGL commands to + //be propagated before progressing. + glFlush (); + G4Xt::getInstance () -> SecondaryLoop (); } diff --git a/source/visualization/OpenInventor/History b/source/visualization/OpenInventor/History index 6342384621..2531fd061b 100644 --- a/source/visualization/OpenInventor/History +++ b/source/visualization/OpenInventor/History @@ -1,4 +1,4 @@ -$Id: History 91687 2015-07-31 09:44:16Z gcosmo $ +$Id: History 97317 2016-06-01 12:14:31Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,38 @@ committal in the CVS repository ! History file for visualization/OpenInventor ------------------------------------------- +01 June 2016 John Allison (openinventor-V10-02-03) +- G4OpenInventorXtExtendedViewer.hh: + Removed fPDFButton - not used. Fixes Coverity warning. + +30 May 2016 John Allison (openinventor-V10-02-02) +- G4OpenInventorWin.cc: Fixed dispatching (Guy Barrand, Tom Roberts). +- G4OpenInventorXtViewer.cc, G4OpenInventorWinViewer.cc: + setTransparencyType(SoGLRenderAction::SORTED_OBJECT_ADD). + +27 May 2016 Gabriele Cosmo (openinventor-V10-02-01) +- Fixed compilation warnings on MacOS for conversion to char* in + G4OpenInventorXtExtendedViewer and G4OpenInventorXtViewer sources. + +22 Mar 2016 Gabriele Cosmo (openinventor-V10-02-00) +- Corrected delete statement in G4OpenInventorXtExaminerViewer::sortBookmarksCB(). + +18 Dec 2015 Frederick Jones +- G4OpenInventorXtExaminerViewer: + o Designed new icons (XPM) for the "Extended Pick Mode" and + "Pick Reference Trajectory" buttons. + o Modified the mouse-over-trajectory output to make it + more clear. + o Modifications for Coverity fault 48023 "Resource leak" + o Modifications for Coverity fault 48027 "Freed internal location" + o Improved diagnostics for Bookmark file handling. + o New approach for determining distance along the reference + path, using element centers instead of bounding boxes. + Solves problems with spurious bounding box warnings and + incorrect distance values. +- G4OpenInventorXtExtended & G4OpenInventorXtExtendedViewer + o Suppressed some unwanted diagnostic output. + 30th July 2015 John Allison (openinventor-V10-01-02) - G4OpenInventor: o Added IsUISessionCompatible. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorXtExtendedViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorXtExtendedViewer.hh index d6be325ded..4f9e6bd91e 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorXtExtendedViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorXtExtendedViewer.hh @@ -83,7 +83,6 @@ private: G4OpenInventorXtExaminerViewer* fViewer; Widget fHelpForm; Widget fHelpText; - Widget fPDFButton; }; #endif diff --git a/source/visualization/OpenInventor/include/pickext.h b/source/visualization/OpenInventor/include/pickext.h new file mode 100644 index 0000000000..178b0376ac --- /dev/null +++ b/source/visualization/OpenInventor/include/pickext.h @@ -0,0 +1,45 @@ +#ifndef COIN_PIXMAP_PICKEXT_XPM +#define COIN_PIXMAP_PICKEXT_XPM + +/* XPM */ +static const char* pickext_xpm[]={ +"24 24 13 1", +". c None", +"# c #000000", +"a c #646464", +"d c #800000", +"e c #bb0000", +"k c #d00000", +"b c #ec0000", +"f c #ff4d4d", +"c c #ff7171", +"g c #ff8c8c", +"h c #ffa2a2", +"i c #ffbfbf", +"j c #ffd0d0", +".................##.....", +".................##.....", +".................##.....", +".................##.....", +"..#a.........##########.", +"..ab#a.......##########.", +"...#bc#a.........##.....", +"...adbcc#a.......##.....", +"....#ebfcc#a.....##.....", +"....adbffgcc#a...##.....", +".....#ebffghcc#a........", +".....adbffffhicc#a......", +"......#ebfffffijcfa.....", +"......adbffffffhc#......", +".......#ebffffgc#.......", +".......adbffffc#........", +"........#ebbbebc#.......", +"........adebe#dbc#......", +".........#ee#.#dbc#.....", +".........ae#...#dkc#....", +"..........a.....#d#.....", +".................#......", +"........................", +"........................"}; + +#endif /* !COIN_PIXMAP_PICKEXT_XPM */ diff --git a/source/visualization/OpenInventor/include/pickref.h b/source/visualization/OpenInventor/include/pickref.h new file mode 100644 index 0000000000..529e5df617 --- /dev/null +++ b/source/visualization/OpenInventor/include/pickref.h @@ -0,0 +1,36 @@ +#ifndef COIN_PIXMAP_PICKREF_XPM +#define COIN_PIXMAP_PICKREF_XPM + +/* XPM */ +static const char* pickref_xpm[]={ +"24 24 4 1", +". c None", +"# c #0000ff", +"b c #ff0000", +"a c #ffffff", +"........................", +"...........##...........", +"...........##...........", +".........aa##aa.........", +".......aabb##bbaaa......", +"......abb..##..bbaa.....", +".....ab....##..a.baa....", +"..a.ab.....##.....ba.a..", +"..a.ab.....##.....ba.a..", +"...ab......##......ba.a.", +"...ab......##......ba.a.", +".######################.", +".######################.", +"...ab......##......ba.a.", +"...ab......##......ba.a.", +"..a.ab.....##.....ba.aa.", +"..a.ab.....##.....ba.a..", +".....ab....##....ba.....", +"......abb..##..bba......", +".......aabb##bbaa.......", +"........aaa##aa.........", +".......aa..##..aa.......", +".........aa##aa.........", +"........................"}; + +#endif /* !COIN_PIXMAP_PICKREF_XPM */ diff --git a/source/visualization/OpenInventor/sources.cmake b/source/visualization/OpenInventor/sources.cmake index 2b69f863ef..27d7cdb526 100644 --- a/source/visualization/OpenInventor/sources.cmake +++ b/source/visualization/OpenInventor/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 88190 2015-02-02 17:24:54Z gcosmo $ +# $Id: sources.cmake 96179 2016-03-22 15:43:57Z gcosmo $ # #------------------------------------------------------------------------------ @@ -107,6 +107,8 @@ if(UNIX) console.h favorites.h saveViewPt.h + pickext.h + pickref.h ) list(APPEND G4VIS_MODULE_OPENINVENTOR_SOURCES diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWin.cc b/source/visualization/OpenInventor/src/G4OpenInventorWin.cc index f9615ea833..8f0ccb6ac1 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWin.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWin.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenInventorWin.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4OpenInventorWin.cc 97241 2016-05-30 12:06:54Z gcosmo $ // // OpenInventor graphics system factory. @@ -50,9 +50,8 @@ void G4OpenInventorWin::Initialize () if(fInited) return; //Done SetInteractorManager (G4Win32::getInstance()); - GetInteractorManager () -> RemoveDispatcher((G4DispatchFunction)G4Win32::dispatchWin32Event); - - // GetInteractorManager () -> AddDispatcher((G4DispatchFunction)SoWin::dispatchEvent); + GetInteractorManager () -> RemoveDispatcher((G4DispatchFunction)G4Win32::DispatchWin32Event); + GetInteractorManager () -> AddDispatcher((G4DispatchFunction)SoWin::dispatchEvent); HWND toplevel = (HWND)GetInteractorManager()->GetMainInteractor(); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc index 43a42039d0..3e8ade4266 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenInventorWinViewer.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4OpenInventorWinViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // /* * jck : 05 Feb 1997 : Initial Implementation @@ -204,6 +204,7 @@ void G4OpenInventorWinViewer::Initialise() { fInteractorManager->FlushAndWaitExecution (); } fInteractorManager->SetCreatedInteractor (fViewer -> getWidget()); + fViewer->setTransparencyType(SoGLRenderAction::SORTED_OBJECT_ADD); } G4OpenInventorWinViewer::~G4OpenInventorWinViewer () { diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc index d1772066d2..a7b40053d8 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc @@ -81,8 +81,10 @@ #include // Animation #include // Detect start of run #include "saveViewPt.h" -#include "console.h" -#include "favorites.h" +#include "pickext.h" +#include "pickref.h" +//#include "console.h" +//#include "favorites.h" #include "Geant4_SoPolyhedron.h" //#include "G4RunManager.hh" @@ -746,14 +748,22 @@ void G4OpenInventorXtExaminerViewer::createViewerButtons(Widget parent, xmToggleButtonWidgetClass, parent, XmNindicatorOn, False, NULL); XtAddCallback(abbrOutputButton, XmNdisarmCallback, G4OpenInventorXtExaminerViewer::abbrOutputCB, this); - Pixmap consolexpm, consolexpm_ins; - consolexpm = SoXtInternal::createPixmapFromXpm(abbrOutputButton, - console_xpm); - consolexpm_ins = SoXtInternal::createPixmapFromXpm(abbrOutputButton, - console_xpm, TRUE); + Pixmap pickextxpm, pickextxpm_ins; + pickextxpm = SoXtInternal::createPixmapFromXpm(abbrOutputButton, + pickext_xpm); + pickextxpm_ins = SoXtInternal::createPixmapFromXpm(abbrOutputButton, + pickext_xpm, TRUE); XtVaSetValues(abbrOutputButton, XmNlabelType, XmPIXMAP, XmNlabelPixmap, - consolexpm, XmNselectPixmap, consolexpm, XmNlabelInsensitivePixmap, - consolexpm_ins, XmNselectInsensitivePixmap, consolexpm_ins, NULL); + pickextxpm, XmNselectPixmap, pickextxpm, XmNlabelInsensitivePixmap, + pickextxpm_ins, XmNselectInsensitivePixmap, pickextxpm_ins, NULL); + // Pixmap consolexpm, consolexpm_ins; + // consolexpm = SoXtInternal::createPixmapFromXpm(abbrOutputButton, + // console_xpm); + // consolexpm_ins = SoXtInternal::createPixmapFromXpm(abbrOutputButton, + // console_xpm, TRUE); + // XtVaSetValues(abbrOutputButton, XmNlabelType, XmPIXMAP, XmNlabelPixmap, + // consolexpm, XmNselectPixmap, consolexpm, XmNlabelInsensitivePixmap, + // consolexpm_ins, XmNselectInsensitivePixmap, consolexpm_ins, NULL); buttonlist->append(abbrOutputButton); // Button for selecting the beam that will act as reference path @@ -761,14 +771,22 @@ void G4OpenInventorXtExaminerViewer::createViewerButtons(Widget parent, parent, NULL); XtAddCallback(pickRefPathButton, XmNactivateCallback, G4OpenInventorXtExaminerViewer::pickRefPathCB, this); - Pixmap favoritesxpm, favoritesxpm_ins; - favoritesxpm = SoXtInternal::createPixmapFromXpm(pickRefPathButton, - favorites_xpm); - favoritesxpm_ins = SoXtInternal::createPixmapFromXpm(pickRefPathButton, - favorites_xpm, TRUE); + Pixmap pickrefxpm, pickrefxpm_ins; + pickrefxpm = SoXtInternal::createPixmapFromXpm(pickRefPathButton, + pickref_xpm); + pickrefxpm_ins = SoXtInternal::createPixmapFromXpm(pickRefPathButton, + pickref_xpm, TRUE); XtVaSetValues(pickRefPathButton, XmNlabelType, XmPIXMAP, XmNlabelPixmap, - favoritesxpm, XmNselectPixmap, favoritesxpm, XmNlabelInsensitivePixmap, - favoritesxpm_ins, XmNselectInsensitivePixmap, favoritesxpm_ins, NULL); + pickrefxpm, XmNselectPixmap, pickrefxpm, XmNlabelInsensitivePixmap, + pickrefxpm_ins, XmNselectInsensitivePixmap, pickrefxpm_ins, NULL); + // Pixmap favoritesxpm, favoritesxpm_ins; + // favoritesxpm = SoXtInternal::createPixmapFromXpm(pickRefPathButton, + // favorites_xpm); + // favoritesxpm_ins = SoXtInternal::createPixmapFromXpm(pickRefPathButton, + // favorites_xpm, TRUE); + // XtVaSetValues(pickRefPathButton, XmNlabelType, XmPIXMAP, XmNlabelPixmap, + // favoritesxpm, XmNselectPixmap, favoritesxpm, XmNlabelInsensitivePixmap, + // favoritesxpm_ins, XmNselectInsensitivePixmap, favoritesxpm_ins, NULL); buttonlist->append(pickRefPathButton); } @@ -1219,7 +1237,7 @@ void G4OpenInventorXtExaminerViewer::mouseoverCB(void *aThis, SoEventCallback *e if(attHolder && attHolder->GetAttDefs().size()) { std::string strTrajPoint = "G4TrajectoryPoint:"; std::ostringstream oss; - G4String t1, t2, t3, t4; + G4String t1, t1Ch, t2, t3, t4; for (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]; @@ -1228,20 +1246,21 @@ void G4OpenInventorXtExaminerViewer::mouseoverCB(void *aThis, SoEventCallback *e for (iValue = vals->begin(); iValue != vals->end(); ++iValue) { const G4String& valueName = iValue->GetName(); const G4String& value = iValue->GetValue(); - // G4cout << " valueName = " << valueName << G4endl; - // G4cout << " value = " << value << G4endl; + // G4cout << " valueName = " << valueName << G4endl; + // G4cout << " value = " << value << G4endl; // LINE 1 if (valueName == "PN") t1 = value; if (valueName == "Ch") { if (atof(value.c_str()) > 0) - t1 += " +"; + t1Ch = " +"; else - t1 += " "; - t1 += value; + t1Ch = " "; + t1Ch += value; } if (valueName == "PDG") { t1 += " "; t1 += value; + t1 += t1Ch; This->mouseOverTextLogName->string.setValue(t1); } // G4cout << " t1 = " << t1 << G4endl; @@ -1262,7 +1281,8 @@ void G4OpenInventorXtExaminerViewer::mouseoverCB(void *aThis, SoEventCallback *e t3 += " P (" + value1 + ")"; } if (valueName == "IMag") { - t3 += " " + value; + t3 += " " + value + "/c"; + // t3 += " " + value; This->mouseOverTextMaterial->string.setValue(t3); } // LINE 4 @@ -2052,9 +2072,12 @@ void G4OpenInventorXtExaminerViewer::findAndSetRefPath() // Check if next character is a number, // in which case we don't have Track ID 1 - const char * nextChar = - oss.str().substr(idx + findStr.size() + 1,1).c_str(); - if(std::isdigit(nextChar[0])) + // FWJ attempt to fix Coverity issue. + char nextChar = oss.str().at(idx+findStr.size()+1); + // const char * nextChar = + // oss.str().substr(idx + findStr.size() + 1,1).c_str(); + if(std::isdigit(nextChar)) + // if(std::isdigit(nextChar[0])) break; //Not a primary track, continue with next track coords = this->getCoordsNode(path); @@ -2345,7 +2368,15 @@ void G4OpenInventorXtExaminerViewer::sortElements() for(itEl = this->sceneElements.begin(), elementIndex = 0; itEl != this->sceneElements.end(); ++itEl, ++elementIndex){ bAction.apply(itEl->path); - elementCoord = bAction.getBoundingBox().getCenter(); + + // FWJ sceneElement already has a center + elementCoord = itEl->center; + // ... and this sometimes returns an empty box! + // elementCoord = bAction.getBoundingBox().getCenter(); + // if (bAction.getBoundingBox().isEmpty()) { + // G4cout << "sortElements: Box is empty!" << G4endl; + // G4cout << " element name=" << itEl->name << G4endl; + // } int index; distanceToTrajectory(elementCoord, el.smallestDistance, el.closestPoint, index); @@ -2447,7 +2478,7 @@ void G4OpenInventorXtExaminerViewer::constructListsDialog(Widget w, XtPointer client_data, XtPointer) { - G4cout << "DEBUG constructListsDialog w = " << w << G4endl; + // G4cout << "DEBUG constructListsDialog w = " << w << G4endl; G4OpenInventorXtExaminerViewer * This = (G4OpenInventorXtExaminerViewer *) client_data; if (This->listsDialog) { return; @@ -2480,7 +2511,7 @@ void G4OpenInventorXtExaminerViewer::constructListsDialog(Widget w, // This is unnecessary because the parent is passed in // topShell = SoXt::getShellWidget(This->getParentWidget()); topShell = w; - G4cout << "DEBUG PARENT (topShell) FOR AUX WINDOW = " << topShell << G4endl; + // G4cout << "DEBUG PARENT (topShell) FOR AUX WINDOW = " << topShell << G4endl; // Shell Dialog std::string dialogNameStr = This->fileName.substr(This->fileName.rfind('/') + 1); @@ -3289,9 +3320,19 @@ void G4OpenInventorXtExaminerViewer::deleteViewPt(char *vpName) fileIn.clear(); fileIn.close(); - remove(fileName.c_str()); - rename("temporaryFile.txt", fileName.c_str()); - + // FWJ check return status + int istat = remove(fileName.c_str()); + if (istat == -1) { + char dialogName[] = "Warning"; + warningMsgDialog("Error removing bookmarks file", dialogName, + NULL); + } + istat = rename("temporaryFile.txt", fileName.c_str()); + if (istat == -1) { + char dialogName[] = "Warning"; + warningMsgDialog("Error renaming bookmarks file", dialogName, + NULL); + } fileOut.open(fileName.c_str(), std::ios::in); fileOut.seekp(0, std::ios::end); @@ -4303,28 +4344,29 @@ void G4OpenInventorXtExaminerViewer::renameBookmarkCB(Widget, int end = vpNameStr.find_last_not_of(' '); vpNameStr = vpNameStr.substr(beg, end - beg + 1); const int nVPName = vpNameStr.size() + 1; - vpName = new char[nVPName]; - strncpy(vpName, vpNameStr.c_str(), nVPName); + char* vpName1 = new char[nVPName]; + strncpy(vpName1, vpNameStr.c_str(), nVPName); int size = This->viewPtList.size(); for (int i = 0; i < size; i++) { - if (!strcmp(vpName, This->viewPtList[i].viewPtName)) { + if (!strcmp(vpName1, This->viewPtList[i].viewPtName)) { String dialogName = (char *) "Existing Viewpoint"; std::string msg = "'"; - msg += vpName; + msg += vpName1; msg += "' already exists. Choose a different name"; This->warningMsgDialog(msg, dialogName, NULL); + delete[] vpName1; return; } } - XmString vpNameXmStr = XmStringCreateLocalized(vpName); + XmString vpNameXmStr = XmStringCreateLocalized(vpName1); if (XmListGetSelectedPos(This->myViewPtList, &pos_list, &pos_cnt)) { XmListReplaceItemsPos(This->myViewPtList, &vpNameXmStr, 1, pos_list[0]); - This->renameViewPt(vpName); + This->renameViewPt(vpName1); XtFree((char *) pos_list); } @@ -4332,6 +4374,7 @@ void G4OpenInventorXtExaminerViewer::renameBookmarkCB(Widget, This->scheduleRedraw(); XmStringFree(vpNameXmStr); + delete[] vpName1; } @@ -4370,7 +4413,7 @@ void G4OpenInventorXtExaminerViewer::sortBookmarksCB(Widget, char *vpName2 = new char[nVPName]; strncpy(vpName2, charList[i].c_str(), nVPName); newStrList[i] = XmStringCreateLocalized(vpName2); - delete vpName2; + delete [] vpName2; } XmListDeleteAllItems(This->myViewPtList); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtExtended.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtExtended.cc index 854fb6fd02..69bc553ce2 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtExtended.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtExtended.cc @@ -54,7 +54,7 @@ G4OpenInventorXtExtended::G4OpenInventorXtExtended () void G4OpenInventorXtExtended::Initialize() { - G4cout << "DEBUG G4OpenInventorXtExtended::Initialize() CALLED" << G4endl; + // G4cout << "DEBUG G4OpenInventorXtExtended::Initialize() CALLED" << G4endl; if(fInited) return; //Done SetInteractorManager (G4Xt::getInstance ()); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc index 1b09ab7f03..8f310a7355 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc @@ -89,7 +89,7 @@ void G4OpenInventorXtExtendedViewer::Initialise() { G4String wName = fName; Widget parent = (Widget)fInteractorManager->GetParentInteractor (); - G4cout << "DEBUG G4OpenInventorXtExtendedViewer: parent = " << parent << G4endl; + // G4cout << "DEBUG G4OpenInventorXtExtendedViewer: parent = " << parent << G4endl; int width = 600; int height = 600; @@ -124,7 +124,7 @@ void G4OpenInventorXtExtendedViewer::Initialise() { SoXt::getDisplay(), args,3); - G4cout << "DEBUG CREATING THE VIEWER WITH CREATED SHELL = " << fShell << G4endl; + // G4cout << "DEBUG CREATING THE VIEWER WITH CREATED SHELL = " << fShell << G4endl; fViewer = new G4OpenInventorXtExaminerViewer(fShell, wName.c_str(), TRUE); fViewer->addEscapeCallback(EscapeFromKeyboardCbk, (void *)this); @@ -199,7 +199,7 @@ void G4OpenInventorXtExtendedViewer::Initialise() { } else { char* str = fInteractorManager->GetCreationString(); if(str!=0) wName = str; - G4cout << "DEBUG CREATING THE VIEWER WITH parent = " << parent << G4endl; + // G4cout << "DEBUG CREATING THE VIEWER WITH parent = " << parent << G4endl; fViewer = new G4OpenInventorXtExaminerViewer(parent, wName.c_str(), TRUE); } @@ -279,7 +279,7 @@ Widget G4OpenInventorXtExtendedViewer::AddMenu( // Cascade button : Arg args[2]; XmString cps = - XmStringLtoRCreate((char*)aLabel.c_str(),XmSTRING_DEFAULT_CHARSET); + XmStringLtoRCreate((char*)aLabel.c_str(),(char*)XmSTRING_DEFAULT_CHARSET); XtSetArg (args[0],XmNlabelString,cps); XtSetArg (args[1],XmNsubMenuId,menu); Widget widget = XmCreateCascadeButton(aMenuBar,(char*)aName.c_str(),args,2); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc index f53b7e5253..4613672ba3 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4OpenInventorXtViewer.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4OpenInventorXtViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $ // /* * jck 05 Feb 1997 - Initial Implementation @@ -203,6 +203,7 @@ void G4OpenInventorXtViewer::Initialise() { fInteractorManager->FlushAndWaitExecution (); } fInteractorManager->SetCreatedInteractor (fViewer -> getWidget()); + fViewer->setTransparencyType(SoGLRenderAction::SORTED_OBJECT_ADD); } G4OpenInventorXtViewer::~G4OpenInventorXtViewer () { @@ -253,7 +254,7 @@ Widget G4OpenInventorXtViewer::AddMenu( // Cascade button : Arg args[2]; XmString cps = - XmStringLtoRCreate((char*)aLabel.c_str(),XmSTRING_DEFAULT_CHARSET); + XmStringLtoRCreate((char*)aLabel.c_str(),(char*)XmSTRING_DEFAULT_CHARSET); XtSetArg (args[0],XmNlabelString,cps); XtSetArg (args[1],XmNsubMenuId,menu); Widget widget = XmCreateCascadeButton(aMenuBar,(char*)aName.c_str(),args,2); diff --git a/source/visualization/RayTracer/History b/source/visualization/RayTracer/History index 1cc092ab8c..d1895546f0 100644 --- a/source/visualization/RayTracer/History +++ b/source/visualization/RayTracer/History @@ -1,4 +1,4 @@ -$Id: History 88190 2015-02-02 17:24:54Z gcosmo $ +$Id: History 96733 2016-05-02 11:52:48Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,9 @@ committal in the CVS repository ! History file for Ray Tracer category --------------------------------------- +2nd May 2016 John Allison (raytracer-V10-02-00) +- G4RTJpegCoder.cc: Fixed gcc-6.1 warning. + 2nd February 2015 Gabriele Cosmo (raytracer-V10-01-00) - Fix to sources.cmake script to include missing dependency on external library. diff --git a/source/visualization/RayTracer/src/G4RTJpegCoder.cc b/source/visualization/RayTracer/src/G4RTJpegCoder.cc index bd07c7ad96..4df13c8e35 100644 --- a/source/visualization/RayTracer/src/G4RTJpegCoder.cc +++ b/source/visualization/RayTracer/src/G4RTJpegCoder.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4RTJpegCoder.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4RTJpegCoder.cc 96733 2016-05-02 11:52:48Z gcosmo $ // // // @@ -262,13 +262,12 @@ G4JpegCoder::ForwardDCT(int* picData) for( int u=0; u<8; u++ ){ double cu = u ? 1.0 : DisSqrt2; double sum = 0; - for( int y=0; y<8; y++ ) for( int x=0; x<8; x++ ) sum += picData[ y * 8 + x ] * mCosT[u][x] * mCosT[v][y]; - mDCTData[ v * 8 + u ] = int( sum * cu * cv / 4 ); - } + mDCTData[ v * 8 + u ] = int( sum * cu * cv / 4 ); } + } } diff --git a/source/visualization/Tree/History b/source/visualization/Tree/History index 6a4286b5b7..7b186e0dbb 100644 --- a/source/visualization/Tree/History +++ b/source/visualization/Tree/History @@ -1,4 +1,5 @@ -$Id: History 88761 2015-03-09 12:23:46Z gcosmo $ + +$Id: History 96317 2016-04-06 07:25:03Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +25,11 @@ committal in the CVS repository ! History file for visualization/Tree sub-category ------------------------------------------------ +5th April 2016 John Allison (vistree-V10-02-00) +- G4ASCIITreeSceneHandler.cc: + o Prevented multiple writing of the informational header on + the output file. + 8th March 2015 John Allison (vistree-V10-01-04 needs modeling-V10-01-01) - G4ASCIITreeSceneHandler: Added polyhedron dump for verbosity >=7. diff --git a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc index deb454d513..0b15a80f02 100644 --- a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeSceneHandler.cc 88761 2015-03-09 12:23:46Z gcosmo $ +// $Id: G4ASCIITreeSceneHandler.cc 96317 2016-04-06 07:25:03Z gcosmo $ // // // John Allison 5th April 2001 @@ -77,15 +77,20 @@ void G4ASCIITreeSceneHandler::BeginModeling () { fpOutFile = &fOutFile; } - G4cout << "G4ASCIITreeSceneHandler::BeginModeling: writing to "; - if (outFileName == "G4cout") { - G4cout << "G4 standard output (G4cout)"; - } else { - G4cout << "file \"" << outFileName << "\""; - } - G4cout << G4endl; + static G4bool firstTime = true; + if (firstTime) { + firstTime = false; + G4cout << "G4ASCIITreeSceneHandler::BeginModeling: writing to "; + if (outFileName == "G4cout") { + G4cout << "G4 standard output (G4cout)"; + } else { + G4cout << "file \"" << outFileName << "\""; + } + G4cout << G4endl; - WriteHeader (G4cout); G4cout << G4endl; + WriteHeader (G4cout); G4cout << G4endl; + } + if (outFileName != "G4cout") { WriteHeader (fOutFile); fOutFile << std::endl; } diff --git a/source/visualization/VRML/History b/source/visualization/VRML/History index d26db7cda7..31f8fddaf4 100644 --- a/source/visualization/VRML/History +++ b/source/visualization/VRML/History @@ -1,4 +1,4 @@ -$Id: History 88190 2015-02-02 17:24:54Z gcosmo $ +$Id: History 96992 2016-05-19 15:20:48Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,9 @@ committal in the CVS repository ! History file for visualization/VRML sub-category ------------------------------------------------ +19th May 2016 John Allison (VRML-V10-02-00) +- Fixed gcc-6.1 warnings. + 2nd February 2015 Gabriele Cosmo (VRML-V10-01-00) - Fix to sources.cmake script to include missing dependency on external library. diff --git a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc index eb4b952eb6..eb37ff7c80 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandlerFunc.icc 76287 2013-11-08 13:03:49Z gcosmo $ +// $Id: G4VRML1SceneHandlerFunc.icc 96992 2016-05-19 15:20:48Z gcosmo $ // // G4VRML1SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada @@ -397,7 +397,7 @@ void G4VRML1SCENEHANDLER::AddPrimitive( const G4Text& ) " not implemented yet." << "\n"; - VRMLBeginModeling () ; + VRMLBeginModeling () ; } void G4VRML1SCENEHANDLER::AddPrimitive( const G4Circle& circle ) diff --git a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc index f21c91d03e..05f5e522f9 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandlerFunc.icc 68043 2013-03-13 14:27:49Z gcosmo $ +// $Id: G4VRML2SceneHandlerFunc.icc 96992 2016-05-19 15:20:48Z gcosmo $ // // G4VRML2SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada @@ -312,7 +312,7 @@ void G4VRML2SCENEHANDLER::AddPrimitive( const G4Text& ) " not implemented yet." << "\n"; - VRMLBeginModeling () ; + VRMLBeginModeling () ; } diff --git a/source/visualization/XXX/History b/source/visualization/XXX/History index 1272bb7118..d2d25cd4fa 100644 --- a/source/visualization/XXX/History +++ b/source/visualization/XXX/History @@ -1,4 +1,4 @@ -$Id: History 88190 2015-02-02 17:24:54Z gcosmo $ +$Id: History 95225 2016-02-01 09:15:32Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,10 @@ committal in the CVS repository ! History file for visualization/XXX sub-category (a template graphics system) --------------------------------------------------------------------------- +27th January 2016 John Allison (visXXX-V10-02-00) +- CompareForKernelVisit: + Tested for total vis attributes modifiers instead of just for size. + 2nd February 2015 Gabriele Cosmo (visXXX-V10-01-00) - Fix to sources.cmake script to include missing dependency on external library. diff --git a/source/visualization/XXX/src/G4XXXSGViewer.cc b/source/visualization/XXX/src/G4XXXSGViewer.cc index 183449ef62..f1a2f014bb 100644 --- a/source/visualization/XXX/src/G4XXXSGViewer.cc +++ b/source/visualization/XXX/src/G4XXXSGViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4XXXSGViewer.cc 66870 2013-01-14 23:38:59Z adotti $ +// $Id: G4XXXSGViewer.cc 95225 2016-02-01 09:15:32Z gcosmo $ // // // John Allison 10th March 2006 @@ -132,8 +132,8 @@ G4bool G4XXXSGViewer::CompareForKernelVisit(G4ViewParameters& lastVP) (lastVP.GetDefaultTextVisAttributes()->GetColour() != fVP.GetDefaultTextVisAttributes()->GetColour()) || (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| - (lastVP.GetVisAttributesModifiers().size() != - fVP.GetVisAttributesModifiers().size()) + (lastVP.GetVisAttributesModifiers() != + fVP.GetVisAttributesModifiers()) ) { return true; } diff --git a/source/visualization/XXX/src/G4XXXStoredViewer.cc b/source/visualization/XXX/src/G4XXXStoredViewer.cc index ae310d4e36..06538936fd 100644 --- a/source/visualization/XXX/src/G4XXXStoredViewer.cc +++ b/source/visualization/XXX/src/G4XXXStoredViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4XXXStoredViewer.cc 68732 2013-04-05 09:44:10Z gcosmo $ +// $Id: G4XXXStoredViewer.cc 95225 2016-02-01 09:15:32Z gcosmo $ // // // John Allison 7th March 2006 @@ -130,8 +130,8 @@ G4bool G4XXXStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) (lastVP.GetDefaultTextVisAttributes()->GetColour() != fVP.GetDefaultTextVisAttributes()->GetColour()) || (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| - (lastVP.GetVisAttributesModifiers().size() != - fVP.GetVisAttributesModifiers().size()) + (lastVP.GetVisAttributesModifiers() != + fVP.GetVisAttributesModifiers()) ) { return true; } diff --git a/source/visualization/gMocren/History b/source/visualization/gMocren/History index 2f63126054..00c2e2f86d 100644 --- a/source/visualization/gMocren/History +++ b/source/visualization/gMocren/History @@ -1,4 +1,4 @@ -$Id: History 88772 2015-03-09 12:42:03Z gcosmo $ +$Id: History 97389 2016-06-02 10:05:52Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,12 @@ committal in the CVS repository ! History file for visualization/gMocren sub-category --------------------------------------------------- +1st June 2016 Laurent Garnier (gMocren-V10-02-01) +- Fixed Win64 warning. + +29th May 2016 John Allison (gMocren-V10-02-00) +- Fixed gcc-6.1 warnings. + 7th February 2015 Akinori Kimura (gMocren-V10-01-01) - G4GMocrenFileSceneHandler.cc: fixed bugs of checking string lengths. diff --git a/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc b/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc index b2010cc572..f515e85a80 100644 --- a/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc +++ b/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4GMocrenFileSceneHandler.cc 88772 2015-03-09 12:42:03Z gcosmo $ +// $Id: G4GMocrenFileSceneHandler.cc 97389 2016-06-02 10:05:52Z gcosmo $ // // // Created: Mar. 31, 2009 Akinori Kimura @@ -506,30 +506,28 @@ void G4GMocrenFileSceneHandler::GFBeginModeling( void ) if( !GFIsInModeling() ) { - if(GFDEBUG || G4VisManager::GetVerbosity() >= G4VisManager::confirmations) G4cout << "***** G4GMocrenFileSceneHandler::GFBeginModeling (called & started)" << G4endl; - //----- Send saving command and heading comment - BeginSavingGdd(); - - kFlagInModeling = true ; + //----- Send saving command and heading comment + BeginSavingGdd(); - // These models are entrusted to user commands /vis/scene/add/psHits or hits - //GetScene()->AddEndOfEventModel(new G4PSHitsModel()); - //GetScene()->AddEndOfRunModel(new G4PSHitsModel()); - //scene->AddEndOfEventModel(new G4HitsModel()); - if(GFDEBUG_HIT) { - G4Scene * scene = GetScene(); - std::vector vmodel = scene->GetEndOfEventModelList(); - std::vector::iterator itr = vmodel.begin(); - for(; itr != vmodel.end(); itr++) { - G4cout << " IIIIII model name: " << itr->fpModel->GetGlobalTag() << G4endl; - } + kFlagInModeling = true ; + + // These models are entrusted to user commands /vis/scene/add/psHits or hits + //GetScene()->AddEndOfEventModel(new G4PSHitsModel()); + //GetScene()->AddEndOfRunModel(new G4PSHitsModel()); + //scene->AddEndOfEventModel(new G4HitsModel()); + if(GFDEBUG_HIT) { + G4Scene * scene = GetScene(); + std::vector vmodel = scene->GetEndOfEventModelList(); + std::vector::iterator itr = vmodel.begin(); + for(; itr != vmodel.end(); itr++) { + G4cout << " IIIIII model name: " << itr->fpModel->GetGlobalTag() << G4endl; } - - } // if -} + } + } +} //========== AddPrimitive() functions ==========// @@ -1617,7 +1615,7 @@ void G4GMocrenFileSceneHandler::AddCompound( const G4VHit & hit) { } std::vector * attval = hit.CreateAttValues(); - if(!attval) {G4cout << "0 empty " << (unsigned long)attval << G4endl;} + if(!attval) {G4cout << "0 empty " << G4endl;} else { G4bool bid[3] = {false, false, false}; diff --git a/source/visualization/management/History b/source/visualization/management/History index 05bd85a6df..6451f3bd7c 100644 --- a/source/visualization/management/History +++ b/source/visualization/management/History @@ -1,4 +1,4 @@ -$Id: History 93811 2015-11-02 11:28:41Z gcosmo $ +$Id: History 97548 2016-06-03 15:56:56Z gcosmo $ ------------------------------------------------------------------- @@ -26,6 +26,143 @@ committal in the CVS repository ! History file for visualization management sub-category ------------------------------------------------------ +3rd June 2016 John Allison (visman-V10-02-13) +- G4ViewParameters.cc: Fixed compilation warnings on gcc-6.1. + +1st June 2016 John Allison (visman-V10-02-12) +- Fixed compiler error on Windows. /vis/viewer/interpolate is not + available on Windows because it uses popen, a way of getting + output from a system command. _popen (with an underscore) is + said to be available in Windows but this has not been tried. + +1st June 2016 John Allison (visman-V10-02-11) +- Introduced /vis/viewer/interpolate. See History from development + branch visman-V10-02-02-branch as follows: +17th February 2016 John Allison (visman-V10-02-02-branch-12) +- G4ViewParameters::CatmullRomCubicSplineInterpolation: + o Protected some parameters from going negative, as appropriate. +- G4VisCommandsViewer.cc: /vis/viewer/interpolate: + o Changed first argument to Unix-style pattern. From the guidance: + Interpolate views defined by the first argument, which can contain Unix-shell-style pattern matching characters such as '*', '?' and '[' - see "man sh" and look for "Pattern Matching". The contents of each file are assumed to be "/vis/viewer" commands that specify a particular view. The files are processed in alphanumeric order of filename. The files may be written by hand or produced by the "/vis/viewer/save" command. +The default is to search the working directory for files with a .view extension. Another procedure is to assemble view files in a subdirectory, e.g., "myviews"; then they can be interpolated with +"/vis/viewer/interpolate myviews/*". +16th February 2016 John Allison (visman-V10-02-02-branch-11) +- /vis/viewer/interpolate: + Added safety check to while and do loops. +- Restored mysteriously lost G4VisCommandViewerClearVisAttributesModifiers. +28th January 2016 John Allison (visman-V10-02-02-branch-10) +- Interpolation: Added vis attributes modifiers (colours only). +- Tidied. +28th January 2016 John Allison (visman-V10-02-02-branch-09) +- Tidied. +28th January 2016 John Allison (visman-V10-02-02-branch-08) +- Interpolation: Added cutaway planes. +27th January 2016 John Allison (visman-V10-02-02-branch-07) +- Interpolation: Added planes and colours. +27th January 2016 John Allison (visman-V10-02-02-branch-06) +- /vis/viewer/interpolate: + o Allow export of files for possible movie. Write \"export\" as + 5th parameter (OpenGL only). +27th January 2016 John Allison (visman-V10-02-02-branch-05) +- Needs modeling-V10-02-01. +- G4VisManager.cc: Added instantiation of + G4VisCommandViewerClearVisAttributesModifiers. +- G4VisCommandsViewer: Added /vis/viewer/clearVisAttributesModifiers. +- G4VisCommandsTouchable.cc: Improved guidance. +- G4ViewParameters: + o Added ClearVisAttributesModifiers. + o Augmented AddVisAttributesModifier so that if a target already + exists the modifier is not added, only the vis attributes of the + existing modifier are changed. +26th January 2016 John Allison +- Merged visman-V10-02-03: G4VisManager::G4VisSubThread: + GetNavigatorForTracking -> SetWorldVolume + This is required for OriginVolume drawing and filtering. +24th January 2016 John Allison (visman-V10-02-02-branch-04) +- Refinements. +23rd January 2016 John Allison (visman-V10-02-02-branch-01) +- Improved /vis/viewer/interpolate. +22nd January 2016 John Allison (visman-V10-02-02-branch-00) +- Introduced G4ViewParameters::CatmullRomCubicSplineInterpolation. +- Moved the following: + #ifndef __MIC__ + #define G4VIS_USE_STD11 + #endif + from G4VisManager.cc to G4VisManager.hh. +- G4VisManager.cc: Instantiated G4VisCommandViewerInterpolate. +- G4VisCommandsViewer: + o Introduced /vis/viewer/interpolate. Note this command is not + available on Windows. Code is protected by #ifndef WIN32. + This is because popen, which allows one to retrieve output + from a system shell command, is not available on Windows. + o Improved guidance for /vis/viewer/save. + +30th May 2016 John Allison (visman-V10-02-10) +- G4VisManager::SetCurrentViewer: Added fpViewer->SetView(). +- G4VisCommandsViewer.cc: + o /vis/viewer/select: Added comment: Calling the above calls SetView(). + o /vis/viewer/clear: Added viewer->SetView(). + +4th May 2016 John Allison (visman-V10-02-09) +- G4VisExecutive.icc: Win32 now opens with "/vis/open OGL" if Qt + is not built. + +2nd May 2016 John Allison (visman-V10-02-08) +- G4VisCommandsSceneAdd.cc: Fixed gcc-6.1 warnings. + +2nd May 2016 John Allison (visman-V10-02-07) +- G4VisManager: MT mode: moved end of run instructions (ShowView, + etc.) to end of vis thread. This is so that all trajectories are + flushed from vis thread before switching back to master thread. + Also fixes picking in MT mode. + +30th March 2016 John Allison +- Gave fallback trajectory model the name "DefaultModel". + +29th March 2016 John Allison (visman-V10-02-06) +- G4VisManager.cc: Cosmetic. Change of name of fallback traj. model. +- G4VisCommandsSceneAdd.cc: + o /vis/scene/add/volume: Removed incorrect check on existing models. + It was preventing parallel worlds being added individually. There + are enough checks in G4Scene::AddRunDurationModel. + +11th March 2016 John Allison (visman-V10-02-05) +- Fixed mistake in introductory vis manager message. +- Inhibited use of BeginRun, BeginEvent, EndEvent and EndRun + when vis is not enabled, for example after /vis/disable. + In particular this prevents the start of the vis thread in + multithreading mode. + +15th February 2016 John Allison (visman-V10-02-04) +- Requires modeling-V10-02-02. +- G4VisExecutive.icc: + Registered drawing and filtering by touched volume. I.e., + /vis/modeling/trajectories/create/drawByTouchedVolume + /vis/filtering/trajectories/create/touchedVolumeFilter + +26th January 2016 John Allison (visman-V10-02-03) +- G4VisManager::G4VisSubThread: + GetNavigatorForTracking -> SetWorldVolume + This is required for OriginVolume drawing and filtering. + +14th January 2016 John Allison (visman-V10-02-02) +- Improved /vis/viewer/save. + +14th January 2016 John Allison (visman-V10-02-01) +- Fixed unused variable problem. + +14th January 2016 John Allison (visman-V10-02-00) +- Improved error tracking: + o G4VVisCommand: Introduced error code to track error conditions. + o G4VisCommandsCompound.cc: Tracked error conditions for + /vis/open and /vis/drawTree. +- G4VisCommandsSceneHandler.cc: Code tidying. + +11th December 2015 Laurent Garnier +- G4VViewer: + o Add ComputeFlyThrough method (beta) + o Add an G4Spline class for testing + 1st November 2015 John Allison (visman-V10-01-20) - Introduced (again!) for queue handling in MT mode. o Except for Xeon Phi, which is protected by #ifndef __MIC__ diff --git a/source/visualization/management/include/G4VViewer.hh b/source/visualization/management/include/G4VViewer.hh index e07711cf2b..cfdb7c6b87 100644 --- a/source/visualization/management/include/G4VViewer.hh +++ b/source/visualization/management/include/G4VViewer.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VViewer.hh 90651 2015-06-05 13:30:54Z gcosmo $ +// $Id: G4VViewer.hh 95006 2016-01-15 08:26:18Z gcosmo $ // // // John Allison 27th March 1996 @@ -98,6 +98,8 @@ public: // With description // It is not yet the end of all drawing; that is signalled by // ShowView ().) + std::vector ComputeFlyThrough(G4Vector3D*); + #ifdef G4MULTITHREADED // In MT mode these functions are called in the following order for each run: // Called on the master thread before starting the vis sub-thread. @@ -194,4 +196,26 @@ void G4VViewer::DrawView () { // Default - concrete view usually overrides. *********************************************/ +class G4Spline +{ +public: + + // Constructors and destructor + G4Spline(); + ~G4Spline(); + + // Operations + void AddSplinePoint(const G4Vector3D& v); + G4Vector3D GetInterpolatedSplinePoint(float t); // t = 0...1; 0=vp[0] ... 1=vp[max] + int 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, + const G4Vector3D& p3, const G4Vector3D& p4); + +private: + std::vector vp; + float delta_t; +}; #endif diff --git a/source/visualization/management/include/G4VVisCommand.hh b/source/visualization/management/include/G4VVisCommand.hh index 5ac653af2c..0126ac3105 100644 --- a/source/visualization/management/include/G4VVisCommand.hh +++ b/source/visualization/management/include/G4VVisCommand.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.hh 83403 2014-08-21 15:07:30Z gcosmo $ +// $Id: G4VVisCommand.hh 95006 2016-01-15 08:26:18Z gcosmo $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -74,6 +74,9 @@ protected: // Data members. static G4VisManager* fpVisManager; + // Error management + static G4int fErrorCode; + // Current quantities for use in appropriate commands static G4Colour fCurrentColour; //static G4VMarker::FillStyle fCurrentFillStyle; Not yet used. diff --git a/source/visualization/management/include/G4ViewParameters.hh b/source/visualization/management/include/G4ViewParameters.hh index fcfbce48db..6af0dab331 100644 --- a/source/visualization/management/include/G4ViewParameters.hh +++ b/source/visualization/management/include/G4ViewParameters.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.hh 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4ViewParameters.hh 97316 2016-06-01 12:12:58Z gcosmo $ // // // John Allison 19th July 1996 @@ -248,6 +248,7 @@ public: // With description void SetBackgroundColour (const G4Colour&); void SetPicking (G4bool); void SetRotationStyle (RotationStyle); + void ClearVisAttributesModifiers (); void AddVisAttributesModifier (const G4ModelingParameters::VisAttributesModifier&); @@ -262,6 +263,19 @@ public: // With description // Other functions. void PrintDifferences (const G4ViewParameters& v) const; + // Interpolation + // Returns a null pointer when no more to be done. For example: + // do { + // G4ViewParameters* vp = + // G4ViewParameters::CatmullRomCubicSplineInterpolation(viewVector,nInterpolationPoints); + // if (!vp) break; + // ... + // } while (true); + // Assumes equal intervals + static G4ViewParameters* CatmullRomCubicSplineInterpolation + (const std::vector& views, + G4int nInterpolationPoints = 50); // No of interpolations points per interval + private: G4int ParseGeometry ( const char *string, G4int *x, G4int *y, unsigned int *width, unsigned int *height); diff --git a/source/visualization/management/include/G4ViewParameters.icc b/source/visualization/management/include/G4ViewParameters.icc index 06aabb9c85..104ec742ef 100644 --- a/source/visualization/management/include/G4ViewParameters.icc +++ b/source/visualization/management/include/G4ViewParameters.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.icc 86974 2014-11-21 11:58:31Z gcosmo $ +// $Id: G4ViewParameters.icc 97316 2016-06-01 12:12:58Z gcosmo $ // // // John Allison 20th October 1996 @@ -387,7 +387,6 @@ inline void G4ViewParameters::SetRotationStyle fRotationStyle = style; } -inline void G4ViewParameters::AddVisAttributesModifier -(const G4ModelingParameters::VisAttributesModifier& vam) { - fVisAttributesModifiers.push_back(vam); +inline void G4ViewParameters::ClearVisAttributesModifiers () { + fVisAttributesModifiers.clear (); } diff --git a/source/visualization/management/include/G4VisCommandsViewer.hh b/source/visualization/management/include/G4VisCommandsViewer.hh index bdec34a405..394f212d60 100644 --- a/source/visualization/management/include/G4VisCommandsViewer.hh +++ b/source/visualization/management/include/G4VisCommandsViewer.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.hh 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4VisCommandsViewer.hh 97316 2016-06-01 12:12:58Z gcosmo $ // /vis/viewer commands - John Allison 25th October 1998 @@ -115,6 +115,18 @@ private: G4UIcmdWithAString* fpCommand; }; +class G4VisCommandViewerClearVisAttributesModifiers: public G4VVisCommandViewer { +public: + G4VisCommandViewerClearVisAttributesModifiers (); + virtual ~G4VisCommandViewerClearVisAttributesModifiers (); + G4String GetCurrentValue (G4UIcommand* command); + void SetNewValue (G4UIcommand* command, G4String newValue); +private: + G4VisCommandViewerClearVisAttributesModifiers (const G4VisCommandViewerClearVisAttributesModifiers&); + G4VisCommandViewerClearVisAttributesModifiers& operator = (const G4VisCommandViewerClearVisAttributesModifiers&); + G4UIcmdWithoutParameter* fpCommand; +}; + class G4VisCommandViewerClone: public G4VVisCommandViewer { public: G4VisCommandViewerClone (); @@ -182,6 +194,20 @@ private: G4UIcmdWithAString* fpCommand; }; +#ifndef WIN32 +class G4VisCommandViewerInterpolate: public G4VVisCommandViewer { +public: + G4VisCommandViewerInterpolate (); + virtual ~G4VisCommandViewerInterpolate (); + G4String GetCurrentValue (G4UIcommand* command); + void SetNewValue (G4UIcommand* command, G4String newValue); +private: + G4VisCommandViewerInterpolate (const G4VisCommandViewerInterpolate&); + G4VisCommandViewerInterpolate& operator = (const G4VisCommandViewerInterpolate&); + G4UIcommand* fpCommand; +}; +#endif + class G4VisCommandViewerList: public G4VVisCommandViewer { public: G4VisCommandViewerList (); diff --git a/source/visualization/management/include/G4VisExecutive.icc b/source/visualization/management/include/G4VisExecutive.icc index 85d02fc840..9d7293a7b4 100644 --- a/source/visualization/management/include/G4VisExecutive.icc +++ b/source/visualization/management/include/G4VisExecutive.icc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisExecutive.icc 91686 2015-07-31 09:40:08Z gcosmo $ +// $Id: G4VisExecutive.icc 96765 2016-05-04 13:28:37Z gcosmo $ // // // John Allison 24th January 1998. @@ -197,6 +197,10 @@ G4VisExecutive::RegisterGraphicsSystems () { #ifdef G4VIS_USE_OPENGLQT ogliwin32->AddNickname("OGLIQt_FALLBACK"); oglswin32->AddNickname("OGLSQt_FALLBACK"); +#else + ogliwin32->AddNickname("OGLI"); + oglswin32->AddNickname("OGL"); + oglswin32->AddNickname("OGLS"); #endif #endif @@ -235,16 +239,18 @@ G4VisExecutive::RegisterModelFactories() { // Trajectory draw models RegisterModelFactory(new G4TrajectoryGenericDrawerFactory()); + RegisterModelFactory(new G4TrajectoryDrawByAttributeFactory()); RegisterModelFactory(new G4TrajectoryDrawByChargeFactory()); + RegisterModelFactory(new G4TrajectoryDrawByOriginVolumeFactory()); RegisterModelFactory(new G4TrajectoryDrawByParticleIDFactory()); - RegisterModelFactory(new G4TrajectoryDrawByOriginVolumeFactory()); - RegisterModelFactory(new G4TrajectoryDrawByAttributeFactory()); + RegisterModelFactory(new G4TrajectoryDrawByTouchedVolumeFactory()); // Trajectory filter models - RegisterModelFactory(new G4TrajectoryChargeFilterFactory()); - RegisterModelFactory(new G4TrajectoryParticleFilterFactory()); - RegisterModelFactory(new G4TrajectoryOriginVolumeFilterFactory()); RegisterModelFactory(new G4TrajectoryAttributeFilterFactory()); + RegisterModelFactory(new G4TrajectoryChargeFilterFactory()); + RegisterModelFactory(new G4TrajectoryOriginVolumeFilterFactory()); + RegisterModelFactory(new G4TrajectoryParticleFilterFactory()); + RegisterModelFactory(new G4TrajectoryTouchedVolumeFilterFactory()); // Hit filter models RegisterModelFactory(new G4HitAttributeFilterFactory()); diff --git a/source/visualization/management/include/G4VisManager.hh b/source/visualization/management/include/G4VisManager.hh index 18fa18fcfd..c0792a3009 100644 --- a/source/visualization/management/include/G4VisManager.hh +++ b/source/visualization/management/include/G4VisManager.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisManager.hh 93026 2015-09-30 16:07:07Z gcosmo $ +// $Id: G4VisManager.hh 97316 2016-06-01 12:12:58Z gcosmo $ // // @@ -80,6 +80,11 @@ #ifndef G4VISMANAGER_HH #define G4VISMANAGER_HH +// Temporary definition until Xeon Phi can handle full C++11. +#ifndef __MIC__ +#define G4VIS_USE_STD11 +#endif + #include "G4VVisManager.hh" #include "globals.hh" diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc index fe6c672a9e..4707e96767 100644 --- a/source/visualization/management/src/G4VViewer.cc +++ b/source/visualization/management/src/G4VViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VViewer.cc 90651 2015-06-05 13:30:54Z gcosmo $ +// $Id: G4VViewer.cc 95006 2016-01-15 08:26:18Z gcosmo $ // // // John Allison 27th March 1996 @@ -132,6 +132,157 @@ void G4VViewer::SetViewParameters (const G4ViewParameters& vp) { } + +std::vector G4VViewer::ComputeFlyThrough(G4Vector3D* /*aVect*/) +{ + enum CurveType { + Bezier, + G4SplineTest}; + + // Choose a curve type (for testing) + int myCurveType = Bezier; + + // number if step points + int stepPoints = 500; + + + G4Spline* spline = new G4Spline(); + + + // At the moment we don't use the aVect parameters, but build it here : + // Good step points for exampleB5 + spline->AddSplinePoint(G4Vector3D(0,1000,-14000)); + spline->AddSplinePoint(G4Vector3D(0,1000,0)); + spline->AddSplinePoint(G4Vector3D(-4000,1000,4000)); + + + std::vector viewVect; + + if(myCurveType == Bezier) { + + + // Draw the spline + + for (int i = 0; i < stepPoints; i++) { + float t = (float)i / (float)stepPoints; + G4Vector3D cameraPosition = spline->GetInterpolatedSplinePoint(t); + // G4Vector3D targetPoint = spline->GetInterpolatedSplinePoint(t); + + // viewParam->SetViewAndLights(G4ThreeVector (cameraPosition.x(), cameraPosition.y(), cameraPosition.z())); + // viewParam->SetCurrentTargetPoint(targetPoint); + G4cout << "FLY CR("<< i << "):" << cameraPosition << G4endl; + viewVect.push_back(G4ThreeVector (cameraPosition.x(), cameraPosition.y(), cameraPosition.z())); + } + + } else if (myCurveType == G4SplineTest) { + /* + This method is a inspire from a Bezier curve. The problem of the Bezier curve is that the path does not go straight between two waypoints. + This method add "stay straight" parameter which could be between 0 and 1 where the pass will follow exactly the line between the waypoints + Ex : stay straight = 50% + m1 = 3*(P1+P0)/2 + + Ex : stay straight = 0% + m1 = (P1+P0)/2 + + P1 + / \ + / \ + a--x--b + / ° ° \ + / ° ° \ + m1 m2 + / \ + / \ + / \ + / \ + P0 P2 + + */ + G4Vector3D a; + G4Vector3D b; + G4Vector3D m1; + G4Vector3D m2; + G4Vector3D P0; + G4Vector3D P1; + G4Vector3D P2; + G4double stayStraight = 0; + G4double bezierSpeed = 0.4; // Spend 40% time in bezier curve (time between m1-m2 is 40% of time between P0-P1) + + G4Vector3D firstPoint; + G4Vector3D lastPoint; + + float nbBezierSteps = (stepPoints * bezierSpeed*(1-stayStraight)) * (2./spline->GetNumPoints()); + float nbFirstSteps = ((stepPoints/2-nbBezierSteps/2) /(1+stayStraight)) * (2./spline->GetNumPoints()); + + // First points + firstPoint = spline->GetPoint(0); + lastPoint = (firstPoint + spline->GetPoint(1))/2; + + for( float j=0; j<1; j+= 1/nbFirstSteps) { + G4ThreeVector pt = firstPoint + (lastPoint - firstPoint) * j; + viewVect.push_back(pt); + G4cout << "FLY Bezier A1("<< viewVect.size()<< "):" << pt << G4endl; + } + + for (int i = 0; i < spline->GetNumPoints()-2; i++) { + P0 = spline->GetPoint(i); + P1 = spline->GetPoint(i+1); + P2 = spline->GetPoint(i+2); + + m1 = P1 - (P1-P0)*(1-stayStraight)/2; + m2 = P1 + (P2-P1)*(1-stayStraight)/2; + + // We have to get straight path from (middile of P0-P1) to (middile of P0-P1 + (dist P0-P1) * stayStraight/2) + if (stayStraight >0) { + + firstPoint = (P0 + P1)/2; + lastPoint = (P0 + P1)/2 + (P1-P0)*stayStraight/2; + + for( float j=0; j<1; j+= 1/(nbFirstSteps*stayStraight)) { + G4ThreeVector pt = firstPoint + (lastPoint - firstPoint)* j; + viewVect.push_back(pt); + G4cout << "FLY Bezier A2("<< viewVect.size()<< "):" << pt << G4endl; + } + } + // Compute Bezier curve + for( float delta = 0 ; delta < 1 ; delta += 1/nbBezierSteps) + { + // The Green Line + a = m1 + ( (P1 - m1) * delta ); + b = P1 + ( (m2 - P1) * delta ); + + // Final point + G4ThreeVector pt = a + ((b-a) * delta ); + viewVect.push_back(pt); + G4cout << "FLY Bezier("<< viewVect.size()<< "):" << pt << G4endl; + } + + // We have to get straight path + if (stayStraight >0) { + firstPoint = (P1 + P2)/2 - (P2-P1)*stayStraight/2; + lastPoint = (P1 + P2)/2; + + for( float j=0; j<1; j+= 1/(nbFirstSteps*stayStraight)) { + G4ThreeVector pt = firstPoint + (lastPoint - firstPoint)* j; + viewVect.push_back(pt); + G4cout << "FLY Bezier B1("<< viewVect.size()<< "):" << pt << G4endl; + } + } + } + + // last points + firstPoint = spline->GetPoint(spline->GetNumPoints()-2); + lastPoint = spline->GetPoint(spline->GetNumPoints()-1); + for( float j=1; j>0; j-= 1/nbFirstSteps) { + G4ThreeVector pt = lastPoint - ((lastPoint-firstPoint)*((1-stayStraight)/2) * j ); + viewVect.push_back(pt); + G4cout << "FLY Bezier B2("<< viewVect.size()<< "):" << pt << G4endl; + } + } + return viewVect; +} + + #ifdef G4MULTITHREADED void G4VViewer::DoneWithMasterThread () { @@ -165,3 +316,64 @@ std::ostream& operator << (std::ostream& os, const G4VViewer& v) { os << v.fVP; return os; } + + +// ===== G4Spline class ===== + +G4Spline::G4Spline() +: vp(), delta_t(0) +{ +} + + +G4Spline::~G4Spline() +{} + +// Solve the Catmull-Rom parametric equation for a given time(t) and vector quadruple (p1,p2,p3,p4) +G4Vector3D G4Spline::CatmullRom_Eq(float t, const G4Vector3D& p1, const G4Vector3D& p2, const G4Vector3D& p3, const G4Vector3D& p4) +{ + float t2 = t * t; + float 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 ); + + return (p1*b1 + p2*b2 + p3*b3 + p4*b4); +} + +void G4Spline::AddSplinePoint(const G4Vector3D& v) +{ + vp.push_back(v); + delta_t = (float)1 / (float)vp.size(); +} + + +G4Vector3D G4Spline::GetPoint(int a) +{ + return vp[a]; +} + +int G4Spline::GetNumPoints() +{ + return vp.size(); +} + +G4Vector3D G4Spline::GetInterpolatedSplinePoint(float t) +{ + // Find out in which interval we are on the spline + int p = (int)(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); + // Relative (local) time + float lt = (t - delta_t*(float)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 d1484faecd..923b59b8be 100644 --- a/source/visualization/management/src/G4VVisCommand.cc +++ b/source/visualization/management/src/G4VVisCommand.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.cc 85021 2014-10-23 09:53:47Z gcosmo $ +// $Id: G4VVisCommand.cc 95006 2016-01-15 08:26:18Z gcosmo $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -36,6 +36,8 @@ #include "G4UnitsTable.hh" #include +G4int G4VVisCommand::fErrorCode = 0; + G4Colour G4VVisCommand::fCurrentColour = G4Colour::White(); G4Colour G4VVisCommand::fCurrentTextColour = G4Colour::Blue(); G4Text::Layout G4VVisCommand::fCurrentTextLayout = G4Text::left; diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc index abbcc4ffcf..e9c820e3f0 100644 --- a/source/visualization/management/src/G4ViewParameters.cc +++ b/source/visualization/management/src/G4ViewParameters.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.cc 91686 2015-07-31 09:40:08Z gcosmo $ +// $Id: G4ViewParameters.cc 97548 2016-06-03 15:56:56Z gcosmo $ // // // John Allison 19th July 1996 @@ -248,6 +248,22 @@ void G4ViewParameters::IncrementPan (G4double right, G4double up, G4double dista fCurrentTargetPoint += right * unitRight + up * unitUp + distance * fViewpointDirection; } +void G4ViewParameters::AddVisAttributesModifier +(const G4ModelingParameters::VisAttributesModifier& vam) { + // If target exists, just change vis attributes. + G4bool duplicateTarget = false; + auto i = fVisAttributesModifiers.begin(); + for (; i < fVisAttributesModifiers.end(); ++i) { + if (vam.GetPVNameCopyNoPath() == (*i).GetPVNameCopyNoPath() && + vam.GetVisAttributesSignifier() == (*i).GetVisAttributesSignifier()) { + duplicateTarget = true; + break; + } + } + if (duplicateTarget) (*i).SetVisAttributes(vam.GetVisAttributes()); + else fVisAttributesModifiers.push_back(vam); +} + G4String G4ViewParameters::CameraAndLightingCommands (const G4Point3D standardTargetPoint) const { @@ -464,7 +480,9 @@ G4String G4ViewParameters::TouchableCommands() const { std::ostringstream oss; - oss << "#\n# Touchable commands"; + oss + << "#\n# Touchable commands" + << "\n/vis/viewer/clearVisAttributesModifiers"; const std::vector& vams = fVisAttributesModifiers; @@ -1107,3 +1125,255 @@ G4int G4ViewParameters::ReadInteger(char *string, char **NextString) else return (-Result); } + +G4ViewParameters* G4ViewParameters::CatmullRomCubicSplineInterpolation +(const std::vector& views, + G4int nInterpolationPoints) // No of interpolations points per interval +{ + // Returns a null pointer when no more to be done. For example: + // do { + // G4ViewParameters* vp = + // G4ViewParameters::CatmullRomCubicSplineInterpolation(viewVector,nInterpolationPoints); + // if (!vp) break; + // ... + // } while (true); + + // See https://en.wikipedia.org/wiki/Cubic_Hermite_spline + + // Assumes equal intervals + + if (views.size() < 2) { + G4Exception + ("G4ViewParameters::CatmullRomCubicSplineInterpolation", + "visman0301", JustWarning, + "There must be at least two views."); + return 0; + } + + if (nInterpolationPoints < 1) { + G4Exception + ("G4ViewParameters::CatmullRomCubicSplineInterpolation", + "visman0302", JustWarning, + "Number of interpolation points cannot be zero or negative."); + return 0; + } + + const size_t nIntervals = views.size() - 1; + const G4double dt = 1./nInterpolationPoints; + + static G4ViewParameters holdingValues; + static G4double t = 0.; // 0. <= t <= 1. + static G4int iInterpolationPoint = 0; + static size_t iInterval = 0; + +// G4cout << "Interval " << iInterval << ", t = " << t << G4endl; + + // Hermite polynomials. + const G4double h00 = 2.*t*t*t - 3.*t*t +1; + const G4double h10 = t*t*t -2.*t*t + t; + const G4double h01 = -2.*t*t*t + 3.*t*t; + const G4double h11 = t*t*t - t*t; + + // Aliases (to simplify code) + const size_t& n = nIntervals; + size_t& i = iInterval; + const std::vector& v = views; + + // The Catmull-Rom cubic spline prescription is as follows: + // Slope at first way point is v[1] - v[0]. + // Slope at last way point is v[n] - v[n-1]. + // Otherwise slope at way point i is 0.5*(v[i+1] - v[i-1]). + // Result = h00*v[i] + h10*m[i] + h01*v[i+1] + h11*m[i+1], + // where m[i] amd m[i+1] are the slopes at the start and end + // of the interval for the particular value. + // If (n == 1), linear interpolation results. + // If (n == 2), quadratic interpolation results. + + // Working variables + G4double mi, mi1, real, x, y, z; + + // First, a crude interpolation of all parameters. Then, below, a + // smooth interpolation of those for which it makes sense. + holdingValues = t < 0.5? v[i]: v[i+1]; + + // Catmull-Rom cubic spline interpolation +#define INTERPOLATE(param) \ + /* This works out the interpolated param in i'th interval */ \ + /* Assumes n >= 1 */ \ + if (i == 0) { \ + /* First interval */ \ + mi = v[1].param - v[0].param; \ + /* If there is only one interval, make start and end slopes equal */ \ + /* (This results in a linear interpolation) */ \ + if (n == 1) mi1 = mi; \ + /* else the end slope of the interval takes account of the next waypoint along */ \ + else mi1 = 0.5 * (v[2].param - v[0].param); \ + } else if (i >= n - 1) { \ + /* Similarly for last interval */ \ + mi1 = v[i+1].param - v[i].param; \ + /* If there is only one interval, make start and end slopes equal */ \ + if (n == 1) mi = mi1; \ + /* else the start slope of the interval takes account of the previous waypoint */ \ + else mi = 0.5 * (v[i+1].param - v[i-1].param); \ + } else { \ + /* Full Catmull-Rom slopes use previous AND next waypoints */ \ + mi = 0.5 * (v[i+1].param - v[i-1].param); \ + mi1 = 0.5 * (v[i+2].param - v[i ].param); \ + } \ + real = h00 * v[i].param + h10 * mi + h01 * v[i+1].param + h11 * mi1; + + // Real parameters + INTERPOLATE(fVisibleDensity); + if (real < 0.) real = 0.; + holdingValues.fVisibleDensity = real; + INTERPOLATE(fExplodeFactor); + if (real < 0.) real = 0.; + holdingValues.fExplodeFactor = real; + INTERPOLATE(fFieldHalfAngle); + if (real < 0.) real = 0.; + holdingValues.fFieldHalfAngle = real; + INTERPOLATE(fZoomFactor); + if (real < 0.) real = 0.; + holdingValues.fZoomFactor = real; + INTERPOLATE(fDolly); + holdingValues.fDolly = real; + INTERPOLATE(fGlobalMarkerScale); + if (real < 0.) real = 0.; + holdingValues.fGlobalMarkerScale = real; + INTERPOLATE(fGlobalLineWidthScale); + if (real < 0.) real = 0.; + holdingValues.fGlobalLineWidthScale = real; + + // Unit vectors +#define INTERPOLATEUNITVECTOR(vector) \ +INTERPOLATE(vector.x()); x = real; \ +INTERPOLATE(vector.y()); y = real; \ +INTERPOLATE(vector.z()); z = real; + INTERPOLATEUNITVECTOR(fViewpointDirection); + holdingValues.fViewpointDirection = G4Vector3D(x,y,z).unit(); + INTERPOLATEUNITVECTOR(fUpVector); + holdingValues.fUpVector = G4Vector3D(x,y,z).unit(); + INTERPOLATEUNITVECTOR(fRelativeLightpointDirection); + holdingValues.fRelativeLightpointDirection = G4Vector3D(x,y,z).unit(); + INTERPOLATEUNITVECTOR(fActualLightpointDirection); + holdingValues.fActualLightpointDirection = G4Vector3D(x,y,z).unit(); + + // Un-normalised vectors +#define INTERPOLATEVECTOR(vector) \ +INTERPOLATE(vector.x()); x = real; \ +INTERPOLATE(vector.y()); y = real; \ +INTERPOLATE(vector.z()); z = real; + INTERPOLATEVECTOR(fScaleFactor); + holdingValues.fScaleFactor = G4Vector3D(x,y,z); + + // Points +#define INTERPOLATEPOINT(point) \ +INTERPOLATE(point.x()); x = real; \ +INTERPOLATE(point.y()); y = real; \ +INTERPOLATE(point.z()); z = real; + INTERPOLATEPOINT(fExplodeCentre); + holdingValues.fExplodeCentre = G4Point3D(x,y,z); + INTERPOLATEPOINT(fCurrentTargetPoint); + holdingValues.fCurrentTargetPoint = G4Point3D(x,y,z); + + // Colour + G4double red, green, blue, alpha; +#define INTERPOLATECOLOUR(colour) \ +INTERPOLATE(colour.GetRed()); red = real; \ +INTERPOLATE(colour.GetGreen()); green = real; \ +INTERPOLATE(colour.GetBlue()); blue = real; \ +INTERPOLATE(colour.GetAlpha()); alpha = real; + INTERPOLATECOLOUR(fBackgroundColour); + // Components are clamped to 0. <= component <= 1. + holdingValues.fBackgroundColour = G4Colour(red,green,blue,alpha); + + // For some parameters we need to check some continuity + G4bool continuous; +#define CONTINUITY(quantity) \ + continuous = false; \ + /* This follows the logic of the INTERPOLATE macro above; see comments therein */ \ + if (i == 0) { \ + if (v[1].quantity == v[0].quantity) { \ + if (n == 1) continuous = true; \ + else if (v[2].quantity == v[0].quantity) \ + continuous = true; \ + } \ + } else if (i >= n - 1) { \ + if (v[i+1].quantity == v[i].quantity) { \ + if (n == 1) continuous = true; \ + else if (v[i+1].quantity == v[i-1].quantity) \ + continuous = true; \ + } \ + } else { \ + if (v[i-1].quantity == v[i].quantity && \ + v[i+1].quantity == v[i].quantity && \ + v[i+2].quantity == v[i].quantity) \ + continuous = true; \ + } + + G4double a, b, c, d; +#define INTERPOLATEPLANE(plane) \ +INTERPOLATE(plane.a()); a = real; \ +INTERPOLATE(plane.b()); b = real; \ +INTERPOLATE(plane.c()); c = real; \ +INTERPOLATE(plane.d()); d = real; + + // Section plane + CONTINUITY(fSection); + if (continuous) { + INTERPOLATEPLANE(fSectionPlane); + holdingValues.fSectionPlane = G4Plane3D(a,b,c,d); + } + + // Cutaway planes + if (v[i].fCutawayPlanes.size()) { + CONTINUITY(fCutawayPlanes.size()); + if (continuous) { + for (size_t j = 0; j < v[i].fCutawayPlanes.size(); ++j) { + INTERPOLATEPLANE(fCutawayPlanes[j]); + holdingValues.fCutawayPlanes[j] = G4Plane3D(a,b,c,d); + } + } + } + + // Vis attributes modifiers + // Really, we are only intersted in colour - other attributes can follow + // the "crude" interpolation that is guaranteed above. + if (v[i].fVisAttributesModifiers.size()) { + CONTINUITY(fVisAttributesModifiers.size()); + if (continuous) { \ + for (size_t j = 0; j < v[i].fVisAttributesModifiers.size(); ++j) { \ + CONTINUITY(fVisAttributesModifiers[j].GetPVNameCopyNoPath()); + if (continuous) { + CONTINUITY(fVisAttributesModifiers[j].GetVisAttributesSignifier()); + if (continuous) { + if (v[i].fVisAttributesModifiers[j].GetVisAttributesSignifier() == + G4ModelingParameters::VASColour) { + INTERPOLATECOLOUR(fVisAttributesModifiers[j].GetVisAttributes().GetColour()); + G4VisAttributes workingVA = v[i].fVisAttributesModifiers[j].GetVisAttributes(); + workingVA.SetColour(G4Colour(red,green,blue,alpha)); + holdingValues.fVisAttributesModifiers[j].SetVisAttributes(workingVA); + } + } + } + } + } + } + + // Increment counters + iInterpolationPoint++; + t += dt; + if (iInterpolationPoint > nInterpolationPoints) { + iInterpolationPoint = 1; // Ready for next interval. + t = dt; + iInterval++; + } + if (iInterval >= nIntervals) { + iInterpolationPoint = 0; // Ready for a complete restart. + t = 0.; + iInterval = 0; + return 0; + } + + return &holdingValues; +} diff --git a/source/visualization/management/src/G4VisCommandsCompound.cc b/source/visualization/management/src/G4VisCommandsCompound.cc index dea630692e..7d3880082e 100644 --- a/source/visualization/management/src/G4VisCommandsCompound.cc +++ b/source/visualization/management/src/G4VisCommandsCompound.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisCommandsCompound.cc 91686 2015-07-31 09:40:08Z gcosmo $ +// $Id: G4VisCommandsCompound.cc 95006 2016-01-15 08:26:18Z gcosmo $ // Compound /vis/ commands - John Allison 15th May 2000 @@ -35,6 +35,7 @@ #include "G4UIcmdWithAString.hh" #include +#include ////////////// /vis/drawTree /////////////////////////////////////// @@ -64,6 +65,20 @@ void G4VisCommandDrawTree::SetNewValue(G4UIcommand*, G4String newValue) { std::istringstream is(newValue); is >> pvname >> system; + // Note: The second parameter, "system", is intended to allow the user + // a choice of dedicated tree printing/displaying systems but at present + // the only such dedicated system is ASCIITree. It doesn't make sense to + // specify OGLSX, for example. So to avoid confusion we restrict this + // feature to systems that have "Tree" in the name or nickname. + + // Of course, some other systems, such as OGLSQt, have a tree browser + // built-in. The HepRApp offline browser also has a tree browser + // built in. + + if (!system.contains("Tree")) { + system = "ATree"; + } + G4VGraphicsSystem* keepSystem = fpVisManager->GetCurrentGraphicsSystem(); G4Scene* keepScene = fpVisManager->GetCurrentScene(); G4VSceneHandler* keepSceneHandler = fpVisManager->GetCurrentSceneHandler(); @@ -77,19 +92,20 @@ void G4VisCommandDrawTree::SetNewValue(G4UIcommand*, G4String newValue) { newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); UImanager->ApplyCommand(G4String("/vis/open " + system)); - UImanager->ApplyCommand(G4String("/vis/drawVolume " + pvname)); - UImanager->ApplyCommand("/vis/viewer/flush"); - UImanager->SetVerboseLevel(keepVerbose); - - if (keepViewer) { - if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { - G4cout << "Reverting to " << keepViewer->GetName() << G4endl; + if (fErrorCode == 0) { + UImanager->ApplyCommand(G4String("/vis/drawVolume " + pvname)); + UImanager->ApplyCommand("/vis/viewer/flush"); + if (keepViewer) { + if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { + G4cout << "Reverting to " << keepViewer->GetName() << G4endl; + } + fpVisManager->SetCurrentGraphicsSystem(keepSystem); + fpVisManager->SetCurrentScene(keepScene); + fpVisManager->SetCurrentSceneHandler(keepSceneHandler); + fpVisManager->SetCurrentViewer(keepViewer); } - fpVisManager->SetCurrentGraphicsSystem(keepSystem); - fpVisManager->SetCurrentScene(keepScene); - fpVisManager->SetCurrentSceneHandler(keepSceneHandler); - fpVisManager->SetCurrentViewer(keepViewer); } + UImanager->SetVerboseLevel(keepVerbose); } ////////////// /vis/drawView /////////////////////////////////////// @@ -195,8 +211,8 @@ G4VisCommandDrawVolume::G4VisCommandDrawVolume() { "\nworld and parallel worlds, if any - are drawn. Otherwise a search of" "\nall worlds is made, taking the first matching occurence only. To see" "\na representation of the geometry hierarchy of the worlds, try" - "\n\"/vis/drawTree [worlds]\" or one of the driver/browser combinations" - "\nthat have the required functionality, e.g., HepRep"); + "\n\"/vis/drawTree worlds\" or one of the driver/browser combinations" + "\nthat have the required functionality, e.g., HepRepFile/HepRApp."); fpCommand->SetParameterName("physical-volume-name", omitable = true); fpCommand->SetDefaultValue("world"); } @@ -262,8 +278,26 @@ void G4VisCommandOpen::SetNewValue (G4UIcommand*, G4String newValue) { fpVisManager->GetVerbosity() >= G4VisManager::confirmations) newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); - UImanager->ApplyCommand(G4String("/vis/sceneHandler/create " + systemName)); - UImanager->ApplyCommand(G4String("/vis/viewer/create ! ! " + windowSizeHint)); + fErrorCode = UImanager->ApplyCommand(G4String("/vis/sceneHandler/create " + systemName)); + if (fErrorCode == 0) { + UImanager->ApplyCommand(G4String("/vis/viewer/create ! ! " + windowSizeHint)); + } else { + // Use set to get alphabetical order + std::set candidates; + for (const auto gs: fpVisManager -> GetAvailableGraphicsSystems()) { + // Just list nicknames, but exclude FALLBACK nicknames + for (const auto& nickname: gs->GetNicknames()) { + if (!nickname.contains("FALLBACK")) { + candidates.insert(nickname); + } + } + } + G4cerr << "Candidates are:"; + for (const auto& candidate: candidates) { + G4cerr << ' ' << candidate; + } + G4cerr << G4endl; + } UImanager->SetVerboseLevel(keepVerbose); } diff --git a/source/visualization/management/src/G4VisCommandsSceneAdd.cc b/source/visualization/management/src/G4VisCommandsSceneAdd.cc index 5bd24fdb4b..608da2646d 100644 --- a/source/visualization/management/src/G4VisCommandsSceneAdd.cc +++ b/source/visualization/management/src/G4VisCommandsSceneAdd.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.cc 93069 2015-10-02 09:54:27Z gcosmo $ +// $Id: G4VisCommandsSceneAdd.cc 96733 2016-05-02 11:52:48Z gcosmo $ // /vis/scene/add commands - John Allison 9th August 1998 #include "G4VisCommandsSceneAdd.hh" @@ -1421,13 +1421,16 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { switch (logoDirection) { case X: case minusX: - if (freeHeightFraction * (xmax - xmin) < height) room = false; break; + if (freeHeightFraction * (xmax - xmin) < height) room = false; + break; case Y: case minusY: - if (freeHeightFraction * (ymax - ymin) < height) room = false; break; + if (freeHeightFraction * (ymax - ymin) < height) room = false; + break; case Z: case minusZ: - if (freeHeightFraction * (zmax - zmin) < height) room = false; break; + if (freeHeightFraction * (zmax - zmin) < height) room = false; + break; } if (!room) { worried = true; @@ -2029,11 +2032,14 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { G4bool room = true; switch (scaleDirection) { case G4Scale::x: - if (freeLengthFraction * (xmax - xmin) < length) room = false; break; + if (freeLengthFraction * (xmax - xmin) < length) room = false; + break; case G4Scale::y: - if (freeLengthFraction * (ymax - ymin) < length) room = false; break; + if (freeLengthFraction * (ymax - ymin) < length) room = false; + break; case G4Scale::z: - if (freeLengthFraction * (zmax - zmin) < length) room = false; break; + if (freeLengthFraction * (zmax - zmin) < length) room = false; + break; } if (!room) { worried = true; @@ -2826,6 +2832,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, } } + // Get the world (the initial value of the iterator points to the mass world). G4VPhysicalVolume* world = *(transportationManager->GetWorldsIterator()); if (!world) { @@ -2839,32 +2846,6 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, return; } - const std::vector& rdModelList = pScene -> GetRunDurationModelList(); - std::vector::const_iterator it; - for (it = rdModelList.begin(); it != rdModelList.end(); ++it) { - if (it->fpModel->GetGlobalDescription().find("G4PhysicalVolumeModel") - != std::string::npos) { - if (((G4PhysicalVolumeModel*)(it->fpModel))->GetTopPhysicalVolume () == world) break; - } - } - if (it != rdModelList.end()) { - if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: There is already a volume, \"" - << it -> fpModel -> GetGlobalDescription() - << "\",\n in the run-duration model list of scene \"" - << pScene -> GetName() - << "\".\n To get a clean scene:" - << "\n /vis/drawVolume " << name - << "\n or" - << "\n /vis/scene/create" - << "\n /vis/scene/add/volume " << name - << "\n /vis/sceneHandler/attach" - << "\n (and also, if necessary, /vis/viewer/flush)" - << G4endl; - } - return; - } - std::vector models; std::vector foundVolumes; G4VPhysicalVolume* foundWorld = 0; diff --git a/source/visualization/management/src/G4VisCommandsSceneHandler.cc b/source/visualization/management/src/G4VisCommandsSceneHandler.cc index 7d4de93476..0c08ac0e98 100644 --- a/source/visualization/management/src/G4VisCommandsSceneHandler.cc +++ b/source/visualization/management/src/G4VisCommandsSceneHandler.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneHandler.cc 91721 2015-08-03 12:06:54Z gcosmo $ +// $Id: G4VisCommandsSceneHandler.cc 95006 2016-01-15 08:26:18Z gcosmo $ // /vis/sceneHandler commands - John Allison 10th October 1998 @@ -150,11 +150,12 @@ G4VisCommandSceneHandlerCreate::G4VisCommandSceneHandlerCreate (): fId (0) { const G4GraphicsSystemList& gslist = fpVisManager -> GetAvailableGraphicsSystems (); G4String candidates; - for (auto&& gs: gslist) { + for (const auto gs: gslist) { const G4String& name = gs -> GetName (); candidates += name + ' '; - for (auto&& nickname: gs -> GetNicknames ()) - candidates += nickname + ' '; + for (const auto& nickname: gs -> GetNicknames ()) { + if (nickname != name) candidates += nickname + ' '; + } } candidates = candidates.strip (); parameter -> SetParameterCandidates(candidates); diff --git a/source/visualization/management/src/G4VisCommandsTouchable.cc b/source/visualization/management/src/G4VisCommandsTouchable.cc index 8b83811bab..e35b0b690c 100644 --- a/source/visualization/management/src/G4VisCommandsTouchable.cc +++ b/source/visualization/management/src/G4VisCommandsTouchable.cc @@ -34,14 +34,14 @@ #include "G4TransportationManager.hh" #include "G4TouchableDumpScene.hh" -////////////// /vis/touchable/dump /////////////////////////////////////// - G4VisCommandsTouchable::G4VisCommandsTouchable() { fpCommandDump = new G4UIcmdWithoutParameter("/vis/touchable/dump",this); fpCommandDump->SetGuidance("Dump touchable attributes."); fpCommandDump->SetGuidance ("Use \"/vis/set/touchable\" to set current touchable."); + fpCommandDump->SetGuidance + ("Use \"/vis/touchable/set\" to set attributes."); } G4VisCommandsTouchable::~G4VisCommandsTouchable() { diff --git a/source/visualization/management/src/G4VisCommandsViewer.cc b/source/visualization/management/src/G4VisCommandsViewer.cc index 564ca9ab42..4e2972e13e 100644 --- a/source/visualization/management/src/G4VisCommandsViewer.cc +++ b/source/visualization/management/src/G4VisCommandsViewer.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.cc 93303 2015-10-15 15:19:40Z gcosmo $ +// $Id: G4VisCommandsViewer.cc 97316 2016-06-01 12:12:58Z gcosmo $ // /vis/viewer commands - John Allison 25th October 1998 @@ -41,10 +41,17 @@ #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWith3Vector.hh" #include "G4Point3D.hh" +#include "G4SystemOfUnits.hh" #include "G4UnitsTable.hh" #include "G4ios.hh" +#ifdef G4VIS_USE_STD11 +#include +#include +#endif #include #include +#include +#include G4VVisCommandViewer::G4VVisCommandViewer () {} @@ -275,6 +282,7 @@ void G4VisCommandViewerClear::SetNewValue (G4UIcommand*, G4String newValue) { return; } + viewer->SetView(); viewer->ClearView(); viewer->FinishView(); if (verbosity >= G4VisManager::confirmations) { @@ -372,6 +380,47 @@ void G4VisCommandViewerClearTransients::SetNewValue (G4UIcommand*, G4String newV } +////////////// /vis/viewer/clearVisAttributesModifiers /////////////////////////////////////// + +G4VisCommandViewerClearVisAttributesModifiers::G4VisCommandViewerClearVisAttributesModifiers () { + fpCommand = new G4UIcmdWithoutParameter + ("/vis/viewer/clearVisAttributesModifiers", this); + fpCommand -> SetGuidance ("Clear vis attribute modifiers of current viewer."); + fpCommand -> SetGuidance ("(These are used for touchables, etc.)"); +} + +G4VisCommandViewerClearVisAttributesModifiers::~G4VisCommandViewerClearVisAttributesModifiers () { + delete fpCommand; +} + +G4String G4VisCommandViewerClearVisAttributesModifiers::GetCurrentValue (G4UIcommand*) { + return ""; +} + +void G4VisCommandViewerClearVisAttributesModifiers::SetNewValue (G4UIcommand*, G4String) { + + G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); + + G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); + if (!viewer) { + if (verbosity >= G4VisManager::errors) { + G4cerr << + "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." + << G4endl; + } + return; + } + + G4ViewParameters vp = viewer->GetViewParameters(); + vp.ClearVisAttributesModifiers(); + if (verbosity >= G4VisManager::confirmations) { + G4cout << "Vis attributes modifiers for viewer \"" << viewer->GetName() + << "\" now cleared." << G4endl; + } + + SetViewParameters(viewer, vp); +} + ////////////// /vis/viewer/clone /////////////////////////////////////// G4VisCommandViewerClone::G4VisCommandViewerClone () { @@ -907,6 +956,182 @@ void G4VisCommandViewerFlush::SetNewValue (G4UIcommand*, G4String newValue) { } } +////////////// /vis/viewer/interpolate /////////////////////////////////////// + +#ifndef WIN32 +// popen is not available in Windows. _popen is said to be available in +// Windows but this has not been tried. + +G4VisCommandViewerInterpolate::G4VisCommandViewerInterpolate () { + G4bool omitable; + fpCommand = new G4UIcommand ("/vis/viewer/interpolate", this); + fpCommand -> SetGuidance + ("Interpolate views defined by the first argument, which can contain " + "Unix-shell-style pattern matching characters such as '*', '?' and '[' " + "- see \"man sh\" and look for \"Pattern Matching\". The contents " + "of each file are assumed to be \"/vis/viewer\" commands " + "that specify a particular view. The files are processed in alphanumeric " + "order of filename. The files may be written by hand or produced by the " + "\"/vis/viewer/save\" command."); + fpCommand -> SetGuidance + ("The default is to search the working directory for files with a .view " + "extension. Another procedure is to assemble view files in a subdirectory, " + "e.g., \"myviews\"; then they can be interpolated with\n" + "\"/vis/viewer/interpolate myviews/*\"."); + fpCommand -> SetGuidance + ("To export interpolated views to file for a future possible movie, " + "write \"export\" as 5th parameter (OpenGL only)."); + G4UIparameter* parameter; + parameter = new G4UIparameter("pattern", 's', omitable = true); + parameter -> SetGuidance("Pattern that defines the view files."); + parameter -> SetDefaultValue("*.view"); + fpCommand -> SetParameter(parameter); + parameter = new G4UIparameter("no-of-points", 'i', omitable = true); + parameter -> SetGuidance ("Number of interpolation points per interval."); + parameter -> SetDefaultValue(50); + fpCommand -> SetParameter(parameter); + parameter = new G4UIparameter("wait-time", 's', omitable = true); + parameter -> SetGuidance("Wait time per interpolated point"); + parameter -> SetDefaultValue("20."); + fpCommand -> SetParameter(parameter); + parameter = new G4UIparameter("time-unit", 's', omitable = true); + parameter -> SetDefaultValue("millisecond"); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter("export", 's', omitable = true); + parameter -> SetDefaultValue("no"); + fpCommand -> SetParameter (parameter); +} + +G4VisCommandViewerInterpolate::~G4VisCommandViewerInterpolate () { + delete fpCommand; +} + +G4String G4VisCommandViewerInterpolate::GetCurrentValue (G4UIcommand*) { + return ""; +} + +void G4VisCommandViewerInterpolate::SetNewValue (G4UIcommand*, G4String newValue) { + + G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); + + G4String pattern; + G4int nInterpolationPoints; + G4String waitTimePerPointString; + G4String timeUnit; + G4String exportString; + + std::istringstream iss (newValue); + iss + >> pattern + >> nInterpolationPoints + >> waitTimePerPointString + >> timeUnit + >> exportString; + const G4double waitTimePerPoint = + G4UIcommand::ConvertToDimensionedDouble((waitTimePerPointString + ' ' + timeUnit).c_str()); + G4int waitTimePerPointmilliseconds = waitTimePerPoint/millisecond; + if (waitTimePerPointmilliseconds < 0) waitTimePerPointmilliseconds = 0; + + // Execute pattern and get resulting list of filles + G4String shellCommand = "echo " + pattern; + FILE *filelist = popen(shellCommand.c_str(), "r"); + if (!filelist) { + if (verbosity >= G4VisManager::errors) { + G4cerr + << "ERROR: G4VisCommandViewerInterpolate::SetNewValue:" + << "\n Error obtaining pipe." + << G4endl; + } + return; + } + + G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); + if (!currentViewer) { + if (verbosity >= G4VisManager::errors) { + G4cerr << + "ERROR: G4VisCommandViewerInterpolate::SetNewValue: no current viewer." + << G4endl; + } + return; + } + + // Save current view parameters + G4ViewParameters saveVP = currentViewer->GetViewParameters(); + + // Save current verbosities + G4VisManager::Verbosity keepVisVerbosity = fpVisManager->GetVerbosity(); + G4UImanager* ui = G4UImanager::GetUIpointer(); + G4int keepUIVerbosity = ui->GetVerboseLevel(); + + // Set verbosities for this operation + fpVisManager->SetVerboseLevel(G4VisManager::errors); + ui->SetVerboseLevel(0); + + // Switch off auto-refresh (it will be restored later) + // Note: the view files do not set autoRefresh. + G4ViewParameters non_auto = saveVP; + non_auto.SetAutoRefresh(false); + currentViewer->SetViewParameters(non_auto); + + // Build view vector of way points + std::vector viewVector; + const size_t BUFLENGTH = 999999; + char buf[BUFLENGTH]; + fgets(buf, BUFLENGTH, filelist); + std::istringstream fileliststream(buf); + const G4int safety = 9999; + G4int safetyCount = 0; + G4String pathname; + while (fileliststream >> pathname + && safetyCount++ < safety) { // Loop checking, 16.02.2016, J.Allison + ui->ApplyCommand("/control/execute " + pathname); + viewVector.push_back(currentViewer->GetViewParameters()); + } + + if (safetyCount >= safety) { + if (verbosity >= G4VisManager::errors) { + G4cout << + "/vis/viewer/interpolate:" + "\n the number of way points exceeds the maximum currently allowed: " + << safety << G4endl; + } + return; + } + + // Interpolate views + safetyCount = 0; + do { + G4ViewParameters* vp = + G4ViewParameters::CatmullRomCubicSplineInterpolation(viewVector,nInterpolationPoints); + if (!vp) break; + currentViewer->SetViewParameters(*vp); + currentViewer->RefreshView(); + if (exportString == "export" && + currentViewer->GetName().contains("OpenGL")) + ui->ApplyCommand("/vis/ogl/export"); +#ifdef G4VIS_USE_STD11 + if (waitTimePerPointmilliseconds > 0) + std::this_thread::sleep_for(std::chrono::milliseconds(waitTimePerPointmilliseconds)); +#endif + } while (safetyCount++ < safety); // Loop checking, 16.02.2016, J.Allison + + // Restore original verbosities + ui->SetVerboseLevel(keepUIVerbosity); + fpVisManager->SetVerboseLevel(keepVisVerbosity); + + // Restore original view parameters + currentViewer->SetViewParameters(saveVP); + currentViewer->RefreshView(); + if (verbosity >= G4VisManager::confirmations) { + G4cout << "Viewer \"" << currentViewer -> GetName () << "\"" + << " restored." << G4endl; + } + + pclose(filelist); +} + +#endif // WIN32 - popen is not available in Windows. _popen is there but not tried. + ////////////// /vis/viewer/list /////////////////////////////////////// G4VisCommandViewerList::G4VisCommandViewerList () { @@ -1316,9 +1541,19 @@ G4VisCommandViewerSave::G4VisCommandViewerSave () { fpCommand -> SetGuidance ("Write commands that define the current view to file."); fpCommand -> SetGuidance - ("Read them back into the same or any viewer with \"/control/execute \"."); - fpCommand -> SetParameterName ("file-name", omitable = true); - fpCommand -> SetDefaultValue ("G4cout"); + ("Read them back into the same or any viewer with \"/control/execute\"."); + fpCommand -> SetGuidance + ("If the filename is omitted the view is saved to a file " + "\"g4_nn.view\", where nn is a sequential two-digit number."); + fpCommand -> SetGuidance + ("If the filename is \"-\", the data are written to G4cout."); + fpCommand -> SetGuidance + ("If you are wanting to save views for future interpolation a recommended " + "procedure is: save views to \"g4_nn.view\", as above, then move the files " + "into a sub-directory, say, \"views\", then interpolate with" + "\"/vis/viewer/interpolate views/\" (note the trailing \'/\')."); + fpCommand -> SetParameterName ("filename", omitable = true); + fpCommand -> SetDefaultValue (""); } G4VisCommandViewerSave::~G4VisCommandViewerSave () { @@ -1334,7 +1569,7 @@ namespace { void WriteCommands (std::ostream& os, const G4ViewParameters& vp, - const G4Point3D& stp) + const G4Point3D& stp) // Standard Target Point { os << vp.CameraAndLightingCommands(stp) @@ -1368,38 +1603,12 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { } return; } - - std::ofstream ofs; - if (newValue != "G4cout") { - // Check if file exists - std::ifstream ifs(newValue); - if (ifs) { - if (verbosity >= G4VisManager::errors) { - G4cerr << - "ERROR: G4VisCommandsViewerSave::SetNewValue: File \"" - << newValue << "\" already exists." - << G4endl; - } - ifs.close(); - return; - } - ofs.open(newValue); - if (!ofs) { - if (verbosity >= G4VisManager::errors) { - G4cerr << - "ERROR: G4VisCommandsViewerSave::SetNewValue: Trouble opening file \"" - << newValue << "\"." - << G4endl; - } - ofs.close(); - return; - } - } - + + // Get view parameters and ther relevant information. G4ViewParameters vp = currentViewer->GetViewParameters(); // Concatenate any private vis attributes modifiers... const std::vector* - privateVAMs = currentViewer->GetPrivateVisAttributesModifiers(); + privateVAMs = currentViewer->GetPrivateVisAttributesModifiers(); if (privateVAMs) { std::vector::const_iterator i; for (i = privateVAMs->begin(); i != privateVAMs->end(); ++i) { @@ -1407,23 +1616,58 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { } } const G4Point3D& stp = currentScene->GetStandardTargetPoint(); - - if (newValue == "G4cout") { + + G4String filename = newValue; + if (newValue.length() == 0) { + // Null filename - generate a filename + const G4int maxNoOfFiles = 100; + static G4int sequenceNumber = 0; + if (sequenceNumber >= maxNoOfFiles) { + if (verbosity >= G4VisManager::errors) { + G4cerr + << "ERROR: G4VisCommandsViewerSave::SetNewValue: Maximum number, " + << maxNoOfFiles + << ", of files exceeded." + << G4endl; + } + return; + } + std::ostringstream oss; + oss << std::setw(2) << std::setfill('0') << sequenceNumber++; + filename = "g4_" + oss.str() + ".view"; + } + + if (filename == "-") { + // Write to standard output WriteCommands(G4cout,vp,stp); } else { + // Write to file + std::ofstream ofs(filename); + if (!ofs) { + if (verbosity >= G4VisManager::errors) { + G4cerr << + "ERROR: G4VisCommandsViewerSave::SetNewValue: Trouble opening file \"" + << filename << "\"." + << G4endl; + } + ofs.close(); + return; + } WriteCommands(ofs,vp,stp); ofs.close(); } - - if (verbosity >= G4VisManager::confirmations) { + + if (verbosity >= G4VisManager::warnings) { G4cout << "Viewer \"" << currentViewer -> GetName () << "\"" << " saved to "; - if (newValue == "G4cout") { + if (filename == "-") { G4cout << "G4cout."; } else { - G4cout << "file \'" << newValue << "\"." << - "\n Read view parameters back into this or any viewer with" - "\n \"/control/execute " << newValue << "\""; + G4cout << "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; } @@ -1553,7 +1797,8 @@ void G4VisCommandViewerSelect::SetNewValue (G4UIcommand*, G4String newValue) { return; } - fpVisManager -> SetCurrentViewer (viewer); // Prints confirmation. + // Set pointers, call SetView and print confirmation. + fpVisManager -> SetCurrentViewer (viewer); RefreshIfRequired(viewer); } diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc index 08bbff5957..df7b3791ad 100644 --- a/source/visualization/management/src/G4VisManager.cc +++ b/source/visualization/management/src/G4VisManager.cc @@ -23,17 +23,13 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4VisManager.cc 94688 2015-12-02 17:15:08Z gunter $ +// $Id: G4VisManager.cc 97388 2016-06-02 10:04:52Z gcosmo $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. #include "G4VisManager.hh" -#ifndef __MIC__ -#define G4VIS_USE_STD11 -#endif - #include "G4VisCommands.hh" #include "G4VisCommandsCompound.hh" #include "G4VisCommandsGeometry.hh" @@ -271,7 +267,7 @@ void G4VisManager::Initialise () { "\n external packages or libraries, and, optionally, drivers under" "\n control of environment variables." "\n Also you should implement RegisterModelFactories()." - "\n See visualization/include/G4VisExecutive.hh/icc, for example." + "\n See visualization/management/include/G4VisExecutive.hh/icc, for example." "\n In your main() you will have something like:" "\n #ifdef G4VIS_USE" "\n G4VisManager* visManager = new G4VisExecutive;" @@ -488,11 +484,15 @@ void G4VisManager::RegisterMessengers () { RegisterMessenger(new G4VisCommandViewerClear); RegisterMessenger(new G4VisCommandViewerClearCutawayPlanes); RegisterMessenger(new G4VisCommandViewerClearTransients); + RegisterMessenger(new G4VisCommandViewerClearVisAttributesModifiers); RegisterMessenger(new G4VisCommandViewerClone); RegisterMessenger(new G4VisCommandViewerCopyViewFrom); RegisterMessenger(new G4VisCommandViewerCreate); RegisterMessenger(new G4VisCommandViewerDolly); RegisterMessenger(new G4VisCommandViewerFlush); +#ifndef WIN32 + RegisterMessenger(new G4VisCommandViewerInterpolate); +#endif RegisterMessenger(new G4VisCommandViewerList); RegisterMessenger(new G4VisCommandViewerPan); RegisterMessenger(new G4VisCommandViewerRebuild); @@ -621,11 +621,10 @@ G4VisManager::CurrentTrajDrawModel() const if (0 == model) { // No model was registered with the trajectory model manager. - // Use G4TrajectoryDrawByCharge as a default. - fpTrajDrawModelMgr->Register(new G4TrajectoryDrawByCharge("AutoGenerated")); - + // Use G4TrajectoryDrawByCharge as a fallback. + fpTrajDrawModelMgr->Register(new G4TrajectoryDrawByCharge("DefaultModel")); if (fVerbosity >= warnings) { - G4cout<<"G4VisManager: Using G4TrajectoryDrawByCharge as default trajectory model."<Register(model); } @@ -1422,6 +1421,7 @@ void G4VisManager::SetCurrentViewer (G4VViewer* pViewer) { } return; } + fpViewer->SetView(); fpSceneHandler -> SetCurrentViewer (pViewer); fpScene = fpSceneHandler -> GetScene (); fpGraphicsSystem = fpSceneHandler -> GetGraphicsSystem (); @@ -1615,8 +1615,13 @@ G4ThreadFunReturnType G4VisManager::G4VisSubThread(G4ThreadFunArgType p) // G4cout << "G4VisManager::G4VisSubThread: thread: " // << G4Threading::G4GetThreadId() << std::endl; + // Set up geometry and navigation for a thread G4GeometryWorkspacePool::GetInstance()->CreateAndUseWorkspace(); G4SolidsWorkspacePool::GetInstance()->CreateAndUseWorkspace(); + G4Navigator* navigator = + G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); + navigator->SetWorldVolume + (G4MTRunManager::GetMasterRunManagerKernel()->GetCurrentWorld()); pViewer->SwitchToVisSubThread(); @@ -1657,11 +1662,9 @@ G4ThreadFunReturnType G4VisManager::G4VisSubThread(G4ThreadFunArgType p) if (pScene->GetRefreshAtEndOfEvent()) { - // ShowView guarantees the view comes to the screen. No action - // is taken for passive viewers like OGL*X (without picking enabled), - // but it passes control to interactive viewers, such as OGL*X (with - // picking enabled) or OGL*Xm, and allows file-writing viewers to - // close the file. + // ShowView guarantees the view is flushed to the screen. It also + // triggers other features such picking (if enabled) and allows + // file-writing viewers to close the file. pViewer->ShowView(); pSceneHandler->SetMarkForClearingTransientStore(true); @@ -1682,7 +1685,11 @@ G4ThreadFunReturnType G4VisManager::G4VisSubThread(G4ThreadFunArgType p) G4MUTEXLOCK(&mtVisSubThreadMutex); G4int runInProgress = mtRunInProgress; G4MUTEXUNLOCK(&mtVisSubThreadMutex); - if (!runInProgress) break; + if (!runInProgress) { + // EndOfRun on master thread has signalled end of run. There is + // nothing to draw so... + break; + } // Run still in progress but nothing to draw, so wait a while. #ifdef G4VIS_USE_STD11 @@ -1692,7 +1699,22 @@ G4ThreadFunReturnType G4VisManager::G4VisSubThread(G4ThreadFunArgType p) #endif } - // Inform viewer that we have finished all sub-thread drawing for now... + // EndOfRun on master thread has signalled end of run + if (pScene->GetRefreshAtEndOfRun()) { + pSceneHandler->DrawEndOfRunModels(); + // ShowView guarantees the view is flushed to the screen. It also + // triggers other features such picking (if enabled) and allows + // file-writing viewers to close the file. + pViewer->ShowView(); + // An extra refresh for auto-refresh viewers. + // ???? I DON'T THINK THIS IS NECESSARY ???? JA ???? + // if (pViewer->GetViewParameters().IsAutoRefresh()) { + // pViewer->RefreshView(); + // } + pSceneHandler->SetMarkForClearingTransientStore(true); + } + + // Inform viewer that we have finished all sub-thread drawing pViewer->DoneWithVisSubThread(); pViewer->MovingToMasterThread(); // G4cout << "G4VisManager::G4VisSubThread: Vis sub-thread: ending" << G4endl; @@ -1711,6 +1733,9 @@ namespace { void G4VisManager::BeginOfRun () { if (fIgnoreStateChanges) return; + + if (!GetConcreteInstance()) return; + #ifdef G4MULTITHREADED if (G4Threading::IsWorkerThread()) return; #endif @@ -1768,6 +1793,9 @@ void G4VisManager::BeginOfRun () void G4VisManager::BeginOfEvent () { if (fIgnoreStateChanges) return; + + if (!GetConcreteInstance()) return; + // G4cout << "G4VisManager::BeginOfEvent: thread: " // << G4Threading::G4GetThreadId() << G4endl; @@ -1927,11 +1955,9 @@ void G4VisManager::EndOfEvent () // Unless last event (in which case wait end of run)... if (eventID < nEventsToBeProcessed - 1) { - // ShowView guarantees the view comes to the screen. No action - // is taken for passive viewers like OGL*X (without picking enabled), - // but it passes control to interactive viewers, such as OGL*X (with - // picking enabled) or OGL*Xm, and allows file-writing viewers to - // close the file. + // ShowView guarantees the view is flushed to the screen. It also + // triggers other features such picking (if enabled) and allows + // file-writing viewers to close the file. fpViewer->ShowView(); } else { // Last event... // Keep, but only if user has not kept any... @@ -1989,6 +2015,9 @@ void G4VisManager::EndOfEvent () void G4VisManager::EndOfRun () { if (fIgnoreStateChanges) return; + + if (!GetConcreteInstance()) return; + #ifdef G4MULTITHREADED if (G4Threading::IsWorkerThread()) return; #endif @@ -2103,12 +2132,13 @@ void G4VisManager::EndOfRun () // // figured out why). ???? JA ???? // if (!fpSceneHandler->GetMarkForClearingTransientStore()) { if (fpScene->GetRefreshAtEndOfRun()) { + // Some instructions that should NOT be in multithreaded version. +#ifndef G4MULTITHREADED + // These instructions are in G4VisSubThread for multithreading. fpSceneHandler->DrawEndOfRunModels(); - // ShowView guarantees the view comes to the screen. No action - // is taken for passive viewers like OGL*X (without picking enabled), - // but it passes control to interactive viewers, such as OGL*X (with - // picking enabled) or OGL*Xm, and allows file-writing viewers to - // close the file. + // ShowView guarantees the view is flushed to the screen. It also + // triggers other features such picking (if enabled) and allows + // file-writing viewers to close the file. fpViewer->ShowView(); // // An extra refresh for auto-refresh viewers. // // ???? I DON'T THINK THIS IS NECESSARY ???? JA ???? @@ -2116,6 +2146,7 @@ void G4VisManager::EndOfRun () // fpViewer->RefreshView(); // } fpSceneHandler->SetMarkForClearingTransientStore(true); +#endif } else { if (fpGraphicsSystem->GetFunctionality() == G4VGraphicsSystem::fileWriter) { diff --git a/source/visualization/modeling/History b/source/visualization/modeling/History index 841afdb8d0..e6f24eb4e3 100644 --- a/source/visualization/modeling/History +++ b/source/visualization/modeling/History @@ -1,4 +1,4 @@ -$Id: History 94206 2015-11-09 08:11:59Z gcosmo $ +$Id: History 96733 2016-05-02 11:52:48Z gcosmo $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,54 @@ committal in the CVS repository ! History file for visualization/modeling --------------------------------------- +2nd May 2016 John Allison (modeling-V10-02-04) +- G4PhysicalVolumeModel.cc: Fixed gcc-6.1 warning. + +5th April 2016 John Allison (modeling-V10-02-03) +- G4TrajectoryDrawByOriginVolume.cc: Tidied #include statements. + +15th February 2016 John Allison (modeling-V10-02-02) +- Introduced drawing and filtering by touched volume. I.e., + /vis/modeling/trajectories/create/drawByTouchedVolume + /vis/filtering/trajectories/create/touchedVolumeFilter + and their associated commands. Note that this + selects only by a single string, the physical volume name. If there + are more than one physical volumes with that name then any trajectory + touching any one of those volumes will be selected. If the user sets + more than one physical volume name (by using the set command more than + once) the trajectory will be selected if it touches either of those + volumes and which of the attributes (e.g., colour) associated with + those volumes is chosen is undefined, but one will be chosen. + A more comprehensive facility would allow the user to select by + touched touchable, i.e., by the full path and copy numbers of the + physical volume - but that is a job for the future if a use case arises. + o G4TrajectoryModelFactories.hh/cc: + Added G4TrajectoryDrawByTouchedVolumeFactory. + o G4TrajectoryFilterFactories.hh/cc: + Added G4TrajectoryTouchedVolumeFilterFactory. + o Added new files and classes: + G4TrajectoryDrawByTouchedVolume.hh/cc + G4TrajectoryTouchedVolumeFilter.hh/cc + o G4ModelColourMap.hh: Added new access function: + const std::map& GetBasicMap() const; + to allow access to the T objects (which are G4String objects, + physical volume name(s) in this case) that have been set. + o sources.make: Added: + G4TrajectoryDrawByTouchedVolume.hh + G4TrajectoryTouchedVolumeFilter.hh + G4TrajectoryDrawByTouchedVolume.cc + G4TrajectoryTouchedVolumeFilter.cc +- G4TrajectoryDrawByOriginVolume.cc: Tidied. + +26th January 2016 John Allison (modeling-V10-02-01) +- G4ModelingParameters.hh: Added VisAttributesModifier Set commands. + +26th January 2016 John Allison (modeling-V10-02-00) +- G4TrajectoryDrawByOriginVolume::Draw and + G4TrajectoryOriginVolumeFilter::Evaluate: + Added specific arguments to LocateGlobalPointAndSetup to handle + multithreading mode. + 2nd October 2015 John Allison (modeling-V10-01-05) - G4MagneticFieldModel.cc: Cosmetic improvements. diff --git a/source/visualization/modeling/include/G4ModelColourMap.hh b/source/visualization/modeling/include/G4ModelColourMap.hh index c6db5b065c..45181c68f4 100644 --- a/source/visualization/modeling/include/G4ModelColourMap.hh +++ b/source/visualization/modeling/include/G4ModelColourMap.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4ModelColourMap.hh 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4ModelColourMap.hh 95593 2016-02-16 10:48:50Z gcosmo $ // // Generic variable->G4Colour map, where "variable" is the template // parameter. @@ -52,6 +52,7 @@ public: // With description G4Colour& operator[](const T& quantity); // Access functions + const std::map& GetBasicMap() const; bool GetColour(const T&, G4Colour&) const; void Print(std::ostream& ostr) const; @@ -100,6 +101,10 @@ G4ModelColourMap::Set(const T& quantity, const G4Colour& colour) fMap[quantity] = colour; } +template +const std::map& G4ModelColourMap::GetBasicMap() const +{ return fMap; } + template bool G4ModelColourMap::GetColour(const T& quantity, G4Colour& colour) const diff --git a/source/visualization/modeling/include/G4ModelingParameters.hh b/source/visualization/modeling/include/G4ModelingParameters.hh index f5cf4cb2f7..462c8984c6 100644 --- a/source/visualization/modeling/include/G4ModelingParameters.hh +++ b/source/visualization/modeling/include/G4ModelingParameters.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4ModelingParameters.hh 81056 2014-05-20 09:02:16Z gcosmo $ +// $Id: G4ModelingParameters.hh 95224 2016-02-01 09:14:18Z gcosmo $ // // // John Allison 31st December 1997. @@ -102,11 +102,17 @@ public: // With description VisAttributesSignifier signifier, const std::vector& path); const G4VisAttributes& GetVisAttributes() const - {return fVisAtts;} + {return fVisAtts;} VisAttributesSignifier GetVisAttributesSignifier() const - {return fSignifier;} + {return fSignifier;} const PVNameCopyNoPath& GetPVNameCopyNoPath() const - {return fPVNameCopyNoPath;} + {return fPVNameCopyNoPath;} + void SetVisAttributes(const G4VisAttributes& visAtts) + {fVisAtts = visAtts;} + void SetVisAttributesSignifier(VisAttributesSignifier signifier) + {fSignifier = signifier;} + void SetPVNameCopyNoPath(const PVNameCopyNoPath& PVNameCopyNoPath) + {fPVNameCopyNoPath = PVNameCopyNoPath;} G4bool operator!=(const VisAttributesModifier&) const; G4bool operator==(const VisAttributesModifier& rhs) const {return !operator!=(rhs);} diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh b/source/visualization/modeling/include/G4TrajectoryDrawByTouchedVolume.hh similarity index 59% rename from source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh rename to source/visualization/modeling/include/G4TrajectoryDrawByTouchedVolume.hh index ca86c95e78..6a7e60bc5e 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh +++ b/source/visualization/modeling/include/G4TrajectoryDrawByTouchedVolume.hh @@ -23,69 +23,51 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PreCompoundParameters.hh 68028 2013-03-13 13:48:15Z gcosmo $ -// -// by V. Lara -// -// 01.04.2008 J. M. Quesada Level density set to A/10 at preequilibrium -// 18.08.2010 V.Ivanchenko make this class as a standard singleton +// $Id: G4TrajectoryDrawByTouchedVolume.hh 66264 2012-12-14 10:17:44Z allison $ // +// Class Description: +// Trajectory model which colours a trajectory according to +// the touched volume +// Class Description - End: +// Jane Tinslay March 2006 -#ifndef G4PreCompoundParameters_h -#define G4PreCompoundParameters_h 1 +#ifndef G4TRAJECTORYDRAWBYTOUCHEDVOLUME +#define G4TRAJECTORYDRAWBYTOUCHEDVOLUME -#include "globals.hh" +#include "G4VTrajectoryModel.hh" +#include "G4Colour.hh" +#include "G4ModelColourMap.hh" +#include "G4String.hh" +#include -class G4PreCompoundParameters -{ -public: +class G4TrajectoryDrawByTouchedVolume : public G4VTrajectoryModel { - G4PreCompoundParameters(); - - ~G4PreCompoundParameters(); +public: // With description - inline G4double GetLevelDensity(); + G4TrajectoryDrawByTouchedVolume(const G4String& name = "Unspecified", G4VisTrajContext* context=0); + + virtual ~G4TrajectoryDrawByTouchedVolume(); - inline G4double Getr0(); + // Draw method + virtual void Draw(const G4VTrajectory& trajectory, + const G4bool& visible = true) const; + + virtual void Print(std::ostream& ostr) const; + // Print configuration - inline G4double GetTransitionsr0(); + void SetDefault(const G4String&); + void SetDefault(const G4Colour&); - inline G4double GetFermiEnergy(); + void Set(const G4String& pvname, const G4String& colour); + void Set(const G4String& pvname, const G4Colour& colour); + // Configuration functions private: + // Data members + G4ModelColourMap fMap; + G4Colour fDefault; - // Level density parameter - G4double fLevelDensity; - - // Nuclear radius r0 - G4double fR0; - - // Nuclear radius r0 for transitions - G4double fTransitions_r0; - - // Fermi energy level - G4double fFermiEnergy; }; -inline G4double G4PreCompoundParameters::GetLevelDensity() -{ - return fLevelDensity; -} - -inline G4double G4PreCompoundParameters::Getr0() -{ - return fR0; -} - -inline G4double G4PreCompoundParameters::GetTransitionsr0() -{ - return fTransitions_r0; -} - -inline G4double G4PreCompoundParameters::GetFermiEnergy() -{ - return fFermiEnergy; -} - #endif diff --git a/source/visualization/modeling/include/G4TrajectoryFilterFactories.hh b/source/visualization/modeling/include/G4TrajectoryFilterFactories.hh index 421478cd2e..ea95656cc0 100644 --- a/source/visualization/modeling/include/G4TrajectoryFilterFactories.hh +++ b/source/visualization/modeling/include/G4TrajectoryFilterFactories.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// $Id: G4TrajectoryFilterFactories.hh 68043 2013-03-13 14:27:49Z gcosmo $ +/// $Id: G4TrajectoryFilterFactories.hh 95593 2016-02-16 10:48:50Z gcosmo $ // // // Trajectory filter model factories creating filters @@ -97,9 +97,25 @@ public: // With description G4TrajectoryOriginVolumeFilterFactory(); virtual ~G4TrajectoryOriginVolumeFilterFactory(); - + ModelAndMessengers Create(const G4String& placement, const G4String& name); - + +}; + +// Touched volume filter +class G4TrajectoryTouchedVolumeFilterFactory : public G4VModelFactory< G4VFilter > { + +public: // With description + + typedef std::vector Messengers; + typedef std::pair< G4VFilter *, Messengers > ModelAndMessengers; + + G4TrajectoryTouchedVolumeFilterFactory(); + + virtual ~G4TrajectoryTouchedVolumeFilterFactory(); + + ModelAndMessengers Create(const G4String& placement, const G4String& name); + }; diff --git a/source/visualization/modeling/include/G4TrajectoryModelFactories.hh b/source/visualization/modeling/include/G4TrajectoryModelFactories.hh index 43ab84a208..1e7fee38c6 100644 --- a/source/visualization/modeling/include/G4TrajectoryModelFactories.hh +++ b/source/visualization/modeling/include/G4TrajectoryModelFactories.hh @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TrajectoryModelFactories.hh 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4TrajectoryModelFactories.hh 95593 2016-02-16 10:48:50Z gcosmo $ // // Jane Tinslay, John Allison, Joseph Perl October 2005 // @@ -98,9 +98,21 @@ public: // With description G4TrajectoryDrawByOriginVolumeFactory(); virtual ~G4TrajectoryDrawByOriginVolumeFactory(); - + ModelAndMessengers Create(const G4String& placement, const G4String& name); - + +}; + +class G4TrajectoryDrawByTouchedVolumeFactory : public G4VModelFactory { + +public: // With description + + G4TrajectoryDrawByTouchedVolumeFactory(); + + virtual ~G4TrajectoryDrawByTouchedVolumeFactory(); + + ModelAndMessengers Create(const G4String& placement, const G4String& name); + }; #endif diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh b/source/visualization/modeling/include/G4TrajectoryTouchedVolumeFilter.hh similarity index 64% rename from source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh rename to source/visualization/modeling/include/G4TrajectoryTouchedVolumeFilter.hh index 9c3d2f1277..cf02ec0d4c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh +++ b/source/visualization/modeling/include/G4TrajectoryTouchedVolumeFilter.hh @@ -23,35 +23,46 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4B10GEMCoulombBarrier.hh 67983 2013-03-13 10:42:03Z gcosmo $ +// $Id: G4TrajectoryTouchedVolumeFilter.hh 66264 2012-12-14 10:17:44Z allison $ // -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Dec 1999) +// Filter trajectories according to touched volume name. Only registered +// volumes will pass the filter. // -//J.M. Quesada (July 2009) Coulomb barrier now derives from new class G4GEMCoulombBarrier -// strictly according to Furihata's report +// John Allison, Feb 2016 // -#ifndef G4B10GEMCoulombBarrier_h -#define G4B10GEMCoulombBarrier_h 1 +#ifndef G4TRAJECTORYTOUCHEDVOLUMEFILTER_HH +#define G4TRAJECTORYTOUCHEDVOLUMEFILTER_HH -//#include "G4GEMCoulombBarrierHE.hh" -#include "G4GEMCoulombBarrier.hh" -#include "globals.hh" -//JMQ 200709 now derives from new class G4GEMCoulombBarrier -class G4B10GEMCoulombBarrier : public G4GEMCoulombBarrier -{ -public: - //JMQ 200709 - G4B10GEMCoulombBarrier() : G4GEMCoulombBarrier(10,5) {}; - ~G4B10GEMCoulombBarrier() {}; +#include "G4SmartFilter.hh" +#include "G4VTrajectory.hh" +#include + +class G4TrajectoryTouchedVolumeFilter : public G4SmartFilter { + +public: // With description + + // Construct with filter name + G4TrajectoryTouchedVolumeFilter(const G4String& name = "Unspecified"); + + virtual ~G4TrajectoryTouchedVolumeFilter(); + + // Evaluate this trajectory + virtual bool Evaluate(const G4VTrajectory&) const; + + // Print configuration + virtual void Print(std::ostream& ostr) const; + + // Clear filter + virtual void Clear(); + + // Configuration function + void Add(const G4String& volume); private: - G4B10GEMCoulombBarrier(const G4B10GEMCoulombBarrier & right); - const G4B10GEMCoulombBarrier & operator=(const G4B10GEMCoulombBarrier & right); - G4bool operator==(const G4B10GEMCoulombBarrier & right) const; - G4bool operator!=(const G4B10GEMCoulombBarrier & right) const; - + // Data member + std::vector fVolumes; + }; #endif diff --git a/source/visualization/modeling/sources.cmake b/source/visualization/modeling/sources.cmake index 4658edd6f3..8aa8bbd526 100644 --- a/source/visualization/modeling/sources.cmake +++ b/source/visualization/modeling/sources.cmake @@ -11,7 +11,7 @@ # # Generated on : 24/9/2010 # -# $Id: sources.cmake 88190 2015-02-02 17:24:54Z gcosmo $ +# $Id: sources.cmake 95593 2016-02-16 10:48:50Z gcosmo $ # #------------------------------------------------------------------------------ @@ -85,12 +85,14 @@ GEANT4_DEFINE_MODULE(NAME G4modeling G4TrajectoryDrawByCharge.hh G4TrajectoryDrawByOriginVolume.hh G4TrajectoryDrawByParticleID.hh + G4TrajectoryDrawByTouchedVolume.hh G4TrajectoryDrawerUtils.hh G4TrajectoryFilterFactories.hh G4TrajectoryGenericDrawer.hh G4TrajectoryModelFactories.hh G4TrajectoryOriginVolumeFilter.hh G4TrajectoryParticleFilter.hh + G4TrajectoryTouchedVolumeFilter.hh G4VAttValueFilter.hh G4VModel.hh G4VModel.icc @@ -125,12 +127,14 @@ GEANT4_DEFINE_MODULE(NAME G4modeling G4TrajectoryDrawByCharge.cc G4TrajectoryDrawByOriginVolume.cc G4TrajectoryDrawByParticleID.cc + G4TrajectoryDrawByTouchedVolume.cc G4TrajectoryDrawerUtils.cc G4TrajectoryFilterFactories.cc G4TrajectoryGenericDrawer.cc G4TrajectoryModelFactories.cc G4TrajectoryOriginVolumeFilter.cc G4TrajectoryParticleFilter.cc + G4TrajectoryTouchedVolumeFilter.cc G4VModel.cc G4VTrajectoryModel.cc G4VisTrajContext.cc diff --git a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc index 16d2b53f3c..28ef4ed43b 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeModel.cc 88763 2015-03-09 12:26:23Z gcosmo $ +// $Id: G4PhysicalVolumeModel.cc 96733 2016-05-02 11:52:48Z gcosmo $ // // // John Allison 31st December 1997. @@ -927,7 +927,8 @@ std::ostream& operator<< << ':' << node.GetCopyNo() << '[' << node.GetNonCulledDepth() << ']' << ':' << node.GetTransform(); - if (!node.GetDrawn()) os << " Not "; os << "drawn"; + if (!node.GetDrawn()) os << " Not "; + os << "drawn"; } else { os << "Null node"; } diff --git a/source/visualization/modeling/src/G4TrajectoryDrawByOriginVolume.cc b/source/visualization/modeling/src/G4TrajectoryDrawByOriginVolume.cc index 1ff90dd441..0733262b84 100644 --- a/source/visualization/modeling/src/G4TrajectoryDrawByOriginVolume.cc +++ b/source/visualization/modeling/src/G4TrajectoryDrawByOriginVolume.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TrajectoryDrawByOriginVolume.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4TrajectoryDrawByOriginVolume.cc 96316 2016-04-06 07:23:44Z gcosmo $ // // Jane Tinslay March 2006 @@ -44,14 +44,16 @@ G4TrajectoryDrawByOriginVolume::~G4TrajectoryDrawByOriginVolume() {} void G4TrajectoryDrawByOriginVolume::Draw(const G4VTrajectory& traj, const G4bool& visible) const { - G4Colour colour(fDefault); - - G4Navigator* navigator = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); - G4VTrajectoryPoint* aTrajectoryPoint = traj.GetPoint(0); assert (0 != aTrajectoryPoint); + + G4Colour colour(fDefault); - G4VPhysicalVolume* volume = navigator->LocateGlobalPointAndSetup(aTrajectoryPoint->GetPosition()); + G4Navigator* navigator = + G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); + + G4VPhysicalVolume* volume = navigator->LocateGlobalPointAndSetup + (aTrajectoryPoint->GetPosition(), nullptr,false,true); // Logical volumes form basis. G4LogicalVolume* logicalVolume = volume->GetLogicalVolume(); @@ -72,7 +74,7 @@ G4TrajectoryDrawByOriginVolume::Draw(const G4VTrajectory& traj, const G4bool& vi if (GetVerbose()) { G4cout<<"G4TrajectoryDrawByOriginVolume drawer named "<(traj); + + G4Colour colour(fDefault); + G4String soughtPVName("none"); + + for (const auto& item: fMap.GetBasicMap()) { + soughtPVName = item.first; + for (G4int iPoint = 0; iPoint < richTrajectory.GetPointEntries(); iPoint++) { + G4VTrajectoryPoint* point = richTrajectory.GetPoint(iPoint); + if (!point) continue; + std::vector* attValues = point->CreateAttValues(); + std::vector::const_iterator iAtt; + for (iAtt = attValues->begin(); iAtt != attValues->end(); ++iAtt) { + if (iAtt->GetName() == "PostVPath" && + iAtt->GetValue().contains(soughtPVName)) break; + } + if (iAtt != attValues->end()) { // Required value found + fMap.GetColour(soughtPVName, colour); + break; // First found pvname determines colour. + } + } + } + + G4VisTrajContext myContext(GetContext()); + + myContext.SetLineColour(colour); + myContext.SetVisible(visible); + + if (GetVerbose()) { + G4cout + << "G4TrajectoryDrawByTouchedVolume drawer named " << Name() + << ", drawing trajectory touching physical volume " << soughtPVName + << ", with configuration:" << G4endl; + myContext.Print(G4cout); + } + + G4TrajectoryDrawerUtils::DrawLineAndPoints(richTrajectory, myContext); + + } + + catch (std::bad_cast) + { + G4ExceptionDescription ed; + ed << "Requires G4RichTrajectory - \"/vis/scene/add/trajectories rich\""; + G4Exception + ("G4TrajectoryDrawByTouchedVolume::Draw(const G4VTrajectory& traj,...", + "modeling0125", + JustWarning, ed); + return; + } +} + +void +G4TrajectoryDrawByTouchedVolume::SetDefault(const G4String& colour) +{ + G4Colour myColour; + + // Will not modify default colour if colour key does not exist + if (!G4Colour::GetColour(colour, myColour)) { + G4ExceptionDescription ed; + ed << "G4Colour with key "< >("originVolumeFilter") +:G4VModelFactory< G4VFilter >("originVolumeFilter") {} G4TrajectoryOriginVolumeFilterFactory::~G4TrajectoryOriginVolumeFilterFactory() {} @@ -129,17 +129,40 @@ G4TrajectoryOriginVolumeFilterFactory::Create(const G4String& placement, const G { // Create model G4TrajectoryOriginVolumeFilter* model = new G4TrajectoryOriginVolumeFilter(name); - + // Create associated messengers Messengers messengers; - + messengers.push_back(new G4ModelCmdAddString(model, placement)); messengers.push_back(new G4ModelCmdInvert(model, placement)); messengers.push_back(new G4ModelCmdActive(model, placement)); messengers.push_back(new G4ModelCmdVerbose(model, placement)); messengers.push_back(new G4ModelCmdReset(model, placement)); - + return ModelAndMessengers(model, messengers); } +// Touched volume filter +G4TrajectoryTouchedVolumeFilterFactory::G4TrajectoryTouchedVolumeFilterFactory() +:G4VModelFactory< G4VFilter >("touchedVolumeFilter") +{} +G4TrajectoryTouchedVolumeFilterFactory::~G4TrajectoryTouchedVolumeFilterFactory() {} + +G4TrajectoryTouchedVolumeFilterFactory::ModelAndMessengers +G4TrajectoryTouchedVolumeFilterFactory::Create(const G4String& placement, const G4String& name) +{ + // Create model + G4TrajectoryTouchedVolumeFilter* model = new G4TrajectoryTouchedVolumeFilter(name); + + // Create associated messengers + Messengers messengers; + + messengers.push_back(new G4ModelCmdAddString(model, placement)); + messengers.push_back(new G4ModelCmdInvert(model, placement)); + messengers.push_back(new G4ModelCmdActive(model, placement)); + messengers.push_back(new G4ModelCmdVerbose(model, placement)); + messengers.push_back(new G4ModelCmdReset(model, placement)); + + return ModelAndMessengers(model, messengers); +} diff --git a/source/visualization/modeling/src/G4TrajectoryModelFactories.cc b/source/visualization/modeling/src/G4TrajectoryModelFactories.cc index 9ef1c5b2bd..be5e5678f1 100644 --- a/source/visualization/modeling/src/G4TrajectoryModelFactories.cc +++ b/source/visualization/modeling/src/G4TrajectoryModelFactories.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TrajectoryModelFactories.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4TrajectoryModelFactories.cc 95593 2016-02-16 10:48:50Z gcosmo $ // // Jane Tinslay, John Allison, Joseph Perl October 2005 @@ -34,6 +34,7 @@ #include "G4TrajectoryDrawByCharge.hh" #include "G4TrajectoryDrawByOriginVolume.hh" #include "G4TrajectoryDrawByParticleID.hh" +#include "G4TrajectoryDrawByTouchedVolume.hh" #include "G4TrajectoryGenericDrawer.hh" #include "G4TrajectoryModelFactories.hh" #include "G4VisTrajContext.hh" @@ -145,7 +146,7 @@ G4TrajectoryDrawByParticleIDFactory::Create(const G4String& placement, const G4S //Draw by origin volume G4TrajectoryDrawByOriginVolumeFactory::G4TrajectoryDrawByOriginVolumeFactory() - :G4VModelFactory("drawByOriginVolume") +:G4VModelFactory("drawByOriginVolume") {} G4TrajectoryDrawByOriginVolumeFactory::~G4TrajectoryDrawByOriginVolumeFactory() {} @@ -156,9 +157,9 @@ G4TrajectoryDrawByOriginVolumeFactory::Create(const G4String& placement, const G Messengers messengers; // Create default context and model - G4VisTrajContext* context = new G4VisTrajContext("default"); + G4VisTrajContext* context = new G4VisTrajContext("default"); G4TrajectoryDrawByOriginVolume* model = new G4TrajectoryDrawByOriginVolume(name, context); - + // Create messengers for default context configuration G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); @@ -169,3 +170,30 @@ G4TrajectoryDrawByOriginVolumeFactory::Create(const G4String& placement, const G return ModelAndMessengers(model, messengers); } + +//Draw by touched volume +G4TrajectoryDrawByTouchedVolumeFactory::G4TrajectoryDrawByTouchedVolumeFactory() +:G4VModelFactory("drawByTouchedVolume") +{} + +G4TrajectoryDrawByTouchedVolumeFactory::~G4TrajectoryDrawByTouchedVolumeFactory() {} + +ModelAndMessengers +G4TrajectoryDrawByTouchedVolumeFactory::Create(const G4String& placement, const G4String& name) +{ + Messengers messengers; + + // Create default context and model + G4VisTrajContext* context = new G4VisTrajContext("default"); + G4TrajectoryDrawByTouchedVolume* model = new G4TrajectoryDrawByTouchedVolume(name, context); + + // Create messengers for default context configuration + G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); + + // Create messengers for drawer + messengers.push_back(new G4ModelCmdSetStringColour(model, placement)); + messengers.push_back(new G4ModelCmdSetDefaultColour(model, placement)); + messengers.push_back(new G4ModelCmdVerbose(model, placement)); + + return ModelAndMessengers(model, messengers); +} diff --git a/source/visualization/modeling/src/G4TrajectoryOriginVolumeFilter.cc b/source/visualization/modeling/src/G4TrajectoryOriginVolumeFilter.cc index 72ee1ca5c1..645d737155 100644 --- a/source/visualization/modeling/src/G4TrajectoryOriginVolumeFilter.cc +++ b/source/visualization/modeling/src/G4TrajectoryOriginVolumeFilter.cc @@ -23,7 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4TrajectoryOriginVolumeFilter.cc 66373 2012-12-18 09:41:34Z gcosmo $ +// $Id: G4TrajectoryOriginVolumeFilter.cc 95115 2016-01-26 16:33:29Z gcosmo $ // // Filter trajectories according to volume name. Only registered // volumes will pass the filter. @@ -43,12 +43,14 @@ G4TrajectoryOriginVolumeFilter::~G4TrajectoryOriginVolumeFilter() {} bool G4TrajectoryOriginVolumeFilter::Evaluate(const G4VTrajectory& traj) const { - G4Navigator* navigator = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); - G4VTrajectoryPoint* aTrajectoryPoint = traj.GetPoint(0); assert (0 != aTrajectoryPoint); + + G4Navigator* navigator = + G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); - G4VPhysicalVolume* volume = navigator->LocateGlobalPointAndSetup(aTrajectoryPoint->GetPosition()); + G4VPhysicalVolume* volume = navigator->LocateGlobalPointAndSetup + (aTrajectoryPoint->GetPosition(), nullptr,false,true); // Logical volume G4LogicalVolume* logicalVolume = volume->GetLogicalVolume(); diff --git a/source/visualization/modeling/src/G4TrajectoryTouchedVolumeFilter.cc b/source/visualization/modeling/src/G4TrajectoryTouchedVolumeFilter.cc new file mode 100644 index 0000000000..f4ea877228 --- /dev/null +++ b/source/visualization/modeling/src/G4TrajectoryTouchedVolumeFilter.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. * +// ******************************************************************** +// +// $Id: G4TrajectoryTouchedVolumeFilter.cc 95107 2016-01-26 12:41:11Z allison $ +// +// Filter trajectories according to touched volume name. Only registered +// volumes will pass the filter. +// +// John Allison, Feb 2016 +// +#include "G4TrajectoryTouchedVolumeFilter.hh" +#include "G4TransportationManager.hh" +#include "G4VTrajectoryPoint.hh" +#include "G4AttValue.hh" +#include "G4RichTrajectory.hh" + +G4TrajectoryTouchedVolumeFilter::G4TrajectoryTouchedVolumeFilter(const G4String& name) + :G4SmartFilter(name) +{} + +G4TrajectoryTouchedVolumeFilter::~G4TrajectoryTouchedVolumeFilter() {} + +bool +G4TrajectoryTouchedVolumeFilter::Evaluate(const G4VTrajectory& traj) const +{ + try + { + const G4RichTrajectory& richTrajectory = dynamic_cast(traj); + + for (const auto& pvname: fVolumes) { + for (G4int iPoint = 0; iPoint < richTrajectory.GetPointEntries(); iPoint++) { + G4VTrajectoryPoint* point = richTrajectory.GetPoint(iPoint); + if (!point) continue; + std::vector* attValues = point->CreateAttValues(); + std::vector::const_iterator iAtt; + for (iAtt = attValues->begin(); iAtt != attValues->end(); ++iAtt) { + if (iAtt->GetName() == "PostVPath" && + iAtt->GetValue().contains(pvname)) break; + } + if (iAtt != attValues->end()) { // Required value found + return true; // First found pvname determines selection. + } + } + } + return false; + } + + catch (std::bad_cast) + { + G4ExceptionDescription ed; + ed << "Requires G4RichTrajectory - \"/vis/scene/add/trajectories rich\""; + G4Exception + ("G4TrajectoryTouchedVolumeFilter::Evaluate(const G4VTrajectory& traj)", + "modeling0126", + JustWarning, ed); + return false; + } +} + +void +G4TrajectoryTouchedVolumeFilter::Add(const G4String& volume) +{ + fVolumes.push_back(volume); +} + +void +G4TrajectoryTouchedVolumeFilter::Print(std::ostream& ostr) const +{ + ostr<<"Volume names registered: "<::const_iterator iter = fVolumes.begin(); + + while (iter != fVolumes.end()) { + ostr<<*iter<